@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
|
@@ -27,9 +27,12 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
27
27
|
return t;
|
|
28
28
|
};
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.
|
|
31
|
-
exports.
|
|
30
|
+
exports.flowNoteChangeAnswer = exports.flowNoteAnswer = exports.noteDeleteAnswer = exports.noteChangeAnswer = exports.noteAnswer = exports.notesAnswer = exports.flowsAnswer = exports.commentReplyAnswer = exports.commentWithdrawAnswer = exports.commentDoneAnswer = exports.commentAnswer = exports.commentsAnswer = exports.sketchDiscardAnswer = exports.sketchMergeAnswer = exports.sketchDecisionAnswer = exports.sketchCropAnswer = exports.sketchDiffAnswer = exports.sketchCompareAnswer = exports.sketchPreviewAnswer = exports.sketchesAnswer = exports.PART_ACCEPT_PATH = exports.PART_GO_PATH = exports.OPEN_POINTS_PATH = exports.MOTION_PATH = exports.EXCEPTION_APPROVE_PATH = exports.EXCEPTIONS_PATH = exports.INVENTORY_APPROVE_PATH = exports.INVENTORY_PATH = exports.FLOW_NOTE_DELETE_PATH = exports.FLOW_NOTE_CHANGE_PATH = exports.FLOW_NOTE_PATH = exports.NOTE_DELETE_PATH = exports.NOTE_CHANGE_PATH = exports.NOTE_PATH = exports.NOTES_PATH = exports.FLOWS_PATH = exports.COMMENT_EVENTS_PATH = exports.COMMENT_REPLY_PATH = exports.COMMENT_WITHDRAW_PATH = exports.COMMENT_DONE_PATH = exports.COMMENT_PATH = exports.COMMENTS_PATH = exports.SKETCH_DISCARD_PATH = exports.SKETCH_MERGE_PATH = exports.SKETCH_DECISION_PATH = exports.SKETCH_CROP_PATH = exports.SKETCH_DIFF_PATH = exports.SKETCH_COMPARE_PATH = exports.SKETCH_PREVIEW_PATH = exports.SKETCHES_PATH = void 0;
|
|
31
|
+
exports.partAcceptAnswer = exports.partGoAnswer = exports.openPointsAnswer = exports.exceptionApproveAnswer = exports.exceptionsAnswer = exports.inventoryApproveAnswer = exports.inventoryAnswer = exports.flowNoteDeleteAnswer = void 0;
|
|
32
|
+
const child_process_1 = require("child_process");
|
|
32
33
|
const path_1 = require("path");
|
|
34
|
+
const rxjs_1 = require("rxjs");
|
|
35
|
+
const promises_1 = require("timers/promises");
|
|
33
36
|
const invocation_1 = require("../invocation");
|
|
34
37
|
const paths_1 = require("./paths");
|
|
35
38
|
const comment_1 = require("./system/comments/comment");
|
|
@@ -37,12 +40,20 @@ const flow_1 = require("./system/flows/flow");
|
|
|
37
40
|
const note_1 = require("./system/notes/note");
|
|
38
41
|
const exceptions_1 = require("./system/exceptions");
|
|
39
42
|
const inventory_1 = require("./system/inventory");
|
|
43
|
+
const check_system_1 = require("./system/check-system");
|
|
44
|
+
const part_build_ready_1 = require("./system/part-build-ready");
|
|
40
45
|
const part_ready_1 = require("./system/part-ready");
|
|
46
|
+
const harness_map_1 = require("./system/harness-map");
|
|
47
|
+
const part_go_1 = require("./system/part-go");
|
|
48
|
+
const action_lost_1 = require("./system/action-lost");
|
|
41
49
|
const read_open_points_1 = require("./system/read-open-points");
|
|
42
50
|
const flow_2 = require("./system/rules/flow");
|
|
43
51
|
const check_sketches_1 = require("./system/sketch/check-sketches");
|
|
44
52
|
const cli_args_1 = require("./system/sketch/cli-args");
|
|
45
53
|
const merge_1 = require("./system/sketch/merge");
|
|
54
|
+
const merged_parts_1 = require("./system/sketch/merged-parts");
|
|
55
|
+
const accept_command_1 = require("./system/accept-command");
|
|
56
|
+
const accepted_pictures_1 = require("./system/accepted-pictures");
|
|
46
57
|
const list_system_1 = require("./system/list-system");
|
|
47
58
|
const merge_compare_1 = require("./merge-compare");
|
|
48
59
|
const variant_diff_1 = require("./variant-diff");
|
|
@@ -80,8 +91,13 @@ exports.EXCEPTIONS_PATH = '/__design/exceptions';
|
|
|
80
91
|
exports.EXCEPTION_APPROVE_PATH = '/__design/exception-approve';
|
|
81
92
|
exports.MOTION_PATH = '/__design/motion';
|
|
82
93
|
exports.OPEN_POINTS_PATH = '/__design/open-points';
|
|
83
|
-
exports.
|
|
94
|
+
exports.PART_GO_PATH = '/__design/part-go';
|
|
95
|
+
exports.PART_ACCEPT_PATH = '/__design/part-accept';
|
|
84
96
|
const failure = (status, message) => ({ status, body: { error: message } });
|
|
97
|
+
const refusal = (options) => ({
|
|
98
|
+
status: options.status,
|
|
99
|
+
body: Object.assign({ error: options.message, reason: options.reason }, options.extra),
|
|
100
|
+
});
|
|
85
101
|
const productOf = ({ target, url }) => {
|
|
86
102
|
const asked = url.searchParams.get('product');
|
|
87
103
|
const config = (0, paths_1.readConfig)(target);
|
|
@@ -130,6 +146,17 @@ const withProduct = (method, run) => (asked) => {
|
|
|
130
146
|
const found = productOf(asked);
|
|
131
147
|
return isAnswer(found) ? found : run(Object.assign(Object.assign({}, found), { asked }));
|
|
132
148
|
};
|
|
149
|
+
const stopping = (signal, run) => (...args) => __awaiter(void 0, void 0, void 0, function* () {
|
|
150
|
+
signal.throwIfAborted();
|
|
151
|
+
return run(...args);
|
|
152
|
+
});
|
|
153
|
+
/** `asked` with its loaders refusing to start a module load or a picture once `signal` aborts. */
|
|
154
|
+
const stoppingOn = (asked, signal) => {
|
|
155
|
+
if (!signal)
|
|
156
|
+
return asked;
|
|
157
|
+
const { load, pictureOf, boxOf } = asked;
|
|
158
|
+
return Object.assign(Object.assign(Object.assign(Object.assign({}, asked), (load ? { load: stopping(signal, load) } : {})), (pictureOf ? { pictureOf: stopping(signal, pictureOf) } : {})), (boxOf ? { boxOf: stopping(signal, boxOf) } : {}));
|
|
159
|
+
};
|
|
133
160
|
const withSketch = (method, run) => withProduct(method, (found) => {
|
|
134
161
|
var _a;
|
|
135
162
|
const parsed = (0, sketch_1.parseTarget)((_a = found.asked.url.searchParams.get('sketch')) !== null && _a !== void 0 ? _a : undefined);
|
|
@@ -140,7 +167,7 @@ const withSketch = (method, run) => withProduct(method, (found) => {
|
|
|
140
167
|
return failure(404, `no sketch on ${parsed.layer}/${parsed.name} in ${found.product.name}`);
|
|
141
168
|
if (typeof sketch === 'string')
|
|
142
169
|
return failure(422, sketch);
|
|
143
|
-
return run(Object.assign(Object.assign({}, found), { sketch }));
|
|
170
|
+
return run(Object.assign(Object.assign({}, found), { asked: stoppingOn(found.asked, found.asked.signal), sketch }));
|
|
144
171
|
});
|
|
145
172
|
const problemOf = ({ target, problem }) => ({
|
|
146
173
|
rule: problem.rule,
|
|
@@ -160,7 +187,21 @@ const variantChangesOf = ({ current, drawn }) => ({
|
|
|
160
187
|
dropped: current.states.filter((state) => !drawn.states.includes(state)),
|
|
161
188
|
note: drawn.note === current.note ? null : { before: current.note, after: drawn.note },
|
|
162
189
|
});
|
|
163
|
-
|
|
190
|
+
/** Maps `items` one after another, letting the server answer other requests before each, and stops once `signal` aborts. */
|
|
191
|
+
const inTurns = (_a, run_1) => __awaiter(void 0, [_a, run_1], void 0, function* ({ items, signal }, run) {
|
|
192
|
+
const results = [];
|
|
193
|
+
for (const item of items) {
|
|
194
|
+
yield (0, promises_1.setImmediate)();
|
|
195
|
+
signal === null || signal === void 0 ? void 0 : signal.throwIfAborted();
|
|
196
|
+
results.push(yield run(item));
|
|
197
|
+
}
|
|
198
|
+
return results;
|
|
199
|
+
});
|
|
200
|
+
const keptOf = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
201
|
+
const unchanged = options.problem ? null : yield (0, unchanged_states_1.keptUnchangedStatesOf)(options);
|
|
202
|
+
return unchanged ? { unchanged } : {};
|
|
203
|
+
});
|
|
204
|
+
const partTargetsOf = (_a) => __awaiter(void 0, [_a], void 0, function* ({ product, sketch, part, load, pictureOf, signal, compare, }) {
|
|
164
205
|
var _b;
|
|
165
206
|
const currentFile = (_b = product.parts.find((entry) => (0, resolve_product_1.partKeyOf)(entry) === part)) === null || _b === void 0 ? void 0 : _b.file;
|
|
166
207
|
const current = currentFile && load
|
|
@@ -170,7 +211,7 @@ const partTargetsOf = (_a) => __awaiter(void 0, [_a], void 0, function* ({ produ
|
|
|
170
211
|
load: () => load({ file: currentFile, product: product.name, sketch: null }),
|
|
171
212
|
})
|
|
172
213
|
: null;
|
|
173
|
-
return
|
|
214
|
+
return inTurns({ items: sketch.variants, signal }, (variant) => __awaiter(void 0, void 0, void 0, function* () {
|
|
174
215
|
var _a;
|
|
175
216
|
const file = (_a = (0, overlay_1.overlaySketch)({ product, sketch, variant }).parts.find((entry) => (0, resolve_product_1.partKeyOf)(entry) === part)) === null || _a === void 0 ? void 0 : _a.file;
|
|
176
217
|
if (!file || !load)
|
|
@@ -181,50 +222,108 @@ const partTargetsOf = (_a) => __awaiter(void 0, [_a], void 0, function* ({ produ
|
|
|
181
222
|
product: product.name,
|
|
182
223
|
load: () => load({ file, product: product.name, sketch: { target: sketch.target, variant } }),
|
|
183
224
|
}), { states, interactions, problem, note } = _b, widths = __rest(_b, ["states", "interactions", "problem", "note"]);
|
|
184
|
-
return Object.assign(Object.assign(Object.assign(Object.assign({ part,
|
|
225
|
+
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ part,
|
|
185
226
|
variant,
|
|
186
|
-
states }, ('widths' in widths ? { widths: widths.widths } : {})), { interactions,
|
|
187
|
-
|
|
188
|
-
:
|
|
227
|
+
states }, ('widths' in widths ? { widths: widths.widths } : {})), { interactions }), (compare
|
|
228
|
+
? {
|
|
229
|
+
unchanged: problem
|
|
230
|
+
? []
|
|
231
|
+
: yield (0, unchanged_states_1.unchangedStatesOf)({ product, sketch, variant, load, pictureOf, keepPictures: true, part }),
|
|
232
|
+
}
|
|
233
|
+
: yield keptOf({ product, sketch, variant, part, pictured: !!pictureOf, problem }))), (problem || !current || current.problem
|
|
189
234
|
? {}
|
|
190
235
|
: { changes: variantChangesOf({ current, drawn: { states, note } }) })), (problem ? { error: problem } : {}));
|
|
191
|
-
}))
|
|
236
|
+
}));
|
|
237
|
+
});
|
|
238
|
+
const targetsOf = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
239
|
+
return (yield inTurns({ items: options.sketch.targets, signal: options.signal }, (part) => partTargetsOf(Object.assign(Object.assign({}, options), { part })))).flat();
|
|
240
|
+
});
|
|
241
|
+
const listingOf = (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, product, light, signal, }) {
|
|
242
|
+
var _b;
|
|
243
|
+
const { target } = asked;
|
|
244
|
+
const listOnly = light && asked.url.searchParams.get('targets') === 'no';
|
|
245
|
+
const listed = yield (0, sketch_1.listSketchesInTurns)({ productDir: product.dir, product: product.name });
|
|
246
|
+
const sketches = listed.filter((sketch) => typeof sketch !== 'string');
|
|
247
|
+
const checked = light
|
|
248
|
+
? null
|
|
249
|
+
: asked.checkSketches
|
|
250
|
+
? yield asked.checkSketches({ target, product: product.name })
|
|
251
|
+
: (0, check_sketches_1.openSketchListingOf)(product);
|
|
252
|
+
const unreadable = (_b = checked === null || checked === void 0 ? void 0 : checked.unreadable) !== null && _b !== void 0 ? _b : listed.flatMap((sketch) => typeof sketch === 'string' ? [{ rule: 'SKETCH', file: product.dir, message: sketch }] : []);
|
|
253
|
+
return {
|
|
254
|
+
status: 200,
|
|
255
|
+
body: {
|
|
256
|
+
sketches: yield inTurns({ items: sketches, signal }, (sketch) => __awaiter(void 0, void 0, void 0, function* () {
|
|
257
|
+
return (Object.assign(Object.assign(Object.assign(Object.assign({}, sketchOf({ sketch, target })), (checked
|
|
258
|
+
? {
|
|
259
|
+
problems: checked.variants
|
|
260
|
+
.filter((entry) => entry.target === sketch.target)
|
|
261
|
+
.map((entry) => ({
|
|
262
|
+
variant: entry.variant,
|
|
263
|
+
problems: entry.problems.map((p) => problemOf({ target, problem: p })),
|
|
264
|
+
})),
|
|
265
|
+
}
|
|
266
|
+
: {})), (listOnly
|
|
267
|
+
? {}
|
|
268
|
+
: {
|
|
269
|
+
targets: yield targetsOf({
|
|
270
|
+
product,
|
|
271
|
+
sketch,
|
|
272
|
+
load: asked.load,
|
|
273
|
+
pictureOf: asked.pictureOf,
|
|
274
|
+
signal,
|
|
275
|
+
compare: !light,
|
|
276
|
+
}),
|
|
277
|
+
})), { report: (0, sketch_1.readSketchReport)({ checkout: target, sketch }) }));
|
|
278
|
+
})),
|
|
279
|
+
unreadable: unreadable.map((problem) => problemOf({ target, problem })),
|
|
280
|
+
},
|
|
281
|
+
};
|
|
192
282
|
});
|
|
193
|
-
const
|
|
283
|
+
const runningListings = new Map();
|
|
284
|
+
const startedListing = ({ key, asked, product, light, }) => {
|
|
285
|
+
const stop = new AbortController();
|
|
286
|
+
const listing = {
|
|
287
|
+
askers: 0,
|
|
288
|
+
stop,
|
|
289
|
+
answer: listingOf({ asked: stoppingOn(asked, stop.signal), product, light, signal: stop.signal }).finally(() => {
|
|
290
|
+
if (runningListings.get(key) === listing)
|
|
291
|
+
runningListings.delete(key);
|
|
292
|
+
}),
|
|
293
|
+
};
|
|
294
|
+
runningListings.set(key, listing);
|
|
295
|
+
return listing;
|
|
296
|
+
};
|
|
194
297
|
/**
|
|
195
298
|
* The open sketches of `?product=`, each with its target parts (`targetParts`, the first one first), variants, status,
|
|
196
299
|
* decision, the rule problems of every variant, the states, widths and interactions of each target part as each variant
|
|
197
300
|
* draws it (`targets`, one entry per part and variant, tagged with `part`, the first part's entries first), with the states it
|
|
198
301
|
* draws the same as the product now (`unchanged`), the states it adds and drops and its part note when that differs
|
|
199
302
|
* from the product's (`changes`), and the live report
|
|
200
|
-
* of the agent (`report`, `null` when none runs). `?unchanged=no`
|
|
201
|
-
*
|
|
303
|
+
* of the agent (`report`, `null` when none runs). `?unchanged=no` answers without `problems`, and with the `unchanged` of a target only
|
|
304
|
+
* while a full listing's comparison of the same sources is kept: no rule check, no pictures. `&targets=no` also leaves out `targets`: no part module loads.
|
|
305
|
+
* A listing asked while the same one runs gets that one's answer; it stops when every client that asked for it has closed its request.
|
|
202
306
|
*/
|
|
203
|
-
exports.sketchesAnswer = withProduct('GET', (
|
|
204
|
-
|
|
205
|
-
const
|
|
206
|
-
const
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
problems: entry.problems.map((p) => problemOf({ target, problem: p })),
|
|
216
|
-
})), targets: yield targetsOf({
|
|
217
|
-
product,
|
|
218
|
-
sketch,
|
|
219
|
-
load: asked.load,
|
|
220
|
-
pictureOf: asked.pictureOf,
|
|
221
|
-
skipUnchanged: asked.url.searchParams.get('unchanged') === 'no',
|
|
222
|
-
}), report: (0, sketch_1.readSketchReport)({ checkout: target, sketch }) }));
|
|
223
|
-
}))),
|
|
224
|
-
unreadable: unreadable.map((problem) => problemOf({ target, problem })),
|
|
225
|
-
},
|
|
307
|
+
exports.sketchesAnswer = withProduct('GET', ({ asked, product }) => {
|
|
308
|
+
var _a, _b;
|
|
309
|
+
const light = asked.url.searchParams.get('unchanged') === 'no';
|
|
310
|
+
const key = JSON.stringify([asked.target, product.name, light, asked.url.searchParams.get('targets') === 'no']);
|
|
311
|
+
const listing = (_a = runningListings.get(key)) !== null && _a !== void 0 ? _a : startedListing({ key, asked, product, light });
|
|
312
|
+
const leave = () => {
|
|
313
|
+
listing.askers -= 1;
|
|
314
|
+
if (listing.askers > 0)
|
|
315
|
+
return;
|
|
316
|
+
listing.stop.abort();
|
|
317
|
+
if (runningListings.get(key) === listing)
|
|
318
|
+
runningListings.delete(key);
|
|
226
319
|
};
|
|
227
|
-
|
|
320
|
+
listing.askers += 1;
|
|
321
|
+
if ((_b = asked.signal) === null || _b === void 0 ? void 0 : _b.aborted)
|
|
322
|
+
leave();
|
|
323
|
+
else if (asked.signal)
|
|
324
|
+
(0, rxjs_1.fromEvent)(asked.signal, 'abort').pipe((0, rxjs_1.take)(1)).subscribe(leave);
|
|
325
|
+
return listing.answer;
|
|
326
|
+
});
|
|
228
327
|
/** `?product=&sketch=<layer>/<name>&variant=`: the parts a merge of that variant changes and the elements and pages that show them. */
|
|
229
328
|
exports.sketchPreviewAnswer = withSketch('GET', ({ asked, product, sketch }) => {
|
|
230
329
|
var _a;
|
|
@@ -255,7 +354,7 @@ exports.sketchCompareAnswer = withSketch('GET', (_a) => __awaiter(void 0, [_a],
|
|
|
255
354
|
size: asked.url.searchParams.get('size'),
|
|
256
355
|
params: asked.url.searchParams,
|
|
257
356
|
pictureOf,
|
|
258
|
-
load
|
|
357
|
+
load,
|
|
259
358
|
}),
|
|
260
359
|
};
|
|
261
360
|
}));
|
|
@@ -266,7 +365,7 @@ exports.sketchCompareAnswer = withSketch('GET', (_a) => __awaiter(void 0, [_a],
|
|
|
266
365
|
exports.sketchDiffAnswer = withSketch('GET', (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, product, sketch }) {
|
|
267
366
|
var _b, _c;
|
|
268
367
|
const variant = (_b = asked.url.searchParams.get('variant')) !== null && _b !== void 0 ? _b : '';
|
|
269
|
-
const part = (_c = asked.url.searchParams.get('part')) !== null && _c !== void 0 ? _c : sketch.
|
|
368
|
+
const part = (_c = asked.url.searchParams.get('part')) !== null && _c !== void 0 ? _c : sketch.targets[0];
|
|
270
369
|
const { load, pictureOf, boxOf } = asked;
|
|
271
370
|
if (!sketch.variants.includes(variant))
|
|
272
371
|
return failure(404, `${sketch.target} has no variant "${variant}"`);
|
|
@@ -344,14 +443,27 @@ exports.sketchDecisionAnswer = withSketch('POST', (_a) => __awaiter(void 0, [_a]
|
|
|
344
443
|
}));
|
|
345
444
|
/**
|
|
346
445
|
* POST `?product=&sketch=`, body `{ note? }`: merges the picked variant into the product, as `et design sketch merge` does.
|
|
347
|
-
* A merge refused for a stale baseline answers 422 with `changed` (the parts, `[]` without a baseline) and the `rebase` command
|
|
446
|
+
* A merge refused for a stale baseline answers 422 with `changed` (the parts, `[]` without a baseline) and the `rebase` command;
|
|
447
|
+
* one the check fails after answers 422 with reason `check-failed` and the check's `findings` lines.
|
|
348
448
|
*/
|
|
349
449
|
exports.sketchMergeAnswer = withSketch('POST', (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, config, product, sketch }) {
|
|
350
450
|
const body = yield bodyOf(asked.request);
|
|
351
451
|
const note = textOf(body === null || body === void 0 ? void 0 : body['note']);
|
|
352
452
|
const merged = (0, merge_1.mergeSketch)({ target: asked.target, config, product, sketch, note });
|
|
453
|
+
if (Array.isArray(merged))
|
|
454
|
+
(0, harness_map_1.refreshHarnessMap)({ target: asked.target, product });
|
|
455
|
+
if (Array.isArray(merged) && (note === null || note === void 0 ? void 0 : note.trim()))
|
|
456
|
+
for (const part of sketch.targets)
|
|
457
|
+
(0, merged_parts_1.recordMergeReason)({ product, part, reason: note.trim() });
|
|
353
458
|
if (Array.isArray(merged))
|
|
354
459
|
return { status: 200, body: { merged } };
|
|
460
|
+
if (merged.findings)
|
|
461
|
+
return refusal({
|
|
462
|
+
status: 422,
|
|
463
|
+
reason: 'check-failed',
|
|
464
|
+
message: merged.reason,
|
|
465
|
+
extra: { findings: merged.findings },
|
|
466
|
+
});
|
|
355
467
|
if (!merged.changed)
|
|
356
468
|
return failure(422, merged.reason);
|
|
357
469
|
return {
|
|
@@ -368,9 +480,22 @@ exports.sketchDiscardAnswer = withSketch('POST', ({ asked, sketch }) => {
|
|
|
368
480
|
const problem = (0, merge_1.discardSketch)({ target: asked.target, sketch });
|
|
369
481
|
return problem ? failure(422, problem) : { status: 200, body: { discarded: sketch.target } };
|
|
370
482
|
});
|
|
483
|
+
const userNameOf = (dir) => {
|
|
484
|
+
try {
|
|
485
|
+
return ((0, child_process_1.execFileSync)('git', ['config', 'user.name'], {
|
|
486
|
+
cwd: dir,
|
|
487
|
+
encoding: 'utf8',
|
|
488
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
489
|
+
}).trim() || null);
|
|
490
|
+
}
|
|
491
|
+
catch (_a) {
|
|
492
|
+
return null;
|
|
493
|
+
}
|
|
494
|
+
};
|
|
371
495
|
/**
|
|
372
496
|
* `?product=[&part=<layer>/<name>]`: every comment with its `replies`, oldest first, each with the reason it
|
|
373
|
-
* is stale or `null`, its `threadState` (`agent`, `question` or `answered`) and, once closed, its `resolved
|
|
497
|
+
* is stale or `null`, its `threadState` (`agent`, `question` or `answered`) and, once closed, its `resolved`; `userName` is
|
|
498
|
+
* the `git config user.name` of the checkout, or `null`.
|
|
374
499
|
*/
|
|
375
500
|
exports.commentsAnswer = withProduct('GET', ({ asked, product }) => {
|
|
376
501
|
const part = asked.url.searchParams.get('part');
|
|
@@ -382,6 +507,7 @@ exports.commentsAnswer = withProduct('GET', ({ asked, product }) => {
|
|
|
382
507
|
.filter((comment) => !part || comment.part === part)
|
|
383
508
|
.map((comment) => commentOf({ comment, target: asked.target, product })),
|
|
384
509
|
unreadable: unreadable.map(({ file, problem }) => ({ file: (0, path_1.relative)(asked.target, file), problem })),
|
|
510
|
+
userName: userNameOf(product.dir),
|
|
385
511
|
},
|
|
386
512
|
};
|
|
387
513
|
});
|
|
@@ -577,10 +703,10 @@ exports.exceptionApproveAnswer = withProduct('POST', (_a) => __awaiter(void 0, [
|
|
|
577
703
|
}));
|
|
578
704
|
const knownPartOf = (product, part) => {
|
|
579
705
|
if (typeof part !== 'string' || part === '')
|
|
580
|
-
return
|
|
706
|
+
return refusal({ status: 400, reason: 'part-missing', message: 'part is required' });
|
|
581
707
|
return product.parts.some((candidate) => (0, resolve_product_1.partKeyOf)(candidate) === part)
|
|
582
708
|
? part
|
|
583
|
-
:
|
|
709
|
+
: refusal({ status: 404, reason: 'unknown-part', message: `product "${product.name}" has no part "${part}"` });
|
|
584
710
|
};
|
|
585
711
|
const drawnPointsOf = (_a, part_1) => __awaiter(void 0, [_a, part_1], void 0, function* ({ asked, config, product }, part) {
|
|
586
712
|
const points = yield (0, part_ready_1.drawnPartPointsOf)({ target: asked.target, config, product, part });
|
|
@@ -589,6 +715,8 @@ const drawnPointsOf = (_a, part_1) => __awaiter(void 0, [_a, part_1], void 0, fu
|
|
|
589
715
|
/**
|
|
590
716
|
* GET `?product=&part=&draw=`: the open points of one part, or of every part without `part`. Contrasts and missing
|
|
591
717
|
* control states need a draw: only `draw=true` with a `part` lists them, and `drawn` says whether they are in.
|
|
718
|
+
* `directEdit` says whether the merged part changed outside a sketch and waits for an accept; `buildReady` whether the
|
|
719
|
+
* part may be built now, or its blockers.
|
|
592
720
|
*/
|
|
593
721
|
exports.openPointsAnswer = withProduct('GET', (found) => __awaiter(void 0, void 0, void 0, function* () {
|
|
594
722
|
const { url } = found.asked;
|
|
@@ -610,31 +738,108 @@ exports.openPointsAnswer = withProduct('GET', (found) => __awaiter(void 0, void
|
|
|
610
738
|
const located = (0, part_ready_1.readyPartOf)({ product: found.product, part });
|
|
611
739
|
const hash = typeof located === 'string' ? null : located.hash;
|
|
612
740
|
const ready = (0, part_ready_1.readyMarkOf)({ product: found.product, part });
|
|
613
|
-
|
|
741
|
+
const directEdit = (0, merged_parts_1.changedOutsideSketchOf)(found.product).includes(part);
|
|
742
|
+
const inputs = (0, check_system_1.buildReadyInputsOf)(found.product);
|
|
743
|
+
const buildReady = (0, part_build_ready_1.buildReadyOf)({
|
|
744
|
+
product: found.product,
|
|
745
|
+
part,
|
|
746
|
+
inputs: Object.assign(Object.assign({}, inputs), { pointsOf: (key) => (key === part ? points : inputs.pointsOf(key)) }),
|
|
747
|
+
});
|
|
748
|
+
return { status: 200, body: { part, hash, ready, directEdit, buildReady, drawn: draw === 'true', points } };
|
|
614
749
|
}));
|
|
750
|
+
const STUDIO_CLICK = 'user';
|
|
751
|
+
const shownHashRefusalOf = (options) => {
|
|
752
|
+
const { product, part, shown } = options;
|
|
753
|
+
if (typeof shown !== 'string' || shown === '')
|
|
754
|
+
return refusal({ status: 400, reason: 'hash-missing', message: 'hash is required' });
|
|
755
|
+
const located = (0, part_ready_1.readyPartOf)({ product, part });
|
|
756
|
+
return typeof located !== 'string' && located.hash !== shown
|
|
757
|
+
? refusal({
|
|
758
|
+
status: 409,
|
|
759
|
+
reason: 'changed',
|
|
760
|
+
message: `${part} changed since it was shown - reload and check it again`,
|
|
761
|
+
})
|
|
762
|
+
: null;
|
|
763
|
+
};
|
|
615
764
|
/**
|
|
616
|
-
* POST `?product=`, body `{ part, hash
|
|
617
|
-
*
|
|
765
|
+
* POST `?product=`, body `{ part, hash }`: stores the Studio user's go for a part at the hash Studio showed, with the action keys it declares, regenerates a
|
|
766
|
+
* stale harness map (`harness` says why it could not; the go stands), then its go pictures (`unstored` says why not). A refusal answers `reason`: `hash-missing` (400), `unknown-part` (404) or
|
|
767
|
+
* `changed` (409). A go needs no empty open-point list.
|
|
618
768
|
*/
|
|
619
|
-
exports.
|
|
769
|
+
exports.partGoAnswer = withProduct('POST', (found) => __awaiter(void 0, void 0, void 0, function* () {
|
|
620
770
|
const body = yield bodyOf(found.asked.request);
|
|
621
771
|
if (!body)
|
|
622
772
|
return failure(400, 'the body must be a JSON object');
|
|
623
773
|
const part = knownPartOf(found.product, body['part']);
|
|
624
774
|
if (typeof part !== 'string')
|
|
625
775
|
return part;
|
|
626
|
-
const
|
|
776
|
+
const shown = shownHashRefusalOf({ product: found.product, part, shown: body['hash'] });
|
|
777
|
+
if (shown)
|
|
778
|
+
return shown;
|
|
779
|
+
const load = found.asked.load;
|
|
780
|
+
const actions = load
|
|
781
|
+
? yield (0, action_lost_1.partActionsOf)({
|
|
782
|
+
load: ({ file, product }) => load({ file, product, sketch: null }),
|
|
783
|
+
product: found.product,
|
|
784
|
+
part,
|
|
785
|
+
})
|
|
786
|
+
: undefined;
|
|
787
|
+
const marked = (0, part_go_1.markPartGo)(Object.assign({ product: found.product, part, by: STUDIO_CLICK, via: 'studio click', hash: body['hash'], note: 'studio click' }, (Array.isArray(actions) ? { actions } : {})));
|
|
788
|
+
if ('status' in marked)
|
|
789
|
+
return refusal({
|
|
790
|
+
status: marked.status,
|
|
791
|
+
reason: marked.status === 409 ? 'changed' : 'unknown-part',
|
|
792
|
+
message: marked.error,
|
|
793
|
+
});
|
|
794
|
+
const refreshed = (0, harness_map_1.refreshHarnessMap)({ target: found.asked.target, product: found.product });
|
|
795
|
+
const harness = typeof refreshed === 'string' ? refreshed : undefined;
|
|
796
|
+
const unstored = yield (0, accepted_pictures_1.storePictures)({
|
|
797
|
+
target: found.asked.target,
|
|
798
|
+
config: found.config,
|
|
627
799
|
product: found.product,
|
|
628
800
|
part,
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
801
|
+
kind: 'go',
|
|
802
|
+
hash: marked.hash,
|
|
803
|
+
draw: found.asked.drawStates,
|
|
632
804
|
});
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
805
|
+
return { status: 200, body: Object.assign({ part, hash: marked.hash, go: marked, unstored }, (harness ? { harness } : {})) };
|
|
806
|
+
}));
|
|
807
|
+
/**
|
|
808
|
+
* POST `?product=`, body `{ part, hash, note? }`: accepts the Studio user's approval of a direct edit of a merged part,
|
|
809
|
+
* as `et design accept` does. Checks everything before it writes; a refusal answers `reason`: `hash-missing`,
|
|
810
|
+
* `unknown-part`, `changed`, `findings` (with the `findings` lines), `open-sketch` or `nothing-to-accept`.
|
|
811
|
+
*/
|
|
812
|
+
exports.partAcceptAnswer = withProduct('POST', (found) => __awaiter(void 0, void 0, void 0, function* () {
|
|
813
|
+
var _a;
|
|
814
|
+
const body = yield bodyOf(found.asked.request);
|
|
815
|
+
if (!body)
|
|
816
|
+
return failure(400, 'the body must be a JSON object');
|
|
817
|
+
const part = knownPartOf(found.product, body['part']);
|
|
818
|
+
if (typeof part !== 'string')
|
|
819
|
+
return part;
|
|
820
|
+
const shown = shownHashRefusalOf({ product: found.product, part, shown: body['hash'] });
|
|
821
|
+
if (shown)
|
|
822
|
+
return shown;
|
|
823
|
+
const refused = (0, accept_command_1.partAcceptRefusalOf)({ target: found.asked.target, product: found.product, part });
|
|
824
|
+
if (refused)
|
|
825
|
+
return refusal({
|
|
826
|
+
status: refused.reason === 'unknown-part' ? 404 : 422,
|
|
827
|
+
reason: refused.reason,
|
|
828
|
+
message: refused.error,
|
|
829
|
+
extra: 'findings' in refused ? { findings: refused.findings } : {},
|
|
830
|
+
});
|
|
831
|
+
const note = ((_a = textOf(body['note'])) === null || _a === void 0 ? void 0 : _a.trim()) || 'approved by a click in Studio';
|
|
832
|
+
const step = (0, accept_command_1.acceptRunOf)({
|
|
833
|
+
target: found.asked.target,
|
|
834
|
+
config: found.config,
|
|
835
|
+
product: found.product,
|
|
836
|
+
part,
|
|
837
|
+
by: STUDIO_CLICK,
|
|
838
|
+
note,
|
|
839
|
+
draw: found.asked.drawStates,
|
|
840
|
+
});
|
|
841
|
+
if ((yield step.run()) !== 0)
|
|
842
|
+
return refusal({ status: 409, reason: 'changed', message: `${part} changed while it was accepted - reload it` });
|
|
843
|
+
return { status: 200, body: { part, accepted: { by: STUDIO_CLICK, note } } };
|
|
639
844
|
}));
|
|
640
845
|
//# sourceMappingURL=studio-api.js.map
|