@vscode/component-explorer-cli 0.2.1-6 → 0.2.1-61

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 (181) 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 +50 -0
  8. package/dist/browserPage.d.ts.map +1 -1
  9. package/dist/browserPage.js +78 -0
  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 +15 -8
  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 +19 -2
  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 +24 -15
  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 +136 -68
  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 +308 -21
  34. package/dist/commands/renderCommand.js.map +1 -1
  35. package/dist/commands/serveCommand.d.ts +1 -0
  36. package/dist/commands/serveCommand.d.ts.map +1 -1
  37. package/dist/commands/serveCommand.js +11 -6
  38. package/dist/commands/serveCommand.js.map +1 -1
  39. package/dist/commands/serviceDiffCommitsCommand.d.ts +1 -0
  40. package/dist/commands/serviceDiffCommitsCommand.d.ts.map +1 -1
  41. package/dist/commands/serviceDiffCommitsCommand.js +34 -28
  42. package/dist/commands/serviceDiffCommitsCommand.js.map +1 -1
  43. package/dist/commands/watchCommand.d.ts +1 -0
  44. package/dist/commands/watchCommand.d.ts.map +1 -1
  45. package/dist/commands/watchCommand.js +24 -13
  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 +17 -14
  50. package/dist/comparison.js.map +1 -1
  51. package/dist/component-explorer-config.schema.json +55 -2
  52. package/dist/componentExplorer.d.ts +106 -11
  53. package/dist/componentExplorer.d.ts.map +1 -1
  54. package/dist/componentExplorer.js +159 -16
  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 +39 -15
  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/inProcessClient.js +2 -2
  73. package/dist/daemon/lifecycle.d.ts +4 -1
  74. package/dist/daemon/lifecycle.d.ts.map +1 -1
  75. package/dist/daemon/lifecycle.js +1 -1
  76. package/dist/daemon/lifecycle.js.map +1 -1
  77. package/dist/daemon/pipeClient.d.ts +2 -0
  78. package/dist/daemon/pipeClient.d.ts.map +1 -1
  79. package/dist/daemon/pipeClient.js +21 -3
  80. package/dist/daemon/pipeClient.js.map +1 -1
  81. package/dist/daemon/pipeName.d.ts +3 -3
  82. package/dist/daemon/pipeName.d.ts.map +1 -1
  83. package/dist/daemon/pipeName.js +1 -2
  84. package/dist/daemon/pipeName.js.map +1 -1
  85. package/dist/daemon/pipeServer.js +2 -2
  86. package/dist/daemon/version.d.ts +1 -1
  87. package/dist/daemon/version.js +1 -1
  88. package/dist/dependencyInstaller.d.ts +2 -1
  89. package/dist/dependencyInstaller.d.ts.map +1 -1
  90. package/dist/dependencyInstaller.js +4 -4
  91. package/dist/dependencyInstaller.js.map +1 -1
  92. package/dist/git/gitCommitResolver.d.ts +2 -1
  93. package/dist/git/gitCommitResolver.d.ts.map +1 -1
  94. package/dist/git/gitCommitResolver.js +2 -2
  95. package/dist/git/gitCommitResolver.js.map +1 -1
  96. package/dist/git/gitIndexResolver.d.ts +2 -1
  97. package/dist/git/gitIndexResolver.d.ts.map +1 -1
  98. package/dist/git/gitIndexResolver.js +1 -1
  99. package/dist/git/gitIndexResolver.js.map +1 -1
  100. package/dist/git/gitService.d.ts +5 -4
  101. package/dist/git/gitService.d.ts.map +1 -1
  102. package/dist/git/gitService.js.map +1 -1
  103. package/dist/git/gitUtils.d.ts +6 -5
  104. package/dist/git/gitUtils.d.ts.map +1 -1
  105. package/dist/git/gitUtils.js +5 -4
  106. package/dist/git/gitUtils.js.map +1 -1
  107. package/dist/git/gitWorktreeManager.d.ts +15 -14
  108. package/dist/git/gitWorktreeManager.d.ts.map +1 -1
  109. package/dist/git/gitWorktreeManager.js +10 -11
  110. package/dist/git/gitWorktreeManager.js.map +1 -1
  111. package/dist/git/testUtils.d.ts +2 -1
  112. package/dist/git/testUtils.d.ts.map +1 -1
  113. package/dist/index.js +10 -1
  114. package/dist/index.js.map +1 -1
  115. package/dist/manifest.schema.json +38 -16
  116. package/dist/mcp/DaemonAccessor.d.ts +22 -0
  117. package/dist/mcp/DaemonAccessor.d.ts.map +1 -0
  118. package/dist/mcp/McpServer.d.ts +5 -19
  119. package/dist/mcp/McpServer.d.ts.map +1 -1
  120. package/dist/mcp/McpServer.js +367 -281
  121. package/dist/mcp/McpServer.js.map +1 -1
  122. package/dist/packages/common/dist/explorerUrl.js +21 -0
  123. package/dist/packages/common/dist/explorerUrl.js.map +1 -0
  124. package/dist/packages/common/dist/renderManifest.js +26 -5
  125. package/dist/packages/common/dist/renderManifest.js.map +1 -1
  126. package/dist/packages/simple-api/dist/{chunk-3R7GHWBM.js → chunk-FJ7AVNQE.js} +2 -1
  127. package/dist/packages/simple-api/dist/chunk-FJ7AVNQE.js.map +1 -0
  128. package/dist/packages/simple-api/dist/{chunk-SGBCNXYH.js → chunk-TTRCY65Z.js} +4 -1
  129. package/dist/packages/simple-api/dist/chunk-TTRCY65Z.js.map +1 -0
  130. package/dist/packages/simple-api/dist/{chunk-TAEFVNPN.js → chunk-WNXMRXWV.js} +2 -1
  131. package/dist/packages/simple-api/dist/chunk-WNXMRXWV.js.map +1 -0
  132. package/dist/packages/simple-api/dist/express.js +1 -1
  133. package/dist/packages/simple-api/dist/express.js.map +1 -1
  134. package/dist/path.d.ts +30 -0
  135. package/dist/path.d.ts.map +1 -0
  136. package/dist/path.js +78 -0
  137. package/dist/path.js.map +1 -0
  138. package/dist/processTree.d.ts +14 -0
  139. package/dist/processTree.d.ts.map +1 -0
  140. package/dist/processTree.js +84 -0
  141. package/dist/processTree.js.map +1 -0
  142. package/dist/screenshotServiceClient.d.ts +5 -1
  143. package/dist/screenshotServiceClient.d.ts.map +1 -1
  144. package/dist/screenshotServiceClient.js +8 -2
  145. package/dist/screenshotServiceClient.js.map +1 -1
  146. package/dist/server/httpServer.d.ts +1 -1
  147. package/dist/server/httpServer.d.ts.map +1 -1
  148. package/dist/server/httpServer.js +20 -22
  149. package/dist/server/httpServer.js.map +1 -1
  150. package/dist/server/serverConfig.d.ts +23 -6
  151. package/dist/server/serverConfig.d.ts.map +1 -1
  152. package/dist/server/serverConfig.js +11 -18
  153. package/dist/server/serverConfig.js.map +1 -1
  154. package/dist/server/viteServer.d.ts +16 -1
  155. package/dist/server/viteServer.d.ts.map +1 -1
  156. package/dist/server/viteServer.js +86 -5
  157. package/dist/server/viteServer.js.map +1 -1
  158. package/dist/storage.d.ts +2 -1
  159. package/dist/storage.d.ts.map +1 -1
  160. package/dist/storage.js +1 -1
  161. package/dist/storage.js.map +1 -1
  162. package/dist/utils.d.ts +3 -30
  163. package/dist/utils.d.ts.map +1 -1
  164. package/dist/utils.js +4 -24
  165. package/dist/utils.js.map +1 -1
  166. package/dist/visualCache.d.ts +2 -1
  167. package/dist/visualCache.d.ts.map +1 -1
  168. package/dist/visualCache.js +4 -3
  169. package/dist/visualCache.js.map +1 -1
  170. package/dist/viteProjectRef.d.ts +4 -12
  171. package/dist/viteProjectRef.d.ts.map +1 -1
  172. package/dist/viteProjectRef.js +9 -17
  173. package/dist/viteProjectRef.js.map +1 -1
  174. package/package.json +20 -19
  175. package/dist/commands/artifactCommand.d.ts +0 -14
  176. package/dist/commands/artifactCommand.d.ts.map +0 -1
  177. package/dist/commands/screenshotCommand.d.ts +0 -19
  178. package/dist/commands/screenshotCommand.d.ts.map +0 -1
  179. package/dist/packages/simple-api/dist/chunk-3R7GHWBM.js.map +0 -1
  180. package/dist/packages/simple-api/dist/chunk-SGBCNXYH.js.map +0 -1
  181. package/dist/packages/simple-api/dist/chunk-TAEFVNPN.js.map +0 -1
