@ethlete/cli 3.0.0-next.27 → 3.0.0-next.28

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 (582) hide show
  1. package/CHANGELOG.md +153 -0
  2. package/build-info.json +1 -1
  3. package/design/arrow-anchor.ts +55 -0
  4. package/design/define-call.ts +3 -0
  5. package/design/define-part.ts +28 -1
  6. package/design/web/frame.ts +28 -0
  7. package/package.json +1 -1
  8. package/src/lib/api/compose.js +3 -2
  9. package/src/lib/api/compose.js.map +1 -1
  10. package/src/lib/api/git.js +2 -1
  11. package/src/lib/api/git.js.map +1 -1
  12. package/src/lib/api/setup.js +2 -2
  13. package/src/lib/api/setup.js.map +1 -1
  14. package/src/lib/design/asset-shot.js +2 -2
  15. package/src/lib/design/asset-shot.js.map +1 -1
  16. package/src/lib/design/blank-png.d.ts +2 -0
  17. package/src/lib/design/blank-png.js +28 -0
  18. package/src/lib/design/blank-png.js.map +1 -0
  19. package/src/lib/design/cache-entry.d.ts +8 -0
  20. package/src/lib/design/cache-entry.js +30 -0
  21. package/src/lib/design/cache-entry.js.map +1 -0
  22. package/src/lib/design/calls-tsconfig.js +20 -13
  23. package/src/lib/design/calls-tsconfig.js.map +1 -1
  24. package/src/lib/design/calls.js +3 -3
  25. package/src/lib/design/calls.js.map +1 -1
  26. package/src/lib/design/changed-parts.d.ts +1 -1
  27. package/src/lib/design/check.d.ts +2 -0
  28. package/src/lib/design/check.js +91 -24
  29. package/src/lib/design/check.js.map +1 -1
  30. package/src/lib/design/code-hash.d.ts +30 -0
  31. package/src/lib/design/code-hash.js +118 -0
  32. package/src/lib/design/code-hash.js.map +1 -0
  33. package/src/lib/design/commit-hunks.d.ts +2 -2
  34. package/src/lib/design/commit-hunks.js +2 -2
  35. package/src/lib/design/design-command.js +131 -36
  36. package/src/lib/design/design-command.js.map +1 -1
  37. package/src/lib/design/{paths.d.ts → design-config.d.ts} +6 -28
  38. package/src/lib/design/design-config.js +35 -0
  39. package/src/lib/design/design-config.js.map +1 -0
  40. package/src/lib/design/design-lint.d.ts +68 -0
  41. package/src/lib/design/design-lint.js +183 -0
  42. package/src/lib/design/design-lint.js.map +1 -0
  43. package/src/lib/design/draw-ledger.d.ts +6 -0
  44. package/src/lib/design/draw-ledger.js +10 -0
  45. package/src/lib/design/draw-ledger.js.map +1 -1
  46. package/src/lib/design/force-interactions.d.ts +2 -0
  47. package/src/lib/design/force-interactions.js +4 -2
  48. package/src/lib/design/force-interactions.js.map +1 -1
  49. package/src/lib/design/generated-stylesheets.d.ts +1 -1
  50. package/src/lib/design/generated-stylesheets.js +2 -2
  51. package/src/lib/design/generated-stylesheets.js.map +1 -1
  52. package/src/lib/design/git-top.d.ts +5 -0
  53. package/src/lib/design/git-top.js +16 -0
  54. package/src/lib/design/git-top.js.map +1 -0
  55. package/src/lib/design/hooks-problem.d.ts +2 -0
  56. package/src/lib/design/hooks-problem.js +23 -0
  57. package/src/lib/design/hooks-problem.js.map +1 -0
  58. package/src/lib/design/index.d.ts +4 -1
  59. package/src/lib/design/index.js +4 -1
  60. package/src/lib/design/index.js.map +1 -1
  61. package/src/lib/design/is-running.d.ts +1 -0
  62. package/src/lib/design/is-running.js +14 -0
  63. package/src/lib/design/is-running.js.map +1 -0
  64. package/src/lib/design/legacy.js +3 -3
  65. package/src/lib/design/legacy.js.map +1 -1
  66. package/src/lib/design/mcp-command.js +5 -12
  67. package/src/lib/design/mcp-command.js.map +1 -1
  68. package/src/lib/design/merge-compare.js +3 -3
  69. package/src/lib/design/merge-compare.js.map +1 -1
  70. package/src/lib/design/motion-command.js +3 -3
  71. package/src/lib/design/motion-command.js.map +1 -1
  72. package/src/lib/design/new-call.js +3 -3
  73. package/src/lib/design/new-call.js.map +1 -1
  74. package/src/lib/design/old-shot-folders.d.ts +2 -0
  75. package/src/lib/design/old-shot-folders.js +26 -0
  76. package/src/lib/design/old-shot-folders.js.map +1 -0
  77. package/src/lib/design/package-root.d.ts +21 -0
  78. package/src/lib/design/package-root.js +79 -0
  79. package/src/lib/design/package-root.js.map +1 -0
  80. package/src/lib/design/parent-watch.d.ts +7 -0
  81. package/src/lib/design/parent-watch.js +23 -0
  82. package/src/lib/design/parent-watch.js.map +1 -0
  83. package/src/lib/design/part-marks.js +2 -2
  84. package/src/lib/design/part-marks.js.map +1 -1
  85. package/src/lib/design/phase-timing.d.ts +5 -0
  86. package/src/lib/design/phase-timing.js +27 -0
  87. package/src/lib/design/phase-timing.js.map +1 -0
  88. package/src/lib/design/physical-cores.d.ts +12 -0
  89. package/src/lib/design/physical-cores.js +43 -0
  90. package/src/lib/design/physical-cores.js.map +1 -0
  91. package/src/lib/design/product-command.js +4 -4
  92. package/src/lib/design/product-command.js.map +1 -1
  93. package/src/lib/design/push-status.d.ts +30 -0
  94. package/src/lib/design/push-status.js +122 -0
  95. package/src/lib/design/push-status.js.map +1 -0
  96. package/src/lib/design/ready-shots.d.ts +18 -35
  97. package/src/lib/design/ready-shots.js +46 -111
  98. package/src/lib/design/ready-shots.js.map +1 -1
  99. package/src/lib/design/render-packages.d.ts +3 -1
  100. package/src/lib/design/render-packages.js +6 -2
  101. package/src/lib/design/render-packages.js.map +1 -1
  102. package/src/lib/design/render-worker.js +23 -3
  103. package/src/lib/design/render-worker.js.map +1 -1
  104. package/src/lib/design/render.d.ts +24 -3
  105. package/src/lib/design/render.js +23 -9
  106. package/src/lib/design/render.js.map +1 -1
  107. package/src/lib/design/resident/client.d.ts +52 -0
  108. package/src/lib/design/resident/client.js +263 -0
  109. package/src/lib/design/resident/client.js.map +1 -0
  110. package/src/lib/design/resident/discovery.d.ts +21 -0
  111. package/src/lib/design/resident/discovery.js +63 -0
  112. package/src/lib/design/resident/discovery.js.map +1 -0
  113. package/src/lib/design/resident/resident-process.d.ts +19 -0
  114. package/src/lib/design/resident/resident-process.js +189 -0
  115. package/src/lib/design/resident/resident-process.js.map +1 -0
  116. package/src/lib/design/resident/server.d.ts +52 -0
  117. package/src/lib/design/resident/server.js +212 -0
  118. package/src/lib/design/resident/server.js.map +1 -0
  119. package/src/lib/design/run-abort.d.ts +9 -0
  120. package/src/lib/design/run-abort.js +45 -0
  121. package/src/lib/design/run-abort.js.map +1 -0
  122. package/src/lib/design/run-deadline.d.ts +19 -0
  123. package/src/lib/design/run-deadline.js +104 -0
  124. package/src/lib/design/run-deadline.js.map +1 -0
  125. package/src/lib/design/run-yield.d.ts +8 -0
  126. package/src/lib/design/run-yield.js +43 -0
  127. package/src/lib/design/run-yield.js.map +1 -0
  128. package/src/lib/design/serve-state.d.ts +15 -0
  129. package/src/lib/design/serve-state.js +56 -0
  130. package/src/lib/design/serve-state.js.map +1 -0
  131. package/src/lib/design/serve.d.ts +20 -2
  132. package/src/lib/design/serve.js +147 -43
  133. package/src/lib/design/serve.js.map +1 -1
  134. package/src/lib/design/server-identity.d.ts +5 -1
  135. package/src/lib/design/server-identity.js +4 -1
  136. package/src/lib/design/server-identity.js.map +1 -1
  137. package/src/lib/design/shot-board.d.ts +26 -0
  138. package/src/lib/design/shot-board.js +80 -0
  139. package/src/lib/design/shot-board.js.map +1 -0
  140. package/src/lib/design/shot-command.d.ts +1 -1
  141. package/src/lib/design/shot-command.js +12 -5
  142. package/src/lib/design/shot-command.js.map +1 -1
  143. package/src/lib/design/shot-store.d.ts +29 -3
  144. package/src/lib/design/shot-store.js +206 -36
  145. package/src/lib/design/shot-store.js.map +1 -1
  146. package/src/lib/design/shot.d.ts +12 -4
  147. package/src/lib/design/shot.js +98 -14
  148. package/src/lib/design/shot.js.map +1 -1
  149. package/src/lib/design/sketch-at.js +2 -1
  150. package/src/lib/design/sketch-at.js.map +1 -1
  151. package/src/lib/design/sketch-command.d.ts +13 -0
  152. package/src/lib/design/sketch-command.js +346 -73
  153. package/src/lib/design/sketch-command.js.map +1 -1
  154. package/src/lib/design/ssr-shims.d.ts +1 -0
  155. package/src/lib/design/ssr-shims.js +3 -3
  156. package/src/lib/design/ssr-shims.js.map +1 -1
  157. package/src/lib/design/stamp.d.ts +5 -0
  158. package/src/lib/design/stamp.js +6 -5
  159. package/src/lib/design/stamp.js.map +1 -1
  160. package/src/lib/design/status.d.ts +1 -1
  161. package/src/lib/design/status.js +15 -4
  162. package/src/lib/design/status.js.map +1 -1
  163. package/src/lib/design/studio-api.d.ts +7 -15
  164. package/src/lib/design/studio-api.js +39 -140
  165. package/src/lib/design/studio-api.js.map +1 -1
  166. package/src/lib/design/system/accepted-pictures.d.ts +15 -29
  167. package/src/lib/design/system/accepted-pictures.js +156 -134
  168. package/src/lib/design/system/accepted-pictures.js.map +1 -1
  169. package/src/lib/design/system/action-cache.d.ts +45 -0
  170. package/src/lib/design/system/action-cache.js +72 -0
  171. package/src/lib/design/system/action-cache.js.map +1 -0
  172. package/src/lib/design/system/action-lost.d.ts +8 -6
  173. package/src/lib/design/system/action-lost.js +13 -17
  174. package/src/lib/design/system/action-lost.js.map +1 -1
  175. package/src/lib/design/system/action-press.d.ts +7 -1
  176. package/src/lib/design/system/action-press.js +16 -4
  177. package/src/lib/design/system/action-press.js.map +1 -1
  178. package/src/lib/design/system/actions-command.d.ts +12 -5
  179. package/src/lib/design/system/actions-command.js +187 -66
  180. package/src/lib/design/system/actions-command.js.map +1 -1
  181. package/src/lib/design/system/actions.d.ts +27 -4
  182. package/src/lib/design/system/actions.js +59 -21
  183. package/src/lib/design/system/actions.js.map +1 -1
  184. package/src/lib/design/system/anti-alias.d.ts +2 -0
  185. package/src/lib/design/system/anti-alias.js +11 -0
  186. package/src/lib/design/system/anti-alias.js.map +1 -0
  187. package/src/lib/design/system/app-files.js +19 -3
  188. package/src/lib/design/system/app-files.js.map +1 -1
  189. package/src/lib/design/system/arrow-anchor.d.ts +9 -0
  190. package/src/lib/design/system/arrow-anchor.js +40 -0
  191. package/src/lib/design/system/arrow-anchor.js.map +1 -0
  192. package/src/lib/design/system/base-issues.d.ts +28 -0
  193. package/src/lib/design/system/base-issues.js +80 -0
  194. package/src/lib/design/system/base-issues.js.map +1 -0
  195. package/src/lib/design/system/base.d.ts +1 -1
  196. package/src/lib/design/system/base.js +2 -2
  197. package/src/lib/design/system/base.js.map +1 -1
  198. package/src/lib/design/system/baseline-history.d.ts +13 -0
  199. package/src/lib/design/system/baseline-history.js +40 -0
  200. package/src/lib/design/system/baseline-history.js.map +1 -0
  201. package/src/lib/design/system/bespoke-controls.d.ts +4 -1
  202. package/src/lib/design/system/bespoke-controls.js +72 -70
  203. package/src/lib/design/system/bespoke-controls.js.map +1 -1
  204. package/src/lib/design/system/build-ready-contract.d.ts +7 -1
  205. package/src/lib/design/system/build-ready-contract.js +7 -1
  206. package/src/lib/design/system/build-ready-contract.js.map +1 -1
  207. package/src/lib/design/system/build-running.d.ts +13 -0
  208. package/src/lib/design/system/build-running.js +48 -0
  209. package/src/lib/design/system/build-running.js.map +1 -0
  210. package/src/lib/design/system/check-record.d.ts +18 -0
  211. package/src/lib/design/system/check-record.js +47 -0
  212. package/src/lib/design/system/check-record.js.map +1 -0
  213. package/src/lib/design/system/check-rules.d.ts +1 -1
  214. package/src/lib/design/system/check-rules.js +19 -1
  215. package/src/lib/design/system/check-rules.js.map +1 -1
  216. package/src/lib/design/system/check-system.d.ts +25 -4
  217. package/src/lib/design/system/check-system.js +289 -121
  218. package/src/lib/design/system/check-system.js.map +1 -1
  219. package/src/lib/design/system/comments/inbox.d.ts +1 -1
  220. package/src/lib/design/system/compare-cache.d.ts +20 -0
  221. package/src/lib/design/system/compare-cache.js +92 -0
  222. package/src/lib/design/system/compare-cache.js.map +1 -0
  223. package/src/lib/design/system/compare-command.d.ts +82 -51
  224. package/src/lib/design/system/compare-command.js +362 -340
  225. package/src/lib/design/system/compare-command.js.map +1 -1
  226. package/src/lib/design/system/complete.d.ts +31 -1
  227. package/src/lib/design/system/complete.js +141 -27
  228. package/src/lib/design/system/complete.js.map +1 -1
  229. package/src/lib/design/system/decision-refs.d.ts +5 -0
  230. package/src/lib/design/system/decision-refs.js +21 -0
  231. package/src/lib/design/system/decision-refs.js.map +1 -0
  232. package/src/lib/design/system/design-hash.d.ts +22 -1
  233. package/src/lib/design/system/design-hash.js +63 -4
  234. package/src/lib/design/system/design-hash.js.map +1 -1
  235. package/src/lib/design/system/dom-command.d.ts +1 -1
  236. package/src/lib/design/system/dom-command.js +8 -5
  237. package/src/lib/design/system/dom-command.js.map +1 -1
  238. package/src/lib/design/system/drawn-open-points.d.ts +1 -1
  239. package/src/lib/design/system/dropped-props.d.ts +19 -5
  240. package/src/lib/design/system/dropped-props.js +133 -21
  241. package/src/lib/design/system/dropped-props.js.map +1 -1
  242. package/src/lib/design/system/grid-report.d.ts +5 -0
  243. package/src/lib/design/system/grid-report.js +78 -0
  244. package/src/lib/design/system/grid-report.js.map +1 -0
  245. package/src/lib/design/system/harness-build-cache.d.ts +17 -3
  246. package/src/lib/design/system/harness-build-cache.js +23 -10
  247. package/src/lib/design/system/harness-build-cache.js.map +1 -1
  248. package/src/lib/design/system/harness-inputs.d.ts +17 -0
  249. package/src/lib/design/system/harness-inputs.js +160 -0
  250. package/src/lib/design/system/harness-inputs.js.map +1 -0
  251. package/src/lib/design/system/harness-map.d.ts +1 -1
  252. package/src/lib/design/system/harness-server.d.ts +12 -1
  253. package/src/lib/design/system/harness-server.js +29 -19
  254. package/src/lib/design/system/harness-server.js.map +1 -1
  255. package/src/lib/design/system/harness-shot.d.ts +78 -0
  256. package/src/lib/design/system/harness-shot.js +349 -0
  257. package/src/lib/design/system/harness-shot.js.map +1 -0
  258. package/src/lib/design/system/harness-watch.d.ts +79 -0
  259. package/src/lib/design/system/harness-watch.js +334 -0
  260. package/src/lib/design/system/harness-watch.js.map +1 -0
  261. package/src/lib/design/system/implementation-baseline.d.ts +20 -0
  262. package/src/lib/design/system/implementation-baseline.js +44 -0
  263. package/src/lib/design/system/implementation-baseline.js.map +1 -0
  264. package/src/lib/design/system/leftover-gate-files.d.ts +2 -0
  265. package/src/lib/design/system/leftover-gate-files.js +15 -0
  266. package/src/lib/design/system/leftover-gate-files.js.map +1 -0
  267. package/src/lib/design/system/lib-build-lock.d.ts +18 -0
  268. package/src/lib/design/system/lib-build-lock.js +111 -0
  269. package/src/lib/design/system/lib-build-lock.js.map +1 -0
  270. package/src/lib/design/system/link-free.d.ts +12 -0
  271. package/src/lib/design/system/link-free.js +125 -0
  272. package/src/lib/design/system/link-free.js.map +1 -0
  273. package/src/lib/design/system/list-system.d.ts +4 -8
  274. package/src/lib/design/system/list-system.js +8 -78
  275. package/src/lib/design/system/list-system.js.map +1 -1
  276. package/src/lib/design/system/live-actions.d.ts +1 -1
  277. package/src/lib/design/system/live-actions.js +17 -8
  278. package/src/lib/design/system/live-actions.js.map +1 -1
  279. package/src/lib/design/system/live-compare.js +1 -1
  280. package/src/lib/design/system/live-compare.js.map +1 -1
  281. package/src/lib/design/system/live-uncovered.d.ts +7 -2
  282. package/src/lib/design/system/live-uncovered.js +44 -9
  283. package/src/lib/design/system/live-uncovered.js.map +1 -1
  284. package/src/lib/design/system/no-verdict.d.ts +13 -0
  285. package/src/lib/design/system/no-verdict.js +17 -0
  286. package/src/lib/design/system/no-verdict.js.map +1 -0
  287. package/src/lib/design/system/off-centre.d.ts +11 -0
  288. package/src/lib/design/system/off-centre.js +74 -0
  289. package/src/lib/design/system/off-centre.js.map +1 -0
  290. package/src/lib/design/system/open-points-cache.d.ts +11 -0
  291. package/src/lib/design/system/open-points-cache.js +27 -0
  292. package/src/lib/design/system/open-points-cache.js.map +1 -0
  293. package/src/lib/design/system/open-points-runner.d.ts +43 -0
  294. package/src/lib/design/system/open-points-runner.js +119 -0
  295. package/src/lib/design/system/open-points-runner.js.map +1 -0
  296. package/src/lib/design/system/open-points-worker.d.ts +1 -0
  297. package/src/lib/design/system/open-points-worker.js +28 -0
  298. package/src/lib/design/system/open-points-worker.js.map +1 -0
  299. package/src/lib/design/system/open-points.js +1 -1
  300. package/src/lib/design/system/open-points.js.map +1 -1
  301. package/src/lib/design/system/part-build-ready.d.ts +13 -7
  302. package/src/lib/design/system/part-build-ready.js +43 -15
  303. package/src/lib/design/system/part-build-ready.js.map +1 -1
  304. package/src/lib/design/system/part-compare.d.ts +18 -2
  305. package/src/lib/design/system/part-compare.js +147 -42
  306. package/src/lib/design/system/part-compare.js.map +1 -1
  307. package/src/lib/design/system/part-picture-cache.d.ts +23 -0
  308. package/src/lib/design/system/part-picture-cache.js +68 -0
  309. package/src/lib/design/system/part-picture-cache.js.map +1 -0
  310. package/src/lib/design/system/part-ready.d.ts +33 -7
  311. package/src/lib/design/system/part-ready.js +55 -17
  312. package/src/lib/design/system/part-ready.js.map +1 -1
  313. package/src/lib/design/system/part-task.d.ts +20 -0
  314. package/src/lib/design/system/part-task.js +53 -7
  315. package/src/lib/design/system/part-task.js.map +1 -1
  316. package/src/lib/design/system/pixel-cache.d.ts +16 -0
  317. package/src/lib/design/system/pixel-cache.js +79 -0
  318. package/src/lib/design/system/pixel-cache.js.map +1 -0
  319. package/src/lib/design/system/pointer-focus.d.ts +10 -2
  320. package/src/lib/design/system/pointer-focus.js +32 -9
  321. package/src/lib/design/system/pointer-focus.js.map +1 -1
  322. package/src/lib/design/system/prettier.js +4 -3
  323. package/src/lib/design/system/prettier.js.map +1 -1
  324. package/src/lib/design/system/problem.d.ts +6 -0
  325. package/src/lib/design/system/product.js +2 -2
  326. package/src/lib/design/system/product.js.map +1 -1
  327. package/src/lib/design/system/ready-command.d.ts +1 -1
  328. package/src/lib/design/system/ready-command.js +24 -4
  329. package/src/lib/design/system/ready-command.js.map +1 -1
  330. package/src/lib/design/system/record-settled.d.ts +24 -0
  331. package/src/lib/design/system/record-settled.js +50 -0
  332. package/src/lib/design/system/record-settled.js.map +1 -0
  333. package/src/lib/design/system/render-check.d.ts +18 -1
  334. package/src/lib/design/system/render-check.js +164 -104
  335. package/src/lib/design/system/render-check.js.map +1 -1
  336. package/src/lib/design/system/render-issue-key.d.ts +9 -0
  337. package/src/lib/design/system/render-issue-key.js +27 -0
  338. package/src/lib/design/system/render-issue-key.js.map +1 -0
  339. package/src/lib/design/system/resolve-product.d.ts +4 -1
  340. package/src/lib/design/system/resolve-product.js +14 -3
  341. package/src/lib/design/system/resolve-product.js.map +1 -1
  342. package/src/lib/design/system/rule-baseline.d.ts +53 -0
  343. package/src/lib/design/system/rule-baseline.js +124 -0
  344. package/src/lib/design/system/rule-baseline.js.map +1 -0
  345. package/src/lib/design/system/rule-skips.d.ts +20 -0
  346. package/src/lib/design/system/rule-skips.js +36 -0
  347. package/src/lib/design/system/rule-skips.js.map +1 -0
  348. package/src/lib/design/system/rules/canonical-class.d.ts +4 -0
  349. package/src/lib/design/system/rules/canonical-class.js +66 -13
  350. package/src/lib/design/system/rules/canonical-class.js.map +1 -1
  351. package/src/lib/design/system/rules/capability-place.d.ts +4 -2
  352. package/src/lib/design/system/rules/capability-place.js +15 -2
  353. package/src/lib/design/system/rules/capability-place.js.map +1 -1
  354. package/src/lib/design/system/rules/command-text.d.ts +7 -0
  355. package/src/lib/design/system/rules/command-text.js +72 -0
  356. package/src/lib/design/system/rules/command-text.js.map +1 -0
  357. package/src/lib/design/system/rules/design-coverage.d.ts +30 -0
  358. package/src/lib/design/system/rules/design-coverage.js +205 -0
  359. package/src/lib/design/system/rules/design-coverage.js.map +1 -0
  360. package/src/lib/design/system/rules/glued-interpolation.js +17 -1
  361. package/src/lib/design/system/rules/glued-interpolation.js.map +1 -1
  362. package/src/lib/design/system/rules/implements-unrendered.d.ts +13 -0
  363. package/src/lib/design/system/rules/implements-unrendered.js +63 -0
  364. package/src/lib/design/system/rules/implements-unrendered.js.map +1 -0
  365. package/src/lib/design/system/rules/motion.js +6 -0
  366. package/src/lib/design/system/rules/motion.js.map +1 -1
  367. package/src/lib/design/system/rules/native-title.js +13 -3
  368. package/src/lib/design/system/rules/native-title.js.map +1 -1
  369. package/src/lib/design/system/rules/option-values.d.ts +1 -1
  370. package/src/lib/design/system/rules/pending-state.d.ts +39 -0
  371. package/src/lib/design/system/rules/pending-state.js +289 -0
  372. package/src/lib/design/system/rules/pending-state.js.map +1 -0
  373. package/src/lib/design/system/rules/sdk-attribute-value.d.ts +10 -0
  374. package/src/lib/design/system/rules/sdk-attribute-value.js +78 -0
  375. package/src/lib/design/system/rules/sdk-attribute-value.js.map +1 -0
  376. package/src/lib/design/system/rules/sdk-private-var.d.ts +9 -0
  377. package/src/lib/design/system/rules/sdk-private-var.js +54 -0
  378. package/src/lib/design/system/rules/sdk-private-var.js.map +1 -0
  379. package/src/lib/design/system/rules/skips.d.ts +4 -0
  380. package/src/lib/design/system/rules/skips.js +27 -0
  381. package/src/lib/design/system/rules/skips.js.map +1 -0
  382. package/src/lib/design/system/rules/stale-replace.js +1 -0
  383. package/src/lib/design/system/rules/stale-replace.js.map +1 -1
  384. package/src/lib/design/system/rules/tailwind-classes.d.ts +1 -0
  385. package/src/lib/design/system/rules/tailwind-classes.js +11 -6
  386. package/src/lib/design/system/rules/tailwind-classes.js.map +1 -1
  387. package/src/lib/design/system/rules/token-selectors.js +10 -3
  388. package/src/lib/design/system/rules/token-selectors.js.map +1 -1
  389. package/src/lib/design/system/rules/unbound-input-known.d.ts +2 -0
  390. package/src/lib/design/system/rules/unbound-input-known.js +3 -6
  391. package/src/lib/design/system/rules/unbound-input-known.js.map +1 -1
  392. package/src/lib/design/system/rules/unbound-input.d.ts +2 -0
  393. package/src/lib/design/system/rules/unbound-input.js +12 -6
  394. package/src/lib/design/system/rules/unbound-input.js.map +1 -1
  395. package/src/lib/design/system/rules/undefined-class.js +11 -2
  396. package/src/lib/design/system/rules/undefined-class.js.map +1 -1
  397. package/src/lib/design/system/rules/utility-css.js +13 -1
  398. package/src/lib/design/system/rules/utility-css.js.map +1 -1
  399. package/src/lib/design/system/rules/visible-change.d.ts +1 -2
  400. package/src/lib/design/system/rules/visible-change.js +3 -3
  401. package/src/lib/design/system/rules/visible-change.js.map +1 -1
  402. package/src/lib/design/system/sdk-declarations.d.ts +10 -0
  403. package/src/lib/design/system/sdk-declarations.js +177 -0
  404. package/src/lib/design/system/sdk-declarations.js.map +1 -0
  405. package/src/lib/design/system/sdk-selectors.d.ts +18 -0
  406. package/src/lib/design/system/sdk-selectors.js +131 -0
  407. package/src/lib/design/system/sdk-selectors.js.map +1 -0
  408. package/src/lib/design/system/served-cache.d.ts +99 -0
  409. package/src/lib/design/system/served-cache.js +202 -0
  410. package/src/lib/design/system/served-cache.js.map +1 -0
  411. package/src/lib/design/system/settled-panes.d.ts +8 -3
  412. package/src/lib/design/system/settled-panes.js +10 -9
  413. package/src/lib/design/system/settled-panes.js.map +1 -1
  414. package/src/lib/design/system/sketch/baseline.d.ts +17 -1
  415. package/src/lib/design/system/sketch/baseline.js +48 -7
  416. package/src/lib/design/system/sketch/baseline.js.map +1 -1
  417. package/src/lib/design/system/sketch/check-format.js +3 -9
  418. package/src/lib/design/system/sketch/check-format.js.map +1 -1
  419. package/src/lib/design/system/sketch/clean-copy.d.ts +18 -0
  420. package/src/lib/design/system/sketch/clean-copy.js +104 -0
  421. package/src/lib/design/system/sketch/clean-copy.js.map +1 -0
  422. package/src/lib/design/system/sketch/cli-args.d.ts +1 -1
  423. package/src/lib/design/system/sketch/cli-args.js +2 -2
  424. package/src/lib/design/system/sketch/cli-args.js.map +1 -1
  425. package/src/lib/design/system/sketch/covered-diffs.d.ts +40 -0
  426. package/src/lib/design/system/sketch/covered-diffs.js +106 -0
  427. package/src/lib/design/system/sketch/covered-diffs.js.map +1 -0
  428. package/src/lib/design/system/sketch/edit-sketch.d.ts +14 -6
  429. package/src/lib/design/system/sketch/edit-sketch.js +87 -35
  430. package/src/lib/design/system/sketch/edit-sketch.js.map +1 -1
  431. package/src/lib/design/system/sketch/identical-renders.js +20 -14
  432. package/src/lib/design/system/sketch/identical-renders.js.map +1 -1
  433. package/src/lib/design/system/sketch/merge-commit.d.ts +20 -0
  434. package/src/lib/design/system/sketch/merge-commit.js +72 -0
  435. package/src/lib/design/system/sketch/merge-commit.js.map +1 -0
  436. package/src/lib/design/system/sketch/merge-runner.d.ts +20 -0
  437. package/src/lib/design/system/sketch/merge-runner.js +73 -0
  438. package/src/lib/design/system/sketch/merge-runner.js.map +1 -0
  439. package/src/lib/design/system/sketch/merge-step.d.ts +14 -2
  440. package/src/lib/design/system/sketch/merge-step.js +24 -12
  441. package/src/lib/design/system/sketch/merge-step.js.map +1 -1
  442. package/src/lib/design/system/sketch/merge-worker.d.ts +1 -0
  443. package/src/lib/design/system/sketch/merge-worker.js +14 -0
  444. package/src/lib/design/system/sketch/merge-worker.js.map +1 -0
  445. package/src/lib/design/system/sketch/merge.d.ts +10 -3
  446. package/src/lib/design/system/sketch/merge.js +180 -90
  447. package/src/lib/design/system/sketch/merge.js.map +1 -1
  448. package/src/lib/design/system/sketch/merged-parts.d.ts +0 -29
  449. package/src/lib/design/system/sketch/merged-parts.js +8 -56
  450. package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
  451. package/src/lib/design/system/sketch/note-language.d.ts +7 -0
  452. package/src/lib/design/system/sketch/note-language.js +83 -0
  453. package/src/lib/design/system/sketch/note-language.js.map +1 -0
  454. package/src/lib/design/system/sketch/part-definition.d.ts +6 -0
  455. package/src/lib/design/system/sketch/part-definition.js +31 -1
  456. package/src/lib/design/system/sketch/part-definition.js.map +1 -1
  457. package/src/lib/design/system/sketch/rebase-port.js +47 -2
  458. package/src/lib/design/system/sketch/rebase-port.js.map +1 -1
  459. package/src/lib/design/system/sketch/sketch-check-cache.d.ts +11 -0
  460. package/src/lib/design/system/sketch/sketch-check-cache.js +22 -0
  461. package/src/lib/design/system/sketch/sketch-check-cache.js.map +1 -0
  462. package/src/lib/design/system/sketch/sketch-check-worker.js +6 -1
  463. package/src/lib/design/system/sketch/sketch-check-worker.js.map +1 -1
  464. package/src/lib/design/system/sketch/sketch-checker.d.ts +14 -1
  465. package/src/lib/design/system/sketch/sketch-checker.js +16 -6
  466. package/src/lib/design/system/sketch/sketch-checker.js.map +1 -1
  467. package/src/lib/design/system/sketch/sketch.d.ts +37 -6
  468. package/src/lib/design/system/sketch/sketch.js +101 -13
  469. package/src/lib/design/system/sketch/sketch.js.map +1 -1
  470. package/src/lib/design/system/sketch/stale-base.js +1 -1
  471. package/src/lib/design/system/sketch/stale-base.js.map +1 -1
  472. package/src/lib/design/system/sketch/unchanged-states.d.ts +7 -3
  473. package/src/lib/design/system/sketch/unchanged-states.js +25 -12
  474. package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
  475. package/src/lib/design/system/sketch/viewed-shots.d.ts +10 -2
  476. package/src/lib/design/system/sketch/viewed-shots.js +15 -22
  477. package/src/lib/design/system/sketch/viewed-shots.js.map +1 -1
  478. package/src/lib/design/system/skip-classes.d.ts +3 -0
  479. package/src/lib/design/system/skip-classes.js +17 -0
  480. package/src/lib/design/system/skip-classes.js.map +1 -0
  481. package/src/lib/design/system/slot-hosts.d.ts +38 -0
  482. package/src/lib/design/system/slot-hosts.js +93 -0
  483. package/src/lib/design/system/slot-hosts.js.map +1 -0
  484. package/src/lib/design/system/slow-checks.d.ts +4 -0
  485. package/src/lib/design/system/slow-checks.js +77 -24
  486. package/src/lib/design/system/slow-checks.js.map +1 -1
  487. package/src/lib/design/system/slow-run.d.ts +15 -5
  488. package/src/lib/design/system/slow-run.js +143 -84
  489. package/src/lib/design/system/slow-run.js.map +1 -1
  490. package/src/lib/design/system/stale-dist.d.ts +37 -1
  491. package/src/lib/design/system/stale-dist.js +58 -8
  492. package/src/lib/design/system/stale-dist.js.map +1 -1
  493. package/src/lib/design/system/stale-parts.d.ts +15 -0
  494. package/src/lib/design/system/stale-parts.js +67 -5
  495. package/src/lib/design/system/stale-parts.js.map +1 -1
  496. package/src/lib/design/system/system-command.js +3 -3
  497. package/src/lib/design/system/system-command.js.map +1 -1
  498. package/src/lib/design/system/system-modules.d.ts +4 -4
  499. package/src/lib/design/system/system-tsconfig.d.ts +9 -2
  500. package/src/lib/design/system/system-tsconfig.js +73 -13
  501. package/src/lib/design/system/system-tsconfig.js.map +1 -1
  502. package/src/lib/design/system/task-command.d.ts +3 -2
  503. package/src/lib/design/system/task-command.js +111 -73
  504. package/src/lib/design/system/task-command.js.map +1 -1
  505. package/src/lib/design/system/touched-parts.d.ts +1 -1
  506. package/src/lib/design/system/touched-parts.js +4 -5
  507. package/src/lib/design/system/touched-parts.js.map +1 -1
  508. package/src/lib/design/system/tracked-reads.d.ts +27 -0
  509. package/src/lib/design/system/tracked-reads.js +100 -0
  510. package/src/lib/design/system/tracked-reads.js.map +1 -0
  511. package/src/lib/design/system/unchanged-rows.d.ts +17 -8
  512. package/src/lib/design/system/unchanged-rows.js +90 -12
  513. package/src/lib/design/system/unchanged-rows.js.map +1 -1
  514. package/src/lib/design/system/uncommitted-decisions.d.ts +0 -2
  515. package/src/lib/design/system/uncommitted-decisions.js +3 -6
  516. package/src/lib/design/system/uncommitted-decisions.js.map +1 -1
  517. package/src/lib/design/system/visible-change-command.d.ts +13 -1
  518. package/src/lib/design/system/visible-change-command.js +10 -8
  519. package/src/lib/design/system/visible-change-command.js.map +1 -1
  520. package/src/lib/design/system/visible-change-parts.d.ts +1 -1
  521. package/src/lib/design/system/write-origin.d.ts +12 -0
  522. package/src/lib/design/system/write-origin.js +18 -0
  523. package/src/lib/design/system/write-origin.js.map +1 -0
  524. package/src/lib/design/system-use.js +4 -4
  525. package/src/lib/design/system-use.js.map +1 -1
  526. package/src/lib/design/thumb.d.ts +19 -3
  527. package/src/lib/design/thumb.js +71 -9
  528. package/src/lib/design/thumb.js.map +1 -1
  529. package/src/lib/design/timings-command.d.ts +22 -0
  530. package/src/lib/design/timings-command.js +175 -0
  531. package/src/lib/design/timings-command.js.map +1 -0
  532. package/src/lib/design/timings.d.ts +117 -0
  533. package/src/lib/design/timings.js +296 -0
  534. package/src/lib/design/timings.js.map +1 -0
  535. package/src/lib/design/typecheck.js +2 -2
  536. package/src/lib/design/typecheck.js.map +1 -1
  537. package/src/lib/design/vite-cache.d.ts +11 -0
  538. package/src/lib/design/vite-cache.js +61 -0
  539. package/src/lib/design/vite-cache.js.map +1 -0
  540. package/src/lib/design/warm-draw.d.ts +33 -0
  541. package/src/lib/design/warm-draw.js +74 -0
  542. package/src/lib/design/warm-draw.js.map +1 -0
  543. package/src/lib/design/warm-pages.d.ts +10 -2
  544. package/src/lib/design/warm-pages.js +6 -2
  545. package/src/lib/design/warm-pages.js.map +1 -1
  546. package/src/lib/design/work-root.d.ts +2 -0
  547. package/src/lib/design/work-root.js +8 -0
  548. package/src/lib/design/work-root.js.map +1 -0
  549. package/src/lib/plain-output.d.ts +27 -0
  550. package/src/lib/plain-output.js +66 -0
  551. package/src/lib/plain-output.js.map +1 -0
  552. package/src/lib/release.js +11 -3
  553. package/src/lib/release.js.map +1 -1
  554. package/src/lib/update/commits.js +2 -2
  555. package/src/lib/update/commits.js.map +1 -1
  556. package/src/lib/update/packages.js +4 -2
  557. package/src/lib/update/packages.js.map +1 -1
  558. package/src/lib/update/scan.js +8 -2
  559. package/src/lib/update/scan.js.map +1 -1
  560. package/src/lib/design/paths.js +0 -138
  561. package/src/lib/design/paths.js.map +0 -1
  562. package/src/lib/design/system/accept-command.d.ts +0 -41
  563. package/src/lib/design/system/accept-command.js +0 -139
  564. package/src/lib/design/system/accept-command.js.map +0 -1
  565. package/src/lib/design/system/go-batch.d.ts +0 -24
  566. package/src/lib/design/system/go-batch.js +0 -110
  567. package/src/lib/design/system/go-batch.js.map +0 -1
  568. package/src/lib/design/system/go-command.d.ts +0 -4
  569. package/src/lib/design/system/go-command.js +0 -64
  570. package/src/lib/design/system/go-command.js.map +0 -1
  571. package/src/lib/design/system/go-guard.d.ts +0 -26
  572. package/src/lib/design/system/go-guard.js +0 -70
  573. package/src/lib/design/system/go-guard.js.map +0 -1
  574. package/src/lib/design/system/go-step.d.ts +0 -13
  575. package/src/lib/design/system/go-step.js +0 -84
  576. package/src/lib/design/system/go-step.js.map +0 -1
  577. package/src/lib/design/system/part-go.d.ts +0 -70
  578. package/src/lib/design/system/part-go.js +0 -94
  579. package/src/lib/design/system/part-go.js.map +0 -1
  580. package/src/lib/design/system/tom-confirm.d.ts +0 -40
  581. package/src/lib/design/system/tom-confirm.js +0 -55
  582. package/src/lib/design/system/tom-confirm.js.map +0 -1
