@ethlete/cli 3.0.0-next.26 → 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 (837) hide show
  1. package/CHANGELOG.md +481 -0
  2. package/build-info.json +1 -0
  3. package/design/arrow-anchor.ts +55 -0
  4. package/design/define-call.ts +75 -30
  5. package/design/define-part.ts +64 -4
  6. package/design/icon-sheet.ts +1 -1
  7. package/design/interaction-rows.ts +13 -6
  8. package/design/mark-part.ts +51 -1
  9. package/design/token-sheet.ts +1 -1
  10. package/design/web/frame-fit.ts +7 -0
  11. package/design/web/frame-surfaces.ts +294 -0
  12. package/design/web/frame.ts +69 -15
  13. package/design/web/surface-interactive.css +42 -0
  14. package/design/with-action.ts +29 -0
  15. package/package.json +3 -1
  16. package/src/index.js +9 -1
  17. package/src/index.js.map +1 -1
  18. package/src/lib/api/compose.js +3 -2
  19. package/src/lib/api/compose.js.map +1 -1
  20. package/src/lib/api/git.js +2 -1
  21. package/src/lib/api/git.js.map +1 -1
  22. package/src/lib/api/setup.js +2 -2
  23. package/src/lib/api/setup.js.map +1 -1
  24. package/src/lib/design/asset-shot.js +4 -4
  25. package/src/lib/design/asset-shot.js.map +1 -1
  26. package/src/lib/design/blank-png.d.ts +2 -0
  27. package/src/lib/design/blank-png.js +28 -0
  28. package/src/lib/design/blank-png.js.map +1 -0
  29. package/src/lib/design/build-watch.d.ts +26 -0
  30. package/src/lib/design/build-watch.js +138 -0
  31. package/src/lib/design/build-watch.js.map +1 -0
  32. package/src/lib/design/cache-entry.d.ts +8 -0
  33. package/src/lib/design/cache-entry.js +30 -0
  34. package/src/lib/design/cache-entry.js.map +1 -0
  35. package/src/lib/design/calls-tsconfig.js +20 -13
  36. package/src/lib/design/calls-tsconfig.js.map +1 -1
  37. package/src/lib/design/calls.js +3 -3
  38. package/src/lib/design/calls.js.map +1 -1
  39. package/src/lib/design/changed-parts.d.ts +1 -1
  40. package/src/lib/design/check.d.ts +2 -0
  41. package/src/lib/design/check.js +217 -24
  42. package/src/lib/design/check.js.map +1 -1
  43. package/src/lib/design/code-hash.d.ts +30 -0
  44. package/src/lib/design/code-hash.js +118 -0
  45. package/src/lib/design/code-hash.js.map +1 -0
  46. package/src/lib/design/commit-hunks.d.ts +22 -0
  47. package/src/lib/design/commit-hunks.js +173 -0
  48. package/src/lib/design/commit-hunks.js.map +1 -0
  49. package/src/lib/design/design-command.d.ts +2 -0
  50. package/src/lib/design/design-command.js +271 -27
  51. package/src/lib/design/design-command.js.map +1 -1
  52. package/src/lib/design/{paths.d.ts → design-config.d.ts} +34 -28
  53. package/src/lib/design/design-config.js +35 -0
  54. package/src/lib/design/design-config.js.map +1 -0
  55. package/src/lib/design/design-lint.d.ts +68 -0
  56. package/src/lib/design/design-lint.js +183 -0
  57. package/src/lib/design/design-lint.js.map +1 -0
  58. package/src/lib/design/draw-ledger.d.ts +6 -0
  59. package/src/lib/design/draw-ledger.js +10 -0
  60. package/src/lib/design/draw-ledger.js.map +1 -1
  61. package/src/lib/design/force-interactions.d.ts +3 -1
  62. package/src/lib/design/force-interactions.js +8 -4
  63. package/src/lib/design/force-interactions.js.map +1 -1
  64. package/src/lib/design/generated-stylesheets.d.ts +1 -1
  65. package/src/lib/design/generated-stylesheets.js +2 -2
  66. package/src/lib/design/generated-stylesheets.js.map +1 -1
  67. package/src/lib/design/git-top.d.ts +5 -0
  68. package/src/lib/design/git-top.js +16 -0
  69. package/src/lib/design/git-top.js.map +1 -0
  70. package/src/lib/design/hooks-problem.d.ts +2 -0
  71. package/src/lib/design/hooks-problem.js +23 -0
  72. package/src/lib/design/hooks-problem.js.map +1 -0
  73. package/src/lib/design/inbox-command.js +9 -5
  74. package/src/lib/design/inbox-command.js.map +1 -1
  75. package/src/lib/design/index.d.ts +4 -1
  76. package/src/lib/design/index.js +4 -1
  77. package/src/lib/design/index.js.map +1 -1
  78. package/src/lib/design/is-running.d.ts +1 -0
  79. package/src/lib/design/is-running.js +14 -0
  80. package/src/lib/design/is-running.js.map +1 -0
  81. package/src/lib/design/legacy.js +3 -3
  82. package/src/lib/design/legacy.js.map +1 -1
  83. package/src/lib/design/mcp-command.d.ts +5 -1
  84. package/src/lib/design/mcp-command.js +27 -16
  85. package/src/lib/design/mcp-command.js.map +1 -1
  86. package/src/lib/design/merge-compare.d.ts +10 -2
  87. package/src/lib/design/merge-compare.js +63 -11
  88. package/src/lib/design/merge-compare.js.map +1 -1
  89. package/src/lib/design/motion-command.js +4 -4
  90. package/src/lib/design/motion-command.js.map +1 -1
  91. package/src/lib/design/motion-shot.js +3 -2
  92. package/src/lib/design/motion-shot.js.map +1 -1
  93. package/src/lib/design/new-call.js +22 -13
  94. package/src/lib/design/new-call.js.map +1 -1
  95. package/src/lib/design/old-shot-folders.d.ts +2 -0
  96. package/src/lib/design/old-shot-folders.js +26 -0
  97. package/src/lib/design/old-shot-folders.js.map +1 -0
  98. package/src/lib/design/package-root.d.ts +21 -0
  99. package/src/lib/design/package-root.js +79 -0
  100. package/src/lib/design/package-root.js.map +1 -0
  101. package/src/lib/design/parent-watch.d.ts +7 -0
  102. package/src/lib/design/parent-watch.js +23 -0
  103. package/src/lib/design/parent-watch.js.map +1 -0
  104. package/src/lib/design/part-marks.d.ts +3 -2
  105. package/src/lib/design/part-marks.js +15 -7
  106. package/src/lib/design/part-marks.js.map +1 -1
  107. package/src/lib/design/phase-timing.d.ts +5 -0
  108. package/src/lib/design/phase-timing.js +27 -0
  109. package/src/lib/design/phase-timing.js.map +1 -0
  110. package/src/lib/design/physical-cores.d.ts +12 -0
  111. package/src/lib/design/physical-cores.js +43 -0
  112. package/src/lib/design/physical-cores.js.map +1 -0
  113. package/src/lib/design/product-command.d.ts +1 -1
  114. package/src/lib/design/product-command.js +16 -18
  115. package/src/lib/design/product-command.js.map +1 -1
  116. package/src/lib/design/push-status.d.ts +30 -0
  117. package/src/lib/design/push-status.js +122 -0
  118. package/src/lib/design/push-status.js.map +1 -0
  119. package/src/lib/design/ready-shots.d.ts +21 -12
  120. package/src/lib/design/ready-shots.js +79 -44
  121. package/src/lib/design/ready-shots.js.map +1 -1
  122. package/src/lib/design/render-packages.d.ts +7 -18
  123. package/src/lib/design/render-packages.js +24 -63
  124. package/src/lib/design/render-packages.js.map +1 -1
  125. package/src/lib/design/render-worker.js +24 -6
  126. package/src/lib/design/render-worker.js.map +1 -1
  127. package/src/lib/design/render.d.ts +26 -3
  128. package/src/lib/design/render.js +52 -13
  129. package/src/lib/design/render.js.map +1 -1
  130. package/src/lib/design/resident/client.d.ts +52 -0
  131. package/src/lib/design/resident/client.js +263 -0
  132. package/src/lib/design/resident/client.js.map +1 -0
  133. package/src/lib/design/resident/discovery.d.ts +21 -0
  134. package/src/lib/design/resident/discovery.js +63 -0
  135. package/src/lib/design/resident/discovery.js.map +1 -0
  136. package/src/lib/design/resident/resident-process.d.ts +19 -0
  137. package/src/lib/design/resident/resident-process.js +189 -0
  138. package/src/lib/design/resident/resident-process.js.map +1 -0
  139. package/src/lib/design/resident/server.d.ts +52 -0
  140. package/src/lib/design/resident/server.js +212 -0
  141. package/src/lib/design/resident/server.js.map +1 -0
  142. package/src/lib/design/run-abort.d.ts +9 -0
  143. package/src/lib/design/run-abort.js +45 -0
  144. package/src/lib/design/run-abort.js.map +1 -0
  145. package/src/lib/design/run-deadline.d.ts +19 -0
  146. package/src/lib/design/run-deadline.js +104 -0
  147. package/src/lib/design/run-deadline.js.map +1 -0
  148. package/src/lib/design/run-yield.d.ts +8 -0
  149. package/src/lib/design/run-yield.js +43 -0
  150. package/src/lib/design/run-yield.js.map +1 -0
  151. package/src/lib/design/serve-state.d.ts +15 -0
  152. package/src/lib/design/serve-state.js +56 -0
  153. package/src/lib/design/serve-state.js.map +1 -0
  154. package/src/lib/design/serve.d.ts +41 -3
  155. package/src/lib/design/serve.js +272 -54
  156. package/src/lib/design/serve.js.map +1 -1
  157. package/src/lib/design/server-identity.d.ts +40 -0
  158. package/src/lib/design/server-identity.js +71 -0
  159. package/src/lib/design/server-identity.js.map +1 -0
  160. package/src/lib/design/settle-frames.d.ts +4 -0
  161. package/src/lib/design/settle-frames.js +22 -0
  162. package/src/lib/design/settle-frames.js.map +1 -0
  163. package/src/lib/design/shot-board.d.ts +26 -0
  164. package/src/lib/design/shot-board.js +80 -0
  165. package/src/lib/design/shot-board.js.map +1 -0
  166. package/src/lib/design/shot-command.d.ts +26 -5
  167. package/src/lib/design/shot-command.js +143 -50
  168. package/src/lib/design/shot-command.js.map +1 -1
  169. package/src/lib/design/shot-store.d.ts +29 -3
  170. package/src/lib/design/shot-store.js +206 -36
  171. package/src/lib/design/shot-store.js.map +1 -1
  172. package/src/lib/design/shot.d.ts +60 -2
  173. package/src/lib/design/shot.js +238 -28
  174. package/src/lib/design/shot.js.map +1 -1
  175. package/src/lib/design/sketch-at.js +2 -1
  176. package/src/lib/design/sketch-at.js.map +1 -1
  177. package/src/lib/design/sketch-command.d.ts +19 -1
  178. package/src/lib/design/sketch-command.js +664 -159
  179. package/src/lib/design/sketch-command.js.map +1 -1
  180. package/src/lib/design/ssr-shims.d.ts +1 -0
  181. package/src/lib/design/ssr-shims.js +3 -3
  182. package/src/lib/design/ssr-shims.js.map +1 -1
  183. package/src/lib/design/stale-cli-dist.d.ts +11 -0
  184. package/src/lib/design/stale-cli-dist.js +56 -0
  185. package/src/lib/design/stale-cli-dist.js.map +1 -0
  186. package/src/lib/design/stamp.d.ts +23 -1
  187. package/src/lib/design/stamp.js +56 -9
  188. package/src/lib/design/stamp.js.map +1 -1
  189. package/src/lib/design/started-by-studio.d.ts +1 -0
  190. package/src/lib/design/started-by-studio.js +6 -0
  191. package/src/lib/design/started-by-studio.js.map +1 -0
  192. package/src/lib/design/status.d.ts +1 -1
  193. package/src/lib/design/status.js +15 -4
  194. package/src/lib/design/status.js.map +1 -1
  195. package/src/lib/design/studio-api.d.ts +21 -10
  196. package/src/lib/design/studio-api.js +192 -88
  197. package/src/lib/design/studio-api.js.map +1 -1
  198. package/src/lib/design/system/accepted-pictures.d.ts +69 -0
  199. package/src/lib/design/system/accepted-pictures.js +346 -0
  200. package/src/lib/design/system/accepted-pictures.js.map +1 -0
  201. package/src/lib/design/system/action-cache.d.ts +45 -0
  202. package/src/lib/design/system/action-cache.js +72 -0
  203. package/src/lib/design/system/action-cache.js.map +1 -0
  204. package/src/lib/design/system/action-lost.d.ts +61 -0
  205. package/src/lib/design/system/action-lost.js +116 -0
  206. package/src/lib/design/system/action-lost.js.map +1 -0
  207. package/src/lib/design/system/action-press.d.ts +29 -0
  208. package/src/lib/design/system/action-press.js +88 -0
  209. package/src/lib/design/system/action-press.js.map +1 -0
  210. package/src/lib/design/system/action-undeclared.d.ts +34 -0
  211. package/src/lib/design/system/action-undeclared.js +81 -0
  212. package/src/lib/design/system/action-undeclared.js.map +1 -0
  213. package/src/lib/design/system/actions-command.d.ts +108 -0
  214. package/src/lib/design/system/actions-command.js +816 -0
  215. package/src/lib/design/system/actions-command.js.map +1 -0
  216. package/src/lib/design/system/actions.d.ts +181 -0
  217. package/src/lib/design/system/actions.js +333 -0
  218. package/src/lib/design/system/actions.js.map +1 -0
  219. package/src/lib/design/system/anti-alias.d.ts +2 -0
  220. package/src/lib/design/system/anti-alias.js +11 -0
  221. package/src/lib/design/system/anti-alias.js.map +1 -0
  222. package/src/lib/design/system/app-files.d.ts +10 -0
  223. package/src/lib/design/system/app-files.js +175 -0
  224. package/src/lib/design/system/app-files.js.map +1 -0
  225. package/src/lib/design/system/arrow-anchor.d.ts +9 -0
  226. package/src/lib/design/system/arrow-anchor.js +40 -0
  227. package/src/lib/design/system/arrow-anchor.js.map +1 -0
  228. package/src/lib/design/system/base-issues.d.ts +28 -0
  229. package/src/lib/design/system/base-issues.js +80 -0
  230. package/src/lib/design/system/base-issues.js.map +1 -0
  231. package/src/lib/design/system/base.d.ts +1 -1
  232. package/src/lib/design/system/base.js +2 -2
  233. package/src/lib/design/system/base.js.map +1 -1
  234. package/src/lib/design/system/baseline-history.d.ts +13 -0
  235. package/src/lib/design/system/baseline-history.js +40 -0
  236. package/src/lib/design/system/baseline-history.js.map +1 -0
  237. package/src/lib/design/system/bespoke-controls.d.ts +33 -0
  238. package/src/lib/design/system/bespoke-controls.js +149 -0
  239. package/src/lib/design/system/bespoke-controls.js.map +1 -0
  240. package/src/lib/design/system/build-ready-contract.d.ts +33 -0
  241. package/src/lib/design/system/build-ready-contract.js +18 -0
  242. package/src/lib/design/system/build-ready-contract.js.map +1 -0
  243. package/src/lib/design/system/build-running.d.ts +13 -0
  244. package/src/lib/design/system/build-running.js +48 -0
  245. package/src/lib/design/system/build-running.js.map +1 -0
  246. package/src/lib/design/system/check-record.d.ts +18 -0
  247. package/src/lib/design/system/check-record.js +47 -0
  248. package/src/lib/design/system/check-record.js.map +1 -0
  249. package/src/lib/design/system/check-rules.d.ts +1 -0
  250. package/src/lib/design/system/check-rules.js +100 -0
  251. package/src/lib/design/system/check-rules.js.map +1 -0
  252. package/src/lib/design/system/check-system.d.ts +83 -7
  253. package/src/lib/design/system/check-system.js +647 -68
  254. package/src/lib/design/system/check-system.js.map +1 -1
  255. package/src/lib/design/system/comments/comment.d.ts +4 -1
  256. package/src/lib/design/system/comments/comment.js +13 -4
  257. package/src/lib/design/system/comments/comment.js.map +1 -1
  258. package/src/lib/design/system/comments/inbox.d.ts +1 -1
  259. package/src/lib/design/system/comments/inbox.js +2 -2
  260. package/src/lib/design/system/comments/inbox.js.map +1 -1
  261. package/src/lib/design/system/compare-cache.d.ts +20 -0
  262. package/src/lib/design/system/compare-cache.js +92 -0
  263. package/src/lib/design/system/compare-cache.js.map +1 -0
  264. package/src/lib/design/system/compare-command.d.ts +150 -0
  265. package/src/lib/design/system/compare-command.js +580 -0
  266. package/src/lib/design/system/compare-command.js.map +1 -0
  267. package/src/lib/design/system/complete-command.js +1 -1
  268. package/src/lib/design/system/complete-command.js.map +1 -1
  269. package/src/lib/design/system/complete.d.ts +63 -2
  270. package/src/lib/design/system/complete.js +281 -71
  271. package/src/lib/design/system/complete.js.map +1 -1
  272. package/src/lib/design/system/component-outputs.d.ts +20 -0
  273. package/src/lib/design/system/component-outputs.js +86 -0
  274. package/src/lib/design/system/component-outputs.js.map +1 -0
  275. package/src/lib/design/system/contrast-check.d.ts +1 -1
  276. package/src/lib/design/system/contrast-check.js +14 -3
  277. package/src/lib/design/system/contrast-check.js.map +1 -1
  278. package/src/lib/design/system/decision-refs.d.ts +5 -0
  279. package/src/lib/design/system/decision-refs.js +21 -0
  280. package/src/lib/design/system/decision-refs.js.map +1 -0
  281. package/src/lib/design/system/demo-backdrop.d.ts +11 -0
  282. package/src/lib/design/system/demo-backdrop.js +41 -0
  283. package/src/lib/design/system/demo-backdrop.js.map +1 -0
  284. package/src/lib/design/system/design-hash.d.ts +52 -0
  285. package/src/lib/design/system/design-hash.js +132 -0
  286. package/src/lib/design/system/design-hash.js.map +1 -0
  287. package/src/lib/design/system/disabled-interaction.d.ts +8 -0
  288. package/src/lib/design/system/disabled-interaction.js +37 -0
  289. package/src/lib/design/system/disabled-interaction.js.map +1 -0
  290. package/src/lib/design/system/dom-command.d.ts +36 -0
  291. package/src/lib/design/system/dom-command.js +178 -0
  292. package/src/lib/design/system/dom-command.js.map +1 -0
  293. package/src/lib/design/system/drawn-open-points.d.ts +26 -4
  294. package/src/lib/design/system/drawn-open-points.js +65 -14
  295. package/src/lib/design/system/drawn-open-points.js.map +1 -1
  296. package/src/lib/design/system/dropped-props.d.ts +39 -0
  297. package/src/lib/design/system/dropped-props.js +271 -0
  298. package/src/lib/design/system/dropped-props.js.map +1 -0
  299. package/src/lib/design/system/embedded-actions.d.ts +21 -0
  300. package/src/lib/design/system/embedded-actions.js +37 -0
  301. package/src/lib/design/system/embedded-actions.js.map +1 -0
  302. package/src/lib/design/system/exceptions.js +2 -1
  303. package/src/lib/design/system/exceptions.js.map +1 -1
  304. package/src/lib/design/system/flows/flow.js +2 -1
  305. package/src/lib/design/system/flows/flow.js.map +1 -1
  306. package/src/lib/design/system/frozen-animations.d.ts +13 -0
  307. package/src/lib/design/system/frozen-animations.js +51 -0
  308. package/src/lib/design/system/frozen-animations.js.map +1 -0
  309. package/src/lib/design/system/grid-report.d.ts +5 -0
  310. package/src/lib/design/system/grid-report.js +78 -0
  311. package/src/lib/design/system/grid-report.js.map +1 -0
  312. package/src/lib/design/system/handoff.js +2 -1
  313. package/src/lib/design/system/handoff.js.map +1 -1
  314. package/src/lib/design/system/harness-build-cache.d.ts +49 -0
  315. package/src/lib/design/system/harness-build-cache.js +188 -0
  316. package/src/lib/design/system/harness-build-cache.js.map +1 -0
  317. package/src/lib/design/system/harness-command.d.ts +7 -0
  318. package/src/lib/design/system/harness-command.js +51 -0
  319. package/src/lib/design/system/harness-command.js.map +1 -0
  320. package/src/lib/design/system/harness-config.d.ts +9 -0
  321. package/src/lib/design/system/harness-config.js +65 -0
  322. package/src/lib/design/system/harness-config.js.map +1 -0
  323. package/src/lib/design/system/harness-inputs.d.ts +17 -0
  324. package/src/lib/design/system/harness-inputs.js +160 -0
  325. package/src/lib/design/system/harness-inputs.js.map +1 -0
  326. package/src/lib/design/system/harness-map.d.ts +44 -0
  327. package/src/lib/design/system/harness-map.js +126 -0
  328. package/src/lib/design/system/harness-map.js.map +1 -0
  329. package/src/lib/design/system/harness-samples.d.ts +20 -0
  330. package/src/lib/design/system/harness-samples.js +92 -0
  331. package/src/lib/design/system/harness-samples.js.map +1 -0
  332. package/src/lib/design/system/harness-server.d.ts +51 -0
  333. package/src/lib/design/system/harness-server.js +306 -0
  334. package/src/lib/design/system/harness-server.js.map +1 -0
  335. package/src/lib/design/system/harness-shot.d.ts +78 -0
  336. package/src/lib/design/system/harness-shot.js +349 -0
  337. package/src/lib/design/system/harness-shot.js.map +1 -0
  338. package/src/lib/design/system/harness-watch.d.ts +79 -0
  339. package/src/lib/design/system/harness-watch.js +334 -0
  340. package/src/lib/design/system/harness-watch.js.map +1 -0
  341. package/src/lib/design/system/implementation-baseline.d.ts +20 -0
  342. package/src/lib/design/system/implementation-baseline.js +44 -0
  343. package/src/lib/design/system/implementation-baseline.js.map +1 -0
  344. package/src/lib/design/system/imports.js +14 -1
  345. package/src/lib/design/system/imports.js.map +1 -1
  346. package/src/lib/design/system/in-order-at-once.d.ts +6 -0
  347. package/src/lib/design/system/in-order-at-once.js +28 -0
  348. package/src/lib/design/system/in-order-at-once.js.map +1 -0
  349. package/src/lib/design/system/inventory-approval.js +2 -1
  350. package/src/lib/design/system/inventory-approval.js.map +1 -1
  351. package/src/lib/design/system/inventory.d.ts +13 -4
  352. package/src/lib/design/system/inventory.js +36 -7
  353. package/src/lib/design/system/inventory.js.map +1 -1
  354. package/src/lib/design/system/leftover-gate-files.d.ts +2 -0
  355. package/src/lib/design/system/leftover-gate-files.js +15 -0
  356. package/src/lib/design/system/leftover-gate-files.js.map +1 -0
  357. package/src/lib/design/system/lib-build-lock.d.ts +18 -0
  358. package/src/lib/design/system/lib-build-lock.js +111 -0
  359. package/src/lib/design/system/lib-build-lock.js.map +1 -0
  360. package/src/lib/design/system/link-free.d.ts +12 -0
  361. package/src/lib/design/system/link-free.js +125 -0
  362. package/src/lib/design/system/link-free.js.map +1 -0
  363. package/src/lib/design/system/list-system.d.ts +8 -8
  364. package/src/lib/design/system/list-system.js +19 -80
  365. package/src/lib/design/system/list-system.js.map +1 -1
  366. package/src/lib/design/system/live-actions.d.ts +121 -0
  367. package/src/lib/design/system/live-actions.js +674 -0
  368. package/src/lib/design/system/live-actions.js.map +1 -0
  369. package/src/lib/design/system/live-compare.d.ts +136 -0
  370. package/src/lib/design/system/live-compare.js +441 -0
  371. package/src/lib/design/system/live-compare.js.map +1 -0
  372. package/src/lib/design/system/live-uncovered.d.ts +45 -0
  373. package/src/lib/design/system/live-uncovered.js +158 -0
  374. package/src/lib/design/system/live-uncovered.js.map +1 -0
  375. package/src/lib/design/system/nested-scroll.d.ts +7 -0
  376. package/src/lib/design/system/nested-scroll.js +25 -0
  377. package/src/lib/design/system/nested-scroll.js.map +1 -0
  378. package/src/lib/design/system/no-verdict.d.ts +13 -0
  379. package/src/lib/design/system/no-verdict.js +17 -0
  380. package/src/lib/design/system/no-verdict.js.map +1 -0
  381. package/src/lib/design/system/notes/note.js +2 -1
  382. package/src/lib/design/system/notes/note.js.map +1 -1
  383. package/src/lib/design/system/occluded.d.ts +13 -0
  384. package/src/lib/design/system/occluded.js +111 -0
  385. package/src/lib/design/system/occluded.js.map +1 -0
  386. package/src/lib/design/system/off-centre.d.ts +11 -0
  387. package/src/lib/design/system/off-centre.js +74 -0
  388. package/src/lib/design/system/off-centre.js.map +1 -0
  389. package/src/lib/design/system/open-points-cache.d.ts +11 -0
  390. package/src/lib/design/system/open-points-cache.js +27 -0
  391. package/src/lib/design/system/open-points-cache.js.map +1 -0
  392. package/src/lib/design/system/open-points-runner.d.ts +43 -0
  393. package/src/lib/design/system/open-points-runner.js +119 -0
  394. package/src/lib/design/system/open-points-runner.js.map +1 -0
  395. package/src/lib/design/system/open-points-worker.d.ts +1 -0
  396. package/src/lib/design/system/open-points-worker.js +28 -0
  397. package/src/lib/design/system/open-points-worker.js.map +1 -0
  398. package/src/lib/design/system/open-points.d.ts +24 -6
  399. package/src/lib/design/system/open-points.js +59 -30
  400. package/src/lib/design/system/open-points.js.map +1 -1
  401. package/src/lib/design/system/part-build-ready.d.ts +45 -0
  402. package/src/lib/design/system/part-build-ready.js +135 -0
  403. package/src/lib/design/system/part-build-ready.js.map +1 -0
  404. package/src/lib/design/system/part-command.js +2 -9
  405. package/src/lib/design/system/part-command.js.map +1 -1
  406. package/src/lib/design/system/part-compare.d.ts +139 -0
  407. package/src/lib/design/system/part-compare.js +501 -0
  408. package/src/lib/design/system/part-compare.js.map +1 -0
  409. package/src/lib/design/system/part-picture-cache.d.ts +23 -0
  410. package/src/lib/design/system/part-picture-cache.js +68 -0
  411. package/src/lib/design/system/part-picture-cache.js.map +1 -0
  412. package/src/lib/design/system/part-ready.d.ts +71 -7
  413. package/src/lib/design/system/part-ready.js +128 -19
  414. package/src/lib/design/system/part-ready.js.map +1 -1
  415. package/src/lib/design/system/part-task.d.ts +167 -0
  416. package/src/lib/design/system/part-task.js +331 -0
  417. package/src/lib/design/system/part-task.js.map +1 -0
  418. package/src/lib/design/system/pixel-cache.d.ts +16 -0
  419. package/src/lib/design/system/pixel-cache.js +79 -0
  420. package/src/lib/design/system/pixel-cache.js.map +1 -0
  421. package/src/lib/design/system/pointer-focus.d.ts +89 -0
  422. package/src/lib/design/system/pointer-focus.js +175 -0
  423. package/src/lib/design/system/pointer-focus.js.map +1 -0
  424. package/src/lib/design/system/prettier.d.ts +10 -0
  425. package/src/lib/design/system/prettier.js +37 -0
  426. package/src/lib/design/system/prettier.js.map +1 -0
  427. package/src/lib/design/system/problem.d.ts +6 -0
  428. package/src/lib/design/system/product.js +2 -2
  429. package/src/lib/design/system/product.js.map +1 -1
  430. package/src/lib/design/system/reach.d.ts +12 -0
  431. package/src/lib/design/system/reach.js +186 -0
  432. package/src/lib/design/system/reach.js.map +1 -0
  433. package/src/lib/design/system/reachable-controls.d.ts +6 -0
  434. package/src/lib/design/system/reachable-controls.js +19 -0
  435. package/src/lib/design/system/reachable-controls.js.map +1 -0
  436. package/src/lib/design/system/reachable-files.d.ts +14 -0
  437. package/src/lib/design/system/reachable-files.js +101 -0
  438. package/src/lib/design/system/reachable-files.js.map +1 -0
  439. package/src/lib/design/system/reached-state.d.ts +23 -0
  440. package/src/lib/design/system/reached-state.js +53 -0
  441. package/src/lib/design/system/reached-state.js.map +1 -0
  442. package/src/lib/design/system/read-open-points.d.ts +9 -3
  443. package/src/lib/design/system/read-open-points.js +38 -9
  444. package/src/lib/design/system/read-open-points.js.map +1 -1
  445. package/src/lib/design/system/ready-command.d.ts +6 -2
  446. package/src/lib/design/system/ready-command.js +52 -15
  447. package/src/lib/design/system/ready-command.js.map +1 -1
  448. package/src/lib/design/system/record-settled.d.ts +24 -0
  449. package/src/lib/design/system/record-settled.js +50 -0
  450. package/src/lib/design/system/record-settled.js.map +1 -0
  451. package/src/lib/design/system/render-check.d.ts +68 -1
  452. package/src/lib/design/system/render-check.js +427 -114
  453. package/src/lib/design/system/render-check.js.map +1 -1
  454. package/src/lib/design/system/render-issue-key.d.ts +9 -0
  455. package/src/lib/design/system/render-issue-key.js +27 -0
  456. package/src/lib/design/system/render-issue-key.js.map +1 -0
  457. package/src/lib/design/system/resolve-product.d.ts +4 -1
  458. package/src/lib/design/system/resolve-product.js +19 -3
  459. package/src/lib/design/system/resolve-product.js.map +1 -1
  460. package/src/lib/design/system/rule-baseline.d.ts +53 -0
  461. package/src/lib/design/system/rule-baseline.js +124 -0
  462. package/src/lib/design/system/rule-baseline.js.map +1 -0
  463. package/src/lib/design/system/rule-skips.d.ts +20 -0
  464. package/src/lib/design/system/rule-skips.js +36 -0
  465. package/src/lib/design/system/rule-skips.js.map +1 -0
  466. package/src/lib/design/system/rules/app-spec.d.ts +30 -0
  467. package/src/lib/design/system/rules/app-spec.js +87 -0
  468. package/src/lib/design/system/rules/app-spec.js.map +1 -0
  469. package/src/lib/design/system/rules/canonical-class.d.ts +6 -0
  470. package/src/lib/design/system/rules/canonical-class.js +92 -113
  471. package/src/lib/design/system/rules/canonical-class.js.map +1 -1
  472. package/src/lib/design/system/rules/capability-place.d.ts +46 -0
  473. package/src/lib/design/system/rules/capability-place.js +129 -0
  474. package/src/lib/design/system/rules/capability-place.js.map +1 -0
  475. package/src/lib/design/system/rules/command-text.d.ts +7 -0
  476. package/src/lib/design/system/rules/command-text.js +72 -0
  477. package/src/lib/design/system/rules/command-text.js.map +1 -0
  478. package/src/lib/design/system/rules/denied-class.d.ts +9 -0
  479. package/src/lib/design/system/rules/denied-class.js +121 -0
  480. package/src/lib/design/system/rules/denied-class.js.map +1 -0
  481. package/src/lib/design/system/rules/design-coverage.d.ts +30 -0
  482. package/src/lib/design/system/rules/design-coverage.js +205 -0
  483. package/src/lib/design/system/rules/design-coverage.js.map +1 -0
  484. package/src/lib/design/system/rules/exemptions.d.ts +18 -0
  485. package/src/lib/design/system/rules/exemptions.js +18 -0
  486. package/src/lib/design/system/rules/exemptions.js.map +1 -0
  487. package/src/lib/design/system/rules/flow.js +1 -1
  488. package/src/lib/design/system/rules/flow.js.map +1 -1
  489. package/src/lib/design/system/rules/glued-interpolation.d.ts +8 -0
  490. package/src/lib/design/system/rules/glued-interpolation.js +77 -0
  491. package/src/lib/design/system/rules/glued-interpolation.js.map +1 -0
  492. package/src/lib/design/system/rules/hard-coded-colour.js +2 -1
  493. package/src/lib/design/system/rules/hard-coded-colour.js.map +1 -1
  494. package/src/lib/design/system/rules/implemented-components.d.ts +22 -0
  495. package/src/lib/design/system/rules/implemented-components.js +45 -0
  496. package/src/lib/design/system/rules/implemented-components.js.map +1 -0
  497. package/src/lib/design/system/rules/implements-unrendered.d.ts +13 -0
  498. package/src/lib/design/system/rules/implements-unrendered.js +63 -0
  499. package/src/lib/design/system/rules/implements-unrendered.js.map +1 -0
  500. package/src/lib/design/system/rules/implements.d.ts +2 -1
  501. package/src/lib/design/system/rules/implements.js +26 -21
  502. package/src/lib/design/system/rules/implements.js.map +1 -1
  503. package/src/lib/design/system/rules/inline-svg.js +4 -1
  504. package/src/lib/design/system/rules/inline-svg.js.map +1 -1
  505. package/src/lib/design/system/rules/inline-ui-in-page-open.d.ts +13 -0
  506. package/src/lib/design/system/rules/inline-ui-in-page-open.js +5 -0
  507. package/src/lib/design/system/rules/inline-ui-in-page-open.js.map +1 -0
  508. package/src/lib/design/system/rules/inline-ui-in-page.d.ts +18 -0
  509. package/src/lib/design/system/rules/inline-ui-in-page.js +123 -0
  510. package/src/lib/design/system/rules/inline-ui-in-page.js.map +1 -0
  511. package/src/lib/design/system/rules/inline-ui.d.ts +16 -0
  512. package/src/lib/design/system/rules/inline-ui.js +100 -0
  513. package/src/lib/design/system/rules/inline-ui.js.map +1 -0
  514. package/src/lib/design/system/rules/motion.d.ts +1 -1
  515. package/src/lib/design/system/rules/motion.js +31 -17
  516. package/src/lib/design/system/rules/motion.js.map +1 -1
  517. package/src/lib/design/system/rules/native-title.d.ts +7 -0
  518. package/src/lib/design/system/rules/native-title.js +74 -0
  519. package/src/lib/design/system/rules/native-title.js.map +1 -0
  520. package/src/lib/design/system/rules/option-values.d.ts +1 -1
  521. package/src/lib/design/system/rules/orphan-endpoint-known.d.ts +12 -0
  522. package/src/lib/design/system/rules/orphan-endpoint-known.js +20 -0
  523. package/src/lib/design/system/rules/orphan-endpoint-known.js.map +1 -0
  524. package/src/lib/design/system/rules/orphan-endpoint.d.ts +23 -0
  525. package/src/lib/design/system/rules/orphan-endpoint.js +166 -0
  526. package/src/lib/design/system/rules/orphan-endpoint.js.map +1 -0
  527. package/src/lib/design/system/rules/part-rewrite.d.ts +13 -0
  528. package/src/lib/design/system/rules/part-rewrite.js +125 -0
  529. package/src/lib/design/system/rules/part-rewrite.js.map +1 -0
  530. package/src/lib/design/system/rules/pending-state.d.ts +39 -0
  531. package/src/lib/design/system/rules/pending-state.js +289 -0
  532. package/src/lib/design/system/rules/pending-state.js.map +1 -0
  533. package/src/lib/design/system/rules/sample-default-known.d.ts +5 -0
  534. package/src/lib/design/system/rules/sample-default-known.js +17 -0
  535. package/src/lib/design/system/rules/sample-default-known.js.map +1 -0
  536. package/src/lib/design/system/rules/sample-default.d.ts +22 -0
  537. package/src/lib/design/system/rules/sample-default.js +92 -0
  538. package/src/lib/design/system/rules/sample-default.js.map +1 -0
  539. package/src/lib/design/system/rules/sdk-attribute-value.d.ts +10 -0
  540. package/src/lib/design/system/rules/sdk-attribute-value.js +78 -0
  541. package/src/lib/design/system/rules/sdk-attribute-value.js.map +1 -0
  542. package/src/lib/design/system/rules/sdk-private-var.d.ts +9 -0
  543. package/src/lib/design/system/rules/sdk-private-var.js +54 -0
  544. package/src/lib/design/system/rules/sdk-private-var.js.map +1 -0
  545. package/src/lib/design/system/rules/skips.d.ts +4 -0
  546. package/src/lib/design/system/rules/skips.js +27 -0
  547. package/src/lib/design/system/rules/skips.js.map +1 -0
  548. package/src/lib/design/system/rules/stale-replace.js +5 -0
  549. package/src/lib/design/system/rules/stale-replace.js.map +1 -1
  550. package/src/lib/design/system/rules/state-in-component.d.ts +16 -0
  551. package/src/lib/design/system/rules/state-in-component.js +101 -0
  552. package/src/lib/design/system/rules/state-in-component.js.map +1 -0
  553. package/src/lib/design/system/rules/tailwind-classes.d.ts +52 -0
  554. package/src/lib/design/system/rules/tailwind-classes.js +237 -0
  555. package/src/lib/design/system/rules/tailwind-classes.js.map +1 -0
  556. package/src/lib/design/system/rules/token-selectors.js +10 -3
  557. package/src/lib/design/system/rules/token-selectors.js.map +1 -1
  558. package/src/lib/design/system/rules/top-level-await.d.ts +9 -0
  559. package/src/lib/design/system/rules/top-level-await.js +62 -0
  560. package/src/lib/design/system/rules/top-level-await.js.map +1 -0
  561. package/src/lib/design/system/rules/unbound-input-known.d.ts +7 -0
  562. package/src/lib/design/system/rules/unbound-input-known.js +44 -0
  563. package/src/lib/design/system/rules/unbound-input-known.js.map +1 -0
  564. package/src/lib/design/system/rules/unbound-input.d.ts +24 -0
  565. package/src/lib/design/system/rules/unbound-input.js +67 -0
  566. package/src/lib/design/system/rules/unbound-input.js.map +1 -0
  567. package/src/lib/design/system/rules/uncovered-region.d.ts +13 -0
  568. package/src/lib/design/system/rules/uncovered-region.js +36 -0
  569. package/src/lib/design/system/rules/uncovered-region.js.map +1 -0
  570. package/src/lib/design/system/rules/undefined-class.d.ts +9 -0
  571. package/src/lib/design/system/rules/undefined-class.js +41 -0
  572. package/src/lib/design/system/rules/undefined-class.js.map +1 -0
  573. package/src/lib/design/system/rules/undefined-token.d.ts +1 -1
  574. package/src/lib/design/system/rules/undefined-token.js +7 -61
  575. package/src/lib/design/system/rules/undefined-token.js.map +1 -1
  576. package/src/lib/design/system/rules/utility-css.d.ts +2 -1
  577. package/src/lib/design/system/rules/utility-css.js +40 -13
  578. package/src/lib/design/system/rules/utility-css.js.map +1 -1
  579. package/src/lib/design/system/rules/view-coverage.d.ts +8 -0
  580. package/src/lib/design/system/rules/view-coverage.js +51 -0
  581. package/src/lib/design/system/rules/view-coverage.js.map +1 -0
  582. package/src/lib/design/system/rules/visible-change.d.ts +19 -0
  583. package/src/lib/design/system/rules/visible-change.js +48 -0
  584. package/src/lib/design/system/rules/visible-change.js.map +1 -0
  585. package/src/lib/design/system/sdk-declarations.d.ts +10 -0
  586. package/src/lib/design/system/sdk-declarations.js +177 -0
  587. package/src/lib/design/system/sdk-declarations.js.map +1 -0
  588. package/src/lib/design/system/sdk-errors.d.ts +14 -0
  589. package/src/lib/design/system/sdk-errors.js +38 -0
  590. package/src/lib/design/system/sdk-errors.js.map +1 -0
  591. package/src/lib/design/system/sdk-selectors.d.ts +18 -0
  592. package/src/lib/design/system/sdk-selectors.js +131 -0
  593. package/src/lib/design/system/sdk-selectors.js.map +1 -0
  594. package/src/lib/design/system/see-through.d.ts +12 -0
  595. package/src/lib/design/system/see-through.js +112 -0
  596. package/src/lib/design/system/see-through.js.map +1 -0
  597. package/src/lib/design/system/served-cache.d.ts +99 -0
  598. package/src/lib/design/system/served-cache.js +202 -0
  599. package/src/lib/design/system/served-cache.js.map +1 -0
  600. package/src/lib/design/system/settled-panes.d.ts +23 -0
  601. package/src/lib/design/system/settled-panes.js +71 -0
  602. package/src/lib/design/system/settled-panes.js.map +1 -0
  603. package/src/lib/design/system/sketch/after-merge.d.ts +11 -0
  604. package/src/lib/design/system/sketch/after-merge.js +51 -0
  605. package/src/lib/design/system/sketch/after-merge.js.map +1 -0
  606. package/src/lib/design/system/sketch/aktuell-placeholders.d.ts +30 -0
  607. package/src/lib/design/system/sketch/aktuell-placeholders.js +87 -0
  608. package/src/lib/design/system/sketch/aktuell-placeholders.js.map +1 -0
  609. package/src/lib/design/system/sketch/baseline.d.ts +36 -2
  610. package/src/lib/design/system/sketch/baseline.js +76 -13
  611. package/src/lib/design/system/sketch/baseline.js.map +1 -1
  612. package/src/lib/design/system/sketch/check-format.js +3 -9
  613. package/src/lib/design/system/sketch/check-format.js.map +1 -1
  614. package/src/lib/design/system/sketch/check-sketches.d.ts +10 -0
  615. package/src/lib/design/system/sketch/check-sketches.js +50 -4
  616. package/src/lib/design/system/sketch/check-sketches.js.map +1 -1
  617. package/src/lib/design/system/sketch/clean-copy.d.ts +18 -0
  618. package/src/lib/design/system/sketch/clean-copy.js +104 -0
  619. package/src/lib/design/system/sketch/clean-copy.js.map +1 -0
  620. package/src/lib/design/system/sketch/cli-args.d.ts +13 -3
  621. package/src/lib/design/system/sketch/cli-args.js +20 -5
  622. package/src/lib/design/system/sketch/cli-args.js.map +1 -1
  623. package/src/lib/design/system/sketch/covered-diffs.d.ts +40 -0
  624. package/src/lib/design/system/sketch/covered-diffs.js +106 -0
  625. package/src/lib/design/system/sketch/covered-diffs.js.map +1 -0
  626. package/src/lib/design/system/sketch/edit-sketch.d.ts +29 -0
  627. package/src/lib/design/system/sketch/edit-sketch.js +169 -0
  628. package/src/lib/design/system/sketch/edit-sketch.js.map +1 -0
  629. package/src/lib/design/system/sketch/frame-budget.d.ts +24 -0
  630. package/src/lib/design/system/sketch/frame-budget.js +23 -0
  631. package/src/lib/design/system/sketch/frame-budget.js.map +1 -0
  632. package/src/lib/design/system/sketch/identical-renders.d.ts +31 -0
  633. package/src/lib/design/system/sketch/identical-renders.js +143 -0
  634. package/src/lib/design/system/sketch/identical-renders.js.map +1 -0
  635. package/src/lib/design/system/sketch/merge-commit.d.ts +20 -0
  636. package/src/lib/design/system/sketch/merge-commit.js +72 -0
  637. package/src/lib/design/system/sketch/merge-commit.js.map +1 -0
  638. package/src/lib/design/system/sketch/merge-runner.d.ts +20 -0
  639. package/src/lib/design/system/sketch/merge-runner.js +73 -0
  640. package/src/lib/design/system/sketch/merge-runner.js.map +1 -0
  641. package/src/lib/design/system/sketch/merge-shared.d.ts +2 -0
  642. package/src/lib/design/system/sketch/merge-shared.js +7 -10
  643. package/src/lib/design/system/sketch/merge-shared.js.map +1 -1
  644. package/src/lib/design/system/sketch/merge-step.d.ts +47 -0
  645. package/src/lib/design/system/sketch/merge-step.js +110 -0
  646. package/src/lib/design/system/sketch/merge-step.js.map +1 -0
  647. package/src/lib/design/system/sketch/merge-worker.d.ts +1 -0
  648. package/src/lib/design/system/sketch/merge-worker.js +14 -0
  649. package/src/lib/design/system/sketch/merge-worker.js.map +1 -0
  650. package/src/lib/design/system/sketch/merge.d.ts +19 -5
  651. package/src/lib/design/system/sketch/merge.js +245 -82
  652. package/src/lib/design/system/sketch/merge.js.map +1 -1
  653. package/src/lib/design/system/sketch/merged-layout.d.ts +17 -0
  654. package/src/lib/design/system/sketch/merged-layout.js +57 -0
  655. package/src/lib/design/system/sketch/merged-layout.js.map +1 -0
  656. package/src/lib/design/system/sketch/merged-parts.d.ts +31 -30
  657. package/src/lib/design/system/sketch/merged-parts.js +99 -84
  658. package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
  659. package/src/lib/design/system/sketch/no-visible-change.d.ts +10 -0
  660. package/src/lib/design/system/sketch/no-visible-change.js +16 -6
  661. package/src/lib/design/system/sketch/no-visible-change.js.map +1 -1
  662. package/src/lib/design/system/sketch/note-language.d.ts +7 -0
  663. package/src/lib/design/system/sketch/note-language.js +83 -0
  664. package/src/lib/design/system/sketch/note-language.js.map +1 -0
  665. package/src/lib/design/system/sketch/part-definition.d.ts +27 -1
  666. package/src/lib/design/system/sketch/part-definition.js +109 -17
  667. package/src/lib/design/system/sketch/part-definition.js.map +1 -1
  668. package/src/lib/design/system/sketch/rebase-port.d.ts +24 -0
  669. package/src/lib/design/system/sketch/rebase-port.js +215 -0
  670. package/src/lib/design/system/sketch/rebase-port.js.map +1 -0
  671. package/src/lib/design/system/sketch/sample-mark-drift.d.ts +33 -0
  672. package/src/lib/design/system/sketch/sample-mark-drift.js +88 -0
  673. package/src/lib/design/system/sketch/sample-mark-drift.js.map +1 -0
  674. package/src/lib/design/system/sketch/sketch-check-cache.d.ts +11 -0
  675. package/src/lib/design/system/sketch/sketch-check-cache.js +22 -0
  676. package/src/lib/design/system/sketch/sketch-check-cache.js.map +1 -0
  677. package/src/lib/design/system/sketch/sketch-check-worker.d.ts +1 -0
  678. package/src/lib/design/system/sketch/sketch-check-worker.js +32 -0
  679. package/src/lib/design/system/sketch/sketch-check-worker.js.map +1 -0
  680. package/src/lib/design/system/sketch/sketch-checker.d.ts +40 -0
  681. package/src/lib/design/system/sketch/sketch-checker.js +109 -0
  682. package/src/lib/design/system/sketch/sketch-checker.js.map +1 -0
  683. package/src/lib/design/system/sketch/sketch.d.ts +100 -8
  684. package/src/lib/design/system/sketch/sketch.js +279 -36
  685. package/src/lib/design/system/sketch/sketch.js.map +1 -1
  686. package/src/lib/design/system/sketch/stale-base.d.ts +22 -0
  687. package/src/lib/design/system/sketch/stale-base.js +56 -0
  688. package/src/lib/design/system/sketch/stale-base.js.map +1 -0
  689. package/src/lib/design/system/sketch/unchanged-states.d.ts +39 -3
  690. package/src/lib/design/system/sketch/unchanged-states.js +75 -23
  691. package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
  692. package/src/lib/design/system/sketch/unused-closure.js +16 -4
  693. package/src/lib/design/system/sketch/unused-closure.js.map +1 -1
  694. package/src/lib/design/system/sketch/viewed-shots.d.ts +32 -0
  695. package/src/lib/design/system/sketch/viewed-shots.js +54 -0
  696. package/src/lib/design/system/sketch/viewed-shots.js.map +1 -0
  697. package/src/lib/design/system/skip-classes.d.ts +3 -0
  698. package/src/lib/design/system/skip-classes.js +17 -0
  699. package/src/lib/design/system/skip-classes.js.map +1 -0
  700. package/src/lib/design/system/slot-hosts.d.ts +38 -0
  701. package/src/lib/design/system/slot-hosts.js +93 -0
  702. package/src/lib/design/system/slot-hosts.js.map +1 -0
  703. package/src/lib/design/system/slow-checks.d.ts +44 -0
  704. package/src/lib/design/system/slow-checks.js +250 -0
  705. package/src/lib/design/system/slow-checks.js.map +1 -0
  706. package/src/lib/design/system/slow-run.d.ts +67 -0
  707. package/src/lib/design/system/slow-run.js +312 -0
  708. package/src/lib/design/system/slow-run.js.map +1 -0
  709. package/src/lib/design/system/stale-design-mocks.d.ts +20 -0
  710. package/src/lib/design/system/stale-design-mocks.js +59 -0
  711. package/src/lib/design/system/stale-design-mocks.js.map +1 -0
  712. package/src/lib/design/system/stale-dist.d.ts +61 -0
  713. package/src/lib/design/system/stale-dist.js +141 -0
  714. package/src/lib/design/system/stale-dist.js.map +1 -0
  715. package/src/lib/design/system/stale-parts.d.ts +45 -0
  716. package/src/lib/design/system/stale-parts.js +168 -0
  717. package/src/lib/design/system/stale-parts.js.map +1 -0
  718. package/src/lib/design/system/surface-nesting.d.ts +11 -0
  719. package/src/lib/design/system/surface-nesting.js +86 -0
  720. package/src/lib/design/system/surface-nesting.js.map +1 -0
  721. package/src/lib/design/system/system-command.js +11 -9
  722. package/src/lib/design/system/system-command.js.map +1 -1
  723. package/src/lib/design/system/system-modules.d.ts +17 -2
  724. package/src/lib/design/system/system-modules.js +18 -2
  725. package/src/lib/design/system/system-modules.js.map +1 -1
  726. package/src/lib/design/system/system-tsconfig.d.ts +9 -2
  727. package/src/lib/design/system/system-tsconfig.js +73 -13
  728. package/src/lib/design/system/system-tsconfig.js.map +1 -1
  729. package/src/lib/design/system/task-command.d.ts +52 -0
  730. package/src/lib/design/system/task-command.js +271 -0
  731. package/src/lib/design/system/task-command.js.map +1 -0
  732. package/src/lib/design/system/theming-text.d.ts +2 -0
  733. package/src/lib/design/system/theming-text.js +6 -0
  734. package/src/lib/design/system/theming-text.js.map +1 -0
  735. package/src/lib/design/system/touched-parts.d.ts +16 -0
  736. package/src/lib/design/system/touched-parts.js +121 -0
  737. package/src/lib/design/system/touched-parts.js.map +1 -0
  738. package/src/lib/design/system/tracked-reads.d.ts +27 -0
  739. package/src/lib/design/system/tracked-reads.js +100 -0
  740. package/src/lib/design/system/tracked-reads.js.map +1 -0
  741. package/src/lib/design/system/ts-source.d.ts +2 -0
  742. package/src/lib/design/system/ts-source.js +15 -1
  743. package/src/lib/design/system/ts-source.js.map +1 -1
  744. package/src/lib/design/system/unchanged-rows.d.ts +24 -0
  745. package/src/lib/design/system/unchanged-rows.js +212 -0
  746. package/src/lib/design/system/unchanged-rows.js.map +1 -0
  747. package/src/lib/design/system/uncommitted-decisions.d.ts +4 -0
  748. package/src/lib/design/system/uncommitted-decisions.js +35 -0
  749. package/src/lib/design/system/uncommitted-decisions.js.map +1 -0
  750. package/src/lib/design/system/uncovered-regions.d.ts +61 -0
  751. package/src/lib/design/system/uncovered-regions.js +171 -0
  752. package/src/lib/design/system/uncovered-regions.js.map +1 -0
  753. package/src/lib/design/system/unused-base-parts.d.ts +7 -0
  754. package/src/lib/design/system/unused-base-parts.js +76 -0
  755. package/src/lib/design/system/unused-base-parts.js.map +1 -0
  756. package/src/lib/design/system/visible-change-command.d.ts +60 -0
  757. package/src/lib/design/system/visible-change-command.js +310 -0
  758. package/src/lib/design/system/visible-change-command.js.map +1 -0
  759. package/src/lib/design/system/visible-change-parts.d.ts +28 -0
  760. package/src/lib/design/system/visible-change-parts.js +96 -0
  761. package/src/lib/design/system/visible-change-parts.js.map +1 -0
  762. package/src/lib/design/system/visible-change.d.ts +82 -0
  763. package/src/lib/design/system/visible-change.js +149 -0
  764. package/src/lib/design/system/visible-change.js.map +1 -0
  765. package/src/lib/design/system/write-origin.d.ts +12 -0
  766. package/src/lib/design/system/write-origin.js +18 -0
  767. package/src/lib/design/system/write-origin.js.map +1 -0
  768. package/src/lib/design/system-use.js +4 -4
  769. package/src/lib/design/system-use.js.map +1 -1
  770. package/src/lib/design/thumb.d.ts +37 -4
  771. package/src/lib/design/thumb.js +118 -21
  772. package/src/lib/design/thumb.js.map +1 -1
  773. package/src/lib/design/timings-command.d.ts +22 -0
  774. package/src/lib/design/timings-command.js +175 -0
  775. package/src/lib/design/timings-command.js.map +1 -0
  776. package/src/lib/design/timings.d.ts +117 -0
  777. package/src/lib/design/timings.js +296 -0
  778. package/src/lib/design/timings.js.map +1 -0
  779. package/src/lib/design/typecheck.d.ts +1 -1
  780. package/src/lib/design/typecheck.js +5 -5
  781. package/src/lib/design/typecheck.js.map +1 -1
  782. package/src/lib/design/unstable-cells.d.ts +23 -0
  783. package/src/lib/design/unstable-cells.js +40 -0
  784. package/src/lib/design/unstable-cells.js.map +1 -0
  785. package/src/lib/design/variant-diff.js +1 -1
  786. package/src/lib/design/variant-diff.js.map +1 -1
  787. package/src/lib/design/vite-cache.d.ts +11 -0
  788. package/src/lib/design/vite-cache.js +61 -0
  789. package/src/lib/design/vite-cache.js.map +1 -0
  790. package/src/lib/design/wait.d.ts +15 -0
  791. package/src/lib/design/wait.js +30 -0
  792. package/src/lib/design/wait.js.map +1 -0
  793. package/src/lib/design/warm-draw.d.ts +33 -0
  794. package/src/lib/design/warm-draw.js +74 -0
  795. package/src/lib/design/warm-draw.js.map +1 -0
  796. package/src/lib/design/warm-pages.d.ts +10 -2
  797. package/src/lib/design/warm-pages.js +6 -2
  798. package/src/lib/design/warm-pages.js.map +1 -1
  799. package/src/lib/design/work-root.d.ts +2 -0
  800. package/src/lib/design/work-root.js +8 -0
  801. package/src/lib/design/work-root.js.map +1 -0
  802. package/src/lib/json-file.d.ts +11 -0
  803. package/src/lib/json-file.js +21 -0
  804. package/src/lib/json-file.js.map +1 -0
  805. package/src/lib/plain-output.d.ts +27 -0
  806. package/src/lib/plain-output.js +66 -0
  807. package/src/lib/plain-output.js.map +1 -0
  808. package/src/lib/release.js +11 -3
  809. package/src/lib/release.js.map +1 -1
  810. package/src/lib/source-hash.d.ts +7 -0
  811. package/src/lib/source-hash.js +62 -0
  812. package/src/lib/source-hash.js.map +1 -0
  813. package/src/lib/update/agent-setup.js +2 -1
  814. package/src/lib/update/agent-setup.js.map +1 -1
  815. package/src/lib/update/commits.js +2 -2
  816. package/src/lib/update/commits.js.map +1 -1
  817. package/src/lib/update/migration-manifest.d.ts +12 -0
  818. package/src/lib/update/migration-manifest.js +13 -0
  819. package/src/lib/update/migration-manifest.js.map +1 -1
  820. package/src/lib/update/migration-record.js +2 -1
  821. package/src/lib/update/migration-record.js.map +1 -1
  822. package/src/lib/update/packages.js +4 -2
  823. package/src/lib/update/packages.js.map +1 -1
  824. package/src/lib/update/pending.js +2 -1
  825. package/src/lib/update/pending.js.map +1 -1
  826. package/src/lib/update/run-migrations.d.ts +3 -2
  827. package/src/lib/update/run-migrations.js +38 -5
  828. package/src/lib/update/run-migrations.js.map +1 -1
  829. package/src/lib/update/scan.js +8 -2
  830. package/src/lib/update/scan.js.map +1 -1
  831. package/src/lib/update/tasks.js +2 -1
  832. package/src/lib/update/tasks.js.map +1 -1
  833. package/src/lib/design/paths.js +0 -138
  834. package/src/lib/design/paths.js.map +0 -1
  835. package/src/lib/design/system/accept-command.d.ts +0 -7
  836. package/src/lib/design/system/accept-command.js +0 -55
  837. package/src/lib/design/system/accept-command.js.map +0 -1
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.visibleChangeSummaryOf = exports.visibleChangeVerdictOf = exports.mergedPartsOf = exports.sketchedPartsOf = exports.stateDiffOf = exports.deviationOf = void 0;
4
+ const part_compare_1 = require("./part-compare");
5
+ const DIFF_RED = 0xff0000ff;
6
+ /** The pixels the app picture differs from the design picture in, counting those outside their shared area. */
7
+ const deviationOf = (options) => {
8
+ const result = (0, part_compare_1.comparePngs)(options);
9
+ if (result.kind === 'ok')
10
+ return 0;
11
+ if (result.kind === 'diff')
12
+ return result.pixels;
13
+ const { data } = (0, part_compare_1.decodePng)(result.diff);
14
+ let pixels = 0;
15
+ for (let at = 0; at < data.length; at += 4)
16
+ if (data.readUInt32BE(at) === DIFF_RED)
17
+ pixels++;
18
+ return pixels;
19
+ };
20
+ exports.deviationOf = deviationOf;
21
+ const stateDiffOf = (options) => {
22
+ const { base, head } = options;
23
+ const { state } = head;
24
+ if ('problem' in head)
25
+ return base && !('problem' in base)
26
+ ? { state, kind: 'broken', problem: head.problem }
27
+ : {
28
+ state,
29
+ kind: head.undrivable && base && 'problem' in base && base.undrivable ? 'undrivable' : 'unjudged',
30
+ problem: head.problem,
31
+ };
32
+ if (!base || 'problem' in base)
33
+ return { state, kind: 'new', head: (0, exports.deviationOf)({ design: head.design, app: head.app }) };
34
+ const change = (0, part_compare_1.comparePngs)({ design: base.app, app: head.app });
35
+ if (change.kind === 'ok')
36
+ return { state, kind: 'same' };
37
+ return {
38
+ state,
39
+ kind: 'differs',
40
+ base: (0, exports.deviationOf)({ design: head.design, app: base.app }),
41
+ head: (0, exports.deviationOf)({ design: head.design, app: head.app }),
42
+ diff: change.diff,
43
+ };
44
+ };
45
+ exports.stateDiffOf = stateDiffOf;
46
+ /** The parts a picked sketch, or a sketch a merge deleted, targets. */
47
+ const sketchedPartsOf = (evidence) => {
48
+ var _a;
49
+ const parts = new Set();
50
+ for (const { text, merged } of evidence) {
51
+ let parsed;
52
+ try {
53
+ parsed = JSON.parse(text);
54
+ }
55
+ catch (_b) {
56
+ continue;
57
+ }
58
+ if (!merged && ((_a = parsed.decision) === null || _a === void 0 ? void 0 : _a.kind) !== 'pick')
59
+ continue;
60
+ const targets = Array.isArray(parsed.targets) ? parsed.targets : [parsed.target];
61
+ for (const target of targets)
62
+ if (typeof target === 'string')
63
+ parts.add(target);
64
+ }
65
+ return parts;
66
+ };
67
+ exports.sketchedPartsOf = sketchedPartsOf;
68
+ const mergedEntriesOf = (text) => {
69
+ try {
70
+ const parsed = JSON.parse(text !== null && text !== void 0 ? text : '{}');
71
+ return parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed : {};
72
+ }
73
+ catch (_a) {
74
+ return {};
75
+ }
76
+ };
77
+ const decisionOf = (entry) => entry && typeof entry === 'object' && !Array.isArray(entry)
78
+ ? JSON.stringify(Object.assign(Object.assign({}, entry), { hash: null }))
79
+ : null;
80
+ /**
81
+ * The parts a sketch merge recorded in `merged.json` between the base and HEAD: a part first recorded there, or one
82
+ * whose recorded pick changed. A hash refresh alone is no merge.
83
+ */
84
+ const mergedPartsOf = (options) => {
85
+ const base = mergedEntriesOf(options.base);
86
+ const head = mergedEntriesOf(options.head);
87
+ return new Set(Object.entries(head).flatMap(([part, entry]) => !(part in base) || (decisionOf(entry) !== null && decisionOf(entry) !== decisionOf(base[part])) ? [part] : []));
88
+ };
89
+ exports.mergedPartsOf = mergedPartsOf;
90
+ /**
91
+ * A part passes when its app draws alike at base and HEAD, when a picked or merged sketch of it is in the range, or
92
+ * when every changed state is strictly closer to HEAD's design or, without a base picture, matches it. A state HEAD can no longer draw always fails, and so does any state the gate could not judge,
93
+ * but a state neither app has an element to force the design's interaction on: that is a problem of the part, listed as `undrivable`.
94
+ */
95
+ const visibleChangeVerdictOf = (options) => {
96
+ const { part, states } = options.diff;
97
+ const changed = states.filter((state) => state.kind === 'differs' || state.kind === 'new' || state.kind === 'broken');
98
+ const unjudgedStates = states.filter((state) => state.kind === 'unjudged');
99
+ const unjudged = unjudgedStates.map((state) => state.state);
100
+ const reasons = [...new Set(unjudgedStates.map((state) => (state.kind === 'unjudged' ? state.problem : '')))];
101
+ const undrivableStates = states.filter((state) => state.kind === 'undrivable');
102
+ const undrivable = undrivableStates.map((state) => state.state);
103
+ const undrivableReasons = [
104
+ ...new Set(undrivableStates.map((state) => (state.kind === 'undrivable' ? state.problem : ''))),
105
+ ];
106
+ const verdict = (pass, why) => ({
107
+ part,
108
+ pass,
109
+ why,
110
+ changed: changed.map((state) => state.state),
111
+ unjudged,
112
+ reasons,
113
+ undrivable,
114
+ undrivableReasons,
115
+ });
116
+ if (changed.some((state) => state.kind === 'broken'))
117
+ return verdict(false, 'broken');
118
+ if (unjudged.length > 0)
119
+ return verdict(false, 'unjudged');
120
+ if (changed.length === 0)
121
+ return verdict(true, 'invisible');
122
+ if (options.sketched.has(part))
123
+ return verdict(true, 'sketched');
124
+ if (changed.every((state) => state.kind === 'new' && state.head === 0))
125
+ return verdict(true, 'matches');
126
+ if (changed.every((state) => (state.kind === 'differs' && state.head < state.base) || (state.kind === 'new' && state.head === 0)))
127
+ return verdict(true, 'closer');
128
+ return verdict(false, 'visible');
129
+ };
130
+ exports.visibleChangeVerdictOf = visibleChangeVerdictOf;
131
+ /** The gate's last line; it names every unjudged state, so a pass that judged nothing never reads as a clean pass. */
132
+ const visibleChangeSummaryOf = (options) => {
133
+ const { verdicts, range, seconds } = options;
134
+ const failed = options.problems + verdicts.filter((verdict) => !verdict.pass).length;
135
+ const listOf = (what, of) => {
136
+ const listed = verdicts.filter((verdict) => of(verdict).length > 0);
137
+ const count = listed.reduce((sum, verdict) => sum + of(verdict).length, 0);
138
+ return count === 0
139
+ ? ''
140
+ : ` - ${count} state(s) ${what}: ${listed.map((verdict) => `${verdict.part} (${of(verdict).join(', ')})`).join('; ')}`;
141
+ };
142
+ const list = listOf('unjudged', (verdict) => verdict.unjudged) +
143
+ listOf('undrivable, a problem of the part', (verdict) => verdict.undrivable);
144
+ return failed === 0
145
+ ? `No part looks different in ${range} without a sketch (${seconds} s)${list}.`
146
+ : `${failed} part(s) fail the visible-change gate in ${range}. Pick and merge a sketch of each, or move it closer to its design${list}.`;
147
+ };
148
+ exports.visibleChangeSummaryOf = visibleChangeSummaryOf;
149
+ //# sourceMappingURL=visible-change.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visible-change.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/system/visible-change.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /** Who wrote a decision file entry (a ready mark or a sketch pick): the actor, the command it ran, and its process id. */
2
+ export type WriteOrigin = {
3
+ by: string;
4
+ cmd: string;
5
+ pid: number;
6
+ };
7
+ /** A command line for a committed record: an absolute path becomes relative to `cwd`, so no home directory lands in the repo. */
8
+ export declare const portableCmdOf: (args: string[], cwd?: string) => string;
9
+ /** The origin of a write by `by` from this process; `cmd` defaults to the command line it was started with. */
10
+ export declare const originOf: (by: string, cmd?: string) => WriteOrigin;
11
+ /** Whether `origin` names its actor; a decision write without one is refused. */
12
+ export declare const hasActor: (origin: Partial<WriteOrigin> | undefined) => boolean;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasActor = exports.originOf = exports.portableCmdOf = void 0;
4
+ const node_path_1 = require("node:path");
5
+ /** A command line for a committed record: an absolute path becomes relative to `cwd`, so no home directory lands in the repo. */
6
+ const portableCmdOf = (args, cwd = process.cwd()) => args.map((arg) => ((0, node_path_1.isAbsolute)(arg) ? (0, node_path_1.relative)(cwd, arg) || '.' : arg)).join(' ');
7
+ exports.portableCmdOf = portableCmdOf;
8
+ /** The origin of a write by `by` from this process; `cmd` defaults to the command line it was started with. */
9
+ const originOf = (by, cmd = (0, exports.portableCmdOf)(process.argv.slice(2))) => ({
10
+ by,
11
+ cmd,
12
+ pid: process.pid,
13
+ });
14
+ exports.originOf = originOf;
15
+ /** Whether `origin` names its actor; a decision write without one is refused. */
16
+ const hasActor = (origin) => typeof (origin === null || origin === void 0 ? void 0 : origin.by) === 'string' && origin.by.trim() !== '';
17
+ exports.hasActor = hasActor;
18
+ //# sourceMappingURL=write-origin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-origin.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/system/write-origin.ts"],"names":[],"mappings":";;;AAAA,yCAAiD;AAKjD,iIAAiI;AAC1H,MAAM,aAAa,GAAG,CAAC,IAAc,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,CACnE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAA,sBAAU,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,oBAAQ,EAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AADtE,QAAA,aAAa,iBACyD;AAEnF,+GAA+G;AACxG,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,GAAG,GAAG,IAAA,qBAAa,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC;IAChG,EAAE;IACF,GAAG;IACH,GAAG,EAAE,OAAO,CAAC,GAAG;CACjB,CAAC,CAAC;AAJU,QAAA,QAAQ,YAIlB;AAEH,iFAAiF;AAC1E,MAAM,QAAQ,GAAG,CAAC,MAAwC,EAAE,EAAE,CACnE,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,CAAA,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAD/C,QAAA,QAAQ,YACuC"}
@@ -4,7 +4,7 @@ exports.stageProblemOf = exports.inventoryWarningOf = exports.systemWarningOf =
4
4
  const fs_1 = require("fs");
