@vscode/component-explorer-cli 0.2.1-4 → 0.2.1-40

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 (198) hide show
  1. package/README.md +14 -6
  2. package/dist/WorktreePool.d.ts +5 -4
  3. package/dist/WorktreePool.d.ts.map +1 -1
  4. package/dist/WorktreePool.js +3 -3
  5. package/dist/WorktreePool.js.map +1 -1
  6. package/dist/_virtual/_build-info.js +1 -1
  7. package/dist/browserPage.d.ts +51 -1
  8. package/dist/browserPage.d.ts.map +1 -1
  9. package/dist/browserPage.js +107 -1
  10. package/dist/browserPage.js.map +1 -1
  11. package/dist/commands/acceptCommand.d.ts +2 -1
  12. package/dist/commands/acceptCommand.d.ts.map +1 -1
  13. package/dist/commands/acceptCommand.js +18 -10
  14. package/dist/commands/acceptCommand.js.map +1 -1
  15. package/dist/commands/checkStabilityCommand.d.ts +3 -0
  16. package/dist/commands/checkStabilityCommand.d.ts.map +1 -1
  17. package/dist/commands/checkStabilityCommand.js +22 -4
  18. package/dist/commands/checkStabilityCommand.js.map +1 -1
  19. package/dist/commands/compareCommand.d.ts +2 -1
  20. package/dist/commands/compareCommand.d.ts.map +1 -1
  21. package/dist/commands/compareCommand.js +27 -17
  22. package/dist/commands/compareCommand.js.map +1 -1
  23. package/dist/commands/inputArg.d.ts +33 -0
  24. package/dist/commands/inputArg.d.ts.map +1 -0
  25. package/dist/commands/inputArg.js +103 -0
  26. package/dist/commands/inputArg.js.map +1 -0
  27. package/dist/commands/mcpCommand.d.ts +3 -0
  28. package/dist/commands/mcpCommand.d.ts.map +1 -1
  29. package/dist/commands/mcpCommand.js +178 -45
  30. package/dist/commands/mcpCommand.js.map +1 -1
  31. package/dist/commands/renderCommand.d.ts +10 -1
  32. package/dist/commands/renderCommand.d.ts.map +1 -1
  33. package/dist/commands/renderCommand.js +311 -23
  34. package/dist/commands/renderCommand.js.map +1 -1
  35. package/dist/commands/serveCommand.d.ts +2 -0
  36. package/dist/commands/serveCommand.d.ts.map +1 -1
  37. package/dist/commands/serveCommand.js +73 -41
  38. package/dist/commands/serveCommand.js.map +1 -1
  39. package/dist/commands/serviceDiffCommitsCommand.d.ts +16 -0
  40. package/dist/commands/serviceDiffCommitsCommand.d.ts.map +1 -0
  41. package/dist/commands/serviceDiffCommitsCommand.js +230 -0
  42. package/dist/commands/serviceDiffCommitsCommand.js.map +1 -0
  43. package/dist/commands/watchCommand.d.ts +2 -0
  44. package/dist/commands/watchCommand.d.ts.map +1 -1
  45. package/dist/commands/watchCommand.js +28 -16
  46. package/dist/commands/watchCommand.js.map +1 -1
  47. package/dist/comparison.d.ts +4 -3
  48. package/dist/comparison.d.ts.map +1 -1
  49. package/dist/comparison.js +10 -10
  50. package/dist/comparison.js.map +1 -1
  51. package/dist/component-explorer-config.schema.json +55 -2
  52. package/dist/componentExplorer.d.ts +109 -11
  53. package/dist/componentExplorer.d.ts.map +1 -1
  54. package/dist/componentExplorer.js +235 -58
  55. package/dist/componentExplorer.js.map +1 -1
  56. package/dist/config.d.ts +33 -4
  57. package/dist/config.d.ts.map +1 -1
  58. package/dist/config.js +64 -27
  59. package/dist/config.js.map +1 -1
  60. package/dist/coverage.d.ts +64 -0
  61. package/dist/coverage.d.ts.map +1 -0
  62. package/dist/coverage.js +212 -0
  63. package/dist/coverage.js.map +1 -0
  64. package/dist/daemon/DaemonService.d.ts +14 -5
  65. package/dist/daemon/DaemonService.d.ts.map +1 -1
  66. package/dist/daemon/DaemonService.js +42 -18
  67. package/dist/daemon/DaemonService.js.map +1 -1
  68. package/dist/daemon/approvalStore.d.ts +2 -1
  69. package/dist/daemon/approvalStore.d.ts.map +1 -1
  70. package/dist/daemon/approvalStore.js +4 -3
  71. package/dist/daemon/approvalStore.js.map +1 -1
  72. package/dist/daemon/client.d.ts +5 -0
  73. package/dist/daemon/client.d.ts.map +1 -0
  74. package/dist/daemon/client.js +7 -0
  75. package/dist/daemon/client.js.map +1 -0
  76. package/dist/daemon/inProcessClient.d.ts +11 -0
  77. package/dist/daemon/inProcessClient.d.ts.map +1 -0
  78. package/dist/daemon/inProcessClient.js +35 -0
  79. package/dist/daemon/inProcessClient.js.map +1 -0
  80. package/dist/daemon/lifecycle.d.ts +8 -1
  81. package/dist/daemon/lifecycle.d.ts.map +1 -1
  82. package/dist/daemon/lifecycle.js +13 -3
  83. package/dist/daemon/lifecycle.js.map +1 -1
  84. package/dist/daemon/pipeClient.d.ts +2 -0
  85. package/dist/daemon/pipeClient.d.ts.map +1 -1
  86. package/dist/daemon/pipeClient.js +22 -3
  87. package/dist/daemon/pipeClient.js.map +1 -1
  88. package/dist/daemon/pipeName.d.ts +7 -1
  89. package/dist/daemon/pipeName.d.ts.map +1 -1
  90. package/dist/daemon/pipeName.js +8 -4
  91. package/dist/daemon/pipeName.js.map +1 -1
  92. package/dist/daemon/pipeServer.d.ts.map +1 -1
  93. package/dist/daemon/pipeServer.js +9 -3
  94. package/dist/daemon/pipeServer.js.map +1 -1
  95. package/dist/daemon/version.d.ts +1 -1
  96. package/dist/daemon/version.js +1 -1
  97. package/dist/dependencyInstaller.d.ts +2 -1
  98. package/dist/dependencyInstaller.d.ts.map +1 -1
  99. package/dist/dependencyInstaller.js +4 -4
  100. package/dist/dependencyInstaller.js.map +1 -1
  101. package/dist/evaluateFn.d.ts +21 -0
  102. package/dist/evaluateFn.d.ts.map +1 -0
  103. package/dist/evaluateFn.js +17 -0
  104. package/dist/evaluateFn.js.map +1 -0
  105. package/dist/git/gitCommitResolver.d.ts +2 -1
  106. package/dist/git/gitCommitResolver.d.ts.map +1 -1
  107. package/dist/git/gitCommitResolver.js +2 -2
  108. package/dist/git/gitCommitResolver.js.map +1 -1
  109. package/dist/git/gitIndexResolver.d.ts +2 -1
  110. package/dist/git/gitIndexResolver.d.ts.map +1 -1
  111. package/dist/git/gitIndexResolver.js +1 -1
  112. package/dist/git/gitIndexResolver.js.map +1 -1
  113. package/dist/git/gitService.d.ts +5 -4
  114. package/dist/git/gitService.d.ts.map +1 -1
  115. package/dist/git/gitService.js.map +1 -1
  116. package/dist/git/gitUtils.d.ts +6 -4
  117. package/dist/git/gitUtils.d.ts.map +1 -1
  118. package/dist/git/gitUtils.js +10 -5
  119. package/dist/git/gitUtils.js.map +1 -1
  120. package/dist/git/gitWorktreeManager.d.ts +15 -14
  121. package/dist/git/gitWorktreeManager.d.ts.map +1 -1
  122. package/dist/git/gitWorktreeManager.js +10 -11
  123. package/dist/git/gitWorktreeManager.js.map +1 -1
  124. package/dist/git/testUtils.d.ts +2 -1
  125. package/dist/git/testUtils.d.ts.map +1 -1
  126. package/dist/index.js +19 -1
  127. package/dist/index.js.map +1 -1
  128. package/dist/logger.d.ts +12 -1
  129. package/dist/logger.d.ts.map +1 -1
  130. package/dist/logger.js +35 -2
  131. package/dist/logger.js.map +1 -1
  132. package/dist/manifest.schema.json +38 -16
  133. package/dist/mcp/DaemonAccessor.d.ts +22 -0
  134. package/dist/mcp/DaemonAccessor.d.ts.map +1 -0
  135. package/dist/mcp/McpServer.d.ts +5 -19
  136. package/dist/mcp/McpServer.d.ts.map +1 -1
  137. package/dist/mcp/McpServer.js +384 -297
  138. package/dist/mcp/McpServer.js.map +1 -1
  139. package/dist/packages/common/dist/explorerUrl.js +21 -0
  140. package/dist/packages/common/dist/explorerUrl.js.map +1 -0
  141. package/dist/packages/common/dist/renderManifest.js +26 -5
  142. package/dist/packages/common/dist/renderManifest.js.map +1 -1
  143. package/dist/packages/simple-api/dist/{chunk-3R7GHWBM.js → chunk-FJ7AVNQE.js} +2 -1
  144. package/dist/packages/simple-api/dist/chunk-FJ7AVNQE.js.map +1 -0
  145. package/dist/packages/simple-api/dist/{chunk-SGBCNXYH.js → chunk-TTRCY65Z.js} +4 -1
  146. package/dist/packages/simple-api/dist/chunk-TTRCY65Z.js.map +1 -0
  147. package/dist/packages/simple-api/dist/{chunk-TAEFVNPN.js → chunk-WNXMRXWV.js} +2 -1
  148. package/dist/packages/simple-api/dist/chunk-WNXMRXWV.js.map +1 -0
  149. package/dist/packages/simple-api/dist/express.js +1 -1
  150. package/dist/packages/simple-api/dist/express.js.map +1 -1
  151. package/dist/path.d.ts +30 -0
  152. package/dist/path.d.ts.map +1 -0
  153. package/dist/path.js +78 -0
  154. package/dist/path.js.map +1 -0
  155. package/dist/processTree.d.ts +9 -0
  156. package/dist/processTree.d.ts.map +1 -0
  157. package/dist/processTree.js +41 -0
  158. package/dist/processTree.js.map +1 -0
  159. package/dist/screenshotServiceClient.d.ts +31 -0
  160. package/dist/screenshotServiceClient.d.ts.map +1 -0
  161. package/dist/screenshotServiceClient.js +38 -0
  162. package/dist/screenshotServiceClient.js.map +1 -0
  163. package/dist/server/httpServer.d.ts +1 -1
  164. package/dist/server/httpServer.d.ts.map +1 -1
  165. package/dist/server/httpServer.js +22 -20
  166. package/dist/server/httpServer.js.map +1 -1
  167. package/dist/server/serverConfig.d.ts +23 -6
  168. package/dist/server/serverConfig.d.ts.map +1 -1
  169. package/dist/server/serverConfig.js +11 -18
  170. package/dist/server/serverConfig.js.map +1 -1
  171. package/dist/server/viteServer.d.ts +16 -1
  172. package/dist/server/viteServer.d.ts.map +1 -1
  173. package/dist/server/viteServer.js +91 -10
  174. package/dist/server/viteServer.js.map +1 -1
  175. package/dist/storage.d.ts +2 -1
  176. package/dist/storage.d.ts.map +1 -1
  177. package/dist/storage.js +1 -1
  178. package/dist/storage.js.map +1 -1
  179. package/dist/utils.d.ts +3 -25
  180. package/dist/utils.d.ts.map +1 -1
  181. package/dist/utils.js +4 -23
  182. package/dist/utils.js.map +1 -1
  183. package/dist/visualCache.d.ts +2 -1
  184. package/dist/visualCache.d.ts.map +1 -1
  185. package/dist/visualCache.js +4 -3
  186. package/dist/visualCache.js.map +1 -1
  187. package/dist/viteProjectRef.d.ts +4 -12
  188. package/dist/viteProjectRef.d.ts.map +1 -1
  189. package/dist/viteProjectRef.js +9 -17
  190. package/dist/viteProjectRef.js.map +1 -1
  191. package/package.json +23 -19
  192. package/dist/commands/artifactCommand.d.ts +0 -13
  193. package/dist/commands/artifactCommand.d.ts.map +0 -1
  194. package/dist/commands/screenshotCommand.d.ts +0 -18
  195. package/dist/commands/screenshotCommand.d.ts.map +0 -1
  196. package/dist/packages/simple-api/dist/chunk-3R7GHWBM.js.map +0 -1
  197. package/dist/packages/simple-api/dist/chunk-SGBCNXYH.js.map +0 -1
  198. package/dist/packages/simple-api/dist/chunk-TAEFVNPN.js.map +0 -1
