@vscode/component-explorer-cli 0.2.1-15 → 0.2.1-151

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 (237) hide show
  1. package/README.md +6 -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 +55 -1
  8. package/dist/browserPage.d.ts.map +1 -1
  9. package/dist/browserPage.js +98 -6
  10. package/dist/browserPage.js.map +1 -1
  11. package/dist/commands/acceptCommand.d.ts +1 -1
  12. package/dist/commands/acceptCommand.d.ts.map +1 -1
  13. package/dist/commands/acceptCommand.js +21 -14
  14. package/dist/commands/acceptCommand.js.map +1 -1
  15. package/dist/commands/checkStabilityCommand.d.ts +2 -0
  16. package/dist/commands/checkStabilityCommand.d.ts.map +1 -1
  17. package/dist/commands/checkStabilityCommand.js +25 -8
  18. package/dist/commands/checkStabilityCommand.js.map +1 -1
  19. package/dist/commands/compareCommand.d.ts +1 -1
  20. package/dist/commands/compareCommand.d.ts.map +1 -1
  21. package/dist/commands/compareCommand.js +31 -22
  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 +0 -2
  28. package/dist/commands/mcpCommand.d.ts.map +1 -1
  29. package/dist/commands/mcpCommand.js +143 -75
  30. package/dist/commands/mcpCommand.js.map +1 -1
  31. package/dist/commands/renderCommand.d.ts +9 -1
  32. package/dist/commands/renderCommand.d.ts.map +1 -1
  33. package/dist/commands/renderCommand.js +317 -29
  34. package/dist/commands/renderCommand.js.map +1 -1
  35. package/dist/commands/serveCommand.d.ts.map +1 -1
  36. package/dist/commands/serveCommand.js +14 -11
  37. package/dist/commands/serveCommand.js.map +1 -1
  38. package/dist/commands/serviceDiffCommitsCommand.d.ts.map +1 -1
  39. package/dist/commands/serviceDiffCommitsCommand.js +10 -9
  40. package/dist/commands/serviceDiffCommitsCommand.js.map +1 -1
  41. package/dist/commands/watchCommand.d.ts +1 -0
  42. package/dist/commands/watchCommand.d.ts.map +1 -1
  43. package/dist/commands/watchCommand.js +31 -20
  44. package/dist/commands/watchCommand.js.map +1 -1
  45. package/dist/comparison.d.ts +4 -3
  46. package/dist/comparison.d.ts.map +1 -1
  47. package/dist/comparison.js +17 -14
  48. package/dist/comparison.js.map +1 -1
  49. package/dist/component-explorer-config.schema.json +55 -2
  50. package/dist/componentExplorer.d.ts +110 -12
  51. package/dist/componentExplorer.d.ts.map +1 -1
  52. package/dist/componentExplorer.js +177 -24
  53. package/dist/componentExplorer.js.map +1 -1
  54. package/dist/config.d.ts +33 -4
  55. package/dist/config.d.ts.map +1 -1
  56. package/dist/config.js +64 -27
  57. package/dist/config.js.map +1 -1
  58. package/dist/coverage.d.ts +64 -0
  59. package/dist/coverage.d.ts.map +1 -0
  60. package/dist/coverage.js +212 -0
  61. package/dist/coverage.js.map +1 -0
  62. package/dist/daemon/DaemonService.d.ts +14 -5
  63. package/dist/daemon/DaemonService.d.ts.map +1 -1
  64. package/dist/daemon/DaemonService.js +47 -23
  65. package/dist/daemon/DaemonService.js.map +1 -1
  66. package/dist/daemon/approvalStore.d.ts +2 -1
  67. package/dist/daemon/approvalStore.d.ts.map +1 -1
  68. package/dist/daemon/approvalStore.js +4 -3
  69. package/dist/daemon/approvalStore.js.map +1 -1
  70. package/dist/daemon/inProcessClient.js +2 -2
  71. package/dist/daemon/lifecycle.d.ts +4 -1
  72. package/dist/daemon/lifecycle.d.ts.map +1 -1
  73. package/dist/daemon/lifecycle.js +1 -1
  74. package/dist/daemon/lifecycle.js.map +1 -1
  75. package/dist/daemon/pipeClient.d.ts +2 -0
  76. package/dist/daemon/pipeClient.d.ts.map +1 -1
  77. package/dist/daemon/pipeClient.js +26 -8
  78. package/dist/daemon/pipeClient.js.map +1 -1
  79. package/dist/daemon/pipeName.d.ts +3 -3
  80. package/dist/daemon/pipeName.d.ts.map +1 -1
  81. package/dist/daemon/pipeName.js +1 -2
  82. package/dist/daemon/pipeName.js.map +1 -1
  83. package/dist/daemon/pipeServer.js +3 -3
  84. package/dist/daemon/version.d.ts +1 -1
  85. package/dist/daemon/version.js +2 -2
  86. package/dist/dependencyInstaller.d.ts +2 -1
  87. package/dist/dependencyInstaller.d.ts.map +1 -1
  88. package/dist/dependencyInstaller.js +4 -4
  89. package/dist/dependencyInstaller.js.map +1 -1
  90. package/dist/git/gitCommitResolver.d.ts +2 -1
  91. package/dist/git/gitCommitResolver.d.ts.map +1 -1
  92. package/dist/git/gitCommitResolver.js +8 -8
  93. package/dist/git/gitCommitResolver.js.map +1 -1
  94. package/dist/git/gitIndexResolver.d.ts +2 -1
  95. package/dist/git/gitIndexResolver.d.ts.map +1 -1
  96. package/dist/git/gitIndexResolver.js +7 -7
  97. package/dist/git/gitIndexResolver.js.map +1 -1
  98. package/dist/git/gitService.d.ts +5 -4
  99. package/dist/git/gitService.d.ts.map +1 -1
  100. package/dist/git/gitService.js.map +1 -1
  101. package/dist/git/gitUtils.d.ts +6 -5
  102. package/dist/git/gitUtils.d.ts.map +1 -1
  103. package/dist/git/gitUtils.js +5 -4
  104. package/dist/git/gitUtils.js.map +1 -1
  105. package/dist/git/gitWorktreeManager.d.ts +15 -14
  106. package/dist/git/gitWorktreeManager.d.ts.map +1 -1
  107. package/dist/git/gitWorktreeManager.js +10 -11
  108. package/dist/git/gitWorktreeManager.js.map +1 -1
  109. package/dist/git/testUtils.d.ts +2 -1
  110. package/dist/git/testUtils.d.ts.map +1 -1
  111. package/dist/index.js +10 -1
  112. package/dist/index.js.map +1 -1
  113. package/dist/js-component-explorer/packages/common/dist/explorerUrl.js +21 -0
  114. package/dist/js-component-explorer/packages/common/dist/explorerUrl.js.map +1 -0
  115. package/dist/js-component-explorer/packages/common/dist/renderManifest.js +68 -0
  116. package/dist/js-component-explorer/packages/common/dist/renderManifest.js.map +1 -0
  117. package/dist/js-component-explorer/packages/semver/dist/index.js.map +1 -0
  118. package/dist/js-component-explorer/packages/simple-api/dist/chunk-FJ7AVNQE.js.map +1 -0
  119. package/dist/js-component-explorer/packages/simple-api/dist/chunk-TTRCY65Z.js.map +1 -0
  120. package/dist/js-component-explorer/packages/simple-api/dist/chunk-WNXMRXWV.js.map +1 -0
  121. package/dist/js-component-explorer/packages/simple-api/dist/express.js.map +1 -0
  122. package/dist/manifest.schema.json +44 -16
  123. package/dist/mcp/DaemonAccessor.d.ts +22 -0
  124. package/dist/mcp/DaemonAccessor.d.ts.map +1 -0
  125. package/dist/mcp/McpServer.d.ts +4 -19
  126. package/dist/mcp/McpServer.d.ts.map +1 -1
  127. package/dist/mcp/McpServer.js +299 -305
  128. package/dist/mcp/McpServer.js.map +1 -1
  129. package/dist/path.d.ts +30 -0
  130. package/dist/path.d.ts.map +1 -0
  131. package/dist/path.js +78 -0
  132. package/dist/path.js.map +1 -0
  133. package/dist/processTree.d.ts +6 -1
  134. package/dist/processTree.d.ts.map +1 -1
  135. package/dist/processTree.js +48 -5
  136. package/dist/processTree.js.map +1 -1
  137. package/dist/renderManifest.js +1 -1
  138. package/dist/server/httpServer.d.ts +1 -1
  139. package/dist/server/httpServer.d.ts.map +1 -1
  140. package/dist/server/httpServer.js +4 -8
  141. package/dist/server/httpServer.js.map +1 -1
  142. package/dist/server/serverConfig.d.ts +23 -6
  143. package/dist/server/serverConfig.d.ts.map +1 -1
  144. package/dist/server/serverConfig.js +11 -18
  145. package/dist/server/serverConfig.js.map +1 -1
  146. package/dist/server/viteServer.d.ts +16 -1
  147. package/dist/server/viteServer.d.ts.map +1 -1
  148. package/dist/server/viteServer.js +86 -5
  149. package/dist/server/viteServer.js.map +1 -1
  150. package/dist/storage.d.ts +2 -1
  151. package/dist/storage.d.ts.map +1 -1
  152. package/dist/storage.js +1 -1
  153. package/dist/storage.js.map +1 -1
  154. package/dist/utils.d.ts +3 -30
  155. package/dist/utils.d.ts.map +1 -1
  156. package/dist/utils.js +4 -24
  157. package/dist/utils.js.map +1 -1
  158. package/dist/visualCache.d.ts +2 -1
  159. package/dist/visualCache.d.ts.map +1 -1
  160. package/dist/visualCache.js +4 -3
  161. package/dist/visualCache.js.map +1 -1
  162. package/dist/viteProjectRef.d.ts +4 -12
  163. package/dist/viteProjectRef.d.ts.map +1 -1
  164. package/dist/viteProjectRef.js +9 -17
  165. package/dist/viteProjectRef.js.map +1 -1
  166. package/dist/vscode-observables/observables/dist/disposables.js.map +1 -0
  167. package/dist/vscode-observables/observables/dist/observableInternal/base.js.map +1 -0
  168. package/dist/vscode-observables/observables/dist/observableInternal/commonFacade/deps.js.map +1 -0
  169. package/dist/vscode-observables/observables/dist/observableInternal/debugLocation.js.map +1 -0
  170. package/dist/vscode-observables/observables/dist/observableInternal/debugName.js.map +1 -0
  171. package/dist/vscode-observables/observables/dist/observableInternal/index.js.map +1 -0
  172. package/dist/vscode-observables/observables/dist/observableInternal/logging/consoleObservableLogger.js.map +1 -0
  173. package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/logging/debugGetDependencyGraph.js +1 -1
  174. package/dist/vscode-observables/observables/dist/observableInternal/logging/debugGetDependencyGraph.js.map +1 -0
  175. package/dist/vscode-observables/observables/dist/observableInternal/logging/logging.js.map +1 -0
  176. package/dist/vscode-observables/observables/dist/observableInternal/observables/baseObservable.js.map +1 -0
  177. package/dist/vscode-observables/observables/dist/observableInternal/observables/derived.js.map +1 -0
  178. package/dist/vscode-observables/observables/dist/observableInternal/observables/derivedImpl.js.map +1 -0
  179. package/dist/vscode-observables/observables/dist/observableInternal/observables/observableFromEvent.js.map +1 -0
  180. package/dist/vscode-observables/observables/dist/observableInternal/observables/observableValue.js.map +1 -0
  181. package/dist/{external/vscode-observables/observables/dist/observableInternal/reactions/autorun.js → vscode-observables/observables/dist/observableInternal/reactions/createEffect.js} +9 -5
  182. package/dist/vscode-observables/observables/dist/observableInternal/reactions/createEffect.js.map +1 -0
  183. package/dist/{external/vscode-observables/observables/dist/observableInternal/reactions/autorunImpl.js → vscode-observables/observables/dist/observableInternal/reactions/createEffectImpl.js} +1 -1
  184. package/dist/vscode-observables/observables/dist/observableInternal/reactions/createEffectImpl.js.map +1 -0
  185. package/dist/vscode-observables/observables/dist/observableInternal/transaction.js.map +1 -0
  186. package/dist/vscode-observables/observables/dist/observableInternal/utils/utils.js.map +1 -0
  187. package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/utils/utilsCancellation.js +2 -2
  188. package/dist/vscode-observables/observables/dist/observableInternal/utils/utilsCancellation.js.map +1 -0
  189. package/package.json +11 -9
  190. package/dist/commands/artifactCommand.d.ts +0 -14
  191. package/dist/commands/artifactCommand.d.ts.map +0 -1
  192. package/dist/external/vscode-observables/observables/dist/disposables.js.map +0 -1
  193. package/dist/external/vscode-observables/observables/dist/observableInternal/base.js.map +0 -1
  194. package/dist/external/vscode-observables/observables/dist/observableInternal/commonFacade/deps.js.map +0 -1
  195. package/dist/external/vscode-observables/observables/dist/observableInternal/debugLocation.js.map +0 -1
  196. package/dist/external/vscode-observables/observables/dist/observableInternal/debugName.js.map +0 -1
  197. package/dist/external/vscode-observables/observables/dist/observableInternal/index.js.map +0 -1
  198. package/dist/external/vscode-observables/observables/dist/observableInternal/logging/consoleObservableLogger.js.map +0 -1
  199. package/dist/external/vscode-observables/observables/dist/observableInternal/logging/debugGetDependencyGraph.js.map +0 -1
  200. package/dist/external/vscode-observables/observables/dist/observableInternal/logging/logging.js.map +0 -1
  201. package/dist/external/vscode-observables/observables/dist/observableInternal/observables/baseObservable.js.map +0 -1
  202. package/dist/external/vscode-observables/observables/dist/observableInternal/observables/derived.js.map +0 -1
  203. package/dist/external/vscode-observables/observables/dist/observableInternal/observables/derivedImpl.js.map +0 -1
  204. package/dist/external/vscode-observables/observables/dist/observableInternal/observables/observableFromEvent.js.map +0 -1
  205. package/dist/external/vscode-observables/observables/dist/observableInternal/observables/observableValue.js.map +0 -1
  206. package/dist/external/vscode-observables/observables/dist/observableInternal/reactions/autorun.js.map +0 -1
  207. package/dist/external/vscode-observables/observables/dist/observableInternal/reactions/autorunImpl.js.map +0 -1
  208. package/dist/external/vscode-observables/observables/dist/observableInternal/transaction.js.map +0 -1
  209. package/dist/external/vscode-observables/observables/dist/observableInternal/utils/utils.js.map +0 -1
  210. package/dist/external/vscode-observables/observables/dist/observableInternal/utils/utilsCancellation.js.map +0 -1
  211. package/dist/packages/common/dist/renderManifest.js +0 -46
  212. package/dist/packages/common/dist/renderManifest.js.map +0 -1
  213. package/dist/packages/semver/dist/index.js.map +0 -1
  214. package/dist/packages/simple-api/dist/chunk-FJ7AVNQE.js.map +0 -1
  215. package/dist/packages/simple-api/dist/chunk-TTRCY65Z.js.map +0 -1
  216. package/dist/packages/simple-api/dist/chunk-WNXMRXWV.js.map +0 -1
  217. package/dist/packages/simple-api/dist/express.js.map +0 -1
  218. /package/dist/{packages → js-component-explorer/packages}/semver/dist/index.js +0 -0
  219. /package/dist/{packages → js-component-explorer/packages}/simple-api/dist/chunk-FJ7AVNQE.js +0 -0
  220. /package/dist/{packages → js-component-explorer/packages}/simple-api/dist/chunk-TTRCY65Z.js +0 -0
  221. /package/dist/{packages → js-component-explorer/packages}/simple-api/dist/chunk-WNXMRXWV.js +0 -0
  222. /package/dist/{packages → js-component-explorer/packages}/simple-api/dist/express.js +0 -0
  223. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/disposables.js +0 -0
  224. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/base.js +0 -0
  225. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/commonFacade/deps.js +0 -0
  226. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/debugLocation.js +0 -0
  227. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/debugName.js +0 -0
  228. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/index.js +0 -0
  229. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/logging/consoleObservableLogger.js +0 -0
  230. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/logging/logging.js +0 -0
  231. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/observables/baseObservable.js +0 -0
  232. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/observables/derived.js +0 -0
  233. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/observables/derivedImpl.js +0 -0
  234. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/observables/observableFromEvent.js +0 -0
  235. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/observables/observableValue.js +0 -0
  236. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/transaction.js +0 -0
  237. /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/utils/utils.js +0 -0
