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

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 (557) hide show
  1. package/CHANGELOG.md +328 -0
  2. package/build-info.json +1 -0
  3. package/design/define-call.ts +72 -30
  4. package/design/define-part.ts +37 -4
  5. package/design/icon-sheet.ts +1 -1
  6. package/design/interaction-rows.ts +13 -6
  7. package/design/mark-part.ts +51 -1
  8. package/design/token-sheet.ts +1 -1
  9. package/design/web/frame-fit.ts +7 -0
  10. package/design/web/frame-surfaces.ts +294 -0
  11. package/design/web/frame.ts +41 -15
  12. package/design/web/surface-interactive.css +42 -0
  13. package/design/with-action.ts +29 -0
  14. package/package.json +3 -1
  15. package/src/index.js +9 -1
  16. package/src/index.js.map +1 -1
  17. package/src/lib/design/asset-shot.js +2 -2
  18. package/src/lib/design/asset-shot.js.map +1 -1
  19. package/src/lib/design/build-watch.d.ts +26 -0
  20. package/src/lib/design/build-watch.js +138 -0
  21. package/src/lib/design/build-watch.js.map +1 -0
  22. package/src/lib/design/check.js +142 -16
  23. package/src/lib/design/check.js.map +1 -1
  24. package/src/lib/design/commit-hunks.d.ts +22 -0
  25. package/src/lib/design/commit-hunks.js +173 -0
  26. package/src/lib/design/commit-hunks.js.map +1 -0
  27. package/src/lib/design/design-command.d.ts +2 -0
  28. package/src/lib/design/design-command.js +160 -11
  29. package/src/lib/design/design-command.js.map +1 -1
  30. package/src/lib/design/force-interactions.d.ts +1 -1
  31. package/src/lib/design/force-interactions.js +4 -2
  32. package/src/lib/design/force-interactions.js.map +1 -1
  33. package/src/lib/design/inbox-command.js +9 -5
  34. package/src/lib/design/inbox-command.js.map +1 -1
  35. package/src/lib/design/mcp-command.d.ts +5 -1
  36. package/src/lib/design/mcp-command.js +29 -11
  37. package/src/lib/design/mcp-command.js.map +1 -1
  38. package/src/lib/design/merge-compare.d.ts +10 -2
  39. package/src/lib/design/merge-compare.js +63 -11
  40. package/src/lib/design/merge-compare.js.map +1 -1
  41. package/src/lib/design/motion-command.js +1 -1
  42. package/src/lib/design/motion-command.js.map +1 -1
  43. package/src/lib/design/motion-shot.js +3 -2
  44. package/src/lib/design/motion-shot.js.map +1 -1
  45. package/src/lib/design/new-call.js +19 -10
  46. package/src/lib/design/new-call.js.map +1 -1
  47. package/src/lib/design/part-marks.d.ts +3 -2
  48. package/src/lib/design/part-marks.js +13 -5
  49. package/src/lib/design/part-marks.js.map +1 -1
  50. package/src/lib/design/paths.d.ts +28 -0
  51. package/src/lib/design/paths.js.map +1 -1
  52. package/src/lib/design/product-command.d.ts +1 -1
  53. package/src/lib/design/product-command.js +12 -14
  54. package/src/lib/design/product-command.js.map +1 -1
  55. package/src/lib/design/ready-shots.d.ts +29 -3
  56. package/src/lib/design/ready-shots.js +105 -5
  57. package/src/lib/design/ready-shots.js.map +1 -1
  58. package/src/lib/design/render-packages.d.ts +4 -17
  59. package/src/lib/design/render-packages.js +20 -63
  60. package/src/lib/design/render-packages.js.map +1 -1
  61. package/src/lib/design/render-worker.js +1 -3
  62. package/src/lib/design/render-worker.js.map +1 -1
  63. package/src/lib/design/render.d.ts +2 -0
  64. package/src/lib/design/render.js +32 -7
  65. package/src/lib/design/render.js.map +1 -1
  66. package/src/lib/design/serve.d.ts +21 -1
  67. package/src/lib/design/serve.js +133 -19
  68. package/src/lib/design/serve.js.map +1 -1
  69. package/src/lib/design/server-identity.d.ts +36 -0
  70. package/src/lib/design/server-identity.js +68 -0
  71. package/src/lib/design/server-identity.js.map +1 -0
  72. package/src/lib/design/settle-frames.d.ts +4 -0
  73. package/src/lib/design/settle-frames.js +22 -0
  74. package/src/lib/design/settle-frames.js.map +1 -0
  75. package/src/lib/design/shot-command.d.ts +25 -4
  76. package/src/lib/design/shot-command.js +132 -46
  77. package/src/lib/design/shot-command.js.map +1 -1
  78. package/src/lib/design/shot.d.ts +50 -0
  79. package/src/lib/design/shot.js +143 -17
  80. package/src/lib/design/shot.js.map +1 -1
  81. package/src/lib/design/sketch-command.d.ts +6 -1
  82. package/src/lib/design/sketch-command.js +358 -126
  83. package/src/lib/design/sketch-command.js.map +1 -1
  84. package/src/lib/design/stale-cli-dist.d.ts +11 -0
  85. package/src/lib/design/stale-cli-dist.js +56 -0
  86. package/src/lib/design/stale-cli-dist.js.map +1 -0
  87. package/src/lib/design/stamp.d.ts +18 -1
  88. package/src/lib/design/stamp.js +53 -7
  89. package/src/lib/design/stamp.js.map +1 -1
  90. package/src/lib/design/started-by-studio.d.ts +1 -0
  91. package/src/lib/design/started-by-studio.js +6 -0
  92. package/src/lib/design/started-by-studio.js.map +1 -0
  93. package/src/lib/design/studio-api.d.ts +27 -8
  94. package/src/lib/design/studio-api.js +263 -58
  95. package/src/lib/design/studio-api.js.map +1 -1
  96. package/src/lib/design/system/accept-command.d.ts +39 -5
  97. package/src/lib/design/system/accept-command.js +109 -25
  98. package/src/lib/design/system/accept-command.js.map +1 -1
  99. package/src/lib/design/system/accepted-pictures.d.ts +83 -0
  100. package/src/lib/design/system/accepted-pictures.js +324 -0
  101. package/src/lib/design/system/accepted-pictures.js.map +1 -0
  102. package/src/lib/design/system/action-lost.d.ts +59 -0
  103. package/src/lib/design/system/action-lost.js +120 -0
  104. package/src/lib/design/system/action-lost.js.map +1 -0
  105. package/src/lib/design/system/action-press.d.ts +23 -0
  106. package/src/lib/design/system/action-press.js +76 -0
  107. package/src/lib/design/system/action-press.js.map +1 -0
  108. package/src/lib/design/system/action-undeclared.d.ts +34 -0
  109. package/src/lib/design/system/action-undeclared.js +81 -0
  110. package/src/lib/design/system/action-undeclared.js.map +1 -0
  111. package/src/lib/design/system/actions-command.d.ts +101 -0
  112. package/src/lib/design/system/actions-command.js +695 -0
  113. package/src/lib/design/system/actions-command.js.map +1 -0
  114. package/src/lib/design/system/actions.d.ts +158 -0
  115. package/src/lib/design/system/actions.js +295 -0
  116. package/src/lib/design/system/actions.js.map +1 -0
  117. package/src/lib/design/system/app-files.d.ts +10 -0
  118. package/src/lib/design/system/app-files.js +159 -0
  119. package/src/lib/design/system/app-files.js.map +1 -0
  120. package/src/lib/design/system/bespoke-controls.d.ts +30 -0
  121. package/src/lib/design/system/bespoke-controls.js +147 -0
  122. package/src/lib/design/system/bespoke-controls.js.map +1 -0
  123. package/src/lib/design/system/build-ready-contract.d.ts +27 -0
  124. package/src/lib/design/system/build-ready-contract.js +12 -0
  125. package/src/lib/design/system/build-ready-contract.js.map +1 -0
  126. package/src/lib/design/system/check-rules.d.ts +1 -0
  127. package/src/lib/design/system/check-rules.js +82 -0
  128. package/src/lib/design/system/check-rules.js.map +1 -0
  129. package/src/lib/design/system/check-system.d.ts +61 -6
  130. package/src/lib/design/system/check-system.js +479 -68
  131. package/src/lib/design/system/check-system.js.map +1 -1
  132. package/src/lib/design/system/comments/comment.d.ts +4 -1
  133. package/src/lib/design/system/comments/comment.js +13 -4
  134. package/src/lib/design/system/comments/comment.js.map +1 -1
  135. package/src/lib/design/system/comments/inbox.js +2 -2
  136. package/src/lib/design/system/comments/inbox.js.map +1 -1
  137. package/src/lib/design/system/compare-command.d.ts +119 -0
  138. package/src/lib/design/system/compare-command.js +558 -0
  139. package/src/lib/design/system/compare-command.js.map +1 -0
  140. package/src/lib/design/system/complete-command.js +1 -1
  141. package/src/lib/design/system/complete-command.js.map +1 -1
  142. package/src/lib/design/system/complete.d.ts +32 -1
  143. package/src/lib/design/system/complete.js +144 -48
  144. package/src/lib/design/system/complete.js.map +1 -1
  145. package/src/lib/design/system/component-outputs.d.ts +20 -0
  146. package/src/lib/design/system/component-outputs.js +86 -0
  147. package/src/lib/design/system/component-outputs.js.map +1 -0
  148. package/src/lib/design/system/contrast-check.d.ts +1 -1
  149. package/src/lib/design/system/contrast-check.js +14 -3
  150. package/src/lib/design/system/contrast-check.js.map +1 -1
  151. package/src/lib/design/system/demo-backdrop.d.ts +11 -0
  152. package/src/lib/design/system/demo-backdrop.js +41 -0
  153. package/src/lib/design/system/demo-backdrop.js.map +1 -0
  154. package/src/lib/design/system/design-hash.d.ts +31 -0
  155. package/src/lib/design/system/design-hash.js +73 -0
  156. package/src/lib/design/system/design-hash.js.map +1 -0
  157. package/src/lib/design/system/disabled-interaction.d.ts +8 -0
  158. package/src/lib/design/system/disabled-interaction.js +37 -0
  159. package/src/lib/design/system/disabled-interaction.js.map +1 -0
  160. package/src/lib/design/system/dom-command.d.ts +36 -0
  161. package/src/lib/design/system/dom-command.js +175 -0
  162. package/src/lib/design/system/dom-command.js.map +1 -0
  163. package/src/lib/design/system/drawn-open-points.d.ts +25 -3
  164. package/src/lib/design/system/drawn-open-points.js +65 -14
  165. package/src/lib/design/system/drawn-open-points.js.map +1 -1
  166. package/src/lib/design/system/dropped-props.d.ts +25 -0
  167. package/src/lib/design/system/dropped-props.js +159 -0
  168. package/src/lib/design/system/dropped-props.js.map +1 -0
  169. package/src/lib/design/system/embedded-actions.d.ts +21 -0
  170. package/src/lib/design/system/embedded-actions.js +37 -0
  171. package/src/lib/design/system/embedded-actions.js.map +1 -0
  172. package/src/lib/design/system/exceptions.js +2 -1
  173. package/src/lib/design/system/exceptions.js.map +1 -1
  174. package/src/lib/design/system/flows/flow.js +2 -1
  175. package/src/lib/design/system/flows/flow.js.map +1 -1
  176. package/src/lib/design/system/frozen-animations.d.ts +13 -0
  177. package/src/lib/design/system/frozen-animations.js +51 -0
  178. package/src/lib/design/system/frozen-animations.js.map +1 -0
  179. package/src/lib/design/system/go-batch.d.ts +24 -0
  180. package/src/lib/design/system/go-batch.js +110 -0
  181. package/src/lib/design/system/go-batch.js.map +1 -0
  182. package/src/lib/design/system/go-command.d.ts +4 -0
  183. package/src/lib/design/system/go-command.js +64 -0
  184. package/src/lib/design/system/go-command.js.map +1 -0
  185. package/src/lib/design/system/go-guard.d.ts +26 -0
  186. package/src/lib/design/system/go-guard.js +70 -0
  187. package/src/lib/design/system/go-guard.js.map +1 -0
  188. package/src/lib/design/system/go-step.d.ts +13 -0
  189. package/src/lib/design/system/go-step.js +84 -0
  190. package/src/lib/design/system/go-step.js.map +1 -0
  191. package/src/lib/design/system/handoff.js +2 -1
  192. package/src/lib/design/system/handoff.js.map +1 -1
  193. package/src/lib/design/system/harness-build-cache.d.ts +35 -0
  194. package/src/lib/design/system/harness-build-cache.js +175 -0
  195. package/src/lib/design/system/harness-build-cache.js.map +1 -0
  196. package/src/lib/design/system/harness-command.d.ts +7 -0
  197. package/src/lib/design/system/harness-command.js +51 -0
  198. package/src/lib/design/system/harness-command.js.map +1 -0
  199. package/src/lib/design/system/harness-config.d.ts +9 -0
  200. package/src/lib/design/system/harness-config.js +65 -0
  201. package/src/lib/design/system/harness-config.js.map +1 -0
  202. package/src/lib/design/system/harness-map.d.ts +44 -0
  203. package/src/lib/design/system/harness-map.js +126 -0
  204. package/src/lib/design/system/harness-map.js.map +1 -0
  205. package/src/lib/design/system/harness-samples.d.ts +20 -0
  206. package/src/lib/design/system/harness-samples.js +92 -0
  207. package/src/lib/design/system/harness-samples.js.map +1 -0
  208. package/src/lib/design/system/harness-server.d.ts +40 -0
  209. package/src/lib/design/system/harness-server.js +296 -0
  210. package/src/lib/design/system/harness-server.js.map +1 -0
  211. package/src/lib/design/system/imports.js +14 -1
  212. package/src/lib/design/system/imports.js.map +1 -1
  213. package/src/lib/design/system/in-order-at-once.d.ts +6 -0
  214. package/src/lib/design/system/in-order-at-once.js +28 -0
  215. package/src/lib/design/system/in-order-at-once.js.map +1 -0
  216. package/src/lib/design/system/inventory-approval.js +2 -1
  217. package/src/lib/design/system/inventory-approval.js.map +1 -1
  218. package/src/lib/design/system/inventory.d.ts +13 -4
  219. package/src/lib/design/system/inventory.js +36 -7
  220. package/src/lib/design/system/inventory.js.map +1 -1
  221. package/src/lib/design/system/list-system.d.ts +4 -0
  222. package/src/lib/design/system/list-system.js +12 -3
  223. package/src/lib/design/system/list-system.js.map +1 -1
  224. package/src/lib/design/system/live-actions.d.ts +121 -0
  225. package/src/lib/design/system/live-actions.js +665 -0
  226. package/src/lib/design/system/live-actions.js.map +1 -0
  227. package/src/lib/design/system/live-compare.d.ts +136 -0
  228. package/src/lib/design/system/live-compare.js +441 -0
  229. package/src/lib/design/system/live-compare.js.map +1 -0
  230. package/src/lib/design/system/live-uncovered.d.ts +40 -0
  231. package/src/lib/design/system/live-uncovered.js +123 -0
  232. package/src/lib/design/system/live-uncovered.js.map +1 -0
  233. package/src/lib/design/system/nested-scroll.d.ts +7 -0
  234. package/src/lib/design/system/nested-scroll.js +25 -0
  235. package/src/lib/design/system/nested-scroll.js.map +1 -0
  236. package/src/lib/design/system/notes/note.js +2 -1
  237. package/src/lib/design/system/notes/note.js.map +1 -1
  238. package/src/lib/design/system/occluded.d.ts +13 -0
  239. package/src/lib/design/system/occluded.js +111 -0
  240. package/src/lib/design/system/occluded.js.map +1 -0
  241. package/src/lib/design/system/open-points.d.ts +24 -6
  242. package/src/lib/design/system/open-points.js +59 -30
  243. package/src/lib/design/system/open-points.js.map +1 -1
  244. package/src/lib/design/system/part-build-ready.d.ts +39 -0
  245. package/src/lib/design/system/part-build-ready.js +107 -0
  246. package/src/lib/design/system/part-build-ready.js.map +1 -0
  247. package/src/lib/design/system/part-command.js +2 -9
  248. package/src/lib/design/system/part-command.js.map +1 -1
  249. package/src/lib/design/system/part-compare.d.ts +123 -0
  250. package/src/lib/design/system/part-compare.js +396 -0
  251. package/src/lib/design/system/part-compare.js.map +1 -0
  252. package/src/lib/design/system/part-go.d.ts +70 -0
  253. package/src/lib/design/system/part-go.js +94 -0
  254. package/src/lib/design/system/part-go.js.map +1 -0
  255. package/src/lib/design/system/part-ready.d.ts +44 -6
  256. package/src/lib/design/system/part-ready.js +88 -17
  257. package/src/lib/design/system/part-ready.js.map +1 -1
  258. package/src/lib/design/system/part-task.d.ts +147 -0
  259. package/src/lib/design/system/part-task.js +285 -0
  260. package/src/lib/design/system/part-task.js.map +1 -0
  261. package/src/lib/design/system/pointer-focus.d.ts +81 -0
  262. package/src/lib/design/system/pointer-focus.js +152 -0
  263. package/src/lib/design/system/pointer-focus.js.map +1 -0
  264. package/src/lib/design/system/prettier.d.ts +10 -0
  265. package/src/lib/design/system/prettier.js +36 -0
  266. package/src/lib/design/system/prettier.js.map +1 -0
  267. package/src/lib/design/system/reach.d.ts +12 -0
  268. package/src/lib/design/system/reach.js +186 -0
  269. package/src/lib/design/system/reach.js.map +1 -0
  270. package/src/lib/design/system/reachable-controls.d.ts +6 -0
  271. package/src/lib/design/system/reachable-controls.js +19 -0
  272. package/src/lib/design/system/reachable-controls.js.map +1 -0
  273. package/src/lib/design/system/reachable-files.d.ts +14 -0
  274. package/src/lib/design/system/reachable-files.js +101 -0
  275. package/src/lib/design/system/reachable-files.js.map +1 -0
  276. package/src/lib/design/system/reached-state.d.ts +23 -0
  277. package/src/lib/design/system/reached-state.js +53 -0
  278. package/src/lib/design/system/reached-state.js.map +1 -0
  279. package/src/lib/design/system/read-open-points.d.ts +9 -3
  280. package/src/lib/design/system/read-open-points.js +38 -9
  281. package/src/lib/design/system/read-open-points.js.map +1 -1
  282. package/src/lib/design/system/ready-command.d.ts +6 -2
  283. package/src/lib/design/system/ready-command.js +32 -15
  284. package/src/lib/design/system/ready-command.js.map +1 -1
  285. package/src/lib/design/system/render-check.d.ts +50 -0
  286. package/src/lib/design/system/render-check.js +341 -88
  287. package/src/lib/design/system/render-check.js.map +1 -1
  288. package/src/lib/design/system/resolve-product.js +5 -0
  289. package/src/lib/design/system/resolve-product.js.map +1 -1
  290. package/src/lib/design/system/rules/app-spec.d.ts +30 -0
  291. package/src/lib/design/system/rules/app-spec.js +87 -0
  292. package/src/lib/design/system/rules/app-spec.js.map +1 -0
  293. package/src/lib/design/system/rules/canonical-class.d.ts +2 -0
  294. package/src/lib/design/system/rules/canonical-class.js +36 -110
  295. package/src/lib/design/system/rules/canonical-class.js.map +1 -1
  296. package/src/lib/design/system/rules/capability-place.d.ts +44 -0
  297. package/src/lib/design/system/rules/capability-place.js +116 -0
  298. package/src/lib/design/system/rules/capability-place.js.map +1 -0
  299. package/src/lib/design/system/rules/denied-class.d.ts +9 -0
  300. package/src/lib/design/system/rules/denied-class.js +121 -0
  301. package/src/lib/design/system/rules/denied-class.js.map +1 -0
  302. package/src/lib/design/system/rules/exemptions.d.ts +18 -0
  303. package/src/lib/design/system/rules/exemptions.js +18 -0
  304. package/src/lib/design/system/rules/exemptions.js.map +1 -0
  305. package/src/lib/design/system/rules/flow.js +1 -1
  306. package/src/lib/design/system/rules/flow.js.map +1 -1
  307. package/src/lib/design/system/rules/glued-interpolation.d.ts +8 -0
  308. package/src/lib/design/system/rules/glued-interpolation.js +61 -0
  309. package/src/lib/design/system/rules/glued-interpolation.js.map +1 -0
  310. package/src/lib/design/system/rules/hard-coded-colour.js +2 -1
  311. package/src/lib/design/system/rules/hard-coded-colour.js.map +1 -1
  312. package/src/lib/design/system/rules/implemented-components.d.ts +22 -0
  313. package/src/lib/design/system/rules/implemented-components.js +45 -0
  314. package/src/lib/design/system/rules/implemented-components.js.map +1 -0
  315. package/src/lib/design/system/rules/implements.d.ts +2 -1
  316. package/src/lib/design/system/rules/implements.js +26 -21
  317. package/src/lib/design/system/rules/implements.js.map +1 -1
  318. package/src/lib/design/system/rules/inline-svg.js +4 -1
  319. package/src/lib/design/system/rules/inline-svg.js.map +1 -1
  320. package/src/lib/design/system/rules/inline-ui-in-page-open.d.ts +13 -0
  321. package/src/lib/design/system/rules/inline-ui-in-page-open.js +5 -0
  322. package/src/lib/design/system/rules/inline-ui-in-page-open.js.map +1 -0
  323. package/src/lib/design/system/rules/inline-ui-in-page.d.ts +18 -0
  324. package/src/lib/design/system/rules/inline-ui-in-page.js +123 -0
  325. package/src/lib/design/system/rules/inline-ui-in-page.js.map +1 -0
  326. package/src/lib/design/system/rules/inline-ui.d.ts +16 -0
  327. package/src/lib/design/system/rules/inline-ui.js +100 -0
  328. package/src/lib/design/system/rules/inline-ui.js.map +1 -0
  329. package/src/lib/design/system/rules/motion.d.ts +1 -1
  330. package/src/lib/design/system/rules/motion.js +25 -17
  331. package/src/lib/design/system/rules/motion.js.map +1 -1
  332. package/src/lib/design/system/rules/native-title.d.ts +7 -0
  333. package/src/lib/design/system/rules/native-title.js +64 -0
  334. package/src/lib/design/system/rules/native-title.js.map +1 -0
  335. package/src/lib/design/system/rules/orphan-endpoint-known.d.ts +12 -0
  336. package/src/lib/design/system/rules/orphan-endpoint-known.js +20 -0
  337. package/src/lib/design/system/rules/orphan-endpoint-known.js.map +1 -0
  338. package/src/lib/design/system/rules/orphan-endpoint.d.ts +23 -0
  339. package/src/lib/design/system/rules/orphan-endpoint.js +166 -0
  340. package/src/lib/design/system/rules/orphan-endpoint.js.map +1 -0
  341. package/src/lib/design/system/rules/part-rewrite.d.ts +13 -0
  342. package/src/lib/design/system/rules/part-rewrite.js +125 -0
  343. package/src/lib/design/system/rules/part-rewrite.js.map +1 -0
  344. package/src/lib/design/system/rules/sample-default-known.d.ts +5 -0
  345. package/src/lib/design/system/rules/sample-default-known.js +17 -0
  346. package/src/lib/design/system/rules/sample-default-known.js.map +1 -0
  347. package/src/lib/design/system/rules/sample-default.d.ts +22 -0
  348. package/src/lib/design/system/rules/sample-default.js +92 -0
  349. package/src/lib/design/system/rules/sample-default.js.map +1 -0
  350. package/src/lib/design/system/rules/stale-replace.js +4 -0
  351. package/src/lib/design/system/rules/stale-replace.js.map +1 -1
  352. package/src/lib/design/system/rules/state-in-component.d.ts +16 -0
  353. package/src/lib/design/system/rules/state-in-component.js +101 -0
  354. package/src/lib/design/system/rules/state-in-component.js.map +1 -0
  355. package/src/lib/design/system/rules/tailwind-classes.d.ts +51 -0
  356. package/src/lib/design/system/rules/tailwind-classes.js +232 -0
  357. package/src/lib/design/system/rules/tailwind-classes.js.map +1 -0
  358. package/src/lib/design/system/rules/top-level-await.d.ts +9 -0
  359. package/src/lib/design/system/rules/top-level-await.js +62 -0
  360. package/src/lib/design/system/rules/top-level-await.js.map +1 -0
  361. package/src/lib/design/system/rules/unbound-input-known.d.ts +5 -0
  362. package/src/lib/design/system/rules/unbound-input-known.js +47 -0
  363. package/src/lib/design/system/rules/unbound-input-known.js.map +1 -0
  364. package/src/lib/design/system/rules/unbound-input.d.ts +22 -0
  365. package/src/lib/design/system/rules/unbound-input.js +61 -0
  366. package/src/lib/design/system/rules/unbound-input.js.map +1 -0
  367. package/src/lib/design/system/rules/uncovered-region.d.ts +13 -0
  368. package/src/lib/design/system/rules/uncovered-region.js +36 -0
  369. package/src/lib/design/system/rules/uncovered-region.js.map +1 -0
  370. package/src/lib/design/system/rules/undefined-class.d.ts +9 -0
  371. package/src/lib/design/system/rules/undefined-class.js +32 -0
  372. package/src/lib/design/system/rules/undefined-class.js.map +1 -0
  373. package/src/lib/design/system/rules/undefined-token.d.ts +1 -1
  374. package/src/lib/design/system/rules/undefined-token.js +7 -61
  375. package/src/lib/design/system/rules/undefined-token.js.map +1 -1
  376. package/src/lib/design/system/rules/utility-css.d.ts +2 -1
  377. package/src/lib/design/system/rules/utility-css.js +29 -14
  378. package/src/lib/design/system/rules/utility-css.js.map +1 -1
  379. package/src/lib/design/system/rules/view-coverage.d.ts +8 -0
  380. package/src/lib/design/system/rules/view-coverage.js +51 -0
  381. package/src/lib/design/system/rules/view-coverage.js.map +1 -0
  382. package/src/lib/design/system/rules/visible-change.d.ts +20 -0
  383. package/src/lib/design/system/rules/visible-change.js +48 -0
  384. package/src/lib/design/system/rules/visible-change.js.map +1 -0
  385. package/src/lib/design/system/sdk-errors.d.ts +14 -0
  386. package/src/lib/design/system/sdk-errors.js +38 -0
  387. package/src/lib/design/system/sdk-errors.js.map +1 -0
  388. package/src/lib/design/system/see-through.d.ts +12 -0
  389. package/src/lib/design/system/see-through.js +112 -0
  390. package/src/lib/design/system/see-through.js.map +1 -0
  391. package/src/lib/design/system/settled-panes.d.ts +18 -0
  392. package/src/lib/design/system/settled-panes.js +70 -0
  393. package/src/lib/design/system/settled-panes.js.map +1 -0
  394. package/src/lib/design/system/sketch/after-merge.d.ts +11 -0
  395. package/src/lib/design/system/sketch/after-merge.js +51 -0
  396. package/src/lib/design/system/sketch/after-merge.js.map +1 -0
  397. package/src/lib/design/system/sketch/aktuell-placeholders.d.ts +30 -0
  398. package/src/lib/design/system/sketch/aktuell-placeholders.js +87 -0
  399. package/src/lib/design/system/sketch/aktuell-placeholders.js.map +1 -0
  400. package/src/lib/design/system/sketch/baseline.d.ts +19 -1
  401. package/src/lib/design/system/sketch/baseline.js +29 -7
  402. package/src/lib/design/system/sketch/baseline.js.map +1 -1
  403. package/src/lib/design/system/sketch/check-sketches.d.ts +10 -0
  404. package/src/lib/design/system/sketch/check-sketches.js +50 -4
  405. package/src/lib/design/system/sketch/check-sketches.js.map +1 -1
  406. package/src/lib/design/system/sketch/cli-args.d.ts +12 -2
  407. package/src/lib/design/system/sketch/cli-args.js +18 -3
  408. package/src/lib/design/system/sketch/cli-args.js.map +1 -1
  409. package/src/lib/design/system/sketch/edit-sketch.d.ts +21 -0
  410. package/src/lib/design/system/sketch/edit-sketch.js +117 -0
  411. package/src/lib/design/system/sketch/edit-sketch.js.map +1 -0
  412. package/src/lib/design/system/sketch/frame-budget.d.ts +24 -0
  413. package/src/lib/design/system/sketch/frame-budget.js +23 -0
  414. package/src/lib/design/system/sketch/frame-budget.js.map +1 -0
  415. package/src/lib/design/system/sketch/identical-renders.d.ts +31 -0
  416. package/src/lib/design/system/sketch/identical-renders.js +137 -0
  417. package/src/lib/design/system/sketch/identical-renders.js.map +1 -0
  418. package/src/lib/design/system/sketch/merge-shared.d.ts +2 -0
  419. package/src/lib/design/system/sketch/merge-shared.js +7 -10
  420. package/src/lib/design/system/sketch/merge-shared.js.map +1 -1
  421. package/src/lib/design/system/sketch/merge-step.d.ts +35 -0
  422. package/src/lib/design/system/sketch/merge-step.js +98 -0
  423. package/src/lib/design/system/sketch/merge-step.js.map +1 -0
  424. package/src/lib/design/system/sketch/merge.d.ts +10 -3
  425. package/src/lib/design/system/sketch/merge.js +103 -30
  426. package/src/lib/design/system/sketch/merge.js.map +1 -1
  427. package/src/lib/design/system/sketch/merged-layout.d.ts +17 -0
  428. package/src/lib/design/system/sketch/merged-layout.js +57 -0
  429. package/src/lib/design/system/sketch/merged-layout.js.map +1 -0
  430. package/src/lib/design/system/sketch/merged-parts.d.ts +40 -10
  431. package/src/lib/design/system/sketch/merged-parts.js +112 -49
  432. package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
  433. package/src/lib/design/system/sketch/no-visible-change.d.ts +10 -0
  434. package/src/lib/design/system/sketch/no-visible-change.js +16 -6
  435. package/src/lib/design/system/sketch/no-visible-change.js.map +1 -1
  436. package/src/lib/design/system/sketch/part-definition.d.ts +21 -1
  437. package/src/lib/design/system/sketch/part-definition.js +79 -17
  438. package/src/lib/design/system/sketch/part-definition.js.map +1 -1
  439. package/src/lib/design/system/sketch/rebase-port.d.ts +24 -0
  440. package/src/lib/design/system/sketch/rebase-port.js +170 -0
  441. package/src/lib/design/system/sketch/rebase-port.js.map +1 -0
  442. package/src/lib/design/system/sketch/sample-mark-drift.d.ts +33 -0
  443. package/src/lib/design/system/sketch/sample-mark-drift.js +88 -0
  444. package/src/lib/design/system/sketch/sample-mark-drift.js.map +1 -0
  445. package/src/lib/design/system/sketch/sketch-check-worker.d.ts +1 -0
  446. package/src/lib/design/system/sketch/sketch-check-worker.js +27 -0
  447. package/src/lib/design/system/sketch/sketch-check-worker.js.map +1 -0
  448. package/src/lib/design/system/sketch/sketch-checker.d.ts +27 -0
  449. package/src/lib/design/system/sketch/sketch-checker.js +99 -0
  450. package/src/lib/design/system/sketch/sketch-checker.js.map +1 -0
  451. package/src/lib/design/system/sketch/sketch.d.ts +63 -2
  452. package/src/lib/design/system/sketch/sketch.js +185 -30
  453. package/src/lib/design/system/sketch/sketch.js.map +1 -1
  454. package/src/lib/design/system/sketch/stale-base.d.ts +22 -0
  455. package/src/lib/design/system/sketch/stale-base.js +56 -0
  456. package/src/lib/design/system/sketch/stale-base.js.map +1 -0
  457. package/src/lib/design/system/sketch/unchanged-states.d.ts +32 -0
  458. package/src/lib/design/system/sketch/unchanged-states.js +52 -13
  459. package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
  460. package/src/lib/design/system/sketch/unused-closure.js +16 -4
  461. package/src/lib/design/system/sketch/unused-closure.js.map +1 -1
  462. package/src/lib/design/system/sketch/viewed-shots.d.ts +24 -0
  463. package/src/lib/design/system/sketch/viewed-shots.js +61 -0
  464. package/src/lib/design/system/sketch/viewed-shots.js.map +1 -0
  465. package/src/lib/design/system/slow-checks.d.ts +40 -0
  466. package/src/lib/design/system/slow-checks.js +197 -0
  467. package/src/lib/design/system/slow-checks.js.map +1 -0
  468. package/src/lib/design/system/slow-run.d.ts +57 -0
  469. package/src/lib/design/system/slow-run.js +253 -0
  470. package/src/lib/design/system/slow-run.js.map +1 -0
  471. package/src/lib/design/system/stale-design-mocks.d.ts +20 -0
  472. package/src/lib/design/system/stale-design-mocks.js +59 -0
  473. package/src/lib/design/system/stale-design-mocks.js.map +1 -0
  474. package/src/lib/design/system/stale-dist.d.ts +25 -0
  475. package/src/lib/design/system/stale-dist.js +91 -0
  476. package/src/lib/design/system/stale-dist.js.map +1 -0
  477. package/src/lib/design/system/stale-parts.d.ts +30 -0
  478. package/src/lib/design/system/stale-parts.js +106 -0
  479. package/src/lib/design/system/stale-parts.js.map +1 -0
  480. package/src/lib/design/system/surface-nesting.d.ts +11 -0
  481. package/src/lib/design/system/surface-nesting.js +86 -0
  482. package/src/lib/design/system/surface-nesting.js.map +1 -0
  483. package/src/lib/design/system/system-command.js +8 -6
  484. package/src/lib/design/system/system-command.js.map +1 -1
  485. package/src/lib/design/system/system-modules.d.ts +16 -1
  486. package/src/lib/design/system/system-modules.js +18 -2
  487. package/src/lib/design/system/system-modules.js.map +1 -1
  488. package/src/lib/design/system/task-command.d.ts +51 -0
  489. package/src/lib/design/system/task-command.js +233 -0
  490. package/src/lib/design/system/task-command.js.map +1 -0
  491. package/src/lib/design/system/theming-text.d.ts +2 -0
  492. package/src/lib/design/system/theming-text.js +6 -0
  493. package/src/lib/design/system/theming-text.js.map +1 -0
  494. package/src/lib/design/system/tom-confirm.d.ts +40 -0
  495. package/src/lib/design/system/tom-confirm.js +55 -0
  496. package/src/lib/design/system/tom-confirm.js.map +1 -0
  497. package/src/lib/design/system/touched-parts.d.ts +16 -0
  498. package/src/lib/design/system/touched-parts.js +122 -0
  499. package/src/lib/design/system/touched-parts.js.map +1 -0
  500. package/src/lib/design/system/ts-source.d.ts +2 -0
  501. package/src/lib/design/system/ts-source.js +15 -1
  502. package/src/lib/design/system/ts-source.js.map +1 -1
  503. package/src/lib/design/system/unchanged-rows.d.ts +15 -0
  504. package/src/lib/design/system/unchanged-rows.js +134 -0
  505. package/src/lib/design/system/unchanged-rows.js.map +1 -0
  506. package/src/lib/design/system/uncommitted-decisions.d.ts +6 -0
  507. package/src/lib/design/system/uncommitted-decisions.js +38 -0
  508. package/src/lib/design/system/uncommitted-decisions.js.map +1 -0
  509. package/src/lib/design/system/uncovered-regions.d.ts +61 -0
  510. package/src/lib/design/system/uncovered-regions.js +171 -0
  511. package/src/lib/design/system/uncovered-regions.js.map +1 -0
  512. package/src/lib/design/system/unused-base-parts.d.ts +7 -0
  513. package/src/lib/design/system/unused-base-parts.js +76 -0
  514. package/src/lib/design/system/unused-base-parts.js.map +1 -0
  515. package/src/lib/design/system/visible-change-command.d.ts +48 -0
  516. package/src/lib/design/system/visible-change-command.js +308 -0
  517. package/src/lib/design/system/visible-change-command.js.map +1 -0
  518. package/src/lib/design/system/visible-change-parts.d.ts +28 -0
  519. package/src/lib/design/system/visible-change-parts.js +96 -0
  520. package/src/lib/design/system/visible-change-parts.js.map +1 -0
  521. package/src/lib/design/system/visible-change.d.ts +82 -0
  522. package/src/lib/design/system/visible-change.js +149 -0
  523. package/src/lib/design/system/visible-change.js.map +1 -0
  524. package/src/lib/design/thumb.d.ts +19 -2
  525. package/src/lib/design/thumb.js +50 -15
  526. package/src/lib/design/thumb.js.map +1 -1
  527. package/src/lib/design/typecheck.d.ts +1 -1
  528. package/src/lib/design/typecheck.js +3 -3
  529. package/src/lib/design/typecheck.js.map +1 -1
  530. package/src/lib/design/unstable-cells.d.ts +23 -0
  531. package/src/lib/design/unstable-cells.js +40 -0
  532. package/src/lib/design/unstable-cells.js.map +1 -0
  533. package/src/lib/design/variant-diff.js +1 -1
  534. package/src/lib/design/variant-diff.js.map +1 -1
  535. package/src/lib/design/wait.d.ts +15 -0
  536. package/src/lib/design/wait.js +30 -0
  537. package/src/lib/design/wait.js.map +1 -0
  538. package/src/lib/json-file.d.ts +11 -0
  539. package/src/lib/json-file.js +21 -0
  540. package/src/lib/json-file.js.map +1 -0
  541. package/src/lib/source-hash.d.ts +7 -0
  542. package/src/lib/source-hash.js +62 -0
  543. package/src/lib/source-hash.js.map +1 -0
  544. package/src/lib/update/agent-setup.js +2 -1
  545. package/src/lib/update/agent-setup.js.map +1 -1
  546. package/src/lib/update/migration-manifest.d.ts +12 -0
  547. package/src/lib/update/migration-manifest.js +13 -0
  548. package/src/lib/update/migration-manifest.js.map +1 -1
  549. package/src/lib/update/migration-record.js +2 -1
  550. package/src/lib/update/migration-record.js.map +1 -1
  551. package/src/lib/update/pending.js +2 -1
  552. package/src/lib/update/pending.js.map +1 -1
  553. package/src/lib/update/run-migrations.d.ts +3 -2
  554. package/src/lib/update/run-migrations.js +38 -5
  555. package/src/lib/update/run-migrations.js.map +1 -1
  556. package/src/lib/update/tasks.js +2 -1
  557. package/src/lib/update/tasks.js.map +1 -1
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.partLinkOf = exports.unreachableOf = exports.motionRefsOf = exports.declaresControlsOf = exports.interactionNamesOf = exports.widthsOf = exports.hasBadWidths = exports.withMadeBy = exports.withNote = exports.noteOf = exports.madeByOf = exports.stateNamesOf = void 0;
6
+ exports.partLinkOf = exports.instantOf = exports.unreachableOf = exports.motionRefsOf = exports.declaresNoControlsOf = exports.declaresControlsOf = exports.interactionNamesOf = exports.widthsOf = exports.hasBadWidths = exports.withMadeBy = exports.withNote = exports.noteOf = exports.madeByOf = exports.stateLiteralPropsOf = exports.stateNamesOf = exports.PARSED_PART_FIELDS = void 0;
7
7
  const typescript_1 = __importDefault(require("typescript"));
