@vscode/component-explorer-cli 0.2.1-159 → 0.2.1-160

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/README.md CHANGED
@@ -12,12 +12,14 @@ The binary is available as `component-explorer`.
12
12
 
13
13
  ## Commands
14
14
 
15
- ### `screenshot`
15
+ ### `render`
16
16
 
17
- Capture screenshots of all fixtures using a headless browser.
17
+ Capture screenshots of all fixtures using a headless browser and write a manifest.
18
+ The manifest is validated against the shared schema and includes its default
19
+ `projectId` of `"main"`.
18
20
 
19
21
  ```bash
20
- component-explorer screenshot [options]
22
+ component-explorer render [options]
21
23
  ```
22
24
 
23
25
  | Option | Description |
@@ -29,20 +31,42 @@ component-explorer screenshot [options]
29
31
  | `--compare` | Compare screenshots after capturing |
30
32
  | `--compare-target <dir>` | Directory to compare against (default: `.screenshots/baseline`, or `.screenshots/current` with `--accept`) |
31
33
  | `--report <dir>` | Output report folder with report.json, report.md, and changed screenshots (requires `--compare`) |
34
+ | `--workers <count>` | Parallel render workers: defaults to the available CPU count, at least 1 and at most 8. Use `1` for serial rendering. |
32
35
  | `-v, --verbose` | Increase log verbosity (`-v` debug, `-vv` trace) |
33
36
 
37
+ Workers share one server and browser, but each has an isolated browser context and
38
+ page. The selected fixture list is split into fixed, contiguous chunks whose sizes
39
+ differ by at most one. Each worker renders its chunk sequentially without taking
40
+ work from other workers, so assignment and per-worker order are deterministic for
41
+ the same fixture list and worker count. Pin `--workers` to keep the same assignment
42
+ across machines with different CPU counts. The worker count never exceeds the
43
+ number of selected fixtures.
44
+ Manifest entries stay in discovery order, while progress is logged as fixtures
45
+ finish. Total coverage is merged across workers; per-fixture coverage and
46
+ `--reload-between-fixtures` apply independently to each worker's page.
47
+
48
+ Parallel rendering is enabled by default, including in CI. For fixtures that rely
49
+ on cross-fixture state or external shared resources, use `--workers 1`. Additional
50
+ workers require more memory; use an explicit count to tune for your CI runner.
51
+
34
52
  ```bash
35
53
  # Capture all fixtures
36
- component-explorer screenshot
54
+ component-explorer render
37
55
 
38
56
  # Capture and accept as baseline
39
- component-explorer screenshot --accept
57
+ component-explorer render --accept
40
58
 
41
59
  # Capture, then compare against baseline
42
- component-explorer screenshot --compare
60
+ component-explorer render --compare
43
61
 
44
62
  # Filter by fixture-id regex
45
- component-explorer screenshot --fixture-id-regex "^Button/"
63
+ component-explorer render --fixture-id-regex "^Button/"
64
+
65
+ # Use four parallel workers
66
+ component-explorer render --workers 4
67
+
68
+ # Retain serial rendering
69
+ component-explorer render --workers 1
46
70
  ```
47
71
 
48
72
  ### `screenshot:compare`
@@ -1,4 +1,4 @@
1
- var __buildInfo = {"version":"0.3.0","date":"2026-09-23T20:43:38.912Z"};
1
+ var __buildInfo = {"version":"0.3.0","date":"2026-09-24T17:54:27.280Z"};
2
2
 
3
3
  export { __buildInfo as default };
4
4
  //# sourceMappingURL=_build-info.js.map
