@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.
- package/CHANGELOG.md +153 -0
- package/build-info.json +1 -1
- package/design/arrow-anchor.ts +55 -0
- package/design/define-call.ts +3 -0
- package/design/define-part.ts +28 -1
- package/design/web/frame.ts +28 -0
- package/package.json +1 -1
- package/src/lib/api/compose.js +3 -2
- package/src/lib/api/compose.js.map +1 -1
- package/src/lib/api/git.js +2 -1
- package/src/lib/api/git.js.map +1 -1
- package/src/lib/api/setup.js +2 -2
- package/src/lib/api/setup.js.map +1 -1
- package/src/lib/design/asset-shot.js +2 -2
- package/src/lib/design/asset-shot.js.map +1 -1
- package/src/lib/design/blank-png.d.ts +2 -0
- package/src/lib/design/blank-png.js +28 -0
- package/src/lib/design/blank-png.js.map +1 -0
- package/src/lib/design/cache-entry.d.ts +8 -0
- package/src/lib/design/cache-entry.js +30 -0
- package/src/lib/design/cache-entry.js.map +1 -0
- package/src/lib/design/calls-tsconfig.js +20 -13
- package/src/lib/design/calls-tsconfig.js.map +1 -1
- package/src/lib/design/calls.js +3 -3
- package/src/lib/design/calls.js.map +1 -1
- package/src/lib/design/changed-parts.d.ts +1 -1
- package/src/lib/design/check.d.ts +2 -0
- package/src/lib/design/check.js +91 -24
- package/src/lib/design/check.js.map +1 -1
- package/src/lib/design/code-hash.d.ts +30 -0
- package/src/lib/design/code-hash.js +118 -0
- package/src/lib/design/code-hash.js.map +1 -0
- package/src/lib/design/commit-hunks.d.ts +2 -2
- package/src/lib/design/commit-hunks.js +2 -2
- package/src/lib/design/design-command.js +131 -36
- package/src/lib/design/design-command.js.map +1 -1
- package/src/lib/design/{paths.d.ts → design-config.d.ts} +6 -28
- package/src/lib/design/design-config.js +35 -0
- package/src/lib/design/design-config.js.map +1 -0
- package/src/lib/design/design-lint.d.ts +68 -0
- package/src/lib/design/design-lint.js +183 -0
- package/src/lib/design/design-lint.js.map +1 -0
- package/src/lib/design/draw-ledger.d.ts +6 -0
- package/src/lib/design/draw-ledger.js +10 -0
- package/src/lib/design/draw-ledger.js.map +1 -1
- package/src/lib/design/force-interactions.d.ts +2 -0
- package/src/lib/design/force-interactions.js +4 -2
- package/src/lib/design/force-interactions.js.map +1 -1
- package/src/lib/design/generated-stylesheets.d.ts +1 -1
- package/src/lib/design/generated-stylesheets.js +2 -2
- package/src/lib/design/generated-stylesheets.js.map +1 -1
- package/src/lib/design/git-top.d.ts +5 -0
- package/src/lib/design/git-top.js +16 -0
- package/src/lib/design/git-top.js.map +1 -0
- package/src/lib/design/hooks-problem.d.ts +2 -0
- package/src/lib/design/hooks-problem.js +23 -0
- package/src/lib/design/hooks-problem.js.map +1 -0
- package/src/lib/design/index.d.ts +4 -1
- package/src/lib/design/index.js +4 -1
- package/src/lib/design/index.js.map +1 -1
- package/src/lib/design/is-running.d.ts +1 -0
- package/src/lib/design/is-running.js +14 -0
- package/src/lib/design/is-running.js.map +1 -0
- package/src/lib/design/legacy.js +3 -3
- package/src/lib/design/legacy.js.map +1 -1
- package/src/lib/design/mcp-command.js +5 -12
- package/src/lib/design/mcp-command.js.map +1 -1
- package/src/lib/design/merge-compare.js +3 -3
- package/src/lib/design/merge-compare.js.map +1 -1
- package/src/lib/design/motion-command.js +3 -3
- package/src/lib/design/motion-command.js.map +1 -1
- package/src/lib/design/new-call.js +3 -3
- package/src/lib/design/new-call.js.map +1 -1
- package/src/lib/design/old-shot-folders.d.ts +2 -0
- package/src/lib/design/old-shot-folders.js +26 -0
- package/src/lib/design/old-shot-folders.js.map +1 -0
- package/src/lib/design/package-root.d.ts +21 -0
- package/src/lib/design/package-root.js +79 -0
- package/src/lib/design/package-root.js.map +1 -0
- package/src/lib/design/parent-watch.d.ts +7 -0
- package/src/lib/design/parent-watch.js +23 -0
- package/src/lib/design/parent-watch.js.map +1 -0
- package/src/lib/design/part-marks.js +2 -2
- package/src/lib/design/part-marks.js.map +1 -1
- package/src/lib/design/phase-timing.d.ts +5 -0
- package/src/lib/design/phase-timing.js +27 -0
- package/src/lib/design/phase-timing.js.map +1 -0
- package/src/lib/design/physical-cores.d.ts +12 -0
- package/src/lib/design/physical-cores.js +43 -0
- package/src/lib/design/physical-cores.js.map +1 -0
- package/src/lib/design/product-command.js +4 -4
- package/src/lib/design/product-command.js.map +1 -1
- package/src/lib/design/push-status.d.ts +30 -0
- package/src/lib/design/push-status.js +122 -0
- package/src/lib/design/push-status.js.map +1 -0
- package/src/lib/design/ready-shots.d.ts +18 -35
- package/src/lib/design/ready-shots.js +46 -111
- package/src/lib/design/ready-shots.js.map +1 -1
- package/src/lib/design/render-packages.d.ts +3 -1
- package/src/lib/design/render-packages.js +6 -2
- package/src/lib/design/render-packages.js.map +1 -1
- package/src/lib/design/render-worker.js +23 -3
- package/src/lib/design/render-worker.js.map +1 -1
- package/src/lib/design/render.d.ts +24 -3
- package/src/lib/design/render.js +23 -9
- package/src/lib/design/render.js.map +1 -1
- package/src/lib/design/resident/client.d.ts +52 -0
- package/src/lib/design/resident/client.js +263 -0
- package/src/lib/design/resident/client.js.map +1 -0
- package/src/lib/design/resident/discovery.d.ts +21 -0
- package/src/lib/design/resident/discovery.js +63 -0
- package/src/lib/design/resident/discovery.js.map +1 -0
- package/src/lib/design/resident/resident-process.d.ts +19 -0
- package/src/lib/design/resident/resident-process.js +189 -0
- package/src/lib/design/resident/resident-process.js.map +1 -0
- package/src/lib/design/resident/server.d.ts +52 -0
- package/src/lib/design/resident/server.js +212 -0
- package/src/lib/design/resident/server.js.map +1 -0
- package/src/lib/design/run-abort.d.ts +9 -0
- package/src/lib/design/run-abort.js +45 -0
- package/src/lib/design/run-abort.js.map +1 -0
- package/src/lib/design/run-deadline.d.ts +19 -0
- package/src/lib/design/run-deadline.js +104 -0
- package/src/lib/design/run-deadline.js.map +1 -0
- package/src/lib/design/run-yield.d.ts +8 -0
- package/src/lib/design/run-yield.js +43 -0
- package/src/lib/design/run-yield.js.map +1 -0
- package/src/lib/design/serve-state.d.ts +15 -0
- package/src/lib/design/serve-state.js +56 -0
- package/src/lib/design/serve-state.js.map +1 -0
- package/src/lib/design/serve.d.ts +20 -2
- package/src/lib/design/serve.js +147 -43
- package/src/lib/design/serve.js.map +1 -1
- package/src/lib/design/server-identity.d.ts +5 -1
- package/src/lib/design/server-identity.js +4 -1
- package/src/lib/design/server-identity.js.map +1 -1
- package/src/lib/design/shot-board.d.ts +26 -0
- package/src/lib/design/shot-board.js +80 -0
- package/src/lib/design/shot-board.js.map +1 -0
- package/src/lib/design/shot-command.d.ts +1 -1
- package/src/lib/design/shot-command.js +12 -5
- package/src/lib/design/shot-command.js.map +1 -1
- package/src/lib/design/shot-store.d.ts +29 -3
- package/src/lib/design/shot-store.js +206 -36
- package/src/lib/design/shot-store.js.map +1 -1
- package/src/lib/design/shot.d.ts +12 -4
- package/src/lib/design/shot.js +98 -14
- package/src/lib/design/shot.js.map +1 -1
- package/src/lib/design/sketch-at.js +2 -1
- package/src/lib/design/sketch-at.js.map +1 -1
- package/src/lib/design/sketch-command.d.ts +13 -0
- package/src/lib/design/sketch-command.js +346 -73
- package/src/lib/design/sketch-command.js.map +1 -1
- package/src/lib/design/ssr-shims.d.ts +1 -0
- package/src/lib/design/ssr-shims.js +3 -3
- package/src/lib/design/ssr-shims.js.map +1 -1
- package/src/lib/design/stamp.d.ts +5 -0
- package/src/lib/design/stamp.js +6 -5
- package/src/lib/design/stamp.js.map +1 -1
- package/src/lib/design/status.d.ts +1 -1
- package/src/lib/design/status.js +15 -4
- package/src/lib/design/status.js.map +1 -1
- package/src/lib/design/studio-api.d.ts +7 -15
- package/src/lib/design/studio-api.js +39 -140
- package/src/lib/design/studio-api.js.map +1 -1
- package/src/lib/design/system/accepted-pictures.d.ts +15 -29
- package/src/lib/design/system/accepted-pictures.js +156 -134
- package/src/lib/design/system/accepted-pictures.js.map +1 -1
- package/src/lib/design/system/action-cache.d.ts +45 -0
- package/src/lib/design/system/action-cache.js +72 -0
- package/src/lib/design/system/action-cache.js.map +1 -0
- package/src/lib/design/system/action-lost.d.ts +8 -6
- package/src/lib/design/system/action-lost.js +13 -17
- package/src/lib/design/system/action-lost.js.map +1 -1
- package/src/lib/design/system/action-press.d.ts +7 -1
- package/src/lib/design/system/action-press.js +16 -4
- package/src/lib/design/system/action-press.js.map +1 -1
- package/src/lib/design/system/actions-command.d.ts +12 -5
- package/src/lib/design/system/actions-command.js +187 -66
- package/src/lib/design/system/actions-command.js.map +1 -1
- package/src/lib/design/system/actions.d.ts +27 -4
- package/src/lib/design/system/actions.js +59 -21
- package/src/lib/design/system/actions.js.map +1 -1
- package/src/lib/design/system/anti-alias.d.ts +2 -0
- package/src/lib/design/system/anti-alias.js +11 -0
- package/src/lib/design/system/anti-alias.js.map +1 -0
- package/src/lib/design/system/app-files.js +19 -3
- package/src/lib/design/system/app-files.js.map +1 -1
- package/src/lib/design/system/arrow-anchor.d.ts +9 -0
- package/src/lib/design/system/arrow-anchor.js +40 -0
- package/src/lib/design/system/arrow-anchor.js.map +1 -0
- package/src/lib/design/system/base-issues.d.ts +28 -0
- package/src/lib/design/system/base-issues.js +80 -0
- package/src/lib/design/system/base-issues.js.map +1 -0
- package/src/lib/design/system/base.d.ts +1 -1
- package/src/lib/design/system/base.js +2 -2
- package/src/lib/design/system/base.js.map +1 -1
- package/src/lib/design/system/baseline-history.d.ts +13 -0
- package/src/lib/design/system/baseline-history.js +40 -0
- package/src/lib/design/system/baseline-history.js.map +1 -0
- package/src/lib/design/system/bespoke-controls.d.ts +4 -1
- package/src/lib/design/system/bespoke-controls.js +72 -70
- package/src/lib/design/system/bespoke-controls.js.map +1 -1
- package/src/lib/design/system/build-ready-contract.d.ts +7 -1
- package/src/lib/design/system/build-ready-contract.js +7 -1
- package/src/lib/design/system/build-ready-contract.js.map +1 -1
- package/src/lib/design/system/build-running.d.ts +13 -0
- package/src/lib/design/system/build-running.js +48 -0
- package/src/lib/design/system/build-running.js.map +1 -0
- package/src/lib/design/system/check-record.d.ts +18 -0
- package/src/lib/design/system/check-record.js +47 -0
- package/src/lib/design/system/check-record.js.map +1 -0
- package/src/lib/design/system/check-rules.d.ts +1 -1
- package/src/lib/design/system/check-rules.js +19 -1
- package/src/lib/design/system/check-rules.js.map +1 -1
- package/src/lib/design/system/check-system.d.ts +25 -4
- package/src/lib/design/system/check-system.js +289 -121
- package/src/lib/design/system/check-system.js.map +1 -1
- package/src/lib/design/system/comments/inbox.d.ts +1 -1
- package/src/lib/design/system/compare-cache.d.ts +20 -0
- package/src/lib/design/system/compare-cache.js +92 -0
- package/src/lib/design/system/compare-cache.js.map +1 -0
- package/src/lib/design/system/compare-command.d.ts +82 -51
- package/src/lib/design/system/compare-command.js +362 -340
- package/src/lib/design/system/compare-command.js.map +1 -1
- package/src/lib/design/system/complete.d.ts +31 -1
- package/src/lib/design/system/complete.js +141 -27
- package/src/lib/design/system/complete.js.map +1 -1
- package/src/lib/design/system/decision-refs.d.ts +5 -0
- package/src/lib/design/system/decision-refs.js +21 -0
- package/src/lib/design/system/decision-refs.js.map +1 -0
- package/src/lib/design/system/design-hash.d.ts +22 -1
- package/src/lib/design/system/design-hash.js +63 -4
- package/src/lib/design/system/design-hash.js.map +1 -1
- package/src/lib/design/system/dom-command.d.ts +1 -1
- package/src/lib/design/system/dom-command.js +8 -5
- package/src/lib/design/system/dom-command.js.map +1 -1
- package/src/lib/design/system/drawn-open-points.d.ts +1 -1
- package/src/lib/design/system/dropped-props.d.ts +19 -5
- package/src/lib/design/system/dropped-props.js +133 -21
- package/src/lib/design/system/dropped-props.js.map +1 -1
- package/src/lib/design/system/grid-report.d.ts +5 -0
- package/src/lib/design/system/grid-report.js +78 -0
- package/src/lib/design/system/grid-report.js.map +1 -0
- package/src/lib/design/system/harness-build-cache.d.ts +17 -3
- package/src/lib/design/system/harness-build-cache.js +23 -10
- package/src/lib/design/system/harness-build-cache.js.map +1 -1
- package/src/lib/design/system/harness-inputs.d.ts +17 -0
- package/src/lib/design/system/harness-inputs.js +160 -0
- package/src/lib/design/system/harness-inputs.js.map +1 -0
- package/src/lib/design/system/harness-map.d.ts +1 -1
- package/src/lib/design/system/harness-server.d.ts +12 -1
- package/src/lib/design/system/harness-server.js +29 -19
- package/src/lib/design/system/harness-server.js.map +1 -1
- package/src/lib/design/system/harness-shot.d.ts +78 -0
- package/src/lib/design/system/harness-shot.js +349 -0
- package/src/lib/design/system/harness-shot.js.map +1 -0
- package/src/lib/design/system/harness-watch.d.ts +79 -0
- package/src/lib/design/system/harness-watch.js +334 -0
- package/src/lib/design/system/harness-watch.js.map +1 -0
- package/src/lib/design/system/implementation-baseline.d.ts +20 -0
- package/src/lib/design/system/implementation-baseline.js +44 -0
- package/src/lib/design/system/implementation-baseline.js.map +1 -0
- package/src/lib/design/system/leftover-gate-files.d.ts +2 -0
- package/src/lib/design/system/leftover-gate-files.js +15 -0
- package/src/lib/design/system/leftover-gate-files.js.map +1 -0
- package/src/lib/design/system/lib-build-lock.d.ts +18 -0
- package/src/lib/design/system/lib-build-lock.js +111 -0
- package/src/lib/design/system/lib-build-lock.js.map +1 -0
- package/src/lib/design/system/link-free.d.ts +12 -0
- package/src/lib/design/system/link-free.js +125 -0
- package/src/lib/design/system/link-free.js.map +1 -0
- package/src/lib/design/system/list-system.d.ts +4 -8
- package/src/lib/design/system/list-system.js +8 -78
- package/src/lib/design/system/list-system.js.map +1 -1
- package/src/lib/design/system/live-actions.d.ts +1 -1
- package/src/lib/design/system/live-actions.js +17 -8
- package/src/lib/design/system/live-actions.js.map +1 -1
- package/src/lib/design/system/live-compare.js +1 -1
- package/src/lib/design/system/live-compare.js.map +1 -1
- package/src/lib/design/system/live-uncovered.d.ts +7 -2
- package/src/lib/design/system/live-uncovered.js +44 -9
- package/src/lib/design/system/live-uncovered.js.map +1 -1
- package/src/lib/design/system/no-verdict.d.ts +13 -0
- package/src/lib/design/system/no-verdict.js +17 -0
- package/src/lib/design/system/no-verdict.js.map +1 -0
- package/src/lib/design/system/off-centre.d.ts +11 -0
- package/src/lib/design/system/off-centre.js +74 -0
- package/src/lib/design/system/off-centre.js.map +1 -0
- package/src/lib/design/system/open-points-cache.d.ts +11 -0
- package/src/lib/design/system/open-points-cache.js +27 -0
- package/src/lib/design/system/open-points-cache.js.map +1 -0
- package/src/lib/design/system/open-points-runner.d.ts +43 -0
- package/src/lib/design/system/open-points-runner.js +119 -0
- package/src/lib/design/system/open-points-runner.js.map +1 -0
- package/src/lib/design/system/open-points-worker.d.ts +1 -0
- package/src/lib/design/system/open-points-worker.js +28 -0
- package/src/lib/design/system/open-points-worker.js.map +1 -0
- package/src/lib/design/system/open-points.js +1 -1
- package/src/lib/design/system/open-points.js.map +1 -1
- package/src/lib/design/system/part-build-ready.d.ts +13 -7
- package/src/lib/design/system/part-build-ready.js +43 -15
- package/src/lib/design/system/part-build-ready.js.map +1 -1
- package/src/lib/design/system/part-compare.d.ts +18 -2
- package/src/lib/design/system/part-compare.js +147 -42
- package/src/lib/design/system/part-compare.js.map +1 -1
- package/src/lib/design/system/part-picture-cache.d.ts +23 -0
- package/src/lib/design/system/part-picture-cache.js +68 -0
- package/src/lib/design/system/part-picture-cache.js.map +1 -0
- package/src/lib/design/system/part-ready.d.ts +33 -7
- package/src/lib/design/system/part-ready.js +55 -17
- package/src/lib/design/system/part-ready.js.map +1 -1
- package/src/lib/design/system/part-task.d.ts +20 -0
- package/src/lib/design/system/part-task.js +53 -7
- package/src/lib/design/system/part-task.js.map +1 -1
- package/src/lib/design/system/pixel-cache.d.ts +16 -0
- package/src/lib/design/system/pixel-cache.js +79 -0
- package/src/lib/design/system/pixel-cache.js.map +1 -0
- package/src/lib/design/system/pointer-focus.d.ts +10 -2
- package/src/lib/design/system/pointer-focus.js +32 -9
- package/src/lib/design/system/pointer-focus.js.map +1 -1
- package/src/lib/design/system/prettier.js +4 -3
- package/src/lib/design/system/prettier.js.map +1 -1
- package/src/lib/design/system/problem.d.ts +6 -0
- package/src/lib/design/system/product.js +2 -2
- package/src/lib/design/system/product.js.map +1 -1
- package/src/lib/design/system/ready-command.d.ts +1 -1
- package/src/lib/design/system/ready-command.js +24 -4
- package/src/lib/design/system/ready-command.js.map +1 -1
- package/src/lib/design/system/record-settled.d.ts +24 -0
- package/src/lib/design/system/record-settled.js +50 -0
- package/src/lib/design/system/record-settled.js.map +1 -0
- package/src/lib/design/system/render-check.d.ts +18 -1
- package/src/lib/design/system/render-check.js +164 -104
- package/src/lib/design/system/render-check.js.map +1 -1
- package/src/lib/design/system/render-issue-key.d.ts +9 -0
- package/src/lib/design/system/render-issue-key.js +27 -0
- package/src/lib/design/system/render-issue-key.js.map +1 -0
- package/src/lib/design/system/resolve-product.d.ts +4 -1
- package/src/lib/design/system/resolve-product.js +14 -3
- package/src/lib/design/system/resolve-product.js.map +1 -1
- package/src/lib/design/system/rule-baseline.d.ts +53 -0
- package/src/lib/design/system/rule-baseline.js +124 -0
- package/src/lib/design/system/rule-baseline.js.map +1 -0
- package/src/lib/design/system/rule-skips.d.ts +20 -0
- package/src/lib/design/system/rule-skips.js +36 -0
- package/src/lib/design/system/rule-skips.js.map +1 -0
- package/src/lib/design/system/rules/canonical-class.d.ts +4 -0
- package/src/lib/design/system/rules/canonical-class.js +66 -13
- package/src/lib/design/system/rules/canonical-class.js.map +1 -1
- package/src/lib/design/system/rules/capability-place.d.ts +4 -2
- package/src/lib/design/system/rules/capability-place.js +15 -2
- package/src/lib/design/system/rules/capability-place.js.map +1 -1
- package/src/lib/design/system/rules/command-text.d.ts +7 -0
- package/src/lib/design/system/rules/command-text.js +72 -0
- package/src/lib/design/system/rules/command-text.js.map +1 -0
- package/src/lib/design/system/rules/design-coverage.d.ts +30 -0
- package/src/lib/design/system/rules/design-coverage.js +205 -0
- package/src/lib/design/system/rules/design-coverage.js.map +1 -0
- package/src/lib/design/system/rules/glued-interpolation.js +17 -1
- package/src/lib/design/system/rules/glued-interpolation.js.map +1 -1
- package/src/lib/design/system/rules/implements-unrendered.d.ts +13 -0
- package/src/lib/design/system/rules/implements-unrendered.js +63 -0
- package/src/lib/design/system/rules/implements-unrendered.js.map +1 -0
- package/src/lib/design/system/rules/motion.js +6 -0
- package/src/lib/design/system/rules/motion.js.map +1 -1
- package/src/lib/design/system/rules/native-title.js +13 -3
- package/src/lib/design/system/rules/native-title.js.map +1 -1
- package/src/lib/design/system/rules/option-values.d.ts +1 -1
- package/src/lib/design/system/rules/pending-state.d.ts +39 -0
- package/src/lib/design/system/rules/pending-state.js +289 -0
- package/src/lib/design/system/rules/pending-state.js.map +1 -0
- package/src/lib/design/system/rules/sdk-attribute-value.d.ts +10 -0
- package/src/lib/design/system/rules/sdk-attribute-value.js +78 -0
- package/src/lib/design/system/rules/sdk-attribute-value.js.map +1 -0
- package/src/lib/design/system/rules/sdk-private-var.d.ts +9 -0
- package/src/lib/design/system/rules/sdk-private-var.js +54 -0
- package/src/lib/design/system/rules/sdk-private-var.js.map +1 -0
- package/src/lib/design/system/rules/skips.d.ts +4 -0
- package/src/lib/design/system/rules/skips.js +27 -0
- package/src/lib/design/system/rules/skips.js.map +1 -0
- package/src/lib/design/system/rules/stale-replace.js +1 -0
- package/src/lib/design/system/rules/stale-replace.js.map +1 -1
- package/src/lib/design/system/rules/tailwind-classes.d.ts +1 -0
- package/src/lib/design/system/rules/tailwind-classes.js +11 -6
- package/src/lib/design/system/rules/tailwind-classes.js.map +1 -1
- package/src/lib/design/system/rules/token-selectors.js +10 -3
- package/src/lib/design/system/rules/token-selectors.js.map +1 -1
- package/src/lib/design/system/rules/unbound-input-known.d.ts +2 -0
- package/src/lib/design/system/rules/unbound-input-known.js +3 -6
- package/src/lib/design/system/rules/unbound-input-known.js.map +1 -1
- package/src/lib/design/system/rules/unbound-input.d.ts +2 -0
- package/src/lib/design/system/rules/unbound-input.js +12 -6
- package/src/lib/design/system/rules/unbound-input.js.map +1 -1
- package/src/lib/design/system/rules/undefined-class.js +11 -2
- package/src/lib/design/system/rules/undefined-class.js.map +1 -1
- package/src/lib/design/system/rules/utility-css.js +13 -1
- package/src/lib/design/system/rules/utility-css.js.map +1 -1
- package/src/lib/design/system/rules/visible-change.d.ts +1 -2
- package/src/lib/design/system/rules/visible-change.js +3 -3
- package/src/lib/design/system/rules/visible-change.js.map +1 -1
- package/src/lib/design/system/sdk-declarations.d.ts +10 -0
- package/src/lib/design/system/sdk-declarations.js +177 -0
- package/src/lib/design/system/sdk-declarations.js.map +1 -0
- package/src/lib/design/system/sdk-selectors.d.ts +18 -0
- package/src/lib/design/system/sdk-selectors.js +131 -0
- package/src/lib/design/system/sdk-selectors.js.map +1 -0
- package/src/lib/design/system/served-cache.d.ts +99 -0
- package/src/lib/design/system/served-cache.js +202 -0
- package/src/lib/design/system/served-cache.js.map +1 -0
- package/src/lib/design/system/settled-panes.d.ts +8 -3
- package/src/lib/design/system/settled-panes.js +10 -9
- package/src/lib/design/system/settled-panes.js.map +1 -1
- package/src/lib/design/system/sketch/baseline.d.ts +17 -1
- package/src/lib/design/system/sketch/baseline.js +48 -7
- package/src/lib/design/system/sketch/baseline.js.map +1 -1
- package/src/lib/design/system/sketch/check-format.js +3 -9
- package/src/lib/design/system/sketch/check-format.js.map +1 -1
- package/src/lib/design/system/sketch/clean-copy.d.ts +18 -0
- package/src/lib/design/system/sketch/clean-copy.js +104 -0
- package/src/lib/design/system/sketch/clean-copy.js.map +1 -0
- package/src/lib/design/system/sketch/cli-args.d.ts +1 -1
- package/src/lib/design/system/sketch/cli-args.js +2 -2
- package/src/lib/design/system/sketch/cli-args.js.map +1 -1
- package/src/lib/design/system/sketch/covered-diffs.d.ts +40 -0
- package/src/lib/design/system/sketch/covered-diffs.js +106 -0
- package/src/lib/design/system/sketch/covered-diffs.js.map +1 -0
- package/src/lib/design/system/sketch/edit-sketch.d.ts +14 -6
- package/src/lib/design/system/sketch/edit-sketch.js +87 -35
- package/src/lib/design/system/sketch/edit-sketch.js.map +1 -1
- package/src/lib/design/system/sketch/identical-renders.js +20 -14
- package/src/lib/design/system/sketch/identical-renders.js.map +1 -1
- package/src/lib/design/system/sketch/merge-commit.d.ts +20 -0
- package/src/lib/design/system/sketch/merge-commit.js +72 -0
- package/src/lib/design/system/sketch/merge-commit.js.map +1 -0
- package/src/lib/design/system/sketch/merge-runner.d.ts +20 -0
- package/src/lib/design/system/sketch/merge-runner.js +73 -0
- package/src/lib/design/system/sketch/merge-runner.js.map +1 -0
- package/src/lib/design/system/sketch/merge-step.d.ts +14 -2
- package/src/lib/design/system/sketch/merge-step.js +24 -12
- package/src/lib/design/system/sketch/merge-step.js.map +1 -1
- package/src/lib/design/system/sketch/merge-worker.d.ts +1 -0
- package/src/lib/design/system/sketch/merge-worker.js +14 -0
- package/src/lib/design/system/sketch/merge-worker.js.map +1 -0
- package/src/lib/design/system/sketch/merge.d.ts +10 -3
- package/src/lib/design/system/sketch/merge.js +180 -90
- package/src/lib/design/system/sketch/merge.js.map +1 -1
- package/src/lib/design/system/sketch/merged-parts.d.ts +0 -29
- package/src/lib/design/system/sketch/merged-parts.js +8 -56
- package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
- package/src/lib/design/system/sketch/note-language.d.ts +7 -0
- package/src/lib/design/system/sketch/note-language.js +83 -0
- package/src/lib/design/system/sketch/note-language.js.map +1 -0
- package/src/lib/design/system/sketch/part-definition.d.ts +6 -0
- package/src/lib/design/system/sketch/part-definition.js +31 -1
- package/src/lib/design/system/sketch/part-definition.js.map +1 -1
- package/src/lib/design/system/sketch/rebase-port.js +47 -2
- package/src/lib/design/system/sketch/rebase-port.js.map +1 -1
- package/src/lib/design/system/sketch/sketch-check-cache.d.ts +11 -0
- package/src/lib/design/system/sketch/sketch-check-cache.js +22 -0
- package/src/lib/design/system/sketch/sketch-check-cache.js.map +1 -0
- package/src/lib/design/system/sketch/sketch-check-worker.js +6 -1
- package/src/lib/design/system/sketch/sketch-check-worker.js.map +1 -1
- package/src/lib/design/system/sketch/sketch-checker.d.ts +14 -1
- package/src/lib/design/system/sketch/sketch-checker.js +16 -6
- package/src/lib/design/system/sketch/sketch-checker.js.map +1 -1
- package/src/lib/design/system/sketch/sketch.d.ts +37 -6
- package/src/lib/design/system/sketch/sketch.js +101 -13
- package/src/lib/design/system/sketch/sketch.js.map +1 -1
- package/src/lib/design/system/sketch/stale-base.js +1 -1
- package/src/lib/design/system/sketch/stale-base.js.map +1 -1
- package/src/lib/design/system/sketch/unchanged-states.d.ts +7 -3
- package/src/lib/design/system/sketch/unchanged-states.js +25 -12
- package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
- package/src/lib/design/system/sketch/viewed-shots.d.ts +10 -2
- package/src/lib/design/system/sketch/viewed-shots.js +15 -22
- package/src/lib/design/system/sketch/viewed-shots.js.map +1 -1
- package/src/lib/design/system/skip-classes.d.ts +3 -0
- package/src/lib/design/system/skip-classes.js +17 -0
- package/src/lib/design/system/skip-classes.js.map +1 -0
- package/src/lib/design/system/slot-hosts.d.ts +38 -0
- package/src/lib/design/system/slot-hosts.js +93 -0
- package/src/lib/design/system/slot-hosts.js.map +1 -0
- package/src/lib/design/system/slow-checks.d.ts +4 -0
- package/src/lib/design/system/slow-checks.js +77 -24
- package/src/lib/design/system/slow-checks.js.map +1 -1
- package/src/lib/design/system/slow-run.d.ts +15 -5
- package/src/lib/design/system/slow-run.js +143 -84
- package/src/lib/design/system/slow-run.js.map +1 -1
- package/src/lib/design/system/stale-dist.d.ts +37 -1
- package/src/lib/design/system/stale-dist.js +58 -8
- package/src/lib/design/system/stale-dist.js.map +1 -1
- package/src/lib/design/system/stale-parts.d.ts +15 -0
- package/src/lib/design/system/stale-parts.js +67 -5
- package/src/lib/design/system/stale-parts.js.map +1 -1
- package/src/lib/design/system/system-command.js +3 -3
- package/src/lib/design/system/system-command.js.map +1 -1
- package/src/lib/design/system/system-modules.d.ts +4 -4
- package/src/lib/design/system/system-tsconfig.d.ts +9 -2
- package/src/lib/design/system/system-tsconfig.js +73 -13
- package/src/lib/design/system/system-tsconfig.js.map +1 -1
- package/src/lib/design/system/task-command.d.ts +3 -2
- package/src/lib/design/system/task-command.js +111 -73
- package/src/lib/design/system/task-command.js.map +1 -1
- package/src/lib/design/system/touched-parts.d.ts +1 -1
- package/src/lib/design/system/touched-parts.js +4 -5
- package/src/lib/design/system/touched-parts.js.map +1 -1
- package/src/lib/design/system/tracked-reads.d.ts +27 -0
- package/src/lib/design/system/tracked-reads.js +100 -0
- package/src/lib/design/system/tracked-reads.js.map +1 -0
- package/src/lib/design/system/unchanged-rows.d.ts +17 -8
- package/src/lib/design/system/unchanged-rows.js +90 -12
- package/src/lib/design/system/unchanged-rows.js.map +1 -1
- package/src/lib/design/system/uncommitted-decisions.d.ts +0 -2
- package/src/lib/design/system/uncommitted-decisions.js +3 -6
- package/src/lib/design/system/uncommitted-decisions.js.map +1 -1
- package/src/lib/design/system/visible-change-command.d.ts +13 -1
- package/src/lib/design/system/visible-change-command.js +10 -8
- package/src/lib/design/system/visible-change-command.js.map +1 -1
- package/src/lib/design/system/visible-change-parts.d.ts +1 -1
- package/src/lib/design/system/write-origin.d.ts +12 -0
- package/src/lib/design/system/write-origin.js +18 -0
- package/src/lib/design/system/write-origin.js.map +1 -0
- package/src/lib/design/system-use.js +4 -4
- package/src/lib/design/system-use.js.map +1 -1
- package/src/lib/design/thumb.d.ts +19 -3
- package/src/lib/design/thumb.js +71 -9
- package/src/lib/design/thumb.js.map +1 -1
- package/src/lib/design/timings-command.d.ts +22 -0
- package/src/lib/design/timings-command.js +175 -0
- package/src/lib/design/timings-command.js.map +1 -0
- package/src/lib/design/timings.d.ts +117 -0
- package/src/lib/design/timings.js +296 -0
- package/src/lib/design/timings.js.map +1 -0
- package/src/lib/design/typecheck.js +2 -2
- package/src/lib/design/typecheck.js.map +1 -1
- package/src/lib/design/vite-cache.d.ts +11 -0
- package/src/lib/design/vite-cache.js +61 -0
- package/src/lib/design/vite-cache.js.map +1 -0
- package/src/lib/design/warm-draw.d.ts +33 -0
- package/src/lib/design/warm-draw.js +74 -0
- package/src/lib/design/warm-draw.js.map +1 -0
- package/src/lib/design/warm-pages.d.ts +10 -2
- package/src/lib/design/warm-pages.js +6 -2
- package/src/lib/design/warm-pages.js.map +1 -1
- package/src/lib/design/work-root.d.ts +2 -0
- package/src/lib/design/work-root.js +8 -0
- package/src/lib/design/work-root.js.map +1 -0
- package/src/lib/plain-output.d.ts +27 -0
- package/src/lib/plain-output.js +66 -0
- package/src/lib/plain-output.js.map +1 -0
- package/src/lib/release.js +11 -3
- package/src/lib/release.js.map +1 -1
- package/src/lib/update/commits.js +2 -2
- package/src/lib/update/commits.js.map +1 -1
- package/src/lib/update/packages.js +4 -2
- package/src/lib/update/packages.js.map +1 -1
- package/src/lib/update/scan.js +8 -2
- package/src/lib/update/scan.js.map +1 -1
- package/src/lib/design/paths.js +0 -138
- package/src/lib/design/paths.js.map +0 -1
- package/src/lib/design/system/accept-command.d.ts +0 -41
- package/src/lib/design/system/accept-command.js +0 -139
- package/src/lib/design/system/accept-command.js.map +0 -1
- package/src/lib/design/system/go-batch.d.ts +0 -24
- package/src/lib/design/system/go-batch.js +0 -110
- package/src/lib/design/system/go-batch.js.map +0 -1
- package/src/lib/design/system/go-command.d.ts +0 -4
- package/src/lib/design/system/go-command.js +0 -64
- package/src/lib/design/system/go-command.js.map +0 -1
- package/src/lib/design/system/go-guard.d.ts +0 -26
- package/src/lib/design/system/go-guard.js +0 -70
- package/src/lib/design/system/go-guard.js.map +0 -1
- package/src/lib/design/system/go-step.d.ts +0 -13
- package/src/lib/design/system/go-step.js +0 -84
- package/src/lib/design/system/go-step.js.map +0 -1
- package/src/lib/design/system/part-go.d.ts +0 -70
- package/src/lib/design/system/part-go.js +0 -94
- package/src/lib/design/system/part-go.js.map +0 -1
- package/src/lib/design/system/tom-confirm.d.ts +0 -40
- package/src/lib/design/system/tom-confirm.js +0 -55
- package/src/lib/design/system/tom-confirm.js.map +0 -1
|
@@ -20,39 +20,54 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
20
20
|
return t;
|
|
21
21
|
};
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
exports.designSketch = exports.verdictLinesOf = exports.beforeLinesOf = exports.sketchFlagHelpOf = exports.SKETCH_USAGE = void 0;
|
|
23
|
+
exports.designSketch = exports.verdictLinesOf = exports.beforeLinesOf = exports.retriedHeldMerges = exports.sketchFlagHelpOf = exports.SKETCH_USAGE = void 0;
|
|
24
24
|
const unused_closure_1 = require("./system/sketch/unused-closure");
|
|
25
|
+
const crypto_1 = require("crypto");
|
|
25
26
|
const fs_1 = require("fs");
|
|
27
|
+
const os_1 = require("os");
|
|
26
28
|
const path_1 = require("path");
|
|
29
|
+
const phase_timing_1 = require("./phase-timing");
|
|
30
|
+
const write_origin_1 = require("./system/write-origin");
|
|
27
31
|
const assets_1 = require("./system/assets");
|
|
28
32
|
const comment_1 = require("./system/comments/comment");
|
|
29
33
|
const product_1 = require("./system/product");
|
|
30
34
|
const resolve_product_1 = require("./system/resolve-product");
|
|
31
35
|
const check_format_1 = require("./system/sketch/check-format");
|
|
32
36
|
const frame_budget_1 = require("./system/sketch/frame-budget");
|
|
37
|
+
const note_language_1 = require("./system/sketch/note-language");
|
|
33
38
|
const check_sketches_1 = require("./system/sketch/check-sketches");
|
|
34
39
|
const cli_args_1 = require("./system/sketch/cli-args");
|
|
35
40
|
const ready_shots_1 = require("./ready-shots");
|
|
36
41
|
const no_visible_change_1 = require("./system/sketch/no-visible-change");
|
|
42
|
+
const covered_diffs_1 = require("./system/sketch/covered-diffs");
|
|
37
43
|
const viewed_shots_1 = require("./system/sketch/viewed-shots");
|
|
44
|
+
const complete_1 = require("./system/complete");
|
|
38
45
|
const merge_1 = require("./system/sketch/merge");
|
|
39
46
|
const merge_step_1 = require("./system/sketch/merge-step");
|
|
40
47
|
const check_system_1 = require("./system/check-system");
|
|
48
|
+
const stale_base_1 = require("./system/sketch/stale-base");
|
|
41
49
|
const invocation_1 = require("../invocation");
|
|
42
50
|
const merged_parts_1 = require("./system/sketch/merged-parts");
|
|
51
|
+
const no_verdict_1 = require("./system/no-verdict");
|
|
43
52
|
const render_check_1 = require("./system/render-check");
|
|
44
53
|
const merge_preview_1 = require("./system/sketch/merge-preview");
|
|
45
54
|
const open_points_1 = require("./system/open-points");
|
|
46
55
|
const read_open_points_1 = require("./system/read-open-points");
|
|
47
56
|
const overlay_1 = require("./system/sketch/overlay");
|
|
57
|
+
const system_modules_1 = require("./system/system-modules");
|
|
58
|
+
const unchanged_states_1 = require("./system/sketch/unchanged-states");
|
|
48
59
|
const rebase_port_1 = require("./system/sketch/rebase-port");
|
|
49
60
|
const theming_text_1 = require("./system/theming-text");
|
|
61
|
+
const warm_draw_1 = require("./warm-draw");
|
|
50
62
|
const sketch_1 = require("./system/sketch/sketch");
|
|
63
|
+
const plain_output_1 = require("../plain-output");
|
|
64
|
+
const design_lint_1 = require("./design-lint");
|
|
51
65
|
exports.SKETCH_USAGE = [
|
|
52
|
-
'sketch new <layer>/<name> [<layer>/<name>…] --variants a,b --by <model id> [--like <layer>/<name>[:<variant>]] [--name <sketch name>] [--round <title>] [--note <text>] [--variant-note <variant>=<text>]… [--override | --into-base] [--product <name>]',
|
|
66
|
+
'sketch new <layer>/<name> [<layer>/<name>…] --variants a,b --by <model id> [--like <layer>/<name>[:<variant>]] [--name <sketch name>] [--round <title>] [--note <text>] [--variant-note <variant>=<text>]… [--override | --into-base] [--ready] [--product <name>]',
|
|
53
67
|
'sketch variant <layer>/<name> <variant>[,<variant>…] --from <variant> --by <model id> [--round <title> --note <why the running round lost> [--round-note <what the new round shows>]] [--product <name>]',
|
|
54
68
|
'sketch round <layer>/<name> <round> [--title <text>] [--note <text>] [--drops <state,state>] --by <model id> [--product <name>]',
|
|
55
|
-
'sketch
|
|
69
|
+
'sketch covers <layer>/<name> [[<layer>/<name>:]<state>[@<x>,<y>,<w>,<h>]…] --by <model id> [--product <name>]',
|
|
70
|
+
'sketch note <layer>/<name> [<variant>] <text> [--round <round>] --by <model id> [--product <name>]',
|
|
56
71
|
'sketch target add <layer>/<name> <layer>/<name> --by <model id> [--product <name>]',
|
|
57
72
|
'sketch target remove <layer>/<name> <layer>/<name> --by <model id> [--product <name>]',
|
|
58
73
|
'sketch list [--product <name>] [--json]',
|
|
@@ -63,7 +78,7 @@ exports.SKETCH_USAGE = [
|
|
|
63
78
|
'sketch check [<layer>/<name>] [--fix] [--product <name>]',
|
|
64
79
|
'sketch preview <layer>/<name> <variant> [--product <name>] [--json]',
|
|
65
80
|
'sketch rebase <layer>/<name> [--ported] --by <model id> [--product <name>]',
|
|
66
|
-
'sketch merge <layer>/<name> [--note <reason> [--replace-note]] [--variant <key> --allowed-by <plan ref>] --by <model id> [--product <name>]',
|
|
81
|
+
'sketch merge <layer>/<name> [--note <reason> [--replace-note]] [--variant <key> --allowed-by <plan ref>] [--decided-by <name>] --by <model id> [--product <name>]',
|
|
67
82
|
'sketch discard <layer>/<name> --by <model id> [--product <name>]',
|
|
68
83
|
'sketch reject <layer>/<name> --variant <key> [--reason <text>] --by <model id | designer> [--product <name>]',
|
|
69
84
|
'sketch reopen <layer>/<name> --variant <key> [--reason <text>] --by <model id | designer> [--product <name>]',
|
|
@@ -77,14 +92,16 @@ const FLAG_HELP = {
|
|
|
77
92
|
'--like': 'start each variant from another part, or from a variant of the open sketch on it',
|
|
78
93
|
'--override': 'on a base part: merge into a product copy that overrides the base, not into the base; on a product override: sketch that copy',
|
|
79
94
|
'--into-base': 'on a part the product overrides: start from the product copy, merge into the base and remove the copy',
|
|
95
|
+
'--ready': 'on new: run sketch ready (its gates are the check) right after opening the sketch; it fails when either refuses and the sketch stays in progress',
|
|
80
96
|
'--ported': 'on rebase: the conflicting files hold the product change already, ported by hand - keep them and rebase',
|
|
81
|
-
'--round': 'the title of a new round',
|
|
97
|
+
'--round': 'the title of a new round; on note: the key of the round whose note to rewrite',
|
|
82
98
|
'--round-note': 'what the new round shows',
|
|
83
99
|
'--from': 'the variant to copy',
|
|
84
100
|
'--title': 'the new title of the round',
|
|
85
101
|
'--drops': 'the states the round drops on purpose, a comma list',
|
|
86
102
|
'--variant': 'the variant the command is about; on merge, the only live variant of a sketch with no pick',
|
|
87
103
|
'--allowed-by': 'the plan entry that lets the merge go without a pick in Studio; noted in merged.json, needs --variant',
|
|
104
|
+
'--decided-by': 'on merge: who picked the variant, as merged.json records it (default user); a name the designer gave you at this terminal, e.g. tom - not with --allowed-by',
|
|
88
105
|
'--replace-note': "on merge: also write --note over each target part's note",
|
|
89
106
|
'--reason': 'why; on reject of a variant that is rejected already it sets the reason of that rejection; stored with who wrote it',
|
|
90
107
|
'--until': 'what the pending change waits on: an open decision, a helper still to land',
|
|
@@ -116,6 +133,7 @@ const WRITES = new Set([
|
|
|
116
133
|
'variant',
|
|
117
134
|
'round',
|
|
118
135
|
'note',
|
|
136
|
+
'covers',
|
|
119
137
|
'report',
|
|
120
138
|
'ready',
|
|
121
139
|
'hold',
|
|
@@ -125,6 +143,11 @@ const WRITES = new Set([
|
|
|
125
143
|
'discard',
|
|
126
144
|
...VERDICTS,
|
|
127
145
|
]);
|
|
146
|
+
const RETRIES = new Set([...WRITES, 'check']);
|
|
147
|
+
const staleBasesOf = (context, options) => {
|
|
148
|
+
var _a;
|
|
149
|
+
return (0, check_system_1.staleSketchBasesOf)(Object.assign(Object.assign({}, options), { invocation: (_a = context.invocation) !== null && _a !== void 0 ? _a : (0, invocation_1.repoInvocation)({ root: context.target, subcommand: 'design' }) }));
|
|
150
|
+
};
|
|
128
151
|
const fail = (message) => {
|
|
129
152
|
console.error(message);
|
|
130
153
|
return 1;
|
|
@@ -183,7 +206,7 @@ const variantLineOf = (options) => {
|
|
|
183
206
|
const files = sketch.targets.map((part) => partFileOf(Object.assign(Object.assign({}, options), { part }))).join(', ');
|
|
184
207
|
return ` ${variant}: ${files} assets: ${(0, path_1.relative)(root, (0, path_1.resolve)(sketch.dir, variant, assets_1.ASSETS_FOLDER))}/`;
|
|
185
208
|
};
|
|
186
|
-
const
|
|
209
|
+
const opened = (context) => {
|
|
187
210
|
var _a, _b, _c, _d, _e;
|
|
188
211
|
const { target, config, args } = context;
|
|
189
212
|
const product = (0, cli_args_1.oneProductOf)({ target, config, asked: args.values['--product'] });
|
|
@@ -236,11 +259,35 @@ const created = (context) => {
|
|
|
236
259
|
console.log(` shared by every variant, imported as @shared/<path>; edit it here, not in a copy:`);
|
|
237
260
|
shared.forEach((file) => console.log(` ${(0, path_1.relative)(target, file)}`));
|
|
238
261
|
}
|
|
239
|
-
nextStepsOf(sketch, product
|
|
262
|
+
nextStepsOf(sketch, product).forEach((line) => console.log(line));
|
|
240
263
|
return 0;
|
|
241
264
|
};
|
|
242
|
-
const
|
|
265
|
+
const created = (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
266
|
+
const code = opened(context);
|
|
267
|
+
if (code !== 0 || !context.args.flags.has('--ready'))
|
|
268
|
+
return code;
|
|
269
|
+
const found = productAndSketchOf(Object.assign(Object.assign({}, context), { args: Object.assign(Object.assign({}, context.args), { positional: [openedTargetOf(context)] }) }));
|
|
270
|
+
if (typeof found === 'string')
|
|
271
|
+
return fail(found);
|
|
272
|
+
const again = Object.assign(Object.assign({}, context), { args: Object.assign(Object.assign({}, context.args), { positional: [found.sketch.target] }) });
|
|
273
|
+
const readyCode = yield readied(again);
|
|
274
|
+
return readyCode === 0
|
|
275
|
+
? 0
|
|
276
|
+
: fail(`${found.sketch.target} is still in progress: sketch ready refused - fix it, then run sketch ready`);
|
|
277
|
+
});
|
|
278
|
+
const openedTargetOf = ({ args }) => {
|
|
279
|
+
const [first] = args.positional;
|
|
280
|
+
const name = args.values['--name'];
|
|
281
|
+
return name === undefined ? (first !== null && first !== void 0 ? first : '') : `${first}@${name}`;
|
|
282
|
+
};
|
|
283
|
+
const noteLanguageLineOf = (product) => product.config.noteLanguage === undefined
|
|
284
|
+
? []
|
|
285
|
+
: [
|
|
286
|
+
` write every round and variant note in ${note_language_1.NOTE_LANGUAGE_NAMES[product.config.noteLanguage]}: that is the product's UI language`,
|
|
287
|
+
];
|
|
288
|
+
const nextStepsOf = (sketch, productSource) => {
|
|
243
289
|
var _a;
|
|
290
|
+
const product = productSource.name;
|
|
244
291
|
const at = `${sketch.target} --product ${product}`;
|
|
245
292
|
const first = (_a = sketch.variants[0]) !== null && _a !== void 0 ? _a : '<key>';
|
|
246
293
|
const running = (0, sketch_1.runningRoundOf)(sketch);
|
|
@@ -253,10 +300,11 @@ const nextStepsOf = (sketch, product) => {
|
|
|
253
300
|
]
|
|
254
301
|
: []),
|
|
255
302
|
` sketch check ${at}`,
|
|
303
|
+
...noteLanguageLineOf(productSource),
|
|
256
304
|
` shot ${sketch.targets[0]} --states --variants --product ${product} look at it: ready refuses a pixel diff without a viewed shot`,
|
|
257
305
|
` sketch ready ${at} --by <model id>`,
|
|
258
306
|
` sketch report ${at} --variant ${first} --by <model id> --done after ready, once you stop drawing a variant; no report runs yet, so none is needed now`,
|
|
259
|
-
` a shared JSON file ready wrote (merged.json
|
|
307
|
+
` a shared JSON file ready wrote (merged.json): commit it with \`et design commit-hunks <file> --part ${sketch.targets[0]}\`, never as a whole file another session also edits`,
|
|
260
308
|
theming_text_1.THEMING_TEXT,
|
|
261
309
|
];
|
|
262
310
|
};
|
|
@@ -275,7 +323,7 @@ const VARIANT_USAGE = 'usage: sketch variant <layer>/<name> <variant>[,<variant>
|
|
|
275
323
|
const varied = (context) => {
|
|
276
324
|
var _a;
|
|
277
325
|
return withSketch(Object.assign(Object.assign({}, context), { noSketchHint: ` - start one with: sketch new ${(_a = context.args.positional[0]) !== null && _a !== void 0 ? _a : '<layer>/<name>'} --variants a,b,c --round "<title>"` }), ({ sketch }) => {
|
|
278
|
-
var _a, _b, _c, _d, _e;
|
|
326
|
+
var _a, _b, _c, _d, _e, _f;
|
|
279
327
|
const { positional, values } = context.args;
|
|
280
328
|
const variant = positional[1];
|
|
281
329
|
const from = values['--from'];
|
|
@@ -322,6 +370,8 @@ const varied = (context) => {
|
|
|
322
370
|
for (const name of variants) {
|
|
323
371
|
console.log(`${added.target} in progress: variant ${name} from ${from} in round ${(_c = round === null || round === void 0 ? void 0 : round.key) !== null && _c !== void 0 ? _c : ''}`);
|
|
324
372
|
console.log(variantLineOf({ root: context.target, sketch: added, variant: name }));
|
|
373
|
+
if (((_d = (0, sketch_1.rejectionOf)(added, from)) === null || _d === void 0 ? void 0 : _d.status) === 'withdrawn')
|
|
374
|
+
console.log(` ${name}: from withdrawn ${from}`);
|
|
325
375
|
}
|
|
326
376
|
if (title !== undefined && (round === null || round === void 0 ? void 0 : round.note) === '')
|
|
327
377
|
console.log(`round ${round.key} has no note yet - sketch ready needs one: sketch round ${added.target} ${round.key} --note "<what the round shows>" --by <model id>`);
|
|
@@ -331,12 +381,12 @@ const varied = (context) => {
|
|
|
331
381
|
sketch,
|
|
332
382
|
variant: from,
|
|
333
383
|
reason: 'round',
|
|
334
|
-
author: (
|
|
384
|
+
author: (_e = (0, cli_args_1.authorOf)(context.args)) !== null && _e !== void 0 ? _e : undefined,
|
|
335
385
|
note: lostNote,
|
|
336
386
|
round: round === null || round === void 0 ? void 0 : round.key,
|
|
337
387
|
});
|
|
338
388
|
if (addressed.length > 0)
|
|
339
|
-
console.log(`addressed ${addressed.length} comment(s) on variant ${from} in round ${(
|
|
389
|
+
console.log(`addressed ${addressed.length} comment(s) on variant ${from} in round ${(_f = round === null || round === void 0 ? void 0 : round.key) !== null && _f !== void 0 ? _f : ''}: ${addressed.map(({ id }) => id).join(', ')}`);
|
|
340
390
|
return 0;
|
|
341
391
|
});
|
|
342
392
|
};
|
|
@@ -424,6 +474,17 @@ const roundEdited = (context) => withSketch(context, ({ sketch }) => {
|
|
|
424
474
|
return 0;
|
|
425
475
|
});
|
|
426
476
|
const noteEdited = (context) => withSketch(context, ({ sketch }) => {
|
|
477
|
+
const round = context.args.values['--round'];
|
|
478
|
+
if (round !== undefined) {
|
|
479
|
+
const roundNote = context.args.positional.slice(1).join(' ').trim();
|
|
480
|
+
if (roundNote === '')
|
|
481
|
+
return fail('usage: sketch note <layer>/<name> --round <round> <text> --by <model id>');
|
|
482
|
+
const reworded = (0, sketch_1.editRound)({ sketch, round, note: roundNote });
|
|
483
|
+
if (typeof reworded === 'string')
|
|
484
|
+
return fail(reworded);
|
|
485
|
+
console.log(`${reworded.target} round ${round}: ${roundNote}`);
|
|
486
|
+
return 0;
|
|
487
|
+
}
|
|
427
488
|
const [, variant, ...words] = context.args.positional;
|
|
428
489
|
const note = words.join(' ').trim();
|
|
429
490
|
if (!variant || note === '')
|
|
@@ -434,6 +495,22 @@ const noteEdited = (context) => withSketch(context, ({ sketch }) => {
|
|
|
434
495
|
console.log(`${edited.target} variant ${variant}: ${note}`);
|
|
435
496
|
return 0;
|
|
436
497
|
});
|
|
498
|
+
const coversEdited = (context) => withSketch(context, ({ sketch }) => {
|
|
499
|
+
var _a, _b;
|
|
500
|
+
const covers = context.args.positional.slice(1);
|
|
501
|
+
const partProblem = (0, covered_diffs_1.coverPartProblemOf)({ sketch, covers });
|
|
502
|
+
if (partProblem !== null) {
|
|
503
|
+
console.error(partProblem);
|
|
504
|
+
return 2;
|
|
505
|
+
}
|
|
506
|
+
const edited = (0, covered_diffs_1.editCovers)({ sketch, covers });
|
|
507
|
+
if (typeof edited === 'string')
|
|
508
|
+
return fail(edited);
|
|
509
|
+
console.log(((_a = edited.covers) !== null && _a !== void 0 ? _a : []).length === 0
|
|
510
|
+
? `${edited.target} covers no compare DIFF`
|
|
511
|
+
: `${edited.target} covers the compare DIFFs of ${((_b = edited.covers) !== null && _b !== void 0 ? _b : []).join(', ')} while it is open (ADR 0222)`);
|
|
512
|
+
return 0;
|
|
513
|
+
});
|
|
437
514
|
const targetRemoved = (context) => {
|
|
438
515
|
const usage = `usage: ${exports.SKETCH_USAGE.find((line) => line.startsWith('sketch target remove'))}`;
|
|
439
516
|
const rest = context.args.positional.slice(1);
|
|
@@ -473,6 +550,31 @@ const targetAdded = (context) => {
|
|
|
473
550
|
return 0;
|
|
474
551
|
});
|
|
475
552
|
};
|
|
553
|
+
const readyLockOf = (sketch) => (0, path_1.resolve)((0, os_1.tmpdir)(), `et-sketch-ready-${(0, crypto_1.createHash)('sha256').update(sketch.dir).digest('hex').slice(0, 16)}.lock`);
|
|
554
|
+
const isRunning = (pid) => {
|
|
555
|
+
try {
|
|
556
|
+
process.kill(pid, 0);
|
|
557
|
+
return true;
|
|
558
|
+
}
|
|
559
|
+
catch (_a) {
|
|
560
|
+
return false;
|
|
561
|
+
}
|
|
562
|
+
};
|
|
563
|
+
const lockedReady = (sketch) => {
|
|
564
|
+
const lock = readyLockOf(sketch);
|
|
565
|
+
const holder = Number(contentOf(lock));
|
|
566
|
+
if (holder > 0 && isRunning(holder))
|
|
567
|
+
return null;
|
|
568
|
+
(0, fs_1.writeFileSync)(lock, String(process.pid));
|
|
569
|
+
return () => (0, fs_1.rmSync)(lock, { force: true });
|
|
570
|
+
};
|
|
571
|
+
const reportedReopen = (sketch) => {
|
|
572
|
+
const reopened = (0, sketch_1.reopenChangedReady)(sketch);
|
|
573
|
+
if (!reopened)
|
|
574
|
+
return sketch;
|
|
575
|
+
console.log(`${sketch.target} was ready; ${reopened.changed.join(', ')} changed since - back to in progress`);
|
|
576
|
+
return reopened.sketch;
|
|
577
|
+
};
|
|
476
578
|
const readied = (context) => {
|
|
477
579
|
const found = productAndSketchOf(context);
|
|
478
580
|
if (typeof found === 'string')
|
|
@@ -480,21 +582,44 @@ const readied = (context) => {
|
|
|
480
582
|
const hold = (0, sketch_1.heldProblemOf)(found.sketch);
|
|
481
583
|
if (hold !== null)
|
|
482
584
|
return fail(hold);
|
|
483
|
-
const
|
|
585
|
+
const reopened = reportedReopen(found.sketch);
|
|
586
|
+
const current = { product: found.product, sketch: reopened };
|
|
587
|
+
const refused = (0, phase_timing_1.timedPhase)('gates', () => readyRefusalOf(context, current));
|
|
484
588
|
if (refused !== null)
|
|
485
589
|
return refused;
|
|
486
|
-
|
|
590
|
+
const unlinted = (0, phase_timing_1.timedPhase)('lint', () => (0, design_lint_1.lintGateLinesOf)({
|
|
591
|
+
target: context.target,
|
|
592
|
+
productDir: current.product.dir,
|
|
593
|
+
files: (0, design_lint_1.variantLintFilesOf)(reopened, reopened.variants.filter((variant) => !(0, sketch_1.rejectionOf)(reopened, variant))),
|
|
594
|
+
}));
|
|
595
|
+
if (unlinted.length > 0)
|
|
596
|
+
return fail(`${unlinted.join('\n')}\n${reopened.target} adds lint warnings - fix them before ready`);
|
|
597
|
+
const unlock = lockedReady(reopened);
|
|
598
|
+
if (!unlock)
|
|
599
|
+
return fail(`another sketch ready run on ${reopened.target} is going - wait for it`);
|
|
600
|
+
const run = context.warm
|
|
601
|
+
? { warm: Object.assign(Object.assign({}, context.warm), { perRun: true }), close: () => __awaiter(void 0, void 0, void 0, function* () { return undefined; }) }
|
|
602
|
+
: (0, warm_draw_1.createRunDraw)(context.target);
|
|
603
|
+
return renderedAndReady(Object.assign(Object.assign({}, context), { warm: run.warm }), current).finally(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
604
|
+
unlock();
|
|
605
|
+
yield run.close();
|
|
606
|
+
}));
|
|
487
607
|
};
|
|
488
608
|
const renderedAndReady = (context, found) => __awaiter(void 0, void 0, void 0, function* () {
|
|
489
609
|
var _a;
|
|
490
610
|
const { product, sketch } = found;
|
|
491
|
-
const rendered = yield renderedVariantsOf({
|
|
611
|
+
const rendered = yield (0, phase_timing_1.timedPhase)('render-check', () => renderedVariantsOf({
|
|
492
612
|
target: context.target,
|
|
493
613
|
config: context.config,
|
|
494
614
|
product,
|
|
495
|
-
entries: sketch.variants
|
|
615
|
+
entries: sketch.variants
|
|
616
|
+
.filter((variant) => !(0, sketch_1.rejectionOf)(sketch, variant))
|
|
617
|
+
.map((variant) => ({ sketch, variant })),
|
|
496
618
|
drawn: false,
|
|
497
|
-
|
|
619
|
+
warm: context.warm,
|
|
620
|
+
}));
|
|
621
|
+
if ('issues' in rendered && rendered.noVerdict)
|
|
622
|
+
return 1;
|
|
498
623
|
if ('issues' in rendered && rendered.issues.length > 0)
|
|
499
624
|
return fail(`${sketch.target} has problems - fix them before ready`);
|
|
500
625
|
const busyAdded = 'issues' in rendered ? openPointLinesOf({ product, sketch, busy: (_a = rendered.busy) !== null && _a !== void 0 ? _a : [] }).added : [];
|
|
@@ -504,17 +629,22 @@ const renderedAndReady = (context, found) => __awaiter(void 0, void 0, void 0, f
|
|
|
504
629
|
});
|
|
505
630
|
const loadedAndReady = (context_1, _a) => __awaiter(void 0, [context_1, _a], void 0, function* (context, { product, sketch }) {
|
|
506
631
|
var _b, _c;
|
|
507
|
-
const unloaded = yield unloadedLinesOf({ target: context.target, config: context.config, product, sketch });
|
|
632
|
+
const unloaded = yield (0, phase_timing_1.timedPhase)('load', () => unloadedLinesOf({ target: context.target, config: context.config, product, sketch, warm: context.warm }));
|
|
508
633
|
if (unloaded.length > 0)
|
|
509
634
|
return fail(`${unloaded.join('\n')}\n${sketch.target} does not load - fix it before ready`);
|
|
510
|
-
const drifts = yield (0, ready_shots_1.sampleMarkDriftLines)({ target: context.target, config: context.config, product, sketch });
|
|
635
|
+
const drifts = yield (0, phase_timing_1.timedPhase)('mark-drift', () => (0, ready_shots_1.sampleMarkDriftLines)({ target: context.target, config: context.config, product, sketch, warm: context.warm }));
|
|
511
636
|
if (drifts.length > 0)
|
|
512
637
|
return fail(`${drifts.join('\n')}\n${sketch.target} draws one sample with different marks - align them before ready`);
|
|
513
|
-
const identical = yield (0, ready_shots_1.identicalRenderLines)({ target: context.target, config: context.config, product, sketch });
|
|
638
|
+
const identical = yield (0, phase_timing_1.timedPhase)('identical', () => (0, ready_shots_1.identicalRenderLines)({ target: context.target, config: context.config, product, sketch, warm: context.warm }));
|
|
514
639
|
if (identical.length > 0)
|
|
515
640
|
return fail(`${identical.join('\n')}\n${sketch.target} draws variants alike - fix them before ready`);
|
|
641
|
+
const undeclared = yield (0, phase_timing_1.timedPhase)('undeclared', () => undeclaredLinesOf({ target: context.target, config: context.config, product, sketch, warm: context.warm }));
|
|
642
|
+
if (typeof undeclared === 'string')
|
|
643
|
+
return fail(undeclared);
|
|
644
|
+
if (undeclared.length > 0)
|
|
645
|
+
return fail(`${undeclared.join('\n')}\n${sketch.target} draws controls no controls entry declares - declare them before ready`);
|
|
516
646
|
const changes = sketch.targets.every((key) => product.parts.some((part) => (0, resolve_product_1.partKeyOf)(part) === key))
|
|
517
|
-
? yield (0, ready_shots_1.variantChangesShown)({ target: context.target, config: context.config, product, sketch })
|
|
647
|
+
? yield (0, phase_timing_1.timedPhase)('changes-shot', () => (0, ready_shots_1.variantChangesShown)({ target: context.target, config: context.config, product, sketch, warm: context.warm }))
|
|
518
648
|
: null;
|
|
519
649
|
const unviewed = Array.isArray(changes)
|
|
520
650
|
? (0, viewed_shots_1.unviewedShotLinesOf)({
|
|
@@ -526,20 +656,47 @@ const loadedAndReady = (context_1, _a) => __awaiter(void 0, [context_1, _a], voi
|
|
|
526
656
|
: [];
|
|
527
657
|
if (unviewed.length > 0)
|
|
528
658
|
return fail(`${unviewed.join('\n')}\n${sketch.target} draws a pixel diff - view its shot before ready`);
|
|
659
|
+
if (!(0, fs_1.existsSync)((0, path_1.resolve)(sketch.dir, sketch_1.SKETCH_FILE)))
|
|
660
|
+
return fail(`${sketch.target} is gone: another run merged or discarded it while this one checked it`);
|
|
529
661
|
const ready = sketch.status === 'ready'
|
|
530
662
|
? sketch
|
|
531
663
|
: (0, sketch_1.markSketchReady)({ checkout: context.target, sketch, author: (_c = (0, cli_args_1.authorOf)(context.args)) !== null && _c !== void 0 ? _c : undefined });
|
|
532
664
|
if (typeof ready === 'string')
|
|
533
665
|
return fail(ready);
|
|
534
|
-
return autoMerged({ context, product, sketch: ready, again: sketch.status === 'ready', changes });
|
|
666
|
+
return (0, phase_timing_1.timedPhase)('auto-merge', () => autoMerged({ context, product, sketch: ready, again: sketch.status === 'ready', changes }));
|
|
535
667
|
});
|
|
536
668
|
const stillReady = (options) => {
|
|
669
|
+
(0, sketch_1.writeSketchFile)(Object.assign(Object.assign({}, options.sketch), { mergeHold: { reason: options.reason, at: new Date().toISOString() } }));
|
|
537
670
|
if (options.again)
|
|
538
671
|
console.log(`${options.sketch.target} is still ready`);
|
|
539
672
|
return 0;
|
|
540
673
|
};
|
|
674
|
+
const gitIn = (target, ...args) => (0, plain_output_1.spawnPlain)(['git', ...args], { cwd: target });
|
|
675
|
+
const mergeDirsOf = (product) => [product.dir, ...(product.base ? [product.base.dir] : [])];
|
|
676
|
+
const cleanBesideSketch = (options) => {
|
|
677
|
+
const status = gitIn(options.target, 'status', '--porcelain', '-z', '--untracked-files=all', '--', ...mergeDirsOf(options.product));
|
|
678
|
+
const root = gitIn(options.target, 'rev-parse', '--show-toplevel');
|
|
679
|
+
if (status.status !== 0 || root.status !== 0)
|
|
680
|
+
return false;
|
|
681
|
+
const top = root.stdout.trim();
|
|
682
|
+
const sketchDir = (0, fs_1.realpathSync)(options.sketch.dir);
|
|
683
|
+
return status.stdout
|
|
684
|
+
.split('\0')
|
|
685
|
+
.filter((entry) => /^.. /.test(entry))
|
|
686
|
+
.every((entry) => (0, path_1.resolve)(top, entry.slice(3)).startsWith(`${sketchDir}/`));
|
|
687
|
+
};
|
|
688
|
+
const committedMerge = (options) => {
|
|
689
|
+
const dirs = mergeDirsOf(options.product);
|
|
690
|
+
const added = gitIn(options.target, 'add', '--all', '--', ...dirs);
|
|
691
|
+
const committed = added.status === 0
|
|
692
|
+
? gitIn(options.target, 'commit', '-m', `feat(repo): Merge ${options.sketch.target}, no visible change`, '--', ...dirs)
|
|
693
|
+
: added;
|
|
694
|
+
if (committed.status !== 0)
|
|
695
|
+
console.warn(`Could not commit the merge: ${(committed.stderr || committed.stdout).trim()}`);
|
|
696
|
+
return committed.status === 0;
|
|
697
|
+
};
|
|
541
698
|
const autoMerged = (options) => {
|
|
542
|
-
var _a
|
|
699
|
+
var _a;
|
|
543
700
|
const { context, product, sketch, again, changes } = options;
|
|
544
701
|
if (!again)
|
|
545
702
|
console.log(`${sketch.target} is ready`);
|
|
@@ -548,45 +705,87 @@ const autoMerged = (options) => {
|
|
|
548
705
|
if (shared.length > 0)
|
|
549
706
|
console.log(`variant ${variant}: a shared/ edit reaches ${shared.join(', ')}`);
|
|
550
707
|
}
|
|
551
|
-
|
|
552
|
-
console.log('auto-merge skipped: new part, the user merges');
|
|
553
|
-
return stillReady({ sketch, again });
|
|
554
|
-
}
|
|
555
|
-
const noChange = typeof changes === 'string' ? changes : (0, no_visible_change_1.noChangeOf)(changes);
|
|
708
|
+
const noChange = changes === null ? 'new part, the user merges' : typeof changes === 'string' ? changes : (0, no_visible_change_1.noChangeOf)(changes);
|
|
556
709
|
if (noChange !== true) {
|
|
557
710
|
console.log(`auto-merge skipped: ${noChange}`);
|
|
558
|
-
return stillReady({ sketch, again });
|
|
711
|
+
return stillReady({ sketch, again, reason: noChange });
|
|
559
712
|
}
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
713
|
+
return mergedUnchanged({
|
|
714
|
+
target: context.target,
|
|
715
|
+
config: context.config,
|
|
716
|
+
author: (_a = (0, cli_args_1.authorOf)(context.args)) !== null && _a !== void 0 ? _a : undefined,
|
|
717
|
+
product,
|
|
718
|
+
sketch,
|
|
719
|
+
});
|
|
720
|
+
};
|
|
721
|
+
const mergedUnchanged = (options) => {
|
|
722
|
+
var _a;
|
|
723
|
+
const { target, config, author, product, sketch } = options;
|
|
724
|
+
const variant = (_a = sketch.variants.find((candidate) => !(0, sketch_1.rejectionOf)(sketch, candidate))) !== null && _a !== void 0 ? _a : '';
|
|
725
|
+
const commit = cleanBesideSketch({ target, product, sketch });
|
|
726
|
+
const decided = (0, sketch_1.decideSketch)({ sketch, decision: Object.assign({ kind: 'pick', variant }, (0, write_origin_1.originOf)(author !== null && author !== void 0 ? author : '')) });
|
|
565
727
|
if (typeof decided === 'string')
|
|
566
728
|
return fail(decided);
|
|
567
729
|
const written = sharedFilesOf(product);
|
|
568
730
|
const before = written.map((file) => contentOf(file));
|
|
569
731
|
const result = (0, merge_1.mergeSketch)({
|
|
570
|
-
target
|
|
571
|
-
config
|
|
732
|
+
target,
|
|
733
|
+
config,
|
|
572
734
|
product,
|
|
573
735
|
sketch: decided,
|
|
574
736
|
author,
|
|
575
737
|
decidedBy: 'auto: no visible change',
|
|
576
738
|
});
|
|
577
739
|
if (!Array.isArray(result)) {
|
|
578
|
-
(0,
|
|
740
|
+
(0, sketch_1.writeSketchFile)(Object.assign(Object.assign({}, sketch), { mergeHold: Object.assign({ reason: result.reason, at: new Date().toISOString() }, (result.dirty ? { dirty: result.dirty } : {})) }));
|
|
579
741
|
console.warn(`${sketch.target} shows no visible change but did not merge: ${result.reason}`);
|
|
580
742
|
return 0;
|
|
581
743
|
}
|
|
582
744
|
console.log(`No visible change in any state: merged ${sketch.targets.join(', ')} automatically.`);
|
|
745
|
+
if (commit && committedMerge({ target, product, sketch })) {
|
|
746
|
+
console.log(`Committed: feat(repo): Merge ${sketch.target}, no visible change`);
|
|
747
|
+
return 0;
|
|
748
|
+
}
|
|
583
749
|
commitHunksLines({
|
|
584
|
-
target
|
|
750
|
+
target,
|
|
585
751
|
files: written.filter((file, index) => contentOf(file) !== before[index]),
|
|
586
752
|
parts: sketch.targets,
|
|
587
753
|
}).forEach((line) => console.log(line));
|
|
588
754
|
return 0;
|
|
589
755
|
};
|
|
756
|
+
const stillDirtyOf = (options) => {
|
|
757
|
+
const status = gitIn(options.target, 'status', '--porcelain', '--untracked-files=all', '--', ...options.dirty);
|
|
758
|
+
return status.status !== 0 || status.stdout.trim() !== '';
|
|
759
|
+
};
|
|
760
|
+
/**
|
|
761
|
+
* Merges every ready sketch whose automatic merge uncommitted files refused, once those files are committed or
|
|
762
|
+
* reverted; `except` is a sketch target to leave alone.
|
|
763
|
+
*/
|
|
764
|
+
const retriedHeldMerges = (options) => {
|
|
765
|
+
var _a;
|
|
766
|
+
const { target, config, author, except } = options;
|
|
767
|
+
for (const name of Object.keys((_a = config.products) !== null && _a !== void 0 ? _a : {})) {
|
|
768
|
+
const productDir = (0, product_1.productDirOf)({ target, product: name });
|
|
769
|
+
const held = (0, sketch_1.listSketches)({ productDir, product: name }).filter((sketch) => {
|
|
770
|
+
var _a;
|
|
771
|
+
return typeof sketch !== 'string' &&
|
|
772
|
+
sketch.status === 'ready' &&
|
|
773
|
+
!!((_a = sketch.mergeHold) === null || _a === void 0 ? void 0 : _a.dirty) &&
|
|
774
|
+
sketch.target !== except &&
|
|
775
|
+
!stillDirtyOf({ target, dirty: sketch.mergeHold.dirty });
|
|
776
|
+
});
|
|
777
|
+
if (held.length === 0)
|
|
778
|
+
continue;
|
|
779
|
+
const product = (0, cli_args_1.oneProductOf)({ target, config, asked: name });
|
|
780
|
+
if (typeof product === 'string')
|
|
781
|
+
continue;
|
|
782
|
+
for (const sketch of held) {
|
|
783
|
+
console.log(`${sketch.target}: the uncommitted edits that held its automatic merge are gone - merging it now`);
|
|
784
|
+
mergedUnchanged({ target, config, author, product, sketch });
|
|
785
|
+
}
|
|
786
|
+
}
|
|
787
|
+
};
|
|
788
|
+
exports.retriedHeldMerges = retriedHeldMerges;
|
|
590
789
|
const contentOf = (file) => ((0, fs_1.existsSync)(file) ? (0, fs_1.readFileSync)(file, 'utf8') : null);
|
|
591
790
|
const sharedFilesOf = (product) => [
|
|
592
791
|
(0, path_1.resolve)(product.dir, merged_parts_1.MERGED_FILE),
|
|
@@ -630,8 +829,37 @@ const roundNotReadyProblemOf = (sketch) => sketch.status === 'ready' || sketch.h
|
|
|
630
829
|
? null
|
|
631
830
|
: `ROUND-NOT-READY ${sketch.target}: round ${(0, sketch_1.runningRoundOf)(sketch).key} is drawn but still in progress - run \`design sketch ready ${sketch.target}\``;
|
|
632
831
|
const unloadedLinesOf = (options) => __awaiter(void 0, void 0, void 0, function* () { return (yield (0, ready_shots_1.variantsThatDoNotLoad)(options)).map((line) => `${options.sketch.target} ${line}`); });
|
|
832
|
+
const undeclaredLinesOf = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
833
|
+
const { sketch } = options;
|
|
834
|
+
const lines = [];
|
|
835
|
+
for (const variant of sketch.variants.filter((name) => !(0, sketch_1.rejectionOf)(sketch, name))) {
|
|
836
|
+
const { changed } = (0, merge_preview_1.mergePreviewOf)({ product: options.product, sketch, variant });
|
|
837
|
+
const added = yield (0, complete_1.addedUndeclaredControlsOf)(Object.assign(Object.assign({}, options), { sketch: { target: sketch.target, variant }, parts: changed }));
|
|
838
|
+
if ('unavailable' in added)
|
|
839
|
+
return added.unavailable;
|
|
840
|
+
lines.push(...added.lines);
|
|
841
|
+
}
|
|
842
|
+
return lines;
|
|
843
|
+
});
|
|
844
|
+
const baseCommitOf = (options) => {
|
|
845
|
+
var _a;
|
|
846
|
+
const { context, product, sketch } = options;
|
|
847
|
+
const dirs = ((_a = (0, stale_base_1.staleBaseOf)({ product, sketch })) !== null && _a !== void 0 ? _a : []).flatMap((key) => {
|
|
848
|
+
const part = product.parts.find((candidate) => (0, resolve_product_1.partKeyOf)(candidate) === key);
|
|
849
|
+
return part ? [(0, path_1.dirname)(part.file)] : [];
|
|
850
|
+
});
|
|
851
|
+
if (dirs.length === 0)
|
|
852
|
+
return null;
|
|
853
|
+
const log = (0, plain_output_1.spawnPlain)(['git', 'log', '-1', '--format=%h', '--', ...dirs], { cwd: context.target });
|
|
854
|
+
return log.status === 0 && log.stdout.trim() ? log.stdout.trim() : null;
|
|
855
|
+
};
|
|
633
856
|
const readyRefusalOf = (context, { product, sketch }) => {
|
|
634
857
|
const lineOf = (variant, problem) => `${sketch.target} ${variant}: ${problem.rule} ${(0, path_1.relative)(context.target, problem.file)}: ${problem.message}`;
|
|
858
|
+
const stale = staleBasesOf(context, { product, targets: new Set([sketch.target]) });
|
|
859
|
+
if (stale.length > 0) {
|
|
860
|
+
const commit = baseCommitOf({ context, product, sketch });
|
|
861
|
+
return fail(`${stale.map((problem) => problem.line).join('\n')}\n${sketch.target} is stale${commit ? ` (base changed in ${commit})` : ''} - rebase it before ready`);
|
|
862
|
+
}
|
|
635
863
|
const found = (0, check_sketches_1.variantProblemsOf)({ product, sketch });
|
|
636
864
|
found.forEach((entry) => noteProblemsBefore(Object.assign({ target: context.target }, entry)));
|
|
637
865
|
const problems = found
|
|
@@ -687,19 +915,36 @@ const beforeLinesOf = ({ sketches, before }) => [...new Set(sketches)].flatMap((
|
|
|
687
915
|
.filter((issue) => sketch.targets.includes(issue.part))
|
|
688
916
|
.map((issue) => (Object.assign(Object.assign({}, issue), { sketch: { target: sketch.target, variant: 'before' } })))));
|
|
689
917
|
exports.beforeLinesOf = beforeLinesOf;
|
|
690
|
-
const
|
|
918
|
+
const unchangedAffectedOf = (options) => (0, warm_draw_1.loadingOn)(options, (server) => __awaiter(void 0, void 0, void 0, function* () {
|
|
919
|
+
return Object.fromEntries(yield Promise.all(options.affected.map((part) => __awaiter(void 0, void 0, void 0, function* () {
|
|
920
|
+
return [
|
|
921
|
+
part,
|
|
922
|
+
yield (0, unchanged_states_1.unchangedStatesOf)(Object.assign(Object.assign({}, options), { part, load: ({ file, product, sketch }) => server.ssrLoadModule((0, system_modules_1.productModuleIdOf)({ file, product, sketch })) })),
|
|
923
|
+
];
|
|
924
|
+
}))));
|
|
925
|
+
}));
|
|
926
|
+
const renderedVariantsOf = (_a) => __awaiter(void 0, [_a], void 0, function* ({ target, config, product, entries, drawn, warm, }) {
|
|
691
927
|
var _b, _c, _d;
|
|
928
|
+
const jobs = yield Promise.all(entries.map((_a) => __awaiter(void 0, [_a], void 0, function* ({ sketch, variant }) {
|
|
929
|
+
const preview = (0, merge_preview_1.mergePreviewOf)({ product, sketch, variant });
|
|
930
|
+
return {
|
|
931
|
+
product: product.name,
|
|
932
|
+
sketch: { target: sketch.target, variant },
|
|
933
|
+
parts: [...preview.changed, ...preview.affected],
|
|
934
|
+
unchanged: warm
|
|
935
|
+
? yield unchangedAffectedOf({ target, config, warm, product, sketch, variant, affected: preview.affected })
|
|
936
|
+
: {},
|
|
937
|
+
};
|
|
938
|
+
})));
|
|
939
|
+
for (const { sketch, unchanged } of jobs)
|
|
940
|
+
for (const [part, states] of Object.entries(unchanged).filter(([, states]) => states.length > 0))
|
|
941
|
+
console.log(`NOTE ${sketch.target} ${sketch.variant}: ${part} draws ${states.length} state${states.length === 1 ? '' : 's'} as merged, not inspected`);
|
|
692
942
|
const rendered = yield (0, render_check_1.renderIssuesOf)({
|
|
693
943
|
target,
|
|
694
944
|
config,
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
product: product.name,
|
|
699
|
-
sketch: { target: sketch.target, variant },
|
|
700
|
-
parts: [...preview.changed, ...preview.affected],
|
|
701
|
-
};
|
|
702
|
-
}),
|
|
945
|
+
warm,
|
|
946
|
+
jobs,
|
|
947
|
+
onProgress: (line) => console.error(line),
|
|
703
948
|
before: [...new Set(entries.flatMap(({ sketch }) => sketch.targets))].map((part) => ({
|
|
704
949
|
product: product.name,
|
|
705
950
|
part,
|
|
@@ -726,19 +971,23 @@ const renderedVariantsOf = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
|
726
971
|
if (drawn)
|
|
727
972
|
rendered.grids.forEach(({ sketch, part, line }) => { var _a, _b; return console.log(`${(_a = sketch === null || sketch === void 0 ? void 0 : sketch.target) !== null && _a !== void 0 ? _a : ''} ${(_b = sketch === null || sketch === void 0 ? void 0 : sketch.variant) !== null && _b !== void 0 ? _b : ''}: ${part} ${line}`); });
|
|
728
973
|
rendered.warnings.forEach((issue) => { var _a, _b, _c, _d; return console.warn(`${(_b = (_a = issue.sketch) === null || _a === void 0 ? void 0 : _a.target) !== null && _b !== void 0 ? _b : ''} ${(_d = (_c = issue.sketch) === null || _c === void 0 ? void 0 : _c.variant) !== null && _d !== void 0 ? _d : ''}: WARNING ${(0, render_check_1.renderIssueLineOf)(issue)}`); });
|
|
729
|
-
|
|
974
|
+
const { noVerdict } = rendered;
|
|
975
|
+
if (noVerdict)
|
|
976
|
+
[...new Set(entries.map((entry) => entry.sketch.target))].forEach((sketchTarget) => console.error((0, no_verdict_1.noVerdictLineOf)(sketchTarget, noVerdict)));
|
|
977
|
+
else
|
|
978
|
+
(0, render_check_1.groupedIssueLinesOf)(rendered.issues).forEach((line) => console.error(line));
|
|
730
979
|
(0, exports.beforeLinesOf)({ sketches: entries.map((entry) => entry.sketch), before: (_d = rendered.before) !== null && _d !== void 0 ? _d : [] }).forEach((line) => console.log(line));
|
|
731
980
|
}
|
|
732
981
|
return rendered;
|
|
733
982
|
});
|
|
734
983
|
const checked = (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
735
|
-
var _a, _b
|
|
984
|
+
var _a, _b;
|
|
736
985
|
const { target, config, args } = context;
|
|
737
986
|
const product = sketchProductOf(context);
|
|
738
987
|
if (typeof product === 'string')
|
|
739
988
|
return fail(product);
|
|
740
989
|
const asked = args.positional[0];
|
|
741
|
-
const { unreadable, variants } = (0, check_sketches_1.openSketchProblemsOf)(product);
|
|
990
|
+
const { unreadable, variants } = (0, phase_timing_1.timedPhase)('gates', () => (0, check_sketches_1.openSketchProblemsOf)(product));
|
|
742
991
|
const named = asked === undefined ? variants : variants.filter((entry) => entry.sketch.target === asked);
|
|
743
992
|
if (asked !== undefined && named.length === 0)
|
|
744
993
|
return fail(`NO SKETCH on ${asked} in ${product.name}`);
|
|
@@ -756,18 +1005,17 @@ const checked = (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
756
1005
|
if (asked === undefined)
|
|
757
1006
|
unreadable.forEach((problem) => console.error(`${problem.rule} ${(0, path_1.relative)(target, problem.file)}: ${problem.message}`));
|
|
758
1007
|
new Set(chosen.map((entry) => entry.sketch)).forEach((sketch) => {
|
|
1008
|
+
reportedReopen(sketch);
|
|
1009
|
+
if (product.config.noteLanguage)
|
|
1010
|
+
(0, note_language_1.noteLanguageWarningsOf)(sketch, product.config.noteLanguage).forEach((warning) => console.warn(warning));
|
|
759
1011
|
if (sketch.hold)
|
|
760
1012
|
console.warn(`HELD ${sketch.target}: until ${sketch.hold.until}`);
|
|
761
1013
|
});
|
|
762
|
-
const stale = (
|
|
763
|
-
product,
|
|
764
|
-
invocation: (_a = context.invocation) !== null && _a !== void 0 ? _a : (0, invocation_1.repoInvocation)({ root: target, subcommand: 'design' }),
|
|
765
|
-
targets: new Set(chosen.map((entry) => entry.sketch.target)),
|
|
766
|
-
});
|
|
1014
|
+
const stale = staleBasesOf(context, { product, targets: new Set(chosen.map((entry) => entry.sketch.target)) });
|
|
767
1015
|
stale.forEach((problem) => console.error(problem.line));
|
|
768
1016
|
failed || (failed = stale.length > 0);
|
|
769
1017
|
for (const { sketch, variant, problems, before } of chosen) {
|
|
770
|
-
const typed = (0, check_sketches_1.typecheckVariant)({ target, product, sketch, variant });
|
|
1018
|
+
const typed = (0, phase_timing_1.timedPhase)(`tsc ${variant}`, () => (0, check_sketches_1.typecheckVariant)({ target, product, sketch, variant }));
|
|
771
1019
|
noteProblemsBefore({ target, sketch, variant, before });
|
|
772
1020
|
(0, check_sketches_1.variantWarningsOf)({ target, product, sketch, variant }).forEach((warning) => console.warn(`${sketch.target} ${variant}: ${warning}`));
|
|
773
1021
|
const all = [
|
|
@@ -782,17 +1030,18 @@ const checked = (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
782
1030
|
}
|
|
783
1031
|
if (!failed)
|
|
784
1032
|
for (const sketch of new Set(chosen.map((entry) => entry.sketch)))
|
|
785
|
-
(yield (0, ready_shots_1.aktuellPlaceholderWarnings)({ target, config, product, sketch })).forEach((warning) => console.warn(warning));
|
|
1033
|
+
(yield (0, phase_timing_1.timedPhase)('aktuell', () => (0, ready_shots_1.aktuellPlaceholderWarnings)({ target, config, product, sketch, warm: context.warm }))).forEach((warning) => console.warn(warning));
|
|
786
1034
|
const rendered = failed
|
|
787
1035
|
? null
|
|
788
|
-
: yield renderedVariantsOf({
|
|
1036
|
+
: yield (0, phase_timing_1.timedPhase)('render-check', () => renderedVariantsOf({
|
|
789
1037
|
target,
|
|
790
1038
|
config,
|
|
791
1039
|
product,
|
|
792
1040
|
entries: chosen,
|
|
793
1041
|
drawn: true,
|
|
794
|
-
|
|
795
|
-
|
|
1042
|
+
warm: context.warm,
|
|
1043
|
+
}));
|
|
1044
|
+
const busy = rendered !== null && 'issues' in rendered ? ((_a = rendered.busy) !== null && _a !== void 0 ? _a : []) : [];
|
|
796
1045
|
if (rendered !== null && 'issues' in rendered)
|
|
797
1046
|
(0, frame_budget_1.frameBudgetWarningsOf)({
|
|
798
1047
|
drawn: rendered.drawn,
|
|
@@ -811,16 +1060,16 @@ const checked = (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
811
1060
|
refused += lines.length;
|
|
812
1061
|
};
|
|
813
1062
|
for (const sketch of new Set(chosen.map((entry) => entry.sketch))) {
|
|
814
|
-
const unloaded = yield unloadedLinesOf({ target, config, product, sketch });
|
|
1063
|
+
const unloaded = yield (0, phase_timing_1.timedPhase)('load', () => unloadedLinesOf({ target, config, product, sketch, warm: context.warm }));
|
|
815
1064
|
const before = refused;
|
|
816
1065
|
refuse([
|
|
817
1066
|
...unloaded,
|
|
818
1067
|
...openPointLinesOf({ product, sketch, busy }).added,
|
|
819
|
-
...[(
|
|
1068
|
+
...[(_b = roundNoteRefusalOf(sketch)) !== null && _b !== void 0 ? _b : []].flat(),
|
|
820
1069
|
]);
|
|
821
1070
|
if (!failed && unloaded.length === 0) {
|
|
822
|
-
refuse(yield (0, ready_shots_1.sampleMarkDriftLines)({ target, config, product, sketch }));
|
|
823
|
-
refuse(yield (0, ready_shots_1.identicalRenderLines)({ target, config, product, sketch }));
|
|
1071
|
+
refuse(yield (0, phase_timing_1.timedPhase)('mark-drift', () => (0, ready_shots_1.sampleMarkDriftLines)({ target, config, product, sketch, warm: context.warm })));
|
|
1072
|
+
refuse(yield (0, phase_timing_1.timedPhase)('identical', () => (0, ready_shots_1.identicalRenderLines)({ target, config, product, sketch, warm: context.warm })));
|
|
824
1073
|
}
|
|
825
1074
|
if (!failed && refused === before) {
|
|
826
1075
|
const problem = roundNotReadyProblemOf(sketch);
|
|
@@ -830,9 +1079,13 @@ const checked = (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
830
1079
|
}
|
|
831
1080
|
}
|
|
832
1081
|
}
|
|
833
|
-
|
|
1082
|
+
const staleSince = rendered === null
|
|
1083
|
+
? []
|
|
1084
|
+
: staleBasesOf(context, { product, targets: new Set(chosen.map((entry) => entry.sketch.target)) }).filter((problem) => !stale.some((before) => before.line === problem.line));
|
|
1085
|
+
staleSince.forEach((problem) => console.error(problem.line));
|
|
1086
|
+
if (failed || staleSince.length > 0)
|
|
834
1087
|
return 1;
|
|
835
|
-
if (rendered !== null && 'issues' in rendered && rendered.issues.length > 0)
|
|
1088
|
+
if (rendered !== null && 'issues' in rendered && (rendered.noVerdict || rendered.issues.length > 0))
|
|
836
1089
|
return 1;
|
|
837
1090
|
if (notReady)
|
|
838
1091
|
return 1;
|
|
@@ -857,7 +1110,7 @@ const previewed = (context) => withSketch(context, ({ product, sketch }) => {
|
|
|
857
1110
|
});
|
|
858
1111
|
const merged = (context) => withSketch(context, ({ product, sketch }) => {
|
|
859
1112
|
var _a, _b;
|
|
860
|
-
const { '--note': note, '--variant': flagVariant, '--allowed-by': planRef } = context.args.values;
|
|
1113
|
+
const { '--note': note, '--variant': flagVariant, '--allowed-by': planRef, '--decided-by': decidedBy, } = context.args.values;
|
|
861
1114
|
const replaceNote = context.args.flags.has('--replace-note');
|
|
862
1115
|
if (context.args.positional.length > 1)
|
|
863
1116
|
return fail(`usage: sketch merge <layer>/<name> [--note <reason>] - it merges the variant the user picked`);
|
|
@@ -865,11 +1118,13 @@ const merged = (context) => withSketch(context, ({ product, sketch }) => {
|
|
|
865
1118
|
return fail('--replace-note needs --note <the new part note>');
|
|
866
1119
|
if ((flagVariant === undefined) !== (planRef === undefined))
|
|
867
1120
|
return fail('--variant and --allowed-by go together: name the only live variant and the plan that allows the merge');
|
|
1121
|
+
if (decidedBy !== undefined && (decidedBy.trim() === '' || planRef !== undefined))
|
|
1122
|
+
return fail('--decided-by needs a name and does not go with --allowed-by, which records the plan');
|
|
868
1123
|
const by = (_a = (0, cli_args_1.authorOf)(context.args)) !== null && _a !== void 0 ? _a : undefined;
|
|
869
1124
|
const allowed = flagVariant !== undefined && planRef !== undefined && ((_b = sketch.decision) === null || _b === void 0 ? void 0 : _b.kind) !== 'pick'
|
|
870
|
-
? { variant: flagVariant, planRef }
|
|
1125
|
+
? { variant: flagVariant, planRef, editRef: (0, merge_step_1.editRefOf)({ target: context.target, sketch, planRef }) }
|
|
871
1126
|
: undefined;
|
|
872
|
-
const result = (0, merge_step_1.mergeAndRecord)({
|
|
1127
|
+
const result = (0, phase_timing_1.timedPhase)('merge', () => (0, merge_step_1.mergeAndRecord)({
|
|
873
1128
|
target: context.target,
|
|
874
1129
|
config: context.config,
|
|
875
1130
|
product,
|
|
@@ -877,8 +1132,9 @@ const merged = (context) => withSketch(context, ({ product, sketch }) => {
|
|
|
877
1132
|
note,
|
|
878
1133
|
replaceNote,
|
|
879
1134
|
by,
|
|
1135
|
+
decidedBy: decidedBy === null || decidedBy === void 0 ? void 0 : decidedBy.trim(),
|
|
880
1136
|
allowed,
|
|
881
|
-
});
|
|
1137
|
+
}));
|
|
882
1138
|
if (typeof result === 'string')
|
|
883
1139
|
return fail(result);
|
|
884
1140
|
console.log(`merged ${sketch.target} variant ${result.variant} into ${product.name}: ${result.parts.join(', ')}`);
|
|
@@ -957,7 +1213,13 @@ const withdrawnVariant = (context_1, _a) => __awaiter(void 0, [context_1, _a], v
|
|
|
957
1213
|
return fail(`${sketch.target} has no variant "${variant}" - it has ${sketch.variants.join(', ')}`);
|
|
958
1214
|
if (!(0, sketch_1.authorsOf)(sketch, variant).includes(by))
|
|
959
1215
|
return fail(`${sketch.target} variant ${variant} was not drawn by ${by} - only the agent that drew it withdraws it`);
|
|
960
|
-
const identical = yield (0, ready_shots_1.identicalRenders)({
|
|
1216
|
+
const identical = yield (0, ready_shots_1.identicalRenders)({
|
|
1217
|
+
target: context.target,
|
|
1218
|
+
config: context.config,
|
|
1219
|
+
product,
|
|
1220
|
+
sketch,
|
|
1221
|
+
warm: context.warm,
|
|
1222
|
+
});
|
|
961
1223
|
const twin = identical.find((render) => render.variant === variant && render.sibling !== null);
|
|
962
1224
|
if (!twin)
|
|
963
1225
|
return fail(`${sketch.target} variant ${variant} does not draw the same pixels as a sibling variant in its first changed state - redraw it or ask for a reject`);
|
|
@@ -972,6 +1234,7 @@ const COMMANDS = {
|
|
|
972
1234
|
variant: varied,
|
|
973
1235
|
round: roundEdited,
|
|
974
1236
|
note: noteEdited,
|
|
1237
|
+
covers: coversEdited,
|
|
975
1238
|
list: listed,
|
|
976
1239
|
report: reported,
|
|
977
1240
|
ready: readied,
|
|
@@ -1003,7 +1266,8 @@ const flagsOf = (command) => {
|
|
|
1003
1266
|
* discards sketches, and rejects, reopens and withdraws their variants.
|
|
1004
1267
|
*/
|
|
1005
1268
|
const designSketch = (options) => {
|
|
1006
|
-
|
|
1269
|
+
var _a, _b;
|
|
1270
|
+
const { target, argv, invocation, warm } = options;
|
|
1007
1271
|
const [command = '', ...rest] = argv;
|
|
1008
1272
|
const run = COMMANDS[command];
|
|
1009
1273
|
const args = (0, cli_args_1.argsOf)(rest, flagsOf(command));
|
|
@@ -1021,7 +1285,16 @@ const designSketch = (options) => {
|
|
|
1021
1285
|
const config = (0, cli_args_1.configOf)(target);
|
|
1022
1286
|
if (typeof config === 'string')
|
|
1023
1287
|
return fail(config);
|
|
1024
|
-
|
|
1288
|
+
if (RETRIES.has(command)) {
|
|
1289
|
+
const named = (0, sketch_1.parseTarget)((_a = args.positional[0]) !== null && _a !== void 0 ? _a : '');
|
|
1290
|
+
(0, exports.retriedHeldMerges)({
|
|
1291
|
+
target,
|
|
1292
|
+
config,
|
|
1293
|
+
author: (_b = (0, cli_args_1.authorOf)(args)) !== null && _b !== void 0 ? _b : undefined,
|
|
1294
|
+
except: typeof named === 'string' ? undefined : (0, resolve_product_1.partKeyOf)(named),
|
|
1295
|
+
});
|
|
1296
|
+
}
|
|
1297
|
+
return run({ target, config, args, invocation, warm });
|
|
1025
1298
|
};
|
|
1026
1299
|
exports.designSketch = designSketch;
|
|
1027
1300
|
//# sourceMappingURL=sketch-command.js.map
|