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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (582) hide show
  1. package/CHANGELOG.md +153 -0
  2. package/build-info.json +1 -1
  3. package/design/arrow-anchor.ts +55 -0
  4. package/design/define-call.ts +3 -0
  5. package/design/define-part.ts +28 -1
  6. package/design/web/frame.ts +28 -0
  7. package/package.json +1 -1
  8. package/src/lib/api/compose.js +3 -2
  9. package/src/lib/api/compose.js.map +1 -1
  10. package/src/lib/api/git.js +2 -1
  11. package/src/lib/api/git.js.map +1 -1
  12. package/src/lib/api/setup.js +2 -2
  13. package/src/lib/api/setup.js.map +1 -1
  14. package/src/lib/design/asset-shot.js +2 -2
  15. package/src/lib/design/asset-shot.js.map +1 -1
  16. package/src/lib/design/blank-png.d.ts +2 -0
  17. package/src/lib/design/blank-png.js +28 -0
  18. package/src/lib/design/blank-png.js.map +1 -0
  19. package/src/lib/design/cache-entry.d.ts +8 -0
  20. package/src/lib/design/cache-entry.js +30 -0
  21. package/src/lib/design/cache-entry.js.map +1 -0
  22. package/src/lib/design/calls-tsconfig.js +20 -13
  23. package/src/lib/design/calls-tsconfig.js.map +1 -1
  24. package/src/lib/design/calls.js +3 -3
  25. package/src/lib/design/calls.js.map +1 -1
  26. package/src/lib/design/changed-parts.d.ts +1 -1
  27. package/src/lib/design/check.d.ts +2 -0
  28. package/src/lib/design/check.js +91 -24
  29. package/src/lib/design/check.js.map +1 -1
  30. package/src/lib/design/code-hash.d.ts +30 -0
  31. package/src/lib/design/code-hash.js +118 -0
  32. package/src/lib/design/code-hash.js.map +1 -0
  33. package/src/lib/design/commit-hunks.d.ts +2 -2
  34. package/src/lib/design/commit-hunks.js +2 -2
  35. package/src/lib/design/design-command.js +131 -36
  36. package/src/lib/design/design-command.js.map +1 -1
  37. package/src/lib/design/{paths.d.ts → design-config.d.ts} +6 -28
  38. package/src/lib/design/design-config.js +35 -0
  39. package/src/lib/design/design-config.js.map +1 -0
  40. package/src/lib/design/design-lint.d.ts +68 -0
  41. package/src/lib/design/design-lint.js +183 -0
  42. package/src/lib/design/design-lint.js.map +1 -0
  43. package/src/lib/design/draw-ledger.d.ts +6 -0
  44. package/src/lib/design/draw-ledger.js +10 -0
  45. package/src/lib/design/draw-ledger.js.map +1 -1
  46. package/src/lib/design/force-interactions.d.ts +2 -0
  47. package/src/lib/design/force-interactions.js +4 -2
  48. package/src/lib/design/force-interactions.js.map +1 -1
  49. package/src/lib/design/generated-stylesheets.d.ts +1 -1
  50. package/src/lib/design/generated-stylesheets.js +2 -2
  51. package/src/lib/design/generated-stylesheets.js.map +1 -1
  52. package/src/lib/design/git-top.d.ts +5 -0
  53. package/src/lib/design/git-top.js +16 -0
  54. package/src/lib/design/git-top.js.map +1 -0
  55. package/src/lib/design/hooks-problem.d.ts +2 -0
  56. package/src/lib/design/hooks-problem.js +23 -0
  57. package/src/lib/design/hooks-problem.js.map +1 -0
  58. package/src/lib/design/index.d.ts +4 -1
  59. package/src/lib/design/index.js +4 -1
  60. package/src/lib/design/index.js.map +1 -1
  61. package/src/lib/design/is-running.d.ts +1 -0
  62. package/src/lib/design/is-running.js +14 -0
  63. package/src/lib/design/is-running.js.map +1 -0
  64. package/src/lib/design/legacy.js +3 -3
  65. package/src/lib/design/legacy.js.map +1 -1
  66. package/src/lib/design/mcp-command.js +5 -12
  67. package/src/lib/design/mcp-command.js.map +1 -1
  68. package/src/lib/design/merge-compare.js +3 -3
  69. package/src/lib/design/merge-compare.js.map +1 -1
  70. package/src/lib/design/motion-command.js +3 -3
  71. package/src/lib/design/motion-command.js.map +1 -1
  72. package/src/lib/design/new-call.js +3 -3
  73. package/src/lib/design/new-call.js.map +1 -1
  74. package/src/lib/design/old-shot-folders.d.ts +2 -0
  75. package/src/lib/design/old-shot-folders.js +26 -0
  76. package/src/lib/design/old-shot-folders.js.map +1 -0
  77. package/src/lib/design/package-root.d.ts +21 -0
  78. package/src/lib/design/package-root.js +79 -0
  79. package/src/lib/design/package-root.js.map +1 -0
  80. package/src/lib/design/parent-watch.d.ts +7 -0
  81. package/src/lib/design/parent-watch.js +23 -0
  82. package/src/lib/design/parent-watch.js.map +1 -0
  83. package/src/lib/design/part-marks.js +2 -2
  84. package/src/lib/design/part-marks.js.map +1 -1
  85. package/src/lib/design/phase-timing.d.ts +5 -0
  86. package/src/lib/design/phase-timing.js +27 -0
  87. package/src/lib/design/phase-timing.js.map +1 -0
  88. package/src/lib/design/physical-cores.d.ts +12 -0
  89. package/src/lib/design/physical-cores.js +43 -0
  90. package/src/lib/design/physical-cores.js.map +1 -0
  91. package/src/lib/design/product-command.js +4 -4
  92. package/src/lib/design/product-command.js.map +1 -1
  93. package/src/lib/design/push-status.d.ts +30 -0
  94. package/src/lib/design/push-status.js +122 -0
  95. package/src/lib/design/push-status.js.map +1 -0
  96. package/src/lib/design/ready-shots.d.ts +18 -35
  97. package/src/lib/design/ready-shots.js +46 -111
  98. package/src/lib/design/ready-shots.js.map +1 -1
  99. package/src/lib/design/render-packages.d.ts +3 -1
  100. package/src/lib/design/render-packages.js +6 -2
  101. package/src/lib/design/render-packages.js.map +1 -1
  102. package/src/lib/design/render-worker.js +23 -3
  103. package/src/lib/design/render-worker.js.map +1 -1
  104. package/src/lib/design/render.d.ts +24 -3
  105. package/src/lib/design/render.js +23 -9
  106. package/src/lib/design/render.js.map +1 -1
  107. package/src/lib/design/resident/client.d.ts +52 -0
  108. package/src/lib/design/resident/client.js +263 -0
  109. package/src/lib/design/resident/client.js.map +1 -0
  110. package/src/lib/design/resident/discovery.d.ts +21 -0
  111. package/src/lib/design/resident/discovery.js +63 -0
  112. package/src/lib/design/resident/discovery.js.map +1 -0
  113. package/src/lib/design/resident/resident-process.d.ts +19 -0
  114. package/src/lib/design/resident/resident-process.js +189 -0
  115. package/src/lib/design/resident/resident-process.js.map +1 -0
  116. package/src/lib/design/resident/server.d.ts +52 -0
  117. package/src/lib/design/resident/server.js +212 -0
  118. package/src/lib/design/resident/server.js.map +1 -0
  119. package/src/lib/design/run-abort.d.ts +9 -0
  120. package/src/lib/design/run-abort.js +45 -0
  121. package/src/lib/design/run-abort.js.map +1 -0
  122. package/src/lib/design/run-deadline.d.ts +19 -0
  123. package/src/lib/design/run-deadline.js +104 -0
  124. package/src/lib/design/run-deadline.js.map +1 -0
  125. package/src/lib/design/run-yield.d.ts +8 -0
  126. package/src/lib/design/run-yield.js +43 -0
  127. package/src/lib/design/run-yield.js.map +1 -0
  128. package/src/lib/design/serve-state.d.ts +15 -0
  129. package/src/lib/design/serve-state.js +56 -0
  130. package/src/lib/design/serve-state.js.map +1 -0
  131. package/src/lib/design/serve.d.ts +20 -2
  132. package/src/lib/design/serve.js +147 -43
  133. package/src/lib/design/serve.js.map +1 -1
  134. package/src/lib/design/server-identity.d.ts +5 -1
  135. package/src/lib/design/server-identity.js +4 -1
  136. package/src/lib/design/server-identity.js.map +1 -1
  137. package/src/lib/design/shot-board.d.ts +26 -0
  138. package/src/lib/design/shot-board.js +80 -0
  139. package/src/lib/design/shot-board.js.map +1 -0
  140. package/src/lib/design/shot-command.d.ts +1 -1
  141. package/src/lib/design/shot-command.js +12 -5
  142. package/src/lib/design/shot-command.js.map +1 -1
  143. package/src/lib/design/shot-store.d.ts +29 -3
  144. package/src/lib/design/shot-store.js +206 -36
  145. package/src/lib/design/shot-store.js.map +1 -1
  146. package/src/lib/design/shot.d.ts +12 -4
  147. package/src/lib/design/shot.js +98 -14
  148. package/src/lib/design/shot.js.map +1 -1
  149. package/src/lib/design/sketch-at.js +2 -1
  150. package/src/lib/design/sketch-at.js.map +1 -1
  151. package/src/lib/design/sketch-command.d.ts +13 -0
  152. package/src/lib/design/sketch-command.js +346 -73
  153. package/src/lib/design/sketch-command.js.map +1 -1
  154. package/src/lib/design/ssr-shims.d.ts +1 -0
  155. package/src/lib/design/ssr-shims.js +3 -3
  156. package/src/lib/design/ssr-shims.js.map +1 -1
  157. package/src/lib/design/stamp.d.ts +5 -0
  158. package/src/lib/design/stamp.js +6 -5
  159. package/src/lib/design/stamp.js.map +1 -1
  160. package/src/lib/design/status.d.ts +1 -1
  161. package/src/lib/design/status.js +15 -4
  162. package/src/lib/design/status.js.map +1 -1
  163. package/src/lib/design/studio-api.d.ts +7 -15
  164. package/src/lib/design/studio-api.js +39 -140
  165. package/src/lib/design/studio-api.js.map +1 -1
  166. package/src/lib/design/system/accepted-pictures.d.ts +15 -29
  167. package/src/lib/design/system/accepted-pictures.js +156 -134
  168. package/src/lib/design/system/accepted-pictures.js.map +1 -1
  169. package/src/lib/design/system/action-cache.d.ts +45 -0
  170. package/src/lib/design/system/action-cache.js +72 -0
  171. package/src/lib/design/system/action-cache.js.map +1 -0
  172. package/src/lib/design/system/action-lost.d.ts +8 -6
  173. package/src/lib/design/system/action-lost.js +13 -17
  174. package/src/lib/design/system/action-lost.js.map +1 -1
  175. package/src/lib/design/system/action-press.d.ts +7 -1
  176. package/src/lib/design/system/action-press.js +16 -4
  177. package/src/lib/design/system/action-press.js.map +1 -1
  178. package/src/lib/design/system/actions-command.d.ts +12 -5
  179. package/src/lib/design/system/actions-command.js +187 -66
  180. package/src/lib/design/system/actions-command.js.map +1 -1
  181. package/src/lib/design/system/actions.d.ts +27 -4
  182. package/src/lib/design/system/actions.js +59 -21
  183. package/src/lib/design/system/actions.js.map +1 -1
  184. package/src/lib/design/system/anti-alias.d.ts +2 -0
  185. package/src/lib/design/system/anti-alias.js +11 -0
  186. package/src/lib/design/system/anti-alias.js.map +1 -0
  187. package/src/lib/design/system/app-files.js +19 -3
  188. package/src/lib/design/system/app-files.js.map +1 -1
  189. package/src/lib/design/system/arrow-anchor.d.ts +9 -0
  190. package/src/lib/design/system/arrow-anchor.js +40 -0
  191. package/src/lib/design/system/arrow-anchor.js.map +1 -0
  192. package/src/lib/design/system/base-issues.d.ts +28 -0
  193. package/src/lib/design/system/base-issues.js +80 -0
  194. package/src/lib/design/system/base-issues.js.map +1 -0
  195. package/src/lib/design/system/base.d.ts +1 -1
  196. package/src/lib/design/system/base.js +2 -2
  197. package/src/lib/design/system/base.js.map +1 -1
  198. package/src/lib/design/system/baseline-history.d.ts +13 -0
  199. package/src/lib/design/system/baseline-history.js +40 -0
  200. package/src/lib/design/system/baseline-history.js.map +1 -0
  201. package/src/lib/design/system/bespoke-controls.d.ts +4 -1
  202. package/src/lib/design/system/bespoke-controls.js +72 -70
  203. package/src/lib/design/system/bespoke-controls.js.map +1 -1
  204. package/src/lib/design/system/build-ready-contract.d.ts +7 -1
  205. package/src/lib/design/system/build-ready-contract.js +7 -1
  206. package/src/lib/design/system/build-ready-contract.js.map +1 -1
  207. package/src/lib/design/system/build-running.d.ts +13 -0
  208. package/src/lib/design/system/build-running.js +48 -0
  209. package/src/lib/design/system/build-running.js.map +1 -0
  210. package/src/lib/design/system/check-record.d.ts +18 -0
  211. package/src/lib/design/system/check-record.js +47 -0
  212. package/src/lib/design/system/check-record.js.map +1 -0
  213. package/src/lib/design/system/check-rules.d.ts +1 -1
  214. package/src/lib/design/system/check-rules.js +19 -1
  215. package/src/lib/design/system/check-rules.js.map +1 -1
  216. package/src/lib/design/system/check-system.d.ts +25 -4
  217. package/src/lib/design/system/check-system.js +289 -121
  218. package/src/lib/design/system/check-system.js.map +1 -1
  219. package/src/lib/design/system/comments/inbox.d.ts +1 -1
  220. package/src/lib/design/system/compare-cache.d.ts +20 -0
  221. package/src/lib/design/system/compare-cache.js +92 -0
  222. package/src/lib/design/system/compare-cache.js.map +1 -0
  223. package/src/lib/design/system/compare-command.d.ts +82 -51
  224. package/src/lib/design/system/compare-command.js +362 -340
  225. package/src/lib/design/system/compare-command.js.map +1 -1
  226. package/src/lib/design/system/complete.d.ts +31 -1
  227. package/src/lib/design/system/complete.js +141 -27
  228. package/src/lib/design/system/complete.js.map +1 -1
  229. package/src/lib/design/system/decision-refs.d.ts +5 -0
  230. package/src/lib/design/system/decision-refs.js +21 -0
  231. package/src/lib/design/system/decision-refs.js.map +1 -0
  232. package/src/lib/design/system/design-hash.d.ts +22 -1
  233. package/src/lib/design/system/design-hash.js +63 -4
  234. package/src/lib/design/system/design-hash.js.map +1 -1
  235. package/src/lib/design/system/dom-command.d.ts +1 -1
  236. package/src/lib/design/system/dom-command.js +8 -5
  237. package/src/lib/design/system/dom-command.js.map +1 -1
  238. package/src/lib/design/system/drawn-open-points.d.ts +1 -1
  239. package/src/lib/design/system/dropped-props.d.ts +19 -5
  240. package/src/lib/design/system/dropped-props.js +133 -21
  241. package/src/lib/design/system/dropped-props.js.map +1 -1
  242. package/src/lib/design/system/grid-report.d.ts +5 -0
  243. package/src/lib/design/system/grid-report.js +78 -0
  244. package/src/lib/design/system/grid-report.js.map +1 -0
  245. package/src/lib/design/system/harness-build-cache.d.ts +17 -3
  246. package/src/lib/design/system/harness-build-cache.js +23 -10
  247. package/src/lib/design/system/harness-build-cache.js.map +1 -1
  248. package/src/lib/design/system/harness-inputs.d.ts +17 -0
  249. package/src/lib/design/system/harness-inputs.js +160 -0
  250. package/src/lib/design/system/harness-inputs.js.map +1 -0
  251. package/src/lib/design/system/harness-map.d.ts +1 -1
  252. package/src/lib/design/system/harness-server.d.ts +12 -1
  253. package/src/lib/design/system/harness-server.js +29 -19
  254. package/src/lib/design/system/harness-server.js.map +1 -1
  255. package/src/lib/design/system/harness-shot.d.ts +78 -0
  256. package/src/lib/design/system/harness-shot.js +349 -0
  257. package/src/lib/design/system/harness-shot.js.map +1 -0
  258. package/src/lib/design/system/harness-watch.d.ts +79 -0
  259. package/src/lib/design/system/harness-watch.js +334 -0
  260. package/src/lib/design/system/harness-watch.js.map +1 -0
  261. package/src/lib/design/system/implementation-baseline.d.ts +20 -0
  262. package/src/lib/design/system/implementation-baseline.js +44 -0
  263. package/src/lib/design/system/implementation-baseline.js.map +1 -0
  264. package/src/lib/design/system/leftover-gate-files.d.ts +2 -0
  265. package/src/lib/design/system/leftover-gate-files.js +15 -0
  266. package/src/lib/design/system/leftover-gate-files.js.map +1 -0
  267. package/src/lib/design/system/lib-build-lock.d.ts +18 -0
  268. package/src/lib/design/system/lib-build-lock.js +111 -0
  269. package/src/lib/design/system/lib-build-lock.js.map +1 -0
  270. package/src/lib/design/system/link-free.d.ts +12 -0
  271. package/src/lib/design/system/link-free.js +125 -0
  272. package/src/lib/design/system/link-free.js.map +1 -0
  273. package/src/lib/design/system/list-system.d.ts +4 -8
  274. package/src/lib/design/system/list-system.js +8 -78
  275. package/src/lib/design/system/list-system.js.map +1 -1
  276. package/src/lib/design/system/live-actions.d.ts +1 -1
  277. package/src/lib/design/system/live-actions.js +17 -8
  278. package/src/lib/design/system/live-actions.js.map +1 -1
  279. package/src/lib/design/system/live-compare.js +1 -1
  280. package/src/lib/design/system/live-compare.js.map +1 -1
  281. package/src/lib/design/system/live-uncovered.d.ts +7 -2
  282. package/src/lib/design/system/live-uncovered.js +44 -9
  283. package/src/lib/design/system/live-uncovered.js.map +1 -1
  284. package/src/lib/design/system/no-verdict.d.ts +13 -0
  285. package/src/lib/design/system/no-verdict.js +17 -0
  286. package/src/lib/design/system/no-verdict.js.map +1 -0
  287. package/src/lib/design/system/off-centre.d.ts +11 -0
  288. package/src/lib/design/system/off-centre.js +74 -0
  289. package/src/lib/design/system/off-centre.js.map +1 -0
  290. package/src/lib/design/system/open-points-cache.d.ts +11 -0
  291. package/src/lib/design/system/open-points-cache.js +27 -0
  292. package/src/lib/design/system/open-points-cache.js.map +1 -0
  293. package/src/lib/design/system/open-points-runner.d.ts +43 -0
  294. package/src/lib/design/system/open-points-runner.js +119 -0
  295. package/src/lib/design/system/open-points-runner.js.map +1 -0
  296. package/src/lib/design/system/open-points-worker.d.ts +1 -0
  297. package/src/lib/design/system/open-points-worker.js +28 -0
  298. package/src/lib/design/system/open-points-worker.js.map +1 -0
  299. package/src/lib/design/system/open-points.js +1 -1
  300. package/src/lib/design/system/open-points.js.map +1 -1
  301. package/src/lib/design/system/part-build-ready.d.ts +13 -7
  302. package/src/lib/design/system/part-build-ready.js +43 -15
  303. package/src/lib/design/system/part-build-ready.js.map +1 -1
  304. package/src/lib/design/system/part-compare.d.ts +18 -2
  305. package/src/lib/design/system/part-compare.js +147 -42
  306. package/src/lib/design/system/part-compare.js.map +1 -1
  307. package/src/lib/design/system/part-picture-cache.d.ts +23 -0
  308. package/src/lib/design/system/part-picture-cache.js +68 -0
  309. package/src/lib/design/system/part-picture-cache.js.map +1 -0
  310. package/src/lib/design/system/part-ready.d.ts +33 -7
  311. package/src/lib/design/system/part-ready.js +55 -17
  312. package/src/lib/design/system/part-ready.js.map +1 -1
  313. package/src/lib/design/system/part-task.d.ts +20 -0
  314. package/src/lib/design/system/part-task.js +53 -7
  315. package/src/lib/design/system/part-task.js.map +1 -1
  316. package/src/lib/design/system/pixel-cache.d.ts +16 -0
  317. package/src/lib/design/system/pixel-cache.js +79 -0
  318. package/src/lib/design/system/pixel-cache.js.map +1 -0
  319. package/src/lib/design/system/pointer-focus.d.ts +10 -2
  320. package/src/lib/design/system/pointer-focus.js +32 -9
  321. package/src/lib/design/system/pointer-focus.js.map +1 -1
  322. package/src/lib/design/system/prettier.js +4 -3
  323. package/src/lib/design/system/prettier.js.map +1 -1
  324. package/src/lib/design/system/problem.d.ts +6 -0
  325. package/src/lib/design/system/product.js +2 -2
  326. package/src/lib/design/system/product.js.map +1 -1
  327. package/src/lib/design/system/ready-command.d.ts +1 -1
  328. package/src/lib/design/system/ready-command.js +24 -4
  329. package/src/lib/design/system/ready-command.js.map +1 -1
  330. package/src/lib/design/system/record-settled.d.ts +24 -0
  331. package/src/lib/design/system/record-settled.js +50 -0
  332. package/src/lib/design/system/record-settled.js.map +1 -0
  333. package/src/lib/design/system/render-check.d.ts +18 -1
  334. package/src/lib/design/system/render-check.js +164 -104
  335. package/src/lib/design/system/render-check.js.map +1 -1
  336. package/src/lib/design/system/render-issue-key.d.ts +9 -0
  337. package/src/lib/design/system/render-issue-key.js +27 -0
  338. package/src/lib/design/system/render-issue-key.js.map +1 -0
  339. package/src/lib/design/system/resolve-product.d.ts +4 -1
  340. package/src/lib/design/system/resolve-product.js +14 -3
  341. package/src/lib/design/system/resolve-product.js.map +1 -1
  342. package/src/lib/design/system/rule-baseline.d.ts +53 -0
  343. package/src/lib/design/system/rule-baseline.js +124 -0
  344. package/src/lib/design/system/rule-baseline.js.map +1 -0
  345. package/src/lib/design/system/rule-skips.d.ts +20 -0
  346. package/src/lib/design/system/rule-skips.js +36 -0
  347. package/src/lib/design/system/rule-skips.js.map +1 -0
  348. package/src/lib/design/system/rules/canonical-class.d.ts +4 -0
  349. package/src/lib/design/system/rules/canonical-class.js +66 -13
  350. package/src/lib/design/system/rules/canonical-class.js.map +1 -1
  351. package/src/lib/design/system/rules/capability-place.d.ts +4 -2
  352. package/src/lib/design/system/rules/capability-place.js +15 -2
  353. package/src/lib/design/system/rules/capability-place.js.map +1 -1
  354. package/src/lib/design/system/rules/command-text.d.ts +7 -0
  355. package/src/lib/design/system/rules/command-text.js +72 -0
  356. package/src/lib/design/system/rules/command-text.js.map +1 -0
  357. package/src/lib/design/system/rules/design-coverage.d.ts +30 -0
  358. package/src/lib/design/system/rules/design-coverage.js +205 -0
  359. package/src/lib/design/system/rules/design-coverage.js.map +1 -0
  360. package/src/lib/design/system/rules/glued-interpolation.js +17 -1
  361. package/src/lib/design/system/rules/glued-interpolation.js.map +1 -1
  362. package/src/lib/design/system/rules/implements-unrendered.d.ts +13 -0
  363. package/src/lib/design/system/rules/implements-unrendered.js +63 -0
  364. package/src/lib/design/system/rules/implements-unrendered.js.map +1 -0
  365. package/src/lib/design/system/rules/motion.js +6 -0
  366. package/src/lib/design/system/rules/motion.js.map +1 -1
  367. package/src/lib/design/system/rules/native-title.js +13 -3
  368. package/src/lib/design/system/rules/native-title.js.map +1 -1
  369. package/src/lib/design/system/rules/option-values.d.ts +1 -1
  370. package/src/lib/design/system/rules/pending-state.d.ts +39 -0
  371. package/src/lib/design/system/rules/pending-state.js +289 -0
  372. package/src/lib/design/system/rules/pending-state.js.map +1 -0
  373. package/src/lib/design/system/rules/sdk-attribute-value.d.ts +10 -0
  374. package/src/lib/design/system/rules/sdk-attribute-value.js +78 -0
  375. package/src/lib/design/system/rules/sdk-attribute-value.js.map +1 -0
  376. package/src/lib/design/system/rules/sdk-private-var.d.ts +9 -0
  377. package/src/lib/design/system/rules/sdk-private-var.js +54 -0
  378. package/src/lib/design/system/rules/sdk-private-var.js.map +1 -0
  379. package/src/lib/design/system/rules/skips.d.ts +4 -0
  380. package/src/lib/design/system/rules/skips.js +27 -0
  381. package/src/lib/design/system/rules/skips.js.map +1 -0
  382. package/src/lib/design/system/rules/stale-replace.js +1 -0
  383. package/src/lib/design/system/rules/stale-replace.js.map +1 -1
  384. package/src/lib/design/system/rules/tailwind-classes.d.ts +1 -0
  385. package/src/lib/design/system/rules/tailwind-classes.js +11 -6
  386. package/src/lib/design/system/rules/tailwind-classes.js.map +1 -1
  387. package/src/lib/design/system/rules/token-selectors.js +10 -3
  388. package/src/lib/design/system/rules/token-selectors.js.map +1 -1
  389. package/src/lib/design/system/rules/unbound-input-known.d.ts +2 -0
  390. package/src/lib/design/system/rules/unbound-input-known.js +3 -6
  391. package/src/lib/design/system/rules/unbound-input-known.js.map +1 -1
  392. package/src/lib/design/system/rules/unbound-input.d.ts +2 -0
  393. package/src/lib/design/system/rules/unbound-input.js +12 -6
  394. package/src/lib/design/system/rules/unbound-input.js.map +1 -1
  395. package/src/lib/design/system/rules/undefined-class.js +11 -2
  396. package/src/lib/design/system/rules/undefined-class.js.map +1 -1
  397. package/src/lib/design/system/rules/utility-css.js +13 -1
  398. package/src/lib/design/system/rules/utility-css.js.map +1 -1
  399. package/src/lib/design/system/rules/visible-change.d.ts +1 -2
  400. package/src/lib/design/system/rules/visible-change.js +3 -3
  401. package/src/lib/design/system/rules/visible-change.js.map +1 -1
  402. package/src/lib/design/system/sdk-declarations.d.ts +10 -0
  403. package/src/lib/design/system/sdk-declarations.js +177 -0
  404. package/src/lib/design/system/sdk-declarations.js.map +1 -0
  405. package/src/lib/design/system/sdk-selectors.d.ts +18 -0
  406. package/src/lib/design/system/sdk-selectors.js +131 -0
  407. package/src/lib/design/system/sdk-selectors.js.map +1 -0
  408. package/src/lib/design/system/served-cache.d.ts +99 -0
  409. package/src/lib/design/system/served-cache.js +202 -0
  410. package/src/lib/design/system/served-cache.js.map +1 -0
  411. package/src/lib/design/system/settled-panes.d.ts +8 -3
  412. package/src/lib/design/system/settled-panes.js +10 -9
  413. package/src/lib/design/system/settled-panes.js.map +1 -1
  414. package/src/lib/design/system/sketch/baseline.d.ts +17 -1
  415. package/src/lib/design/system/sketch/baseline.js +48 -7
  416. package/src/lib/design/system/sketch/baseline.js.map +1 -1
  417. package/src/lib/design/system/sketch/check-format.js +3 -9
  418. package/src/lib/design/system/sketch/check-format.js.map +1 -1
  419. package/src/lib/design/system/sketch/clean-copy.d.ts +18 -0
  420. package/src/lib/design/system/sketch/clean-copy.js +104 -0
  421. package/src/lib/design/system/sketch/clean-copy.js.map +1 -0
  422. package/src/lib/design/system/sketch/cli-args.d.ts +1 -1
  423. package/src/lib/design/system/sketch/cli-args.js +2 -2
  424. package/src/lib/design/system/sketch/cli-args.js.map +1 -1
  425. package/src/lib/design/system/sketch/covered-diffs.d.ts +40 -0
  426. package/src/lib/design/system/sketch/covered-diffs.js +106 -0
  427. package/src/lib/design/system/sketch/covered-diffs.js.map +1 -0
  428. package/src/lib/design/system/sketch/edit-sketch.d.ts +14 -6
  429. package/src/lib/design/system/sketch/edit-sketch.js +87 -35
  430. package/src/lib/design/system/sketch/edit-sketch.js.map +1 -1
  431. package/src/lib/design/system/sketch/identical-renders.js +20 -14
  432. package/src/lib/design/system/sketch/identical-renders.js.map +1 -1
  433. package/src/lib/design/system/sketch/merge-commit.d.ts +20 -0
  434. package/src/lib/design/system/sketch/merge-commit.js +72 -0
  435. package/src/lib/design/system/sketch/merge-commit.js.map +1 -0
  436. package/src/lib/design/system/sketch/merge-runner.d.ts +20 -0
  437. package/src/lib/design/system/sketch/merge-runner.js +73 -0
  438. package/src/lib/design/system/sketch/merge-runner.js.map +1 -0
  439. package/src/lib/design/system/sketch/merge-step.d.ts +14 -2
  440. package/src/lib/design/system/sketch/merge-step.js +24 -12
  441. package/src/lib/design/system/sketch/merge-step.js.map +1 -1
  442. package/src/lib/design/system/sketch/merge-worker.d.ts +1 -0
  443. package/src/lib/design/system/sketch/merge-worker.js +14 -0
  444. package/src/lib/design/system/sketch/merge-worker.js.map +1 -0
  445. package/src/lib/design/system/sketch/merge.d.ts +10 -3
  446. package/src/lib/design/system/sketch/merge.js +180 -90
  447. package/src/lib/design/system/sketch/merge.js.map +1 -1
  448. package/src/lib/design/system/sketch/merged-parts.d.ts +0 -29
  449. package/src/lib/design/system/sketch/merged-parts.js +8 -56
  450. package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
  451. package/src/lib/design/system/sketch/note-language.d.ts +7 -0
  452. package/src/lib/design/system/sketch/note-language.js +83 -0
  453. package/src/lib/design/system/sketch/note-language.js.map +1 -0
  454. package/src/lib/design/system/sketch/part-definition.d.ts +6 -0
  455. package/src/lib/design/system/sketch/part-definition.js +31 -1
  456. package/src/lib/design/system/sketch/part-definition.js.map +1 -1
  457. package/src/lib/design/system/sketch/rebase-port.js +47 -2
  458. package/src/lib/design/system/sketch/rebase-port.js.map +1 -1
  459. package/src/lib/design/system/sketch/sketch-check-cache.d.ts +11 -0
  460. package/src/lib/design/system/sketch/sketch-check-cache.js +22 -0
  461. package/src/lib/design/system/sketch/sketch-check-cache.js.map +1 -0
  462. package/src/lib/design/system/sketch/sketch-check-worker.js +6 -1
  463. package/src/lib/design/system/sketch/sketch-check-worker.js.map +1 -1
  464. package/src/lib/design/system/sketch/sketch-checker.d.ts +14 -1
  465. package/src/lib/design/system/sketch/sketch-checker.js +16 -6
  466. package/src/lib/design/system/sketch/sketch-checker.js.map +1 -1
  467. package/src/lib/design/system/sketch/sketch.d.ts +37 -6
  468. package/src/lib/design/system/sketch/sketch.js +101 -13
  469. package/src/lib/design/system/sketch/sketch.js.map +1 -1
  470. package/src/lib/design/system/sketch/stale-base.js +1 -1
  471. package/src/lib/design/system/sketch/stale-base.js.map +1 -1
  472. package/src/lib/design/system/sketch/unchanged-states.d.ts +7 -3
  473. package/src/lib/design/system/sketch/unchanged-states.js +25 -12
  474. package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
  475. package/src/lib/design/system/sketch/viewed-shots.d.ts +10 -2
  476. package/src/lib/design/system/sketch/viewed-shots.js +15 -22
  477. package/src/lib/design/system/sketch/viewed-shots.js.map +1 -1
  478. package/src/lib/design/system/skip-classes.d.ts +3 -0
  479. package/src/lib/design/system/skip-classes.js +17 -0
  480. package/src/lib/design/system/skip-classes.js.map +1 -0
  481. package/src/lib/design/system/slot-hosts.d.ts +38 -0
  482. package/src/lib/design/system/slot-hosts.js +93 -0
  483. package/src/lib/design/system/slot-hosts.js.map +1 -0
  484. package/src/lib/design/system/slow-checks.d.ts +4 -0
  485. package/src/lib/design/system/slow-checks.js +77 -24
  486. package/src/lib/design/system/slow-checks.js.map +1 -1
  487. package/src/lib/design/system/slow-run.d.ts +15 -5
  488. package/src/lib/design/system/slow-run.js +143 -84
  489. package/src/lib/design/system/slow-run.js.map +1 -1
  490. package/src/lib/design/system/stale-dist.d.ts +37 -1
  491. package/src/lib/design/system/stale-dist.js +58 -8
  492. package/src/lib/design/system/stale-dist.js.map +1 -1
  493. package/src/lib/design/system/stale-parts.d.ts +15 -0
  494. package/src/lib/design/system/stale-parts.js +67 -5
  495. package/src/lib/design/system/stale-parts.js.map +1 -1
  496. package/src/lib/design/system/system-command.js +3 -3
  497. package/src/lib/design/system/system-command.js.map +1 -1
  498. package/src/lib/design/system/system-modules.d.ts +4 -4
  499. package/src/lib/design/system/system-tsconfig.d.ts +9 -2
  500. package/src/lib/design/system/system-tsconfig.js +73 -13
  501. package/src/lib/design/system/system-tsconfig.js.map +1 -1
  502. package/src/lib/design/system/task-command.d.ts +3 -2
  503. package/src/lib/design/system/task-command.js +111 -73
  504. package/src/lib/design/system/task-command.js.map +1 -1
  505. package/src/lib/design/system/touched-parts.d.ts +1 -1
  506. package/src/lib/design/system/touched-parts.js +4 -5
  507. package/src/lib/design/system/touched-parts.js.map +1 -1
  508. package/src/lib/design/system/tracked-reads.d.ts +27 -0
  509. package/src/lib/design/system/tracked-reads.js +100 -0
  510. package/src/lib/design/system/tracked-reads.js.map +1 -0
  511. package/src/lib/design/system/unchanged-rows.d.ts +17 -8
  512. package/src/lib/design/system/unchanged-rows.js +90 -12
  513. package/src/lib/design/system/unchanged-rows.js.map +1 -1
  514. package/src/lib/design/system/uncommitted-decisions.d.ts +0 -2
  515. package/src/lib/design/system/uncommitted-decisions.js +3 -6
  516. package/src/lib/design/system/uncommitted-decisions.js.map +1 -1
  517. package/src/lib/design/system/visible-change-command.d.ts +13 -1
  518. package/src/lib/design/system/visible-change-command.js +10 -8
  519. package/src/lib/design/system/visible-change-command.js.map +1 -1
  520. package/src/lib/design/system/visible-change-parts.d.ts +1 -1
  521. package/src/lib/design/system/write-origin.d.ts +12 -0
  522. package/src/lib/design/system/write-origin.js +18 -0
  523. package/src/lib/design/system/write-origin.js.map +1 -0
  524. package/src/lib/design/system-use.js +4 -4
  525. package/src/lib/design/system-use.js.map +1 -1
  526. package/src/lib/design/thumb.d.ts +19 -3
  527. package/src/lib/design/thumb.js +71 -9
  528. package/src/lib/design/thumb.js.map +1 -1
  529. package/src/lib/design/timings-command.d.ts +22 -0
  530. package/src/lib/design/timings-command.js +175 -0
  531. package/src/lib/design/timings-command.js.map +1 -0
  532. package/src/lib/design/timings.d.ts +117 -0
  533. package/src/lib/design/timings.js +296 -0
  534. package/src/lib/design/timings.js.map +1 -0
  535. package/src/lib/design/typecheck.js +2 -2
  536. package/src/lib/design/typecheck.js.map +1 -1
  537. package/src/lib/design/vite-cache.d.ts +11 -0
  538. package/src/lib/design/vite-cache.js +61 -0
  539. package/src/lib/design/vite-cache.js.map +1 -0
  540. package/src/lib/design/warm-draw.d.ts +33 -0
  541. package/src/lib/design/warm-draw.js +74 -0
  542. package/src/lib/design/warm-draw.js.map +1 -0
  543. package/src/lib/design/warm-pages.d.ts +10 -2
  544. package/src/lib/design/warm-pages.js +6 -2
  545. package/src/lib/design/warm-pages.js.map +1 -1
  546. package/src/lib/design/work-root.d.ts +2 -0
  547. package/src/lib/design/work-root.js +8 -0
  548. package/src/lib/design/work-root.js.map +1 -0
  549. package/src/lib/plain-output.d.ts +27 -0
  550. package/src/lib/plain-output.js +66 -0
  551. package/src/lib/plain-output.js.map +1 -0
  552. package/src/lib/release.js +11 -3
  553. package/src/lib/release.js.map +1 -1
  554. package/src/lib/update/commits.js +2 -2
  555. package/src/lib/update/commits.js.map +1 -1
  556. package/src/lib/update/packages.js +4 -2
  557. package/src/lib/update/packages.js.map +1 -1
  558. package/src/lib/update/scan.js +8 -2
  559. package/src/lib/update/scan.js.map +1 -1
  560. package/src/lib/design/paths.js +0 -138
  561. package/src/lib/design/paths.js.map +0 -1
  562. package/src/lib/design/system/accept-command.d.ts +0 -41
  563. package/src/lib/design/system/accept-command.js +0 -139
  564. package/src/lib/design/system/accept-command.js.map +0 -1
  565. package/src/lib/design/system/go-batch.d.ts +0 -24
  566. package/src/lib/design/system/go-batch.js +0 -110
  567. package/src/lib/design/system/go-batch.js.map +0 -1
  568. package/src/lib/design/system/go-command.d.ts +0 -4
  569. package/src/lib/design/system/go-command.js +0 -64
  570. package/src/lib/design/system/go-command.js.map +0 -1
  571. package/src/lib/design/system/go-guard.d.ts +0 -26
  572. package/src/lib/design/system/go-guard.js +0 -70
  573. package/src/lib/design/system/go-guard.js.map +0 -1
  574. package/src/lib/design/system/go-step.d.ts +0 -13
  575. package/src/lib/design/system/go-step.js +0 -84
  576. package/src/lib/design/system/go-step.js.map +0 -1
  577. package/src/lib/design/system/part-go.d.ts +0 -70
  578. package/src/lib/design/system/part-go.js +0 -94
  579. package/src/lib/design/system/part-go.js.map +0 -1
  580. package/src/lib/design/system/tom-confirm.d.ts +0 -40
  581. package/src/lib/design/system/tom-confirm.js +0 -55
  582. package/src/lib/design/system/tom-confirm.js.map +0 -1
