@vscode/component-explorer-cli 0.1.1-1 → 0.1.1-2

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 (58) hide show
  1. package/dist/commands/mcpCommand.d.ts +8 -0
  2. package/dist/commands/mcpCommand.d.ts.map +1 -0
  3. package/dist/commands/mcpCommand.js +24 -0
  4. package/dist/commands/mcpCommand.js.map +1 -0
  5. package/dist/commands/screenshotCommand.js +1 -1
  6. package/dist/commands/screenshotCommand.js.map +1 -1
  7. package/dist/commands/serveCommand.d.ts +16 -0
  8. package/dist/commands/serveCommand.d.ts.map +1 -0
  9. package/dist/commands/serveCommand.js +137 -0
  10. package/dist/commands/serveCommand.js.map +1 -0
  11. package/dist/commands/watchCommand.d.ts.map +1 -1
  12. package/dist/commands/watchCommand.js +6 -3
  13. package/dist/commands/watchCommand.js.map +1 -1
  14. package/dist/daemon/DaemonService.d.ts +131 -0
  15. package/dist/daemon/DaemonService.d.ts.map +1 -0
  16. package/dist/daemon/DaemonService.js +450 -0
  17. package/dist/daemon/DaemonService.js.map +1 -0
  18. package/dist/daemon/approvalStore.d.ts +51 -0
  19. package/dist/daemon/approvalStore.d.ts.map +1 -0
  20. package/dist/daemon/approvalStore.js +58 -0
  21. package/dist/daemon/approvalStore.js.map +1 -0
  22. package/dist/daemon/lifecycle.d.ts +8 -0
  23. package/dist/daemon/lifecycle.d.ts.map +1 -0
  24. package/dist/daemon/lifecycle.js +51 -0
  25. package/dist/daemon/lifecycle.js.map +1 -0
  26. package/dist/daemon/pipeClient.d.ts +4 -0
  27. package/dist/daemon/pipeClient.d.ts.map +1 -0
  28. package/dist/daemon/pipeClient.js +97 -0
  29. package/dist/daemon/pipeClient.js.map +1 -0
  30. package/dist/daemon/pipeName.d.ts +2 -0
  31. package/dist/daemon/pipeName.d.ts.map +1 -0
  32. package/dist/daemon/pipeName.js +14 -0
  33. package/dist/daemon/pipeName.js.map +1 -0
  34. package/dist/daemon/pipeServer.d.ts +4 -0
  35. package/dist/daemon/pipeServer.d.ts.map +1 -0
  36. package/dist/daemon/pipeServer.js +23 -0
  37. package/dist/daemon/pipeServer.js.map +1 -0
  38. package/dist/explorerSession.d.ts +5 -3
  39. package/dist/explorerSession.d.ts.map +1 -1
  40. package/dist/explorerSession.js +6 -3
  41. package/dist/explorerSession.js.map +1 -1
  42. package/dist/external/vscode-observables/observables/dist/observableInternal/debugLocation.js +3 -0
  43. package/dist/external/vscode-observables/observables/dist/observableInternal/debugLocation.js.map +1 -1
  44. package/dist/httpServer.d.ts +8 -7
  45. package/dist/httpServer.d.ts.map +1 -1
  46. package/dist/httpServer.js +44 -4
  47. package/dist/httpServer.js.map +1 -1
  48. package/dist/index.js +4 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/mcp/McpServer.d.ts +28 -0
  51. package/dist/mcp/McpServer.d.ts.map +1 -0
  52. package/dist/mcp/McpServer.js +386 -0
  53. package/dist/mcp/McpServer.js.map +1 -0
  54. package/dist/watchConfig.d.ts +5 -0
  55. package/dist/watchConfig.d.ts.map +1 -1
  56. package/dist/watchConfig.js +14 -2
  57. package/dist/watchConfig.js.map +1 -1
  58. package/package.json +7 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sources":["../../src/daemon/lifecycle.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AASA,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAClC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,aAAa,CACb;AAEK,SAAU,UAAU,CAAC,QAAgB,EAAA;AAC1C,IAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAG;AAC5B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,GAAG,KAAI;YAClJ,IAAI,IAAI,GAAG,EAAE;AACb,YAAA,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC;AACtC,YAAA,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAK;AAClB,gBAAA,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;AAC3B,oBAAA,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBACpC;qBAAO;oBACN,OAAO,CAAC,SAAS,CAAC;gBACnB;AACD,YAAA,CAAC,CAAC;AACH,QAAA,CAAC,CAAC;AACF,QAAA,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;AACzC,QAAA,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACf,GAAG,CAAC,GAAG,EAAE;AACV,IAAA,CAAC,CAAC;AACH;AAEO,eAAe,aAAa,CAClC,QAAgB,EAChB,OAA8B,EAAA;IAE9B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,SAAS;AAC/C,IAAA,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE;AAC7B,QAAA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC;QACzC,IAAI,MAAM,EAAE;AAAE,YAAA,OAAO,MAAM;QAAE;AAC7B,QAAA,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3C;IACA,MAAM,IAAI,KAAK,CAAC,CAAA,4BAAA,EAA+B,OAAO,CAAC,SAAS,CAAA,EAAA,CAAI,CAAC;AACtE;AAEO,eAAe,YAAY,CAAC,UAAkB,EAAA;AACpD,IAAA,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC;AAE3C,IAAA,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC;IAC3C,IAAI,QAAQ,EAAE;AAAE,QAAA,OAAO,QAAQ;IAAE;AAEjC,IAAA,MAAM,KAAK,GAAG,KAAK,CAClB,OAAO,CAAC,QAAQ,EAChB,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,EAC3C,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CACnC;IACD,KAAK,CAAC,KAAK,EAAE;IAEb,OAAO,aAAa,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AACtD;;;;"}
