@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
@@ -4,7 +4,8 @@ exports.designStatus = exports.holdStatus = exports.writeStatus = exports.status
4
4
  const fs_1 = require("fs");
5
5
  const os_1 = require("os");
6
6
  const path_1 = require("path");
7
- const paths_1 = require("./paths");
7
+ const design_config_1 = require("./design-config");
8
+ const push_status_1 = require("./push-status");
8
9
  exports.CALL_STATES = ['scaffolded', 'drawing', 'checking', 'ready', 'failed'];
9
10
  const MESSAGE_LIMIT = 400;
10
11
  const flattened = (value) => value.replace(/[^A-Za-z0-9]/gu, '-');
@@ -38,15 +39,25 @@ const holdStatus = (options) => {
38
39
  };
39
40
  exports.holdStatus = holdStatus;
40
41
  const isState = (value) => exports.CALL_STATES.includes(value);
41
- /** `et design status <slug> <state>` records the state of a call by hand. */
42
+ /** `et design status` shows the unpushed commits and the CI state; with a slug and a state it records a call's state by hand. */
42
43
  const designStatus = (options) => {
43
44
  const { target, argv, invocation } = options;
44
- const [slug, state] = argv;
45
+ const json = argv.includes('--json');
46
+ const [slug, state] = argv.filter((arg) => arg !== '--json');
47
+ if (!slug && !state) {
48
+ const push = (0, push_status_1.pushStatusOf)(target);
49
+ if (push === null) {
50
+ console.error('NO GIT RANGE - the checkout has no commits to compare.');
51
+ return 1;
52
+ }
53
+ console.log(json ? JSON.stringify({ push }) : (0, push_status_1.pushStatusLines)(push).join('\n'));
54
+ return 0;
55
+ }
45
56
  if (!slug || !isState(state)) {
46
57
  console.error(`usage: ${invocation} status <slug> <${exports.CALL_STATES.join('|')}>`);
47
58
  return 2;
48
59
  }
49
- if (!(0, fs_1.existsSync)((0, path_1.join)((0, paths_1.callsRootOf)(target), ...slug.split('/')))) {
60
+ if (!(0, fs_1.existsSync)((0, path_1.join)((0, design_config_1.callsRootOf)(target), ...slug.split('/')))) {
50
61
  console.error(`NO CALL "${slug}" - pass the folder's path under .ethlete/design/calls.`);
51
62
  return 1;
52
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/status.ts"],"names":[],"mappings":";;;AAAA,2BAAgF;AAChF,2BAA4B;AAC5B,+BAA4B;AAC5B,mDAA8C;AAC9C,+CAA8D;AAEjD,QAAA,WAAW,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAU7F,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AAE1E;;;GAGG;AACI,MAAM,UAAU,GAAG,CAAC,OAA2C,EAAE,EAAE,CACxE,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,uBAAuB,EAAE,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC;AADhG,QAAA,UAAU,cACsF;AAE7G,kEAAkE;AAC3D,MAAM,WAAW,GAAG,CAAC,OAA+E,EAAE,EAAE;IAC7G,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACnD,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,MAAM,mBACV,KAAK,EACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAChC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACjE,CAAC;IAEF,IAAA,cAAS,EAAC,IAAA,WAAI,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,IAAA,kBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9C,CAAC,CAAC;AAXW,QAAA,WAAW,eAWtB;AAEF,+FAA+F;AACxF,MAAM,UAAU,GAAG,CAAC,OAA2C,EAAE,EAAE;IACxE,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,IAAA,eAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAElE,OAAO,GAAG,EAAE;QACV,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,IAAA,WAAM,EAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,IAAA,kBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,UAAU,cAWrB;AAEF,MAAM,OAAO,GAAG,CAAC,KAAyB,EAAsB,EAAE,CAAC,mBAAW,CAAC,QAAQ,CAAC,KAAkB,CAAC,CAAC;AAE5G,iIAAiI;AAC1H,MAAM,YAAY,GAAG,CAAC,OAA+D,EAAE,EAAE;IAC9F,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;IAE7D,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,IAAA,0BAAY,EAAC,MAAM,CAAC,CAAC;QAElC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YAExE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAA,6BAAe,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,UAAU,UAAU,mBAAmB,mBAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE/E,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,IAAA,2BAAW,EAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,CAAC,KAAK,CAAC,YAAY,IAAI,yDAAyD,CAAC,CAAC;QAEzF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAA,mBAAW,EAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC;IAEnC,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAnCW,QAAA,YAAY,gBAmCvB"}
@@ -1,6 +1,8 @@
1
1
  import { IncomingMessage } from 'http';
2
2
  import { Inventory } from './system/inventory';
3
3
  import { ResolvedProduct } from './system/resolve-product';
4
+ import { CheckSketches } from './system/sketch/sketch-checker';
5
+ import { DrawStates } from './system/accepted-pictures';
4
6
  import { PictureOf } from './merge-compare';
5
7
  import { BoxOf } from './variant-diff';
6
8
  import { SketchVariant } from './system/system-modules';
@@ -32,7 +34,6 @@ export declare const EXCEPTIONS_PATH = "/__design/exceptions";
32
34
  export declare const EXCEPTION_APPROVE_PATH = "/__design/exception-approve";
33
35
  export declare const MOTION_PATH = "/__design/motion";
34
36
  export declare const OPEN_POINTS_PATH = "/__design/open-points";
35
- export declare const PART_READY_PATH = "/__design/part-ready";
36
37
  export type Answer = {
37
38
  status: number;
38
39
  body: unknown;
@@ -54,15 +55,26 @@ type Asked = {
54
55
  product: ResolvedProduct;
55
56
  part: string;
56
57
  }) => Promise<Inventory | string>;
58
+ drawStates?: DrawStates;
59
+ checkSketches?: CheckSketches;
60
+ /** Aborts when the client closes the request before it has its answer. */
61
+ signal?: AbortSignal;
57
62
  };
63
+ /**
64
+ * Lets the next sketch listing start anew instead of joining one that started before a file changed. A running listing
65
+ * still answers the requests that already joined it.
66
+ */
67
+ export declare const detachRunningListings: () => void;
58
68
  /**
59
69
  * The open sketches of `?product=`, each with its target parts (`targetParts`, the first one first), variants, status,
60
70
  * decision, the rule problems of every variant, the states, widths and interactions of each target part as each variant
61
71
  * draws it (`targets`, one entry per part and variant, tagged with `part`, the first part's entries first), with the states it
62
72
  * draws the same as the product now (`unchanged`), the states it adds and drops and its part note when that differs
63
73
  * from the product's (`changes`), and the live report
64
- * of the agent (`report`, `null` when none runs). `?unchanged=no` leaves `unchanged` empty and skips the pixel comparison, which
65
- * is the slow part of a cold call.
74
+ * of the agent (`report`, `null` when none runs). `?unchanged=no` answers without `problems`, and with the `unchanged` of a target only
75
+ * while a full listing's comparison of the same sources is kept: no rule check, no pictures. `&targets=no` also leaves out `targets`: no part module loads.
76
+ * A listing asked while the same one runs gets that one's answer, unless `detachRunningListings` ran since it started; it stops when every client that asked for it has closed its request.
77
+ * Each listing first runs the held automatic merges whose uncommitted files are gone.
66
78
  */
67
79
  export declare const sketchesAnswer: (asked: Asked) => Answer | Promise<Answer>;
68
80
  /** `?product=&sketch=<layer>/<name>&variant=`: the parts a merge of that variant changes and the elements and pages that show them. */
@@ -91,14 +103,16 @@ export declare const sketchCropAnswer: (asked: Asked) => Answer | Promise<Answer
91
103
  export declare const sketchDecisionAnswer: (asked: Asked) => Answer | Promise<Answer>;
92
104
  /**
93
105
  * POST `?product=&sketch=`, body `{ note? }`: merges the picked variant into the product, as `et design sketch merge` does.
94
- * A merge refused for a stale baseline answers 422 with `changed` (the parts, `[]` without a baseline) and the `rebase` command.
106
+ * A merge refused for a stale baseline answers 422 with `changed` (the parts, `[]` without a baseline) and the `rebase` command;
107
+ * one the check fails after answers 422 with reason `check-failed` and the check's `findings` lines.
95
108
  */
96
109
  export declare const sketchMergeAnswer: (asked: Asked) => Answer | Promise<Answer>;
97
110
  /** POST `?product=&sketch=`: deletes the sketch with all its variants, as `et design sketch discard` does. */
98
111
  export declare const sketchDiscardAnswer: (asked: Asked) => Answer | Promise<Answer>;
99
112
  /**
100
113
  * `?product=[&part=<layer>/<name>]`: every comment with its `replies`, oldest first, each with the reason it
101
- * is stale or `null`, its `threadState` (`agent`, `question` or `answered`) and, once closed, its `resolved`.
114
+ * is stale or `null`, its `threadState` (`agent`, `question` or `answered`) and, once closed, its `resolved`; `userName` is
115
+ * the `git config user.name` of the checkout, or `null`.
102
116
  */
103
117
  export declare const commentsAnswer: (asked: Asked) => Answer | Promise<Answer>;
104
118
  /** POST `?product=`, body `{ part, state, size, text, interaction?, point?: { x, y }, sketch?: { target, variant } }`: writes a canvas comment. */
@@ -136,11 +150,8 @@ export declare const exceptionApproveAnswer: (asked: Asked) => Answer | Promise<
136
150
  /**
137
151
  * GET `?product=&part=&draw=`: the open points of one part, or of every part without `part`. Contrasts and missing
138
152
  * control states need a draw: only `draw=true` with a `part` lists them, and `drawn` says whether they are in.
153
+ * `directEdit` says whether the merged part changed outside a sketch and waits for an accept; `buildReady` whether the
154
+ * part may be built now, or its blockers.
139
155
  */
140
156
  export declare const openPointsAnswer: (asked: Asked) => Answer | Promise<Answer>;
141
- /**
142
- * POST `?product=`, body `{ part, hash, by }`: marks a part ready at the hash Studio showed. It draws the part and
143
- * refuses with 422 and the `points` while its open-point list is not empty.
144
- */
145
- export declare const partReadyAnswer: (asked: Asked) => Answer | Promise<Answer>;
146
157
  export {};
@@ -27,22 +27,28 @@ var __rest = (this && this.__rest) || function (s, e) {
27
27
  return t;
28
28
  };
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.flowNoteDeleteAnswer = exports.flowNoteChangeAnswer = exports.flowNoteAnswer = exports.noteDeleteAnswer = exports.noteChangeAnswer = exports.noteAnswer = exports.notesAnswer = exports.flowsAnswer = exports.commentReplyAnswer = exports.commentWithdrawAnswer = exports.commentDoneAnswer = exports.commentAnswer = exports.commentsAnswer = exports.sketchDiscardAnswer = exports.sketchMergeAnswer = exports.sketchDecisionAnswer = exports.sketchCropAnswer = exports.sketchDiffAnswer = exports.sketchCompareAnswer = exports.sketchPreviewAnswer = exports.sketchesAnswer = exports.PART_READY_PATH = exports.OPEN_POINTS_PATH = exports.MOTION_PATH = exports.EXCEPTION_APPROVE_PATH = exports.EXCEPTIONS_PATH = exports.INVENTORY_APPROVE_PATH = exports.INVENTORY_PATH = exports.FLOW_NOTE_DELETE_PATH = exports.FLOW_NOTE_CHANGE_PATH = exports.FLOW_NOTE_PATH = exports.NOTE_DELETE_PATH = exports.NOTE_CHANGE_PATH = exports.NOTE_PATH = exports.NOTES_PATH = exports.FLOWS_PATH = exports.COMMENT_EVENTS_PATH = exports.COMMENT_REPLY_PATH = exports.COMMENT_WITHDRAW_PATH = exports.COMMENT_DONE_PATH = exports.COMMENT_PATH = exports.COMMENTS_PATH = exports.SKETCH_DISCARD_PATH = exports.SKETCH_MERGE_PATH = exports.SKETCH_DECISION_PATH = exports.SKETCH_CROP_PATH = exports.SKETCH_DIFF_PATH = exports.SKETCH_COMPARE_PATH = exports.SKETCH_PREVIEW_PATH = exports.SKETCHES_PATH = void 0;
31
- exports.partReadyAnswer = exports.openPointsAnswer = exports.exceptionApproveAnswer = exports.exceptionsAnswer = exports.inventoryApproveAnswer = exports.inventoryAnswer = void 0;
30
+ exports.flowNoteDeleteAnswer = exports.flowNoteChangeAnswer = exports.flowNoteAnswer = exports.noteDeleteAnswer = exports.noteChangeAnswer = exports.noteAnswer = exports.notesAnswer = exports.flowsAnswer = exports.commentReplyAnswer = exports.commentWithdrawAnswer = exports.commentDoneAnswer = exports.commentAnswer = exports.commentsAnswer = exports.sketchDiscardAnswer = exports.sketchMergeAnswer = exports.sketchDecisionAnswer = exports.sketchCropAnswer = exports.sketchDiffAnswer = exports.sketchCompareAnswer = exports.sketchPreviewAnswer = exports.sketchesAnswer = exports.detachRunningListings = exports.OPEN_POINTS_PATH = exports.MOTION_PATH = exports.EXCEPTION_APPROVE_PATH = exports.EXCEPTIONS_PATH = exports.INVENTORY_APPROVE_PATH = exports.INVENTORY_PATH = exports.FLOW_NOTE_DELETE_PATH = exports.FLOW_NOTE_CHANGE_PATH = exports.FLOW_NOTE_PATH = exports.NOTE_DELETE_PATH = exports.NOTE_CHANGE_PATH = exports.NOTE_PATH = exports.NOTES_PATH = exports.FLOWS_PATH = exports.COMMENT_EVENTS_PATH = exports.COMMENT_REPLY_PATH = exports.COMMENT_WITHDRAW_PATH = exports.COMMENT_DONE_PATH = exports.COMMENT_PATH = exports.COMMENTS_PATH = exports.SKETCH_DISCARD_PATH = exports.SKETCH_MERGE_PATH = exports.SKETCH_DECISION_PATH = exports.SKETCH_CROP_PATH = exports.SKETCH_DIFF_PATH = exports.SKETCH_COMPARE_PATH = exports.SKETCH_PREVIEW_PATH = exports.SKETCHES_PATH = void 0;
31
+ exports.openPointsAnswer = exports.exceptionApproveAnswer = exports.exceptionsAnswer = exports.inventoryApproveAnswer = exports.inventoryAnswer = void 0;
32
+ const child_process_1 = require("child_process");
33
+ const write_origin_1 = require("./system/write-origin");
32
34
  const path_1 = require("path");
35
+ const rxjs_1 = require("rxjs");
36
+ const promises_1 = require("timers/promises");
33
37
  const invocation_1 = require("../invocation");
34
- const paths_1 = require("./paths");
38
+ const design_config_1 = require("./design-config");
35
39
  const comment_1 = require("./system/comments/comment");
36
40
  const flow_1 = require("./system/flows/flow");
37
41
  const note_1 = require("./system/notes/note");
38
42
  const exceptions_1 = require("./system/exceptions");
39
43
  const inventory_1 = require("./system/inventory");
40
- const part_ready_1 = require("./system/part-ready");
41
- const read_open_points_1 = require("./system/read-open-points");
44
+ const drawn_open_points_1 = require("./system/drawn-open-points");
45
+ const open_points_runner_1 = require("./system/open-points-runner");
42
46
  const flow_2 = require("./system/rules/flow");
43
47
  const check_sketches_1 = require("./system/sketch/check-sketches");
44
48
  const cli_args_1 = require("./system/sketch/cli-args");
49
+ const sketch_command_1 = require("./sketch-command");
45
50
  const merge_1 = require("./system/sketch/merge");
51
+ const merge_runner_1 = require("./system/sketch/merge-runner");
46
52
  const list_system_1 = require("./system/list-system");
47
53
  const merge_compare_1 = require("./merge-compare");
48
54
  const variant_diff_1 = require("./variant-diff");
@@ -80,11 +86,14 @@ exports.EXCEPTIONS_PATH = '/__design/exceptions';
80
86
  exports.EXCEPTION_APPROVE_PATH = '/__design/exception-approve';
81
87
  exports.MOTION_PATH = '/__design/motion';
82
88
  exports.OPEN_POINTS_PATH = '/__design/open-points';
83
- exports.PART_READY_PATH = '/__design/part-ready';
84
89
  const failure = (status, message) => ({ status, body: { error: message } });
90
+ const refusal = (options) => ({
91
+ status: options.status,
92
+ body: Object.assign({ error: options.message, reason: options.reason }, options.extra),
93
+ });
85
94
  const productOf = ({ target, url }) => {
86
95
  const asked = url.searchParams.get('product');
87
- const config = (0, paths_1.readConfig)(target);
96
+ const config = (0, design_config_1.readConfig)(target);
88
97
  if (!config)
89
98
  return failure(404, 'no design config');
90
99
  if (!asked)
@@ -130,6 +139,17 @@ const withProduct = (method, run) => (asked) => {
130
139
  const found = productOf(asked);
131
140
  return isAnswer(found) ? found : run(Object.assign(Object.assign({}, found), { asked }));
132
141
  };
142
+ const stopping = (signal, run) => (...args) => __awaiter(void 0, void 0, void 0, function* () {
143
+ signal.throwIfAborted();
144
+ return run(...args);
145
+ });
146
+ /** `asked` with its loaders refusing to start a module load or a picture once `signal` aborts. */
147
+ const stoppingOn = (asked, signal) => {
148
+ if (!signal)
149
+ return asked;
150
+ const { load, pictureOf, boxOf } = asked;
151
+ return Object.assign(Object.assign(Object.assign(Object.assign({}, asked), (load ? { load: stopping(signal, load) } : {})), (pictureOf ? { pictureOf: stopping(signal, pictureOf) } : {})), (boxOf ? { boxOf: stopping(signal, boxOf) } : {}));
152
+ };
133
153
  const withSketch = (method, run) => withProduct(method, (found) => {
134
154
  var _a;
135
155
  const parsed = (0, sketch_1.parseTarget)((_a = found.asked.url.searchParams.get('sketch')) !== null && _a !== void 0 ? _a : undefined);
@@ -140,7 +160,7 @@ const withSketch = (method, run) => withProduct(method, (found) => {
140
160
  return failure(404, `no sketch on ${parsed.layer}/${parsed.name} in ${found.product.name}`);
141
161
  if (typeof sketch === 'string')
142
162
  return failure(422, sketch);
143
- return run(Object.assign(Object.assign({}, found), { sketch }));
163
+ return run(Object.assign(Object.assign({}, found), { asked: stoppingOn(found.asked, found.asked.signal), sketch }));
144
164
  });
145
165
  const problemOf = ({ target, problem }) => ({
146
166
  rule: problem.rule,
@@ -160,7 +180,21 @@ const variantChangesOf = ({ current, drawn }) => ({
160
180
  dropped: current.states.filter((state) => !drawn.states.includes(state)),
161
181
  note: drawn.note === current.note ? null : { before: current.note, after: drawn.note },
162
182
  });
163
- const partTargetsOf = (_a) => __awaiter(void 0, [_a], void 0, function* ({ product, sketch, part, load, pictureOf, skipUnchanged, }) {
183
+ /** Maps `items` one after another, letting the server answer other requests before each, and stops once `signal` aborts. */
184
+ const inTurns = (_a, run_1) => __awaiter(void 0, [_a, run_1], void 0, function* ({ items, signal }, run) {
185
+ const results = [];
186
+ for (const item of items) {
187
+ yield (0, promises_1.setImmediate)();
188
+ signal === null || signal === void 0 ? void 0 : signal.throwIfAborted();
189
+ results.push(yield run(item));
190
+ }
191
+ return results;
192
+ });
193
+ const keptOf = (options) => __awaiter(void 0, void 0, void 0, function* () {
194
+ const unchanged = options.problem ? null : yield (0, unchanged_states_1.keptUnchangedStatesOf)(options);
195
+ return unchanged ? { unchanged } : {};
196
+ });
197
+ const partTargetsOf = (_a) => __awaiter(void 0, [_a], void 0, function* ({ product, sketch, part, load, pictureOf, signal, compare, }) {
164
198
  var _b;
165
199
  const currentFile = (_b = product.parts.find((entry) => (0, resolve_product_1.partKeyOf)(entry) === part)) === null || _b === void 0 ? void 0 : _b.file;
166
200
  const current = currentFile && load
@@ -170,7 +204,7 @@ const partTargetsOf = (_a) => __awaiter(void 0, [_a], void 0, function* ({ produ
170
204
  load: () => load({ file: currentFile, product: product.name, sketch: null }),
171
205
  })
172
206
  : null;
173
- return Promise.all(sketch.variants.map((variant) => __awaiter(void 0, void 0, void 0, function* () {
207
+ return inTurns({ items: sketch.variants, signal }, (variant) => __awaiter(void 0, void 0, void 0, function* () {
174
208
  var _a;
175
209
  const file = (_a = (0, overlay_1.overlaySketch)({ product, sketch, variant }).parts.find((entry) => (0, resolve_product_1.partKeyOf)(entry) === part)) === null || _a === void 0 ? void 0 : _a.file;
176
210
  if (!file || !load)
@@ -181,50 +215,116 @@ const partTargetsOf = (_a) => __awaiter(void 0, [_a], void 0, function* ({ produ
181
215
  product: product.name,
182
216
  load: () => load({ file, product: product.name, sketch: { target: sketch.target, variant } }),
183
217
  }), { states, interactions, problem, note } = _b, widths = __rest(_b, ["states", "interactions", "problem", "note"]);
184
- return Object.assign(Object.assign(Object.assign(Object.assign({ part,
218
+ return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ part,
185
219
  variant,
186
- states }, ('widths' in widths ? { widths: widths.widths } : {})), { interactions, unchanged: problem || skipUnchanged
187
- ? []
188
- : yield (0, unchanged_states_1.unchangedStatesOf)({ product, sketch, variant, load, pictureOf, keepPictures: true, part }) }), (problem || !current || current.problem
220
+ states }, ('widths' in widths ? { widths: widths.widths } : {})), { interactions }), (compare
221
+ ? {
222
+ unchanged: problem
223
+ ? []
224
+ : yield (0, unchanged_states_1.unchangedStatesOf)({ product, sketch, variant, load, pictureOf, keepPictures: true, part }),
225
+ }
226
+ : yield keptOf({ product, sketch, variant, part, pictured: !!pictureOf, problem }))), (problem || !current || current.problem
189
227
  ? {}
190
228
  : { changes: variantChangesOf({ current, drawn: { states, note } }) })), (problem ? { error: problem } : {}));
191
- })));
229
+ }));
230
+ });
231
+ const targetsOf = (options) => __awaiter(void 0, void 0, void 0, function* () {
232
+ return (yield inTurns({ items: options.sketch.targets, signal: options.signal }, (part) => partTargetsOf(Object.assign(Object.assign({}, options), { part })))).flat();
233
+ });
234
+ const listingOf = (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, product, light, signal, }) {
235
+ var _b;
236
+ const { target } = asked;
237
+ const listOnly = light && asked.url.searchParams.get('targets') === 'no';
238
+ const listed = yield (0, sketch_1.listSketchesInTurns)({ productDir: product.dir, product: product.name });
239
+ const sketches = listed.filter((sketch) => typeof sketch !== 'string');
240
+ const checked = light
241
+ ? null
242
+ : asked.checkSketches
243
+ ? yield asked.checkSketches({ target, product: product.name })
244
+ : (0, check_sketches_1.openSketchListingOf)(product);
245
+ const unreadable = (_b = checked === null || checked === void 0 ? void 0 : checked.unreadable) !== null && _b !== void 0 ? _b : listed.flatMap((sketch) => typeof sketch === 'string' ? [{ rule: 'SKETCH', file: product.dir, message: sketch }] : []);
246
+ return {
247
+ status: 200,
248
+ body: {
249
+ sketches: yield inTurns({ items: sketches, signal }, (sketch) => __awaiter(void 0, void 0, void 0, function* () {
250
+ return (Object.assign(Object.assign(Object.assign(Object.assign({}, sketchOf({ sketch, target })), (checked
251
+ ? {
252
+ problems: checked.variants
253
+ .filter((entry) => entry.target === sketch.target)
254
+ .map((entry) => ({
255
+ variant: entry.variant,
256
+ problems: entry.problems.map((p) => problemOf({ target, problem: p })),
257
+ })),
258
+ }
259
+ : {})), (listOnly
260
+ ? {}
261
+ : {
262
+ targets: yield targetsOf({
263
+ product,
264
+ sketch,
265
+ load: asked.load,
266
+ pictureOf: asked.pictureOf,
267
+ signal,
268
+ compare: !light,
269
+ }),
270
+ })), { report: (0, sketch_1.readSketchReport)({ checkout: target, sketch }) }));
271
+ })),
272
+ unreadable: unreadable.map((problem) => problemOf({ target, problem })),
273
+ },
274
+ };
192
275
  });
193
- const targetsOf = (options) => __awaiter(void 0, void 0, void 0, function* () { return (yield Promise.all(options.sketch.targets.map((part) => partTargetsOf(Object.assign(Object.assign({}, options), { part }))))).flat(); });
276
+ const runningListings = new Map();
277
+ /**
278
+ * Lets the next sketch listing start anew instead of joining one that started before a file changed. A running listing
279
+ * still answers the requests that already joined it.
280
+ */
281
+ const detachRunningListings = () => runningListings.clear();
282
+ exports.detachRunningListings = detachRunningListings;
283
+ const startedListing = ({ key, asked, product, light, }) => {
284
+ const stop = new AbortController();
285
+ const listing = {
286
+ askers: 0,
287
+ stop,
288
+ answer: listingOf({ asked: stoppingOn(asked, stop.signal), product, light, signal: stop.signal }).finally(() => {
289
+ if (runningListings.get(key) === listing)
290
+ runningListings.delete(key);
291
+ }),
292
+ };
293
+ runningListings.set(key, listing);
294
+ return listing;
295
+ };
194
296
  /**
195
297
  * The open sketches of `?product=`, each with its target parts (`targetParts`, the first one first), variants, status,
196
298
  * decision, the rule problems of every variant, the states, widths and interactions of each target part as each variant
197
299
  * draws it (`targets`, one entry per part and variant, tagged with `part`, the first part's entries first), with the states it
198
300
  * draws the same as the product now (`unchanged`), the states it adds and drops and its part note when that differs
199
301
  * from the product's (`changes`), and the live report
200
- * of the agent (`report`, `null` when none runs). `?unchanged=no` leaves `unchanged` empty and skips the pixel comparison, which
201
- * is the slow part of a cold call.
302
+ * of the agent (`report`, `null` when none runs). `?unchanged=no` answers without `problems`, and with the `unchanged` of a target only
303
+ * while a full listing's comparison of the same sources is kept: no rule check, no pictures. `&targets=no` also leaves out `targets`: no part module loads.
304
+ * A listing asked while the same one runs gets that one's answer, unless `detachRunningListings` ran since it started; it stops when every client that asked for it has closed its request.
305
+ * Each listing first runs the held automatic merges whose uncommitted files are gone.
202
306
  */
203
- exports.sketchesAnswer = withProduct('GET', (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, product }) {
204
- const { target } = asked;
205
- const { unreadable, variants } = (0, check_sketches_1.openSketchProblemsOf)(product);
206
- const sketches = (0, sketch_1.listSketches)({ productDir: product.dir, product: product.name }).filter((sketch) => typeof sketch !== 'string');
207
- return {
208
- status: 200,
209
- body: {
210
- sketches: yield Promise.all(sketches.map((sketch) => __awaiter(void 0, void 0, void 0, function* () {
211
- return (Object.assign(Object.assign({}, sketchOf({ sketch, target })), { problems: variants
212
- .filter((entry) => entry.sketch.target === sketch.target)
213
- .map((entry) => ({
214
- variant: entry.variant,
215
- problems: entry.problems.map((p) => problemOf({ target, problem: p })),
216
- })), targets: yield targetsOf({
217
- product,
218
- sketch,
219
- load: asked.load,
220
- pictureOf: asked.pictureOf,
221
- skipUnchanged: asked.url.searchParams.get('unchanged') === 'no',
222
- }), report: (0, sketch_1.readSketchReport)({ checkout: target, sketch }) }));
223
- }))),
224
- unreadable: unreadable.map((problem) => problemOf({ target, problem })),
225
- },
307
+ exports.sketchesAnswer = withProduct('GET', ({ asked, config, product }) => {
308
+ var _a, _b;
309
+ (0, sketch_command_1.retriedHeldMerges)({ target: asked.target, config });
310
+ const light = asked.url.searchParams.get('unchanged') === 'no';
311
+ const key = JSON.stringify([asked.target, product.name, light, asked.url.searchParams.get('targets') === 'no']);
312
+ const listing = (_a = runningListings.get(key)) !== null && _a !== void 0 ? _a : startedListing({ key, asked, product, light });
313
+ const leave = () => {
314
+ listing.askers -= 1;
315
+ if (listing.askers > 0)
316
+ return;
317
+ listing.stop.abort();
318
+ if (runningListings.get(key) === listing)
319
+ runningListings.delete(key);
226
320
  };
227
- }));
321
+ listing.askers += 1;
322
+ if ((_b = asked.signal) === null || _b === void 0 ? void 0 : _b.aborted)
323
+ leave();
324
+ else if (asked.signal)
325
+ (0, rxjs_1.fromEvent)(asked.signal, 'abort').pipe((0, rxjs_1.take)(1)).subscribe(leave);
326
+ return listing.answer;
327
+ });
228
328
  /** `?product=&sketch=<layer>/<name>&variant=`: the parts a merge of that variant changes and the elements and pages that show them. */
229
329
  exports.sketchPreviewAnswer = withSketch('GET', ({ asked, product, sketch }) => {
230
330
  var _a;
@@ -255,7 +355,7 @@ exports.sketchCompareAnswer = withSketch('GET', (_a) => __awaiter(void 0, [_a],
255
355
  size: asked.url.searchParams.get('size'),
256
356
  params: asked.url.searchParams,
257
357
  pictureOf,
258
- load: ({ file, product: name }) => load({ file, product: name, sketch: null }),
358
+ load,
259
359
  }),
260
360
  };
261
361
  }));
@@ -266,7 +366,7 @@ exports.sketchCompareAnswer = withSketch('GET', (_a) => __awaiter(void 0, [_a],
266
366
  exports.sketchDiffAnswer = withSketch('GET', (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, product, sketch }) {
267
367
  var _b, _c;
268
368
  const variant = (_b = asked.url.searchParams.get('variant')) !== null && _b !== void 0 ? _b : '';
269
- const part = (_c = asked.url.searchParams.get('part')) !== null && _c !== void 0 ? _c : sketch.target;
369
+ const part = (_c = asked.url.searchParams.get('part')) !== null && _c !== void 0 ? _c : sketch.targets[0];
270
370
  const { load, pictureOf, boxOf } = asked;
271
371
  if (!sketch.variants.includes(variant))
272
372
  return failure(404, `${sketch.target} has no variant "${variant}"`);
@@ -328,6 +428,7 @@ exports.sketchDecisionAnswer = withSketch('POST', (_a) => __awaiter(void 0, [_a]
328
428
  const comment = textOf(body === null || body === void 0 ? void 0 : body['comment']);
329
429
  const reason = textOf(body === null || body === void 0 ? void 0 : body['reason']);
330
430
  const variant = (_b = textOf(body === null || body === void 0 ? void 0 : body['variant'])) !== null && _b !== void 0 ? _b : '';
431
+ const studioOrigin = (0, write_origin_1.originOf)('designer', `POST ${exports.SKETCH_DECISION_PATH}`);
331
432
  if (!SKETCH_DECISION_KINDS.includes(kind))
332
433
  return failure(400, `kind must be one of ${SKETCH_DECISION_KINDS.join(', ')}`);
333
434
  if (kind !== 'discard' && !variant)
@@ -335,8 +436,8 @@ exports.sketchDecisionAnswer = withSketch('POST', (_a) => __awaiter(void 0, [_a]
335
436
  if (kind === 'reason' && !reason)
336
437
  return failure(400, 'a reason needs text');
337
438
  const decision = kind === 'discard'
338
- ? Object.assign({ kind }, (comment ? { comment } : {})) : kind === 'pick'
339
- ? Object.assign({ kind, variant }, (comment ? { comment } : {})) : { kind, variant, reason: reason !== null && reason !== void 0 ? reason : '', by: 'designer' };
439
+ ? Object.assign(Object.assign({ kind }, (comment ? { comment } : {})), studioOrigin) : kind === 'pick'
440
+ ? Object.assign(Object.assign({ kind, variant }, (comment ? { comment } : {})), studioOrigin) : { kind, variant, reason: reason !== null && reason !== void 0 ? reason : '', by: 'designer' };
340
441
  const decided = (0, sketch_1.decideSketch)({ sketch, decision });
341
442
  return typeof decided === 'string'
342
443
  ? failure(422, decided)
@@ -344,14 +445,25 @@ exports.sketchDecisionAnswer = withSketch('POST', (_a) => __awaiter(void 0, [_a]
344
445
  }));
345
446
  /**
346
447
  * POST `?product=&sketch=`, body `{ note? }`: merges the picked variant into the product, as `et design sketch merge` does.
347
- * A merge refused for a stale baseline answers 422 with `changed` (the parts, `[]` without a baseline) and the `rebase` command.
448
+ * A merge refused for a stale baseline answers 422 with `changed` (the parts, `[]` without a baseline) and the `rebase` command;
449
+ * one the check fails after answers 422 with reason `check-failed` and the check's `findings` lines.
348
450
  */
349
- exports.sketchMergeAnswer = withSketch('POST', (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, config, product, sketch }) {
451
+ exports.sketchMergeAnswer = withSketch('POST', (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, product, sketch }) {
350
452
  const body = yield bodyOf(asked.request);
351
453
  const note = textOf(body === null || body === void 0 ? void 0 : body['note']);
352
- const merged = (0, merge_1.mergeSketch)({ target: asked.target, config, product, sketch, note });
454
+ const refused = (0, merge_1.mergeRefusalOf)({ product, sketch });
455
+ if (refused !== null)
456
+ return failure(422, refused);
457
+ const merged = yield (0, merge_runner_1.mergeInWorker)({ target: asked.target, product: product.name, sketch, note });
353
458
  if (Array.isArray(merged))
354
459
  return { status: 200, body: { merged } };
460
+ if (merged.findings)
461
+ return refusal({
462
+ status: 422,
463
+ reason: 'check-failed',
464
+ message: merged.reason,
465
+ extra: { findings: merged.findings },
466
+ });
355
467
  if (!merged.changed)
356
468
  return failure(422, merged.reason);
357
469
  return {
@@ -368,9 +480,22 @@ exports.sketchDiscardAnswer = withSketch('POST', ({ asked, sketch }) => {
368
480
  const problem = (0, merge_1.discardSketch)({ target: asked.target, sketch });
369
481
  return problem ? failure(422, problem) : { status: 200, body: { discarded: sketch.target } };
370
482
  });
483
+ const userNameOf = (dir) => {
484
+ try {
485
+ return ((0, child_process_1.execFileSync)('git', ['config', 'user.name'], {
486
+ cwd: dir,
487
+ encoding: 'utf8',
488
+ stdio: ['ignore', 'pipe', 'ignore'],
489
+ }).trim() || null);
490
+ }
491
+ catch (_a) {
492
+ return null;
493
+ }
494
+ };
371
495
  /**
372
496
  * `?product=[&part=<layer>/<name>]`: every comment with its `replies`, oldest first, each with the reason it
373
- * is stale or `null`, its `threadState` (`agent`, `question` or `answered`) and, once closed, its `resolved`.
497
+ * is stale or `null`, its `threadState` (`agent`, `question` or `answered`) and, once closed, its `resolved`; `userName` is
498
+ * the `git config user.name` of the checkout, or `null`.
374
499
  */
375
500
  exports.commentsAnswer = withProduct('GET', ({ asked, product }) => {
376
501
  const part = asked.url.searchParams.get('part');
@@ -382,6 +507,7 @@ exports.commentsAnswer = withProduct('GET', ({ asked, product }) => {
382
507
  .filter((comment) => !part || comment.part === part)
383
508
  .map((comment) => commentOf({ comment, target: asked.target, product })),
384
509
  unreadable: unreadable.map(({ file, problem }) => ({ file: (0, path_1.relative)(asked.target, file), problem })),
510
+ userName: userNameOf(product.dir),
385
511
  },
386
512
  };
387
513
  });
@@ -577,18 +703,20 @@ exports.exceptionApproveAnswer = withProduct('POST', (_a) => __awaiter(void 0, [
577
703
  }));
578
704
  const knownPartOf = (product, part) => {
579
705
  if (typeof part !== 'string' || part === '')
580
- return failure(400, 'part is required');
706
+ return refusal({ status: 400, reason: 'part-missing', message: 'part is required' });
581
707
  return product.parts.some((candidate) => (0, resolve_product_1.partKeyOf)(candidate) === part)
582
708
  ? part
583
- : failure(404, `product "${product.name}" has no part "${part}"`);
709
+ : refusal({ status: 404, reason: 'unknown-part', message: `product "${product.name}" has no part "${part}"` });
584
710
  };
585
- const drawnPointsOf = (_a, part_1) => __awaiter(void 0, [_a, part_1], void 0, function* ({ asked, config, product }, part) {
586
- const points = yield (0, part_ready_1.drawnPartPointsOf)({ target: asked.target, config, product, part });
587
- return 'unavailable' in points ? { status: 503, error: `cannot draw ${part}: ${points.unavailable}` } : points;
711
+ const drawnFindingsAnswerOf = (_a, part_1) => __awaiter(void 0, [_a, part_1], void 0, function* ({ asked, config, product }, part) {
712
+ const findings = yield (0, drawn_open_points_1.drawnFindingsOf)({ target: asked.target, config, product, parts: [part] });
713
+ return 'unavailable' in findings ? { status: 503, error: `cannot draw ${part}: ${findings.unavailable}` } : findings;
588
714
  });
589
715
  /**
590
716
  * GET `?product=&part=&draw=`: the open points of one part, or of every part without `part`. Contrasts and missing
591
717
  * control states need a draw: only `draw=true` with a `part` lists them, and `drawn` says whether they are in.
718
+ * `directEdit` says whether the merged part changed outside a sketch and waits for an accept; `buildReady` whether the
719
+ * part may be built now, or its blockers.
592
720
  */
593
721
  exports.openPointsAnswer = withProduct('GET', (found) => __awaiter(void 0, void 0, void 0, function* () {
594
722
  const { url } = found.asked;
@@ -599,42 +727,18 @@ exports.openPointsAnswer = withProduct('GET', (found) => __awaiter(void 0, void
599
727
  if (asked === null) {
600
728
  if (draw === 'true')
601
729
  return failure(400, 'draw needs a part');
602
- return { status: 200, body: { drawn: false, parts: (0, read_open_points_1.readOpenPoints)(found.product) } };
730
+ return {
731
+ status: 200,
732
+ body: Object.assign({ drawn: false }, (yield (0, open_points_runner_1.openPointsInWorker)({ product: found.product, part: null }))),
733
+ };
603
734
  }
604
735
  const part = knownPartOf(found.product, asked);
605
736
  if (typeof part !== 'string')
606
737
  return part;
607
- const points = draw === 'true' ? yield drawnPointsOf(found, part) : (0, read_open_points_1.partPointsOf)((0, read_open_points_1.readOpenPoints)(found.product), part);
608
- if (!Array.isArray(points))
609
- return failure(points.status, points.error);
610
- const located = (0, part_ready_1.readyPartOf)({ product: found.product, part });
611
- const hash = typeof located === 'string' ? null : located.hash;
612
- const ready = (0, part_ready_1.readyMarkOf)({ product: found.product, part });
613
- return { status: 200, body: { part, hash, ready, drawn: draw === 'true', points } };
614
- }));
615
- /**
616
- * POST `?product=`, body `{ part, hash, by }`: marks a part ready at the hash Studio showed. It draws the part and
617
- * refuses with 422 and the `points` while its open-point list is not empty.
618
- */
619
- exports.partReadyAnswer = withProduct('POST', (found) => __awaiter(void 0, void 0, void 0, function* () {
620
- const body = yield bodyOf(found.asked.request);
621
- if (!body)
622
- return failure(400, 'the body must be a JSON object');
623
- const part = knownPartOf(found.product, body['part']);
624
- if (typeof part !== 'string')
625
- return part;
626
- const marked = yield (0, part_ready_1.markPartReady)({
627
- product: found.product,
628
- part,
629
- hash: body['hash'],
630
- by: body['by'],
631
- pointsOf: () => drawnPointsOf(found, part),
632
- });
633
- if ('status' in marked)
634
- return {
635
- status: marked.status,
636
- body: Object.assign({ error: marked.error }, (marked.points ? { points: marked.points } : {})),
637
- };
638
- return { status: 200, body: { part, hash: marked.hash, ready: marked, points: [] } };
738
+ const findings = draw === 'true' ? yield drawnFindingsAnswerOf(found, part) : undefined;
739
+ if (findings && 'error' in findings)
740
+ return failure(findings.status, findings.error);
741
+ const answer = yield (0, open_points_runner_1.openPointsInWorker)({ product: found.product, part, findings });
742
+ return { status: 200, body: Object.assign(Object.assign({}, answer), { drawn: draw === 'true' }) };
639
743
  }));
640
744
  //# sourceMappingURL=studio-api.js.map