@@ -0,0 +1,296 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.recordPageSwitch = exports.recordRun = exports.checkoutCommitOf = exports.overTargetLineOf = exports.isStale = exports.isNoisy = exports.isUnexplained = exports.UNEXPLAINED_SHARE = exports.costliestPhaseOf = exports.unphasedMsOf = exports.labelOf = exports.partsOf = exports.commandOf = exports.sessionOf = exports.skipRunTimings = exports.recordConcurrentHeavy = exports.recordDrawWait = exports.recordNullHashes = exports.recordCache = exports.recordPhase = exports.phasesSoFar = exports.timingsFileOf = exports.FIRST_PAGE_SWITCH_COMMAND = exports.PAGE_SWITCH_COMMAND = exports.TIMING_TARGETS = exports.QUEUE_WAIT_PHASES = exports.SERVER_START_PHASES = exports.BROWSER_START_PHASES = exports.BUILD_WAIT_PHASES = exports.TIMINGS_FILE = void 0;
13
+ const child_process_1 = require("child_process");
14
+ const fs_1 = require("fs");
15
+ const os_1 = require("os");
16
+ const physical_cores_1 = require("./physical-cores");
17
+ const path_1 = require("path");
18
+ const perf_hooks_1 = require("perf_hooks");
19
+ const promises_1 = require("timers/promises");
20
+ exports.TIMINGS_FILE = '.ethlete/design/.timings.jsonl';
21
+ exports.BUILD_WAIT_PHASES = ['lib-build-wait', 'harness-build', 'harness-watch-wait'];
22
+ exports.BROWSER_START_PHASES = ['browser-start'];
23
+ exports.SERVER_START_PHASES = ['compare-design-server'];
24
+ exports.QUEUE_WAIT_PHASES = ['resident-queue-wait', 'draw-queue-wait'];
25
+ exports.TIMING_TARGETS = {
26
+ compare: 10000,
27
+ 'sketch check': 10000,
28
+ 'sketch ready': 10000,
29
+ 'check (full)': 60000,
30
+ 'page-switch': 100,
31
+ };
32
+ exports.PAGE_SWITCH_COMMAND = 'page-switch';
33
+ exports.FIRST_PAGE_SWITCH_COMMAND = 'page-switch (first)';
34
+ const NARROWING_CHECK_FLAGS = new Set(['--call', '--lint', '--tsconfig']);
35
+ let current = null;
36
+ const timingsFileOf = (target) => (0, path_1.join)(target, exports.TIMINGS_FILE);
37
+ exports.timingsFileOf = timingsFileOf;
38
+ /** The phases the run in progress has ended so far. */
39
+ const phasesSoFar = () => { var _a; return (_a = current === null || current === void 0 ? void 0 : current.phases) !== null && _a !== void 0 ? _a : []; };
40
+ exports.phasesSoFar = phasesSoFar;
41
+ const recordPhase = (name, ms) => {
42
+ if (current)
43
+ current.phases.push({ name, ms: Math.round(ms), at: Math.round(perf_hooks_1.performance.now() - current.began - ms) });
44
+ };
45
+ exports.recordPhase = recordPhase;
46
+ const recordCache = (hit) => {
47
+ if (!current)
48
+ return;
49
+ if (hit)
50
+ current.cache.hits++;
51
+ else
52
+ current.cache.misses++;
53
+ };
54
+ exports.recordCache = recordCache;
55
+ /** Records `count` cache inputs the run could not fetch, so their hash is null and they verify nothing. */
56
+ const recordNullHashes = (count) => {
57
+ if (current)
58
+ current.nullHashes += count;
59
+ };
60
+ exports.recordNullHashes = recordNullHashes;
61
+ /** Records how long one drawing waited in the draw queue; the run logs its longest wait. */
62
+ const recordDrawWait = (ms) => void (current === null || current === void 0 ? void 0 : current.draws.push(ms));
63
+ exports.recordDrawWait = recordDrawWait;
64
+ /** Records how many other heavy design runs read the lib build when this run started reading it. */
65
+ const recordConcurrentHeavy = (count) => {
66
+ var _a;
67
+ if (current)
68
+ current.concurrentHeavy = Math.max((_a = current.concurrentHeavy) !== null && _a !== void 0 ? _a : 0, count);
69
+ };
70
+ exports.recordConcurrentHeavy = recordConcurrentHeavy;
71
+ /** Drops the line of the run in progress, for a run another process logs (the resident design process). */
72
+ const skipRunTimings = () => {
73
+ if (current)
74
+ current.skipped = true;
75
+ };
76
+ exports.skipRunTimings = skipRunTimings;
77
+ const sessionOf = (env) => {
78
+ const session = {
79
+ claude: env['CLAUDE_CODE_SESSION_ID'] || null,
80
+ tmux: env['TMUX_PANE'] || null,
81
+ role: env['ETHLETE_AGENT_ROLE'] || null,
82
+ };
83
+ return session.claude || session.tmux || session.role ? session : null;
84
+ };
85
+ exports.sessionOf = sessionOf;
86
+ const PART = /^[\w-]+\/[\w-]+$/;
87
+ const SUBCOMMAND = /^[a-z][\w-]*$/;
88
+ const commandOf = (argv) => {
89
+ const [command = 'serve', subcommand] = argv;
90
+ return subcommand && SUBCOMMAND.test(subcommand) && !PART.test(subcommand) ? `${command} ${subcommand}` : command;
91
+ };
92
+ exports.commandOf = commandOf;
93
+ const partsOf = (argv) => argv.flatMap((arg, index) => (PART.test(arg) && (index === 0 || argv[index - 1] !== '--product') ? [arg] : []));
94
+ exports.partsOf = partsOf;
95
+ const labelOf = (line) => line.command === 'check' && line.parts.length === 0 && !line.args.some((arg) => NARROWING_CHECK_FLAGS.has(arg))
96
+ ? 'check (full)'
97
+ : line.command;
98
+ exports.labelOf = labelOf;
99
+ /** The part of `totalMs` no recorded phase covers, or `null` when the phases carry no start. */
100
+ const unphasedMsOf = (phases, totalMs) => {
101
+ const spans = phases
102
+ .flatMap((phase) => phase.at === undefined ? [] : [[Math.max(0, phase.at), Math.min(totalMs, phase.at + phase.ms)]])
103
+ .filter(([from, to]) => to > from)
104
+ .sort((a, b) => a[0] - b[0]);
105
+ if (spans.length === 0)
106
+ return null;
107
+ let covered = 0;
108
+ let reached = 0;
109
+ for (const [from, to] of spans) {
110
+ if (to <= reached)
111
+ continue;
112
+ covered += to - Math.max(from, reached);
113
+ reached = to;
114
+ }
115
+ return Math.max(0, totalMs - covered);
116
+ };
117
+ exports.unphasedMsOf = unphasedMsOf;
118
+ /** The phase that cost the most, the unphased time included as `unphased`. */
119
+ const costliestPhaseOf = (line) => [...line.phases, ...(line.unphasedMs ? [{ name: 'unphased', ms: line.unphasedMs }] : [])].reduce((best, phase) => (best === null || phase.ms > best.ms ? phase : best), null);
120
+ exports.costliestPhaseOf = costliestPhaseOf;
121
+ const secondsOf = (ms) => `${(ms / 1000).toFixed(1)} s`;
122
+ /** A run whose machine had more runnable work than cores, or did not log its load: its time is no verdict. */
123
+ exports.UNEXPLAINED_SHARE = 0.1;
124
+ const UNEXPLAINED_FLOOR_MS = 1000;
125
+ /** Whether more than a tenth of the run, and at least a second, ran outside every recorded phase. */
126
+ const isUnexplained = (line) => line.unphasedMs !== undefined &&
127
+ line.unphasedMs >= UNEXPLAINED_FLOOR_MS &&
128
+ line.unphasedMs > line.totalMs * exports.UNEXPLAINED_SHARE;
129
+ exports.isUnexplained = isUnexplained;
130
+ const isNoisy = (line) => !line.load || line.load.avg1 > line.load.cores;
131
+ exports.isNoisy = isNoisy;
132
+ /** A run that measured another commit than `head`, or logged none; with no `head` known nothing is stale. */
133
+ const isStale = (line, head) => head !== null && (!line.commit || !(head.startsWith(line.commit.sha) || line.commit.sha.startsWith(head)));
134
+ exports.isStale = isStale;
135
+ /** The line a run over its target prints at the end of its output, or `null` when it met its target or has none. */
136
+ const overTargetLineOf = (line) => {
137
+ const target = exports.TIMING_TARGETS[(0, exports.labelOf)(line)];
138
+ if (target === undefined || line.totalMs <= target)
139
+ return null;
140
+ const costliest = (0, exports.costliestPhaseOf)(line);
141
+ const noisy = line.load && (0, exports.isNoisy)(line)
142
+ ? ` (noisy: load ${line.load.avg1.toFixed(1)} > ${line.load.cores} cores, no verdict)`
143
+ : '';
144
+ return `over target: ${(0, exports.labelOf)(line)} took ${secondsOf(line.totalMs)} > ${secondsOf(target)} - slowest phase ${costliest ? `${costliest.name} ${secondsOf(costliest.ms)}` : 'none recorded'}${noisy}`;
145
+ };
146
+ exports.overTargetLineOf = overTargetLineOf;
147
+ const gitOutputOf = (cwd, args) => new Promise((done) => (0, child_process_1.execFile)('git', ['-C', cwd, ...args], { timeout: 5000 }, (error, stdout) => done(error ? null : stdout.trim())));
148
+ /** The commit `checkout` is at (short sha) and whether its tracked files differ from it, or `null` outside git. */
149
+ const checkoutCommitOf = (checkout) => __awaiter(void 0, void 0, void 0, function* () {
150
+ const [sha, changed] = yield Promise.all([
151
+ gitOutputOf(checkout, ['rev-parse', '--short', 'HEAD']),
152
+ gitOutputOf(checkout, ['status', '--porcelain', '--untracked-files=no']),
153
+ ]);
154
+ return sha ? { sha, dirty: changed === null || changed !== '' } : null;
155
+ });
156
+ exports.checkoutCommitOf = checkoutCommitOf;
157
+ const machineLoadOf = () => {
158
+ var _a;
159
+ return ({
160
+ avg1: Math.round(((_a = (0, os_1.loadavg)()[0]) !== null && _a !== void 0 ? _a : 0) * 100) / 100,
161
+ cores: (0, physical_cores_1.physicalCoresOf)(),
162
+ });
163
+ };
164
+ const sumOf = (phases, names) => phases.filter((phase) => names.includes(phase.name)).reduce((total, phase) => total + phase.ms, 0);
165
+ const COMMIT_WAIT_MS = 2000;
166
+ const defaultWrite = (file, text) => (0, fs_1.appendFileSync)(file, text);
167
+ /**
168
+ * Runs one `et design` command and appends its timings as one JSON line to `file`, also when it fails or the process
169
+ * exits early. Writing never throws.
170
+ */
171
+ const recordRun = (options, run) => __awaiter(void 0, void 0, void 0, function* () {
172
+ const { file, argv, resident = false, env = process.env, write = defaultWrite, commitOf = exports.checkoutCommitOf, loadOf = machineLoadOf, } = options;
173
+ const recorder = {
174
+ began: perf_hooks_1.performance.now(),
175
+ phases: [],
176
+ draws: [],
177
+ cache: { hits: 0, misses: 0 },
178
+ concurrentHeavy: null,
179
+ nullHashes: 0,
180
+ skipped: false,
181
+ };
182
+ const outer = current;
183
+ const start = new Date();
184
+ const began = recorder.began;
185
+ const session = (0, exports.sessionOf)(env);
186
+ let written = false;
187
+ let commit = null;
188
+ const commitRead = commitOf((0, path_1.dirname)((0, path_1.dirname)((0, path_1.dirname)(file)))).then((found) => void (commit = found), () => undefined);
189
+ const settled = () => __awaiter(void 0, void 0, void 0, function* () {
190
+ const ended = perf_hooks_1.performance.now();
191
+ yield Promise.race([commitRead, (0, promises_1.setTimeout)(COMMIT_WAIT_MS, undefined, { ref: false })]);
192
+ return ended;
193
+ });
194
+ const flush = (exit, how = {}) => {
195
+ const { viaExit = false, ended = perf_hooks_1.performance.now() } = how;
196
+ process.off('exit', onExit);
197
+ if (written || recorder.skipped)
198
+ return;
199
+ written = true;
200
+ const phases = [
201
+ ...recorder.phases,
202
+ ...(recorder.draws.length > 0 ? [{ name: 'draw-queue-wait', ms: Math.round(Math.max(...recorder.draws)) }] : []),
203
+ ];
204
+ const totalMs = Math.round(ended - began);
205
+ const line = {
206
+ command: (0, exports.commandOf)(argv),
207
+ args: argv.slice(1),
208
+ parts: (0, exports.partsOf)(argv.slice(1)),
209
+ session,
210
+ resident,
211
+ start: start.toISOString(),
212
+ totalMs,
213
+ exit,
214
+ phases,
215
+ queueWaitMs: sumOf(phases, exports.QUEUE_WAIT_PHASES),
216
+ buildWaitMs: sumOf(phases, exports.BUILD_WAIT_PHASES),
217
+ browserStartMs: sumOf(phases, exports.BROWSER_START_PHASES),
218
+ serverStartMs: sumOf(phases, exports.SERVER_START_PHASES),
219
+ cache: recorder.cache,
220
+ concurrentHeavy: recorder.concurrentHeavy,
221
+ nullHashes: recorder.nullHashes,
222
+ commit,
223
+ load: loadOf(),
224
+ };
225
+ const unphasedMs = (0, exports.unphasedMsOf)(phases, totalMs);
226
+ if (unphasedMs !== null)
227
+ line.unphasedMs = unphasedMs;
228
+ const over = (0, exports.overTargetLineOf)(line);
229
+ if (over && !viaExit)
230
+ process.stderr.write(`${over}\n`);
231
+ try {
232
+ write(file, `${JSON.stringify(line)}\n`);
233
+ }
234
+ catch (_a) {
235
+ return;
236
+ }
237
+ };
238
+ const onExit = (code) => flush(code, { viaExit: true });
239
+ process.once('exit', onExit);
240
+ current = recorder;
241
+ try {
242
+ const code = yield run();
243
+ flush(code, { ended: yield settled() });
244
+ return code;
245
+ }
246
+ catch (error) {
247
+ flush(1, { ended: yield settled() });
248
+ throw error;
249
+ }
250
+ finally {
251
+ current = outer;
252
+ }
253
+ });
254
+ exports.recordRun = recordRun;
255
+ /**
256
+ * Appends one measured Studio page switch to `file`: `ms` runs from the click until every frame with a stored picture
257
+ * painted. A page `seen` before in the same Studio session is timed against its own target. Returns `null` when the
258
+ * line could not be written.
259
+ */
260
+ const recordPageSwitch = (options) => __awaiter(void 0, void 0, void 0, function* () {
261
+ var _a;
262
+ const { file, from, to, seen, painted, phases = [], env = process.env, write = defaultWrite, commitOf = exports.checkoutCommitOf, loadOf = machineLoadOf, } = options;
263
+ const totalMs = Math.round(options.ms);
264
+ const commit = yield commitOf((0, path_1.dirname)((0, path_1.dirname)((0, path_1.dirname)(file)))).catch(() => null);
265
+ const line = {
266
+ command: seen ? exports.PAGE_SWITCH_COMMAND : exports.FIRST_PAGE_SWITCH_COMMAND,
267
+ args: ['--from', from],
268
+ parts: [to],
269
+ session: (0, exports.sessionOf)(env),
270
+ resident: false,
271
+ start: ((_a = options.start) !== null && _a !== void 0 ? _a : new Date(Date.now() - totalMs)).toISOString(),
272
+ totalMs,
273
+ exit: painted ? 0 : 1,
274
+ phases,
275
+ queueWaitMs: 0,
276
+ buildWaitMs: 0,
277
+ browserStartMs: 0,
278
+ serverStartMs: 0,
279
+ cache: { hits: 0, misses: 0 },
280
+ concurrentHeavy: null,
281
+ commit,
282
+ load: loadOf(),
283
+ };
284
+ const unphasedMs = (0, exports.unphasedMsOf)(phases, totalMs);
285
+ if (unphasedMs !== null)
286
+ line.unphasedMs = unphasedMs;
287
+ try {
288
+ write(file, `${JSON.stringify(line)}\n`);
289
+ }
290
+ catch (_b) {
291
+ return null;
292
+ }
293
+ return line;
294
+ });
295
+ exports.recordPageSwitch = recordPageSwitch;
296
+ //# sourceMappingURL=timings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timings.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/timings.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.typecheck = exports.processFailureOf = exports.outputOf = exports.trim = exports.binaryOf = void 0;
4
- const child_process_1 = require("child_process");
5
4
  const fs_1 = require("fs");