8
8
  const ts_source_1 = require("../ts-source");
9
9
  const definitionOf = (source) => {
@@ -26,7 +26,23 @@ const definitionOf = (source) => {
26
26
  return { file, definition: found };
27
27
  };
28
28
  const nameOf = (name) => typescript_1.default.isIdentifier(name) || typescript_1.default.isStringLiteral(name) || typescript_1.default.isNumericLiteral(name) ? name.text : null;
29
+ /** The top-level `definePart` fields this file reads. Each must be a key of `Part`, which a spec checks. */
30
+ exports.PARSED_PART_FIELDS = [
31
+ 'states',
32
+ 'note',
33
+ 'madeBy',
34
+ 'widths',
35
+ 'interactions',
36
+ 'controls',
37
+ 'motions',
38
+ 'rules',
39
+ 'unreachable',
40
+ 'instant',
41
+ 'implements',
42
+ ];
29
43
  const propertyOf = (definition, name) => definition.properties.find((property) => typescript_1.default.isPropertyAssignment(property) && nameOf(property.name) === name);
44
+ const fieldOf = (definition, name) => propertyOf(definition, name);
45
+ const fieldName = (name) => name;
30
46
  /**
31
47
  * The state names a part file declares in `definePart({ states: { … } })`, read without running it.
32
48
  * `null` when the states are not written as an object literal there, so they cannot be known.
@@ -34,7 +50,7 @@ const propertyOf = (definition, name) => definition.properties.find((property) =
34
50
  const stateNamesOf = (source) => {
35
51
  var _a;
36
52
  const { definition } = definitionOf(source);
37
- const states = definition ? (_a = propertyOf(definition, 'states')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
53
+ const states = definition ? (_a = fieldOf(definition, 'states')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
38
54
  if (!states || !typescript_1.default.isObjectLiteralExpression(states))
39
55
  return null;
40
56
  const names = states.properties.map((property) => (typescript_1.default.isPropertyAssignment(property) || typescript_1.default.isShorthandPropertyAssignment(property)) && property.name
@@ -43,11 +59,31 @@ const stateNamesOf = (source) => {
43
59
  return names.includes(null) ? null : names;
44
60
  };
45
61
  exports.stateNamesOf = stateNamesOf;
62
+ /** The string literal props each state of `definePart({ states: { … } })` writes, by state name, read without running it. */
63
+ const stateLiteralPropsOf = (source) => {
64
+ var _a;
65
+ const { definition } = definitionOf(source);
66
+ const states = definition ? (_a = fieldOf(definition, 'states')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
67
+ if (!states || !typescript_1.default.isObjectLiteralExpression(states))
68
+ return {};
69
+ return Object.fromEntries(states.properties.flatMap((state) => {
70
+ const name = typescript_1.default.isPropertyAssignment(state) ? nameOf(state.name) : null;
71
+ if (!typescript_1.default.isPropertyAssignment(state) || name === null || !typescript_1.default.isObjectLiteralExpression(state.initializer))
72
+ return [];
73
+ const props = state.initializer.properties.flatMap((prop) => {
74
+ const key = typescript_1.default.isPropertyAssignment(prop) ? nameOf(prop.name) : null;
75
+ const value = typescript_1.default.isPropertyAssignment(prop) ? literalOf(prop.initializer) : null;
76
+ return key !== null && value !== null ? [[key, value]] : [];
77
+ });
78
+ return [[name, Object.fromEntries(props)]];
79
+ }));
80
+ };
81
+ exports.stateLiteralPropsOf = stateLiteralPropsOf;
46
82
  /** The model ids in the `madeBy` literal of a part file; none when it has no such array of strings. */
47
83
  const madeByOf = (source) => {
48
84
  var _a;
49
85
  const { definition } = definitionOf(source);
50
- const current = definition ? (_a = propertyOf(definition, 'madeBy')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
86
+ const current = definition ? (_a = fieldOf(definition, 'madeBy')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
51
87
  if (!current || !typescript_1.default.isArrayLiteralExpression(current))
52
88
  return [];
53
89
  return current.elements.flatMap((element) => (typescript_1.default.isStringLiteralLike(element) ? [element.text] : []));
@@ -57,7 +93,7 @@ exports.madeByOf = madeByOf;
57
93
  const noteOf = (source) => {
58
94
  var _a;
59
95
  const { definition } = definitionOf(source);
60
- const current = definition ? (_a = propertyOf(definition, 'note')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
96
+ const current = definition ? (_a = fieldOf(definition, 'note')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
61
97
  return current && (typescript_1.default.isStringLiteral(current) || typescript_1.default.isNoSubstitutionTemplateLiteral(current)) ? current.text : null;
62
98
  };
63
99
  exports.noteOf = noteOf;
@@ -66,7 +102,7 @@ const quoted = (text) => `'${text.replace(/\\/gu, '\\\\').replace(/'/gu, "\\'").
66
102
  const withNote = (source, note) => {
67
103
  var _a;
68
104
  const { file, definition } = definitionOf(source);
69
- const current = definition ? (_a = propertyOf(definition, 'note')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
105
+ const current = definition ? (_a = fieldOf(definition, 'note')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
70
106
  if (!current || !(typescript_1.default.isStringLiteral(current) || typescript_1.default.isNoSubstitutionTemplateLiteral(current)))
71
107
  return null;
72
108
  return `${source.slice(0, current.getStart(file))}${quoted(note)}${source.slice(current.getEnd())}`;
@@ -83,10 +119,10 @@ const lineStartOf = (source, position) => {
83
119
  const withMadeBy = (source, madeBy) => {
84
120
  var _a, _b;
85
121
  const { file, definition } = definitionOf(source);
86
- const note = definition ? propertyOf(definition, 'note') : undefined;
122
+ const note = definition ? fieldOf(definition, 'note') : undefined;
87
123
  if (!definition || !note)
88
124
  return null;
89
- const current = propertyOf(definition, 'madeBy');
125
+ const current = fieldOf(definition, 'madeBy');
90
126
  const value = `madeBy: [${madeBy.map(quoted).join(', ')}]`;
91
127
  if (current) {
92
128
  if (madeBy.length > 0)
@@ -119,7 +155,7 @@ const isPositiveNumber = (node) => typescript_1.default.isNumericLiteral(node) &
119
155
  const hasBadWidths = (source) => {
120
156
  var _a;
121
157
  const { definition } = definitionOf(source);
122
- const widths = definition ? (_a = propertyOf(definition, 'widths')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
158
+ const widths = definition ? (_a = fieldOf(definition, 'widths')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
123
159
  if (!widths)
124
160
  return false;
125
161
  if (typescript_1.default.isArrayLiteralExpression(widths))
@@ -134,7 +170,7 @@ exports.hasBadWidths = hasBadWidths;
134
170
  const widthsOf = (source) => {
135
171
  var _a;
136
172
  const { definition } = definitionOf(source);
137
- const widths = definition ? (_a = propertyOf(definition, 'widths')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
173
+ const widths = definition ? (_a = fieldOf(definition, 'widths')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
138
174
  if (!widths)
139
175
  return [];
140
176
  if (!typescript_1.default.isArrayLiteralExpression(widths) || !widths.elements.every(typescript_1.default.isNumericLiteral))
@@ -149,7 +185,7 @@ exports.widthsOf = widthsOf;
149
185
  const interactionNamesOf = (source) => {
150
186
  var _a;
151
187
  const { definition } = definitionOf(source);
152
- const interactions = definition ? (_a = propertyOf(definition, 'interactions')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
188
+ const interactions = definition ? (_a = fieldOf(definition, 'interactions')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
153
189
  if (!interactions || !typescript_1.default.isArrayLiteralExpression(interactions))
154
190
  return [];
155
191
  return interactions.elements.flatMap((element) => typescript_1.default.isStringLiteral(element) || typescript_1.default.isNoSubstitutionTemplateLiteral(element) ? [element.text] : []);
@@ -161,7 +197,7 @@ exports.interactionNamesOf = interactionNamesOf;
161
197
  */
162
198
  const declaresControlsOf = (source) => {
163
199
  const { definition } = definitionOf(source);
164
- const property = definition === null || definition === void 0 ? void 0 : definition.properties.find((candidate) => candidate.name && nameOf(candidate.name) === 'controls');
200
+ const property = definition === null || definition === void 0 ? void 0 : definition.properties.find((candidate) => candidate.name && nameOf(candidate.name) === fieldName('controls'));
165
201
  if (!property)
166
202
  return false;
167
203
  return (!typescript_1.default.isPropertyAssignment(property) ||
@@ -169,6 +205,16 @@ const declaresControlsOf = (source) => {
169
205
  property.initializer.properties.length > 0);
170
206
  };
171
207
  exports.declaresControlsOf = declaresControlsOf;
208
+ /** Whether a part file writes an explicit empty `controls: {}`, the part saying it has none. */
209
+ const declaresNoControlsOf = (source) => {
210
+ const { definition } = definitionOf(source);
211
+ const property = definition === null || definition === void 0 ? void 0 : definition.properties.find((candidate) => candidate.name && nameOf(candidate.name) === fieldName('controls'));
212
+ return (!!property &&
213
+ typescript_1.default.isPropertyAssignment(property) &&
214
+ typescript_1.default.isObjectLiteralExpression(property.initializer) &&
215
+ property.initializer.properties.length === 0);
216
+ };
217
+ exports.declaresNoControlsOf = declaresNoControlsOf;
172
218
  const literalOf = (node) => node && (typescript_1.default.isStringLiteral(node) || typescript_1.default.isNoSubstitutionTemplateLiteral(node)) ? node.text : null;
173
219
  /**
174
220
  * The motions a part file writes in `definePart({ motions: { … } })` with the `from` and `to` it gives as string
@@ -177,8 +223,8 @@ const literalOf = (node) => node && (typescript_1.default.isStringLiteral(node)
177
223
  const motionRefsOf = (source) => {
178
224
  var _a, _b;
179
225
  const { definition } = definitionOf(source);
180
- const motions = definition ? (_a = propertyOf(definition, 'motions')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
181
- const rules = definition ? (_b = propertyOf(definition, 'rules')) === null || _b === void 0 ? void 0 : _b.initializer : undefined;
226
+ const motions = definition ? (_a = fieldOf(definition, 'motions')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
227
+ const rules = definition ? (_b = fieldOf(definition, 'rules')) === null || _b === void 0 ? void 0 : _b.initializer : undefined;
182
228
  return {
183
229
  motions: motions && typescript_1.default.isObjectLiteralExpression(motions)
184
230
  ? motions.properties.flatMap((property) => {
@@ -215,7 +261,7 @@ const isStringLiteral = (node) => typescript_1.default.isStringLiteral(node) ||
215
261
  */
216
262
  const unreachableOf = (source) => {
217
263
  const { definition } = definitionOf(source);
218
- const property = definition === null || definition === void 0 ? void 0 : definition.properties.find((candidate) => candidate.name && nameOf(candidate.name) === 'unreachable');
264
+ const property = definition === null || definition === void 0 ? void 0 : definition.properties.find((candidate) => candidate.name && nameOf(candidate.name) === fieldName('unreachable'));
219
265
  if (!property)
220
266
  return [];
221
267
  if (!typescript_1.default.isPropertyAssignment(property) || !typescript_1.default.isArrayLiteralExpression(property.initializer))
@@ -234,17 +280,33 @@ const unreachableOf = (source) => {
234
280
  });
235
281
  };
236
282
  exports.unreachableOf = unreachableOf;
283
+ const instantOf = (source) => {
284
+ var _a, _b;
285
+ const { definition } = definitionOf(source);
286
+ const value = definition ? (_a = fieldOf(definition, 'instant')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
287
+ if (!value)
288
+ return { kind: 'none' };
289
+ const reason = (_b = literalOf(value)) === null || _b === void 0 ? void 0 : _b.trim();
290
+ return reason ? { kind: 'declared', reason } : { kind: 'unreadable' };
291
+ };
292
+ exports.instantOf = instantOf;
237
293
  const partLinkOf = (source) => {
238
294
  var _a, _b;
239
295
  const { definition } = definitionOf(source);
240
- const link = definition ? (_a = propertyOf(definition, 'implements')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
296
+ const link = definition ? (_a = fieldOf(definition, 'implements')) === null || _a === void 0 ? void 0 : _a.initializer : undefined;
241
297
  if (!link)
242
298
  return { kind: 'none' };
243
299
  const path = literalOf(link);
244
300
  if (path !== null)
245
301
  return { kind: 'component', path };
246
- const route = typescript_1.default.isObjectLiteralExpression(link) ? literalOf((_b = propertyOf(link, 'route')) === null || _b === void 0 ? void 0 : _b.initializer) : null;
247
- return route === null ? { kind: 'unreadable' } : { kind: 'route', route };
302
+ if (!typescript_1.default.isObjectLiteralExpression(link))
303
+ return { kind: 'unreadable' };
304
+ const route = literalOf((_b = propertyOf(link, 'route')) === null || _b === void 0 ? void 0 : _b.initializer);
305
+ const componentProperty = propertyOf(link, 'component');
306
+ const component = componentProperty ? literalOf(componentProperty.initializer) : null;
307
+ return route === null || (componentProperty && component === null)
308
+ ? { kind: 'unreadable' }
309
+ : { kind: 'route', route, component };
248
310
  };
249
311
  exports.partLinkOf = partLinkOf;
250
312
  //# sourceMappingURL=part-definition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"part-definition.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/part-definition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"part-definition.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/part-definition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { ResolvedProduct } from '../resolve-product';
2
+ import { Sketch } from './sketch';
3
+ export type PortedFile = {
4
+ variant: string;
5
+ part: string;
6
+ file: string;
7
+ how: 'merged' | 'taken' | 'deleted';
8
+ };
9
+ export type BasePort = {
10
+ ported: PortedFile[];
11
+ conflicts: string[];
12
+ };
13
+ /**
14
+ * Ports the changes the product made to each part the sketch's variants replace since its baseline into those
15
+ * variants: a 3-way merge per file of the variant, the part as the baseline held it (found in git history by its
16
+ * hash) and the part now. Writes nothing when any file conflicts or a baseline state is not in history, and then
17
+ * answers with the conflicts; with `keepConflicts` it keeps the variant's version of those and ports the rest.
18
+ */
19
+ export declare const portBaseChanges: (options: {
20
+ target: string;
21
+ product: ResolvedProduct;
22
+ sketch: Sketch;
23
+ keepConflicts?: boolean;
24
+ }) => BasePort;
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.portBaseChanges = void 0;
4
+ const child_process_1 = require("child_process");
5
+ const fs_1 = require("fs");
6
+ const os_1 = require("os");
7
+ const path_1 = require("path");
8
+ const assets_1 = require("../assets");
9
+ const product_1 = require("../product");
10
+ const resolve_product_1 = require("../resolve-product");
11
+ const baseline_1 = require("./baseline");
12
+ const sketch_1 = require("./sketch");
13
+ const CANDIDATE_COMMITS = 60;
14
+ const git = (cwd, args) => (0, child_process_1.execFileSync)('git', args, { cwd, maxBuffer: 1 << 28, stdio: ['pipe', 'pipe', 'pipe'] });
15
+ const posix = (path) => path.split(path_1.sep).join('/');
16
+ const readOrNull = (path) => ((0, fs_1.existsSync)(path) ? (0, fs_1.readFileSync)(path) : null);
17
+ const sameBytes = (a, b) => (a === null || b === null ? a === b : a.equals(b));
18
+ const heldPathOf = (options) => {
19
+ var _a;
20
+ const { name, heldDir, sharedDirs } = options;
21
+ const own = (0, path_1.resolve)(heldDir, name);
22
+ const prefix = `${sketch_1.SHARED_FOLDER}${path_1.sep}`;
23
+ if (!name.startsWith(prefix) || (0, fs_1.existsSync)(own))
24
+ return own;
25
+ const lifted = sharedDirs.map((dir) => (0, path_1.resolve)(dir, name.slice(prefix.length)));
26
+ return (_a = lifted.find((path) => (0, fs_1.existsSync)(path))) !== null && _a !== void 0 ? _a : own;
27
+ };
28
+ const asHeldOf = (options) => (content) => content && sketch_1.SOURCE_FILE.test(options.name)
29
+ ? Buffer.from((0, sketch_1.withSharedImports)({
30
+ source: content.toString('utf8'),
31
+ file: (0, path_1.resolve)(options.heldDir, options.name),
32
+ partDir: options.heldDir,
33
+ }))
34
+ : content;
35
+ /**
36
+ * The folder of `part` as the commit whose state hashes to `hash` held it, extracted below `scratch`, or `null` when
37
+ * none of the last commits that touched the product does.
38
+ */
39
+ const oldBaseDirOf = (options) => {
40
+ const { top, product, partDir, hash, scratch } = options;
41
+ const inRepo = (dir) => !(0, path_1.relative)(top, dir).startsWith('..');
42
+ const owners = [product.dir, ...(product.base && inRepo(product.base.dir) ? [product.base.dir] : [])];
43
+ const paths = [
44
+ posix((0, path_1.relative)(top, partDir)),
45
+ ...owners.flatMap((dir) => ['shared', 'assets'].map((folder) => posix((0, path_1.relative)(top, (0, path_1.resolve)(dir, folder))))),
46
+ ];
47
+ const commits = git(top, ['log', `-n${CANDIDATE_COMMITS}`, '--format=%H', '--', ...paths])
48
+ .toString()
49
+ .split('\n')
50
+ .filter(Boolean);
51
+ for (const commit of commits) {
52
+ const files = git(top, ['ls-tree', '-r', '--name-only', commit, '--', ...paths])
53
+ .toString()
54
+ .split('\n')
55
+ .filter(Boolean);
56
+ if (files.length === 0)
57
+ continue;
58
+ const root = (0, path_1.resolve)(scratch, commit);
59
+ if (!(0, fs_1.existsSync)(root)) {
60
+ (0, fs_1.mkdirSync)(root, { recursive: true });
61
+ (0, child_process_1.execFileSync)('tar', ['-x', '-C', root], { input: git(top, ['archive', '--format=tar', commit, '--', ...files]) });
62
+ }
63
+ const moved = (dir) => (inRepo(dir) ? (0, path_1.resolve)(root, (0, path_1.relative)(top, dir)) : dir);
64
+ const atCommit = {
65
+ dir: moved(product.dir),
66
+ config: product.config,
67
+ base: product.base ? { dir: moved(product.base.dir), config: product.base.config } : null,
68
+ };
69
+ const oldDir = moved(partDir);
70
+ if ((0, fs_1.existsSync)(oldDir) && (0, baseline_1.partHashOf)({ product: atCommit, dir: oldDir }) === hash)
71
+ return oldDir;
72
+ }
73
+ return null;
74
+ };
75
+ const mergedOf = (options) => {
76
+ const { scratch, ours, base, theirs } = options;
77
+ const dir = (0, fs_1.mkdtempSync)((0, path_1.resolve)(scratch, 'merge-'));
78
+ const oursFile = (0, path_1.resolve)(dir, 'variant');
79
+ const baseFile = (0, path_1.resolve)(dir, 'old-base');
80
+ const theirsFile = (0, path_1.resolve)(dir, 'new-base');
81
+ (0, fs_1.writeFileSync)(oursFile, ours);
82
+ (0, fs_1.writeFileSync)(baseFile, base);
83
+ (0, fs_1.writeFileSync)(theirsFile, theirs);
84
+ const result = (0, child_process_1.spawnSync)('git', ['merge-file', '-p', oursFile, baseFile, theirsFile], { maxBuffer: 1 << 28 });
85
+ return result.status === 0 ? result.stdout : null;
86
+ };
87
+ /**
88
+ * Ports the changes the product made to each part the sketch's variants replace since its baseline into those
89
+ * variants: a 3-way merge per file of the variant, the part as the baseline held it (found in git history by its
90
+ * hash) and the part now. Writes nothing when any file conflicts or a baseline state is not in history, and then
91
+ * answers with the conflicts; with `keepConflicts` it keeps the variant's version of those and ports the rest.
92
+ */
93
+ const portBaseChanges = (options) => {
94
+ var _a;
95
+ const { target, product, sketch, keepConflicts } = options;
96
+ const baseline = (_a = sketch.baseline) !== null && _a !== void 0 ? _a : {};
97
+ let top = null;
98
+ const scratch = (0, fs_1.mkdtempSync)((0, path_1.resolve)((0, os_1.tmpdir)(), 'et-sketch-rebase-'));
99
+ const writes = new Map();
100
+ const ported = [];
101
+ const conflicts = [];
102
+ try {
103
+ for (const variant of sketch.variants) {
104
+ const variantDir = (0, sketch_1.variantDirOf)(sketch, variant);
105
+ if ((0, product_1.fixturesOf)(variantDir) !== null &&
106
+ (0, baseline_1.conflictsOf)({ product, baseline, parts: [], fixtures: true }).includes(baseline_1.FIXTURES_KEY))
107
+ conflicts.push(`${variant}: ${baseline_1.FIXTURES_KEY} changed in the product, port it by hand`);
108
+ for (const held of (0, product_1.partFilesOf)(variantDir).parts) {
109
+ const part = (0, resolve_product_1.partKeyOf)(held);
110
+ const now = product.parts.find((candidate) => (0, resolve_product_1.partKeyOf)(candidate) === part);
111
+ if (!now || baseline[part] === undefined)
112
+ continue;
113
+ const partDir = (0, path_1.dirname)(now.file);
114
+ if ((0, baseline_1.partHashOf)({ product, dir: partDir }) === baseline[part])
115
+ continue;
116
+ top !== null && top !== void 0 ? top : (top = git(target, ['rev-parse', '--show-toplevel']).toString().trim());
117
+ const oldDir = oldBaseDirOf({ top, product, partDir, hash: baseline[part], scratch });
118
+ if (oldDir === null) {
119
+ conflicts.push(`${variant}: ${part} - no commit holds the state the baseline recorded, port it by hand`);
120
+ continue;
121
+ }
122
+ const heldDir = (0, path_1.dirname)(held.file);
123
+ const names = [
124
+ ...new Set([oldDir, partDir].flatMap((dir) => (0, assets_1.filesBelow)(dir).map((file) => (0, path_1.relative)(dir, file)))),
125
+ ].sort();
126
+ const sharedDirs = [(0, sketch_1.variantSharedDirOf)(sketch, variant), (0, sketch_1.sharedDirOf)(sketch)];
127
+ for (const name of names) {
128
+ const asHeld = asHeldOf({ name, heldDir });
129
+ const old = asHeld(readOrNull((0, path_1.resolve)(oldDir, name)));
130
+ const fresh = asHeld(readOrNull((0, path_1.resolve)(partDir, name)));
131
+ const path = heldPathOf({ name, heldDir, sharedDirs });
132
+ const mine = readOrNull(path);
133
+ const file = `${part}/${posix(name)}`;
134
+ if (sameBytes(old, fresh) || sameBytes(mine, fresh))
135
+ continue;
136
+ if (sameBytes(mine, old)) {
137
+ writes.set(path, { path, content: fresh });
138
+ ported.push({ variant, part, file, how: fresh === null ? 'deleted' : 'taken' });
139
+ continue;
140
+ }
141
+ const merged = mine && old && fresh ? mergedOf({ scratch, ours: mine, base: old, theirs: fresh }) : null;
142
+ if (merged === null) {
143
+ conflicts.push(`${variant}: ${file} - the variant and the product both changed it`);
144
+ continue;
145
+ }
146
+ if (merged.equals(mine))
147
+ continue;
148
+ writes.set(path, { path, content: merged });
149
+ ported.push({ variant, part, file, how: 'merged' });
150
+ }
151
+ }
152
+ }
153
+ if (conflicts.length > 0 && !keepConflicts)
154
+ return { ported: [], conflicts };
155
+ for (const { path, content } of writes.values()) {
156
+ if (content === null)
157
+ (0, fs_1.rmSync)(path, { force: true });
158
+ else {
159
+ (0, fs_1.mkdirSync)((0, path_1.dirname)(path), { recursive: true });
160
+ (0, fs_1.writeFileSync)(path, content);
161
+ }
162
+ }
163
+ return { ported, conflicts };
164
+ }
165
+ finally {
166
+ (0, fs_1.rmSync)(scratch, { recursive: true, force: true });
167
+ }
168
+ };
169
+ exports.portBaseChanges = portBaseChanges;
170
+ //# sourceMappingURL=rebase-port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rebase-port.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/rebase-port.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { ResolvedProduct } from '../resolve-product';
2
+ import { Sketch } from './sketch';
3
+ import { SketchPartLoader } from './unchanged-states';
4
+ export declare const SAMPLE_MARK_DRIFT = "SAMPLE-MARK-DRIFT";
5
+ type Sample = {
6
+ part: string;
7
+ id: string;
8
+ marks: Record<string, unknown>;
9
+ };
10
+ type Drawn = {
11
+ state: string;
12
+ sample: Sample;
13
+ };
14
+ export type SampleMarkDrift = {
15
+ part: string;
16
+ id: string;
17
+ first: Drawn;
18
+ other: Drawn;
19
+ };
20
+ /**
21
+ * Each embedded sample whose marks differ between two states of the part `definition`: renders every state and
22
+ * compares the marks of the instances that carry the same part and `id`, see `PartSample`. A state that fails to
23
+ * render is skipped.
24
+ */
25
+ export declare const sampleMarkDriftsOf: (definition: unknown) => Promise<SampleMarkDrift[]>;
26
+ export declare const sampleMarkDriftLineOf: (drift: SampleMarkDrift) => string;
27
+ /** One `SAMPLE-MARK-DRIFT` line per sample whose marks differ between two states of a target of a live variant. */
28
+ export declare const sampleMarkDriftLinesOf: (options: {
29
+ product: ResolvedProduct;
30
+ sketch: Sketch;
31
+ load: SketchPartLoader;
32
+ }) => Promise<string[]>;
33
+ export {};
@@ -0,0 +1,88 @@
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.sampleMarkDriftLinesOf = exports.sampleMarkDriftLineOf = exports.sampleMarkDriftsOf = exports.SAMPLE_MARK_DRIFT = void 0;
13
+ const resolve_product_1 = require("../resolve-product");
14
+ const overlay_1 = require("./overlay");
15
+ const sketch_1 = require("./sketch");
16
+ exports.SAMPLE_MARK_DRIFT = 'SAMPLE-MARK-DRIFT';
17
+ const SAMPLES = Symbol.for('@ethlete/cli/design/samples');
18
+ const isRecord = (value) => typeof value === 'object' && value !== null;
19
+ const samplesOf = (render, props) => __awaiter(void 0, void 0, void 0, function* () {
20
+ const samples = [];
21
+ const scope = globalThis;
22
+ scope[SAMPLES] = (sample) => samples.push(sample);
23
+ try {
24
+ yield render(props);
25
+ }
26
+ finally {
27
+ delete scope[SAMPLES];
28
+ }
29
+ return samples;
30
+ });
31
+ const marksDifferOf = (first, other) => [...new Set([...Object.keys(first.marks), ...Object.keys(other.marks)])].filter((mark) => { var _a, _b; return JSON.stringify((_a = first.marks[mark]) !== null && _a !== void 0 ? _a : null) !== JSON.stringify((_b = other.marks[mark]) !== null && _b !== void 0 ? _b : null); });
32
+ /**
33
+ * Each embedded sample whose marks differ between two states of the part `definition`: renders every state and
34
+ * compares the marks of the instances that carry the same part and `id`, see `PartSample`. A state that fails to
35
+ * render is skipped.
36
+ */
37
+ const sampleMarkDriftsOf = (definition) => __awaiter(void 0, void 0, void 0, function* () {
38
+ if (!isRecord(definition) || typeof definition['render'] !== 'function' || !isRecord(definition['states']))
39
+ return [];
40
+ const render = definition['render'];
41
+ const seen = new Map();
42
+ const drifts = new Map();
43
+ for (const [state, props] of Object.entries(definition['states'])) {
44
+ const samples = yield samplesOf(render, props).catch(() => []);
45
+ for (const sample of samples) {
46
+ const key = `${sample.part}\n${sample.id}`;
47
+ const first = seen.get(key);
48
+ if (!first)
49
+ seen.set(key, { state, sample });
50
+ else if (!drifts.has(key) && marksDifferOf(first.sample, sample).length > 0)
51
+ drifts.set(key, { part: sample.part, id: sample.id, first, other: { state, sample } });
52
+ }
53
+ }
54
+ return [...drifts.values()];
55
+ });
56
+ exports.sampleMarkDriftsOf = sampleMarkDriftsOf;
57
+ const marksOf = (sample, marks) => marks.map((mark) => { var _a; return `${mark}=${JSON.stringify((_a = sample.marks[mark]) !== null && _a !== void 0 ? _a : null)}`; }).join(' ');
58
+ const sampleMarkDriftLineOf = (drift) => {
59
+ const marks = marksDifferOf(drift.first.sample, drift.other.sample);
60
+ return (`${drift.part} "${drift.id}" draws ${marksOf(drift.first.sample, marks)} in ${drift.first.state} but ` +
61
+ `${marksOf(drift.other.sample, marks)} in ${drift.other.state} - give it the same marks in every state, or ` +
62
+ `another id where the state shows another sample`);
63
+ };
64
+ exports.sampleMarkDriftLineOf = sampleMarkDriftLineOf;
65
+ /** One `SAMPLE-MARK-DRIFT` line per sample whose marks differ between two states of a target of a live variant. */
66
+ const sampleMarkDriftLinesOf = (options) => __awaiter(void 0, void 0, void 0, function* () {
67
+ var _a;
68
+ const { product, sketch, load } = options;
69
+ const lines = [];
70
+ for (const variant of sketch.variants.filter((entry) => !(0, sketch_1.rejectionOf)(sketch, entry))) {
71
+ const parts = (0, overlay_1.overlaySketch)({ product, sketch, variant }).parts;
72
+ for (const target of sketch.targets) {
73
+ const file = (_a = parts.find((entry) => (0, resolve_product_1.partKeyOf)(entry) === target)) === null || _a === void 0 ? void 0 : _a.file;
74
+ if (!file)
75
+ continue;
76
+ const loaded = (yield load({
77
+ file,
78
+ product: product.name,
79
+ sketch: { target: sketch.target, variant },
80
+ }).catch(() => null));
81
+ for (const drift of yield (0, exports.sampleMarkDriftsOf)(loaded === null || loaded === void 0 ? void 0 : loaded.default))
82
+ lines.push(`${exports.SAMPLE_MARK_DRIFT} ${sketch.target} ${variant} ${target}: ${(0, exports.sampleMarkDriftLineOf)(drift)}`);
83
+ }
84
+ }
85
+ return lines;
86
+ });
87
+ exports.sampleMarkDriftLinesOf = sampleMarkDriftLinesOf;
88
+ //# sourceMappingURL=sample-mark-drift.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sample-mark-drift.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/sample-mark-drift.ts"],"names":[],"mappings":"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"}