@vscode/component-explorer-cli 0.2.1-0 → 0.2.1-10

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 (163) hide show
  1. package/README.md +8 -0
  2. package/dist/_virtual/_build-info.js +1 -1
  3. package/dist/browserPage.d.ts +5 -5
  4. package/dist/browserPage.d.ts.map +1 -1
  5. package/dist/browserPage.js +35 -2
  6. package/dist/browserPage.js.map +1 -1
  7. package/dist/commands/acceptCommand.d.ts +1 -0
  8. package/dist/commands/acceptCommand.d.ts.map +1 -1
  9. package/dist/commands/acceptCommand.js +17 -8
  10. package/dist/commands/acceptCommand.js.map +1 -1
  11. package/dist/commands/artifactCommand.d.ts +14 -0
  12. package/dist/commands/artifactCommand.d.ts.map +1 -0
  13. package/dist/commands/checkStabilityCommand.d.ts +1 -0
  14. package/dist/commands/checkStabilityCommand.d.ts.map +1 -1
  15. package/dist/commands/checkStabilityCommand.js +28 -21
  16. package/dist/commands/checkStabilityCommand.js.map +1 -1
  17. package/dist/commands/compareCommand.d.ts +1 -0
  18. package/dist/commands/compareCommand.d.ts.map +1 -1
  19. package/dist/commands/compareCommand.js +30 -11
  20. package/dist/commands/compareCommand.js.map +1 -1
  21. package/dist/commands/mcpCommand.d.ts +5 -0
  22. package/dist/commands/mcpCommand.d.ts.map +1 -1
  23. package/dist/commands/mcpCommand.js +102 -25
  24. package/dist/commands/mcpCommand.js.map +1 -1
  25. package/dist/commands/{screenshotCommand.d.ts → renderCommand.d.ts} +4 -2
  26. package/dist/commands/renderCommand.d.ts.map +1 -0
  27. package/dist/commands/renderCommand.js +210 -0
  28. package/dist/commands/renderCommand.js.map +1 -0
  29. package/dist/commands/serveCommand.d.ts +2 -0
  30. package/dist/commands/serveCommand.d.ts.map +1 -1
  31. package/dist/commands/serveCommand.js +79 -41
  32. package/dist/commands/serveCommand.js.map +1 -1
  33. package/dist/commands/serviceDiffCommitsCommand.d.ts +16 -0
  34. package/dist/commands/serviceDiffCommitsCommand.d.ts.map +1 -0
  35. package/dist/commands/serviceDiffCommitsCommand.js +229 -0
  36. package/dist/commands/serviceDiffCommitsCommand.js.map +1 -0
  37. package/dist/commands/watchCommand.d.ts +1 -0
  38. package/dist/commands/watchCommand.d.ts.map +1 -1
  39. package/dist/commands/watchCommand.js +24 -29
  40. package/dist/commands/watchCommand.js.map +1 -1
  41. package/dist/componentExplorer.d.ts +23 -12
  42. package/dist/componentExplorer.d.ts.map +1 -1
  43. package/dist/componentExplorer.js +102 -66
  44. package/dist/componentExplorer.js.map +1 -1
  45. package/dist/{watchConfig.d.ts → config.d.ts} +28 -24
  46. package/dist/config.d.ts.map +1 -0
  47. package/dist/{watchConfig.js → config.js} +63 -23
  48. package/dist/config.js.map +1 -0
  49. package/dist/daemon/DaemonService.d.ts +4 -4
  50. package/dist/daemon/DaemonService.d.ts.map +1 -1
  51. package/dist/daemon/DaemonService.js +23 -40
  52. package/dist/daemon/DaemonService.js.map +1 -1
  53. package/dist/daemon/client.d.ts +5 -0
  54. package/dist/daemon/client.d.ts.map +1 -0
  55. package/dist/daemon/client.js +7 -0
  56. package/dist/daemon/client.js.map +1 -0
  57. package/dist/daemon/inProcessClient.d.ts +11 -0
  58. package/dist/daemon/inProcessClient.d.ts.map +1 -0
  59. package/dist/daemon/inProcessClient.js +35 -0
  60. package/dist/daemon/inProcessClient.js.map +1 -0
  61. package/dist/daemon/lifecycle.d.ts +4 -0
  62. package/dist/daemon/lifecycle.d.ts.map +1 -1
  63. package/dist/daemon/lifecycle.js +12 -2
  64. package/dist/daemon/lifecycle.js.map +1 -1
  65. package/dist/daemon/pipeClient.d.ts.map +1 -1
  66. package/dist/daemon/pipeClient.js +7 -3
  67. package/dist/daemon/pipeClient.js.map +1 -1
  68. package/dist/daemon/pipeName.d.ts +6 -0
  69. package/dist/daemon/pipeName.d.ts.map +1 -1
  70. package/dist/daemon/pipeName.js +8 -3
  71. package/dist/daemon/pipeName.js.map +1 -1
  72. package/dist/daemon/pipeServer.d.ts.map +1 -1
  73. package/dist/daemon/pipeServer.js +9 -3
  74. package/dist/daemon/pipeServer.js.map +1 -1
  75. package/dist/daemon/version.d.ts +1 -1
  76. package/dist/daemon/version.d.ts.map +1 -1
  77. package/dist/daemon/version.js +1 -1
  78. package/dist/dependencyInstaller.d.ts +1 -1
  79. package/dist/dependencyInstaller.d.ts.map +1 -1
  80. package/dist/evaluateFn.d.ts +21 -0
  81. package/dist/evaluateFn.d.ts.map +1 -0
  82. package/dist/evaluateFn.js +17 -0
  83. package/dist/evaluateFn.js.map +1 -0
  84. package/dist/explorerSession.d.ts +2 -3
  85. package/dist/explorerSession.d.ts.map +1 -1
  86. package/dist/explorerSession.js +3 -20
  87. package/dist/explorerSession.js.map +1 -1
  88. package/dist/git/gitUtils.d.ts +1 -0
  89. package/dist/git/gitUtils.d.ts.map +1 -1
  90. package/dist/git/gitUtils.js +5 -1
  91. package/dist/git/gitUtils.js.map +1 -1
  92. package/dist/index.js +11 -2
  93. package/dist/index.js.map +1 -1
  94. package/dist/logger.d.ts +12 -1
  95. package/dist/logger.d.ts.map +1 -1
  96. package/dist/logger.js +35 -2
  97. package/dist/logger.js.map +1 -1
  98. package/dist/manifest.schema.json +187 -0
  99. package/dist/mcp/McpServer.d.ts +1 -0
  100. package/dist/mcp/McpServer.d.ts.map +1 -1
  101. package/dist/mcp/McpServer.js +136 -34
  102. package/dist/mcp/McpServer.js.map +1 -1
  103. package/dist/packages/common/dist/renderManifest.js +46 -0
  104. package/dist/packages/common/dist/renderManifest.js.map +1 -0
  105. package/dist/packages/semver/dist/index.js +186 -0
  106. package/dist/packages/semver/dist/index.js.map +1 -0
  107. package/dist/packages/simple-api/dist/{chunk-3R7GHWBM.js → chunk-FJ7AVNQE.js} +2 -1
  108. package/dist/packages/simple-api/dist/chunk-FJ7AVNQE.js.map +1 -0
  109. package/dist/packages/simple-api/dist/{chunk-SGBCNXYH.js → chunk-TTRCY65Z.js} +4 -1
  110. package/dist/packages/simple-api/dist/chunk-TTRCY65Z.js.map +1 -0
  111. package/dist/packages/simple-api/dist/{chunk-TAEFVNPN.js → chunk-WNXMRXWV.js} +2 -1
  112. package/dist/packages/simple-api/dist/chunk-WNXMRXWV.js.map +1 -0
  113. package/dist/packages/simple-api/dist/express.js +1 -1
  114. package/dist/packages/simple-api/dist/express.js.map +1 -1
  115. package/dist/processTree.d.ts +9 -0
  116. package/dist/processTree.d.ts.map +1 -0
  117. package/dist/processTree.js +41 -0
  118. package/dist/processTree.js.map +1 -0
  119. package/dist/renderManifest.d.ts +5 -0
  120. package/dist/renderManifest.d.ts.map +1 -0
  121. package/dist/renderManifest.js +11 -0
  122. package/dist/renderManifest.js.map +1 -0
  123. package/dist/screenshotServiceClient.d.ts +31 -0
  124. package/dist/screenshotServiceClient.d.ts.map +1 -0
  125. package/dist/screenshotServiceClient.js +38 -0
  126. package/dist/screenshotServiceClient.js.map +1 -0
  127. package/dist/server/httpServer.d.ts +14 -0
  128. package/dist/server/httpServer.d.ts.map +1 -0
  129. package/dist/server/httpServer.js +114 -0
  130. package/dist/server/httpServer.js.map +1 -0
  131. package/dist/server/httpServer.test.d.ts.map +1 -0
  132. package/dist/server/serverConfig.d.ts +42 -0
  133. package/dist/server/serverConfig.d.ts.map +1 -0
  134. package/dist/server/serverConfig.js +60 -0
  135. package/dist/server/serverConfig.js.map +1 -0
  136. package/dist/server/types.d.ts +6 -0
  137. package/dist/server/types.d.ts.map +1 -0
  138. package/dist/server/viteServer.d.ts +16 -0
  139. package/dist/server/viteServer.d.ts.map +1 -0
  140. package/dist/{httpServer.js → server/viteServer.js} +10 -110
  141. package/dist/server/viteServer.js.map +1 -0
  142. package/dist/utils.d.ts +11 -6
  143. package/dist/utils.d.ts.map +1 -1
  144. package/dist/utils.js +7 -6
  145. package/dist/utils.js.map +1 -1
  146. package/package.json +30 -19
  147. package/dist/commands/screenshotCommand.d.ts.map +0 -1
  148. package/dist/commands/screenshotCommand.js +0 -124
  149. package/dist/commands/screenshotCommand.js.map +0 -1
  150. package/dist/httpServer.d.ts +0 -36
  151. package/dist/httpServer.d.ts.map +0 -1
  152. package/dist/httpServer.js.map +0 -1
  153. package/dist/httpServer.test.d.ts.map +0 -1
  154. package/dist/packages/simple-api/dist/chunk-3R7GHWBM.js.map +0 -1
  155. package/dist/packages/simple-api/dist/chunk-SGBCNXYH.js.map +0 -1
  156. package/dist/packages/simple-api/dist/chunk-TAEFVNPN.js.map +0 -1
  157. package/dist/resolveProject.d.ts +0 -21
  158. package/dist/resolveProject.d.ts.map +0 -1
  159. package/dist/resolveProject.js +0 -39
  160. package/dist/resolveProject.js.map +0 -1
  161. package/dist/watchConfig.d.ts.map +0 -1
  162. package/dist/watchConfig.js.map +0 -1
  163. /package/dist/{httpServer.test.d.ts → server/httpServer.test.d.ts} +0 -0
