@ethlete/cli 3.0.0-next.20 → 3.0.0-next.22
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 +190 -0
- package/design/assets.d.ts +9 -0
- package/design/define-call.ts +20 -11
- package/design/define-part.ts +102 -0
- package/design/embed-page.ts +70 -0
- package/design/interaction-rows.ts +32 -0
- package/design/mark-part.ts +66 -0
- package/design/svg-asset.ts +36 -0
- package/design/systems/config.json +10 -0
- package/design/systems/ethlete-components/components/button/button.ts +18 -0
- package/design/web/env.d.ts +20 -0
- package/design/web/frame.ts +173 -41
- package/design/wireframe-kit.ts +386 -0
- package/package.json +4 -2
- package/src/index.js.map +1 -1
- package/src/lib/api/api-command.js.map +1 -1
- package/src/lib/api/api-context.js.map +1 -1
- package/src/lib/api/api-state.js.map +1 -1
- package/src/lib/api/auth-hint.js.map +1 -1
- package/src/lib/api/clear.js.map +1 -1
- package/src/lib/api/clone.js.map +1 -1
- package/src/lib/api/compose.js.map +1 -1
- package/src/lib/api/definition.js.map +1 -1
- package/src/lib/api/doctor.js.map +1 -1
- package/src/lib/api/fingerprint.js.map +1 -1
- package/src/lib/api/git.js.map +1 -1
- package/src/lib/api/help.js.map +1 -1
- package/src/lib/api/index.js.map +1 -1
- package/src/lib/api/load-definitions.js.map +1 -1
- package/src/lib/api/lock.js.map +1 -1
- package/src/lib/api/parse-argv.js.map +1 -1
- package/src/lib/api/ports.js.map +1 -1
- package/src/lib/api/resolve-checkout.js.map +1 -1
- package/src/lib/api/run-locked.js.map +1 -1
- package/src/lib/api/run-ready.js.map +1 -1
- package/src/lib/api/run-snapshot.js.map +1 -1
- package/src/lib/api/run-status.js.map +1 -1
- package/src/lib/api/run.js.map +1 -1
- package/src/lib/api/seeds.js.map +1 -1
- package/src/lib/api/setup.js.map +1 -1
- package/src/lib/api/snapshot.js.map +1 -1
- package/src/lib/api/state.js.map +1 -1
- package/src/lib/api/suggest.js.map +1 -1
- package/src/lib/api/validate-definition.js.map +1 -1
- package/src/lib/auth/auth-command.js.map +1 -1
- package/src/lib/auth/composer-auth.js.map +1 -1
- package/src/lib/auth/composer-repositories.js.map +1 -1
- package/src/lib/auth/gitlab-token.js.map +1 -1
- package/src/lib/auth/index.js.map +1 -1
- package/src/lib/config/diagnose.js.map +1 -1
- package/src/lib/config/index.js.map +1 -1
- package/src/lib/config/local-config.js.map +1 -1
- package/src/lib/design/asset-shot.d.ts +26 -0
- package/src/lib/design/asset-shot.js +191 -0
- package/src/lib/design/asset-shot.js.map +1 -0
- package/src/lib/design/browser.js.map +1 -1
- package/src/lib/design/calls-tsconfig.d.ts +14 -1
- package/src/lib/design/calls-tsconfig.js +23 -18
- package/src/lib/design/calls-tsconfig.js.map +1 -1
- package/src/lib/design/calls.d.ts +28 -0
- package/src/lib/design/calls.js +58 -0
- package/src/lib/design/calls.js.map +1 -0
- package/src/lib/design/changed-parts.d.ts +51 -0
- package/src/lib/design/changed-parts.js +103 -0
- package/src/lib/design/changed-parts.js.map +1 -0
- package/src/lib/design/check.js +53 -54
- package/src/lib/design/check.js.map +1 -1
- package/src/lib/design/contact-sheet.d.ts +68 -0
- package/src/lib/design/contact-sheet.js +169 -0
- package/src/lib/design/contact-sheet.js.map +1 -0
- package/src/lib/design/design-command.js +165 -6
- package/src/lib/design/design-command.js.map +1 -1
- package/src/lib/design/force-interactions.d.ts +13 -0
- package/src/lib/design/force-interactions.js +75 -0
- package/src/lib/design/force-interactions.js.map +1 -0
- package/src/lib/design/inbox-command.d.ts +21 -0
- package/src/lib/design/inbox-command.js +156 -0
- package/src/lib/design/inbox-command.js.map +1 -0
- package/src/lib/design/index.js.map +1 -1
- package/src/lib/design/json-layout.d.ts +5 -0
- package/src/lib/design/json-layout.js +41 -0
- package/src/lib/design/json-layout.js.map +1 -0
- package/src/lib/design/legacy.d.ts +7 -0
- package/src/lib/design/legacy.js +23 -8
- package/src/lib/design/legacy.js.map +1 -1
- package/src/lib/design/merge-compare.d.ts +57 -0
- package/src/lib/design/merge-compare.js +80 -0
- package/src/lib/design/merge-compare.js.map +1 -0
- package/src/lib/design/missing-package.js.map +1 -1
- package/src/lib/design/new-call.js.map +1 -1
- package/src/lib/design/part-marks.d.ts +12 -0
- package/src/lib/design/part-marks.js +38 -0
- package/src/lib/design/part-marks.js.map +1 -0
- package/src/lib/design/paths.d.ts +35 -2
- package/src/lib/design/paths.js +62 -4
- package/src/lib/design/paths.js.map +1 -1
- package/src/lib/design/product-command.d.ts +38 -0
- package/src/lib/design/product-command.js +158 -0
- package/src/lib/design/product-command.js.map +1 -0
- package/src/lib/design/ready-shots.d.ts +13 -0
- package/src/lib/design/ready-shots.js +55 -0
- package/src/lib/design/ready-shots.js.map +1 -0
- package/src/lib/design/render-fields.js.map +1 -1
- package/src/lib/design/render-packages.js.map +1 -1
- package/src/lib/design/render-worker.js.map +1 -1
- package/src/lib/design/render.d.ts +8 -1
- package/src/lib/design/render.js +43 -14
- package/src/lib/design/render.js.map +1 -1
- package/src/lib/design/serve.d.ts +17 -0
- package/src/lib/design/serve.js +446 -62
- package/src/lib/design/serve.js.map +1 -1
- package/src/lib/design/shot-command.d.ts +75 -0
- package/src/lib/design/shot-command.js +361 -0
- package/src/lib/design/shot-command.js.map +1 -0
- package/src/lib/design/shot.d.ts +97 -0
- package/src/lib/design/shot.js +346 -0
- package/src/lib/design/shot.js.map +1 -0
- package/src/lib/design/sketch-at.d.ts +16 -0
- package/src/lib/design/sketch-at.js +34 -0
- package/src/lib/design/sketch-at.js.map +1 -0
- package/src/lib/design/sketch-command.d.ts +9 -0
- package/src/lib/design/sketch-command.js +572 -0
- package/src/lib/design/sketch-command.js.map +1 -0
- package/src/lib/design/ssr-shims.js.map +1 -1
- package/src/lib/design/stamp.js.map +1 -1
- package/src/lib/design/status.d.ts +2 -2
- package/src/lib/design/status.js +2 -2
- package/src/lib/design/status.js.map +1 -1
- package/src/lib/design/studio-api.d.ts +102 -0
- package/src/lib/design/studio-api.js +452 -0
- package/src/lib/design/studio-api.js.map +1 -0
- package/src/lib/design/system/accept-command.d.ts +7 -0
- package/src/lib/design/system/accept-command.js +55 -0
- package/src/lib/design/system/accept-command.js.map +1 -0
- package/src/lib/design/system/assets.d.ts +34 -0
- package/src/lib/design/system/assets.js +64 -0
- package/src/lib/design/system/assets.js.map +1 -0
- package/src/lib/design/system/base.d.ts +33 -0
- package/src/lib/design/system/base.js +49 -0
- package/src/lib/design/system/base.js.map +1 -0
- package/src/lib/design/system/check-system.d.ts +23 -0
- package/src/lib/design/system/check-system.js +151 -0
- package/src/lib/design/system/check-system.js.map +1 -0
- package/src/lib/design/system/colour.d.ts +2 -0
- package/src/lib/design/system/colour.js +9 -0
- package/src/lib/design/system/colour.js.map +1 -0
- package/src/lib/design/system/comments/comment.d.ts +196 -0
- package/src/lib/design/system/comments/comment.js +332 -0
- package/src/lib/design/system/comments/comment.js.map +1 -0
- package/src/lib/design/system/comments/complete.d.ts +15 -0
- package/src/lib/design/system/comments/complete.js +63 -0
- package/src/lib/design/system/comments/complete.js.map +1 -0
- package/src/lib/design/system/comments/inbox.d.ts +49 -0
- package/src/lib/design/system/comments/inbox.js +100 -0
- package/src/lib/design/system/comments/inbox.js.map +1 -0
- package/src/lib/design/system/css-source.d.ts +12 -0
- package/src/lib/design/system/css-source.js +39 -0
- package/src/lib/design/system/css-source.js.map +1 -0
- package/src/lib/design/system/flows/flow.d.ts +66 -0
- package/src/lib/design/system/flows/flow.js +157 -0
- package/src/lib/design/system/flows/flow.js.map +1 -0
- package/src/lib/design/system/imports.d.ts +70 -0
- package/src/lib/design/system/imports.js +159 -0
- package/src/lib/design/system/imports.js.map +1 -0
- package/src/lib/design/system/kit.d.ts +4 -0
- package/src/lib/design/system/kit.js +51 -0
- package/src/lib/design/system/kit.js.map +1 -0
- package/src/lib/design/system/layers.d.ts +9 -0
- package/src/lib/design/system/layers.js +16 -0
- package/src/lib/design/system/layers.js.map +1 -0
- package/src/lib/design/system/list-system.d.ts +104 -0
- package/src/lib/design/system/list-system.js +212 -0
- package/src/lib/design/system/list-system.js.map +1 -0
- package/src/lib/design/system/notes/note.d.ts +53 -0
- package/src/lib/design/system/notes/note.js +116 -0
- package/src/lib/design/system/notes/note.js.map +1 -0
- package/src/lib/design/system/part-command.d.ts +7 -0
- package/src/lib/design/system/part-command.js +134 -0
- package/src/lib/design/system/part-command.js.map +1 -0
- package/src/lib/design/system/problem.d.ts +5 -0
- package/src/lib/design/system/problem.js +3 -0
- package/src/lib/design/system/problem.js.map +1 -0
- package/src/lib/design/system/product.d.ts +18 -0
- package/src/lib/design/system/product.js +35 -0
- package/src/lib/design/system/product.js.map +1 -0
- package/src/lib/design/system/render-check.d.ts +45 -0
- package/src/lib/design/system/render-check.js +427 -0
- package/src/lib/design/system/render-check.js.map +1 -0
- package/src/lib/design/system/resolve-product.d.ts +32 -0
- package/src/lib/design/system/resolve-product.js +62 -0
- package/src/lib/design/system/resolve-product.js.map +1 -0
- package/src/lib/design/system/rules/component-copy.d.ts +7 -0
- package/src/lib/design/system/rules/component-copy.js +53 -0
- package/src/lib/design/system/rules/component-copy.js.map +1 -0
- package/src/lib/design/system/rules/flow.d.ts +8 -0
- package/src/lib/design/system/rules/flow.js +60 -0
- package/src/lib/design/system/rules/flow.js.map +1 -0
- package/src/lib/design/system/rules/hard-coded-colour.d.ts +7 -0
- package/src/lib/design/system/rules/hard-coded-colour.js +27 -0
- package/src/lib/design/system/rules/hard-coded-colour.js.map +1 -0
- package/src/lib/design/system/rules/interactions.d.ts +4 -0
- package/src/lib/design/system/rules/interactions.js +16 -0
- package/src/lib/design/system/rules/interactions.js.map +1 -0
- package/src/lib/design/system/rules/kit-outside-pages.d.ts +4 -0
- package/src/lib/design/system/rules/kit-outside-pages.js +14 -0
- package/src/lib/design/system/rules/kit-outside-pages.js.map +1 -0
- package/src/lib/design/system/rules/motion.d.ts +4 -0
- package/src/lib/design/system/rules/motion.js +13 -0
- package/src/lib/design/system/rules/motion.js.map +1 -0
- package/src/lib/design/system/rules/stale-comment.d.ts +8 -0
- package/src/lib/design/system/rules/stale-comment.js +51 -0
- package/src/lib/design/system/rules/stale-comment.js.map +1 -0
- package/src/lib/design/system/rules/stale-replace.d.ts +4 -0
- package/src/lib/design/system/rules/stale-replace.js +65 -0
- package/src/lib/design/system/rules/stale-replace.js.map +1 -0
- package/src/lib/design/system/rules/svg-asset.d.ts +6 -0
- package/src/lib/design/system/rules/svg-asset.js +30 -0
- package/src/lib/design/system/rules/svg-asset.js.map +1 -0
- package/src/lib/design/system/rules/token-selectors.d.ts +3 -0
- package/src/lib/design/system/rules/token-selectors.js +87 -0
- package/src/lib/design/system/rules/token-selectors.js.map +1 -0
- package/src/lib/design/system/rules/undefined-token.d.ts +8 -0
- package/src/lib/design/system/rules/undefined-token.js +103 -0
- package/src/lib/design/system/rules/undefined-token.js.map +1 -0
- package/src/lib/design/system/rules/unused-shared-export.d.ts +18 -0
- package/src/lib/design/system/rules/unused-shared-export.js +60 -0
- package/src/lib/design/system/rules/unused-shared-export.js.map +1 -0
- package/src/lib/design/system/rules/upward-dependency.d.ts +4 -0
- package/src/lib/design/system/rules/upward-dependency.js +17 -0
- package/src/lib/design/system/rules/upward-dependency.js.map +1 -0
- package/src/lib/design/system/rules/widths.d.ts +4 -0
- package/src/lib/design/system/rules/widths.js +14 -0
- package/src/lib/design/system/rules/widths.js.map +1 -0
- package/src/lib/design/system/sketch/baseline.d.ts +38 -0
- package/src/lib/design/system/sketch/baseline.js +66 -0
- package/src/lib/design/system/sketch/baseline.js.map +1 -0
- package/src/lib/design/system/sketch/check-format.d.ts +17 -0
- package/src/lib/design/system/sketch/check-format.js +56 -0
- package/src/lib/design/system/sketch/check-format.js.map +1 -0
- package/src/lib/design/system/sketch/check-sketches.d.ts +38 -0
- package/src/lib/design/system/sketch/check-sketches.js +104 -0
- package/src/lib/design/system/sketch/check-sketches.js.map +1 -0
- package/src/lib/design/system/sketch/cli-args.d.ts +26 -0
- package/src/lib/design/system/sketch/cli-args.js +63 -0
- package/src/lib/design/system/sketch/cli-args.js.map +1 -0
- package/src/lib/design/system/sketch/duplicate-class.d.ts +14 -0
- package/src/lib/design/system/sketch/duplicate-class.js +57 -0
- package/src/lib/design/system/sketch/duplicate-class.js.map +1 -0
- package/src/lib/design/system/sketch/merge-preview.d.ts +15 -0
- package/src/lib/design/system/sketch/merge-preview.js +43 -0
- package/src/lib/design/system/sketch/merge-preview.js.map +1 -0
- package/src/lib/design/system/sketch/merge-shared.d.ts +25 -0
- package/src/lib/design/system/sketch/merge-shared.js +53 -0
- package/src/lib/design/system/sketch/merge-shared.js.map +1 -0
- package/src/lib/design/system/sketch/merge.d.ts +31 -0
- package/src/lib/design/system/sketch/merge.js +145 -0
- package/src/lib/design/system/sketch/merge.js.map +1 -0
- package/src/lib/design/system/sketch/merged-parts.d.ts +59 -0
- package/src/lib/design/system/sketch/merged-parts.js +134 -0
- package/src/lib/design/system/sketch/merged-parts.js.map +1 -0
- package/src/lib/design/system/sketch/no-visible-change.d.ts +15 -0
- package/src/lib/design/system/sketch/no-visible-change.js +70 -0
- package/src/lib/design/system/sketch/no-visible-change.js.map +1 -0
- package/src/lib/design/system/sketch/overlay.d.ts +20 -0
- package/src/lib/design/system/sketch/overlay.js +38 -0
- package/src/lib/design/system/sketch/overlay.js.map +1 -0
- package/src/lib/design/system/sketch/part-definition.d.ts +31 -0
- package/src/lib/design/system/sketch/part-definition.js +157 -0
- package/src/lib/design/system/sketch/part-definition.js.map +1 -0
- package/src/lib/design/system/sketch/shared-class.d.ts +9 -0
- package/src/lib/design/system/sketch/shared-class.js +65 -0
- package/src/lib/design/system/sketch/shared-class.js.map +1 -0
- package/src/lib/design/system/sketch/sketch.d.ts +221 -0
- package/src/lib/design/system/sketch/sketch.js +481 -0
- package/src/lib/design/system/sketch/sketch.js.map +1 -0
- package/src/lib/design/system/sketch/unchanged-states.d.ts +23 -0
- package/src/lib/design/system/sketch/unchanged-states.js +144 -0
- package/src/lib/design/system/sketch/unchanged-states.js.map +1 -0
- package/src/lib/design/system/sketch/unused-files.d.ts +10 -0
- package/src/lib/design/system/sketch/unused-files.js +56 -0
- package/src/lib/design/system/sketch/unused-files.js.map +1 -0
- package/src/lib/design/system/system-command.d.ts +9 -0
- package/src/lib/design/system/system-command.js +56 -0
- package/src/lib/design/system/system-command.js.map +1 -0
- package/src/lib/design/system/system-modules.d.ts +58 -0
- package/src/lib/design/system/system-modules.js +189 -0
- package/src/lib/design/system/system-modules.js.map +1 -0
- package/src/lib/design/system/system-tsconfig.d.ts +26 -0
- package/src/lib/design/system/system-tsconfig.js +68 -0
- package/src/lib/design/system/system-tsconfig.js.map +1 -0
- package/src/lib/design/system/ts-source.d.ts +13 -0
- package/src/lib/design/system/ts-source.js +108 -0
- package/src/lib/design/system/ts-source.js.map +1 -0
- package/src/lib/design/system-use.js.map +1 -1
- package/src/lib/design/thumb.d.ts +67 -0
- package/src/lib/design/thumb.js +222 -0
- package/src/lib/design/thumb.js.map +1 -0
- package/src/lib/design/typecheck.d.ts +27 -0
- package/src/lib/design/typecheck.js +60 -0
- package/src/lib/design/typecheck.js.map +1 -0
- package/src/lib/design/variant-diff.d.ts +48 -0
- package/src/lib/design/variant-diff.js +77 -0
- package/src/lib/design/variant-diff.js.map +1 -0
- package/src/lib/design/vite-paths.d.ts +2 -0
- package/src/lib/design/vite-paths.js +10 -1
- package/src/lib/design/vite-paths.js.map +1 -1
- package/src/lib/doctor/doctor-command.js.map +1 -1
- package/src/lib/doctor/index.js.map +1 -1
- package/src/lib/index.js.map +1 -1
- package/src/lib/invocation.js +6 -2
- package/src/lib/invocation.js.map +1 -1
- package/src/lib/release.js.map +1 -1
- package/src/lib/update/agent-rules-sync.js.map +1 -1
- package/src/lib/update/agent-setup.js.map +1 -1
- package/src/lib/update/ai.js.map +1 -1
- package/src/lib/update/args.js.map +1 -1
- package/src/lib/update/available-migrations.js.map +1 -1
- package/src/lib/update/commits.js.map +1 -1
- package/src/lib/update/gitignore.js.map +1 -1
- package/src/lib/update/index.js.map +1 -1
- package/src/lib/update/migration-manifest.js.map +1 -1
- package/src/lib/update/migration-record.js.map +1 -1
- package/src/lib/update/migrations-command.js +14 -4
- package/src/lib/update/migrations-command.js.map +1 -1
- package/src/lib/update/package-manager.d.ts +1 -1
- package/src/lib/update/package-manager.js.map +1 -1
- package/src/lib/update/packages.js.map +1 -1
- package/src/lib/update/pending.js.map +1 -1
- package/src/lib/update/plan.js.map +1 -1
- package/src/lib/update/registry.js.map +1 -1
- package/src/lib/update/run-migrations.js.map +1 -1
- package/src/lib/update/scan.js +8 -3
- package/src/lib/update/scan.js.map +1 -1
- package/src/lib/update/semver.js.map +1 -1
- package/src/lib/update/tasks.js.map +1 -1
- package/src/lib/update/update-command.js.map +1 -1
- package/src/lib/utils.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr-shims.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"ssr-shims.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/ssr-shims.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stamp.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"stamp.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/stamp.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,8 @@ export type CallStatus = {
|
|
|
6
6
|
message?: string;
|
|
7
7
|
};
|
|
8
8
|
/**
|
|
9
|
-
* Where the state of one call is kept: next to Ethlete Studio's check receipts
|
|
10
|
-
*
|
|
9
|
+
* Where the state of one call is kept: next to Ethlete Studio's check receipts. Studio watches the
|
|
10
|
+
* folder for the `.status.json` suffix in `apps/ethlete-studio/src-tauri/src/call_status.rs`. Both sides must agree.
|
|
11
11
|
*/
|
|
12
12
|
export declare const statusPath: (options: {
|
|
13
13
|
checkout: string;
|
package/src/lib/design/status.js
CHANGED
|
@@ -9,8 +9,8 @@ exports.CALL_STATES = ['scaffolded', 'drawing', 'checking', 'ready', 'failed'];
|
|
|
9
9
|
const MESSAGE_LIMIT = 400;
|
|
10
10
|
const flattened = (value) => value.replace(/[^A-Za-z0-9]/gu, '-');
|
|
11
11
|
/**
|
|
12
|
-
* Where the state of one call is kept: next to Ethlete Studio's check receipts
|
|
13
|
-
*
|
|
12
|
+
* Where the state of one call is kept: next to Ethlete Studio's check receipts. Studio watches the
|
|
13
|
+
* folder for the `.status.json` suffix in `apps/ethlete-studio/src-tauri/src/call_status.rs`. Both sides must agree.
|
|
14
14
|
*/
|
|
15
15
|
const statusPath = (options) => (0, path_1.join)((0, os_1.tmpdir)(), 'ethlete-studio-checks', `${flattened(`${options.checkout} ${options.slug}`)}.status.json`);
|
|
16
16
|
exports.statusPath = statusPath;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { IncomingMessage } from 'http';
|
|
2
|
+
import { PictureOf } from './merge-compare';
|
|
3
|
+
import { BoxOf } from './variant-diff';
|
|
4
|
+
import { SketchVariant } from './system/system-modules';
|
|
5
|
+
export declare const SKETCHES_PATH = "/__design/sketches";
|
|
6
|
+
export declare const SKETCH_PREVIEW_PATH = "/__design/sketch-preview";
|
|
7
|
+
export declare const SKETCH_COMPARE_PATH = "/__design/sketch-compare";
|
|
8
|
+
export declare const SKETCH_DIFF_PATH = "/__design/sketch-diff";
|
|
9
|
+
export declare const SKETCH_DECISION_PATH = "/__design/sketch-decision";
|
|
10
|
+
export declare const SKETCH_MERGE_PATH = "/__design/sketch-merge";
|
|
11
|
+
export declare const SKETCH_DISCARD_PATH = "/__design/sketch-discard";
|
|
12
|
+
export declare const COMMENTS_PATH = "/__design/comments";
|
|
13
|
+
export declare const COMMENT_PATH = "/__design/comment";
|
|
14
|
+
export declare const COMMENT_DONE_PATH = "/__design/comment-done";
|
|
15
|
+
export declare const COMMENT_WITHDRAW_PATH = "/__design/comment-withdraw";
|
|
16
|
+
export declare const COMMENT_REPLY_PATH = "/__design/comment-reply";
|
|
17
|
+
export declare const COMMENT_EVENTS_PATH = "/__design/comment-events";
|
|
18
|
+
export declare const FLOWS_PATH = "/__design/flows";
|
|
19
|
+
export declare const NOTES_PATH = "/__design/notes";
|
|
20
|
+
export declare const NOTE_PATH = "/__design/note";
|
|
21
|
+
export declare const NOTE_CHANGE_PATH = "/__design/note-change";
|
|
22
|
+
export declare const NOTE_DELETE_PATH = "/__design/note-delete";
|
|
23
|
+
export declare const FLOW_NOTE_PATH = "/__design/flow-note";
|
|
24
|
+
export declare const FLOW_NOTE_CHANGE_PATH = "/__design/flow-note-change";
|
|
25
|
+
export declare const FLOW_NOTE_DELETE_PATH = "/__design/flow-note-delete";
|
|
26
|
+
export type Answer = {
|
|
27
|
+
status: number;
|
|
28
|
+
body: unknown;
|
|
29
|
+
};
|
|
30
|
+
/** Answers with the module of a part file as one variant of a sketch draws it, or as the product does without one. */
|
|
31
|
+
export type VariantPartLoader = (options: {
|
|
32
|
+
file: string;
|
|
33
|
+
product: string;
|
|
34
|
+
sketch: SketchVariant | null;
|
|
35
|
+
}) => Promise<unknown>;
|
|
36
|
+
type Asked = {
|
|
37
|
+
target: string;
|
|
38
|
+
url: URL;
|
|
39
|
+
request: IncomingMessage;
|
|
40
|
+
load?: VariantPartLoader;
|
|
41
|
+
pictureOf?: PictureOf;
|
|
42
|
+
boxOf?: BoxOf;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* The open sketches of `?product=`, each with its variants, status, decision, the rule problems of every
|
|
46
|
+
* variant, the states, widths and interactions of the target as each variant draws it (`targets`), with the states it
|
|
47
|
+
* draws the same as the product now (`unchanged`), and the live report
|
|
48
|
+
* of the agent (`report`, `null` when none runs).
|
|
49
|
+
*/
|
|
50
|
+
export declare const sketchesAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
51
|
+
/** `?product=&sketch=<layer>/<name>&variant=`: the parts a merge of that variant changes and the elements and pages that show them. */
|
|
52
|
+
export declare const sketchPreviewAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
53
|
+
/**
|
|
54
|
+
* `?product=&sketch=&variant=` with optional `size=` (a preset or a width) and `surface=`/`color=`: each state of every
|
|
55
|
+
* element and page that shows the sketch target, drawn now and after merging the variant, split into `changed` and
|
|
56
|
+
* `unchanged` by whether any pixel differs, with the outline of every instance of the target in both pictures.
|
|
57
|
+
*/
|
|
58
|
+
export declare const sketchCompareAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
59
|
+
/**
|
|
60
|
+
* `?product=&sketch=&variant=&size=`: per state of the sketched part, the box of the pixels the variant changes
|
|
61
|
+
* against the product now, at rest, in the theme of `surface` and `color`.
|
|
62
|
+
*/
|
|
63
|
+
export declare const sketchDiffAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
64
|
+
/** POST `?product=&sketch=`, body `{ kind: 'pick', variant, comment? }` or `{ kind: 'discard', comment? }`: writes the decision into sketch.json. */
|
|
65
|
+
export declare const sketchDecisionAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
66
|
+
/**
|
|
67
|
+
* POST `?product=&sketch=`, body `{ note? }`: merges the picked variant into the product, as `et design sketch merge` does.
|
|
68
|
+
* A merge refused for a stale baseline answers 422 with `changed` (the parts, `[]` without a baseline) and the `rebase` command.
|
|
69
|
+
*/
|
|
70
|
+
export declare const sketchMergeAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
71
|
+
/** POST `?product=&sketch=`: deletes the sketch with all its variants, as `et design sketch discard` does. */
|
|
72
|
+
export declare const sketchDiscardAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
73
|
+
/**
|
|
74
|
+
* `?product=[&part=<layer>/<name>]`: every comment with its `replies`, oldest first, each with the reason it
|
|
75
|
+
* is stale or `null`, its `threadState` (`agent`, `question` or `answered`) and, once closed, its `resolved`.
|
|
76
|
+
*/
|
|
77
|
+
export declare const commentsAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
78
|
+
/** POST `?product=`, body `{ part, state, size, text, interaction?, point?: { x, y }, sketch?: { target, variant } }`: writes a canvas comment. */
|
|
79
|
+
export declare const commentAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
80
|
+
/** POST `?product=`, body `{ id, note? }`: the user resolves an open or addressed comment in Studio. */
|
|
81
|
+
export declare const commentDoneAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
82
|
+
/** POST `?product=`, body `{ id }`: deletes a comment without a note, as the user withdraws it in Studio. */
|
|
83
|
+
export declare const commentWithdrawAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
84
|
+
/** POST `?product=`, body `{ id, text }`: adds a reply by the user to a comment thread. Answers with the updated comment. */
|
|
85
|
+
export declare const commentReplyAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
86
|
+
/** `?product=`: the product's flows by name, each with its frames, its lines and what the flow rule finds in it. */
|
|
87
|
+
export declare const flowsAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
88
|
+
/** `?product=`: the notes on the product's states, each with the reason its part or state is gone, or `null`. */
|
|
89
|
+
export declare const notesAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
90
|
+
/** POST `?product=`, body `{ part, state, text, point?: { x, y }, size? }`: writes a note on a state into `<product>/notes/`; a point needs its size. */
|
|
91
|
+
export declare const noteAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
92
|
+
/** POST `?product=`, body `{ id, text?, point?: { x, y } | null, size? }`: changes a note on a state; `point: null` drops its point and size. */
|
|
93
|
+
export declare const noteChangeAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
94
|
+
/** POST `?product=`, body `{ id }`: deletes a note on a state. */
|
|
95
|
+
export declare const noteDeleteAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
96
|
+
/** POST `?product=&flow=`, body `{ text, at?: { x, y } }`: adds a free note to `<product>/flows/<flow>.json`. */
|
|
97
|
+
export declare const flowNoteAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
98
|
+
/** POST `?product=&flow=`, body `{ id, text?, at?: { x, y } | null }`: changes a free note of a flow; `at: null` lets Studio place it. */
|
|
99
|
+
export declare const flowNoteChangeAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
100
|
+
/** POST `?product=&flow=`, body `{ id }`: deletes a free note of a flow. */
|
|
101
|
+
export declare const flowNoteDeleteAnswer: (asked: Asked) => Answer | Promise<Answer>;
|
|
102
|
+
export {};
|
|
@@ -0,0 +1,452 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
12
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
13
|
+
var m = o[Symbol.asyncIterator], i;
|
|
14
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
15
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
16
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
17
|
+
};
|
|
18
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
19
|
+
var t = {};
|
|
20
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
21
|
+
t[p] = s[p];
|
|
22
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
23
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
24
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
25
|
+
t[p[i]] = s[p[i]];
|
|
26
|
+
}
|
|
27
|
+
return t;
|
|
28
|
+
};
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
exports.flowNoteDeleteAnswer = exports.flowNoteChangeAnswer = exports.flowNoteAnswer = exports.noteDeleteAnswer = exports.noteChangeAnswer = exports.noteAnswer = exports.notesAnswer = exports.flowsAnswer = exports.commentReplyAnswer = exports.commentWithdrawAnswer = exports.commentDoneAnswer = exports.commentAnswer = exports.commentsAnswer = exports.sketchDiscardAnswer = exports.sketchMergeAnswer = exports.sketchDecisionAnswer = exports.sketchDiffAnswer = exports.sketchCompareAnswer = exports.sketchPreviewAnswer = exports.sketchesAnswer = exports.FLOW_NOTE_DELETE_PATH = exports.FLOW_NOTE_CHANGE_PATH = exports.FLOW_NOTE_PATH = exports.NOTE_DELETE_PATH = exports.NOTE_CHANGE_PATH = exports.NOTE_PATH = exports.NOTES_PATH = exports.FLOWS_PATH = exports.COMMENT_EVENTS_PATH = exports.COMMENT_REPLY_PATH = exports.COMMENT_WITHDRAW_PATH = exports.COMMENT_DONE_PATH = exports.COMMENT_PATH = exports.COMMENTS_PATH = exports.SKETCH_DISCARD_PATH = exports.SKETCH_MERGE_PATH = exports.SKETCH_DECISION_PATH = exports.SKETCH_DIFF_PATH = exports.SKETCH_COMPARE_PATH = exports.SKETCH_PREVIEW_PATH = exports.SKETCHES_PATH = void 0;
|
|
31
|
+
const path_1 = require("path");
|
|
32
|
+
const invocation_1 = require("../invocation");
|
|
33
|
+
const paths_1 = require("./paths");
|
|
34
|
+
const comment_1 = require("./system/comments/comment");
|
|
35
|
+
const flow_1 = require("./system/flows/flow");
|
|
36
|
+
const note_1 = require("./system/notes/note");
|
|
37
|
+
const flow_2 = require("./system/rules/flow");
|
|
38
|
+
const check_sketches_1 = require("./system/sketch/check-sketches");
|
|
39
|
+
const cli_args_1 = require("./system/sketch/cli-args");
|
|
40
|
+
const merge_1 = require("./system/sketch/merge");
|
|
41
|
+
const list_system_1 = require("./system/list-system");
|
|
42
|
+
const merge_compare_1 = require("./merge-compare");
|
|
43
|
+
const variant_diff_1 = require("./variant-diff");
|
|
44
|
+
const merge_preview_1 = require("./system/sketch/merge-preview");
|
|
45
|
+
const overlay_1 = require("./system/sketch/overlay");
|
|
46
|
+
const sketch_1 = require("./system/sketch/sketch");
|
|
47
|
+
const resolve_product_1 = require("./system/resolve-product");
|
|
48
|
+
const unchanged_states_1 = require("./system/sketch/unchanged-states");
|
|
49
|
+
exports.SKETCHES_PATH = '/__design/sketches';
|
|
50
|
+
exports.SKETCH_PREVIEW_PATH = '/__design/sketch-preview';
|
|
51
|
+
exports.SKETCH_COMPARE_PATH = '/__design/sketch-compare';
|
|
52
|
+
exports.SKETCH_DIFF_PATH = '/__design/sketch-diff';
|
|
53
|
+
exports.SKETCH_DECISION_PATH = '/__design/sketch-decision';
|
|
54
|
+
exports.SKETCH_MERGE_PATH = '/__design/sketch-merge';
|
|
55
|
+
exports.SKETCH_DISCARD_PATH = '/__design/sketch-discard';
|
|
56
|
+
exports.COMMENTS_PATH = '/__design/comments';
|
|
57
|
+
exports.COMMENT_PATH = '/__design/comment';
|
|
58
|
+
exports.COMMENT_DONE_PATH = '/__design/comment-done';
|
|
59
|
+
exports.COMMENT_WITHDRAW_PATH = '/__design/comment-withdraw';
|
|
60
|
+
exports.COMMENT_REPLY_PATH = '/__design/comment-reply';
|
|
61
|
+
exports.COMMENT_EVENTS_PATH = '/__design/comment-events';
|
|
62
|
+
exports.FLOWS_PATH = '/__design/flows';
|
|
63
|
+
exports.NOTES_PATH = '/__design/notes';
|
|
64
|
+
exports.NOTE_PATH = '/__design/note';
|
|
65
|
+
exports.NOTE_CHANGE_PATH = '/__design/note-change';
|
|
66
|
+
exports.NOTE_DELETE_PATH = '/__design/note-delete';
|
|
67
|
+
exports.FLOW_NOTE_PATH = '/__design/flow-note';
|
|
68
|
+
exports.FLOW_NOTE_CHANGE_PATH = '/__design/flow-note-change';
|
|
69
|
+
exports.FLOW_NOTE_DELETE_PATH = '/__design/flow-note-delete';
|
|
70
|
+
const failure = (status, message) => ({ status, body: { error: message } });
|
|
71
|
+
const productOf = ({ target, url }) => {
|
|
72
|
+
const asked = url.searchParams.get('product');
|
|
73
|
+
const config = (0, paths_1.readConfig)(target);
|
|
74
|
+
if (!config)
|
|
75
|
+
return failure(404, 'no design config');
|
|
76
|
+
if (!asked)
|
|
77
|
+
return failure(400, 'product is required');
|
|
78
|
+
const product = (0, cli_args_1.oneProductOf)({ target, config, asked });
|
|
79
|
+
return typeof product === 'string' ? failure(404, product) : { config, product };
|
|
80
|
+
};
|
|
81
|
+
const isAnswer = (value) => 'status' in value;
|
|
82
|
+
const bodyOf = (request) => __awaiter(void 0, void 0, void 0, function* () {
|
|
83
|
+
var _a, request_1, request_1_1;
|
|
84
|
+
var _b, e_1, _c, _d;
|
|
85
|
+
const chunks = [];
|
|
86
|
+
try {
|
|
87
|
+
for (_a = true, request_1 = __asyncValues(request); request_1_1 = yield request_1.next(), _b = request_1_1.done, !_b; _a = true) {
|
|
88
|
+
_d = request_1_1.value;
|
|
89
|
+
_a = false;
|
|
90
|
+
const chunk = _d;
|
|
91
|
+
chunks.push(Buffer.from(chunk));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
95
|
+
finally {
|
|
96
|
+
try {
|
|
97
|
+
if (!_a && !_b && (_c = request_1.return)) yield _c.call(request_1);
|
|
98
|
+
}
|
|
99
|
+
finally { if (e_1) throw e_1.error; }
|
|
100
|
+
}
|
|
101
|
+
try {
|
|
102
|
+
const parsed = JSON.parse(Buffer.concat(chunks).toString('utf8') || '{}');
|
|
103
|
+
return parsed !== null && typeof parsed === 'object' && !Array.isArray(parsed)
|
|
104
|
+
? parsed
|
|
105
|
+
: null;
|
|
106
|
+
}
|
|
107
|
+
catch (_e) {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
const textOf = (value) => (typeof value === 'string' && value !== '' ? value : undefined);
|
|
112
|
+
const withProduct = (method, run) => (asked) => {
|
|
113
|
+
var _a;
|
|
114
|
+
if (((_a = asked.request.method) !== null && _a !== void 0 ? _a : 'GET') !== method)
|
|
115
|
+
return failure(405, method === 'POST' ? 'POST only' : 'GET only');
|
|
116
|
+
const found = productOf(asked);
|
|
117
|
+
return isAnswer(found) ? found : run(Object.assign(Object.assign({}, found), { asked }));
|
|
118
|
+
};
|
|
119
|
+
const withSketch = (method, run) => withProduct(method, (found) => {
|
|
120
|
+
var _a;
|
|
121
|
+
const parsed = (0, sketch_1.parseTarget)((_a = found.asked.url.searchParams.get('sketch')) !== null && _a !== void 0 ? _a : undefined);
|
|
122
|
+
if (typeof parsed === 'string')
|
|
123
|
+
return failure(400, parsed);
|
|
124
|
+
const sketch = (0, sketch_1.findSketch)({ productDir: found.product.dir, product: found.product.name, sketch: parsed });
|
|
125
|
+
if (sketch === null)
|
|
126
|
+
return failure(404, `no sketch on ${parsed.layer}/${parsed.name} in ${found.product.name}`);
|
|
127
|
+
if (typeof sketch === 'string')
|
|
128
|
+
return failure(422, sketch);
|
|
129
|
+
return run(Object.assign(Object.assign({}, found), { sketch }));
|
|
130
|
+
});
|
|
131
|
+
const problemOf = ({ target, problem }) => ({
|
|
132
|
+
rule: problem.rule,
|
|
133
|
+
file: (0, path_1.relative)(target, problem.file),
|
|
134
|
+
message: problem.message,
|
|
135
|
+
});
|
|
136
|
+
const sketchOf = (_a) => {
|
|
137
|
+
var _b = _a.sketch, { dir } = _b, sketch = __rest(_b, ["dir"]), { target } = _a;
|
|
138
|
+
return (Object.assign(Object.assign({}, sketch), { dir: (0, path_1.relative)(target, dir) }));
|
|
139
|
+
};
|
|
140
|
+
const commentOf = ({ comment, target, product, }) => {
|
|
141
|
+
const { file } = comment, rest = __rest(comment, ["file"]);
|
|
142
|
+
return Object.assign(Object.assign({}, rest), { file: (0, path_1.relative)(target, file), stale: (0, comment_1.isOpenComment)(comment) ? (0, comment_1.staleReasonOf)({ product, comment }) : null, threadState: (0, comment_1.threadStateOf)(comment) });
|
|
143
|
+
};
|
|
144
|
+
const targetsOf = (_a) => __awaiter(void 0, [_a], void 0, function* ({ product, sketch, load, pictureOf, }) {
|
|
145
|
+
return Promise.all(sketch.variants.map((variant) => __awaiter(void 0, void 0, void 0, function* () {
|
|
146
|
+
var _a;
|
|
147
|
+
const file = (_a = (0, overlay_1.overlaySketch)({ product, sketch, variant }).parts.find((part) => (0, resolve_product_1.partKeyOf)(part) === sketch.target)) === null || _a === void 0 ? void 0 : _a.file;
|
|
148
|
+
if (!file || !load)
|
|
149
|
+
return Object.assign({ variant, states: [], interactions: [] }, (file ? {} : { error: `variant ${variant} has no part ${sketch.target}` }));
|
|
150
|
+
const _b = yield (0, list_system_1.readPartModule)({
|
|
151
|
+
part: { file },
|
|
152
|
+
product: product.name,
|
|
153
|
+
load: () => load({ file, product: product.name, sketch: { target: sketch.target, variant } }),
|
|
154
|
+
}), { states, interactions, problem } = _b, widths = __rest(_b, ["states", "interactions", "problem"]);
|
|
155
|
+
return Object.assign(Object.assign(Object.assign({ variant,
|
|
156
|
+
states }, ('widths' in widths ? { widths: widths.widths } : {})), { interactions, unchanged: problem ? [] : yield (0, unchanged_states_1.unchangedStatesOf)({ product, sketch, variant, load, pictureOf }) }), (problem ? { error: problem } : {}));
|
|
157
|
+
})));
|
|
158
|
+
});
|
|
159
|
+
/**
|
|
160
|
+
* The open sketches of `?product=`, each with its variants, status, decision, the rule problems of every
|
|
161
|
+
* variant, the states, widths and interactions of the target as each variant draws it (`targets`), with the states it
|
|
162
|
+
* draws the same as the product now (`unchanged`), and the live report
|
|
163
|
+
* of the agent (`report`, `null` when none runs).
|
|
164
|
+
*/
|
|
165
|
+
exports.sketchesAnswer = withProduct('GET', (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, product }) {
|
|
166
|
+
const { target } = asked;
|
|
167
|
+
const { unreadable, variants } = (0, check_sketches_1.openSketchProblemsOf)(product);
|
|
168
|
+
const sketches = (0, sketch_1.listSketches)({ productDir: product.dir, product: product.name }).filter((sketch) => typeof sketch !== 'string');
|
|
169
|
+
return {
|
|
170
|
+
status: 200,
|
|
171
|
+
body: {
|
|
172
|
+
sketches: yield Promise.all(sketches.map((sketch) => __awaiter(void 0, void 0, void 0, function* () {
|
|
173
|
+
return (Object.assign(Object.assign({}, sketchOf({ sketch, target })), { problems: variants
|
|
174
|
+
.filter((entry) => entry.sketch.target === sketch.target)
|
|
175
|
+
.map((entry) => ({
|
|
176
|
+
variant: entry.variant,
|
|
177
|
+
problems: entry.problems.map((p) => problemOf({ target, problem: p })),
|
|
178
|
+
})), targets: yield targetsOf({ product, sketch, load: asked.load, pictureOf: asked.pictureOf }), report: (0, sketch_1.readSketchReport)({ checkout: target, sketch }) }));
|
|
179
|
+
}))),
|
|
180
|
+
unreadable: unreadable.map((problem) => problemOf({ target, problem })),
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
}));
|
|
184
|
+
/** `?product=&sketch=<layer>/<name>&variant=`: the parts a merge of that variant changes and the elements and pages that show them. */
|
|
185
|
+
exports.sketchPreviewAnswer = withSketch('GET', ({ asked, product, sketch }) => {
|
|
186
|
+
var _a;
|
|
187
|
+
const variant = (_a = asked.url.searchParams.get('variant')) !== null && _a !== void 0 ? _a : '';
|
|
188
|
+
return sketch.variants.includes(variant)
|
|
189
|
+
? { status: 200, body: Object.assign({ target: sketch.target }, (0, merge_preview_1.mergePreviewOf)({ product, sketch, variant })) }
|
|
190
|
+
: failure(404, `${sketch.target} has no variant "${variant}"`);
|
|
191
|
+
});
|
|
192
|
+
/**
|
|
193
|
+
* `?product=&sketch=&variant=` with optional `size=` (a preset or a width) and `surface=`/`color=`: each state of every
|
|
194
|
+
* element and page that shows the sketch target, drawn now and after merging the variant, split into `changed` and
|
|
195
|
+
* `unchanged` by whether any pixel differs, with the outline of every instance of the target in both pictures.
|
|
196
|
+
*/
|
|
197
|
+
exports.sketchCompareAnswer = withSketch('GET', (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, product, sketch }) {
|
|
198
|
+
var _b;
|
|
199
|
+
const variant = (_b = asked.url.searchParams.get('variant')) !== null && _b !== void 0 ? _b : '';
|
|
200
|
+
const { load, pictureOf } = asked;
|
|
201
|
+
if (!sketch.variants.includes(variant))
|
|
202
|
+
return failure(404, `${sketch.target} has no variant "${variant}"`);
|
|
203
|
+
if (!load || !pictureOf)
|
|
204
|
+
return failure(503, 'this server draws no pictures');
|
|
205
|
+
return {
|
|
206
|
+
status: 200,
|
|
207
|
+
body: yield (0, merge_compare_1.compareMerge)({
|
|
208
|
+
product,
|
|
209
|
+
sketch,
|
|
210
|
+
variant,
|
|
211
|
+
size: asked.url.searchParams.get('size'),
|
|
212
|
+
params: asked.url.searchParams,
|
|
213
|
+
pictureOf,
|
|
214
|
+
load: ({ file, product: name }) => load({ file, product: name, sketch: null }),
|
|
215
|
+
}),
|
|
216
|
+
};
|
|
217
|
+
}));
|
|
218
|
+
/**
|
|
219
|
+
* `?product=&sketch=&variant=&size=`: per state of the sketched part, the box of the pixels the variant changes
|
|
220
|
+
* against the product now, at rest, in the theme of `surface` and `color`.
|
|
221
|
+
*/
|
|
222
|
+
exports.sketchDiffAnswer = withSketch('GET', (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, product, sketch }) {
|
|
223
|
+
var _b;
|
|
224
|
+
const variant = (_b = asked.url.searchParams.get('variant')) !== null && _b !== void 0 ? _b : '';
|
|
225
|
+
const { load, pictureOf, boxOf } = asked;
|
|
226
|
+
if (!sketch.variants.includes(variant))
|
|
227
|
+
return failure(404, `${sketch.target} has no variant "${variant}"`);
|
|
228
|
+
if (!load || !pictureOf || !boxOf)
|
|
229
|
+
return failure(503, 'this server draws no pictures');
|
|
230
|
+
return {
|
|
231
|
+
status: 200,
|
|
232
|
+
body: yield (0, variant_diff_1.diffVariant)({
|
|
233
|
+
product,
|
|
234
|
+
sketch,
|
|
235
|
+
variant,
|
|
236
|
+
size: asked.url.searchParams.get('size'),
|
|
237
|
+
params: asked.url.searchParams,
|
|
238
|
+
pictureOf,
|
|
239
|
+
boxOf,
|
|
240
|
+
load,
|
|
241
|
+
}),
|
|
242
|
+
};
|
|
243
|
+
}));
|
|
244
|
+
/** POST `?product=&sketch=`, body `{ kind: 'pick', variant, comment? }` or `{ kind: 'discard', comment? }`: writes the decision into sketch.json. */
|
|
245
|
+
exports.sketchDecisionAnswer = withSketch('POST', (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, sketch }) {
|
|
246
|
+
const body = yield bodyOf(asked.request);
|
|
247
|
+
const comment = textOf(body === null || body === void 0 ? void 0 : body['comment']);
|
|
248
|
+
const variant = textOf(body === null || body === void 0 ? void 0 : body['variant']);
|
|
249
|
+
if ((body === null || body === void 0 ? void 0 : body['kind']) !== 'pick' && (body === null || body === void 0 ? void 0 : body['kind']) !== 'discard')
|
|
250
|
+
return failure(400, 'kind must be pick or discard');
|
|
251
|
+
if (body['kind'] === 'pick' && !variant)
|
|
252
|
+
return failure(400, 'a pick needs a variant');
|
|
253
|
+
const decided = (0, sketch_1.decideSketch)({
|
|
254
|
+
sketch,
|
|
255
|
+
decision: body['kind'] === 'pick' && variant
|
|
256
|
+
? Object.assign({ kind: 'pick', variant }, (comment ? { comment } : {})) : Object.assign({ kind: 'discard' }, (comment ? { comment } : {})),
|
|
257
|
+
});
|
|
258
|
+
return typeof decided === 'string'
|
|
259
|
+
? failure(422, decided)
|
|
260
|
+
: { status: 200, body: sketchOf({ sketch: decided, target: asked.target }) };
|
|
261
|
+
}));
|
|
262
|
+
/**
|
|
263
|
+
* POST `?product=&sketch=`, body `{ note? }`: merges the picked variant into the product, as `et design sketch merge` does.
|
|
264
|
+
* A merge refused for a stale baseline answers 422 with `changed` (the parts, `[]` without a baseline) and the `rebase` command.
|
|
265
|
+
*/
|
|
266
|
+
exports.sketchMergeAnswer = withSketch('POST', (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, config, product, sketch }) {
|
|
267
|
+
const body = yield bodyOf(asked.request);
|
|
268
|
+
const note = textOf(body === null || body === void 0 ? void 0 : body['note']);
|
|
269
|
+
const merged = (0, merge_1.mergeSketch)({ target: asked.target, config, product, sketch, note });
|
|
270
|
+
if (Array.isArray(merged))
|
|
271
|
+
return { status: 200, body: { merged } };
|
|
272
|
+
if (!merged.changed)
|
|
273
|
+
return failure(422, merged.reason);
|
|
274
|
+
return {
|
|
275
|
+
status: 422,
|
|
276
|
+
body: {
|
|
277
|
+
error: merged.reason,
|
|
278
|
+
changed: merged.changed,
|
|
279
|
+
rebase: `${(0, invocation_1.repoInvocation)({ root: asked.target, subcommand: 'design' })} sketch rebase ${sketch.target} --product ${product.name} --by <model id>`,
|
|
280
|
+
},
|
|
281
|
+
};
|
|
282
|
+
}));
|
|
283
|
+
/** POST `?product=&sketch=`: deletes the sketch with all its variants, as `et design sketch discard` does. */
|
|
284
|
+
exports.sketchDiscardAnswer = withSketch('POST', ({ asked, sketch }) => {
|
|
285
|
+
const problem = (0, merge_1.discardSketch)({ target: asked.target, sketch });
|
|
286
|
+
return problem ? failure(422, problem) : { status: 200, body: { discarded: sketch.target } };
|
|
287
|
+
});
|
|
288
|
+
/**
|
|
289
|
+
* `?product=[&part=<layer>/<name>]`: every comment with its `replies`, oldest first, each with the reason it
|
|
290
|
+
* is stale or `null`, its `threadState` (`agent`, `question` or `answered`) and, once closed, its `resolved`.
|
|
291
|
+
*/
|
|
292
|
+
exports.commentsAnswer = withProduct('GET', ({ asked, product }) => {
|
|
293
|
+
const part = asked.url.searchParams.get('part');
|
|
294
|
+
const { comments, unreadable } = (0, comment_1.listComments)({ productDir: product.dir, product: product.name, all: true });
|
|
295
|
+
return {
|
|
296
|
+
status: 200,
|
|
297
|
+
body: {
|
|
298
|
+
comments: comments
|
|
299
|
+
.filter((comment) => !part || comment.part === part)
|
|
300
|
+
.map((comment) => commentOf({ comment, target: asked.target, product })),
|
|
301
|
+
unreadable: unreadable.map(({ file, problem }) => ({ file: (0, path_1.relative)(asked.target, file), problem })),
|
|
302
|
+
},
|
|
303
|
+
};
|
|
304
|
+
});
|
|
305
|
+
/** POST `?product=`, body `{ part, state, size, text, interaction?, point?: { x, y }, sketch?: { target, variant } }`: writes a canvas comment. */
|
|
306
|
+
exports.commentAnswer = withProduct('POST', (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, product }) {
|
|
307
|
+
const body = yield bodyOf(asked.request);
|
|
308
|
+
if (!body)
|
|
309
|
+
return failure(400, 'the body must be a JSON object');
|
|
310
|
+
const { part, state, size, text, interaction, point, sketch } = body;
|
|
311
|
+
const created = (0, comment_1.createComment)({
|
|
312
|
+
product,
|
|
313
|
+
comment: Object.assign(Object.assign(Object.assign({ part: part, state: state, size: size, text: text }, (interaction === undefined ? {} : { interaction: interaction })), (point === undefined ? {} : { point: point })), (sketch === undefined ? {} : { sketch: sketch })),
|
|
314
|
+
});
|
|
315
|
+
return typeof created === 'string'
|
|
316
|
+
? failure(422, created)
|
|
317
|
+
: { status: 200, body: commentOf({ comment: created, target: asked.target, product }) };
|
|
318
|
+
}));
|
|
319
|
+
/** POST `?product=`, body `{ id, note? }`: the user resolves an open or addressed comment in Studio. */
|
|
320
|
+
exports.commentDoneAnswer = withProduct('POST', (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, product }) {
|
|
321
|
+
const body = yield bodyOf(asked.request);
|
|
322
|
+
const id = textOf(body === null || body === void 0 ? void 0 : body['id']);
|
|
323
|
+
if (!id)
|
|
324
|
+
return failure(400, 'the body must be { id, note? }');
|
|
325
|
+
const done = (0, comment_1.resolveComment)({
|
|
326
|
+
products: [{ name: product.name, dir: product.dir }],
|
|
327
|
+
id,
|
|
328
|
+
note: textOf(body === null || body === void 0 ? void 0 : body['note']),
|
|
329
|
+
});
|
|
330
|
+
return typeof done === 'string'
|
|
331
|
+
? failure(done.startsWith('no open comment') ? 404 : 422, done)
|
|
332
|
+
: { status: 200, body: { id: done.id } };
|
|
333
|
+
}));
|
|
334
|
+
/** POST `?product=`, body `{ id }`: deletes a comment without a note, as the user withdraws it in Studio. */
|
|
335
|
+
exports.commentWithdrawAnswer = withProduct('POST', (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, product }) {
|
|
336
|
+
const body = yield bodyOf(asked.request);
|
|
337
|
+
const id = textOf(body === null || body === void 0 ? void 0 : body['id']);
|
|
338
|
+
if (!id)
|
|
339
|
+
return failure(400, 'the body must be { id }');
|
|
340
|
+
const deleted = (0, comment_1.deleteComment)({ products: [{ name: product.name, dir: product.dir }], id });
|
|
341
|
+
return typeof deleted === 'string' ? failure(404, deleted) : { status: 200, body: { id: deleted.id } };
|
|
342
|
+
}));
|
|
343
|
+
/** POST `?product=`, body `{ id, text }`: adds a reply by the user to a comment thread. Answers with the updated comment. */
|
|
344
|
+
exports.commentReplyAnswer = withProduct('POST', (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, product }) {
|
|
345
|
+
const body = yield bodyOf(asked.request);
|
|
346
|
+
const id = textOf(body === null || body === void 0 ? void 0 : body['id']);
|
|
347
|
+
const text = textOf(body === null || body === void 0 ? void 0 : body['text']);
|
|
348
|
+
if (!id || !text)
|
|
349
|
+
return failure(400, 'the body must be { id, text }');
|
|
350
|
+
const replied = (0, comment_1.replyToComment)({ products: [{ name: product.name, dir: product.dir }], id, by: 'user', text });
|
|
351
|
+
return typeof replied === 'string'
|
|
352
|
+
? failure(replied.startsWith('no open comment') ? 404 : 422, replied)
|
|
353
|
+
: { status: 200, body: commentOf({ comment: replied, target: asked.target, product }) };
|
|
354
|
+
}));
|
|
355
|
+
/** `?product=`: the product's flows by name, each with its frames, its lines and what the flow rule finds in it. */
|
|
356
|
+
exports.flowsAnswer = withProduct('GET', ({ asked, product }) => {
|
|
357
|
+
const { flows, unreadable } = (0, flow_1.listFlows)(product.dir);
|
|
358
|
+
const problems = (0, flow_2.flowProblemsOf)(product);
|
|
359
|
+
return {
|
|
360
|
+
status: 200,
|
|
361
|
+
body: {
|
|
362
|
+
flows: flows.map((_a) => {
|
|
363
|
+
var { file } = _a, flow = __rest(_a, ["file"]);
|
|
364
|
+
return (Object.assign(Object.assign({}, flow), { file: (0, path_1.relative)(asked.target, file), problems: problems
|
|
365
|
+
.filter((problem) => problem.file === file)
|
|
366
|
+
.map((problem) => problemOf({ target: asked.target, problem })) }));
|
|
367
|
+
}),
|
|
368
|
+
unreadable: unreadable.map(({ file, problem }) => ({ file: (0, path_1.relative)(asked.target, file), problem })),
|
|
369
|
+
},
|
|
370
|
+
};
|
|
371
|
+
});
|
|
372
|
+
const noteOf = ({ note, target, product }) => {
|
|
373
|
+
const { file } = note, rest = __rest(note, ["file"]);
|
|
374
|
+
return Object.assign(Object.assign({}, rest), { file: (0, path_1.relative)(target, file), stale: (0, note_1.noteProblemOf)({ product, note }) });
|
|
375
|
+
};
|
|
376
|
+
const changeOf = (body, place) => (Object.assign(Object.assign({}, (body['text'] === undefined ? {} : { text: body['text'] })), (body[place] === undefined ? {} : { [place]: body[place] })));
|
|
377
|
+
const missingNoteStatusOf = (problem) => (/^no (note|flow) |has no note /u.test(problem) ? 404 : 422);
|
|
378
|
+
/** `?product=`: the notes on the product's states, each with the reason its part or state is gone, or `null`. */
|
|
379
|
+
exports.notesAnswer = withProduct('GET', ({ asked, product }) => {
|
|
380
|
+
const { notes, unreadable } = (0, note_1.listNotes)(product.dir);
|
|
381
|
+
return {
|
|
382
|
+
status: 200,
|
|
383
|
+
body: {
|
|
384
|
+
notes: notes.map((note) => noteOf({ note, target: asked.target, product })),
|
|
385
|
+
unreadable: unreadable.map(({ file, problem }) => ({ file: (0, path_1.relative)(asked.target, file), problem })),
|
|
386
|
+
},
|
|
387
|
+
};
|
|
388
|
+
});
|
|
389
|
+
/** POST `?product=`, body `{ part, state, text, point?: { x, y }, size? }`: writes a note on a state into `<product>/notes/`; a point needs its size. */
|
|
390
|
+
exports.noteAnswer = withProduct('POST', (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, product }) {
|
|
391
|
+
const body = yield bodyOf(asked.request);
|
|
392
|
+
if (!body)
|
|
393
|
+
return failure(400, 'the body must be a JSON object');
|
|
394
|
+
const { part, state, text, point, size } = body;
|
|
395
|
+
const created = (0, note_1.createNote)({
|
|
396
|
+
product,
|
|
397
|
+
note: Object.assign(Object.assign({ part: part, state: state, text: text }, (point === undefined ? {} : { point: point })), (size === undefined ? {} : { size: size })),
|
|
398
|
+
});
|
|
399
|
+
return typeof created === 'string'
|
|
400
|
+
? failure(422, created)
|
|
401
|
+
: { status: 200, body: noteOf({ note: created, target: asked.target, product }) };
|
|
402
|
+
}));
|
|
403
|
+
/** POST `?product=`, body `{ id, text?, point?: { x, y } | null, size? }`: changes a note on a state; `point: null` drops its point and size. */
|
|
404
|
+
exports.noteChangeAnswer = withProduct('POST', (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, product }) {
|
|
405
|
+
const body = yield bodyOf(asked.request);
|
|
406
|
+
const id = textOf(body === null || body === void 0 ? void 0 : body['id']);
|
|
407
|
+
if (!body || !id)
|
|
408
|
+
return failure(400, 'the body must be { id, text?, point? }');
|
|
409
|
+
const change = Object.assign(Object.assign({}, changeOf(body, 'point')), (body['size'] === undefined ? {} : { size: body['size'] }));
|
|
410
|
+
const changed = (0, note_1.changeNote)({ productDir: product.dir, id, change });
|
|
411
|
+
return typeof changed === 'string'
|
|
412
|
+
? failure(missingNoteStatusOf(changed), changed)
|
|
413
|
+
: { status: 200, body: noteOf({ note: changed, target: asked.target, product }) };
|
|
414
|
+
}));
|
|
415
|
+
/** POST `?product=`, body `{ id }`: deletes a note on a state. */
|
|
416
|
+
exports.noteDeleteAnswer = withProduct('POST', (_a) => __awaiter(void 0, [_a], void 0, function* ({ asked, product }) {
|
|
417
|
+
const body = yield bodyOf(asked.request);
|
|
418
|
+
const id = textOf(body === null || body === void 0 ? void 0 : body['id']);
|
|
419
|
+
if (!id)
|
|
420
|
+
return failure(400, 'the body must be { id }');
|
|
421
|
+
const deleted = (0, note_1.deleteNote)({ productDir: product.dir, id });
|
|
422
|
+
return typeof deleted === 'string' ? failure(missingNoteStatusOf(deleted), deleted) : { status: 200, body: { id } };
|
|
423
|
+
}));
|
|
424
|
+
const withFlowNote = (run) => withProduct('POST', (found) => __awaiter(void 0, void 0, void 0, function* () {
|
|
425
|
+
const name = found.asked.url.searchParams.get('flow');
|
|
426
|
+
const body = yield bodyOf(found.asked.request);
|
|
427
|
+
if (!name)
|
|
428
|
+
return failure(400, 'flow is required');
|
|
429
|
+
if (!body)
|
|
430
|
+
return failure(400, 'the body must be a JSON object');
|
|
431
|
+
const answer = run(Object.assign(Object.assign({}, found), { name, body }));
|
|
432
|
+
return typeof answer === 'string' ? failure(missingNoteStatusOf(answer), answer) : { status: 200, body: answer };
|
|
433
|
+
}));
|
|
434
|
+
/** POST `?product=&flow=`, body `{ text, at?: { x, y } }`: adds a free note to `<product>/flows/<flow>.json`. */
|
|
435
|
+
exports.flowNoteAnswer = withFlowNote(({ product, name, body }) => (0, flow_1.addFlowNote)({
|
|
436
|
+
productDir: product.dir,
|
|
437
|
+
name,
|
|
438
|
+
note: Object.assign({ text: body['text'] }, (body['at'] === undefined ? {} : { at: body['at'] })),
|
|
439
|
+
}));
|
|
440
|
+
/** POST `?product=&flow=`, body `{ id, text?, at?: { x, y } | null }`: changes a free note of a flow; `at: null` lets Studio place it. */
|
|
441
|
+
exports.flowNoteChangeAnswer = withFlowNote(({ product, name, body }) => {
|
|
442
|
+
var _a;
|
|
443
|
+
return (0, flow_1.changeFlowNote)({
|
|
444
|
+
productDir: product.dir,
|
|
445
|
+
name,
|
|
446
|
+
id: String((_a = body['id']) !== null && _a !== void 0 ? _a : ''),
|
|
447
|
+
change: changeOf(body, 'at'),
|
|
448
|
+
});
|
|
449
|
+
});
|
|
450
|
+
/** POST `?product=&flow=`, body `{ id }`: deletes a free note of a flow. */
|
|
451
|
+
exports.flowNoteDeleteAnswer = withFlowNote(({ product, name, body }) => { var _a; return (0, flow_1.deleteFlowNote)({ productDir: product.dir, name, id: String((_a = body['id']) !== null && _a !== void 0 ? _a : '') }); });
|
|
452
|
+
//# sourceMappingURL=studio-api.js.map
|