@@ -0,0 +1,349 @@
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.harnessShotOf = exports.drawnPaneCountOf = exports.lookMissProblemOf = exports.LookMissError = exports.DroppedPropsError = exports.UndrivableError = exports.HarnessError = exports.compareFrameOf = exports.missingPanesProblemOf = exports.MissingPanesError = void 0;
13
+ const phase_timing_1 = require("../phase-timing");
14
+ const shot_1 = require("../shot");
15
+ const thumb_1 = require("../thumb");
16
+ const force_interactions_1 = require("../force-interactions");
17
+ const part_compare_1 = require("./part-compare");
18
+ const sdk_errors_1 = require("./sdk-errors");
19
+ const settled_panes_1 = require("./settled-panes");
20
+ const frozen_animations_1 = require("./frozen-animations");
21
+ class MissingPanesError extends Error {
22
+ }
23
+ exports.MissingPanesError = MissingPanesError;
24
+ /** @internal The problem of a state whose app opened fewer overlay panes than its design draws. */
25
+ const missingPanesProblemOf = (count) => `the design draws ${count.drawn} overlay pane${count.drawn === 1 ? '' : 's'}, the app opened ${count.opened} before its panes settled or ${settled_panes_1.PANE_COUNT_TIMEOUT_MS} ms passed`;
26
+ exports.missingPanesProblemOf = missingPanesProblemOf;
27
+ /**
28
+ * How compare draws a part: a page at a product preset, the asked one or the first, with the harness host filling
29
+ * its viewport; any other part fitted to its content.
30
+ */
31
+ const compareFrameOf = (options) => {
32
+ var _a, _b;
33
+ const { presets, part } = options;
34
+ if (!part.startsWith('pages/'))
35
+ return options.preset === null
36
+ ? { preset: null, size: null, layout: null }
37
+ : `--preset applies to a pages part only, ${part} is fitted to its content`;
38
+ const preset = (_b = (_a = options.preset) !== null && _a !== void 0 ? _a : Object.keys(presets)[0]) !== null && _b !== void 0 ? _b : '';
39
+ const size = Object.keys(presets).includes(preset) ? presets[preset] : undefined;
40
+ return size
41
+ ? { preset, size, layout: 'page' }
42
+ : `the product has no preset "${preset}" - its presets: ${Object.keys(presets).join(', ')}`;
43
+ };
44
+ exports.compareFrameOf = compareFrameOf;
45
+ const ROOM_PX = 1024;
46
+ const messageOf = (error) => (error instanceof Error ? error.message : String(error));
47
+ class HarnessError extends Error {
48
+ }
49
+ exports.HarnessError = HarnessError;
50
+ class UndrivableError extends HarnessError {
51
+ }
52
+ exports.UndrivableError = UndrivableError;
53
+ class DroppedPropsError extends Error {
54
+ }
55
+ exports.DroppedPropsError = DroppedPropsError;
56
+ class LookMissError extends Error {
57
+ }
58
+ exports.LookMissError = LookMissError;
59
+ const STYLE_RULES_WALK = `const rules = [];
60
+ const walk = (list) => {
61
+ for (const rule of list) {
62
+ if (rule instanceof CSSStyleRule) rules.push(rule);
63
+ if (rule.cssRules) walk(rule.cssRules);
64
+ }
65
+ };
66
+
67
+ for (const sheet of document.styleSheets) {
68
+ try {
69
+ walk(sheet.cssRules);
70
+ } catch {}
71
+ }`;
72
+ const STYLE_SELECTORS_SCRIPT = `(() => {
73
+ ${STYLE_RULES_WALK}
74
+
75
+ return rules.map((rule) => rule.selectorText);
76
+ })()`;
77
+ const forceStylesScriptOf = (changed) => `(() => {
78
+ ${STYLE_RULES_WALK}
79
+
80
+ for (const [at, selector] of ${JSON.stringify(changed)}) if (rules[at]) rules[at].selectorText = selector;
81
+ })()`;
82
+ /** Rewrites the interaction pseudos of every style rule on `page`, so an element with `data-et-force` draws forced as in a design frame. */
83
+ const forceStylesOf = (page) => __awaiter(void 0, void 0, void 0, function* () {
84
+ const selectors = (yield page.evaluate(STYLE_SELECTORS_SCRIPT));
85
+ const changed = selectors.flatMap((selector, at) => {
86
+ const forced = (0, force_interactions_1.forcedSelectorOf)(selector);
87
+ return forced === selector ? [] : [[at, forced]];
88
+ });
89
+ if (changed.length > 0)
90
+ yield page.evaluate(forceStylesScriptOf(changed));
91
+ });
92
+ const lookMissesScriptOf = (looks) => `(() => ${JSON.stringify(looks)}.filter(({ look, selector }) => {
93
+ try {
94
+ return !document.querySelector('.' + CSS.escape(look) + ' ' + selector);
95
+ } catch {
96
+ return false;
97
+ }
98
+ }))()`;
99
+ /** @internal The problem of a state whose app draws no element a look of the design targets. */
100
+ const lookMissProblemOf = ({ look, selector, part }) => `the look "${look}" targets "${selector}" in ${part}, but no element inside the app's element with that look matches it`;
101
+ exports.lookMissProblemOf = lookMissProblemOf;
102
+ const MOUNTED_INPUTS_SCRIPT = `(() => {
103
+ const mounted = document.querySelector(${JSON.stringify(part_compare_1.HARNESS_HOST_SELECTOR)})?.firstElementChild;
104
+ const ng = window.ng;
105
+
106
+ if (!mounted || !ng?.getComponent || !ng.getDirectiveMetadata) return null;
107
+
108
+ const component = ng.getComponent(mounted);
109
+ const inputs = component ? ng.getDirectiveMetadata(component)?.inputs : null;
110
+
111
+ return inputs ? Object.keys(inputs) : null;
112
+ })()`;
113
+ const clickOpen = (options) => __awaiter(void 0, void 0, void 0, function* () {
114
+ var _a, _b;
115
+ const { page, host, url, control, timeout } = options;
116
+ const scratch = yield page.context().newPage();
117
+ let name;
118
+ try {
119
+ yield scratch.setContent(options.markup);
120
+ const trigger = scratch.locator(`[data-et-control=${JSON.stringify(control)}]`).first();
121
+ name =
122
+ (yield trigger.count()) === 0
123
+ ? null
124
+ : {
125
+ label: yield trigger.getAttribute('aria-label'),
126
+ text: ((_a = (yield trigger.textContent())) !== null && _a !== void 0 ? _a : '').replace(/\s+/g, ' ').trim(),
127
+ };
128
+ }
129
+ finally {
130
+ yield scratch.close();
131
+ }
132
+ if (name === null)
133
+ throw new HarnessError(`the design picture has no [data-et-control="${control}"] trigger to click open`);
134
+ const triggerIn = (scope) => {
135
+ const triggers = scope.locator('[aria-expanded]');
136
+ return name.label === null
137
+ ? triggers.filter({ hasText: name.text })
138
+ : triggers.and(scope.locator(`[aria-label=${JSON.stringify(name.label)}]`));
139
+ };
140
+ const trigger = triggerIn(host)
141
+ .or(triggerIn(page.locator(OVERLAY_ROOTS)))
142
+ .first();
143
+ const named = (_b = name.label) !== null && _b !== void 0 ? _b : name.text;
144
+ yield trigger.waitFor({ state: 'visible', timeout }).catch(() => {
145
+ throw new HarnessError(`the harness page ${url} has no [aria-expanded] trigger named "${named}" to click control ${control} open`);
146
+ });
147
+ yield trigger.click({ timeout });
148
+ yield page.mouse.move(-1, -1);
149
+ yield trigger
150
+ .and(page.locator('[aria-expanded="true"]'))
151
+ .waitFor({ timeout })
152
+ .catch(() => {
153
+ throw new HarnessError(`a click on "${named}" in ${url} did not open control ${control}`);
154
+ });
155
+ });
156
+ const OVERLAY_ROOTS = '.et-overlay-runtime-root, .cdk-overlay-container';
157
+ const VOID_TAGS = new Set([
158
+ 'area',
159
+ 'base',
160
+ 'br',
161
+ 'col',
162
+ 'embed',
163
+ 'hr',
164
+ 'img',
165
+ 'input',
166
+ 'link',
167
+ 'meta',
168
+ 'source',
169
+ 'track',
170
+ 'wbr',
171
+ ]);
172
+ /**
173
+ * The number of overlay panes a design picture draws: each `<et-overlay-container>`, `.et-overlay-runtime-pane`,
174
+ * `<et-menu>` and `<et-select-panel>` mock, as the app renders each of them in a pane of its own. A mock inside a
175
+ * `hidden` element draws none.
176
+ */
177
+ const drawnPaneCountOf = (markup) => {
178
+ var _a;
179
+ const open = [];
180
+ let count = 0;
181
+ for (const [whole, closing, tag = '', attributes = ''] of markup.matchAll(/<(\/?)([a-zA-Z][\w-]*)(\s[^>]*)?>/g)) {
182
+ if (closing) {
183
+ const at = open.map((element) => element.tag).lastIndexOf(tag);
184
+ if (at >= 0)
185
+ open.length = at;
186
+ continue;
187
+ }
188
+ const hidden = !!((_a = open[open.length - 1]) === null || _a === void 0 ? void 0 : _a.hidden) || /\shidden(?=[\s=/>]|$)/.test(attributes.replace(/"[^"]*"/g, '""'));
189
+ if (!hidden &&
190
+ (['et-overlay-container', 'et-menu', 'et-select-panel'].includes(tag) ||
191
+ /\sclass="(?:[^"]*\s)?et-overlay-runtime-pane[\s"]/.test(attributes)))
192
+ count++;
193
+ if (!VOID_TAGS.has(tag.toLowerCase()) && !whole.endsWith('/>'))
194
+ open.push({ tag, hidden });
195
+ }
196
+ return count;
197
+ };
198
+ exports.drawnPaneCountOf = drawnPaneCountOf;
199
+ const FORCED_POLL_MS = 50;
200
+ const escapedForRegExp = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
201
+ /**
202
+ * The one visible app element named as the design's `forced` element: by `aria-label`, else by role or tag and whole
203
+ * text. It looks in the harness host first and in the overlay roots only when the host has none.
204
+ */
205
+ const forcedTargetOf = (options) => __awaiter(void 0, void 0, void 0, function* () {
206
+ const { page, host, forced, url, timeout } = options;
207
+ const { interaction, label, role, text } = forced;
208
+ if (label === null && text === '')
209
+ throw new UndrivableError(`the design forces ${interaction} on a <${role}> without an aria-label or text - compare cannot find it in the app`);
210
+ const named = label === null ? `the ${role} "${text}"` : `the aria-label "${label}"`;
211
+ const matchesIn = (scope) => (label === null
212
+ ? scope
213
+ .locator(`[role=${JSON.stringify(role)}]${/^[a-z][\w-]*$/i.test(role) ? `, ${role}:not([role])` : ''}`)
214
+ .filter({
215
+ hasText: new RegExp(`^\\s*${[...text.replace(/\s+/g, '')].map(escapedForRegExp).join('\\s*')}\\s*$`),
216
+ })
217
+ : scope.locator(`[aria-label=${JSON.stringify(label)}]`)).filter({ visible: true });
218
+ const deadline = Date.now() + timeout;
219
+ for (;;) {
220
+ for (const scope of [host, page.locator(OVERLAY_ROOTS)]) {
221
+ const matches = matchesIn(scope);
222
+ const count = yield matches.count();
223
+ if (count === 1)
224
+ return matches;
225
+ if (count > 1)
226
+ throw new UndrivableError(`the harness page ${url} has ${count} elements with ${named} to force ${interaction} on`);
227
+ }
228
+ if (Date.now() > deadline)
229
+ throw new UndrivableError(`the harness page ${url} has no element with ${named} to force ${interaction} on`);
230
+ yield page.waitForTimeout(FORCED_POLL_MS);
231
+ }
232
+ });
233
+ /**
234
+ * A PNG of the harness host element at `url`, in the viewport of `size` at device scale 1, or without `size` fitted
235
+ * as a design frame fits its root, with its overflowing positioned descendants and rounded to whole pixels, with the
236
+ * pointer off the page, after a pointer click on the app trigger of the design `markup`'s `[data-et-control]` named
237
+ * `opened`, and with each `forced` element hovered, pressed or keyboard-focused as the design picture forces it.
238
+ * With `roomAbove`, for a design picture drawn above its part root, the fitted host gets room above and before it, so
239
+ * an overlay that opens above neither flips below nor shifts off the viewport edge, and the shot grows up as well.
240
+ * Without `size`, a `width` sets the viewport and the host to that width, as a design frame draws a part with `widths`.
241
+ */
242
+ const harnessShotOf = (options) => __awaiter(void 0, void 0, void 0, function* () {
243
+ var _a, _b, _c, _d, _e, _f, _g, _h;
244
+ const { browser, url } = options;
245
+ const step = (name, run) => options.phase ? (0, phase_timing_1.timedPhase)(`${options.phase} ${name}`, run) : run();
246
+ const timeout = (_a = options.timeout) !== null && _a !== void 0 ? _a : thumb_1.DRAW_TIMEOUT_MS;
247
+ const room = !options.size && !!options.roomAbove;
248
+ const width = options.size ? null : ((_b = options.width) !== null && _b !== void 0 ? _b : null);
249
+ const viewport = Object.assign(Object.assign({}, (0, shot_1.viewportOf)((_c = options.size) !== null && _c !== void 0 ? _c : null)), (width ? { width } : {}));
250
+ const context = yield step('context', () => browser.newContext({
251
+ viewport: room ? { width: viewport.width + ROOM_PX, height: viewport.height + ROOM_PX } : viewport,
252
+ deviceScaleFactor: 1,
253
+ }));
254
+ try {
255
+ const page = yield context.newPage();
256
+ const sdkErrors = (0, sdk_errors_1.watchSdkErrors)(page);
257
+ const host = page.locator(part_compare_1.HARNESS_HOST_SELECTOR).first();
258
+ yield step('load', () => __awaiter(void 0, void 0, void 0, function* () {
259
+ yield page.goto(url, { timeout }).catch((error) => {
260
+ var _a;
261
+ throw new HarnessError(`the harness page ${url} did not load: ${(_a = messageOf(error).split('\n')[0]) !== null && _a !== void 0 ? _a : ''}`);
262
+ });
263
+ yield host.waitFor({ state: 'visible', timeout }).catch(() => {
264
+ throw new HarnessError(`the harness page ${url} showed no ${part_compare_1.HARNESS_HOST_SELECTOR} element within ${timeout} ms - does the app serve the design harness route?`);
265
+ });
266
+ }));
267
+ if (width)
268
+ yield page.evaluate(`document.querySelector(${JSON.stringify(part_compare_1.HARNESS_HOST_SELECTOR)}).style.width = '${width}px'`);
269
+ if (options.ambient)
270
+ yield page.evaluate(`Object.assign(document.querySelector(${JSON.stringify(part_compare_1.HARNESS_HOST_SELECTOR)}).style, ${JSON.stringify(options.ambient)})`);
271
+ yield step('fonts', () => (0, thumb_1.awaitFonts)(page));
272
+ if (options.props) {
273
+ const inputs = (yield page.evaluate(MOUNTED_INPUTS_SCRIPT));
274
+ const dropped = inputs ? (0, part_compare_1.droppedPropsOf)(Object.assign({ props: options.props.sent, inputs }, options.props)) : [];
275
+ if (dropped.length > 0)
276
+ throw new DroppedPropsError(`the design prop${dropped.length > 1 ? 's' : ''} ${dropped.join(', ')} ${dropped.length > 1 ? 'have' : 'has'} no input on the app component - the harness drops ${dropped.length > 1 ? 'them' : 'it'}, so compare cannot check this state`);
277
+ }
278
+ if (room)
279
+ yield page.evaluate(`document.documentElement.style.padding = '${ROOM_PX}px 0 0 ${ROOM_PX}px'`);
280
+ yield page.mouse.move(-1, -1);
281
+ const { opened } = options;
282
+ if (opened)
283
+ yield step('open', () => clickOpen(Object.assign({ page, host, url, timeout }, opened)));
284
+ for (const forced of (_d = options.forced) !== null && _d !== void 0 ? _d : []) {
285
+ const { interaction } = forced;
286
+ const element = yield forcedTargetOf({ page, host, forced, url, timeout });
287
+ if (interaction === 'hover')
288
+ yield element.hover({ timeout });
289
+ else if (interaction === 'active') {
290
+ yield element.hover({ timeout });
291
+ yield page.mouse.down();
292
+ }
293
+ else if (interaction === 'focus-visible') {
294
+ yield page.keyboard.press('Shift');
295
+ yield element.focus({ timeout });
296
+ }
297
+ else
298
+ throw new UndrivableError(`compare cannot force ${interaction} on "${(_e = forced.label) !== null && _e !== void 0 ? _e : forced.text}" in the app`);
299
+ }
300
+ const panes = (_f = options.panes) !== null && _f !== void 0 ? _f : 0;
301
+ const { settled, opened: openedPanes } = yield step('settle', () => (0, settled_panes_1.settledPanesOf)({ page, count: panes, timeout }));
302
+ if (!settled)
303
+ throw new HarnessError(`the harness page ${url} did not settle its overlay panes within ${timeout} ms`);
304
+ if (openedPanes !== null)
305
+ throw new MissingPanesError((0, exports.missingPanesProblemOf)({ drawn: panes, opened: openedPanes }));
306
+ if ((_g = options.frozen) === null || _g === void 0 ? void 0 : _g.length)
307
+ yield page.evaluate((0, frozen_animations_1.freezeAnimationsScriptOf)(options.frozen));
308
+ if ((_h = options.looks) === null || _h === void 0 ? void 0 : _h.length) {
309
+ const [missed] = (yield page.evaluate(lookMissesScriptOf(options.looks)));
310
+ if (missed)
311
+ throw new LookMissError((0, exports.lookMissProblemOf)(missed));
312
+ }
313
+ if (options.forcesInFrames)
314
+ yield forceStylesOf(page);
315
+ if (options.size && (yield page.locator(part_compare_1.OVERLAY_PANES).count()) === 0) {
316
+ const hostBox = yield host.evaluate((element) => {
317
+ const { x, y } = element.getBoundingClientRect();
318
+ return { x: Math.round(x + scrollX), y: Math.round(y + scrollY) };
319
+ });
320
+ yield page.evaluate((0, shot_1.checkerScriptOf)(hostBox));
321
+ const png = yield step('screenshot', () => host.screenshot({ type: 'png', animations: 'disabled', timeout }));
322
+ const sdkProblem = sdkErrors(`the harness page ${url}`);
323
+ if (sdkProblem)
324
+ throw new HarnessError(sdkProblem);
325
+ return png;
326
+ }
327
+ // Waits for a stable host as an element screenshot does; without it an overlay a click opened is not drawn yet.
328
+ yield step('stable', () => host.scrollIntoViewIfNeeded({ timeout }));
329
+ const box = (yield page.evaluate((0, part_compare_1.hostBoxScriptOf)({ up: room })));
330
+ const clip = (0, shot_1.pixelBoxOf)(box);
331
+ yield page.evaluate((0, shot_1.checkerScriptOf)(clip));
332
+ const png = yield step('screenshot', () => page.screenshot({
333
+ type: 'png',
334
+ fullPage: true,
335
+ animations: 'disabled',
336
+ clip,
337
+ timeout,
338
+ }));
339
+ const sdkProblem = sdkErrors(`the harness page ${url}`);
340
+ if (sdkProblem)
341
+ throw new HarnessError(sdkProblem);
342
+ return png;
343
+ }
344
+ finally {
345
+ yield context.close();
346
+ }
347
+ });
348
+ exports.harnessShotOf = harnessShotOf;
349
+ //# sourceMappingURL=harness-shot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness-shot.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/system/harness-shot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import { BuildCommandOf } from './harness-server';
2
+ import { ResolvedProduct } from './resolve-product';
3
+ export type WatchLine = 'start' | 'built' | 'failed' | 'busy';
4
+ /** What a line of an Angular watch build's output reports, `null` for anything else. */
5
+ export declare const watchLineOf: (line: string) => WatchLine | null;
6
+ export type WatchBuild = {
7
+ startedAt: number;
8
+ endedAt: number;
9
+ ok: boolean;
10
+ log: string[];
11
+ };
12
+ export type WatchState = {
13
+ last: WatchBuild | null;
14
+ inFlight: {
15
+ startedAt: number;
16
+ prime: boolean;
17
+ } | null;
18
+ };
19
+ /**
20
+ * Whether the last finished watch build shows the inputs as they are: no build of a change is running and either no
21
+ * input changed after the last confirmed state, the last build started after the latest change, or the watcher has
22
+ * not reacted to it within `settle` ms, so the change is no input of the build.
23
+ */
24
+ export declare const isWatchBuildCurrent: (options: {
25
+ state: WatchState;
26
+ changedAt: number | null;
27
+ waitingSince: number;
28
+ now: number;
29
+ settle: number;
30
+ slack: number;
31
+ }) => boolean;
32
+ /** The latest modification time of an input whose content differs from `confirmed`; `now` for a removed one. */
33
+ export declare const changedAtOf: (options: {
34
+ confirmed: ReadonlyMap<string, string>;
35
+ inputs: ReadonlyMap<string, string>;
36
+ mtimeOf: (path: string) => number | null;
37
+ now: number;
38
+ }) => null;
39
+ export declare const nxWatchCommandOf: BuildCommandOf;
40
+ type Watch = {
41
+ key: string;
42
+ app: string;
43
+ wait: (inputs: ReadonlyMap<string, string>) => Promise<{
44
+ url: string;
45
+ root: string;
46
+ } | string>;
47
+ dead: () => boolean;
48
+ stop: () => Promise<void>;
49
+ };
50
+ export declare const startWatch: (options: {
51
+ target: string;
52
+ root: string;
53
+ app: string;
54
+ project: string;
55
+ key: string;
56
+ inputs: ReadonlyMap<string, string>;
57
+ commandOf: BuildCommandOf;
58
+ settle: number;
59
+ timeout: number;
60
+ }) => Watch | string;
61
+ export type HarnessWatch = {
62
+ current: (product: ResolvedProduct) => Promise<{
63
+ url: string;
64
+ root: string;
65
+ } | string | null>;
66
+ stop: () => Promise<void>;
67
+ };
68
+ /**
69
+ * Keeps the harness app of the requested product built by an incremental watch build and serves its output. `current`
70
+ * resolves once the build shows the inputs as they are now, with the URL or the build error, or `null` when the
71
+ * checkout has no git state to watch; a changed config, root file, dot-folder input or install restarts the build.
72
+ */
73
+ export declare const createHarnessWatch: (options: {
74
+ target: string;
75
+ commandOf?: BuildCommandOf;
76
+ settle?: number;
77
+ timeout?: number;
78
+ }) => HarnessWatch;
79
+ export {};