@ethlete/cli 3.0.0-next.25 → 3.0.0-next.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +417 -0
- package/build-info.json +1 -0
- package/design/define-call.ts +99 -31
- package/design/define-part.ts +50 -3
- package/design/icon-sheet.ts +1 -1
- package/design/interaction-rows.ts +13 -6
- package/design/logo-sheet.ts +52 -0
- package/design/mark-part.ts +51 -1
- package/design/motion-drive.ts +215 -0
- package/design/motion-runtime.ts +14 -2
- package/design/motion-tokens.ts +177 -0
- package/design/token-sheet.ts +1 -1
- package/design/web/frame-fill.ts +4 -0
- package/design/web/frame-fit.ts +7 -0
- package/design/web/frame-scheme.ts +44 -0
- package/design/web/frame-surfaces.ts +294 -0
- package/design/web/frame.ts +162 -43
- package/design/web/surface-interactive.css +42 -0
- package/design/with-action.ts +29 -0
- package/package.json +3 -1
- package/src/index.js +9 -1
- package/src/index.js.map +1 -1
- package/src/lib/design/asset-shot.js +2 -2
- package/src/lib/design/asset-shot.js.map +1 -1
- package/src/lib/design/build-watch.d.ts +26 -0
- package/src/lib/design/build-watch.js +138 -0
- package/src/lib/design/build-watch.js.map +1 -0
- package/src/lib/design/calls-tsconfig.d.ts +2 -0
- package/src/lib/design/calls-tsconfig.js +10 -3
- package/src/lib/design/calls-tsconfig.js.map +1 -1
- package/src/lib/design/check.d.ts +1 -0
- package/src/lib/design/check.js +195 -13
- package/src/lib/design/check.js.map +1 -1
- package/src/lib/design/commit-hunks.d.ts +22 -0
- package/src/lib/design/commit-hunks.js +173 -0
- package/src/lib/design/commit-hunks.js.map +1 -0
- package/src/lib/design/contact-sheet.d.ts +9 -0
- package/src/lib/design/contact-sheet.js +38 -4
- package/src/lib/design/contact-sheet.js.map +1 -1
- package/src/lib/design/design-command.d.ts +2 -0
- package/src/lib/design/design-command.js +183 -15
- package/src/lib/design/design-command.js.map +1 -1
- package/src/lib/design/draw-ledger.d.ts +36 -0
- package/src/lib/design/draw-ledger.js +52 -0
- package/src/lib/design/draw-ledger.js.map +1 -0
- package/src/lib/design/force-interactions.d.ts +1 -1
- package/src/lib/design/force-interactions.js +4 -2
- package/src/lib/design/force-interactions.js.map +1 -1
- package/src/lib/design/inbox-command.js +9 -5
- package/src/lib/design/inbox-command.js.map +1 -1
- package/src/lib/design/mcp-command.d.ts +28 -3
- package/src/lib/design/mcp-command.js +134 -21
- package/src/lib/design/mcp-command.js.map +1 -1
- package/src/lib/design/merge-compare.d.ts +10 -2
- package/src/lib/design/merge-compare.js +63 -11
- package/src/lib/design/merge-compare.js.map +1 -1
- package/src/lib/design/motion-command.js +10 -16
- package/src/lib/design/motion-command.js.map +1 -1
- package/src/lib/design/motion-shot.js +3 -2
- package/src/lib/design/motion-shot.js.map +1 -1
- package/src/lib/design/new-call.js +19 -10
- package/src/lib/design/new-call.js.map +1 -1
- package/src/lib/design/part-marks.d.ts +3 -2
- package/src/lib/design/part-marks.js +13 -5
- package/src/lib/design/part-marks.js.map +1 -1
- package/src/lib/design/paths.d.ts +42 -0
- package/src/lib/design/paths.js +50 -1
- package/src/lib/design/paths.js.map +1 -1
- package/src/lib/design/product-command.d.ts +1 -1
- package/src/lib/design/product-command.js +12 -14
- package/src/lib/design/product-command.js.map +1 -1
- package/src/lib/design/ready-shots.d.ts +29 -3
- package/src/lib/design/ready-shots.js +105 -5
- package/src/lib/design/ready-shots.js.map +1 -1
- package/src/lib/design/render-packages.d.ts +9 -17
- package/src/lib/design/render-packages.js +25 -63
- package/src/lib/design/render-packages.js.map +1 -1
- package/src/lib/design/render-worker.js +2 -3
- package/src/lib/design/render-worker.js.map +1 -1
- package/src/lib/design/render.d.ts +2 -0
- package/src/lib/design/render.js +32 -7
- package/src/lib/design/render.js.map +1 -1
- package/src/lib/design/serve.d.ts +23 -3
- package/src/lib/design/serve.js +288 -35
- package/src/lib/design/serve.js.map +1 -1
- package/src/lib/design/server-identity.d.ts +36 -0
- package/src/lib/design/server-identity.js +68 -0
- package/src/lib/design/server-identity.js.map +1 -0
- package/src/lib/design/settle-frames.d.ts +4 -0
- package/src/lib/design/settle-frames.js +22 -0
- package/src/lib/design/settle-frames.js.map +1 -0
- package/src/lib/design/shot-command.d.ts +30 -6
- package/src/lib/design/shot-command.js +144 -56
- package/src/lib/design/shot-command.js.map +1 -1
- package/src/lib/design/shot-store.d.ts +24 -0
- package/src/lib/design/shot-store.js +120 -0
- package/src/lib/design/shot-store.js.map +1 -0
- package/src/lib/design/shot.d.ts +71 -1
- package/src/lib/design/shot.js +253 -40
- package/src/lib/design/shot.js.map +1 -1
- package/src/lib/design/sketch-command.d.ts +6 -1
- package/src/lib/design/sketch-command.js +452 -136
- package/src/lib/design/sketch-command.js.map +1 -1
- package/src/lib/design/ssr-shims.d.ts +2 -0
- package/src/lib/design/ssr-shims.js +12 -1
- package/src/lib/design/ssr-shims.js.map +1 -1
- package/src/lib/design/stale-cli-dist.d.ts +11 -0
- package/src/lib/design/stale-cli-dist.js +56 -0
- package/src/lib/design/stale-cli-dist.js.map +1 -0
- package/src/lib/design/stamp.d.ts +18 -1
- package/src/lib/design/stamp.js +53 -7
- package/src/lib/design/stamp.js.map +1 -1
- package/src/lib/design/started-by-studio.d.ts +1 -0
- package/src/lib/design/started-by-studio.js +6 -0
- package/src/lib/design/started-by-studio.js.map +1 -0
- package/src/lib/design/studio-api.d.ts +35 -4
- package/src/lib/design/studio-api.js +312 -41
- package/src/lib/design/studio-api.js.map +1 -1
- package/src/lib/design/system/accept-command.d.ts +39 -5
- package/src/lib/design/system/accept-command.js +109 -25
- package/src/lib/design/system/accept-command.js.map +1 -1
- package/src/lib/design/system/accepted-pictures.d.ts +83 -0
- package/src/lib/design/system/accepted-pictures.js +324 -0
- package/src/lib/design/system/accepted-pictures.js.map +1 -0
- package/src/lib/design/system/action-lost.d.ts +59 -0
- package/src/lib/design/system/action-lost.js +120 -0
- package/src/lib/design/system/action-lost.js.map +1 -0
- package/src/lib/design/system/action-press.d.ts +23 -0
- package/src/lib/design/system/action-press.js +76 -0
- package/src/lib/design/system/action-press.js.map +1 -0
- package/src/lib/design/system/action-undeclared.d.ts +34 -0
- package/src/lib/design/system/action-undeclared.js +81 -0
- package/src/lib/design/system/action-undeclared.js.map +1 -0
- package/src/lib/design/system/actions-command.d.ts +101 -0
- package/src/lib/design/system/actions-command.js +695 -0
- package/src/lib/design/system/actions-command.js.map +1 -0
- package/src/lib/design/system/actions.d.ts +158 -0
- package/src/lib/design/system/actions.js +295 -0
- package/src/lib/design/system/actions.js.map +1 -0
- package/src/lib/design/system/app-files.d.ts +10 -0
- package/src/lib/design/system/app-files.js +159 -0
- package/src/lib/design/system/app-files.js.map +1 -0
- package/src/lib/design/system/bespoke-controls.d.ts +30 -0
- package/src/lib/design/system/bespoke-controls.js +147 -0
- package/src/lib/design/system/bespoke-controls.js.map +1 -0
- package/src/lib/design/system/build-ready-contract.d.ts +27 -0
- package/src/lib/design/system/build-ready-contract.js +12 -0
- package/src/lib/design/system/build-ready-contract.js.map +1 -0
- package/src/lib/design/system/check-rules.d.ts +1 -0
- package/src/lib/design/system/check-rules.js +82 -0
- package/src/lib/design/system/check-rules.js.map +1 -0
- package/src/lib/design/system/check-system.d.ts +62 -3
- package/src/lib/design/system/check-system.js +527 -34
- package/src/lib/design/system/check-system.js.map +1 -1
- package/src/lib/design/system/colour.d.ts +4 -1
- package/src/lib/design/system/colour.js +54 -2
- package/src/lib/design/system/colour.js.map +1 -1
- package/src/lib/design/system/comments/comment.d.ts +4 -1
- package/src/lib/design/system/comments/comment.js +13 -4
- package/src/lib/design/system/comments/comment.js.map +1 -1
- package/src/lib/design/system/comments/inbox.js +2 -2
- package/src/lib/design/system/comments/inbox.js.map +1 -1
- package/src/lib/design/system/compare-command.d.ts +119 -0
- package/src/lib/design/system/compare-command.js +558 -0
- package/src/lib/design/system/compare-command.js.map +1 -0
- package/src/lib/design/system/complete-command.js +7 -3
- package/src/lib/design/system/complete-command.js.map +1 -1
- package/src/lib/design/system/complete.d.ts +99 -3
- package/src/lib/design/system/complete.js +358 -88
- package/src/lib/design/system/complete.js.map +1 -1
- package/src/lib/design/system/component-outputs.d.ts +20 -0
- package/src/lib/design/system/component-outputs.js +86 -0
- package/src/lib/design/system/component-outputs.js.map +1 -0
- package/src/lib/design/system/contrast-check.d.ts +6 -1
- package/src/lib/design/system/contrast-check.js +179 -13
- package/src/lib/design/system/contrast-check.js.map +1 -1
- package/src/lib/design/system/demo-backdrop.d.ts +11 -0
- package/src/lib/design/system/demo-backdrop.js +41 -0
- package/src/lib/design/system/demo-backdrop.js.map +1 -0
- package/src/lib/design/system/design-hash.d.ts +31 -0
- package/src/lib/design/system/design-hash.js +73 -0
- package/src/lib/design/system/design-hash.js.map +1 -0
- package/src/lib/design/system/disabled-interaction.d.ts +8 -0
- package/src/lib/design/system/disabled-interaction.js +37 -0
- package/src/lib/design/system/disabled-interaction.js.map +1 -0
- package/src/lib/design/system/dom-command.d.ts +36 -0
- package/src/lib/design/system/dom-command.js +175 -0
- package/src/lib/design/system/dom-command.js.map +1 -0
- package/src/lib/design/system/drawn-open-points.d.ts +38 -0
- package/src/lib/design/system/drawn-open-points.js +94 -0
- package/src/lib/design/system/drawn-open-points.js.map +1 -0
- package/src/lib/design/system/dropped-props.d.ts +25 -0
- package/src/lib/design/system/dropped-props.js +159 -0
- package/src/lib/design/system/dropped-props.js.map +1 -0
- package/src/lib/design/system/embedded-actions.d.ts +21 -0
- package/src/lib/design/system/embedded-actions.js +37 -0
- package/src/lib/design/system/embedded-actions.js.map +1 -0
- package/src/lib/design/system/exceptions.js +2 -1
- package/src/lib/design/system/exceptions.js.map +1 -1
- package/src/lib/design/system/flows/flow.js +2 -1
- package/src/lib/design/system/flows/flow.js.map +1 -1
- package/src/lib/design/system/frozen-animations.d.ts +13 -0
- package/src/lib/design/system/frozen-animations.js +51 -0
- package/src/lib/design/system/frozen-animations.js.map +1 -0
- package/src/lib/design/system/go-batch.d.ts +24 -0
- package/src/lib/design/system/go-batch.js +110 -0
- package/src/lib/design/system/go-batch.js.map +1 -0
- package/src/lib/design/system/go-command.d.ts +4 -0
- package/src/lib/design/system/go-command.js +64 -0
- package/src/lib/design/system/go-command.js.map +1 -0
- package/src/lib/design/system/go-guard.d.ts +26 -0
- package/src/lib/design/system/go-guard.js +70 -0
- package/src/lib/design/system/go-guard.js.map +1 -0
- package/src/lib/design/system/go-step.d.ts +13 -0
- package/src/lib/design/system/go-step.js +84 -0
- package/src/lib/design/system/go-step.js.map +1 -0
- package/src/lib/design/system/handoff.js +2 -1
- package/src/lib/design/system/handoff.js.map +1 -1
- package/src/lib/design/system/harness-build-cache.d.ts +35 -0
- package/src/lib/design/system/harness-build-cache.js +175 -0
- package/src/lib/design/system/harness-build-cache.js.map +1 -0
- package/src/lib/design/system/harness-command.d.ts +7 -0
- package/src/lib/design/system/harness-command.js +51 -0
- package/src/lib/design/system/harness-command.js.map +1 -0
- package/src/lib/design/system/harness-config.d.ts +9 -0
- package/src/lib/design/system/harness-config.js +65 -0
- package/src/lib/design/system/harness-config.js.map +1 -0
- package/src/lib/design/system/harness-map.d.ts +44 -0
- package/src/lib/design/system/harness-map.js +126 -0
- package/src/lib/design/system/harness-map.js.map +1 -0
- package/src/lib/design/system/harness-samples.d.ts +20 -0
- package/src/lib/design/system/harness-samples.js +92 -0
- package/src/lib/design/system/harness-samples.js.map +1 -0
- package/src/lib/design/system/harness-server.d.ts +40 -0
- package/src/lib/design/system/harness-server.js +296 -0
- package/src/lib/design/system/harness-server.js.map +1 -0
- package/src/lib/design/system/imports.js +14 -1
- package/src/lib/design/system/imports.js.map +1 -1
- package/src/lib/design/system/in-order-at-once.d.ts +6 -0
- package/src/lib/design/system/in-order-at-once.js +28 -0
- package/src/lib/design/system/in-order-at-once.js.map +1 -0
- package/src/lib/design/system/inventory-approval.js +2 -1
- package/src/lib/design/system/inventory-approval.js.map +1 -1
- package/src/lib/design/system/inventory.d.ts +13 -4
- package/src/lib/design/system/inventory.js +36 -7
- package/src/lib/design/system/inventory.js.map +1 -1
- package/src/lib/design/system/list-system.d.ts +8 -1
- package/src/lib/design/system/list-system.js +13 -3
- package/src/lib/design/system/list-system.js.map +1 -1
- package/src/lib/design/system/live-actions.d.ts +121 -0
- package/src/lib/design/system/live-actions.js +665 -0
- package/src/lib/design/system/live-actions.js.map +1 -0
- package/src/lib/design/system/live-compare.d.ts +136 -0
- package/src/lib/design/system/live-compare.js +441 -0
- package/src/lib/design/system/live-compare.js.map +1 -0
- package/src/lib/design/system/live-uncovered.d.ts +40 -0
- package/src/lib/design/system/live-uncovered.js +123 -0
- package/src/lib/design/system/live-uncovered.js.map +1 -0
- package/src/lib/design/system/nested-scroll.d.ts +7 -0
- package/src/lib/design/system/nested-scroll.js +25 -0
- package/src/lib/design/system/nested-scroll.js.map +1 -0
- package/src/lib/design/system/notes/note.js +2 -1
- package/src/lib/design/system/notes/note.js.map +1 -1
- package/src/lib/design/system/occluded.d.ts +13 -0
- package/src/lib/design/system/occluded.js +111 -0
- package/src/lib/design/system/occluded.js.map +1 -0
- package/src/lib/design/system/open-points.d.ts +119 -0
- package/src/lib/design/system/open-points.js +185 -0
- package/src/lib/design/system/open-points.js.map +1 -0
- package/src/lib/design/system/part-build-ready.d.ts +39 -0
- package/src/lib/design/system/part-build-ready.js +107 -0
- package/src/lib/design/system/part-build-ready.js.map +1 -0
- package/src/lib/design/system/part-command.js +2 -9
- package/src/lib/design/system/part-command.js.map +1 -1
- package/src/lib/design/system/part-compare.d.ts +123 -0
- package/src/lib/design/system/part-compare.js +396 -0
- package/src/lib/design/system/part-compare.js.map +1 -0
- package/src/lib/design/system/part-go.d.ts +70 -0
- package/src/lib/design/system/part-go.js +94 -0
- package/src/lib/design/system/part-go.js.map +1 -0
- package/src/lib/design/system/part-ready.d.ts +90 -0
- package/src/lib/design/system/part-ready.js +172 -0
- package/src/lib/design/system/part-ready.js.map +1 -0
- package/src/lib/design/system/part-task.d.ts +147 -0
- package/src/lib/design/system/part-task.js +285 -0
- package/src/lib/design/system/part-task.js.map +1 -0
- package/src/lib/design/system/pointer-focus.d.ts +81 -0
- package/src/lib/design/system/pointer-focus.js +152 -0
- package/src/lib/design/system/pointer-focus.js.map +1 -0
- package/src/lib/design/system/prettier.d.ts +10 -0
- package/src/lib/design/system/prettier.js +36 -0
- package/src/lib/design/system/prettier.js.map +1 -0
- package/src/lib/design/system/reach.d.ts +12 -0
- package/src/lib/design/system/reach.js +186 -0
- package/src/lib/design/system/reach.js.map +1 -0
- package/src/lib/design/system/reachable-controls.d.ts +6 -0
- package/src/lib/design/system/reachable-controls.js +19 -0
- package/src/lib/design/system/reachable-controls.js.map +1 -0
- package/src/lib/design/system/reachable-files.d.ts +14 -0
- package/src/lib/design/system/reachable-files.js +101 -0
- package/src/lib/design/system/reachable-files.js.map +1 -0
- package/src/lib/design/system/reached-state.d.ts +23 -0
- package/src/lib/design/system/reached-state.js +53 -0
- package/src/lib/design/system/reached-state.js.map +1 -0
- package/src/lib/design/system/read-open-points.d.ts +33 -0
- package/src/lib/design/system/read-open-points.js +110 -0
- package/src/lib/design/system/read-open-points.js.map +1 -0
- package/src/lib/design/system/ready-command.d.ts +11 -0
- package/src/lib/design/system/ready-command.js +82 -0
- package/src/lib/design/system/ready-command.js.map +1 -0
- package/src/lib/design/system/render-check.d.ts +52 -0
- package/src/lib/design/system/render-check.js +479 -60
- package/src/lib/design/system/render-check.js.map +1 -1
- package/src/lib/design/system/resolve-product.d.ts +2 -1
- package/src/lib/design/system/resolve-product.js +25 -3
- package/src/lib/design/system/resolve-product.js.map +1 -1
- package/src/lib/design/system/rules/app-spec.d.ts +30 -0
- package/src/lib/design/system/rules/app-spec.js +87 -0
- package/src/lib/design/system/rules/app-spec.js.map +1 -0
- package/src/lib/design/system/rules/canonical-class.d.ts +2 -0
- package/src/lib/design/system/rules/canonical-class.js +36 -110
- package/src/lib/design/system/rules/canonical-class.js.map +1 -1
- package/src/lib/design/system/rules/capability-place.d.ts +44 -0
- package/src/lib/design/system/rules/capability-place.js +116 -0
- package/src/lib/design/system/rules/capability-place.js.map +1 -0
- package/src/lib/design/system/rules/denied-class.d.ts +9 -0
- package/src/lib/design/system/rules/denied-class.js +121 -0
- package/src/lib/design/system/rules/denied-class.js.map +1 -0
- package/src/lib/design/system/rules/exemptions.d.ts +18 -0
- package/src/lib/design/system/rules/exemptions.js +18 -0
- package/src/lib/design/system/rules/exemptions.js.map +1 -0
- package/src/lib/design/system/rules/flow.js +1 -1
- package/src/lib/design/system/rules/flow.js.map +1 -1
- package/src/lib/design/system/rules/glued-interpolation.d.ts +8 -0
- package/src/lib/design/system/rules/glued-interpolation.js +61 -0
- package/src/lib/design/system/rules/glued-interpolation.js.map +1 -0
- package/src/lib/design/system/rules/hard-coded-colour.js +2 -1
- package/src/lib/design/system/rules/hard-coded-colour.js.map +1 -1
- package/src/lib/design/system/rules/implemented-components.d.ts +22 -0
- package/src/lib/design/system/rules/implemented-components.js +45 -0
- package/src/lib/design/system/rules/implemented-components.js.map +1 -0
- package/src/lib/design/system/rules/implements.d.ts +8 -0
- package/src/lib/design/system/rules/implements.js +48 -0
- package/src/lib/design/system/rules/implements.js.map +1 -0
- package/src/lib/design/system/rules/inline-svg.js +4 -1
- package/src/lib/design/system/rules/inline-svg.js.map +1 -1
- package/src/lib/design/system/rules/inline-ui-in-page-open.d.ts +13 -0
- package/src/lib/design/system/rules/inline-ui-in-page-open.js +5 -0
- package/src/lib/design/system/rules/inline-ui-in-page-open.js.map +1 -0
- package/src/lib/design/system/rules/inline-ui-in-page.d.ts +18 -0
- package/src/lib/design/system/rules/inline-ui-in-page.js +123 -0
- package/src/lib/design/system/rules/inline-ui-in-page.js.map +1 -0
- package/src/lib/design/system/rules/inline-ui.d.ts +16 -0
- package/src/lib/design/system/rules/inline-ui.js +100 -0
- package/src/lib/design/system/rules/inline-ui.js.map +1 -0
- package/src/lib/design/system/rules/motion.d.ts +2 -0
- package/src/lib/design/system/rules/motion.js +35 -2
- package/src/lib/design/system/rules/motion.js.map +1 -1
- package/src/lib/design/system/rules/native-title.d.ts +7 -0
- package/src/lib/design/system/rules/native-title.js +64 -0
- package/src/lib/design/system/rules/native-title.js.map +1 -0
- package/src/lib/design/system/rules/option-values.d.ts +15 -0
- package/src/lib/design/system/rules/option-values.js +145 -0
- package/src/lib/design/system/rules/option-values.js.map +1 -0
- package/src/lib/design/system/rules/orphan-endpoint-known.d.ts +12 -0
- package/src/lib/design/system/rules/orphan-endpoint-known.js +20 -0
- package/src/lib/design/system/rules/orphan-endpoint-known.js.map +1 -0
- package/src/lib/design/system/rules/orphan-endpoint.d.ts +23 -0
- package/src/lib/design/system/rules/orphan-endpoint.js +166 -0
- package/src/lib/design/system/rules/orphan-endpoint.js.map +1 -0
- package/src/lib/design/system/rules/part-rewrite.d.ts +13 -0
- package/src/lib/design/system/rules/part-rewrite.js +125 -0
- package/src/lib/design/system/rules/part-rewrite.js.map +1 -0
- package/src/lib/design/system/rules/sample-default-known.d.ts +5 -0
- package/src/lib/design/system/rules/sample-default-known.js +17 -0
- package/src/lib/design/system/rules/sample-default-known.js.map +1 -0
- package/src/lib/design/system/rules/sample-default.d.ts +22 -0
- package/src/lib/design/system/rules/sample-default.js +92 -0
- package/src/lib/design/system/rules/sample-default.js.map +1 -0
- package/src/lib/design/system/rules/stale-replace.js +45 -3
- package/src/lib/design/system/rules/stale-replace.js.map +1 -1
- package/src/lib/design/system/rules/state-in-component.d.ts +16 -0
- package/src/lib/design/system/rules/state-in-component.js +101 -0
- package/src/lib/design/system/rules/state-in-component.js.map +1 -0
- package/src/lib/design/system/rules/tailwind-classes.d.ts +51 -0
- package/src/lib/design/system/rules/tailwind-classes.js +232 -0
- package/src/lib/design/system/rules/tailwind-classes.js.map +1 -0
- package/src/lib/design/system/rules/top-level-await.d.ts +9 -0
- package/src/lib/design/system/rules/top-level-await.js +62 -0
- package/src/lib/design/system/rules/top-level-await.js.map +1 -0
- package/src/lib/design/system/rules/unbound-input-known.d.ts +5 -0
- package/src/lib/design/system/rules/unbound-input-known.js +47 -0
- package/src/lib/design/system/rules/unbound-input-known.js.map +1 -0
- package/src/lib/design/system/rules/unbound-input.d.ts +22 -0
- package/src/lib/design/system/rules/unbound-input.js +61 -0
- package/src/lib/design/system/rules/unbound-input.js.map +1 -0
- package/src/lib/design/system/rules/uncovered-region.d.ts +13 -0
- package/src/lib/design/system/rules/uncovered-region.js +36 -0
- package/src/lib/design/system/rules/uncovered-region.js.map +1 -0
- package/src/lib/design/system/rules/undefined-class.d.ts +9 -0
- package/src/lib/design/system/rules/undefined-class.js +32 -0
- package/src/lib/design/system/rules/undefined-class.js.map +1 -0
- package/src/lib/design/system/rules/undefined-token.d.ts +1 -1
- package/src/lib/design/system/rules/undefined-token.js +7 -61
- package/src/lib/design/system/rules/undefined-token.js.map +1 -1
- package/src/lib/design/system/rules/utility-css.d.ts +2 -1
- package/src/lib/design/system/rules/utility-css.js +29 -14
- package/src/lib/design/system/rules/utility-css.js.map +1 -1
- package/src/lib/design/system/rules/view-coverage.d.ts +8 -0
- package/src/lib/design/system/rules/view-coverage.js +51 -0
- package/src/lib/design/system/rules/view-coverage.js.map +1 -0
- package/src/lib/design/system/rules/visible-change.d.ts +20 -0
- package/src/lib/design/system/rules/visible-change.js +48 -0
- package/src/lib/design/system/rules/visible-change.js.map +1 -0
- package/src/lib/design/system/sdk-errors.d.ts +14 -0
- package/src/lib/design/system/sdk-errors.js +38 -0
- package/src/lib/design/system/sdk-errors.js.map +1 -0
- package/src/lib/design/system/see-through.d.ts +12 -0
- package/src/lib/design/system/see-through.js +112 -0
- package/src/lib/design/system/see-through.js.map +1 -0
- package/src/lib/design/system/settled-panes.d.ts +18 -0
- package/src/lib/design/system/settled-panes.js +70 -0
- package/src/lib/design/system/settled-panes.js.map +1 -0
- package/src/lib/design/system/sketch/after-merge.d.ts +11 -0
- package/src/lib/design/system/sketch/after-merge.js +51 -0
- package/src/lib/design/system/sketch/after-merge.js.map +1 -0
- package/src/lib/design/system/sketch/aktuell-placeholders.d.ts +30 -0
- package/src/lib/design/system/sketch/aktuell-placeholders.js +87 -0
- package/src/lib/design/system/sketch/aktuell-placeholders.js.map +1 -0
- package/src/lib/design/system/sketch/baseline.d.ts +29 -2
- package/src/lib/design/system/sketch/baseline.js +33 -9
- package/src/lib/design/system/sketch/baseline.js.map +1 -1
- package/src/lib/design/system/sketch/check-sketches.d.ts +11 -0
- package/src/lib/design/system/sketch/check-sketches.js +54 -6
- package/src/lib/design/system/sketch/check-sketches.js.map +1 -1
- package/src/lib/design/system/sketch/cli-args.d.ts +12 -2
- package/src/lib/design/system/sketch/cli-args.js +18 -3
- package/src/lib/design/system/sketch/cli-args.js.map +1 -1
- package/src/lib/design/system/sketch/edit-sketch.d.ts +21 -0
- package/src/lib/design/system/sketch/edit-sketch.js +117 -0
- package/src/lib/design/system/sketch/edit-sketch.js.map +1 -0
- package/src/lib/design/system/sketch/frame-budget.d.ts +24 -0
- package/src/lib/design/system/sketch/frame-budget.js +23 -0
- package/src/lib/design/system/sketch/frame-budget.js.map +1 -0
- package/src/lib/design/system/sketch/identical-renders.d.ts +31 -0
- package/src/lib/design/system/sketch/identical-renders.js +137 -0
- package/src/lib/design/system/sketch/identical-renders.js.map +1 -0
- package/src/lib/design/system/sketch/merge-shared.d.ts +2 -0
- package/src/lib/design/system/sketch/merge-shared.js +7 -10
- package/src/lib/design/system/sketch/merge-shared.js.map +1 -1
- package/src/lib/design/system/sketch/merge-step.d.ts +35 -0
- package/src/lib/design/system/sketch/merge-step.js +98 -0
- package/src/lib/design/system/sketch/merge-step.js.map +1 -0
- package/src/lib/design/system/sketch/merge.d.ts +10 -3
- package/src/lib/design/system/sketch/merge.js +122 -17
- package/src/lib/design/system/sketch/merge.js.map +1 -1
- package/src/lib/design/system/sketch/merged-layout.d.ts +17 -0
- package/src/lib/design/system/sketch/merged-layout.js +57 -0
- package/src/lib/design/system/sketch/merged-layout.js.map +1 -0
- package/src/lib/design/system/sketch/merged-parts.d.ts +41 -11
- package/src/lib/design/system/sketch/merged-parts.js +113 -50
- package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
- package/src/lib/design/system/sketch/no-visible-change.d.ts +10 -0
- package/src/lib/design/system/sketch/no-visible-change.js +16 -6
- package/src/lib/design/system/sketch/no-visible-change.js.map +1 -1
- package/src/lib/design/system/sketch/part-definition.d.ts +56 -0
- package/src/lib/design/system/sketch/part-definition.js +129 -13
- package/src/lib/design/system/sketch/part-definition.js.map +1 -1
- package/src/lib/design/system/sketch/rebase-port.d.ts +24 -0
- package/src/lib/design/system/sketch/rebase-port.js +170 -0
- package/src/lib/design/system/sketch/rebase-port.js.map +1 -0
- package/src/lib/design/system/sketch/sample-mark-drift.d.ts +33 -0
- package/src/lib/design/system/sketch/sample-mark-drift.js +88 -0
- package/src/lib/design/system/sketch/sample-mark-drift.js.map +1 -0
- package/src/lib/design/system/sketch/sketch-check-worker.d.ts +1 -0
- package/src/lib/design/system/sketch/sketch-check-worker.js +27 -0
- package/src/lib/design/system/sketch/sketch-check-worker.js.map +1 -0
- package/src/lib/design/system/sketch/sketch-checker.d.ts +27 -0
- package/src/lib/design/system/sketch/sketch-checker.js +99 -0
- package/src/lib/design/system/sketch/sketch-checker.js.map +1 -0
- package/src/lib/design/system/sketch/sketch.d.ts +78 -2
- package/src/lib/design/system/sketch/sketch.js +247 -54
- package/src/lib/design/system/sketch/sketch.js.map +1 -1
- package/src/lib/design/system/sketch/stale-base.d.ts +22 -0
- package/src/lib/design/system/sketch/stale-base.js +56 -0
- package/src/lib/design/system/sketch/stale-base.js.map +1 -0
- package/src/lib/design/system/sketch/unchanged-states.d.ts +36 -1
- package/src/lib/design/system/sketch/unchanged-states.js +60 -17
- package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
- package/src/lib/design/system/sketch/unused-closure.js +26 -4
- package/src/lib/design/system/sketch/unused-closure.js.map +1 -1
- package/src/lib/design/system/sketch/unused-files.d.ts +1 -1
- package/src/lib/design/system/sketch/unused-files.js +6 -3
- package/src/lib/design/system/sketch/unused-files.js.map +1 -1
- package/src/lib/design/system/sketch/viewed-shots.d.ts +24 -0
- package/src/lib/design/system/sketch/viewed-shots.js +61 -0
- package/src/lib/design/system/sketch/viewed-shots.js.map +1 -0
- package/src/lib/design/system/slow-checks.d.ts +40 -0
- package/src/lib/design/system/slow-checks.js +197 -0
- package/src/lib/design/system/slow-checks.js.map +1 -0
- package/src/lib/design/system/slow-run.d.ts +57 -0
- package/src/lib/design/system/slow-run.js +253 -0
- package/src/lib/design/system/slow-run.js.map +1 -0
- package/src/lib/design/system/stale-design-mocks.d.ts +20 -0
- package/src/lib/design/system/stale-design-mocks.js +59 -0
- package/src/lib/design/system/stale-design-mocks.js.map +1 -0
- package/src/lib/design/system/stale-dist.d.ts +25 -0
- package/src/lib/design/system/stale-dist.js +91 -0
- package/src/lib/design/system/stale-dist.js.map +1 -0
- package/src/lib/design/system/stale-parts.d.ts +30 -0
- package/src/lib/design/system/stale-parts.js +106 -0
- package/src/lib/design/system/stale-parts.js.map +1 -0
- package/src/lib/design/system/surface-nesting.d.ts +11 -0
- package/src/lib/design/system/surface-nesting.js +86 -0
- package/src/lib/design/system/surface-nesting.js.map +1 -0
- package/src/lib/design/system/system-command.js +8 -6
- package/src/lib/design/system/system-command.js.map +1 -1
- package/src/lib/design/system/system-modules.d.ts +16 -1
- package/src/lib/design/system/system-modules.js +18 -2
- package/src/lib/design/system/system-modules.js.map +1 -1
- package/src/lib/design/system/system-tsconfig.js +2 -2
- package/src/lib/design/system/system-tsconfig.js.map +1 -1
- package/src/lib/design/system/task-command.d.ts +51 -0
- package/src/lib/design/system/task-command.js +233 -0
- package/src/lib/design/system/task-command.js.map +1 -0
- package/src/lib/design/system/theming-text.d.ts +2 -0
- package/src/lib/design/system/theming-text.js +6 -0
- package/src/lib/design/system/theming-text.js.map +1 -0
- package/src/lib/design/system/tom-confirm.d.ts +40 -0
- package/src/lib/design/system/tom-confirm.js +55 -0
- package/src/lib/design/system/tom-confirm.js.map +1 -0
- package/src/lib/design/system/touched-parts.d.ts +16 -0
- package/src/lib/design/system/touched-parts.js +122 -0
- package/src/lib/design/system/touched-parts.js.map +1 -0
- package/src/lib/design/system/ts-source.d.ts +5 -0
- package/src/lib/design/system/ts-source.js +35 -4
- package/src/lib/design/system/ts-source.js.map +1 -1
- package/src/lib/design/system/unchanged-rows.d.ts +15 -0
- package/src/lib/design/system/unchanged-rows.js +134 -0
- package/src/lib/design/system/unchanged-rows.js.map +1 -0
- package/src/lib/design/system/uncommitted-decisions.d.ts +6 -0
- package/src/lib/design/system/uncommitted-decisions.js +38 -0
- package/src/lib/design/system/uncommitted-decisions.js.map +1 -0
- package/src/lib/design/system/uncovered-regions.d.ts +61 -0
- package/src/lib/design/system/uncovered-regions.js +171 -0
- package/src/lib/design/system/uncovered-regions.js.map +1 -0
- package/src/lib/design/system/unused-base-parts.d.ts +7 -0
- package/src/lib/design/system/unused-base-parts.js +76 -0
- package/src/lib/design/system/unused-base-parts.js.map +1 -0
- package/src/lib/design/system/visible-change-command.d.ts +48 -0
- package/src/lib/design/system/visible-change-command.js +308 -0
- package/src/lib/design/system/visible-change-command.js.map +1 -0
- package/src/lib/design/system/visible-change-parts.d.ts +28 -0
- package/src/lib/design/system/visible-change-parts.js +96 -0
- package/src/lib/design/system/visible-change-parts.js.map +1 -0
- package/src/lib/design/system/visible-change.d.ts +82 -0
- package/src/lib/design/system/visible-change.js +149 -0
- package/src/lib/design/system/visible-change.js.map +1 -0
- package/src/lib/design/thumb.d.ts +50 -6
- package/src/lib/design/thumb.js +154 -54
- package/src/lib/design/thumb.js.map +1 -1
- package/src/lib/design/typecheck.d.ts +1 -1
- package/src/lib/design/typecheck.js +3 -3
- package/src/lib/design/typecheck.js.map +1 -1
- package/src/lib/design/unstable-cells.d.ts +23 -0
- package/src/lib/design/unstable-cells.js +40 -0
- package/src/lib/design/unstable-cells.js.map +1 -0
- package/src/lib/design/variant-diff.js +1 -1
- package/src/lib/design/variant-diff.js.map +1 -1
- package/src/lib/design/wait.d.ts +15 -0
- package/src/lib/design/wait.js +30 -0
- package/src/lib/design/wait.js.map +1 -0
- package/src/lib/json-file.d.ts +11 -0
- package/src/lib/json-file.js +21 -0
- package/src/lib/json-file.js.map +1 -0
- package/src/lib/source-hash.d.ts +7 -0
- package/src/lib/source-hash.js +62 -0
- package/src/lib/source-hash.js.map +1 -0
- package/src/lib/update/agent-setup.js +2 -1
- package/src/lib/update/agent-setup.js.map +1 -1
- package/src/lib/update/migration-manifest.d.ts +12 -0
- package/src/lib/update/migration-manifest.js +13 -0
- package/src/lib/update/migration-manifest.js.map +1 -1
- package/src/lib/update/migration-record.js +2 -1
- package/src/lib/update/migration-record.js.map +1 -1
- package/src/lib/update/pending.js +2 -1
- package/src/lib/update/pending.js.map +1 -1
- package/src/lib/update/run-migrations.d.ts +3 -2
- package/src/lib/update/run-migrations.js +38 -5
- package/src/lib/update/run-migrations.js.map +1 -1
- package/src/lib/update/tasks.js +2 -1
- package/src/lib/update/tasks.js.map +1 -1
package/src/lib/design/serve.js
CHANGED
|
@@ -9,10 +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
|
+
const crypto_1 = require("crypto");
|
|
13
14
|
const fs_1 = require("fs");
|
|
14
15
|
const net_1 = require("net");
|
|
16
|
+
const promises_1 = require("timers/promises");
|
|
15
17
|
const path_1 = require("path");
|
|
18
|
+
const rxjs_1 = require("rxjs");
|
|
16
19
|
const calls_1 = require("./calls");
|
|
17
20
|
const calls_tsconfig_1 = require("./calls-tsconfig");
|
|
18
21
|
const legacy_1 = require("./legacy");
|
|
@@ -25,8 +28,12 @@ const render_packages_1 = require("./render-packages");
|
|
|
25
28
|
const part_marks_1 = require("./part-marks");
|
|
26
29
|
const generated_stylesheets_1 = require("./generated-stylesheets");
|
|
27
30
|
const sketch_stylesheets_1 = require("./sketch-stylesheets");
|
|
31
|
+
const draw_ledger_1 = require("./draw-ledger");
|
|
28
32
|
const shot_1 = require("./shot");
|
|
33
|
+
const shot_store_1 = require("./shot-store");
|
|
34
|
+
const imports_1 = require("./system/imports");
|
|
29
35
|
const changed_parts_1 = require("./changed-parts");
|
|
36
|
+
const server_identity_1 = require("./server-identity");
|
|
30
37
|
const stamp_1 = require("./stamp");
|
|
31
38
|
const list_system_1 = require("./system/list-system");
|
|
32
39
|
const resolve_product_1 = require("./system/resolve-product");
|
|
@@ -34,12 +41,16 @@ const system_modules_1 = require("./system/system-modules");
|
|
|
34
41
|
const kit_1 = require("./system/kit");
|
|
35
42
|
const system_tsconfig_1 = require("./system/system-tsconfig");
|
|
36
43
|
const sketch_1 = require("./system/sketch/sketch");
|
|
44
|
+
const sketch_checker_1 = require("./system/sketch/sketch-checker");
|
|
37
45
|
const unchanged_states_1 = require("./system/sketch/unchanged-states");
|
|
38
46
|
const inventory_1 = require("./system/inventory");
|
|
39
47
|
const thumb_1 = require("./thumb");
|
|
40
48
|
const motion_endpoint_1 = require("./motion-endpoint");
|
|
41
49
|
const paths_1 = require("./paths");
|
|
50
|
+
const slow_run_1 = require("./system/slow-run");
|
|
51
|
+
const build_watch_1 = require("./build-watch");
|
|
42
52
|
const VIRTUAL = 'virtual:design-explore';
|
|
53
|
+
const REBUILD_SETTLE_MS = 300;
|
|
43
54
|
/** What a slug says about which project drew it: its first segment. */
|
|
44
55
|
const projectOf = (slug) => { var _a; return (_a = slug.split('/')[0]) !== null && _a !== void 0 ? _a : ''; };
|
|
45
56
|
const registry = (target) => {
|
|
@@ -182,6 +193,33 @@ const sendJson = (response, answer) => {
|
|
|
182
193
|
response.setHeader('access-control-allow-origin', '*');
|
|
183
194
|
(0, thumb_1.send)(response, { status: answer.status, type: 'application/json', body: JSON.stringify(answer.body) });
|
|
184
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;
|
|
185
223
|
const isCommentFile = (file) => file.endsWith('.json') && (0, path_1.basename)((0, path_1.dirname)(file)) === 'comments';
|
|
186
224
|
const isNoteFile = (file) => file.endsWith('.json') && (0, path_1.basename)((0, path_1.dirname)(file)) === 'notes';
|
|
187
225
|
const isFlowFile = (file) => file.endsWith('.json') && (0, path_1.basename)((0, path_1.dirname)(file)) === 'flows';
|
|
@@ -190,6 +228,8 @@ const isSketchFile = (designRoot, file) => {
|
|
|
190
228
|
const [product, folder, ...inside] = (0, path_1.relative)(designRoot, (0, path_1.resolve)(file)).split(path_1.sep);
|
|
191
229
|
return !!product && product !== '..' && folder === 'sketches' && inside.length > 0;
|
|
192
230
|
};
|
|
231
|
+
// Workaround: WebKit drops an event stream that sends nothing for 60 seconds.
|
|
232
|
+
exports.DESIGN_EVENTS_HEARTBEAT_MS = 20000;
|
|
193
233
|
/**
|
|
194
234
|
* A server-sent event stream for Studio: `comments`, `notes`, `flows`, `calls` and `sketches` when a file of that
|
|
195
235
|
* kind changed, and `parts` with the parts a design system change redraws and the revision it gave them. A `parts`
|
|
@@ -197,6 +237,11 @@ const isSketchFile = (designRoot, file) => {
|
|
|
197
237
|
*/
|
|
198
238
|
const createDesignEvents = () => {
|
|
199
239
|
const listeners = new Set();
|
|
240
|
+
let heartbeat;
|
|
241
|
+
const beat = () => {
|
|
242
|
+
for (const response of listeners)
|
|
243
|
+
response.write(': heartbeat\n\n');
|
|
244
|
+
};
|
|
200
245
|
return {
|
|
201
246
|
middleware: (request, response) => {
|
|
202
247
|
response.writeHead(200, {
|
|
@@ -207,13 +252,22 @@ const createDesignEvents = () => {
|
|
|
207
252
|
});
|
|
208
253
|
response.write(': open\n\n');
|
|
209
254
|
listeners.add(response);
|
|
210
|
-
|
|
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
|
+
});
|
|
211
263
|
},
|
|
212
264
|
signal: (event, data = {}) => {
|
|
213
265
|
for (const response of listeners)
|
|
214
266
|
response.write(`event: ${event}\ndata: ${JSON.stringify(data)}\n\n`);
|
|
215
267
|
},
|
|
216
268
|
close: () => {
|
|
269
|
+
heartbeat === null || heartbeat === void 0 ? void 0 : heartbeat.unsubscribe();
|
|
270
|
+
heartbeat = undefined;
|
|
217
271
|
for (const response of listeners)
|
|
218
272
|
response.end();
|
|
219
273
|
listeners.clear();
|
|
@@ -230,8 +284,76 @@ const withAssetUrls = (system) => {
|
|
|
230
284
|
const marks = (0, part_marks_1.partMarksTransform)(system);
|
|
231
285
|
return (code, id) => { var _a; return (_a = system.withAssetUrls(code, id)) !== null && _a !== void 0 ? _a : marks(code, id); };
|
|
232
286
|
};
|
|
233
|
-
const
|
|
287
|
+
const filesUnder = (dir) => (0, fs_1.existsSync)(dir)
|
|
288
|
+
? (0, fs_1.readdirSync)(dir, { recursive: true, withFileTypes: true })
|
|
289
|
+
.filter((entry) => entry.isFile())
|
|
290
|
+
.map((entry) => (0, path_1.relative)(dir, (0, path_1.join)(entry.parentPath, entry.name)))
|
|
291
|
+
.sort()
|
|
292
|
+
: [];
|
|
293
|
+
const shotStoreOf = (options) => {
|
|
294
|
+
const { target, config, system, stylesheetImports, dir, salt, moduleById } = options;
|
|
295
|
+
const drawnSystemsOf = (address) => [
|
|
296
|
+
...new Map([address.sketch, address.props].map((sketch) => [JSON.stringify(sketch !== null && sketch !== void 0 ? sketch : null), sketch !== null && sketch !== void 0 ? sketch : null])).values(),
|
|
297
|
+
];
|
|
298
|
+
return (0, shot_store_1.createShotStore)({
|
|
299
|
+
dir,
|
|
300
|
+
salt,
|
|
301
|
+
inputsOf: (address) => {
|
|
302
|
+
var _a, _b;
|
|
303
|
+
const { product, part } = address;
|
|
304
|
+
const entry = (_a = config.products) === null || _a === void 0 ? void 0 : _a[product];
|
|
305
|
+
const sketches = drawnSystemsOf(address);
|
|
306
|
+
const roots = sketches.map((sketch) => {
|
|
307
|
+
var _a;
|
|
308
|
+
const file = (_a = system.partOf({ product, part, sketch })) === null || _a === void 0 ? void 0 : _a.file;
|
|
309
|
+
return file ? moduleById((0, system_modules_1.productModuleIdOf)({ file, product, sketch })) : undefined;
|
|
310
|
+
});
|
|
311
|
+
if (!entry || roots.some((root) => !root))
|
|
312
|
+
return null;
|
|
313
|
+
const styles = ((_b = entry.styles) !== null && _b !== void 0 ? _b : []).flatMap((style) => [null, ...sketches].flatMap((sketch) => { var _a; return (_a = moduleById((0, system_modules_1.productModuleIdOf)({ file: (0, path_1.resolve)(target, style), product, sketch }))) !== null && _a !== void 0 ? _a : []; }));
|
|
314
|
+
const read = sketches.flatMap((sketch) => {
|
|
315
|
+
var _a;
|
|
316
|
+
return [
|
|
317
|
+
...system.tokenStylesheetsOf({ product, sketch }),
|
|
318
|
+
...system.replacedStylesheetsOf({ product, sketch }).values(),
|
|
319
|
+
...((_a = entry.generated) !== null && _a !== void 0 ? _a : []).flatMap((generated) => { var _a, _b; return (_b = (_a = system.partOf({ product, part: generated.part, sketch })) === null || _a === void 0 ? void 0 : _a.css) !== null && _b !== void 0 ? _b : []; }),
|
|
320
|
+
];
|
|
321
|
+
});
|
|
322
|
+
// The snapshot folder is named after the server's pid, so its files are gone after a restart; the salt's build stamp covers them.
|
|
323
|
+
const snapshot = (0, path_1.dirname)((0, paths_1.assetRoot)());
|
|
324
|
+
return [
|
|
325
|
+
...(0, shot_1.dependencyFilesOf)([...roots.flatMap((root) => root !== null && root !== void 0 ? root : []), ...styles], stylesheetImports),
|
|
326
|
+
...read,
|
|
327
|
+
(0, paths_1.configPathOf)(target),
|
|
328
|
+
(0, path_1.resolve)(target, 'tsconfig.base.json'),
|
|
329
|
+
...(entry.head ? [(0, path_1.resolve)(target, entry.head)] : []),
|
|
330
|
+
].filter((file) => !isInside(snapshot, (0, path_1.resolve)(file)));
|
|
331
|
+
},
|
|
332
|
+
scopeOf: (address) => JSON.stringify(drawnSystemsOf(address).map((sketch) => {
|
|
333
|
+
const drawn = system.drawnOf(address.product, sketch);
|
|
334
|
+
return (drawn && {
|
|
335
|
+
parts: drawn.parts.map((part) => [(0, resolve_product_1.partKeyOf)(part), part.file, part.css]),
|
|
336
|
+
fixtures: drawn.fixtures,
|
|
337
|
+
shared: (0, imports_1.sharedDirsOf)(drawn).map((shared) => [shared, filesUnder(shared)]),
|
|
338
|
+
});
|
|
339
|
+
})),
|
|
340
|
+
});
|
|
341
|
+
};
|
|
342
|
+
const designExplore = ({ target, config, system, stylesheetImports, shotCacheDir, checkSketches, }) => {
|
|
234
343
|
const renderer = (0, render_1.createRenderer)({ target, config });
|
|
344
|
+
const transform = withAssetUrls(system);
|
|
345
|
+
const packageDirs = () => (0, render_packages_1.renderPackageDirsOf)({ target, packages: (0, render_packages_1.renderPackagesOf)({ target, config }) });
|
|
346
|
+
const isPackageFile = (file) => packageDirs().some((dir) => isInside(dir, (0, path_1.resolve)(file)));
|
|
347
|
+
const loadedPackageCode = new Map();
|
|
348
|
+
const hashOf = (code) => (0, crypto_1.createHash)('sha1').update(code).digest('hex');
|
|
349
|
+
const isAsLoaded = (file) => {
|
|
350
|
+
try {
|
|
351
|
+
return loadedPackageCode.get(file) === hashOf((0, fs_1.readFileSync)(file, 'utf8'));
|
|
352
|
+
}
|
|
353
|
+
catch (_a) {
|
|
354
|
+
return false;
|
|
355
|
+
}
|
|
356
|
+
};
|
|
235
357
|
return {
|
|
236
358
|
name: 'design-explore',
|
|
237
359
|
enforce: 'pre',
|
|
@@ -250,7 +372,12 @@ const designExplore = ({ target, config, system, stylesheetImports, }) => {
|
|
|
250
372
|
return systemRegistry(system);
|
|
251
373
|
return null;
|
|
252
374
|
},
|
|
253
|
-
transform:
|
|
375
|
+
transform: (code, id) => {
|
|
376
|
+
const file = (0, path_1.resolve)((0, system_modules_1.fileOfModuleId)(id));
|
|
377
|
+
if (isPackageFile(file))
|
|
378
|
+
loadedPackageCode.set(file, hashOf(code));
|
|
379
|
+
return transform(code, id);
|
|
380
|
+
},
|
|
254
381
|
transformIndexHtml: {
|
|
255
382
|
order: 'pre',
|
|
256
383
|
handler: (html, ctx) => {
|
|
@@ -273,18 +400,35 @@ const designExplore = ({ target, config, system, stylesheetImports, }) => {
|
|
|
273
400
|
const callsRoot = (0, paths_1.callsRootOf)(target);
|
|
274
401
|
const designRoot = (0, path_1.resolve)(target, paths_1.DESIGN_DIR);
|
|
275
402
|
const stamp = (0, stamp_1.buildStampOf)();
|
|
403
|
+
const identityOf = (0, server_identity_1.serverIdentityOf)(target);
|
|
276
404
|
const base = () => {
|
|
277
405
|
var _a;
|
|
278
406
|
const address = (_a = vite.httpServer) === null || _a === void 0 ? void 0 : _a.address();
|
|
279
407
|
return `http://localhost:${address && typeof address === 'object' ? address.port : (0, paths_1.portOf)(config)}`;
|
|
280
408
|
};
|
|
281
|
-
const
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
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
|
+
});
|
|
413
|
+
const thumbs = (0, thumb_1.createThumbnailer)({ target, base, ledger });
|
|
414
|
+
const inventoryDraws = (0, thumb_1.createDrawQueue)({ target, ledger });
|
|
415
|
+
const sketchChecker = checkSketches ? undefined : (0, sketch_checker_1.createSketchChecker)();
|
|
416
|
+
const shots = (0, shot_1.createPartShooter)(Object.assign(Object.assign({ target,
|
|
285
417
|
base,
|
|
286
|
-
|
|
287
|
-
|
|
418
|
+
ledger,
|
|
419
|
+
system }, (shotCacheDir
|
|
420
|
+
? {
|
|
421
|
+
store: shotStoreOf({
|
|
422
|
+
target,
|
|
423
|
+
config,
|
|
424
|
+
system,
|
|
425
|
+
stylesheetImports,
|
|
426
|
+
dir: shotCacheDir,
|
|
427
|
+
salt: `${stamp.version} ${stamp.build}`,
|
|
428
|
+
moduleById: (id) => vite.moduleGraph.getModuleById(id),
|
|
429
|
+
}),
|
|
430
|
+
}
|
|
431
|
+
: {})), { statesOf: (_a) => __awaiter(void 0, [_a], void 0, function* ({ product, part, sketch }) {
|
|
288
432
|
var _b, _c;
|
|
289
433
|
const file = (_b = system.partOf({ product, part, sketch })) === null || _b === void 0 ? void 0 : _b.file;
|
|
290
434
|
if (!file)
|
|
@@ -292,8 +436,7 @@ const designExplore = ({ target, config, system, stylesheetImports, }) => {
|
|
|
292
436
|
const module = (yield vite.ssrLoadModule((0, system_modules_1.productModuleIdOf)({ file, product, sketch })));
|
|
293
437
|
const states = (_c = module.default) === null || _c === void 0 ? void 0 : _c.states;
|
|
294
438
|
return states && typeof states === 'object' ? Object.keys(states) : [];
|
|
295
|
-
})
|
|
296
|
-
});
|
|
439
|
+
}) }));
|
|
297
440
|
const baseDirs = [
|
|
298
441
|
...new Set(system.products().flatMap((name) => { var _a, _b, _c; return (_c = (_b = (_a = system.productOf(name)) === null || _a === void 0 ? void 0 : _a.base) === null || _b === void 0 ? void 0 : _b.dir) !== null && _c !== void 0 ? _c : []; })),
|
|
299
442
|
].filter((dir) => !isInside(designRoot, dir));
|
|
@@ -374,7 +517,34 @@ const designExplore = ({ target, config, system, stylesheetImports, }) => {
|
|
|
374
517
|
const isSystemFile = (file) => !isInside(callsRoot, file) &&
|
|
375
518
|
!isSketchFile(designRoot, file) &&
|
|
376
519
|
[designRoot, ...baseDirs].some((dir) => isInside(dir, file));
|
|
520
|
+
const modulesOf = (file) => { var _a; return [...((_a = vite.moduleGraph.getModulesByFile((0, path_1.resolve)(file))) !== null && _a !== void 0 ? _a : [])]; };
|
|
521
|
+
const rebuilt = new Set();
|
|
522
|
+
let settling;
|
|
523
|
+
const redrawRebuilt = () => {
|
|
524
|
+
const changed = [...rebuilt].filter((rewritten) => !isAsLoaded(rewritten));
|
|
525
|
+
const modules = changed.flatMap(modulesOf);
|
|
526
|
+
const [file] = changed;
|
|
527
|
+
rebuilt.clear();
|
|
528
|
+
if (!file || modules.length === 0)
|
|
529
|
+
return;
|
|
530
|
+
const dependents = (0, shot_1.dependentIdsOf)(modules, stylesheetImports);
|
|
531
|
+
for (const module of modules)
|
|
532
|
+
vite.moduleGraph.invalidateModule(module);
|
|
533
|
+
redraw((0, changed_parts_1.changedPartsOf)({ target, config, system, file, dependents }));
|
|
534
|
+
};
|
|
535
|
+
// A package build deletes its folder and writes it anew; a module stays stale unless it is
|
|
536
|
+
// invalidated once the new file is there, so `unlink` alone redraws nothing.
|
|
537
|
+
const packageChanged = (file) => {
|
|
538
|
+
if (modulesOf(file).length === 0)
|
|
539
|
+
return;
|
|
540
|
+
rebuilt.add((0, path_1.resolve)(file));
|
|
541
|
+
settling === null || settling === void 0 ? void 0 : settling.abort();
|
|
542
|
+
settling = new AbortController();
|
|
543
|
+
void (0, promises_1.setTimeout)(REBUILD_SETTLE_MS, undefined, { signal: settling.signal }).then(redrawRebuilt, () => undefined);
|
|
544
|
+
};
|
|
377
545
|
const refresh = (file) => {
|
|
546
|
+
if (isPackageFile(file))
|
|
547
|
+
return;
|
|
378
548
|
if ((0, path_1.resolve)(file) === configPath)
|
|
379
549
|
return reloadConfig();
|
|
380
550
|
if (isCommentFile(file))
|
|
@@ -399,6 +569,8 @@ const designExplore = ({ target, config, system, stylesheetImports, }) => {
|
|
|
399
569
|
};
|
|
400
570
|
const change = (file) => {
|
|
401
571
|
var _a;
|
|
572
|
+
if (isPackageFile(file))
|
|
573
|
+
return packageChanged(file);
|
|
402
574
|
if ((0, path_1.resolve)(file) === configPath)
|
|
403
575
|
return reloadConfig();
|
|
404
576
|
if (isCommentFile(file))
|
|
@@ -412,17 +584,27 @@ const designExplore = ({ target, config, system, stylesheetImports, }) => {
|
|
|
412
584
|
const dependents = (0, shot_1.dependentIdsOf)((_a = vite.moduleGraph.getModulesByFile(file)) !== null && _a !== void 0 ? _a : [], stylesheetImports);
|
|
413
585
|
redraw((0, changed_parts_1.changedPartsOf)({ target, config, system, file, dependents }), isSystemFile(file));
|
|
414
586
|
};
|
|
415
|
-
const answer = (handle) => (request, response) => {
|
|
587
|
+
const answer = (handle, held = false) => (request, response) => {
|
|
416
588
|
var _a;
|
|
417
|
-
|
|
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) => ({
|
|
418
598
|
status: 500,
|
|
419
599
|
body: { error: error instanceof Error ? error.message : String(error) },
|
|
420
600
|
}));
|
|
601
|
+
void (held ? (0, exports.sendHeldJson)(response, answered) : answered.then((answer) => sendJson(response, answer)));
|
|
421
602
|
};
|
|
422
603
|
vite.middlewares.use(stamp_1.STAMP_PATH, (_request, response) => {
|
|
423
604
|
response.setHeader('content-type', 'application/json');
|
|
424
|
-
response.end(JSON.stringify(stamp));
|
|
605
|
+
response.end(JSON.stringify(Object.assign(Object.assign({}, stamp), identityOf())));
|
|
425
606
|
});
|
|
607
|
+
vite.middlewares.use(draw_ledger_1.QUEUE_PATH, (_request, response) => sendJson(response, { status: 200, body: ledger.report() }));
|
|
426
608
|
vite.middlewares.use(render_1.RENDER_PATH, (0, render_1.renderMiddleware)(renderer));
|
|
427
609
|
vite.middlewares.use(render_1.FORCE_PATH, render_1.forceMiddleware);
|
|
428
610
|
vite.middlewares.use(thumb_1.THUMB_PATH, thumbs.middleware);
|
|
@@ -456,7 +638,7 @@ const designExplore = ({ target, config, system, stylesheetImports, }) => {
|
|
|
456
638
|
});
|
|
457
639
|
return { status: 200, body: products };
|
|
458
640
|
})));
|
|
459
|
-
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 }) {
|
|
460
642
|
const created = yield (0, product_command_1.newProductAnswer)({ target, request });
|
|
461
643
|
if (created.status === 201)
|
|
462
644
|
reloadConfig();
|
|
@@ -468,22 +650,24 @@ const designExplore = ({ target, config, system, stylesheetImports, }) => {
|
|
|
468
650
|
body: yield (0, calls_1.listCalls)({ target, load: (file) => vite.ssrLoadModule(file) }),
|
|
469
651
|
});
|
|
470
652
|
})));
|
|
471
|
-
vite.middlewares.use(legacy_1.TRANSFER_PATH, answer((
|
|
472
|
-
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;
|
|
473
655
|
if (request.method !== 'POST')
|
|
474
656
|
return { status: 405, body: { error: 'POST only' } };
|
|
475
|
-
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 : '' });
|
|
476
658
|
const status = result === 'missing' ? 404 : result === 'unreadable' ? 422 : 200;
|
|
477
659
|
return { status, body: { result } };
|
|
478
660
|
})));
|
|
479
|
-
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 }) {
|
|
480
662
|
return handle({
|
|
481
663
|
target,
|
|
482
664
|
url,
|
|
483
665
|
request,
|
|
666
|
+
signal,
|
|
484
667
|
load: ({ file, product, sketch }) => vite.ssrLoadModule((0, system_modules_1.productModuleIdOf)({ file, product, sketch })),
|
|
485
668
|
pictureOf: shots.pictureOf,
|
|
486
669
|
boxOf: shots.changedBoxesOf,
|
|
670
|
+
checkSketches: checkSketches !== null && checkSketches !== void 0 ? checkSketches : sketchChecker,
|
|
487
671
|
inventoryOf: ({ product, part }) => (0, inventory_1.inventoryOf)({
|
|
488
672
|
product,
|
|
489
673
|
part,
|
|
@@ -493,7 +677,7 @@ const designExplore = ({ target, config, system, stylesheetImports, }) => {
|
|
|
493
677
|
draw: (job) => inventoryDraws.run(job),
|
|
494
678
|
}),
|
|
495
679
|
});
|
|
496
|
-
})));
|
|
680
|
+
}), path === studio_api_1.SKETCHES_PATH));
|
|
497
681
|
studio(studio_api_1.SKETCHES_PATH, studio_api_1.sketchesAnswer);
|
|
498
682
|
studio(studio_api_1.SKETCH_PREVIEW_PATH, studio_api_1.sketchPreviewAnswer);
|
|
499
683
|
studio(studio_api_1.SKETCH_COMPARE_PATH, studio_api_1.sketchCompareAnswer);
|
|
@@ -517,15 +701,19 @@ const designExplore = ({ target, config, system, stylesheetImports, }) => {
|
|
|
517
701
|
studio(studio_api_1.FLOW_NOTE_DELETE_PATH, studio_api_1.flowNoteDeleteAnswer);
|
|
518
702
|
studio(studio_api_1.INVENTORY_PATH, studio_api_1.inventoryAnswer);
|
|
519
703
|
studio(studio_api_1.INVENTORY_APPROVE_PATH, studio_api_1.inventoryApproveAnswer);
|
|
704
|
+
studio(studio_api_1.OPEN_POINTS_PATH, studio_api_1.openPointsAnswer);
|
|
705
|
+
studio(studio_api_1.PART_GO_PATH, studio_api_1.partGoAnswer);
|
|
706
|
+
studio(studio_api_1.PART_ACCEPT_PATH, studio_api_1.partAcceptAnswer);
|
|
520
707
|
studio(studio_api_1.EXCEPTIONS_PATH, studio_api_1.exceptionsAnswer);
|
|
521
708
|
studio(studio_api_1.EXCEPTION_APPROVE_PATH, studio_api_1.exceptionApproveAnswer);
|
|
522
709
|
vite.middlewares.use(studio_api_1.COMMENT_EVENTS_PATH, events.middleware);
|
|
523
710
|
(_c = vite.httpServer) === null || _c === void 0 ? void 0 : _c.on('close', () => {
|
|
524
711
|
events.close();
|
|
525
|
-
void
|
|
712
|
+
settling === null || settling === void 0 ? void 0 : settling.abort();
|
|
713
|
+
void Promise.all([thumbs.close(), shots.close(), inventoryDraws.close(), sketchChecker === null || sketchChecker === void 0 ? void 0 : sketchChecker.close()]);
|
|
526
714
|
});
|
|
527
|
-
vite.watcher.add([designRoot, ...baseDirs]);
|
|
528
|
-
vite.watcher.on('add', refresh);
|
|
715
|
+
vite.watcher.add([designRoot, ...baseDirs, ...packageDirs()]);
|
|
716
|
+
vite.watcher.on('add', (file) => (isPackageFile(file) ? packageChanged(file) : refresh(file)));
|
|
529
717
|
vite.watcher.on('unlink', refresh);
|
|
530
718
|
vite.watcher.on('change', change);
|
|
531
719
|
},
|
|
@@ -540,14 +728,33 @@ const freePortOf = () => new Promise((resolvePort, reject) => {
|
|
|
540
728
|
probe.close(() => resolvePort(port));
|
|
541
729
|
});
|
|
542
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;
|
|
543
749
|
/**
|
|
544
750
|
* The Vite server that draws a checkout: listening on the configured port to serve the frames, or in
|
|
545
751
|
* middleware mode only to load design modules for a command. With `port`, it listens there instead
|
|
546
|
-
* (0 picks a free one), quiet
|
|
547
|
-
* while
|
|
752
|
+
* (0 picks a free one), quiet and unwatched. Only the user's server uses the checkout's dependency cache,
|
|
753
|
+
* so a command can draw while that server runs.
|
|
548
754
|
*/
|
|
549
755
|
const createDesignServer = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
550
|
-
|
|
756
|
+
var _a;
|
|
757
|
+
const { target, config, listen, sketchesRoot, checkSketches } = options;
|
|
551
758
|
const host = options.host || process.env['DE_HOST'] || undefined;
|
|
552
759
|
const own = listen && options.port !== undefined;
|
|
553
760
|
const port = own ? yield freePortOf() : options.listenOn;
|
|
@@ -569,6 +776,7 @@ const createDesignServer = (options) => __awaiter(void 0, void 0, void 0, functi
|
|
|
569
776
|
}
|
|
570
777
|
const baseDirs = system.products().flatMap((name) => { var _a, _b, _c; return (_c = (_b = (_a = system.productOf(name)) === null || _a === void 0 ? void 0 : _a.base) === null || _b === void 0 ? void 0 : _b.dir) !== null && _c !== void 0 ? _c : []; });
|
|
571
778
|
const stylesheetImports = new Map();
|
|
779
|
+
const cache = listen && !own ? null : (0, paths_1.claimViteCache)(target, 'vite-check');
|
|
572
780
|
const server = yield createServer(Object.assign(Object.assign(Object.assign({ configFile: false, root: (0, path_1.resolve)(here, 'web'),
|
|
573
781
|
// Every drawing is ruled under Tailwind 4, whatever the checkout installs. The tool brings its
|
|
574
782
|
// own pipeline so no checkout's postcss config reaches a drawing.
|
|
@@ -585,7 +793,7 @@ const createDesignServer = (options) => __awaiter(void 0, void 0, void 0, functi
|
|
|
585
793
|
(0, shot_1.stylesheetImportsPlugin)(stylesheetImports),
|
|
586
794
|
],
|
|
587
795
|
},
|
|
588
|
-
}, cacheDir: (0, paths_1.viteCacheOf)(target,
|
|
796
|
+
}, cacheDir: (_a = cache === null || cache === void 0 ? void 0 : cache.dir) !== null && _a !== void 0 ? _a : (0, paths_1.viteCacheOf)(target, 'vite'), resolve: {
|
|
589
797
|
alias: [
|
|
590
798
|
{ find: /^@design-explore$/, replacement: (0, path_1.resolve)(here, 'define-call.ts') },
|
|
591
799
|
{ find: new RegExp(`^${system_tsconfig_1.DESIGN_SYSTEM_SPECIFIER}$`), replacement: (0, path_1.resolve)(here, 'define-part.ts') },
|
|
@@ -594,14 +802,28 @@ const createDesignServer = (options) => __awaiter(void 0, void 0, void 0, functi
|
|
|
594
802
|
],
|
|
595
803
|
},
|
|
596
804
|
// A design mock ships as TS that imports CSS with `?inline`, which the dependency pre-bundler
|
|
597
|
-
// can not load.
|
|
598
|
-
|
|
805
|
+
// can not load. The tool's own modules sit in a snapshot under `node_modules`; pre-bundled, each
|
|
806
|
+
// late find of one reloads every frame.
|
|
807
|
+
optimizeDeps: {
|
|
808
|
+
exclude: ['@ethlete/components', '@ethlete/core', '@design-explore', system_tsconfig_1.DESIGN_SYSTEM_SPECIFIER, kit_1.KIT_SPECIFIER],
|
|
809
|
+
}, plugins: [
|
|
810
|
+
designExplore({
|
|
811
|
+
target,
|
|
812
|
+
config,
|
|
813
|
+
system,
|
|
814
|
+
stylesheetImports,
|
|
815
|
+
shotCacheDir: listen && !own ? (0, paths_1.viteCacheOf)(target, 'shots') : null,
|
|
816
|
+
checkSketches,
|
|
817
|
+
}),
|
|
818
|
+
] }, (listen ? {} : { appType: 'custom' })), (listen && !own ? {} : { logLevel: 'error' })), { server: Object.assign(Object.assign({
|
|
599
819
|
// Studio swaps a frame for a fresh one once it has painted; a Vite reload would blank every frame at once.
|
|
600
820
|
hmr: false }, (listen
|
|
601
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 })), {
|
|
602
822
|
// The frame page lives inside this package, which is outside the checkout it draws. Vite
|
|
603
823
|
// serves neither root unless both are allowed.
|
|
604
|
-
fs: { allow: [target, here, ...baseDirs] } }) }));
|
|
824
|
+
fs: { allow: [target, here, ...baseDirs, ...(0, exports.installedRootsOf)(target)] } }) }));
|
|
825
|
+
const closing = server.close.bind(server);
|
|
826
|
+
server.close = () => closing().finally(() => cache === null || cache === void 0 ? void 0 : cache.release());
|
|
605
827
|
const listening = server.listen.bind(server);
|
|
606
828
|
server.listen = (...args) => listening(...args).catch((error) => {
|
|
607
829
|
const code = error === null || error === void 0 ? void 0 : error.code;
|
|
@@ -624,35 +846,66 @@ const exitWhenStdinCloses = (server) => {
|
|
|
624
846
|
process.stdin.once('close', shutDown);
|
|
625
847
|
process.stdin.resume();
|
|
626
848
|
};
|
|
849
|
+
const installedStampOf = () => (0, stamp_1.buildStampOf)((0, paths_1.installedAssetRoot)()).build;
|
|
627
850
|
/**
|
|
628
851
|
* Starts the design server for a checkout and keeps it running. The returned exit code is the
|
|
629
|
-
* 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.
|
|
630
855
|
*/
|
|
631
856
|
const serveDesign = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
632
|
-
const { target, host } = options;
|
|
857
|
+
const { target, host, reloadOnRebuild, checkSketches } = options;
|
|
633
858
|
const config = (0, paths_1.readConfig)(target);
|
|
634
859
|
if (!config) {
|
|
635
860
|
console.error(`design-explore: no config at ${(0, paths_1.configPathOf)(target)}`);
|
|
636
861
|
return 1;
|
|
637
862
|
}
|
|
863
|
+
const cwd = process.cwd();
|
|
864
|
+
const served = reloadOnRebuild ? installedStampOf() : '';
|
|
638
865
|
(0, paths_1.snapshotPackage)(target);
|
|
639
866
|
const ownedByStudio = process.env['ETHLETE_DESIGN_EXIT_ON_STDIN_CLOSE'] === '1';
|
|
867
|
+
const portPinned = ownedByStudio || !!Number(process.env['DE_PORT']);
|
|
640
868
|
const server = yield (0, exports.createDesignServer)({
|
|
641
869
|
target,
|
|
642
870
|
config,
|
|
643
871
|
listen: true,
|
|
644
872
|
host,
|
|
645
|
-
listenOn:
|
|
873
|
+
listenOn: portPinned ? undefined : yield freePortOf(),
|
|
874
|
+
checkSketches,
|
|
646
875
|
});
|
|
647
876
|
yield server.listen();
|
|
648
877
|
console.log(`design-explore: drawing ${target}`);
|
|
649
|
-
if (!
|
|
878
|
+
if (!portPinned) {
|
|
650
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`);
|
|
651
880
|
}
|
|
652
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
|
+
});
|
|
653
888
|
if (ownedByStudio) {
|
|
654
889
|
exitWhenStdinCloses(server);
|
|
655
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
|
+
}
|
|
656
909
|
return 0;
|
|
657
910
|
});
|
|
658
911
|
exports.serveDesign = serveDesign;
|