@ethlete/cli 3.0.0-next.22 → 3.0.0-next.23

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.
Files changed (43) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/package.json +1 -1
  3. package/playwright/failure-reporter.d.ts +2 -0
  4. package/playwright/failure-reporter.js +1 -0
  5. package/src/lib/design/check.js +1 -1
  6. package/src/lib/design/check.js.map +1 -1
  7. package/src/lib/design/contact-sheet.d.ts +18 -0
  8. package/src/lib/design/contact-sheet.js +31 -3
  9. package/src/lib/design/contact-sheet.js.map +1 -1
  10. package/src/lib/design/design-command.js +2 -0
  11. package/src/lib/design/design-command.js.map +1 -1
  12. package/src/lib/design/render.d.ts +3 -1
  13. package/src/lib/design/render.js +17 -1
  14. package/src/lib/design/render.js.map +1 -1
  15. package/src/lib/design/serve.js +250 -243
  16. package/src/lib/design/serve.js.map +1 -1
  17. package/src/lib/design/shot-command.d.ts +25 -0
  18. package/src/lib/design/shot-command.js +131 -39
  19. package/src/lib/design/shot-command.js.map +1 -1
  20. package/src/lib/design/sketch-command.d.ts +7 -1
  21. package/src/lib/design/sketch-command.js +54 -8
  22. package/src/lib/design/sketch-command.js.map +1 -1
  23. package/src/lib/design/studio-api.d.ts +11 -1
  24. package/src/lib/design/studio-api.js +49 -12
  25. package/src/lib/design/studio-api.js.map +1 -1
  26. package/src/lib/design/system/comments/comment.d.ts +1 -1
  27. package/src/lib/design/system/sketch/merge.js +3 -0
  28. package/src/lib/design/system/sketch/merge.js.map +1 -1
  29. package/src/lib/design/system/sketch/sketch.d.ts +55 -9
  30. package/src/lib/design/system/sketch/sketch.js +90 -3
  31. package/src/lib/design/system/sketch/sketch.js.map +1 -1
  32. package/src/lib/design/system/sketch/unchanged-states.d.ts +3 -3
  33. package/src/lib/design/system/sketch/unchanged-states.js +6 -6
  34. package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
  35. package/src/lib/design/typecheck.d.ts +2 -0
  36. package/src/lib/design/typecheck.js +19 -2
  37. package/src/lib/design/typecheck.js.map +1 -1
  38. package/src/lib/design/variant-diff.d.ts +18 -2
  39. package/src/lib/design/variant-diff.js +17 -2
  40. package/src/lib/design/variant-diff.js.map +1 -1
  41. package/src/lib/playwright/failure-reporter.d.ts +35 -0
  42. package/src/lib/playwright/failure-reporter.js +66 -0
  43. package/src/lib/playwright/failure-reporter.js.map +1 -0
@@ -1,9 +1,11 @@
1
1
  import { SheetCell } from './contact-sheet';
2
2
  import { DesignConfig } from './paths';
3
3
  import { ResolvedProduct } from './system/resolve-product';
4
+ import { Sketch } from './system/sketch/sketch';
4
5
  import { PartAddress } from './shot';
5
6
  import { ListedGrid } from './system/list-system';
6
7
  import { SketchVariant } from './system/system-modules';
8
+ import { BoxOf } from './variant-diff';
7
9
  export declare const SHOT_USAGE: string;