@@ -1,14 +1,13 @@
1
1
  import { type ComponentExplorer } from './componentExplorer.js';
2
2
  import type { BrowserPageFactory } from './browserPage.js';
3
- import { type ComponentExplorerHttpServerFactory, type ViteServerOptions } from './httpServer.js';
4
3
  import type { IObservable } from '@vscode/observables';
5
4
  import type { SourceTreeId } from './sourceTreeId.js';
6
- import type { ResolvedServerConfig } from './watchConfig.js';
5
+ import type { ResolvedServerConfig, ServerContext } from './config.js';
7
6
  export declare class ExplorerSession {
8
7
  readonly name: string;
9
8
  private readonly _server;
10
9
  readonly explorer: ComponentExplorer;
11
- static create(name: string, serverConfig: ResolvedServerConfig, serverFactory: ComponentExplorerHttpServerFactory, browserFactory: BrowserPageFactory, options?: ViteServerOptions): Promise<ExplorerSession>;
10
+ static create(name: string, serverConfig: ResolvedServerConfig, browserFactory: BrowserPageFactory, ctx: ServerContext): Promise<ExplorerSession>;
12
11
  private constructor();
13
12
  get serverUrl(): string;
14
13
  get sourceTreeId(): IObservable<SourceTreeId>;
@@ -1 +1 @@
1
- {"version":3,"file":"explorerSession.d.ts","sourceRoot":"","sources":["../src/explorerSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAoC,KAAK,kCAAkC,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpI,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,qBAAa,eAAe;IA6B1B,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB;WA9BxB,MAAM,CAClB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,oBAAoB,EAClC,aAAa,EAAE,kCAAkC,EACjD,cAAc,EAAE,kBAAkB,EAClC,OAAO,CAAC,EAAE,iBAAiB,GACzB,OAAO,CAAC,eAAe,CAAC;IAqB3B,OAAO;IAMP,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,YAAY,IAAI,WAAW,CAAC,YAAY,CAAC,CAE5C;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAI9B"}
1
+ {"version":3,"file":"explorerSession.d.ts","sourceRoot":"","sources":["../src/explorerSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvE,qBAAa,eAAe;IAa1B,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB;WAdxB,MAAM,CAClB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,oBAAoB,EAClC,cAAc,EAAE,kBAAkB,EAClC,GAAG,EAAE,aAAa,GAChB,OAAO,CAAC,eAAe,CAAC;IAM3B,OAAO;IAMP,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,YAAY,IAAI,WAAW,CAAC,YAAY,CAAC,CAE5C;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAI9B"}
@@ -4,26 +4,9 @@ class ExplorerSession {
4
4
  name;
5
5
  _server;
6
6
  explorer;
7
- static async create(name, serverConfig, serverFactory, browserFactory, options) {
8
- let server;
9
- if (serverConfig.kind === 'vite') {
10
- server = await serverFactory.createViteServer(serverConfig.viteProject, {
11
- ...options,
12
- hmrAllowedPaths: serverConfig.hmr?.allowedPaths ?? options?.hmrAllowedPaths,
13
- });
14
- }
15
- else if (serverConfig.kind === 'http') {
16
- server = await serverFactory.createHttpServer(serverConfig.url, {
17
- cmd: serverConfig.cmd,
18
- cwd: serverConfig.cwd,
19
- wait: serverConfig.wait,
20
- logger: options?.logger,
21
- });
22
- }
23
- else {
24
- throw new Error(`Unsupported server config kind: ${serverConfig.kind}`);
25
- }
26
- const explorer = new BrowserComponentExplorer(browserFactory, server, options?.logger);
7
+ static async create(name, serverConfig, browserFactory, ctx) {
8
+ const server = await serverConfig.createServer(ctx);
9
+ const explorer = new BrowserComponentExplorer(browserFactory, server, ctx.logger);
27
10
  return new ExplorerSession(name, server, explorer);
28
11
  }
29
12
  constructor(name, _server, explorer) {
@@ -1 +1 @@
1
- {"version":3,"file":"explorerSession.js","sources":["../src/explorerSession.ts"],"sourcesContent":[null],"names":[],"mappings":";;MAOa,eAAe,CAAA;AA6BjB,IAAA,IAAA;AACQ,IAAA,OAAA;AACR,IAAA,QAAA;AA9BV,IAAA,aAAa,MAAM,CAClB,IAAY,EACZ,YAAkC,EAClC,aAAiD,EACjD,cAAkC,EAClC,OAA2B,EAAA;AAE3B,QAAA,IAAI,MAAmC;AACvC,QAAA,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,EAAE;YACjC,MAAM,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,WAAW,EAAE;AACvE,gBAAA,GAAG,OAAO;gBACV,eAAe,EAAE,YAAY,CAAC,GAAG,EAAE,YAAY,IAAI,OAAO,EAAE,eAAe;AAC3E,aAAA,CAAC;QACH;AAAO,aAAA,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,EAAE;YACxC,MAAM,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,EAAE;gBAC/D,GAAG,EAAE,YAAY,CAAC,GAAG;gBACrB,GAAG,EAAE,YAAY,CAAC,GAAG;gBACrB,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,MAAM,EAAE,OAAO,EAAE,MAAM;AACvB,aAAA,CAAC;QACH;aAAO;YACN,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAoC,YAAoB,CAAC,IAAI,CAAA,CAAE,CAAC;QACjF;AACA,QAAA,MAAM,QAAQ,GAAG,IAAI,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;QACtF,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC;IACnD;AAEA,IAAA,WAAA,CACU,IAAY,EACJ,OAAoC,EAC5C,QAA2B,EAAA;QAF3B,IAAA,CAAA,IAAI,GAAJ,IAAI;QACI,IAAA,CAAA,OAAO,GAAP,OAAO;QACf,IAAA,CAAA,QAAQ,GAAR,QAAQ;IACf;AAEH,IAAA,IAAI,SAAS,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG;IACxB;AAEA,IAAA,IAAI,YAAY,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY;IAClC;AAEA,IAAA,MAAM,OAAO,GAAA;AACZ,QAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC7B,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;IAC7B;AACA;;;;"}
1
+ {"version":3,"file":"explorerSession.js","sources":["../src/explorerSession.ts"],"sourcesContent":[null],"names":[],"mappings":";;MAOa,eAAe,CAAA;AAajB,IAAA,IAAA;AACQ,IAAA,OAAA;AACR,IAAA,QAAA;IAdV,aAAa,MAAM,CAClB,IAAY,EACZ,YAAkC,EAClC,cAAkC,EAClC,GAAkB,EAAA;QAElB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC;AACnD,QAAA,MAAM,QAAQ,GAAG,IAAI,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC;QACjF,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC;IACnD;AAEA,IAAA,WAAA,CACU,IAAY,EACJ,OAAoC,EAC5C,QAA2B,EAAA;QAF3B,IAAA,CAAA,IAAI,GAAJ,IAAI;QACI,IAAA,CAAA,OAAO,GAAP,OAAO;QACf,IAAA,CAAA,QAAQ,GAAR,QAAQ;IACf;AAEH,IAAA,IAAI,SAAS,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG;IACxB;AAEA,IAAA,IAAI,YAAY,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY;IAClC;AAEA,IAAA,MAAM,OAAO,GAAA;AACZ,QAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC7B,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;IAC7B;AACA;;;;"}
@@ -1,5 +1,6 @@
1
1
  export declare function getGitRoot(fromDir: string): Promise<string>;
2
2
  export declare function resolveRef(gitRoot: string, ref: string): Promise<string>;
3
+ export declare function getMergeBase(gitRoot: string, ref1: string, ref2: string): Promise<string>;
3
4
  export declare function isConcreteCommitHash(ref: string): boolean;
4
5
  export declare function worktreeRootPath(gitRoot: string): string;
5
6
  export declare function execGit(cwd: string, args: readonly string[]): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"gitUtils.d.ts","sourceRoot":"","sources":["../../src/git/gitUtils.ts"],"names":[],"mappings":"AAGA,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGjE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG9E;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAU7E"}
1
+ {"version":3,"file":"gitUtils.d.ts","sourceRoot":"","sources":["../../src/git/gitUtils.ts"],"names":[],"mappings":"AAGA,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGjE;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG9E;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG/F;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAU7E"}
@@ -9,6 +9,10 @@ async function resolveRef(gitRoot, ref) {
9
9
  const output = await execGit(gitRoot, ['rev-parse', ref]);
10
10
  return output.trim();
11
11
  }
12
+ async function getMergeBase(gitRoot, ref1, ref2) {
13
+ const output = await execGit(gitRoot, ['merge-base', ref1, ref2]);
14
+ return output.trim();
15
+ }
12
16
  function isConcreteCommitHash(ref) {
13
17
  return /^[0-9a-f]{40}$/i.test(ref);
14
18
  }
@@ -29,5 +33,5 @@ function execGit(cwd, args) {
29
33
  });
30
34
  }
31
35
 
32
- export { execGit, getGitRoot, isConcreteCommitHash, resolveRef, worktreeRootPath };
36
+ export { execGit, getGitRoot, getMergeBase, isConcreteCommitHash, resolveRef, worktreeRootPath };
33
37
  //# sourceMappingURL=gitUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gitUtils.js","sources":["../../src/git/gitUtils.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAGO,eAAe,UAAU,CAAC,OAAe,EAAA;AAC/C,IAAA,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AACvE,IAAA,OAAO,MAAM,CAAC,IAAI,EAAE;AACrB;AAEO,eAAe,UAAU,CAAC,OAAe,EAAE,GAAW,EAAA;AAC5D,IAAA,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACzD,IAAA,OAAO,MAAM,CAAC,IAAI,EAAE;AACrB;AAEM,SAAU,oBAAoB,CAAC,GAAW,EAAA;AAC/C,IAAA,OAAO,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;AACnC;AAEM,SAAU,gBAAgB,CAAC,OAAe,EAAA;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AACvC,IAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAA,EAAG,QAAQ,CAAA,UAAA,CAAY,CAAC;AAC5D;AAEM,SAAU,OAAO,CAAC,GAAW,EAAE,IAAuB,EAAA;IAC3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACtC,QAAA,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,KAAI;YACvG,IAAI,GAAG,EAAE;gBACR,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,SAAA,EAAY,MAAM,IAAI,GAAG,CAAC,OAAO,CAAA,CAAE,CAAC,CAAC;YAC5E;iBAAO;gBACN,OAAO,CAAC,MAAM,CAAC;YAChB;AACD,QAAA,CAAC,CAAC;AACH,IAAA,CAAC,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"gitUtils.js","sources":["../../src/git/gitUtils.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAGO,eAAe,UAAU,CAAC,OAAe,EAAA;AAC/C,IAAA,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AACvE,IAAA,OAAO,MAAM,CAAC,IAAI,EAAE;AACrB;AAEO,eAAe,UAAU,CAAC,OAAe,EAAE,GAAW,EAAA;AAC5D,IAAA,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACzD,IAAA,OAAO,MAAM,CAAC,IAAI,EAAE;AACrB;AAEO,eAAe,YAAY,CAAC,OAAe,EAAE,IAAY,EAAE,IAAY,EAAA;AAC7E,IAAA,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACjE,IAAA,OAAO,MAAM,CAAC,IAAI,EAAE;AACrB;AAEM,SAAU,oBAAoB,CAAC,GAAW,EAAA;AAC/C,IAAA,OAAO,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;AACnC;AAEM,SAAU,gBAAgB,CAAC,OAAe,EAAA;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AACvC,IAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAA,EAAG,QAAQ,CAAA,UAAA,CAAY,CAAC;AAC5D;AAEM,SAAU,OAAO,CAAC,GAAW,EAAE,IAAuB,EAAA;IAC3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACtC,QAAA,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,KAAI;YACvG,IAAI,GAAG,EAAE;gBACR,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,SAAA,EAAY,MAAM,IAAI,GAAG,CAAC,OAAO,CAAA,CAAE,CAAC,CAAC;YAC5E;iBAAO;gBACN,OAAO,CAAC,MAAM,CAAC;YAChB;AACD,QAAA,CAAC,CAAC;AACH,IAAA,CAAC,CAAC;AACH;;;;"}
package/dist/index.js CHANGED
@@ -1,28 +1,37 @@
1
1
  #!/usr/bin/env node
2
2
  import __buildInfo from './_virtual/_build-info.js';
3
3
  import { Cli, Builtins } from 'clipanion';
4
- import { ScreenshotCommand } from './commands/screenshotCommand.js';
4
+ import { RenderCommand } from './commands/renderCommand.js';
5
5
  import { CompareCommand } from './commands/compareCommand.js';
6
6
  import { AcceptCommand } from './commands/acceptCommand.js';
7
7
  import { WatchCommand } from './commands/watchCommand.js';
8
8
  import { ServeCommand } from './commands/serveCommand.js';
9
9
  import { McpCommand } from './commands/mcpCommand.js';
10
10
  import { CheckStabilityCommand } from './commands/checkStabilityCommand.js';
11
+ import { ServiceDiffCommitsCommand } from './commands/serviceDiffCommitsCommand.js';
11
12
 
12
13
  globalThis._buildInfo = __buildInfo;
14
+ // Global error handlers to ensure errors are logged before process exits
15
+ const _logFatalError = (type, err) => {
16
+ const msg = err instanceof Error ? err.stack ?? err.message : String(err);
17
+ process.stderr.write(`[FATAL] ${type}: ${msg}\n`);
18
+ };
19
+ process.on('uncaughtException', (err) => { _logFatalError('uncaughtException', err); process.exit(1); });
20
+ process.on('unhandledRejection', (err) => { _logFatalError('unhandledRejection', err); process.exit(1); });
13
21
  const buildInfo = globalThis._buildInfo;
14
22
  const cli = new Cli({
15
23
  binaryLabel: 'component-explorer',
16
24
  binaryVersion: buildInfo ? `${buildInfo.version} (${buildInfo.date})` : '0.0.0',
17
25
  binaryName: 'component-explorer',
18
26
  });
19
- cli.register(ScreenshotCommand);
27
+ cli.register(RenderCommand);
20
28
  cli.register(CompareCommand);
21
29
  cli.register(AcceptCommand);
22
30
  cli.register(WatchCommand);
23
31
  cli.register(ServeCommand);
24
32
  cli.register(McpCommand);
25
33
  cli.register(CheckStabilityCommand);
34
+ cli.register(ServiceDiffCommitsCommand);
26
35
  cli.register(Builtins.HelpCommand);
27
36
  cli.register(Builtins.DefinitionsCommand);
28
37
  cli.register(Builtins.TokensCommand);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;AAWA,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU;AAEvC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;AACnB,IAAA,WAAW,EAAE,oBAAoB;AACjC,IAAA,aAAa,EAAE,SAAS,GAAG,GAAG,SAAS,CAAC,OAAO,CAAA,EAAA,EAAK,SAAS,CAAC,IAAI,GAAG,GAAG,OAAO;AAC/E,IAAA,UAAU,EAAE,oBAAoB;AAChC,CAAA,CAAC;AAEF,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AAC/B,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC;AAC5B,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC3B,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;AAC1B,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;AAC1B,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;AACxB,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AAEnC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;AAClC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC;AACzC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;AACpC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;AAErC,MAAM,KAAI,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI;AACjC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;AAYA;AACA,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,GAAY,KAAI;IACrD,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;IACzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,QAAA,EAAW,IAAI,CAAA,EAAA,EAAK,GAAG,CAAA,EAAA,CAAI,CAAC;AAClD,CAAC;AACD,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,KAAI,EAAG,cAAc,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAG,KAAI,EAAG,cAAc,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1G,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU;AAEvC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;AACnB,IAAA,WAAW,EAAE,oBAAoB;AACjC,IAAA,aAAa,EAAE,SAAS,GAAG,GAAG,SAAS,CAAC,OAAO,CAAA,EAAA,EAAK,SAAS,CAAC,IAAI,GAAG,GAAG,OAAO;AAC/E,IAAA,UAAU,EAAE,oBAAoB;AAChC,CAAA,CAAC;AAEF,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC3B,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC;AAC5B,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC3B,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;AAC1B,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;AAC1B,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;AACxB,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AACnC,GAAG,CAAC,QAAQ,CAAC,yBAAyB,CAAC;AAEvC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;AAClC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC;AACzC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;AACpC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;AAErC,MAAM,KAAI,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI;AACjC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC"}
package/dist/logger.d.ts CHANGED
@@ -11,18 +11,29 @@ export interface ILogger {
11
11
  debug(message: string): void;
12
12
  trace(message: string): void;
13
13
  }
14
+ export interface LogFileOptions {
15
+ /** Path to append log entries to. Multiple processes can safely append concurrently. */
16
+ readonly path: string;
17
+ /** Minimum log level to write to file (uses console level if not specified). */
18
+ readonly level?: LogLevel;
19
+ }
14
20
  export declare class ConsoleLogger implements ILogger {
15
21
  private readonly _prefix;
16
22
  private readonly _stream;
17
23
  private readonly _level;
18
- constructor(_prefix: string, _stream: NodeJS.WritableStream, _level?: LogLevel);
24
+ private readonly _logFileFd;
25
+ private readonly _logFileLevel;
26
+ constructor(_prefix: string, _stream: NodeJS.WritableStream, _level?: LogLevel, logFile?: LogFileOptions);
19
27
  log(message: string): void;
20
28
  info(message: string): void;
21
29
  debug(message: string): void;
22
30
  trace(message: string): void;
31
+ private _writeToFile;
23
32
  }
24
33
  export declare const nullLogger: ILogger;
25
34
  /** Map a `-v` counter (0, 1, 2, …) to a `LogLevel`. */
26
35
  export declare function verbosityToLogLevel(verbosity: number): LogLevel;
27
36
  export declare function logBuildInfo(logger: ILogger): void;
37
+ /** Create LogFileOptions from a file path and verbosity counter. */
38
+ export declare function createLogFileOptions(logFilePath: string | undefined, verbosity: number): LogFileOptions | undefined;
28
39
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IACnB,MAAM,IAAI;IACV,IAAI,IAAI;IACR,KAAK,IAAI;IACT,KAAK,IAAI;CACT;AAED,MAAM,WAAW,OAAO;IACvB,wBAAwB;IACxB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,qBAAa,aAAc,YAAW,OAAO;IAE3C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,CAAC,cAAc,EAC9B,MAAM,GAAE,QAAwB;IAGlD,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAE1B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM3B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAK5B;AAED,eAAO,MAAM,UAAU,EAAE,OAKxB,CAAC;AAEF,uDAAuD;AACvD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAI/D;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAKlD"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAEA,oBAAY,QAAQ;IACnB,MAAM,IAAI;IACV,IAAI,IAAI;IACR,KAAK,IAAI;IACT,KAAK,IAAI;CACT;AAED,MAAM,WAAW,OAAO;IACvB,wBAAwB;IACxB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC9B,wFAAwF;IACxF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;CAC1B;AAED,qBAAa,aAAc,YAAW,OAAO;IAK3C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IANxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAW;gBAGvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,CAAC,cAAc,EAC9B,MAAM,GAAE,QAAwB,EACjD,OAAO,CAAC,EAAE,cAAc;IAUzB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAE1B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO3B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO5B,OAAO,CAAC,YAAY;CASpB;AAED,eAAO,MAAM,UAAU,EAAE,OAKxB,CAAC;AAEF,uDAAuD;AACvD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAI/D;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAKlD;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAQnH"}
package/dist/logger.js CHANGED
@@ -1,3 +1,5 @@
1
+ import * as fs from 'node:fs';
2
+
1
3
  var LogLevel;
2
4
  (function (LogLevel) {
3
5
  LogLevel[LogLevel["silent"] = 0] = "silent";
@@ -9,26 +11,47 @@ class ConsoleLogger {
9
11
  _prefix;
10
12
  _stream;
11
13
  _level;
12
- constructor(_prefix, _stream, _level = LogLevel.info) {
14
+ _logFileFd;
15
+ _logFileLevel;
16
+ constructor(_prefix, _stream, _level = LogLevel.info, logFile) {
13
17
  this._prefix = _prefix;
14
18
  this._stream = _stream;
15
19
  this._level = _level;
20
+ if (logFile) {
21
+ this._logFileFd = fs.openSync(logFile.path, 'a');
22
+ this._logFileLevel = logFile.level ?? _level;
23
+ }
24
+ else {
25
+ this._logFileLevel = LogLevel.silent;
26
+ }
16
27
  }
17
28
  log(message) { this.info(message); }
18
29
  info(message) {
19
30
  if (this._level >= LogLevel.info) {
20
31
  this._stream.write(`[${this._prefix}] ${message}\n`);
21
32
  }
33
+ this._writeToFile(LogLevel.info, message);
22
34
  }
23
35
  debug(message) {
24
36
  if (this._level >= LogLevel.debug) {
25
37
  this._stream.write(`[${this._prefix}] ${message}\n`);
26
38
  }
39
+ this._writeToFile(LogLevel.debug, message);
27
40
  }
28
41
  trace(message) {
29
42
  if (this._level >= LogLevel.trace) {
30
43
  this._stream.write(`[${this._prefix}] ${message}\n`);
31
44
  }
45
+ this._writeToFile(LogLevel.trace, message);
46
+ }
47
+ _writeToFile(level, message) {
48
+ if (this._logFileFd === undefined || this._logFileLevel < level) {
49
+ return;
50
+ }
51
+ const timestamp = new Date().toISOString();
52
+ const levelStr = LogLevel[level].toUpperCase().padEnd(5);
53
+ const entry = `${timestamp} [${levelStr}] [${this._prefix}] [pid:${process.pid}] ${message}\n`;
54
+ fs.appendFileSync(this._logFileFd, entry);
32
55
  }
33
56
  }
34
57
  const nullLogger = {
@@ -51,6 +74,16 @@ function logBuildInfo(logger) {
51
74
  logger.debug(`v${info.version} (built ${info.date})`);
52
75
  }
53
76
  }
77
+ /** Create LogFileOptions from a file path and verbosity counter. */
78
+ function createLogFileOptions(logFilePath, verbosity) {
79
+ if (!logFilePath) {
80
+ return undefined;
81
+ }
82
+ return {
83
+ path: logFilePath,
84
+ level: verbosityToLogLevel(verbosity),
85
+ };
86
+ }
54
87
 
55
- export { ConsoleLogger, LogLevel, logBuildInfo, nullLogger, verbosityToLogLevel };
88
+ export { ConsoleLogger, LogLevel, createLogFileOptions, logBuildInfo, nullLogger, verbosityToLogLevel };
56
89
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sources":["../src/logger.ts"],"sourcesContent":[null],"names":[],"mappings":"IAAY;AAAZ,CAAA,UAAY,QAAQ,EAAA;AACnB,IAAA,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;AACV,IAAA,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;AACR,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;AACT,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;AACV,CAAC,EALW,QAAQ,KAAR,QAAQ,GAAA,EAAA,CAAA,CAAA;MAeP,aAAa,CAAA;AAEP,IAAA,OAAA;AACA,IAAA,OAAA;AACA,IAAA,MAAA;AAHlB,IAAA,WAAA,CACkB,OAAe,EACf,OAA8B,EAC9B,MAAA,GAAmB,QAAQ,CAAC,IAAI,EAAA;QAFhC,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,MAAM,GAAN,MAAM;IACrB;IAEH,GAAG,CAAC,OAAe,EAAA,EAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAEjD,IAAA,IAAI,CAAC,OAAe,EAAA;QACnB,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE;AACjC,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAA,EAAA,EAAK,OAAO,CAAA,EAAA,CAAI,CAAC;QACrD;IACD;AAEA,IAAA,KAAK,CAAC,OAAe,EAAA;QACpB,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,EAAE;AAClC,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAA,EAAA,EAAK,OAAO,CAAA,EAAA,CAAI,CAAC;QACrD;IACD;AAEA,IAAA,KAAK,CAAC,OAAe,EAAA;QACpB,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,EAAE;AAClC,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAA,EAAA,EAAK,OAAO,CAAA,EAAA,CAAI,CAAC;QACrD;IACD;AACA;AAEM,MAAM,UAAU,GAAY;AAClC,IAAA,GAAG,EAAE,MAAK,EAAE,CAAC;AACb,IAAA,IAAI,EAAE,MAAK,EAAE,CAAC;AACd,IAAA,KAAK,EAAE,MAAK,EAAE,CAAC;AACf,IAAA,KAAK,EAAE,MAAK,EAAE,CAAC;;AAGhB;AACM,SAAU,mBAAmB,CAAC,SAAiB,EAAA;IACpD,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC,IAAI;IACxC,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC,KAAK;IAC1C,OAAO,QAAQ,CAAC,KAAK;AACtB;AAEM,SAAU,YAAY,CAAC,MAAe,EAAA;AAC3C,IAAA,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU;IAClC,IAAI,IAAI,EAAE;AACT,QAAA,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAA,QAAA,EAAW,IAAI,CAAC,IAAI,CAAA,CAAA,CAAG,CAAC;IACtD;AACD;;;;"}
1
+ {"version":3,"file":"logger.js","sources":["../src/logger.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,187 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "version": {
6
+ "type": "number",
7
+ "const": 1
8
+ },
9
+ "repository": {
10
+ "type": "object",
11
+ "properties": {
12
+ "owner": {
13
+ "type": "string"
14
+ },
15
+ "name": {
16
+ "type": "string"
17
+ }
18
+ },
19
+ "required": [
20
+ "owner",
21
+ "name"
22
+ ],
23
+ "additionalProperties": false
24
+ },
25
+ "commit": {
26
+ "type": "object",
27
+ "properties": {
28
+ "hash": {
29
+ "type": "string"
30
+ },
31
+ "parentHashes": {
32
+ "type": "array",
33
+ "items": {
34
+ "type": "string"
35
+ }
36
+ },
37
+ "author": {
38
+ "type": "object",
39
+ "properties": {
40
+ "name": {
41
+ "type": "string"
42
+ },
43
+ "email": {
44
+ "type": "string"
45
+ }
46
+ },
47
+ "required": [
48
+ "name",
49
+ "email"
50
+ ],
51
+ "additionalProperties": false
52
+ },
53
+ "timestamp": {
54
+ "type": "string"
55
+ },
56
+ "message": {
57
+ "type": "string"
58
+ }
59
+ },
60
+ "required": [
61
+ "hash",
62
+ "parentHashes",
63
+ "author",
64
+ "timestamp",
65
+ "message"
66
+ ],
67
+ "additionalProperties": false
68
+ },
69
+ "fixtures": {
70
+ "type": "array",
71
+ "items": {
72
+ "type": "object",
73
+ "properties": {
74
+ "fixtureId": {
75
+ "type": "string"
76
+ },
77
+ "imageHash": {
78
+ "type": "string"
79
+ },
80
+ "imagePath": {
81
+ "type": "string"
82
+ },
83
+ "background": {
84
+ "type": "string",
85
+ "enum": [
86
+ "light",
87
+ "dark"
88
+ ]
89
+ },
90
+ "labels": {
91
+ "type": "array",
92
+ "items": {
93
+ "type": "string"
94
+ }
95
+ },
96
+ "expectedVisualDescriptions": {
97
+ "type": "array",
98
+ "items": {
99
+ "type": "string"
100
+ }
101
+ },
102
+ "hasError": {
103
+ "type": "boolean"
104
+ },
105
+ "error": {
106
+ "type": "object",
107
+ "properties": {
108
+ "message": {
109
+ "type": "string"
110
+ },
111
+ "stack": {
112
+ "type": "string"
113
+ }
114
+ },
115
+ "required": [
116
+ "message"
117
+ ],
118
+ "additionalProperties": false
119
+ },
120
+ "events": {
121
+ "type": "array",
122
+ "items": {
123
+ "type": "object",
124
+ "properties": {
125
+ "type": {
126
+ "type": "string",
127
+ "enum": [
128
+ "console.error",
129
+ "console.warn",
130
+ "console.log",
131
+ "window.error",
132
+ "window.unhandledrejection"
133
+ ]
134
+ },
135
+ "message": {
136
+ "type": "string"
137
+ }
138
+ },
139
+ "required": [
140
+ "type",
141
+ "message"
142
+ ],
143
+ "additionalProperties": false
144
+ }
145
+ },
146
+ "renderTimeMs": {
147
+ "type": "object",
148
+ "properties": {
149
+ "sync": {
150
+ "type": "number"
151
+ },
152
+ "total": {
153
+ "type": "number"
154
+ }
155
+ },
156
+ "required": [
157
+ "sync",
158
+ "total"
159
+ ],
160
+ "additionalProperties": false
161
+ }
162
+ },
163
+ "required": [
164
+ "fixtureId",
165
+ "background",
166
+ "labels",
167
+ "expectedVisualDescriptions",
168
+ "hasError",
169
+ "events",
170
+ "renderTimeMs"
171
+ ],
172
+ "additionalProperties": false
173
+ }
174
+ },
175
+ "$schema": {
176
+ "type": "string",
177
+ "description": "URL of the JSON Schema for this manifest file"
178
+ }
179
+ },
180
+ "required": [
181
+ "version",
182
+ "repository",
183
+ "commit",
184
+ "fixtures"
185
+ ],
186
+ "additionalProperties": false
187
+ }
@@ -67,6 +67,7 @@ export declare class ComponentExplorerMcpServer extends Disposable {
67
67
  private _registerCloseSession;
68
68
  private _registerUpdateSessionRef;
69
69
  private _registerGetUrl;
70
+ private _registerCheckFixtureErrors;
70
71
  private _registerCheckStability;
71
72
  private _registerCheckTask;
72
73
  private _registerCancelTask;
@@ -1 +1 @@
1
- {"version":3,"file":"McpServer.d.ts","sourceRoot":"","sources":["../../src/mcp/McpServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"McpServer.d.ts","sourceRoot":"","sources":["../../src/mcp/McpServer.ts"],"names":[],"mappings":"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"}