@@ -1,14 +1,101 @@
1
+ import { evaluateFn, explorerApiGetter, explorerApi, explorerApiOrUndefined } from './evaluateFn.js';
1
2
  import './external/vscode-observables/observables/dist/observableInternal/index.js';
2
3
  import { observableValue } from './external/vscode-observables/observables/dist/observableInternal/observables/observableValue.js';
3
4
  import './external/vscode-observables/observables/dist/observableInternal/debugLocation.js';
4
5
  import './external/vscode-observables/observables/dist/observableInternal/observables/derived.js';
6
+ import { waitForState } from './external/vscode-observables/observables/dist/observableInternal/utils/utilsCancellation.js';
5
7
  import './external/vscode-observables/observables/dist/observableInternal/utils/utils.js';
6
8
  import './external/vscode-observables/observables/dist/observableInternal/observables/observableFromEvent.js';
7
9
  import { nullLogger } from './logger.js';
8
10
  import { SourceTreeId } from './sourceTreeId.js';
9
- import { buildExplorerUrl } from './utils.js';
11
+ import './packages/common/dist/renderManifest.js';
12
+ import { buildExplorerUrl } from './packages/common/dist/explorerUrl.js';
13
+ import { EXPLORER_ROUTE } from './utils.js';
10
14
  import { parseVersion, isCompatibleVersion, runtimeVersionNeededByCliText } from './daemon/version.js';
