@ethlete/cli 3.0.0-next.25 → 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 +417 -0
- package/build-info.json +1 -0
- package/design/define-call.ts +99 -31
- package/design/define-part.ts +50 -3
- package/design/icon-sheet.ts +1 -1
- package/design/interaction-rows.ts +13 -6
- package/design/logo-sheet.ts +52 -0
- package/design/mark-part.ts +51 -1
- package/design/motion-drive.ts +215 -0
- package/design/motion-runtime.ts +14 -2
- package/design/motion-tokens.ts +177 -0
- package/design/token-sheet.ts +1 -1
- package/design/web/frame-fill.ts +4 -0
- package/design/web/frame-fit.ts +7 -0
- package/design/web/frame-scheme.ts +44 -0
- package/design/web/frame-surfaces.ts +294 -0
- package/design/web/frame.ts +162 -43
- 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/calls-tsconfig.d.ts +2 -0
- package/src/lib/design/calls-tsconfig.js +10 -3
- package/src/lib/design/calls-tsconfig.js.map +1 -1
- package/src/lib/design/check.d.ts +1 -0
- package/src/lib/design/check.js +195 -13
- 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/contact-sheet.d.ts +9 -0
- package/src/lib/design/contact-sheet.js +38 -4
- package/src/lib/design/contact-sheet.js.map +1 -1
- package/src/lib/design/design-command.d.ts +2 -0
- package/src/lib/design/design-command.js +183 -15
- package/src/lib/design/design-command.js.map +1 -1
- package/src/lib/design/draw-ledger.d.ts +36 -0
- package/src/lib/design/draw-ledger.js +52 -0
- package/src/lib/design/draw-ledger.js.map +1 -0
- 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 +28 -3
- package/src/lib/design/mcp-command.js +134 -21
- 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 +10 -16
- 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 +42 -0
- package/src/lib/design/paths.js +50 -1
- 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 +9 -17
- package/src/lib/design/render-packages.js +25 -63
- package/src/lib/design/render-packages.js.map +1 -1
- package/src/lib/design/render-worker.js +2 -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 +23 -3
- package/src/lib/design/serve.js +288 -35
- 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 +30 -6
- package/src/lib/design/shot-command.js +144 -56
- package/src/lib/design/shot-command.js.map +1 -1
- package/src/lib/design/shot-store.d.ts +24 -0
- package/src/lib/design/shot-store.js +120 -0
- package/src/lib/design/shot-store.js.map +1 -0
- package/src/lib/design/shot.d.ts +71 -1
- package/src/lib/design/shot.js +253 -40
- 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 +452 -136
- package/src/lib/design/sketch-command.js.map +1 -1
- package/src/lib/design/ssr-shims.d.ts +2 -0
- package/src/lib/design/ssr-shims.js +12 -1
- package/src/lib/design/ssr-shims.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 +35 -4
- package/src/lib/design/studio-api.js +312 -41
- 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 +62 -3
- package/src/lib/design/system/check-system.js +527 -34
- package/src/lib/design/system/check-system.js.map +1 -1
- package/src/lib/design/system/colour.d.ts +4 -1
- package/src/lib/design/system/colour.js +54 -2
- package/src/lib/design/system/colour.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 +7 -3
- package/src/lib/design/system/complete-command.js.map +1 -1
- package/src/lib/design/system/complete.d.ts +99 -3
- package/src/lib/design/system/complete.js +358 -88
- 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 +6 -1
- package/src/lib/design/system/contrast-check.js +179 -13
- 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 +38 -0
- package/src/lib/design/system/drawn-open-points.js +94 -0
- package/src/lib/design/system/drawn-open-points.js.map +1 -0
- 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 +8 -1
- package/src/lib/design/system/list-system.js +13 -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 +119 -0
- package/src/lib/design/system/open-points.js +185 -0
- package/src/lib/design/system/open-points.js.map +1 -0
- 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 +90 -0
- package/src/lib/design/system/part-ready.js +172 -0
- package/src/lib/design/system/part-ready.js.map +1 -0
- 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 +33 -0
- package/src/lib/design/system/read-open-points.js +110 -0
- package/src/lib/design/system/read-open-points.js.map +1 -0
- package/src/lib/design/system/ready-command.d.ts +11 -0
- package/src/lib/design/system/ready-command.js +82 -0
- package/src/lib/design/system/ready-command.js.map +1 -0
- package/src/lib/design/system/render-check.d.ts +52 -0
- package/src/lib/design/system/render-check.js +479 -60
- package/src/lib/design/system/render-check.js.map +1 -1
- package/src/lib/design/system/resolve-product.d.ts +2 -1
- package/src/lib/design/system/resolve-product.js +25 -3
- 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 +8 -0
- package/src/lib/design/system/rules/implements.js +48 -0
- package/src/lib/design/system/rules/implements.js.map +1 -0
- 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 +2 -0
- package/src/lib/design/system/rules/motion.js +35 -2
- 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/option-values.d.ts +15 -0
- package/src/lib/design/system/rules/option-values.js +145 -0
- package/src/lib/design/system/rules/option-values.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 +45 -3
- 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 +29 -2
- package/src/lib/design/system/sketch/baseline.js +33 -9
- package/src/lib/design/system/sketch/baseline.js.map +1 -1
- package/src/lib/design/system/sketch/check-sketches.d.ts +11 -0
- package/src/lib/design/system/sketch/check-sketches.js +54 -6
- 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 +122 -17
- 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 +41 -11
- package/src/lib/design/system/sketch/merged-parts.js +113 -50
- 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 +56 -0
- package/src/lib/design/system/sketch/part-definition.js +129 -13
- 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 +78 -2
- package/src/lib/design/system/sketch/sketch.js +247 -54
- 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 +36 -1
- package/src/lib/design/system/sketch/unchanged-states.js +60 -17
- package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
- package/src/lib/design/system/sketch/unused-closure.js +26 -4
- package/src/lib/design/system/sketch/unused-closure.js.map +1 -1
- package/src/lib/design/system/sketch/unused-files.d.ts +1 -1
- package/src/lib/design/system/sketch/unused-files.js +6 -3
- package/src/lib/design/system/sketch/unused-files.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/system-tsconfig.js +2 -2
- package/src/lib/design/system/system-tsconfig.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 +5 -0
- package/src/lib/design/system/ts-source.js +35 -4
- 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 +50 -6
- package/src/lib/design/thumb.js +154 -54
- 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
|
@@ -1,7 +1,41 @@
|
|
|
1
|
+
import { DrawStates } from './accepted-pictures';
|
|
2
|
+
import { DesignConfig } from '../paths';
|
|
3
|
+
import { ResolvedProduct } from './resolve-product';
|
|
4
|
+
import { AcceptRefusal } from './sketch/merged-parts';
|
|
5
|
+
import { DesignStep, WriteCommandOptions } from './tom-confirm';
|
|
1
6
|
export declare const ACCEPT_USAGE = "accept <layer>/<name> --product <name> --by <model id> --note <why the user approved the direct edit>";
|
|
2
|
-
|
|
3
|
-
|
|
7
|
+
export type PartAcceptRefusal = AcceptRefusal | {
|
|
8
|
+
reason: 'findings';
|
|
9
|
+
error: string;
|
|
10
|
+
findings: string[];
|
|
11
|
+
};
|
|
12
|
+
/** Why a direct edit of a part cannot be accepted - theming findings in its folder first - or `null` when it can. */
|
|
13
|
+
export declare const partAcceptRefusalOf: (options: {
|
|
4
14
|
target: string;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}) =>
|
|
15
|
+
product: ResolvedProduct;
|
|
16
|
+
part: string;
|
|
17
|
+
}) => PartAcceptRefusal | null;
|
|
18
|
+
/** Accepts a direct edit and stores the review pictures, for a part whose {@link partAcceptRefusalOf} is `null`. */
|
|
19
|
+
export declare const acceptRunOf: (options: {
|
|
20
|
+
target: string;
|
|
21
|
+
config: DesignConfig;
|
|
22
|
+
product: ResolvedProduct;
|
|
23
|
+
part: string;
|
|
24
|
+
by: string;
|
|
25
|
+
note: string;
|
|
26
|
+
draw?: DrawStates;
|
|
27
|
+
}) => DesignStep;
|
|
28
|
+
/** An acceptance of a direct edit of one part as a step, or why it may not run. */
|
|
29
|
+
export declare const acceptStepOf: (options: {
|
|
30
|
+
target: string;
|
|
31
|
+
product: string | undefined;
|
|
32
|
+
part: string;
|
|
33
|
+
by: string;
|
|
34
|
+
note: string;
|
|
35
|
+
draw?: DrawStates;
|
|
36
|
+
}) => DesignStep | string;
|
|
37
|
+
/**
|
|
38
|
+
* `et design accept <layer>/<name> …` records a direct edit of a merged part the user approved, so check stops warning
|
|
39
|
+
* of it. `--by tom` needs Tom's confirm at a terminal.
|
|
40
|
+
*/
|
|
41
|
+
export declare const designAccept: (options: WriteCommandOptions) => Promise<number>;
|
|
@@ -1,16 +1,105 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.designAccept = exports.ACCEPT_USAGE = void 0;
|
|
12
|
+
exports.designAccept = exports.acceptStepOf = exports.acceptRunOf = exports.partAcceptRefusalOf = exports.ACCEPT_USAGE = void 0;
|
|
13
|
+
const path_1 = require("path");
|
|
14
|
+
const accepted_pictures_1 = require("./accepted-pictures");
|
|
15
|
+
const check_system_1 = require("./check-system");
|
|
4
16
|
const resolve_product_1 = require("./resolve-product");
|
|
5
17
|
const cli_args_1 = require("./sketch/cli-args");
|
|
6
18
|
const merged_parts_1 = require("./sketch/merged-parts");
|
|
7
19
|
const sketch_1 = require("./sketch/sketch");
|
|
20
|
+
const tom_confirm_1 = require("./tom-confirm");
|
|
8
21
|
exports.ACCEPT_USAGE = 'accept <layer>/<name> --product <name> --by <model id> --note <why the user approved the direct edit>';
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
|
|
22
|
+
const THEMING_CLASS_RULES = new Set(['CLASS-UNDEFINED', 'DENIED-CLASS', 'DENIED-STYLESHEET']);
|
|
23
|
+
const findingsOfPart = (options) => {
|
|
24
|
+
const found = options.product.parts.find((candidate) => (0, resolve_product_1.partKeyOf)(candidate) === options.part);
|
|
25
|
+
if (!found)
|
|
26
|
+
return [];
|
|
27
|
+
const dir = (0, path_1.dirname)(found.file);
|
|
28
|
+
return (0, check_system_1.ruleProblemsOf)(options.product)
|
|
29
|
+
.filter((problem) => THEMING_CLASS_RULES.has(problem.rule) && !(0, path_1.relative)(dir, problem.file).startsWith('..'))
|
|
30
|
+
.map((problem) => `${problem.rule} ${(0, path_1.relative)(options.target, problem.file)}: ${problem.message}`);
|
|
31
|
+
};
|
|
32
|
+
/** Why a direct edit of a part cannot be accepted - theming findings in its folder first - or `null` when it can. */
|
|
33
|
+
const partAcceptRefusalOf = (options) => {
|
|
34
|
+
const findings = findingsOfPart(options);
|
|
35
|
+
if (findings.length > 0)
|
|
36
|
+
return {
|
|
37
|
+
reason: 'findings',
|
|
38
|
+
error: `${findings.join('\n')}\n${options.part} has problems - fix them before accept`,
|
|
39
|
+
findings,
|
|
40
|
+
};
|
|
41
|
+
return (0, merged_parts_1.acceptRefusalOf)(options);
|
|
42
|
+
};
|
|
43
|
+
exports.partAcceptRefusalOf = partAcceptRefusalOf;
|
|
44
|
+
/** Accepts a direct edit and stores the review pictures, for a part whose {@link partAcceptRefusalOf} is `null`. */
|
|
45
|
+
const acceptRunOf = (options) => {
|
|
46
|
+
const { target, config, product, part, by, note } = options;
|
|
47
|
+
return {
|
|
48
|
+
line: `accept ${product.name} ${part} - ${note}`,
|
|
49
|
+
run: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
+
var _a;
|
|
51
|
+
const problem = (0, merged_parts_1.acceptPart)({ product, part, by, note });
|
|
52
|
+
if (problem) {
|
|
53
|
+
console.error(problem);
|
|
54
|
+
return 1;
|
|
55
|
+
}
|
|
56
|
+
console.log(`accepted the direct edit of ${part} in ${product.name}`);
|
|
57
|
+
const unstored = yield (0, accepted_pictures_1.storePictures)({
|
|
58
|
+
target,
|
|
59
|
+
config,
|
|
60
|
+
product,
|
|
61
|
+
part,
|
|
62
|
+
kind: 'review',
|
|
63
|
+
hash: (_a = (0, merged_parts_1.readMerged)(product.dir)[part]) !== null && _a !== void 0 ? _a : '',
|
|
64
|
+
draw: options.draw,
|
|
65
|
+
});
|
|
66
|
+
if (unstored)
|
|
67
|
+
console.warn(`PICTURES NOT STORED ${part}: ${unstored} - design check draws them`);
|
|
68
|
+
return 0;
|
|
69
|
+
}),
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
exports.acceptRunOf = acceptRunOf;
|
|
73
|
+
/** An acceptance of a direct edit of one part as a step, or why it may not run. */
|
|
74
|
+
const acceptStepOf = (options) => {
|
|
75
|
+
const { target, by, note } = options;
|
|
76
|
+
const refused = (0, tom_confirm_1.onlyTomRefusalOf)({ by, action: 'accept' });
|
|
77
|
+
if (refused)
|
|
78
|
+
return refused;
|
|
79
|
+
const config = (0, cli_args_1.configOf)(target);
|
|
80
|
+
if (typeof config === 'string')
|
|
81
|
+
return config;
|
|
82
|
+
const parsed = (0, sketch_1.parseTarget)(options.part);
|
|
83
|
+
if (typeof parsed === 'string')
|
|
84
|
+
return parsed;
|
|
85
|
+
const product = (0, cli_args_1.oneProductOf)({ target, config, asked: options.product });
|
|
86
|
+
if (typeof product === 'string')
|
|
87
|
+
return product;
|
|
88
|
+
const part = (0, resolve_product_1.partKeyOf)(parsed);
|
|
89
|
+
const refusal = (0, exports.partAcceptRefusalOf)({ target, product, part });
|
|
90
|
+
if (refusal)
|
|
91
|
+
return refusal.error;
|
|
92
|
+
return (0, exports.acceptRunOf)({ target, config, product, part, by, note, draw: options.draw });
|
|
93
|
+
};
|
|
94
|
+
exports.acceptStepOf = acceptStepOf;
|
|
95
|
+
/**
|
|
96
|
+
* `et design accept <layer>/<name> …` records a direct edit of a merged part the user approved, so check stops warning
|
|
97
|
+
* of it. `--by tom` needs Tom's confirm at a terminal.
|
|
98
|
+
*/
|
|
99
|
+
const designAccept = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
100
|
+
var _a, _b, _c;
|
|
12
101
|
const { target, argv, invocation } = options;
|
|
13
|
-
const args = (0, cli_args_1.argsOf)(argv, ['--product', '--by', '--note']);
|
|
102
|
+
const args = (0, cli_args_1.argsOf)(argv, { values: ['--product', '--by', '--note'], switches: [] });
|
|
14
103
|
const usage = `usage: ${invocation} ${exports.ACCEPT_USAGE}`;
|
|
15
104
|
if (typeof args === 'string') {
|
|
16
105
|
console.error(args);
|
|
@@ -27,29 +116,24 @@ const designAccept = (options) => {
|
|
|
27
116
|
console.error(usage);
|
|
28
117
|
return 2;
|
|
29
118
|
}
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
119
|
+
const step = (0, exports.acceptStepOf)({
|
|
120
|
+
target,
|
|
121
|
+
product: args.values['--product'],
|
|
122
|
+
part: (_b = args.positional[0]) !== null && _b !== void 0 ? _b : '',
|
|
123
|
+
by,
|
|
124
|
+
note,
|
|
125
|
+
draw: options.draw,
|
|
126
|
+
});
|
|
127
|
+
if (typeof step === 'string') {
|
|
128
|
+
console.error(step);
|
|
38
129
|
return 1;
|
|
39
130
|
}
|
|
40
|
-
const
|
|
41
|
-
if (
|
|
42
|
-
console.error(
|
|
131
|
+
const refusal = yield (0, tom_confirm_1.tomConfirmRefusalOf)({ steps: [step], invocation, prompt: (_c = options.prompt) !== null && _c !== void 0 ? _c : (0, tom_confirm_1.ttyPrompt)() });
|
|
132
|
+
if (refusal) {
|
|
133
|
+
console.error(refusal);
|
|
43
134
|
return 1;
|
|
44
135
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
if (problem) {
|
|
48
|
-
console.error(problem);
|
|
49
|
-
return 1;
|
|
50
|
-
}
|
|
51
|
-
console.log(`accepted the direct edit of ${part} in ${product.name}`);
|
|
52
|
-
return 0;
|
|
53
|
-
};
|
|
136
|
+
return (0, tom_confirm_1.runSteps)([step]);
|
|
137
|
+
});
|
|
54
138
|
exports.designAccept = designAccept;
|
|
55
139
|
//# sourceMappingURL=accept-command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accept-command.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/system/accept-command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"accept-command.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/system/accept-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { DesignConfig } from '../paths';
|
|
2
|
+
import { Problem } from './problem';
|
|
3
|
+
import { ResolvedProduct } from './resolve-product';
|
|
4
|
+
import { SketchVariant } from './system-modules';
|
|
5
|
+
export declare const PICTURES_FILE = "pictures.json";
|
|
6
|
+
/** The sha16 of each state's picture, under the state name. */
|
|
7
|
+
export type StatePictures = Record<string, string>;
|
|
8
|
+
/**
|
|
9
|
+
* The pictures of a part's states at a hash, and `partHash`, the part hash `merged.json` keeps, they were drawn at.
|
|
10
|
+
* Pictures without `slots` were drawn with slots emptied and cannot prove that slot content is unchanged, so they are
|
|
11
|
+
* read as missing.
|
|
12
|
+
*/
|
|
13
|
+
export type AcceptedPictures = {
|
|
14
|
+
hash: string;
|
|
15
|
+
states: StatePictures;
|
|
16
|
+
slots: true;
|
|
17
|
+
partHash?: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* `record` is drawn at the part's design hash while it is merged and unchanged since. `review` (at the merged hash)
|
|
21
|
+
* and `go` (at the go's design hash) are older kinds, still read.
|
|
22
|
+
*/
|
|
23
|
+
export type PictureKind = 'record' | 'review' | 'go';
|
|
24
|
+
export type PartPictures = Partial<Record<PictureKind, AcceptedPictures>>;
|
|
25
|
+
/**
|
|
26
|
+
* Draws every state of each part as `design compare` draws its design side, and answers per part with the picture
|
|
27
|
+
* hash of each state or why it could not be drawn. A state that differs from `expected` is drawn once more, fresh.
|
|
28
|
+
*/
|
|
29
|
+
export type DrawStates = (options: {
|
|
30
|
+
target: string;
|
|
31
|
+
config: DesignConfig;
|
|
32
|
+
product: ResolvedProduct;
|
|
33
|
+
parts: string[];
|
|
34
|
+
expected?: Record<string, StatePictures>;
|
|
35
|
+
sketch?: SketchVariant;
|
|
36
|
+
}) => Promise<Map<string, StatePictures | string>>;
|
|
37
|
+
export declare const readPictures: (dir: string) => Record<string, PartPictures>;
|
|
38
|
+
/** Writes the `record` pictures of one part into the pictures.json in `dir`, dropping its older kinds, sorted by part. */
|
|
39
|
+
export declare const writePictures: (options: {
|
|
40
|
+
dir: string;
|
|
41
|
+
part: string;
|
|
42
|
+
pictures: Omit<AcceptedPictures, "slots">;
|
|
43
|
+
}) => void;
|
|
44
|
+
/** The states whose picture differs between two drawings, added and removed states included, sorted. */
|
|
45
|
+
export declare const changedStatesOf: (before: StatePictures, now: StatePictures) => string[];
|
|
46
|
+
export declare const drawStatePictures: DrawStates;
|
|
47
|
+
/**
|
|
48
|
+
* Draws a part and stores its `record` pictures at its design hash, after a go or an acceptance verified `hash` (of
|
|
49
|
+
* `kind`). Answers with why nothing was stored, or `null`; `design check` draws the pictures later when they are missing.
|
|
50
|
+
*/
|
|
51
|
+
export declare const storePictures: (options: {
|
|
52
|
+
target: string;
|
|
53
|
+
config: DesignConfig;
|
|
54
|
+
product: ResolvedProduct;
|
|
55
|
+
part: string;
|
|
56
|
+
kind: "review" | "go";
|
|
57
|
+
hash: string;
|
|
58
|
+
draw?: DrawStates;
|
|
59
|
+
}) => Promise<string | null>;
|
|
60
|
+
export declare const newStatesLineOf: ({ product, part, states }: {
|
|
61
|
+
product: string;
|
|
62
|
+
part: string;
|
|
63
|
+
states: string[];
|
|
64
|
+
}) => string;
|
|
65
|
+
/**
|
|
66
|
+
* The work of `design check` on the pictures of each merged part, or of `parts`: draws the `record` pictures of a part
|
|
67
|
+
* unchanged since its merge when none are stored at its design hash, and resolves a direct edit of a part changed
|
|
68
|
+
* outside a sketch, and of a part whose old/new edit sketch is open without a decision. A direct edit is compared with
|
|
69
|
+
* its pictures at the merged hash, else with the `old` variant of the old/new edit sketch, which holds the design at
|
|
70
|
+
* HEAD (an open sketch's `old` is rewritten from HEAD first). One that draws every state as before holds at once (its
|
|
71
|
+
* new hash goes to `merged.json`, and the edit sketch closes); one that draws a state differently leaves the edit
|
|
72
|
+
* sketch open. An `old` that does not draw goes to `problems`, else to the lines.
|
|
73
|
+
* Answers with one line per part it drew or decided.
|
|
74
|
+
*/
|
|
75
|
+
export declare const autoAcceptOf: (options: {
|
|
76
|
+
target: string;
|
|
77
|
+
config: DesignConfig;
|
|
78
|
+
product: ResolvedProduct;
|
|
79
|
+
only?: string;
|
|
80
|
+
parts?: string[];
|
|
81
|
+
draw?: DrawStates;
|
|
82
|
+
problems?: Problem[];
|
|
83
|
+
}) => Promise<string[]>;
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.autoAcceptOf = exports.newStatesLineOf = exports.storePictures = exports.drawStatePictures = exports.changedStatesOf = exports.writePictures = exports.readPictures = exports.PICTURES_FILE = void 0;
|
|
13
|
+
const fs_1 = require("fs");
|
|
14
|
+
const json_file_1 = require("../../json-file");
|
|
15
|
+
const path_1 = require("path");
|
|
16
|
+
const browser_1 = require("../browser");
|
|
17
|
+
const serve_1 = require("../serve");
|
|
18
|
+
const shot_1 = require("../shot");
|
|
19
|
+
const thumb_1 = require("../thumb");
|
|
20
|
+
const compare_command_1 = require("./compare-command");
|
|
21
|
+
const design_hash_1 = require("./design-hash");
|
|
22
|
+
const inventory_approval_1 = require("./inventory-approval");
|
|
23
|
+
const resolve_product_1 = require("./resolve-product");
|
|
24
|
+
const baseline_1 = require("./sketch/baseline");
|
|
25
|
+
const edit_sketch_1 = require("./sketch/edit-sketch");
|
|
26
|
+
const merge_1 = require("./sketch/merge");
|
|
27
|
+
const merged_parts_1 = require("./sketch/merged-parts");
|
|
28
|
+
const sketch_1 = require("./sketch/sketch");
|
|
29
|
+
const system_modules_1 = require("./system-modules");
|
|
30
|
+
const unchanged_rows_1 = require("./unchanged-rows");
|
|
31
|
+
exports.PICTURES_FILE = 'pictures.json';
|
|
32
|
+
const messageOf = (error) => (error instanceof Error ? error.message : String(error));
|
|
33
|
+
const picturesFileOf = (dir) => (0, path_1.resolve)(dir, exports.PICTURES_FILE);
|
|
34
|
+
const isAccepted = (value) => {
|
|
35
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
36
|
+
return false;
|
|
37
|
+
const { hash, states, slots, partHash } = value;
|
|
38
|
+
return (typeof hash === 'string' &&
|
|
39
|
+
slots === true &&
|
|
40
|
+
(partHash === undefined || typeof partHash === 'string') &&
|
|
41
|
+
!!states &&
|
|
42
|
+
typeof states === 'object' &&
|
|
43
|
+
!Array.isArray(states) &&
|
|
44
|
+
Object.values(states).every((picture) => typeof picture === 'string'));
|
|
45
|
+
};
|
|
46
|
+
const KINDS = ['record', 'review', 'go'];
|
|
47
|
+
const readPictures = (dir) => {
|
|
48
|
+
const file = picturesFileOf(dir);
|
|
49
|
+
if (!(0, fs_1.existsSync)(file))
|
|
50
|
+
return {};
|
|
51
|
+
try {
|
|
52
|
+
const parsed = JSON.parse((0, fs_1.readFileSync)(file, 'utf8'));
|
|
53
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
54
|
+
return {};
|
|
55
|
+
return Object.fromEntries(Object.entries(parsed).map(([part, entry]) => {
|
|
56
|
+
const kinds = (entry !== null && entry !== void 0 ? entry : {});
|
|
57
|
+
return [
|
|
58
|
+
part,
|
|
59
|
+
Object.fromEntries(KINDS.flatMap((kind) => (isAccepted(kinds[kind]) ? [[kind, kinds[kind]]] : []))),
|
|
60
|
+
];
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
catch (_a) {
|
|
64
|
+
return {};
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
exports.readPictures = readPictures;
|
|
68
|
+
/** Writes the `record` pictures of one part into the pictures.json in `dir`, dropping its older kinds, sorted by part. */
|
|
69
|
+
const writePictures = (options) => {
|
|
70
|
+
const { dir, part, pictures } = options;
|
|
71
|
+
const all = (0, exports.readPictures)(dir);
|
|
72
|
+
const entries = Object.entries(Object.assign(Object.assign({}, all), { [part]: { record: Object.assign(Object.assign({}, pictures), { slots: true }) } })).sort(([a], [b]) => a.localeCompare(b));
|
|
73
|
+
(0, json_file_1.writeJsonFile)({ file: picturesFileOf(dir), value: Object.fromEntries(entries) });
|
|
74
|
+
};
|
|
75
|
+
exports.writePictures = writePictures;
|
|
76
|
+
/** The states whose picture differs between two drawings, added and removed states included, sorted. */
|
|
77
|
+
const changedStatesOf = (before, now) => [...new Set([...Object.keys(before), ...Object.keys(now)])]
|
|
78
|
+
.filter((state) => before[state] !== now[state])
|
|
79
|
+
.sort((a, b) => a.localeCompare(b));
|
|
80
|
+
exports.changedStatesOf = changedStatesOf;
|
|
81
|
+
const drawStatePictures = (_a) => __awaiter(void 0, [_a], void 0, function* ({ target, config, product, parts, expected, sketch }) {
|
|
82
|
+
var _b, _c, _d, _e;
|
|
83
|
+
const drawn = new Map();
|
|
84
|
+
if (parts.length === 0)
|
|
85
|
+
return drawn;
|
|
86
|
+
if (!(yield (0, browser_1.chromiumOf)(target))) {
|
|
87
|
+
for (const part of parts)
|
|
88
|
+
drawn.set(part, 'drawing needs playwright or playwright-core in the checkout');
|
|
89
|
+
return drawn;
|
|
90
|
+
}
|
|
91
|
+
const queue = (0, thumb_1.createDrawQueue)({ target });
|
|
92
|
+
const server = yield (0, serve_1.createDesignServer)({ target, config, listen: true, port: 0 });
|
|
93
|
+
let shooter;
|
|
94
|
+
try {
|
|
95
|
+
yield server.listen();
|
|
96
|
+
const { port } = (_b = server.httpServer) === null || _b === void 0 ? void 0 : _b.address();
|
|
97
|
+
const system = (0, system_modules_1.createSystemModules)({ target, config });
|
|
98
|
+
const pictures = (0, shot_1.createPartShooter)({ target, base: `http://localhost:${port}`, system, queue });
|
|
99
|
+
shooter = pictures;
|
|
100
|
+
for (const part of parts) {
|
|
101
|
+
try {
|
|
102
|
+
const frame = (0, compare_command_1.compareFrameOf)({ presets: product.presets, part, preset: null });
|
|
103
|
+
if (typeof frame === 'string') {
|
|
104
|
+
drawn.set(part, frame);
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
const file = sketch
|
|
108
|
+
? (_c = system.partOf({ product: product.name, part, sketch })) === null || _c === void 0 ? void 0 : _c.file
|
|
109
|
+
: (_d = product.parts.find((candidate) => (0, resolve_product_1.partKeyOf)(candidate) === part)) === null || _d === void 0 ? void 0 : _d.file;
|
|
110
|
+
if (!file) {
|
|
111
|
+
drawn.set(part, `product "${product.name}" has no part "${part}"`);
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
const module = (yield server.ssrLoadModule((0, system_modules_1.productModuleIdOf)({ file, product: product.name, sketch })));
|
|
115
|
+
const states = yield (0, unchanged_rows_1.drawnStateNamesOf)(module.default);
|
|
116
|
+
const pictureOf = (state, fresh) => __awaiter(void 0, void 0, void 0, function* () {
|
|
117
|
+
return (0, design_hash_1.sha16)((yield pictures.pictureOf({
|
|
118
|
+
product: product.name,
|
|
119
|
+
part,
|
|
120
|
+
state,
|
|
121
|
+
preset: frame.preset,
|
|
122
|
+
width: null,
|
|
123
|
+
sketch: sketch !== null && sketch !== void 0 ? sketch : null,
|
|
124
|
+
interaction: null,
|
|
125
|
+
bare: true,
|
|
126
|
+
emptySlots: false,
|
|
127
|
+
checker: true,
|
|
128
|
+
params: new URLSearchParams(),
|
|
129
|
+
fresh,
|
|
130
|
+
})).png);
|
|
131
|
+
});
|
|
132
|
+
if (states.length === 0) {
|
|
133
|
+
drawn.set(part, `${part} has no states`);
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
const hashes = {};
|
|
137
|
+
for (const state of states) {
|
|
138
|
+
const first = yield pictureOf(state, false);
|
|
139
|
+
const want = (_e = expected === null || expected === void 0 ? void 0 : expected[part]) === null || _e === void 0 ? void 0 : _e[state];
|
|
140
|
+
hashes[state] = want !== undefined && want !== first ? yield pictureOf(state, true) : first;
|
|
141
|
+
}
|
|
142
|
+
drawn.set(part, hashes);
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
drawn.set(part, messageOf(error));
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
for (const part of parts)
|
|
151
|
+
if (!drawn.has(part))
|
|
152
|
+
drawn.set(part, messageOf(error));
|
|
153
|
+
}
|
|
154
|
+
finally {
|
|
155
|
+
yield (shooter === null || shooter === void 0 ? void 0 : shooter.close());
|
|
156
|
+
yield queue.close();
|
|
157
|
+
yield server.close();
|
|
158
|
+
}
|
|
159
|
+
return drawn;
|
|
160
|
+
});
|
|
161
|
+
exports.drawStatePictures = drawStatePictures;
|
|
162
|
+
/**
|
|
163
|
+
* Draws a part and stores its `record` pictures at its design hash, after a go or an acceptance verified `hash` (of
|
|
164
|
+
* `kind`). Answers with why nothing was stored, or `null`; `design check` draws the pictures later when they are missing.
|
|
165
|
+
*/
|
|
166
|
+
const storePictures = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
167
|
+
var _a;
|
|
168
|
+
const { target, config, product, part, kind, hash } = options;
|
|
169
|
+
const resolved = product.parts.find((candidate) => (0, resolve_product_1.partKeyOf)(candidate) === part);
|
|
170
|
+
if (!resolved)
|
|
171
|
+
return `product "${product.name}" has no part "${part}"`;
|
|
172
|
+
const design = (0, design_hash_1.designHashOf)({ product, part: resolved }).hash;
|
|
173
|
+
const drawn = (yield ((_a = options.draw) !== null && _a !== void 0 ? _a : exports.drawStatePictures)({ target, config, product, parts: [part] })).get(part);
|
|
174
|
+
const partHash = (0, baseline_1.partHashOf)({ product, dir: (0, path_1.dirname)(resolved.file) });
|
|
175
|
+
const now = kind === 'review' ? partHash : design;
|
|
176
|
+
if (drawn === undefined || typeof drawn === 'string')
|
|
177
|
+
return drawn !== null && drawn !== void 0 ? drawn : `${part} was not drawn`;
|
|
178
|
+
if (now !== hash || (0, design_hash_1.designHashOf)({ product, part: resolved }).hash !== design)
|
|
179
|
+
return `${part} changed while it was drawn`;
|
|
180
|
+
(0, exports.writePictures)({
|
|
181
|
+
dir: (0, inventory_approval_1.partOwnerOf)({ product, part: resolved }).dir,
|
|
182
|
+
part,
|
|
183
|
+
pictures: { hash: design, states: drawn, partHash },
|
|
184
|
+
});
|
|
185
|
+
return null;
|
|
186
|
+
});
|
|
187
|
+
exports.storePictures = storePictures;
|
|
188
|
+
const newStatesLineOf = ({ product, part, states }) => `NEW STATES ${product} ${part}: ${states.join(', ')} - for Tom's next review`;
|
|
189
|
+
exports.newStatesLineOf = newStatesLineOf;
|
|
190
|
+
/**
|
|
191
|
+
* The pictures a direct edit of the part is compared with: its `record` or `review` drawn at the merged part hash. A
|
|
192
|
+
* `go` carries only a design hash, which cannot show that it was drawn at the merged part hash.
|
|
193
|
+
*/
|
|
194
|
+
const baselineOf = (pictures, merged) => {
|
|
195
|
+
var _a, _b, _c, _d;
|
|
196
|
+
return (_d = (_b = (merged !== undefined && ((_a = pictures.record) === null || _a === void 0 ? void 0 : _a.partHash) === merged ? pictures.record : undefined)) !== null && _b !== void 0 ? _b : (merged !== undefined && ((_c = pictures.review) === null || _c === void 0 ? void 0 : _c.hash) === merged ? pictures.review : undefined)) !== null && _d !== void 0 ? _d : null;
|
|
197
|
+
};
|
|
198
|
+
const isUndecidedEditSketch = (sketch) => {
|
|
199
|
+
var _a;
|
|
200
|
+
return sketch.target === `${(0, resolve_product_1.partKeyOf)(sketch)}@${merged_parts_1.EDIT_SKETCH}` &&
|
|
201
|
+
sketch.status === 'ready' &&
|
|
202
|
+
!sketch.decision &&
|
|
203
|
+
!sketch.hold &&
|
|
204
|
+
Object.values((_a = sketch.rejections) !== null && _a !== void 0 ? _a : {}).every((rejections) => rejections.length === 0);
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* The work of `design check` on the pictures of each merged part, or of `parts`: draws the `record` pictures of a part
|
|
208
|
+
* unchanged since its merge when none are stored at its design hash, and resolves a direct edit of a part changed
|
|
209
|
+
* outside a sketch, and of a part whose old/new edit sketch is open without a decision. A direct edit is compared with
|
|
210
|
+
* its pictures at the merged hash, else with the `old` variant of the old/new edit sketch, which holds the design at
|
|
211
|
+
* HEAD (an open sketch's `old` is rewritten from HEAD first). One that draws every state as before holds at once (its
|
|
212
|
+
* new hash goes to `merged.json`, and the edit sketch closes); one that draws a state differently leaves the edit
|
|
213
|
+
* sketch open. An `old` that does not draw goes to `problems`, else to the lines.
|
|
214
|
+
* Answers with one line per part it drew or decided.
|
|
215
|
+
*/
|
|
216
|
+
const autoAcceptOf = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
217
|
+
var _a, _b, _c, _d;
|
|
218
|
+
const { target, config, product, only } = options;
|
|
219
|
+
const edited = new Set((0, merged_parts_1.changedOutsideSketchOf)(product));
|
|
220
|
+
const editSketches = new Map((0, sketch_1.listSketches)({ productDir: product.dir, product: product.name }).flatMap((sketch) => typeof sketch !== 'string' && isUndecidedEditSketch(sketch) ? [[(0, resolve_product_1.partKeyOf)(sketch), sketch]] : []));
|
|
221
|
+
const merged = (0, merged_parts_1.readMerged)(product.dir);
|
|
222
|
+
const records = [];
|
|
223
|
+
const edits = [];
|
|
224
|
+
const lines = [];
|
|
225
|
+
const draw = (_a = options.draw) !== null && _a !== void 0 ? _a : exports.drawStatePictures;
|
|
226
|
+
const heads = [];
|
|
227
|
+
const oldNotDrawn = ({ resolved, sketch }, why) => {
|
|
228
|
+
const message = `variant ${edit_sketch_1.EDIT_OLD} of ${sketch.target} (the part at HEAD) does not draw: ${why}`;
|
|
229
|
+
if (options.problems)
|
|
230
|
+
options.problems.push({ rule: 'EDIT-OLD-NOT-DRAWN', file: resolved.file, message });
|
|
231
|
+
else
|
|
232
|
+
lines.push(`EDIT-OLD-NOT-DRAWN ${product.name} ${(0, resolve_product_1.partKeyOf)(resolved)}: ${message}`);
|
|
233
|
+
};
|
|
234
|
+
const opened = (part, sketch) => lines.push(typeof sketch === 'string'
|
|
235
|
+
? `DIRECT EDIT ${product.name} ${part}: changed outside a sketch, no old/new sketch: ${sketch}`
|
|
236
|
+
: `DIRECT EDIT ${product.name} ${part}: changed outside a sketch - pick old or new in sketch ${sketch.target}`);
|
|
237
|
+
const open = (part) => (0, edit_sketch_1.openEditSketch)({ target, product, part, author: 'design check' });
|
|
238
|
+
for (const resolved of product.parts) {
|
|
239
|
+
const part = (0, resolve_product_1.partKeyOf)(resolved);
|
|
240
|
+
if ((only && part !== only) || (options.parts && !options.parts.includes(part)))
|
|
241
|
+
continue;
|
|
242
|
+
if (resolved.origin === 'base' || merged[part] === undefined)
|
|
243
|
+
continue;
|
|
244
|
+
const pictures = (_b = (0, exports.readPictures)((0, inventory_approval_1.partOwnerOf)({ product, part: resolved }).dir)[part]) !== null && _b !== void 0 ? _b : {};
|
|
245
|
+
const design = (0, design_hash_1.designHashOf)({ product, part: resolved }).hash;
|
|
246
|
+
const editSketch = editSketches.get(part);
|
|
247
|
+
if (edited.has(part)) {
|
|
248
|
+
const baseline = baselineOf(pictures, merged[part]);
|
|
249
|
+
if (baseline) {
|
|
250
|
+
edits.push({ part: resolved, design, baseline });
|
|
251
|
+
continue;
|
|
252
|
+
}
|
|
253
|
+
const sketch = open(part);
|
|
254
|
+
if (typeof sketch === 'string')
|
|
255
|
+
opened(part, sketch);
|
|
256
|
+
else
|
|
257
|
+
heads.push({ part: resolved, design, sketch });
|
|
258
|
+
}
|
|
259
|
+
else if (editSketch)
|
|
260
|
+
heads.push({ part: resolved, design, sketch: editSketch, recheck: true });
|
|
261
|
+
else if (((_c = pictures.record) === null || _c === void 0 ? void 0 : _c.hash) !== design)
|
|
262
|
+
records.push({ part: resolved, design, baseline: null });
|
|
263
|
+
}
|
|
264
|
+
for (const { part: resolved, design, sketch, recheck } of heads) {
|
|
265
|
+
const part = (0, resolve_product_1.partKeyOf)(resolved);
|
|
266
|
+
const unreadable = recheck ? (0, edit_sketch_1.refreshEditOld)({ product, sketch }) : null;
|
|
267
|
+
if (unreadable) {
|
|
268
|
+
oldNotDrawn({ resolved, sketch }, unreadable);
|
|
269
|
+
continue;
|
|
270
|
+
}
|
|
271
|
+
const old = (yield draw({ target, config, product, parts: [part], sketch: { target: sketch.target, variant: edit_sketch_1.EDIT_OLD } })).get(part);
|
|
272
|
+
if (old === undefined || typeof old === 'string')
|
|
273
|
+
oldNotDrawn({ resolved, sketch }, old !== null && old !== void 0 ? old : 'no drawing');
|
|
274
|
+
else
|
|
275
|
+
edits.push({ part: resolved, design, baseline: { hash: (_d = merged[part]) !== null && _d !== void 0 ? _d : '', states: old, slots: true }, sketch });
|
|
276
|
+
}
|
|
277
|
+
const needs = [...edits, ...records];
|
|
278
|
+
if (needs.length === 0)
|
|
279
|
+
return lines;
|
|
280
|
+
const drawn = yield draw({
|
|
281
|
+
target,
|
|
282
|
+
config,
|
|
283
|
+
product,
|
|
284
|
+
parts: needs.map(({ part }) => (0, resolve_product_1.partKeyOf)(part)),
|
|
285
|
+
expected: Object.fromEntries(edits.flatMap(({ part, baseline }) => (baseline ? [[(0, resolve_product_1.partKeyOf)(part), baseline.states]] : []))),
|
|
286
|
+
});
|
|
287
|
+
for (const { part: resolved, design, baseline, sketch } of needs) {
|
|
288
|
+
const part = (0, resolve_product_1.partKeyOf)(resolved);
|
|
289
|
+
const states = drawn.get(part);
|
|
290
|
+
const notDrawn = (why) => {
|
|
291
|
+
lines.push(`PICTURES NOT DRAWN ${product.name} ${part}: ${why}`);
|
|
292
|
+
if (sketch)
|
|
293
|
+
opened(part, sketch);
|
|
294
|
+
};
|
|
295
|
+
if (states === undefined || typeof states === 'string') {
|
|
296
|
+
notDrawn(states !== null && states !== void 0 ? states : 'no drawing');
|
|
297
|
+
continue;
|
|
298
|
+
}
|
|
299
|
+
if ((0, design_hash_1.designHashOf)({ product, part: resolved }).hash !== design) {
|
|
300
|
+
notDrawn('changed while it was drawn');
|
|
301
|
+
continue;
|
|
302
|
+
}
|
|
303
|
+
const changed = baseline ? (0, exports.changedStatesOf)(baseline.states, states) : [];
|
|
304
|
+
if (baseline && changed.length > 0) {
|
|
305
|
+
lines.push(`PICTURES CHANGED ${product.name} ${part}: ${changed.join(', ')}`);
|
|
306
|
+
opened(part, sketch !== null && sketch !== void 0 ? sketch : open(part));
|
|
307
|
+
continue;
|
|
308
|
+
}
|
|
309
|
+
if (sketch)
|
|
310
|
+
(0, merge_1.discardSketch)({ target, sketch, author: 'design check' });
|
|
311
|
+
if (baseline) {
|
|
312
|
+
(0, merged_parts_1.recordMerged)({ product, parts: [part] });
|
|
313
|
+
lines.push(`HELD ${product.name} ${part}: changed outside a sketch, every state draws as before`);
|
|
314
|
+
}
|
|
315
|
+
(0, exports.writePictures)({
|
|
316
|
+
dir: (0, inventory_approval_1.partOwnerOf)({ product, part: resolved }).dir,
|
|
317
|
+
part,
|
|
318
|
+
pictures: { hash: design, states, partHash: (0, baseline_1.partHashOf)({ product, dir: (0, path_1.dirname)(resolved.file) }) },
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
return lines;
|
|
322
|
+
});
|
|
323
|
+
exports.autoAcceptOf = autoAcceptOf;
|
|
324
|
+
//# sourceMappingURL=accepted-pictures.js.map
|