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

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
package/dist/path.js ADDED
@@ -0,0 +1,78 @@
1
+ import * as path from 'node:path';
2
+
3
+ class PathOrigin {
4
+ type;
5
+ args;
6
+ constructor(type, args) {
7
+ this.type = type;
8
+ this.args = args;
9
+ }
10
+ toString() {
11
+ const argStr = Object.entries(this.args)
12
+ .map(([k, v]) => `${k}: ${v}`)
13
+ .join(', ');
14
+ return `${this.type}(${argStr})`;
15
+ }
16
+ }
17
+ class AbsolutePath {
18
+ _origin;
19
+ value;
20
+ constructor(value, _origin) {
21
+ this._origin = _origin;
22
+ if (!path.isAbsolute(value)) {
23
+ throw new Error(`Expected absolute path, got: ${value}`);
24
+ }
25
+ this.value = path.normalize(value);
26
+ }
27
+ static from(value, origin) {
28
+ return new AbsolutePath(value, origin);
29
+ }
30
+ static resolve(value) {
31
+ return new AbsolutePath(path.resolve(value), new PathOrigin('resolve', { from: value }));
32
+ }
33
+ static fromAbsoluteOrRelative(value, options) {
34
+ if (path.isAbsolute(value)) {
35
+ return AbsolutePath.from(value);
36
+ }
37
+ return options.base.join(new RelativePath(value));
38
+ }
39
+ debugName(name) {
40
+ return new AbsolutePath(this.value, new PathOrigin('named', { name, base: this }));
41
+ }
42
+ join(relative) {
43
+ return new AbsolutePath(path.resolve(this.value, relative.value), new PathOrigin('join', { base: this, relative }));
44
+ }
45
+ relativeTo(base) {
46
+ return new RelativePath(path.relative(base.value, this.value), new PathOrigin('relative', { path: this, base }));
47
+ }
48
+ rebase(currentRoot, newRoot) {
49
+ const rel = path.relative(currentRoot.value, this.value);
50
+ return new AbsolutePath(path.resolve(newRoot.value, rel), new PathOrigin('rebase', { path: this, from: currentRoot, to: newRoot }));
51
+ }
52
+ dirname() {
53
+ return new AbsolutePath(path.dirname(this.value), new PathOrigin('dirname', { path: this }));
54
+ }
55
+ toString() {
56
+ return this.value;
57
+ }
58
+ }
59
+ class RelativePath {
60
+ _origin;
61
+ value;
62
+ constructor(value, _origin) {
63
+ this._origin = _origin;
64
+ if (path.isAbsolute(value)) {
65
+ throw new Error(`Expected relative path, got: ${value}`);
66
+ }
67
+ this.value = value;
68
+ }
69
+ debugName(name) {
70
+ return new RelativePath(this.value, new PathOrigin('named', { name, base: this }));
71
+ }
72
+ toString() {
73
+ return this.value;
74
+ }
75
+ }
76
+
77
+ export { AbsolutePath, PathOrigin, RelativePath };
78
+ //# sourceMappingURL=path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.js","sources":["../src/path.ts"],"sourcesContent":[null],"names":["nodePath"],"mappings":";;MAEa,UAAU,CAAA;AAEN,IAAA,IAAA;AACA,IAAA,IAAA;IAFb,WAAA,CACa,IAAY,EACZ,IAA6B,EAAA;QAD7B,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,IAAI,GAAJ,IAAI;IACb;IAEJ,QAAQ,GAAA;QACJ,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;AAClC,aAAA,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAA,EAAG,CAAC,CAAA,EAAA,EAAK,CAAC,EAAE;aAC5B,IAAI,CAAC,IAAI,CAAC;AACf,QAAA,OAAO,GAAG,IAAI,CAAC,IAAI,CAAA,CAAA,EAAI,MAAM,GAAG;IACpC;AACH;MAEY,YAAY,CAAA;AAGuB,IAAA,OAAA;AAFnC,IAAA,KAAK;IAEd,WAAA,CAAoB,KAAa,EAAW,OAAoB,EAAA;QAApB,IAAA,CAAA,OAAO,GAAP,OAAO;QAC/C,IAAI,CAACA,IAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AAC7B,YAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,CAAA,CAAE,CAAC;QAC5D;QACA,IAAI,CAAC,KAAK,GAAGA,IAAQ,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1C;AAEA,IAAA,OAAO,IAAI,CAAC,KAAa,EAAE,MAAmB,EAAA;AAC1C,QAAA,OAAO,IAAI,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC;IAC1C;IAEA,OAAO,OAAO,CAAC,KAAa,EAAA;QACxB,OAAO,IAAI,YAAY,CAACA,IAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAChG;AAEA,IAAA,OAAO,sBAAsB,CAAC,KAAa,EAAE,OAA+B,EAAA;AACxE,QAAA,IAAIA,IAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AAC5B,YAAA,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QACnC;AACA,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IACrD;AAEA,IAAA,SAAS,CAAC,IAAY,EAAA;QAClB,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF;AAEA,IAAA,IAAI,CAAC,QAAsB,EAAA;AACvB,QAAA,OAAO,IAAI,YAAY,CACnBA,IAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAC5C,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CACnD;IACL;AAEA,IAAA,UAAU,CAAC,IAAkB,EAAA;AACzB,QAAA,OAAO,IAAI,YAAY,CACnBA,IAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EACzC,IAAI,UAAU,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CACnD;IACL;IAEA,MAAM,CAAC,WAAyB,EAAE,OAAqB,EAAA;AACnD,QAAA,MAAM,GAAG,GAAGA,IAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;AAC5D,QAAA,OAAO,IAAI,YAAY,CACnBA,IAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EACpC,IAAI,UAAU,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAC3E;IACL;IAEA,OAAO,GAAA;QACH,OAAO,IAAI,YAAY,CACnBA,IAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAC5B,IAAI,UAAU,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAC5C;IACL;IAEA,QAAQ,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK;IACrB;AACH;MAEY,YAAY,CAAA;AAGe,IAAA,OAAA;AAF3B,IAAA,KAAK;IAEd,WAAA,CAAY,KAAa,EAAW,OAAoB,EAAA;QAApB,IAAA,CAAA,OAAO,GAAP,OAAO;AACvC,QAAA,IAAIA,IAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AAC5B,YAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,CAAA,CAAE,CAAC;QAC5D;AACA,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACtB;AAEA,IAAA,SAAS,CAAC,IAAY,EAAA;QAClB,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF;IAEA,QAAQ,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK;IACrB;AACH;;;;"}
@@ -0,0 +1,14 @@
1
+ import { type ChildProcess } from 'node:child_process';
2
+ export interface ProcessTree {
3
+ readonly process: ChildProcess;
4
+ /**
5
+ * Terminates the process and its entire tree. Attempts a graceful shutdown
6
+ * first and escalates to a forceful kill if the tree is still alive after a
7
+ * grace period. Resolves once the tree has exited or has been force-killed.
8
+ */
9
+ kill(): Promise<void>;
10
+ }
11
+ export declare function spawnShellWithTree(cmd: string, options?: {
12
+ cwd?: string;
13
+ }): ProcessTree;
14
+ //# sourceMappingURL=processTree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processTree.d.ts","sourceRoot":"","sources":["../src/processTree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAS,MAAM,oBAAoB,CAAC;AAK9D,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAMvF"}
@@ -0,0 +1,84 @@
1
+ import { spawn } from 'node:child_process';
2
+
3
+ /** Time to wait for a graceful (SIGTERM) shutdown before forcefully killing the tree. */
4
+ const GRACE_MS = 5_000;
5
+ function spawnShellWithTree(cmd, options) {
6
+ if (process.platform === 'win32') {
7
+ return _spawnWin32(cmd, options);
8
+ }
9
+ else {
10
+ return _spawnUnix(cmd, options);
11
+ }
12
+ }
13
+ function _spawnWin32(cmd, options) {
14
+ const proc = spawn(cmd, { shell: true, stdio: 'pipe', cwd: options?.cwd, windowsHide: true });
15
+ return {
16
+ process: proc,
17
+ async kill() {
18
+ if (proc.killed || proc.pid === undefined) {
19
+ return;
20
+ }
21
+ const pid = proc.pid;
22
+ const exited = _waitForExit(proc);
23
+ // Request a graceful tree shutdown first.
24
+ _runTaskkill(['/T', '/PID', String(pid)]);
25
+ if (await _raceExit(exited)) {
26
+ return;
27
+ }
28
+ // Still alive after the grace period: force-kill the whole tree.
29
+ _runTaskkill(['/T', '/F', '/PID', String(pid)]);
30
+ },
31
+ };
32
+ }
33
+ function _spawnUnix(cmd, options) {
34
+ // detached creates a new process group so we can signal the entire tree.
35
+ const proc = spawn(cmd, { shell: true, stdio: 'pipe', cwd: options?.cwd, windowsHide: true, detached: true });
36
+ return {
37
+ process: proc,
38
+ async kill() {
39
+ if (proc.killed || proc.pid === undefined) {
40
+ return;
41
+ }
42
+ const pid = proc.pid;
43
+ const exited = _waitForExit(proc);
44
+ // SIGTERM the whole process group; the server may handle it gracefully.
45
+ try {
46
+ process.kill(-pid, 'SIGTERM');
47
+ }
48
+ catch {
49
+ return; /* already exited */
50
+ }
51
+ if (await _raceExit(exited)) {
52
+ return;
53
+ }
54
+ // Still alive after the grace period: SIGKILL cannot be caught or ignored.
55
+ try {
56
+ process.kill(-pid, 'SIGKILL');
57
+ }
58
+ catch { /* already exited */ }
59
+ },
60
+ };
61
+ }
62
+ function _runTaskkill(args) {
63
+ spawn('taskkill', args, { windowsHide: true, stdio: 'ignore' });
64
+ }
65
+ function _waitForExit(proc) {
66
+ return new Promise((resolve) => {
67
+ if (proc.exitCode !== null || proc.signalCode !== null) {
68
+ resolve();
69
+ return;
70
+ }
71
+ proc.once('exit', () => resolve());
72
+ });
73
+ }
74
+ /** Resolves to `true` if the process exited within the grace period, `false` on timeout. */
75
+ function _raceExit(exited) {
76
+ let timer;
77
+ const timeout = new Promise((resolve) => {
78
+ timer = setTimeout(() => resolve(false), GRACE_MS);
79
+ });
80
+ return Promise.race([exited.then(() => true), timeout]).finally(() => clearTimeout(timer));
81
+ }
82
+
83
+ export { spawnShellWithTree };
84
+ //# sourceMappingURL=processTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processTree.js","sources":["../src/processTree.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -5,11 +5,13 @@ export interface ScreenshotServiceClientOptions {
5
5
  export interface CompareEntry {
6
6
  readonly fixtureId: string;
7
7
  readonly imageUrl: string;
8
+ readonly changeCount?: number;
8
9
  }
