@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
package/src/lib/design/render.js
CHANGED
|
@@ -20,12 +20,13 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
20
20
|
return t;
|
|
21
21
|
};
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
exports.forceMiddleware = exports.renderMiddleware = exports.createRenderer = exports.isStale = exports.FORCE_PATH = exports.RENDER_PATH = void 0;
|
|
23
|
+
exports.forceMiddleware = exports.renderMiddleware = exports.createRenderer = exports.RENDER_TIMEOUT_MS = exports.isStale = exports.FORCE_PATH = exports.RENDER_PATH = void 0;
|
|
24
24
|
const fs_1 = require("fs");
|
|
25
25
|
const path_1 = require("path");
|
|
26
26
|
const worker_threads_1 = require("worker_threads");
|
|
27
27
|
const force_interactions_1 = require("./force-interactions");
|
|
28
28
|
const paths_1 = require("./paths");
|
|
29
|
+
const wait_1 = require("./wait");
|
|
29
30
|
const render_packages_1 = require("./render-packages");
|
|
30
31
|
exports.RENDER_PATH = '/__design/render';
|
|
31
32
|
exports.FORCE_PATH = '/__design/force';
|
|
@@ -44,8 +45,9 @@ exports.isStale = isStale;
|
|
|
44
45
|
* Renders Angular templates in a worker that loads the target checkout's own packages. The worker
|
|
45
46
|
* is replaced on the first request after a package it loaded was rebuilt.
|
|
46
47
|
*/
|
|
48
|
+
exports.RENDER_TIMEOUT_MS = 120000;
|
|
47
49
|
const createRenderer = (options) => {
|
|
48
|
-
const { target, config } = options;
|
|
50
|
+
const { target, config, timeout = exports.RENDER_TIMEOUT_MS } = options;
|
|
49
51
|
const workerDataOf = () => {
|
|
50
52
|
var _a, _b;
|
|
51
53
|
return ({
|
|
@@ -56,6 +58,7 @@ const createRenderer = (options) => {
|
|
|
56
58
|
};
|
|
57
59
|
let startedWith = '';
|
|
58
60
|
const pending = new Map();
|
|
61
|
+
const sentTo = new Map();
|
|
59
62
|
let worker = null;
|
|
60
63
|
let watched = {};
|
|
61
64
|
let nextId = 0;
|
|
@@ -63,23 +66,31 @@ const createRenderer = (options) => {
|
|
|
63
66
|
for (const settle of pending.values())
|
|
64
67
|
settle({ error });
|
|
65
68
|
pending.clear();
|
|
69
|
+
sentTo.clear();
|
|
70
|
+
};
|
|
71
|
+
const answer = (id, result) => {
|
|
72
|
+
var _a;
|
|
73
|
+
(_a = pending.get(id)) === null || _a === void 0 ? void 0 : _a(result);
|
|
74
|
+
pending.delete(id);
|
|
75
|
+
sentTo.delete(id);
|
|
66
76
|
};
|
|
67
77
|
const start = () => {
|
|
68
78
|
const workerData = workerDataOf();
|
|
69
79
|
startedWith = JSON.stringify(workerData);
|
|
70
80
|
const started = new worker_threads_1.Worker((0, paths_1.packageFileOf)((0, path_1.resolve)(__dirname, 'render-worker.js')), { workerData });
|
|
71
81
|
started.on('message', (response) => {
|
|
72
|
-
var _a;
|
|
73
82
|
const { id, watched: loaded } = response, result = __rest(response, ["id", "watched"]);
|
|
74
83
|
if (started === worker)
|
|
75
84
|
watched = Object.assign({}, loaded);
|
|
76
|
-
(
|
|
77
|
-
pending.delete(id);
|
|
85
|
+
answer(id, result);
|
|
78
86
|
});
|
|
79
87
|
started.on('error', (error) => settleAll(`design-explore: the render worker failed: ${error instanceof Error ? error.message : String(error)}`));
|
|
80
88
|
started.on('exit', () => {
|
|
81
89
|
if (started === worker)
|
|
82
90
|
worker = null;
|
|
91
|
+
for (const [id, to] of sentTo)
|
|
92
|
+
if (to === started)
|
|
93
|
+
answer(id, { error: 'design-explore: the render worker exited before it answered' });
|
|
83
94
|
});
|
|
84
95
|
watched = {};
|
|
85
96
|
return started;
|
|
@@ -102,8 +113,22 @@ const createRenderer = (options) => {
|
|
|
102
113
|
providers: providers ? (0, path_1.resolve)(target, providers) : null,
|
|
103
114
|
};
|
|
104
115
|
const result = new Promise((settle) => pending.set(request.id, settle));
|
|
105
|
-
worker
|
|
106
|
-
|
|
116
|
+
const sent = worker;
|
|
117
|
+
sentTo.set(request.id, sent);
|
|
118
|
+
sent.postMessage(request);
|
|
119
|
+
return (0, wait_1.withinLimit)(result, {
|
|
120
|
+
ms: timeout,
|
|
121
|
+
what: `the render worker to draw ${ask.call}`,
|
|
122
|
+
announceAfterMs: 10000,
|
|
123
|
+
}).catch((error) => {
|
|
124
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
125
|
+
answer(request.id, { error: message });
|
|
126
|
+
if (sent === worker) {
|
|
127
|
+
worker = null;
|
|
128
|
+
void sent.terminate();
|
|
129
|
+
}
|
|
130
|
+
return { error: message };
|
|
131
|
+
});
|
|
107
132
|
};
|
|
108
133
|
const close = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
109
134
|
const stopped = worker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/render.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAA8B;AAE9B,+BAA+B;AAC/B,mDAAwC;AACxC,6DAAyD;AACzD,mCAAsD;AAEtD,uDAO2B;AAEd,QAAA,WAAW,GAAG,kBAAkB,CAAC;AAEjC,QAAA,UAAU,GAAG,iBAAiB,CAAC;AAE5C,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE;IAC/B,IAAI,CAAC;QACH,OAAO,IAAA,aAAQ,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC;IAChC,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF,mGAAmG;AAC5F,MAAM,OAAO,GAAG,CAAC,OAA+B,EAAE,QAAkC,OAAO,EAAE,EAAE,CACpG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC;AAD9D,QAAA,OAAO,WACuD;AAU3E;;;GAGG;
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/render.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,19 @@
|
|
|
1
|
+
import { ServerResponse } from 'http';
|
|
2
|
+
import { CheckSketches } from './system/sketch/sketch-checker';
|
|
1
3
|
import { DesignConfig } from './paths';
|
|
4
|
+
export declare const KEEP_ALIVE_MS = 15000;
|
|
5
|
+
/**
|
|
6
|
+
* Sends `answered` as JSON, and a space every `KEEP_ALIVE_MS` while it is pending: WebKit fails a fetch with "Load
|
|
7
|
+
* failed" when no byte arrives for 60 s. Once a space went out the status is 200, so a later failure arrives as its
|
|
8
|
+
* body alone.
|
|
9
|
+
*/
|
|
10
|
+
export declare const sendHeldJson: (response: ServerResponse, answered: Promise<{
|
|
11
|
+
status: number;
|
|
12
|
+
body: unknown;
|
|
13
|
+
}>) => Promise<void>;
|
|
14
|
+
export declare const DESIGN_EVENTS_HEARTBEAT_MS = 20000;
|
|
15
|
+
/** The real directories a checkout's `node_modules` points into, which Vite refuses to serve unless allowed. */
|
|
16
|
+
export declare const installedRootsOf: (target: string) => string[];
|
|
2
17
|
/**
|
|
3
18
|
* The Vite server that draws a checkout: listening on the configured port to serve the frames, or in
|
|
4
19
|
* middleware mode only to load design modules for a command. With `port`, it listens there instead
|
|
@@ -13,12 +28,17 @@ export declare const createDesignServer: (options: {
|
|
|
13
28
|
listenOn?: number;
|
|
14
29
|
host?: string;
|
|
15
30
|
sketchesRoot?: string;
|
|
31
|
+
checkSketches?: CheckSketches;
|
|
16
32
|
}) => Promise<import("vite", { with: { "resolution-mode": "import" } }).ViteDevServer>;
|
|
17
33
|
/**
|
|
18
34
|
* Starts the design server for a checkout and keeps it running. The returned exit code is the
|
|
19
|
-
* command's, not the server's: a listening server holds the process open on its own.
|
|
35
|
+
* command's, not the server's: a listening server holds the process open on its own. With
|
|
36
|
+
* `reloadOnRebuild`, a rebuild or reinstall of the cli restarts the server on the same port from
|
|
37
|
+
* the new build, inside the process that was started.
|
|
20
38
|
*/
|
|
21
39
|
export declare const serveDesign: (options: {
|
|
22
40
|
target: string;
|
|
23
41
|
host?: string;
|
|
42
|
+
reloadOnRebuild?: boolean;
|
|
43
|
+
checkSketches?: CheckSketches;
|
|
24
44
|
}) => Promise<number>;
|
package/src/lib/design/serve.js
CHANGED
|
@@ -9,12 +9,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.serveDesign = exports.createDesignServer = void 0;
|
|
12
|
+
exports.serveDesign = exports.createDesignServer = exports.installedRootsOf = exports.DESIGN_EVENTS_HEARTBEAT_MS = exports.sendHeldJson = exports.KEEP_ALIVE_MS = void 0;
|
|
13
13
|
const crypto_1 = require("crypto");
|
|
14
14
|
const fs_1 = require("fs");
|
|
15
15
|
const net_1 = require("net");
|
|
16
16
|
const promises_1 = require("timers/promises");
|
|
17
17
|
const path_1 = require("path");
|
|
18
|
+
const rxjs_1 = require("rxjs");
|
|
18
19
|
const calls_1 = require("./calls");
|
|
19
20
|
const calls_tsconfig_1 = require("./calls-tsconfig");
|
|
20
21
|
const legacy_1 = require("./legacy");
|
|
@@ -32,6 +33,7 @@ const shot_1 = require("./shot");
|
|
|
32
33
|
const shot_store_1 = require("./shot-store");
|
|
33
34
|
const imports_1 = require("./system/imports");
|
|
34
35
|
const changed_parts_1 = require("./changed-parts");
|
|
36
|
+
const server_identity_1 = require("./server-identity");
|
|
35
37
|
const stamp_1 = require("./stamp");
|
|
36
38
|
const list_system_1 = require("./system/list-system");
|
|
37
39
|
const resolve_product_1 = require("./system/resolve-product");
|
|
@@ -39,11 +41,14 @@ const system_modules_1 = require("./system/system-modules");
|
|
|
39
41
|
const kit_1 = require("./system/kit");
|
|
40
42
|
const system_tsconfig_1 = require("./system/system-tsconfig");
|
|
41
43
|
const sketch_1 = require("./system/sketch/sketch");
|
|
44
|
+
const sketch_checker_1 = require("./system/sketch/sketch-checker");
|
|
42
45
|
const unchanged_states_1 = require("./system/sketch/unchanged-states");
|
|
43
46
|
const inventory_1 = require("./system/inventory");
|
|
44
47
|
const thumb_1 = require("./thumb");
|
|
45
48
|
const motion_endpoint_1 = require("./motion-endpoint");
|
|
46
49
|
const paths_1 = require("./paths");
|
|
50
|
+
const slow_run_1 = require("./system/slow-run");
|
|
51
|
+
const build_watch_1 = require("./build-watch");
|
|
47
52
|
const VIRTUAL = 'virtual:design-explore';
|
|
48
53
|
const REBUILD_SETTLE_MS = 300;
|
|
49
54
|
/** What a slug says about which project drew it: its first segment. */
|
|
@@ -188,6 +193,33 @@ const sendJson = (response, answer) => {
|
|
|
188
193
|
response.setHeader('access-control-allow-origin', '*');
|
|
189
194
|
(0, thumb_1.send)(response, { status: answer.status, type: 'application/json', body: JSON.stringify(answer.body) });
|
|
190
195
|
};
|
|
196
|
+
exports.KEEP_ALIVE_MS = 15000;
|
|
197
|
+
/**
|
|
198
|
+
* Sends `answered` as JSON, and a space every `KEEP_ALIVE_MS` while it is pending: WebKit fails a fetch with "Load
|
|
199
|
+
* failed" when no byte arrives for 60 s. Once a space went out the status is 200, so a later failure arrives as its
|
|
200
|
+
* body alone.
|
|
201
|
+
*/
|
|
202
|
+
const sendHeldJson = (response, answered) => {
|
|
203
|
+
let started = false;
|
|
204
|
+
const tick = (0, rxjs_1.interval)(exports.KEEP_ALIVE_MS)
|
|
205
|
+
.pipe((0, rxjs_1.tap)(() => {
|
|
206
|
+
if (!started) {
|
|
207
|
+
started = true;
|
|
208
|
+
response.writeHead(200, { 'access-control-allow-origin': '*', 'content-type': 'application/json' });
|
|
209
|
+
}
|
|
210
|
+
response.write(' ');
|
|
211
|
+
}))
|
|
212
|
+
.subscribe();
|
|
213
|
+
response.once('close', () => tick.unsubscribe());
|
|
214
|
+
return answered.then((answer) => {
|
|
215
|
+
tick.unsubscribe();
|
|
216
|
+
if (started)
|
|
217
|
+
response.end(JSON.stringify(answer.body));
|
|
218
|
+
else
|
|
219
|
+
sendJson(response, answer);
|
|
220
|
+
});
|
|
221
|
+
};
|
|
222
|
+
exports.sendHeldJson = sendHeldJson;
|
|
191
223
|
const isCommentFile = (file) => file.endsWith('.json') && (0, path_1.basename)((0, path_1.dirname)(file)) === 'comments';
|
|
192
224
|
const isNoteFile = (file) => file.endsWith('.json') && (0, path_1.basename)((0, path_1.dirname)(file)) === 'notes';
|
|
193
225
|
const isFlowFile = (file) => file.endsWith('.json') && (0, path_1.basename)((0, path_1.dirname)(file)) === 'flows';
|
|
@@ -196,6 +228,8 @@ const isSketchFile = (designRoot, file) => {
|
|
|
196
228
|
const [product, folder, ...inside] = (0, path_1.relative)(designRoot, (0, path_1.resolve)(file)).split(path_1.sep);
|
|
197
229
|
return !!product && product !== '..' && folder === 'sketches' && inside.length > 0;
|
|
198
230
|
};
|
|
231
|
+
// Workaround: WebKit drops an event stream that sends nothing for 60 seconds.
|
|
232
|
+
exports.DESIGN_EVENTS_HEARTBEAT_MS = 20000;
|
|
199
233
|
/**
|
|
200
234
|
* A server-sent event stream for Studio: `comments`, `notes`, `flows`, `calls` and `sketches` when a file of that
|
|
201
235
|
* kind changed, and `parts` with the parts a design system change redraws and the revision it gave them. A `parts`
|
|
@@ -203,6 +237,11 @@ const isSketchFile = (designRoot, file) => {
|
|
|
203
237
|
*/
|
|
204
238
|
const createDesignEvents = () => {
|
|
205
239
|
const listeners = new Set();
|
|
240
|
+
let heartbeat;
|
|
241
|
+
const beat = () => {
|
|
242
|
+
for (const response of listeners)
|
|
243
|
+
response.write(': heartbeat\n\n');
|
|
244
|
+
};
|
|
206
245
|
return {
|
|
207
246
|
middleware: (request, response) => {
|
|
208
247
|
response.writeHead(200, {
|
|
@@ -213,13 +252,22 @@ const createDesignEvents = () => {
|
|
|
213
252
|
});
|
|
214
253
|
response.write(': open\n\n');
|
|
215
254
|
listeners.add(response);
|
|
216
|
-
|
|
255
|
+
heartbeat !== null && heartbeat !== void 0 ? heartbeat : (heartbeat = (0, rxjs_1.interval)(exports.DESIGN_EVENTS_HEARTBEAT_MS).subscribe(beat));
|
|
256
|
+
request.on('close', () => {
|
|
257
|
+
listeners.delete(response);
|
|
258
|
+
if (listeners.size === 0) {
|
|
259
|
+
heartbeat === null || heartbeat === void 0 ? void 0 : heartbeat.unsubscribe();
|
|
260
|
+
heartbeat = undefined;
|
|
261
|
+
}
|
|
262
|
+
});
|
|
217
263
|
},
|
|
218
264
|
signal: (event, data = {}) => {
|
|
219
265
|
for (const response of listeners)
|
|
220
266
|
response.write(`event: ${event}\ndata: ${JSON.stringify(data)}\n\n`);
|
|
221
267
|
},
|
|
222
268
|
close: () => {
|
|
269
|
+
heartbeat === null || heartbeat === void 0 ? void 0 : heartbeat.unsubscribe();
|
|
270
|
+
heartbeat = undefined;
|
|
223
271
|
for (const response of listeners)
|
|
224
272
|
response.end();
|
|
225
273
|
listeners.clear();
|
|
@@ -291,7 +339,7 @@ const shotStoreOf = (options) => {
|
|
|
291
339
|
})),
|
|
292
340
|
});
|
|
293
341
|
};
|
|
294
|
-
const designExplore = ({ target, config, system, stylesheetImports, shotCacheDir, }) => {
|
|
342
|
+
const designExplore = ({ target, config, system, stylesheetImports, shotCacheDir, checkSketches, }) => {
|
|
295
343
|
const renderer = (0, render_1.createRenderer)({ target, config });
|
|
296
344
|
const transform = withAssetUrls(system);
|
|
297
345
|
const packageDirs = () => (0, render_packages_1.renderPackageDirsOf)({ target, packages: (0, render_packages_1.renderPackagesOf)({ target, config }) });
|
|
@@ -352,14 +400,19 @@ const designExplore = ({ target, config, system, stylesheetImports, shotCacheDir
|
|
|
352
400
|
const callsRoot = (0, paths_1.callsRootOf)(target);
|
|
353
401
|
const designRoot = (0, path_1.resolve)(target, paths_1.DESIGN_DIR);
|
|
354
402
|
const stamp = (0, stamp_1.buildStampOf)();
|
|
403
|
+
const identityOf = (0, server_identity_1.serverIdentityOf)(target);
|
|
355
404
|
const base = () => {
|
|
356
405
|
var _a;
|
|
357
406
|
const address = (_a = vite.httpServer) === null || _a === void 0 ? void 0 : _a.address();
|
|
358
407
|
return `http://localhost:${address && typeof address === 'object' ? address.port : (0, paths_1.portOf)(config)}`;
|
|
359
408
|
};
|
|
360
|
-
const ledger = (0, draw_ledger_1.createDrawLedger)(Date.now, ({ sketch }) =>
|
|
409
|
+
const ledger = (0, draw_ledger_1.createDrawLedger)(Date.now, ({ sketch }) => {
|
|
410
|
+
const drawn = sketch && system.drawnOf(sketch.product, sketch);
|
|
411
|
+
return !sketch || (!!drawn && !('sketchGone' in drawn));
|
|
412
|
+
});
|
|
361
413
|
const thumbs = (0, thumb_1.createThumbnailer)({ target, base, ledger });
|
|
362
414
|
const inventoryDraws = (0, thumb_1.createDrawQueue)({ target, ledger });
|
|
415
|
+
const sketchChecker = checkSketches ? undefined : (0, sketch_checker_1.createSketchChecker)();
|
|
363
416
|
const shots = (0, shot_1.createPartShooter)(Object.assign(Object.assign({ target,
|
|
364
417
|
base,
|
|
365
418
|
ledger,
|
|
@@ -531,16 +584,25 @@ const designExplore = ({ target, config, system, stylesheetImports, shotCacheDir
|
|
|
531
584
|
const dependents = (0, shot_1.dependentIdsOf)((_a = vite.moduleGraph.getModulesByFile(file)) !== null && _a !== void 0 ? _a : [], stylesheetImports);
|
|
532
585
|
redraw((0, changed_parts_1.changedPartsOf)({ target, config, system, file, dependents }), isSystemFile(file));
|
|
533
586
|
};
|
|
534
|
-
const answer = (handle) => (request, response) => {
|
|
587
|
+
const answer = (handle, held = false) => (request, response) => {
|
|
535
588
|
var _a;
|
|
536
|
-
|
|
589
|
+
const closed = new AbortController();
|
|
590
|
+
response.once('close', () => {
|
|
591
|
+
if (!response.writableFinished)
|
|
592
|
+
closed.abort();
|
|
593
|
+
});
|
|
594
|
+
const answered = handle(new URL((_a = request.url) !== null && _a !== void 0 ? _a : '', 'http://localhost'), {
|
|
595
|
+
request,
|
|
596
|
+
signal: closed.signal,
|
|
597
|
+
}).catch((error) => ({
|
|
537
598
|
status: 500,
|
|
538
599
|
body: { error: error instanceof Error ? error.message : String(error) },
|
|
539
600
|
}));
|
|
601
|
+
void (held ? (0, exports.sendHeldJson)(response, answered) : answered.then((answer) => sendJson(response, answer)));
|
|
540
602
|
};
|
|
541
603
|
vite.middlewares.use(stamp_1.STAMP_PATH, (_request, response) => {
|
|
542
604
|
response.setHeader('content-type', 'application/json');
|
|
543
|
-
response.end(JSON.stringify(stamp));
|
|
605
|
+
response.end(JSON.stringify(Object.assign(Object.assign({}, stamp), identityOf())));
|
|
544
606
|
});
|
|
545
607
|
vite.middlewares.use(draw_ledger_1.QUEUE_PATH, (_request, response) => sendJson(response, { status: 200, body: ledger.report() }));
|
|
546
608
|
vite.middlewares.use(render_1.RENDER_PATH, (0, render_1.renderMiddleware)(renderer));
|
|
@@ -576,7 +638,7 @@ const designExplore = ({ target, config, system, stylesheetImports, shotCacheDir
|
|
|
576
638
|
});
|
|
577
639
|
return { status: 200, body: products };
|
|
578
640
|
})));
|
|
579
|
-
vite.middlewares.use(product_command_1.PRODUCT_PATH, answer((
|
|
641
|
+
vite.middlewares.use(product_command_1.PRODUCT_PATH, answer((_url_1, _a) => __awaiter(void 0, [_url_1, _a], void 0, function* (_url, { request }) {
|
|
580
642
|
const created = yield (0, product_command_1.newProductAnswer)({ target, request });
|
|
581
643
|
if (created.status === 201)
|
|
582
644
|
reloadConfig();
|
|
@@ -588,22 +650,24 @@ const designExplore = ({ target, config, system, stylesheetImports, shotCacheDir
|
|
|
588
650
|
body: yield (0, calls_1.listCalls)({ target, load: (file) => vite.ssrLoadModule(file) }),
|
|
589
651
|
});
|
|
590
652
|
})));
|
|
591
|
-
vite.middlewares.use(legacy_1.TRANSFER_PATH, answer((
|
|
592
|
-
var
|
|
653
|
+
vite.middlewares.use(legacy_1.TRANSFER_PATH, answer((url_1, _a) => __awaiter(void 0, [url_1, _a], void 0, function* (url, { request }) {
|
|
654
|
+
var _b;
|
|
593
655
|
if (request.method !== 'POST')
|
|
594
656
|
return { status: 405, body: { error: 'POST only' } };
|
|
595
|
-
const result = (0, legacy_1.markTransferred)({ target, slug: (
|
|
657
|
+
const result = (0, legacy_1.markTransferred)({ target, slug: (_b = url.searchParams.get('call')) !== null && _b !== void 0 ? _b : '' });
|
|
596
658
|
const status = result === 'missing' ? 404 : result === 'unreadable' ? 422 : 200;
|
|
597
659
|
return { status, body: { result } };
|
|
598
660
|
})));
|
|
599
|
-
const studio = (path, handle) => vite.middlewares.use(path, answer((
|
|
661
|
+
const studio = (path, handle) => vite.middlewares.use(path, answer((url_1, _a) => __awaiter(void 0, [url_1, _a], void 0, function* (url, { request, signal }) {
|
|
600
662
|
return handle({
|
|
601
663
|
target,
|
|
602
664
|
url,
|
|
603
665
|
request,
|
|
666
|
+
signal,
|
|
604
667
|
load: ({ file, product, sketch }) => vite.ssrLoadModule((0, system_modules_1.productModuleIdOf)({ file, product, sketch })),
|
|
605
668
|
pictureOf: shots.pictureOf,
|
|
606
669
|
boxOf: shots.changedBoxesOf,
|
|
670
|
+
checkSketches: checkSketches !== null && checkSketches !== void 0 ? checkSketches : sketchChecker,
|
|
607
671
|
inventoryOf: ({ product, part }) => (0, inventory_1.inventoryOf)({
|
|
608
672
|
product,
|
|
609
673
|
part,
|
|
@@ -613,7 +677,7 @@ const designExplore = ({ target, config, system, stylesheetImports, shotCacheDir
|
|
|
613
677
|
draw: (job) => inventoryDraws.run(job),
|
|
614
678
|
}),
|
|
615
679
|
});
|
|
616
|
-
})));
|
|
680
|
+
}), path === studio_api_1.SKETCHES_PATH));
|
|
617
681
|
studio(studio_api_1.SKETCHES_PATH, studio_api_1.sketchesAnswer);
|
|
618
682
|
studio(studio_api_1.SKETCH_PREVIEW_PATH, studio_api_1.sketchPreviewAnswer);
|
|
619
683
|
studio(studio_api_1.SKETCH_COMPARE_PATH, studio_api_1.sketchCompareAnswer);
|
|
@@ -638,14 +702,15 @@ const designExplore = ({ target, config, system, stylesheetImports, shotCacheDir
|
|
|
638
702
|
studio(studio_api_1.INVENTORY_PATH, studio_api_1.inventoryAnswer);
|
|
639
703
|
studio(studio_api_1.INVENTORY_APPROVE_PATH, studio_api_1.inventoryApproveAnswer);
|
|
640
704
|
studio(studio_api_1.OPEN_POINTS_PATH, studio_api_1.openPointsAnswer);
|
|
641
|
-
studio(studio_api_1.
|
|
705
|
+
studio(studio_api_1.PART_GO_PATH, studio_api_1.partGoAnswer);
|
|
706
|
+
studio(studio_api_1.PART_ACCEPT_PATH, studio_api_1.partAcceptAnswer);
|
|
642
707
|
studio(studio_api_1.EXCEPTIONS_PATH, studio_api_1.exceptionsAnswer);
|
|
643
708
|
studio(studio_api_1.EXCEPTION_APPROVE_PATH, studio_api_1.exceptionApproveAnswer);
|
|
644
709
|
vite.middlewares.use(studio_api_1.COMMENT_EVENTS_PATH, events.middleware);
|
|
645
710
|
(_c = vite.httpServer) === null || _c === void 0 ? void 0 : _c.on('close', () => {
|
|
646
711
|
events.close();
|
|
647
712
|
settling === null || settling === void 0 ? void 0 : settling.abort();
|
|
648
|
-
void Promise.all([thumbs.close(), shots.close(), inventoryDraws.close()]);
|
|
713
|
+
void Promise.all([thumbs.close(), shots.close(), inventoryDraws.close(), sketchChecker === null || sketchChecker === void 0 ? void 0 : sketchChecker.close()]);
|
|
649
714
|
});
|
|
650
715
|
vite.watcher.add([designRoot, ...baseDirs, ...packageDirs()]);
|
|
651
716
|
vite.watcher.on('add', (file) => (isPackageFile(file) ? packageChanged(file) : refresh(file)));
|
|
@@ -663,6 +728,24 @@ const freePortOf = () => new Promise((resolvePort, reject) => {
|
|
|
663
728
|
probe.close(() => resolvePort(port));
|
|
664
729
|
});
|
|
665
730
|
});
|
|
731
|
+
/** The real directories a checkout's `node_modules` points into, which Vite refuses to serve unless allowed. */
|
|
732
|
+
const installedRootsOf = (target) => {
|
|
733
|
+
const modules = (0, path_1.join)(target, 'node_modules');
|
|
734
|
+
const roots = new Set();
|
|
735
|
+
try {
|
|
736
|
+
roots.add((0, fs_1.realpathSync)(modules));
|
|
737
|
+
for (const entry of (0, fs_1.readdirSync)(modules, { withFileTypes: true })) {
|
|
738
|
+
if (entry.isSymbolicLink() && !entry.name.startsWith('.')) {
|
|
739
|
+
roots.add((0, path_1.dirname)((0, fs_1.realpathSync)((0, path_1.join)(modules, entry.name))));
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
catch (_a) {
|
|
744
|
+
return [...roots];
|
|
745
|
+
}
|
|
746
|
+
return [...roots];
|
|
747
|
+
};
|
|
748
|
+
exports.installedRootsOf = installedRootsOf;
|
|
666
749
|
/**
|
|
667
750
|
* The Vite server that draws a checkout: listening on the configured port to serve the frames, or in
|
|
668
751
|
* middleware mode only to load design modules for a command. With `port`, it listens there instead
|
|
@@ -671,7 +754,7 @@ const freePortOf = () => new Promise((resolvePort, reject) => {
|
|
|
671
754
|
*/
|
|
672
755
|
const createDesignServer = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
673
756
|
var _a;
|
|
674
|
-
const { target, config, listen, sketchesRoot } = options;
|
|
757
|
+
const { target, config, listen, sketchesRoot, checkSketches } = options;
|
|
675
758
|
const host = options.host || process.env['DE_HOST'] || undefined;
|
|
676
759
|
const own = listen && options.port !== undefined;
|
|
677
760
|
const port = own ? yield freePortOf() : options.listenOn;
|
|
@@ -730,6 +813,7 @@ const createDesignServer = (options) => __awaiter(void 0, void 0, void 0, functi
|
|
|
730
813
|
system,
|
|
731
814
|
stylesheetImports,
|
|
732
815
|
shotCacheDir: listen && !own ? (0, paths_1.viteCacheOf)(target, 'shots') : null,
|
|
816
|
+
checkSketches,
|
|
733
817
|
}),
|
|
734
818
|
] }, (listen ? {} : { appType: 'custom' })), (listen && !own ? {} : { logLevel: 'error' })), { server: Object.assign(Object.assign({
|
|
735
819
|
// Studio swaps a frame for a fresh one once it has painted; a Vite reload would blank every frame at once.
|
|
@@ -737,7 +821,7 @@ const createDesignServer = (options) => __awaiter(void 0, void 0, void 0, functi
|
|
|
737
821
|
? Object.assign(Object.assign(Object.assign({ port: port !== null && port !== void 0 ? port : (0, paths_1.portOf)(config) }, (host ? { host } : {})), { strictPort: true }), (own ? { watch: null } : {})) : { middlewareMode: true, ws: false, watch: null })), {
|
|
738
822
|
// The frame page lives inside this package, which is outside the checkout it draws. Vite
|
|
739
823
|
// serves neither root unless both are allowed.
|
|
740
|
-
fs: { allow: [target, here, ...baseDirs] } }) }));
|
|
824
|
+
fs: { allow: [target, here, ...baseDirs, ...(0, exports.installedRootsOf)(target)] } }) }));
|
|
741
825
|
const closing = server.close.bind(server);
|
|
742
826
|
server.close = () => closing().finally(() => cache === null || cache === void 0 ? void 0 : cache.release());
|
|
743
827
|
const listening = server.listen.bind(server);
|
|
@@ -762,17 +846,22 @@ const exitWhenStdinCloses = (server) => {
|
|
|
762
846
|
process.stdin.once('close', shutDown);
|
|
763
847
|
process.stdin.resume();
|
|
764
848
|
};
|
|
849
|
+
const installedStampOf = () => (0, stamp_1.buildStampOf)((0, paths_1.installedAssetRoot)()).build;
|
|
765
850
|
/**
|
|
766
851
|
* Starts the design server for a checkout and keeps it running. The returned exit code is the
|
|
767
|
-
* command's, not the server's: a listening server holds the process open on its own.
|
|
852
|
+
* command's, not the server's: a listening server holds the process open on its own. With
|
|
853
|
+
* `reloadOnRebuild`, a rebuild or reinstall of the cli restarts the server on the same port from
|
|
854
|
+
* the new build, inside the process that was started.
|
|
768
855
|
*/
|
|
769
856
|
const serveDesign = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
770
|
-
const { target, host } = options;
|
|
857
|
+
const { target, host, reloadOnRebuild, checkSketches } = options;
|
|
771
858
|
const config = (0, paths_1.readConfig)(target);
|
|
772
859
|
if (!config) {
|
|
773
860
|
console.error(`design-explore: no config at ${(0, paths_1.configPathOf)(target)}`);
|
|
774
861
|
return 1;
|
|
775
862
|
}
|
|
863
|
+
const cwd = process.cwd();
|
|
864
|
+
const served = reloadOnRebuild ? installedStampOf() : '';
|
|
776
865
|
(0, paths_1.snapshotPackage)(target);
|
|
777
866
|
const ownedByStudio = process.env['ETHLETE_DESIGN_EXIT_ON_STDIN_CLOSE'] === '1';
|
|
778
867
|
const portPinned = ownedByStudio || !!Number(process.env['DE_PORT']);
|
|
@@ -782,6 +871,7 @@ const serveDesign = (options) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
782
871
|
listen: true,
|
|
783
872
|
host,
|
|
784
873
|
listenOn: portPinned ? undefined : yield freePortOf(),
|
|
874
|
+
checkSketches,
|
|
785
875
|
});
|
|
786
876
|
yield server.listen();
|
|
787
877
|
console.log(`design-explore: drawing ${target}`);
|
|
@@ -789,9 +879,33 @@ const serveDesign = (options) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
789
879
|
console.log(`design-explore: not started by Studio, so it listens on a free port and leaves ${(0, paths_1.portOf)(config)} to Studio`);
|
|
790
880
|
}
|
|
791
881
|
server.printUrls();
|
|
882
|
+
if (process.env['ETHLETE_DESIGN_SLOW_CHECKS'] !== 'off')
|
|
883
|
+
(0, slow_run_1.startSlowRunner)({
|
|
884
|
+
target,
|
|
885
|
+
configOf: () => (0, paths_1.readConfig)(target),
|
|
886
|
+
log: (line) => console.log(`design-explore: ${line}`),
|
|
887
|
+
});
|
|
792
888
|
if (ownedByStudio) {
|
|
793
889
|
exitWhenStdinCloses(server);
|
|
794
890
|
}
|
|
891
|
+
if (reloadOnRebuild) {
|
|
892
|
+
(0, build_watch_1.watchBuild)({
|
|
893
|
+
root: (0, path_1.dirname)((0, paths_1.installedAssetRoot)()),
|
|
894
|
+
served,
|
|
895
|
+
stampOf: installedStampOf,
|
|
896
|
+
onRebuild: () => {
|
|
897
|
+
var _a;
|
|
898
|
+
const address = (_a = server.httpServer) === null || _a === void 0 ? void 0 : _a.address();
|
|
899
|
+
const port = address && typeof address === 'object' ? address.port : (0, paths_1.portOf)(config);
|
|
900
|
+
console.log('design-explore: the cli was rebuilt, restarting the server from the new build');
|
|
901
|
+
void server
|
|
902
|
+
.close()
|
|
903
|
+
.then(() => process.env[build_watch_1.SUPERVISED_ENV] === '1'
|
|
904
|
+
? process.exit(build_watch_1.RELOAD_EXIT_CODE)
|
|
905
|
+
: (0, build_watch_1.superviseReloads)(() => (0, build_watch_1.relaunch)({ port, cwd })).then((code) => process.exit(code)));
|
|
906
|
+
},
|
|
907
|
+
});
|
|
908
|
+
}
|
|
795
909
|
return 0;
|
|
796
910
|
});
|
|
797
911
|
exports.serveDesign = serveDesign;
|