@@ -132,7 +132,7 @@
132
132
  "type": "string"
133
133
  },
134
134
  "cwd": {
135
- "description": "Working directory for cmd, relative to this config file (default: config file directory)",
135
+ "description": "Working directory for cmd, relative to this config file (default: \".\")",
136
136
  "type": "string"
137
137
  },
138
138
  "wait": {
@@ -297,7 +297,7 @@
297
297
  "type": "string"
298
298
  },
299
299
  "cwd": {
300
- "description": "Working directory for cmd, relative to this config file (default: config file directory)",
300
+ "description": "Working directory for cmd, relative to this config file (default: \".\")",
301
301
  "type": "string"
302
302
  },
303
303
  "wait": {
@@ -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,16 +1,48 @@
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';
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
+ */
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;
31
+ }
6
32
  export interface ComponentExplorer {
7
33
  readonly sourceTreeId: IObservable<SourceTreeId>;
8
34
  listFixtures(): Promise<ListFixturesResult>;
9
- screenshotFixture(fixtureId: string): Promise<ScreenshotResult>;
10
- screenshotFixtureStabilityCheck(fixtureId: string): Promise<StabilityCheckResult>;
35
+ screenshotFixture(fixtureId: string, options?: ScreenshotOptions): Promise<ScreenshotResult>;
36
+ screenshotFixtureStabilityCheck(fixtureId: string, options?: ScreenshotOptions): Promise<StabilityCheckResult>;
11
37
  evaluateJs(expression: string, fixtureId?: string): Promise<unknown>;
12
38
  codeCoverage(id: FixtureId | FixtureGroupId): Promise<CoverageData>;
13
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>;
14
46
  dispose(): Promise<void>;
15
47
  }
