@vscode/component-explorer-cli 0.2.1-25 → 0.2.1-27

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 (72) hide show
  1. package/README.md +6 -6
  2. package/dist/_virtual/_build-info.js +1 -1
  3. package/dist/browserPage.d.ts +49 -0
  4. package/dist/browserPage.d.ts.map +1 -1
  5. package/dist/browserPage.js +75 -0
  6. package/dist/browserPage.js.map +1 -1
  7. package/dist/commands/acceptCommand.d.ts +1 -1
  8. package/dist/commands/acceptCommand.d.ts.map +1 -1
  9. package/dist/commands/acceptCommand.js +12 -5
  10. package/dist/commands/acceptCommand.js.map +1 -1
  11. package/dist/commands/artifactCommand.d.ts +3 -1
  12. package/dist/commands/artifactCommand.d.ts.map +1 -1
  13. package/dist/commands/checkStabilityCommand.d.ts +2 -0
  14. package/dist/commands/checkStabilityCommand.d.ts.map +1 -1
  15. package/dist/commands/checkStabilityCommand.js +17 -1
  16. package/dist/commands/checkStabilityCommand.js.map +1 -1
  17. package/dist/commands/compareCommand.d.ts +1 -1
  18. package/dist/commands/compareCommand.d.ts.map +1 -1
  19. package/dist/commands/compareCommand.js +12 -4
  20. package/dist/commands/compareCommand.js.map +1 -1
  21. package/dist/commands/inputArg.d.ts +33 -0
  22. package/dist/commands/inputArg.d.ts.map +1 -0
  23. package/dist/commands/inputArg.js +103 -0
  24. package/dist/commands/inputArg.js.map +1 -0
  25. package/dist/commands/renderCommand.d.ts +9 -1
  26. package/dist/commands/renderCommand.d.ts.map +1 -1
  27. package/dist/commands/renderCommand.js +300 -15
  28. package/dist/commands/renderCommand.js.map +1 -1
  29. package/dist/commands/watchCommand.d.ts +1 -0
  30. package/dist/commands/watchCommand.d.ts.map +1 -1
  31. package/dist/commands/watchCommand.js +22 -12
  32. package/dist/commands/watchCommand.js.map +1 -1
  33. package/dist/component-explorer-config.schema.json +53 -0
  34. package/dist/componentExplorer.d.ts +98 -7
  35. package/dist/componentExplorer.d.ts.map +1 -1
  36. package/dist/componentExplorer.js +133 -8
  37. package/dist/componentExplorer.js.map +1 -1
  38. package/dist/config.d.ts +27 -0
  39. package/dist/config.d.ts.map +1 -1
  40. package/dist/config.js +42 -5
  41. package/dist/config.js.map +1 -1
  42. package/dist/coverage.d.ts +63 -0
  43. package/dist/coverage.d.ts.map +1 -0
  44. package/dist/coverage.js +212 -0
  45. package/dist/coverage.js.map +1 -0
  46. package/dist/daemon/DaemonService.d.ts +14 -5
  47. package/dist/daemon/DaemonService.d.ts.map +1 -1
  48. package/dist/daemon/DaemonService.js +32 -9
  49. package/dist/daemon/DaemonService.js.map +1 -1
  50. package/dist/daemon/version.d.ts +1 -1
  51. package/dist/daemon/version.js +1 -1
  52. package/dist/index.js +10 -1
  53. package/dist/index.js.map +1 -1
  54. package/dist/manifest.schema.json +38 -16
  55. package/dist/mcp/McpServer.d.ts.map +1 -1
  56. package/dist/mcp/McpServer.js +143 -72
  57. package/dist/mcp/McpServer.js.map +1 -1
  58. package/dist/packages/common/dist/renderManifest.js +26 -5
  59. package/dist/packages/common/dist/renderManifest.js.map +1 -1
  60. package/dist/server/serverConfig.d.ts +17 -0
  61. package/dist/server/serverConfig.d.ts.map +1 -1
  62. package/dist/server/serverConfig.js +2 -0
  63. package/dist/server/serverConfig.js.map +1 -1
  64. package/dist/server/viteServer.d.ts +15 -0
  65. package/dist/server/viteServer.d.ts.map +1 -1
  66. package/dist/server/viteServer.js +83 -0
  67. package/dist/server/viteServer.js.map +1 -1
  68. package/dist/utils.d.ts +0 -1
  69. package/dist/utils.d.ts.map +1 -1
  70. package/dist/utils.js +1 -5
  71. package/dist/utils.js.map +1 -1
  72. package/package.json +6 -1
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Helpers for the CLI `--input` family of flags.
3
+ *
4
+ * - `--input '<json>'`: a JSON object passed as `RenderContext.input` to every fixture in the run.
5
+ * - `--input-<key> <value>`: a single property override on the input object. Values are auto-cast:
6
+ * - matches `^-?\d+(\.\d+)?$` → number
7
+ * - matches `^(true|false)$` → boolean
8
+ * - otherwise kept as string
9
+ *
10
+ * Per-key overrides are merged on top of the base `--input` JSON (so `--input-X` wins).
11
+ *
12
+ * The argv preprocessing (`preprocessInputArgs`) runs in the CLI entry, before clipanion sees argv.
13
+ * It rewrites all `--input-<key> <value>` pairs into a single `--input '<merged-json>'` pair,
14
+ * so individual commands only need to declare a single `--input` String option.
15
+ */
16
+ const NUMBER_RE = /^-?\d+(?:\.\d+)?$/;
17
+ /** Cast a CLI string value to number / boolean / string per the documented rules. */
18
+ function castInputValue(raw) {
19
+ if (NUMBER_RE.test(raw)) {
20
+ return Number(raw);
21
+ }
22
+ if (raw === 'true') {
23
+ return true;
24
+ }
25
+ if (raw === 'false') {
26
+ return false;
27
+ }
28
+ return raw;
29
+ }
30
+ /**
31
+ * Parse the resolved `--input` flag value as a JSON object (or undefined).
32
+ *
33
+ * @throws {Error} when the value isn't valid JSON or isn't a JSON object.
34
+ */
35
+ function parseInputJson(raw) {
36
+ if (raw === undefined) {
37
+ return undefined;
38
+ }
39
+ let parsed;
40
+ try {
41
+ parsed = JSON.parse(raw);
42
+ }
43
+ catch (e) {
44
+ throw new Error(`--input is not valid JSON: ${e instanceof Error ? e.message : String(e)}`);
45
+ }
46
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
47
+ throw new Error('--input must be a JSON object (e.g. \'{"theme":"dark"}\')');
48
+ }
49
+ return parsed;
50
+ }
51
+ /**
52
+ * Pre-scan argv, extract every `--input-<key> <value>` pair, merge them onto the existing
53
+ * `--input '<json>'` (if any), and return a rewritten argv with a single `--input '<merged>'` flag.
54
+ *
55
+ * If no `--input-<key>` flags are present, argv is returned unchanged.
56
+ *
57
+ * @throws {Error} when the base `--input` JSON is invalid or not an object.
58
+ */
59
+ function preprocessInputArgs(args) {
60
+ const out = [];
61
+ const overrides = {};
62
+ let baseInputJson;
63
+ let baseInputJsonOutIdx;
64
+ for (let i = 0; i < args.length; i++) {
65
+ const a = args[i];
66
+ if (a === '--input' && i + 1 < args.length) {
67
+ baseInputJson = args[i + 1];
68
+ out.push(a);
69
+ baseInputJsonOutIdx = out.length;
70
+ out.push(args[i + 1]);
71
+ i++;
72
+ }
73
+ else if (a.startsWith('--input-') && a.length > '--input-'.length) {
74
+ const key = a.slice('--input-'.length);
75
+ // Reject obvious typos / no value supplied — leave for clipanion to surface.
76
+ if (i + 1 >= args.length || args[i + 1].startsWith('-')) {
77
+ out.push(a);
78
+ continue;
79
+ }
80
+ overrides[key] = castInputValue(args[i + 1]);
81
+ i++;
82
+ }
83
+ else {
84
+ out.push(a);
85
+ }
86
+ }
87
+ if (Object.keys(overrides).length === 0) {
88
+ return out;
89
+ }
90
+ const base = parseInputJson(baseInputJson) ?? {};
91
+ const merged = { ...base, ...overrides };
92
+ const mergedJson = JSON.stringify(merged);
93
+ if (baseInputJsonOutIdx !== undefined) {
94
+ out[baseInputJsonOutIdx] = mergedJson;
95
+ }
96
+ else {
97
+ out.push('--input', mergedJson);
98
+ }
99
+ return out;
100
+ }
101
+
102
+ export { castInputValue, parseInputJson, preprocessInputArgs };
103
+ //# sourceMappingURL=inputArg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputArg.js","sources":["../../src/commands/inputArg.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export declare class RenderCommand extends Command {
4
4
  static usage: import("clipanion").Usage;
