@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.
- package/CHANGELOG.md +328 -0
- package/build-info.json +1 -0
- package/design/define-call.ts +72 -30
- package/design/define-part.ts +37 -4
- package/design/icon-sheet.ts +1 -1
- package/design/interaction-rows.ts +13 -6
- package/design/mark-part.ts +51 -1
- package/design/token-sheet.ts +1 -1
- package/design/web/frame-fit.ts +7 -0
- package/design/web/frame-surfaces.ts +294 -0
- package/design/web/frame.ts +41 -15
- package/design/web/surface-interactive.css +42 -0
- package/design/with-action.ts +29 -0
- package/package.json +3 -1
- package/src/index.js +9 -1
- package/src/index.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/build-watch.d.ts +26 -0
- package/src/lib/design/build-watch.js +138 -0
- package/src/lib/design/build-watch.js.map +1 -0
- package/src/lib/design/check.js +142 -16
- package/src/lib/design/check.js.map +1 -1
- package/src/lib/design/commit-hunks.d.ts +22 -0
- package/src/lib/design/commit-hunks.js +173 -0
- package/src/lib/design/commit-hunks.js.map +1 -0
- package/src/lib/design/design-command.d.ts +2 -0
- package/src/lib/design/design-command.js +160 -11
- package/src/lib/design/design-command.js.map +1 -1
- package/src/lib/design/force-interactions.d.ts +1 -1
- package/src/lib/design/force-interactions.js +4 -2
- package/src/lib/design/force-interactions.js.map +1 -1
- package/src/lib/design/inbox-command.js +9 -5
- package/src/lib/design/inbox-command.js.map +1 -1
- package/src/lib/design/mcp-command.d.ts +5 -1
- package/src/lib/design/mcp-command.js +29 -11
- package/src/lib/design/mcp-command.js.map +1 -1
- package/src/lib/design/merge-compare.d.ts +10 -2
- package/src/lib/design/merge-compare.js +63 -11
- package/src/lib/design/merge-compare.js.map +1 -1
- package/src/lib/design/motion-command.js +1 -1
- package/src/lib/design/motion-command.js.map +1 -1
- package/src/lib/design/motion-shot.js +3 -2
- package/src/lib/design/motion-shot.js.map +1 -1
- package/src/lib/design/new-call.js +19 -10
- package/src/lib/design/new-call.js.map +1 -1
- package/src/lib/design/part-marks.d.ts +3 -2
- package/src/lib/design/part-marks.js +13 -5
- package/src/lib/design/part-marks.js.map +1 -1
- package/src/lib/design/paths.d.ts +28 -0
- package/src/lib/design/paths.js.map +1 -1
- package/src/lib/design/product-command.d.ts +1 -1
- package/src/lib/design/product-command.js +12 -14
- package/src/lib/design/product-command.js.map +1 -1
- package/src/lib/design/ready-shots.d.ts +29 -3
- package/src/lib/design/ready-shots.js +105 -5
- package/src/lib/design/ready-shots.js.map +1 -1
- package/src/lib/design/render-packages.d.ts +4 -17
- package/src/lib/design/render-packages.js +20 -63
- package/src/lib/design/render-packages.js.map +1 -1
- package/src/lib/design/render-worker.js +1 -3
- package/src/lib/design/render-worker.js.map +1 -1
- package/src/lib/design/render.d.ts +2 -0
- package/src/lib/design/render.js +32 -7
- package/src/lib/design/render.js.map +1 -1
- package/src/lib/design/serve.d.ts +21 -1
- package/src/lib/design/serve.js +133 -19
- package/src/lib/design/serve.js.map +1 -1
- package/src/lib/design/server-identity.d.ts +36 -0
- package/src/lib/design/server-identity.js +68 -0
- package/src/lib/design/server-identity.js.map +1 -0
- package/src/lib/design/settle-frames.d.ts +4 -0
- package/src/lib/design/settle-frames.js +22 -0
- package/src/lib/design/settle-frames.js.map +1 -0
- package/src/lib/design/shot-command.d.ts +25 -4
- package/src/lib/design/shot-command.js +132 -46
- package/src/lib/design/shot-command.js.map +1 -1
- package/src/lib/design/shot.d.ts +50 -0
- package/src/lib/design/shot.js +143 -17
- package/src/lib/design/shot.js.map +1 -1
- package/src/lib/design/sketch-command.d.ts +6 -1
- package/src/lib/design/sketch-command.js +358 -126
- package/src/lib/design/sketch-command.js.map +1 -1
- package/src/lib/design/stale-cli-dist.d.ts +11 -0
- package/src/lib/design/stale-cli-dist.js +56 -0
- package/src/lib/design/stale-cli-dist.js.map +1 -0
- package/src/lib/design/stamp.d.ts +18 -1
- package/src/lib/design/stamp.js +53 -7
- package/src/lib/design/stamp.js.map +1 -1
- package/src/lib/design/started-by-studio.d.ts +1 -0
- package/src/lib/design/started-by-studio.js +6 -0
- package/src/lib/design/started-by-studio.js.map +1 -0
- package/src/lib/design/studio-api.d.ts +27 -8
- package/src/lib/design/studio-api.js +263 -58
- package/src/lib/design/studio-api.js.map +1 -1
- package/src/lib/design/system/accept-command.d.ts +39 -5
- package/src/lib/design/system/accept-command.js +109 -25
- package/src/lib/design/system/accept-command.js.map +1 -1
- package/src/lib/design/system/accepted-pictures.d.ts +83 -0
- package/src/lib/design/system/accepted-pictures.js +324 -0
- package/src/lib/design/system/accepted-pictures.js.map +1 -0
- package/src/lib/design/system/action-lost.d.ts +59 -0
- package/src/lib/design/system/action-lost.js +120 -0
- package/src/lib/design/system/action-lost.js.map +1 -0
- package/src/lib/design/system/action-press.d.ts +23 -0
- package/src/lib/design/system/action-press.js +76 -0
- package/src/lib/design/system/action-press.js.map +1 -0
- package/src/lib/design/system/action-undeclared.d.ts +34 -0
- package/src/lib/design/system/action-undeclared.js +81 -0
- package/src/lib/design/system/action-undeclared.js.map +1 -0
- package/src/lib/design/system/actions-command.d.ts +101 -0
- package/src/lib/design/system/actions-command.js +695 -0
- package/src/lib/design/system/actions-command.js.map +1 -0
- package/src/lib/design/system/actions.d.ts +158 -0
- package/src/lib/design/system/actions.js +295 -0
- package/src/lib/design/system/actions.js.map +1 -0
- package/src/lib/design/system/app-files.d.ts +10 -0
- package/src/lib/design/system/app-files.js +159 -0
- package/src/lib/design/system/app-files.js.map +1 -0
- package/src/lib/design/system/bespoke-controls.d.ts +30 -0
- package/src/lib/design/system/bespoke-controls.js +147 -0
- package/src/lib/design/system/bespoke-controls.js.map +1 -0
- package/src/lib/design/system/build-ready-contract.d.ts +27 -0
- package/src/lib/design/system/build-ready-contract.js +12 -0
- package/src/lib/design/system/build-ready-contract.js.map +1 -0
- package/src/lib/design/system/check-rules.d.ts +1 -0
- package/src/lib/design/system/check-rules.js +82 -0
- package/src/lib/design/system/check-rules.js.map +1 -0
- package/src/lib/design/system/check-system.d.ts +61 -6
- package/src/lib/design/system/check-system.js +479 -68
- package/src/lib/design/system/check-system.js.map +1 -1
- package/src/lib/design/system/comments/comment.d.ts +4 -1
- package/src/lib/design/system/comments/comment.js +13 -4
- package/src/lib/design/system/comments/comment.js.map +1 -1
- package/src/lib/design/system/comments/inbox.js +2 -2
- package/src/lib/design/system/comments/inbox.js.map +1 -1
- package/src/lib/design/system/compare-command.d.ts +119 -0
- package/src/lib/design/system/compare-command.js +558 -0
- package/src/lib/design/system/compare-command.js.map +1 -0
- package/src/lib/design/system/complete-command.js +1 -1
- package/src/lib/design/system/complete-command.js.map +1 -1
- package/src/lib/design/system/complete.d.ts +32 -1
- package/src/lib/design/system/complete.js +144 -48
- package/src/lib/design/system/complete.js.map +1 -1
- package/src/lib/design/system/component-outputs.d.ts +20 -0
- package/src/lib/design/system/component-outputs.js +86 -0
- package/src/lib/design/system/component-outputs.js.map +1 -0
- package/src/lib/design/system/contrast-check.d.ts +1 -1
- package/src/lib/design/system/contrast-check.js +14 -3
- package/src/lib/design/system/contrast-check.js.map +1 -1
- package/src/lib/design/system/demo-backdrop.d.ts +11 -0
- package/src/lib/design/system/demo-backdrop.js +41 -0
- package/src/lib/design/system/demo-backdrop.js.map +1 -0
- package/src/lib/design/system/design-hash.d.ts +31 -0
- package/src/lib/design/system/design-hash.js +73 -0
- package/src/lib/design/system/design-hash.js.map +1 -0
- package/src/lib/design/system/disabled-interaction.d.ts +8 -0
- package/src/lib/design/system/disabled-interaction.js +37 -0
- package/src/lib/design/system/disabled-interaction.js.map +1 -0
- package/src/lib/design/system/dom-command.d.ts +36 -0
- package/src/lib/design/system/dom-command.js +175 -0
- package/src/lib/design/system/dom-command.js.map +1 -0
- package/src/lib/design/system/drawn-open-points.d.ts +25 -3
- package/src/lib/design/system/drawn-open-points.js +65 -14
- package/src/lib/design/system/drawn-open-points.js.map +1 -1
- package/src/lib/design/system/dropped-props.d.ts +25 -0
- package/src/lib/design/system/dropped-props.js +159 -0
- package/src/lib/design/system/dropped-props.js.map +1 -0
- package/src/lib/design/system/embedded-actions.d.ts +21 -0
- package/src/lib/design/system/embedded-actions.js +37 -0
- package/src/lib/design/system/embedded-actions.js.map +1 -0
- package/src/lib/design/system/exceptions.js +2 -1
- package/src/lib/design/system/exceptions.js.map +1 -1
- package/src/lib/design/system/flows/flow.js +2 -1
- package/src/lib/design/system/flows/flow.js.map +1 -1
- package/src/lib/design/system/frozen-animations.d.ts +13 -0
- package/src/lib/design/system/frozen-animations.js +51 -0
- package/src/lib/design/system/frozen-animations.js.map +1 -0
- package/src/lib/design/system/go-batch.d.ts +24 -0
- package/src/lib/design/system/go-batch.js +110 -0
- package/src/lib/design/system/go-batch.js.map +1 -0
- package/src/lib/design/system/go-command.d.ts +4 -0
- package/src/lib/design/system/go-command.js +64 -0
- package/src/lib/design/system/go-command.js.map +1 -0
- package/src/lib/design/system/go-guard.d.ts +26 -0
- package/src/lib/design/system/go-guard.js +70 -0
- package/src/lib/design/system/go-guard.js.map +1 -0
- package/src/lib/design/system/go-step.d.ts +13 -0
- package/src/lib/design/system/go-step.js +84 -0
- package/src/lib/design/system/go-step.js.map +1 -0
- package/src/lib/design/system/handoff.js +2 -1
- package/src/lib/design/system/handoff.js.map +1 -1
- package/src/lib/design/system/harness-build-cache.d.ts +35 -0
- package/src/lib/design/system/harness-build-cache.js +175 -0
- package/src/lib/design/system/harness-build-cache.js.map +1 -0
- package/src/lib/design/system/harness-command.d.ts +7 -0
- package/src/lib/design/system/harness-command.js +51 -0
- package/src/lib/design/system/harness-command.js.map +1 -0
- package/src/lib/design/system/harness-config.d.ts +9 -0
- package/src/lib/design/system/harness-config.js +65 -0
- package/src/lib/design/system/harness-config.js.map +1 -0
- package/src/lib/design/system/harness-map.d.ts +44 -0
- package/src/lib/design/system/harness-map.js +126 -0
- package/src/lib/design/system/harness-map.js.map +1 -0
- package/src/lib/design/system/harness-samples.d.ts +20 -0
- package/src/lib/design/system/harness-samples.js +92 -0
- package/src/lib/design/system/harness-samples.js.map +1 -0
- package/src/lib/design/system/harness-server.d.ts +40 -0
- package/src/lib/design/system/harness-server.js +296 -0
- package/src/lib/design/system/harness-server.js.map +1 -0
- package/src/lib/design/system/imports.js +14 -1
- package/src/lib/design/system/imports.js.map +1 -1
- package/src/lib/design/system/in-order-at-once.d.ts +6 -0
- package/src/lib/design/system/in-order-at-once.js +28 -0
- package/src/lib/design/system/in-order-at-once.js.map +1 -0
- package/src/lib/design/system/inventory-approval.js +2 -1
- package/src/lib/design/system/inventory-approval.js.map +1 -1
- package/src/lib/design/system/inventory.d.ts +13 -4
- package/src/lib/design/system/inventory.js +36 -7
- package/src/lib/design/system/inventory.js.map +1 -1
- package/src/lib/design/system/list-system.d.ts +4 -0
- package/src/lib/design/system/list-system.js +12 -3
- package/src/lib/design/system/list-system.js.map +1 -1
- package/src/lib/design/system/live-actions.d.ts +121 -0
- package/src/lib/design/system/live-actions.js +665 -0
- package/src/lib/design/system/live-actions.js.map +1 -0
- package/src/lib/design/system/live-compare.d.ts +136 -0
- package/src/lib/design/system/live-compare.js +441 -0
- package/src/lib/design/system/live-compare.js.map +1 -0
- package/src/lib/design/system/live-uncovered.d.ts +40 -0
- package/src/lib/design/system/live-uncovered.js +123 -0
- package/src/lib/design/system/live-uncovered.js.map +1 -0
- package/src/lib/design/system/nested-scroll.d.ts +7 -0
- package/src/lib/design/system/nested-scroll.js +25 -0
- package/src/lib/design/system/nested-scroll.js.map +1 -0
- package/src/lib/design/system/notes/note.js +2 -1
- package/src/lib/design/system/notes/note.js.map +1 -1
- package/src/lib/design/system/occluded.d.ts +13 -0
- package/src/lib/design/system/occluded.js +111 -0
- package/src/lib/design/system/occluded.js.map +1 -0
- package/src/lib/design/system/open-points.d.ts +24 -6
- package/src/lib/design/system/open-points.js +59 -30
- package/src/lib/design/system/open-points.js.map +1 -1
- package/src/lib/design/system/part-build-ready.d.ts +39 -0
- package/src/lib/design/system/part-build-ready.js +107 -0
- package/src/lib/design/system/part-build-ready.js.map +1 -0
- package/src/lib/design/system/part-command.js +2 -9
- package/src/lib/design/system/part-command.js.map +1 -1
- package/src/lib/design/system/part-compare.d.ts +123 -0
- package/src/lib/design/system/part-compare.js +396 -0
- package/src/lib/design/system/part-compare.js.map +1 -0
- package/src/lib/design/system/part-go.d.ts +70 -0
- package/src/lib/design/system/part-go.js +94 -0
- package/src/lib/design/system/part-go.js.map +1 -0
- package/src/lib/design/system/part-ready.d.ts +44 -6
- package/src/lib/design/system/part-ready.js +88 -17
- package/src/lib/design/system/part-ready.js.map +1 -1
- package/src/lib/design/system/part-task.d.ts +147 -0
- package/src/lib/design/system/part-task.js +285 -0
- package/src/lib/design/system/part-task.js.map +1 -0
- package/src/lib/design/system/pointer-focus.d.ts +81 -0
- package/src/lib/design/system/pointer-focus.js +152 -0
- package/src/lib/design/system/pointer-focus.js.map +1 -0
- package/src/lib/design/system/prettier.d.ts +10 -0
- package/src/lib/design/system/prettier.js +36 -0
- package/src/lib/design/system/prettier.js.map +1 -0
- package/src/lib/design/system/reach.d.ts +12 -0
- package/src/lib/design/system/reach.js +186 -0
- package/src/lib/design/system/reach.js.map +1 -0
- package/src/lib/design/system/reachable-controls.d.ts +6 -0
- package/src/lib/design/system/reachable-controls.js +19 -0
- package/src/lib/design/system/reachable-controls.js.map +1 -0
- package/src/lib/design/system/reachable-files.d.ts +14 -0
- package/src/lib/design/system/reachable-files.js +101 -0
- package/src/lib/design/system/reachable-files.js.map +1 -0
- package/src/lib/design/system/reached-state.d.ts +23 -0
- package/src/lib/design/system/reached-state.js +53 -0
- package/src/lib/design/system/reached-state.js.map +1 -0
- package/src/lib/design/system/read-open-points.d.ts +9 -3
- package/src/lib/design/system/read-open-points.js +38 -9
- package/src/lib/design/system/read-open-points.js.map +1 -1
- package/src/lib/design/system/ready-command.d.ts +6 -2
- package/src/lib/design/system/ready-command.js +32 -15
- package/src/lib/design/system/ready-command.js.map +1 -1
- package/src/lib/design/system/render-check.d.ts +50 -0
- package/src/lib/design/system/render-check.js +341 -88
- package/src/lib/design/system/render-check.js.map +1 -1
- package/src/lib/design/system/resolve-product.js +5 -0
- package/src/lib/design/system/resolve-product.js.map +1 -1
- package/src/lib/design/system/rules/app-spec.d.ts +30 -0
- package/src/lib/design/system/rules/app-spec.js +87 -0
- package/src/lib/design/system/rules/app-spec.js.map +1 -0
- package/src/lib/design/system/rules/canonical-class.d.ts +2 -0
- package/src/lib/design/system/rules/canonical-class.js +36 -110
- package/src/lib/design/system/rules/canonical-class.js.map +1 -1
- package/src/lib/design/system/rules/capability-place.d.ts +44 -0
- package/src/lib/design/system/rules/capability-place.js +116 -0
- package/src/lib/design/system/rules/capability-place.js.map +1 -0
- package/src/lib/design/system/rules/denied-class.d.ts +9 -0
- package/src/lib/design/system/rules/denied-class.js +121 -0
- package/src/lib/design/system/rules/denied-class.js.map +1 -0
- package/src/lib/design/system/rules/exemptions.d.ts +18 -0
- package/src/lib/design/system/rules/exemptions.js +18 -0
- package/src/lib/design/system/rules/exemptions.js.map +1 -0
- package/src/lib/design/system/rules/flow.js +1 -1
- package/src/lib/design/system/rules/flow.js.map +1 -1
- package/src/lib/design/system/rules/glued-interpolation.d.ts +8 -0
- package/src/lib/design/system/rules/glued-interpolation.js +61 -0
- package/src/lib/design/system/rules/glued-interpolation.js.map +1 -0
- package/src/lib/design/system/rules/hard-coded-colour.js +2 -1
- package/src/lib/design/system/rules/hard-coded-colour.js.map +1 -1
- package/src/lib/design/system/rules/implemented-components.d.ts +22 -0
- package/src/lib/design/system/rules/implemented-components.js +45 -0
- package/src/lib/design/system/rules/implemented-components.js.map +1 -0
- package/src/lib/design/system/rules/implements.d.ts +2 -1
- package/src/lib/design/system/rules/implements.js +26 -21
- package/src/lib/design/system/rules/implements.js.map +1 -1
- package/src/lib/design/system/rules/inline-svg.js +4 -1
- package/src/lib/design/system/rules/inline-svg.js.map +1 -1
- package/src/lib/design/system/rules/inline-ui-in-page-open.d.ts +13 -0
- package/src/lib/design/system/rules/inline-ui-in-page-open.js +5 -0
- package/src/lib/design/system/rules/inline-ui-in-page-open.js.map +1 -0
- package/src/lib/design/system/rules/inline-ui-in-page.d.ts +18 -0
- package/src/lib/design/system/rules/inline-ui-in-page.js +123 -0
- package/src/lib/design/system/rules/inline-ui-in-page.js.map +1 -0
- package/src/lib/design/system/rules/inline-ui.d.ts +16 -0
- package/src/lib/design/system/rules/inline-ui.js +100 -0
- package/src/lib/design/system/rules/inline-ui.js.map +1 -0
- package/src/lib/design/system/rules/motion.d.ts +1 -1
- package/src/lib/design/system/rules/motion.js +25 -17
- package/src/lib/design/system/rules/motion.js.map +1 -1
- package/src/lib/design/system/rules/native-title.d.ts +7 -0
- package/src/lib/design/system/rules/native-title.js +64 -0
- package/src/lib/design/system/rules/native-title.js.map +1 -0
- package/src/lib/design/system/rules/orphan-endpoint-known.d.ts +12 -0
- package/src/lib/design/system/rules/orphan-endpoint-known.js +20 -0
- package/src/lib/design/system/rules/orphan-endpoint-known.js.map +1 -0
- package/src/lib/design/system/rules/orphan-endpoint.d.ts +23 -0
- package/src/lib/design/system/rules/orphan-endpoint.js +166 -0
- package/src/lib/design/system/rules/orphan-endpoint.js.map +1 -0
- package/src/lib/design/system/rules/part-rewrite.d.ts +13 -0
- package/src/lib/design/system/rules/part-rewrite.js +125 -0
- package/src/lib/design/system/rules/part-rewrite.js.map +1 -0
- package/src/lib/design/system/rules/sample-default-known.d.ts +5 -0
- package/src/lib/design/system/rules/sample-default-known.js +17 -0
- package/src/lib/design/system/rules/sample-default-known.js.map +1 -0
- package/src/lib/design/system/rules/sample-default.d.ts +22 -0
- package/src/lib/design/system/rules/sample-default.js +92 -0
- package/src/lib/design/system/rules/sample-default.js.map +1 -0
- package/src/lib/design/system/rules/stale-replace.js +4 -0
- package/src/lib/design/system/rules/stale-replace.js.map +1 -1
- package/src/lib/design/system/rules/state-in-component.d.ts +16 -0
- package/src/lib/design/system/rules/state-in-component.js +101 -0
- package/src/lib/design/system/rules/state-in-component.js.map +1 -0
- package/src/lib/design/system/rules/tailwind-classes.d.ts +51 -0
- package/src/lib/design/system/rules/tailwind-classes.js +232 -0
- package/src/lib/design/system/rules/tailwind-classes.js.map +1 -0
- package/src/lib/design/system/rules/top-level-await.d.ts +9 -0
- package/src/lib/design/system/rules/top-level-await.js +62 -0
- package/src/lib/design/system/rules/top-level-await.js.map +1 -0
- package/src/lib/design/system/rules/unbound-input-known.d.ts +5 -0
- package/src/lib/design/system/rules/unbound-input-known.js +47 -0
- package/src/lib/design/system/rules/unbound-input-known.js.map +1 -0
- package/src/lib/design/system/rules/unbound-input.d.ts +22 -0
- package/src/lib/design/system/rules/unbound-input.js +61 -0
- package/src/lib/design/system/rules/unbound-input.js.map +1 -0
- package/src/lib/design/system/rules/uncovered-region.d.ts +13 -0
- package/src/lib/design/system/rules/uncovered-region.js +36 -0
- package/src/lib/design/system/rules/uncovered-region.js.map +1 -0
- package/src/lib/design/system/rules/undefined-class.d.ts +9 -0
- package/src/lib/design/system/rules/undefined-class.js +32 -0
- package/src/lib/design/system/rules/undefined-class.js.map +1 -0
- package/src/lib/design/system/rules/undefined-token.d.ts +1 -1
- package/src/lib/design/system/rules/undefined-token.js +7 -61
- package/src/lib/design/system/rules/undefined-token.js.map +1 -1
- package/src/lib/design/system/rules/utility-css.d.ts +2 -1
- package/src/lib/design/system/rules/utility-css.js +29 -14
- package/src/lib/design/system/rules/utility-css.js.map +1 -1
- package/src/lib/design/system/rules/view-coverage.d.ts +8 -0
- package/src/lib/design/system/rules/view-coverage.js +51 -0
- package/src/lib/design/system/rules/view-coverage.js.map +1 -0
- package/src/lib/design/system/rules/visible-change.d.ts +20 -0
- package/src/lib/design/system/rules/visible-change.js +48 -0
- package/src/lib/design/system/rules/visible-change.js.map +1 -0
- package/src/lib/design/system/sdk-errors.d.ts +14 -0
- package/src/lib/design/system/sdk-errors.js +38 -0
- package/src/lib/design/system/sdk-errors.js.map +1 -0
- package/src/lib/design/system/see-through.d.ts +12 -0
- package/src/lib/design/system/see-through.js +112 -0
- package/src/lib/design/system/see-through.js.map +1 -0
- package/src/lib/design/system/settled-panes.d.ts +18 -0
- package/src/lib/design/system/settled-panes.js +70 -0
- package/src/lib/design/system/settled-panes.js.map +1 -0
- package/src/lib/design/system/sketch/after-merge.d.ts +11 -0
- package/src/lib/design/system/sketch/after-merge.js +51 -0
- package/src/lib/design/system/sketch/after-merge.js.map +1 -0
- package/src/lib/design/system/sketch/aktuell-placeholders.d.ts +30 -0
- package/src/lib/design/system/sketch/aktuell-placeholders.js +87 -0
- package/src/lib/design/system/sketch/aktuell-placeholders.js.map +1 -0
- package/src/lib/design/system/sketch/baseline.d.ts +19 -1
- package/src/lib/design/system/sketch/baseline.js +29 -7
- package/src/lib/design/system/sketch/baseline.js.map +1 -1
- package/src/lib/design/system/sketch/check-sketches.d.ts +10 -0
- package/src/lib/design/system/sketch/check-sketches.js +50 -4
- package/src/lib/design/system/sketch/check-sketches.js.map +1 -1
- package/src/lib/design/system/sketch/cli-args.d.ts +12 -2
- package/src/lib/design/system/sketch/cli-args.js +18 -3
- package/src/lib/design/system/sketch/cli-args.js.map +1 -1
- package/src/lib/design/system/sketch/edit-sketch.d.ts +21 -0
- package/src/lib/design/system/sketch/edit-sketch.js +117 -0
- package/src/lib/design/system/sketch/edit-sketch.js.map +1 -0
- package/src/lib/design/system/sketch/frame-budget.d.ts +24 -0
- package/src/lib/design/system/sketch/frame-budget.js +23 -0
- package/src/lib/design/system/sketch/frame-budget.js.map +1 -0
- package/src/lib/design/system/sketch/identical-renders.d.ts +31 -0
- package/src/lib/design/system/sketch/identical-renders.js +137 -0
- package/src/lib/design/system/sketch/identical-renders.js.map +1 -0
- package/src/lib/design/system/sketch/merge-shared.d.ts +2 -0
- package/src/lib/design/system/sketch/merge-shared.js +7 -10
- package/src/lib/design/system/sketch/merge-shared.js.map +1 -1
- package/src/lib/design/system/sketch/merge-step.d.ts +35 -0
- package/src/lib/design/system/sketch/merge-step.js +98 -0
- package/src/lib/design/system/sketch/merge-step.js.map +1 -0
- package/src/lib/design/system/sketch/merge.d.ts +10 -3
- package/src/lib/design/system/sketch/merge.js +103 -30
- package/src/lib/design/system/sketch/merge.js.map +1 -1
- package/src/lib/design/system/sketch/merged-layout.d.ts +17 -0
- package/src/lib/design/system/sketch/merged-layout.js +57 -0
- package/src/lib/design/system/sketch/merged-layout.js.map +1 -0
- package/src/lib/design/system/sketch/merged-parts.d.ts +40 -10
- package/src/lib/design/system/sketch/merged-parts.js +112 -49
- package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
- package/src/lib/design/system/sketch/no-visible-change.d.ts +10 -0
- package/src/lib/design/system/sketch/no-visible-change.js +16 -6
- package/src/lib/design/system/sketch/no-visible-change.js.map +1 -1
- package/src/lib/design/system/sketch/part-definition.d.ts +21 -1
- package/src/lib/design/system/sketch/part-definition.js +79 -17
- package/src/lib/design/system/sketch/part-definition.js.map +1 -1
- package/src/lib/design/system/sketch/rebase-port.d.ts +24 -0
- package/src/lib/design/system/sketch/rebase-port.js +170 -0
- package/src/lib/design/system/sketch/rebase-port.js.map +1 -0
- package/src/lib/design/system/sketch/sample-mark-drift.d.ts +33 -0
- package/src/lib/design/system/sketch/sample-mark-drift.js +88 -0
- package/src/lib/design/system/sketch/sample-mark-drift.js.map +1 -0
- package/src/lib/design/system/sketch/sketch-check-worker.d.ts +1 -0
- package/src/lib/design/system/sketch/sketch-check-worker.js +27 -0
- package/src/lib/design/system/sketch/sketch-check-worker.js.map +1 -0
- package/src/lib/design/system/sketch/sketch-checker.d.ts +27 -0
- package/src/lib/design/system/sketch/sketch-checker.js +99 -0
- package/src/lib/design/system/sketch/sketch-checker.js.map +1 -0
- package/src/lib/design/system/sketch/sketch.d.ts +63 -2
- package/src/lib/design/system/sketch/sketch.js +185 -30
- package/src/lib/design/system/sketch/sketch.js.map +1 -1
- package/src/lib/design/system/sketch/stale-base.d.ts +22 -0
- package/src/lib/design/system/sketch/stale-base.js +56 -0
- package/src/lib/design/system/sketch/stale-base.js.map +1 -0
- package/src/lib/design/system/sketch/unchanged-states.d.ts +32 -0
- package/src/lib/design/system/sketch/unchanged-states.js +52 -13
- package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
- package/src/lib/design/system/sketch/unused-closure.js +16 -4
- package/src/lib/design/system/sketch/unused-closure.js.map +1 -1
- package/src/lib/design/system/sketch/viewed-shots.d.ts +24 -0
- package/src/lib/design/system/sketch/viewed-shots.js +61 -0
- package/src/lib/design/system/sketch/viewed-shots.js.map +1 -0
- package/src/lib/design/system/slow-checks.d.ts +40 -0
- package/src/lib/design/system/slow-checks.js +197 -0
- package/src/lib/design/system/slow-checks.js.map +1 -0
- package/src/lib/design/system/slow-run.d.ts +57 -0
- package/src/lib/design/system/slow-run.js +253 -0
- package/src/lib/design/system/slow-run.js.map +1 -0
- package/src/lib/design/system/stale-design-mocks.d.ts +20 -0
- package/src/lib/design/system/stale-design-mocks.js +59 -0
- package/src/lib/design/system/stale-design-mocks.js.map +1 -0
- package/src/lib/design/system/stale-dist.d.ts +25 -0
- package/src/lib/design/system/stale-dist.js +91 -0
- package/src/lib/design/system/stale-dist.js.map +1 -0
- package/src/lib/design/system/stale-parts.d.ts +30 -0
- package/src/lib/design/system/stale-parts.js +106 -0
- package/src/lib/design/system/stale-parts.js.map +1 -0
- package/src/lib/design/system/surface-nesting.d.ts +11 -0
- package/src/lib/design/system/surface-nesting.js +86 -0
- package/src/lib/design/system/surface-nesting.js.map +1 -0
- package/src/lib/design/system/system-command.js +8 -6
- package/src/lib/design/system/system-command.js.map +1 -1
- package/src/lib/design/system/system-modules.d.ts +16 -1
- package/src/lib/design/system/system-modules.js +18 -2
- package/src/lib/design/system/system-modules.js.map +1 -1
- package/src/lib/design/system/task-command.d.ts +51 -0
- package/src/lib/design/system/task-command.js +233 -0
- package/src/lib/design/system/task-command.js.map +1 -0
- package/src/lib/design/system/theming-text.d.ts +2 -0
- package/src/lib/design/system/theming-text.js +6 -0
- package/src/lib/design/system/theming-text.js.map +1 -0
- package/src/lib/design/system/tom-confirm.d.ts +40 -0
- package/src/lib/design/system/tom-confirm.js +55 -0
- package/src/lib/design/system/tom-confirm.js.map +1 -0
- package/src/lib/design/system/touched-parts.d.ts +16 -0
- package/src/lib/design/system/touched-parts.js +122 -0
- package/src/lib/design/system/touched-parts.js.map +1 -0
- package/src/lib/design/system/ts-source.d.ts +2 -0
- package/src/lib/design/system/ts-source.js +15 -1
- package/src/lib/design/system/ts-source.js.map +1 -1
- package/src/lib/design/system/unchanged-rows.d.ts +15 -0
- package/src/lib/design/system/unchanged-rows.js +134 -0
- package/src/lib/design/system/unchanged-rows.js.map +1 -0
- package/src/lib/design/system/uncommitted-decisions.d.ts +6 -0
- package/src/lib/design/system/uncommitted-decisions.js +38 -0
- package/src/lib/design/system/uncommitted-decisions.js.map +1 -0
- package/src/lib/design/system/uncovered-regions.d.ts +61 -0
- package/src/lib/design/system/uncovered-regions.js +171 -0
- package/src/lib/design/system/uncovered-regions.js.map +1 -0
- package/src/lib/design/system/unused-base-parts.d.ts +7 -0
- package/src/lib/design/system/unused-base-parts.js +76 -0
- package/src/lib/design/system/unused-base-parts.js.map +1 -0
- package/src/lib/design/system/visible-change-command.d.ts +48 -0
- package/src/lib/design/system/visible-change-command.js +308 -0
- package/src/lib/design/system/visible-change-command.js.map +1 -0
- package/src/lib/design/system/visible-change-parts.d.ts +28 -0
- package/src/lib/design/system/visible-change-parts.js +96 -0
- package/src/lib/design/system/visible-change-parts.js.map +1 -0
- package/src/lib/design/system/visible-change.d.ts +82 -0
- package/src/lib/design/system/visible-change.js +149 -0
- package/src/lib/design/system/visible-change.js.map +1 -0
- package/src/lib/design/thumb.d.ts +19 -2
- package/src/lib/design/thumb.js +50 -15
- package/src/lib/design/thumb.js.map +1 -1
- package/src/lib/design/typecheck.d.ts +1 -1
- package/src/lib/design/typecheck.js +3 -3
- package/src/lib/design/typecheck.js.map +1 -1
- package/src/lib/design/unstable-cells.d.ts +23 -0
- package/src/lib/design/unstable-cells.js +40 -0
- package/src/lib/design/unstable-cells.js.map +1 -0
- package/src/lib/design/variant-diff.js +1 -1
- package/src/lib/design/variant-diff.js.map +1 -1
- package/src/lib/design/wait.d.ts +15 -0
- package/src/lib/design/wait.js +30 -0
- package/src/lib/design/wait.js.map +1 -0
- package/src/lib/json-file.d.ts +11 -0
- package/src/lib/json-file.js +21 -0
- package/src/lib/json-file.js.map +1 -0
- package/src/lib/source-hash.d.ts +7 -0
- package/src/lib/source-hash.js +62 -0
- package/src/lib/source-hash.js.map +1 -0
- package/src/lib/update/agent-setup.js +2 -1
- package/src/lib/update/agent-setup.js.map +1 -1
- package/src/lib/update/migration-manifest.d.ts +12 -0
- package/src/lib/update/migration-manifest.js +13 -0
- package/src/lib/update/migration-manifest.js.map +1 -1
- package/src/lib/update/migration-record.js +2 -1
- package/src/lib/update/migration-record.js.map +1 -1
- package/src/lib/update/pending.js +2 -1
- package/src/lib/update/pending.js.map +1 -1
- package/src/lib/update/run-migrations.d.ts +3 -2
- package/src/lib/update/run-migrations.js +38 -5
- package/src/lib/update/run-migrations.js.map +1 -1
- package/src/lib/update/tasks.js +2 -1
- package/src/lib/update/tasks.js.map +1 -1
|
@@ -20,61 +20,76 @@ 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.sketchFlagHelpOf = exports.SKETCH_USAGE = void 0;
|
|
23
|
+
exports.designSketch = exports.verdictLinesOf = exports.beforeLinesOf = exports.sketchFlagHelpOf = exports.SKETCH_USAGE = void 0;
|
|
24
24
|
const unused_closure_1 = require("./system/sketch/unused-closure");
|
|
25
|
+
const fs_1 = require("fs");
|
|
25
26
|
const path_1 = require("path");
|
|
26
27
|
const assets_1 = require("./system/assets");
|
|
27
28
|
const comment_1 = require("./system/comments/comment");
|
|
28
29
|
const product_1 = require("./system/product");
|
|
29
30
|
const resolve_product_1 = require("./system/resolve-product");
|
|
30
31
|
const check_format_1 = require("./system/sketch/check-format");
|
|
32
|
+
const frame_budget_1 = require("./system/sketch/frame-budget");
|
|
31
33
|
const check_sketches_1 = require("./system/sketch/check-sketches");
|
|
32
34
|
const cli_args_1 = require("./system/sketch/cli-args");
|
|
33
35
|
const ready_shots_1 = require("./ready-shots");
|
|
36
|
+
const no_visible_change_1 = require("./system/sketch/no-visible-change");
|
|
37
|
+
const viewed_shots_1 = require("./system/sketch/viewed-shots");
|
|
34
38
|
const merge_1 = require("./system/sketch/merge");
|
|
39
|
+
const merge_step_1 = require("./system/sketch/merge-step");
|
|
40
|
+
const check_system_1 = require("./system/check-system");
|
|
41
|
+
const invocation_1 = require("../invocation");
|
|
35
42
|
const merged_parts_1 = require("./system/sketch/merged-parts");
|
|
36
43
|
const render_check_1 = require("./system/render-check");
|
|
37
44
|
const merge_preview_1 = require("./system/sketch/merge-preview");
|
|
38
45
|
const open_points_1 = require("./system/open-points");
|
|
39
46
|
const read_open_points_1 = require("./system/read-open-points");
|
|
40
47
|
const overlay_1 = require("./system/sketch/overlay");
|
|
48
|
+
const rebase_port_1 = require("./system/sketch/rebase-port");
|
|
49
|
+
const theming_text_1 = require("./system/theming-text");
|
|
41
50
|
const sketch_1 = require("./system/sketch/sketch");
|
|
42
51
|
exports.SKETCH_USAGE = [
|
|
43
|
-
'sketch new <layer>/<name> [<layer>/<name>…] --variants a,b --by <model id> [--like <layer>/<name>[:<variant>]] [--round <title>] [--note <text>] [--variant-note <variant>=<text>]… [--override | --into-base] [--product <name>]',
|
|
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>]',
|
|
44
53
|
'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>]',
|
|
45
54
|
'sketch round <layer>/<name> <round> [--title <text>] [--note <text>] [--drops <state,state>] --by <model id> [--product <name>]',
|
|
46
55
|
'sketch note <layer>/<name> <variant> <text> --by <model id> [--product <name>]',
|
|
47
56
|
'sketch target add <layer>/<name> <layer>/<name> --by <model id> [--product <name>]',
|
|
57
|
+
'sketch target remove <layer>/<name> <layer>/<name> --by <model id> [--product <name>]',
|
|
48
58
|
'sketch list [--product <name>] [--json]',
|
|
49
|
-
'sketch report <layer>/<name> --variant <key> --by <model id> (<text> | --done) [--product <name>]',
|
|
59
|
+
'sketch report <layer>/<name> --variant <key> --by <model id> (<text> | --done) [--reopen] [--product <name>]',
|
|
50
60
|
'sketch ready <layer>/<name> --by <model id> [--product <name>]',
|
|
51
61
|
'sketch hold <layer>/<name> --until <what the change waits on> --by <model id> [--product <name>]',
|
|
52
62
|
'sketch release <layer>/<name> --by <model id> [--product <name>]',
|
|
53
63
|
'sketch check [<layer>/<name>] [--fix] [--product <name>]',
|
|
54
64
|
'sketch preview <layer>/<name> <variant> [--product <name>] [--json]',
|
|
55
|
-
'sketch rebase <layer>/<name> --by <model id> [--product <name>]',
|
|
56
|
-
'sketch merge <layer>/<name> [--note <reason>] [--variant <key> --allowed-by <plan ref>] --by <model id> [--product <name>]',
|
|
65
|
+
'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>]',
|
|
57
67
|
'sketch discard <layer>/<name> --by <model id> [--product <name>]',
|
|
58
68
|
'sketch reject <layer>/<name> --variant <key> [--reason <text>] --by <model id | designer> [--product <name>]',
|
|
59
69
|
'sketch reopen <layer>/<name> --variant <key> [--reason <text>] --by <model id | designer> [--product <name>]',
|
|
70
|
+
'sketch withdraw <layer>/<name> --variant <key> --by <model id> [--product <name>]',
|
|
60
71
|
];
|
|
61
72
|
const FLAG_HELP = {
|
|
62
73
|
'--variants': 'the variant folders to open, a comma list: a,b,c',
|
|
63
74
|
'--variant-note': "the note of one variant, kept in sketch.json apart from the part's merged note; repeat it per variant: a=<text>",
|
|
64
75
|
'--by': 'the exact model id the coordinator gave you, e.g. claude-opus-5-5',
|
|
76
|
+
'--name': 'a second sketch on a part that has one: it lives in its own folder and is addressed as <layer>/<name>@<sketch name>',
|
|
65
77
|
'--like': 'start each variant from another part, or from a variant of the open sketch on it',
|
|
66
78
|
'--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',
|
|
67
79
|
'--into-base': 'on a part the product overrides: start from the product copy, merge into the base and remove the copy',
|
|
80
|
+
'--ported': 'on rebase: the conflicting files hold the product change already, ported by hand - keep them and rebase',
|
|
68
81
|
'--round': 'the title of a new round',
|
|
69
82
|
'--round-note': 'what the new round shows',
|
|
70
83
|
'--from': 'the variant to copy',
|
|
71
84
|
'--title': 'the new title of the round',
|
|
72
85
|
'--drops': 'the states the round drops on purpose, a comma list',
|
|
73
86
|
'--variant': 'the variant the command is about; on merge, the only live variant of a sketch with no pick',
|
|
74
|
-
'--allowed-by': 'the plan entry that lets the merge go without a pick in Studio;
|
|
87
|
+
'--allowed-by': 'the plan entry that lets the merge go without a pick in Studio; noted in merged.json, needs --variant',
|
|
88
|
+
'--replace-note': "on merge: also write --note over each target part's note",
|
|
75
89
|
'--reason': 'why; on reject of a variant that is rejected already it sets the reason of that rejection; stored with who wrote it',
|
|
76
90
|
'--until': 'what the pending change waits on: an open decision, a helper still to land',
|
|
77
91
|
'--done': 'end the live report of the variant',
|
|
92
|
+
'--reopen': 'on report: move a ready sketch back to in progress',
|
|
78
93
|
'--product': 'the product; needed only when config.json declares more than one and no other product has the sketch',
|
|
79
94
|
'--json': 'print JSON',
|
|
80
95
|
'--fix': "write the variants in the checkout's Prettier format first",
|
|
@@ -84,7 +99,7 @@ const NOTE_HELP = {
|
|
|
84
99
|
new: 'what the first round shows',
|
|
85
100
|
variant: 'why the running round lost; needed with --round',
|
|
86
101
|
round: 'what the round shows',
|
|
87
|
-
merge:
|
|
102
|
+
merge: "why this variant; noted in merged.json, the part's note stays",
|
|
88
103
|
};
|
|
89
104
|
/** One line per flag the usage line names, for `sketch <command> --help`. */
|
|
90
105
|
const sketchFlagHelpOf = (usage) => {
|
|
@@ -94,7 +109,7 @@ const sketchFlagHelpOf = (usage) => {
|
|
|
94
109
|
return [...new Set((_b = usage.match(/--[a-z-]+/gu)) !== null && _b !== void 0 ? _b : [])].flatMap((flag) => help[flag] === undefined ? [] : [` ${flag.padEnd(16)}${help[flag]}`]);
|
|
95
110
|
};
|
|
96
111
|
exports.sketchFlagHelpOf = sketchFlagHelpOf;
|
|
97
|
-
const VERDICTS = new Set(['reject', 'reopen']);
|
|
112
|
+
const VERDICTS = new Set(['reject', 'reopen', 'withdraw']);
|
|
98
113
|
const WRITES = new Set([
|
|
99
114
|
'new',
|
|
100
115
|
'target',
|
|
@@ -180,6 +195,10 @@ const created = (context) => {
|
|
|
180
195
|
return fail(unknown);
|
|
181
196
|
if (parsed === undefined || typeof parsed === 'string')
|
|
182
197
|
return fail((_a = exports.SKETCH_USAGE[0]) !== null && _a !== void 0 ? _a : '');
|
|
198
|
+
const name = args.values['--name'];
|
|
199
|
+
const named = name === undefined ? parsed : (0, sketch_1.parseTarget)(`${parsed.layer}/${parsed.name}@${name}`);
|
|
200
|
+
if (typeof named === 'string')
|
|
201
|
+
return fail(named);
|
|
183
202
|
const variants = ((_b = args.values['--variants']) !== null && _b !== void 0 ? _b : '').split(',').filter((variant) => variant !== '');
|
|
184
203
|
const notes = variantNotesOf((_c = args.repeated['--variant-note']) !== null && _c !== void 0 ? _c : [], variants);
|
|
185
204
|
if (typeof notes === 'string')
|
|
@@ -196,7 +215,7 @@ const created = (context) => {
|
|
|
196
215
|
return fail('pass --override or --into-base, not both');
|
|
197
216
|
const sketch = (0, sketch_1.createSketch)({
|
|
198
217
|
product,
|
|
199
|
-
sketch:
|
|
218
|
+
sketch: named,
|
|
200
219
|
others: others.filter((entry) => typeof entry !== 'string'),
|
|
201
220
|
variants,
|
|
202
221
|
roundTitle: args.values['--round'],
|
|
@@ -228,14 +247,17 @@ const nextStepsOf = (sketch, product) => {
|
|
|
228
247
|
return [
|
|
229
248
|
'Next:',
|
|
230
249
|
` sketch report ${at} --variant ${first} --by <model id> "<what you draw>" while you draw a variant`,
|
|
231
|
-
` sketch report ${at} --variant ${first} --by <model id> --done when you stop drawing it; no report runs yet, so none is needed now`,
|
|
232
250
|
...(running.note.trim() === ''
|
|
233
251
|
? [
|
|
234
252
|
` sketch round ${sketch.target} ${running.key} --product ${product} --note "<what the round shows>" --by <model id>`,
|
|
235
253
|
]
|
|
236
254
|
: []),
|
|
237
255
|
` sketch check ${at}`,
|
|
256
|
+
` shot ${sketch.targets[0]} --states --variants --product ${product} look at it: ready refuses a pixel diff without a viewed shot`,
|
|
238
257
|
` sketch ready ${at} --by <model id>`,
|
|
258
|
+
` 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, go.json): commit it with \`et design commit-hunks <file> --part ${sketch.targets[0]}\`, never as a whole file another session also edits`,
|
|
260
|
+
theming_text_1.THEMING_TEXT,
|
|
239
261
|
];
|
|
240
262
|
};
|
|
241
263
|
const variantNotesOf = (pairs, variants) => {
|
|
@@ -339,9 +361,10 @@ const listed = (context) => {
|
|
|
339
361
|
? `, picked ${sketch.decision.variant}`
|
|
340
362
|
: ', discard asked'
|
|
341
363
|
: '';
|
|
342
|
-
const rejected = sketch.variants.filter((variant) => (0, sketch_1.rejectionOf)(sketch, variant));
|
|
364
|
+
const rejected = sketch.variants.filter((variant) => { var _a; return ((_a = (0, sketch_1.rejectionOf)(sketch, variant)) === null || _a === void 0 ? void 0 : _a.status) !== 'withdrawn' && (0, sketch_1.rejectionOf)(sketch, variant); });
|
|
365
|
+
const withdrawnKeys = sketch.variants.filter((variant) => { var _a; return ((_a = (0, sketch_1.rejectionOf)(sketch, variant)) === null || _a === void 0 ? void 0 : _a.status) === 'withdrawn'; });
|
|
343
366
|
const extra = sketch.targets.slice(1);
|
|
344
|
-
console.log(`${sketch.product} ${sketch.target}${extra.length > 0 ? ` (+ ${extra.join(', ')})` : ''} ${sketch.status} ${sketch.variants.join(', ')}${decided}${rejected.length > 0 ? `, rejected ${rejected.join(', ')}` : ''}${sketch.hold ? `, held until: ${sketch.hold.until}` : ''}`);
|
|
367
|
+
console.log(`${sketch.product} ${sketch.target}${extra.length > 0 ? ` (+ ${extra.join(', ')})` : ''} ${sketch.status} ${sketch.variants.join(', ')}${decided}${rejected.length > 0 ? `, rejected ${rejected.join(', ')}` : ''}${withdrawnKeys.length > 0 ? `, withdrawn ${withdrawnKeys.join(', ')}` : ''}${sketch.hold ? `, held until: ${sketch.hold.until}` : ''}`);
|
|
345
368
|
for (const round of sketch.rounds) {
|
|
346
369
|
const variants = sketch.variants.filter((variant) => { var _a; return ((_a = sketch.variantInfo[variant]) === null || _a === void 0 ? void 0 : _a.round) === round.key; });
|
|
347
370
|
console.log(` ${round.key} ${round.title} ${variants.join(', ')}${round.note === '' ? '' : ` - ${round.note}`}${round.lost ? ` - lost: ${round.lost}` : ''}`);
|
|
@@ -358,13 +381,23 @@ const reported = (context) => withSketch(context, ({ sketch }) => {
|
|
|
358
381
|
const author = (0, cli_args_1.authorOf)(context.args);
|
|
359
382
|
const done = context.args.flags.has('--done');
|
|
360
383
|
if ((message === '' && !done) || !variant || !author)
|
|
361
|
-
return fail(`usage: sketch report <layer>/<name> --variant <key> --by <model id> (<text> | --done) [--product <name>] - --product is needed when config.json declares more than one product`);
|
|
384
|
+
return fail(`usage: sketch report <layer>/<name> --variant <key> --by <model id> (<text> | --done) [--reopen] [--product <name>] - --product is needed when config.json declares more than one product`);
|
|
362
385
|
if (done) {
|
|
386
|
+
const notReady = roundNoteRefusalOf(sketch) === null ? roundNotReadyProblemOf(sketch) : null;
|
|
387
|
+
if (notReady !== null)
|
|
388
|
+
return fail(notReady);
|
|
363
389
|
(0, sketch_1.finishSketchReport)({ checkout: context.target, sketch, variant });
|
|
364
390
|
console.log(`${sketch.target} variant ${variant} marked done`);
|
|
365
391
|
return 0;
|
|
366
392
|
}
|
|
367
|
-
const reported = (0, sketch_1.reportSketch)({
|
|
393
|
+
const reported = (0, sketch_1.reportSketch)({
|
|
394
|
+
checkout: context.target,
|
|
395
|
+
sketch,
|
|
396
|
+
variant,
|
|
397
|
+
author,
|
|
398
|
+
message,
|
|
399
|
+
reopen: context.args.flags.has('--reopen'),
|
|
400
|
+
});
|
|
368
401
|
if (typeof reported === 'string')
|
|
369
402
|
return fail(reported);
|
|
370
403
|
console.log(`reported on ${sketch.target} variant ${variant}: ${message}${sketch.status === 'ready' ? ' - back in progress, mark it ready again when done' : ''}`);
|
|
@@ -401,10 +434,30 @@ const noteEdited = (context) => withSketch(context, ({ sketch }) => {
|
|
|
401
434
|
console.log(`${edited.target} variant ${variant}: ${note}`);
|
|
402
435
|
return 0;
|
|
403
436
|
});
|
|
437
|
+
const targetRemoved = (context) => {
|
|
438
|
+
const usage = `usage: ${exports.SKETCH_USAGE.find((line) => line.startsWith('sketch target remove'))}`;
|
|
439
|
+
const rest = context.args.positional.slice(1);
|
|
440
|
+
const [, part] = rest;
|
|
441
|
+
if (rest.length !== 2 || !part)
|
|
442
|
+
return fail(usage);
|
|
443
|
+
const parsed = (0, sketch_1.parseTarget)(part);
|
|
444
|
+
if (typeof parsed === 'string')
|
|
445
|
+
return fail(parsed);
|
|
446
|
+
return withSketch(Object.assign(Object.assign({}, context), { args: Object.assign(Object.assign({}, context.args), { positional: rest }) }), ({ sketch }) => {
|
|
447
|
+
const removed = (0, sketch_1.removeTarget)({ sketch, part: parsed });
|
|
448
|
+
if (typeof removed === 'string')
|
|
449
|
+
return fail(removed);
|
|
450
|
+
(0, check_format_1.formatSketch)({ target: context.target, sketch: removed, variants: removed.variants });
|
|
451
|
+
console.log(`${removed.target} now targets ${removed.targets.join(', ')}`);
|
|
452
|
+
return 0;
|
|
453
|
+
});
|
|
454
|
+
};
|
|
404
455
|
const targetAdded = (context) => {
|
|
405
456
|
const [action, ...rest] = context.args.positional;
|
|
406
457
|
const [, part] = rest;
|
|
407
458
|
const usage = `usage: ${exports.SKETCH_USAGE.find((line) => line.startsWith('sketch target '))}`;
|
|
459
|
+
if (action === 'remove')
|
|
460
|
+
return targetRemoved(context);
|
|
408
461
|
if (action !== 'add' || rest.length !== 2 || !part)
|
|
409
462
|
return fail(usage);
|
|
410
463
|
const parsed = (0, sketch_1.parseTarget)(part);
|
|
@@ -433,33 +486,61 @@ const readied = (context) => {
|
|
|
433
486
|
return renderedAndReady(context, found);
|
|
434
487
|
};
|
|
435
488
|
const renderedAndReady = (context, found) => __awaiter(void 0, void 0, void 0, function* () {
|
|
489
|
+
var _a;
|
|
436
490
|
const { product, sketch } = found;
|
|
437
491
|
const rendered = yield renderedVariantsOf({
|
|
438
492
|
target: context.target,
|
|
439
493
|
config: context.config,
|
|
440
494
|
product,
|
|
441
|
-
entries: sketch.variants.map((variant) => ({ sketch, variant })),
|
|
495
|
+
entries: sketch.variants.filter((variant) => !(0, sketch_1.rejectionOf)(sketch, variant)).map((variant) => ({ sketch, variant })),
|
|
442
496
|
drawn: false,
|
|
443
497
|
});
|
|
444
498
|
if ('issues' in rendered && rendered.issues.length > 0)
|
|
445
499
|
return fail(`${sketch.target} has problems - fix them before ready`);
|
|
500
|
+
const busyAdded = 'issues' in rendered ? openPointLinesOf({ product, sketch, busy: (_a = rendered.busy) !== null && _a !== void 0 ? _a : [] }).added : [];
|
|
501
|
+
if (busyAdded.length > 0)
|
|
502
|
+
return fail(`${busyAdded.join('\n')}\n${sketch.target} adds open points - close them before ready`);
|
|
446
503
|
return loadedAndReady(context, found);
|
|
447
504
|
});
|
|
448
505
|
const loadedAndReady = (context_1, _a) => __awaiter(void 0, [context_1, _a], void 0, function* (context, { product, sketch }) {
|
|
449
|
-
var _b;
|
|
450
|
-
const unloaded = yield (
|
|
506
|
+
var _b, _c;
|
|
507
|
+
const unloaded = yield unloadedLinesOf({ target: context.target, config: context.config, product, sketch });
|
|
451
508
|
if (unloaded.length > 0)
|
|
452
|
-
return fail(`${unloaded.
|
|
509
|
+
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 });
|
|
511
|
+
if (drifts.length > 0)
|
|
512
|
+
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 });
|
|
514
|
+
if (identical.length > 0)
|
|
515
|
+
return fail(`${identical.join('\n')}\n${sketch.target} draws variants alike - fix them before ready`);
|
|
516
|
+
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 })
|
|
518
|
+
: null;
|
|
519
|
+
const unviewed = Array.isArray(changes)
|
|
520
|
+
? (0, viewed_shots_1.unviewedShotLinesOf)({
|
|
521
|
+
target: context.target,
|
|
522
|
+
invocation: (_b = context.invocation) !== null && _b !== void 0 ? _b : (0, invocation_1.repoInvocation)({ root: context.target, subcommand: 'design' }),
|
|
523
|
+
sketch,
|
|
524
|
+
changes,
|
|
525
|
+
})
|
|
526
|
+
: [];
|
|
527
|
+
if (unviewed.length > 0)
|
|
528
|
+
return fail(`${unviewed.join('\n')}\n${sketch.target} draws a pixel diff - view its shot before ready`);
|
|
453
529
|
const ready = sketch.status === 'ready'
|
|
454
530
|
? sketch
|
|
455
|
-
: (0, sketch_1.markSketchReady)({ checkout: context.target, sketch, author: (
|
|
531
|
+
: (0, sketch_1.markSketchReady)({ checkout: context.target, sketch, author: (_c = (0, cli_args_1.authorOf)(context.args)) !== null && _c !== void 0 ? _c : undefined });
|
|
456
532
|
if (typeof ready === 'string')
|
|
457
533
|
return fail(ready);
|
|
458
|
-
return autoMerged({ context, product, sketch: ready, again: sketch.status === 'ready' });
|
|
534
|
+
return autoMerged({ context, product, sketch: ready, again: sketch.status === 'ready', changes });
|
|
459
535
|
});
|
|
460
|
-
const
|
|
536
|
+
const stillReady = (options) => {
|
|
537
|
+
if (options.again)
|
|
538
|
+
console.log(`${options.sketch.target} is still ready`);
|
|
539
|
+
return 0;
|
|
540
|
+
};
|
|
541
|
+
const autoMerged = (options) => {
|
|
461
542
|
var _a, _b;
|
|
462
|
-
const { context, product, sketch, again } = options;
|
|
543
|
+
const { context, product, sketch, again, changes } = options;
|
|
463
544
|
if (!again)
|
|
464
545
|
console.log(`${sketch.target} is ready`);
|
|
465
546
|
for (const variant of sketch.variants.filter((candidate) => !(0, sketch_1.rejectionOf)(sketch, candidate))) {
|
|
@@ -467,70 +548,120 @@ const autoMerged = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
467
548
|
if (shared.length > 0)
|
|
468
549
|
console.log(`variant ${variant}: a shared/ edit reaches ${shared.join(', ')}`);
|
|
469
550
|
}
|
|
470
|
-
if (
|
|
551
|
+
if (changes === null) {
|
|
471
552
|
console.log('auto-merge skipped: new part, the user merges');
|
|
472
|
-
return
|
|
553
|
+
return stillReady({ sketch, again });
|
|
473
554
|
}
|
|
474
|
-
const noChange =
|
|
555
|
+
const noChange = typeof changes === 'string' ? changes : (0, no_visible_change_1.noChangeOf)(changes);
|
|
475
556
|
if (noChange !== true) {
|
|
476
557
|
console.log(`auto-merge skipped: ${noChange}`);
|
|
477
|
-
return
|
|
558
|
+
return stillReady({ sketch, again });
|
|
478
559
|
}
|
|
479
560
|
const author = (_a = (0, cli_args_1.authorOf)(context.args)) !== null && _a !== void 0 ? _a : undefined;
|
|
480
561
|
const variant = (_b = sketch.variants.find((candidate) => !(0, sketch_1.rejectionOf)(sketch, candidate))) !== null && _b !== void 0 ? _b : '';
|
|
562
|
+
const sketchFile = (0, path_1.resolve)(sketch.dir, sketch_1.SKETCH_FILE);
|
|
563
|
+
const undecided = (0, fs_1.readFileSync)(sketchFile, 'utf8');
|
|
481
564
|
const decided = (0, sketch_1.decideSketch)({ sketch, decision: { kind: 'pick', variant } });
|
|
482
565
|
if (typeof decided === 'string')
|
|
483
566
|
return fail(decided);
|
|
484
|
-
const
|
|
567
|
+
const written = sharedFilesOf(product);
|
|
568
|
+
const before = written.map((file) => contentOf(file));
|
|
569
|
+
const result = (0, merge_1.mergeSketch)({
|
|
570
|
+
target: context.target,
|
|
571
|
+
config: context.config,
|
|
572
|
+
product,
|
|
573
|
+
sketch: decided,
|
|
574
|
+
author,
|
|
575
|
+
decidedBy: 'auto: no visible change',
|
|
576
|
+
});
|
|
485
577
|
if (!Array.isArray(result)) {
|
|
578
|
+
(0, fs_1.writeFileSync)(sketchFile, undecided);
|
|
486
579
|
console.warn(`${sketch.target} shows no visible change but did not merge: ${result.reason}`);
|
|
487
580
|
return 0;
|
|
488
581
|
}
|
|
489
|
-
for (const part of sketch.targets)
|
|
490
|
-
(0, merged_parts_1.recordAutoMerge)({ product, part, by: author !== null && author !== void 0 ? author : 'user' });
|
|
491
582
|
console.log(`No visible change in any state: merged ${sketch.targets.join(', ')} automatically.`);
|
|
583
|
+
commitHunksLines({
|
|
584
|
+
target: context.target,
|
|
585
|
+
files: written.filter((file, index) => contentOf(file) !== before[index]),
|
|
586
|
+
parts: sketch.targets,
|
|
587
|
+
}).forEach((line) => console.log(line));
|
|
492
588
|
return 0;
|
|
493
|
-
});
|
|
494
|
-
const noteProblemsBefore = ({ sketch, variant, before }) => {
|
|
495
|
-
if (before.length > 0)
|
|
496
|
-
console.warn(`NOTE ${sketch.target} ${variant}: ${before.length} problem${before.length === 1 ? ' was' : 's were'} there before (design check lists them)`);
|
|
497
589
|
};
|
|
590
|
+
const contentOf = (file) => ((0, fs_1.existsSync)(file) ? (0, fs_1.readFileSync)(file, 'utf8') : null);
|
|
591
|
+
const sharedFilesOf = (product) => [
|
|
592
|
+
(0, path_1.resolve)(product.dir, merged_parts_1.MERGED_FILE),
|
|
593
|
+
...(product.base ? [(0, path_1.resolve)(product.base.dir, merged_parts_1.MERGED_FILE)] : []),
|
|
594
|
+
];
|
|
595
|
+
const commitHunksLines = ({ target, files, parts }) => files.length === 0
|
|
596
|
+
? []
|
|
597
|
+
: [
|
|
598
|
+
'Shared files written; commit only the hunks of this sketch, never the whole file another session also edits:',
|
|
599
|
+
...files.map((file) => ` et design commit-hunks ${(0, path_1.relative)(target, file)} ${parts.map((part) => `--part ${part}`).join(' ')}`),
|
|
600
|
+
];
|
|
601
|
+
const noteProblemsBefore = ({ target, sketch, variant, before, }) => before.forEach((problem) => console.warn(`NOTE ${sketch.target} ${variant}: ${problem.rule} ${(0, path_1.relative)(target, problem.file)}: ${problem.message} (there before)`));
|
|
602
|
+
const variantGateProblemsOf = (options) => [...options.problems, ...(0, check_format_1.formatProblemsOf)(options), ...(0, unused_closure_1.unusedInVariantOf)(options)];
|
|
603
|
+
const busyOfVariant = (busy, sketch) => busy
|
|
604
|
+
.filter((entry) => { var _a; return ((_a = entry.sketch) === null || _a === void 0 ? void 0 : _a.target) === sketch.target && entry.sketch.variant === sketch.variant; })
|
|
605
|
+
.map(({ part, state }) => ({ part, state }));
|
|
606
|
+
const openPointLinesOf = ({ product, sketch, busy = [], }) => {
|
|
607
|
+
const pointLinesOf = (variant, list) => (0, open_points_1.openPointsText)(product.name, list)
|
|
608
|
+
.slice(1)
|
|
609
|
+
.map((line) => `${sketch.target} ${variant}: ${line.trim()}`);
|
|
610
|
+
const points = sketch.variants
|
|
611
|
+
.filter((variant) => !(0, sketch_1.rejectionOf)(sketch, variant))
|
|
612
|
+
.map((variant) => (Object.assign({ variant }, (0, read_open_points_1.sketchOpenPointsOf)({
|
|
613
|
+
merged: product,
|
|
614
|
+
variant: (0, overlay_1.overlaySketch)({ product, sketch, variant }),
|
|
615
|
+
targets: sketch.targets,
|
|
616
|
+
busy: { merged: [], variant: busyOfVariant(busy, { target: sketch.target, variant }) },
|
|
617
|
+
}))));
|
|
618
|
+
return {
|
|
619
|
+
added: points.flatMap(({ variant, added }) => pointLinesOf(variant, added)),
|
|
620
|
+
inherited: points.flatMap(({ variant, inherited }) => pointLinesOf(variant, inherited)),
|
|
621
|
+
};
|
|
622
|
+
};
|
|
623
|
+
const roundNoteRefusalOf = (sketch) => {
|
|
624
|
+
const running = (0, sketch_1.runningRoundOf)(sketch);
|
|
625
|
+
return running.note.trim() === ''
|
|
626
|
+
? `${sketch.target} round ${running.key} has no note - set it with: sketch round ${sketch.target} ${running.key} --note "<what the round shows>" --by <model id>`
|
|
627
|
+
: null;
|
|
628
|
+
};
|
|
629
|
+
const roundNotReadyProblemOf = (sketch) => sketch.status === 'ready' || sketch.hold
|
|
630
|
+
? null
|
|
631
|
+
: `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
|
+
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}`); });
|
|
498
633
|
const readyRefusalOf = (context, { product, sketch }) => {
|
|
499
634
|
const lineOf = (variant, problem) => `${sketch.target} ${variant}: ${problem.rule} ${(0, path_1.relative)(context.target, problem.file)}: ${problem.message}`;
|
|
500
635
|
const found = (0, check_sketches_1.variantProblemsOf)({ product, sketch });
|
|
501
|
-
found.forEach(noteProblemsBefore);
|
|
502
|
-
const problems = found
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
...((0, sketch_1.rejectionOf)(sketch, variant) ? [] : (0, unused_closure_1.unusedInVariantOf)({ product, sketch, variant })),
|
|
506
|
-
].map((problem) => lineOf(variant, problem)));
|
|
636
|
+
found.forEach((entry) => noteProblemsBefore(Object.assign({ target: context.target }, entry)));
|
|
637
|
+
const problems = found
|
|
638
|
+
.filter(({ variant }) => !(0, sketch_1.rejectionOf)(sketch, variant))
|
|
639
|
+
.flatMap(({ variant, problems }) => variantGateProblemsOf({ target: context.target, product, sketch, variant, problems }).map((problem) => lineOf(variant, problem)));
|
|
507
640
|
sketch.variants.forEach((variant) => (0, check_sketches_1.variantWarningsOf)({ target: context.target, product, sketch, variant }).forEach((warning) => console.warn(`${sketch.target} ${variant}: ${warning}`)));
|
|
508
641
|
if (problems.length > 0)
|
|
509
642
|
return fail(`${problems.join('\n')}\n${sketch.target} has problems - fix them before ready`);
|
|
510
|
-
const
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
const open = sketch.variants
|
|
643
|
+
const { added, inherited } = openPointLinesOf({ product, sketch });
|
|
644
|
+
inherited.forEach((line) => console.log(`NOTE ${line} (inherited from the merged part)`));
|
|
645
|
+
sketch.variants
|
|
514
646
|
.filter((variant) => !(0, sketch_1.rejectionOf)(sketch, variant))
|
|
515
|
-
.
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
});
|
|
521
|
-
pointLinesOf(variant, inherited).forEach((line) => console.log(`NOTE ${line} (inherited from the merged part)`));
|
|
522
|
-
return pointLinesOf(variant, added);
|
|
523
|
-
});
|
|
524
|
-
if (open.length > 0)
|
|
525
|
-
return fail(`${open.join('\n')}\n${sketch.target} adds open points - close them before ready`);
|
|
526
|
-
const running = (0, sketch_1.runningRoundOf)(sketch);
|
|
527
|
-
if (running.note.trim() === '')
|
|
528
|
-
return fail(`${sketch.target} round ${running.key} has no note - set it with: sketch round ${sketch.target} ${running.key} --note "<what the round shows>" --by <model id>`);
|
|
529
|
-
return null;
|
|
647
|
+
.forEach((variant) => (0, read_open_points_1.instantLinesOf)((0, overlay_1.overlaySketch)({ product, sketch, variant }), sketch.targets).forEach((line) => console.log(`NOTE ${sketch.target} ${variant}: ${line}`)));
|
|
648
|
+
if (added.length > 0)
|
|
649
|
+
return fail(`${added.join('\n')}\n${sketch.target} adds open points - close them before ready`);
|
|
650
|
+
const noNote = roundNoteRefusalOf(sketch);
|
|
651
|
+
return noNote === null ? null : fail(noNote);
|
|
530
652
|
};
|
|
531
653
|
const rebased = (context) => withSketch(context, ({ product, sketch }) => {
|
|
654
|
+
const kept = context.args.flags.has('--ported');
|
|
655
|
+
const { ported, conflicts } = (0, rebase_port_1.portBaseChanges)({ target: context.target, product, sketch, keepConflicts: kept });
|
|
656
|
+
if (kept)
|
|
657
|
+
conflicts.forEach((line) => console.log(`KEPT ${line} (ported by hand)`));
|
|
658
|
+
else if (conflicts.length > 0)
|
|
659
|
+
return fail(`${conflicts.join('\n')}\n${sketch.target} not rebased - port these by hand, then run sketch rebase again`);
|
|
660
|
+
ported.forEach(({ variant, file, how }) => console.log(`PORTED ${variant}: ${file} (${how})`));
|
|
532
661
|
(0, sketch_1.rebaseSketch)({ product, sketch });
|
|
533
662
|
console.log(`${sketch.target} now compares with the product as it is`);
|
|
663
|
+
if (ported.length > 0 && sketch.status === 'ready')
|
|
664
|
+
console.log(`variants changed - run sketch ready ${sketch.target} to check them again`);
|
|
534
665
|
return 0;
|
|
535
666
|
});
|
|
536
667
|
const held = (context) => withSketch(context, ({ sketch }) => {
|
|
@@ -552,8 +683,12 @@ const released = (context) => withSketch(context, ({ sketch }) => {
|
|
|
552
683
|
console.log(`${freed.target} is no longer held - mark it ready once the change is in`);
|
|
553
684
|
return 0;
|
|
554
685
|
});
|
|
686
|
+
const beforeLinesOf = ({ sketches, before }) => [...new Set(sketches)].flatMap((sketch) => (0, render_check_1.groupedIssueLinesOf)(before
|
|
687
|
+
.filter((issue) => sketch.targets.includes(issue.part))
|
|
688
|
+
.map((issue) => (Object.assign(Object.assign({}, issue), { sketch: { target: sketch.target, variant: 'before' } })))));
|
|
689
|
+
exports.beforeLinesOf = beforeLinesOf;
|
|
555
690
|
const renderedVariantsOf = (_a) => __awaiter(void 0, [_a], void 0, function* ({ target, config, product, entries, drawn, }) {
|
|
556
|
-
var _b, _c;
|
|
691
|
+
var _b, _c, _d;
|
|
557
692
|
const rendered = yield (0, render_check_1.renderIssuesOf)({
|
|
558
693
|
target,
|
|
559
694
|
config,
|
|
@@ -565,6 +700,10 @@ const renderedVariantsOf = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
|
565
700
|
parts: [...preview.changed, ...preview.affected],
|
|
566
701
|
};
|
|
567
702
|
}),
|
|
703
|
+
before: [...new Set(entries.flatMap(({ sketch }) => sketch.targets))].map((part) => ({
|
|
704
|
+
product: product.name,
|
|
705
|
+
part,
|
|
706
|
+
})),
|
|
568
707
|
});
|
|
569
708
|
if ('unavailable' in rendered)
|
|
570
709
|
console.log(`RENDER CHECK SKIPPED - ${rendered.unavailable}`);
|
|
@@ -588,19 +727,29 @@ const renderedVariantsOf = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
|
588
727
|
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}`); });
|
|
589
728
|
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)}`); });
|
|
590
729
|
(0, render_check_1.groupedIssueLinesOf)(rendered.issues).forEach((line) => console.error(line));
|
|
730
|
+
(0, exports.beforeLinesOf)({ sketches: entries.map((entry) => entry.sketch), before: (_d = rendered.before) !== null && _d !== void 0 ? _d : [] }).forEach((line) => console.log(line));
|
|
591
731
|
}
|
|
592
732
|
return rendered;
|
|
593
733
|
});
|
|
594
734
|
const checked = (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
735
|
+
var _a, _b, _c;
|
|
595
736
|
const { target, config, args } = context;
|
|
596
737
|
const product = sketchProductOf(context);
|
|
597
738
|
if (typeof product === 'string')
|
|
598
739
|
return fail(product);
|
|
599
740
|
const asked = args.positional[0];
|
|
600
741
|
const { unreadable, variants } = (0, check_sketches_1.openSketchProblemsOf)(product);
|
|
601
|
-
const
|
|
602
|
-
if (asked !== undefined &&
|
|
742
|
+
const named = asked === undefined ? variants : variants.filter((entry) => entry.sketch.target === asked);
|
|
743
|
+
if (asked !== undefined && named.length === 0)
|
|
603
744
|
return fail(`NO SKETCH on ${asked} in ${product.name}`);
|
|
745
|
+
const isSkipped = ({ sketch, variant }) => Boolean((0, sketch_1.rejectionOf)(sketch, variant));
|
|
746
|
+
const chosen = named.filter((entry) => !isSkipped(entry));
|
|
747
|
+
named
|
|
748
|
+
.filter(isSkipped)
|
|
749
|
+
.forEach(({ sketch, variant }) => {
|
|
750
|
+
var _a;
|
|
751
|
+
return console.log(`NOTE ${sketch.target} ${variant}: ${((_a = (0, sketch_1.rejectionOf)(sketch, variant)) === null || _a === void 0 ? void 0 : _a.status) === 'withdrawn' ? 'withdrawn' : 'rejected'}, not checked`);
|
|
752
|
+
});
|
|
604
753
|
if (args.flags.has('--fix'))
|
|
605
754
|
new Set(chosen.map((entry) => entry.sketch)).forEach((sketch) => (0, check_format_1.formatSketch)({ target, sketch, variants: sketch.variants }));
|
|
606
755
|
let failed = asked === undefined && unreadable.length > 0;
|
|
@@ -610,13 +759,19 @@ const checked = (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
610
759
|
if (sketch.hold)
|
|
611
760
|
console.warn(`HELD ${sketch.target}: until ${sketch.hold.until}`);
|
|
612
761
|
});
|
|
762
|
+
const stale = (0, check_system_1.staleSketchBasesOf)({
|
|
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
|
+
});
|
|
767
|
+
stale.forEach((problem) => console.error(problem.line));
|
|
768
|
+
failed || (failed = stale.length > 0);
|
|
613
769
|
for (const { sketch, variant, problems, before } of chosen) {
|
|
614
770
|
const typed = (0, check_sketches_1.typecheckVariant)({ target, product, sketch, variant });
|
|
615
|
-
noteProblemsBefore({ sketch, variant, before });
|
|
771
|
+
noteProblemsBefore({ target, sketch, variant, before });
|
|
616
772
|
(0, check_sketches_1.variantWarningsOf)({ target, product, sketch, variant }).forEach((warning) => console.warn(`${sketch.target} ${variant}: ${warning}`));
|
|
617
773
|
const all = [
|
|
618
|
-
...problems,
|
|
619
|
-
...(0, check_format_1.formatProblemsOf)({ target, sketch, variant }),
|
|
774
|
+
...variantGateProblemsOf({ target, product, sketch, variant, problems }),
|
|
620
775
|
...(typed.kind === 'failed' ? [{ rule: 'TYPE-ERROR', file: sketch.dir, message: `\n${typed.output}` }] : []),
|
|
621
776
|
...(typed.kind === 'unavailable' ? [{ rule: 'NO-TYPE-CHECKER', file: sketch.dir, message: typed.message }] : []),
|
|
622
777
|
];
|
|
@@ -625,18 +780,63 @@ const checked = (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
625
780
|
}
|
|
626
781
|
failed || (failed = all.length > 0);
|
|
627
782
|
}
|
|
783
|
+
if (!failed)
|
|
784
|
+
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));
|
|
786
|
+
const rendered = failed
|
|
787
|
+
? null
|
|
788
|
+
: yield renderedVariantsOf({
|
|
789
|
+
target,
|
|
790
|
+
config,
|
|
791
|
+
product,
|
|
792
|
+
entries: chosen,
|
|
793
|
+
drawn: true,
|
|
794
|
+
});
|
|
795
|
+
const busy = rendered !== null && 'issues' in rendered ? ((_b = rendered.busy) !== null && _b !== void 0 ? _b : []) : [];
|
|
796
|
+
if (rendered !== null && 'issues' in rendered)
|
|
797
|
+
(0, frame_budget_1.frameBudgetWarningsOf)({
|
|
798
|
+
drawn: rendered.drawn,
|
|
799
|
+
targets: [...new Set(chosen.map((entry) => entry.sketch))].map((sketch) => {
|
|
800
|
+
var _a;
|
|
801
|
+
return ({
|
|
802
|
+
target: sketch.target,
|
|
803
|
+
part: (_a = sketch.targets[0]) !== null && _a !== void 0 ? _a : sketch.target,
|
|
804
|
+
});
|
|
805
|
+
}),
|
|
806
|
+
}).forEach((warning) => console.warn(warning));
|
|
807
|
+
let refused = 0;
|
|
808
|
+
let notReady = false;
|
|
809
|
+
const refuse = (lines) => {
|
|
810
|
+
lines.forEach((line) => console.warn(`ready will refuse: ${line}`));
|
|
811
|
+
refused += lines.length;
|
|
812
|
+
};
|
|
813
|
+
for (const sketch of new Set(chosen.map((entry) => entry.sketch))) {
|
|
814
|
+
const unloaded = yield unloadedLinesOf({ target, config, product, sketch });
|
|
815
|
+
const before = refused;
|
|
816
|
+
refuse([
|
|
817
|
+
...unloaded,
|
|
818
|
+
...openPointLinesOf({ product, sketch, busy }).added,
|
|
819
|
+
...[(_c = roundNoteRefusalOf(sketch)) !== null && _c !== void 0 ? _c : []].flat(),
|
|
820
|
+
]);
|
|
821
|
+
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 }));
|
|
824
|
+
}
|
|
825
|
+
if (!failed && refused === before) {
|
|
826
|
+
const problem = roundNotReadyProblemOf(sketch);
|
|
827
|
+
if (problem !== null) {
|
|
828
|
+
console.error(problem);
|
|
829
|
+
notReady = true;
|
|
830
|
+
}
|
|
831
|
+
}
|
|
832
|
+
}
|
|
628
833
|
if (failed)
|
|
629
834
|
return 1;
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
product,
|
|
634
|
-
entries: chosen,
|
|
635
|
-
drawn: true,
|
|
636
|
-
});
|
|
637
|
-
if ('issues' in rendered && rendered.issues.length > 0)
|
|
835
|
+
if (rendered !== null && 'issues' in rendered && rendered.issues.length > 0)
|
|
836
|
+
return 1;
|
|
837
|
+
if (notReady)
|
|
638
838
|
return 1;
|
|
639
|
-
console.log('ok');
|
|
839
|
+
console.log(refused > 0 ? `check ok - ready will refuse ${refused} (see above)` : 'ok');
|
|
640
840
|
return 0;
|
|
641
841
|
});
|
|
642
842
|
const previewed = (context) => withSketch(context, ({ product, sketch }) => {
|
|
@@ -655,39 +855,33 @@ const previewed = (context) => withSketch(context, ({ product, sketch }) => {
|
|
|
655
855
|
}
|
|
656
856
|
return 0;
|
|
657
857
|
});
|
|
658
|
-
const allowedMergeOf = (options) => {
|
|
659
|
-
const { sketch, variant } = options;
|
|
660
|
-
const live = sketch.variants.filter((candidate) => !(0, sketch_1.rejectionOf)(sketch, candidate));
|
|
661
|
-
if (live.length !== 1 || live[0] !== variant)
|
|
662
|
-
return `${sketch.target} has ${live.length} live variants (${live.join(', ') || 'none'}), not only "${variant}" - the user picks in Studio`;
|
|
663
|
-
return (0, sketch_1.decideSketch)({ sketch, decision: { kind: 'pick', variant } });
|
|
664
|
-
};
|
|
665
858
|
const merged = (context) => withSketch(context, ({ product, sketch }) => {
|
|
666
|
-
var _a, _b
|
|
859
|
+
var _a, _b;
|
|
667
860
|
const { '--note': note, '--variant': flagVariant, '--allowed-by': planRef } = context.args.values;
|
|
861
|
+
const replaceNote = context.args.flags.has('--replace-note');
|
|
668
862
|
if (context.args.positional.length > 1)
|
|
669
863
|
return fail(`usage: sketch merge <layer>/<name> [--note <reason>] - it merges the variant the user picked`);
|
|
864
|
+
if (replaceNote && (note !== null && note !== void 0 ? note : '').trim() === '')
|
|
865
|
+
return fail('--replace-note needs --note <the new part note>');
|
|
670
866
|
if ((flagVariant === undefined) !== (planRef === undefined))
|
|
671
867
|
return fail('--variant and --allowed-by go together: name the only live variant and the plan that allows the merge');
|
|
672
|
-
const
|
|
673
|
-
const
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
const result = (0,
|
|
868
|
+
const by = (_a = (0, cli_args_1.authorOf)(context.args)) !== null && _a !== void 0 ? _a : undefined;
|
|
869
|
+
const allowed = flagVariant !== undefined && planRef !== undefined && ((_b = sketch.decision) === null || _b === void 0 ? void 0 : _b.kind) !== 'pick'
|
|
870
|
+
? { variant: flagVariant, planRef }
|
|
871
|
+
: undefined;
|
|
872
|
+
const result = (0, merge_step_1.mergeAndRecord)({
|
|
677
873
|
target: context.target,
|
|
678
874
|
config: context.config,
|
|
679
875
|
product,
|
|
680
|
-
sketch
|
|
876
|
+
sketch,
|
|
681
877
|
note,
|
|
682
|
-
|
|
878
|
+
replaceNote,
|
|
879
|
+
by,
|
|
880
|
+
allowed,
|
|
683
881
|
});
|
|
684
|
-
if (
|
|
685
|
-
return fail(result
|
|
686
|
-
|
|
687
|
-
for (const part of sketch.targets)
|
|
688
|
-
(0, merged_parts_1.recordAllowedMerge)({ product, part, by: (_c = (0, cli_args_1.authorOf)(context.args)) !== null && _c !== void 0 ? _c : 'user', planRef: planRef.trim() });
|
|
689
|
-
const variant = ((_d = decidedSketch.decision) === null || _d === void 0 ? void 0 : _d.kind) === 'pick' ? decidedSketch.decision.variant : '';
|
|
690
|
-
console.log(`merged ${sketch.target} variant ${variant} into ${product.name}: ${result.join(', ')}`);
|
|
882
|
+
if (typeof result === 'string')
|
|
883
|
+
return fail(result);
|
|
884
|
+
console.log(`merged ${sketch.target} variant ${result.variant} into ${product.name}: ${result.parts.join(', ')}`);
|
|
691
885
|
return 0;
|
|
692
886
|
});
|
|
693
887
|
const discarded = (context) => withSketch(context, ({ sketch }) => {
|
|
@@ -701,27 +895,37 @@ const discarded = (context) => withSketch(context, ({ sketch }) => {
|
|
|
701
895
|
const verdictOriginOf = (by, of) => of && of !== by ? ` (reason by the ${of})` : '';
|
|
702
896
|
/** The verdicts a variant had, oldest first, and whether it is rejected now. */
|
|
703
897
|
const verdictLinesOf = (sketch, variant) => {
|
|
704
|
-
var _a, _b;
|
|
898
|
+
var _a, _b, _c;
|
|
705
899
|
const history = (_b = (_a = sketch.rejections) === null || _a === void 0 ? void 0 : _a[variant]) !== null && _b !== void 0 ? _b : [];
|
|
706
|
-
const lines = history.flatMap((rejection) =>
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
?
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
900
|
+
const lines = history.flatMap((rejection) => {
|
|
901
|
+
var _a;
|
|
902
|
+
return [
|
|
903
|
+
` ${rejection.status === 'withdrawn' ? `withdrawn by ${(_a = rejection.withdrawnBy) !== null && _a !== void 0 ? _a : 'the agent'}` : `rejected by the ${rejection.by}`} at ${rejection.decidedAt}${verdictOriginOf(rejection.by, rejection.reasonBy)}${rejection.reason ? `: ${rejection.reason}` : ''}`,
|
|
904
|
+
...(rejection.reopened
|
|
905
|
+
? [
|
|
906
|
+
` reopened by the ${rejection.reopened.by} at ${rejection.reopened.decidedAt}${rejection.reopened.reason ? `: ${rejection.reopened.reason}` : ''}`,
|
|
907
|
+
]
|
|
908
|
+
: []),
|
|
909
|
+
];
|
|
910
|
+
});
|
|
911
|
+
return [
|
|
912
|
+
`${sketch.target} variant ${variant}: ${(0, sketch_1.rejectionOf)(sketch, variant) ? (((_c = (0, sketch_1.rejectionOf)(sketch, variant)) === null || _c === void 0 ? void 0 : _c.status) === 'withdrawn' ? 'withdrawn' : 'rejected') : 'live'}`,
|
|
913
|
+
...lines,
|
|
914
|
+
];
|
|
715
915
|
};
|
|
716
916
|
exports.verdictLinesOf = verdictLinesOf;
|
|
717
917
|
const judged = (kind) => (context) => withSketch(context, ({ sketch }) => {
|
|
718
|
-
var _a;
|
|
918
|
+
var _a, _b;
|
|
719
919
|
const { positional, values } = context.args;
|
|
720
920
|
const variant = values['--variant'];
|
|
721
921
|
const reason = ((_a = values['--reason']) === null || _a === void 0 ? void 0 : _a.trim()) || undefined;
|
|
722
|
-
const
|
|
922
|
+
const author = (_b = (0, cli_args_1.authorOf)(context.args)) !== null && _b !== void 0 ? _b : '';
|
|
923
|
+
const by = author === 'designer' ? 'designer' : 'agent';
|
|
723
924
|
if (positional.length !== 1 || !variant)
|
|
724
925
|
return fail(`usage: sketch ${kind} <layer>/<name> --variant <key> [--reason <text>] --by <model id | designer> [--product <name>]`);
|
|
926
|
+
const invalid = (0, cli_args_1.verdictByProblemOf)(author);
|
|
927
|
+
if (invalid)
|
|
928
|
+
return fail(invalid);
|
|
725
929
|
const decision = kind === 'reject' && reason && (0, sketch_1.rejectionOf)(sketch, variant)
|
|
726
930
|
? { kind: 'reason', variant, reason, by }
|
|
727
931
|
: Object.assign(Object.assign({ kind, variant }, (reason ? { reason } : {})), { by });
|
|
@@ -731,6 +935,38 @@ const judged = (kind) => (context) => withSketch(context, ({ sketch }) => {
|
|
|
731
935
|
(0, exports.verdictLinesOf)(decided, variant).forEach((line) => console.log(line));
|
|
732
936
|
return 0;
|
|
733
937
|
});
|
|
938
|
+
const withdrawn = (context) => {
|
|
939
|
+
const found = productAndSketchOf(context);
|
|
940
|
+
if (typeof found === 'string')
|
|
941
|
+
return fail(found);
|
|
942
|
+
return withdrawnVariant(context, found);
|
|
943
|
+
};
|
|
944
|
+
const withdrawnVariant = (context_1, _a) => __awaiter(void 0, [context_1, _a], void 0, function* (context, { product, sketch }) {
|
|
945
|
+
var _b;
|
|
946
|
+
const { positional, values } = context.args;
|
|
947
|
+
const variant = values['--variant'];
|
|
948
|
+
const by = (_b = (0, cli_args_1.authorOf)(context.args)) !== null && _b !== void 0 ? _b : '';
|
|
949
|
+
if (positional.length !== 1 || !variant)
|
|
950
|
+
return fail('usage: sketch withdraw <layer>/<name> --variant <key> --by <model id> [--product <name>]');
|
|
951
|
+
if (by === 'designer')
|
|
952
|
+
return fail('sketch withdraw is for the agent that drew the variant: --by must be a model id, not designer');
|
|
953
|
+
const invalid = (0, cli_args_1.verdictByProblemOf)(by);
|
|
954
|
+
if (invalid)
|
|
955
|
+
return fail(invalid);
|
|
956
|
+
if (!sketch.variants.includes(variant))
|
|
957
|
+
return fail(`${sketch.target} has no variant "${variant}" - it has ${sketch.variants.join(', ')}`);
|
|
958
|
+
if (!(0, sketch_1.authorsOf)(sketch, variant).includes(by))
|
|
959
|
+
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)({ target: context.target, config: context.config, product, sketch });
|
|
961
|
+
const twin = identical.find((render) => render.variant === variant && render.sibling !== null);
|
|
962
|
+
if (!twin)
|
|
963
|
+
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`);
|
|
964
|
+
const result = (0, sketch_1.withdrawVariant)({ sketch, variant, by, reason: `identisch mit ${twin.sibling}` });
|
|
965
|
+
if (typeof result === 'string')
|
|
966
|
+
return fail(result);
|
|
967
|
+
console.log(`withdrew ${sketch.target} variant ${variant} (identisch mit ${twin.sibling})`);
|
|
968
|
+
return 0;
|
|
969
|
+
});
|
|
734
970
|
const COMMANDS = {
|
|
735
971
|
new: created,
|
|
736
972
|
variant: varied,
|
|
@@ -749,32 +985,28 @@ const COMMANDS = {
|
|
|
749
985
|
target: targetAdded,
|
|
750
986
|
reject: judged('reject'),
|
|
751
987
|
reopen: judged('reopen'),
|
|
988
|
+
withdraw: withdrawn,
|
|
989
|
+
};
|
|
990
|
+
/** The value flags and switches the usage line of a sketch command names. */
|
|
991
|
+
const flagsOf = (command) => {
|
|
992
|
+
var _a;
|
|
993
|
+
const line = (_a = exports.SKETCH_USAGE.find((usage) => usage.startsWith(`sketch ${command} `))) !== null && _a !== void 0 ? _a : '';
|
|
994
|
+
const named = [...line.matchAll(/(--[a-z-]+)( (?=[<a-z0-9]))?/gu)];
|
|
995
|
+
const unique = (flags) => [...new Set(flags)];
|
|
996
|
+
return {
|
|
997
|
+
values: unique(named.filter(([, , value]) => value).map(([, flag]) => flag !== null && flag !== void 0 ? flag : '')),
|
|
998
|
+
switches: unique(named.filter(([, , value]) => !value).map(([, flag]) => flag !== null && flag !== void 0 ? flag : '')),
|
|
999
|
+
};
|
|
752
1000
|
};
|
|
753
1001
|
/**
|
|
754
1002
|
* `et design sketch <command> …` opens, adds variants to, reports on, readies, checks, previews, rebases, merges and
|
|
755
|
-
* discards sketches, and rejects and
|
|
1003
|
+
* discards sketches, and rejects, reopens and withdraws their variants.
|
|
756
1004
|
*/
|
|
757
1005
|
const designSketch = (options) => {
|
|
758
1006
|
const { target, argv, invocation } = options;
|
|
759
1007
|
const [command = '', ...rest] = argv;
|
|
760
1008
|
const run = COMMANDS[command];
|
|
761
|
-
const args = (0, cli_args_1.argsOf)(rest,
|
|
762
|
-
'--product',
|
|
763
|
-
'--variants',
|
|
764
|
-
'--note',
|
|
765
|
-
'--variant',
|
|
766
|
-
'--by',
|
|
767
|
-
'--from',
|
|
768
|
-
'--round',
|
|
769
|
-
'--round-note',
|
|
770
|
-
'--title',
|
|
771
|
-
'--like',
|
|
772
|
-
'--drops',
|
|
773
|
-
'--variant-note',
|
|
774
|
-
'--reason',
|
|
775
|
-
'--allowed-by',
|
|
776
|
-
'--until',
|
|
777
|
-
]);
|
|
1009
|
+
const args = (0, cli_args_1.argsOf)(rest, flagsOf(command));
|
|
778
1010
|
const unauthored = typeof args !== 'string' && WRITES.has(command) && (0, cli_args_1.authorOf)(args) === null;
|
|
779
1011
|
if (!run || typeof args === 'string' || unauthored) {
|
|
780
1012
|
if (typeof args === 'string')
|
|
@@ -789,7 +1021,7 @@ const designSketch = (options) => {
|
|
|
789
1021
|
const config = (0, cli_args_1.configOf)(target);
|
|
790
1022
|
if (typeof config === 'string')
|
|
791
1023
|
return fail(config);
|
|
792
|
-
return run({ target, config, args });
|
|
1024
|
+
return run({ target, config, args, invocation });
|
|
793
1025
|
};
|
|
794
1026
|
exports.designSketch = designSketch;
|
|
795
1027
|
//# sourceMappingURL=sketch-command.js.map
|