6
5
  const path_1 = require("path");
6
+ const plain_output_1 = require("../plain-output");
7
7
  /**
8
8
  * A tool the checker shells out to, taken from the checkout first and from this package second, so
9
9
  * a checkout that keeps design calls need not install anything of its own. The path comes out of
@@ -60,7 +60,7 @@ const typecheck = (options) => {
60
60
  ? { file: 'npx', args: ['-y', native, '--noEmit', '--pretty', 'false', '-p', tsconfig] }
61
61
  : { file: process.execPath, args: [tsc, '--noEmit', '--pretty', 'false', '-p', tsconfig] };
62
62
  try {
63
- (0, child_process_1.execFileSync)(command.file, command.args, { cwd: target, encoding: 'utf8', stdio: 'pipe' });
63
+ (0, plain_output_1.execPlain)([command.file, ...command.args], { cwd: target });
64
64
  }
65
65
  catch (error) {
66
66
  const output = (0, exports.outputOf)(error);
@@ -1 +1 @@
1
- {"version":3,"file":"typecheck.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/typecheck.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typecheck.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/typecheck.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /** A Vite cache folder of its own per checkout, so two servers sharing a symlinked `node_modules` never rewrite each other's deps. */
2
+ export declare const viteCacheOf: (target: string, name: string) => string;
3
+ /**
4
+ * A Vite cache folder that no other running server writes to: the shared `name` folder while this
5
+ * server holds its lock, else a folder of its own that `release` removes. Only one server at a time
6
+ * keeps the optimized deps between runs, so two at once never rewrite each other's.
7
+ */
8
+ export declare const claimViteCache: (target: string, name: string) => {
9
+ dir: string;
10
+ release: () => void;
11
+ };
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.claimViteCache = exports.viteCacheOf = void 0;
4
+ const fs_1 = require("fs");
5
+ const crypto_1 = require("crypto");
6
+ const path_1 = require("path");
7
+ const is_running_1 = require("./is-running");
8
+ const work_root_1 = require("./work-root");
9
+ /** A Vite cache folder of its own per checkout, so two servers sharing a symlinked `node_modules` never rewrite each other's deps. */
10
+ const viteCacheOf = (target, name) => (0, path_1.resolve)((0, work_root_1.workRootOf)(target), `${name}-${(0, crypto_1.createHash)('sha1').update((0, path_1.resolve)(target)).digest('hex').slice(0, 10)}`);
11
+ exports.viteCacheOf = viteCacheOf;
12
+ const holdsLock = (lock) => {
13
+ try {
14
+ (0, fs_1.writeFileSync)(lock, String(process.pid), { flag: 'wx' });
15
+ return true;
16
+ }
17
+ catch (error) {
18
+ if (error.code !== 'EEXIST')
19
+ throw error;
20
+ }
21
+ const holder = (0, fs_1.existsSync)(lock) ? Number((0, fs_1.readFileSync)(lock, 'utf8')) : 0;
22
+ if (holder && (0, is_running_1.isRunning)(holder))
23
+ return false;
24
+ (0, fs_1.rmSync)(lock, { force: true });
25
+ return holdsLock(lock);
26
+ };
27
+ let claims = 0;
28
+ const claimed = new Set();
29
+ let exitHooked = false;
30
+ /**
31
+ * A Vite cache folder that no other running server writes to: the shared `name` folder while this
32
+ * server holds its lock, else a folder of its own that `release` removes. Only one server at a time
33
+ * keeps the optimized deps between runs, so two at once never rewrite each other's.
34
+ */
35
+ const claimViteCache = (target, name) => {
36
+ var _a;
37
+ const shared = (0, exports.viteCacheOf)(target, name);
38
+ const root = (0, path_1.dirname)(shared);
39
+ const lock = `${shared}.lock`;
40
+ const own = new RegExp(`^${(0, path_1.basename)(shared)}-(\\d+)-\\d+$`);
41
+ (0, fs_1.mkdirSync)(root, { recursive: true });
42
+ for (const entry of (0, fs_1.readdirSync)(root)) {
43
+ const pid = Number((_a = own.exec(entry)) === null || _a === void 0 ? void 0 : _a[1]);
44
+ if (pid && !(0, is_running_1.isRunning)(pid))
45
+ (0, fs_1.rmSync)((0, path_1.resolve)(root, entry), { recursive: true, force: true });
46
+ }
47
+ const dir = holdsLock(lock) ? shared : `${shared}-${process.pid}-${(claims += 1)}`;
48
+ const release = () => {
49
+ if (!claimed.delete(release))
50
+ return;
51
+ (0, fs_1.rmSync)(dir === shared ? lock : dir, { recursive: true, force: true });
52
+ };
53
+ if (!exitHooked) {
54
+ exitHooked = true;
55
+ process.once('exit', () => [...claimed].forEach((held) => held()));
56
+ }
57
+ claimed.add(release);
58
+ return { dir, release };
59
+ };
60
+ exports.claimViteCache = claimViteCache;
61
+ //# sourceMappingURL=vite-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-cache.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/vite-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { DesignConfig } from './design-config';
2
+ import { createDesignServer } from './serve';
3
+ import { createDrawQueue } from './thumb';
4
+ export type DesignServer = Awaited<ReturnType<typeof createDesignServer>>;
5
+ export type DrawQueue = ReturnType<typeof createDrawQueue>;
6
+ /** The design server and Chromium the resident design process keeps up between requests. */
7
+ export type WarmDraw = {
8
+ server: (config: DesignConfig) => Promise<DesignServer>;
9
+ queue: () => DrawQueue;
10
+ perRun?: boolean;
11
+ };
12
+ export type Drawing = {
13
+ server: DesignServer;
14
+ base: string;
15
+ queue: DrawQueue;
16
+ };
17
+ /** Runs `draw` on the warm design server and Chromium, or on a listening design server and Chromium of its own that close after it. */
18
+ export declare const drawingOn: <T>(options: {
19
+ target: string;
20
+ config: DesignConfig;
21
+ warm?: WarmDraw;
22
+ }, draw: (drawing: Drawing) => Promise<T>) => Promise<T>;
23
+ /** Runs `load` on the warm design server, or on an unlistening design server of its own that closes after it. */
24
+ export declare const loadingOn: <T>(options: {
25
+ target: string;
26
+ config: DesignConfig;
27
+ warm?: WarmDraw;
28
+ }, load: (server: DesignServer) => Promise<T>) => Promise<T>;
29
+ /** A design server and Chromium that start on first use and stay up until `close`, shared by every phase of one run. */
30
+ export declare const createRunDraw: (target: string) => {
31
+ warm: WarmDraw;
32
+ close: () => Promise<void>;
33
+ };
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.createRunDraw = exports.loadingOn = exports.drawingOn = void 0;
13
+ const serve_1 = require("./serve");
14
+ const thumb_1 = require("./thumb");
15
+ const baseOf = (server) => { var _a; return `http://localhost:${((_a = server.httpServer) === null || _a === void 0 ? void 0 : _a.address()).port}`; };
16
+ /** Runs `draw` on the warm design server and Chromium, or on a listening design server and Chromium of its own that close after it. */
17
+ const drawingOn = (options, draw) => __awaiter(void 0, void 0, void 0, function* () {
18
+ const { target, config, warm } = options;
19
+ if (warm) {
20
+ const server = yield warm.server(config);
21
+ return draw({ server, base: baseOf(server), queue: warm.queue() });
22
+ }
23
+ const server = yield (0, serve_1.createDesignServer)({ target, config, listen: true, port: 0 });
24
+ const queue = (0, thumb_1.createDrawQueue)({ target });
25
+ try {
26
+ yield server.listen();
27
+ return yield draw({ server, base: baseOf(server), queue });
28
+ }
29
+ finally {
30
+ yield Promise.all([queue.close(), server.close()]);
31
+ }
32
+ });
33
+ exports.drawingOn = drawingOn;
34
+ /** Runs `load` on the warm design server, or on an unlistening design server of its own that closes after it. */
35
+ const loadingOn = (options, load) => __awaiter(void 0, void 0, void 0, function* () {
36
+ const { target, config, warm } = options;
37
+ if (warm)
38
+ return load(yield warm.server(config));
39
+ const server = yield (0, serve_1.createDesignServer)({ target, config, listen: false });
40
+ try {
41
+ return yield load(server);
42
+ }
43
+ finally {
44
+ yield server.close();
45
+ }
46
+ });
47
+ exports.loadingOn = loadingOn;
48
+ /** A design server and Chromium that start on first use and stay up until `close`, shared by every phase of one run. */
49
+ const createRunDraw = (target) => {
50
+ let server = null;
51
+ let queue = null;
52
+ const warm = {
53
+ server: (config) => (server !== null && server !== void 0 ? server : (server = (0, serve_1.createDesignServer)({ target, config, listen: true, port: 0 }).then((started) => __awaiter(void 0, void 0, void 0, function* () {
54
+ try {
55
+ yield started.listen();
56
+ }
57
+ catch (error) {
58
+ yield started.close();
59
+ throw error;
60
+ }
61
+ return started;
62
+ })))),
63
+ queue: () => (queue !== null && queue !== void 0 ? queue : (queue = (0, thumb_1.createDrawQueue)({ target }))),
64
+ perRun: true,
65
+ };
66
+ const close = () => __awaiter(void 0, void 0, void 0, function* () {
67
+ var _a;
68
+ yield (queue === null || queue === void 0 ? void 0 : queue.close());
69
+ yield ((_a = (yield (server === null || server === void 0 ? void 0 : server.catch(() => null)))) === null || _a === void 0 ? void 0 : _a.close());
70
+ });
71
+ return { warm, close };
72
+ };
73
+ exports.createRunDraw = createRunDraw;
74
+ //# sourceMappingURL=warm-draw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warm-draw.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/warm-draw.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,15 @@ type Lent = {
14
14
  export declare const createWarmPages: (options?: {
15
15
  idleLimit?: number;
16
16
  }) => {
17
- /** Runs `draw` on an idle page of `browser` opened with the same `context` options, or on a new one. */
18
- run: <T>(lent: Lent, draw: (page: Page) => Promise<T>) => Promise<T>;
17
+ /**
18
+ * Runs `draw` on an idle page of `browser` opened with the same `context` options, or on a new one. With `limit`,
19
+ * a draw still running after `limit.ms` rejects with a `WaitTimeoutError` and its page closes.
20
+ */
21
+ run: <T>(lent: Lent & {
22
+ limit?: {
23
+ ms: number;
24
+ what: string;
25
+ };
26
+ }, draw: (page: Page) => Promise<T>) => Promise<T>;
19
27
  };
