@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,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.commitMergeResultSync = exports.dirtyFilesOfSync = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const sketch_1 = require("./sketch");
7
+ const plain_output_1 = require("../../../plain-output");
8
+ const runSync = (target, flow) => {
9
+ let step = flow.next();
10
+ while (!step.done)
11
+ step = flow.next((0, plain_output_1.spawnPlain)(['git', ...step.value.args], { cwd: target, input: step.value.input }));
12
+ return step.value;
13
+ };
14
+ const dirsOf = (product) => [product.dir, ...(product.base ? [product.base.dir] : [])];
15
+ const below = (path, dir) => path === dir || path.startsWith(`${dir}${path_1.sep}`);
16
+ function* dirtyFilesFlow(product) {
17
+ const root = yield { args: ['rev-parse', '--show-toplevel'] };
18
+ const status = yield {
19
+ args: ['status', '--porcelain', '-z', '--no-renames', '--untracked-files=all', '--', ...dirsOf(product)],
20
+ };
21
+ if (root.status !== 0 || status.status !== 0)
22
+ return null;
23
+ const top = (0, fs_1.realpathSync)(root.stdout.trim());
24
+ const files = status.stdout
25
+ .split('\0')
26
+ .filter((line) => /^.. /.test(line))
27
+ .map((entry) => (0, path_1.resolve)(top, entry.slice(3)));
28
+ const present = files.filter((file) => (0, fs_1.existsSync)(file));
29
+ const hashed = present.length > 0 ? yield { args: ['hash-object', '--stdin-paths'], input: present.join('\n') } : null;
30
+ const hashes = (hashed === null || hashed === void 0 ? void 0 : hashed.status) === 0 ? hashed.stdout.trim().split('\n') : [];
31
+ return new Map(files.map((file) => { var _a; return [file, (_a = hashes[present.indexOf(file)]) !== null && _a !== void 0 ? _a : 'deleted']; }));
32
+ }
33
+ function* commitFlow(options) {
34
+ const { product, sketch, before } = options;
35
+ const after = yield* dirtyFilesFlow(product);
36
+ if (!before || !after)
37
+ return false;
38
+ const productDir = (0, fs_1.realpathSync)(product.dir);
39
+ const sketches = (0, sketch_1.sketchesDirOf)(productDir);
40
+ const merged = (0, path_1.resolve)(productDir, (0, path_1.relative)(product.dir, sketch.dir));
41
+ const files = [...after]
42
+ .filter(([file, hash]) => before.get(file) !== hash)
43
+ .map(([file]) => file)
44
+ .filter((file) => !below(file, sketches) || below(file, merged));
45
+ if (files.length === 0)
46
+ return true;
47
+ const added = yield { args: ['add', '--all', '--', ...files] };
48
+ const committed = added.status === 0
49
+ ? yield {
50
+ args: [
51
+ 'commit',
52
+ '-m',
53
+ `feat(repo): Merge ${sketch.target} variant ${options.variant} into ${product.name}`,
54
+ '--',
55
+ ...files,
56
+ ],
57
+ }
58
+ : added;
59
+ if (committed.status !== 0)
60
+ console.warn(`Could not commit the merge: ${(committed.stderr || committed.stdout).trim()}`);
61
+ return committed.status === 0;
62
+ }
63
+ /** The dirty files of the product's folders by absolute path, each with a hash of its content; `null` outside a git checkout. */
64
+ const dirtyFilesOfSync = (options) => runSync(options.target, dirtyFilesFlow(options.product));
65
+ exports.dirtyFilesOfSync = dirtyFilesOfSync;
66
+ /**
67
+ * Commits what a merge wrote into the product's folders - the files dirty now that were clean or different before,
68
+ * and the merged sketch's own deletion, never another open sketch - as one commit. A failed commit warns and leaves the files as they are.
69
+ */
70
+ const commitMergeResultSync = (options) => runSync(options.target, commitFlow(options));
71
+ exports.commitMergeResultSync = commitMergeResultSync;
72
+ //# sourceMappingURL=merge-commit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-commit.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/merge-commit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { MergeRefusal } from './merge';
2
+ import { Sketch } from './sketch';
3
+ export type MergeRequest = {
4
+ target: string;
5
+ product: string;
6
+ sketch: Sketch;
7
+ note?: string;
8
+ };
9
+ export type MergeResponse = {
10
+ result?: string[] | MergeRefusal;
11
+ error?: string;
12
+ };
13
+ /** Merges the picked variant of `sketch` as the Studio merge does, on this thread: refreshes the harness map, records the note and commits the result. */
14
+ export declare const studioMergeOf: ({ target, product: name, sketch, note }: MergeRequest) => string[] | MergeRefusal;
15
+ /**
16
+ * Runs `studioMergeOf` in a worker of its own, so the server keeps answering while the merge copies, checks, writes and
17
+ * commits. On Linux a child process blocks the thread that spawns it for as long as forking the whole process takes, so
18
+ * the server thread spawns none.
19
+ */
20
+ export declare const mergeInWorker: (request: MergeRequest) => Promise<string[] | MergeRefusal>;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mergeInWorker = exports.studioMergeOf = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const url_1 = require("url");
7
+ const worker_threads_1 = require("worker_threads");
8
+ const package_root_1 = require("../../package-root");
9
+ const design_config_1 = require("../../design-config");
10
+ const harness_map_1 = require("../harness-map");
11
+ const cli_args_1 = require("./cli-args");
12
+ const merge_commit_1 = require("./merge-commit");
13
+ const merge_1 = require("./merge");
14
+ const merged_parts_1 = require("./merged-parts");
15
+ /** Merges the picked variant of `sketch` as the Studio merge does, on this thread: refreshes the harness map, records the note and commits the result. */
16
+ const studioMergeOf = ({ target, product: name, sketch, note }) => {
17
+ var _a;
18
+ const config = (0, design_config_1.readConfig)(target);
19
+ if (!config)
20
+ return { reason: 'no design config' };
21
+ const product = (0, cli_args_1.oneProductOf)({ target, config, asked: name });
22
+ if (typeof product === 'string')
23
+ return { reason: product };
24
+ const before = (0, merge_commit_1.dirtyFilesOfSync)({ target, product });
25
+ const merged = (0, merge_1.mergeSketch)({ target, config, product, sketch, note });
26
+ if (!Array.isArray(merged))
27
+ return merged;
28
+ (0, harness_map_1.refreshHarnessMap)({ target, product });
29
+ if (note === null || note === void 0 ? void 0 : note.trim())
30
+ for (const part of sketch.targets)
31
+ (0, merged_parts_1.recordMergeReason)({ product, part, reason: note.trim() });
32
+ const variant = ((_a = sketch.decision) === null || _a === void 0 ? void 0 : _a.kind) === 'pick' ? sketch.decision.variant : '';
33
+ (0, merge_commit_1.commitMergeResultSync)({ target, product, sketch, variant, before });
34
+ return merged;
35
+ };
36
+ exports.studioMergeOf = studioMergeOf;
37
+ const startWorker = () => {
38
+ const built = (0, package_root_1.packageFileOf)((0, path_1.resolve)(__dirname, 'merge-worker.js'));
39
+ // Specs run this file from source, where only the `.ts` worker exists.
40
+ return (0, fs_1.existsSync)(built)
41
+ ? new worker_threads_1.Worker(built)
42
+ : new worker_threads_1.Worker((0, path_1.resolve)(__dirname, 'merge-worker.ts'), {
43
+ execArgv: [
44
+ '--import',
45
+ (0, url_1.pathToFileURL)((0, path_1.resolve)(require.resolve('jiti/package.json'), '../lib/jiti-register.mjs')).href,
46
+ ],
47
+ });
48
+ };
49
+ /**
50
+ * Runs `studioMergeOf` in a worker of its own, so the server keeps answering while the merge copies, checks, writes and
51
+ * commits. On Linux a child process blocks the thread that spawns it for as long as forking the whole process takes, so
52
+ * the server thread spawns none.
53
+ */
54
+ const mergeInWorker = (request) => new Promise((done, fail) => {
55
+ const worker = startWorker();
56
+ let answered = false;
57
+ worker.once('message', ({ result, error }) => {
58
+ answered = true;
59
+ void worker.terminate();
60
+ if (result)
61
+ done(result);
62
+ else
63
+ fail(new Error(error !== null && error !== void 0 ? error : 'the merge worker answered nothing'));
64
+ });
65
+ worker.once('error', (error) => fail(new Error(`the merge worker failed: ${error.message}`)));
66
+ worker.once('exit', () => {
67
+ if (!answered)
68
+ fail(new Error('the merge worker exited before it answered'));
69
+ });
70
+ worker.postMessage(request);
71
+ });
72
+ exports.mergeInWorker = mergeInWorker;
73
+ //# sourceMappingURL=merge-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-runner.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/merge-runner.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,22 @@
1
- import { DesignConfig } from '../../paths';
2
- import { DesignStep } from '../tom-confirm';
1
+ import { DesignConfig } from '../../design-config';
3
2
  import { ResolvedProduct } from '../resolve-product';