5
5
  readonly verbose: number;
6
6
  readonly logFile: string | undefined;
7
- readonly filter: string | undefined;
7
+ readonly fixtureIdRegex: string | undefined;
8
8
  readonly accept: boolean;
9
9
  readonly project: string;
10
10
  readonly target: string | undefined;
@@ -14,7 +14,15 @@ export declare class RenderCommand extends Command {
14
14
  readonly headed: boolean;
15
15
  readonly timeout: string;
16
16
  readonly useHashPaths: boolean;
17
+ readonly reloadBetweenFixtures: boolean;
18
+ readonly input: string | undefined;
19
+ readonly coverage: boolean;
20
+ readonly coverageMode: string | undefined;
21
+ readonly coverageJs: string | undefined;
22
+ readonly coverageCss: boolean;
23
+ readonly coverageOutput: string | undefined;
17
24
  execute(): Promise<number>;
25
+ private _resolveCoverage;
18
26
  private _runComparison;
19
27
  }
20
28
  //# sourceMappingURL=renderCommand.d.ts.map
@@ -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;AAc5C,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,MAAM,qBAAkG;IACjH,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;IAE7K,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;YA8HlB,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;AAuB5C,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;IAqWhC,OAAO,CAAC,gBAAgB;YA8CV,cAAc;CA+B5B"}
@@ -10,12 +10,14 @@ import '../external/vscode-observables/observables/dist/observableInternal/obser
10
10
  import { PlaywrightBrowserPageFactory } from '../browserPage.js';
