@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
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.duplicateClassWarningsOf = exports.stylesheetsOf = void 0;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const css_source_1 = require("../css-source");
|
|
7
|
+
const imports_1 = require("../imports");
|
|
8
|
+
const resolve_product_1 = require("../resolve-product");
|
|
9
|
+
const ts_source_1 = require("../ts-source");
|
|
10
|
+
const bareClassesOf = (css) => (0, css_source_1.cssBlocksOf)(css).selectors.flatMap((selector) => selector
|
|
11
|
+
.split(',')
|
|
12
|
+
.map((part) => part.trim())
|
|
13
|
+
.filter((part) => /^\.[\w-]+$/u.test(part))
|
|
14
|
+
.flatMap(css_source_1.classesOf));
|
|
15
|
+
const stylesheetsOf = (options) => {
|
|
16
|
+
var _a, _b;
|
|
17
|
+
const { product, part } = options;
|
|
18
|
+
const files = new Set(part.css ? [part.css] : []);
|
|
19
|
+
for (const specifier of (0, ts_source_1.importsOf)(part.source)) {
|
|
20
|
+
const imported = (0, imports_1.classifyImport)(specifier);
|
|
21
|
+
const path = (_a = specifier.split('?')[0]) !== null && _a !== void 0 ? _a : specifier;
|
|
22
|
+
if (!path.endsWith('.css'))
|
|
23
|
+
continue;
|
|
24
|
+
if (imported.kind === 'relative')
|
|
25
|
+
files.add((0, path_1.resolve)((0, path_1.dirname)(part.file), path));
|
|
26
|
+
else if (imported.kind === 'shared')
|
|
27
|
+
files.add((_b = (0, imports_1.sharedFileOf)({ dirs: (0, imports_1.sharedDirsOf)(product), path: path.slice(imports_1.SHARED_PREFIX.length) })) !== null && _b !== void 0 ? _b : (0, path_1.resolve)(product.sharedDir, path.slice(imports_1.SHARED_PREFIX.length)));
|
|
28
|
+
else if (imported.kind === 'part' && imported.stylesheet) {
|
|
29
|
+
const owner = product.parts.find((candidate) => (0, resolve_product_1.partKeyOf)(candidate) === (0, resolve_product_1.partKeyOf)(imported));
|
|
30
|
+
if (owner === null || owner === void 0 ? void 0 : owner.css)
|
|
31
|
+
files.add(owner.css);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return [...files].filter((file) => (0, fs_1.existsSync)(file));
|
|
35
|
+
};
|
|
36
|
+
exports.stylesheetsOf = stylesheetsOf;
|
|
37
|
+
/**
|
|
38
|
+
* A warning for each class that two stylesheets loaded by one part of a variant both define as a
|
|
39
|
+
* selector of its own: the later one silently changes the earlier.
|
|
40
|
+
*/
|
|
41
|
+
const duplicateClassWarningsOf = (options) => {
|
|
42
|
+
const { target, product } = options;
|
|
43
|
+
return product.parts
|
|
44
|
+
.filter((part) => product.sketched.includes((0, resolve_product_1.partKeyOf)(part)))
|
|
45
|
+
.flatMap((part) => {
|
|
46
|
+
var _a;
|
|
47
|
+
const owners = new Map();
|
|
48
|
+
for (const file of (0, exports.stylesheetsOf)({ product, part }))
|
|
49
|
+
for (const name of new Set(bareClassesOf((0, fs_1.readFileSync)(file, 'utf8'))))
|
|
50
|
+
owners.set(name, [...((_a = owners.get(name)) !== null && _a !== void 0 ? _a : []), file]);
|
|
51
|
+
return [...owners]
|
|
52
|
+
.filter(([, files]) => files.length > 1)
|
|
53
|
+
.map(([name, files]) => `WARNING ${(0, resolve_product_1.partKeyOf)(part)}: .${name} is defined in ${files.map((file) => (0, path_1.relative)(target, file)).join(' and ')} - rename one`);
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
exports.duplicateClassWarningsOf = duplicateClassWarningsOf;
|
|
57
|
+
//# sourceMappingURL=duplicate-class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duplicate-class.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/duplicate-class.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ResolvedProduct } from '../resolve-product';
|
|
2
|
+
import { Sketch } from './sketch';
|
|
3
|
+
export type MergePreview = {
|
|
4
|
+
changed: string[];
|
|
5
|
+
affected: string[];
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* What a merge of one variant changes: the parts the variant holds, and each element and page that
|
|
9
|
+
* uses one of them, directly or through another part.
|
|
10
|
+
*/
|
|
11
|
+
export declare const mergePreviewOf: (options: {
|
|
12
|
+
product: ResolvedProduct;
|
|
13
|
+
sketch: Sketch;
|
|
14
|
+
variant: string;
|
|
15
|
+
}) => MergePreview;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mergePreviewOf = void 0;
|
|
4
|
+
const imports_1 = require("../imports");
|
|
5
|
+
const resolve_product_1 = require("../resolve-product");
|
|
6
|
+
const overlay_1 = require("./overlay");
|
|
7
|
+
const SHOWN = new Set(['elements', 'pages']);
|
|
8
|
+
const usersOf = (product) => {
|
|
9
|
+
var _a;
|
|
10
|
+
const users = new Map();
|
|
11
|
+
for (const part of product.parts) {
|
|
12
|
+
for (const dependency of (0, imports_1.partDependenciesOf)(part)) {
|
|
13
|
+
const key = (0, resolve_product_1.partKeyOf)(dependency);
|
|
14
|
+
users.set(key, ((_a = users.get(key)) !== null && _a !== void 0 ? _a : new Set()).add((0, resolve_product_1.partKeyOf)(part)));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return users;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* What a merge of one variant changes: the parts the variant holds, and each element and page that
|
|
21
|
+
* uses one of them, directly or through another part.
|
|
22
|
+
*/
|
|
23
|
+
const mergePreviewOf = (options) => {
|
|
24
|
+
var _a;
|
|
25
|
+
const users = usersOf(options.product);
|
|
26
|
+
const changed = new Set((0, overlay_1.overlaySketch)(options).sketched);
|
|
27
|
+
const reached = new Set();
|
|
28
|
+
const queue = [...changed];
|
|
29
|
+
for (let key = queue.shift(); key !== undefined; key = queue.shift()) {
|
|
30
|
+
for (const user of (_a = users.get(key)) !== null && _a !== void 0 ? _a : []) {
|
|
31
|
+
if (reached.has(user))
|
|
32
|
+
continue;
|
|
33
|
+
reached.add(user);
|
|
34
|
+
queue.push(user);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
changed: [...changed].sort(),
|
|
39
|
+
affected: [...reached].filter((key) => { var _a; return !changed.has(key) && SHOWN.has((_a = key.split('/')[0]) !== null && _a !== void 0 ? _a : ''); }).sort(),
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
exports.mergePreviewOf = mergePreviewOf;
|
|
43
|
+
//# sourceMappingURL=merge-preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-preview.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/merge-preview.ts"],"names":[],"mappings":";;;AAAA,wCAAgD;AAChD,wDAAgE;AAChE,uCAA0C;AAK1C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;AAE7C,MAAM,OAAO,GAAG,CAAC,OAAwB,EAAE,EAAE;;IAC3C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAE7C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACjC,KAAK,MAAM,UAAU,IAAI,IAAA,4BAAkB,EAAC,IAAI,CAAC,EAAE,CAAC;YAClD,MAAM,GAAG,GAAG,IAAA,2BAAS,EAAC,UAAU,CAAC,CAAC;YAElC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAA,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAA,2BAAS,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;;GAGG;AACI,MAAM,cAAc,GAAG,CAAC,OAI9B,EAAgB,EAAE;;IACjB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAA,uBAAa,EAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAE3B,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,SAAS,EAAE,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QACrE,KAAK,MAAM,IAAI,IAAI,MAAA,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,EAAE,EAAE,CAAC;YACxC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YAEhC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE;QAC5B,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,WAAC,OAAA,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAA,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAC,CAAC,IAAI,EAAE;KACvG,CAAC;AACJ,CAAC,CAAC;AAvBW,QAAA,cAAc,kBAuBzB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Sketch } from './sketch';
|
|
2
|
+
type PartFile = {
|
|
3
|
+
layer: string;
|
|
4
|
+
name: string;
|
|
5
|
+
file: string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* What a merge does with the sketch's `shared/` folder: `carry` when the target imports it, `drop` when no part
|
|
9
|
+
* does, or why the merge must stop - a part other than the target imports it, or the target holds a `shared/`
|
|
10
|
+
* folder of its own.
|
|
11
|
+
*/
|
|
12
|
+
export declare const sharedPlanOf: (options: {
|
|
13
|
+
sketch: Sketch;
|
|
14
|
+
parts: PartFile[];
|
|
15
|
+
}) => "carry" | "drop" | string;
|
|
16
|
+
/**
|
|
17
|
+
* Copies the sketch's `shared/` folder, then the picked variant's own `shared/` over it, into the merged target's folder
|
|
18
|
+
* and turns each `@shared/` import there into a relative one.
|
|
19
|
+
*/
|
|
20
|
+
export declare const carryShared: (options: {
|
|
21
|
+
sketch: Sketch;
|
|
22
|
+
variant: string;
|
|
23
|
+
targetDir: string;
|
|
24
|
+
}) => void;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.carryShared = exports.sharedPlanOf = void 0;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const imports_1 = require("../imports");
|
|
7
|
+
const resolve_product_1 = require("../resolve-product");
|
|
8
|
+
const ts_source_1 = require("../ts-source");
|
|
9
|
+
const sketch_1 = require("./sketch");
|
|
10
|
+
const importsShared = (file) => (0, ts_source_1.importsOf)((0, fs_1.readFileSync)(file, 'utf8')).some((specifier) => specifier.startsWith(imports_1.SHARED_PREFIX));
|
|
11
|
+
const sharedImportersOf = (parts) => parts.filter((part) => (0, sketch_1.sourceFilesIn)((0, path_1.dirname)(part.file)).some(importsShared));
|
|
12
|
+
/**
|
|
13
|
+
* What a merge does with the sketch's `shared/` folder: `carry` when the target imports it, `drop` when no part
|
|
14
|
+
* does, or why the merge must stop - a part other than the target imports it, or the target holds a `shared/`
|
|
15
|
+
* folder of its own.
|
|
16
|
+
*/
|
|
17
|
+
const sharedPlanOf = (options) => {
|
|
18
|
+
const { sketch, parts } = options;
|
|
19
|
+
const importers = sharedImportersOf(parts);
|
|
20
|
+
const others = importers.filter((part) => (0, resolve_product_1.partKeyOf)(part) !== sketch.target);
|
|
21
|
+
const target = importers.find((part) => (0, resolve_product_1.partKeyOf)(part) === sketch.target);
|
|
22
|
+
if (others.length > 0)
|
|
23
|
+
return `${others.map(resolve_product_1.partKeyOf).join(', ')} import ${imports_1.SHARED_PREFIX} - only ${sketch.target} takes the sketch's ${sketch_1.SHARED_FOLDER}/ into the product; move that code into the part`;
|
|
24
|
+
if (!target)
|
|
25
|
+
return 'drop';
|
|
26
|
+
if ((0, fs_1.existsSync)((0, path_1.resolve)((0, path_1.dirname)(target.file), sketch_1.SHARED_FOLDER)))
|
|
27
|
+
return `${sketch.target} holds a ${sketch_1.SHARED_FOLDER}/ folder of its own and imports ${imports_1.SHARED_PREFIX} - rename the folder`;
|
|
28
|
+
return 'carry';
|
|
29
|
+
};
|
|
30
|
+
exports.sharedPlanOf = sharedPlanOf;
|
|
31
|
+
const relativeSpecifierOf = (options) => {
|
|
32
|
+
const path = (0, path_1.relative)((0, path_1.dirname)(options.from), options.to).split(path_1.sep).join('/');
|
|
33
|
+
return path.startsWith('.') ? path : `./${path}`;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Copies the sketch's `shared/` folder, then the picked variant's own `shared/` over it, into the merged target's folder
|
|
37
|
+
* and turns each `@shared/` import there into a relative one.
|
|
38
|
+
*/
|
|
39
|
+
const carryShared = (options) => {
|
|
40
|
+
const { sketch, variant, targetDir } = options;
|
|
41
|
+
const shared = (0, path_1.resolve)(targetDir, sketch_1.SHARED_FOLDER);
|
|
42
|
+
for (const dir of [(0, sketch_1.sharedDirOf)(sketch), (0, sketch_1.variantSharedDirOf)(sketch, variant)])
|
|
43
|
+
if ((0, fs_1.existsSync)(dir))
|
|
44
|
+
(0, fs_1.cpSync)(dir, shared, { recursive: true });
|
|
45
|
+
for (const file of (0, sketch_1.sourceFilesIn)(targetDir)) {
|
|
46
|
+
const source = (0, fs_1.readFileSync)(file, 'utf8');
|
|
47
|
+
const rewritten = source.replace(new RegExp(`(['"])${imports_1.SHARED_PREFIX}([^'"]+)\\1`, 'gu'), (...[, quote, path]) => `${quote}${relativeSpecifierOf({ from: file, to: (0, path_1.resolve)(shared, path !== null && path !== void 0 ? path : '') })}${quote}`);
|
|
48
|
+
if (rewritten !== source)
|
|
49
|
+
(0, fs_1.writeFileSync)(file, rewritten);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.carryShared = carryShared;
|
|
53
|
+
//# sourceMappingURL=merge-shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-shared.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/merge-shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { DesignConfig } from '../../paths';
|
|
2
|
+
import { ResolvedProduct } from '../resolve-product';
|
|
3
|
+
import { Sketch } from './sketch';
|
|
4
|
+
/** Why a merge did nothing; `changed` names the parts a rebase must take in, `[]` when the sketch records no baseline. */
|
|
5
|
+
export type MergeRefusal = {
|
|
6
|
+
reason: string;
|
|
7
|
+
changed?: string[];
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Merges the variant the user picked in a ready sketch into the product: copies each part it holds
|
|
11
|
+
* over the product's, sets `note` (when given) and `madeBy` (the file's own plus the variant's authors) on the target, runs the check
|
|
12
|
+
* records each merged part's hash in `merged.json` and deletes the sketch. A target the product only takes from its base is copied into the product first. When the check fails, the
|
|
13
|
+
* product's old files come back and the sketch stays. Each file in the variant's `assets/` goes into the product's `assets/`. The sketch's `shared/` folder goes into the target's folder when the
|
|
14
|
+
* target imports it, with its `@shared/` imports made relative; any other part that imports it stops the merge. Otherwise the open comments on its variants are addressed, by `author` or the user. Refuses without a
|
|
15
|
+
* pick, and when a part the variant replaces changed in the product since the sketch's baseline. Answers with the merged part keys, or with why nothing was merged - and, when a rebase
|
|
16
|
+
* would let it, the parts that changed (`[]` without a baseline).
|
|
17
|
+
*/
|
|
18
|
+
export declare const mergeSketch: (options: {
|
|
19
|
+
target: string;
|
|
20
|
+
config: DesignConfig;
|
|
21
|
+
product: ResolvedProduct;
|
|
22
|
+
sketch: Sketch;
|
|
23
|
+
note?: string;
|
|
24
|
+
author?: string;
|
|
25
|
+
}) => string[] | MergeRefusal;
|
|
26
|
+
/** Deletes a sketch with all its variants and marks the open comments on them addressed, by `author` or the user. */
|
|
27
|
+
export declare const discardSketch: (options: {
|
|
28
|
+
target: string;
|
|
29
|
+
sketch: Sketch;
|
|
30
|
+
author?: string;
|
|
31
|
+
}) => string | null;
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.discardSketch = exports.mergeSketch = void 0;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const os_1 = require("os");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const check_system_1 = require("../check-system");
|
|
8
|
+
const comment_1 = require("../comments/comment");
|
|
9
|
+
const assets_1 = require("../assets");
|
|
10
|
+
const product_1 = require("../product");
|
|
11
|
+
const resolve_product_1 = require("../resolve-product");
|
|
12
|
+
const baseline_1 = require("./baseline");
|
|
13
|
+
const merge_shared_1 = require("./merge-shared");
|
|
14
|
+
const merged_parts_1 = require("./merged-parts");
|
|
15
|
+
const part_definition_1 = require("./part-definition");
|
|
16
|
+
const sketch_1 = require("./sketch");
|
|
17
|
+
const swap = (entries) => {
|
|
18
|
+
const backup = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), 'ethlete-sketch-merge-'));
|
|
19
|
+
const held = entries.map(({ to }, index) => {
|
|
20
|
+
const copy = (0, path_1.resolve)(backup, String(index));
|
|
21
|
+
if ((0, fs_1.existsSync)(to))
|
|
22
|
+
(0, fs_1.cpSync)(to, copy, { recursive: true });
|
|
23
|
+
return { to, copy: (0, fs_1.existsSync)(copy) ? copy : null };
|
|
24
|
+
});
|
|
25
|
+
for (const { from, to } of entries) {
|
|
26
|
+
(0, fs_1.rmSync)(to, { recursive: true, force: true });
|
|
27
|
+
(0, fs_1.mkdirSync)((0, path_1.dirname)(to), { recursive: true });
|
|
28
|
+
(0, fs_1.cpSync)(from, to, { recursive: true });
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
restore: () => {
|
|
32
|
+
for (const { to, copy } of held) {
|
|
33
|
+
(0, fs_1.rmSync)(to, { recursive: true, force: true });
|
|
34
|
+
if (copy)
|
|
35
|
+
(0, fs_1.cpSync)(copy, to, { recursive: true });
|
|
36
|
+
}
|
|
37
|
+
(0, fs_1.rmSync)(backup, { recursive: true, force: true });
|
|
38
|
+
},
|
|
39
|
+
drop: () => (0, fs_1.rmSync)(backup, { recursive: true, force: true }),
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
const pickOf = (sketch) => {
|
|
43
|
+
const decision = sketch.decision;
|
|
44
|
+
if ((decision === null || decision === void 0 ? void 0 : decision.kind) !== 'pick')
|
|
45
|
+
return `${sketch.target} has no pick - the user picks a variant in Studio before a merge`;
|
|
46
|
+
if (!sketch.variants.includes(decision.variant))
|
|
47
|
+
return `${sketch.target} has no variant "${decision.variant}", the one picked - it has ${sketch.variants.join(', ') || 'none'}`;
|
|
48
|
+
return { variant: decision.variant };
|
|
49
|
+
};
|
|
50
|
+
const mergeOrReason = (options) => {
|
|
51
|
+
var _a, _b, _c;
|
|
52
|
+
const { target, config, product, sketch, note, author } = options;
|
|
53
|
+
if (sketch.status !== 'ready')
|
|
54
|
+
return `${sketch.target} is ${sketch.status} - mark it ready before a merge`;
|
|
55
|
+
const pick = pickOf(sketch);
|
|
56
|
+
if (typeof pick === 'string')
|
|
57
|
+
return pick;
|
|
58
|
+
const { variant } = pick;
|
|
59
|
+
const dir = (0, sketch_1.variantDirOf)(sketch, variant);
|
|
60
|
+
const { parts, problems } = (0, product_1.partFilesOf)(dir);
|
|
61
|
+
if (problems.length > 0)
|
|
62
|
+
return problems.map((problem) => `${problem.file}: ${problem.message}`).join('\n');
|
|
63
|
+
const shared = (0, merge_shared_1.sharedPlanOf)({ sketch, parts });
|
|
64
|
+
if (shared !== 'carry' && shared !== 'drop')
|
|
65
|
+
return shared;
|
|
66
|
+
const fixtures = (0, product_1.fixturesOf)(dir);
|
|
67
|
+
if (!sketch.baseline)
|
|
68
|
+
return {
|
|
69
|
+
reason: `${sketch.target} records no baseline of the product - compare each variant with the product, then run sketch rebase ${sketch.target}`,
|
|
70
|
+
changed: [],
|
|
71
|
+
};
|
|
72
|
+
const conflicts = (0, baseline_1.conflictsOf)({ product, baseline: sketch.baseline, parts, fixtures: fixtures !== null });
|
|
73
|
+
if (conflicts.length > 0)
|
|
74
|
+
return {
|
|
75
|
+
reason: `${conflicts.join(', ')} changed in the product since the sketch on ${sketch.target} was created - bring variant "${variant}" up to date, then run sketch rebase ${sketch.target}`,
|
|
76
|
+
changed: conflicts,
|
|
77
|
+
};
|
|
78
|
+
const targetDir = (0, path_1.resolve)(product.dir, sketch.layer, sketch.name);
|
|
79
|
+
const noteFile = (0, path_1.resolve)(targetDir, `${sketch.name}.ts`);
|
|
80
|
+
const carried = (_a = parts.find((part) => (0, resolve_product_1.partKeyOf)(part) === sketch.target)) === null || _a === void 0 ? void 0 : _a.file;
|
|
81
|
+
const inherited = carried || (0, fs_1.existsSync)(noteFile) ? null : product.parts.find((part) => (0, resolve_product_1.partKeyOf)(part) === sketch.target);
|
|
82
|
+
const held = carried !== null && carried !== void 0 ? carried : (inherited ? inherited.file : noteFile);
|
|
83
|
+
if (!(0, fs_1.existsSync)(held))
|
|
84
|
+
return `variant "${variant}" holds no ${sketch.target}, and the product has no ${sketch.target} to carry the note`;
|
|
85
|
+
const source = (0, fs_1.readFileSync)(held, 'utf8');
|
|
86
|
+
const variantNote = (_b = sketch.variantInfo[variant]) === null || _b === void 0 ? void 0 : _b.note;
|
|
87
|
+
const newNote = (note === null || note === void 0 ? void 0 : note.trim()) || (((_c = (0, part_definition_1.noteOf)(source)) === null || _c === void 0 ? void 0 : _c.trim()) === '' ? variantNote : undefined);
|
|
88
|
+
const withNewNote = newNote ? (0, part_definition_1.withNote)(source, newNote) : source;
|
|
89
|
+
const madeBy = [...new Set([...(0, part_definition_1.madeByOf)(source), ...(0, sketch_1.authorsOf)(sketch, variant)])];
|
|
90
|
+
const noted = withNewNote === null || madeBy.length === 0 ? withNewNote : (0, part_definition_1.withMadeBy)(withNewNote, madeBy);
|
|
91
|
+
if (noted === null)
|
|
92
|
+
return `${held} holds no definePart({ note: '…' }) to set the note on`;
|
|
93
|
+
const mergedKeys = [...new Set([sketch.target, ...parts.map(resolve_product_1.partKeyOf)])];
|
|
94
|
+
const assetFiles = (0, assets_1.filesBelow)((0, path_1.resolve)(dir, assets_1.ASSETS_FOLDER));
|
|
95
|
+
const untouched = assetFiles.length > 0 ? (0, merged_parts_1.unchangedMergedOf)({ product, except: mergedKeys }) : [];
|
|
96
|
+
const known = (0, check_system_1.ruleLinesOf)(target, product);
|
|
97
|
+
const swapped = swap([
|
|
98
|
+
...(inherited ? [{ from: (0, path_1.dirname)(inherited.file), to: targetDir }] : []),
|
|
99
|
+
...parts.map((part) => ({ from: (0, path_1.dirname)(part.file), to: (0, path_1.resolve)(product.dir, part.layer, part.name) })),
|
|
100
|
+
...(fixtures ? [{ from: fixtures, to: (0, path_1.resolve)(product.dir, 'fixtures.ts') }] : []),
|
|
101
|
+
...assetFiles.map((file) => ({
|
|
102
|
+
from: file,
|
|
103
|
+
to: (0, path_1.resolve)(product.dir, assets_1.ASSETS_FOLDER, (0, path_1.relative)((0, path_1.resolve)(dir, assets_1.ASSETS_FOLDER), file)),
|
|
104
|
+
})),
|
|
105
|
+
]);
|
|
106
|
+
(0, fs_1.writeFileSync)(noteFile, noted);
|
|
107
|
+
if (shared === 'carry')
|
|
108
|
+
(0, merge_shared_1.carryShared)({ sketch, variant, targetDir });
|
|
109
|
+
if ((0, check_system_1.checkSystem)({ target, config, products: [product.name], known }) !== 0) {
|
|
110
|
+
swapped.restore();
|
|
111
|
+
return `the check failed after the merge of ${sketch.target} variant "${variant}" - the product's old files are back, the sketch stays`;
|
|
112
|
+
}
|
|
113
|
+
swapped.drop();
|
|
114
|
+
(0, merged_parts_1.recordMerged)({ product, parts: mergedKeys });
|
|
115
|
+
const alsoChanged = (0, merged_parts_1.rerecordChangedMerged)({ product, before: untouched });
|
|
116
|
+
if (alsoChanged.length > 0)
|
|
117
|
+
console.log(`Asset change also updates: ${alsoChanged.join(', ')}`);
|
|
118
|
+
(0, comment_1.addressSketchComments)({ sketch, reason: 'merge', author, note });
|
|
119
|
+
(0, fs_1.rmSync)(sketch.dir, { recursive: true, force: true });
|
|
120
|
+
(0, sketch_1.clearSketchReport)({ checkout: target, sketch });
|
|
121
|
+
return [...(inherited ? [sketch.target] : []), ...parts.map(resolve_product_1.partKeyOf)];
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Merges the variant the user picked in a ready sketch into the product: copies each part it holds
|
|
125
|
+
* over the product's, sets `note` (when given) and `madeBy` (the file's own plus the variant's authors) on the target, runs the check
|
|
126
|
+
* records each merged part's hash in `merged.json` and deletes the sketch. A target the product only takes from its base is copied into the product first. When the check fails, the
|
|
127
|
+
* product's old files come back and the sketch stays. Each file in the variant's `assets/` goes into the product's `assets/`. The sketch's `shared/` folder goes into the target's folder when the
|
|
128
|
+
* target imports it, with its `@shared/` imports made relative; any other part that imports it stops the merge. Otherwise the open comments on its variants are addressed, by `author` or the user. Refuses without a
|
|
129
|
+
* pick, and when a part the variant replaces changed in the product since the sketch's baseline. Answers with the merged part keys, or with why nothing was merged - and, when a rebase
|
|
130
|
+
* would let it, the parts that changed (`[]` without a baseline).
|
|
131
|
+
*/
|
|
132
|
+
const mergeSketch = (options) => {
|
|
133
|
+
const merged = mergeOrReason(options);
|
|
134
|
+
return typeof merged === 'string' ? { reason: merged } : merged;
|
|
135
|
+
};
|
|
136
|
+
exports.mergeSketch = mergeSketch;
|
|
137
|
+
/** Deletes a sketch with all its variants and marks the open comments on them addressed, by `author` or the user. */
|
|
138
|
+
const discardSketch = (options) => {
|
|
139
|
+
(0, comment_1.addressSketchComments)({ sketch: options.sketch, reason: 'discard', author: options.author });
|
|
140
|
+
(0, fs_1.rmSync)(options.sketch.dir, { recursive: true, force: true });
|
|
141
|
+
(0, sketch_1.clearSketchReport)({ checkout: options.target, sketch: options.sketch });
|
|
142
|
+
return null;
|
|
143
|
+
};
|
|
144
|
+
exports.discardSketch = discardSketch;
|
|
145
|
+
//# sourceMappingURL=merge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ResolvedProduct } from '../resolve-product';
|
|
2
|
+
export declare const MERGED_FILE = "merged.json";
|
|
3
|
+
/** The content hash of each part, its folder and the assets it imports, as its last sketch merge left it, under the part key. */
|
|
4
|
+
export declare const readMerged: (productDir: string) => Record<string, string>;
|
|
5
|
+
type HashedProduct = Pick<ResolvedProduct, 'dir' | 'base'>;
|
|
6
|
+
/** Records the current content hash of each named part of the product as merged. */
|
|
7
|
+
export declare const recordMerged: (options: {
|
|
8
|
+
product: HashedProduct;
|
|
9
|
+
parts: string[];
|
|
10
|
+
}) => void;
|
|
11
|
+
/** The recorded parts of the product, outside `except`, whose files still match their recorded hash, with that hash. */
|
|
12
|
+
export declare const unchangedMergedOf: (options: {
|
|
13
|
+
product: ResolvedProduct;
|
|
14
|
+
except: string[];
|
|
15
|
+
}) => {
|
|
16
|
+
key: string;
|
|
17
|
+
hash: string;
|
|
18
|
+
}[];
|
|
19
|
+
/** Records the parts of `before` whose hash differs now, and answers with their keys: an asset they use changed in a merge. */
|
|
20
|
+
export declare const rerecordChangedMerged: (options: {
|
|
21
|
+
product: ResolvedProduct;
|
|
22
|
+
before: {
|
|
23
|
+
key: string;
|
|
24
|
+
hash: string;
|
|
25
|
+
}[];
|
|
26
|
+
}) => string[];
|
|
27
|
+
export declare const sketchedPartsOf: (product: ResolvedProduct) => Set<string>;
|
|
28
|
+
/**
|
|
29
|
+
* The merged parts of a product whose files changed since their last sketch merge, while no open
|
|
30
|
+
* sketch holds them. A merge of a sketch on the part records its new state and clears it.
|
|
31
|
+
*/
|
|
32
|
+
export declare const changedOutsideSketchOf: (product: ResolvedProduct) => string[];
|
|
33
|
+
export declare const ACCEPTED_FILE = "accepted.json";
|
|
34
|
+
export type Acceptance = {
|
|
35
|
+
part: string;
|
|
36
|
+
by: string;
|
|
37
|
+
note: string;
|
|
38
|
+
hash: string;
|
|
39
|
+
at: string;
|
|
40
|
+
auto?: true;
|
|
41
|
+
};
|
|
42
|
+
export declare const readAccepted: (productDir: string) => Acceptance[];
|
|
43
|
+
/** Logs a sketch merged by itself because no state showed a visible change, as an `auto` entry in `accepted.json`. */
|
|
44
|
+
export declare const recordAutoMerge: (options: {
|
|
45
|
+
product: HashedProduct;
|
|
46
|
+
part: string;
|
|
47
|
+
by: string;
|
|
48
|
+
}) => void;
|
|
49
|
+
/**
|
|
50
|
+
* Records a direct edit of a merged part the user approved: writes the part's current hash to `merged.json` and
|
|
51
|
+
* logs who accepted it and why in `accepted.json`. Answers with why nothing was accepted, or `null`.
|
|
52
|
+
*/
|
|
53
|
+
export declare const acceptPart: (options: {
|
|
54
|
+
product: ResolvedProduct;
|
|
55
|
+
part: string;
|
|
56
|
+
by: string;
|
|
57
|
+
note: string;
|
|
58
|
+
}) => string | null;
|
|
59
|
+
export {};
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.acceptPart = exports.recordAutoMerge = exports.readAccepted = exports.ACCEPTED_FILE = exports.changedOutsideSketchOf = exports.sketchedPartsOf = exports.rerecordChangedMerged = exports.unchangedMergedOf = exports.recordMerged = exports.readMerged = exports.MERGED_FILE = void 0;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const product_1 = require("../product");
|
|
7
|
+
const resolve_product_1 = require("../resolve-product");
|
|
8
|
+
const baseline_1 = require("./baseline");
|
|
9
|
+
const sketch_1 = require("./sketch");
|
|
10
|
+
exports.MERGED_FILE = 'merged.json';
|
|
11
|
+
const mergedFileOf = (productDir) => (0, path_1.resolve)(productDir, exports.MERGED_FILE);
|
|
12
|
+
/** The content hash of each part, its folder and the assets it imports, as its last sketch merge left it, under the part key. */
|
|
13
|
+
const readMerged = (productDir) => {
|
|
14
|
+
const file = mergedFileOf(productDir);
|
|
15
|
+
if (!(0, fs_1.existsSync)(file))
|
|
16
|
+
return {};
|
|
17
|
+
try {
|
|
18
|
+
const parsed = JSON.parse((0, fs_1.readFileSync)(file, 'utf8'));
|
|
19
|
+
return parsed && typeof parsed === 'object' && !Array.isArray(parsed)
|
|
20
|
+
? Object.fromEntries(Object.entries(parsed).filter((entry) => typeof entry[1] === 'string'))
|
|
21
|
+
: {};
|
|
22
|
+
}
|
|
23
|
+
catch (_a) {
|
|
24
|
+
return {};
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
exports.readMerged = readMerged;
|
|
28
|
+
/** Records the current content hash of each named part of the product as merged. */
|
|
29
|
+
const recordMerged = (options) => {
|
|
30
|
+
const { product, parts } = options;
|
|
31
|
+
const productDir = product.dir;
|
|
32
|
+
const merged = (0, exports.readMerged)(productDir);
|
|
33
|
+
for (const part of parts)
|
|
34
|
+
merged[part] = (0, baseline_1.partHashOf)({ product, dir: (0, path_1.resolve)(productDir, part) });
|
|
35
|
+
const sorted = Object.fromEntries(Object.entries(merged).sort(([a], [b]) => a.localeCompare(b)));
|
|
36
|
+
(0, fs_1.writeFileSync)(mergedFileOf(productDir), `${JSON.stringify(sorted, null, 2)}\n`);
|
|
37
|
+
};
|
|
38
|
+
exports.recordMerged = recordMerged;
|
|
39
|
+
/** The recorded parts of the product, outside `except`, whose files still match their recorded hash, with that hash. */
|
|
40
|
+
const unchangedMergedOf = (options) => {
|
|
41
|
+
const { product, except } = options;
|
|
42
|
+
const merged = (0, exports.readMerged)(product.dir);
|
|
43
|
+
return product.parts.flatMap((part) => {
|
|
44
|
+
const key = (0, resolve_product_1.partKeyOf)(part);
|
|
45
|
+
const hash = (0, baseline_1.partHashOf)({ product, dir: (0, path_1.dirname)(part.file) });
|
|
46
|
+
return part.origin !== 'base' && !except.includes(key) && merged[key] === hash ? [{ key, hash }] : [];
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
exports.unchangedMergedOf = unchangedMergedOf;
|
|
50
|
+
/** Records the parts of `before` whose hash differs now, and answers with their keys: an asset they use changed in a merge. */
|
|
51
|
+
const rerecordChangedMerged = (options) => {
|
|
52
|
+
const { product, before } = options;
|
|
53
|
+
const changed = before
|
|
54
|
+
.filter(({ key, hash }) => (0, baseline_1.partHashOf)({ product, dir: (0, path_1.resolve)(product.dir, key) }) !== hash)
|
|
55
|
+
.map(({ key }) => key);
|
|
56
|
+
if (changed.length > 0)
|
|
57
|
+
(0, exports.recordMerged)({ product, parts: changed });
|
|
58
|
+
return changed;
|
|
59
|
+
};
|
|
60
|
+
exports.rerecordChangedMerged = rerecordChangedMerged;
|
|
61
|
+
const sketchedPartsOf = (product) => new Set((0, sketch_1.listSketches)({ productDir: product.dir, product: product.name }).flatMap((sketch) => typeof sketch === 'string'
|
|
62
|
+
? []
|
|
63
|
+
: [
|
|
64
|
+
sketch.target,
|
|
65
|
+
...sketch.variants.flatMap((variant) => (0, product_1.partFilesOf)((0, sketch_1.variantDirOf)(sketch, variant)).parts.map(resolve_product_1.partKeyOf)),
|
|
66
|
+
]));
|
|
67
|
+
exports.sketchedPartsOf = sketchedPartsOf;
|
|
68
|
+
/**
|
|
69
|
+
* The merged parts of a product whose files changed since their last sketch merge, while no open
|
|
70
|
+
* sketch holds them. A merge of a sketch on the part records its new state and clears it.
|
|
71
|
+
*/
|
|
72
|
+
const changedOutsideSketchOf = (product) => {
|
|
73
|
+
const merged = (0, exports.readMerged)(product.dir);
|
|
74
|
+
const changed = product.parts.filter((part) => {
|
|
75
|
+
const key = (0, resolve_product_1.partKeyOf)(part);
|
|
76
|
+
return (part.origin !== 'base' &&
|
|
77
|
+
merged[key] !== undefined &&
|
|
78
|
+
(0, baseline_1.partHashOf)({ product, dir: (0, path_1.dirname)(part.file) }) !== merged[key]);
|
|
79
|
+
});
|
|
80
|
+
if (changed.length === 0)
|
|
81
|
+
return [];
|
|
82
|
+
const sketched = (0, exports.sketchedPartsOf)(product);
|
|
83
|
+
return changed.map(resolve_product_1.partKeyOf).filter((key) => !sketched.has(key));
|
|
84
|
+
};
|
|
85
|
+
exports.changedOutsideSketchOf = changedOutsideSketchOf;
|
|
86
|
+
exports.ACCEPTED_FILE = 'accepted.json';
|
|
87
|
+
const readAccepted = (productDir) => {
|
|
88
|
+
const file = (0, path_1.resolve)(productDir, exports.ACCEPTED_FILE);
|
|
89
|
+
if (!(0, fs_1.existsSync)(file))
|
|
90
|
+
return [];
|
|
91
|
+
try {
|
|
92
|
+
const parsed = JSON.parse((0, fs_1.readFileSync)(file, 'utf8'));
|
|
93
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
94
|
+
}
|
|
95
|
+
catch (_a) {
|
|
96
|
+
return [];
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
exports.readAccepted = readAccepted;
|
|
100
|
+
const logAcceptance = (productDir, entry) => (0, fs_1.writeFileSync)((0, path_1.resolve)(productDir, exports.ACCEPTED_FILE), `${JSON.stringify([...(0, exports.readAccepted)(productDir), entry], null, 2)}\n`);
|
|
101
|
+
/** Logs a sketch merged by itself because no state showed a visible change, as an `auto` entry in `accepted.json`. */
|
|
102
|
+
const recordAutoMerge = (options) => {
|
|
103
|
+
const { product, part, by } = options;
|
|
104
|
+
logAcceptance(product.dir, {
|
|
105
|
+
part,
|
|
106
|
+
by,
|
|
107
|
+
note: 'merged automatically: no visible change in any state',
|
|
108
|
+
hash: (0, baseline_1.partHashOf)({ product, dir: (0, path_1.resolve)(product.dir, part) }),
|
|
109
|
+
at: new Date().toISOString(),
|
|
110
|
+
auto: true,
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
exports.recordAutoMerge = recordAutoMerge;
|
|
114
|
+
/**
|
|
115
|
+
* Records a direct edit of a merged part the user approved: writes the part's current hash to `merged.json` and
|
|
116
|
+
* logs who accepted it and why in `accepted.json`. Answers with why nothing was accepted, or `null`.
|
|
117
|
+
*/
|
|
118
|
+
const acceptPart = (options) => {
|
|
119
|
+
var _a;
|
|
120
|
+
const { product, part, by, note } = options;
|
|
121
|
+
if (!product.parts.some((candidate) => (0, resolve_product_1.partKeyOf)(candidate) === part))
|
|
122
|
+
return `NO PART "${part}" in ${product.name}`;
|
|
123
|
+
if ((0, exports.sketchedPartsOf)(product).has(part))
|
|
124
|
+
return `${part} has an open sketch - merge or discard it; a merge records the part`;
|
|
125
|
+
if (!(0, exports.changedOutsideSketchOf)(product).includes(part))
|
|
126
|
+
return `${part} has no change outside a sketch - nothing to accept`;
|
|
127
|
+
(0, exports.recordMerged)({ product, parts: [part] });
|
|
128
|
+
const hash = (_a = (0, exports.readMerged)(product.dir)[part]) !== null && _a !== void 0 ? _a : '';
|
|
129
|
+
const entry = { part, by, note, hash, at: new Date().toISOString() };
|
|
130
|
+
logAcceptance(product.dir, entry);
|
|
131
|
+
return null;
|
|
132
|
+
};
|
|
133
|
+
exports.acceptPart = acceptPart;
|
|
134
|
+
//# sourceMappingURL=merged-parts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merged-parts.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/merged-parts.ts"],"names":[],"mappings":"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"}
|