4
3
  import { Sketch } from './sketch';
4
+ export type DesignStep = {
5
+ line: string;
6
+ run: () => Promise<number>;
7
+ };
5
8
  /** The sketch with the pick a plan allows: its only live variant, when `variant` names it and nobody picked yet. */
6
9
  export declare const allowedMergeOf: (options: {
7
10
  sketch: Sketch;
8
11
  variant: string;
12
+ by?: string;
13
+ editRef?: boolean;
9
14
  }) => string | Sketch;
15
+ export declare const editRefOf: (options: {
16
+ target: string;
17
+ sketch: Sketch;
18
+ planRef: string;
19
+ }) => boolean;
10
20
  /** Merges the picked variant of `sketch` and logs the reason; answers the merged variant and part keys, or why not. */
11
21
  export declare const mergeAndRecord: (options: {
12
22
  target: string;
@@ -16,9 +26,11 @@ export declare const mergeAndRecord: (options: {
16
26
  note?: string;
17
27
  replaceNote?: boolean;
18
28
  by?: string;
29
+ decidedBy?: string;
19
30
  allowed?: {
20
31
  variant: string;
21
32
  planRef: string;
33
+ editRef?: boolean;
22
34
  };
23
35
  }) => {
24
36
  variant: string;
@@ -9,43 +9,53 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.mergeStepOf = exports.mergeAndRecord = exports.allowedMergeOf = void 0;
12
+ exports.mergeStepOf = exports.mergeAndRecord = exports.editRefOf = exports.allowedMergeOf = void 0;
13
+ const phase_timing_1 = require("../../phase-timing");
14
+ const decision_refs_1 = require("../decision-refs");
13
15
  const harness_map_1 = require("../harness-map");
14
16
  const resolve_product_1 = require("../resolve-product");
15
17
  const cli_args_1 = require("./cli-args");
18
+ const merge_commit_1 = require("./merge-commit");
16
19
  const merge_1 = require("./merge");
17
20
  const merged_parts_1 = require("./merged-parts");
21
+ const write_origin_1 = require("../write-origin");
18
22
  const sketch_1 = require("./sketch");
19
23
  /** The sketch with the pick a plan allows: its only live variant, when `variant` names it and nobody picked yet. */
20
24
  const allowedMergeOf = (options) => {
21
- const { sketch, variant } = options;
25
+ const { sketch, variant, by = '', editRef } = options;
22
26
  const live = sketch.variants.filter((candidate) => !(0, sketch_1.rejectionOf)(sketch, candidate));
23
- if (live.length !== 1 || live[0] !== variant)
27
+ if (editRef ? !live.includes(variant) : live.length !== 1 || live[0] !== variant)
24
28
  return `${sketch.target} has ${live.length} live variants (${live.join(', ') || 'none'}), not only "${variant}" - the user picks in Studio`;
25
- return (0, sketch_1.decideSketch)({ sketch, decision: { kind: 'pick', variant } });
29
+ return (0, sketch_1.decideSketch)({ sketch, decision: Object.assign({ kind: 'pick', variant }, (0, write_origin_1.originOf)(by)) });
26
30
  };
27
31
  exports.allowedMergeOf = allowedMergeOf;
32
+ const editRefOf = (options) => options.sketch.target.endsWith('@edit') &&
33
+ (0, decision_refs_1.decisionRefsOf)({ target: options.target, text: options.planRef }).length > 0;
34
+ exports.editRefOf = editRefOf;
28
35
  /** Merges the picked variant of `sketch` and logs the reason; answers the merged variant and part keys, or why not. */
29
36
  const mergeAndRecord = (options) => {
30
37
  var _a;
31
- const { target, config, product, sketch, note, replaceNote, by, allowed } = options;
32
- const decided = allowed ? (0, exports.allowedMergeOf)({ sketch, variant: allowed.variant }) : sketch;
38
+ const { target, config, product, sketch, note, replaceNote, by, decidedBy, allowed } = options;
39
+ const decided = allowed ? (0, exports.allowedMergeOf)({ sketch, variant: allowed.variant, by, editRef: allowed.editRef }) : sketch;
33
40
  if (typeof decided === 'string')
34
41
  return decided;
35
- const result = (0, merge_1.mergeSketch)(Object.assign({ target,
42
+ const before = (0, merge_commit_1.dirtyFilesOfSync)({ target, product });
43
+ const result = (0, phase_timing_1.timedPhase)('merge-files', () => (0, merge_1.mergeSketch)(Object.assign({ target,
36
44
  config,
37
45
  product, sketch: decided, note,
38
- replaceNote, author: by }, (allowed ? { decidedBy: `plan: ${allowed.planRef.trim()}` } : {})));
46
+ replaceNote, author: by }, (allowed ? { decidedBy: `plan: ${allowed.planRef.trim()}` } : decidedBy ? { decidedBy } : {}))));
39
47
  if (!Array.isArray(result))
40
48
  return result.reason;
41
- const refreshed = (0, harness_map_1.refreshHarnessMap)({ target, product });
49
+ const refreshed = (0, phase_timing_1.timedPhase)('harness-map', () => (0, harness_map_1.refreshHarnessMap)({ target, product }));
42
50
  if (typeof refreshed === 'string')
43
51
  console.error(`merged, but the harness map is still stale: ${refreshed}`);
44
52
  const reason = (note === null || note === void 0 ? void 0 : note.trim()) || undefined;
45
53
  if (allowed || reason)
46
54
  for (const part of sketch.targets)
47
55
  (0, merged_parts_1.recordMergeReason)({ product, part, planRef: allowed === null || allowed === void 0 ? void 0 : allowed.planRef.trim(), reason });
48
- return { variant: ((_a = decided.decision) === null || _a === void 0 ? void 0 : _a.kind) === 'pick' ? decided.decision.variant : '', parts: result };
56
+ const variant = ((_a = decided.decision) === null || _a === void 0 ? void 0 : _a.kind) === 'pick' ? decided.decision.variant : '';
57
+ (0, merge_commit_1.commitMergeResultSync)({ target, product, sketch, variant, before });
58
+ return { variant, parts: result };
49
59
  };
50
60
  exports.mergeAndRecord = mergeAndRecord;
51
61
  /** A merge of one ready sketch as a step, or why it may not run; checks everything a merge needs before anything is written. */
@@ -71,11 +81,13 @@ const mergeStepOf = (options) => {
71
81
  if (sketch.status !== 'ready')
72
82
  return `${sketch.target} is ${sketch.status} - mark it ready first: design sketch ready ${sketch.target} --by <model id> --product ${product.name}`;
73
83
  const picked = ((_a = sketch.decision) === null || _a === void 0 ? void 0 : _a.kind) === 'pick' ? sketch.decision.variant : undefined;
74
- const allowed = variant !== undefined && picked === undefined ? { variant, planRef: note } : undefined;
84
+ const allowed = variant !== undefined && picked === undefined
85
+ ? { variant, planRef: note, editRef: (0, exports.editRefOf)({ target, sketch, planRef: note }) }
86
+ : undefined;
75
87
  if (variant !== undefined && picked !== undefined && picked !== variant)
76
88
  return `${sketch.target} was picked as variant "${picked}", not "${variant}"`;
77
89
  if (allowed) {
78
- const decided = (0, exports.allowedMergeOf)({ sketch, variant: allowed.variant });
90
+ const decided = (0, exports.allowedMergeOf)({ sketch, variant: allowed.variant, by, editRef: allowed.editRef });
79
91
  if (typeof decided === 'string')
80
92
  return decided;
81
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"merge-step.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/merge-step.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merge-step.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/merge-step.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const worker_threads_1 = require("worker_threads");
4
+ const merge_runner_1 = require("./merge-runner");
5
+ const answerOf = (request) => {
6
+ try {
7
+ return { result: (0, merge_runner_1.studioMergeOf)(request) };
8
+ }
9
+ catch (error) {
10
+ return { error: error instanceof Error ? error.message : String(error) };
11
+ }
12
+ };
13
+ worker_threads_1.parentPort === null || worker_threads_1.parentPort === void 0 ? void 0 : worker_threads_1.parentPort.once('message', (request) => worker_threads_1.parentPort === null || worker_threads_1.parentPort === void 0 ? void 0 : worker_threads_1.parentPort.postMessage(answerOf(request)));
14
+ //# sourceMappingURL=merge-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-worker.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/merge-worker.ts"],"names":[],"mappings":";;AAAA,mDAA4C;AAC5C,iDAA4E;AAE5E,MAAM,QAAQ,GAAG,CAAC,OAAqB,EAAiB,EAAE;IACxD,IAAI,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,IAAA,4BAAa,EAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC3E,CAAC;AACH,CAAC,CAAC;AAEF,2BAAU,aAAV,2BAAU,uBAAV,2BAAU,CAAE,IAAI,CAAC,SAAS,EAAE,CAAC,OAAqB,EAAE,EAAE,CAAC,2BAAU,aAAV,2BAAU,uBAAV,2BAAU,CAAE,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { DesignConfig } from '../../paths';
1
+ import { DesignConfig } from '../../design-config';
2
2
  import { ResolvedProduct } from '../resolve-product';
3
3
  import { Sketch } from './sketch';
4
4
  /**
@@ -9,14 +9,21 @@ export type MergeRefusal = {
9
9
  reason: string;
10
10
  changed?: string[];
11
11
  findings?: string[];
12
+ dirty?: string[];
12
13
  };
14
+ /** Why `sketch` cannot be merged as it stands - not ready, no valid pick, or a rejected pick - or `null` when it can. */
15
+ export declare const mergeRefusalOf: (options: {
16
+ product: ResolvedProduct;
17
+ sketch: Sketch;
18
+ }) => string | null;
13
19
  /**
14
20
  * Merges the variant the user picked in a ready sketch into the product: copies each part it holds
15
21
  * over the product's - a part the product takes from its base over the base's, unless the sketch was opened with
16
22
  * `override`; `into-base` also removes the product copy and its `merged.json` entry - keeps the target's note (replaces it with `note`
17
23
  * only with `replaceNote`; an empty one takes the variant note) and sets `madeBy` (the file's own plus the variant's authors) on the target, runs the check
18
- * records each merged part's hash in `merged.json`, with the pick (variant, `decidedBy` - default `user` - and when), and deletes the sketch. With `override`, a target the product only takes from its base is copied into the product first. When the check fails, the
19
- * product's old files come back and the sketch stays. Each file in the variant's `assets/` goes into the product's `assets/`. A file of the sketch's `shared/` folder whose path the product's `shared/` holds
24
+ * records each merged part's hash in `merged.json`, with the pick (variant, `decidedBy` - default `user` - and when), and deletes the sketch. With `override`, a target the product only takes from its base is copied into the product first. All of this
25
+ * runs in a clean copy of HEAD plus the sketch; only the result reaches the checkout, and a result that would overwrite
26
+ * a file with uncommitted edits refuses with that file in `dirty`. When the check fails, the checkout and the sketch stay as they were. Each file in the variant's `assets/` goes into the product's `assets/`. A file of the sketch's `shared/` folder whose path the product's `shared/` holds
20
27
  * replaces it there; the rest goes into the target's folder when the target imports it, with its `@shared/` imports made relative; any other part that imports it stops the merge. Otherwise the addressed comments on its variants, and those on the merged parts that have no sketch, are resolved, and the open ones on its variants are addressed, by `author` or the user. Refuses without a
21
28
  * pick, and when a part the variant replaces changed in the product since the sketch's baseline. Answers with the merged part keys, or with why nothing was merged - and, when a rebase
22
29
  * would let it, the parts that changed (`[]` without a baseline).