@vscode/component-explorer-cli 0.1.1-8 → 0.1.1-9
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.
- package/dist/commands/mcpCommand.js +3 -4
- package/dist/commands/mcpCommand.js.map +1 -1
- package/dist/commands/serveCommand.d.ts.map +1 -1
- package/dist/commands/serveCommand.js +9 -8
- package/dist/commands/serveCommand.js.map +1 -1
- package/dist/componentExplorer.d.ts.map +1 -1
- package/dist/componentExplorer.js +23 -17
- package/dist/componentExplorer.js.map +1 -1
- package/dist/daemon/DaemonContext.d.ts +4 -0
- package/dist/daemon/DaemonContext.d.ts.map +1 -0
- package/dist/daemon/DaemonService.d.ts +17 -16
- package/dist/daemon/DaemonService.d.ts.map +1 -1
- package/dist/daemon/DaemonService.js +17 -4
- package/dist/daemon/DaemonService.js.map +1 -1
- package/dist/daemon/lifecycle.d.ts +8 -3
- package/dist/daemon/lifecycle.d.ts.map +1 -1
- package/dist/daemon/lifecycle.js +25 -8
- package/dist/daemon/lifecycle.js.map +1 -1
- package/dist/daemon/pipeClient.d.ts +6 -1
- package/dist/daemon/pipeClient.d.ts.map +1 -1
- package/dist/daemon/pipeClient.js +16 -3
- package/dist/daemon/pipeClient.js.map +1 -1
- package/dist/daemon/pipeServer.d.ts.map +1 -1
- package/dist/daemon/pipeServer.js +3 -1
- package/dist/daemon/pipeServer.js.map +1 -1
- package/dist/formatValue.d.ts +2 -0
- package/dist/formatValue.d.ts.map +1 -0
- package/dist/formatValue.js +96 -0
- package/dist/formatValue.js.map +1 -0
- package/dist/formatValue.test.d.ts +2 -0
- package/dist/formatValue.test.d.ts.map +1 -0
- package/dist/httpServer.js +4 -3
- package/dist/httpServer.js.map +1 -1
- package/dist/mcp/McpServer.d.ts +6 -5
- package/dist/mcp/McpServer.d.ts.map +1 -1
- package/dist/mcp/McpServer.js +112 -86
- package/dist/mcp/McpServer.js.map +1 -1
- package/package.json +1 -1
|
@@ -29,20 +29,19 @@ class McpCommand extends Command {
|
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
31
|
const daemonObservable = observableValue('daemon', undefined);
|
|
32
|
+
const mcpClientName = `mcp-${new Date().toISOString().replace(/[-:]/g, '').replace(/\.\d+Z$/, '')}`;
|
|
32
33
|
let pollFn;
|
|
33
34
|
if (this.noAutostart) {
|
|
34
|
-
// Poll for daemon every 5 seconds
|
|
35
35
|
const pipeName = daemonPipeName(resolved.configPath);
|
|
36
36
|
pollFn = async () => {
|
|
37
|
-
const client = await tryConnect(pipeName);
|
|
37
|
+
const client = await tryConnect(pipeName, { clientName: mcpClientName });
|
|
38
38
|
daemonObservable.set(client ? new DaemonConnection(client) : undefined, undefined);
|
|
39
39
|
};
|
|
40
40
|
await pollFn();
|
|
41
41
|
setInterval(pollFn, 5000);
|
|
42
42
|
}
|
|
43
43
|
else {
|
|
44
|
-
|
|
45
|
-
const daemon = await ensureDaemon(resolved.configPath);
|
|
44
|
+
const daemon = await ensureDaemon(resolved.configPath, { clientName: mcpClientName });
|
|
46
45
|
daemonObservable.set(new DaemonConnection(daemon), undefined);
|
|
47
46
|
}
|
|
48
47
|
// Create and connect the MCP server over stdio
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpCommand.js","sources":["../../src/commands/mcpCommand.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;AAOM,MAAO,UAAW,SAAQ,OAAO,CAAA;IACtC,OAAgB,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AAEjC,IAAA,OAAgB,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AACrC,QAAA,WAAW,EAAE,8EAA8E;AAC3F,QAAA,QAAQ,EAAE;YACT,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;YACpD,CAAC,yBAAyB,EAAE,oDAAoD,CAAC;AACjF,SAAA;AACD,KAAA,CAAC;AAEO,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oEAAoE,EAAE,CAAC;AACjJ,IAAA,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC;AAC9H,IAAA,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,WAAW,EAAE,iFAAiF,EAAE,CAAC;AAEhK,IAAA,MAAM,OAAO,GAAA;QACZ,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACnD,QAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,EAAE;YACvC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8DAA8D,CAAC;YACzF;QACD;QAEA,MAAM,gBAAgB,GAAG,eAAe,CACvC,QAAQ,EACR,SAAS,CACT;
|
|
1
|
+
{"version":3,"file":"mcpCommand.js","sources":["../../src/commands/mcpCommand.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;AAOM,MAAO,UAAW,SAAQ,OAAO,CAAA;IACtC,OAAgB,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AAEjC,IAAA,OAAgB,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AACrC,QAAA,WAAW,EAAE,8EAA8E;AAC3F,QAAA,QAAQ,EAAE;YACT,CAAC,kBAAkB,EAAE,8BAA8B,CAAC;YACpD,CAAC,yBAAyB,EAAE,oDAAoD,CAAC;AACjF,SAAA;AACD,KAAA,CAAC;AAEO,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oEAAoE,EAAE,CAAC;AACjJ,IAAA,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC;AAC9H,IAAA,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,WAAW,EAAE,iFAAiF,EAAE,CAAC;AAEhK,IAAA,MAAM,OAAO,GAAA;QACZ,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACnD,QAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,EAAE;YACvC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8DAA8D,CAAC;YACzF;QACD;QAEA,MAAM,gBAAgB,GAAG,eAAe,CACvC,QAAQ,EACR,SAAS,CACT;QAED,MAAM,aAAa,GAAG,CAAA,IAAA,EAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA,CAAE;AAEnG,QAAA,IAAI,MAAyC;AAC7C,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC;YACpD,MAAM,GAAG,YAAW;AACnB,gBAAA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AACxE,gBAAA,gBAAgB,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,SAAS,CAAC;AACnF,YAAA,CAAC;YACD,MAAM,MAAM,EAAE;AACd,YAAA,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;QAC1B;aAAO;AACN,YAAA,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;YACrF,gBAAgB,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;QAC9D;;QAGe,MAAM,0BAA0B,CAAC,MAAM,CAAC,gBAAgB,EAAE;YACxE,MAAM;YACN,eAAe,EAAE,IAAI,CAAC,eAAe;AACrC,SAAA;;QAGD,MAAM,IAAI,OAAO,CAAO,MAAK,EAAE,CAAC,CAAC;IAClC;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serveCommand.d.ts","sourceRoot":"","sources":["../../src/commands/serveCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"serveCommand.d.ts","sourceRoot":"","sources":["../../src/commands/serveCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAe5C,qBAAa,YAAa,SAAQ,OAAO;IACxC,OAAgB,KAAK,aAAe;IAEpC,OAAgB,KAAK,4BAgBlB;IAEH,QAAQ,CAAC,OAAO,SAAsG;IACtH,QAAQ,CAAC,OAAO,SAA2I;IAC3J,QAAQ,CAAC,UAAU,UAAoG;IACvH,QAAQ,CAAC,MAAM,UAAsG;IACrH,QAAQ,CAAC,IAAI,UAAkF;IAC/F,QAAQ,CAAC,eAAe,qBAA8H;IACtJ,QAAQ,CAAC,eAAe,qBAAsH;IAExI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAuDhB,iBAAiB;YA0BjB,OAAO;IAgBrB,OAAO,CAAC,WAAW;YAeL,YAAY;IA+C1B,OAAO,CAAC,uBAAuB;CAyB/B"}
|
|
@@ -10,6 +10,7 @@ import { startPipeServer } from '../daemon/pipeServer.js';
|
|
|
10
10
|
import { daemonPipeName } from '../daemon/pipeName.js';
|
|
11
11
|
import { tryConnect, waitForDaemon } from '../daemon/lifecycle.js';
|
|
12
12
|
import { resolveProject } from '../resolveProject.js';
|
|
13
|
+
import { buildExplorerUrl } from '../utils.js';
|
|
13
14
|
|
|
14
15
|
class ServeCommand extends Command {
|
|
15
16
|
static paths = [['serve']];
|
|
@@ -46,7 +47,7 @@ Without flags: starts a foreground daemon. Errors if one is already running.
|
|
|
46
47
|
const configPath = resolved.configPath;
|
|
47
48
|
const pipeName = daemonPipeName(configPath);
|
|
48
49
|
if (this.kill) {
|
|
49
|
-
const client = await tryConnect(pipeName);
|
|
50
|
+
const client = await tryConnect(pipeName, { clientName: 'cli-kill' });
|
|
50
51
|
if (!client) {
|
|
51
52
|
this.context.stderr.write('No daemon running.\n');
|
|
52
53
|
return;
|
|
@@ -56,9 +57,8 @@ Without flags: starts a foreground daemon. Errors if one is already running.
|
|
|
56
57
|
return;
|
|
57
58
|
}
|
|
58
59
|
if (this.background && this.attach) {
|
|
59
|
-
// Ensure daemon is running, then attach
|
|
60
60
|
await this._ensureBackground(pipeName, configPath);
|
|
61
|
-
const client = await tryConnect(pipeName);
|
|
61
|
+
const client = await tryConnect(pipeName, { clientName: 'cli-attach' });
|
|
62
62
|
if (!client) {
|
|
63
63
|
this.context.stderr.write('Failed to connect after starting daemon.\n');
|
|
64
64
|
return;
|
|
@@ -69,7 +69,7 @@ Without flags: starts a foreground daemon. Errors if one is already running.
|
|
|
69
69
|
return this._ensureBackground(pipeName, configPath);
|
|
70
70
|
}
|
|
71
71
|
if (this.attach) {
|
|
72
|
-
const client = await tryConnect(pipeName);
|
|
72
|
+
const client = await tryConnect(pipeName, { clientName: 'cli-attach' });
|
|
73
73
|
if (!client) {
|
|
74
74
|
this.context.stderr.write(`No daemon running. Start one first:\n $0 serve --project ${this.project}\n`);
|
|
75
75
|
return;
|
|
@@ -77,7 +77,7 @@ Without flags: starts a foreground daemon. Errors if one is already running.
|
|
|
77
77
|
return this._attach(client, pipeName);
|
|
78
78
|
}
|
|
79
79
|
// Default: start foreground daemon
|
|
80
|
-
const existing = await tryConnect(pipeName);
|
|
80
|
+
const existing = await tryConnect(pipeName, { clientName: 'cli-serve' });
|
|
81
81
|
if (existing) {
|
|
82
82
|
this.context.stderr.write(`Daemon already running (pipe: ${pipeName}).\n`);
|
|
83
83
|
this.context.stderr.write(` Attach: component-explorer serve -c ${configPath} --attach\n`);
|
|
@@ -87,7 +87,7 @@ Without flags: starts a foreground daemon. Errors if one is already running.
|
|
|
87
87
|
return this._startDaemon(pipeName, configPath);
|
|
88
88
|
}
|
|
89
89
|
async _ensureBackground(pipeName, configPath) {
|
|
90
|
-
if (await tryConnect(pipeName)) {
|
|
90
|
+
if (await tryConnect(pipeName, { clientName: 'cli-serve' })) {
|
|
91
91
|
this.context.stdout.write('Daemon already running.\n');
|
|
92
92
|
return;
|
|
93
93
|
}
|
|
@@ -101,7 +101,7 @@ Without flags: starts a foreground daemon. Errors if one is already running.
|
|
|
101
101
|
}
|
|
102
102
|
const child = spawn(process.execPath, args, { detached: true, stdio: 'ignore', windowsHide: true });
|
|
103
103
|
child.unref();
|
|
104
|
-
await waitForDaemon(pipeName, { timeoutMs: 30_000 });
|
|
104
|
+
await waitForDaemon(pipeName, { timeoutMs: 30_000, clientName: 'cli-serve' });
|
|
105
105
|
this.context.stdout.write(`Daemon started (pipe: ${pipeName})\n`);
|
|
106
106
|
}
|
|
107
107
|
async _attach(client, pipeName) {
|
|
@@ -143,7 +143,8 @@ Without flags: starts a foreground daemon. Errors if one is already running.
|
|
|
143
143
|
this.context.stdout.write(` ${s.name}: (loading) (${s.sourceKind})\n`);
|
|
144
144
|
}
|
|
145
145
|
else {
|
|
146
|
-
|
|
146
|
+
const explorerUrl = buildExplorerUrl({ baseUrl: s.serverUrl });
|
|
147
|
+
this.context.stdout.write(` ${s.name}: ${explorerUrl} (${s.sourceKind})\n`);
|
|
147
148
|
}
|
|
148
149
|
}
|
|
149
150
|
this.context.stdout.write('\n');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serveCommand.js","sources":["../../src/commands/serveCommand.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serveCommand.js","sources":["../../src/commands/serveCommand.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"componentExplorer.d.ts","sourceRoot":"","sources":["../src/componentExplorer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"componentExplorer.d.ts","sourceRoot":"","sources":["../src/componentExplorer.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,14 +16,14 @@ class BrowserComponentExplorer {
|
|
|
16
16
|
async _ensureReady() {
|
|
17
17
|
if (!this._page) {
|
|
18
18
|
const cliUrl = buildExplorerUrl({ baseUrl: this._server.url, rawRender: true });
|
|
19
|
-
this._logger.
|
|
19
|
+
this._logger.debug(`Opening browser page: ${cliUrl}`);
|
|
20
20
|
this._page = await this._browserPageFactory.openPage(cliUrl);
|
|
21
21
|
await this._waitForCliApi(this._page);
|
|
22
22
|
}
|
|
23
23
|
return this._page;
|
|
24
24
|
}
|
|
25
25
|
async _waitForCliApi(page) {
|
|
26
|
-
this._logger.
|
|
26
|
+
this._logger.trace('Polling for __componentExplorerCli__ to initialize...');
|
|
27
27
|
await page.evaluateJs(`
|
|
28
28
|
new Promise(resolve => {
|
|
29
29
|
function check() {
|
|
@@ -34,7 +34,7 @@ class BrowserComponentExplorer {
|
|
|
34
34
|
})
|
|
35
35
|
`);
|
|
36
36
|
this._lastState = await this._getState(page);
|
|
37
|
-
this._logger.
|
|
37
|
+
this._logger.debug(`CLI API ready, sessionId=${this._lastState.sessionId}, version=${this._lastState.updateVersion}`);
|
|
38
38
|
}
|
|
39
39
|
async _getState(page) {
|
|
40
40
|
return page.evaluateJs(`({
|
|
@@ -51,18 +51,22 @@ class BrowserComponentExplorer {
|
|
|
51
51
|
const prev = this._screenshotMutex;
|
|
52
52
|
let resolve;
|
|
53
53
|
this._screenshotMutex = new Promise(r => { resolve = r; });
|
|
54
|
+
this._logger.trace(`Screenshot mutex: waiting for ${fixtureId}`);
|
|
54
55
|
await prev;
|
|
56
|
+
this._logger.trace(`Screenshot mutex: acquired for ${fixtureId}`);
|
|
57
|
+
const startTime = Date.now();
|
|
55
58
|
try {
|
|
56
59
|
const page = await this._ensureReady();
|
|
57
60
|
const escapedId = JSON.stringify(fixtureId);
|
|
58
61
|
const debugUrl = buildExplorerUrl({ baseUrl: this._server.url, rawRender: true, fixtureId });
|
|
59
|
-
this._logger.
|
|
60
|
-
// renderFixture now returns { errors: ErrorInfo[] }
|
|
62
|
+
this._logger.debug(`Rendering fixture: ${debugUrl}`);
|
|
61
63
|
const renderResult = await page.evaluateJs(`window.__componentExplorerCli__.renderFixture(${escapedId})`);
|
|
62
64
|
const image = await page.screenshot(`document.getElementById('root').lastElementChild`);
|
|
65
|
+
this._logger.debug(`Screenshot done: ${fixtureId} (${Date.now() - startTime}ms)`);
|
|
63
66
|
return { image, errors: renderResult.errors };
|
|
64
67
|
}
|
|
65
68
|
finally {
|
|
69
|
+
this._logger.trace(`Screenshot mutex: released for ${fixtureId}`);
|
|
66
70
|
resolve();
|
|
67
71
|
}
|
|
68
72
|
}
|
|
@@ -70,34 +74,35 @@ class BrowserComponentExplorer {
|
|
|
70
74
|
const prev = this._screenshotMutex;
|
|
71
75
|
let resolve;
|
|
72
76
|
this._screenshotMutex = new Promise(r => { resolve = r; });
|
|
77
|
+
this._logger.trace(`Screenshot mutex: waiting for stability check ${fixtureId}`);
|
|
73
78
|
await prev;
|
|
79
|
+
this._logger.trace(`Screenshot mutex: acquired for stability check ${fixtureId}`);
|
|
74
80
|
try {
|
|
75
81
|
const page = await this._ensureReady();
|
|
76
82
|
const escapedId = JSON.stringify(fixtureId);
|
|
77
83
|
const debugUrl = buildExplorerUrl({ baseUrl: this._server.url, rawRender: true, fixtureId });
|
|
78
|
-
this._logger.
|
|
79
|
-
// Dispose current fixture first to test initial mounting stability
|
|
84
|
+
this._logger.debug(`Stability check: ${debugUrl}`);
|
|
80
85
|
await page.evaluateJs(`window.__componentExplorerCli__.disposeCurrentFixture?.()`);
|
|
81
86
|
const startTime = Date.now();
|
|
82
87
|
const renderResult = await page.evaluateJs(`window.__componentExplorerCli__.renderFixture(${escapedId})`);
|
|
83
|
-
// Screenshot at t≈0 (immediately after render)
|
|
84
88
|
const domExpr = `document.getElementById('root').lastElementChild`;
|
|
85
89
|
const image0 = await page.screenshot(domExpr);
|
|
86
90
|
const delay0 = Date.now() - startTime;
|
|
87
|
-
|
|
91
|
+
this._logger.debug(`Stability screenshot 1/3 at ${delay0}ms`);
|
|
88
92
|
const elapsed1 = Date.now() - startTime;
|
|
89
93
|
if (elapsed1 < 500) {
|
|
90
94
|
await new Promise(r => setTimeout(r, 500 - elapsed1));
|
|
91
95
|
}
|
|
92
96
|
const image1 = await page.screenshot(domExpr);
|
|
93
97
|
const delay1 = Date.now() - startTime;
|
|
94
|
-
|
|
98
|
+
this._logger.debug(`Stability screenshot 2/3 at ${delay1}ms`);
|
|
95
99
|
const elapsed2 = Date.now() - startTime;
|
|
96
100
|
if (elapsed2 < 3000) {
|
|
97
101
|
await new Promise(r => setTimeout(r, 3000 - elapsed2));
|
|
98
102
|
}
|
|
99
103
|
const image2 = await page.screenshot(domExpr);
|
|
100
104
|
const delay2 = Date.now() - startTime;
|
|
105
|
+
this._logger.debug(`Stability check done: ${fixtureId} (${delay2}ms total)`);
|
|
101
106
|
return {
|
|
102
107
|
screenshots: [
|
|
103
108
|
{ image: image0, delayMs: delay0 },
|
|
@@ -108,6 +113,7 @@ class BrowserComponentExplorer {
|
|
|
108
113
|
};
|
|
109
114
|
}
|
|
110
115
|
finally {
|
|
116
|
+
this._logger.trace(`Screenshot mutex: released for stability check ${fixtureId}`);
|
|
111
117
|
resolve();
|
|
112
118
|
}
|
|
113
119
|
}
|
|
@@ -117,12 +123,15 @@ class BrowserComponentExplorer {
|
|
|
117
123
|
this._screenshotMutex = new Promise(r => { resolve = r; });
|
|
118
124
|
await prev;
|
|
119
125
|
try {
|
|
126
|
+
this._logger.trace(`evaluateJs: expression length=${expression.length}${fixtureId ? `, fixtureId=${fixtureId}` : ''}`);
|
|
120
127
|
const page = await this._ensureReady();
|
|
121
128
|
if (fixtureId !== undefined) {
|
|
122
129
|
const escapedId = JSON.stringify(fixtureId);
|
|
123
130
|
await page.evaluateJs(`window.__componentExplorerCli__.renderFixture(${escapedId})`);
|
|
124
131
|
}
|
|
125
|
-
|
|
132
|
+
const result = await page.evaluateJs(expression);
|
|
133
|
+
this._logger.trace(`evaluateJs: result length=${JSON.stringify(result)?.length ?? 0}`);
|
|
134
|
+
return result;
|
|
126
135
|
}
|
|
127
136
|
finally {
|
|
128
137
|
resolve();
|
|
@@ -133,11 +142,8 @@ class BrowserComponentExplorer {
|
|
|
133
142
|
}
|
|
134
143
|
async waitForUpdate(timeoutMs = 0) {
|
|
135
144
|
const page = await this._ensureReady();
|
|
136
|
-
// Read the current state NOW, not from _lastState. This ensures any
|
|
137
|
-
// spurious version bumps that happened during prior operations (e.g.
|
|
138
|
-
// initial screenshot capture, Vite dependency optimization) are ignored.
|
|
139
145
|
const prev = await this._getState(page);
|
|
140
|
-
this._logger.
|
|
146
|
+
this._logger.debug(`Waiting for update (sessionId=${prev.sessionId}, version=${prev.updateVersion})...`);
|
|
141
147
|
const newState = await page.evaluateJs(`
|
|
142
148
|
new Promise((resolve, reject) => {
|
|
143
149
|
${timeoutMs > 0 ? `const timeout = setTimeout(() => reject(new Error('Timeout waiting for HMR update')), ${timeoutMs});` : ''}
|
|
@@ -161,10 +167,10 @@ class BrowserComponentExplorer {
|
|
|
161
167
|
`);
|
|
162
168
|
const reloaded = newState.sessionId !== prev.sessionId;
|
|
163
169
|
if (reloaded) {
|
|
164
|
-
this._logger.
|
|
170
|
+
this._logger.debug(`Page reloaded: sessionId ${prev.sessionId} → ${newState.sessionId}`);
|
|
165
171
|
}
|
|
166
172
|
else {
|
|
167
|
-
this._logger.
|
|
173
|
+
this._logger.debug(`HMR update: version ${prev.updateVersion} → ${newState.updateVersion}`);
|
|
168
174
|
}
|
|
169
175
|
this._lastState = newState;
|
|
170
176
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"componentExplorer.js","sources":["../src/componentExplorer.ts"],"sourcesContent":[null],"names":[],"mappings":";;;MAkFa,wBAAwB,CAAA;AAMlB,IAAA,mBAAA;AACA,IAAA,OAAA;AACA,IAAA,OAAA;AAPV,IAAA,KAAK;AACL,IAAA,UAAU;AACV,IAAA,gBAAgB,GAAkB,OAAO,CAAC,OAAO,EAAE;AAE3D,IAAA,WAAA,CACkB,mBAAuC,EACvC,OAAoC,EACpC,UAAmB,UAAU,EAAA;QAF7B,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QACnB,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,OAAO,GAAP,OAAO;IACtB;AAEK,IAAA,MAAM,YAAY,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAChB,YAAA,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAC/E,IAAI,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"componentExplorer.js","sources":["../src/componentExplorer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DaemonContext.d.ts","sourceRoot":"","sources":["../../src/daemon/DaemonContext.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -4,6 +4,7 @@ import { ExplorerSession } from '../explorerSession.js';
|
|
|
4
4
|
import type { ResolvedWatchConfig } from '../watchConfig.js';
|
|
5
5
|
import { type ILogger } from '../logger.js';
|
|
6
6
|
import { type ApprovalStore } from './approvalStore.js';
|
|
7
|
+
import type { DaemonContext } from './DaemonContext.js';
|
|
7
8
|
export declare class ActivityTracker implements IDisposable {
|
|
8
9
|
private readonly _idleTimeoutMs;
|
|
9
10
|
private readonly _onIdle;
|
|
@@ -68,8 +69,8 @@ export declare class DaemonService {
|
|
|
68
69
|
list: import("@hediet/simple-api").IMethod<{
|
|
69
70
|
sessionName: string;
|
|
70
71
|
sourceTreeId: string;
|
|
71
|
-
}, import("../componentExplorer.js").FixtureInfo[],
|
|
72
|
-
}>,
|
|
72
|
+
}, import("../componentExplorer.js").FixtureInfo[], DaemonContext>;
|
|
73
|
+
}>, DaemonContext>;
|
|
73
74
|
screenshots: import("@hediet/simple-api").ApiImplementation<import("@hediet/simple-api").MapMethods<{
|
|
74
75
|
take: import("@hediet/simple-api").IMethod<{
|
|
75
76
|
fixtureId: string;
|
|
@@ -95,7 +96,7 @@ export declare class DaemonService {
|
|
|
95
96
|
errors: import("../componentExplorer.js").ErrorInfo[] | undefined;
|
|
96
97
|
isStable?: undefined;
|
|
97
98
|
stabilityScreenshots?: undefined;
|
|
98
|
-
},
|
|
99
|
+
}, DaemonContext>;
|
|
99
100
|
takeBatch: import("@hediet/simple-api").IMethod<{
|
|
100
101
|
fixtureIds: string[];
|
|
101
102
|
sourceTreeId: string;
|
|
@@ -109,7 +110,7 @@ export declare class DaemonService {
|
|
|
109
110
|
image: string | undefined;
|
|
110
111
|
errors: import("../componentExplorer.js").ErrorInfo[] | undefined;
|
|
111
112
|
}[];
|
|
112
|
-
},
|
|
113
|
+
}, DaemonContext>;
|
|
113
114
|
compare: import("@hediet/simple-api").IMethod<{
|
|
114
115
|
fixtureId: string;
|
|
115
116
|
baselineSessionName: string;
|
|
@@ -126,29 +127,29 @@ export declare class DaemonService {
|
|
|
126
127
|
baselineErrors: import("../componentExplorer.js").ErrorInfo[] | undefined;
|
|
127
128
|
currentErrors: import("../componentExplorer.js").ErrorInfo[] | undefined;
|
|
128
129
|
approval: import("./approvalStore.js").ApprovalInfo | undefined;
|
|
129
|
-
},
|
|
130
|
-
}>,
|
|
130
|
+
}, DaemonContext>;
|
|
131
|
+
}>, DaemonContext>;
|
|
131
132
|
approvals: import("@hediet/simple-api").ApiImplementation<import("@hediet/simple-api").MapMethods<{
|
|
132
133
|
approve: import("@hediet/simple-api").IMethod<{
|
|
133
134
|
fixtureId: string;
|
|
134
135
|
originalHash: string;
|
|
135
136
|
modifiedHash: string;
|
|
136
137
|
comment: string;
|
|
137
|
-
}, void,
|
|
138
|
+
}, void, DaemonContext>;
|
|
138
139
|
revoke: import("@hediet/simple-api").IMethod<{
|
|
139
140
|
fixtureId: string;
|
|
140
141
|
originalHash: string;
|
|
141
142
|
modifiedHash: string;
|
|
142
|
-
}, void,
|
|
143
|
+
}, void, DaemonContext>;
|
|
143
144
|
list: import("@hediet/simple-api").IMethod<{
|
|
144
145
|
fixtureId?: string | undefined;
|
|
145
|
-
}, import("./approvalStore.js").ApprovalInfo[],
|
|
146
|
+
}, import("./approvalStore.js").ApprovalInfo[], DaemonContext>;
|
|
146
147
|
lookup: import("@hediet/simple-api").IMethod<{
|
|
147
148
|
fixtureId: string;
|
|
148
149
|
originalHash: string;
|
|
149
150
|
modifiedHash: string;
|
|
150
|
-
}, import("./approvalStore.js").ApprovalInfo | null,
|
|
151
|
-
}>,
|
|
151
|
+
}, import("./approvalStore.js").ApprovalInfo | null, DaemonContext>;
|
|
152
|
+
}>, DaemonContext>;
|
|
152
153
|
evaluate: import("@hediet/simple-api").IMethod<{
|
|
153
154
|
sessionName: string;
|
|
154
155
|
sourceTreeId: string;
|
|
@@ -156,11 +157,11 @@ export declare class DaemonService {
|
|
|
156
157
|
fixtureId?: string | undefined;
|
|
157
158
|
}, {
|
|
158
159
|
result: unknown;
|
|
159
|
-
},
|
|
160
|
-
events: import("@hediet/simple-api").IMethod<Record<string, never>, AsyncStream<DaemonEvent>,
|
|
161
|
-
sessions: import("@hediet/simple-api").IMethod<Record<string, never>, SessionInfo[],
|
|
162
|
-
shutdown: import("@hediet/simple-api").IMethod<Record<string, never>, void,
|
|
163
|
-
}>,
|
|
160
|
+
}, DaemonContext>;
|
|
161
|
+
events: import("@hediet/simple-api").IMethod<Record<string, never>, AsyncStream<DaemonEvent>, DaemonContext>;
|
|
162
|
+
sessions: import("@hediet/simple-api").IMethod<Record<string, never>, SessionInfo[], DaemonContext>;
|
|
163
|
+
shutdown: import("@hediet/simple-api").IMethod<Record<string, never>, void, DaemonContext>;
|
|
164
|
+
}>, DaemonContext>;
|
|
164
165
|
private constructor();
|
|
165
166
|
static create(config: ResolvedWatchConfig, logger: ILogger, pipeName?: string, options?: {
|
|
166
167
|
idleTimeoutMs?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DaemonService.d.ts","sourceRoot":"","sources":["../../src/daemon/DaemonService.ts"],"names":[],"mappings":"AACA,OAAO,EAAmD,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEtH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAyB,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAIpF,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAI5C,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"DaemonService.d.ts","sourceRoot":"","sources":["../../src/daemon/DaemonService.ts"],"names":[],"mappings":"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"}
|
|
@@ -203,6 +203,8 @@ class DaemonService {
|
|
|
203
203
|
const session = this.getSession(args.sessionName);
|
|
204
204
|
this.assertSourceTreeId(args.sessionName, args.sourceTreeId);
|
|
205
205
|
const includeImages = args.includeImages ?? false;
|
|
206
|
+
this._logger.trace(`takeBatch: ${args.fixtureIds.length} fixtures, session=${args.sessionName}`);
|
|
207
|
+
const startTime = Date.now();
|
|
206
208
|
const screenshots = [];
|
|
207
209
|
for (const fixtureId of args.fixtureIds) {
|
|
208
210
|
const result = await session.explorer.screenshotFixture(fixtureId);
|
|
@@ -216,6 +218,7 @@ class DaemonService {
|
|
|
216
218
|
errors: result.errors.length > 0 ? result.errors : undefined,
|
|
217
219
|
});
|
|
218
220
|
}
|
|
221
|
+
this._logger.trace(`takeBatch: done in ${Date.now() - startTime}ms`);
|
|
219
222
|
return { sourceTreeId: args.sourceTreeId, screenshots };
|
|
220
223
|
}),
|
|
221
224
|
compare: createMethod({
|
|
@@ -317,11 +320,13 @@ class DaemonService {
|
|
|
317
320
|
events: createMethod({ args: {} }, async () => {
|
|
318
321
|
return AsyncStream.fromIterable(this.eventStream());
|
|
319
322
|
}),
|
|
320
|
-
sessions: createMethod({ args: {} }, async () => {
|
|
323
|
+
sessions: createMethod({ args: {} }, async (_args, ctx) => {
|
|
321
324
|
this._activityTracker.reportActivity();
|
|
325
|
+
this._logger.trace(`API: sessions (client=${ctx.clientName}, eventListeners=${this._eventListeners.size})`);
|
|
322
326
|
return this.getSessionInfos();
|
|
323
327
|
}),
|
|
324
|
-
shutdown: createMethod({ args: {} }, async () => {
|
|
328
|
+
shutdown: createMethod({ args: {} }, async (_args, ctx) => {
|
|
329
|
+
this._logger.debug(`Shutdown requested via API (client=${ctx.clientName})`);
|
|
325
330
|
this.requestShutdown();
|
|
326
331
|
}),
|
|
327
332
|
});
|
|
@@ -374,6 +379,9 @@ class DaemonService {
|
|
|
374
379
|
let resolve;
|
|
375
380
|
let done = false;
|
|
376
381
|
const listener = (event) => {
|
|
382
|
+
if (event.type !== 'log') {
|
|
383
|
+
self._logger.trace(`Event stream: ${event.type}`);
|
|
384
|
+
}
|
|
377
385
|
if (resolve) {
|
|
378
386
|
const r = resolve;
|
|
379
387
|
resolve = undefined;
|
|
@@ -438,6 +446,7 @@ class DaemonService {
|
|
|
438
446
|
const disposable = autorun(reader => {
|
|
439
447
|
const current = session.sourceTreeId.read(reader);
|
|
440
448
|
if (current.value !== previousValue) {
|
|
449
|
+
this._logger.debug(`Source tree changed: ${name} ${previousValue} → ${current.value}`);
|
|
441
450
|
previousValue = current.value;
|
|
442
451
|
this._emit({ type: 'source-change', sessionName: name, sourceTreeId: current.value });
|
|
443
452
|
}
|
|
@@ -472,7 +481,10 @@ class DaemonService {
|
|
|
472
481
|
}
|
|
473
482
|
// Dispose old session
|
|
474
483
|
const oldSession = this._sessions.get(sessionName);
|
|
475
|
-
|
|
484
|
+
if (oldSession) {
|
|
485
|
+
this._logger.debug(`Disposing session: ${sessionName}`);
|
|
486
|
+
await oldSession.dispose();
|
|
487
|
+
}
|
|
476
488
|
// Checkout + reinstall
|
|
477
489
|
if (wtInfo) {
|
|
478
490
|
await git.worktrees.checkout(wt.worktreePath, newCommit);
|
|
@@ -524,6 +536,7 @@ class DaemonService {
|
|
|
524
536
|
}
|
|
525
537
|
}
|
|
526
538
|
async _setupSession(sessionConfig, git, resolveViteFrom) {
|
|
539
|
+
this._logger.debug(`Setting up session: ${sessionConfig.name} (${sessionConfig.source.kind})`);
|
|
527
540
|
if (sessionConfig.source.kind === 'worktree') {
|
|
528
541
|
const wt = sessionConfig.source.worktree;
|
|
529
542
|
const resolver = await git.createCommitResolver(wt.ref);
|
|
@@ -561,7 +574,7 @@ class DaemonService {
|
|
|
561
574
|
hmrAllowedPaths: this._config.viteHmr?.allowedPaths,
|
|
562
575
|
});
|
|
563
576
|
this._sessions.set(sessionConfig.name, session);
|
|
564
|
-
this._logger.
|
|
577
|
+
this._logger.debug(`Session ready: ${sessionConfig.name} (${session.serverUrl})`);
|
|
565
578
|
}
|
|
566
579
|
}
|
|
567
580
|
// ---------------------------------------------------------------------------
|