@vscode/component-explorer-cli 0.2.1-1 → 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.
- package/README.md +8 -0
- package/dist/_virtual/_build-info.js +1 -1
- package/dist/browserPage.d.ts +5 -5
- package/dist/browserPage.d.ts.map +1 -1
- package/dist/browserPage.js +35 -2
- package/dist/browserPage.js.map +1 -1
- package/dist/commands/acceptCommand.d.ts +1 -0
- package/dist/commands/acceptCommand.d.ts.map +1 -1
- package/dist/commands/acceptCommand.js +17 -8
- package/dist/commands/acceptCommand.js.map +1 -1
- package/dist/commands/artifactCommand.d.ts +14 -0
- package/dist/commands/artifactCommand.d.ts.map +1 -0
- package/dist/commands/checkStabilityCommand.d.ts +1 -0
- package/dist/commands/checkStabilityCommand.d.ts.map +1 -1
- package/dist/commands/checkStabilityCommand.js +22 -18
- package/dist/commands/checkStabilityCommand.js.map +1 -1
- package/dist/commands/compareCommand.d.ts +1 -0
- package/dist/commands/compareCommand.d.ts.map +1 -1
- package/dist/commands/compareCommand.js +30 -11
- package/dist/commands/compareCommand.js.map +1 -1
- package/dist/commands/mcpCommand.d.ts +5 -0
- package/dist/commands/mcpCommand.d.ts.map +1 -1
- package/dist/commands/mcpCommand.js +86 -16
- package/dist/commands/mcpCommand.js.map +1 -1
- package/dist/commands/{screenshotCommand.d.ts → renderCommand.d.ts} +4 -2
- package/dist/commands/renderCommand.d.ts.map +1 -0
- package/dist/commands/renderCommand.js +210 -0
- package/dist/commands/renderCommand.js.map +1 -0
- package/dist/commands/serveCommand.d.ts +2 -0
- package/dist/commands/serveCommand.d.ts.map +1 -1
- package/dist/commands/serveCommand.js +79 -41
- package/dist/commands/serveCommand.js.map +1 -1
- package/dist/commands/serviceDiffCommitsCommand.d.ts +16 -0
- package/dist/commands/serviceDiffCommitsCommand.d.ts.map +1 -0
- package/dist/commands/serviceDiffCommitsCommand.js +229 -0
- package/dist/commands/serviceDiffCommitsCommand.js.map +1 -0
- package/dist/commands/watchCommand.d.ts +1 -0
- package/dist/commands/watchCommand.d.ts.map +1 -1
- package/dist/commands/watchCommand.js +22 -27
- package/dist/commands/watchCommand.js.map +1 -1
- package/dist/componentExplorer.d.ts +18 -11
- package/dist/componentExplorer.d.ts.map +1 -1
- package/dist/componentExplorer.js +95 -66
- package/dist/componentExplorer.js.map +1 -1
- package/dist/{watchConfig.d.ts → config.d.ts} +28 -24
- package/dist/config.d.ts.map +1 -0
- package/dist/{watchConfig.js → config.js} +63 -23
- package/dist/config.js.map +1 -0
- package/dist/daemon/DaemonService.d.ts +3 -3
- package/dist/daemon/DaemonService.d.ts.map +1 -1
- package/dist/daemon/DaemonService.js +19 -36
- package/dist/daemon/DaemonService.js.map +1 -1
- package/dist/daemon/client.d.ts +5 -0
- package/dist/daemon/client.d.ts.map +1 -0
- package/dist/daemon/client.js +7 -0
- package/dist/daemon/client.js.map +1 -0
- package/dist/daemon/inProcessClient.d.ts +11 -0
- package/dist/daemon/inProcessClient.d.ts.map +1 -0
- package/dist/daemon/inProcessClient.js +35 -0
- package/dist/daemon/inProcessClient.js.map +1 -0
- package/dist/daemon/lifecycle.d.ts +4 -0
- package/dist/daemon/lifecycle.d.ts.map +1 -1
- package/dist/daemon/lifecycle.js +12 -2
- package/dist/daemon/lifecycle.js.map +1 -1
- package/dist/daemon/pipeClient.js +5 -3
- package/dist/daemon/pipeClient.js.map +1 -1
- package/dist/daemon/pipeName.d.ts +6 -0
- package/dist/daemon/pipeName.d.ts.map +1 -1
- package/dist/daemon/pipeName.js +8 -3
- package/dist/daemon/pipeName.js.map +1 -1
- package/dist/daemon/pipeServer.d.ts.map +1 -1
- package/dist/daemon/pipeServer.js +9 -3
- package/dist/daemon/pipeServer.js.map +1 -1
- package/dist/daemon/version.d.ts +1 -1
- package/dist/daemon/version.d.ts.map +1 -1
- package/dist/daemon/version.js +1 -1
- package/dist/dependencyInstaller.d.ts +1 -1
- package/dist/dependencyInstaller.d.ts.map +1 -1
- package/dist/evaluateFn.d.ts +21 -0
- package/dist/evaluateFn.d.ts.map +1 -0
- package/dist/evaluateFn.js +17 -0
- package/dist/evaluateFn.js.map +1 -0
- package/dist/explorerSession.d.ts +2 -3
- package/dist/explorerSession.d.ts.map +1 -1
- package/dist/explorerSession.js +3 -20
- package/dist/explorerSession.js.map +1 -1
- package/dist/git/gitUtils.d.ts +1 -0
- package/dist/git/gitUtils.d.ts.map +1 -1
- package/dist/git/gitUtils.js +5 -1
- package/dist/git/gitUtils.js.map +1 -1
- package/dist/index.js +11 -2
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +12 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +35 -2
- package/dist/logger.js.map +1 -1
- package/dist/manifest.schema.json +187 -0
- package/dist/mcp/McpServer.d.ts +1 -0
- package/dist/mcp/McpServer.d.ts.map +1 -1
- package/dist/mcp/McpServer.js +113 -20
- package/dist/mcp/McpServer.js.map +1 -1
- package/dist/packages/common/dist/renderManifest.js +46 -0
- package/dist/packages/common/dist/renderManifest.js.map +1 -0
- package/dist/packages/semver/dist/index.js +186 -0
- package/dist/packages/semver/dist/index.js.map +1 -0
- package/dist/packages/simple-api/dist/{chunk-3R7GHWBM.js → chunk-FJ7AVNQE.js} +2 -1
- package/dist/packages/simple-api/dist/chunk-FJ7AVNQE.js.map +1 -0
- package/dist/packages/simple-api/dist/{chunk-SGBCNXYH.js → chunk-TTRCY65Z.js} +4 -1
- package/dist/packages/simple-api/dist/chunk-TTRCY65Z.js.map +1 -0
- package/dist/packages/simple-api/dist/{chunk-TAEFVNPN.js → chunk-WNXMRXWV.js} +2 -1
- package/dist/packages/simple-api/dist/chunk-WNXMRXWV.js.map +1 -0
- package/dist/packages/simple-api/dist/express.js +1 -1
- package/dist/packages/simple-api/dist/express.js.map +1 -1
- package/dist/processTree.d.ts +9 -0
- package/dist/processTree.d.ts.map +1 -0
- package/dist/processTree.js +41 -0
- package/dist/processTree.js.map +1 -0
- package/dist/renderManifest.d.ts +5 -0
- package/dist/renderManifest.d.ts.map +1 -0
- package/dist/renderManifest.js +11 -0
- package/dist/renderManifest.js.map +1 -0
- package/dist/screenshotServiceClient.d.ts +31 -0
- package/dist/screenshotServiceClient.d.ts.map +1 -0
- package/dist/screenshotServiceClient.js +38 -0
- package/dist/screenshotServiceClient.js.map +1 -0
- package/dist/server/httpServer.d.ts +14 -0
- package/dist/server/httpServer.d.ts.map +1 -0
- package/dist/server/httpServer.js +114 -0
- package/dist/server/httpServer.js.map +1 -0
- package/dist/server/httpServer.test.d.ts.map +1 -0
- package/dist/server/serverConfig.d.ts +42 -0
- package/dist/server/serverConfig.d.ts.map +1 -0
- package/dist/server/serverConfig.js +60 -0
- package/dist/server/serverConfig.js.map +1 -0
- package/dist/server/types.d.ts +6 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/viteServer.d.ts +16 -0
- package/dist/server/viteServer.d.ts.map +1 -0
- package/dist/{httpServer.js → server/viteServer.js} +10 -110
- package/dist/server/viteServer.js.map +1 -0
- package/dist/utils.d.ts +11 -6
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +7 -6
- package/dist/utils.js.map +1 -1
- package/package.json +30 -19
- package/dist/commands/screenshotCommand.d.ts.map +0 -1
- package/dist/commands/screenshotCommand.js +0 -127
- package/dist/commands/screenshotCommand.js.map +0 -1
- package/dist/httpServer.d.ts +0 -36
- package/dist/httpServer.d.ts.map +0 -1
- package/dist/httpServer.js.map +0 -1
- package/dist/httpServer.test.d.ts.map +0 -1
- package/dist/packages/simple-api/dist/chunk-3R7GHWBM.js.map +0 -1
- package/dist/packages/simple-api/dist/chunk-SGBCNXYH.js.map +0 -1
- package/dist/packages/simple-api/dist/chunk-TAEFVNPN.js.map +0 -1
- package/dist/resolveProject.d.ts +0 -21
- package/dist/resolveProject.d.ts.map +0 -1
- package/dist/resolveProject.js +0 -39
- package/dist/resolveProject.js.map +0 -1
- package/dist/watchConfig.d.ts.map +0 -1
- package/dist/watchConfig.js.map +0 -1
- /package/dist/{httpServer.test.d.ts → server/httpServer.test.d.ts} +0 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { nullLogger } from '../logger.js';
|
|
2
|
+
import { spawnShellWithTree } from '../processTree.js';
|
|
3
|
+
|
|
4
|
+
function createHttpServer(url, options) {
|
|
5
|
+
return HttpComponentExplorerServer.create(url, options);
|
|
6
|
+
}
|
|
7
|
+
class HttpComponentExplorerServer {
|
|
8
|
+
url;
|
|
9
|
+
_tree;
|
|
10
|
+
static async create(urlTemplate, options) {
|
|
11
|
+
let proc;
|
|
12
|
+
let vars = {};
|
|
13
|
+
if (options?.cmd) {
|
|
14
|
+
const log = options.logger ?? nullLogger;
|
|
15
|
+
log.debug(`Starting HTTP server: ${options.cmd}`);
|
|
16
|
+
log.debug(`HTTP server cwd: ${options.cwd ?? process.cwd()}`);
|
|
17
|
+
const tree = spawnShellWithTree(options.cmd, { cwd: options.cwd });
|
|
18
|
+
proc = tree;
|
|
19
|
+
tree.process.on('error', (e) => log.log(`HTTP server process error: ${e.message}`));
|
|
20
|
+
tree.process.on('exit', (code) => log.debug(`HTTP server process exited (code=${code})`));
|
|
21
|
+
if (options.wait?.stdout || options.wait?.stderr) {
|
|
22
|
+
vars = await waitForOutputPattern(tree.process, options.wait, log);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
tree.process.stdout?.on('data', (d) => log.trace(d.toString().trimEnd()));
|
|
26
|
+
tree.process.stderr?.on('data', (d) => log.trace(d.toString().trimEnd()));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const url = resolveUrlTemplate(urlTemplate, vars);
|
|
30
|
+
return new HttpComponentExplorerServer(url, proc);
|
|
31
|
+
}
|
|
32
|
+
constructor(url, _tree) {
|
|
33
|
+
this.url = url;
|
|
34
|
+
this._tree = _tree;
|
|
35
|
+
}
|
|
36
|
+
async dispose() {
|
|
37
|
+
const tree = this._tree;
|
|
38
|
+
const proc = tree?.process;
|
|
39
|
+
if (!tree || !proc || proc.killed || proc.pid === undefined) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
proc.stdout?.destroy();
|
|
43
|
+
proc.stderr?.destroy();
|
|
44
|
+
const exitPromise = new Promise((resolve) => {
|
|
45
|
+
proc.on('exit', () => resolve());
|
|
46
|
+
});
|
|
47
|
+
tree.kill();
|
|
48
|
+
const timeout = new Promise((resolve) => setTimeout(resolve, 5_000));
|
|
49
|
+
await Promise.race([exitPromise, timeout]);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function resolveUrlTemplate(template, vars) {
|
|
53
|
+
return template.replace(/\$\{var:([^}]+)\}/g, (match, name) => {
|
|
54
|
+
if (!(name in vars)) {
|
|
55
|
+
throw new Error(`Unresolved variable \${var:${name}} in URL. Available: ${Object.keys(vars).join(', ') || '(none)'}`);
|
|
56
|
+
}
|
|
57
|
+
return vars[name];
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
const _stripAnsi = (s) => s.replace(/\x1b\[[0-9;]*[a-zA-Z]/g, '').replace(/\x1b\].*?\x07/g, '');
|
|
61
|
+
function waitForOutputPattern(proc, wait, log) {
|
|
62
|
+
return new Promise((resolve, reject) => {
|
|
63
|
+
let resolved = false;
|
|
64
|
+
const vars = {};
|
|
65
|
+
let pendingCount = (wait.stdout ? 1 : 0) + (wait.stderr ? 1 : 0);
|
|
66
|
+
const buffers = { stdout: '', stderr: '' };
|
|
67
|
+
const tryResolve = () => {
|
|
68
|
+
if (resolved || pendingCount > 0) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
resolved = true;
|
|
72
|
+
proc.stdout?.on('data', (d) => log.trace(d.toString().trimEnd()));
|
|
73
|
+
proc.stderr?.on('data', (d) => log.trace(d.toString().trimEnd()));
|
|
74
|
+
resolve(vars);
|
|
75
|
+
};
|
|
76
|
+
const makeHandler = (stream, pattern) => {
|
|
77
|
+
const handler = (d) => {
|
|
78
|
+
const text = d.toString();
|
|
79
|
+
log.trace(text.trimEnd());
|
|
80
|
+
buffers[stream] += _stripAnsi(text);
|
|
81
|
+
const m = pattern.exec(buffers[stream]);
|
|
82
|
+
if (m) {
|
|
83
|
+
log.debug(`${stream} pattern matched: ${JSON.stringify(m.groups ?? {})}`);
|
|
84
|
+
proc[stream]?.off('data', handler);
|
|
85
|
+
Object.assign(vars, m.groups ?? {});
|
|
86
|
+
pendingCount--;
|
|
87
|
+
tryResolve();
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
return handler;
|
|
91
|
+
};
|
|
92
|
+
if (wait.stdout) {
|
|
93
|
+
proc.stdout?.on('data', makeHandler('stdout', wait.stdout));
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
proc.stdout?.on('data', (d) => log.trace(d.toString().trimEnd()));
|
|
97
|
+
}
|
|
98
|
+
if (wait.stderr) {
|
|
99
|
+
proc.stderr?.on('data', makeHandler('stderr', wait.stderr));
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
proc.stderr?.on('data', (d) => log.trace(d.toString().trimEnd()));
|
|
103
|
+
}
|
|
104
|
+
proc.on('exit', (code) => {
|
|
105
|
+
if (!resolved) {
|
|
106
|
+
const details = [wait.stdout ? `stdout buffer:\n${buffers.stdout}` : '', wait.stderr ? `stderr buffer:\n${buffers.stderr}` : ''].filter(Boolean).join('\n');
|
|
107
|
+
reject(new Error(`HTTP server process exited (code=${code}) before output matched wait patterns.\n${details}`));
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export { createHttpServer };
|
|
114
|
+
//# sourceMappingURL=httpServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpServer.js","sources":["../../src/server/httpServer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"httpServer.test.d.ts","sourceRoot":"","sources":["../../src/server/httpServer.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { ComponentExplorerHttpServer } from './types.js';
|
|
2
|
+
import type { ILogger } from '../logger.js';
|
|
3
|
+
import { ViteProjectRef } from '../viteProjectRef.js';
|
|
4
|
+
export declare abstract class ResolvedServerConfig {
|
|
5
|
+
abstract readonly kind: 'vite' | 'http';
|
|
6
|
+
abstract createServer(ctx: ServerContext): Promise<ComponentExplorerHttpServer>;
|
|
7
|
+
}
|
|
8
|
+
export interface ServerContext {
|
|
9
|
+
readonly logger: ILogger;
|
|
10
|
+
readonly daemonConfig?: {
|
|
11
|
+
readonly pipeName: string;
|
|
12
|
+
readonly sessionName: string;
|
|
13
|
+
readonly daemonApiVersion: string;
|
|
14
|
+
readonly pluginProtocolVersion: string;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export interface ResolvedViteHmrConfig {
|
|
18
|
+
readonly allowedPaths: readonly string[];
|
|
19
|
+
}
|
|
20
|
+
export declare class ViteServerConfig extends ResolvedServerConfig {
|
|
21
|
+
readonly viteProject: ViteProjectRef;
|
|
22
|
+
readonly hmr: ResolvedViteHmrConfig | undefined;
|
|
23
|
+
private readonly _resolveViteFrom?;
|
|
24
|
+
readonly kind = "vite";
|
|
25
|
+
constructor(viteProject: ViteProjectRef, hmr: ResolvedViteHmrConfig | undefined, _resolveViteFrom?: string | undefined);
|
|
26
|
+
forWorktree(repoRoot: string, worktreePath: string, configDir: string): ViteServerConfig;
|
|
27
|
+
createServer(ctx: ServerContext): Promise<ComponentExplorerHttpServer>;
|
|
28
|
+
}
|
|
29
|
+
export interface ResolvedHttpWaitConfig {
|
|
30
|
+
readonly stdout?: RegExp;
|
|
31
|
+
readonly stderr?: RegExp;
|
|
32
|
+
}
|
|
33
|
+
export declare class HttpServerConfig extends ResolvedServerConfig {
|
|
34
|
+
readonly url: string;
|
|
35
|
+
readonly cmd: string | undefined;
|
|
36
|
+
readonly cwd: string;
|
|
37
|
+
readonly wait: ResolvedHttpWaitConfig | undefined;
|
|
38
|
+
readonly kind = "http";
|
|
39
|
+
constructor(url: string, cmd: string | undefined, cwd: string, wait: ResolvedHttpWaitConfig | undefined);
|
|
40
|
+
createServer(ctx: ServerContext): Promise<ComponentExplorerHttpServer>;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=serverConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverConfig.d.ts","sourceRoot":"","sources":["../../src/server/serverConfig.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,8BAAsB,oBAAoB;IACzC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAC/E;AAED,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE;QACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;KAC1C,CAAC;CACL;AAED,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,qBAAa,gBAAiB,SAAQ,oBAAoB;IAIxD,QAAQ,CAAC,WAAW,EAAE,cAAc;IACpC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,GAAG,SAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IALnC,QAAQ,CAAC,IAAI,UAAU;gBAGb,WAAW,EAAE,cAAc,EAC3B,GAAG,EAAE,qBAAqB,GAAG,SAAS,EAC9B,gBAAgB,CAAC,EAAE,MAAM,YAAA;IAK3C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB;IASlF,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAQ5E;AAED,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,gBAAiB,SAAQ,oBAAoB;IAIxD,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,QAAQ,CAAC,IAAI,EAAE,sBAAsB,GAAG,SAAS;IANlD,QAAQ,CAAC,IAAI,UAAU;gBAGb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,sBAAsB,GAAG,SAAS;IAK5C,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAQ5E"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import * as path from 'node:path';
|
|
2
|
+
import { createHttpServer } from './httpServer.js';
|
|
3
|
+
import { createViteServer } from './viteServer.js';
|
|
4
|
+
import { ViteProjectRef } from '../viteProjectRef.js';
|
|
5
|
+
|
|
6
|
+
class ResolvedServerConfig {
|
|
7
|
+
}
|
|
8
|
+
class ViteServerConfig extends ResolvedServerConfig {
|
|
9
|
+
viteProject;
|
|
10
|
+
hmr;
|
|
11
|
+
_resolveViteFrom;
|
|
12
|
+
kind = 'vite';
|
|
13
|
+
constructor(viteProject, hmr, _resolveViteFrom) {
|
|
14
|
+
super();
|
|
15
|
+
this.viteProject = viteProject;
|
|
16
|
+
this.hmr = hmr;
|
|
17
|
+
this._resolveViteFrom = _resolveViteFrom;
|
|
18
|
+
}
|
|
19
|
+
forWorktree(repoRoot, worktreePath, configDir) {
|
|
20
|
+
const configDirRelToGitRoot = path.relative(repoRoot, configDir);
|
|
21
|
+
const worktreeConfigDir = path.resolve(worktreePath, configDirRelToGitRoot);
|
|
22
|
+
const defaultViteConfig = path.basename(this.viteProject.configFile ?? 'vite.config.ts');
|
|
23
|
+
const viteConfigPath = path.resolve(worktreeConfigDir, defaultViteConfig);
|
|
24
|
+
const viteProject = ViteProjectRef.fromViteConfigPath(viteConfigPath);
|
|
25
|
+
return new ViteServerConfig(viteProject, this.hmr, this.viteProject.configFile);
|
|
26
|
+
}
|
|
27
|
+
async createServer(ctx) {
|
|
28
|
+
return createViteServer(this.viteProject, {
|
|
29
|
+
logger: ctx.logger,
|
|
30
|
+
resolveViteFrom: this._resolveViteFrom,
|
|
31
|
+
hmrAllowedPaths: this.hmr?.allowedPaths,
|
|
32
|
+
daemonConfig: ctx.daemonConfig,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
class HttpServerConfig extends ResolvedServerConfig {
|
|
37
|
+
url;
|
|
38
|
+
cmd;
|
|
39
|
+
cwd;
|
|
40
|
+
wait;
|
|
41
|
+
kind = 'http';
|
|
42
|
+
constructor(url, cmd, cwd, wait) {
|
|
43
|
+
super();
|
|
44
|
+
this.url = url;
|
|
45
|
+
this.cmd = cmd;
|
|
46
|
+
this.cwd = cwd;
|
|
47
|
+
this.wait = wait;
|
|
48
|
+
}
|
|
49
|
+
async createServer(ctx) {
|
|
50
|
+
return createHttpServer(this.url, {
|
|
51
|
+
cmd: this.cmd,
|
|
52
|
+
cwd: this.cwd,
|
|
53
|
+
wait: this.wait,
|
|
54
|
+
logger: ctx.logger,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export { HttpServerConfig, ResolvedServerConfig, ViteServerConfig };
|
|
60
|
+
//# sourceMappingURL=serverConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverConfig.js","sources":["../../src/server/serverConfig.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;MAOsB,oBAAoB,CAAA;AAGzC;AAgBK,MAAO,gBAAiB,SAAQ,oBAAoB,CAAA;AAI/C,IAAA,WAAA;AACA,IAAA,GAAA;AACQ,IAAA,gBAAA;IALT,IAAI,GAAG,MAAM;AAEtB,IAAA,WAAA,CACU,WAA2B,EAC3B,GAAsC,EAC9B,gBAAyB,EAAA;AAE1C,QAAA,KAAK,EAAE;QAJE,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,GAAG,GAAH,GAAG;QACK,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;IAGlC;AAEA,IAAA,WAAW,CAAC,QAAgB,EAAE,YAAoB,EAAE,SAAiB,EAAA;QACpE,MAAM,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;QAChE,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,qBAAqB,CAAC;AAC3E,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,gBAAgB,CAAC;QACxF,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;QACzE,MAAM,WAAW,GAAG,cAAc,CAAC,kBAAkB,CAAC,cAAc,CAAC;AACrE,QAAA,OAAO,IAAI,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;IAChF;IAEA,MAAM,YAAY,CAAC,GAAkB,EAAA;AACpC,QAAA,OAAO,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE;YACzC,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,eAAe,EAAE,IAAI,CAAC,gBAAgB;AACtC,YAAA,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,YAAY;YACvC,YAAY,EAAE,GAAG,CAAC,YAAY;AAC9B,SAAA,CAAC;IACH;AACA;AAOK,MAAO,gBAAiB,SAAQ,oBAAoB,CAAA;AAI/C,IAAA,GAAA;AACA,IAAA,GAAA;AACA,IAAA,GAAA;AACA,IAAA,IAAA;IAND,IAAI,GAAG,MAAM;AAEtB,IAAA,WAAA,CACU,GAAW,EACX,GAAuB,EACvB,GAAW,EACX,IAAwC,EAAA;AAEjD,QAAA,KAAK,EAAE;QALE,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,GAAG,GAAH,GAAG;QACH,IAAA,CAAA,IAAI,GAAJ,IAAI;IAGd;IAEA,MAAM,YAAY,CAAC,GAAkB,EAAA;AACpC,QAAA,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE;YACjC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,GAAG,CAAC,MAAM;AAClB,SAAA,CAAC;IACH;AACA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACzD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ILogger } from '../logger.js';
|
|
2
|
+
import { ViteProjectRef } from '../viteProjectRef.js';
|
|
3
|
+
import type { ComponentExplorerHttpServer } from './types.js';
|
|
4
|
+
export interface ViteServerOptions {
|
|
5
|
+
readonly resolveViteFrom?: string;
|
|
6
|
+
readonly logger?: ILogger;
|
|
7
|
+
readonly hmrAllowedPaths?: readonly string[];
|
|
8
|
+
readonly daemonConfig?: {
|
|
9
|
+
readonly pipeName: string;
|
|
10
|
+
readonly sessionName: string;
|
|
11
|
+
readonly daemonApiVersion: string;
|
|
12
|
+
readonly pluginProtocolVersion: string;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export declare function createViteServer(project: ViteProjectRef, options?: ViteServerOptions): Promise<ComponentExplorerHttpServer>;
|
|
16
|
+
//# sourceMappingURL=viteServer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viteServer.d.ts","sourceRoot":"","sources":["../../src/server/viteServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAc,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE;QACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;KACvC,CAAC;CACF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAE3H"}
|
|
@@ -1,117 +1,12 @@
|
|
|
1
|
-
import { nullLogger } from '
|
|
1
|
+
import { nullLogger } from '../logger.js';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
return ViteComponentExplorerHttpServer.create(project, options);
|
|
6
|
-
}
|
|
7
|
-
async createHttpServer(url, options) {
|
|
8
|
-
return HttpComponentExplorerServer.create(url, options);
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
class HttpComponentExplorerServer {
|
|
12
|
-
url;
|
|
13
|
-
_process;
|
|
14
|
-
static async create(urlTemplate, options) {
|
|
15
|
-
let proc;
|
|
16
|
-
let vars = {};
|
|
17
|
-
if (options?.cmd) {
|
|
18
|
-
const log = options.logger ?? nullLogger;
|
|
19
|
-
log.debug(`Starting HTTP server: ${options.cmd}`);
|
|
20
|
-
log.debug(`HTTP server cwd: ${options.cwd ?? process.cwd()}`);
|
|
21
|
-
const { spawn } = await import('node:child_process');
|
|
22
|
-
proc = spawn(options.cmd, { shell: true, stdio: 'pipe', cwd: options.cwd });
|
|
23
|
-
proc.on('error', (e) => log.log(`HTTP server process error: ${e.message}`));
|
|
24
|
-
proc.on('exit', (code) => log.debug(`HTTP server process exited (code=${code})`));
|
|
25
|
-
if (options.wait?.stdout || options.wait?.stderr) {
|
|
26
|
-
vars = await waitForOutputPattern(proc, options.wait, log);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
proc.stdout?.on('data', (d) => log.trace(d.toString().trimEnd()));
|
|
30
|
-
proc.stderr?.on('data', (d) => log.trace(d.toString().trimEnd()));
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
const url = resolveUrlTemplate(urlTemplate, vars);
|
|
34
|
-
return new HttpComponentExplorerServer(url, proc);
|
|
35
|
-
}
|
|
36
|
-
constructor(url, _process) {
|
|
37
|
-
this.url = url;
|
|
38
|
-
this._process = _process;
|
|
39
|
-
}
|
|
40
|
-
async dispose() {
|
|
41
|
-
if (this._process && !this._process.killed) {
|
|
42
|
-
this._process.kill();
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
function resolveUrlTemplate(template, vars) {
|
|
47
|
-
return template.replace(/\$\{var:([^}]+)\}/g, (match, name) => {
|
|
48
|
-
if (!(name in vars)) {
|
|
49
|
-
throw new Error(`Unresolved variable \${var:${name}} in URL. Available: ${Object.keys(vars).join(', ') || '(none)'}`);
|
|
50
|
-
}
|
|
51
|
-
return vars[name];
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
const _stripAnsi = (s) => s.replace(/\x1b\[[0-9;]*[a-zA-Z]/g, '').replace(/\x1b\].*?\x07/g, '');
|
|
55
|
-
function waitForOutputPattern(proc, wait, log) {
|
|
56
|
-
return new Promise((resolve, reject) => {
|
|
57
|
-
let resolved = false;
|
|
58
|
-
const vars = {};
|
|
59
|
-
let pendingCount = (wait.stdout ? 1 : 0) + (wait.stderr ? 1 : 0);
|
|
60
|
-
const buffers = { stdout: '', stderr: '' };
|
|
61
|
-
const tryResolve = () => {
|
|
62
|
-
if (resolved || pendingCount > 0) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
resolved = true;
|
|
66
|
-
proc.stdout?.on('data', (d) => log.trace(d.toString().trimEnd()));
|
|
67
|
-
proc.stderr?.on('data', (d) => log.trace(d.toString().trimEnd()));
|
|
68
|
-
resolve(vars);
|
|
69
|
-
};
|
|
70
|
-
const makeHandler = (stream, pattern) => {
|
|
71
|
-
const handler = (d) => {
|
|
72
|
-
const text = d.toString();
|
|
73
|
-
log.trace(text.trimEnd());
|
|
74
|
-
buffers[stream] += _stripAnsi(text);
|
|
75
|
-
const m = pattern.exec(buffers[stream]);
|
|
76
|
-
if (m) {
|
|
77
|
-
log.debug(`${stream} pattern matched: ${JSON.stringify(m.groups ?? {})}`);
|
|
78
|
-
proc[stream]?.off('data', handler);
|
|
79
|
-
Object.assign(vars, m.groups ?? {});
|
|
80
|
-
pendingCount--;
|
|
81
|
-
tryResolve();
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
return handler;
|
|
85
|
-
};
|
|
86
|
-
if (wait.stdout) {
|
|
87
|
-
proc.stdout?.on('data', makeHandler('stdout', wait.stdout));
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
proc.stdout?.on('data', (d) => log.trace(d.toString().trimEnd()));
|
|
91
|
-
}
|
|
92
|
-
if (wait.stderr) {
|
|
93
|
-
proc.stderr?.on('data', makeHandler('stderr', wait.stderr));
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
proc.stderr?.on('data', (d) => log.trace(d.toString().trimEnd()));
|
|
97
|
-
}
|
|
98
|
-
proc.on('exit', (code) => {
|
|
99
|
-
if (!resolved) {
|
|
100
|
-
const details = [wait.stdout ? `stdout buffer:\n${buffers.stdout}` : '', wait.stderr ? `stderr buffer:\n${buffers.stderr}` : ''].filter(Boolean).join('\n');
|
|
101
|
-
reject(new Error(`HTTP server process exited (code=${code}) before output matched wait patterns.\n${details}`));
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
});
|
|
3
|
+
function createViteServer(project, options) {
|
|
4
|
+
return ViteComponentExplorerHttpServer.create(project, options);
|
|
105
5
|
}
|
|
106
6
|
class ViteComponentExplorerHttpServer {
|
|
107
7
|
_server;
|
|
108
8
|
url;
|
|
109
9
|
onSourceChange;
|
|
110
|
-
constructor(_server, url, onSourceChange) {
|
|
111
|
-
this._server = _server;
|
|
112
|
-
this.url = url;
|
|
113
|
-
this.onSourceChange = onSourceChange;
|
|
114
|
-
}
|
|
115
10
|
static async create(project, options) {
|
|
116
11
|
const log = options?.logger ?? nullLogger;
|
|
117
12
|
const resolveViteFrom = options?.resolveViteFrom;
|
|
@@ -208,6 +103,11 @@ class ViteComponentExplorerHttpServer {
|
|
|
208
103
|
};
|
|
209
104
|
return new ViteComponentExplorerHttpServer(server, url.replace(/\/$/, ''), onSourceChange);
|
|
210
105
|
}
|
|
106
|
+
constructor(_server, url, onSourceChange) {
|
|
107
|
+
this._server = _server;
|
|
108
|
+
this.url = url;
|
|
109
|
+
this.onSourceChange = onSourceChange;
|
|
110
|
+
}
|
|
211
111
|
async dispose() {
|
|
212
112
|
await this._server.close();
|
|
213
113
|
}
|
|
@@ -222,5 +122,5 @@ function globToRegExp(glob) {
|
|
|
222
122
|
return new RegExp(`(?:^|/)${escaped}$`);
|
|
223
123
|
}
|
|
224
124
|
|
|
225
|
-
export {
|
|
226
|
-
//# sourceMappingURL=
|
|
125
|
+
export { createViteServer };
|
|
126
|
+
//# sourceMappingURL=viteServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viteServer.js","sources":["../../src/server/viteServer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -13,16 +13,21 @@ export declare const EXPLORER_ROUTE = "/___explorer";
|
|
|
13
13
|
export interface ExplorerUrlOptions {
|
|
14
14
|
/** Base URL of the server (e.g. 'http://localhost:5173') */
|
|
15
15
|
readonly baseUrl: string;
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Explicit mode for the explorer URL:
|
|
18
|
+
* - 'headless': for API/screenshot operations (no UI)
|
|
19
|
+
* - 'embedded': single fixture view for user inspection
|
|
20
|
+
* - undefined: full Explorer UI
|
|
21
|
+
*/
|
|
22
|
+
readonly mode?: 'headless' | 'embedded';
|
|
23
|
+
/** Specific fixture to render (required for 'headless' and 'embedded' modes) */
|
|
19
24
|
readonly fixtureId?: string;
|
|
20
25
|
}
|
|
21
26
|
/**
|
|
22
27
|
* Builds a URL for the Component Explorer.
|
|
23
|
-
* - Default: Explorer UI at `/___explorer`
|
|
24
|
-
* -
|
|
25
|
-
* -
|
|
28
|
+
* - Default: Explorer UI at `/___explorer` (with optional `fixture=<id>` to pre-select)
|
|
29
|
+
* - mode='embedded': `/___explorer?mode=embedded&fixture=<id>` (user-facing single fixture view)
|
|
30
|
+
* - mode='headless': `/___explorer?mode=headless&fixture=<id>` (API/screenshot operations)
|
|
26
31
|
*/
|
|
27
32
|
export declare function buildExplorerUrl(options: ExplorerUrlOptions): string;
|
|
28
33
|
export declare function writeFile(filePath: string, data: Uint8Array): Promise<void>;
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC;AAEnD,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAE7C,MAAM,WAAW,kBAAkB;IAClC,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC;AAEnD,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAE7C,MAAM,WAAW,kBAAkB;IAClC,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACxC,gFAAgF;IAChF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAWpE;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjF;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAKrE;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAajE"}
|
package/dist/utils.js
CHANGED
|
@@ -8,15 +8,16 @@ import * as path from 'node:path';
|
|
|
8
8
|
const EXPLORER_ROUTE = '/___explorer';
|
|
9
9
|
/**
|
|
10
10
|
* Builds a URL for the Component Explorer.
|
|
11
|
-
* - Default: Explorer UI at `/___explorer`
|
|
12
|
-
* -
|
|
13
|
-
* -
|
|
11
|
+
* - Default: Explorer UI at `/___explorer` (with optional `fixture=<id>` to pre-select)
|
|
12
|
+
* - mode='embedded': `/___explorer?mode=embedded&fixture=<id>` (user-facing single fixture view)
|
|
13
|
+
* - mode='headless': `/___explorer?mode=headless&fixture=<id>` (API/screenshot operations)
|
|
14
14
|
*/
|
|
15
15
|
function buildExplorerUrl(options) {
|
|
16
16
|
const base = `${options.baseUrl}${EXPLORER_ROUTE}`;
|
|
17
|
-
const query =
|
|
18
|
-
|
|
19
|
-
:
|
|
17
|
+
const query = {
|
|
18
|
+
mode: options.mode,
|
|
19
|
+
fixture: options.fixtureId,
|
|
20
|
+
};
|
|
20
21
|
const params = new URLSearchParams(Object.entries(query).filter((entry) => entry[1] !== undefined));
|
|
21
22
|
const queryString = params.toString();
|
|
22
23
|
return queryString ? `${base}?${queryString}` : base;
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAYA;;;AAGG;AACI,MAAM,cAAc,GAAG;
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAYA;;;AAGG;AACI,MAAM,cAAc,GAAG;AAgB9B;;;;;AAKG;AACG,SAAU,gBAAgB,CAAC,OAA2B,EAAA;IAC3D,MAAM,IAAI,GAAG,CAAA,EAAG,OAAO,CAAC,OAAO,CAAA,EAAG,cAAc,CAAA,CAAE;AAClD,IAAA,MAAM,KAAK,GAAwB;QAClC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,SAAS;KAC1B;IACD,MAAM,MAAM,GAAG,IAAI,eAAe,CACjC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,KAAgC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAC1F;AACD,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE;AACrC,IAAA,OAAO,WAAW,GAAG,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,WAAW,CAAA,CAAE,GAAG,IAAI;AACrD;AAEO,eAAe,SAAS,CAAC,QAAgB,EAAE,IAAgB,EAAA;AACjE,IAAA,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC3D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC;AACnC;AAEM,SAAU,SAAS,CAAC,SAAiB,EAAE,OAAe,EAAA;IAC3D,MAAM,KAAK,GAAG,IAAI,MAAM,CACvB,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG,CAC5D;AACD,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7B;AAEO,eAAe,YAAY,CAAC,GAAW,EAAA;AAC7C,IAAA,IAAI;AACH,QAAA,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAa,EAAE;AAC5B,QAAA,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;AAC5B,YAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC3B,gBAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9C;QACD;AACA,QAAA,OAAO,OAAO;IACf;AAAE,IAAA,MAAM;AACP,QAAA,OAAO,EAAE;IACV;AACD;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vscode/component-explorer-cli",
|
|
3
|
-
"version": "0.2.1-
|
|
3
|
+
"version": "0.2.1-10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,11 +26,20 @@
|
|
|
26
26
|
"import": "./dist/daemon/DaemonService.js",
|
|
27
27
|
"types": "./dist/daemon/DaemonService.d.ts"
|
|
28
28
|
},
|
|
29
|
+
"./daemon-client": {
|
|
30
|
+
"import": "./dist/daemon/client.js",
|
|
31
|
+
"types": "./dist/daemon/client.d.ts"
|
|
32
|
+
},
|
|
29
33
|
"./explorer-types": {
|
|
30
34
|
"import": "./dist/utils.js",
|
|
31
35
|
"types": "./dist/utils.d.ts"
|
|
32
36
|
},
|
|
33
|
-
"./
|
|
37
|
+
"./render-manifest": {
|
|
38
|
+
"import": "./dist/renderManifest.js",
|
|
39
|
+
"types": "./dist/renderManifest.d.ts"
|
|
40
|
+
},
|
|
41
|
+
"./config-schema.json": "./dist/component-explorer-config.schema.json",
|
|
42
|
+
"./manifest.schema.json": "./dist/manifest.schema.json"
|
|
34
43
|
},
|
|
35
44
|
"files": [
|
|
36
45
|
"dist",
|
|
@@ -39,16 +48,15 @@
|
|
|
39
48
|
"SECURITY.md"
|
|
40
49
|
],
|
|
41
50
|
"scripts": {
|
|
42
|
-
"build": "rollup -c &&
|
|
51
|
+
"build": "rollup -c && tsx scripts/generate-json-schema.ts",
|
|
43
52
|
"dev": "rollup -c -w",
|
|
44
53
|
"test": "vitest --run",
|
|
45
|
-
"generate-schema": "
|
|
54
|
+
"generate-schema": "tsx scripts/generate-json-schema.ts"
|
|
46
55
|
},
|
|
47
56
|
"dependencies": {
|
|
48
|
-
"@
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"express": "^5.0.0",
|
|
57
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
58
|
+
"clipanion": "4.0.0-rc.4",
|
|
59
|
+
"express": "^5.2.1",
|
|
52
60
|
"zod": "^4.3.6"
|
|
53
61
|
},
|
|
54
62
|
"peerDependencies": {
|
|
@@ -59,17 +67,20 @@
|
|
|
59
67
|
"@hediet/simple-api": "workspace:*",
|
|
60
68
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
61
69
|
"@rollup/plugin-typescript": "^12.3.0",
|
|
62
|
-
"@types/express": "^5.0.
|
|
63
|
-
"@types/node": "^20.
|
|
64
|
-
"@vitejs/plugin-react": "^4.
|
|
65
|
-
"@vscode/component-explorer-
|
|
70
|
+
"@types/express": "^5.0.6",
|
|
71
|
+
"@types/node": "^20.19.39",
|
|
72
|
+
"@vitejs/plugin-react": "^4.7.0",
|
|
73
|
+
"@vscode/component-explorer-common": "workspace:*",
|
|
66
74
|
"@vscode/observables": "workspace:*",
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"react
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
75
|
+
"@vscode/screenshot-service": "workspace:*",
|
|
76
|
+
"playwright": "^1.59.1",
|
|
77
|
+
"react": "^18.3.1",
|
|
78
|
+
"react-dom": "^18.3.1",
|
|
79
|
+
"rollup": "^4.60.1",
|
|
80
|
+
"semver": "workspace:*",
|
|
81
|
+
"tsx": "^4.21.0",
|
|
82
|
+
"typescript": "^5.9.3",
|
|
83
|
+
"vite": "^6.4.2",
|
|
84
|
+
"vitest": "^1.6.1"
|
|
74
85
|
}
|
|
75
86
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"screenshotCommand.d.ts","sourceRoot":"","sources":["../../src/commands/screenshotCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAW5C,qBAAa,iBAAkB,SAAQ,OAAO;IAC7C,OAAgB,KAAK,aAAoB;IAEzC,OAAgB,KAAK,4BAOlB;IAEH,QAAQ,CAAC,OAAO,SAAsG;IACtH,QAAQ,CAAC,MAAM,qBAAkG;IACjH,QAAQ,CAAC,MAAM,UAAiI;IAChJ,QAAQ,CAAC,OAAO,SAAuI;IACvJ,QAAQ,CAAC,MAAM,qBAAsK;IACrL,QAAQ,CAAC,OAAO,UAA8F;IAC9G,QAAQ,CAAC,aAAa,qBAA+K;IACrM,QAAQ,CAAC,MAAM,qBAA4G;IAC3H,QAAQ,CAAC,MAAM,UAAwG;IACvH,QAAQ,CAAC,OAAO,SAA+G;IAEzH,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;YA+ElB,cAAc;CA+B5B"}
|