11
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
+ }
12
99
  class BrowserComponentExplorer {
13
100
  _browserPageFactory;
14
101
  _server;
@@ -16,6 +103,7 @@ class BrowserComponentExplorer {
16
103
  _page;
17
104
  _lastState;
18
105
  _screenshotMutex = Promise.resolve();
106
+ _pollingActive = false;
19
107
  sourceTreeId;
20
108
  constructor(_browserPageFactory, _server, _logger = nullLogger) {
21
109
  this._browserPageFactory = _browserPageFactory;
@@ -31,24 +119,85 @@ class BrowserComponentExplorer {
31
119
  _bumpSourceTreeId() {
32
120
  this.sourceTreeId.set(new SourceTreeId(Date.now().toString()), undefined);
33
121
  }
122
+ getOrOpenPage() {
123
+ return this._ensureReady();
124
+ }
34
125
  async _ensureReady() {
35
126
  if (!this._page) {
36
- const cliUrl = buildExplorerUrl({ baseUrl: this._server.url, rawRender: true });
127
+ const cliUrl = buildExplorerUrl({ baseUrl: this._server.url, pathname: EXPLORER_ROUTE, mode: 'headless' });
37
128
  this._logger.debug(`Opening browser page: ${cliUrl}`);
38
129
  this._page = await this._browserPageFactory.openPage(cliUrl);
39
130
  await this._waitForCliApi(this._page);
131
+ this._startPolling();
40
132
  }
41
133
  return this._page;
42
134
  }
135
+ async _reloadPage(page) {
136
+ await page.reload();
137
+ await this._waitForCliApi(page);
138
+ }
139
+ _startPolling() {
140
+ if (this._pollingActive) {
141
+ return;
142
+ }
143
+ this._pollingActive = true;
144
+ this._pollLoop();
145
+ }
146
+ async _pollLoop() {
147
+ while (this._pollingActive && this._page) {
148
+ try {
149
+ const page = this._page;
150
+ const prev = this._lastState;
151
+ const newState = await evaluateFn(page, (getApi, prev) => new Promise((resolve) => {
152
+ function check() {
153
+ const api = getApi();
154
+ // This allows faked time
155
+ const setTimeoutFn = typeof globalThis.setTimeout.originalFn === 'function' ?
156
+ globalThis.setTimeout.originalFn : globalThis.setTimeout;
157
+ if (!api) {
158
+ setTimeoutFn(check, 50);
159
+ return;
160
+ }
161
+ if (api.pageInstanceId !== prev.pageInstanceId || api.updateVersion > prev.updateVersion) {
162
+ resolve({ pageInstanceId: api.pageInstanceId, updateVersion: api.updateVersion, runtimeVersion: api.runtimeVersion });
163
+ }
164
+ else {
165
+ setTimeoutFn(check, 50);
166
+ }
167
+ }
168
+ check();
169
+ }), explorerApiGetter, prev);
170
+ if (!this._pollingActive) {
171
+ break;
172
+ }
173
+ const reloaded = newState.pageInstanceId !== prev.pageInstanceId;
174
+ if (reloaded) {
175
+ this._logger.debug(`Page reloaded: pageInstanceId ${prev.pageInstanceId} → ${newState.pageInstanceId}`);
176
+ }
177
+ else {
178
+ this._logger.debug(`HMR update: version ${prev.updateVersion} → ${newState.updateVersion}`);
179
+ }
180
+ this._lastState = newState;
181
+ this._bumpSourceTreeId();
182
+ }
183
+ catch (err) {
184
+ if (!this._pollingActive) {
185
+ break;
186
+ }
187
+ this._logger.debug(`Polling error: ${err}`);
188
+ await new Promise(r => setTimeout(r, 500));
189
+ }
190
+ }
191
+ }
43
192
  async _waitForCliApi(page) {
44
193
  this._logger.trace('Checking for __componentExplorer__ global...');
45
- const hasGlobal = await page.evaluateJs(`!!window.__componentExplorer__`);
194
+ const hasGlobal = await evaluateFn(page, (api) => !!api, explorerApiOrUndefined);
46
195
  if (!hasGlobal) {
47
196
  throw new Error('Component Explorer runtime not found. Ensure the explorer is properly configured and the page serves the explorer bundle.');
48
197
  }
49
198
  this._lastState = await this._getState(page);
50
199
  this._assertRuntimeVersionCompatibility(this._lastState.runtimeVersion);
51
- this._logger.debug(`CLI API ready, sessionId=${this._lastState.sessionId}, version=${this._lastState.updateVersion}`);
200
+ this._logger.debug(`CLI API ready, pageInstanceId=${this._lastState.pageInstanceId}, version=${this._lastState.updateVersion}`);
52
201
  }
53
202
  _assertRuntimeVersionCompatibility(runtimeVersion) {
54
203
  const expected = parseVersion(runtimeVersionNeededByCliText);
@@ -58,16 +207,16 @@ class BrowserComponentExplorer {
58
207
  }
59
208
  }
60
209
  async _getState(page) {
61
- return page.evaluateJs(`({
62
- sessionId: window.__componentExplorer__.sessionId,
63
- updateVersion: window.__componentExplorer__.updateVersion,
64
- runtimeVersion: window.__componentExplorer__.runtimeVersion,
65
- })`);
210
+ return evaluateFn(page, (api) => ({
211
+ pageInstanceId: api.pageInstanceId,
212
+ updateVersion: api.updateVersion,
213
+ runtimeVersion: api.runtimeVersion,
214
+ }), explorerApi);
66
215
  }
67
216
  async listFixtures() {
68
217
  const page = await this._ensureReady();
69
218
  try {
70
- const fixtures = await page.evaluateJs('window.__componentExplorer__.listFixtures()');
219
+ const fixtures = await evaluateFn(page, (api) => api.listFixtures(), explorerApi);
71
220
  return { fixtures };
72
221
  }
73
222
  catch (e) {
@@ -75,7 +224,7 @@ class BrowserComponentExplorer {
75
224
  return { fixtures: [], loadError };
76
225
  }
77
226
  }
78
- async screenshotFixture(fixtureId) {
227
+ async screenshotFixture(fixtureId, options) {
79
228
  // Serialize screenshot calls — the single browser page can only render one fixture at a time
80
229
  const prev = this._screenshotMutex;
81
230
  let resolve;
@@ -86,21 +235,44 @@ class BrowserComponentExplorer {
86
235
  const startTime = Date.now();
87
236
  try {
88
237
  const page = await this._ensureReady();
89
- const escapedId = JSON.stringify(fixtureId);
90
- const debugUrl = buildExplorerUrl({ baseUrl: this._server.url, rawRender: true, fixtureId });
238
+ const debugUrl = buildExplorerUrl({ baseUrl: this._server.url, pathname: EXPLORER_ROUTE, mode: 'headless', fixtureId });
91
239
  this._logger.debug(`Rendering fixture: ${debugUrl}`);
92
- const renderResult = await page.evaluateJs(`window.__componentExplorer__.renderFixture(${escapedId})`);
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 });
93
246
  this._logger.debug(`Render completed: ${fixtureId} (hasError=${renderResult.hasError}, ${Date.now() - startTime}ms)`);
94
247
  const image = await page.screenshot(`document.getElementById('root').lastElementChild`);
95
248
  this._logger.debug(`Screenshot done: ${fixtureId} (ok=${image.ok}, ${Date.now() - startTime}ms)`);
96
- return { image: image.ok ? image.screenshot : undefined, ...renderResult };
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
+ }
255
+ if (renderResult.hasError && options?.reloadOnError) {
256
+ this._logger.debug(`Fixture had error, reloading page to avoid contamination: ${fixtureId}`);
257
+ await this._reloadPage(page);
258
+ }
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
+ });
97
269
  }
98
270
  finally {
99
271
  this._logger.trace(`Screenshot mutex: released for ${fixtureId}`);
100
272
  resolve();
101
273
  }
102
274
  }
103
- async screenshotFixtureStabilityCheck(fixtureId) {
275
+ async screenshotFixtureStabilityCheck(fixtureId, options) {
104
276
  const prev = this._screenshotMutex;
105
277
  let resolve;
106
278
  this._screenshotMutex = new Promise(r => { resolve = r; });
@@ -109,12 +281,16 @@ class BrowserComponentExplorer {
109
281
  this._logger.trace(`Screenshot mutex: acquired for stability check ${fixtureId}`);
110
282
  try {
111
283
  const page = await this._ensureReady();
112
- const escapedId = JSON.stringify(fixtureId);
113
- const debugUrl = buildExplorerUrl({ baseUrl: this._server.url, rawRender: true, fixtureId });
284
+ const debugUrl = buildExplorerUrl({ baseUrl: this._server.url, pathname: EXPLORER_ROUTE, mode: 'headless', fixtureId });
114
285
  this._logger.debug(`Stability check: ${debugUrl}`);
115
- await page.evaluateJs(`window.__componentExplorer__.disposeCurrentFixture?.()`);
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));
116
291
  const startTime = Date.now();
117
- const renderResult = await page.evaluateJs(`window.__componentExplorer__.renderFixture(${escapedId})`);
292
+ const input = options?.input;
293
+ const renderResult = await evaluateFn(page, (api, args) => api.renderFixture(args.id, args.input), explorerApi, { id: fixtureId, input });
118
294
  const domExpr = `document.getElementById('root').lastElementChild`;
119
295
  const image0 = await unwrapScreenshot(page, domExpr);
120
296
  const delay0 = Date.now() - startTime;
@@ -133,14 +309,33 @@ class BrowserComponentExplorer {
133
309
  const image2 = await unwrapScreenshot(page, domExpr);
134
310
  const delay2 = Date.now() - startTime;
135
311
  this._logger.debug(`Stability check done: ${fixtureId} (${delay2}ms total)`);
136
- return {
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({
137
322
  screenshots: [
138
323
  { image: image0, delayMs: delay0 },
139
324
  { image: image1, delayMs: delay1 },
140
325
  { image: image2, delayMs: delay2 },
141
326
  ],
142
- ...renderResult,
143
- };
327
+ renderHasError: renderResult.hasError,
328
+ error: renderResult.error,
329
+ events: renderResult.events,
330
+ output: renderResult.output,
331
+ previousDispose,
332
+ currentDispose,
333
+ });
334
+ if (renderResult.hasError && options?.reloadOnError) {
335
+ this._logger.debug(`Stability check fixture had error, reloading page to avoid contamination: ${fixtureId}`);
336
+ await this._reloadPage(page);
337
+ }
338
+ return result;
144
339
  }
145
340
  finally {
146
341
  this._logger.trace(`Screenshot mutex: released for stability check ${fixtureId}`);
@@ -156,8 +351,7 @@ class BrowserComponentExplorer {
156
351
  this._logger.trace(`evaluateJs: expression length=${expression.length}${fixtureId ? `, fixtureId=${fixtureId}` : ''}`);
157
352
  const page = await this._ensureReady();
158
353
  if (fixtureId !== undefined) {
159
- const escapedId = JSON.stringify(fixtureId);
160
- await page.evaluateJs(`window.__componentExplorer__.renderFixture(${escapedId})`);
354
+ await evaluateFn(page, (api, id) => api.renderFixture(id), explorerApi, fixtureId);
161
355
  }
162
356
  const result = await page.evaluateJs(expression);
163
357
  this._logger.trace(`evaluateJs: result length=${JSON.stringify(result)?.length ?? 0}`);
@@ -171,46 +365,29 @@ class BrowserComponentExplorer {
171
365
  throw new Error('Code coverage not yet implemented');
172
366
  }
173
367
  async waitForUpdate(timeoutMs = 0) {
174
- const page = await this._ensureReady();
175
- const prev = await this._getState(page);
176
- this._logger.debug(`Waiting for update (sessionId=${prev.sessionId}, version=${prev.updateVersion})...`);
177
- const newState = await page.evaluateJs(`
178
- new Promise((resolve, reject) => {
179
- ${timeoutMs > 0 ? `const timeout = setTimeout(() => reject(new Error('Timeout waiting for HMR update')), ${timeoutMs});` : ''}
180
- function check() {
181
- if (!window.__componentExplorer__) {
182
- // Page reloaded CLI not yet re-initialized, keep waiting
183
- setTimeout(check, 50);
184
- return;
185
- }
186
- const s = window.__componentExplorer__.sessionId;
187
- const v = window.__componentExplorer__.updateVersion;
188
- const r = window.__componentExplorer__.runtimeVersion;
189
- if (s !== '${prev.sessionId}' || v > ${prev.updateVersion}) {
190
- ${timeoutMs > 0 ? 'clearTimeout(timeout);' : ''}
191
- resolve({ sessionId: s, updateVersion: v, runtimeVersion: r });
192
- } else {
193
- setTimeout(check, 50);
194
- }
195
- }
196
- check();
197
- })
198
- `);
199
- this._assertRuntimeVersionCompatibility(newState.runtimeVersion);
200
- const reloaded = newState.sessionId !== prev.sessionId;
201
- if (reloaded) {
202
- this._logger.debug(`Page reloaded: sessionId ${prev.sessionId} → ${newState.sessionId}`);
368
+ await this._ensureReady();
369
+ const currentId = this.sourceTreeId.get();
370
+ this._logger.debug(`Waiting for sourceTreeId to change from ${currentId.value}...`);
371
+ if (timeoutMs > 0) {
372
+ const result = await Promise.race([
373
+ waitForState(this.sourceTreeId, id => id !== currentId),
374
+ new Promise(r => setTimeout(() => r('timeout'), timeoutMs)),
375
+ ]);
376
+ if (result === 'timeout') {
377
+ throw new Error('Timeout waiting for HMR update');
378
+ }
203
379
  }
204
380
  else {
205
- this._logger.debug(`HMR update: version ${prev.updateVersion} ${newState.updateVersion}`);
381
+ await waitForState(this.sourceTreeId, id => id !== currentId);
206
382
  }
207
- this._lastState = newState;
208
- this._bumpSourceTreeId();
383
+ this._logger.debug(`sourceTreeId changed to ${this.sourceTreeId.get().value}`);
209
384
  }
210
385
  closePage() {
386
+ this._pollingActive = false;
211
387
  this._page = undefined;
212
388
  }
213
389
  async dispose() {
390
+ this._pollingActive = false;
214
391
  await this._page?.dispose();
215
392
  this._page = undefined;
216
393
  }
@@ -223,5 +400,5 @@ async function unwrapScreenshot(page, domExpr) {
223
400
  return result.screenshot;
224
401
  }
225
402
 
226
- export { BrowserComponentExplorer };
403
+ export { BrowserComponentExplorer, DisposeReport, ScreenshotResult, StabilityCheckResult };
227
404
  //# sourceMappingURL=componentExplorer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"componentExplorer.js","sources":["../src/componentExplorer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"componentExplorer.js","sources":["../src/componentExplorer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import { z } from 'zod';
2
2
  import type { DisposableStore } from '@vscode/observables';
3
3
  import type { IGitRepo } from './git/gitService.js';
4
+ import { AbsolutePath } from './path.js';
4
5
  import { type ResolvedServerConfig } from './server/serverConfig.js';
5
6
  export { type ResolvedServerConfig, type ResolvedViteHmrConfig, type ResolvedHttpWaitConfig, ViteServerConfig, HttpServerConfig } from './server/serverConfig.js';
6
7
  export type { ServerContext } from './server/serverConfig.js';
8
+ export { AbsolutePath, RelativePath, PathOrigin } from './path.js';
7
9
  export declare const serverConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8
10
  type: z.ZodLiteral<"vite">;
9
11
  viteConfig: z.ZodOptional<z.ZodString>;
@@ -86,6 +88,20 @@ export declare const configSchema: z.ZodObject<{
86
88
  port: z.ZodNumber;
87
89
  host: z.ZodOptional<z.ZodString>;
88
90
  }, z.core.$strip>>;
91
+ coverage: z.ZodOptional<z.ZodObject<{
92
+ mode: z.ZodOptional<z.ZodEnum<{
93
+ total: "total";
94
+ "per-fixture": "per-fixture";
95
+ }>>;
96
+ js: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
97
+ istanbul: "istanbul";
98
+ v8: "v8";
99
+ }>, z.ZodLiteral<false>]>>;
100
+ css: z.ZodOptional<z.ZodBoolean>;
101
+ outputDir: z.ZodOptional<z.ZodString>;
102
+ include: z.ZodOptional<z.ZodArray<z.ZodString>>;
103
+ exclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
104
+ }, z.core.$strip>>;
89
105
  }, z.core.$strip>;
90
106
  export type WorktreeSetupConfig = {
91
107
  readonly kind: 'auto';
@@ -128,20 +144,33 @@ export interface ResolvedRedirectionConfig {
128
144
  readonly port: number;
129
145
  readonly host: string;
130
146
  }
147
+ export type CoverageMode = 'total' | 'per-fixture';
148
+ export type CoverageJsStrategy = 'istanbul' | 'v8';
149
+ export declare class ResolvedCoverageConfig {
150
+ readonly mode: CoverageMode;
151
+ readonly js: CoverageJsStrategy | false;
152
+ readonly css: boolean;
153
+ readonly outputDir: string;
154
+ readonly include: readonly string[];
155
+ readonly exclude: readonly string[];
156
+ constructor(mode: CoverageMode, js: CoverageJsStrategy | false, css: boolean, outputDir: string, include: readonly string[], exclude: readonly string[]);
157
+ get enabled(): boolean;
158
+ }
131
159
  export declare class ResolvedConfig {
132
- readonly screenshotDir: string;
160
+ readonly screenshotDir: AbsolutePath;
133
161
  readonly sessions: readonly ResolvedSessionConfig[];
134
162
  readonly worktreePool: ResolvedWorktreePoolConfig | undefined;
135
163
  readonly compare: ResolvedCompareConfig | undefined;
136
164
  readonly repo: IGitRepo;
137
165
  readonly redirection: ResolvedRedirectionConfig | undefined;
138
- readonly configDir: string;
166
+ readonly configDir: AbsolutePath;
139
167
  readonly defaultServerConfig: ResolvedServerConfig;
140
168
  readonly isFullConfig: boolean;
141
- static fromFile(configPath: string, disposables: DisposableStore): Promise<ResolvedConfig>;
169
+ readonly coverage: ResolvedCoverageConfig | undefined;
170
+ static fromFile(configPath: AbsolutePath, disposables: DisposableStore): Promise<ResolvedConfig>;
142
171
  private static _fromData;
143
172
  private static readonly _viteConfigNames;
144
- static fromProjectPath(projectPath: string, disposables: DisposableStore): Promise<ResolvedConfig>;
173
+ static fromProjectPath(projectPath: AbsolutePath, disposables: DisposableStore): Promise<ResolvedConfig>;
145
174
  private constructor();
146
175
  }
147
176
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}