@@ -0,0 +1,4 @@
1
+ import { ProxyApiClient } from '@hediet/simple-api/client';
2
+ import type { DaemonApiType } from './DaemonService.js';
3
+ export declare function createPipeClient(pipeName: string): ProxyApiClient<DaemonApiType>;
4
+ //# sourceMappingURL=pipeClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeClient.d.ts","sourceRoot":"","sources":["../../src/daemon/pipeClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,CA2FhF"}
@@ -0,0 +1,97 @@
1
+ import http from 'node:http';
2
+ import { ProxyApiClient } from '@hediet/simple-api/client';
3
+ import { AsyncStream } from '@hediet/simple-api';
4
+
5
+ function createPipeClient(pipeName) {
6
+ return new ProxyApiClient(async (method, arg) => {
7
+ const body = JSON.stringify(arg ?? {});
8
+ return new Promise((resolve, reject) => {
9
+ const req = http.request({
10
+ socketPath: pipeName,
11
+ path: `/api/${method}`,
12
+ method: 'POST',
13
+ headers: {
14
+ 'Content-Type': 'application/json',
15
+ 'Content-Length': Buffer.byteLength(body),
16
+ },
17
+ }, (res) => {
18
+ const contentType = res.headers['content-type'] ?? '';
19
+ if (contentType.startsWith('application/jsonl')) {
20
+ resolve(AsyncStream.fromFn(() => {
21
+ let buffer = '';
22
+ const pending = [];
23
+ let resolve;
24
+ let done = false;
25
+ res.on('data', (chunk) => {
26
+ buffer += chunk.toString();
27
+ let eol;
28
+ while ((eol = buffer.indexOf('\n')) >= 0) {
29
+ const line = buffer.slice(0, eol).trim();
30
+ buffer = buffer.slice(eol + 1);
31
+ if (line) {
32
+ const parsed = JSON.parse(line);
33
+ if (resolve) {
34
+ const r = resolve;
35
+ resolve = undefined;
36
+ r({ value: parsed, done: false });
37
+ }
38
+ else {
39
+ pending.push(parsed);
40
+ }
41
+ }
42
+ }
43
+ });
44
+ res.on('end', () => {
45
+ if (buffer.trim()) {
46
+ pending.push(JSON.parse(buffer.trim()));
47
+ }
48
+ done = true;
49
+ if (resolve) {
50
+ const r = resolve;
51
+ resolve = undefined;
52
+ r({ value: undefined, done: true });
53
+ }
54
+ });
55
+ res.on('error', (err) => {
56
+ done = true;
57
+ if (resolve) {
58
+ const r = resolve;
59
+ resolve = undefined;
60
+ r({ value: undefined, done: true });
61
+ }
62
+ });
63
+ return {
64
+ next() {
65
+ if (pending.length > 0) {
66
+ return Promise.resolve({ value: pending.shift(), done: false });
67
+ }
68
+ if (done) {
69
+ return Promise.resolve({ value: undefined, done: true });
70
+ }
71
+ return new Promise(r => { resolve = r; });
72
+ },
73
+ };
74
+ }));
75
+ }
76
+ else {
77
+ let data = '';
78
+ res.on('data', chunk => data += chunk);
79
+ res.on('end', () => {
80
+ if (res.statusCode !== 200) {
81
+ reject(new Error(`Daemon error (${res.statusCode}): ${data}`));
82
+ }
83
+ else {
84
+ resolve(data ? JSON.parse(data) : null);
85
+ }
86
+ });
87
+ }
88
+ });
89
+ req.on('error', reject);
90
+ req.write(body);
91
+ req.end();
92
+ });
93
+ });
94
+ }
95
+
96
+ export { createPipeClient };
97
+ //# sourceMappingURL=pipeClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeClient.js","sources":["../../src/daemon/pipeClient.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function daemonPipeName(configPath: string): string;
2
+ //# sourceMappingURL=pipeName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeName.d.ts","sourceRoot":"","sources":["../../src/daemon/pipeName.ts"],"names":[],"mappings":"AAIA,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMzD"}
@@ -0,0 +1,14 @@
1
+ import { createHash } from 'node:crypto';
2
+ import * as os from 'node:os';
3
+ import * as path from 'node:path';
4
+
5
+ function daemonPipeName(configPath) {
6
+ const absPath = path.resolve(configPath);
7
+ const h = createHash('sha256').update(absPath).digest('hex').slice(0, 16);
8
+ return process.platform === 'win32'
9
+ ? `\\\\.\\pipe\\component-explorer-${h}`
10
+ : path.join(os.tmpdir(), `component-explorer-${h}.sock`);
11
+ }
12
+
13
+ export { daemonPipeName };
14
+ //# sourceMappingURL=pipeName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeName.js","sources":["../../src/daemon/pipeName.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAIM,SAAU,cAAc,CAAC,UAAkB,EAAA;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;IACxC,MAAM,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AACzE,IAAA,OAAO,OAAO,CAAC,QAAQ,KAAK;UACzB,CAAA,gCAAA,EAAmC,CAAC,CAAA;AACtC,UAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAA,mBAAA,EAAsB,CAAC,CAAA,KAAA,CAAO,CAAC;AAC1D;;;;"}
@@ -0,0 +1,4 @@
1
+ import http from 'node:http';
2
+ import type { DaemonService } from './DaemonService.js';
3
+ export declare function startPipeServer(pipeName: string, service: DaemonService): Promise<http.Server>;
4
+ //# sourceMappingURL=pipeServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeServer.d.ts","sourceRoot":"","sources":["../../src/daemon/pipeServer.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,wBAAsB,eAAe,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAatB"}
@@ -0,0 +1,23 @@
1
+ import http from 'node:http';
2
+ import * as fs from 'node:fs';
3
+ import express from 'express';
4
+ import { createApiRouter } from '@hediet/simple-api/express';
5
+
6
+ async function startPipeServer(pipeName, service) {
7
+ if (process.platform !== 'win32') {
8
+ try {
9
+ fs.unlinkSync(pipeName);
10
+ }
11
+ catch { /* may not exist */ }
12
+ }
13
+ const app = express();
14
+ app.use('/api', createApiRouter(service.api, {
15
+ contextFactory: () => undefined,
16
+ }));
17
+ const server = http.createServer(app);
18
+ await new Promise(resolve => server.listen(pipeName, resolve));
19
+ return server;
20
+ }
21
+
22
+ export { startPipeServer };
23
+ //# sourceMappingURL=pipeServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeServer.js","sources":["../../src/daemon/pipeServer.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAMO,eAAe,eAAe,CACpC,QAAgB,EAChB,OAAsB,EAAA;AAEtB,IAAA,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;AACjC,QAAA,IAAI;AAAE,YAAA,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE;AAAE,QAAA,MAAM,sBAAsB;IAC9D;AAEA,IAAA,MAAM,GAAG,GAAG,OAAO,EAAE;IACrB,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE;AAC5C,QAAA,cAAc,EAAE,MAAM,SAAS;AAC/B,KAAA,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;AACrC,IAAA,MAAM,IAAI,OAAO,CAAO,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpE,IAAA,OAAO,MAAM;AACd;;;;"}
@@ -1,15 +1,17 @@
1
1
  import { type ComponentExplorer } from './componentExplorer.js';