11
11
  import { compareScreenshotsInMemory, printComparisonToConsole, writeComparisonReport } from '../comparison.js';
12
12
  import { ConsoleLogger, verbosityToLogLevel, createLogFileOptions, logBuildInfo } from '../logger.js';
13
- import { ResolvedConfig } from '../config.js';
13
+ import { ResolvedConfig, ResolvedCoverageConfig } from '../config.js';
14
14
  import { ExplorerSession } from '../explorerSession.js';
15
15
  import { FileSystemStorage } from '../storage.js';
16
- import { matchGlob, writeFile } from '../utils.js';
16
+ import { writeFile } from '../utils.js';
17
17
  import { getGitRoot, execGit } from '../git/gitUtils.js';
18
18
  import { serializeManifest } from '../renderManifest.js';
19
+ import { parseInputJson } from './inputArg.js';
20
+ import { validateIstanbulMap, v8EntriesToIstanbul, mergeIstanbul, cssEntriesToIstanbul, writeIstanbulFile } from '../coverage.js';
19
21
  import { MANIFEST_FILENAME } from '../packages/common/dist/renderManifest.js';
20
22
 
21
23
  class RenderCommand extends Command {
@@ -25,12 +27,12 @@ class RenderCommand extends Command {
25
27
  examples: [
26
28
  ['Render all fixtures', '$0 render'],
27
29
  ['Render and accept as baseline', '$0 render --accept'],
28
- ['Filter by glob', '$0 render --filter "Button/*"'],
30
+ ['Filter by fixture-id regex', '$0 render --fixture-id-regex "^Button/"'],
29
31
  ],
30
32
  });
31
33
  verbose = Option.Counter('-v,--verbose', 0, { description: 'Increase log verbosity (-v debug, -vv trace)' });
32
34
  logFile = Option.String('--log-file', { description: 'Append logs to this file (works with -v/-vv)' });
33
- filter = Option.String('--filter', { required: false, description: 'Filter fixtures by glob pattern' });
35
+ fixtureIdRegex = Option.String('--fixture-id-regex', { required: false, description: 'Filter fixtures whose fixtureId matches this regular expression (unanchored)' });
34
36
  accept = Option.Boolean('--accept', false, { description: 'Write to baseline instead of current (mutually exclusive with --target)' });
35
37
  project = Option.String('-p,--project', process.cwd(), { description: 'Project: a directory, vite config file, or component-explorer.json' });
36
38
  target = Option.String('--target', { required: false, description: 'Screenshot output directory (default: .screenshots/current, or .screenshots/baseline with --accept)' });