@@ -0,0 +1,212 @@
1
+ import * as fs from 'node:fs/promises';
2
+ import * as path from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import libCoverage from 'istanbul-lib-coverage';
5
+ import v8ToIstanbul from 'v8-to-istanbul';
6
+
7
+ const { createCoverageMap } = libCoverage;
8
+ /**
9
+ * Reads `window.__coverage__` produced by vite-plugin-istanbul and validates
10
+ * it has the Istanbul shape. Returns an empty map if the global is not present.
11
+ */
12
+ function validateIstanbulMap(raw, logger) {
13
+ if (!raw || typeof raw !== 'object') {
14
+ logger.debug('No __coverage__ global found on the page (or not an object)');
15
+ return {};
16
+ }
17
+ const map = raw;
18
+ const out = {};
19
+ for (const [, value] of Object.entries(map)) {
20
+ if (!value || typeof value !== 'object') {
21
+ continue;
22
+ }
23
+ const v = value;
24
+ if (typeof v.path !== 'string' || !v.statementMap || !v.s) {
25
+ continue;
26
+ }
27
+ // Normalize the path to OS-native absolute (e.g. `D:/foo` → `D:\foo` on Windows).
28
+ const absPath = path.resolve(v.path);
29
+ out[absPath] = { ...v, path: absPath };
30
+ }
31
+ return out;
32
+ }
33
+ /**
34
+ * Convert raw V8 JS coverage entries (from Playwright) into an Istanbul-shaped
35
+ * coverage map. Entries without source content or with non-resolvable URLs
36
+ * are skipped.
37
+ */
38
+ async function v8EntriesToIstanbul(entries, options) {
39
+ const { viteServerUrl, projectRoot, logger } = options;
40
+ const map = createCoverageMap({});
41
+ const baseUrl = viteServerUrl.endsWith('/') ? viteServerUrl.slice(0, -1) : viteServerUrl;
42
+ for (const entry of entries) {
43
+ if (!entry.source) {
44
+ logger.trace(`v8: skipping ${entry.url} (no source)`);
45
+ continue;
46
+ }
47
+ const filePath = _v8UrlToFsPath(entry.url, baseUrl, projectRoot.value);
48
+ if (!filePath) {
49
+ logger.trace(`v8: skipping ${entry.url} (cannot resolve to fs path)`);
50
+ continue;
51
+ }
52
+ if (options.exclude?.some(re => re.test(filePath))) {
53
+ logger.trace(`v8: excluded ${filePath}`);
54
+ continue;
55
+ }
56
+ if (options.include && !options.include.some(re => re.test(filePath))) {
57
+ logger.trace(`v8: not included ${filePath}`);
58
+ continue;
59
+ }
60
+ try {
61
+ const converter = v8ToIstanbul(filePath, 0, { source: entry.source });
62
+ await converter.load();
63
+ converter.applyCoverage(entry.functions);
64
+ const istanbul = converter.toIstanbul();
65
+ for (const fileCoverage of Object.values(istanbul)) {
66
+ map.merge({ [fileCoverage.path]: fileCoverage });
67
+ }
68
+ converter.destroy();
69
+ }
70
+ catch (err) {
71
+ logger.debug(`v8: failed to convert ${filePath}: ${err instanceof Error ? err.message : String(err)}`);
72
+ }
73
+ }
74
+ return JSON.parse(JSON.stringify(map.toJSON()));
75
+ }
76
+ /** Merge multiple Istanbul coverage maps into one (file/statement/branch hit counts summed). */
77
+ function mergeIstanbul(maps) {
78
+ const merged = createCoverageMap({});
79
+ for (const m of maps) {
80
+ merged.merge(m);
81
+ }
82
+ return JSON.parse(JSON.stringify(merged.toJSON()));
83
+ }
84
+ /**
85
+ * Convert raw Playwright CSS coverage entries into an Istanbul-shaped coverage
86
+ * map by treating each non-blank line as a statement. A line is considered
87
+ * "hit" if any covered byte-range overlaps with the line's character range.
88
+ *
89
+ * This lets CSS files appear in the same `coverage-final.json` as JS sources,
90
+ * so any tool that consumes Istanbul coverage (nyc, the coverage viewer, etc.)
91
+ * renders CSS as if it were source code.
92
+ */
93
+ function cssEntriesToIstanbul(entries, options) {
94
+ const { viteServerUrl, projectRoot, logger } = options;
95
+ const baseUrl = viteServerUrl.endsWith('/') ? viteServerUrl.slice(0, -1) : viteServerUrl;
96
+ const out = {};
97
+ for (const entry of entries) {
98
+ if (!entry.text) {
99
+ logger.trace(`css: skipping ${entry.url} (no text)`);
100
+ continue;
101
+ }
102
+ const filePath = _v8UrlToFsPath(entry.url, baseUrl, projectRoot.value);
103
+ if (!filePath) {
104
+ logger.trace(`css: skipping ${entry.url} (cannot resolve to fs path)`);
105
+ continue;
106
+ }
107
+ if (options.exclude?.some(re => re.test(filePath))) {
108
+ logger.trace(`css: excluded ${filePath}`);
109
+ continue;
110
+ }
111
+ if (options.include && !options.include.some(re => re.test(filePath))) {
112
+ logger.trace(`css: not included ${filePath}`);
113
+ continue;
114
+ }
115
+ const lines = entry.text.split('\n');
116
+ const statementMap = {};
117
+ const s = {};
118
+ let offset = 0;
119
+ let nextId = 0;
120
+ for (let lineIdx = 0; lineIdx < lines.length; lineIdx++) {
121
+ const line = lines[lineIdx];
122
+ const lineStart = offset;
123
+ const lineEnd = offset + line.length;
124
+ offset = lineEnd + 1; // account for the '\n' that split() consumed
125
+ if (line.trim() === '') {
126
+ continue;
127
+ }
128
+ const id = String(nextId++);
129
+ statementMap[id] = {
130
+ start: { line: lineIdx + 1, column: 0 },
131
+ end: { line: lineIdx + 1, column: line.length },
132
+ };
133
+ const hit = entry.ranges.some(r => r.start < lineEnd && r.end > lineStart);
134
+ s[id] = hit ? 1 : 0;
135
+ }
136
+ // If we've already seen this file (e.g. multiple stylesheet records for
137
+ // the same URL — happens when a reload re-loads the same .css), merge
138
+ // hit counts: a line is covered if it was hit in any record. We assume
139
+ // the text is identical across records of the same URL; if it differs
140
+ // (post-reload edit), the first record's text wins.
141
+ const existing = out[filePath];
142
+ if (existing) {
143
+ for (const id of Object.keys(existing.s)) {
144
+ if (s[id] && s[id] > 0) {
145
+ existing.s[id] = (existing.s[id] ?? 0) + s[id];
146
+ }
147
+ }
148
+ continue;
149
+ }
150
+ out[filePath] = {
151
+ path: filePath,
152
+ statementMap,
153
+ fnMap: {},
154
+ branchMap: {},
155
+ s,
156
+ f: {},
157
+ b: {},
158
+ };
159
+ }
160
+ return out;
161
+ }
162
+ /** Write a bare Istanbul coverage map (`coverage-final.json` format) to disk. */
163
+ async function writeIstanbulFile(filePath, map) {
164
+ await fs.mkdir(path.dirname(filePath.value), { recursive: true });
165
+ await fs.writeFile(filePath.value, JSON.stringify(map, null, 2) + '\n', 'utf-8');
166
+ }
167
+ function _v8UrlToFsPath(url, viteServerBase, projectRoot) {
168
+ // file:// urls are direct
169
+ if (url.startsWith('file://')) {
170
+ try {
171
+ return path.resolve(fileURLToPath(url));
172
+ }
173
+ catch {
174
+ return undefined;
175
+ }
176
+ }
177
+ let urlPath;
178
+ if (url.startsWith(viteServerBase)) {
179
+ const tail = url.slice(viteServerBase.length).split('?')[0].split('#')[0];
180
+ urlPath = tail.startsWith('/') ? tail : `/${tail}`;
181
+ }
182
+ else if (url.startsWith('/') && !url.startsWith('//')) {
183
+ // Root-relative URLs (e.g. `/src/foo.css`) — produced by sourceURL
184
+ // annotations on inline stylesheets, or stripped from a server URL.
185
+ urlPath = url.split('?')[0].split('#')[0];
186
+ }
187
+ else {
188
+ // External URLs (CDN, etc.) — skip
189
+ return undefined;
190
+ }
191
+ // `/@fs/<abs>` is Vite's escape hatch for files outside the project root,
192
+ // where `<abs>` is already an absolute disk path (POSIX-encoded on Windows).
193
+ const fsMatch = /^\/@fs\/(.+)$/.exec(urlPath);
194
+ if (fsMatch) {
195
+ return path.resolve(decodeURIComponent(fsMatch[1]));
196
+ }
197
+ // Strip Vite-internal prefixes that aren't real files.
198
+ if (urlPath.startsWith('/@id/') || urlPath.startsWith('/@vite/') || urlPath.startsWith('/@react-refresh')) {
199
+ return undefined;
200
+ }
201
+ // Skip the explorer's own virtual HTML route (carries an inline <style>
202
+ // with the page reset rules — not a source file we want to cover).
203
+ if (urlPath === '/___explorer' || urlPath.startsWith('/___explorer.')) {
204
+ return undefined;
205
+ }
206
+ // Resolve against the project root. We use posix join then resolve to get a
207
+ // canonical OS-native absolute path (e.g. on Windows: D:\proj\src\foo.css).
208
+ return path.resolve(projectRoot, urlPath.replace(/^\/+/, ''));
209
+ }
210
+
211
+ export { cssEntriesToIstanbul, mergeIstanbul, v8EntriesToIstanbul, validateIstanbulMap, writeIstanbulFile };
212
+ //# sourceMappingURL=coverage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage.js","sources":["../src/coverage.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -90,6 +90,9 @@ export declare class DaemonService {
90
90
  sessionName: string;