8
10
  type Axis = {
9
11
  label: string;
@@ -12,7 +14,9 @@ type Axis = {
12
14
  type Plan = {
13
15
  label: string;
14
16
  address: PartAddress;
17
+ absent?: true;
15
18
  };
19
+ export declare const NEW_STATE_NOTE = "New state - no merged version";
16
20
  /**
17
21
  * The sheet with a row after each variant row that marks, per state, the pixels the variant changes from the merged
18
22
  * row; headed by a note that the part is new when there is no merged row. A cell of `props` at the place of a variant
@@ -46,7 +50,17 @@ export declare const rowsOf: (options: {
46
50
  part: string;
47
51
  variants: string[] | null;
48
52
  merged: boolean;
53
+ rejected?: string[];
49
54
  }) => Axis[];
55
+ /**
56
+ * The variants of a sketch that a shot draws: all of them, or only those in the named rounds and among the named
57
+ * variants. A string names a round or a variant the sketch does not have, or says that none is left.
58
+ */
59
+ export declare const shownVariantsOf: (options: {
60
+ sketch: Pick<Sketch, "variants" | "rounds" | "variantInfo">;
61
+ rounds: string[];
62
+ variants: string[];
63
+ }) => string[] | string;
50
64
  /** The diff lines of the sheet, a line per new state, and the PNG path last. */
51
65
  export declare const shotReportOf: (options: {
52
66
  out: string;
@@ -63,6 +77,17 @@ export declare const shotProductOf: (options: {
63
77
  asked: string | undefined;
64
78
  part: string;
65
79
  }) => ResolvedProduct | string;
80
+ /**
81
+ * The crop around every pixel a variant cell changes from the merged cell of its state, in CSS pixels inside the
82
+ * largest picture, or `null` when no variant changes a pixel.
83
+ */
84
+ export declare const changedCropIn: (options: {
85
+ plan: Plan[][];
86
+ sheet: SheetCell[][];
87
+ mergedIndex: number;
88
+ boxOf: BoxOf;
89
+ scale: number;
90
+ }) => Promise<import("./contact-sheet").ChangedBox | null>;
66
91
  /**
67
92
  * `et design shot <layer>/<name> --states [--variants]` draws every state of a part, and with `--variants`
68
93
  * every variant of its open sketch too, into one contact sheet PNG, and prints where it wrote it.
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.designShot = exports.shotProductOf = exports.shotReportOf = exports.rowsOf = exports.gridRowsOf = exports.planOf = exports.withDiffRows = exports.SHOT_USAGE = void 0;
12
+ exports.designShot = exports.changedCropIn = exports.shotProductOf = exports.shotReportOf = exports.shownVariantsOf = exports.rowsOf = exports.gridRowsOf = exports.planOf = exports.withDiffRows = exports.NEW_STATE_NOTE = exports.SHOT_USAGE = void 0;
13
13
  const fs_1 = require("fs");
14
14
  const path_1 = require("path");
15
15
  const contact_sheet_1 = require("./contact-sheet");
@@ -24,7 +24,8 @@ const shot_1 = require("./shot");
24
24
  const list_system_1 = require("./system/list-system");
25
25
  const system_modules_1 = require("./system/system-modules");
26
26
  const thumb_1 = require("./thumb");
27
- exports.SHOT_USAGE = `shot <layer>/<name> --states [--variants [--at <commit>] [--diff-props]] [--state <name>[,<name>...]] [--interaction <${force_interactions_1.INTERACTIONS.join('|')}>] [--preset <preset> | --width <px>] [--scale <1-4>] [--crop <x,y,width,height>] [--product <name>] [--surface <name>] [--color <name>] [--out <file>]`;
27
+ exports.SHOT_USAGE = `shot <layer>/<name> --states [--variants [--round <key>[,<key>...]] [--variant <name>[,<name>...]] [--at <commit>] [--diff-props]] [--state <name>[,<name>...]] [--interaction <${force_interactions_1.INTERACTIONS.join('|')}>] [--preset <preset> | --width <px>] [--scale <1-4>] [--crop <x,y,width,height> | --crop changed] [--product <name>] [--surface <name>] [--color <name>] [--out <file>]`;
28
+ exports.NEW_STATE_NOTE = 'New state - no merged version';
28
29
  /**
29
30
  * The sheet with a row after each variant row that marks, per state, the pixels the variant changes from the merged
30
31
  * row; headed by a note that the part is new when there is no merged row. A cell of `props` at the place of a variant
@@ -36,7 +37,7 @@ const withDiffRows = (options) => {
36
37
  const { rows, plan, sheet, props, grids } = options;
37
38
  const mergedIndex = rows.findIndex((axis) => axis.sketch === null);
38
39
  const compares = mergedIndex !== -1 && rows.length > 1;
39
- const mergedStates = new Set(((_a = plan[mergedIndex]) !== null && _a !== void 0 ? _a : []).map((entry) => entry.address.state));
40
+ const mergedStates = new Set(((_a = plan[mergedIndex]) !== null && _a !== void 0 ? _a : []).flatMap((entry) => (entry.absent ? [] : [entry.address.state])));
40
41
  const merged = new Map(((_b = plan[mergedIndex]) !== null && _b !== void 0 ? _b : []).flatMap((entry, index) => {
41
42
  var _a;
42
43
  const cell = (_a = sheet[mergedIndex]) === null || _a === void 0 ? void 0 : _a[index];
@@ -102,11 +103,9 @@ const planOf = (options) => {
102
103
  const name = states ? column : ((_a = state !== null && state !== void 0 ? state : own[0]) !== null && _a !== void 0 ? _a : '');
103
104
  if (states && !own.includes(name))
104
105
  return [];
106
+ const absent = !states && state !== null && axis.sketch === null && !own.includes(name) && all.includes(name);
105
107
  return [
106
- {
107
- label: [axis.label, states || axis.sketch === null ? name : ''].filter(Boolean).join(' / '),
108
- address: Object.assign(Object.assign({}, base), { width, state: name, sketch: axis.sketch }),
109
- },
108
+ Object.assign({ label: [axis.label, states || axis.sketch === null ? name : ''].filter(Boolean).join(' / '), address: Object.assign(Object.assign({}, base), { width, state: name, sketch: axis.sketch }) }, (absent ? { absent: true } : {})),
110
109
  ];
111
110
  });
112
111
  });
@@ -127,15 +126,39 @@ const gridRowsOf = (row, grid) => {
127
126
  };
128
127
  exports.gridRowsOf = gridRowsOf;
129
128
  const rowsOf = (options) => {
130
- const { part, variants, merged } = options;
129
+ const { part, variants, merged, rejected = [] } = options;
131
130
  if (!variants)
132
131
  return [{ label: '', sketch: null }];
133
132
  return [
134
133
  ...(merged ? [{ label: 'merged', sketch: null }] : []),
135
- ...variants.map((variant) => ({ label: variant, sketch: { target: part, variant } })),
134
+ ...variants.map((variant) => ({
135
+ label: rejected.includes(variant) ? `${variant} rejected` : variant,
136
+ sketch: { target: part, variant },
137
+ })),
136
138
  ];
137
139
  };
138
140
  exports.rowsOf = rowsOf;
141
+ /**
142
+ * The variants of a sketch that a shot draws: all of them, or only those in the named rounds and among the named
143
+ * variants. A string names a round or a variant the sketch does not have, or says that none is left.
144
+ */
145
+ const shownVariantsOf = (options) => {
146
+ const { sketch, rounds, variants } = options;
147
+ const known = sketch.rounds.map((round) => round.key);
148
+ const unknownRounds = rounds.filter((key) => !known.includes(key));
149
+ const unknownVariants = variants.filter((name) => !sketch.variants.includes(name));
150
+ if (unknownRounds.length > 0)
151
+ return `no round ${unknownRounds.join(', ')} (rounds: ${known.join(', ')})`;
152
+ if (unknownVariants.length > 0)
153
+ return `no variant ${unknownVariants.join(', ')} (variants: ${sketch.variants.join(', ')})`;
154
+ const shown = sketch.variants.filter((name) => {
155
+ var _a, _b;
156
+ return (rounds.length === 0 || rounds.includes((_b = (_a = sketch.variantInfo[name]) === null || _a === void 0 ? void 0 : _a.round) !== null && _b !== void 0 ? _b : '')) &&
157
+ (variants.length === 0 || variants.includes(name));
158
+ });
159
+ return shown.length > 0 ? shown : `no variant is in round ${rounds.join(', ')} and named ${variants.join(', ')}`;
160
+ };
161
+ exports.shownVariantsOf = shownVariantsOf;
139
162
  /** The diff lines of the sheet, a line per new state, and the PNG path last. */
140
163
  const shotReportOf = (options) => [
141
164
  ...options.diffs,
@@ -160,17 +183,54 @@ const shotProductOf = (options) => {
160
183
  return (0, cli_args_1.oneProductOf)({ target, config, asked: holders.length === 1 ? holders[0] : undefined });
161
184
  };
162
185
  exports.shotProductOf = shotProductOf;
186
+ const CROP_CHANGED = 'changed';
187
+ /**
188
+ * The crop around every pixel a variant cell changes from the merged cell of its state, in CSS pixels inside the
189
+ * largest picture, or `null` when no variant changes a pixel.
190
+ */
191
+ const changedCropIn = (options) => __awaiter(void 0, void 0, void 0, function* () {
192
+ var _a;
193
+ const { plan, sheet, mergedIndex, boxOf, scale } = options;
194
+ const pngs = sheet.flatMap((row) => row.flatMap((cell) => ('png' in cell ? [cell.png] : [])));
195
+ const merged = new Map(((_a = plan[mergedIndex]) !== null && _a !== void 0 ? _a : []).flatMap((entry, index) => {
196
+ var _a;
197
+ const cell = (_a = sheet[mergedIndex]) === null || _a === void 0 ? void 0 : _a[index];
198
+ return cell && 'png' in cell ? [[entry.address.state, cell.png]] : [];
199
+ }));
200
+ const pairs = sheet.flatMap((row, rowIndex) => rowIndex === mergedIndex
201
+ ? []
202
+ : row.flatMap((cell, index) => {
203
+ var _a, _b, _c;
204
+ const before = merged.get((_c = (_b = (_a = plan[rowIndex]) === null || _a === void 0 ? void 0 : _a[index]) === null || _b === void 0 ? void 0 : _b.address.state) !== null && _c !== void 0 ? _c : '');
205
+ return before && 'png' in cell ? [[before, cell.png]] : [];
206
+ }));
207
+ if (pngs.length === 0)
208
+ return null;
209
+ const sizes = pngs.map(contact_sheet_1.pngSizeOf);
210
+ const boxes = yield Promise.all(pairs.map(([before, after]) => boxOf(before, after)));
211
+ return (0, contact_sheet_1.changedCropOf)({
212
+ boxes,
213
+ frame: {
214
+ width: Math.max(...sizes.map((size) => size.width)),
215
+ height: Math.max(...sizes.map((size) => size.height)),
216
+ },
217
+ scale,
218
+ });
219
+ });
220
+ exports.changedCropIn = changedCropIn;
163
221
  const stringsOf = (states) => (states && typeof states === 'object' ? Object.keys(states) : []);
164
222
  /**
165
223
  * `et design shot <layer>/<name> --states [--variants]` draws every state of a part, and with `--variants`
166
224
  * every variant of its open sketch too, into one contact sheet PNG, and prints where it wrote it.
167
225
  */
168
226
  const designShot = (options) => __awaiter(void 0, void 0, void 0, function* () {
169
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
227
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
170
228
  const { target, argv, invocation } = options;
171
229
  const args = (0, cli_args_1.argsOf)(argv, [
172
230
  '--product',
173
231
  '--at',
232
+ '--round',
233
+ '--variant',
174
234
  '--state',
175
235
  '--interaction',
176
236
  '--preset',
@@ -191,18 +251,22 @@ const designShot = (options) => __awaiter(void 0, void 0, void 0, function* () {
191
251
  const states = args.flags.has('--states') || asked.length > 1;
192
252
  const variants = args.flags.has('--variants');
193
253
  const diffProps = args.flags.has('--diff-props');
254
+ const onlyRounds = (_d = (_c = args.values['--round']) === null || _c === void 0 ? void 0 : _c.split(',').filter(Boolean)) !== null && _d !== void 0 ? _d : [];
255
+ const onlyVariants = (_f = (_e = args.values['--variant']) === null || _e === void 0 ? void 0 : _e.split(',').filter(Boolean)) !== null && _f !== void 0 ? _f : [];
194
256
  const width = args.values['--width'] === undefined ? null : Number(args.values['--width']);
195
- const preset = (_c = args.values['--preset']) !== null && _c !== void 0 ? _c : null;
196
- const scale = Number((_d = args.values['--scale']) !== null && _d !== void 0 ? _d : 1);
197
- const interaction = (_e = args.values['--interaction']) !== null && _e !== void 0 ? _e : null;
257
+ const preset = (_g = args.values['--preset']) !== null && _g !== void 0 ? _g : null;
258
+ const scale = Number((_h = args.values['--scale']) !== null && _h !== void 0 ? _h : 1);
259
+ const interaction = (_j = args.values['--interaction']) !== null && _j !== void 0 ? _j : null;
260
+ const cropChanged = args.values['--crop'] === CROP_CHANGED;
198
261
  if (!part ||
199
262
  extra.length > 0 ||
200
263
  (!states && !variants) ||
201
- ((args.values['--at'] !== undefined || diffProps) && !variants) ||
264
+ ((args.values['--at'] !== undefined || diffProps || onlyRounds.length > 0 || onlyVariants.length > 0) &&
265
+ !variants) ||
202
266
  (width !== null && !(Number.isInteger(width) && width > 0)) ||
203
267
  (preset && width) ||
204
268
  !(Number.isInteger(scale) && scale >= 1 && scale <= 4) ||
205
- (0, shot_1.cropOf)(args.values['--crop']) === undefined ||
269
+ (cropChanged ? !variants : (0, shot_1.cropOf)(args.values['--crop']) === undefined) ||
206
270
  (interaction !== null && !force_interactions_1.INTERACTIONS.includes(interaction))) {
207
271
  console.error(usage);
208
272
  return 2;
@@ -222,7 +286,7 @@ const designShot = (options) => __awaiter(void 0, void 0, void 0, function* () {
222
286
  let sketchesRoot;
223
287
  if (at !== undefined) {
224
288
  const sketchTarget = (0, sketch_1.parseTarget)(part);
225
- const productDir = (_f = (0, system_modules_1.createSystemModules)({ target, config }).productOf(product)) === null || _f === void 0 ? void 0 : _f.dir;
289
+ const productDir = (_k = (0, system_modules_1.createSystemModules)({ target, config }).productOf(product)) === null || _k === void 0 ? void 0 : _k.dir;
226
290
  if (typeof sketchTarget === 'string' || !productDir) {
227
291
  console.error(`design-explore: --at needs a <layer>/<name> part of a known product`);
228
292
  return 1;
@@ -242,24 +306,34 @@ const designShot = (options) => __awaiter(void 0, void 0, void 0, function* () {
242
306
  }
243
307
  const system = (0, system_modules_1.createSystemModules)({ target, config, sketchesRoot });
244
308
  const sketch = system.sketchesOf(product).find((found) => found.target === part);
245
- const rows = (0, exports.rowsOf)({
246
- part,
247
- variants: variants ? ((_g = sketch === null || sketch === void 0 ? void 0 : sketch.variants) !== null && _g !== void 0 ? _g : []) : null,
248
- merged: Boolean(system.partOf({ product, part })),
249
- });
250
309
  if (variants && !(sketch === null || sketch === void 0 ? void 0 : sketch.variants.length)) {
251
310
  console.error(`design-explore: ${part} has no open sketch in product "${product}"`);
252
311
  return 1;
253
312
  }
313
+ const shownVariants = variants && sketch ? (0, exports.shownVariantsOf)({ sketch, rounds: onlyRounds, variants: onlyVariants }) : null;
314
+ if (typeof shownVariants === 'string') {
315
+ console.error(`design-explore: ${part} has ${shownVariants}`);
316
+ return 1;
317
+ }
318
+ const rows = (0, exports.rowsOf)({
319
+ part,
320
+ variants: shownVariants,
321
+ merged: Boolean(system.partOf({ product, part })),
322
+ rejected: sketch === null || sketch === void 0 ? void 0 : sketch.variants.filter((variant) => (0, sketch_1.rejectionOf)(sketch, variant)),
323
+ });
254
324
  if (!system.partOf({ product, part }) && !sketch) {
255
325
  console.error(`design-explore: product "${product}" has no part "${part}"`);
256
326
  return 1;
257
327
  }
328
+ if (cropChanged && !system.partOf({ product, part })) {
329
+ console.error(`design-explore: --crop changed compares the variants with the merged part, and ${part} is new in product "${product}"`);
330
+ return 2;
331
+ }
258
332
  const queue = (0, thumb_1.createDrawQueue)({ target });
259
333
  const server = yield (0, serve_1.createDesignServer)({ target, config, listen: true, port: 0, sketchesRoot });
260
334
  try {
261
335
  yield server.listen();
262
- const { port } = (_h = server.httpServer) === null || _h === void 0 ? void 0 : _h.address();
336
+ const { port } = (_l = server.httpServer) === null || _l === void 0 ? void 0 : _l.address();
263
337
  const loaded = new Map();
264
338
  const widths = new Map();
265
339
  const grids = new Map();
@@ -268,12 +342,12 @@ const designShot = (options) => __awaiter(void 0, void 0, void 0, function* () {
268
342
  if (!found)
269
343
  continue;
270
344
  const module = (yield server.ssrLoadModule((0, system_modules_1.productModuleIdOf)({ file: found.file, product, sketch: axis.sketch })));
271
- const names = stringsOf((_j = module.default) === null || _j === void 0 ? void 0 : _j.states);
272
- const first = Array.isArray((_k = module.default) === null || _k === void 0 ? void 0 : _k.widths) ? module.default.widths[0] : undefined;
345
+ const names = stringsOf((_m = module.default) === null || _m === void 0 ? void 0 : _m.states);
346
+ const first = Array.isArray((_o = module.default) === null || _o === void 0 ? void 0 : _o.widths) ? module.default.widths[0] : undefined;
273
347
  loaded.set(axis, names);
274
348
  if (typeof first === 'number' && Number.isInteger(first) && first > 0)
275
349
  widths.set(axis, first);
276
- grids.set(axis, (0, list_system_1.gridOf)((_l = module.default) === null || _l === void 0 ? void 0 : _l.grid, names).grid);
350
+ grids.set(axis, (0, list_system_1.gridOf)((_p = module.default) === null || _p === void 0 ? void 0 : _p.grid, names).grid);
277
351
  }
278
352
  const known = [...new Set([...loaded.values()].flat())];
279
353
  const unknown = asked.filter((name) => !known.includes(name));
@@ -282,15 +356,15 @@ const designShot = (options) => __awaiter(void 0, void 0, void 0, function* () {
282
356
  return 1;
283
357
  }
284
358
  const isPage = part.startsWith('pages/');
285
- const presets = (_o = (_m = system.productOf(product)) === null || _m === void 0 ? void 0 : _m.presets) !== null && _o !== void 0 ? _o : {};
286
- const chosenPreset = preset !== null && preset !== void 0 ? preset : (isPage ? ((_p = Object.keys(presets)[0]) !== null && _p !== void 0 ? _p : null) : null);
359
+ const presets = (_r = (_q = system.productOf(product)) === null || _q === void 0 ? void 0 : _q.presets) !== null && _r !== void 0 ? _r : {};
360
+ const chosenPreset = preset !== null && preset !== void 0 ? preset : (isPage ? ((_s = Object.keys(presets)[0]) !== null && _s !== void 0 ? _s : null) : null);
287
361
  const params = new URLSearchParams();
288
362
  for (const name of ['surface', 'color', 'scale']) {
289
363
  const value = args.values[`--${name}`];
290
364
  if (value)
291
365
  params.set(name, value);
292
366
  }
293
- if (args.values['--crop'])
367
+ if (args.values['--crop'] && !cropChanged)
294
368
  params.set('clip', args.values['--crop']);
295
369
  const plan = (0, exports.planOf)({
296
370
  base: { product, part, preset: chosenPreset, width, interaction },
@@ -298,26 +372,44 @@ const designShot = (options) => __awaiter(void 0, void 0, void 0, function* () {
298
372
  statesOf: (axis) => { var _a; return (_a = loaded.get(axis)) !== null && _a !== void 0 ? _a : []; },
299
373
  widthOf: (axis) => { var _a; return (isPage ? null : ((_a = widths.get(axis)) !== null && _a !== void 0 ? _a : null)); },
300
374
  states,
301
- state: (_q = asked[0]) !== null && _q !== void 0 ? _q : null,
375
+ state: (_t = asked[0]) !== null && _t !== void 0 ? _t : null,
302
376
  only: states && asked.length > 0 ? asked : undefined,
303
377
  });
304
378
  const shooter = (0, shot_1.createPartShooter)({ target, base: `http://localhost:${port}`, system });
305
379
  try {
306
- const shoot = (label, address) => shooter.pictureOf(Object.assign(Object.assign({}, address), { params })).then(({ png, markup }) => (Object.assign({ label, png }, (markup === undefined ? {} : { markup }))), (error) => ({ label, error: error instanceof Error ? error.message : String(error) }));
307
- const sheet = [];
308
- for (const row of plan) {
309
- const cells = [];
310
- for (const { label, address } of row)
311
- cells.push(yield shoot(label, address));
312
- sheet.push(cells);
380
+ const shoot = ({ label, address, absent }) => absent
381
+ ? Promise.resolve({ label, note: exports.NEW_STATE_NOTE })
382
+ : shooter.pictureOf(Object.assign(Object.assign({}, address), { params })).then(({ png, markup }) => (Object.assign({ label, png }, (markup === undefined ? {} : { markup }))), (error) => ({ label, error: error instanceof Error ? error.message : String(error) }));
383
+ const shootAll = () => __awaiter(void 0, void 0, void 0, function* () {
384
+ const drawn = [];
385
+ for (const row of plan) {
386
+ const cells = [];
387
+ for (const entry of row)
388
+ cells.push(yield shoot(entry));
389
+ drawn.push(cells);
390
+ }
391
+ return drawn;
392
+ });
393
+ let sheet = yield shootAll();
394
+ const mergedIndex = rows.findIndex((axis) => axis.sketch === null);
395
+ if (cropChanged) {
396
+ const crop = yield (0, exports.changedCropIn)({ plan, sheet, mergedIndex, boxOf: shooter.changedBoxOf, scale });
397
+ if (crop) {
398
+ params.set('clip', `${crop.x},${crop.y},${crop.width},${crop.height}`);
399
+ console.log(`crop ${crop.x},${crop.y},${crop.width},${crop.height} (changed bounds)`);
400
+ sheet = yield shootAll();
401
+ }
402
+ else {
403
+ console.log('crop changed: no variant changes a pixel of the merged part, so the full frame is drawn');
404
+ }
313
405
  }
314
- const mergedStates = new Set((_r = plan[rows.findIndex((axis) => axis.sketch === null)]) === null || _r === void 0 ? void 0 : _r.map((cell) => cell.address.state));
406
+ const mergedStates = new Set((_u = plan[mergedIndex]) === null || _u === void 0 ? void 0 : _u.flatMap((cell) => (cell.absent ? [] : [cell.address.state])));
315
407
  const props = [];
316
408
  for (const row of diffProps ? plan : []) {
317
409
  const cells = [];
318
410
  for (const { label, address } of row) {
319
411
  cells.push(address.sketch && mergedStates.has(address.state)
320
- ? yield shoot(label, Object.assign(Object.assign({}, address), { sketch: null, props: address.sketch }))
412
+ ? yield shoot({ label, address: Object.assign(Object.assign({}, address), { sketch: null, props: address.sketch }) })
321
413
  : { label, note: '' });
322
414
  }
323
415
  props.push(cells);
@@ -334,7 +426,7 @@ const designShot = (options) => __awaiter(void 0, void 0, void 0, function* () {
334
426
  grids: rows.map((axis) => (states ? grids.get(axis) : undefined)),
335
427
  });
336
428
  const { png, diffs } = yield queue.run((browser) => (0, contact_sheet_1.contactSheetOf)({ browser, rows: shown }));
337
- const out = (0, path_1.resolve)(target, (_s = args.values['--out']) !== null && _s !== void 0 ? _s : `${(0, paths_1.workRootOf)(target)}/shots/${product}-${part.replace('/', '-')}.png`);
429
+ const out = (0, path_1.resolve)(target, (_v = args.values['--out']) !== null && _v !== void 0 ? _v : `${(0, paths_1.workRootOf)(target)}/shots/${product}-${part.replace('/', '-')}.png`);
338
430
  (0, fs_1.mkdirSync)((0, path_1.dirname)(out), { recursive: true });
339
431
  (0, fs_1.writeFileSync)(out, png);
340
432
  for (const line of (0, exports.shotReportOf)({ out, diffs, sheet: shown }))
@@ -1 +1 @@
1
- {"version":3,"file":"shot-command.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/shot-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shot-command.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/shot-command.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,13 @@
1
+ import { Sketch } from './system/sketch/sketch';
1
2
  export declare const SKETCH_USAGE: string[];
2
3
  /** One line per flag the usage line names, for `sketch <command> --help`. */
3
4
  export declare const sketchFlagHelpOf: (usage: string) => string[];
4
- /** `et design sketch <command> …` opens, adds variants to, reports on, readies, checks, previews, rebases, merges and discards sketches. */
5
+ /** The verdicts a variant had, oldest first, and whether it is rejected now. */
6
+ export declare const verdictLinesOf: (sketch: Sketch, variant: string) => string[];
7
+ /**
8
+ * `et design sketch <command> …` opens, adds variants to, reports on, readies, checks, previews, rebases, merges and
9
+ * discards sketches, and rejects and reopens their variants.
10
+ */
5
11
  export declare const designSketch: (options: {
6
12
  target: string;
7
13
  argv: string[];
@@ -20,7 +20,7 @@ var __rest = (this && this.__rest) || function (s, e) {
20
20
  return t;
21
21
  };
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.designSketch = exports.sketchFlagHelpOf = exports.SKETCH_USAGE = void 0;
23
+ exports.designSketch = exports.verdictLinesOf = exports.sketchFlagHelpOf = exports.SKETCH_USAGE = void 0;
24
24
  const path_1 = require("path");
25
25
  const assets_1 = require("./system/assets");
26
26
  const comment_1 = require("./system/comments/comment");
@@ -47,6 +47,8 @@ exports.SKETCH_USAGE = [
47
47
  'sketch rebase <layer>/<name> --by <model id> [--product <name>]',
48
48
  'sketch merge <layer>/<name> [--note <reason>] --by <model id> [--product <name>]',
49
49
  'sketch discard <layer>/<name> --by <model id> [--product <name>]',
50
+ 'sketch reject <layer>/<name> --variant <key> [--reason <text>] --by <model id | designer> [--product <name>]',
51
+ 'sketch reopen <layer>/<name> --variant <key> [--reason <text>] --by <model id | designer> [--product <name>]',
50
52
  ];
51
53
  const FLAG_HELP = {
52
54
  '--variants': 'the variant folders to open, a comma list: a,b,c',
@@ -58,12 +60,14 @@ const FLAG_HELP = {
58
60
  '--from': 'the variant to copy',
59
61
  '--title': 'the new title of the round',
60
62
  '--drops': 'the states the round drops on purpose, a comma list',
61
- '--variant': 'the variant the report is about',
63
+ '--variant': 'the variant the command is about',
64
+ '--reason': 'why; on reject of a variant that is rejected already it sets the reason of that rejection; stored with who wrote it',
62
65
  '--done': 'end the live report of the variant',
63
66
  '--product': 'the product; needed only when config.json declares more than one and no other product has the sketch',
64
67
  '--json': 'print JSON',
65
68
  '--fix': "write the variants in the checkout's Prettier format first",
66
69
  };
70
+ const VERDICT_BY_HELP = "a model id records the verdict as the agent's; --by designer records it as the designer's - only when the designer said it at this terminal";
67
71
  const NOTE_HELP = {
68
72
  new: 'what the first round shows',
69
73
  variant: 'why the running round lost; needed with --round',
@@ -73,11 +77,13 @@ const NOTE_HELP = {
73
77
  /** One line per flag the usage line names, for `sketch <command> --help`. */
74
78
  const sketchFlagHelpOf = (usage) => {
75
79
  var _a, _b;
76
- const help = Object.assign(Object.assign({}, FLAG_HELP), { '--note': NOTE_HELP[(_a = usage.split(' ')[1]) !== null && _a !== void 0 ? _a : ''] });
80
+ const command = (_a = usage.split(' ')[1]) !== null && _a !== void 0 ? _a : '';
81
+ const help = Object.assign(Object.assign(Object.assign({}, FLAG_HELP), { '--note': NOTE_HELP[command] }), (VERDICTS.has(command) ? { '--by': VERDICT_BY_HELP } : {}));
77
82
  return [...new Set((_b = usage.match(/--[a-z-]+/gu)) !== null && _b !== void 0 ? _b : [])].flatMap((flag) => help[flag] === undefined ? [] : [` ${flag.padEnd(16)}${help[flag]}`]);
78
83
  };
79
84
  exports.sketchFlagHelpOf = sketchFlagHelpOf;
80
- const WRITES = new Set(['new', 'variant', 'round', 'report', 'ready', 'rebase', 'merge', 'discard']);
85
+ const VERDICTS = new Set(['reject', 'reopen']);
86
+ const WRITES = new Set(['new', 'variant', 'round', 'report', 'ready', 'rebase', 'merge', 'discard', ...VERDICTS]);
81
87
  const fail = (message) => {
82
88
  console.error(message);
83
89
  return 1;
@@ -297,7 +303,8 @@ const listed = (context) => {
297
303
  ? `, picked ${sketch.decision.variant}`
298
304
  : ', discard asked'
299
305
  : '';
300
- console.log(`${sketch.product} ${sketch.target} ${sketch.status} ${sketch.variants.join(', ')}${decided}`);
306
+ const rejected = sketch.variants.filter((variant) => (0, sketch_1.rejectionOf)(sketch, variant));
307
+ console.log(`${sketch.product} ${sketch.target} ${sketch.status} ${sketch.variants.join(', ')}${decided}${rejected.length > 0 ? `, rejected ${rejected.join(', ')}` : ''}`);
301
308
  for (const round of sketch.rounds) {
302
309
  const variants = sketch.variants.filter((variant) => { var _a; return ((_a = sketch.variantInfo[variant]) === null || _a === void 0 ? void 0 : _a.round) === round.key; });
303
310
  console.log(` ${round.key} ${round.title} ${variants.join(', ')}${round.note === '' ? '' : ` - ${round.note}`}${round.lost ? ` - lost: ${round.lost}` : ''}`);
@@ -370,7 +377,7 @@ const autoMerged = (options) => __awaiter(void 0, void 0, void 0, function* () {
370
377
  return again ? fail(`${sketch.target} is ready, not in progress`) : 0;
371
378
  }
372
379
  const author = (_a = (0, cli_args_1.authorOf)(context.args)) !== null && _a !== void 0 ? _a : undefined;
373
- const variant = (_b = sketch.variants[0]) !== null && _b !== void 0 ? _b : '';
380
+ const variant = (_b = sketch.variants.find((candidate) => !(0, sketch_1.rejectionOf)(sketch, candidate))) !== null && _b !== void 0 ? _b : '';
374
381
  const decided = (0, sketch_1.decideSketch)({ sketch, decision: { kind: 'pick', variant } });
375
382
  if (typeof decided === 'string')
376
383
  return fail(decided);
@@ -431,7 +438,7 @@ const checked = (context) => __awaiter(void 0, void 0, void 0, function* () {
431
438
  ...problems,
432
439
  ...(0, check_format_1.formatProblemsOf)({ target, sketch, variant }),
433
440
  ...(typed.kind === 'failed' ? [{ rule: 'TYPE-ERROR', file: sketch.dir, message: `\n${typed.output}` }] : []),
434
- ...(typed.kind === 'unavailable' ? [{ rule: 'TYPE-ERROR', file: sketch.dir, message: typed.message }] : []),
441
+ ...(typed.kind === 'unavailable' ? [{ rule: 'NO-TYPE-CHECKER', file: sketch.dir, message: typed.message }] : []),
435
442
  ];
436
443
  for (const problem of all) {
437
444
  console.error(`${sketch.target} ${variant}: ${problem.rule} ${(0, path_1.relative)(target, problem.file)}: ${problem.message}`);
@@ -520,6 +527,39 @@ const discarded = (context) => withSketch(context, ({ sketch }) => {
520
527
  console.log(`discarded the sketch on ${sketch.target}`);
521
528
  return 0;
522
529
  });
530
+ const verdictOriginOf = (by, of) => of && of !== by ? ` (reason by the ${of})` : '';
531
+ /** The verdicts a variant had, oldest first, and whether it is rejected now. */
532
+ const verdictLinesOf = (sketch, variant) => {
533
+ var _a, _b;
534
+ const history = (_b = (_a = sketch.rejections) === null || _a === void 0 ? void 0 : _a[variant]) !== null && _b !== void 0 ? _b : [];
535
+ const lines = history.flatMap((rejection) => [
536
+ ` rejected by the ${rejection.by} at ${rejection.decidedAt}${verdictOriginOf(rejection.by, rejection.reasonBy)}${rejection.reason ? `: ${rejection.reason}` : ''}`,
537
+ ...(rejection.reopened
538
+ ? [
539
+ ` reopened by the ${rejection.reopened.by} at ${rejection.reopened.decidedAt}${rejection.reopened.reason ? `: ${rejection.reopened.reason}` : ''}`,
540
+ ]
541
+ : []),
542
+ ]);
543
+ return [`${sketch.target} variant ${variant}: ${(0, sketch_1.rejectionOf)(sketch, variant) ? 'rejected' : 'live'}`, ...lines];
544
+ };
545
+ exports.verdictLinesOf = verdictLinesOf;
546
+ const judged = (kind) => (context) => withSketch(context, ({ sketch }) => {
547
+ var _a;
548
+ const { positional, values } = context.args;
549
+ const variant = values['--variant'];
550
+ const reason = ((_a = values['--reason']) === null || _a === void 0 ? void 0 : _a.trim()) || undefined;
551
+ const by = (0, cli_args_1.authorOf)(context.args) === 'designer' ? 'designer' : 'agent';
552
+ if (positional.length !== 1 || !variant)
553
+ return fail(`usage: sketch ${kind} <layer>/<name> --variant <key> [--reason <text>] --by <model id | designer> [--product <name>]`);
554
+ const decision = kind === 'reject' && reason && (0, sketch_1.rejectionOf)(sketch, variant)
555
+ ? { kind: 'reason', variant, reason, by }
556
+ : Object.assign(Object.assign({ kind, variant }, (reason ? { reason } : {})), { by });
557
+ const decided = (0, sketch_1.decideSketch)({ sketch, decision });
558
+ if (typeof decided === 'string')
559
+ return fail(decided);
560
+ (0, exports.verdictLinesOf)(decided, variant).forEach((line) => console.log(line));
561
+ return 0;
562
+ });
523
563
  const COMMANDS = {
524
564
  new: created,
525
565
  variant: varied,
@@ -532,8 +572,13 @@ const COMMANDS = {
532
572
  rebase: rebased,
533
573
  merge: merged,
534
574
  discard: discarded,
575
+ reject: judged('reject'),
576
+ reopen: judged('reopen'),
535
577
  };
536
- /** `et design sketch <command> …` opens, adds variants to, reports on, readies, checks, previews, rebases, merges and discards sketches. */
578
+ /**
579
+ * `et design sketch <command> …` opens, adds variants to, reports on, readies, checks, previews, rebases, merges and
580
+ * discards sketches, and rejects and reopens their variants.
581
+ */
537
582
  const designSketch = (options) => {
538
583
  const { target, argv, invocation } = options;
539
584
  const [command = '', ...rest] = argv;
@@ -551,6 +596,7 @@ const designSketch = (options) => {
551
596
  '--like',
552
597
  '--drops',
553
598
  '--variant-note',
599
+ '--reason',
554
600
  ]);
555
601
  const unauthored = typeof args !== 'string' && WRITES.has(command) && (0, cli_args_1.authorOf)(args) === null;
556
602
  if (!run || typeof args === 'string' || unauthored) {