@@ -40,18 +42,51 @@ class RenderCommand extends Command {
40
42
  headed = Option.Boolean('--headed', false, { description: 'Show the browser window (useful for debugging)' });
41
43
  timeout = Option.String('--timeout', '30000', { description: 'Navigation timeout in milliseconds (default: 30000)' });
42
44
  useHashPaths = Option.Boolean('--useHashPaths', false, { description: 'Use content-hash image paths (images/<hash>.png) for deduplication instead of fixture-id paths' });
45
+ reloadBetweenFixtures = Option.Boolean('--reload-between-fixtures', false, { description: 'Reload the browser page between fixtures for cleaner isolation (slower)' });
46
+ 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.' });
47
+ coverage = Option.Boolean('--coverage', false, { description: 'Collect code coverage during rendering. Output is written to <target>/<coverage-output>/' });
48
+ coverageMode = Option.String('--coverage-mode', { required: false, description: 'Coverage aggregation: "total" (one report for all fixtures, default) or "per-fixture" (one report per fixture; forces --reload-between-fixtures)' });
49
+ coverageJs = Option.String('--coverage-js', { required: false, description: 'JavaScript coverage strategy: "istanbul" (default; vite-plugin-istanbul), "v8" (Playwright V8 + v8-to-istanbul), or "off"' });
50
+ coverageCss = Option.Boolean('--coverage-css', false, { description: 'Also collect CSS coverage via Playwright (raw range data)' });
51
+ coverageOutput = Option.String('--coverage-output', { required: false, description: 'Coverage output directory, relative to --target (default: "coverage")' });
43
52
  async execute() {
44
53
  // Validate mutually exclusive options
45
54
  if (this.accept && this.target) {
46
55
  this.context.stderr.write('Error: --accept and --target are mutually exclusive.\n');
47
56
  return 1;
48
57
  }
58
+ let input;
59
+ try {
60
+ input = parseInputJson(this.input);
61
+ }
62
+ catch (e) {
63
+ this.context.stderr.write(`Error: ${e instanceof Error ? e.message : String(e)}\n`);
64
+ return 1;
65
+ }
49
66
  const logger = new ConsoleLogger('render', this.context.stdout, verbosityToLogLevel(this.verbose), createLogFileOptions(this.logFile, this.verbose));
50
67
  logBuildInfo(logger);
51
68
  const disposables = new DisposableStore();
52
69
  const config = await ResolvedConfig.fromProjectPath(this.project, disposables);
53
70
  const projectDir = config.configDir;
54
71
  const serverConfig = config.sessions[0].server;
72
+ // Resolve coverage settings — CLI flags override JSON config.
73
+ let coverage;
74
+ try {
75
+ coverage = this._resolveCoverage(config.coverage);
76
+ }
77
+ catch (e) {
78
+ this.context.stderr.write(`Error: ${e instanceof Error ? e.message : String(e)}\n`);
79
+ return 1;
80
+ }
81
+ if (coverage && coverage.js !== 'istanbul' && coverage.js !== 'v8' && !coverage.css) {
82
+ coverage = undefined;
83
+ }
84
+ // Per-fixture coverage requires page reload between fixtures so the
85
+ // `__coverage__` global / V8 sampler restarts cleanly each iteration.
86
+ const effectiveReloadBetween = this.reloadBetweenFixtures || (coverage?.mode === 'per-fixture' && coverage.enabled);
87
+ if (coverage?.mode === 'per-fixture' && !this.reloadBetweenFixtures) {
88
+ logger.debug('Coverage mode "per-fixture" implies reload-between-fixtures=true');
89
+ }
55
90
  // Determine target directory
56
91
  const defaultTarget = this.accept ? '.screenshots/baseline' : '.screenshots/current';
57
92
  const targetDir = this.target ?? defaultTarget;
@@ -66,20 +101,90 @@ class RenderCommand extends Command {
66
101
  let session;
67
102
  try {
68
103
  this.context.stdout.write('Starting server...\n');
69
- session = await ExplorerSession.create('render', serverConfig, browserFactory, { logger });
104
+ const istanbulCoverage = coverage && coverage.js === 'istanbul'
105
+ ? { include: coverage.include, exclude: coverage.exclude }
106
+ : undefined;
107
+ if (istanbulCoverage && serverConfig.kind !== 'vite') {
108
+ this.context.stderr.write('Warning: --coverage-js=istanbul requires a Vite server; falling back to no JS coverage. Use --coverage-js=v8 for non-Vite servers.\n');
109
+ }
110
+ // Enable CSS sourceURL annotation when CSS coverage is requested.
111
+ // Without it, Vite's HMR-injected `<style>` tags are anonymous and
112
+ // Playwright's CSS coverage drops them.
113
+ const cssSourceUrl = coverage?.css === true && serverConfig.kind === 'vite';
114
+ session = await ExplorerSession.create('render', serverConfig, browserFactory, { logger, istanbulCoverage, cssSourceUrl });
70
115
  this.context.stdout.write(`Server running at ${session.serverUrl}\n`);
71
116
  const listResult = await session.explorer.listFixtures();
72
117
  if (listResult.loadError) {
73
118
  this.context.stderr.write(`Warning: Fixture loading error: ${listResult.loadError}\n`);
74
119
  }
75
- const filtered = this.filter
76
- ? listResult.fixtures.filter(f => matchGlob(f.fixtureId, this.filter))
77
- : listResult.fixtures;
120
+ let filtered;
121
+ if (this.fixtureIdRegex) {
122
+ let regex;
123
+ try {
124
+ regex = new RegExp(this.fixtureIdRegex);
125
+ }
126
+ catch (e) {
127
+ this.context.stderr.write(`Error: Invalid --fixture-id-regex: ${e instanceof Error ? e.message : String(e)}\n`);
128
+ return 1;
129
+ }
130
+ filtered = listResult.fixtures.filter(f => regex.test(f.fixtureId));
131
+ }
132
+ else {
133
+ filtered = listResult.fixtures;
134
+ }
78
135
  this.context.stdout.write(`Found ${filtered.length} fixture(s)\n`);
79
136
  const fixtureEntries = [];
80
137
  const writtenHashes = new Set();
81
- for (const fixture of filtered) {
82
- const result = await session.explorer.screenshotFixture(fixture.fixtureId, { reloadOnError: true });
138
+ // Coverage state
139
+ const useV8Js = coverage?.js === 'v8';
140
+ const useIstanbulJs = coverage?.js === 'istanbul' && serverConfig.kind === 'vite';
141
+ const useCss = coverage?.css === true;
142
+ const v8FilterInclude = useV8Js ? coverage.include.map(_globToRegExp) : undefined;
143
+ const v8FilterExclude = useV8Js ? coverage.exclude.map(_globToRegExp) : undefined;
144
+ const perFixtureMaps = [];
145
+ const totalMaps = [];
146
+ // Total mode: start coverage once before the loop. The BrowserPage
147
+ // snapshots active trackers automatically on every triggered reload
148
+ // (e.g. `reloadOnError`, `reloadBeforeRender`) and reapplies them on
149
+ // the new document, so callers get the union when they finally stop.
150
+ if (coverage && coverage.mode === 'total' && (useV8Js || useCss || useIstanbulJs)) {
151
+ const page = await session.explorer.getOrOpenPage();
152
+ if (useV8Js) {
153
+ await page.startJSCoverage({ resetOnNavigation: false });
154
+ }
155
+ if (useCss) {
156
+ await page.startCSSCoverage({ resetOnNavigation: false });
157
+ }
158
+ if (useIstanbulJs) {
159
+ page.startIstanbulSnapshot();
160
+ }
161
+ }
162
+ for (let i = 0; i < filtered.length; i++) {
163
+ const fixture = filtered[i];
164
+ // For per-fixture coverage we reload BEFORE rendering, then start
165
+ // V8/CSS coverage on the fresh page so each fixture is isolated.
166
+ const reloadBeforeRender = effectiveReloadBetween && i > 0;
167
+ if (coverage && coverage.mode === 'per-fixture' && (useV8Js || useCss)) {
168
+ const page = await session.explorer.getOrOpenPage();
169
+ // Reload first (mirrors what screenshotFixture would have done) so
170
+ // that __coverage__ resets and the V8 sampler starts on a clean page.
171
+ if (reloadBeforeRender) {
172
+ await page.reload();
173
+ }
174
+ if (useV8Js) {
175
+ await page.startJSCoverage({ resetOnNavigation: false });
176
+ }
177
+ if (useCss) {
178
+ await page.startCSSCoverage({ resetOnNavigation: false });
179
+ }
180
+ }
181
+ const result = await session.explorer.screenshotFixture(fixture.fixtureId, {
182
+ reloadOnError: true,
183
+ // We already handled the reload manually above for per-fixture coverage.
184
+ reloadBeforeRender: coverage?.mode === 'per-fixture' && (useV8Js || useCss) ? false : reloadBeforeRender,
185
+ input,
186
+ disposeAfter: true,
187
+ });
83
188
  let imageHash;
84
189
  let imagePath;
85
190
  if (result.image) {
@@ -97,6 +202,22 @@ class RenderCommand extends Command {
97
202
  }
98
203
  screenshots.set(fixture.fixtureId, { data: result.image, background: fixture.background, labels: fixture.labels });
99
204
  }
205
+ const events = [];
206
+ for (const e of result.events) {
207
+ events.push({ ...e, phase: 'render', isError: e.type !== 'console.log' });
208
+ }
209
+ if (result.error) {
210
+ events.push({ type: 'thrownError', phase: 'render', isError: true, message: result.error.message, stack: result.error.stack });
211
+ }
212
+ if (result.currentDispose) {
213
+ for (const e of result.currentDispose.events) {
214
+ events.push({ ...e, phase: 'dispose', isError: e.type !== 'console.log' });
215
+ }
216
+ for (const err of result.currentDispose.errors) {
217
+ events.push({ type: 'thrownError', phase: 'dispose', isError: true, message: err.message, stack: err.stack });
218
+ }
219
+ }
220
+ const hasError = events.some(e => e.isError);
100
221
  fixtureEntries.push({
101
222
  fixtureId: fixture.fixtureId,
102
223
  imageHash,
@@ -104,28 +225,148 @@ class RenderCommand extends Command {
104
225
  background: fixture.background,
105
226
  labels: [...fixture.labels],
106
227
  expectedVisualDescriptions: [...fixture.expectedVisualDescriptions],
107
- hasError: result.hasError,
108
- error: result.error,
109
- events: result.events,
228
+ hasError,
229
+ events,
110
230
  renderTimeMs: result.renderTimeMs,
231
+ ...(result.output !== undefined ? { output: result.output } : {}),
111
232
  });
112
233
  if (!result.image) {
113
234
  this.context.stderr.write(` ✗ ${fixture.fixtureId} (no screenshot)\n`);
114
235
  }
115
- else if (result.hasError) {
116
- this.context.stdout.write(` ⚠ ${fixture.fixtureId} (rendered with errors)\n`);
236
+ else if (hasError) {
237
+ const firstError = events.find(e => e.isError);
238
+ const errorLine = firstError ? firstError.message.split('\n')[0].slice(0, 200) : 'unknown error';
239
+ this.context.stdout.write(` ⚠ ${fixture.fixtureId} (error: ${errorLine})\n`);
117
240
  }
118
241
  else {
119
242
  this.context.stdout.write(` ✓ ${fixture.fixtureId}\n`);
120
243
  }
244
+ // Per-fixture coverage: collect after each fixture renders.
245
+ if (coverage && coverage.mode === 'per-fixture' && (useV8Js || useIstanbulJs || useCss)) {
246
+ const page = await session.explorer.getOrOpenPage();
247
+ let map = {};
248
+ if (useIstanbulJs) {
249
+ const raw = await page.evaluateJs('window.__coverage__ ?? null');
250
+ map = validateIstanbulMap(raw, logger);
251
+ }
252
+ if (useV8Js) {
253
+ const v8 = await page.stopJSCoverage();
254
+ const v8Map = await v8EntriesToIstanbul(v8, {
255
+ viteServerUrl: session.serverUrl,
256
+ projectRoot: projectDir,
257
+ logger,
258
+ include: v8FilterInclude,
259
+ exclude: v8FilterExclude,
260
+ });
261
+ map = mergeIstanbul([map, v8Map]);
262
+ }
263
+ if (useCss) {
264
+ const css = await page.stopCSSCoverage();
265
+ const cssMap = cssEntriesToIstanbul(css, {
266
+ viteServerUrl: session.serverUrl,
267
+ projectRoot: projectDir,
268
+ logger,
269
+ });
270
+ map = mergeIstanbul([map, cssMap]);
271
+ }
272
+ perFixtureMaps.push({ fixtureId: fixture.fixtureId, map });
273
+ }
274
+ }
275
+ // Total mode: collect once at the end. Reload-triggered snapshotting
276
+ // is handled inside `BrowserPage.reload()`, which preserves coverage
277
+ // data across our explicit reloads (e.g. `reloadOnError`,
278
+ // `reloadBeforeRender`). Reloads we don't trigger (e.g. Vite's
279
+ // "optimized dependencies changed") are not handled — for now we
280
+ // accept losing data from before such navigations.
281
+ if (coverage && coverage.mode === 'total' && (useV8Js || useIstanbulJs || useCss)) {
282
+ const page = await session.explorer.getOrOpenPage();
283
+ if (useIstanbulJs) {
284
+ const raw = await page.evaluateJs('window.__coverage__ ?? null');
285
+ totalMaps.push(validateIstanbulMap(raw, logger));
286
+ // Plus any pre-reload snapshots collected during the run.
287
+ for (const snap of page.stopIstanbulSnapshot()) {
288
+ totalMaps.push(validateIstanbulMap(snap, logger));
289
+ }
290
+ }
291
+ if (useV8Js) {
292
+ const v8 = await page.stopJSCoverage();
293
+ totalMaps.push(await v8EntriesToIstanbul(v8, {
294
+ viteServerUrl: session.serverUrl,
295
+ projectRoot: projectDir,
296
+ logger,
297
+ include: v8FilterInclude,
298
+ exclude: v8FilterExclude,
299
+ }));
300
+ }
301
+ if (useCss) {
302
+ const css = await page.stopCSSCoverage();
303
+ totalMaps.push(cssEntriesToIstanbul(css, {
304
+ viteServerUrl: session.serverUrl,
305
+ projectRoot: projectDir,
306
+ logger,
307
+ }));
308
+ }
121
309
  }
122
310
  const gitRoot = await getGitRoot(projectDir);
123
311
  const commitMetadata = await collectGitMetadata(gitRoot);
124
312
  const repoOrigin = await getRepoOwnerAndName(gitRoot);
313
+ // Write coverage output(s) BEFORE the manifest so we can reference
314
+ // each emitted file from the manifest by relative path.
315
+ let topLevelCoverage;
316
+ const perFixtureCoverageRef = new Map();
317
+ if (coverage && coverage.enabled) {
318
+ const coverageDir = path.isAbsolute(coverage.outputDir)
319
+ ? coverage.outputDir
320
+ : path.join(targetPath, coverage.outputDir);
321
+ const toManifestRelative = (absPath) => {
322
+ const rel = path.relative(targetPath, absPath).split(path.sep).join('/');
323
+ return rel.startsWith('.') ? rel : './' + rel;
324
+ };
325
+ if (coverage.mode === 'per-fixture') {
326
+ for (const { fixtureId, map } of perFixtureMaps) {
327
+ if (Object.keys(map).length === 0) {
328
+ continue;
329
+ }
330
+ const safeId = fixtureId.replace(/[/\\:*?"<>|]/g, '_');
331
+ const outPath = path.join(coverageDir, `${safeId}.coverage.json`);
332
+ await writeIstanbulFile(outPath, map);
333
+ perFixtureCoverageRef.set(fixtureId, {
334
+ coverageDataIstanbul: toManifestRelative(outPath),
335
+ });
336
+ }
337
+ // Aggregated total alongside per-fixture files.
338
+ const merged = mergeIstanbul(perFixtureMaps.map(p => p.map));
339
+ if (Object.keys(merged).length > 0) {
340
+ const totalPath = path.join(coverageDir, 'coverage-final.json');
341
+ await writeIstanbulFile(totalPath, merged);
342
+ topLevelCoverage = { coverageDataIstanbul: toManifestRelative(totalPath) };
343
+ }
344
+ this.context.stdout.write(` Coverage: ${perFixtureCoverageRef.size} per-fixture report(s) + total in ${path.relative(projectDir, coverageDir)}/\n`);
345
+ }
346
+ else {
347
+ const merged = mergeIstanbul(totalMaps);
348
+ if (Object.keys(merged).length > 0) {
349
+ const totalPath = path.join(coverageDir, 'coverage-final.json');
350
+ await writeIstanbulFile(totalPath, merged);
351
+ topLevelCoverage = { coverageDataIstanbul: toManifestRelative(totalPath) };
352
+ }
353
+ this.context.stdout.write(` Coverage: ${path.relative(projectDir, coverageDir)}/\n`);
354
+ }
355
+ }
356
+ // Attach per-fixture coverage refs to manifest entries (per-fixture mode only).
357
+ if (perFixtureCoverageRef.size > 0) {
358
+ for (const entry of fixtureEntries) {
359
+ const ref = perFixtureCoverageRef.get(entry.fixtureId);
360
+ if (ref) {
361
+ entry.coverage = ref;
362
+ }
363
+ }
364
+ }
125
365
  const manifest = {
126
366
  version: 1,
127
367
  repository: repoOrigin,
128
368
  commit: commitMetadata,
369
+ coverage: topLevelCoverage,
129
370
  fixtures: fixtureEntries,
130
371
  };
131
372
  const manifestPath = path.join(targetPath, MANIFEST_FILENAME);
@@ -145,6 +386,40 @@ class RenderCommand extends Command {
145
386
  }
146
387
  return 0;
147
388
  }
389
+ _resolveCoverage(fromConfig) {
390
+ // If neither CLI nor config requests coverage, do nothing.
391
+ const configWantsCoverage = fromConfig?.enabled ?? false;
392
+ const cliWantsCoverage = this.coverage || this.coverageCss || this.coverageJs !== undefined || this.coverageMode !== undefined;
393
+ if (!configWantsCoverage && !cliWantsCoverage) {
394
+ return undefined;
395
+ }
396
+ const base = fromConfig ?? new ResolvedCoverageConfig('total', 'istanbul', false, 'coverage', ['**/src/**/*.{js,ts,jsx,tsx,mjs,cjs}'], ['**/*.fixture.{js,ts,jsx,tsx}', '**/node_modules/**', '**/*.{test,spec}.{js,ts,jsx,tsx}']);
397
+ // Mode override
398
+ let mode = base.mode;
399
+ if (this.coverageMode !== undefined) {
400
+ if (this.coverageMode !== 'total' && this.coverageMode !== 'per-fixture') {
401
+ throw new Error(`--coverage-mode must be "total" or "per-fixture", got "${this.coverageMode}"`);
402
+ }
403
+ mode = this.coverageMode;
404
+ }
405
+ // JS strategy override
406
+ let js = base.js;
407
+ if (this.coverageJs !== undefined) {
408
+ if (this.coverageJs === 'off' || this.coverageJs === 'false') {
409
+ js = false;
410
+ }
411
+ else if (this.coverageJs === 'istanbul' || this.coverageJs === 'v8') {
412
+ js = this.coverageJs;
413
+ }
414
+ else {
415
+ throw new Error(`--coverage-js must be "istanbul", "v8", or "off", got "${this.coverageJs}"`);
416
+ }
417
+ }
418
+ // CSS toggle: CLI flag forces on; config decides otherwise.
419
+ const css = this.coverageCss || base.css;
420
+ const outputDir = this.coverageOutput ?? base.outputDir;
421
+ return new ResolvedCoverageConfig(mode, js, css, outputDir, base.include, base.exclude);
422
+ }
148
423
  async _runComparison(screenshots, targetPath, compareTargetPath, projectDir) {
149
424
  const compareStorage = new FileSystemStorage(compareTargetPath);
150
425
  const result = await compareScreenshotsInMemory(screenshots, {
@@ -168,6 +443,16 @@ class RenderCommand extends Command {
168
443
  return (result.added.length > 0 || result.changed.length > 0) ? 1 : 0;
169
444
  }
170
445
  }
446
+ function _globToRegExp(glob) {
447
+ // Escape regex metacharacters EXCEPT glob ones we'll process below: * ? { } , and /.
448
+ let pattern = glob.replace(/([.+^$()|[\]\\])/g, '\\$1');
449
+ // Brace expansion: {a,b,c} → (a|b|c)
450
+ pattern = pattern.replace(/\{([^{}]+)\}/g, (_, body) => '(' + body.split(',').join('|') + ')');
451
+ // ** → placeholder, * → [^/]*, then placeholder → .*
452
+ pattern = pattern.replace(/\*\*/g, '\u29eb').replace(/\*/g, '[^/]*').replace(/\u29eb/g, '.*');
453
+ pattern = pattern.replace(/\?/g, '.');
454
+ return new RegExp(pattern);
455
+ }
171
456
  async function collectGitMetadata(gitRoot) {
172
457
  const hash = (await execGit(gitRoot, ['rev-parse', 'HEAD'])).trim();
173
458
  const logOutput = (await execGit(gitRoot, [
@@ -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":"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"}
@@ -7,6 +7,7 @@ export declare class WatchCommand extends Command {
7
7
  readonly project: string;
8
8
  readonly headed: boolean;
9
9
  readonly timeout: string;
10
+ readonly input: string | undefined;
10
11
  execute(): Promise<void>;
11
12
  private _executeLegacy;
12
13
  private _executeWithConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"watchCommand.d.ts","sourceRoot":"","sources":["../../src/commands/watchCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAc5C,qBAAa,YAAa,SAAQ,OAAO;IACxC,OAAgB,KAAK,aAAe;IAEpC,OAAgB,KAAK,4BAMlB;IAEH,QAAQ,CAAC,OAAO,SAAsG;IACtH,QAAQ,CAAC,OAAO,qBAAgG;IAChH,QAAQ,CAAC,OAAO,SAAuI;IACvJ,QAAQ,CAAC,MAAM,UAAwG;IACvH,QAAQ,CAAC,OAAO,SAA+G;IAEzH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAShB,cAAc;YAuCd,kBAAkB;YA0ElB,aAAa;CAkB3B"}
1
+ {"version":3,"file":"watchCommand.d.ts","sourceRoot":"","sources":["../../src/commands/watchCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAe5C,qBAAa,YAAa,SAAQ,OAAO;IACxC,OAAgB,KAAK,aAAe;IAEpC,OAAgB,KAAK,4BAMlB;IAEH,QAAQ,CAAC,OAAO,SAAsG;IACtH,QAAQ,CAAC,OAAO,qBAAgG;IAChH,QAAQ,CAAC,OAAO,SAAuI;IACvJ,QAAQ,CAAC,MAAM,UAAwG;IACvH,QAAQ,CAAC,OAAO,SAA+G;IAC/H,QAAQ,CAAC,KAAK,qBAAmO;IAE3O,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAiBhB,cAAc;YAuCd,kBAAkB;YA0ElB,aAAa;CAkB3B"}