91
91
  includeImage?: boolean | undefined;
92
92
  stabilityCheck?: boolean | undefined;
93
+ reloadBeforeRender?: boolean | undefined;
94
+ input?: unknown;
95
+ disposeAfter?: boolean | undefined;
93
96
  }, {
94
97
  hash: string;
95
98
  sourceTreeId: string;
@@ -97,13 +100,15 @@ export declare class DaemonService {
97
100
  hasError: boolean;
98
101
  error: import("../componentExplorer.js").ExceptionError | undefined;
99
102
  events: import("../componentExplorer.js").RenderEvent[] | undefined;
100
- resultData: unknown;
103
+ output: unknown;
101
104
  isStable: boolean;
102
105
  stabilityScreenshots: {
103
106
  hash: string;
104
107
  delayMs: number;
105
108
  image: string | undefined;
106
109
  }[];
110
+ previousDispose: import("../componentExplorer.js").DisposeReport | undefined;
111
+ currentDispose: import("../componentExplorer.js").DisposeReport | undefined;
107
112
  } | {
108
113
  hash: string | undefined;
109
114
  sourceTreeId: string;
@@ -111,7 +116,9 @@ export declare class DaemonService {
111
116
  hasError: boolean;
112
117
  error: import("../componentExplorer.js").ExceptionError | undefined;
113
118
  events: import("../componentExplorer.js").RenderEvent[] | undefined;
114
- resultData: unknown;
119
+ output: unknown;
120
+ previousDispose: import("../componentExplorer.js").DisposeReport | undefined;
121
+ currentDispose: import("../componentExplorer.js").DisposeReport | undefined;
115
122
  isStable?: undefined;
116
123
  stabilityScreenshots?: undefined;
117
124
  }, DaemonContext>;
@@ -120,6 +127,8 @@ export declare class DaemonService {
120
127
  sourceTreeId: string;
121
128
  sessionName: string;
122
129
  includeImages?: boolean | undefined;
130
+ reloadBetweenFixtures?: boolean | undefined;
131
+ input?: unknown;
123
132
  }, {
124
133
  sourceTreeId: string;
125
134
  screenshots: {
@@ -129,7 +138,7 @@ export declare class DaemonService {
129
138
  hasError: boolean;
130
139
  error: import("../componentExplorer.js").ExceptionError | undefined;
131
140
  events: import("../componentExplorer.js").RenderEvent[] | undefined;
132
- resultData: unknown;
141
+ output: unknown;
133
142
  }[];
134
143
  }, DaemonContext>;
135
144
  compare: import("@hediet/simple-api").IMethod<{
@@ -148,11 +157,11 @@ export declare class DaemonService {
148
157
  baselineHasError: boolean;
149
158
  baselineError: import("../componentExplorer.js").ExceptionError | undefined;
150
159
  baselineEvents: import("../componentExplorer.js").RenderEvent[] | undefined;
151
- baselineResultData: unknown;
160
+ baselineOutput: unknown;
152
161
  currentHasError: boolean;
153
162
  currentError: import("../componentExplorer.js").ExceptionError | undefined;
154
163
  currentEvents: import("../componentExplorer.js").RenderEvent[] | undefined;
155
- currentResultData: unknown;
164
+ currentOutput: unknown;
156
165
  labels: readonly string[] | undefined;
157
166
  labelsBefore: readonly string[] | undefined;
158
167
  approval: import("./approvalStore.js").ApprovalInfo | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"DaemonService.d.ts","sourceRoot":"","sources":["../../src/daemon/DaemonService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DaemonService.d.ts","sourceRoot":"","sources":["../../src/daemon/DaemonService.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,11 @@ import { derived } from '../external/vscode-observables/observables/dist/observa
7
7
  import { waitForState } from '../external/vscode-observables/observables/dist/observableInternal/utils/utilsCancellation.js';
8
8
  import '../external/vscode-observables/observables/dist/observableInternal/utils/utils.js';
9
9
  import '../external/vscode-observables/observables/dist/observableInternal/observables/observableFromEvent.js';
10
- import { createApiFactory } from '../packages/simple-api/dist/chunk-3R7GHWBM.js';
11
- import { AsyncStream } from '../packages/simple-api/dist/chunk-SGBCNXYH.js';
10
+ import { createApiFactory } from '../packages/simple-api/dist/chunk-FJ7AVNQE.js';
11
+ import { AsyncStream } from '../packages/simple-api/dist/chunk-TTRCY65Z.js';
12
12
  import { ExplorerSession } from '../explorerSession.js';
13
13
  import '../config.js';
14
+ import { RelativePath } from '../path.js';
14
15
  import { GitIndexResolver } from '../git/gitIndexResolver.js';
15
16
  import { DirtyWorktreeError } from '../git/gitWorktreeManager.js';
16
17
  import { execGit } from '../git/gitUtils.js';
@@ -114,7 +115,7 @@ class DaemonService {
114
115
  this._logger = _logger;
115
116
  this._browserFactory = _browserFactory;
116
117
  this.approvals = new FileApprovalStore(approvalStorePath);
117
- this.visualCache = new VisualCache(`${_config.screenshotDir}/visual-cache.json`);
118
+ this.visualCache = new VisualCache(_config.screenshotDir.join(new RelativePath('visual-cache.json')));
118
119
  this._activityTracker = new ActivityTracker(idleTimeoutMs, () => this.requestShutdown(), this._logger);
119
120
  if (_config.worktreePool) {
120
121
  this._worktreePool = new WorktreePool(_config.worktreePool.maxSlots, _config.repo.worktreeRootPath());
@@ -123,7 +124,7 @@ class DaemonService {
123
124
  }
124
125
  static async create(config, logger, pipeName, options) {
125
126
  const browserFactory = new PlaywrightBrowserPageFactory(options?.headed ?? false, 30_000, logger);
126
- const approvalStorePath = `${config.screenshotDir}/approvals.json`;
127
+ const approvalStorePath = config.screenshotDir.join(new RelativePath('approvals.json'));
127
128
  const idleTimeoutMs = options?.idleTimeoutMs ?? 5 * 60 * 1000; // 5 minutes default
128
129
  const svc = new DaemonService(config, pipeName, logger, browserFactory, approvalStorePath, idleTimeoutMs);
129
130
  for (const sessionConfig of config.sessions) {
@@ -159,13 +160,20 @@ class DaemonService {
159
160
  sessionName: z.string(),
160
161
  includeImage: z.boolean().optional(),
161
162
  stabilityCheck: z.boolean().optional(),
163
+ reloadBeforeRender: z.boolean().optional(),
164
+ input: z.unknown().optional(),
165
+ disposeAfter: z.boolean().optional(),
162
166
  },
163
167
  }, async (args) => {
164
168
  this._activityTracker.reportActivity();
165
169
  const session = this.getSession(args.sessionName);
166
170
  this.assertSourceTreeId(args.sessionName, args.sourceTreeId);
167
171
  if (args.stabilityCheck) {
168
- const result = await session.explorer.screenshotFixtureStabilityCheck(args.fixtureId);
172
+ const result = await session.explorer.screenshotFixtureStabilityCheck(args.fixtureId, {
173
+ reloadBeforeRender: args.reloadBeforeRender,
174
+ input: args.input,
175
+ disposeAfter: args.disposeAfter,
176
+ });
169
177
  this.assertSourceTreeId(args.sessionName, args.sourceTreeId);
170
178
  const hashes = result.screenshots.map(s => contentHash(s.image));
171
179
  const isStable = hashes[0] === hashes[1] && hashes[1] === hashes[2];
@@ -185,12 +193,18 @@ class DaemonService {
185
193
  hasError: result.hasError,
186
194
  error: result.error,
187
195
  events: result.events.length > 0 ? result.events : undefined,
188
- resultData: result.resultData,
196
+ output: result.output,
189
197
  isStable,
190
198
  stabilityScreenshots,
199
+ previousDispose: result.previousDispose,
200
+ currentDispose: result.currentDispose,
191
201
  };
192
202
  }
193
- const result = await session.explorer.screenshotFixture(args.fixtureId);
203
+ const result = await session.explorer.screenshotFixture(args.fixtureId, {
204
+ reloadBeforeRender: args.reloadBeforeRender,
205
+ input: args.input,
206
+ disposeAfter: args.disposeAfter,
207
+ });
194
208
  this.assertSourceTreeId(args.sessionName, args.sourceTreeId);
195
209
  return {
196
210
  hash: result.image ? contentHash(result.image) : undefined,
@@ -201,7 +215,9 @@ class DaemonService {
201
215
  hasError: result.hasError,
202
216
  error: result.error,
203
217
  events: result.events?.length > 0 ? result.events : undefined,
204
- resultData: result.resultData,
218
+ output: result.output,
219
+ previousDispose: result.previousDispose,
220
+ currentDispose: result.currentDispose,
205
221
  };
206
222
  }),
207
223
  takeBatch: createMethod({
@@ -210,6 +226,8 @@ class DaemonService {
210
226
  sourceTreeId: z.string(),
211
227
  sessionName: z.string(),
212
228
  includeImages: z.boolean().optional(),
229
+ reloadBetweenFixtures: z.boolean().optional(),
230
+ input: z.unknown().optional(),
213
231
  },
214
232
  }, async (args) => {
215
233
  this._activityTracker.reportActivity();
@@ -219,8 +237,14 @@ class DaemonService {
219
237
  this._logger.trace(`takeBatch: ${args.fixtureIds.length} fixtures, session=${args.sessionName}`);
220
238
  const startTime = Date.now();
221
239
  const screenshots = [];
222
- for (const fixtureId of args.fixtureIds) {
223
- const result = await session.explorer.screenshotFixture(fixtureId);
240
+ for (let i = 0; i < args.fixtureIds.length; i++) {
241
+ const fixtureId = args.fixtureIds[i];
242
+ const result = await session.explorer.screenshotFixture(fixtureId, {
243
+ reloadOnError: true,
244
+ // Reload between fixtures (skip before the first one — the page is already fresh)
245
+ reloadBeforeRender: args.reloadBetweenFixtures && i > 0,
246
+ input: args.input,
247
+ });
224
248
  this.assertSourceTreeId(args.sessionName, args.sourceTreeId);
225
249
  screenshots.push({
226
250
  fixtureId,
@@ -231,7 +255,7 @@ class DaemonService {
231
255
  hasError: result.hasError,
232
256
  error: result.error,
233
257
  events: result.events.length > 0 ? result.events : undefined,
234
- resultData: result.resultData,
258
+ output: result.output,
235
259
  });
236
260
  }
237
261
  this._logger.trace(`takeBatch: done in ${Date.now() - startTime}ms`);
@@ -280,11 +304,11 @@ class DaemonService {
280
304
  baselineHasError: baselineResult.hasError,
281
305
  baselineError: baselineResult.error,
282
306
  baselineEvents: baselineResult.events.length > 0 ? baselineResult.events : undefined,
283
- baselineResultData: baselineResult.resultData,
307
+ baselineOutput: baselineResult.output,
284
308
  currentHasError: currentResult.hasError,
285
309
  currentError: currentResult.error,
286
310
  currentEvents: currentResult.events.length > 0 ? currentResult.events : undefined,
287
- currentResultData: currentResult.resultData,
311
+ currentOutput: currentResult.output,
288
312
  labels,
289
313
  labelsBefore: labelsChanged ? baselineFixture.labels : undefined,
290
314
  approval: (baselineHash !== undefined && currentHash !== undefined && baselineHash !== currentHash)
@@ -466,7 +490,7 @@ class DaemonService {
466
490
  sourceKind: 'worktree',
467
491
  serverUrl: session.serverUrl,
468
492
  sourceTreeId: reader ? session.sourceTreeId.read(reader).value : session.sourceTreeId.get().value,
469
- worktreePath: meta.worktreePath,
493
+ worktreePath: meta.worktreePath.value,
470
494
  ref: meta.ref,
471
495
  });
472
496
  }
@@ -494,7 +518,7 @@ class DaemonService {
494
518
  sourceKind: 'worktree',
495
519
  serverUrl: session.serverUrl,
496
520
  sourceTreeId: reader ? session.sourceTreeId.read(reader).value : session.sourceTreeId.get().value,
497
- worktreePath: meta.worktreePath,
521
+ worktreePath: meta.worktreePath.value,
498
522
  ref: meta.ref,
499
523
  });
500
524
  }