@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
@@ -13,6 +13,7 @@ import { FileSystemStorage } from '../storage.js';
13
13
  import { ResolvedConfig } from '../config.js';
14
14
  import { ExplorerSession } from '../explorerSession.js';
15
15
  import { compareScreenshots, ScreenshotCache, contentHash } from '../screenshotCache.js';
16
+ import { parseInputJson } from './inputArg.js';
16
17
 
17
18
  class WatchCommand extends Command {
18
19
  static paths = [['watch']];
@@ -28,15 +29,24 @@ class WatchCommand extends Command {
28
29
  project = Option.String('-p,--project', process.cwd(), { description: 'Project: a directory, vite config file, or component-explorer.json' });
29
30
  headed = Option.Boolean('--headed', false, { description: 'Show the browser window (useful for debugging)' });
30
31
  timeout = Option.String('--timeout', '30000', { description: 'Navigation timeout in milliseconds (default: 30000)' });
32
+ 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.' });
31
33
  async execute() {
34
+ let input;
35
+ try {
36
+ input = parseInputJson(this.input);
37
+ }
38
+ catch (e) {
39
+ this.context.stderr.write(`Error: ${e instanceof Error ? e.message : String(e)}\n`);
40
+ return;
41
+ }
32
42
  const disposables = new DisposableStore();
33
43
  const config = await ResolvedConfig.fromProjectPath(this.project, disposables);
34
44
  if (config.isFullConfig) {
35
- return this._executeWithConfig(config, disposables);
45
+ return this._executeWithConfig(config, disposables, input);
36
46
  }
37
- return this._executeLegacy(config, disposables);
47
+ return this._executeLegacy(config, disposables, input);
38
48
  }
39
- async _executeLegacy(config, disposables) {
49
+ async _executeLegacy(config, disposables, input) {
40
50
  const logger = new ConsoleLogger('watch', this.context.stdout, verbosityToLogLevel(this.verbose), createLogFileOptions(this.logFile, this.verbose));
41
51
  logBuildInfo(logger);
42
52
  const storage = new FileSystemStorage(config.screenshotDir);
@@ -47,14 +57,14 @@ class WatchCommand extends Command {
47
57
  logger.log(`Server running at ${server.url}`);
48
58
  const explorer = new BrowserComponentExplorer(browserFactory, server, logger);
49
59
  logger.log('Taking initial screenshots...');
50
- await captureAndCompare(explorer, storage, this.context.stdout);
60
+ await captureAndCompare(explorer, storage, this.context.stdout, input);
51
61
  this.context.stdout.write('\nWatching for changes... (Ctrl+C to stop)\n\n');
52
62
  let stopped = false;
53
63
  process.on('SIGINT', () => { stopped = true; });
54
64
  while (!stopped) {
55
65
  try {
56
66
  await explorer.waitForUpdate();
57
- await captureAndCompare(explorer, storage, this.context.stdout);
67
+ await captureAndCompare(explorer, storage, this.context.stdout, input);
58
68
  }
59
69
  catch (err) {
60
70
  if (stopped)
@@ -68,7 +78,7 @@ class WatchCommand extends Command {
68
78
  await server.dispose();
69
79
  disposables.dispose();
70
80
  }
71
- async _executeWithConfig(resolvedConfig, disposables) {
81
+ async _executeWithConfig(resolvedConfig, disposables, input) {
72
82
  const logger = new ConsoleLogger('watch', this.context.stdout, verbosityToLogLevel(this.verbose), createLogFileOptions(this.logFile, this.verbose));
73
83
  logBuildInfo(logger);
74
84
  const browserFactory = new PlaywrightBrowserPageFactory(this.headed, Number(this.timeout));
@@ -86,7 +96,7 @@ class WatchCommand extends Command {
86
96
  // Initial capture from all sessions
87
97
  for (const [name, session] of sessions) {
88
98
  logger.log(`Capturing initial screenshots: ${name}`);
89
- const screenshots = await captureAll(session.explorer);
99
+ const screenshots = await captureAll(session.explorer, input);
90
100
  caches.get(name).replaceAll(screenshots);
91
101
  await writeScreenshotsToStorage(storage, name, screenshots);
92
102
  }
@@ -106,7 +116,7 @@ class WatchCommand extends Command {
106
116
  logger.log(`HMR update in session: ${event.sessionName}`);
107
117
  const cache = caches.get(event.sessionName);
108
118
  const session = sessions.get(event.sessionName);
109
- const screenshots = await captureAll(session.explorer);
119
+ const screenshots = await captureAll(session.explorer, input);
110
120
  cache.replaceAll(screenshots);
111
121
  await writeScreenshotsToStorage(storage, event.sessionName, screenshots);
112
122
  }
@@ -173,11 +183,11 @@ async function raceUpdates(sessions, resolvers) {
173
183
  return Promise.race([...hmrPromises, refPromise]);
174
184
  }
175
185
  // --- Capture helpers ---
176
- async function captureAll(explorer) {
186
+ async function captureAll(explorer, input) {
177
187
  const { fixtures } = await explorer.listFixtures();
178
188
  const screenshots = new Map();
179
189
  for (const fixture of fixtures) {
180
- const result = await explorer.screenshotFixture(fixture.fixtureId, { reloadOnError: true });
190
+ const result = await explorer.screenshotFixture(fixture.fixtureId, { reloadOnError: true, input });
181
191
  if (result.image) {
182
192
  screenshots.set(fixture.fixtureId, result.image);
183
193
  }
@@ -212,13 +222,13 @@ function printCompareResult(result, stdout, baselineCache, currentCache) {
212
222
  }
213
223
  }
214
224
  // --- Legacy helpers ---
215
- async function captureAndCompare(explorer, storage, stdout) {
225
+ async function captureAndCompare(explorer, storage, stdout, input) {
216
226
  const { fixtures } = await explorer.listFixtures();
217
227
  const added = [];
218
228
  const changed = [];
219
229
  const unchanged = [];
220
230
  for (const fixture of fixtures) {
221
- const result = await explorer.screenshotFixture(fixture.fixtureId, { reloadOnError: true });
231
+ const result = await explorer.screenshotFixture(fixture.fixtureId, { reloadOnError: true, input });
222
232
  if (!result.image) {
223
233
  continue;
224
234
  }
@@ -1 +1 @@
1
- {"version":3,"file":"watchCommand.js","sources":["../../src/commands/watchCommand.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watchCommand.js","sources":["../../src/commands/watchCommand.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -375,6 +375,59 @@
375
375
  "additionalProperties": false,
376
376
  "description": "HTTP redirection server that redirects to the session URL"
377
377
  },
378
+ "coverage": {
379
+ "type": "object",
380
+ "properties": {
381
+ "mode": {
382
+ "description": "Aggregate coverage across all fixtures (\"total\", default) or emit one report per fixture (\"per-fixture\")",
383
+ "type": "string",
384
+ "enum": [
385
+ "total",
386
+ "per-fixture"
387
+ ]
388
+ },
389
+ "js": {
390
+ "description": "JavaScript coverage strategy. \"istanbul\" (default) instruments source via vite-plugin-istanbul. \"v8\" uses Playwright's native V8 coverage and converts to Istanbul. false disables JS coverage",
391
+ "anyOf": [
392
+ {
393
+ "type": "string",
394
+ "enum": [
395
+ "istanbul",
396
+ "v8"
397
+ ]
398
+ },
399
+ {
400
+ "type": "boolean",
401
+ "const": false
402
+ }
403
+ ]
404
+ },
405
+ "css": {
406
+ "description": "Collect CSS coverage via Playwright (raw range data, written separately). Default: false",
407
+ "type": "boolean"
408
+ },
409
+ "outputDir": {
410
+ "description": "Output directory for coverage JSON, relative to the render target dir (default: \"coverage\")",
411
+ "type": "string"
412
+ },
413
+ "include": {
414
+ "description": "Glob patterns of files to instrument (Istanbul only). Default: [\"**/src/**/*.{js,ts,jsx,tsx,mjs,cjs}\"]",
415
+ "type": "array",
416
+ "items": {
417
+ "type": "string"
418
+ }
419
+ },
420
+ "exclude": {
421
+ "description": "Glob patterns of files to skip (Istanbul only). Default: [\"**/*.fixture.{js,ts,jsx,tsx}\", \"**/node_modules/**\", \"**/*.{test,spec}.*\"]",
422
+ "type": "array",
423
+ "items": {
424
+ "type": "string"
425
+ }
426
+ }
427
+ },
428
+ "additionalProperties": false,
429
+ "description": "Code coverage configuration for `render --coverage`"
430
+ },
378
431
  "$schema": {
379
432
  "type": "string",
380
433
  "description": "URL of the JSON Schema for this config file"
@@ -1,10 +1,33 @@
1
- import type { BrowserPageFactory } from './browserPage.js';
1
+ import type { BrowserPage, BrowserPageFactory } from './browserPage.js';
2
2
  import type { ComponentExplorerHttpServer } from './server/types.js';
3
3
  import type { IObservable } from '@vscode/observables';
4
+ import type { IJsonSchema } from '@vscode/component-explorer-common';
4
5
  import { type ILogger } from './logger.js';
5
6
  import { SourceTreeId } from './sourceTreeId.js';
6
7
  export interface ScreenshotOptions {
8
+ /**
9
+ * If true, reload the browser page if the fixture had an error during rendering. This can help avoid contamination of subsequent renders when the page is in a bad state, at the cost of longer execution time.
10
+ */
7
11
  readonly reloadOnError?: boolean;
12
+ /**
13
+ * If true, reload the browser page before rendering this fixture.
14
+ * Useful for bulk rendering to ensure each fixture starts from a clean page state.
15
+ */
16
+ readonly reloadBeforeRender?: boolean;
17
+ /**
18
+ * Arbitrary JSON-serializable data passed to the fixture's `RenderContext.input`.
19
+ * The fixture decides how to interpret it (e.g. theme switch, scenario selection).
20
+ * Must be JSON-serializable since it crosses the CLI → browser boundary.
21
+ */
22
+ readonly input?: unknown;
23
+ /**
24
+ * If true, dispose the fixture after taking the screenshot and capture any
25
+ * errors / events that surface during dispose.
26
+ * Default: false — the fixture stays mounted until the next render, so
27
+ * `evaluate_js` can still operate on it. Use `disposeAfter` when you want to
28
+ * validate the teardown of a specific fixture.
29
+ */
30
+ readonly disposeAfter?: boolean;
8
31
  }
9
32
  export interface ComponentExplorer {
10
33
  readonly sourceTreeId: IObservable<SourceTreeId>;
@@ -14,6 +37,12 @@ export interface ComponentExplorer {
14
37
  evaluateJs(expression: string, fixtureId?: string): Promise<unknown>;
15
38
  codeCoverage(id: FixtureId | FixtureGroupId): Promise<CoverageData>;
16
39
  waitForUpdate(timeoutMs?: number): Promise<void>;
40
+ /**
41
+ * Open the underlying browser page (if not already open) and return it.
42
+ * Used by coverage tooling to call `startJSCoverage` / `stopJSCoverage` on the
43
+ * exact same page used for fixture rendering.
44
+ */
45
+ getOrOpenPage(): Promise<BrowserPage>;
17
46
  dispose(): Promise<void>;
18
47
  }
19
48
  export interface FixtureInfo {
@@ -23,6 +52,8 @@ export interface FixtureInfo {
23
52
  readonly background: 'light' | 'dark';
24
53
  readonly labels: readonly string[];
25
54
  readonly expectedVisualDescriptions: readonly string[];
55
+ /** JSON Schema describing the fixture's expected `input` object, if declared. */
56
+ readonly inputSchema?: IJsonSchema;
26
57
  }
27
58
  export interface ListFixturesResult {
28
59
  readonly fixtures: FixtureInfo[];
@@ -50,31 +81,90 @@ export type RenderEventType = 'console.error' | 'console.warn' | 'console.log' |
50
81
  export interface RenderEvent {
51
82
  readonly type: RenderEventType;
52
83
  readonly message: string;
84
+ readonly stack?: string;
85
+ }
86
+ /**
87
+ * Errors / events captured while disposing a fixture.
88
+ * `previousDispose` is populated when a screenshot's implicit dispose of the
89
+ * previous fixture surfaced something; `currentDispose` is populated when
90
+ * `disposeAfter: true` was requested.
91
+ *
92
+ * `hasError` is a derived getter: `true` when any exception was captured
93
+ * or a significant event (console.error / window.error / unhandledrejection) occurred.
94
+ */
95
+ export declare class DisposeReport {
96
+ readonly errors: readonly ExceptionError[];
97
+ readonly events: readonly RenderEvent[];
98
+ constructor(data: {
99
+ readonly errors: readonly ExceptionError[];
100
+ readonly events: readonly RenderEvent[];
101
+ });
102
+ get hasError(): boolean;
103
+ static from(raw: {
104
+ errors: readonly ExceptionError[];
105
+ events: readonly RenderEvent[];
106
+ }): DisposeReport;
107
+ static fromIfSignificant(raw: {
108
+ errors: readonly ExceptionError[];
109
+ events: readonly RenderEvent[];
110
+ }): DisposeReport | undefined;
53
111
  }
54
112
  /**
55
113
  * Result of taking a screenshot, including any errors captured during rendering.
114
+ *
115
+ * `hasError` is a derived getter that is `true` when any phase (render,
116
+ * previousDispose, or currentDispose) reported an error so that consumers
117
+ * never need to combine the flags manually.
56
118
  */
57
- export interface ScreenshotResult {
119
+ export declare class ScreenshotResult {
58
120
  readonly image: Uint8Array | undefined;
59
- readonly hasError: boolean;
121
+ readonly renderHasError: boolean;
60
122
  readonly error?: ExceptionError;
61
123
  readonly events: RenderEvent[];
62
- readonly resultData?: unknown;
124
+ readonly output?: unknown;
63
125
  readonly renderTimeMs: {
64
126
  readonly sync: number;
65
127
  readonly total: number;
66
128
  };
129
+ readonly previousDispose?: DisposeReport;
130
+ readonly currentDispose?: DisposeReport;
131
+ constructor(data: {
132
+ readonly image: Uint8Array | undefined;
133
+ readonly renderHasError: boolean;
134
+ readonly error?: ExceptionError;
135
+ readonly events: RenderEvent[];
136
+ readonly output?: unknown;
137
+ readonly renderTimeMs: {
138
+ readonly sync: number;
139
+ readonly total: number;
140
+ };
141
+ readonly previousDispose?: DisposeReport;
142
+ readonly currentDispose?: DisposeReport;
143
+ });
144
+ get hasError(): boolean;
67
145
  }
68
146
  export interface StabilityScreenshot {
69
147
  readonly image: Uint8Array;
70
148
  readonly delayMs: number;
71
149
  }
72
- export interface StabilityCheckResult {
150
+ export declare class StabilityCheckResult {
73
151
  readonly screenshots: readonly StabilityScreenshot[];
74
- readonly hasError: boolean;
152
+ readonly renderHasError: boolean;
75
153
  readonly error?: ExceptionError;
76
154
  readonly events: RenderEvent[];
77
- readonly resultData?: unknown;
155
+ readonly output?: unknown;
156
+ readonly previousDispose?: DisposeReport;
157
+ readonly currentDispose?: DisposeReport;
158
+ constructor(data: {
159
+ readonly screenshots: readonly StabilityScreenshot[];
160
+ readonly renderHasError: boolean;
161
+ readonly error?: ExceptionError;
162
+ readonly events: RenderEvent[];
163
+ readonly output?: unknown;
164
+ readonly previousDispose?: DisposeReport;
165
+ readonly currentDispose?: DisposeReport;
166
+ });
167
+ get hasError(): boolean;
78
168
  }
79
169
  export declare class BrowserComponentExplorer implements ComponentExplorer {
80
170
  private readonly _browserPageFactory;
@@ -87,6 +177,7 @@ export declare class BrowserComponentExplorer implements ComponentExplorer {
87
177
  readonly sourceTreeId: import("@vscode/observables").ISettableObservable<SourceTreeId, void>;
88
178
  constructor(_browserPageFactory: BrowserPageFactory, _server: ComponentExplorerHttpServer, _logger?: ILogger);
89
179
  private _bumpSourceTreeId;
180
+ getOrOpenPage(): Promise<BrowserPage>;
90
181
  private _ensureReady;
91
182
  private _reloadPage;
92
183
  private _startPolling;
@@ -1 +1 @@
1
- {"version":3,"file":"componentExplorer.d.ts","sourceRoot":"","sources":["../src/componentExplorer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"componentExplorer.d.ts","sourceRoot":"","sources":["../src/componentExplorer.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,89 @@ import { buildExplorerUrl } from './packages/common/dist/explorerUrl.js';
13
13
  import { EXPLORER_ROUTE } from './utils.js';
14
14
  import { parseVersion, isCompatibleVersion, runtimeVersionNeededByCliText } from './daemon/version.js';
15
15
 
16
+ /**
17
+ * Errors / events captured while disposing a fixture.
18
+ * `previousDispose` is populated when a screenshot's implicit dispose of the
19
+ * previous fixture surfaced something; `currentDispose` is populated when
20
+ * `disposeAfter: true` was requested.
21
+ *
22
+ * `hasError` is a derived getter: `true` when any exception was captured
23
+ * or a significant event (console.error / window.error / unhandledrejection) occurred.
24
+ */
25
+ class DisposeReport {
26
+ errors;
27
+ events;
28
+ constructor(data) {
29
+ this.errors = data.errors;
30
+ this.events = data.events;
31
+ }
32
+ get hasError() {
33
+ return this.errors.length > 0
34
+ || this.events.some(e => e.type === 'console.error' || e.type === 'window.error' || e.type === 'window.unhandledrejection');
35
+ }
36
+ static from(raw) {
37
+ return new DisposeReport({ errors: raw.errors, events: raw.events });
38
+ }
39
+ static fromIfSignificant(raw) {
40
+ const report = DisposeReport.from(raw);
41
+ return (report.hasError || report.events.length > 0) ? report : undefined;
42
+ }
43
+ }
44
+ /**
45
+ * Result of taking a screenshot, including any errors captured during rendering.
46
+ *
47
+ * `hasError` is a derived getter that is `true` when any phase (render,
48
+ * previousDispose, or currentDispose) reported an error so that consumers
49
+ * never need to combine the flags manually.
50
+ */
51
+ class ScreenshotResult {
52
+ image;
53
+ renderHasError;
54
+ error;
55
+ events;
56
+ output;
57
+ renderTimeMs;
58
+ previousDispose;
59
+ currentDispose;
60
+ constructor(data) {
61
+ this.image = data.image;
62
+ this.renderHasError = data.renderHasError;
63
+ this.error = data.error;
64
+ this.events = data.events;
65
+ this.output = data.output;
66
+ this.renderTimeMs = data.renderTimeMs;
67
+ this.previousDispose = data.previousDispose;
68
+ this.currentDispose = data.currentDispose;
69
+ }
70
+ get hasError() {
71
+ return this.renderHasError
72
+ || !!this.previousDispose?.hasError
73
+ || !!this.currentDispose?.hasError;
74
+ }
75
+ }
76
+ class StabilityCheckResult {
77
+ screenshots;
78
+ renderHasError;
79
+ error;
80
+ events;
81
+ output;
82
+ previousDispose;
83
+ currentDispose;
84
+ constructor(data) {
85
+ this.screenshots = data.screenshots;
86
+ this.renderHasError = data.renderHasError;
87
+ this.error = data.error;
88
+ this.events = data.events;
89
+ this.output = data.output;
90
+ this.previousDispose = data.previousDispose;
91
+ this.currentDispose = data.currentDispose;
92
+ }
93
+ get hasError() {
94
+ return this.renderHasError
95
+ || !!this.previousDispose?.hasError
96
+ || !!this.currentDispose?.hasError;
97
+ }
98
+ }
16
99
  class BrowserComponentExplorer {
17
100
  _browserPageFactory;
18
101
  _server;
@@ -36,6 +119,9 @@ class BrowserComponentExplorer {
36
119
  _bumpSourceTreeId() {
37
120
  this.sourceTreeId.set(new SourceTreeId(Date.now().toString()), undefined);
38
121
  }
122
+ getOrOpenPage() {
123
+ return this._ensureReady();
124
+ }
39
125
  async _ensureReady() {
40
126
  if (!this._page) {
41
127
  const cliUrl = buildExplorerUrl({ baseUrl: this._server.url, pathname: EXPLORER_ROUTE, mode: 'headless' });
@@ -151,15 +237,35 @@ class BrowserComponentExplorer {
151
237
  const page = await this._ensureReady();
152
238
  const debugUrl = buildExplorerUrl({ baseUrl: this._server.url, pathname: EXPLORER_ROUTE, mode: 'headless', fixtureId });
153
239
  this._logger.debug(`Rendering fixture: ${debugUrl}`);
154
- const renderResult = await evaluateFn(page, (api, id) => api.renderFixture(id), explorerApi, fixtureId);
240
+ if (options?.reloadBeforeRender) {
241
+ this._logger.debug(`Reloading page before render: ${fixtureId}`);
242
+ await this._reloadPage(page);
243
+ }
244
+ const input = options?.input;
245
+ const renderResult = await evaluateFn(page, (api, args) => api.renderFixture(args.id, args.input), explorerApi, { id: fixtureId, input });
155
246
  this._logger.debug(`Render completed: ${fixtureId} (hasError=${renderResult.hasError}, ${Date.now() - startTime}ms)`);
156
247
  const image = await page.screenshot(`document.getElementById('root').lastElementChild`);
157
248
  this._logger.debug(`Screenshot done: ${fixtureId} (ok=${image.ok}, ${Date.now() - startTime}ms)`);
249
+ let currentDispose;
250
+ if (options?.disposeAfter) {
251
+ this._logger.debug(`Disposing fixture after screenshot: ${fixtureId}`);
252
+ const rawDispose = await evaluateFn(page, (api) => api.disposeCurrentFixture(), explorerApi);
253
+ currentDispose = DisposeReport.fromIfSignificant(rawDispose);
254
+ }
158
255
  if (renderResult.hasError && options?.reloadOnError) {
159
256
  this._logger.debug(`Fixture had error, reloading page to avoid contamination: ${fixtureId}`);
160
257
  await this._reloadPage(page);
161
258
  }
162
- return { image: image.ok ? image.screenshot : undefined, ...renderResult };
259
+ return new ScreenshotResult({
260
+ image: image.ok ? image.screenshot : undefined,
261
+ renderHasError: renderResult.hasError,
262
+ error: renderResult.error,
263
+ events: renderResult.events,
264
+ output: renderResult.output,
265
+ renderTimeMs: renderResult.renderTimeMs,
266
+ previousDispose: renderResult.previousDispose ? DisposeReport.from(renderResult.previousDispose) : undefined,
267
+ currentDispose,
268
+ });
163
269
  }
164
270
  finally {
165
271
  this._logger.trace(`Screenshot mutex: released for ${fixtureId}`);
@@ -177,9 +283,14 @@ class BrowserComponentExplorer {
177
283
  const page = await this._ensureReady();
178
284
  const debugUrl = buildExplorerUrl({ baseUrl: this._server.url, pathname: EXPLORER_ROUTE, mode: 'headless', fixtureId });
179
285
  this._logger.debug(`Stability check: ${debugUrl}`);
180
- await evaluateFn(page, (api) => api.disposeCurrentFixture(), explorerApi);
286
+ if (options?.reloadBeforeRender) {
287
+ this._logger.debug(`Reloading page before stability check: ${fixtureId}`);
288
+ await this._reloadPage(page);
289
+ }
290
+ const priorDispose = DisposeReport.fromIfSignificant(await evaluateFn(page, (api) => api.disposeCurrentFixture(), explorerApi));
181
291
  const startTime = Date.now();
182
- const renderResult = await evaluateFn(page, (api, id) => api.renderFixture(id), explorerApi, fixtureId);
292
+ const input = options?.input;
293
+ const renderResult = await evaluateFn(page, (api, args) => api.renderFixture(args.id, args.input), explorerApi, { id: fixtureId, input });
183
294
  const domExpr = `document.getElementById('root').lastElementChild`;
184
295
  const image0 = await unwrapScreenshot(page, domExpr);
185
296
  const delay0 = Date.now() - startTime;
@@ -198,14 +309,28 @@ class BrowserComponentExplorer {
198
309
  const image2 = await unwrapScreenshot(page, domExpr);
199
310
  const delay2 = Date.now() - startTime;
200
311
  this._logger.debug(`Stability check done: ${fixtureId} (${delay2}ms total)`);
201
- const result = {
312
+ let currentDispose;
313
+ if (options?.disposeAfter) {
314
+ this._logger.debug(`Disposing fixture after stability check: ${fixtureId}`);
315
+ const rawDispose = await evaluateFn(page, (api) => api.disposeCurrentFixture(), explorerApi);
316
+ currentDispose = DisposeReport.fromIfSignificant(rawDispose);
317
+ }
318
+ const previousDispose = renderResult.previousDispose
319
+ ? DisposeReport.from(renderResult.previousDispose)
320
+ : priorDispose;
321
+ const result = new StabilityCheckResult({
202
322
  screenshots: [
203
323
  { image: image0, delayMs: delay0 },
204
324
  { image: image1, delayMs: delay1 },
205
325
  { image: image2, delayMs: delay2 },
206
326
  ],
207
- ...renderResult,
208
- };
327
+ renderHasError: renderResult.hasError,
328
+ error: renderResult.error,
329
+ events: renderResult.events,
330
+ output: renderResult.output,
331
+ previousDispose,
332
+ currentDispose,
333
+ });
209
334
  if (renderResult.hasError && options?.reloadOnError) {
210
335
  this._logger.debug(`Stability check fixture had error, reloading page to avoid contamination: ${fixtureId}`);
211
336
  await this._reloadPage(page);
@@ -275,5 +400,5 @@ async function unwrapScreenshot(page, domExpr) {
275
400
  return result.screenshot;
276
401
  }
277
402
 
278
- export { BrowserComponentExplorer };
403
+ export { BrowserComponentExplorer, DisposeReport, ScreenshotResult, StabilityCheckResult };
279
404
  //# sourceMappingURL=componentExplorer.js.map