@ethlete/cli 3.0.0-next.24 → 3.0.0-next.26
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 +126 -0
- package/design/define-call.ts +69 -0
- package/design/define-part.ts +43 -9
- package/design/embed-page.ts +37 -4
- package/design/icon-sheet.ts +151 -0
- package/design/logo-sheet.ts +52 -0
- package/design/mark-part.ts +79 -2
- package/design/motion-drive.ts +215 -0
- package/design/motion-runtime.ts +224 -5
- package/design/motion-tokens.ts +177 -0
- package/design/spring.ts +53 -0
- package/design/token-sheet.ts +87 -0
- package/design/web/frame-fill.ts +4 -0
- package/design/web/frame-scheme.ts +44 -0
- package/design/web/frame.ts +239 -31
- package/package.json +1 -1
- package/src/lib/design/calls-tsconfig.d.ts +2 -0
- package/src/lib/design/calls-tsconfig.js +11 -5
- package/src/lib/design/calls-tsconfig.js.map +1 -1
- package/src/lib/design/check.d.ts +1 -0
- package/src/lib/design/check.js +62 -6
- package/src/lib/design/check.js.map +1 -1
- package/src/lib/design/contact-sheet.d.ts +9 -0
- package/src/lib/design/contact-sheet.js +38 -4
- package/src/lib/design/contact-sheet.js.map +1 -1
- package/src/lib/design/design-command.js +56 -7
- package/src/lib/design/design-command.js.map +1 -1
- package/src/lib/design/draw-ledger.d.ts +36 -0
- package/src/lib/design/draw-ledger.js +52 -0
- package/src/lib/design/draw-ledger.js.map +1 -0
- package/src/lib/design/force-interactions.d.ts +2 -1
- package/src/lib/design/force-interactions.js +7 -4
- package/src/lib/design/force-interactions.js.map +1 -1
- package/src/lib/design/mcp-command.d.ts +81 -0
- package/src/lib/design/mcp-command.js +422 -0
- package/src/lib/design/mcp-command.js.map +1 -0
- package/src/lib/design/motion-command.d.ts +71 -0
- package/src/lib/design/motion-command.js +308 -0
- package/src/lib/design/motion-command.js.map +1 -0
- package/src/lib/design/motion-endpoint.d.ts +61 -0
- package/src/lib/design/motion-endpoint.js +133 -0
- package/src/lib/design/motion-endpoint.js.map +1 -0
- package/src/lib/design/motion-flow.d.ts +5 -0
- package/src/lib/design/motion-flow.js +29 -0
- package/src/lib/design/motion-flow.js.map +1 -0
- package/src/lib/design/motion-shot.d.ts +43 -0
- package/src/lib/design/motion-shot.js +97 -0
- package/src/lib/design/motion-shot.js.map +1 -0
- package/src/lib/design/paths.d.ts +14 -0
- package/src/lib/design/paths.js +50 -1
- package/src/lib/design/paths.js.map +1 -1
- package/src/lib/design/ready-shots.d.ts +7 -0
- package/src/lib/design/ready-shots.js +22 -1
- package/src/lib/design/ready-shots.js.map +1 -1
- package/src/lib/design/render-packages.d.ts +14 -0
- package/src/lib/design/render-packages.js +18 -3
- package/src/lib/design/render-packages.js.map +1 -1
- package/src/lib/design/render-worker.js +1 -0
- package/src/lib/design/render-worker.js.map +1 -1
- package/src/lib/design/render.js +3 -3
- package/src/lib/design/render.js.map +1 -1
- package/src/lib/design/serve.d.ts +2 -2
- package/src/lib/design/serve.js +191 -21
- package/src/lib/design/serve.js.map +1 -1
- package/src/lib/design/shot-command.d.ts +13 -4
- package/src/lib/design/shot-command.js +30 -24
- package/src/lib/design/shot-command.js.map +1 -1
- package/src/lib/design/shot-store.d.ts +24 -0
- package/src/lib/design/shot-store.js +120 -0
- package/src/lib/design/shot-store.js.map +1 -0
- package/src/lib/design/shot.d.ts +37 -1
- package/src/lib/design/shot.js +185 -34
- package/src/lib/design/shot.js.map +1 -1
- package/src/lib/design/sketch-command.js +197 -51
- package/src/lib/design/sketch-command.js.map +1 -1
- package/src/lib/design/ssr-shims.d.ts +2 -0
- package/src/lib/design/ssr-shims.js +12 -1
- package/src/lib/design/ssr-shims.js.map +1 -1
- package/src/lib/design/studio-api.d.ts +31 -0
- package/src/lib/design/studio-api.js +118 -1
- package/src/lib/design/studio-api.js.map +1 -1
- package/src/lib/design/system/check-system.d.ts +6 -2
- package/src/lib/design/system/check-system.js +102 -20
- package/src/lib/design/system/check-system.js.map +1 -1
- package/src/lib/design/system/colour.d.ts +4 -1
- package/src/lib/design/system/colour.js +54 -2
- package/src/lib/design/system/colour.js.map +1 -1
- package/src/lib/design/system/complete-command.d.ts +1 -1
- package/src/lib/design/system/complete-command.js +80 -6
- package/src/lib/design/system/complete-command.js.map +1 -1
- package/src/lib/design/system/complete.d.ts +172 -9
- package/src/lib/design/system/complete.js +792 -167
- package/src/lib/design/system/complete.js.map +1 -1
- package/src/lib/design/system/contrast-check.d.ts +6 -1
- package/src/lib/design/system/contrast-check.js +167 -12
- package/src/lib/design/system/contrast-check.js.map +1 -1
- package/src/lib/design/system/drawn-open-points.d.ts +16 -0
- package/src/lib/design/system/drawn-open-points.js +43 -0
- package/src/lib/design/system/drawn-open-points.js.map +1 -0
- package/src/lib/design/system/exceptions.d.ts +59 -0
- package/src/lib/design/system/exceptions.js +132 -0
- package/src/lib/design/system/exceptions.js.map +1 -0
- package/src/lib/design/system/flows/flow.d.ts +3 -0
- package/src/lib/design/system/flows/flow.js +5 -3
- package/src/lib/design/system/flows/flow.js.map +1 -1
- package/src/lib/design/system/handoff.d.ts +11 -0
- package/src/lib/design/system/handoff.js +30 -0
- package/src/lib/design/system/handoff.js.map +1 -0
- package/src/lib/design/system/inventory-approval.d.ts +41 -0
- package/src/lib/design/system/inventory-approval.js +71 -0
- package/src/lib/design/system/inventory-approval.js.map +1 -0
- package/src/lib/design/system/inventory.d.ts +65 -0
- package/src/lib/design/system/inventory.js +168 -0
- package/src/lib/design/system/inventory.js.map +1 -0
- package/src/lib/design/system/list-system.d.ts +4 -1
- package/src/lib/design/system/list-system.js +11 -3
- package/src/lib/design/system/list-system.js.map +1 -1
- package/src/lib/design/system/open-points.d.ts +101 -0
- package/src/lib/design/system/open-points.js +156 -0
- package/src/lib/design/system/open-points.js.map +1 -0
- package/src/lib/design/system/part-ready.d.ts +52 -0
- package/src/lib/design/system/part-ready.js +101 -0
- package/src/lib/design/system/part-ready.js.map +1 -0
- package/src/lib/design/system/read-open-points.d.ts +27 -0
- package/src/lib/design/system/read-open-points.js +81 -0
- package/src/lib/design/system/read-open-points.js.map +1 -0
- package/src/lib/design/system/ready-command.d.ts +7 -0
- package/src/lib/design/system/ready-command.js +65 -0
- package/src/lib/design/system/ready-command.js.map +1 -0
- package/src/lib/design/system/render-check.d.ts +2 -0
- package/src/lib/design/system/render-check.js +216 -32
- package/src/lib/design/system/render-check.js.map +1 -1
- package/src/lib/design/system/resolve-product.d.ts +4 -4
- package/src/lib/design/system/resolve-product.js +22 -7
- package/src/lib/design/system/resolve-product.js.map +1 -1
- package/src/lib/design/system/rules/implements.d.ts +7 -0
- package/src/lib/design/system/rules/implements.js +43 -0
- package/src/lib/design/system/rules/implements.js.map +1 -0
- package/src/lib/design/system/rules/motion.d.ts +2 -0
- package/src/lib/design/system/rules/motion.js +26 -1
- package/src/lib/design/system/rules/motion.js.map +1 -1
- package/src/lib/design/system/rules/option-values.d.ts +15 -0
- package/src/lib/design/system/rules/option-values.js +145 -0
- package/src/lib/design/system/rules/option-values.js.map +1 -0
- package/src/lib/design/system/rules/stale-replace.js +80 -3
- package/src/lib/design/system/rules/stale-replace.js.map +1 -1
- package/src/lib/design/system/rules/token-selectors.js +1 -1
- package/src/lib/design/system/rules/token-selectors.js.map +1 -1
- package/src/lib/design/system/sketch/baseline.d.ts +11 -2
- package/src/lib/design/system/sketch/baseline.js +4 -2
- package/src/lib/design/system/sketch/baseline.js.map +1 -1
- package/src/lib/design/system/sketch/check-sketches.d.ts +1 -0
- package/src/lib/design/system/sketch/check-sketches.js +4 -2
- package/src/lib/design/system/sketch/check-sketches.js.map +1 -1
- package/src/lib/design/system/sketch/host-edit.d.ts +4 -0
- package/src/lib/design/system/sketch/host-edit.js +68 -0
- package/src/lib/design/system/sketch/host-edit.js.map +1 -0
- package/src/lib/design/system/sketch/merge.d.ts +3 -2
- package/src/lib/design/system/sketch/merge.js +79 -12
- package/src/lib/design/system/sketch/merge.js.map +1 -1
- package/src/lib/design/system/sketch/merged-parts.d.ts +11 -1
- package/src/lib/design/system/sketch/merged-parts.js +24 -3
- package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
- package/src/lib/design/system/sketch/no-visible-change.d.ts +6 -0
- package/src/lib/design/system/sketch/no-visible-change.js +25 -1
- package/src/lib/design/system/sketch/no-visible-change.js.map +1 -1
- package/src/lib/design/system/sketch/overlay.js +11 -3
- package/src/lib/design/system/sketch/overlay.js.map +1 -1
- package/src/lib/design/system/sketch/part-definition.d.ts +36 -0
- package/src/lib/design/system/sketch/part-definition.js +56 -2
- package/src/lib/design/system/sketch/part-definition.js.map +1 -1
- package/src/lib/design/system/sketch/sketch.d.ts +47 -0
- package/src/lib/design/system/sketch/sketch.js +137 -44
- package/src/lib/design/system/sketch/sketch.js.map +1 -1
- package/src/lib/design/system/sketch/unchanged-states.d.ts +4 -1
- package/src/lib/design/system/sketch/unchanged-states.js +9 -5
- package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
- package/src/lib/design/system/sketch/unused-closure.d.ts +12 -0
- package/src/lib/design/system/sketch/unused-closure.js +195 -0
- package/src/lib/design/system/sketch/unused-closure.js.map +1 -0
- package/src/lib/design/system/sketch/unused-files.d.ts +1 -1
- package/src/lib/design/system/sketch/unused-files.js +6 -3
- package/src/lib/design/system/sketch/unused-files.js.map +1 -1
- package/src/lib/design/system/system-modules.js +6 -9
- package/src/lib/design/system/system-modules.js.map +1 -1
- package/src/lib/design/system/system-tsconfig.d.ts +2 -1
- package/src/lib/design/system/system-tsconfig.js +10 -6
- package/src/lib/design/system/system-tsconfig.js.map +1 -1
- package/src/lib/design/system/ts-source.d.ts +3 -0
- package/src/lib/design/system/ts-source.js +21 -4
- package/src/lib/design/system/ts-source.js.map +1 -1
- package/src/lib/design/thumb.d.ts +31 -4
- package/src/lib/design/thumb.js +105 -40
- package/src/lib/design/thumb.js.map +1 -1
|
@@ -0,0 +1,101 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.markPartReady = exports.readyPartsOf = exports.drawnPartPointsOf = exports.readyMarkOf = exports.readyPartOf = exports.readReady = exports.READY_FILE = void 0;
|
|
13
|
+
const fs_1 = require("fs");
|
|
14
|
+
const path_1 = require("path");
|
|
15
|
+
const drawn_open_points_1 = require("./drawn-open-points");
|
|
16
|
+
const inventory_approval_1 = require("./inventory-approval");
|
|
17
|
+
const read_open_points_1 = require("./read-open-points");
|
|
18
|
+
const resolve_product_1 = require("./resolve-product");
|
|
19
|
+
const baseline_1 = require("./sketch/baseline");
|
|
20
|
+
exports.READY_FILE = 'ready.json';
|
|
21
|
+
const readyFileOf = (dir) => (0, path_1.resolve)(dir, exports.READY_FILE);
|
|
22
|
+
const isReady = (value) => {
|
|
23
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
24
|
+
return false;
|
|
25
|
+
const { hash, by, at } = value;
|
|
26
|
+
return typeof hash === 'string' && typeof by === 'string' && typeof at === 'string';
|
|
27
|
+
};
|
|
28
|
+
const readReady = (dir) => {
|
|
29
|
+
const file = readyFileOf(dir);
|
|
30
|
+
if (!(0, fs_1.existsSync)(file))
|
|
31
|
+
return {};
|
|
32
|
+
try {
|
|
33
|
+
const parsed = JSON.parse((0, fs_1.readFileSync)(file, 'utf8'));
|
|
34
|
+
return parsed && typeof parsed === 'object' && !Array.isArray(parsed)
|
|
35
|
+
? Object.fromEntries(Object.entries(parsed).filter((entry) => isReady(entry[1])))
|
|
36
|
+
: {};
|
|
37
|
+
}
|
|
38
|
+
catch (_a) {
|
|
39
|
+
return {};
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
exports.readReady = readReady;
|
|
43
|
+
/** The part hash of a part and the directory whose ready.json holds it, or why the product has no such part. */
|
|
44
|
+
const readyPartOf = (options) => {
|
|
45
|
+
const resolved = options.product.parts.find((candidate) => (0, resolve_product_1.partKeyOf)(candidate) === options.part);
|
|
46
|
+
if (!resolved)
|
|
47
|
+
return `product "${options.product.name}" has no part "${options.part}"`;
|
|
48
|
+
const owner = (0, inventory_approval_1.partOwnerOf)({ product: options.product, part: resolved });
|
|
49
|
+
return { dir: owner.dir, hash: (0, baseline_1.partHashOf)({ product: owner, dir: (0, path_1.dirname)(resolved.file) }) };
|
|
50
|
+
};
|
|
51
|
+
exports.readyPartOf = readyPartOf;
|
|
52
|
+
/** The ready mark of a part while its hash still matches, `null` when it has none or the part changed since. */
|
|
53
|
+
const readyMarkOf = (options) => {
|
|
54
|
+
const found = (0, exports.readyPartOf)(options);
|
|
55
|
+
if (typeof found === 'string')
|
|
56
|
+
return null;
|
|
57
|
+
const mark = (0, exports.readReady)(found.dir)[options.part];
|
|
58
|
+
return (mark === null || mark === void 0 ? void 0 : mark.hash) === found.hash ? mark : null;
|
|
59
|
+
};
|
|
60
|
+
exports.readyMarkOf = readyMarkOf;
|
|
61
|
+
/** Draws a part and answers its whole open-point list, or why it could not be drawn. */
|
|
62
|
+
const drawnPartPointsOf = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
63
|
+
const findings = yield (0, drawn_open_points_1.drawnFindingsOf)(Object.assign(Object.assign({}, options), { parts: [options.part] }));
|
|
64
|
+
return 'unavailable' in findings ? findings : (0, read_open_points_1.partPointsOf)((0, read_open_points_1.readOpenPoints)(options.product, findings), options.part);
|
|
65
|
+
});
|
|
66
|
+
exports.drawnPartPointsOf = drawnPartPointsOf;
|
|
67
|
+
/** The parts of a product whose ready mark still holds. */
|
|
68
|
+
const readyPartsOf = (product) => product.parts.map(resolve_product_1.partKeyOf).filter((part) => (0, exports.readyMarkOf)({ product, part }) !== null);
|
|
69
|
+
exports.readyPartsOf = readyPartsOf;
|
|
70
|
+
/**
|
|
71
|
+
* Marks a part ready at `hash`, or answers why not: 400 without `by` or `hash`, 404 for an unknown part, 409 when the
|
|
72
|
+
* part changed since `hash`, 422 while `pointsOf` lists any open point. `pointsOf` runs only after the hash holds.
|
|
73
|
+
*/
|
|
74
|
+
const markPartReady = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
75
|
+
var _a;
|
|
76
|
+
const { product, part, hash, by } = options;
|
|
77
|
+
if (typeof by !== 'string' || by.trim() === '')
|
|
78
|
+
return { status: 400, error: 'by is required' };
|
|
79
|
+
if (typeof hash !== 'string' || hash === '')
|
|
80
|
+
return { status: 400, error: 'hash is required' };
|
|
81
|
+
const found = (0, exports.readyPartOf)({ product, part });
|
|
82
|
+
if (typeof found === 'string')
|
|
83
|
+
return { status: 404, error: found };
|
|
84
|
+
if (hash !== found.hash)
|
|
85
|
+
return { status: 409, error: `${part} changed since its open points were shown - reload and check it again` };
|
|
86
|
+
const points = yield options.pointsOf();
|
|
87
|
+
if (!Array.isArray(points))
|
|
88
|
+
return points;
|
|
89
|
+
if (points.length > 0)
|
|
90
|
+
return {
|
|
91
|
+
status: 422,
|
|
92
|
+
error: `${part} has ${points.length} open point${points.length === 1 ? '' : 's'} - close them before ready`,
|
|
93
|
+
points,
|
|
94
|
+
};
|
|
95
|
+
const mark = { hash, by: by.trim(), at: (_a = options.at) !== null && _a !== void 0 ? _a : new Date().toISOString() };
|
|
96
|
+
const marks = Object.entries(Object.assign(Object.assign({}, (0, exports.readReady)(found.dir)), { [part]: mark })).sort(([a], [b]) => a.localeCompare(b));
|
|
97
|
+
(0, fs_1.writeFileSync)(readyFileOf(found.dir), `${JSON.stringify(Object.fromEntries(marks), null, 2)}\n`);
|
|
98
|
+
return mark;
|
|
99
|
+
});
|
|
100
|
+
exports.markPartReady = markPartReady;
|
|
101
|
+
//# sourceMappingURL=part-ready.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"part-ready.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/system/part-ready.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { CompletenessGap } from './complete';
|
|
2
|
+
import { OpenPoint, OpenPointsInput, PartOpenPoints } from './open-points';
|
|
3
|
+
import { RenderIssue } from './render-check';
|
|
4
|
+
import { ResolvedProduct } from './resolve-product';
|
|
5
|
+
/**
|
|
6
|
+
* The open points of every part of a product, read from its part files, comments and sketches, plus the
|
|
7
|
+
* `rendered` findings of a check that drew the parts.
|
|
8
|
+
*/
|
|
9
|
+
export declare const readOpenPoints: (product: ResolvedProduct, rendered?: Pick<OpenPointsInput, "missingStates" | "contrasts">) => PartOpenPoints[];
|
|
10
|
+
/** The points of one part, or none when it has no open point. */
|
|
11
|
+
export declare const partPointsOf: (list: PartOpenPoints[], part: string) => OpenPoint[];
|
|
12
|
+
/** The `CONTRAST` findings of a render check, once per part, state and path. */
|
|
13
|
+
export declare const contrastsOf: (issues: RenderIssue[]) => NonNullable<OpenPointsInput["contrasts"]>;
|
|
14
|
+
/** The controls of each part that lack a drawn state, from the gaps of a completeness check. */
|
|
15
|
+
export declare const missingStatesOf: (gaps: Map<string, CompletenessGap[] | string>) => NonNullable<OpenPointsInput["missingStates"]>;
|
|
16
|
+
/**
|
|
17
|
+
* The open points of `targets` as a sketch variant draws them, of the kinds the sketch closes itself, split into the
|
|
18
|
+
* ones the variant adds to the merged parts and the ones it inherits from them.
|
|
19
|
+
*/
|
|
20
|
+
export declare const sketchOpenPointsOf: ({ merged, variant, targets, }: {
|
|
21
|
+
merged: ResolvedProduct;
|
|
22
|
+
variant: ResolvedProduct;
|
|
23
|
+
targets: string[];
|
|
24
|
+
}) => {
|
|
25
|
+
added: PartOpenPoints[];
|
|
26
|
+
inherited: PartOpenPoints[];
|
|
27
|
+
};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sketchOpenPointsOf = exports.missingStatesOf = exports.contrastsOf = exports.partPointsOf = exports.readOpenPoints = void 0;
|
|
4
|
+
const comment_1 = require("./comments/comment");
|
|
5
|
+
const complete_1 = require("./complete");
|
|
6
|
+
const open_points_1 = require("./open-points");
|
|
7
|
+
const resolve_product_1 = require("./resolve-product");
|
|
8
|
+
const part_definition_1 = require("./sketch/part-definition");
|
|
9
|
+
const sketch_1 = require("./sketch/sketch");
|
|
10
|
+
const isPair = (pair) => pair.from !== null && pair.to !== null;
|
|
11
|
+
const motionOf = (source) => {
|
|
12
|
+
var _a;
|
|
13
|
+
const states = (0, part_definition_1.stateNamesOf)(source);
|
|
14
|
+
if (!states)
|
|
15
|
+
return {};
|
|
16
|
+
return {
|
|
17
|
+
motion: {
|
|
18
|
+
states,
|
|
19
|
+
motions: (0, part_definition_1.motionRefsOf)(source).motions.filter(isPair),
|
|
20
|
+
unreachable: ((_a = (0, part_definition_1.unreachableOf)(source)) !== null && _a !== void 0 ? _a : []).filter((pair) => { var _a; return !!((_a = pair.reason) === null || _a === void 0 ? void 0 : _a.trim()); }).filter(isPair),
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
const partInputsOf = (product) => product.parts.map((part) => (Object.assign({ key: (0, resolve_product_1.partKeyOf)(part), layer: part.layer, linked: (0, part_definition_1.partLinkOf)(part.source).kind !== 'none', controls: (0, part_definition_1.declaresControlsOf)(part.source) }, motionOf(part.source))));
|
|
25
|
+
/**
|
|
26
|
+
* The open points of every part of a product, read from its part files, comments and sketches, plus the
|
|
27
|
+
* `rendered` findings of a check that drew the parts.
|
|
28
|
+
*/
|
|
29
|
+
const readOpenPoints = (product, rendered = {}) => {
|
|
30
|
+
const source = { productDir: product.dir, product: product.name };
|
|
31
|
+
return (0, open_points_1.openPointsOf)(Object.assign({ parts: partInputsOf(product), comments: (0, comment_1.listComments)(Object.assign(Object.assign({}, source), { all: true })).comments.map((comment) => ({
|
|
32
|
+
id: comment.id,
|
|
33
|
+
part: comment.part,
|
|
34
|
+
state: comment.state,
|
|
35
|
+
answered: comment.addressed !== undefined,
|
|
36
|
+
resolved: comment.resolved !== undefined,
|
|
37
|
+
})), sketches: (0, sketch_1.listSketches)(source).flatMap((sketch) => {
|
|
38
|
+
var _a, _b;
|
|
39
|
+
return typeof sketch === 'string'
|
|
40
|
+
? []
|
|
41
|
+
: [{ targets: sketch.targets, status: sketch.status, decision: (_b = (_a = sketch.decision) === null || _a === void 0 ? void 0 : _a.kind) !== null && _b !== void 0 ? _b : null }];
|
|
42
|
+
}) }, rendered));
|
|
43
|
+
};
|
|
44
|
+
exports.readOpenPoints = readOpenPoints;
|
|
45
|
+
/** The points of one part, or none when it has no open point. */
|
|
46
|
+
const partPointsOf = (list, part) => { var _a, _b; return (_b = (_a = list.find((entry) => entry.part === part)) === null || _a === void 0 ? void 0 : _a.points) !== null && _b !== void 0 ? _b : []; };
|
|
47
|
+
exports.partPointsOf = partPointsOf;
|
|
48
|
+
/** The `CONTRAST` findings of a render check, once per part, state and path. */
|
|
49
|
+
const contrastsOf = (issues) => {
|
|
50
|
+
const seen = new Set();
|
|
51
|
+
return issues.flatMap(({ rule, part, state, path }) => {
|
|
52
|
+
const key = `${part} ${state} ${path}`;
|
|
53
|
+
if (rule !== 'CONTRAST' || seen.has(key))
|
|
54
|
+
return [];
|
|
55
|
+
seen.add(key);
|
|
56
|
+
return [{ part, state, path }];
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
exports.contrastsOf = contrastsOf;
|
|
60
|
+
/** The controls of each part that lack a drawn state, from the gaps of a completeness check. */
|
|
61
|
+
const missingStatesOf = (gaps) => [...gaps].flatMap(([part, found]) => typeof found === 'string'
|
|
62
|
+
? []
|
|
63
|
+
: [...new Set(found.filter(complete_1.isMissingStateGap).map((gap) => gap.target.slice(part.length + 1)))].map((control) => ({ part, control })));
|
|
64
|
+
exports.missingStatesOf = missingStatesOf;
|
|
65
|
+
/**
|
|
66
|
+
* The open points of `targets` as a sketch variant draws them, of the kinds the sketch closes itself, split into the
|
|
67
|
+
* ones the variant adds to the merged parts and the ones it inherits from them.
|
|
68
|
+
*/
|
|
69
|
+
const sketchOpenPointsOf = ({ merged, variant, targets, }) => {
|
|
70
|
+
const ownOf = (product) => (0, open_points_1.openPointsOf)({
|
|
71
|
+
parts: partInputsOf(product).filter((part) => targets.includes(part.key)),
|
|
72
|
+
comments: [],
|
|
73
|
+
sketches: [],
|
|
74
|
+
}).flatMap(({ part, points }) => {
|
|
75
|
+
const own = points.filter((point) => open_points_1.SKETCH_KINDS.includes(point.kind));
|
|
76
|
+
return own.length > 0 ? [{ part, points: own }] : [];
|
|
77
|
+
});
|
|
78
|
+
return (0, open_points_1.sketchAddedPointsOf)(ownOf(merged), ownOf(variant));
|
|
79
|
+
};
|
|
80
|
+
exports.sketchOpenPointsOf = sketchOpenPointsOf;
|
|
81
|
+
//# sourceMappingURL=read-open-points.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-open-points.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/system/read-open-points.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const READY_USAGE = "ready <layer>/<name> --product <name> --by <name>";
|
|
2
|
+
/** `et design ready <layer>/<name> …` marks a part ready, and exits 1 with its open points while it has any. */
|
|
3
|
+
export declare const designReady: (options: {
|
|
4
|
+
target: string;
|
|
5
|
+
argv: string[];
|
|
6
|
+
invocation: string;
|
|
7
|
+
}) => Promise<0 | 1 | 2>;
|
|
@@ -0,0 +1,65 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.designReady = exports.READY_USAGE = void 0;
|
|
13
|
+
const open_points_1 = require("./open-points");
|
|
14
|
+
const part_ready_1 = require("./part-ready");
|
|
15
|
+
const resolve_product_1 = require("./resolve-product");
|
|
16
|
+
const cli_args_1 = require("./sketch/cli-args");
|
|
17
|
+
const sketch_1 = require("./sketch/sketch");
|
|
18
|
+
exports.READY_USAGE = 'ready <layer>/<name> --product <name> --by <name>';
|
|
19
|
+
/** `et design ready <layer>/<name> …` marks a part ready, and exits 1 with its open points while it has any. */
|
|
20
|
+
const designReady = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
+
const { target, argv, invocation } = options;
|
|
22
|
+
const args = (0, cli_args_1.argsOf)(argv, ['--product', '--by']);
|
|
23
|
+
const usage = `usage: ${invocation} ${exports.READY_USAGE}`;
|
|
24
|
+
if (typeof args === 'string' || (0, cli_args_1.authorOf)(args) === null || args.positional.length !== 1) {
|
|
25
|
+
if (typeof args === 'string')
|
|
26
|
+
console.error(args);
|
|
27
|
+
else if ((0, cli_args_1.authorOf)(args) === null)
|
|
28
|
+
console.error(`ready ${cli_args_1.NEEDS_AUTHOR}`);
|
|
29
|
+
console.error(usage);
|
|
30
|
+
return 2;
|
|
31
|
+
}
|
|
32
|
+
const config = (0, cli_args_1.configOf)(target);
|
|
33
|
+
const parsed = (0, sketch_1.parseTarget)(args.positional[0]);
|
|
34
|
+
if (typeof config === 'string' || typeof parsed === 'string') {
|
|
35
|
+
console.error(typeof config === 'string' ? config : parsed);
|
|
36
|
+
return 1;
|
|
37
|
+
}
|
|
38
|
+
const product = (0, cli_args_1.oneProductOf)({ target, config, asked: args.values['--product'] });
|
|
39
|
+
if (typeof product === 'string') {
|
|
40
|
+
console.error(product);
|
|
41
|
+
return 1;
|
|
42
|
+
}
|
|
43
|
+
const part = (0, resolve_product_1.partKeyOf)(parsed);
|
|
44
|
+
const located = (0, part_ready_1.readyPartOf)({ product, part });
|
|
45
|
+
const marked = yield (0, part_ready_1.markPartReady)({
|
|
46
|
+
product,
|
|
47
|
+
part,
|
|
48
|
+
hash: typeof located === 'string' ? '-' : located.hash,
|
|
49
|
+
by: (0, cli_args_1.authorOf)(args),
|
|
50
|
+
pointsOf: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
51
|
+
const points = yield (0, part_ready_1.drawnPartPointsOf)({ target, config, product, part });
|
|
52
|
+
return 'unavailable' in points ? { status: 503, error: `cannot draw ${part}: ${points.unavailable}` } : points;
|
|
53
|
+
}),
|
|
54
|
+
});
|
|
55
|
+
if ('status' in marked) {
|
|
56
|
+
if (marked.points)
|
|
57
|
+
(0, open_points_1.openPointsText)(product.name, [{ part, points: marked.points }]).forEach((line) => console.error(line));
|
|
58
|
+
console.error(marked.error);
|
|
59
|
+
return 1;
|
|
60
|
+
}
|
|
61
|
+
console.log(`${part} is ready in ${product.name}`);
|
|
62
|
+
return 0;
|
|
63
|
+
});
|
|
64
|
+
exports.designReady = designReady;
|
|
65
|
+
//# sourceMappingURL=ready-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ready-command.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/system/ready-command.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA+C;AAC/C,6CAA6E;AAC7E,uDAA8C;AAC9C,gDAA2F;AAC3F,4CAA8C;AAEjC,QAAA,WAAW,GAAG,mDAAmD,CAAC;AAE/E,gHAAgH;AACzG,MAAM,WAAW,GAAG,CAAO,OAA+D,EAAE,EAAE;IACnG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAA,iBAAM,EAAC,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,UAAU,UAAU,IAAI,mBAAW,EAAE,CAAC;IAEpD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAA,mBAAQ,EAAC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxF,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC7C,IAAI,IAAA,mBAAQ,EAAC,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,CAAC,KAAK,CAAC,SAAS,uBAAY,EAAE,CAAC,CAAC;QAEzE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAErB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,mBAAQ,EAAC,MAAM,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAE5D,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,uBAAY,EAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAElF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEvB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,IAAI,GAAG,IAAA,2BAAS,EAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAA,wBAAW,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAa,EAAC;QACjC,OAAO;QACP,IAAI;QACJ,IAAI,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;QACtD,EAAE,EAAE,IAAA,mBAAQ,EAAC,IAAI,CAAC;QAClB,QAAQ,EAAE,GAAS,EAAE;YACnB,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAiB,EAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1E,OAAO,aAAa,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,IAAI,KAAK,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QACjH,CAAC,CAAA;KACF,CAAC,CAAC;IAEH,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,MAAM,CAAC,MAAM;YACf,IAAA,4BAAc,EAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE5B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,gBAAgB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAEnD,OAAO,CAAC,CAAC;AACX,CAAC,CAAA,CAAC;AAzDW,QAAA,WAAW,eAyDtB"}
|
|
@@ -25,6 +25,8 @@ export type RenderedGrid = Pick<RenderIssue, 'product' | 'part' | 'sketch'> & {
|
|
|
25
25
|
line: string;
|
|
26
26
|
};
|
|
27
27
|
export declare const renderIssueLineOf: (issue: RenderIssue) => string;
|
|
28
|
+
/** The render issues as lines, one per finding that repeats across states, sizes, schemes and variants, with where it was found. */
|
|
29
|
+
export declare const groupedIssueLinesOf: (issues: RenderIssue[]) => string[];
|
|
28
30
|
/**
|
|
29
31
|
* Draws every state of the parts of each job in one headless Chromium, on one page of a design server of
|
|
30
32
|
* its own: a page at each product preset, a part with `widths` at each width, any other part fitted to
|