20
28
  export {};
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.createWarmPages = void 0;
13
+ const wait_1 = require("./wait");
13
14
  const IDLE_LIMIT = 8;
14
15
  const BLANK = 'about:blank';
15
16
  /**
@@ -56,12 +57,15 @@ const createWarmPages = (options = {}) => {
56
57
  return (yield idle.parked) ? idle.warm : borrow(lent, key);
57
58
  });
58
59
  return {
59
- /** Runs `draw` on an idle page of `browser` opened with the same `context` options, or on a new one. */
60
+ /**
61
+ * Runs `draw` on an idle page of `browser` opened with the same `context` options, or on a new one. With `limit`,
62
+ * a draw still running after `limit.ms` rejects with a `WaitTimeoutError` and its page closes.
63
+ */
60
64
  run: (lent, draw) => __awaiter(void 0, void 0, void 0, function* () {
61
65
  const key = JSON.stringify(lent.context);
62
66
  const warm = yield borrow(lent, key);
63
67
  try {
64
- const drawn = yield draw(warm.page);
68
+ const drawn = yield (lent.limit ? (0, wait_1.withinLimit)(draw(warm.page), lent.limit) : draw(warm.page));
65
69
  const kept = idleOf(lent.browser);
66
70
  kept.push({ warm, parked: park(warm) });
67
71
  kept.splice(0, Math.max(0, kept.length - idleLimit)).forEach((idle) => drop(idle.warm));
@@ -1 +1 @@
1
- {"version":3,"file":"warm-pages.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/warm-pages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"warm-pages.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/warm-pages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ /** Everything the tool writes for a checkout, so nothing generated lands in tracked files. */
2
+ export declare const workRootOf: (target: string) => string;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.workRootOf = void 0;
4
+ const path_1 = require("path");
5
+ /** Everything the tool writes for a checkout, so nothing generated lands in tracked files. */
6
+ const workRootOf = (target) => (0, path_1.resolve)(target, 'node_modules/.design-explore');
7
+ exports.workRootOf = workRootOf;
8
+ //# sourceMappingURL=work-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-root.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/work-root.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAE/B,8FAA8F;AACvF,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,IAAA,cAAO,EAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;AAAjF,QAAA,UAAU,cAAuE"}