5
5
  const path_1 = require("path");
6
6
  const new_call_1 = require("./new-call");
7
- const paths_1 = require("./paths");
7
+ const design_config_1 = require("./design-config");
8
8
  const STAGES_ON_THE_SYSTEM = new Set(['element', 'page', 'prototype']);
9
9
  const SPECIFIER = /(?:\bfrom\s*|\bimport\s*\(?\s*)['"]([^'"]+)['"]/g;
10
10
  /** Whether a variant of the call imports anything from its project's design system. */
@@ -12,8 +12,8 @@ const drawsFromSystem = (options) => {
12
12
  var _a;
13
13
  const { target, slug } = options;
14
14
  const project = (_a = slug.split('/')[0]) !== null && _a !== void 0 ? _a : '';
15
- const system = (0, path_1.resolve)(target, paths_1.DESIGN_DIR, 'system', project);
16
- const folder = (0, path_1.resolve)((0, paths_1.callsRootOf)(target), slug);
15
+ const system = (0, path_1.resolve)(target, design_config_1.DESIGN_DIR, 'system', project);
16
+ const folder = (0, path_1.resolve)((0, design_config_1.callsRootOf)(target), slug);
17
17
  if (!(0, fs_1.existsSync)(folder))
18
18
  return false;
19
19
  return (0, fs_1.readdirSync)(folder)
@@ -33,7 +33,7 @@ const systemWarningOf = (options) => {
33
33
  if (!stage || !STAGES_ON_THE_SYSTEM.has(stage) || (0, exports.drawsFromSystem)({ target, slug }))
34
34
  return null;
35
35
  return (`WARNING ${slug} is a ${stage} call but no variant imports from ` +
36
- `${paths_1.DESIGN_DIR}/system/${slug.split('/')[0]}/ - it draws no design-system entry, so its parts ` +
36
+ `${design_config_1.DESIGN_DIR}/system/${slug.split('/')[0]}/ - it draws no design-system entry, so its parts ` +
37
37
  `may not match the system.`);
38
38
  };
39
39
  exports.systemWarningOf = systemWarningOf;
@@ -1 +1 @@
1
- {"version":3,"file":"system-use.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/system-use.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-use.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/system-use.ts"],"names":[],"mappings":";;;AAAA,2BAA2D;AAC3D,+BAA8D;AAC9D,yCAAyC;AACzC,mDAA0D;AAE1D,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AAEvE,MAAM,SAAS,GAAG,kDAAkD,CAAC;AAErE,uFAAuF;AAChF,MAAM,eAAe,GAAG,CAAC,OAAyC,EAAE,EAAE;;IAC3E,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACjC,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,IAAA,cAAO,EAAC,MAAM,EAAE,0BAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,IAAA,cAAO,EAAC,IAAA,2BAAW,EAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAElD,IAAI,CAAC,IAAA,eAAU,EAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAEtC,OAAO,IAAA,gBAAW,EAAC,MAAM,CAAC;SACvB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC/C,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACb,CAAC,GAAG,IAAA,iBAAY,EAAC,IAAA,cAAO,EAAC,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACjE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAA,EAAA,CAAC;SAC9B,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAChD,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;QAClB,MAAM,MAAM,GAAG,IAAA,eAAQ,EAAC,MAAM,EAAE,IAAA,cAAO,EAAC,IAAA,cAAO,EAAC,IAAA,cAAO,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QAEpF,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAA,iBAAU,EAAC,MAAM,CAAC,CAAC;IACzD,CAAC,CAAC,CACL,CAAC;AACN,CAAC,CAAC;AApBW,QAAA,eAAe,mBAoB1B;AAEF,gGAAgG;AACzF,MAAM,eAAe,GAAG,CAAC,OAA+D,EAAE,EAAE;IACjG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAExC,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAA,uBAAe,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjG,OAAO,CACL,WAAW,IAAI,SAAS,KAAK,oCAAoC;QACjE,GAAG,0BAAU,WAAW,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oDAAoD;QAC9F,2BAA2B,CAC5B,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,eAAe,mBAU1B;AAEF,wEAAwE;AACjE,MAAM,kBAAkB,GAAG,CAAC,OAAsE,EAAE,EAAE;IAC3G,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAE9C,IAAI,CAAC,YAAY,IAAI,KAAK,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAExD,OAAO,WAAW,IAAI,yDAAyD,CAAC;AAClF,CAAC,CAAC;AANW,QAAA,kBAAkB,sBAM7B;AAEF,2FAA2F;AACpF,MAAM,cAAc,GAAG,CAAC,OAAgE,EAAE,EAAE;IACjG,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAExC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC;QAExB,OAAO,CACL,eAAe,IAAI,iBAAiB,sBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,gDAAgD,CAClH,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,sBAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,cAAc,KAAK,QAAQ,IAAI,iBAAiB,sBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAEnH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAdW,QAAA,cAAc,kBAczB"}
@@ -1,6 +1,7 @@
1
1
  import { IncomingMessage, ServerResponse } from 'http';
2
2
  import { Chromium, chromiumOf } from './browser';
3
3
  import { DrawLedger } from './draw-ledger';
4
+ import { ShotBoard } from './shot-board';
4
5
  export declare const THUMB_PATH = "/__design/thumb";
5
6
  /** The pixel width a thumbnail comes out at: twice the 180px tile Studio shows it in. */
6
7
  export declare const THUMB_PIXEL_WIDTH = 360;
@@ -24,27 +25,50 @@ export declare class ShotFailedError extends Error {
24
25
  }
25
26
  export declare class ShotTimeoutError extends Error {
26
27
  }
28
+ /** A design-server URL that answered an error status, such as the 403 Vite sends for a file outside `server.fs.allow`. */
29
+ export declare class FrameUnservedError extends Error {
30
+ }
31
+ /** Throws a `FrameUnservedError` naming the URL and status when the navigation to a design-server page answered 400 or above. */
32
+ export declare const assertServed: (response: {
33
+ status(): number;
34
+ } | null, url: string) => void;
27
35
  /** Rejects a drawing that was still waiting when every ask that wanted it was aborted. */
28
36
  export declare class DrawDroppedError extends Error {
29
37
  }
30
38
  type Page = Awaited<ReturnType<Awaited<ReturnType<Browser['newContext']>>['newPage']>>;
31
39
  /**
32
- * Opens a frame and waits until it drew its content or its error, then for its embedded frames. A frame that
33
- * never draws throws a `ShotTimeoutError` naming the URL.
40
+ * Opens a frame and waits until it drew its content or its error, then for its embedded frames. Each wait is
41
+ * `DRAW_TIMEOUT_MS` stretched by the machine load. A frame that draws nothing after one reload throws a
42
+ * `ShotTimeoutError` naming the URL.
34
43
  */
35
44
  export declare const openFrame: (page: Page, url: string) => Promise<void>;
36
45
  export declare const settled = "new Promise((done) => document.fonts.ready.then(() =>\n requestAnimationFrame(() => requestAnimationFrame(() => done(true)))))";
37
- export declare const finished = "document.getAnimations()\n .filter((animation) => animation.effect?.getComputedTiming().endTime !== Infinity)\n .forEach((animation) => animation.finish())";
46
+ /** Waits for `settled` on `page`, and throws a `WaitTimeoutError` naming the page after `DRAW_TIMEOUT_MS`. */
47
+ export declare const awaitSettled: (page: Pick<Page, "evaluate" | "url">) => Promise<unknown>;
48
+ /** Waits for the fonts of `page`, and throws a `WaitTimeoutError` naming the page after `DRAW_TIMEOUT_MS`. */
49
+ export declare const awaitFonts: (page: Pick<Page, "evaluate" | "url">) => Promise<unknown>;
50
+ /** Finishes the page's finite time-based animations; scroll-driven ones keep the progress their scroll position gives. */
51
+ export declare const finished = "document.getAnimations()\n .filter((animation) => animation.effect?.getComputedTiming().endTime !== Infinity)\n .filter((animation) => typeof ScrollTimeline === 'undefined' || !(animation.timeline instanceof ScrollTimeline))\n .forEach((animation) => animation.finish())";
52
+ /**
53
+ * Cancels each running infinite animation, as a screenshot with disabled animations does in the app picture, so both
54
+ * pictures show its start frame; a paused one or one with a playback rate of 0 keeps its held frame.
55
+ */
56
+ export declare const heldAnimations = "document.getAnimations()\n .filter((animation) => animation.effect?.getComputedTiming().endTime === Infinity)\n .filter((animation) => animation.playState === 'running' && animation.playbackRate !== 0)\n .filter((animation) => typeof ScrollTimeline === 'undefined' || !(animation.timeline instanceof ScrollTimeline))\n .forEach((animation) => animation.cancel())";
38
57
  export type DrawPriority = 'high' | 'low';
39
58
  /**
40
59
  * What one ask wants of a drawing. `view` is a number the asker raises with each view change; the
41
- * highest one seen is the shown view. `rank` places the ask in that view. `onWithdraw` gets the callback
60
+ * highest one seen is the shown view. `rank` places the ask in that view. `board` places it by the queue's shot
61
+ * board instead, where the board names its shot. `onWithdraw` gets the callback
42
62
  * that withdraws the ask, to call once the asker no longer waits, or at once if it already stopped.
43
63
  */
44
64
  export type DrawWant = {
45
65
  priority: DrawPriority;
46
66
  view?: number | null;
47
67
  rank?: 'active' | 'visible' | null;
68
+ board?: {
69
+ key: string;
70
+ boardView: number;
71
+ };
48
72
  onWithdraw?: (withdraw: () => void) => void;
49
73
  };
50
74
  export declare const DRAWS_AT_ONCE = 8;
@@ -55,10 +79,13 @@ export declare const DRAWS_AT_ONCE = 8;
55
79
  * A drawing every ask withdrew before it started is dropped. A failed launch is not kept, so the next ask
56
80
  * tries again.
57
81
  */
82
+ /** `browser` with every context it opens closed when `signal` aborts, so a draw of an aborted run fails at once. */
83
+ export declare const closingOnAbort: (browser: Browser, signal: AbortSignal) => Browser;
58
84
  export declare const createDrawQueue: (options: {
59
85
  target: string;
60
86
  chromiumOf?: typeof chromiumOf;
61
87
  ledger?: DrawLedger;
88
+ board?: Pick<ShotBoard, "laneOf">;
62
89
  }) => {
63
90
  run: <T>(draw: (browser: Browser) => Promise<T>, want?: DrawPriority | DrawWant) => Promise<T>;
64
91
  /** Adds an ask to a drawing `run` returned, so it runs in the best lane any of its asks wants, unless it already started. */
@@ -72,6 +99,12 @@ export declare const noteFailure: <T>(shot: Promise<T>, failed: (failure: {
72
99
  status: number;
73
100
  message: string;
74
101
  }) => void) => Promise<T>;
102
+ export declare const SHOT_MAX_AGE_S = 3600;
103
+ /**
104
+ * Answers with the PNG `shot` resolves to, tagged with its content hash; an ask whose `if-none-match` names that
105
+ * tag gets a 304. The asker keys the URL on the content it shows (Studio: session, epoch and revision), so the
106
+ * browser may keep a picture for `SHOT_MAX_AGE_S` and paint it again without asking.
107
+ */
75
108
  export declare const sendShot: (response: ServerResponse, shot: Promise<Buffer>) => undefined;
76
109
  export declare const send: (response: ServerResponse, { status, type, body }: Shot) => void;
77
110
  /** Whether a call may draw from a file under the calls root: its own, or one in a folder above it. */
@@ -9,9 +9,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.createThumbnailer = exports.callDrawsFrom = exports.send = exports.sendShot = exports.noteFailure = exports.createDrawQueue = exports.DRAWS_AT_ONCE = exports.finished = exports.settled = exports.openFrame = exports.DrawDroppedError = exports.ShotTimeoutError = exports.ShotFailedError = exports.ShotUnprocessableError = exports.ThumbMissingError = exports.ThumbUnavailableError = exports.DRAW_TIMEOUT_MS = exports.THUMB_PIXEL_WIDTH = exports.THUMB_PATH = void 0;
12
+ exports.createThumbnailer = exports.callDrawsFrom = exports.send = exports.sendShot = exports.SHOT_MAX_AGE_S = exports.noteFailure = exports.createDrawQueue = exports.closingOnAbort = exports.DRAWS_AT_ONCE = exports.heldAnimations = exports.finished = exports.awaitFonts = exports.awaitSettled = exports.settled = exports.openFrame = exports.DrawDroppedError = exports.assertServed = exports.FrameUnservedError = exports.ShotTimeoutError = exports.ShotFailedError = exports.ShotUnprocessableError = exports.ThumbMissingError = exports.ThumbUnavailableError = exports.DRAW_TIMEOUT_MS = exports.THUMB_PIXEL_WIDTH = exports.THUMB_PATH = void 0;
13
+ const rxjs_1 = require("rxjs");
14
+ const crypto_1 = require("crypto");
13
15
  const path_1 = require("path");
14
16
  const browser_1 = require("./browser");
17
+ const perf_hooks_1 = require("perf_hooks");
18
+ const phase_timing_1 = require("./phase-timing");
19
+ const run_abort_1 = require("./run-abort");
20
+ const timings_1 = require("./timings");
21
+ const wait_1 = require("./wait");
22
+ const no_verdict_1 = require("./system/no-verdict");
15
23
  exports.THUMB_PATH = '/__design/thumb';
16
24
  /** The pixel width a thumbnail comes out at: twice the 180px tile Studio shows it in. */
17
25
  exports.THUMB_PIXEL_WIDTH = 360;
@@ -37,6 +45,19 @@ exports.ShotFailedError = ShotFailedError;
37
45
  class ShotTimeoutError extends Error {
38
46
  }
39
47
  exports.ShotTimeoutError = ShotTimeoutError;
48
+ /** A design-server URL that answered an error status, such as the 403 Vite sends for a file outside `server.fs.allow`. */
49
+ class FrameUnservedError extends Error {
50
+ }
51
+ exports.FrameUnservedError = FrameUnservedError;
52
+ /** Throws a `FrameUnservedError` naming the URL and status when the navigation to a design-server page answered 400 or above. */
53
+ const assertServed = (response, url) => {
54
+ var _a;
55
+ const status = (_a = response === null || response === void 0 ? void 0 : response.status()) !== null && _a !== void 0 ? _a : 0;
56
+ if (status >= 400) {
57
+ throw new FrameUnservedError(`design-explore: ${url} was not served (HTTP ${status}) - the design server refused or failed the page, so nothing on it can be measured`);
58
+ }
59
+ };
60
+ exports.assertServed = assertServed;
40
61
  /** Rejects a drawing that was still waiting when every ask that wanted it was aborted. */
41
62
  class DrawDroppedError extends Error {
42
63
  }
@@ -47,27 +68,30 @@ const frameWidthOf = (slug) => `(async (slug) => {
47
68
  return (await calls[slug]()).default.frameWidth ?? null;
48
69
  })(${JSON.stringify(slug)})`;
49
70
  /**
50
- * Opens a frame and waits until it drew its content or its error, then for its embedded frames. A frame that
51
- * never draws throws a `ShotTimeoutError` naming the URL.
71
+ * Opens a frame and waits until it drew its content or its error, then for its embedded frames. Each wait is
72
+ * `DRAW_TIMEOUT_MS` stretched by the machine load. A frame that draws nothing after one reload throws a
73
+ * `ShotTimeoutError` naming the URL.
52
74
  */
53
75
  const openFrame = (page, url) => __awaiter(void 0, void 0, void 0, function* () {
54
- yield page.goto(url, { waitUntil: 'domcontentloaded' });
55
- // Headless Chromium's pointer starts at 0,0 on a new page and draws a real :hover on whatever fills the
56
- // frame's corner. A move before the first navigation does not stick.
57
- yield page.mouse.move(-1, -1);
58
- const never = (what) => new ShotTimeoutError(`design-explore: ${url} did not ${what} within ${exports.DRAW_TIMEOUT_MS} ms`);
59
- yield page
60
- .locator('#root > :not(style)')
61
- .first()
62
- .waitFor({ state: 'attached', timeout: exports.DRAW_TIMEOUT_MS })
63
- .catch(() => __awaiter(void 0, void 0, void 0, function* () {
64
- if ((yield page.locator('vite-error-overlay').count()) === 0)
65
- throw never('draw its content');
66
- }));
76
+ const timeout = (0, no_verdict_1.loadScaledMs)(exports.DRAW_TIMEOUT_MS);
77
+ const never = (what) => new ShotTimeoutError(`design-explore: ${url} did not ${what} within ${timeout} ms`);
78
+ const drawn = () => __awaiter(void 0, void 0, void 0, function* () {
79
+ (0, exports.assertServed)(yield page.goto(url, { waitUntil: 'domcontentloaded' }), url);
80
+ // Headless Chromium's pointer starts at 0,0 on a new page and draws a real :hover on whatever fills the
81
+ // frame's corner. A move before the first navigation does not stick.
82
+ yield page.mouse.move(-1, -1);
83
+ return page
84
+ .locator('#root > :not(style)')
85
+ .first()
86
+ .waitFor({ state: 'attached', timeout })
87
+ .then(() => true, () => __awaiter(void 0, void 0, void 0, function* () { return (yield page.locator('vite-error-overlay').count()) > 0; }));
88
+ });
89
+ if (!(yield drawn()) && !(yield drawn()))
90
+ throw never('draw its content');
67
91
  yield page
68
92
  .locator('iframe[data-et-embed]:not([data-et-embed-drawn])')
69
93
  .first()
70
- .waitFor({ state: 'detached', timeout: exports.DRAW_TIMEOUT_MS })
94
+ .waitFor({ state: 'detached', timeout })
71
95
  .catch(() => {
72
96
  throw never('draw its embedded frames');
73
97
  });
@@ -75,9 +99,29 @@ const openFrame = (page, url) => __awaiter(void 0, void 0, void 0, function* ()
75
99
  exports.openFrame = openFrame;
76
100
  exports.settled = `new Promise((done) => document.fonts.ready.then(() =>
77
101
  requestAnimationFrame(() => requestAnimationFrame(() => done(true)))))`;
102
+ /** Waits for `settled` on `page`, and throws a `WaitTimeoutError` naming the page after `DRAW_TIMEOUT_MS`. */
103
+ const awaitSettled = (page) => (0, wait_1.withinLimit)(page.evaluate(exports.settled), {
104
+ ms: exports.DRAW_TIMEOUT_MS,
105
+ what: `the fonts and the first frames of ${page.url()}`,
106
+ });
107
+ exports.awaitSettled = awaitSettled;
108
+ /** Waits for the fonts of `page`, and throws a `WaitTimeoutError` naming the page after `DRAW_TIMEOUT_MS`. */
109
+ const awaitFonts = (page) => (0, wait_1.withinLimit)(page.evaluate('document.fonts.ready'), { ms: exports.DRAW_TIMEOUT_MS, what: `the fonts of ${page.url()}` });
110
+ exports.awaitFonts = awaitFonts;
111
+ /** Finishes the page's finite time-based animations; scroll-driven ones keep the progress their scroll position gives. */
78
112
  exports.finished = `document.getAnimations()
79
113
  .filter((animation) => animation.effect?.getComputedTiming().endTime !== Infinity)
114
+ .filter((animation) => typeof ScrollTimeline === 'undefined' || !(animation.timeline instanceof ScrollTimeline))
80
115
  .forEach((animation) => animation.finish())`;
116
+ /**
117
+ * Cancels each running infinite animation, as a screenshot with disabled animations does in the app picture, so both
118
+ * pictures show its start frame; a paused one or one with a playback rate of 0 keeps its held frame.
119
+ */
120
+ exports.heldAnimations = `document.getAnimations()
121
+ .filter((animation) => animation.effect?.getComputedTiming().endTime === Infinity)
122
+ .filter((animation) => animation.playState === 'running' && animation.playbackRate !== 0)
123
+ .filter((animation) => typeof ScrollTimeline === 'undefined' || !(animation.timeline instanceof ScrollTimeline))
124
+ .forEach((animation) => animation.cancel())`;
81
125
  // Partial raster redraws only the invalidated part of a tile, so the anti-aliased edge of a rounded clip over an
82
126
  // embedded frame depends on which frame painted first: two draws of the same page differed under load.
83
127
  const DRAW_BROWSER_ARGS = ['--disable-partial-raster'];
@@ -89,6 +133,29 @@ exports.DRAWS_AT_ONCE = 8;
89
133
  * A drawing every ask withdrew before it started is dropped. A failed launch is not kept, so the next ask
90
134
  * tries again.
91
135
  */
136
+ /** `browser` with every context it opens closed when `signal` aborts, so a draw of an aborted run fails at once. */
137
+ const closingOnAbort = (browser, signal) => new Proxy(browser, {
138
+ get: (target, key) => {
139
+ const value = Reflect.get(target, key, target);
140
+ if (key !== 'newContext' || typeof value !== 'function') {
141
+ return typeof value === 'function' ? value.bind(target) : value;
142
+ }
143
+ return (...args) => __awaiter(void 0, void 0, void 0, function* () {
144
+ if (signal.aborted)
145
+ throw new run_abort_1.RunAbortedError();
146
+ const context = yield target.newContext(...args);
147
+ const close = () => void context.close().catch(() => undefined);
148
+ if (signal.aborted)
149
+ close();
150
+ else {
151
+ const aborting = (0, rxjs_1.fromEvent)(signal, 'abort').pipe((0, rxjs_1.take)(1), (0, rxjs_1.tap)(close)).subscribe();
152
+ context.once('close', () => aborting.unsubscribe());
153
+ }
154
+ return context;
155
+ });
156
+ },
157
+ });
158
+ exports.closingOnAbort = closingOnAbort;
92
159
  const createDrawQueue = (options) => {
93
160
  var _a;
94
161
  const { target, ledger } = options;
@@ -103,7 +170,7 @@ const createDrawQueue = (options) => {
103
170
  if (!resolved) {
104
171
  throw new ThumbUnavailableError('design-explore: no playwright or playwright-core resolves, so the server can not draw thumbnails');
105
172
  }
106
- return resolved.chromium.launch({ args: DRAW_BROWSER_ARGS }).catch((error) => {
173
+ return (0, phase_timing_1.timedPhase)('browser-start', () => resolved.chromium.launch({ args: DRAW_BROWSER_ARGS })).catch((error) => {
107
174
  throw new ThumbUnavailableError(`design-explore: the Chromium of ${resolved.from} did not start\n${error instanceof Error ? error.message : String(error)}`);
108
175
  });
109
176
  }));
@@ -111,8 +178,12 @@ const createDrawQueue = (options) => {
111
178
  return browser;
112
179
  };
113
180
  const laneOf = (want) => {
181
+ var _a;
114
182
  if (want.priority === 'high')
115
183
  return 0;
184
+ const shown = want.board && ((_a = options.board) === null || _a === void 0 ? void 0 : _a.laneOf(want.board));
185
+ if (shown)
186
+ return shown;
116
187
  if (typeof want.view === 'number' && want.view < shownView)
117
188
  return 4;
118
189
  return want.rank === 'active' ? 1 : want.rank === 'visible' ? 2 : 3;
@@ -162,6 +233,8 @@ const createDrawQueue = (options) => {
162
233
  return {
163
234
  run: (draw, want = 'high') => {
164
235
  const ticket = ledger === null || ledger === void 0 ? void 0 : ledger.ask();
236
+ const asked = perf_hooks_1.performance.now();
237
+ const signal = (0, run_abort_1.runSignal)();
165
238
  const entry = {
166
239
  job: () => Promise.resolve(),
167
240
  wants: new Set(),
@@ -170,8 +243,14 @@ const createDrawQueue = (options) => {
170
243
  const drawn = new Promise((resolve, reject) => {
171
244
  entry.job = () => {
172
245
  ticket === null || ticket === void 0 ? void 0 : ticket.start();
246
+ (0, timings_1.recordDrawWait)(perf_hooks_1.performance.now() - asked);
247
+ if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
248
+ ticket === null || ticket === void 0 ? void 0 : ticket.end();
249
+ reject(new run_abort_1.RunAbortedError());
250
+ return Promise.resolve();
251
+ }
173
252
  return launch()
174
- .then(draw)
253
+ .then((open) => draw(signal ? (0, exports.closingOnAbort)(open, signal) : open))
175
254
  .then(resolve, reject)
176
255
  .finally(() => ticket === null || ticket === void 0 ? void 0 : ticket.end());
177
256
  };
@@ -216,7 +295,24 @@ const noteFailure = (shot, failed) => {
216
295
  return shot;
217
296
  };
218
297
  exports.noteFailure = noteFailure;
219
- const sendShot = (response, shot) => void shot.then((body) => (0, exports.send)(response, { status: 200, type: 'image/png', body }), (error) => {
298
+ exports.SHOT_MAX_AGE_S = 3600;
299
+ /**
300
+ * Answers with the PNG `shot` resolves to, tagged with its content hash; an ask whose `if-none-match` names that
301
+ * tag gets a 304. The asker keys the URL on the content it shows (Studio: session, epoch and revision), so the
302
+ * browser may keep a picture for `SHOT_MAX_AGE_S` and paint it again without asking.
303
+ */
304
+ const sendShot = (response, shot) => void shot.then((body) => {
305
+ var _a;
306
+ const tag = `"${(0, crypto_1.createHash)('sha1').update(body).digest('base64url')}"`;
307
+ response.setHeader('etag', tag);
308
+ response.setHeader('cache-control', `private, max-age=${exports.SHOT_MAX_AGE_S}`);
309
+ if (((_a = response.req) === null || _a === void 0 ? void 0 : _a.headers['if-none-match']) === tag) {
310
+ response.statusCode = 304;
311
+ response.end();
312
+ }
313
+ else
314
+ (0, exports.send)(response, { status: 200, type: 'image/png', body });
315
+ }, (error) => {
220
316
  const failure = failureOf(error);
221
317
  (0, exports.send)(response, error instanceof ShotFailedError
222
318
  ? { status: 500, type: 'image/png', body: error.png }
@@ -258,7 +354,7 @@ const createThumbnailer = (options) => {
258
354
  deviceScaleFactor: exports.THUMB_PIXEL_WIDTH / width,
259
355
  mobile: false,
260
356
  });
261
- yield page.evaluate(exports.settled);
357
+ yield (0, exports.awaitSettled)(page);
262
358
  const { data } = yield cdp.send('Page.captureScreenshot', { format: 'png' });
263
359
  return Buffer.from(data, 'base64');
264
360
  }
@@ -268,6 +364,7 @@ const createThumbnailer = (options) => {
268
364
  });
269
365
  const shotOf = (slug, search) => {
270
366
  const cached = cache.get(search);
367
+ (0, timings_1.recordCache)(cached !== undefined);
271
368
  if (cached)
272
369
  return cached.shot;
273
370
  const shot = drawQueue.run((browser) => draw(browser, { slug, search }));