9
10
  export interface CompareChangedEntry {
10
11
  readonly fixtureId: string;
11
12
  readonly beforeImageUrl: string;
12
13
  readonly afterImageUrl: string;
14
+ readonly changeCount?: number;
13
15
  }
14
16
  export interface CompareResult {
15
17
  readonly baseCommitSha: string;
@@ -22,6 +24,8 @@ export declare class ScreenshotServiceClient {
22
24
  private readonly _baseUrl;
23
25
  private readonly _apiKey?;
24
26
  constructor(options: ScreenshotServiceClientOptions);
25
- compare(owner: string, repo: string, baseCommitSha: string, currentCommitSha: string): Promise<CompareResult>;
27
+ compare(owner: string, repo: string, baseCommitSha: string, currentCommitSha: string, options?: {
28
+ changeCountSinceDays?: number;
29
+ }): Promise<CompareResult>;
26
30
  }
27
31
  //# sourceMappingURL=screenshotServiceClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"screenshotServiceClient.d.ts","sourceRoot":"","sources":["../src/screenshotServiceClient.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;CAC5C;AAED,qBAAa,uBAAuB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;gBAEtB,OAAO,EAAE,8BAA8B;IAK7C,OAAO,CACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,GACtB,OAAO,CAAC,aAAa,CAAC;CAyBzB"}
1
+ {"version":3,"file":"screenshotServiceClient.d.ts","sourceRoot":"","sources":["../src/screenshotServiceClient.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;CAC5C;AAED,qBAAa,uBAAuB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;gBAEtB,OAAO,EAAE,8BAA8B;IAK7C,OAAO,CACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,MAAM,CAAA;KAAE,GACzC,OAAO,CAAC,aAAa,CAAC;CA+BzB"}
@@ -5,7 +5,7 @@ class ScreenshotServiceClient {
5
5
  this._baseUrl = options.baseUrl.replace(/\/$/, '');
6
6
  this._apiKey = options.apiKey;
7
7
  }
8
- async compare(owner, repo, baseCommitSha, currentCommitSha) {
8
+ async compare(owner, repo, baseCommitSha, currentCommitSha, options) {
9
9
  const headers = {
10
10
  'Content-Type': 'application/json',
11
11
  };
@@ -15,7 +15,13 @@ class ScreenshotServiceClient {
15
15
  const response = await fetch(`${this._baseUrl}/compare`, {
16
16
  method: 'POST',
17
17
  headers,
18
- body: JSON.stringify({ owner, repo, baseCommitSha, currentCommitSha }),
18
+ body: JSON.stringify({
19
+ owner,
20
+ repo,
21
+ baseCommitSha,
22
+ currentCommitSha,
23
+ changeCountSinceDays: options?.changeCountSinceDays,
24
+ }),
19
25
  });
20
26
  if (response.ok) {
21
27
  return response.json();
@@ -1 +1 @@
1
- {"version":3,"file":"screenshotServiceClient.js","sources":["../src/screenshotServiceClient.ts"],"sourcesContent":[null],"names":[],"mappings":"MAwBa,uBAAuB,CAAA;AAClB,IAAA,QAAQ;AACR,IAAA,OAAO;AAExB,IAAA,WAAA,CAAY,OAAuC,EAAA;AAClD,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAClD,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM;IAC9B;IAEA,MAAM,OAAO,CACZ,KAAa,EACb,IAAY,EACZ,aAAqB,EACrB,gBAAwB,EAAA;AAExB,QAAA,MAAM,OAAO,GAA2B;AACvC,YAAA,cAAc,EAAE,kBAAkB;SAClC;AACD,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO;QACpC;QAEA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAA,QAAA,CAAU,EAAE;AACxD,YAAA,MAAM,EAAE,MAAM;YACd,OAAO;AACP,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;AACtE,SAAA,CAAC;AAEF,QAAA,IAAI,QAAQ,CAAC,EAAE,EAAE;AAChB,YAAA,OAAO,QAAQ,CAAC,IAAI,EAA4B;QACjD;AAEA,QAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAuB;QAC1E,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,CAAA,0BAAA,EAA6B,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC;QAC3D;QAEA,MAAM,IAAI,KAAK,CAAC,CAAA,mCAAA,EAAsC,QAAQ,CAAC,MAAM,CAAA,CAAE,CAAC;IACzE;AACA;;;;"}
1
+ {"version":3,"file":"screenshotServiceClient.js","sources":["../src/screenshotServiceClient.ts"],"sourcesContent":[null],"names":[],"mappings":"MA0Ba,uBAAuB,CAAA;AAClB,IAAA,QAAQ;AACR,IAAA,OAAO;AAExB,IAAA,WAAA,CAAY,OAAuC,EAAA;AAClD,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAClD,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM;IAC9B;IAEA,MAAM,OAAO,CACZ,KAAa,EACb,IAAY,EACZ,aAAqB,EACrB,gBAAwB,EACxB,OAA2C,EAAA;AAE3C,QAAA,MAAM,OAAO,GAA2B;AACvC,YAAA,cAAc,EAAE,kBAAkB;SAClC;AACD,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO;QACpC;QAEA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAA,QAAA,CAAU,EAAE;AACxD,YAAA,MAAM,EAAE,MAAM;YACd,OAAO;AACP,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACpB,KAAK;gBACL,IAAI;gBACJ,aAAa;gBACb,gBAAgB;gBAChB,oBAAoB,EAAE,OAAO,EAAE,oBAAoB;aACnD,CAAC;AACF,SAAA,CAAC;AAEF,QAAA,IAAI,QAAQ,CAAC,EAAE,EAAE;AAChB,YAAA,OAAO,QAAQ,CAAC,IAAI,EAA4B;QACjD;AAEA,QAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAuB;QAC1E,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,CAAA,0BAAA,EAA6B,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC;QAC3D;QAEA,MAAM,IAAI,KAAK,CAAC,CAAA,mCAAA,EAAsC,QAAQ,CAAC,MAAM,CAAA,CAAE,CAAC;IACzE;AACA;;;;"}
@@ -10,5 +10,5 @@ export interface HttpServerOptions {
10
10
  readonly stderr?: RegExp;
11
11
  };
12
12
  }
13
- export declare function createHttpServer(url: string, options?: HttpServerOptions): Promise<ComponentExplorerHttpServer>;
13
+ export declare function createHttpServer(urlTemplate: string, options?: HttpServerOptions): Promise<ComponentExplorerHttpServer>;
14
14
  //# sourceMappingURL=httpServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"httpServer.d.ts","sourceRoot":"","sources":["../../src/server/httpServer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAE9D,YAAY,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE;QACf,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACF;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAE/G"}
1
+ {"version":3,"file":"httpServer.d.ts","sourceRoot":"","sources":["../../src/server/httpServer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,cAAc,CAAC;AAExD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAE9D,YAAY,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE;QACf,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACF;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAEvH"}
@@ -1,11 +1,12 @@
1
1
  import { nullLogger } from '../logger.js';
2
+ import { spawnShellWithTree } from '../processTree.js';
2
3
 
3
- function createHttpServer(url, options) {
4
- return HttpComponentExplorerServer.create(url, options);
4
+ function createHttpServer(urlTemplate, options) {
5
+ return HttpComponentExplorerServer.create(urlTemplate, options);
5
6
  }
6
7
  class HttpComponentExplorerServer {
7
8
  url;
8
- _process;
9
+ _tree;
9
10
  static async create(urlTemplate, options) {
10
11
  let proc;
11
12
  let vars = {};
@@ -13,38 +14,35 @@ class HttpComponentExplorerServer {
13
14
  const log = options.logger ?? nullLogger;
14
15
  log.debug(`Starting HTTP server: ${options.cmd}`);
15
16
  log.debug(`HTTP server cwd: ${options.cwd ?? process.cwd()}`);
16
- const { spawn } = await import('node:child_process');
17
- proc = spawn(options.cmd, { shell: true, stdio: 'pipe', cwd: options.cwd, windowsHide: true });
18
- proc.on('error', (e) => log.log(`HTTP server process error: ${e.message}`));
19
- proc.on('exit', (code) => log.debug(`HTTP server process exited (code=${code})`));
17
+ const tree = spawnShellWithTree(options.cmd, { cwd: options.cwd });
18
+ proc = tree;
19
+ tree.process.on('error', (e) => log.log(`HTTP server process error: ${e.message}`));
20
+ tree.process.on('exit', (code) => log.debug(`HTTP server process exited (code=${code})`));
20
21
  if (options.wait?.stdout || options.wait?.stderr) {
21
- vars = await waitForOutputPattern(proc, options.wait, log);
22
+ vars = await waitForOutputPattern(tree.process, options.wait, log);
22
23
  }
23
24
  else {
24
- proc.stdout?.on('data', (d) => log.trace(d.toString().trimEnd()));
25
- proc.stderr?.on('data', (d) => log.trace(d.toString().trimEnd()));
25
+ tree.process.stdout?.on('data', (d) => log.trace(d.toString().trimEnd()));
26
+ tree.process.stderr?.on('data', (d) => log.trace(d.toString().trimEnd()));
26
27
  }
27
28
  }
28
29
  const url = resolveUrlTemplate(urlTemplate, vars);
29
30
  return new HttpComponentExplorerServer(url, proc);
30
31
  }
31
- constructor(url, _process) {
32
+ constructor(url, _tree) {
32
33
  this.url = url;
33
- this._process = _process;
34
+ this._tree = _tree;
34
35
  }
35
36
  async dispose() {
36
- const proc = this._process;
37
- if (!proc || proc.killed) {
37
+ const tree = this._tree;
38
+ const proc = tree?.process;
39
+ if (!tree || !proc || proc.killed || proc.pid === undefined) {
38
40
  return;
39
41
  }
40
- await new Promise((resolve) => {
41
- proc.on('exit', () => resolve());
42
- proc.stdout?.removeAllListeners('data');
43
- proc.stderr?.removeAllListeners('data');
44
- proc.stdout?.destroy();
45
- proc.stderr?.destroy();
46
- proc.kill();
47
- });
42
+ proc.stdout?.destroy();
43
+ proc.stderr?.destroy();
44
+ // Gracefully terminate the tree, escalating to a forceful kill if needed.
45
+ await tree.kill();
48
46
  }
49
47
  }
50
48
  function resolveUrlTemplate(template, vars) {
@@ -1 +1 @@
1
- {"version":3,"file":"httpServer.js","sources":["../../src/server/httpServer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"httpServer.js","sources":["../../src/server/httpServer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { ComponentExplorerHttpServer } from './types.js';
2
2
  import type { ILogger } from '../logger.js';
3
+ import { AbsolutePath } from '../path.js';
3
4
  import { ViteProjectRef } from '../viteProjectRef.js';
4
5
  export declare abstract class ResolvedServerConfig {
5
6
  abstract readonly kind: 'vite' | 'http';
@@ -13,6 +14,23 @@ export interface ServerContext {
13
14
  readonly daemonApiVersion: string;
14
15
  readonly pluginProtocolVersion: string;
15
16
  };
17
+ /**
18
+ * If set and the server is a Vite server, vite-plugin-istanbul is injected
19
+ * to instrument JS sources matching the given globs. The instrumented code
20
+ * exposes coverage on `window.__coverage__`. No-op for HTTP servers.
21
+ */
22
+ readonly istanbulCoverage?: {
23
+ readonly include: readonly string[];
24
+ readonly exclude: readonly string[];
25
+ };
26
+ /**
27
+ * If true and the server is a Vite server, a small post-transform plugin
28
+ * appends `/*# sourceURL=<id> *\/` to the CSS payload of each `.css`
29
+ * module so that Vite's HMR-injected `<style>` tags become visible to
30
+ * Playwright's CSS coverage (which silently skips anonymous stylesheets).
31
+ * No-op for HTTP servers.
32
+ */
33
+ readonly cssSourceUrl?: boolean;
16
34
  }
17
35
  export interface ResolvedViteHmrConfig {
18
36
  readonly allowedPaths: readonly string[];
@@ -20,10 +38,9 @@ export interface ResolvedViteHmrConfig {
20
38
  export declare class ViteServerConfig extends ResolvedServerConfig {
21
39
  readonly viteProject: ViteProjectRef;
22
40
  readonly hmr: ResolvedViteHmrConfig | undefined;
23
- private readonly _resolveViteFrom?;
24
41
  readonly kind = "vite";
25
- constructor(viteProject: ViteProjectRef, hmr: ResolvedViteHmrConfig | undefined, _resolveViteFrom?: string | undefined);
26
- forWorktree(repoRoot: string, worktreePath: string, configDir: string): ViteServerConfig;
42
+ constructor(viteProject: ViteProjectRef, hmr: ResolvedViteHmrConfig | undefined);
43
+ forWorktree(repoRoot: AbsolutePath, worktreePath: AbsolutePath, _configDir: AbsolutePath): ViteServerConfig;
27
44
  createServer(ctx: ServerContext): Promise<ComponentExplorerHttpServer>;
28
45
  }
29
46
  export interface ResolvedHttpWaitConfig {
@@ -31,12 +48,12 @@ export interface ResolvedHttpWaitConfig {
31
48
  readonly stderr?: RegExp;
32
49
  }
33
50
  export declare class HttpServerConfig extends ResolvedServerConfig {
34
- readonly url: string;
51
+ readonly urlTemplate: string;
35
52
  readonly cmd: string | undefined;
36
- readonly cwd: string;
53
+ readonly cwd: AbsolutePath;
37
54
  readonly wait: ResolvedHttpWaitConfig | undefined;
38
55
  readonly kind = "http";
39
- constructor(url: string, cmd: string | undefined, cwd: string, wait: ResolvedHttpWaitConfig | undefined);
56
+ constructor(urlTemplate: string, cmd: string | undefined, cwd: AbsolutePath, wait: ResolvedHttpWaitConfig | undefined);
40
57
  createServer(ctx: ServerContext): Promise<ComponentExplorerHttpServer>;
41
58
  }
42
59
  //# sourceMappingURL=serverConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serverConfig.d.ts","sourceRoot":"","sources":["../../src/server/serverConfig.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,8BAAsB,oBAAoB;IACzC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAC/E;AAED,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE;QACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;KAC1C,CAAC;CACL;AAED,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,qBAAa,gBAAiB,SAAQ,oBAAoB;IAIxD,QAAQ,CAAC,WAAW,EAAE,cAAc;IACpC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,GAAG,SAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IALnC,QAAQ,CAAC,IAAI,UAAU;gBAGb,WAAW,EAAE,cAAc,EAC3B,GAAG,EAAE,qBAAqB,GAAG,SAAS,EAC9B,gBAAgB,CAAC,EAAE,MAAM,YAAA;IAK3C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB;IASlF,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAQ5E;AAED,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,gBAAiB,SAAQ,oBAAoB;IAIxD,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,IAAI,EAAE,sBAAsB,GAAG,SAAS;IANlD,QAAQ,CAAC,IAAI,UAAU;gBAGb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,sBAAsB,GAAG,SAAS;IAK5C,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAQ5E"}
1
+ {"version":3,"file":"serverConfig.d.ts","sourceRoot":"","sources":["../../src/server/serverConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,8BAAsB,oBAAoB;IACzC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAC/E;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE;QACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;KACvC,CAAC;IACF;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;QACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;KACpC,CAAC;IACF;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,qBAAa,gBAAiB,SAAQ,oBAAoB;IAIxD,QAAQ,CAAC,WAAW,EAAE,cAAc;IACpC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,GAAG,SAAS;IAJhD,QAAQ,CAAC,IAAI,UAAU;gBAGb,WAAW,EAAE,cAAc,EAC3B,GAAG,EAAE,qBAAqB,GAAG,SAAS;IAKhD,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,GAAG,gBAAgB;IAKrG,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAS5E;AAED,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,gBAAiB,SAAQ,oBAAoB;IAIxD,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IAChC,QAAQ,CAAC,GAAG,EAAE,YAAY;IAC1B,QAAQ,CAAC,IAAI,EAAE,sBAAsB,GAAG,SAAS;IANlD,QAAQ,CAAC,IAAI,UAAU;gBAGb,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,sBAAsB,GAAG,SAAS;IAK5C,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAQ5E"}
@@ -1,55 +1,48 @@
1
- import * as path from 'node:path';
2
1
  import { createHttpServer } from './httpServer.js';
3
2
  import { createViteServer } from './viteServer.js';
4
- import { ViteProjectRef } from '../viteProjectRef.js';
5
3
 
6
4
  class ResolvedServerConfig {
7
5
  }
8
6
  class ViteServerConfig extends ResolvedServerConfig {
9
7
  viteProject;
10
8
  hmr;
11
- _resolveViteFrom;
12
9
  kind = 'vite';
13
- constructor(viteProject, hmr, _resolveViteFrom) {
10
+ constructor(viteProject, hmr) {
14
11
  super();
15
12
  this.viteProject = viteProject;
16
13
  this.hmr = hmr;
17
- this._resolveViteFrom = _resolveViteFrom;
18
14
  }
19
- forWorktree(repoRoot, worktreePath, configDir) {
20
- const configDirRelToGitRoot = path.relative(repoRoot, configDir);
21
- const worktreeConfigDir = path.resolve(worktreePath, configDirRelToGitRoot);
22
- const defaultViteConfig = path.basename(this.viteProject.configFile ?? 'vite.config.ts');
23
- const viteConfigPath = path.resolve(worktreeConfigDir, defaultViteConfig);
24
- const viteProject = ViteProjectRef.fromViteConfigPath(viteConfigPath);
25
- return new ViteServerConfig(viteProject, this.hmr, this.viteProject.configFile);
15
+ forWorktree(repoRoot, worktreePath, _configDir) {
16
+ const newViteProject = this.viteProject.rebase(repoRoot, worktreePath);
17
+ return new ViteServerConfig(newViteProject, this.hmr);
26
18
  }
27
19
  async createServer(ctx) {
28
20
  return createViteServer(this.viteProject, {
29
21
  logger: ctx.logger,
30
- resolveViteFrom: this._resolveViteFrom,
31
22
  hmrAllowedPaths: this.hmr?.allowedPaths,
32
23
  daemonConfig: ctx.daemonConfig,
24
+ istanbulCoverage: ctx.istanbulCoverage,
25
+ cssSourceUrl: ctx.cssSourceUrl,
33
26
  });
34
27
  }
35
28
  }
36
29
  class HttpServerConfig extends ResolvedServerConfig {
37
- url;
30
+ urlTemplate;
38
31
  cmd;
39
32
  cwd;
40
33
  wait;
41
34
  kind = 'http';
42
- constructor(url, cmd, cwd, wait) {
35
+ constructor(urlTemplate, cmd, cwd, wait) {
43
36
  super();
44
- this.url = url;
37
+ this.urlTemplate = urlTemplate;
45
38
  this.cmd = cmd;
46
39
  this.cwd = cwd;
47
40
  this.wait = wait;
48
41
  }
49
42
  async createServer(ctx) {
50
- return createHttpServer(this.url, {
43
+ return createHttpServer(this.urlTemplate, {
51
44
  cmd: this.cmd,
52
- cwd: this.cwd,
45
+ cwd: this.cwd.value,
53
46
  wait: this.wait,
54
47
  logger: ctx.logger,
55
48
  });
@@ -1 +1 @@
1
- {"version":3,"file":"serverConfig.js","sources":["../../src/server/serverConfig.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;MAOsB,oBAAoB,CAAA;AAGzC;AAgBK,MAAO,gBAAiB,SAAQ,oBAAoB,CAAA;AAI/C,IAAA,WAAA;AACA,IAAA,GAAA;AACQ,IAAA,gBAAA;IALT,IAAI,GAAG,MAAM;AAEtB,IAAA,WAAA,CACU,WAA2B,EAC3B,GAAsC,EAC9B,gBAAyB,EAAA;AAE1C,QAAA,KAAK,EAAE;QAJE,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,GAAG,GAAH,GAAG;QACK,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;IAGlC;AAEA,IAAA,WAAW,CAAC,QAAgB,EAAE,YAAoB,EAAE,SAAiB,EAAA;QACpE,MAAM,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;QAChE,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,qBAAqB,CAAC;AAC3E,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,gBAAgB,CAAC;QACxF,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;QACzE,MAAM,WAAW,GAAG,cAAc,CAAC,kBAAkB,CAAC,cAAc,CAAC;AACrE,QAAA,OAAO,IAAI,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;IAChF;IAEA,MAAM,YAAY,CAAC,GAAkB,EAAA;AACpC,QAAA,OAAO,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE;YACzC,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,eAAe,EAAE,IAAI,CAAC,gBAAgB;AACtC,YAAA,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,YAAY;YACvC,YAAY,EAAE,GAAG,CAAC,YAAY;AAC9B,SAAA,CAAC;IACH;AACA;AAOK,MAAO,gBAAiB,SAAQ,oBAAoB,CAAA;AAI/C,IAAA,GAAA;AACA,IAAA,GAAA;AACA,IAAA,GAAA;AACA,IAAA,IAAA;IAND,IAAI,GAAG,MAAM;AAEtB,IAAA,WAAA,CACU,GAAW,EACX,GAAuB,EACvB,GAAW,EACX,IAAwC,EAAA;AAEjD,QAAA,KAAK,EAAE;QALE,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,IAAI,GAAJ,IAAI;IAGd;IAEA,MAAM,YAAY,CAAC,GAAkB,EAAA;AACpC,QAAA,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE;YACjC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,GAAG,CAAC,MAAM;AAClB,SAAA,CAAC;IACH;AACA;;;;"}
1
+ {"version":3,"file":"serverConfig.js","sources":["../../src/server/serverConfig.ts"],"sourcesContent":[null],"names":[],"mappings":";;;MAOsB,oBAAoB,CAAA;AAGzC;AAiCK,MAAO,gBAAiB,SAAQ,oBAAoB,CAAA;AAI/C,IAAA,WAAA;AACA,IAAA,GAAA;IAJD,IAAI,GAAG,MAAM;IAEtB,WAAA,CACU,WAA2B,EAC3B,GAAsC,EAAA;AAE/C,QAAA,KAAK,EAAE;QAHE,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,GAAG,GAAH,GAAG;IAGb;AAEA,IAAA,WAAW,CAAC,QAAsB,EAAE,YAA0B,EAAE,UAAwB,EAAA;AACvF,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC;QACtE,OAAO,IAAI,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC;IACtD;IAEA,MAAM,YAAY,CAAC,GAAkB,EAAA;AACpC,QAAA,OAAO,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE;YACzC,MAAM,EAAE,GAAG,CAAC,MAAM;AAClB,YAAA,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,YAAY;YACvC,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;YACtC,YAAY,EAAE,GAAG,CAAC,YAAY;AAC9B,SAAA,CAAC;IACH;AACA;AAOK,MAAO,gBAAiB,SAAQ,oBAAoB,CAAA;AAI/C,IAAA,WAAA;AACA,IAAA,GAAA;AACA,IAAA,GAAA;AACA,IAAA,IAAA;IAND,IAAI,GAAG,MAAM;AAEtB,IAAA,WAAA,CACU,WAAmB,EACnB,GAAuB,EACvB,GAAiB,EACjB,IAAwC,EAAA;AAEjD,QAAA,KAAK,EAAE;QALE,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,IAAI,GAAJ,IAAI;IAGd;IAEA,MAAM,YAAY,CAAC,GAAkB,EAAA;AACpC,QAAA,OAAO,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE;YACzC,GAAG,EAAE,IAAI,CAAC,GAAG;AACb,YAAA,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,GAAG,CAAC,MAAM;AAClB,SAAA,CAAC;IACH;AACA;;;;"}
@@ -2,7 +2,7 @@ import { type ILogger } from '../logger.js';
2
2
  import { ViteProjectRef } from '../viteProjectRef.js';
3
3
  import type { ComponentExplorerHttpServer } from './types.js';
4
4
  export interface ViteServerOptions {
5
- readonly resolveViteFrom?: string;
5
+ readonly resolveViteFromPath?: string;
6
6
  readonly logger?: ILogger;
7
7
  readonly hmrAllowedPaths?: readonly string[];
8
8
  readonly daemonConfig?: {
@@ -11,6 +11,21 @@ export interface ViteServerOptions {
11
11
  readonly daemonApiVersion: string;
12
12
  readonly pluginProtocolVersion: string;
13
13
  };
14
+ /**
15
+ * If set, vite-plugin-istanbul is injected to instrument matching files.
16
+ * After fixture render, JS coverage is exposed on `window.__coverage__`.
17
+ */
18
+ readonly istanbulCoverage?: {
19
+ readonly include: readonly string[];
20
+ readonly exclude: readonly string[];
21
+ };
22
+ /**
23
+ * If true, a tiny post-transform plugin appends `/*# sourceURL=<id> *\/` to
24
+ * the CSS payload that Vite injects via `<style>` tags. This makes those
25
+ * stylesheets visible to Playwright's CSS coverage (which silently skips
26
+ * stylesheets without a sourceURL — see Playwright `crCoverage.ts`).
27
+ */
28
+ readonly cssSourceUrl?: boolean;
14
29
  }
15
30
  export declare function createViteServer(project: ViteProjectRef, options?: ViteServerOptions): Promise<ComponentExplorerHttpServer>;
16
31
  //# sourceMappingURL=viteServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"viteServer.d.ts","sourceRoot":"","sources":["../../src/server/viteServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE;QACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;KACvC,CAAC;CACF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAE3H"}
1
+ {"version":3,"file":"viteServer.d.ts","sourceRoot":"","sources":["../../src/server/viteServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE;QACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;KACvC,CAAC;IACF;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;QACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;KACpC,CAAC;IACF;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAE3H"}