2
2
  import type { BrowserPageFactory } from './browserPage.js';
3
- import { type ComponentExplorerHttpServerFactory } from './httpServer.js';
3
+ import { type ComponentExplorerHttpServerFactory, type ViteServerOptions } from './httpServer.js';
4
+ import type { IObservable } from '@vscode/observables';
5
+ import type { SourceTreeId } from './sourceTreeId.js';
4
6
  import type { ViteProjectRef } from './viteProjectRef.js';
5
- import type { ILogger } from './logger.js';
6
7
  export declare class ExplorerSession {
7
8
  readonly name: string;
8
9
  readonly explorer: ComponentExplorer;
9
10
  private readonly _server;
10
11
  private constructor();
11
- static create(name: string, project: ViteProjectRef, serverFactory: ComponentExplorerHttpServerFactory, browserFactory: BrowserPageFactory, logger: ILogger, resolveViteFrom?: string): Promise<ExplorerSession>;
12
+ static create(name: string, project: ViteProjectRef, serverFactory: ComponentExplorerHttpServerFactory, browserFactory: BrowserPageFactory, options?: ViteServerOptions): Promise<ExplorerSession>;
12
13
  get serverUrl(): string;
14
+ get sourceTreeId(): IObservable<SourceTreeId>;
13
15
  dispose(): Promise<void>;
14
16
  }
