@ethlete/cli 3.0.0-next.26 → 3.0.0-next.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +481 -0
- package/build-info.json +1 -0
- package/design/arrow-anchor.ts +55 -0
- package/design/define-call.ts +75 -30
- package/design/define-part.ts +64 -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 +69 -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/api/compose.js +3 -2
- package/src/lib/api/compose.js.map +1 -1
- package/src/lib/api/git.js +2 -1
- package/src/lib/api/git.js.map +1 -1
- package/src/lib/api/setup.js +2 -2
- package/src/lib/api/setup.js.map +1 -1
- package/src/lib/design/asset-shot.js +4 -4
- package/src/lib/design/asset-shot.js.map +1 -1
- package/src/lib/design/blank-png.d.ts +2 -0
- package/src/lib/design/blank-png.js +28 -0
- package/src/lib/design/blank-png.js.map +1 -0
- package/src/lib/design/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/cache-entry.d.ts +8 -0
- package/src/lib/design/cache-entry.js +30 -0
- package/src/lib/design/cache-entry.js.map +1 -0
- package/src/lib/design/calls-tsconfig.js +20 -13
- package/src/lib/design/calls-tsconfig.js.map +1 -1
- package/src/lib/design/calls.js +3 -3
- package/src/lib/design/calls.js.map +1 -1
- package/src/lib/design/changed-parts.d.ts +1 -1
- package/src/lib/design/check.d.ts +2 -0
- package/src/lib/design/check.js +217 -24
- package/src/lib/design/check.js.map +1 -1
- package/src/lib/design/code-hash.d.ts +30 -0
- package/src/lib/design/code-hash.js +118 -0
- package/src/lib/design/code-hash.js.map +1 -0
- package/src/lib/design/commit-hunks.d.ts +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 +271 -27
- package/src/lib/design/design-command.js.map +1 -1
- package/src/lib/design/{paths.d.ts → design-config.d.ts} +34 -28
- package/src/lib/design/design-config.js +35 -0
- package/src/lib/design/design-config.js.map +1 -0
- package/src/lib/design/design-lint.d.ts +68 -0
- package/src/lib/design/design-lint.js +183 -0
- package/src/lib/design/design-lint.js.map +1 -0
- package/src/lib/design/draw-ledger.d.ts +6 -0
- package/src/lib/design/draw-ledger.js +10 -0
- package/src/lib/design/draw-ledger.js.map +1 -1
- package/src/lib/design/force-interactions.d.ts +3 -1
- package/src/lib/design/force-interactions.js +8 -4
- package/src/lib/design/force-interactions.js.map +1 -1
- package/src/lib/design/generated-stylesheets.d.ts +1 -1
- package/src/lib/design/generated-stylesheets.js +2 -2
- package/src/lib/design/generated-stylesheets.js.map +1 -1
- package/src/lib/design/git-top.d.ts +5 -0
- package/src/lib/design/git-top.js +16 -0
- package/src/lib/design/git-top.js.map +1 -0
- package/src/lib/design/hooks-problem.d.ts +2 -0
- package/src/lib/design/hooks-problem.js +23 -0
- package/src/lib/design/hooks-problem.js.map +1 -0
- package/src/lib/design/inbox-command.js +9 -5
- package/src/lib/design/inbox-command.js.map +1 -1
- package/src/lib/design/index.d.ts +4 -1
- package/src/lib/design/index.js +4 -1
- package/src/lib/design/index.js.map +1 -1
- package/src/lib/design/is-running.d.ts +1 -0
- package/src/lib/design/is-running.js +14 -0
- package/src/lib/design/is-running.js.map +1 -0
- package/src/lib/design/legacy.js +3 -3
- package/src/lib/design/legacy.js.map +1 -1
- package/src/lib/design/mcp-command.d.ts +5 -1
- package/src/lib/design/mcp-command.js +27 -16
- 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 +4 -4
- 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 +22 -13
- package/src/lib/design/new-call.js.map +1 -1
- package/src/lib/design/old-shot-folders.d.ts +2 -0
- package/src/lib/design/old-shot-folders.js +26 -0
- package/src/lib/design/old-shot-folders.js.map +1 -0
- package/src/lib/design/package-root.d.ts +21 -0
- package/src/lib/design/package-root.js +79 -0
- package/src/lib/design/package-root.js.map +1 -0
- package/src/lib/design/parent-watch.d.ts +7 -0
- package/src/lib/design/parent-watch.js +23 -0
- package/src/lib/design/parent-watch.js.map +1 -0
- package/src/lib/design/part-marks.d.ts +3 -2
- package/src/lib/design/part-marks.js +15 -7
- package/src/lib/design/part-marks.js.map +1 -1
- package/src/lib/design/phase-timing.d.ts +5 -0
- package/src/lib/design/phase-timing.js +27 -0
- package/src/lib/design/phase-timing.js.map +1 -0
- package/src/lib/design/physical-cores.d.ts +12 -0
- package/src/lib/design/physical-cores.js +43 -0
- package/src/lib/design/physical-cores.js.map +1 -0
- package/src/lib/design/product-command.d.ts +1 -1
- package/src/lib/design/product-command.js +16 -18
- package/src/lib/design/product-command.js.map +1 -1
- package/src/lib/design/push-status.d.ts +30 -0
- package/src/lib/design/push-status.js +122 -0
- package/src/lib/design/push-status.js.map +1 -0
- package/src/lib/design/ready-shots.d.ts +21 -12
- package/src/lib/design/ready-shots.js +79 -44
- package/src/lib/design/ready-shots.js.map +1 -1
- package/src/lib/design/render-packages.d.ts +7 -18
- package/src/lib/design/render-packages.js +24 -63
- package/src/lib/design/render-packages.js.map +1 -1
- package/src/lib/design/render-worker.js +24 -6
- package/src/lib/design/render-worker.js.map +1 -1
- package/src/lib/design/render.d.ts +26 -3
- package/src/lib/design/render.js +52 -13
- package/src/lib/design/render.js.map +1 -1
- package/src/lib/design/resident/client.d.ts +52 -0
- package/src/lib/design/resident/client.js +263 -0
- package/src/lib/design/resident/client.js.map +1 -0
- package/src/lib/design/resident/discovery.d.ts +21 -0
- package/src/lib/design/resident/discovery.js +63 -0
- package/src/lib/design/resident/discovery.js.map +1 -0
- package/src/lib/design/resident/resident-process.d.ts +19 -0
- package/src/lib/design/resident/resident-process.js +189 -0
- package/src/lib/design/resident/resident-process.js.map +1 -0
- package/src/lib/design/resident/server.d.ts +52 -0
- package/src/lib/design/resident/server.js +212 -0
- package/src/lib/design/resident/server.js.map +1 -0
- package/src/lib/design/run-abort.d.ts +9 -0
- package/src/lib/design/run-abort.js +45 -0
- package/src/lib/design/run-abort.js.map +1 -0
- package/src/lib/design/run-deadline.d.ts +19 -0
- package/src/lib/design/run-deadline.js +104 -0
- package/src/lib/design/run-deadline.js.map +1 -0
- package/src/lib/design/run-yield.d.ts +8 -0
- package/src/lib/design/run-yield.js +43 -0
- package/src/lib/design/run-yield.js.map +1 -0
- package/src/lib/design/serve-state.d.ts +15 -0
- package/src/lib/design/serve-state.js +56 -0
- package/src/lib/design/serve-state.js.map +1 -0
- package/src/lib/design/serve.d.ts +41 -3
- package/src/lib/design/serve.js +272 -54
- package/src/lib/design/serve.js.map +1 -1
- package/src/lib/design/server-identity.d.ts +40 -0
- package/src/lib/design/server-identity.js +71 -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-board.d.ts +26 -0
- package/src/lib/design/shot-board.js +80 -0
- package/src/lib/design/shot-board.js.map +1 -0
- package/src/lib/design/shot-command.d.ts +26 -5
- package/src/lib/design/shot-command.js +143 -50
- package/src/lib/design/shot-command.js.map +1 -1
- package/src/lib/design/shot-store.d.ts +29 -3
- package/src/lib/design/shot-store.js +206 -36
- package/src/lib/design/shot-store.js.map +1 -1
- package/src/lib/design/shot.d.ts +60 -2
- package/src/lib/design/shot.js +238 -28
- package/src/lib/design/shot.js.map +1 -1
- package/src/lib/design/sketch-at.js +2 -1
- package/src/lib/design/sketch-at.js.map +1 -1
- package/src/lib/design/sketch-command.d.ts +19 -1
- package/src/lib/design/sketch-command.js +664 -159
- package/src/lib/design/sketch-command.js.map +1 -1
- package/src/lib/design/ssr-shims.d.ts +1 -0
- package/src/lib/design/ssr-shims.js +3 -3
- package/src/lib/design/ssr-shims.js.map +1 -1
- package/src/lib/design/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 +23 -1
- package/src/lib/design/stamp.js +56 -9
- 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/status.d.ts +1 -1
- package/src/lib/design/status.js +15 -4
- package/src/lib/design/status.js.map +1 -1
- package/src/lib/design/studio-api.d.ts +21 -10
- package/src/lib/design/studio-api.js +192 -88
- package/src/lib/design/studio-api.js.map +1 -1
- package/src/lib/design/system/accepted-pictures.d.ts +69 -0
- package/src/lib/design/system/accepted-pictures.js +346 -0
- package/src/lib/design/system/accepted-pictures.js.map +1 -0
- package/src/lib/design/system/action-cache.d.ts +45 -0
- package/src/lib/design/system/action-cache.js +72 -0
- package/src/lib/design/system/action-cache.js.map +1 -0
- package/src/lib/design/system/action-lost.d.ts +61 -0
- package/src/lib/design/system/action-lost.js +116 -0
- package/src/lib/design/system/action-lost.js.map +1 -0
- package/src/lib/design/system/action-press.d.ts +29 -0
- package/src/lib/design/system/action-press.js +88 -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 +108 -0
- package/src/lib/design/system/actions-command.js +816 -0
- package/src/lib/design/system/actions-command.js.map +1 -0
- package/src/lib/design/system/actions.d.ts +181 -0
- package/src/lib/design/system/actions.js +333 -0
- package/src/lib/design/system/actions.js.map +1 -0
- package/src/lib/design/system/anti-alias.d.ts +2 -0
- package/src/lib/design/system/anti-alias.js +11 -0
- package/src/lib/design/system/anti-alias.js.map +1 -0
- package/src/lib/design/system/app-files.d.ts +10 -0
- package/src/lib/design/system/app-files.js +175 -0
- package/src/lib/design/system/app-files.js.map +1 -0
- package/src/lib/design/system/arrow-anchor.d.ts +9 -0
- package/src/lib/design/system/arrow-anchor.js +40 -0
- package/src/lib/design/system/arrow-anchor.js.map +1 -0
- package/src/lib/design/system/base-issues.d.ts +28 -0
- package/src/lib/design/system/base-issues.js +80 -0
- package/src/lib/design/system/base-issues.js.map +1 -0
- package/src/lib/design/system/base.d.ts +1 -1
- package/src/lib/design/system/base.js +2 -2
- package/src/lib/design/system/base.js.map +1 -1
- package/src/lib/design/system/baseline-history.d.ts +13 -0
- package/src/lib/design/system/baseline-history.js +40 -0
- package/src/lib/design/system/baseline-history.js.map +1 -0
- package/src/lib/design/system/bespoke-controls.d.ts +33 -0
- package/src/lib/design/system/bespoke-controls.js +149 -0
- package/src/lib/design/system/bespoke-controls.js.map +1 -0
- package/src/lib/design/system/build-ready-contract.d.ts +33 -0
- package/src/lib/design/system/build-ready-contract.js +18 -0
- package/src/lib/design/system/build-ready-contract.js.map +1 -0
- package/src/lib/design/system/build-running.d.ts +13 -0
- package/src/lib/design/system/build-running.js +48 -0
- package/src/lib/design/system/build-running.js.map +1 -0
- package/src/lib/design/system/check-record.d.ts +18 -0
- package/src/lib/design/system/check-record.js +47 -0
- package/src/lib/design/system/check-record.js.map +1 -0
- package/src/lib/design/system/check-rules.d.ts +1 -0
- package/src/lib/design/system/check-rules.js +100 -0
- package/src/lib/design/system/check-rules.js.map +1 -0
- package/src/lib/design/system/check-system.d.ts +83 -7
- package/src/lib/design/system/check-system.js +647 -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.d.ts +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-cache.d.ts +20 -0
- package/src/lib/design/system/compare-cache.js +92 -0
- package/src/lib/design/system/compare-cache.js.map +1 -0
- package/src/lib/design/system/compare-command.d.ts +150 -0
- package/src/lib/design/system/compare-command.js +580 -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 +63 -2
- package/src/lib/design/system/complete.js +281 -71
- 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/decision-refs.d.ts +5 -0
- package/src/lib/design/system/decision-refs.js +21 -0
- package/src/lib/design/system/decision-refs.js.map +1 -0
- package/src/lib/design/system/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 +52 -0
- package/src/lib/design/system/design-hash.js +132 -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 +178 -0
- package/src/lib/design/system/dom-command.js.map +1 -0
- package/src/lib/design/system/drawn-open-points.d.ts +26 -4
- 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 +39 -0
- package/src/lib/design/system/dropped-props.js +271 -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/grid-report.d.ts +5 -0
- package/src/lib/design/system/grid-report.js +78 -0
- package/src/lib/design/system/grid-report.js.map +1 -0
- package/src/lib/design/system/handoff.js +2 -1
- package/src/lib/design/system/handoff.js.map +1 -1
- package/src/lib/design/system/harness-build-cache.d.ts +49 -0
- package/src/lib/design/system/harness-build-cache.js +188 -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-inputs.d.ts +17 -0
- package/src/lib/design/system/harness-inputs.js +160 -0
- package/src/lib/design/system/harness-inputs.js.map +1 -0
- package/src/lib/design/system/harness-map.d.ts +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 +51 -0
- package/src/lib/design/system/harness-server.js +306 -0
- package/src/lib/design/system/harness-server.js.map +1 -0
- package/src/lib/design/system/harness-shot.d.ts +78 -0
- package/src/lib/design/system/harness-shot.js +349 -0
- package/src/lib/design/system/harness-shot.js.map +1 -0
- package/src/lib/design/system/harness-watch.d.ts +79 -0
- package/src/lib/design/system/harness-watch.js +334 -0
- package/src/lib/design/system/harness-watch.js.map +1 -0
- package/src/lib/design/system/implementation-baseline.d.ts +20 -0
- package/src/lib/design/system/implementation-baseline.js +44 -0
- package/src/lib/design/system/implementation-baseline.js.map +1 -0
- package/src/lib/design/system/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/leftover-gate-files.d.ts +2 -0
- package/src/lib/design/system/leftover-gate-files.js +15 -0
- package/src/lib/design/system/leftover-gate-files.js.map +1 -0
- package/src/lib/design/system/lib-build-lock.d.ts +18 -0
- package/src/lib/design/system/lib-build-lock.js +111 -0
- package/src/lib/design/system/lib-build-lock.js.map +1 -0
- package/src/lib/design/system/link-free.d.ts +12 -0
- package/src/lib/design/system/link-free.js +125 -0
- package/src/lib/design/system/link-free.js.map +1 -0
- package/src/lib/design/system/list-system.d.ts +8 -8
- package/src/lib/design/system/list-system.js +19 -80
- 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 +674 -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 +45 -0
- package/src/lib/design/system/live-uncovered.js +158 -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/no-verdict.d.ts +13 -0
- package/src/lib/design/system/no-verdict.js +17 -0
- package/src/lib/design/system/no-verdict.js.map +1 -0
- package/src/lib/design/system/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/off-centre.d.ts +11 -0
- package/src/lib/design/system/off-centre.js +74 -0
- package/src/lib/design/system/off-centre.js.map +1 -0
- package/src/lib/design/system/open-points-cache.d.ts +11 -0
- package/src/lib/design/system/open-points-cache.js +27 -0
- package/src/lib/design/system/open-points-cache.js.map +1 -0
- package/src/lib/design/system/open-points-runner.d.ts +43 -0
- package/src/lib/design/system/open-points-runner.js +119 -0
- package/src/lib/design/system/open-points-runner.js.map +1 -0
- package/src/lib/design/system/open-points-worker.d.ts +1 -0
- package/src/lib/design/system/open-points-worker.js +28 -0
- package/src/lib/design/system/open-points-worker.js.map +1 -0
- package/src/lib/design/system/open-points.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 +45 -0
- package/src/lib/design/system/part-build-ready.js +135 -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 +139 -0
- package/src/lib/design/system/part-compare.js +501 -0
- package/src/lib/design/system/part-compare.js.map +1 -0
- package/src/lib/design/system/part-picture-cache.d.ts +23 -0
- package/src/lib/design/system/part-picture-cache.js +68 -0
- package/src/lib/design/system/part-picture-cache.js.map +1 -0
- package/src/lib/design/system/part-ready.d.ts +71 -7
- package/src/lib/design/system/part-ready.js +128 -19
- package/src/lib/design/system/part-ready.js.map +1 -1
- package/src/lib/design/system/part-task.d.ts +167 -0
- package/src/lib/design/system/part-task.js +331 -0
- package/src/lib/design/system/part-task.js.map +1 -0
- package/src/lib/design/system/pixel-cache.d.ts +16 -0
- package/src/lib/design/system/pixel-cache.js +79 -0
- package/src/lib/design/system/pixel-cache.js.map +1 -0
- package/src/lib/design/system/pointer-focus.d.ts +89 -0
- package/src/lib/design/system/pointer-focus.js +175 -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 +37 -0
- package/src/lib/design/system/prettier.js.map +1 -0
- package/src/lib/design/system/problem.d.ts +6 -0
- package/src/lib/design/system/product.js +2 -2
- package/src/lib/design/system/product.js.map +1 -1
- package/src/lib/design/system/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 +52 -15
- package/src/lib/design/system/ready-command.js.map +1 -1
- package/src/lib/design/system/record-settled.d.ts +24 -0
- package/src/lib/design/system/record-settled.js +50 -0
- package/src/lib/design/system/record-settled.js.map +1 -0
- package/src/lib/design/system/render-check.d.ts +68 -1
- package/src/lib/design/system/render-check.js +427 -114
- package/src/lib/design/system/render-check.js.map +1 -1
- package/src/lib/design/system/render-issue-key.d.ts +9 -0
- package/src/lib/design/system/render-issue-key.js +27 -0
- package/src/lib/design/system/render-issue-key.js.map +1 -0
- package/src/lib/design/system/resolve-product.d.ts +4 -1
- package/src/lib/design/system/resolve-product.js +19 -3
- package/src/lib/design/system/resolve-product.js.map +1 -1
- package/src/lib/design/system/rule-baseline.d.ts +53 -0
- package/src/lib/design/system/rule-baseline.js +124 -0
- package/src/lib/design/system/rule-baseline.js.map +1 -0
- package/src/lib/design/system/rule-skips.d.ts +20 -0
- package/src/lib/design/system/rule-skips.js +36 -0
- package/src/lib/design/system/rule-skips.js.map +1 -0
- package/src/lib/design/system/rules/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 +6 -0
- package/src/lib/design/system/rules/canonical-class.js +92 -113
- package/src/lib/design/system/rules/canonical-class.js.map +1 -1
- package/src/lib/design/system/rules/capability-place.d.ts +46 -0
- package/src/lib/design/system/rules/capability-place.js +129 -0
- package/src/lib/design/system/rules/capability-place.js.map +1 -0
- package/src/lib/design/system/rules/command-text.d.ts +7 -0
- package/src/lib/design/system/rules/command-text.js +72 -0
- package/src/lib/design/system/rules/command-text.js.map +1 -0
- package/src/lib/design/system/rules/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/design-coverage.d.ts +30 -0
- package/src/lib/design/system/rules/design-coverage.js +205 -0
- package/src/lib/design/system/rules/design-coverage.js.map +1 -0
- package/src/lib/design/system/rules/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 +77 -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-unrendered.d.ts +13 -0
- package/src/lib/design/system/rules/implements-unrendered.js +63 -0
- package/src/lib/design/system/rules/implements-unrendered.js.map +1 -0
- package/src/lib/design/system/rules/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 +31 -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 +74 -0
- package/src/lib/design/system/rules/native-title.js.map +1 -0
- package/src/lib/design/system/rules/option-values.d.ts +1 -1
- 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/pending-state.d.ts +39 -0
- package/src/lib/design/system/rules/pending-state.js +289 -0
- package/src/lib/design/system/rules/pending-state.js.map +1 -0
- package/src/lib/design/system/rules/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/sdk-attribute-value.d.ts +10 -0
- package/src/lib/design/system/rules/sdk-attribute-value.js +78 -0
- package/src/lib/design/system/rules/sdk-attribute-value.js.map +1 -0
- package/src/lib/design/system/rules/sdk-private-var.d.ts +9 -0
- package/src/lib/design/system/rules/sdk-private-var.js +54 -0
- package/src/lib/design/system/rules/sdk-private-var.js.map +1 -0
- package/src/lib/design/system/rules/skips.d.ts +4 -0
- package/src/lib/design/system/rules/skips.js +27 -0
- package/src/lib/design/system/rules/skips.js.map +1 -0
- package/src/lib/design/system/rules/stale-replace.js +5 -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 +52 -0
- package/src/lib/design/system/rules/tailwind-classes.js +237 -0
- package/src/lib/design/system/rules/tailwind-classes.js.map +1 -0
- package/src/lib/design/system/rules/token-selectors.js +10 -3
- package/src/lib/design/system/rules/token-selectors.js.map +1 -1
- package/src/lib/design/system/rules/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 +7 -0
- package/src/lib/design/system/rules/unbound-input-known.js +44 -0
- package/src/lib/design/system/rules/unbound-input-known.js.map +1 -0
- package/src/lib/design/system/rules/unbound-input.d.ts +24 -0
- package/src/lib/design/system/rules/unbound-input.js +67 -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 +41 -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 +40 -13
- 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 +19 -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-declarations.d.ts +10 -0
- package/src/lib/design/system/sdk-declarations.js +177 -0
- package/src/lib/design/system/sdk-declarations.js.map +1 -0
- package/src/lib/design/system/sdk-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/sdk-selectors.d.ts +18 -0
- package/src/lib/design/system/sdk-selectors.js +131 -0
- package/src/lib/design/system/sdk-selectors.js.map +1 -0
- package/src/lib/design/system/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/served-cache.d.ts +99 -0
- package/src/lib/design/system/served-cache.js +202 -0
- package/src/lib/design/system/served-cache.js.map +1 -0
- package/src/lib/design/system/settled-panes.d.ts +23 -0
- package/src/lib/design/system/settled-panes.js +71 -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 +36 -2
- package/src/lib/design/system/sketch/baseline.js +76 -13
- package/src/lib/design/system/sketch/baseline.js.map +1 -1
- package/src/lib/design/system/sketch/check-format.js +3 -9
- package/src/lib/design/system/sketch/check-format.js.map +1 -1
- package/src/lib/design/system/sketch/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/clean-copy.d.ts +18 -0
- package/src/lib/design/system/sketch/clean-copy.js +104 -0
- package/src/lib/design/system/sketch/clean-copy.js.map +1 -0
- package/src/lib/design/system/sketch/cli-args.d.ts +13 -3
- package/src/lib/design/system/sketch/cli-args.js +20 -5
- package/src/lib/design/system/sketch/cli-args.js.map +1 -1
- package/src/lib/design/system/sketch/covered-diffs.d.ts +40 -0
- package/src/lib/design/system/sketch/covered-diffs.js +106 -0
- package/src/lib/design/system/sketch/covered-diffs.js.map +1 -0
- package/src/lib/design/system/sketch/edit-sketch.d.ts +29 -0
- package/src/lib/design/system/sketch/edit-sketch.js +169 -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 +143 -0
- package/src/lib/design/system/sketch/identical-renders.js.map +1 -0
- package/src/lib/design/system/sketch/merge-commit.d.ts +20 -0
- package/src/lib/design/system/sketch/merge-commit.js +72 -0
- package/src/lib/design/system/sketch/merge-commit.js.map +1 -0
- package/src/lib/design/system/sketch/merge-runner.d.ts +20 -0
- package/src/lib/design/system/sketch/merge-runner.js +73 -0
- package/src/lib/design/system/sketch/merge-runner.js.map +1 -0
- package/src/lib/design/system/sketch/merge-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 +47 -0
- package/src/lib/design/system/sketch/merge-step.js +110 -0
- package/src/lib/design/system/sketch/merge-step.js.map +1 -0
- package/src/lib/design/system/sketch/merge-worker.d.ts +1 -0
- package/src/lib/design/system/sketch/merge-worker.js +14 -0
- package/src/lib/design/system/sketch/merge-worker.js.map +1 -0
- package/src/lib/design/system/sketch/merge.d.ts +19 -5
- package/src/lib/design/system/sketch/merge.js +245 -82
- 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 +31 -30
- package/src/lib/design/system/sketch/merged-parts.js +99 -84
- 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/note-language.d.ts +7 -0
- package/src/lib/design/system/sketch/note-language.js +83 -0
- package/src/lib/design/system/sketch/note-language.js.map +1 -0
- package/src/lib/design/system/sketch/part-definition.d.ts +27 -1
- package/src/lib/design/system/sketch/part-definition.js +109 -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 +215 -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-cache.d.ts +11 -0
- package/src/lib/design/system/sketch/sketch-check-cache.js +22 -0
- package/src/lib/design/system/sketch/sketch-check-cache.js.map +1 -0
- package/src/lib/design/system/sketch/sketch-check-worker.d.ts +1 -0
- package/src/lib/design/system/sketch/sketch-check-worker.js +32 -0
- package/src/lib/design/system/sketch/sketch-check-worker.js.map +1 -0
- package/src/lib/design/system/sketch/sketch-checker.d.ts +40 -0
- package/src/lib/design/system/sketch/sketch-checker.js +109 -0
- package/src/lib/design/system/sketch/sketch-checker.js.map +1 -0
- package/src/lib/design/system/sketch/sketch.d.ts +100 -8
- package/src/lib/design/system/sketch/sketch.js +279 -36
- 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 +39 -3
- package/src/lib/design/system/sketch/unchanged-states.js +75 -23
- 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 +32 -0
- package/src/lib/design/system/sketch/viewed-shots.js +54 -0
- package/src/lib/design/system/sketch/viewed-shots.js.map +1 -0
- package/src/lib/design/system/skip-classes.d.ts +3 -0
- package/src/lib/design/system/skip-classes.js +17 -0
- package/src/lib/design/system/skip-classes.js.map +1 -0
- package/src/lib/design/system/slot-hosts.d.ts +38 -0
- package/src/lib/design/system/slot-hosts.js +93 -0
- package/src/lib/design/system/slot-hosts.js.map +1 -0
- package/src/lib/design/system/slow-checks.d.ts +44 -0
- package/src/lib/design/system/slow-checks.js +250 -0
- package/src/lib/design/system/slow-checks.js.map +1 -0
- package/src/lib/design/system/slow-run.d.ts +67 -0
- package/src/lib/design/system/slow-run.js +312 -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 +61 -0
- package/src/lib/design/system/stale-dist.js +141 -0
- package/src/lib/design/system/stale-dist.js.map +1 -0
- package/src/lib/design/system/stale-parts.d.ts +45 -0
- package/src/lib/design/system/stale-parts.js +168 -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 +11 -9
- package/src/lib/design/system/system-command.js.map +1 -1
- package/src/lib/design/system/system-modules.d.ts +17 -2
- package/src/lib/design/system/system-modules.js +18 -2
- package/src/lib/design/system/system-modules.js.map +1 -1
- package/src/lib/design/system/system-tsconfig.d.ts +9 -2
- package/src/lib/design/system/system-tsconfig.js +73 -13
- package/src/lib/design/system/system-tsconfig.js.map +1 -1
- package/src/lib/design/system/task-command.d.ts +52 -0
- package/src/lib/design/system/task-command.js +271 -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/touched-parts.d.ts +16 -0
- package/src/lib/design/system/touched-parts.js +121 -0
- package/src/lib/design/system/touched-parts.js.map +1 -0
- package/src/lib/design/system/tracked-reads.d.ts +27 -0
- package/src/lib/design/system/tracked-reads.js +100 -0
- package/src/lib/design/system/tracked-reads.js.map +1 -0
- package/src/lib/design/system/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 +24 -0
- package/src/lib/design/system/unchanged-rows.js +212 -0
- package/src/lib/design/system/unchanged-rows.js.map +1 -0
- package/src/lib/design/system/uncommitted-decisions.d.ts +4 -0
- package/src/lib/design/system/uncommitted-decisions.js +35 -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 +60 -0
- package/src/lib/design/system/visible-change-command.js +310 -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/system/write-origin.d.ts +12 -0
- package/src/lib/design/system/write-origin.js +18 -0
- package/src/lib/design/system/write-origin.js.map +1 -0
- package/src/lib/design/system-use.js +4 -4
- package/src/lib/design/system-use.js.map +1 -1
- package/src/lib/design/thumb.d.ts +37 -4
- package/src/lib/design/thumb.js +118 -21
- package/src/lib/design/thumb.js.map +1 -1
- package/src/lib/design/timings-command.d.ts +22 -0
- package/src/lib/design/timings-command.js +175 -0
- package/src/lib/design/timings-command.js.map +1 -0
- package/src/lib/design/timings.d.ts +117 -0
- package/src/lib/design/timings.js +296 -0
- package/src/lib/design/timings.js.map +1 -0
- package/src/lib/design/typecheck.d.ts +1 -1
- package/src/lib/design/typecheck.js +5 -5
- 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/vite-cache.d.ts +11 -0
- package/src/lib/design/vite-cache.js +61 -0
- package/src/lib/design/vite-cache.js.map +1 -0
- package/src/lib/design/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/design/warm-draw.d.ts +33 -0
- package/src/lib/design/warm-draw.js +74 -0
- package/src/lib/design/warm-draw.js.map +1 -0
- package/src/lib/design/warm-pages.d.ts +10 -2
- package/src/lib/design/warm-pages.js +6 -2
- package/src/lib/design/warm-pages.js.map +1 -1
- package/src/lib/design/work-root.d.ts +2 -0
- package/src/lib/design/work-root.js +8 -0
- package/src/lib/design/work-root.js.map +1 -0
- package/src/lib/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/plain-output.d.ts +27 -0
- package/src/lib/plain-output.js +66 -0
- package/src/lib/plain-output.js.map +1 -0
- package/src/lib/release.js +11 -3
- package/src/lib/release.js.map +1 -1
- package/src/lib/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/commits.js +2 -2
- package/src/lib/update/commits.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/packages.js +4 -2
- package/src/lib/update/packages.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/scan.js +8 -2
- package/src/lib/update/scan.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/paths.js +0 -138
- package/src/lib/design/paths.js.map +0 -1
- package/src/lib/design/system/accept-command.d.ts +0 -7
- package/src/lib/design/system/accept-command.js +0 -55
- package/src/lib/design/system/accept-command.js.map +0 -1
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.visibleChangeSummaryOf = exports.visibleChangeVerdictOf = exports.mergedPartsOf = exports.sketchedPartsOf = exports.stateDiffOf = exports.deviationOf = void 0;
|
|
4
|
+
const part_compare_1 = require("./part-compare");
|
|
5
|
+
const DIFF_RED = 0xff0000ff;
|
|
6
|
+
/** The pixels the app picture differs from the design picture in, counting those outside their shared area. */
|
|
7
|
+
const deviationOf = (options) => {
|
|
8
|
+
const result = (0, part_compare_1.comparePngs)(options);
|
|
9
|
+
if (result.kind === 'ok')
|
|
10
|
+
return 0;
|
|
11
|
+
if (result.kind === 'diff')
|
|
12
|
+
return result.pixels;
|
|
13
|
+
const { data } = (0, part_compare_1.decodePng)(result.diff);
|
|
14
|
+
let pixels = 0;
|
|
15
|
+
for (let at = 0; at < data.length; at += 4)
|
|
16
|
+
if (data.readUInt32BE(at) === DIFF_RED)
|
|
17
|
+
pixels++;
|
|
18
|
+
return pixels;
|
|
19
|
+
};
|
|
20
|
+
exports.deviationOf = deviationOf;
|
|
21
|
+
const stateDiffOf = (options) => {
|
|
22
|
+
const { base, head } = options;
|
|
23
|
+
const { state } = head;
|
|
24
|
+
if ('problem' in head)
|
|
25
|
+
return base && !('problem' in base)
|
|
26
|
+
? { state, kind: 'broken', problem: head.problem }
|
|
27
|
+
: {
|
|
28
|
+
state,
|
|
29
|
+
kind: head.undrivable && base && 'problem' in base && base.undrivable ? 'undrivable' : 'unjudged',
|
|
30
|
+
problem: head.problem,
|
|
31
|
+
};
|
|
32
|
+
if (!base || 'problem' in base)
|
|
33
|
+
return { state, kind: 'new', head: (0, exports.deviationOf)({ design: head.design, app: head.app }) };
|
|
34
|
+
const change = (0, part_compare_1.comparePngs)({ design: base.app, app: head.app });
|
|
35
|
+
if (change.kind === 'ok')
|
|
36
|
+
return { state, kind: 'same' };
|
|
37
|
+
return {
|
|
38
|
+
state,
|
|
39
|
+
kind: 'differs',
|
|
40
|
+
base: (0, exports.deviationOf)({ design: head.design, app: base.app }),
|
|
41
|
+
head: (0, exports.deviationOf)({ design: head.design, app: head.app }),
|
|
42
|
+
diff: change.diff,
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
exports.stateDiffOf = stateDiffOf;
|
|
46
|
+
/** The parts a picked sketch, or a sketch a merge deleted, targets. */
|
|
47
|
+
const sketchedPartsOf = (evidence) => {
|
|
48
|
+
var _a;
|
|
49
|
+
const parts = new Set();
|
|
50
|
+
for (const { text, merged } of evidence) {
|
|
51
|
+
let parsed;
|
|
52
|
+
try {
|
|
53
|
+
parsed = JSON.parse(text);
|
|
54
|
+
}
|
|
55
|
+
catch (_b) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (!merged && ((_a = parsed.decision) === null || _a === void 0 ? void 0 : _a.kind) !== 'pick')
|
|
59
|
+
continue;
|
|
60
|
+
const targets = Array.isArray(parsed.targets) ? parsed.targets : [parsed.target];
|
|
61
|
+
for (const target of targets)
|
|
62
|
+
if (typeof target === 'string')
|
|
63
|
+
parts.add(target);
|
|
64
|
+
}
|
|
65
|
+
return parts;
|
|
66
|
+
};
|
|
67
|
+
exports.sketchedPartsOf = sketchedPartsOf;
|
|
68
|
+
const mergedEntriesOf = (text) => {
|
|
69
|
+
try {
|
|
70
|
+
const parsed = JSON.parse(text !== null && text !== void 0 ? text : '{}');
|
|
71
|
+
return parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed : {};
|
|
72
|
+
}
|
|
73
|
+
catch (_a) {
|
|
74
|
+
return {};
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
const decisionOf = (entry) => entry && typeof entry === 'object' && !Array.isArray(entry)
|
|
78
|
+
? JSON.stringify(Object.assign(Object.assign({}, entry), { hash: null }))
|
|
79
|
+
: null;
|
|
80
|
+
/**
|
|
81
|
+
* The parts a sketch merge recorded in `merged.json` between the base and HEAD: a part first recorded there, or one
|
|
82
|
+
* whose recorded pick changed. A hash refresh alone is no merge.
|
|
83
|
+
*/
|
|
84
|
+
const mergedPartsOf = (options) => {
|
|
85
|
+
const base = mergedEntriesOf(options.base);
|
|
86
|
+
const head = mergedEntriesOf(options.head);
|
|
87
|
+
return new Set(Object.entries(head).flatMap(([part, entry]) => !(part in base) || (decisionOf(entry) !== null && decisionOf(entry) !== decisionOf(base[part])) ? [part] : []));
|
|
88
|
+
};
|
|
89
|
+
exports.mergedPartsOf = mergedPartsOf;
|
|
90
|
+
/**
|
|
91
|
+
* A part passes when its app draws alike at base and HEAD, when a picked or merged sketch of it is in the range, or
|
|
92
|
+
* when every changed state is strictly closer to HEAD's design or, without a base picture, matches it. A state HEAD can no longer draw always fails, and so does any state the gate could not judge,
|
|
93
|
+
* but a state neither app has an element to force the design's interaction on: that is a problem of the part, listed as `undrivable`.
|
|
94
|
+
*/
|
|
95
|
+
const visibleChangeVerdictOf = (options) => {
|
|
96
|
+
const { part, states } = options.diff;
|
|
97
|
+
const changed = states.filter((state) => state.kind === 'differs' || state.kind === 'new' || state.kind === 'broken');
|
|
98
|
+
const unjudgedStates = states.filter((state) => state.kind === 'unjudged');
|
|
99
|
+
const unjudged = unjudgedStates.map((state) => state.state);
|
|
100
|
+
const reasons = [...new Set(unjudgedStates.map((state) => (state.kind === 'unjudged' ? state.problem : '')))];
|
|
101
|
+
const undrivableStates = states.filter((state) => state.kind === 'undrivable');
|
|
102
|
+
const undrivable = undrivableStates.map((state) => state.state);
|
|
103
|
+
const undrivableReasons = [
|
|
104
|
+
...new Set(undrivableStates.map((state) => (state.kind === 'undrivable' ? state.problem : ''))),
|
|
105
|
+
];
|
|
106
|
+
const verdict = (pass, why) => ({
|
|
107
|
+
part,
|
|
108
|
+
pass,
|
|
109
|
+
why,
|
|
110
|
+
changed: changed.map((state) => state.state),
|
|
111
|
+
unjudged,
|
|
112
|
+
reasons,
|
|
113
|
+
undrivable,
|
|
114
|
+
undrivableReasons,
|
|
115
|
+
});
|
|
116
|
+
if (changed.some((state) => state.kind === 'broken'))
|
|
117
|
+
return verdict(false, 'broken');
|
|
118
|
+
if (unjudged.length > 0)
|
|
119
|
+
return verdict(false, 'unjudged');
|
|
120
|
+
if (changed.length === 0)
|
|
121
|
+
return verdict(true, 'invisible');
|
|
122
|
+
if (options.sketched.has(part))
|
|
123
|
+
return verdict(true, 'sketched');
|
|
124
|
+
if (changed.every((state) => state.kind === 'new' && state.head === 0))
|
|
125
|
+
return verdict(true, 'matches');
|
|
126
|
+
if (changed.every((state) => (state.kind === 'differs' && state.head < state.base) || (state.kind === 'new' && state.head === 0)))
|
|
127
|
+
return verdict(true, 'closer');
|
|
128
|
+
return verdict(false, 'visible');
|
|
129
|
+
};
|
|
130
|
+
exports.visibleChangeVerdictOf = visibleChangeVerdictOf;
|
|
131
|
+
/** The gate's last line; it names every unjudged state, so a pass that judged nothing never reads as a clean pass. */
|
|
132
|
+
const visibleChangeSummaryOf = (options) => {
|
|
133
|
+
const { verdicts, range, seconds } = options;
|
|
134
|
+
const failed = options.problems + verdicts.filter((verdict) => !verdict.pass).length;
|
|
135
|
+
const listOf = (what, of) => {
|
|
136
|
+
const listed = verdicts.filter((verdict) => of(verdict).length > 0);
|
|
137
|
+
const count = listed.reduce((sum, verdict) => sum + of(verdict).length, 0);
|
|
138
|
+
return count === 0
|
|
139
|
+
? ''
|
|
140
|
+
: ` - ${count} state(s) ${what}: ${listed.map((verdict) => `${verdict.part} (${of(verdict).join(', ')})`).join('; ')}`;
|
|
141
|
+
};
|
|
142
|
+
const list = listOf('unjudged', (verdict) => verdict.unjudged) +
|
|
143
|
+
listOf('undrivable, a problem of the part', (verdict) => verdict.undrivable);
|
|
144
|
+
return failed === 0
|
|
145
|
+
? `No part looks different in ${range} without a sketch (${seconds} s)${list}.`
|
|
146
|
+
: `${failed} part(s) fail the visible-change gate in ${range}. Pick and merge a sketch of each, or move it closer to its design${list}.`;
|
|
147
|
+
};
|
|
148
|
+
exports.visibleChangeSummaryOf = visibleChangeSummaryOf;
|
|
149
|
+
//# sourceMappingURL=visible-change.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visible-change.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/system/visible-change.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Who wrote a decision file entry (a ready mark or a sketch pick): the actor, the command it ran, and its process id. */
|
|
2
|
+
export type WriteOrigin = {
|
|
3
|
+
by: string;
|
|
4
|
+
cmd: string;
|
|
5
|
+
pid: number;
|
|
6
|
+
};
|
|
7
|
+
/** A command line for a committed record: an absolute path becomes relative to `cwd`, so no home directory lands in the repo. */
|
|
8
|
+
export declare const portableCmdOf: (args: string[], cwd?: string) => string;
|
|
9
|
+
/** The origin of a write by `by` from this process; `cmd` defaults to the command line it was started with. */
|
|
10
|
+
export declare const originOf: (by: string, cmd?: string) => WriteOrigin;
|
|
11
|
+
/** Whether `origin` names its actor; a decision write without one is refused. */
|
|
12
|
+
export declare const hasActor: (origin: Partial<WriteOrigin> | undefined) => boolean;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasActor = exports.originOf = exports.portableCmdOf = void 0;
|
|
4
|
+
const node_path_1 = require("node:path");
|
|
5
|
+
/** A command line for a committed record: an absolute path becomes relative to `cwd`, so no home directory lands in the repo. */
|
|
6
|
+
const portableCmdOf = (args, cwd = process.cwd()) => args.map((arg) => ((0, node_path_1.isAbsolute)(arg) ? (0, node_path_1.relative)(cwd, arg) || '.' : arg)).join(' ');
|
|
7
|
+
exports.portableCmdOf = portableCmdOf;
|
|
8
|
+
/** The origin of a write by `by` from this process; `cmd` defaults to the command line it was started with. */
|
|
9
|
+
const originOf = (by, cmd = (0, exports.portableCmdOf)(process.argv.slice(2))) => ({
|
|
10
|
+
by,
|
|
11
|
+
cmd,
|
|
12
|
+
pid: process.pid,
|
|
13
|
+
});
|
|
14
|
+
exports.originOf = originOf;
|
|
15
|
+
/** Whether `origin` names its actor; a decision write without one is refused. */
|
|
16
|
+
const hasActor = (origin) => typeof (origin === null || origin === void 0 ? void 0 : origin.by) === 'string' && origin.by.trim() !== '';
|
|
17
|
+
exports.hasActor = hasActor;
|
|
18
|
+
//# sourceMappingURL=write-origin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-origin.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/system/write-origin.ts"],"names":[],"mappings":";;;AAAA,yCAAiD;AAKjD,iIAAiI;AAC1H,MAAM,aAAa,GAAG,CAAC,IAAc,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,CACnE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAA,sBAAU,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,oBAAQ,EAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AADtE,QAAA,aAAa,iBACyD;AAEnF,+GAA+G;AACxG,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,GAAG,GAAG,IAAA,qBAAa,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC;IAChG,EAAE;IACF,GAAG;IACH,GAAG,EAAE,OAAO,CAAC,GAAG;CACjB,CAAC,CAAC;AAJU,QAAA,QAAQ,YAIlB;AAEH,iFAAiF;AAC1E,MAAM,QAAQ,GAAG,CAAC,MAAwC,EAAE,EAAE,CACnE,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,CAAA,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAD/C,QAAA,QAAQ,YACuC"}
|
|
@@ -4,7 +4,7 @@ exports.stageProblemOf = exports.inventoryWarningOf = exports.systemWarningOf =
|
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const path_1 = require("path");
|
|
6
6
|
const new_call_1 = require("./new-call");
|
|
7
|
-
const
|
|
7
|
+
const design_config_1 = require("./design-config");
|
|
8
8
|
const STAGES_ON_THE_SYSTEM = new Set(['element', 'page', 'prototype']);
|
|
9
9
|
const SPECIFIER = /(?:\bfrom\s*|\bimport\s*\(?\s*)['"]([^'"]+)['"]/g;
|
|
10
10
|
/** Whether a variant of the call imports anything from its project's design system. */
|
|
@@ -12,8 +12,8 @@ const drawsFromSystem = (options) => {
|
|
|
12
12
|
var _a;
|
|
13
13
|
const { target, slug } = options;
|
|
14
14
|
const project = (_a = slug.split('/')[0]) !== null && _a !== void 0 ? _a : '';
|
|
15
|
-
const system = (0, path_1.resolve)(target,
|
|
16
|
-
const folder = (0, path_1.resolve)((0,
|
|
15
|
+
const system = (0, path_1.resolve)(target, design_config_1.DESIGN_DIR, 'system', project);
|
|
16
|
+
const folder = (0, path_1.resolve)((0, design_config_1.callsRootOf)(target), slug);
|
|
17
17
|
if (!(0, fs_1.existsSync)(folder))
|
|
18
18
|
return false;
|
|
19
19
|
return (0, fs_1.readdirSync)(folder)
|
|
@@ -33,7 +33,7 @@ const systemWarningOf = (options) => {
|
|
|
33
33
|
if (!stage || !STAGES_ON_THE_SYSTEM.has(stage) || (0, exports.drawsFromSystem)({ target, slug }))
|
|
34
34
|
return null;
|
|
35
35
|
return (`WARNING ${slug} is a ${stage} call but no variant imports from ` +
|
|
36
|
-
`${
|
|
36
|
+
`${design_config_1.DESIGN_DIR}/system/${slug.split('/')[0]}/ - it draws no design-system entry, so its parts ` +
|
|
37
37
|
`may not match the system.`);
|
|
38
38
|
};
|
|
39
39
|
exports.systemWarningOf = systemWarningOf;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-use.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/system-use.ts"],"names":[],"mappings":";;;AAAA,2BAA2D;AAC3D,+BAA8D;AAC9D,yCAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"system-use.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/system-use.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IncomingMessage, ServerResponse } from 'http';
|
|
2
2
|
import { Chromium, chromiumOf } from './browser';
|
|
3
3
|
import { DrawLedger } from './draw-ledger';
|
|
4
|
+
import { ShotBoard } from './shot-board';
|
|
4
5
|
export declare const THUMB_PATH = "/__design/thumb";
|
|
5
6
|
/** The pixel width a thumbnail comes out at: twice the 180px tile Studio shows it in. */
|
|
6
7
|
export declare const THUMB_PIXEL_WIDTH = 360;
|
|
@@ -24,27 +25,50 @@ export declare class ShotFailedError extends Error {
|
|
|
24
25
|
}
|
|
25
26
|
export declare class ShotTimeoutError extends Error {
|
|
26
27
|
}
|
|
28
|
+
/** A design-server URL that answered an error status, such as the 403 Vite sends for a file outside `server.fs.allow`. */
|
|
29
|
+
export declare class FrameUnservedError extends Error {
|
|
30
|
+
}
|
|
31
|
+
/** Throws a `FrameUnservedError` naming the URL and status when the navigation to a design-server page answered 400 or above. */
|
|
32
|
+
export declare const assertServed: (response: {
|
|
33
|
+
status(): number;
|
|
34
|
+
} | null, url: string) => void;
|
|
27
35
|
/** Rejects a drawing that was still waiting when every ask that wanted it was aborted. */
|
|
28
36
|
export declare class DrawDroppedError extends Error {
|
|
29
37
|
}
|
|
30
38
|
type Page = Awaited<ReturnType<Awaited<ReturnType<Browser['newContext']>>['newPage']>>;
|
|
31
39
|
/**
|
|
32
|
-
* Opens a frame and waits until it drew its content or its error, then for its embedded frames.
|
|
33
|
-
*
|
|
40
|
+
* Opens a frame and waits until it drew its content or its error, then for its embedded frames. Each wait is
|
|
41
|
+
* `DRAW_TIMEOUT_MS` stretched by the machine load. A frame that draws nothing after one reload throws a
|
|
42
|
+
* `ShotTimeoutError` naming the URL.
|
|
34
43
|
*/
|
|
35
44
|
export declare const openFrame: (page: Page, url: string) => Promise<void>;
|
|
36
45
|
export declare const settled = "new Promise((done) => document.fonts.ready.then(() =>\n requestAnimationFrame(() => requestAnimationFrame(() => done(true)))))";
|
|
37
|
-
|
|
46
|
+
/** Waits for `settled` on `page`, and throws a `WaitTimeoutError` naming the page after `DRAW_TIMEOUT_MS`. */
|
|
47
|
+
export declare const awaitSettled: (page: Pick<Page, "evaluate" | "url">) => Promise<unknown>;
|
|
48
|
+
/** Waits for the fonts of `page`, and throws a `WaitTimeoutError` naming the page after `DRAW_TIMEOUT_MS`. */
|
|
49
|
+
export declare const awaitFonts: (page: Pick<Page, "evaluate" | "url">) => Promise<unknown>;
|
|
50
|
+
/** Finishes the page's finite time-based animations; scroll-driven ones keep the progress their scroll position gives. */
|
|
51
|
+
export declare const finished = "document.getAnimations()\n .filter((animation) => animation.effect?.getComputedTiming().endTime !== Infinity)\n .filter((animation) => typeof ScrollTimeline === 'undefined' || !(animation.timeline instanceof ScrollTimeline))\n .forEach((animation) => animation.finish())";
|
|
52
|
+
/**
|
|
53
|
+
* Cancels each running infinite animation, as a screenshot with disabled animations does in the app picture, so both
|
|
54
|
+
* pictures show its start frame; a paused one or one with a playback rate of 0 keeps its held frame.
|
|
55
|
+
*/
|
|
56
|
+
export declare const heldAnimations = "document.getAnimations()\n .filter((animation) => animation.effect?.getComputedTiming().endTime === Infinity)\n .filter((animation) => animation.playState === 'running' && animation.playbackRate !== 0)\n .filter((animation) => typeof ScrollTimeline === 'undefined' || !(animation.timeline instanceof ScrollTimeline))\n .forEach((animation) => animation.cancel())";
|
|
38
57
|
export type DrawPriority = 'high' | 'low';
|
|
39
58
|
/**
|
|
40
59
|
* What one ask wants of a drawing. `view` is a number the asker raises with each view change; the
|
|
41
|
-
* highest one seen is the shown view. `rank` places the ask in that view. `
|
|
60
|
+
* highest one seen is the shown view. `rank` places the ask in that view. `board` places it by the queue's shot
|
|
61
|
+
* board instead, where the board names its shot. `onWithdraw` gets the callback
|
|
42
62
|
* that withdraws the ask, to call once the asker no longer waits, or at once if it already stopped.
|
|
43
63
|
*/
|
|
44
64
|
export type DrawWant = {
|
|
45
65
|
priority: DrawPriority;
|
|
46
66
|
view?: number | null;
|
|
47
67
|
rank?: 'active' | 'visible' | null;
|
|
68
|
+
board?: {
|
|
69
|
+
key: string;
|
|
70
|
+
boardView: number;
|
|
71
|
+
};
|
|
48
72
|
onWithdraw?: (withdraw: () => void) => void;
|
|
49
73
|
};
|
|
50
74
|
export declare const DRAWS_AT_ONCE = 8;
|
|
@@ -55,10 +79,13 @@ export declare const DRAWS_AT_ONCE = 8;
|
|
|
55
79
|
* A drawing every ask withdrew before it started is dropped. A failed launch is not kept, so the next ask
|
|
56
80
|
* tries again.
|
|
57
81
|
*/
|
|
82
|
+
/** `browser` with every context it opens closed when `signal` aborts, so a draw of an aborted run fails at once. */
|
|
83
|
+
export declare const closingOnAbort: (browser: Browser, signal: AbortSignal) => Browser;
|
|
58
84
|
export declare const createDrawQueue: (options: {
|
|
59
85
|
target: string;
|
|
60
86
|
chromiumOf?: typeof chromiumOf;
|
|
61
87
|
ledger?: DrawLedger;
|
|
88
|
+
board?: Pick<ShotBoard, "laneOf">;
|
|
62
89
|
}) => {
|
|
63
90
|
run: <T>(draw: (browser: Browser) => Promise<T>, want?: DrawPriority | DrawWant) => Promise<T>;
|
|
64
91
|
/** Adds an ask to a drawing `run` returned, so it runs in the best lane any of its asks wants, unless it already started. */
|
|
@@ -72,6 +99,12 @@ export declare const noteFailure: <T>(shot: Promise<T>, failed: (failure: {
|
|
|
72
99
|
status: number;
|
|
73
100
|
message: string;
|
|
74
101
|
}) => void) => Promise<T>;
|
|
102
|
+
export declare const SHOT_MAX_AGE_S = 3600;
|
|
103
|
+
/**
|
|
104
|
+
* Answers with the PNG `shot` resolves to, tagged with its content hash; an ask whose `if-none-match` names that
|
|
105
|
+
* tag gets a 304. The asker keys the URL on the content it shows (Studio: session, epoch and revision), so the
|
|
106
|
+
* browser may keep a picture for `SHOT_MAX_AGE_S` and paint it again without asking.
|
|
107
|
+
*/
|
|
75
108
|
export declare const sendShot: (response: ServerResponse, shot: Promise<Buffer>) => undefined;
|
|
76
109
|
export declare const send: (response: ServerResponse, { status, type, body }: Shot) => void;
|
|
77
110
|
/** Whether a call may draw from a file under the calls root: its own, or one in a folder above it. */
|
package/src/lib/design/thumb.js
CHANGED
|
@@ -9,9 +9,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.createThumbnailer = exports.callDrawsFrom = exports.send = exports.sendShot = exports.noteFailure = exports.createDrawQueue = exports.DRAWS_AT_ONCE = exports.finished = exports.settled = exports.openFrame = exports.DrawDroppedError = exports.ShotTimeoutError = exports.ShotFailedError = exports.ShotUnprocessableError = exports.ThumbMissingError = exports.ThumbUnavailableError = exports.DRAW_TIMEOUT_MS = exports.THUMB_PIXEL_WIDTH = exports.THUMB_PATH = void 0;
|
|
12
|
+
exports.createThumbnailer = exports.callDrawsFrom = exports.send = exports.sendShot = exports.SHOT_MAX_AGE_S = exports.noteFailure = exports.createDrawQueue = exports.closingOnAbort = exports.DRAWS_AT_ONCE = exports.heldAnimations = exports.finished = exports.awaitFonts = exports.awaitSettled = exports.settled = exports.openFrame = exports.DrawDroppedError = exports.assertServed = exports.FrameUnservedError = exports.ShotTimeoutError = exports.ShotFailedError = exports.ShotUnprocessableError = exports.ThumbMissingError = exports.ThumbUnavailableError = exports.DRAW_TIMEOUT_MS = exports.THUMB_PIXEL_WIDTH = exports.THUMB_PATH = void 0;
|
|
13
|
+
const rxjs_1 = require("rxjs");
|
|
14
|
+
const crypto_1 = require("crypto");
|
|
13
15
|
const path_1 = require("path");
|
|
14
16
|
const browser_1 = require("./browser");
|
|
17
|
+
const perf_hooks_1 = require("perf_hooks");
|
|
18
|
+
const phase_timing_1 = require("./phase-timing");
|
|
19
|
+
const run_abort_1 = require("./run-abort");
|
|
20
|
+
const timings_1 = require("./timings");
|
|
21
|
+
const wait_1 = require("./wait");
|
|
22
|
+
const no_verdict_1 = require("./system/no-verdict");
|
|
15
23
|
exports.THUMB_PATH = '/__design/thumb';
|
|
16
24
|
/** The pixel width a thumbnail comes out at: twice the 180px tile Studio shows it in. */
|
|
17
25
|
exports.THUMB_PIXEL_WIDTH = 360;
|
|
@@ -37,6 +45,19 @@ exports.ShotFailedError = ShotFailedError;
|
|
|
37
45
|
class ShotTimeoutError extends Error {
|
|
38
46
|
}
|
|
39
47
|
exports.ShotTimeoutError = ShotTimeoutError;
|
|
48
|
+
/** A design-server URL that answered an error status, such as the 403 Vite sends for a file outside `server.fs.allow`. */
|
|
49
|
+
class FrameUnservedError extends Error {
|
|
50
|
+
}
|
|
51
|
+
exports.FrameUnservedError = FrameUnservedError;
|
|
52
|
+
/** Throws a `FrameUnservedError` naming the URL and status when the navigation to a design-server page answered 400 or above. */
|
|
53
|
+
const assertServed = (response, url) => {
|
|
54
|
+
var _a;
|
|
55
|
+
const status = (_a = response === null || response === void 0 ? void 0 : response.status()) !== null && _a !== void 0 ? _a : 0;
|
|
56
|
+
if (status >= 400) {
|
|
57
|
+
throw new FrameUnservedError(`design-explore: ${url} was not served (HTTP ${status}) - the design server refused or failed the page, so nothing on it can be measured`);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
exports.assertServed = assertServed;
|
|
40
61
|
/** Rejects a drawing that was still waiting when every ask that wanted it was aborted. */
|
|
41
62
|
class DrawDroppedError extends Error {
|
|
42
63
|
}
|
|
@@ -47,27 +68,30 @@ const frameWidthOf = (slug) => `(async (slug) => {
|
|
|
47
68
|
return (await calls[slug]()).default.frameWidth ?? null;
|
|
48
69
|
})(${JSON.stringify(slug)})`;
|
|
49
70
|
/**
|
|
50
|
-
* Opens a frame and waits until it drew its content or its error, then for its embedded frames.
|
|
51
|
-
*
|
|
71
|
+
* Opens a frame and waits until it drew its content or its error, then for its embedded frames. Each wait is
|
|
72
|
+
* `DRAW_TIMEOUT_MS` stretched by the machine load. A frame that draws nothing after one reload throws a
|
|
73
|
+
* `ShotTimeoutError` naming the URL.
|
|
52
74
|
*/
|
|
53
75
|
const openFrame = (page, url) => __awaiter(void 0, void 0, void 0, function* () {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
})
|
|
76
|
+
const timeout = (0, no_verdict_1.loadScaledMs)(exports.DRAW_TIMEOUT_MS);
|
|
77
|
+
const never = (what) => new ShotTimeoutError(`design-explore: ${url} did not ${what} within ${timeout} ms`);
|
|
78
|
+
const drawn = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
79
|
+
(0, exports.assertServed)(yield page.goto(url, { waitUntil: 'domcontentloaded' }), url);
|
|
80
|
+
// Headless Chromium's pointer starts at 0,0 on a new page and draws a real :hover on whatever fills the
|
|
81
|
+
// frame's corner. A move before the first navigation does not stick.
|
|
82
|
+
yield page.mouse.move(-1, -1);
|
|
83
|
+
return page
|
|
84
|
+
.locator('#root > :not(style)')
|
|
85
|
+
.first()
|
|
86
|
+
.waitFor({ state: 'attached', timeout })
|
|
87
|
+
.then(() => true, () => __awaiter(void 0, void 0, void 0, function* () { return (yield page.locator('vite-error-overlay').count()) > 0; }));
|
|
88
|
+
});
|
|
89
|
+
if (!(yield drawn()) && !(yield drawn()))
|
|
90
|
+
throw never('draw its content');
|
|
67
91
|
yield page
|
|
68
92
|
.locator('iframe[data-et-embed]:not([data-et-embed-drawn])')
|
|
69
93
|
.first()
|
|
70
|
-
.waitFor({ state: 'detached', timeout
|
|
94
|
+
.waitFor({ state: 'detached', timeout })
|
|
71
95
|
.catch(() => {
|
|
72
96
|
throw never('draw its embedded frames');
|
|
73
97
|
});
|
|
@@ -75,9 +99,29 @@ const openFrame = (page, url) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
75
99
|
exports.openFrame = openFrame;
|
|
76
100
|
exports.settled = `new Promise((done) => document.fonts.ready.then(() =>
|
|
77
101
|
requestAnimationFrame(() => requestAnimationFrame(() => done(true)))))`;
|
|
102
|
+
/** Waits for `settled` on `page`, and throws a `WaitTimeoutError` naming the page after `DRAW_TIMEOUT_MS`. */
|
|
103
|
+
const awaitSettled = (page) => (0, wait_1.withinLimit)(page.evaluate(exports.settled), {
|
|
104
|
+
ms: exports.DRAW_TIMEOUT_MS,
|
|
105
|
+
what: `the fonts and the first frames of ${page.url()}`,
|
|
106
|
+
});
|
|
107
|
+
exports.awaitSettled = awaitSettled;
|
|
108
|
+
/** Waits for the fonts of `page`, and throws a `WaitTimeoutError` naming the page after `DRAW_TIMEOUT_MS`. */
|
|
109
|
+
const awaitFonts = (page) => (0, wait_1.withinLimit)(page.evaluate('document.fonts.ready'), { ms: exports.DRAW_TIMEOUT_MS, what: `the fonts of ${page.url()}` });
|
|
110
|
+
exports.awaitFonts = awaitFonts;
|
|
111
|
+
/** Finishes the page's finite time-based animations; scroll-driven ones keep the progress their scroll position gives. */
|
|
78
112
|
exports.finished = `document.getAnimations()
|
|
79
113
|
.filter((animation) => animation.effect?.getComputedTiming().endTime !== Infinity)
|
|
114
|
+
.filter((animation) => typeof ScrollTimeline === 'undefined' || !(animation.timeline instanceof ScrollTimeline))
|
|
80
115
|
.forEach((animation) => animation.finish())`;
|
|
116
|
+
/**
|
|
117
|
+
* Cancels each running infinite animation, as a screenshot with disabled animations does in the app picture, so both
|
|
118
|
+
* pictures show its start frame; a paused one or one with a playback rate of 0 keeps its held frame.
|
|
119
|
+
*/
|
|
120
|
+
exports.heldAnimations = `document.getAnimations()
|
|
121
|
+
.filter((animation) => animation.effect?.getComputedTiming().endTime === Infinity)
|
|
122
|
+
.filter((animation) => animation.playState === 'running' && animation.playbackRate !== 0)
|
|
123
|
+
.filter((animation) => typeof ScrollTimeline === 'undefined' || !(animation.timeline instanceof ScrollTimeline))
|
|
124
|
+
.forEach((animation) => animation.cancel())`;
|
|
81
125
|
// Partial raster redraws only the invalidated part of a tile, so the anti-aliased edge of a rounded clip over an
|
|
82
126
|
// embedded frame depends on which frame painted first: two draws of the same page differed under load.
|
|
83
127
|
const DRAW_BROWSER_ARGS = ['--disable-partial-raster'];
|
|
@@ -89,6 +133,29 @@ exports.DRAWS_AT_ONCE = 8;
|
|
|
89
133
|
* A drawing every ask withdrew before it started is dropped. A failed launch is not kept, so the next ask
|
|
90
134
|
* tries again.
|
|
91
135
|
*/
|
|
136
|
+
/** `browser` with every context it opens closed when `signal` aborts, so a draw of an aborted run fails at once. */
|
|
137
|
+
const closingOnAbort = (browser, signal) => new Proxy(browser, {
|
|
138
|
+
get: (target, key) => {
|
|
139
|
+
const value = Reflect.get(target, key, target);
|
|
140
|
+
if (key !== 'newContext' || typeof value !== 'function') {
|
|
141
|
+
return typeof value === 'function' ? value.bind(target) : value;
|
|
142
|
+
}
|
|
143
|
+
return (...args) => __awaiter(void 0, void 0, void 0, function* () {
|
|
144
|
+
if (signal.aborted)
|
|
145
|
+
throw new run_abort_1.RunAbortedError();
|
|
146
|
+
const context = yield target.newContext(...args);
|
|
147
|
+
const close = () => void context.close().catch(() => undefined);
|
|
148
|
+
if (signal.aborted)
|
|
149
|
+
close();
|
|
150
|
+
else {
|
|
151
|
+
const aborting = (0, rxjs_1.fromEvent)(signal, 'abort').pipe((0, rxjs_1.take)(1), (0, rxjs_1.tap)(close)).subscribe();
|
|
152
|
+
context.once('close', () => aborting.unsubscribe());
|
|
153
|
+
}
|
|
154
|
+
return context;
|
|
155
|
+
});
|
|
156
|
+
},
|
|
157
|
+
});
|
|
158
|
+
exports.closingOnAbort = closingOnAbort;
|
|
92
159
|
const createDrawQueue = (options) => {
|
|
93
160
|
var _a;
|
|
94
161
|
const { target, ledger } = options;
|
|
@@ -103,7 +170,7 @@ const createDrawQueue = (options) => {
|
|
|
103
170
|
if (!resolved) {
|
|
104
171
|
throw new ThumbUnavailableError('design-explore: no playwright or playwright-core resolves, so the server can not draw thumbnails');
|
|
105
172
|
}
|
|
106
|
-
return resolved.chromium.launch({ args: DRAW_BROWSER_ARGS }).catch((error) => {
|
|
173
|
+
return (0, phase_timing_1.timedPhase)('browser-start', () => resolved.chromium.launch({ args: DRAW_BROWSER_ARGS })).catch((error) => {
|
|
107
174
|
throw new ThumbUnavailableError(`design-explore: the Chromium of ${resolved.from} did not start\n${error instanceof Error ? error.message : String(error)}`);
|
|
108
175
|
});
|
|
109
176
|
}));
|
|
@@ -111,8 +178,12 @@ const createDrawQueue = (options) => {
|
|
|
111
178
|
return browser;
|
|
112
179
|
};
|
|
113
180
|
const laneOf = (want) => {
|
|
181
|
+
var _a;
|
|
114
182
|
if (want.priority === 'high')
|
|
115
183
|
return 0;
|
|
184
|
+
const shown = want.board && ((_a = options.board) === null || _a === void 0 ? void 0 : _a.laneOf(want.board));
|
|
185
|
+
if (shown)
|
|
186
|
+
return shown;
|
|
116
187
|
if (typeof want.view === 'number' && want.view < shownView)
|
|
117
188
|
return 4;
|
|
118
189
|
return want.rank === 'active' ? 1 : want.rank === 'visible' ? 2 : 3;
|
|
@@ -162,6 +233,8 @@ const createDrawQueue = (options) => {
|
|
|
162
233
|
return {
|
|
163
234
|
run: (draw, want = 'high') => {
|
|
164
235
|
const ticket = ledger === null || ledger === void 0 ? void 0 : ledger.ask();
|
|
236
|
+
const asked = perf_hooks_1.performance.now();
|
|
237
|
+
const signal = (0, run_abort_1.runSignal)();
|
|
165
238
|
const entry = {
|
|
166
239
|
job: () => Promise.resolve(),
|
|
167
240
|
wants: new Set(),
|
|
@@ -170,8 +243,14 @@ const createDrawQueue = (options) => {
|
|
|
170
243
|
const drawn = new Promise((resolve, reject) => {
|
|
171
244
|
entry.job = () => {
|
|
172
245
|
ticket === null || ticket === void 0 ? void 0 : ticket.start();
|
|
246
|
+
(0, timings_1.recordDrawWait)(perf_hooks_1.performance.now() - asked);
|
|
247
|
+
if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
|
|
248
|
+
ticket === null || ticket === void 0 ? void 0 : ticket.end();
|
|
249
|
+
reject(new run_abort_1.RunAbortedError());
|
|
250
|
+
return Promise.resolve();
|
|
251
|
+
}
|
|
173
252
|
return launch()
|
|
174
|
-
.then(draw)
|
|
253
|
+
.then((open) => draw(signal ? (0, exports.closingOnAbort)(open, signal) : open))
|
|
175
254
|
.then(resolve, reject)
|
|
176
255
|
.finally(() => ticket === null || ticket === void 0 ? void 0 : ticket.end());
|
|
177
256
|
};
|
|
@@ -216,7 +295,24 @@ const noteFailure = (shot, failed) => {
|
|
|
216
295
|
return shot;
|
|
217
296
|
};
|
|
218
297
|
exports.noteFailure = noteFailure;
|
|
219
|
-
|
|
298
|
+
exports.SHOT_MAX_AGE_S = 3600;
|
|
299
|
+
/**
|
|
300
|
+
* Answers with the PNG `shot` resolves to, tagged with its content hash; an ask whose `if-none-match` names that
|
|
301
|
+
* tag gets a 304. The asker keys the URL on the content it shows (Studio: session, epoch and revision), so the
|
|
302
|
+
* browser may keep a picture for `SHOT_MAX_AGE_S` and paint it again without asking.
|
|
303
|
+
*/
|
|
304
|
+
const sendShot = (response, shot) => void shot.then((body) => {
|
|
305
|
+
var _a;
|
|
306
|
+
const tag = `"${(0, crypto_1.createHash)('sha1').update(body).digest('base64url')}"`;
|
|
307
|
+
response.setHeader('etag', tag);
|
|
308
|
+
response.setHeader('cache-control', `private, max-age=${exports.SHOT_MAX_AGE_S}`);
|
|
309
|
+
if (((_a = response.req) === null || _a === void 0 ? void 0 : _a.headers['if-none-match']) === tag) {
|
|
310
|
+
response.statusCode = 304;
|
|
311
|
+
response.end();
|
|
312
|
+
}
|
|
313
|
+
else
|
|
314
|
+
(0, exports.send)(response, { status: 200, type: 'image/png', body });
|
|
315
|
+
}, (error) => {
|
|
220
316
|
const failure = failureOf(error);
|
|
221
317
|
(0, exports.send)(response, error instanceof ShotFailedError
|
|
222
318
|
? { status: 500, type: 'image/png', body: error.png }
|
|
@@ -258,7 +354,7 @@ const createThumbnailer = (options) => {
|
|
|
258
354
|
deviceScaleFactor: exports.THUMB_PIXEL_WIDTH / width,
|
|
259
355
|
mobile: false,
|
|
260
356
|
});
|
|
261
|
-
yield
|
|
357
|
+
yield (0, exports.awaitSettled)(page);
|
|
262
358
|
const { data } = yield cdp.send('Page.captureScreenshot', { format: 'png' });
|
|
263
359
|
return Buffer.from(data, 'base64');
|
|
264
360
|
}
|
|
@@ -268,6 +364,7 @@ const createThumbnailer = (options) => {
|
|
|
268
364
|
});
|
|
269
365
|
const shotOf = (slug, search) => {
|
|
270
366
|
const cached = cache.get(search);
|
|
367
|
+
(0, timings_1.recordCache)(cached !== undefined);
|
|
271
368
|
if (cached)
|
|
272
369
|
return cached.shot;
|
|
273
370
|
const shot = drawQueue.run((browser) => draw(browser, { slug, search }));
|