16
48
  export interface FixtureInfo {
@@ -20,6 +52,8 @@ export interface FixtureInfo {
20
52
  readonly background: 'light' | 'dark';
21
53
  readonly labels: readonly string[];
22
54
  readonly expectedVisualDescriptions: readonly string[];
55
+ /** JSON Schema describing the fixture's expected `input` object, if declared. */
56
+ readonly inputSchema?: IJsonSchema;
23
57
  }
24
58
  export interface ListFixturesResult {
25
59
  readonly fixtures: FixtureInfo[];
@@ -47,31 +81,93 @@ export type RenderEventType = 'console.error' | 'console.warn' | 'console.log' |
47
81
  export interface RenderEvent {
48
82
  readonly type: RenderEventType;
49
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;
50
111
  }
51
112
  /**
52
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
+ * capture, previousDispose, or currentDispose) reported an error so that consumers
117
+ * never need to combine the flags manually.
53
118
  */
54
- export interface ScreenshotResult {
119
+ export declare class ScreenshotResult {
55
120
  readonly image: Uint8Array | undefined;
56
- readonly hasError: boolean;
57
- readonly error?: ExceptionError;
121
+ readonly renderHasError: boolean;
122
+ readonly renderError?: ExceptionError;
123
+ readonly captureError?: ExceptionError;
58
124
  readonly events: RenderEvent[];
59
- readonly resultData?: unknown;
125
+ readonly output?: unknown;
60
126
  readonly renderTimeMs: {
61
127
  readonly sync: number;
62
128
  readonly total: number;
63
129
  };
130
+ readonly previousDispose?: DisposeReport;
131
+ readonly currentDispose?: DisposeReport;
132
+ constructor(data: {
133
+ readonly image: Uint8Array | undefined;
134
+ readonly renderHasError: boolean;
135
+ readonly error?: ExceptionError;
136
+ readonly captureError?: ExceptionError;
137
+ readonly events: RenderEvent[];
138
+ readonly output?: unknown;
139
+ readonly renderTimeMs: {
140
+ readonly sync: number;
141
+ readonly total: number;
142
+ };
143
+ readonly previousDispose?: DisposeReport;
144
+ readonly currentDispose?: DisposeReport;
145
+ });
146
+ get error(): ExceptionError | undefined;
147
+ get hasError(): boolean;
64
148
  }
65
149
  export interface StabilityScreenshot {
66
150
  readonly image: Uint8Array;
67
151
  readonly delayMs: number;
68
152
  }
69
- export interface StabilityCheckResult {
153
+ export declare class StabilityCheckResult {
70
154
  readonly screenshots: readonly StabilityScreenshot[];
71
- readonly hasError: boolean;
155
+ readonly renderHasError: boolean;
72
156
  readonly error?: ExceptionError;
73
157
  readonly events: RenderEvent[];
74
- readonly resultData?: unknown;
158
+ readonly output?: unknown;
159
+ readonly previousDispose?: DisposeReport;
160
+ readonly currentDispose?: DisposeReport;
161
+ constructor(data: {
162
+ readonly screenshots: readonly StabilityScreenshot[];
163
+ readonly renderHasError: boolean;
164
+ readonly error?: ExceptionError;
165
+ readonly events: RenderEvent[];
166
+ readonly output?: unknown;
167
+ readonly previousDispose?: DisposeReport;
168
+ readonly currentDispose?: DisposeReport;
169
+ });
170
+ get hasError(): boolean;
75
171
  }
76
172
  export declare class BrowserComponentExplorer implements ComponentExplorer {
77
173
  private readonly _browserPageFactory;
@@ -84,15 +180,17 @@ export declare class BrowserComponentExplorer implements ComponentExplorer {
84
180
  readonly sourceTreeId: import("@vscode/observables").ISettableObservable<SourceTreeId, void>;
85
181
  constructor(_browserPageFactory: BrowserPageFactory, _server: ComponentExplorerHttpServer, _logger?: ILogger);
86
182
  private _bumpSourceTreeId;
183
+ getOrOpenPage(): Promise<BrowserPage>;
87
184
  private _ensureReady;
185
+ private _reloadPage;
88
186
  private _startPolling;
89
187
  private _pollLoop;
90
188
  private _waitForCliApi;
91
189
  private _assertRuntimeVersionCompatibility;
92
190
  private _getState;
93
191
  listFixtures(): Promise<ListFixturesResult>;
94
- screenshotFixture(fixtureId: string): Promise<ScreenshotResult>;
95
- screenshotFixtureStabilityCheck(fixtureId: string): Promise<StabilityCheckResult>;
192
+ screenshotFixture(fixtureId: string, options?: ScreenshotOptions): Promise<ScreenshotResult>;
193
+ screenshotFixtureStabilityCheck(fixtureId: string, options?: ScreenshotOptions): Promise<StabilityCheckResult>;
96
194
  evaluateJs(expression: string, fixtureId?: string): Promise<unknown>;
97
195
  codeCoverage(_id: FixtureId | FixtureGroupId): Promise<CoverageData>;
98
196
  waitForUpdate(timeoutMs?: number): Promise<void>;
@@ -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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"}
@@ -1,16 +1,107 @@
1
1
  import { evaluateFn, explorerApiGetter, explorerApi, explorerApiOrUndefined } from './evaluateFn.js';
2
- import './external/vscode-observables/observables/dist/observableInternal/index.js';
3
- import { observableValue } from './external/vscode-observables/observables/dist/observableInternal/observables/observableValue.js';
4
- import './external/vscode-observables/observables/dist/observableInternal/debugLocation.js';
5
- import './external/vscode-observables/observables/dist/observableInternal/observables/derived.js';
6
- import { waitForState } from './external/vscode-observables/observables/dist/observableInternal/utils/utilsCancellation.js';
7
- import './external/vscode-observables/observables/dist/observableInternal/utils/utils.js';
8
- import './external/vscode-observables/observables/dist/observableInternal/observables/observableFromEvent.js';
2
+ import './vscode-observables/observables/dist/observableInternal/index.js';
3
+ import { observableValue } from './vscode-observables/observables/dist/observableInternal/observables/observableValue.js';
4
+ import './vscode-observables/observables/dist/observableInternal/debugLocation.js';
5
+ import './vscode-observables/observables/dist/observableInternal/observables/derived.js';
6
+ import { waitForState } from './vscode-observables/observables/dist/observableInternal/utils/utilsCancellation.js';
7
+ import './vscode-observables/observables/dist/observableInternal/utils/utils.js';
8
+ import './vscode-observables/observables/dist/observableInternal/observables/observableFromEvent.js';
9
9
  import { nullLogger } from './logger.js';
10
10
  import { SourceTreeId } from './sourceTreeId.js';
11
- import { buildExplorerUrl } from './utils.js';
11
+ import './js-component-explorer/packages/common/dist/renderManifest.js';
12
+ import { buildExplorerUrl } from './js-component-explorer/packages/common/dist/explorerUrl.js';
13
+ import { EXPLORER_ROUTE } from './utils.js';
12
14
  import { parseVersion, isCompatibleVersion, runtimeVersionNeededByCliText } from './daemon/version.js';
13
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
+ * capture, 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
+ renderError;
55
+ captureError;
56
+ events;
57
+ output;
58
+ renderTimeMs;
59
+ previousDispose;
60
+ currentDispose;
61
+ constructor(data) {
62
+ this.image = data.image;
63
+ this.renderHasError = data.renderHasError;
64
+ this.renderError = data.error;
65
+ this.captureError = data.captureError;
66
+ this.events = data.events;
67
+ this.output = data.output;
68
+ this.renderTimeMs = data.renderTimeMs;
69
+ this.previousDispose = data.previousDispose;
70
+ this.currentDispose = data.currentDispose;
71
+ }
72
+ get error() {
73
+ return this.renderError ?? this.captureError;
74
+ }
75
+ get hasError() {
76
+ return this.renderHasError
77
+ || !!this.captureError
78
+ || !!this.previousDispose?.hasError
79
+ || !!this.currentDispose?.hasError;
80
+ }
81
+ }
82
+ class StabilityCheckResult {
83
+ screenshots;
84
+ renderHasError;
85
+ error;
86
+ events;
87
+ output;
88
+ previousDispose;
89
+ currentDispose;
90
+ constructor(data) {
91
+ this.screenshots = data.screenshots;
92
+ this.renderHasError = data.renderHasError;
93
+ this.error = data.error;
94
+ this.events = data.events;
95
+ this.output = data.output;
96
+ this.previousDispose = data.previousDispose;
97
+ this.currentDispose = data.currentDispose;
98
+ }
99
+ get hasError() {
100
+ return this.renderHasError
101
+ || !!this.previousDispose?.hasError
102
+ || !!this.currentDispose?.hasError;
103
+ }
104
+ }
14
105
  class BrowserComponentExplorer {
15
106
  _browserPageFactory;
16
107
  _server;
@@ -34,9 +125,12 @@ class BrowserComponentExplorer {
34
125
  _bumpSourceTreeId() {
35
126
  this.sourceTreeId.set(new SourceTreeId(Date.now().toString()), undefined);
36
127
  }
128
+ getOrOpenPage() {
129
+ return this._ensureReady();
130
+ }
37
131
  async _ensureReady() {
38
132
  if (!this._page) {
39
- const cliUrl = buildExplorerUrl({ baseUrl: this._server.url, mode: 'headless' });
133
+ const cliUrl = buildExplorerUrl({ baseUrl: this._server.url, pathname: EXPLORER_ROUTE, mode: 'headless' });
40
134
  this._logger.debug(`Opening browser page: ${cliUrl}`);
41
135
  this._page = await this._browserPageFactory.openPage(cliUrl);
42
136
  await this._waitForCliApi(this._page);
@@ -44,6 +138,10 @@ class BrowserComponentExplorer {
44
138
  }
45
139
  return this._page;
46
140
  }
141
+ async _reloadPage(page) {
142
+ await page.reload();
143
+ await this._waitForCliApi(page);
144
+ }
47
145
  _startPolling() {
48
146
  if (this._pollingActive) {
49
147
  return;
@@ -59,15 +157,18 @@ class BrowserComponentExplorer {
59
157
  const newState = await evaluateFn(page, (getApi, prev) => new Promise((resolve) => {
60
158
  function check() {
61
159
  const api = getApi();
160
+ // This allows faked time
161
+ const setTimeoutFn = typeof globalThis.setTimeout.originalFn === 'function' ?
162
+ globalThis.setTimeout.originalFn : globalThis.setTimeout;
62
163
  if (!api) {
63
- setTimeout(check, 50);
164
+ setTimeoutFn(check, 50);
64
165
  return;
65
166
  }
66
167
  if (api.pageInstanceId !== prev.pageInstanceId || api.updateVersion > prev.updateVersion) {
67
168
  resolve({ pageInstanceId: api.pageInstanceId, updateVersion: api.updateVersion, runtimeVersion: api.runtimeVersion });
68
169
  }
69
170
  else {
70
- setTimeout(check, 50);
171
+ setTimeoutFn(check, 50);
71
172
  }
72
173
  }
73
174
  check();
@@ -129,7 +230,7 @@ class BrowserComponentExplorer {
129
230
  return { fixtures: [], loadError };
130
231
  }
131
232
  }
132
- async screenshotFixture(fixtureId) {
233
+ async screenshotFixture(fixtureId, options) {
133
234
  // Serialize screenshot calls — the single browser page can only render one fixture at a time
134
235
  const prev = this._screenshotMutex;
135
236
  let resolve;
@@ -140,20 +241,46 @@ class BrowserComponentExplorer {
140
241
  const startTime = Date.now();
141
242
  try {
142
243
  const page = await this._ensureReady();
143
- const debugUrl = buildExplorerUrl({ baseUrl: this._server.url, mode: 'headless', fixtureId });
244
+ const debugUrl = buildExplorerUrl({ baseUrl: this._server.url, pathname: EXPLORER_ROUTE, mode: 'headless', fixtureId });
144
245
  this._logger.debug(`Rendering fixture: ${debugUrl}`);
145
- const renderResult = await evaluateFn(page, (api, id) => api.renderFixture(id), explorerApi, fixtureId);
246
+ if (options?.reloadBeforeRender) {
247
+ this._logger.debug(`Reloading page before render: ${fixtureId}`);
248
+ await this._reloadPage(page);
249
+ }
250
+ const input = options?.input;
251
+ const renderResult = await evaluateFn(page, (api, args) => api.renderFixture(args.id, args.input), explorerApi, { id: fixtureId, input });
146
252
  this._logger.debug(`Render completed: ${fixtureId} (hasError=${renderResult.hasError}, ${Date.now() - startTime}ms)`);
147
253
  const image = await page.screenshot(`document.getElementById('root').lastElementChild`);
148
254
  this._logger.debug(`Screenshot done: ${fixtureId} (ok=${image.ok}, ${Date.now() - startTime}ms)`);
149
- return { image: image.ok ? image.screenshot : undefined, ...renderResult };
255
+ let currentDispose;
256
+ if (options?.disposeAfter) {
257
+ this._logger.debug(`Disposing fixture after screenshot: ${fixtureId}`);
258
+ const rawDispose = await evaluateFn(page, (api) => api.disposeCurrentFixture(), explorerApi);
259
+ currentDispose = DisposeReport.fromIfSignificant(rawDispose);
260
+ }
261
+ const result = new ScreenshotResult({
262
+ image: image.ok ? image.screenshot : undefined,
263
+ renderHasError: renderResult.hasError,
264
+ error: renderResult.error,
265
+ captureError: image.ok ? undefined : image.error,
266
+ events: renderResult.events,
267
+ output: renderResult.output,
268
+ renderTimeMs: renderResult.renderTimeMs,
269
+ previousDispose: renderResult.previousDispose ? DisposeReport.from(renderResult.previousDispose) : undefined,
270
+ currentDispose,
271
+ });
272
+ if (result.hasError && options?.reloadOnError) {
273
+ this._logger.debug(`Fixture had error, reloading page to avoid contamination: ${fixtureId}`);
274
+ await this._reloadPage(page);
275
+ }
276
+ return result;
150
277
  }
151
278
  finally {
152
279
  this._logger.trace(`Screenshot mutex: released for ${fixtureId}`);
153
280
  resolve();
154
281
  }
155
282
  }
156
- async screenshotFixtureStabilityCheck(fixtureId) {
283
+ async screenshotFixtureStabilityCheck(fixtureId, options) {
157
284
  const prev = this._screenshotMutex;
158
285
  let resolve;
159
286
  this._screenshotMutex = new Promise(r => { resolve = r; });
@@ -162,11 +289,16 @@ class BrowserComponentExplorer {
162
289
  this._logger.trace(`Screenshot mutex: acquired for stability check ${fixtureId}`);
163
290
  try {
164
291
  const page = await this._ensureReady();
165
- const debugUrl = buildExplorerUrl({ baseUrl: this._server.url, mode: 'headless', fixtureId });
292
+ const debugUrl = buildExplorerUrl({ baseUrl: this._server.url, pathname: EXPLORER_ROUTE, mode: 'headless', fixtureId });
166
293
  this._logger.debug(`Stability check: ${debugUrl}`);
167
- await evaluateFn(page, (api) => api.disposeCurrentFixture(), explorerApi);
294
+ if (options?.reloadBeforeRender) {
295
+ this._logger.debug(`Reloading page before stability check: ${fixtureId}`);
296
+ await this._reloadPage(page);
297
+ }
298
+ const priorDispose = DisposeReport.fromIfSignificant(await evaluateFn(page, (api) => api.disposeCurrentFixture(), explorerApi));
168
299
  const startTime = Date.now();
169
- const renderResult = await evaluateFn(page, (api, id) => api.renderFixture(id), explorerApi, fixtureId);
300
+ const input = options?.input;
301
+ const renderResult = await evaluateFn(page, (api, args) => api.renderFixture(args.id, args.input), explorerApi, { id: fixtureId, input });
170
302
  const domExpr = `document.getElementById('root').lastElementChild`;
171
303
  const image0 = await unwrapScreenshot(page, domExpr);
172
304
  const delay0 = Date.now() - startTime;
@@ -185,14 +317,33 @@ class BrowserComponentExplorer {
185
317
  const image2 = await unwrapScreenshot(page, domExpr);
186
318
  const delay2 = Date.now() - startTime;
187
319
  this._logger.debug(`Stability check done: ${fixtureId} (${delay2}ms total)`);
188
- return {
320
+ let currentDispose;
321
+ if (options?.disposeAfter) {
322
+ this._logger.debug(`Disposing fixture after stability check: ${fixtureId}`);
323
+ const rawDispose = await evaluateFn(page, (api) => api.disposeCurrentFixture(), explorerApi);
324
+ currentDispose = DisposeReport.fromIfSignificant(rawDispose);
325
+ }
326
+ const previousDispose = renderResult.previousDispose
327
+ ? DisposeReport.from(renderResult.previousDispose)
328
+ : priorDispose;
329
+ const result = new StabilityCheckResult({
189
330
  screenshots: [
190
331
  { image: image0, delayMs: delay0 },
191
332
  { image: image1, delayMs: delay1 },
192
333
  { image: image2, delayMs: delay2 },
193
334
  ],
194
- ...renderResult,
195
- };
335
+ renderHasError: renderResult.hasError,
336
+ error: renderResult.error,
337
+ events: renderResult.events,
338
+ output: renderResult.output,
339
+ previousDispose,
340
+ currentDispose,
341
+ });
342
+ if (renderResult.hasError && options?.reloadOnError) {
343
+ this._logger.debug(`Stability check fixture had error, reloading page to avoid contamination: ${fixtureId}`);
344
+ await this._reloadPage(page);
345
+ }
346
+ return result;
196
347
  }
197
348
  finally {
198
349
  this._logger.trace(`Screenshot mutex: released for stability check ${fixtureId}`);
@@ -252,10 +403,12 @@ class BrowserComponentExplorer {
252
403
  async function unwrapScreenshot(page, domExpr) {
253
404
  const result = await page.screenshot(domExpr);
254
405
  if (!result.ok) {
255
- throw new Error(`Fixture DOM node not found`);
406
+ const error = new Error(result.error.message);
407
+ error.stack = result.error.stack ?? error.stack;
408
+ throw error;
256
409
  }
257
410
  return result.screenshot;
258
411
  }
259
412
 
260
- export { BrowserComponentExplorer };
413
+ export { BrowserComponentExplorer, DisposeReport, ScreenshotResult, StabilityCheckResult };
261
414
  //# 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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"}