15
17
  //# sourceMappingURL=explorerSession.d.ts.map
@@ -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,MAAM,iBAAiB,CAAC;AAC5G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,qBAAa,eAAe;IAE1B,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHzB,OAAO;WAMM,MAAM,CAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,EACvB,aAAa,EAAE,kCAAkC,EACjD,cAAc,EAAE,kBAAkB,EAClC,MAAM,EAAE,OAAO,EACf,eAAe,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,eAAe,CAAC;IAM3B,IAAI,SAAS,IAAI,MAAM,CAEtB;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;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,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,qBAAa,eAAe;IAE1B,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHzB,OAAO;WAMM,MAAM,CAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,EACvB,aAAa,EAAE,kCAAkC,EACjD,cAAc,EAAE,kBAAkB,EAClC,OAAO,CAAC,EAAE,iBAAiB,GACzB,OAAO,CAAC,eAAe,CAAC;IAM3B,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,YAAY,IAAI,WAAW,CAAC,YAAY,CAAC,CAE5C;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAI9B"}
@@ -9,14 +9,17 @@ class ExplorerSession {
9
9
  this.explorer = explorer;
10
10
  this._server = _server;
11
11
  }
12
- static async create(name, project, serverFactory, browserFactory, logger, resolveViteFrom) {
13
- const server = await serverFactory.createViteServer(project, resolveViteFrom, logger);
14
- const explorer = new BrowserComponentExplorer(browserFactory, server, logger);
12
+ static async create(name, project, serverFactory, browserFactory, options) {
13
+ const server = await serverFactory.createViteServer(project, options);
14
+ const explorer = new BrowserComponentExplorer(browserFactory, server, options?.logger);
15
15
  return new ExplorerSession(name, explorer, server);
16
16
  }
17
17
  get serverUrl() {
18
18
  return this._server.url;
19
19
  }
20
+ get sourceTreeId() {
21
+ return this._server.sourceTreeId;
22
+ }
20
23
  async dispose() {
21
24
  await this.explorer.dispose();
22
25
  await this._server.dispose();
@@ -1 +1 @@
1
- {"version":3,"file":"explorerSession.js","sources":["../src/explorerSession.ts"],"sourcesContent":[null],"names":[],"mappings":";;MAMa,eAAe,CAAA;AAEjB,IAAA,IAAA;AACA,IAAA,QAAA;AACQ,IAAA,OAAA;AAHlB,IAAA,WAAA,CACU,IAAY,EACZ,QAA2B,EACnB,OAAoC,EAAA;QAF5C,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACA,IAAA,CAAA,OAAO,GAAP,OAAO;IACtB;AAEH,IAAA,aAAa,MAAM,CAClB,IAAY,EACZ,OAAuB,EACvB,aAAiD,EACjD,cAAkC,EAClC,MAAe,EACf,eAAwB,EAAA;AAExB,QAAA,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC;QACrF,MAAM,QAAQ,GAAG,IAAI,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC;QAC7E,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC;IACnD;AAEA,IAAA,IAAI,SAAS,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG;IACxB;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;AAEjB,IAAA,IAAA;AACA,IAAA,QAAA;AACQ,IAAA,OAAA;AAHlB,IAAA,WAAA,CACU,IAAY,EACZ,QAA2B,EACnB,OAAoC,EAAA;QAF5C,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACA,IAAA,CAAA,OAAO,GAAP,OAAO;IACtB;AAEH,IAAA,aAAa,MAAM,CAClB,IAAY,EACZ,OAAuB,EACvB,aAAiD,EACjD,cAAkC,EAClC,OAA2B,EAAA;QAE3B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;AACrE,QAAA,MAAM,QAAQ,GAAG,IAAI,wBAAwB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;QACtF,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC;IACnD;AAEA,IAAA,IAAI,SAAS,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG;IACxB;AAEA,IAAA,IAAI,YAAY,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY;IACjC;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;;;;"}
@@ -49,6 +49,9 @@ class DebugLocationImpl {
49
49
  }
50
50
  }
51
51
  function parseLine(stackLine) {
52
+ if (!stackLine) {
53
+ return undefined;
54
+ }
52
55
  const match = stackLine.match(/\((.*):(\d+):(\d+)\)/);
53
56
  if (match) {
54
57
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"debugLocation.js","sources":["../../../../../../../../external/vscode-observables/observables/dist/observableInternal/debugLocation.js"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar DebugLocation;\n(function (DebugLocation) {\n let enabled = false;\n function enable() {\n enabled = true;\n }\n DebugLocation.enable = enable;\n function ofCaller() {\n return ofNthCaller(1);\n }\n DebugLocation.ofCaller = ofCaller;\n function ofNthCaller(n) {\n if (!enabled) {\n return undefined;\n }\n const Err = Error; // For the monaco editor checks, which don't have the nodejs types.\n const l = Err.stackTraceLimit;\n Err.stackTraceLimit = 3;\n const stack = new Error().stack;\n Err.stackTraceLimit = l;\n return DebugLocationImpl.fromStack(stack, n + 1);\n }\n DebugLocation.ofNthCaller = ofNthCaller;\n})(DebugLocation || (DebugLocation = {}));\nclass DebugLocationImpl {\n static fromStack(stack, parentIdx) {\n const lines = stack.split('\\n');\n const location = parseLine(lines[parentIdx + 1]);\n if (location) {\n return new DebugLocationImpl(location.fileName, location.line, location.column, location.id);\n }\n else {\n return undefined;\n }\n }\n constructor(fileName, line, column, id) {\n this.fileName = fileName;\n this.line = line;\n this.column = column;\n this.id = id;\n }\n}\nfunction parseLine(stackLine) {\n const match = stackLine.match(/\\((.*):(\\d+):(\\d+)\\)/);\n if (match) {\n return {\n fileName: match[1],\n line: parseInt(match[2]),\n column: parseInt(match[3]),\n id: stackLine,\n };\n }\n const match2 = stackLine.match(/at ([^\\(\\)]*):(\\d+):(\\d+)/);\n if (match2) {\n return {\n fileName: match2[1],\n line: parseInt(match2[2]),\n column: parseInt(match2[3]),\n id: stackLine,\n };\n }\n return undefined;\n}\n\nexport { DebugLocation };\n//# sourceMappingURL=debugLocation.js.map\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,IAAC;AACJ,CAAC,UAAU,aAAa,EAAE;AAC1B,IAAI,IAAI,OAAO,GAAG,KAAK;AACvB,IAAI,SAAS,MAAM,GAAG;AACtB,QAAQ,OAAO,GAAG,IAAI;AACtB,IAAI;AACJ,IAAI,aAAa,CAAC,MAAM,GAAG,MAAM;AACjC,IAAI,SAAS,QAAQ,GAAG;AACxB,QAAQ,OAAO,WAAW,CAAC,CAAC,CAAC;AAC7B,IAAI;AACJ,IAAI,aAAa,CAAC,QAAQ,GAAG,QAAQ;AACrC,IAAI,SAAS,WAAW,CAAC,CAAC,EAAE;AAC5B,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,YAAY,OAAO,SAAS;AAC5B,QAAQ;AACR,QAAQ,MAAM,GAAG,GAAG,KAAK,CAAC;AAC1B,QAAQ,MAAM,CAAC,GAAG,GAAG,CAAC,eAAe;AACrC,QAAQ,GAAG,CAAC,eAAe,GAAG,CAAC;AAC/B,QAAQ,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK;AACvC,QAAQ,GAAG,CAAC,eAAe,GAAG,CAAC;AAC/B,QAAQ,OAAO,iBAAiB,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;AACxD,IAAI;AACJ,IAAI,aAAa,CAAC,WAAW,GAAG,WAAW;AAC3C,CAAC,EAAE,aAAa,KAAK,aAAa,GAAG,EAAE,CAAC,CAAC;AACzC,MAAM,iBAAiB,CAAC;AACxB,IAAI,OAAO,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE;AACvC,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;AACvC,QAAQ,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACxD,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,OAAO,IAAI,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;AACxG,QAAQ;AACR,aAAa;AACb,YAAY,OAAO,SAAS;AAC5B,QAAQ;AACR,IAAI;AACJ,IAAI,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;AAC5C,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE;AACpB,IAAI;AACJ;AACA,SAAS,SAAS,CAAC,SAAS,EAAE;AAC9B,IAAI,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC;AACzD,IAAI,IAAI,KAAK,EAAE;AACf,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9B,YAAY,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpC,YAAY,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtC,YAAY,EAAE,EAAE,SAAS;AACzB,SAAS;AACT,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,2BAA2B,CAAC;AAC/D,IAAI,IAAI,MAAM,EAAE;AAChB,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/B,YAAY,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrC,YAAY,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvC,YAAY,EAAE,EAAE,SAAS;AACzB,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,SAAS;AACpB;;;;"}
1
+ {"version":3,"file":"debugLocation.js","sources":["../../../../../../../../external/vscode-observables/observables/dist/observableInternal/debugLocation.js"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar DebugLocation;\n(function (DebugLocation) {\n let enabled = false;\n function enable() {\n enabled = true;\n }\n DebugLocation.enable = enable;\n function ofCaller() {\n return ofNthCaller(1);\n }\n DebugLocation.ofCaller = ofCaller;\n function ofNthCaller(n) {\n if (!enabled) {\n return undefined;\n }\n const Err = Error; // For the monaco editor checks, which don't have the nodejs types.\n const l = Err.stackTraceLimit;\n Err.stackTraceLimit = 3;\n const stack = new Error().stack;\n Err.stackTraceLimit = l;\n return DebugLocationImpl.fromStack(stack, n + 1);\n }\n DebugLocation.ofNthCaller = ofNthCaller;\n})(DebugLocation || (DebugLocation = {}));\nclass DebugLocationImpl {\n static fromStack(stack, parentIdx) {\n const lines = stack.split('\\n');\n const location = parseLine(lines[parentIdx + 1]);\n if (location) {\n return new DebugLocationImpl(location.fileName, location.line, location.column, location.id);\n }\n else {\n return undefined;\n }\n }\n constructor(fileName, line, column, id) {\n this.fileName = fileName;\n this.line = line;\n this.column = column;\n this.id = id;\n }\n}\nfunction parseLine(stackLine) {\n if (!stackLine) {\n return undefined;\n }\n const match = stackLine.match(/\\((.*):(\\d+):(\\d+)\\)/);\n if (match) {\n return {\n fileName: match[1],\n line: parseInt(match[2]),\n column: parseInt(match[3]),\n id: stackLine,\n };\n }\n const match2 = stackLine.match(/at ([^\\(\\)]*):(\\d+):(\\d+)/);\n if (match2) {\n return {\n fileName: match2[1],\n line: parseInt(match2[2]),\n column: parseInt(match2[3]),\n id: stackLine,\n };\n }\n return undefined;\n}\n\nexport { DebugLocation };\n//# sourceMappingURL=debugLocation.js.map\n"],"names":[],"mappings":"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"}
@@ -2,13 +2,14 @@ import type { IObservable } from '@vscode/observables';
2
2
  import { type ILogger } from './logger.js';
3
3
  import { SourceTreeId } from './sourceTreeId.js';
4
4
  import { ViteProjectRef } from './viteProjectRef.js';
5
+ export interface ViteServerOptions {
6
+ readonly resolveViteFrom?: string;
7
+ readonly logger?: ILogger;
8
+ /** Glob patterns for files that keep HMR. Everything else triggers a full reload. */
9
+ readonly hmrAllowedPaths?: readonly string[];
10
+ }
5
11
  export interface ComponentExplorerHttpServerFactory {
6
- /**
7
- * @param resolveViteFrom Directory to resolve the `vite` package from.
8
- * Defaults to `project.cwd`. Pass the main worktree's project dir
9
- * when starting a server for a git worktree.
10
- */
11
- createViteServer(project: ViteProjectRef, resolveViteFrom?: string, logger?: ILogger): Promise<ComponentExplorerHttpServer>;
12
+ createViteServer(project: ViteProjectRef, options?: ViteServerOptions): Promise<ComponentExplorerHttpServer>;
12
13
  createStaticServer(distDir: string): Promise<ComponentExplorerHttpServer>;
13
14
  }
14
15
  export interface ComponentExplorerHttpServer {
@@ -18,7 +19,7 @@ export interface ComponentExplorerHttpServer {
18
19
  dispose(): Promise<void>;
19
20
  }
20
21
  export declare class DefaultComponentExplorerHttpServerFactory implements ComponentExplorerHttpServerFactory {
21
- createViteServer(project: ViteProjectRef, resolveViteFrom?: string, logger?: ILogger): Promise<ComponentExplorerHttpServer>;
22
+ createViteServer(project: ViteProjectRef, options?: ViteServerOptions): Promise<ComponentExplorerHttpServer>;
22
23
  createStaticServer(_distDir: string): Promise<ComponentExplorerHttpServer>;
23
24
  }
24
25
  //# sourceMappingURL=httpServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"httpServer.d.ts","sourceRoot":"","sources":["../src/httpServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,WAAW,kCAAkC;IAClD;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC5H,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACjD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,qBAAa,yCAA0C,YAAW,kCAAkC;IAC7F,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAI3H,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAGhF"}
1
+ {"version":3,"file":"httpServer.d.ts","sourceRoot":"","sources":["../src/httpServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,qFAAqF;IACrF,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,kCAAkC;IAClD,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC7G,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACjD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,qBAAa,yCAA0C,YAAW,kCAAkC;IAC7F,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAI5G,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAGhF"}
@@ -8,8 +8,8 @@ import { nullLogger } from './logger.js';
8
8
  import { SourceTreeId } from './sourceTreeId.js';
9
9
 
10
10
  class DefaultComponentExplorerHttpServerFactory {
11
- async createViteServer(project, resolveViteFrom, logger) {
12
- return ViteComponentExplorerHttpServer.create(project, resolveViteFrom, logger);
11
+ async createViteServer(project, options) {
12
+ return ViteComponentExplorerHttpServer.create(project, options);
13
13
  }
14
14
  async createStaticServer(_distDir) {
15
15
  throw new Error('Static server not yet implemented');
@@ -25,8 +25,10 @@ class ViteComponentExplorerHttpServer {
25
25
  this.url = url;
26
26
  this.sourceTreeId = sourceTreeId;
27
27
  }
28
- static async create(project, resolveViteFrom, logger) {
29
- const log = logger ?? nullLogger;
28
+ static async create(project, options) {
29
+ const log = options?.logger ?? nullLogger;
30
+ const resolveViteFrom = options?.resolveViteFrom;
31
+ const hmrAllowedPaths = options?.hmrAllowedPaths;
30
32
  // Import Vite from the target project's node_modules, not ours.
31
33
  // This ensures the config is loaded with the same Vite version and
32
34
  // module resolution context as the target project.
@@ -46,17 +48,46 @@ class ViteComponentExplorerHttpServer {
46
48
  }
47
49
  log.trace(`Resolved vite: ${viteUrl}`);
48
50
  const { createServer } = await import(/* @vite-ignore */ viteUrl);
51
+ // Build a custom Vite logger that strips ANSI escape codes and routes
52
+ // through our ILogger so output stays clean in non-TTY terminals.
53
+ const stripAnsi = (s) => s.replace(/\x1b\[[0-9;]*[a-zA-Z]/g, '').replace(/\x1b\].*?\x07/g, '');
54
+ const customLogger = {
55
+ info: (msg) => log.info(stripAnsi(msg)),
56
+ warn: (msg) => log.info(`[warn] ${stripAnsi(msg)}`),
57
+ warnOnce: (msg) => log.info(`[warn] ${stripAnsi(msg)}`),
58
+ error: (msg) => log.info(`[error] ${stripAnsi(msg)}`),
59
+ clearScreen: () => { },
60
+ hasErrorLogged: () => false,
61
+ hasWarned: false,
62
+ };
49
63
  // Change CWD so Vite resolves any relative `root` in the config correctly.
50
64
  // We must NOT pass `root` as inline config because inline config
51
65
  // takes precedence over the config file, which would break configs
52
66
  // that set their own `root` (e.g. `root: '../..'`).
53
67
  const prevCwd = process.cwd();
54
68
  process.chdir(project.cwd);
69
+ const plugins = [];
70
+ if (hmrAllowedPaths) {
71
+ const matchers = hmrAllowedPaths.map(globToRegExp);
72
+ plugins.push({
73
+ name: 'component-explorer-hmr-filter',
74
+ handleHotUpdate({ file, server: s }) {
75
+ if (!matchers.some(re => re.test(file))) {
76
+ log.info(`Full reload for: ${file}`);
77
+ s.ws.send({ type: 'full-reload' });
78
+ return [];
79
+ }
80
+ },
81
+ });
82
+ }
55
83
  let server;
56
84
  try {
57
85
  server = await createServer({
58
86
  configFile: project.configFile,
59
87
  server: { port: 0, strictPort: false },
88
+ customLogger,
89
+ clearScreen: false,
90
+ plugins,
60
91
  });
61
92
  await server.listen();
62
93
  }
@@ -75,6 +106,15 @@ class ViteComponentExplorerHttpServer {
75
106
  await this._server.close();
76
107
  }
77
108
  }
109
+ /** Convert a simple glob pattern (e.g. `*.css`) to a RegExp. */
110
+ function globToRegExp(glob) {
111
+ const escaped = glob.replace(/[.+^${}()|[\]\\]/g, '\\$&')
112
+ .replace(/\*\*/g, '⧫') // placeholder for **
113
+ .replace(/\*/g, '[^/]*')
114
+ .replace(/⧫/g, '.*')
115
+ .replace(/\?/g, '.');
116
+ return new RegExp(`(?:^|/)${escaped}$`);
117
+ }
78
118
 
79
119
  export { DefaultComponentExplorerHttpServerFactory };
80
120
  //# sourceMappingURL=httpServer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"httpServer.js","sources":["../src/httpServer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"httpServer.js","sources":["../src/httpServer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,6 +4,8 @@ import { ScreenshotCommand } from './commands/screenshotCommand.js';
4
4
  import { CompareCommand } from './commands/compareCommand.js';
5
5
  import { AcceptCommand } from './commands/acceptCommand.js';
6
6
  import { WatchCommand } from './commands/watchCommand.js';
7
+ import { ServeCommand } from './commands/serveCommand.js';
8
+ import { McpCommand } from './commands/mcpCommand.js';
7
9
 
8
10
  const cli = new Cli({
9
11
  binaryLabel: 'component-explorer',
@@ -14,6 +16,8 @@ cli.register(ScreenshotCommand);
14
16
  cli.register(CompareCommand);
15
17
  cli.register(AcceptCommand);
16
18
  cli.register(WatchCommand);
19
+ cli.register(ServeCommand);
20
+ cli.register(McpCommand);
17
21
  const [, , ...args] = process.argv;
18
22
  await cli.runExit(args);
19
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAQA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;AACnB,IAAA,WAAW,EAAE,oBAAoB;AACjC,IAAA,aAAa,EAAE,OAAO;AACtB,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;AAE1B,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":";;;;;;;;;AAUA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;AACnB,IAAA,WAAW,EAAE,oBAAoB;AACjC,IAAA,aAAa,EAAE,OAAO;AACtB,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;AAExB,MAAM,KAAI,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI;AACjC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { ProxyApiClient } from '@hediet/simple-api/client';
2
+ import type { DaemonApiType } from '../daemon/DaemonService.js';
3
+ export declare class ComponentExplorerMcpServer {
4
+ private readonly _daemon;
5
+ private readonly _mcp;
6
+ private readonly _watchList;
7
+ private _sessions;
8
+ constructor(_daemon: ProxyApiClient<DaemonApiType>);
9
+ connect(): Promise<void>;
10
+ private _defaultSessionName;
11
+ private _defaultBaselineSessionName;
12
+ private _defaultCurrentSessionName;
13
+ private _sourceTreeId;
14
+ private _updateSessionSourceTreeId;
15
+ private _refreshSessions;
16
+ private _registerTools;
17
+ private _registerListFixtures;
18
+ private _registerScreenshot;
19
+ private _registerCompareScreenshot;
20
+ private _registerApproveDiff;
21
+ private _registerWatchAdd;
22
+ private _registerWatchRemove;
23
+ private _registerWatchSet;
24
+ private _registerWatchCompare;
25
+ private _registerWaitForUpdate;
26
+ private _registerSessions;
27
+ }
28
+ //# sourceMappingURL=McpServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpServer.d.ts","sourceRoot":"","sources":["../../src/mcp/McpServer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,4BAA4B,CAAC;AAiD7E,qBAAa,0BAA0B;IAMrC,OAAO,CAAC,QAAQ,CAAC,OAAO;IALzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,SAAS,CAAqB;gBAGpB,OAAO,EAAE,cAAc,CAAC,aAAa,CAAC;IASlD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,2BAA2B;IAKnC,OAAO,CAAC,0BAA0B;IAKlC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,0BAA0B;YAOpB,gBAAgB;IAM9B,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,mBAAmB;IA8B3B,OAAO,CAAC,0BAA0B;IAsDlC,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,qBAAqB;IAsE7B,OAAO,CAAC,sBAAsB;IA8D9B,OAAO,CAAC,iBAAiB;CAUzB"}