@@ -13,6 +13,7 @@ export declare class RenderCommand extends Command {
13
13
  readonly report: string | undefined;
14
14
  readonly headed: boolean;
15
15
  readonly timeout: string;
16
+ readonly workers: string | undefined;
16
17
  readonly useHashPaths: boolean;
17
18
  readonly reloadBetweenFixtures: boolean;
18
19
  readonly input: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"renderCommand.d.ts","sourceRoot":"","sources":["../../src/commands/renderCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAwB5C,qBAAa,aAAc,SAAQ,OAAO;IACzC,OAAgB,KAAK,aAAgB;IAErC,OAAgB,KAAK,4BAOlB;IAEH,QAAQ,CAAC,OAAO,SAAsG;IACtH,QAAQ,CAAC,OAAO,qBAAgG;IAChH,QAAQ,CAAC,cAAc,qBAAyJ;IAChL,QAAQ,CAAC,MAAM,UAAiI;IAChJ,QAAQ,CAAC,OAAO,SAAuI;IACvJ,QAAQ,CAAC,MAAM,qBAAsK;IACrL,QAAQ,CAAC,OAAO,UAA8F;IAC9G,QAAQ,CAAC,aAAa,qBAA+K;IACrM,QAAQ,CAAC,MAAM,qBAA4G;IAC3H,QAAQ,CAAC,MAAM,UAAwG;IACvH,QAAQ,CAAC,OAAO,SAA+G;IAC/H,QAAQ,CAAC,YAAY,UAA8J;IACnL,QAAQ,CAAC,qBAAqB,UAAkJ;IAChL,QAAQ,CAAC,KAAK,qBAAmO;IAEjP,QAAQ,CAAC,QAAQ,UAAoJ;IACrK,QAAQ,CAAC,YAAY,qBAA0N;IAC/O,QAAQ,CAAC,UAAU,qBAAiM;IACpN,QAAQ,CAAC,WAAW,UAAyH;IAC7I,QAAQ,CAAC,cAAc,qBAAiJ;IAElK,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAuWhC,OAAO,CAAC,gBAAgB;YA8CV,cAAc;CA+B5B"}
1
+ {"version":3,"file":"renderCommand.d.ts","sourceRoot":"","sources":["../../src/commands/renderCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AA0B5C,qBAAa,aAAc,SAAQ,OAAO;IACzC,OAAgB,KAAK,aAAgB;IAErC,OAAgB,KAAK,4BAOlB;IAEH,QAAQ,CAAC,OAAO,SAAsG;IACtH,QAAQ,CAAC,OAAO,qBAAgG;IAChH,QAAQ,CAAC,cAAc,qBAAyJ;IAChL,QAAQ,CAAC,MAAM,UAAiI;IAChJ,QAAQ,CAAC,OAAO,SAAuI;IACvJ,QAAQ,CAAC,MAAM,qBAAsK;IACrL,QAAQ,CAAC,OAAO,UAA8F;IAC9G,QAAQ,CAAC,aAAa,qBAA+K;IACrM,QAAQ,CAAC,MAAM,qBAA4G;IAC3H,QAAQ,CAAC,MAAM,UAAwG;IACvH,QAAQ,CAAC,OAAO,SAA+G;IAC/H,QAAQ,CAAC,OAAO,qBAAuJ;IACvK,QAAQ,CAAC,YAAY,UAA8J;IACnL,QAAQ,CAAC,qBAAqB,UAAkJ;IAChL,QAAQ,CAAC,KAAK,qBAAmO;IAEjP,QAAQ,CAAC,QAAQ,UAAoJ;IACrK,QAAQ,CAAC,YAAY,qBAA0N;IAC/O,QAAQ,CAAC,UAAU,qBAAiM;IACpN,QAAQ,CAAC,WAAW,UAAyH;IAC7I,QAAQ,CAAC,cAAc,qBAAiJ;IAElK,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IA4YhC,OAAO,CAAC,gBAAgB;YA8CV,cAAc;CA+B5B"}
@@ -1,6 +1,7 @@
1
1
  import { Command, Option } from 'clipanion';
2
2
  import * as path from 'node:path';
3
3
  import { createHash } from 'node:crypto';
4
+ import { availableParallelism } from 'node:os';
4
5
  import '../vscode-observables/observables/dist/observableInternal/index.js';
5
6
  import { DisposableStore } from '../vscode-observables/observables/dist/disposables.js';
6
7
  import '../vscode-observables/observables/dist/observableInternal/debugLocation.js';
@@ -19,7 +20,7 @@ import { getGitRoot, execGit } from '../git/gitUtils.js';
19
20
  import { serializeManifest } from '../renderManifest.js';
20
21
  import { parseInputJson } from './inputArg.js';
21
22
  import { validateIstanbulMap, v8EntriesToIstanbul, mergeIstanbul, cssEntriesToIstanbul, writeIstanbulFile } from '../coverage.js';
22
- import { MANIFEST_FILENAME } from '../js-component-explorer/packages/common/dist/renderManifest.js';
23
+ import { RenderManifestSchema, MANIFEST_FILENAME } from '../js-component-explorer/packages/common/dist/renderManifest.js';
23
24
 
24
25
  class RenderCommand extends Command {
25
26
  static paths = [['render']];
@@ -42,6 +43,7 @@ class RenderCommand extends Command {
42
43
  report = Option.String('--report', { required: false, description: 'Output report folder (requires --compare)' });
43
44
  headed = Option.Boolean('--headed', false, { description: 'Show the browser window (useful for debugging)' });
44
45
  timeout = Option.String('--timeout', '30000', { description: 'Navigation timeout in milliseconds (default: 30000)' });
46
+ workers = Option.String('--workers', { description: 'Number of parallel render workers (default: available CPUs, capped at 8; use 1 for serial rendering)' });
45
47
  useHashPaths = Option.Boolean('--useHashPaths', false, { description: 'Use content-hash image paths (images/<hash>.png) for deduplication instead of fixture-id paths' });
46
48
  reloadBetweenFixtures = Option.Boolean('--reload-between-fixtures', false, { description: 'Reload the browser page between fixtures for cleaner isolation (slower)' });
47
49
  input = Option.String('--input', { required: false, description: 'JSON object passed to every fixture as `RenderContext.input` (e.g. \'{"theme":"dark"}\'). Combine with `--input-<key> <value>` to override individual properties.' });
@@ -56,6 +58,13 @@ class RenderCommand extends Command {
56
58
  this.context.stderr.write('Error: --accept and --target are mutually exclusive.\n');
57
59
  return 1;
58
60
  }
61
+ const workerCount = this.workers === undefined
62
+ ? Math.max(1, Math.min(8, availableParallelism()))
63
+ : Number(this.workers);
64
+ if (!Number.isSafeInteger(workerCount) || workerCount < 1) {
65
+ this.context.stderr.write('Error: --workers must be a positive integer.\n');
66
+ return 1;
67
+ }
59
68
  let input;
60
69
  try {
61
70
  input = parseInputJson(this.input);
@@ -145,172 +154,196 @@ class RenderCommand extends Command {
145
154
  const v8FilterExclude = useV8Js ? coverage.exclude.map(_globToRegExp) : undefined;
146
155
  const perFixtureMaps = [];
147
156
  const totalMaps = [];
148
- // Total mode: start coverage once before the loop. The BrowserPage
149
- // snapshots active trackers automatically on every triggered reload
150
- // (e.g. `reloadOnError`, `reloadBeforeRender`) and reapplies them on
151
- // the new document, so callers get the union when they finally stop.
152
- if (coverage && coverage.mode === 'total' && (useV8Js || useCss || useIstanbulJs)) {
153
- const page = await session.explorer.getOrOpenPage();
154
- if (useV8Js) {
155
- await page.startJSCoverage({ resetOnNavigation: false });
156
- }
157
- if (useCss) {
158
- await page.startCSSCoverage({ resetOnNavigation: false });
159
- }
160
- if (useIstanbulJs) {
161
- page.startIstanbulSnapshot();
162
- }
163
- }
164
- for (let i = 0; i < filtered.length; i++) {
165
- const fixture = filtered[i];
166
- // For per-fixture coverage we reload BEFORE rendering, then start
167
- // V8/CSS coverage on the fresh page so each fixture is isolated.
168
- const reloadBeforeRender = effectiveReloadBetween && i > 0;
169
- if (coverage && coverage.mode === 'per-fixture' && (useV8Js || useCss)) {
170
- const page = await session.explorer.getOrOpenPage();
171
- // Reload first (mirrors what screenshotFixture would have done) so
172
- // that __coverage__ resets and the V8 sampler starts on a clean page.
173
- if (reloadBeforeRender) {
174
- await page.reload();
175
- }
176
- if (useV8Js) {
177
- await page.startJSCoverage({ resetOnNavigation: false });
178
- }
179
- if (useCss) {
180
- await page.startCSSCoverage({ resetOnNavigation: false });
181
- }
182
- }
183
- const result = await session.explorer.screenshotFixture(fixture.fixtureId, {
184
- reloadOnError: true,
185
- // We already handled the reload manually above for per-fixture coverage.
186
- reloadBeforeRender: coverage?.mode === 'per-fixture' && (useV8Js || useCss) ? false : reloadBeforeRender,
187
- input,
188
- disposeAfter: true,
189
- });
190
- let imageHash;
191
- let imagePath;
192
- if (result.image) {
193
- imageHash = createHash('sha256').update(result.image).digest('hex');
194
- if (this.useHashPaths) {
195
- imagePath = `images/${imageHash}.png`;
196
- if (!writtenHashes.has(imageHash)) {
197
- await storage.write(imagePath, result.image);
198
- writtenHashes.add(imageHash);
157
+ const renderSession = session;
158
+ const explorers = filtered.length === 0 ? [] : [
159
+ renderSession.explorer,
160
+ ...Array.from({ length: Math.min(workerCount, filtered.length) - 1 }, () => renderSession.createExplorer()),
161
+ ];
162
+ this.context.stdout.write(`Rendering with ${explorers.length} worker(s)\n`);
163
+ let failed = false;
164
+ const serverUrl = session.serverUrl;
165
+ const runWorker = async (explorer, workerIndex) => {
166
+ const startIndex = Math.floor(workerIndex * filtered.length / explorers.length);
167
+ const endIndex = Math.floor((workerIndex + 1) * filtered.length / explorers.length);
168
+ try {
169
+ // Total mode: start coverage once before the loop. The BrowserPage
170
+ // snapshots active trackers automatically on every triggered reload
171
+ // (e.g. `reloadOnError`, `reloadBeforeRender`) and reapplies them on
172
+ // the new document, so callers get the union when they finally stop.
173
+ if (coverage && coverage.mode === 'total' && (useV8Js || useCss || useIstanbulJs)) {
174
+ const page = await explorer.getOrOpenPage();
175
+ if (useV8Js) {
176
+ await page.startJSCoverage({ resetOnNavigation: false });
177
+ }
178
+ if (useCss) {
179
+ await page.startCSSCoverage({ resetOnNavigation: false });
180
+ }
181
+ if (useIstanbulJs) {
182
+ page.startIstanbulSnapshot();
199
183
  }
200
184
  }
201
- else {
202
- imagePath = `${fixture.fixtureId}.png`;
203
- await storage.write(imagePath, result.image);
204
- }
205
- screenshots.set(fixture.fixtureId, { data: result.image, background: fixture.background, labels: fixture.labels });
206
- }
207
- const events = [];
208
- for (const e of result.events) {
209
- events.push({ ...e, phase: 'render', isError: e.type !== 'console.log' });
210
- }
211
- if (result.renderError) {
212
- events.push({ type: 'thrownError', phase: 'render', isError: true, message: result.renderError.message, stack: result.renderError.stack });
213
- }
214
- if (result.captureError) {
215
- events.push({ type: 'thrownError', phase: 'render', isError: true, message: result.captureError.message, stack: result.captureError.stack });
216
- }
217
- if (result.currentDispose) {
218
- for (const e of result.currentDispose.events) {
219
- events.push({ ...e, phase: 'dispose', isError: e.type !== 'console.log' });
220
- }
221
- for (const err of result.currentDispose.errors) {
222
- events.push({ type: 'thrownError', phase: 'dispose', isError: true, message: err.message, stack: err.stack });
223
- }
224
- }
225
- const hasError = events.some(e => e.isError);
226
- fixtureEntries.push({
227
- fixtureId: fixture.fixtureId,
228
- imageHash,
229
- imagePath,
230
- background: fixture.background,
231
- labels: [...fixture.labels],
232
- expectedVisualDescriptions: [...fixture.expectedVisualDescriptions],
233
- hasError,
234
- events,
235
- renderTimeMs: result.renderTimeMs,
236
- ...(result.output !== undefined ? { output: result.output } : {}),
237
- });
238
- const firstError = events.find(e => e.isError);
239
- const errorLine = firstError ? firstError.message.split('\n')[0].slice(0, 200) : 'unknown error';
240
- if (!result.image) {
241
- this.context.stderr.write(` ✗ ${fixture.fixtureId} (no screenshot: ${errorLine})\n`);
242
- }
243
- else if (hasError) {
244
- this.context.stdout.write(` ⚠ ${fixture.fixtureId} (error: ${errorLine})\n`);
245
- }
246
- else {
247
- this.context.stdout.write(` ✓ ${fixture.fixtureId}\n`);
248
- }
249
- // Per-fixture coverage: collect after each fixture renders.
250
- if (coverage && coverage.mode === 'per-fixture' && (useV8Js || useIstanbulJs || useCss)) {
251
- const page = await session.explorer.getOrOpenPage();
252
- let map = {};
253
- if (useIstanbulJs) {
254
- const raw = await page.evaluateJs('window.__coverage__ ?? null');
255
- map = validateIstanbulMap(raw, logger);
256
- }
257
- if (useV8Js) {
258
- const v8 = await page.stopJSCoverage();
259
- const v8Map = await v8EntriesToIstanbul(v8, {
260
- viteServerUrl: session.serverUrl,
261
- projectRoot: projectDir,
262
- logger,
263
- include: v8FilterInclude,
264
- exclude: v8FilterExclude,
265
- });
266
- map = mergeIstanbul([map, v8Map]);
267
- }
268
- if (useCss) {
269
- const css = await page.stopCSSCoverage();
270
- const cssMap = cssEntriesToIstanbul(css, {
271
- viteServerUrl: session.serverUrl,
272
- projectRoot: projectDir,
273
- logger,
185
+ for (let i = startIndex; !failed && i < endIndex; i++) {
186
+ const fixture = filtered[i];
187
+ // For per-fixture coverage we reload BEFORE rendering, then start
188
+ // V8/CSS coverage on the fresh page so each fixture is isolated.
189
+ const reloadBeforeRender = effectiveReloadBetween && i > startIndex;
190
+ if (coverage && coverage.mode === 'per-fixture' && (useV8Js || useCss)) {
191
+ const page = await explorer.getOrOpenPage();
192
+ // Reload first (mirrors what screenshotFixture would have done) so
193
+ // that __coverage__ resets and the V8 sampler starts on a clean page.
194
+ if (reloadBeforeRender) {
195
+ await page.reload();
196
+ }
197
+ if (useV8Js) {
198
+ await page.startJSCoverage({ resetOnNavigation: false });
199
+ }
200
+ if (useCss) {
201
+ await page.startCSSCoverage({ resetOnNavigation: false });
202
+ }
203
+ }
204
+ const result = await explorer.screenshotFixture(fixture.fixtureId, {
205
+ reloadOnError: true,
206
+ // We already handled the reload manually above for per-fixture coverage.
207
+ reloadBeforeRender: coverage?.mode === 'per-fixture' && (useV8Js || useCss) ? false : reloadBeforeRender,
208
+ input,
209
+ disposeAfter: true,
274
210
  });
275
- map = mergeIstanbul([map, cssMap]);
211
+ let imageHash;
212
+ let imagePath;
213
+ if (result.image) {
214
+ imageHash = createHash('sha256').update(result.image).digest('hex');
215
+ if (this.useHashPaths) {
216
+ imagePath = `images/${imageHash}.png`;
217
+ if (!writtenHashes.has(imageHash)) {
218
+ writtenHashes.add(imageHash);
219
+ await storage.write(imagePath, result.image);
220
+ }
221
+ }
222
+ else {
223
+ imagePath = `${fixture.fixtureId}.png`;
224
+ await storage.write(imagePath, result.image);
225
+ }
226
+ screenshots.set(fixture.fixtureId, { data: result.image, background: fixture.background, labels: fixture.labels });
227
+ }
228
+ const events = [];
229
+ for (const e of result.events) {
230
+ events.push({ ...e, phase: 'render', isError: e.type !== 'console.log' });
231
+ }
232
+ if (result.renderError) {
233
+ events.push({ type: 'thrownError', phase: 'render', isError: true, message: result.renderError.message, stack: result.renderError.stack });
234
+ }
235
+ if (result.captureError) {
236
+ events.push({ type: 'thrownError', phase: 'render', isError: true, message: result.captureError.message, stack: result.captureError.stack });
237
+ }
238
+ if (result.currentDispose) {
239
+ for (const e of result.currentDispose.events) {
240
+ events.push({ ...e, phase: 'dispose', isError: e.type !== 'console.log' });
241
+ }
242
+ for (const err of result.currentDispose.errors) {
243
+ events.push({ type: 'thrownError', phase: 'dispose', isError: true, message: err.message, stack: err.stack });
244
+ }
245
+ }
246
+ const hasError = events.some(e => e.isError);
247
+ fixtureEntries[i] = {
248
+ fixtureId: fixture.fixtureId,
249
+ imageHash,
250
+ imagePath,
251
+ background: fixture.background,
252
+ labels: [...fixture.labels],
253
+ expectedVisualDescriptions: [...fixture.expectedVisualDescriptions],
254
+ hasError,
255
+ events,
256
+ renderTimeMs: result.renderTimeMs,
257
+ ...(result.output !== undefined ? { output: result.output } : {}),
258
+ };
259
+ const firstError = events.find(e => e.isError);
260
+ const errorLine = firstError ? firstError.message.split('\n')[0].slice(0, 200) : 'unknown error';
261
+ if (!result.image) {
262
+ this.context.stderr.write(` ✗ ${fixture.fixtureId} (no screenshot: ${errorLine})\n`);
263
+ }
264
+ else if (hasError) {
265
+ this.context.stdout.write(` ⚠ ${fixture.fixtureId} (error: ${errorLine})\n`);
266
+ }
267
+ else {
268
+ this.context.stdout.write(` ✓ ${fixture.fixtureId}\n`);
269
+ }
270
+ // Per-fixture coverage: collect after each fixture renders.
271
+ if (coverage && coverage.mode === 'per-fixture' && (useV8Js || useIstanbulJs || useCss)) {
272
+ const page = await explorer.getOrOpenPage();
273
+ let map = {};
274
+ if (useIstanbulJs) {
275
+ const raw = await page.evaluateJs('window.__coverage__ ?? null');
276
+ map = validateIstanbulMap(raw, logger);
277
+ }
278
+ if (useV8Js) {
279
+ const v8 = await page.stopJSCoverage();
280
+ const v8Map = await v8EntriesToIstanbul(v8, {
281
+ viteServerUrl: serverUrl,
282
+ projectRoot: projectDir,
283
+ logger,
284
+ include: v8FilterInclude,
285
+ exclude: v8FilterExclude,
286
+ });
287
+ map = mergeIstanbul([map, v8Map]);
288
+ }
289
+ if (useCss) {
290
+ const css = await page.stopCSSCoverage();
291
+ const cssMap = cssEntriesToIstanbul(css, {
292
+ viteServerUrl: serverUrl,
293
+ projectRoot: projectDir,
294
+ logger,
295
+ });
296
+ map = mergeIstanbul([map, cssMap]);
297
+ }
298
+ perFixtureMaps[i] = { fixtureId: fixture.fixtureId, map };
299
+ }
276
300
  }
277
- perFixtureMaps.push({ fixtureId: fixture.fixtureId, map });
278
- }
279
- }
280
- // Total mode: collect once at the end. Reload-triggered snapshotting
281
- // is handled inside `BrowserPage.reload()`, which preserves coverage
282
- // data across our explicit reloads (e.g. `reloadOnError`,
283
- // `reloadBeforeRender`). Reloads we don't trigger (e.g. Vite's
284
- // "optimized dependencies changed") are not handled — for now we
285
- // accept losing data from before such navigations.
286
- if (coverage && coverage.mode === 'total' && (useV8Js || useIstanbulJs || useCss)) {
287
- const page = await session.explorer.getOrOpenPage();
288
- if (useIstanbulJs) {
289
- const raw = await page.evaluateJs('window.__coverage__ ?? null');
290
- totalMaps.push(validateIstanbulMap(raw, logger));
291
- // Plus any pre-reload snapshots collected during the run.
292
- for (const snap of page.stopIstanbulSnapshot()) {
293
- totalMaps.push(validateIstanbulMap(snap, logger));
301
+ // Total mode: collect once at the end. Reload-triggered snapshotting
302
+ // is handled inside `BrowserPage.reload()`, which preserves coverage
303
+ // data across our explicit reloads (e.g. `reloadOnError`,
304
+ // `reloadBeforeRender`). Reloads we don't trigger (e.g. Vite's
305
+ // "optimized dependencies changed") are not handled — for now we
306
+ // accept losing data from before such navigations.
307
+ if (coverage && coverage.mode === 'total' && (useV8Js || useIstanbulJs || useCss)) {
308
+ const page = await explorer.getOrOpenPage();
309
+ if (useIstanbulJs) {
310
+ const raw = await page.evaluateJs('window.__coverage__ ?? null');
311
+ totalMaps.push(validateIstanbulMap(raw, logger));
312
+ // Plus any pre-reload snapshots collected during the run.
313
+ for (const snap of page.stopIstanbulSnapshot()) {
314
+ totalMaps.push(validateIstanbulMap(snap, logger));
315
+ }
316
+ }
317
+ if (useV8Js) {
318
+ const v8 = await page.stopJSCoverage();
319
+ totalMaps.push(await v8EntriesToIstanbul(v8, {
320
+ viteServerUrl: serverUrl,
321
+ projectRoot: projectDir,
322
+ logger,
323
+ include: v8FilterInclude,
324
+ exclude: v8FilterExclude,
325
+ }));
326
+ }
327
+ if (useCss) {
328
+ const css = await page.stopCSSCoverage();
329
+ totalMaps.push(cssEntriesToIstanbul(css, {
330
+ viteServerUrl: serverUrl,
331
+ projectRoot: projectDir,
332
+ logger,
333
+ }));
334
+ }
294
335
  }
295
336
  }
296
- if (useV8Js) {
297
- const v8 = await page.stopJSCoverage();
298
- totalMaps.push(await v8EntriesToIstanbul(v8, {
299
- viteServerUrl: session.serverUrl,
300
- projectRoot: projectDir,
301
- logger,
302
- include: v8FilterInclude,
303
- exclude: v8FilterExclude,
304
- }));
305
- }
306
- if (useCss) {
307
- const css = await page.stopCSSCoverage();
308
- totalMaps.push(cssEntriesToIstanbul(css, {
309
- viteServerUrl: session.serverUrl,
310
- projectRoot: projectDir,
311
- logger,
312
- }));
337
+ catch (error) {
338
+ failed = true;
339
+ throw error;
313
340
  }
341
+ };
342
+ // Drain in-flight workers before disposing their pages or writing the manifest.
343
+ const results = await Promise.allSettled(explorers.map(runWorker));
344
+ const errors = results.filter(result => result.status === 'rejected').map(result => result.reason);
345
+ if (errors.length > 0) {
346
+ throw new AggregateError(errors, `Failed to render fixtures: ${errors.map(error => error instanceof Error ? error.message : String(error)).join('; ')}`);
314
347
  }
315
348
  const gitRoot = await getGitRoot(projectDir);
316
349
  const commitMetadata = await collectGitMetadata(gitRoot);
@@ -365,13 +398,13 @@ class RenderCommand extends Command {
365
398
  }
366
399
  }
367
400
  }
368
- const manifest = {
401
+ const manifest = RenderManifestSchema.parse({
369
402
  version: 1,
370
403
  repository: repoOrigin,
371
404
  commit: commitMetadata,
372
405
  coverage: topLevelCoverage,
373
406
  fixtures: fixtureEntries,
374
- };
407
+ });
375
408
  const manifestPath = targetPath.join(new RelativePath(MANIFEST_FILENAME));
376
409
  await writeFile(manifestPath, Buffer.from(serializeManifest(manifest)));
377
410
  this.context.stdout.write(`\nRendered to ${targetDir}/\n`);
@@ -379,9 +412,17 @@ class RenderCommand extends Command {
379
412
  this.context.stdout.write(` ${fixtureEntries.length} fixtures, ${writtenHashes.size} unique images\n`);
380
413
  }
381
414
  finally {
382
- await session?.dispose();
383
- await browserFactory.dispose();
384
- disposables.dispose();
415
+ try {
416
+ await session?.dispose();
417
+ }
418
+ finally {
419
+ try {
420
+ await browserFactory.dispose();
421
+ }
422
+ finally {
423
+ disposables.dispose();
424
+ }
425
+ }
385
426
  }
386
427
  if (this.compare) {
387
428
  this.context.stdout.write(`\nComparing against ${compareTargetDir}...\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"renderCommand.js","sources":["../../src/commands/renderCommand.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderCommand.js","sources":["../../src/commands/renderCommand.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA0BM,MAAO,aAAc,SAAQ,OAAO,CAAA;IACzC,OAAgB,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AAEpC,IAAA,OAAgB,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AACrC,QAAA,WAAW,EAAE,yDAAyD;AACtE,QAAA,QAAQ,EAAE;YACT,CAAC,qBAAqB,EAAE,WAAW,CAAC;YACpC,CAAC,+BAA+B,EAAE,oBAAoB,CAAC;YACvD,CAAC,4BAA4B,EAAE,yCAAyC,CAAC;AACzE,SAAA;AACD,KAAA,CAAC;AAEO,IAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,8CAA8C,EAAE,CAAC;AAC5G,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,8CAA8C,EAAE,CAAC;AACtG,IAAA,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,8EAA8E,EAAE,CAAC;AACtK,IAAA,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,yEAAyE,EAAE,CAAC;AACtI,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,WAAW,EAAE,oEAAoE,EAAE,CAAC;AAC7I,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,qGAAqG,EAAE,CAAC;AAC3K,IAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,qCAAqC,EAAE,CAAC;AACpG,IAAA,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,sGAAsG,EAAE,CAAC;AAC3L,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC;AACjH,IAAA,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC;AAC7G,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,qDAAqD,EAAE,CAAC;AACrH,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,sGAAsG,EAAE,CAAC;AAC7J,IAAA,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,gGAAgG,EAAE,CAAC;AACzK,IAAA,qBAAqB,GAAG,MAAM,CAAC,OAAO,CAAC,2BAA2B,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,yEAAyE,EAAE,CAAC;AACtK,IAAA,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,mKAAmK,EAAE,CAAC;AAEvO,IAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,0FAA0F,EAAE,CAAC;AAC3J,IAAA,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,kJAAkJ,EAAE,CAAC;AACrO,IAAA,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,2HAA2H,EAAE,CAAC;AAC1M,IAAA,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,2DAA2D,EAAE,CAAC;AACnI,IAAA,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,uEAAuE,EAAE,CAAC;AAEvK,IAAA,MAAM,OAAO,GAAA;;QAEZ,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC;AACnF,YAAA,OAAO,CAAC;QACT;AAEA,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,KAAK;AACpC,cAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC;AACjD,cAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE;YAC1D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC;AAC3E,YAAA,OAAO,CAAC;QACT;AAEA,QAAA,IAAI,KAA0C;AAC9C,QAAA,IAAI;AACH,YAAA,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QACnC;QAAE,OAAO,CAAC,EAAE;YACX,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,OAAA,EAAU,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA,EAAA,CAAI,CAAC;AACnF,YAAA,OAAO,CAAC;QACT;AAEA,QAAA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACpJ,YAAY,CAAC,MAAM,CAAC;QAEpB,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AACtD,QAAA,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE;QACzC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,WAAW,EAAE,WAAW,CAAC;AAC7E,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS;QACnC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM;;AAG9C,QAAA,IAAI,QAA4C;AAChD,QAAA,IAAI;YACH,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC;QAClD;QAAE,OAAO,CAAC,EAAE;YACX,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,OAAA,EAAU,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA,EAAA,CAAI,CAAC;AACnF,YAAA,OAAO,CAAC;QACT;AAEA,QAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,UAAU,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACpF,QAAQ,GAAG,SAAS;QACrB;;;AAIA,QAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,qBAAqB,KAAK,QAAQ,EAAE,IAAI,KAAK,aAAa,IAAI,QAAQ,CAAC,OAAO,CAAC;QACnH,IAAI,QAAQ,EAAE,IAAI,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;AACpE,YAAA,MAAM,CAAC,KAAK,CAAC,kEAAkE,CAAC;QACjF;;AAGA,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,uBAAuB,GAAG,sBAAsB;AACpF,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,aAAa;AAC9C,QAAA,MAAM,UAAU,GAAG,YAAY,CAAC,sBAAsB,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;;AAGvF,QAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,GAAG,sBAAsB,GAAG,uBAAuB;AAC3F,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,IAAI,oBAAoB;AACnE,QAAA,MAAM,iBAAiB,GAAG,YAAY,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAErG,QAAA,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,UAAU,CAAC;AACjD,QAAA,MAAM,cAAc,GAAG,IAAI,4BAA4B,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;AAElG,QAAA,MAAM,WAAW,GAAG,IAAI,GAAG,EAA0B;AAErD,QAAA,IAAI,OAAoC;AACxC,QAAA,IAAI;YACH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC;YACjD,MAAM,gBAAgB,GAAG,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK;AACpD,kBAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO;kBACtD,SAAS;YACZ,IAAI,gBAAgB,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,EAAE;gBACrD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sIAAsI,CAAC;YAClK;;;;AAIA,YAAA,MAAM,YAAY,GAAG,QAAQ,EAAE,GAAG,KAAK,IAAI,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM;YAC3E,OAAO,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,CAAC;AAE1H,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,kBAAA,EAAqB,OAAO,CAAC,SAAS,CAAA,EAAA,CAAI,CAAC;YAErE,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE;AACxD,YAAA,IAAI,UAAU,CAAC,SAAS,EAAE;AACzB,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,gCAAA,EAAmC,UAAU,CAAC,SAAS,CAAA,EAAA,CAAI,CAAC;YACvF;AAEA,YAAA,IAAI,QAAoC;AACxC,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACxB,gBAAA,IAAI,KAAa;AACjB,gBAAA,IAAI;oBACH,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;gBACxC;gBAAE,OAAO,CAAC,EAAE;oBACX,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,mCAAA,EAAsC,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA,EAAA,CAAI,CAAC;AAC/G,oBAAA,OAAO,CAAC;gBACT;gBACA,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACpE;iBAAO;AACN,gBAAA,QAAQ,GAAG,UAAU,CAAC,QAAQ;YAC/B;AAEA,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,MAAA,EAAS,QAAQ,CAAC,MAAM,CAAA,aAAA,CAAe,CAAC;YAElE,MAAM,cAAc,GAA+B,EAAE;AACrD,YAAA,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU;;AAGvC,YAAA,MAAM,OAAO,GAAG,QAAQ,EAAE,EAAE,KAAK,IAAI;AACrC,YAAA,MAAM,aAAa,GAAG,QAAQ,EAAE,EAAE,KAAK,UAAU,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM;AACjF,YAAA,MAAM,MAAM,GAAG,QAAQ,EAAE,GAAG,KAAK,IAAI;AACrC,YAAA,MAAM,eAAe,GAAG,OAAO,GAAG,QAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,SAAS;AAClF,YAAA,MAAM,eAAe,GAAG,OAAO,GAAG,QAAS,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,SAAS;YAClF,MAAM,cAAc,GAAsD,EAAE;YAC5E,MAAM,SAAS,GAA0B,EAAE;YAE3C,MAAM,aAAa,GAAG,OAAO;AAC7B,YAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG;AAC9C,gBAAA,aAAa,CAAC,QAAQ;AACtB,gBAAA,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,aAAa,CAAC,cAAc,EAAE,CAAC;aAC3G;AACD,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,eAAA,EAAkB,SAAS,CAAC,MAAM,CAAA,YAAA,CAAc,CAAC;YAC3E,IAAI,MAAM,GAAG,KAAK;AAClB,YAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS;YACnC,MAAM,SAAS,GAAG,OAAO,QAA2B,EAAE,WAAmB,KAAmB;AAC3F,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;gBAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;AACnF,gBAAA,IAAI;;;;;AAKH,oBAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,KAAK,OAAO,IAAI,MAAM,IAAI,aAAa,CAAC,EAAE;AAClF,wBAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE;wBAC3C,IAAI,OAAO,EAAE;4BAAE,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC;wBAAE;wBACzE,IAAI,MAAM,EAAE;4BAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC;wBAAE;wBACzE,IAAI,aAAa,EAAE;4BAAE,IAAI,CAAC,qBAAqB,EAAE;wBAAE;oBACpD;AAEA,oBAAA,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;AACtD,wBAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;;;AAG3B,wBAAA,MAAM,kBAAkB,GAAG,sBAAsB,IAAI,CAAC,GAAG,UAAU;AAEnE,wBAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,KAAK,OAAO,IAAI,MAAM,CAAC,EAAE;AACvE,4BAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE;;;4BAG3C,IAAI,kBAAkB,EAAE;AACvB,gCAAA,MAAM,IAAI,CAAC,MAAM,EAAE;4BACpB;4BACA,IAAI,OAAO,EAAE;gCAAE,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC;4BAAE;4BACzE,IAAI,MAAM,EAAE;gCAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC;4BAAE;wBAC1E;wBAEA,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE;AAClE,4BAAA,aAAa,EAAE,IAAI;;AAEnB,4BAAA,kBAAkB,EAAE,QAAQ,EAAE,IAAI,KAAK,aAAa,KAAK,OAAO,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,kBAAkB;4BACxG,KAAK;AACL,4BAAA,YAAY,EAAE,IAAI;AAClB,yBAAA,CAAC;AACF,wBAAA,IAAI,SAA6B;AACjC,wBAAA,IAAI,SAA6B;AAEjC,wBAAA,IAAI,MAAM,CAAC,KAAK,EAAE;AACjB,4BAAA,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AACnE,4BAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACtB,gCAAA,SAAS,GAAG,CAAA,OAAA,EAAU,SAAS,CAAA,IAAA,CAAM;gCACrC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AAClC,oCAAA,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC;oCAC5B,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC;gCAC7C;4BACD;iCAAO;AACN,gCAAA,SAAS,GAAG,CAAA,EAAG,OAAO,CAAC,SAAS,MAAM;gCACtC,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC;4BAC7C;4BACA,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;wBACnH;wBAEA,MAAM,MAAM,GAAiD,EAAE;AAC/D,wBAAA,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE;4BAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;wBAC1E;AACA,wBAAA,IAAI,MAAM,CAAC,WAAW,EAAE;AACvB,4BAAA,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;wBAC3I;AACA,wBAAA,IAAI,MAAM,CAAC,YAAY,EAAE;AACxB,4BAAA,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;wBAC7I;AACA,wBAAA,IAAI,MAAM,CAAC,cAAc,EAAE;4BAC1B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE;gCAC7C,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;4BAC3E;4BACA,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE;AAC/C,gCAAA,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;4BAC9G;wBACD;AAEA,wBAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;wBAE5C,cAAc,CAAC,CAAC,CAAC,GAAG;4BACnB,SAAS,EAAE,OAAO,CAAC,SAAS;4BAC5B,SAAS;4BACT,SAAS;4BACT,UAAU,EAAE,OAAO,CAAC,UAAU;AAC9B,4BAAA,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;AAC3B,4BAAA,0BAA0B,EAAE,CAAC,GAAG,OAAO,CAAC,0BAA0B,CAAC;4BACnE,QAAQ;4BACR,MAAM;4BACN,YAAY,EAAE,MAAM,CAAC,YAAY;4BACjC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;yBACjE;AAED,wBAAA,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AAC9C,wBAAA,MAAM,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,eAAe;AAChG,wBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAClB,4BAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,IAAA,EAAO,OAAO,CAAC,SAAS,CAAA,iBAAA,EAAoB,SAAS,CAAA,GAAA,CAAK,CAAC;wBACtF;6BAAO,IAAI,QAAQ,EAAE;AACpB,4BAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,IAAA,EAAO,OAAO,CAAC,SAAS,CAAA,SAAA,EAAY,SAAS,CAAA,GAAA,CAAK,CAAC;wBAC9E;6BAAO;AACN,4BAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,IAAA,EAAO,OAAO,CAAC,SAAS,CAAA,EAAA,CAAI,CAAC;wBACxD;;AAGA,wBAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,KAAK,OAAO,IAAI,aAAa,IAAI,MAAM,CAAC,EAAE;AACxF,4BAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE;4BAC3C,IAAI,GAAG,GAAwB,EAAE;4BACjC,IAAI,aAAa,EAAE;gCAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC;AAChE,gCAAA,GAAG,GAAG,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC;4BACvC;4BACA,IAAI,OAAO,EAAE;AACZ,gCAAA,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE;AACtC,gCAAA,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,EAAE,EAAE;AAC3C,oCAAA,aAAa,EAAE,SAAS;AACxB,oCAAA,WAAW,EAAE,UAAU;oCACvB,MAAM;AACN,oCAAA,OAAO,EAAE,eAAe;AACxB,oCAAA,OAAO,EAAE,eAAe;AACxB,iCAAA,CAAC;gCACF,GAAG,GAAG,aAAa,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;4BAClC;4BACA,IAAI,MAAM,EAAE;AACX,gCAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE;AACxC,gCAAA,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,EAAE;AACxC,oCAAA,aAAa,EAAE,SAAS;AACxB,oCAAA,WAAW,EAAE,UAAU;oCACvB,MAAM;AACN,iCAAA,CAAC;gCACF,GAAG,GAAG,aAAa,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;4BACnC;AACA,4BAAA,cAAc,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE;wBAC1D;oBACD;;;;;;;AAQA,oBAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,KAAK,OAAO,IAAI,aAAa,IAAI,MAAM,CAAC,EAAE;AAClF,wBAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE;wBAC3C,IAAI,aAAa,EAAE;4BAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC;4BAChE,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;;4BAEhD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;gCAC/C,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;4BAClD;wBACD;wBACA,IAAI,OAAO,EAAE;AACZ,4BAAA,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE;AACtC,4BAAA,SAAS,CAAC,IAAI,CAAC,MAAM,mBAAmB,CAAC,EAAE,EAAE;AAC5C,gCAAA,aAAa,EAAE,SAAS;AACxB,gCAAA,WAAW,EAAE,UAAU;gCACvB,MAAM;AACN,gCAAA,OAAO,EAAE,eAAe;AACxB,gCAAA,OAAO,EAAE,eAAe;AACxB,6BAAA,CAAC,CAAC;wBACJ;wBACA,IAAI,MAAM,EAAE;AACX,4BAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE;AACxC,4BAAA,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE;AACxC,gCAAA,aAAa,EAAE,SAAS;AACxB,gCAAA,WAAW,EAAE,UAAU;gCACvB,MAAM;AACN,6BAAA,CAAC,CAAC;wBACJ;oBACD;gBACD;gBAAE,OAAO,KAAK,EAAE;oBACf,MAAM,GAAG,IAAI;AACb,oBAAA,MAAM,KAAK;gBACZ;AACD,YAAA,CAAC;;AAED,YAAA,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;AAClG,YAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,gBAAA,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,8BAA8B,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC;YACzJ;AAEA,YAAA,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC;AAC5C,YAAA,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC;AACxD,YAAA,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC;;;AAIrD,YAAA,IAAI,gBAA8D;AAClE,YAAA,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAA4C;AAEjF,YAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE;AACjC,gBAAA,MAAM,WAAW,GAAG,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AACjG,gBAAA,MAAM,kBAAkB,GAAG,CAAC,OAAqB,KAAY;oBAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACpF,oBAAA,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG;AAC9C,gBAAA,CAAC;AAED,gBAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,EAAE;oBACpC,KAAK,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,cAAc,EAAE;wBAChD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;4BAAE;wBAAU;wBAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;AACtD,wBAAA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,CAAA,EAAG,MAAM,CAAA,cAAA,CAAgB,CAAC,CAAC;AAC7E,wBAAA,MAAM,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC;AACrC,wBAAA,qBAAqB,CAAC,GAAG,CAAC,SAAS,EAAE;AACpC,4BAAA,oBAAoB,EAAE,kBAAkB,CAAC,OAAO,CAAC;AACjD,yBAAA,CAAC;oBACH;;AAEA,oBAAA,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC5D,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,wBAAA,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,qBAAqB,CAAC,CAAC;AAC3E,wBAAA,MAAM,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC;wBAC1C,gBAAgB,GAAG,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAAE;oBAC3E;oBACA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,YAAA,EAAe,qBAAqB,CAAC,IAAI,CAAA,kCAAA,EAAqC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA,GAAA,CAAK,CAAC;gBACjK;qBAAO;AACN,oBAAA,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC;oBACvC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,wBAAA,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,qBAAqB,CAAC,CAAC;AAC3E,wBAAA,MAAM,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC;wBAC1C,gBAAgB,GAAG,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAAE;oBAC3E;oBACA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,YAAA,EAAe,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA,GAAA,CAAK,CAAC;gBAClG;YACD;;AAGA,YAAA,IAAI,qBAAqB,CAAC,IAAI,GAAG,CAAC,EAAE;AACnC,gBAAA,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE;oBACnC,MAAM,GAAG,GAAG,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;oBACtD,IAAI,GAAG,EAAE;AACR,wBAAA,KAAK,CAAC,QAAQ,GAAG,GAAG;oBACrB;gBACD;YACD;AAEA,YAAA,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC;AAC3C,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,UAAU,EAAE,UAAU;AACtB,gBAAA,MAAM,EAAE,cAAc;AACtB,gBAAA,QAAQ,EAAE,gBAAgB;AAC1B,gBAAA,QAAQ,EAAE,cAAc;AACxB,aAAA,CAAC;AAEF,YAAA,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,iBAAiB,CAAC,CAAC;AACzE,YAAA,MAAM,SAAS,CACd,YAAY,EACZ,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CACxC;YAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,cAAA,EAAiB,SAAS,CAAA,GAAA,CAAK,CAAC;YAC1D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,YAAA,EAAe,YAAY,CAAA,EAAA,CAAI,CAAC;AAC1D,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,EAAA,EAAK,cAAc,CAAC,MAAM,CAAA,WAAA,EAAc,aAAa,CAAC,IAAI,CAAA,gBAAA,CAAkB,CAAC;QACxG;gBAAU;AACT,YAAA,IAAI;AACH,gBAAA,MAAM,OAAO,EAAE,OAAO,EAAE;YACzB;oBAAU;AACT,gBAAA,IAAI;AACH,oBAAA,MAAM,cAAc,CAAC,OAAO,EAAE;gBAC/B;wBAAU;oBACT,WAAW,CAAC,OAAO,EAAE;gBACtB;YACD;QACD;AACA,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,oBAAA,EAAuB,gBAAgB,CAAA,KAAA,CAAO,CAAC;AACzE,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,UAAU,CAAC;QACnF;AAEA,QAAA,OAAO,CAAC;IACT;AAEQ,IAAA,gBAAgB,CAAC,UAA8C,EAAA;;AAEtE,QAAA,MAAM,mBAAmB,GAAG,UAAU,EAAE,OAAO,IAAI,KAAK;QACxD,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;AAC9H,QAAA,IAAI,CAAC,mBAAmB,IAAI,CAAC,gBAAgB,EAAE;AAC9C,YAAA,OAAO,SAAS;QACjB;QAEA,MAAM,IAAI,GAAG,UAAU,IAAI,IAAI,sBAAsB,CACpD,OAAO,EACP,UAAU,EACV,KAAK,EACL,UAAU,EACV,CAAC,qCAAqC,CAAC,EACvC,CAAC,8BAA8B,EAAE,oBAAoB,EAAE,kCAAkC,CAAC,CAC1F;;AAGD,QAAA,IAAI,IAAI,GAAiB,IAAI,CAAC,IAAI;AAClC,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;AACpC,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,IAAI,IAAI,CAAC,YAAY,KAAK,aAAa,EAAE;gBACzE,MAAM,IAAI,KAAK,CAAC,CAAA,uDAAA,EAA0D,IAAI,CAAC,YAAY,CAAA,CAAA,CAAG,CAAC;YAChG;AACA,YAAA,IAAI,GAAG,IAAI,CAAC,YAAY;QACzB;;AAGA,QAAA,IAAI,EAAE,GAA+B,IAAI,CAAC,EAAE;AAC5C,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;AAClC,YAAA,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE;gBAC7D,EAAE,GAAG,KAAK;YACX;AAAO,iBAAA,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;AACtE,gBAAA,EAAE,GAAG,IAAI,CAAC,UAAU;YACrB;iBAAO;gBACN,MAAM,IAAI,KAAK,CAAC,CAAA,uDAAA,EAA0D,IAAI,CAAC,UAAU,CAAA,CAAA,CAAG,CAAC;YAC9F;QACD;;QAGA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG;QAExC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,SAAS;AAEvD,QAAA,OAAO,IAAI,sBAAsB,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;IACxF;IAEQ,MAAM,cAAc,CAC3B,WAAwC,EACxC,UAAwB,EACxB,iBAA+B,EAC/B,UAAwB,EAAA;AAExB,QAAA,MAAM,cAAc,GAAG,IAAI,iBAAiB,CAAC,iBAAiB,CAAC;AAE/D,QAAA,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,WAAW,EAAE;AAC5D,YAAA,IAAI,EAAE,YAAY,EAAE;YACpB,IAAI,EAAE,CAAC,EAAE,KAAK,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,EAAE,CAAC,EAAE,KAAK,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;AACzC,SAAA,CAAC;QAEF,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAErD,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,MAAM,SAAS,GAAG,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AACxF,YAAA,MAAM,qBAAqB,CAAC;gBAC3B,SAAS;gBACT,MAAM;AACN,gBAAA,YAAY,EAAE,iBAAiB;AAC/B,gBAAA,WAAW,EAAE,UAAU;AACvB,gBAAA,eAAe,EAAE,CAAC,EAAE,KAAK,cAAc,CAAC,IAAI,CAAC,CAAA,EAAG,EAAE,MAAM,CAAC;AACzD,gBAAA,cAAc,EAAE,OAAO,EAAE,KAAK,WAAW,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,IAAI;AACvD,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,qBAAA,EAAwB,IAAI,CAAC,MAAM,CAAA,GAAA,CAAK,CAAC;QACpE;QAEA,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;IACtE;;AAGD,SAAS,aAAa,CAAC,IAAY,EAAA;;IAElC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC;;AAEvD,IAAA,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,IAAY,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;;IAEtG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;IAC7F,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;AACrC,IAAA,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;AAC3B;AAEA,eAAe,kBAAkB,CAAC,OAAqB,EAAA;AACtD,IAAA,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE;AAEnE,IAAA,MAAM,SAAS,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE;AACzC,QAAA,KAAK,EAAE,IAAI,EAAE,4BAA4B,EAAE,MAAM;AACjD,KAAA,CAAC,EAAE,IAAI,EAAE;AACV,IAAA,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;IAEnF,IAAI,YAAY,GAAa,EAAE;AAC/B,IAAA,IAAI;AACH,QAAA,MAAM,YAAY,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE;QAC7E,IAAI,YAAY,EAAE;YACjB,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC3E;IACD;AAAE,IAAA,MAAM;;IAER;IAEA,OAAO;QACN,IAAI;QACJ,YAAY;QACZ,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE;QAChD,SAAS;AACT,QAAA,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;KAChC;AACF;AAEA,eAAe,mBAAmB,CAAC,OAAqB,EAAA;AACvD,IAAA,IAAI;QACH,MAAM,SAAS,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE;QAClF,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,mCAAmC,CAAC;QAClE,IAAI,KAAK,EAAE;AACV,YAAA,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;QAC3C;IACD;AAAE,IAAA,MAAM;;IAER;AACA,IAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChE;;;;"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=renderCommand.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderCommand.test.d.ts","sourceRoot":"","sources":["../../src/commands/renderCommand.test.ts"],"names":[],"mappings":""}
@@ -6,9 +6,13 @@ import type { ResolvedServerConfig, ServerContext } from './config.js';
6
6
  export declare class ExplorerSession {
7
7
  readonly name: string;
8
8
  private readonly _server;
9
- readonly explorer: ComponentExplorer;
9
+ private readonly _browserFactory;
10
+ private readonly _ctx;
10
11
  static create(name: string, serverConfig: ResolvedServerConfig, browserFactory: BrowserPageFactory, ctx: ServerContext): Promise<ExplorerSession>;
12
+ private readonly _explorers;
13
+ readonly explorer: ComponentExplorer;
11
14
  private constructor();
15
+ createExplorer(): ComponentExplorer;
12
16
  get serverUrl(): string;
13
17
  get sourceTreeId(): IObservable<SourceTreeId>;
14
18
  dispose(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"explorerSession.d.ts","sourceRoot":"","sources":["../src/explorerSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvE,qBAAa,eAAe;IAa1B,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB;WAdxB,MAAM,CAClB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,oBAAoB,EAClC,cAAc,EAAE,kBAAkB,EAClC,GAAG,EAAE,aAAa,GAChB,OAAO,CAAC,eAAe,CAAC;IAM3B,OAAO;IAMP,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,YAAY,IAAI,WAAW,CAAC,YAAY,CAAC,CAE5C;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAI9B"}
1
+ {"version":3,"file":"explorerSession.d.ts","sourceRoot":"","sources":["../src/explorerSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvE,qBAAa,eAAe;IAe1B,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI;WAjBT,MAAM,CAClB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,oBAAoB,EAClC,cAAc,EAAE,kBAAkB,EAClC,GAAG,EAAE,aAAa,GAChB,OAAO,CAAC,eAAe,CAAC;IAK3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2B;IACtD,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAErC,OAAO;IASP,cAAc,IAAI,iBAAiB;IAMnC,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,YAAY,IAAI,WAAW,CAAC,YAAY,CAAC,CAE5C;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAW9B"}
@@ -3,16 +3,25 @@ import { BrowserComponentExplorer } from './componentExplorer.js';
3
3
  class ExplorerSession {
4
4
  name;
5
5
  _server;
6
- explorer;
6
+ _browserFactory;
7
+ _ctx;
7
8
  static async create(name, serverConfig, browserFactory, ctx) {
8
9
  const server = await serverConfig.createServer(ctx);
9
- const explorer = new BrowserComponentExplorer(browserFactory, server, ctx.logger);
10
- return new ExplorerSession(name, server, explorer);
10
+ return new ExplorerSession(name, server, browserFactory, ctx);
11
11
  }
12
- constructor(name, _server, explorer) {
12
+ _explorers = [];
13
+ explorer;
14
+ constructor(name, _server, _browserFactory, _ctx) {
13
15
  this.name = name;
14
16
  this._server = _server;
15
- this.explorer = explorer;
17
+ this._browserFactory = _browserFactory;
18
+ this._ctx = _ctx;
19
+ this.explorer = this.createExplorer();
20
+ }
21
+ createExplorer() {
22
+ const explorer = new BrowserComponentExplorer(this._browserFactory, this._server, this._ctx.logger);
23
+ this._explorers.push(explorer);
24
+ return explorer;
16
25
  }
17
26
  get serverUrl() {
18
27
  return this._server.url;
@@ -21,8 +30,16 @@ class ExplorerSession {
21
30
  return this.explorer.sourceTreeId;
22
31
  }
23
32
  async dispose() {
24
- await this.explorer.dispose();
25
- await this._server.dispose();
33
+ try {
34
+ const results = await Promise.allSettled(this._explorers.map(explorer => explorer.dispose()));
35
+ const errors = results.filter(result => result.status === 'rejected').map(result => result.reason);
36
+ if (errors.length > 0) {
37
+ throw new AggregateError(errors, 'Failed to dispose explorer pages');
38
+ }
39
+ }
40
+ finally {
41
+ await this._server.dispose();
42
+ }
26
43
  }
27
44
  }
28
45
 
@@ -1 +1 @@
1
- {"version":3,"file":"explorerSession.js","sources":["../src/explorerSession.ts"],"sourcesContent":[null],"names":[],"mappings":";;MAOa,eAAe,CAAA;AAajB,IAAA,IAAA;AACQ,IAAA,OAAA;AACR,IAAA,QAAA;IAdV,aAAa,MAAM,CAClB,IAAY,EACZ,YAAkC,EAClC,cAAkC,EAClC,GAAkB,EAAA;QAElB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC;AACnD,QAAA,MAAM,QAAQ,GAAG,IAAI,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC;QACjF,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC;IACnD;AAEA,IAAA,WAAA,CACU,IAAY,EACJ,OAAoC,EAC5C,QAA2B,EAAA;QAF3B,IAAA,CAAA,IAAI,GAAJ,IAAI;QACI,IAAA,CAAA,OAAO,GAAP,OAAO;QACf,IAAA,CAAA,QAAQ,GAAR,QAAQ;IACf;AAEH,IAAA,IAAI,SAAS,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG;IACxB;AAEA,IAAA,IAAI,YAAY,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY;IAClC;AAEA,IAAA,MAAM,OAAO,GAAA;AACZ,QAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC7B,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;IAC7B;AACA;;;;"}
1
+ {"version":3,"file":"explorerSession.js","sources":["../src/explorerSession.ts"],"sourcesContent":[null],"names":[],"mappings":";;MAOa,eAAe,CAAA;AAejB,IAAA,IAAA;AACQ,IAAA,OAAA;AACA,IAAA,eAAA;AACA,IAAA,IAAA;IAjBlB,aAAa,MAAM,CAClB,IAAY,EACZ,YAAkC,EAClC,cAAkC,EAClC,GAAkB,EAAA;QAElB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC;QACnD,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC;IAC9D;IAEiB,UAAU,GAAwB,EAAE;AAC5C,IAAA,QAAQ;AAEjB,IAAA,WAAA,CACU,IAAY,EACJ,OAAoC,EACpC,eAAmC,EACnC,IAAmB,EAAA;QAH3B,IAAA,CAAA,IAAI,GAAJ,IAAI;QACI,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,eAAe,GAAf,eAAe;QACf,IAAA,CAAA,IAAI,GAAJ,IAAI;AAErB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE;IACtC;IAEA,cAAc,GAAA;AACb,QAAA,MAAM,QAAQ,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACnG,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,QAAA,OAAO,QAAQ;IAChB;AAEA,IAAA,IAAI,SAAS,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG;IACxB;AAEA,IAAA,IAAI,YAAY,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY;IAClC;AAEA,IAAA,MAAM,OAAO,GAAA;AACZ,QAAA,IAAI;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7F,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;AAClG,YAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,gBAAA,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,kCAAkC,CAAC;YACrE;QACD;gBAAU;AACT,YAAA,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QAC7B;IACD;AACA;;;;"}
@@ -23,7 +23,7 @@ const coverageRefSchema = z.object({
23
23
  */
24
24
  coverageDataIstanbul: z.string().optional(),
25
25
  }).describe('References to coverage report files emitted alongside the manifest');
26
- z.object({
26
+ const RenderManifestSchema = z.object({
27
27
  version: z.literal(1),
28
28
  projectId: z.string().min(1).default("main"),
29
29
  repository: z.object({
@@ -64,5 +64,5 @@ z.object({
64
64
  });
65
65
  const MANIFEST_FILENAME = "manifest.json";
66
66
 
67
- export { MANIFEST_FILENAME };
67
+ export { MANIFEST_FILENAME, RenderManifestSchema };
68
68
  //# sourceMappingURL=renderManifest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderManifest.js","sources":["../../../../../../common/dist/renderManifest.js"],"sourcesContent":["import { z } from 'zod';\n\nconst renderEventTypeSchema = z.enum([\n 'console.error', 'console.warn', 'console.log',\n 'window.error', 'window.unhandledrejection',\n 'thrownError',\n]);\nconst renderEventSchema = z.object({\n type: renderEventTypeSchema,\n phase: z.enum(['render', 'dispose']),\n isError: z.boolean(),\n message: z.string(),\n stack: z.string().optional(),\n});\nconst coverageRefSchema = z.object({\n /**\n * Path (relative to manifest.json) to a JSON file in the standard Istanbul\n * `coverage-final.json` format: `Record<absolutePath, IFileCoverage>`.\n * Compatible with `istanbul-lib-coverage`, `nyc`, and the `coverage-viewer`.\n *\n * When CSS coverage is collected, CSS files are merged into the same map\n * (one statement per non-blank line) so they appear as ordinary source files.\n */\n coverageDataIstanbul: z.string().optional(),\n}).describe('References to coverage report files emitted alongside the manifest');\nconst RenderManifestSchema = z.object({\n version: z.literal(1),\n projectId: z.string().min(1).default(\"main\"),\n repository: z.object({\n owner: z.string(),\n name: z.string(),\n }),\n commit: z.object({\n hash: z.string(),\n parentHashes: z.array(z.string()),\n author: z.object({\n name: z.string(),\n email: z.string(),\n }),\n timestamp: z.string(),\n message: z.string(),\n }),\n /** Aggregated coverage across all fixtures (always present when coverage was collected). */\n coverage: coverageRefSchema.optional(),\n fixtures: z.array(z.object({\n fixtureId: z.string(),\n imageHash: z.string().optional(),\n imagePath: z.string().optional(),\n background: z.enum([\"light\", \"dark\"]),\n labels: z.array(z.string()),\n expectedVisualDescriptions: z.array(z.string()),\n /** `true` iff at least one event in `events` has `isError: true`. */\n hasError: z.boolean(),\n events: z.array(renderEventSchema),\n renderTimeMs: z.object({\n sync: z.number(),\n total: z.number(),\n }),\n /** Arbitrary data the fixture provided via `RenderResult.output`. */\n output: z.unknown().optional(),\n /** Coverage attributable to this fixture (only present in per-fixture coverage mode). */\n coverage: coverageRefSchema.optional(),\n })),\n});\nconst MANIFEST_FILENAME = \"manifest.json\";\nfunction generateRenderManifestJsonSchema() {\n return z.toJSONSchema(RenderManifestSchema, { target: 'draft-2020-12' });\n}\n\nexport { MANIFEST_FILENAME, RenderManifestSchema, generateRenderManifestJsonSchema };\n//# sourceMappingURL=renderManifest.js.map\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderManifest.js","sources":["../../../../../../common/dist/renderManifest.js"],"sourcesContent":["import { z } from 'zod';\n\nconst renderEventTypeSchema = z.enum([\n 'console.error', 'console.warn', 'console.log',\n 'window.error', 'window.unhandledrejection',\n 'thrownError',\n]);\nconst renderEventSchema = z.object({\n type: renderEventTypeSchema,\n phase: z.enum(['render', 'dispose']),\n isError: z.boolean(),\n message: z.string(),\n stack: z.string().optional(),\n});\nconst coverageRefSchema = z.object({\n /**\n * Path (relative to manifest.json) to a JSON file in the standard Istanbul\n * `coverage-final.json` format: `Record<absolutePath, IFileCoverage>`.\n * Compatible with `istanbul-lib-coverage`, `nyc`, and the `coverage-viewer`.\n *\n * When CSS coverage is collected, CSS files are merged into the same map\n * (one statement per non-blank line) so they appear as ordinary source files.\n */\n coverageDataIstanbul: z.string().optional(),\n}).describe('References to coverage report files emitted alongside the manifest');\nconst RenderManifestSchema = z.object({\n version: z.literal(1),\n projectId: z.string().min(1).default(\"main\"),\n repository: z.object({\n owner: z.string(),\n name: z.string(),\n }),\n commit: z.object({\n hash: z.string(),\n parentHashes: z.array(z.string()),\n author: z.object({\n name: z.string(),\n email: z.string(),\n }),\n timestamp: z.string(),\n message: z.string(),\n }),\n /** Aggregated coverage across all fixtures (always present when coverage was collected). */\n coverage: coverageRefSchema.optional(),\n fixtures: z.array(z.object({\n fixtureId: z.string(),\n imageHash: z.string().optional(),\n imagePath: z.string().optional(),\n background: z.enum([\"light\", \"dark\"]),\n labels: z.array(z.string()),\n expectedVisualDescriptions: z.array(z.string()),\n /** `true` iff at least one event in `events` has `isError: true`. */\n hasError: z.boolean(),\n events: z.array(renderEventSchema),\n renderTimeMs: z.object({\n sync: z.number(),\n total: z.number(),\n }),\n /** Arbitrary data the fixture provided via `RenderResult.output`. */\n output: z.unknown().optional(),\n /** Coverage attributable to this fixture (only present in per-fixture coverage mode). */\n coverage: coverageRefSchema.optional(),\n })),\n});\nconst MANIFEST_FILENAME = \"manifest.json\";\nfunction generateRenderManifestJsonSchema() {\n return z.toJSONSchema(RenderManifestSchema, { target: 'draft-2020-12' });\n}\n\nexport { MANIFEST_FILENAME, RenderManifestSchema, generateRenderManifestJsonSchema };\n//# sourceMappingURL=renderManifest.js.map\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { MANIFEST_FILENAME } from './js-component-explorer/packages/common/dist/renderManifest.js';
1
+ export { MANIFEST_FILENAME, RenderManifestSchema } from './js-component-explorer/packages/common/dist/renderManifest.js';
2
2
  import __buildInfo from './_virtual/_build-info.js';
3
3
 
4
4
  /// <reference path="../../../scripts/build-info.d.ts" />
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vscode/component-explorer-cli",
3
- "version": "0.2.1-159",
3
+ "version": "0.2.1-160",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -84,5 +84,5 @@
84
84
  "vite": "^6.4.3",
85
85
  "vitest": "^4.1.0"
86
86
  },
87
- "gitHead": "9d84df592d7e559e44329b0fb861ef37c3d0522d"
87
+ "gitHead": "54166a879912b979a8b1511d6f6e392be59caa0d"
88
88
  }