@vscode/component-explorer-cli 0.2.1-3 → 0.2.1-31
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 +14 -6
- package/dist/WorktreePool.d.ts +5 -4
- package/dist/WorktreePool.d.ts.map +1 -1
- package/dist/WorktreePool.js +3 -3
- package/dist/WorktreePool.js.map +1 -1
- package/dist/_virtual/_build-info.js +1 -1
- package/dist/browserPage.d.ts +51 -1
- package/dist/browserPage.d.ts.map +1 -1
- package/dist/browserPage.js +107 -1
- package/dist/browserPage.js.map +1 -1
- package/dist/commands/acceptCommand.d.ts +2 -1
- package/dist/commands/acceptCommand.d.ts.map +1 -1
- package/dist/commands/acceptCommand.js +18 -10
- package/dist/commands/acceptCommand.js.map +1 -1
- package/dist/commands/checkStabilityCommand.d.ts +3 -0
- package/dist/commands/checkStabilityCommand.d.ts.map +1 -1
- package/dist/commands/checkStabilityCommand.js +22 -4
- package/dist/commands/checkStabilityCommand.js.map +1 -1
- package/dist/commands/compareCommand.d.ts +2 -1
- package/dist/commands/compareCommand.d.ts.map +1 -1
- package/dist/commands/compareCommand.js +27 -17
- package/dist/commands/compareCommand.js.map +1 -1
- package/dist/commands/inputArg.d.ts +33 -0
- package/dist/commands/inputArg.d.ts.map +1 -0
- package/dist/commands/inputArg.js +103 -0
- package/dist/commands/inputArg.js.map +1 -0
- package/dist/commands/mcpCommand.d.ts +3 -0
- package/dist/commands/mcpCommand.d.ts.map +1 -1
- package/dist/commands/mcpCommand.js +178 -45
- package/dist/commands/mcpCommand.js.map +1 -1
- package/dist/commands/renderCommand.d.ts +10 -1
- package/dist/commands/renderCommand.d.ts.map +1 -1
- package/dist/commands/renderCommand.js +311 -23
- package/dist/commands/renderCommand.js.map +1 -1
- package/dist/commands/serveCommand.d.ts +2 -0
- package/dist/commands/serveCommand.d.ts.map +1 -1
- package/dist/commands/serveCommand.js +73 -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 +230 -0
- package/dist/commands/serviceDiffCommitsCommand.js.map +1 -0
- package/dist/commands/watchCommand.d.ts +2 -0
- package/dist/commands/watchCommand.d.ts.map +1 -1
- package/dist/commands/watchCommand.js +28 -16
- package/dist/commands/watchCommand.js.map +1 -1
- package/dist/comparison.d.ts +4 -3
- package/dist/comparison.d.ts.map +1 -1
- package/dist/comparison.js +10 -10
- package/dist/comparison.js.map +1 -1
- package/dist/component-explorer-config.schema.json +55 -2
- package/dist/componentExplorer.d.ts +109 -11
- package/dist/componentExplorer.d.ts.map +1 -1
- package/dist/componentExplorer.js +235 -58
- package/dist/componentExplorer.js.map +1 -1
- package/dist/config.d.ts +33 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +64 -27
- package/dist/config.js.map +1 -1
- package/dist/coverage.d.ts +64 -0
- package/dist/coverage.d.ts.map +1 -0
- package/dist/coverage.js +212 -0
- package/dist/coverage.js.map +1 -0
- package/dist/daemon/DaemonService.d.ts +14 -5
- package/dist/daemon/DaemonService.d.ts.map +1 -1
- package/dist/daemon/DaemonService.js +42 -18
- package/dist/daemon/DaemonService.js.map +1 -1
- package/dist/daemon/approvalStore.d.ts +2 -1
- package/dist/daemon/approvalStore.d.ts.map +1 -1
- package/dist/daemon/approvalStore.js +4 -3
- package/dist/daemon/approvalStore.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 +8 -1
- package/dist/daemon/lifecycle.d.ts.map +1 -1
- package/dist/daemon/lifecycle.js +13 -3
- package/dist/daemon/lifecycle.js.map +1 -1
- package/dist/daemon/pipeClient.d.ts +2 -0
- package/dist/daemon/pipeClient.d.ts.map +1 -1
- package/dist/daemon/pipeClient.js +22 -3
- package/dist/daemon/pipeClient.js.map +1 -1
- package/dist/daemon/pipeName.d.ts +7 -1
- package/dist/daemon/pipeName.d.ts.map +1 -1
- package/dist/daemon/pipeName.js +8 -4
- 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.js +1 -1
- package/dist/dependencyInstaller.d.ts +2 -1
- package/dist/dependencyInstaller.d.ts.map +1 -1
- package/dist/dependencyInstaller.js +4 -4
- package/dist/dependencyInstaller.js.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/git/gitCommitResolver.d.ts +2 -1
- package/dist/git/gitCommitResolver.d.ts.map +1 -1
- package/dist/git/gitCommitResolver.js +2 -2
- package/dist/git/gitCommitResolver.js.map +1 -1
- package/dist/git/gitIndexResolver.d.ts +2 -1
- package/dist/git/gitIndexResolver.d.ts.map +1 -1
- package/dist/git/gitIndexResolver.js +1 -1
- package/dist/git/gitIndexResolver.js.map +1 -1
- package/dist/git/gitService.d.ts +5 -4
- package/dist/git/gitService.d.ts.map +1 -1
- package/dist/git/gitService.js.map +1 -1
- package/dist/git/gitUtils.d.ts +6 -4
- package/dist/git/gitUtils.d.ts.map +1 -1
- package/dist/git/gitUtils.js +10 -5
- package/dist/git/gitUtils.js.map +1 -1
- package/dist/git/gitWorktreeManager.d.ts +15 -14
- package/dist/git/gitWorktreeManager.d.ts.map +1 -1
- package/dist/git/gitWorktreeManager.js +10 -11
- package/dist/git/gitWorktreeManager.js.map +1 -1
- package/dist/git/testUtils.d.ts +2 -1
- package/dist/git/testUtils.d.ts.map +1 -1
- package/dist/index.js +19 -1
- 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 +38 -16
- package/dist/mcp/DaemonAccessor.d.ts +22 -0
- package/dist/mcp/DaemonAccessor.d.ts.map +1 -0
- package/dist/mcp/McpServer.d.ts +5 -19
- package/dist/mcp/McpServer.d.ts.map +1 -1
- package/dist/mcp/McpServer.js +384 -297
- package/dist/mcp/McpServer.js.map +1 -1
- package/dist/packages/common/dist/explorerUrl.js +21 -0
- package/dist/packages/common/dist/explorerUrl.js.map +1 -0
- package/dist/packages/common/dist/renderManifest.js +26 -5
- package/dist/packages/common/dist/renderManifest.js.map +1 -1
- 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/path.d.ts +30 -0
- package/dist/path.d.ts.map +1 -0
- package/dist/path.js +78 -0
- package/dist/path.js.map +1 -0
- 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/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 +1 -1
- package/dist/server/httpServer.d.ts.map +1 -1
- package/dist/server/httpServer.js +22 -20
- package/dist/server/httpServer.js.map +1 -1
- package/dist/server/serverConfig.d.ts +23 -6
- package/dist/server/serverConfig.d.ts.map +1 -1
- package/dist/server/serverConfig.js +11 -18
- package/dist/server/serverConfig.js.map +1 -1
- package/dist/server/viteServer.d.ts +16 -1
- package/dist/server/viteServer.d.ts.map +1 -1
- package/dist/server/viteServer.js +91 -10
- package/dist/server/viteServer.js.map +1 -1
- package/dist/storage.d.ts +2 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +1 -1
- package/dist/storage.js.map +1 -1
- package/dist/utils.d.ts +3 -25
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +4 -23
- package/dist/utils.js.map +1 -1
- package/dist/visualCache.d.ts +2 -1
- package/dist/visualCache.d.ts.map +1 -1
- package/dist/visualCache.js +4 -3
- package/dist/visualCache.js.map +1 -1
- package/dist/viteProjectRef.d.ts +4 -12
- package/dist/viteProjectRef.d.ts.map +1 -1
- package/dist/viteProjectRef.js +9 -17
- package/dist/viteProjectRef.js.map +1 -1
- package/package.json +23 -19
- package/dist/commands/artifactCommand.d.ts +0 -13
- package/dist/commands/artifactCommand.d.ts.map +0 -1
- package/dist/commands/screenshotCommand.d.ts +0 -18
- package/dist/commands/screenshotCommand.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
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as path from 'node:path';
|
|
2
1
|
import { GitCommitId } from './gitCommitId.js';
|
|
3
2
|
import { execGit } from './gitUtils.js';
|
|
3
|
+
import { AbsolutePath } from '../path.js';
|
|
4
4
|
|
|
5
5
|
class DirtyWorktreeError extends Error {
|
|
6
6
|
worktreePath;
|
|
@@ -19,7 +19,7 @@ class DefaultGitWorktreeManager {
|
|
|
19
19
|
this._gitRoot = _gitRoot;
|
|
20
20
|
}
|
|
21
21
|
async create(worktreePath, commit) {
|
|
22
|
-
await execGit(this._gitRoot, ['worktree', 'add', worktreePath, commit.hash, '--detach']);
|
|
22
|
+
await execGit(this._gitRoot, ['worktree', 'add', worktreePath.value, commit.hash, '--detach']);
|
|
23
23
|
const result = await this.info(worktreePath);
|
|
24
24
|
if (!result) {
|
|
25
25
|
throw new Error(`Worktree was not created at: ${worktreePath}`);
|
|
@@ -34,7 +34,7 @@ class DefaultGitWorktreeManager {
|
|
|
34
34
|
if (current.isDirty) {
|
|
35
35
|
throw new DirtyWorktreeError(worktreePath, current.dirtyFiles, 'remove');
|
|
36
36
|
}
|
|
37
|
-
await execGit(this._gitRoot, ['worktree', 'remove', worktreePath]);
|
|
37
|
+
await execGit(this._gitRoot, ['worktree', 'remove', worktreePath.value]);
|
|
38
38
|
}
|
|
39
39
|
async checkout(worktreePath, commit) {
|
|
40
40
|
const current = await this.info(worktreePath);
|
|
@@ -53,7 +53,7 @@ class DefaultGitWorktreeManager {
|
|
|
53
53
|
async info(worktreePath) {
|
|
54
54
|
try {
|
|
55
55
|
const head = (await execGit(worktreePath, ['rev-parse', 'HEAD'])).trim();
|
|
56
|
-
const dirtyFiles = parsePorcelainStatus(
|
|
56
|
+
const dirtyFiles = parsePorcelainStatus(await execGit(worktreePath, ['status', '--porcelain']));
|
|
57
57
|
return {
|
|
58
58
|
path: worktreePath,
|
|
59
59
|
checkedOutCommit: new GitCommitId(head),
|
|
@@ -81,19 +81,18 @@ class DefaultGitWorktreeManager {
|
|
|
81
81
|
head = line.slice('HEAD '.length);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
if (entryPath && head && entryPath.startsWith(worktreeRoot)) {
|
|
85
|
-
|
|
84
|
+
if (entryPath && head && entryPath.startsWith(worktreeRoot.value)) {
|
|
85
|
+
const absEntryPath = AbsolutePath.from(entryPath);
|
|
86
86
|
try {
|
|
87
|
-
const dirtyFiles = parsePorcelainStatus(
|
|
87
|
+
const dirtyFiles = parsePorcelainStatus(await execGit(absEntryPath, ['status', '--porcelain']));
|
|
88
88
|
entries.push({
|
|
89
|
-
path:
|
|
89
|
+
path: absEntryPath,
|
|
90
90
|
checkedOutCommit: new GitCommitId(head),
|
|
91
91
|
isDirty: dirtyFiles.length > 0,
|
|
92
92
|
dirtyFiles,
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
95
|
catch {
|
|
96
|
-
// If we can't check, skip this entry
|
|
97
96
|
continue;
|
|
98
97
|
}
|
|
99
98
|
}
|
|
@@ -101,7 +100,7 @@ class DefaultGitWorktreeManager {
|
|
|
101
100
|
return entries;
|
|
102
101
|
}
|
|
103
102
|
}
|
|
104
|
-
function parsePorcelainStatus(
|
|
103
|
+
function parsePorcelainStatus(output) {
|
|
105
104
|
// git status --porcelain format: "XY filename" where X=index status, Y=worktree status, then a space.
|
|
106
105
|
const results = [];
|
|
107
106
|
for (const raw of output.split('\n')) {
|
|
@@ -114,7 +113,7 @@ function parsePorcelainStatus(worktreePath, output) {
|
|
|
114
113
|
if (!match) {
|
|
115
114
|
throw new Error(`Unexpected git status --porcelain line: ${JSON.stringify(line)}`);
|
|
116
115
|
}
|
|
117
|
-
results.push(
|
|
116
|
+
results.push(match[3]);
|
|
118
117
|
}
|
|
119
118
|
return results;
|
|
120
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitWorktreeManager.js","sources":["../../src/git/gitWorktreeManager.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAWM,MAAO,kBAAmB,SAAQ,KAAK,CAAA;AAElC,IAAA,YAAA;AACA,IAAA,UAAA;AAFV,IAAA,WAAA,CACU,
|
|
1
|
+
{"version":3,"file":"gitWorktreeManager.js","sources":["../../src/git/gitWorktreeManager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/git/testUtils.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { GitCommitId } from './gitCommitId.js';
|
|
2
|
+
import { AbsolutePath } from '../path.js';
|
|
2
3
|
export declare class TempGitRepo {
|
|
3
|
-
readonly root:
|
|
4
|
+
readonly root: AbsolutePath;
|
|
4
5
|
private constructor();
|
|
5
6
|
static create(): Promise<TempGitRepo>;
|
|
6
7
|
writeFile(relativePath: string, content: string): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../src/git/testUtils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../src/git/testUtils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,qBAAa,WAAW;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY;IAA/C,OAAO;WAEM,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC;IAQrC,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOjE,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAOnD,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAK7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM9B"}
|
package/dist/index.js
CHANGED
|
@@ -8,8 +8,17 @@ import { WatchCommand } from './commands/watchCommand.js';
|
|
|
8
8
|
import { ServeCommand } from './commands/serveCommand.js';
|
|
9
9
|
import { McpCommand } from './commands/mcpCommand.js';
|
|
10
10
|
import { CheckStabilityCommand } from './commands/checkStabilityCommand.js';
|
|
11
|
+
import { ServiceDiffCommitsCommand } from './commands/serviceDiffCommitsCommand.js';
|
|
12
|
+
import { preprocessInputArgs } from './commands/inputArg.js';
|
|
11
13
|
|
|
12
14
|
globalThis._buildInfo = __buildInfo;
|
|
15
|
+
// Global error handlers to ensure errors are logged before process exits
|
|
16
|
+
const _logFatalError = (type, err) => {
|
|
17
|
+
const msg = err instanceof Error ? err.stack ?? err.message : String(err);
|
|
18
|
+
process.stderr.write(`[FATAL] ${type}: ${msg}\n`);
|
|
19
|
+
};
|
|
20
|
+
process.on('uncaughtException', (err) => { _logFatalError('uncaughtException', err); process.exit(1); });
|
|
21
|
+
process.on('unhandledRejection', (err) => { _logFatalError('unhandledRejection', err); process.exit(1); });
|
|
13
22
|
const buildInfo = globalThis._buildInfo;
|
|
14
23
|
const cli = new Cli({
|
|
15
24
|
binaryLabel: 'component-explorer',
|
|
@@ -23,10 +32,19 @@ cli.register(WatchCommand);
|
|
|
23
32
|
cli.register(ServeCommand);
|
|
24
33
|
cli.register(McpCommand);
|
|
25
34
|
cli.register(CheckStabilityCommand);
|
|
35
|
+
cli.register(ServiceDiffCommitsCommand);
|
|
26
36
|
cli.register(Builtins.HelpCommand);
|
|
27
37
|
cli.register(Builtins.DefinitionsCommand);
|
|
28
38
|
cli.register(Builtins.TokensCommand);
|
|
29
39
|
cli.register(Builtins.VersionCommand);
|
|
30
|
-
const [, , ...
|
|
40
|
+
const [, , ...rawArgs] = process.argv;
|
|
41
|
+
let args;
|
|
42
|
+
try {
|
|
43
|
+
args = preprocessInputArgs(rawArgs);
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
process.stderr.write(`Error: ${e instanceof Error ? e.message : String(e)}\n`);
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
31
49
|
await cli.runExit(args);
|
|
32
50
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;AAaA;AACA,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,GAAY,KAAI;IACrD,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;IACzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,QAAA,EAAW,IAAI,CAAA,EAAA,EAAK,GAAG,CAAA,EAAA,CAAI,CAAC;AAClD,CAAC;AACD,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,KAAI,EAAG,cAAc,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAG,KAAI,EAAG,cAAc,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1G,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU;AAEvC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;AACnB,IAAA,WAAW,EAAE,oBAAoB;AACjC,IAAA,aAAa,EAAE,SAAS,GAAG,GAAG,SAAS,CAAC,OAAO,CAAA,EAAA,EAAK,SAAS,CAAC,IAAI,GAAG,GAAG,OAAO;AAC/E,IAAA,UAAU,EAAE,oBAAoB;AAChC,CAAA,CAAC;AAEF,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC3B,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC;AAC5B,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC3B,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;AAC1B,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;AAC1B,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;AACxB,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AACnC,GAAG,CAAC,QAAQ,CAAC,yBAAyB,CAAC;AAEvC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;AAClC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC;AACzC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;AACpC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC;AAErC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI;AACrC,IAAI,IAAc;AAClB,IAAI;AACH,IAAA,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC;AACpC;AAAE,OAAO,CAAC,EAAE;IACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA,EAAA,CAAI,CAAC;AAC9E,IAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAChB;AACA,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC"}
|
package/dist/logger.d.ts
CHANGED
|
@@ -11,18 +11,29 @@ export interface ILogger {
|
|
|
11
11
|
debug(message: string): void;
|
|
12
12
|
trace(message: string): void;
|
|
13
13
|
}
|
|
14
|
+
export interface LogFileOptions {
|
|
15
|
+
/** Path to append log entries to. Multiple processes can safely append concurrently. */
|
|
16
|
+
readonly path: string;
|
|
17
|
+
/** Minimum log level to write to file (uses console level if not specified). */
|
|
18
|
+
readonly level?: LogLevel;
|
|
19
|
+
}
|
|
14
20
|
export declare class ConsoleLogger implements ILogger {
|
|
15
21
|
private readonly _prefix;
|
|
16
22
|
private readonly _stream;
|
|
17
23
|
private readonly _level;
|
|
18
|
-
|
|
24
|
+
private readonly _logFileFd;
|
|
25
|
+
private readonly _logFileLevel;
|
|
26
|
+
constructor(_prefix: string, _stream: NodeJS.WritableStream, _level?: LogLevel, logFile?: LogFileOptions);
|
|
19
27
|
log(message: string): void;
|
|
20
28
|
info(message: string): void;
|
|
21
29
|
debug(message: string): void;
|
|
22
30
|
trace(message: string): void;
|
|
31
|
+
private _writeToFile;
|
|
23
32
|
}
|
|
24
33
|
export declare const nullLogger: ILogger;
|
|
25
34
|
/** Map a `-v` counter (0, 1, 2, …) to a `LogLevel`. */
|
|
26
35
|
export declare function verbosityToLogLevel(verbosity: number): LogLevel;
|
|
27
36
|
export declare function logBuildInfo(logger: ILogger): void;
|
|
37
|
+
/** Create LogFileOptions from a file path and verbosity counter. */
|
|
38
|
+
export declare function createLogFileOptions(logFilePath: string | undefined, verbosity: number): LogFileOptions | undefined;
|
|
28
39
|
//# sourceMappingURL=logger.d.ts.map
|
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAEA,oBAAY,QAAQ;IACnB,MAAM,IAAI;IACV,IAAI,IAAI;IACR,KAAK,IAAI;IACT,KAAK,IAAI;CACT;AAED,MAAM,WAAW,OAAO;IACvB,wBAAwB;IACxB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC9B,wFAAwF;IACxF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;CAC1B;AAED,qBAAa,aAAc,YAAW,OAAO;IAK3C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IANxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAW;gBAGvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,CAAC,cAAc,EAC9B,MAAM,GAAE,QAAwB,EACjD,OAAO,CAAC,EAAE,cAAc;IAUzB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAE1B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO3B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO5B,OAAO,CAAC,YAAY;CASpB;AAED,eAAO,MAAM,UAAU,EAAE,OAKxB,CAAC;AAEF,uDAAuD;AACvD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAI/D;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAKlD;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAQnH"}
|
package/dist/logger.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
|
|
1
3
|
var LogLevel;
|
|
2
4
|
(function (LogLevel) {
|
|
3
5
|
LogLevel[LogLevel["silent"] = 0] = "silent";
|
|
@@ -9,26 +11,47 @@ class ConsoleLogger {
|
|
|
9
11
|
_prefix;
|
|
10
12
|
_stream;
|
|
11
13
|
_level;
|
|
12
|
-
|
|
14
|
+
_logFileFd;
|
|
15
|
+
_logFileLevel;
|
|
16
|
+
constructor(_prefix, _stream, _level = LogLevel.info, logFile) {
|
|
13
17
|
this._prefix = _prefix;
|
|
14
18
|
this._stream = _stream;
|
|
15
19
|
this._level = _level;
|
|
20
|
+
if (logFile) {
|
|
21
|
+
this._logFileFd = fs.openSync(logFile.path, 'a');
|
|
22
|
+
this._logFileLevel = logFile.level ?? _level;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
this._logFileLevel = LogLevel.silent;
|
|
26
|
+
}
|
|
16
27
|
}
|
|
17
28
|
log(message) { this.info(message); }
|
|
18
29
|
info(message) {
|
|
19
30
|
if (this._level >= LogLevel.info) {
|
|
20
31
|
this._stream.write(`[${this._prefix}] ${message}\n`);
|
|
21
32
|
}
|
|
33
|
+
this._writeToFile(LogLevel.info, message);
|
|
22
34
|
}
|
|
23
35
|
debug(message) {
|
|
24
36
|
if (this._level >= LogLevel.debug) {
|
|
25
37
|
this._stream.write(`[${this._prefix}] ${message}\n`);
|
|
26
38
|
}
|
|
39
|
+
this._writeToFile(LogLevel.debug, message);
|
|
27
40
|
}
|
|
28
41
|
trace(message) {
|
|
29
42
|
if (this._level >= LogLevel.trace) {
|
|
30
43
|
this._stream.write(`[${this._prefix}] ${message}\n`);
|
|
31
44
|
}
|
|
45
|
+
this._writeToFile(LogLevel.trace, message);
|
|
46
|
+
}
|
|
47
|
+
_writeToFile(level, message) {
|
|
48
|
+
if (this._logFileFd === undefined || this._logFileLevel < level) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const timestamp = new Date().toISOString();
|
|
52
|
+
const levelStr = LogLevel[level].toUpperCase().padEnd(5);
|
|
53
|
+
const entry = `${timestamp} [${levelStr}] [${this._prefix}] [pid:${process.pid}] ${message}\n`;
|
|
54
|
+
fs.appendFileSync(this._logFileFd, entry);
|
|
32
55
|
}
|
|
33
56
|
}
|
|
34
57
|
const nullLogger = {
|
|
@@ -51,6 +74,16 @@ function logBuildInfo(logger) {
|
|
|
51
74
|
logger.debug(`v${info.version} (built ${info.date})`);
|
|
52
75
|
}
|
|
53
76
|
}
|
|
77
|
+
/** Create LogFileOptions from a file path and verbosity counter. */
|
|
78
|
+
function createLogFileOptions(logFilePath, verbosity) {
|
|
79
|
+
if (!logFilePath) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
path: logFilePath,
|
|
84
|
+
level: verbosityToLogLevel(verbosity),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
54
87
|
|
|
55
|
-
export { ConsoleLogger, LogLevel, logBuildInfo, nullLogger, verbosityToLogLevel };
|
|
88
|
+
export { ConsoleLogger, LogLevel, createLogFileOptions, logBuildInfo, nullLogger, verbosityToLogLevel };
|
|
56
89
|
//# sourceMappingURL=logger.js.map
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sources":["../src/logger.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.js","sources":["../src/logger.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -66,6 +66,16 @@
|
|
|
66
66
|
],
|
|
67
67
|
"additionalProperties": false
|
|
68
68
|
},
|
|
69
|
+
"coverage": {
|
|
70
|
+
"type": "object",
|
|
71
|
+
"properties": {
|
|
72
|
+
"coverageDataIstanbul": {
|
|
73
|
+
"type": "string"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"additionalProperties": false,
|
|
77
|
+
"description": "References to coverage report files emitted alongside the manifest"
|
|
78
|
+
},
|
|
69
79
|
"fixtures": {
|
|
70
80
|
"type": "array",
|
|
71
81
|
"items": {
|
|
@@ -102,21 +112,6 @@
|
|
|
102
112
|
"hasError": {
|
|
103
113
|
"type": "boolean"
|
|
104
114
|
},
|
|
105
|
-
"error": {
|
|
106
|
-
"type": "object",
|
|
107
|
-
"properties": {
|
|
108
|
-
"message": {
|
|
109
|
-
"type": "string"
|
|
110
|
-
},
|
|
111
|
-
"stack": {
|
|
112
|
-
"type": "string"
|
|
113
|
-
}
|
|
114
|
-
},
|
|
115
|
-
"required": [
|
|
116
|
-
"message"
|
|
117
|
-
],
|
|
118
|
-
"additionalProperties": false
|
|
119
|
-
},
|
|
120
115
|
"events": {
|
|
121
116
|
"type": "array",
|
|
122
117
|
"items": {
|
|
@@ -129,15 +124,31 @@
|
|
|
129
124
|
"console.warn",
|
|
130
125
|
"console.log",
|
|
131
126
|
"window.error",
|
|
132
|
-
"window.unhandledrejection"
|
|
127
|
+
"window.unhandledrejection",
|
|
128
|
+
"thrownError"
|
|
129
|
+
]
|
|
130
|
+
},
|
|
131
|
+
"phase": {
|
|
132
|
+
"type": "string",
|
|
133
|
+
"enum": [
|
|
134
|
+
"render",
|
|
135
|
+
"dispose"
|
|
133
136
|
]
|
|
134
137
|
},
|
|
138
|
+
"isError": {
|
|
139
|
+
"type": "boolean"
|
|
140
|
+
},
|
|
135
141
|
"message": {
|
|
136
142
|
"type": "string"
|
|
143
|
+
},
|
|
144
|
+
"stack": {
|
|
145
|
+
"type": "string"
|
|
137
146
|
}
|
|
138
147
|
},
|
|
139
148
|
"required": [
|
|
140
149
|
"type",
|
|
150
|
+
"phase",
|
|
151
|
+
"isError",
|
|
141
152
|
"message"
|
|
142
153
|
],
|
|
143
154
|
"additionalProperties": false
|
|
@@ -158,6 +169,17 @@
|
|
|
158
169
|
"total"
|
|
159
170
|
],
|
|
160
171
|
"additionalProperties": false
|
|
172
|
+
},
|
|
173
|
+
"output": {},
|
|
174
|
+
"coverage": {
|
|
175
|
+
"type": "object",
|
|
176
|
+
"properties": {
|
|
177
|
+
"coverageDataIstanbul": {
|
|
178
|
+
"type": "string"
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"additionalProperties": false,
|
|
182
|
+
"description": "References to coverage report files emitted alongside the manifest"
|
|
161
183
|
}
|
|
162
184
|
},
|
|
163
185
|
"required": [
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ProxyApiClient } from '@hediet/simple-api/client';
|
|
2
|
+
import { type IObservable } from '@vscode/observables';
|
|
3
|
+
import type { DaemonApiType } from '../daemon/DaemonService.js';
|
|
4
|
+
export type DaemonClient = ProxyApiClient<DaemonApiType>;
|
|
5
|
+
/**
|
|
6
|
+
* Provides daemon connections to the MCP server.
|
|
7
|
+
*
|
|
8
|
+
* Implementations own the full lifecycle: lazy startup, reconnection,
|
|
9
|
+
* polling, staleness tracking. The MCP server only consumes this interface.
|
|
10
|
+
*/
|
|
11
|
+
export interface DaemonAccessor {
|
|
12
|
+
/** Current daemon client, or `undefined` if not connected. */
|
|
13
|
+
readonly connection: IObservable<DaemonClient | undefined>;
|
|
14
|
+
/**
|
|
15
|
+
* Request that a daemon be available. May lazily start or connect.
|
|
16
|
+
* Returns `undefined` if no daemon could be obtained.
|
|
17
|
+
*/
|
|
18
|
+
getDaemonOrStart(): Promise<DaemonClient | undefined>;
|
|
19
|
+
/** Optional hint shown in error messages when no daemon is available. */
|
|
20
|
+
readonly noDaemonHint?: string;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=DaemonAccessor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DaemonAccessor.d.ts","sourceRoot":"","sources":["../../src/mcp/DaemonAccessor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC9B,8DAA8D;IAC9D,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IAE3D;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IAEtD,yEAAyE;IACzE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAC/B"}
|
package/dist/mcp/McpServer.d.ts
CHANGED
|
@@ -1,36 +1,21 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import type { DaemonApiType } from '../daemon/DaemonService.js';
|
|
4
|
-
export declare class DaemonConnection {
|
|
5
|
-
readonly client: ProxyApiClient<DaemonApiType>;
|
|
6
|
-
private _stale;
|
|
7
|
-
constructor(client: ProxyApiClient<DaemonApiType>);
|
|
8
|
-
get isStale(): boolean;
|
|
9
|
-
markStale(): void;
|
|
10
|
-
}
|
|
1
|
+
import { Disposable } from '@vscode/observables';
|
|
2
|
+
import type { DaemonAccessor } from './DaemonAccessor.js';
|
|
11
3
|
export interface McpServerOptions {
|
|
12
|
-
pollFn?: () => Promise<void>;
|
|
13
|
-
noAutostartHint?: string;
|
|
14
4
|
callTimeoutMs?: number;
|
|
15
5
|
}
|
|
16
6
|
export declare class ComponentExplorerMcpServer extends Disposable {
|
|
17
|
-
private readonly
|
|
18
|
-
static create(daemon:
|
|
7
|
+
private readonly _daemon;
|
|
8
|
+
static create(daemon: DaemonAccessor, options?: McpServerOptions): Promise<ComponentExplorerMcpServer>;
|
|
19
9
|
private readonly _mcp;
|
|
20
10
|
private readonly _watchList;
|
|
21
11
|
private readonly _imageLru;
|
|
22
12
|
private readonly _taskManager;
|
|
23
13
|
private readonly _taskLastReportedIndex;
|
|
24
|
-
private readonly _pollFn?;
|
|
25
|
-
private readonly _noAutostartHint?;
|
|
26
14
|
private readonly _multiSessionTools;
|
|
27
15
|
private _sessions;
|
|
28
16
|
private _eventStreamAbortController;
|
|
29
17
|
private constructor();
|
|
30
18
|
private _onDaemonChanged;
|
|
31
|
-
private _getConnection;
|
|
32
|
-
private _waitForDaemon;
|
|
33
|
-
private _handleDisconnect;
|
|
34
19
|
private _noDaemonError;
|
|
35
20
|
private static readonly _DEFAULT_CALL_TIMEOUT_MS;
|
|
36
21
|
private readonly _callTimeoutMs;
|
|
@@ -67,6 +52,7 @@ export declare class ComponentExplorerMcpServer extends Disposable {
|
|
|
67
52
|
private _registerCloseSession;
|
|
68
53
|
private _registerUpdateSessionRef;
|
|
69
54
|
private _registerGetUrl;
|
|
55
|
+
private _registerCheckFixtureErrors;
|
|
70
56
|
private _registerCheckStability;
|
|
71
57
|
private _registerCheckTask;
|
|
72
58
|
private _registerCancelTask;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpServer.d.ts","sourceRoot":"","sources":["../../src/mcp/McpServer.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"McpServer.d.ts","sourceRoot":"","sources":["../../src/mcp/McpServer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAM1D,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,qBAAqB,CAAC;AAGxE,MAAM,WAAW,gBAAgB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,qBAAa,0BAA2B,SAAQ,UAAU;IAqBxD,OAAO,CAAC,QAAQ,CAAC,OAAO;WApBZ,MAAM,CAClB,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,0BAA0B,CAAC;IAOtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6B;IACpE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,2BAA2B,CAA8B;IAEjE,OAAO;YAiBO,gBAAgB;IAqB9B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAU;IAC1D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;YAE1B,WAAW;IA6BzB,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,mBAAmB;IA4B3B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,2BAA2B;IAKnC,OAAO,CAAC,0BAA0B;IAKlC,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,0BAA0B;YAOpB,gBAAgB;IAQ9B,OAAO,CAAC,iCAAiC;YAW3B,oBAAoB;IAelC,OAAO,CAAC,eAAe;IA+BvB,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,qBAAqB;IAkC7B,OAAO,CAAC,mBAAmB;IAsJ3B,OAAO,CAAC,0BAA0B;IA8FlC,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,qBAAqB;IAyD7B,OAAO,CAAC,qBAAqB;IA8E7B,OAAO,CAAC,mBAAmB;IAsC3B,OAAO,CAAC,wBAAwB;IAuBhC,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,qBAAqB;IA2E7B,OAAO,CAAC,sBAAsB;YAgEhB,oBAAoB;IA6ClC,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,uBAAuB;IAmB/B,OAAO,CAAC,oBAAoB;IAyB5B,OAAO,CAAC,qBAAqB;IAuB7B,OAAO,CAAC,yBAAyB;IAwBjC,OAAO,CAAC,eAAe;IAyEvB,OAAO,CAAC,2BAA2B;IAuJnC,OAAO,CAAC,uBAAuB;IA8G/B,OAAO,CAAC,kBAAkB;IAoD1B,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,4BAA4B;IA0BpC,OAAO,CAAC,kCAAkC;CAiB1C"}
|