@vscode/component-explorer-cli 0.2.1-7 → 0.2.1-71
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 +6 -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 +50 -0
- package/dist/browserPage.d.ts.map +1 -1
- package/dist/browserPage.js +78 -0
- package/dist/browserPage.js.map +1 -1
- package/dist/commands/acceptCommand.d.ts +1 -1
- package/dist/commands/acceptCommand.d.ts.map +1 -1
- package/dist/commands/acceptCommand.js +21 -14
- package/dist/commands/acceptCommand.js.map +1 -1
- package/dist/commands/checkStabilityCommand.d.ts +2 -0
- package/dist/commands/checkStabilityCommand.d.ts.map +1 -1
- package/dist/commands/checkStabilityCommand.js +25 -8
- package/dist/commands/checkStabilityCommand.js.map +1 -1
- package/dist/commands/compareCommand.d.ts +1 -1
- package/dist/commands/compareCommand.d.ts.map +1 -1
- package/dist/commands/compareCommand.js +31 -22
- 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 +0 -2
- package/dist/commands/mcpCommand.d.ts.map +1 -1
- package/dist/commands/mcpCommand.js +143 -75
- package/dist/commands/mcpCommand.js.map +1 -1
- package/dist/commands/renderCommand.d.ts +9 -1
- package/dist/commands/renderCommand.d.ts.map +1 -1
- package/dist/commands/renderCommand.js +313 -28
- package/dist/commands/renderCommand.js.map +1 -1
- package/dist/commands/serveCommand.d.ts.map +1 -1
- package/dist/commands/serveCommand.js +14 -11
- package/dist/commands/serveCommand.js.map +1 -1
- package/dist/commands/serviceDiffCommitsCommand.d.ts.map +1 -1
- package/dist/commands/serviceDiffCommitsCommand.js +10 -9
- package/dist/commands/serviceDiffCommitsCommand.js.map +1 -1
- package/dist/commands/watchCommand.d.ts +1 -0
- package/dist/commands/watchCommand.d.ts.map +1 -1
- package/dist/commands/watchCommand.js +31 -20
- 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 +17 -14
- package/dist/comparison.js.map +1 -1
- package/dist/component-explorer-config.schema.json +55 -2
- package/dist/componentExplorer.d.ts +106 -11
- package/dist/componentExplorer.d.ts.map +1 -1
- package/dist/componentExplorer.js +166 -23
- 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 +47 -23
- 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/inProcessClient.js +2 -2
- package/dist/daemon/lifecycle.d.ts +4 -1
- package/dist/daemon/lifecycle.d.ts.map +1 -1
- package/dist/daemon/lifecycle.js +1 -1
- 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 +26 -8
- package/dist/daemon/pipeClient.js.map +1 -1
- package/dist/daemon/pipeName.d.ts +3 -3
- package/dist/daemon/pipeName.d.ts.map +1 -1
- package/dist/daemon/pipeName.js +1 -2
- package/dist/daemon/pipeName.js.map +1 -1
- package/dist/daemon/pipeServer.js +3 -3
- package/dist/daemon/version.d.ts +1 -1
- package/dist/daemon/version.js +2 -2
- 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/git/gitCommitResolver.d.ts +2 -1
- package/dist/git/gitCommitResolver.d.ts.map +1 -1
- package/dist/git/gitCommitResolver.js +8 -8
- 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 +7 -7
- 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 -5
- package/dist/git/gitUtils.d.ts.map +1 -1
- package/dist/git/gitUtils.js +5 -4
- 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 +10 -1
- package/dist/index.js.map +1 -1
- package/dist/js-component-explorer/packages/common/dist/explorerUrl.js +21 -0
- package/dist/js-component-explorer/packages/common/dist/explorerUrl.js.map +1 -0
- package/dist/js-component-explorer/packages/common/dist/renderManifest.js +67 -0
- package/dist/js-component-explorer/packages/common/dist/renderManifest.js.map +1 -0
- package/dist/js-component-explorer/packages/semver/dist/index.js.map +1 -0
- package/dist/{packages/simple-api/dist/chunk-3R7GHWBM.js → js-component-explorer/packages/simple-api/dist/chunk-FJ7AVNQE.js} +2 -1
- package/dist/js-component-explorer/packages/simple-api/dist/chunk-FJ7AVNQE.js.map +1 -0
- package/dist/{packages/simple-api/dist/chunk-SGBCNXYH.js → js-component-explorer/packages/simple-api/dist/chunk-TTRCY65Z.js} +4 -1
- package/dist/js-component-explorer/packages/simple-api/dist/chunk-TTRCY65Z.js.map +1 -0
- package/dist/{packages/simple-api/dist/chunk-TAEFVNPN.js → js-component-explorer/packages/simple-api/dist/chunk-WNXMRXWV.js} +2 -1
- package/dist/js-component-explorer/packages/simple-api/dist/chunk-WNXMRXWV.js.map +1 -0
- package/dist/{packages → js-component-explorer/packages}/simple-api/dist/express.js +1 -1
- package/dist/js-component-explorer/packages/simple-api/dist/express.js.map +1 -0
- 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 +4 -19
- package/dist/mcp/McpServer.d.ts.map +1 -1
- package/dist/mcp/McpServer.js +299 -305
- package/dist/mcp/McpServer.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 +6 -1
- package/dist/processTree.d.ts.map +1 -1
- package/dist/processTree.js +48 -5
- package/dist/processTree.js.map +1 -1
- package/dist/renderManifest.js +1 -1
- package/dist/server/httpServer.d.ts +1 -1
- package/dist/server/httpServer.d.ts.map +1 -1
- package/dist/server/httpServer.js +4 -8
- 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 +86 -5
- 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 -30
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +4 -24
- 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/dist/vscode-observables/observables/dist/disposables.js.map +1 -0
- package/dist/vscode-observables/observables/dist/observableInternal/base.js.map +1 -0
- package/dist/vscode-observables/observables/dist/observableInternal/commonFacade/deps.js.map +1 -0
- package/dist/vscode-observables/observables/dist/observableInternal/debugLocation.js.map +1 -0
- package/dist/vscode-observables/observables/dist/observableInternal/debugName.js.map +1 -0
- package/dist/vscode-observables/observables/dist/observableInternal/index.js.map +1 -0
- package/dist/vscode-observables/observables/dist/observableInternal/logging/consoleObservableLogger.js.map +1 -0
- package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/logging/debugGetDependencyGraph.js +1 -1
- package/dist/vscode-observables/observables/dist/observableInternal/logging/debugGetDependencyGraph.js.map +1 -0
- package/dist/vscode-observables/observables/dist/observableInternal/logging/logging.js.map +1 -0
- package/dist/vscode-observables/observables/dist/observableInternal/observables/baseObservable.js.map +1 -0
- package/dist/vscode-observables/observables/dist/observableInternal/observables/derived.js.map +1 -0
- package/dist/vscode-observables/observables/dist/observableInternal/observables/derivedImpl.js.map +1 -0
- package/dist/vscode-observables/observables/dist/observableInternal/observables/observableFromEvent.js.map +1 -0
- package/dist/vscode-observables/observables/dist/observableInternal/observables/observableValue.js.map +1 -0
- package/dist/{external/vscode-observables/observables/dist/observableInternal/reactions/autorun.js → vscode-observables/observables/dist/observableInternal/reactions/createEffect.js} +9 -5
- package/dist/vscode-observables/observables/dist/observableInternal/reactions/createEffect.js.map +1 -0
- package/dist/{external/vscode-observables/observables/dist/observableInternal/reactions/autorunImpl.js → vscode-observables/observables/dist/observableInternal/reactions/createEffectImpl.js} +1 -1
- package/dist/vscode-observables/observables/dist/observableInternal/reactions/createEffectImpl.js.map +1 -0
- package/dist/vscode-observables/observables/dist/observableInternal/transaction.js.map +1 -0
- package/dist/vscode-observables/observables/dist/observableInternal/utils/utils.js.map +1 -0
- package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/utils/utilsCancellation.js +2 -2
- package/dist/vscode-observables/observables/dist/observableInternal/utils/utilsCancellation.js.map +1 -0
- package/package.json +21 -20
- package/dist/commands/artifactCommand.d.ts +0 -14
- package/dist/commands/artifactCommand.d.ts.map +0 -1
- package/dist/external/vscode-observables/observables/dist/disposables.js.map +0 -1
- package/dist/external/vscode-observables/observables/dist/observableInternal/base.js.map +0 -1
- package/dist/external/vscode-observables/observables/dist/observableInternal/commonFacade/deps.js.map +0 -1
- package/dist/external/vscode-observables/observables/dist/observableInternal/debugLocation.js.map +0 -1
- package/dist/external/vscode-observables/observables/dist/observableInternal/debugName.js.map +0 -1
- package/dist/external/vscode-observables/observables/dist/observableInternal/index.js.map +0 -1
- package/dist/external/vscode-observables/observables/dist/observableInternal/logging/consoleObservableLogger.js.map +0 -1
- package/dist/external/vscode-observables/observables/dist/observableInternal/logging/debugGetDependencyGraph.js.map +0 -1
- package/dist/external/vscode-observables/observables/dist/observableInternal/logging/logging.js.map +0 -1
- package/dist/external/vscode-observables/observables/dist/observableInternal/observables/baseObservable.js.map +0 -1
- package/dist/external/vscode-observables/observables/dist/observableInternal/observables/derived.js.map +0 -1
- package/dist/external/vscode-observables/observables/dist/observableInternal/observables/derivedImpl.js.map +0 -1
- package/dist/external/vscode-observables/observables/dist/observableInternal/observables/observableFromEvent.js.map +0 -1
- package/dist/external/vscode-observables/observables/dist/observableInternal/observables/observableValue.js.map +0 -1
- package/dist/external/vscode-observables/observables/dist/observableInternal/reactions/autorun.js.map +0 -1
- package/dist/external/vscode-observables/observables/dist/observableInternal/reactions/autorunImpl.js.map +0 -1
- package/dist/external/vscode-observables/observables/dist/observableInternal/transaction.js.map +0 -1
- package/dist/external/vscode-observables/observables/dist/observableInternal/utils/utils.js.map +0 -1
- package/dist/external/vscode-observables/observables/dist/observableInternal/utils/utilsCancellation.js.map +0 -1
- package/dist/packages/common/dist/renderManifest.js +0 -46
- package/dist/packages/common/dist/renderManifest.js.map +0 -1
- package/dist/packages/semver/dist/index.js.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/packages/simple-api/dist/express.js.map +0 -1
- /package/dist/{packages → js-component-explorer/packages}/semver/dist/index.js +0 -0
- /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/disposables.js +0 -0
- /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/base.js +0 -0
- /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/commonFacade/deps.js +0 -0
- /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/debugLocation.js +0 -0
- /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/debugName.js +0 -0
- /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/index.js +0 -0
- /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/logging/consoleObservableLogger.js +0 -0
- /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/logging/logging.js +0 -0
- /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/observables/baseObservable.js +0 -0
- /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/observables/derived.js +0 -0
- /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/observables/derivedImpl.js +0 -0
- /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/observables/observableFromEvent.js +0 -0
- /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/observables/observableValue.js +0 -0
- /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/transaction.js +0 -0
- /package/dist/{external/vscode-observables → vscode-observables}/observables/dist/observableInternal/utils/utils.js +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ComponentExplorerHttpServer } from './types.js';
|
|
2
2
|
import type { ILogger } from '../logger.js';
|
|
3
|
+
import { AbsolutePath } from '../path.js';
|
|
3
4
|
import { ViteProjectRef } from '../viteProjectRef.js';
|
|
4
5
|
export declare abstract class ResolvedServerConfig {
|
|
5
6
|
abstract readonly kind: 'vite' | 'http';
|
|
@@ -13,6 +14,23 @@ export interface ServerContext {
|
|
|
13
14
|
readonly daemonApiVersion: string;
|
|
14
15
|
readonly pluginProtocolVersion: string;
|
|
15
16
|
};
|
|
17
|
+
/**
|
|
18
|
+
* If set and the server is a Vite server, vite-plugin-istanbul is injected
|
|
19
|
+
* to instrument JS sources matching the given globs. The instrumented code
|
|
20
|
+
* exposes coverage on `window.__coverage__`. No-op for HTTP servers.
|
|
21
|
+
*/
|
|
22
|
+
readonly istanbulCoverage?: {
|
|
23
|
+
readonly include: readonly string[];
|
|
24
|
+
readonly exclude: readonly string[];
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* If true and the server is a Vite server, a small post-transform plugin
|
|
28
|
+
* appends `/*# sourceURL=<id> *\/` to the CSS payload of each `.css`
|
|
29
|
+
* module so that Vite's HMR-injected `<style>` tags become visible to
|
|
30
|
+
* Playwright's CSS coverage (which silently skips anonymous stylesheets).
|
|
31
|
+
* No-op for HTTP servers.
|
|
32
|
+
*/
|
|
33
|
+
readonly cssSourceUrl?: boolean;
|
|
16
34
|
}
|
|
17
35
|
export interface ResolvedViteHmrConfig {
|
|
18
36
|
readonly allowedPaths: readonly string[];
|
|
@@ -20,10 +38,9 @@ export interface ResolvedViteHmrConfig {
|
|
|
20
38
|
export declare class ViteServerConfig extends ResolvedServerConfig {
|
|
21
39
|
readonly viteProject: ViteProjectRef;
|
|
22
40
|
readonly hmr: ResolvedViteHmrConfig | undefined;
|
|
23
|
-
private readonly _resolveViteFrom?;
|
|
24
41
|
readonly kind = "vite";
|
|
25
|
-
constructor(viteProject: ViteProjectRef, hmr: ResolvedViteHmrConfig | undefined
|
|
26
|
-
forWorktree(repoRoot:
|
|
42
|
+
constructor(viteProject: ViteProjectRef, hmr: ResolvedViteHmrConfig | undefined);
|
|
43
|
+
forWorktree(repoRoot: AbsolutePath, worktreePath: AbsolutePath, _configDir: AbsolutePath): ViteServerConfig;
|
|
27
44
|
createServer(ctx: ServerContext): Promise<ComponentExplorerHttpServer>;
|
|
28
45
|
}
|
|
29
46
|
export interface ResolvedHttpWaitConfig {
|
|
@@ -31,12 +48,12 @@ export interface ResolvedHttpWaitConfig {
|
|
|
31
48
|
readonly stderr?: RegExp;
|
|
32
49
|
}
|
|
33
50
|
export declare class HttpServerConfig extends ResolvedServerConfig {
|
|
34
|
-
readonly
|
|
51
|
+
readonly urlTemplate: string;
|
|
35
52
|
readonly cmd: string | undefined;
|
|
36
|
-
readonly cwd:
|
|
53
|
+
readonly cwd: AbsolutePath;
|
|
37
54
|
readonly wait: ResolvedHttpWaitConfig | undefined;
|
|
38
55
|
readonly kind = "http";
|
|
39
|
-
constructor(
|
|
56
|
+
constructor(urlTemplate: string, cmd: string | undefined, cwd: AbsolutePath, wait: ResolvedHttpWaitConfig | undefined);
|
|
40
57
|
createServer(ctx: ServerContext): Promise<ComponentExplorerHttpServer>;
|
|
41
58
|
}
|
|
42
59
|
//# sourceMappingURL=serverConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverConfig.d.ts","sourceRoot":"","sources":["../../src/server/serverConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serverConfig.d.ts","sourceRoot":"","sources":["../../src/server/serverConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,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;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,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;IACF;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;QACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;KACpC,CAAC;IACF;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,qBAAa,gBAAiB,SAAQ,oBAAoB;IAIxD,QAAQ,CAAC,WAAW,EAAE,cAAc;IACpC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,GAAG,SAAS;IAJhD,QAAQ,CAAC,IAAI,UAAU;gBAGb,WAAW,EAAE,cAAc,EAC3B,GAAG,EAAE,qBAAqB,GAAG,SAAS;IAKhD,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,GAAG,gBAAgB;IAKrG,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAS5E;AAED,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,gBAAiB,SAAQ,oBAAoB;IAIxD,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IAChC,QAAQ,CAAC,GAAG,EAAE,YAAY;IAC1B,QAAQ,CAAC,IAAI,EAAE,sBAAsB,GAAG,SAAS;IANlD,QAAQ,CAAC,IAAI,UAAU;gBAGb,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,sBAAsB,GAAG,SAAS;IAK5C,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAQ5E"}
|
|
@@ -1,55 +1,48 @@
|
|
|
1
|
-
import * as path from 'node:path';
|
|
2
1
|
import { createHttpServer } from './httpServer.js';
|
|
3
2
|
import { createViteServer } from './viteServer.js';
|
|
4
|
-
import { ViteProjectRef } from '../viteProjectRef.js';
|
|
5
3
|
|
|
6
4
|
class ResolvedServerConfig {
|
|
7
5
|
}
|
|
8
6
|
class ViteServerConfig extends ResolvedServerConfig {
|
|
9
7
|
viteProject;
|
|
10
8
|
hmr;
|
|
11
|
-
_resolveViteFrom;
|
|
12
9
|
kind = 'vite';
|
|
13
|
-
constructor(viteProject, hmr
|
|
10
|
+
constructor(viteProject, hmr) {
|
|
14
11
|
super();
|
|
15
12
|
this.viteProject = viteProject;
|
|
16
13
|
this.hmr = hmr;
|
|
17
|
-
this._resolveViteFrom = _resolveViteFrom;
|
|
18
14
|
}
|
|
19
|
-
forWorktree(repoRoot, worktreePath,
|
|
20
|
-
const
|
|
21
|
-
|
|
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);
|
|
15
|
+
forWorktree(repoRoot, worktreePath, _configDir) {
|
|
16
|
+
const newViteProject = this.viteProject.rebase(repoRoot, worktreePath);
|
|
17
|
+
return new ViteServerConfig(newViteProject, this.hmr);
|
|
26
18
|
}
|
|
27
19
|
async createServer(ctx) {
|
|
28
20
|
return createViteServer(this.viteProject, {
|
|
29
21
|
logger: ctx.logger,
|
|
30
|
-
resolveViteFrom: this._resolveViteFrom,
|
|
31
22
|
hmrAllowedPaths: this.hmr?.allowedPaths,
|
|
32
23
|
daemonConfig: ctx.daemonConfig,
|
|
24
|
+
istanbulCoverage: ctx.istanbulCoverage,
|
|
25
|
+
cssSourceUrl: ctx.cssSourceUrl,
|
|
33
26
|
});
|
|
34
27
|
}
|
|
35
28
|
}
|
|
36
29
|
class HttpServerConfig extends ResolvedServerConfig {
|
|
37
|
-
|
|
30
|
+
urlTemplate;
|
|
38
31
|
cmd;
|
|
39
32
|
cwd;
|
|
40
33
|
wait;
|
|
41
34
|
kind = 'http';
|
|
42
|
-
constructor(
|
|
35
|
+
constructor(urlTemplate, cmd, cwd, wait) {
|
|
43
36
|
super();
|
|
44
|
-
this.
|
|
37
|
+
this.urlTemplate = urlTemplate;
|
|
45
38
|
this.cmd = cmd;
|
|
46
39
|
this.cwd = cwd;
|
|
47
40
|
this.wait = wait;
|
|
48
41
|
}
|
|
49
42
|
async createServer(ctx) {
|
|
50
|
-
return createHttpServer(this.
|
|
43
|
+
return createHttpServer(this.urlTemplate, {
|
|
51
44
|
cmd: this.cmd,
|
|
52
|
-
cwd: this.cwd,
|
|
45
|
+
cwd: this.cwd.value,
|
|
53
46
|
wait: this.wait,
|
|
54
47
|
logger: ctx.logger,
|
|
55
48
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverConfig.js","sources":["../../src/server/serverConfig.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serverConfig.js","sources":["../../src/server/serverConfig.ts"],"sourcesContent":[null],"names":[],"mappings":";;;MAOsB,oBAAoB,CAAA;AAGzC;AAiCK,MAAO,gBAAiB,SAAQ,oBAAoB,CAAA;AAI/C,IAAA,WAAA;AACA,IAAA,GAAA;IAJD,IAAI,GAAG,MAAM;IAEtB,WAAA,CACU,WAA2B,EAC3B,GAAsC,EAAA;AAE/C,QAAA,KAAK,EAAE;QAHE,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,GAAG,GAAH,GAAG;IAGb;AAEA,IAAA,WAAW,CAAC,QAAsB,EAAE,YAA0B,EAAE,UAAwB,EAAA;AACvF,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC;QACtE,OAAO,IAAI,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC;IACtD;IAEA,MAAM,YAAY,CAAC,GAAkB,EAAA;AACpC,QAAA,OAAO,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE;YACzC,MAAM,EAAE,GAAG,CAAC,MAAM;AAClB,YAAA,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,YAAY;YACvC,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;YACtC,YAAY,EAAE,GAAG,CAAC,YAAY;AAC9B,SAAA,CAAC;IACH;AACA;AAOK,MAAO,gBAAiB,SAAQ,oBAAoB,CAAA;AAI/C,IAAA,WAAA;AACA,IAAA,GAAA;AACA,IAAA,GAAA;AACA,IAAA,IAAA;IAND,IAAI,GAAG,MAAM;AAEtB,IAAA,WAAA,CACU,WAAmB,EACnB,GAAuB,EACvB,GAAiB,EACjB,IAAwC,EAAA;AAEjD,QAAA,KAAK,EAAE;QALE,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,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,WAAW,EAAE;YACzC,GAAG,EAAE,IAAI,CAAC,GAAG;AACb,YAAA,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,GAAG,CAAC,MAAM;AAClB,SAAA,CAAC;IACH;AACA;;;;"}
|
|
@@ -2,7 +2,7 @@ import { type ILogger } from '../logger.js';
|
|
|
2
2
|
import { ViteProjectRef } from '../viteProjectRef.js';
|
|
3
3
|
import type { ComponentExplorerHttpServer } from './types.js';
|
|
4
4
|
export interface ViteServerOptions {
|
|
5
|
-
readonly
|
|
5
|
+
readonly resolveViteFromPath?: string;
|
|
6
6
|
readonly logger?: ILogger;
|
|
7
7
|
readonly hmrAllowedPaths?: readonly string[];
|
|
8
8
|
readonly daemonConfig?: {
|
|
@@ -11,6 +11,21 @@ export interface ViteServerOptions {
|
|
|
11
11
|
readonly daemonApiVersion: string;
|
|
12
12
|
readonly pluginProtocolVersion: string;
|
|
13
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* If set, vite-plugin-istanbul is injected to instrument matching files.
|
|
16
|
+
* After fixture render, JS coverage is exposed on `window.__coverage__`.
|
|
17
|
+
*/
|
|
18
|
+
readonly istanbulCoverage?: {
|
|
19
|
+
readonly include: readonly string[];
|
|
20
|
+
readonly exclude: readonly string[];
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* If true, a tiny post-transform plugin appends `/*# sourceURL=<id> *\/` to
|
|
24
|
+
* the CSS payload that Vite injects via `<style>` tags. This makes those
|
|
25
|
+
* stylesheets visible to Playwright's CSS coverage (which silently skips
|
|
26
|
+
* stylesheets without a sourceURL — see Playwright `crCoverage.ts`).
|
|
27
|
+
*/
|
|
28
|
+
readonly cssSourceUrl?: boolean;
|
|
14
29
|
}
|
|
15
30
|
export declare function createViteServer(project: ViteProjectRef, options?: ViteServerOptions): Promise<ComponentExplorerHttpServer>;
|
|
16
31
|
//# sourceMappingURL=viteServer.d.ts.map
|
|
@@ -1 +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,
|
|
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,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,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;IACF;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;QACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;KACpC,CAAC;IACF;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAE3H"}
|
|
@@ -9,7 +9,6 @@ class ViteComponentExplorerHttpServer {
|
|
|
9
9
|
onSourceChange;
|
|
10
10
|
static async create(project, options) {
|
|
11
11
|
const log = options?.logger ?? nullLogger;
|
|
12
|
-
const resolveViteFrom = options?.resolveViteFrom;
|
|
13
12
|
const hmrAllowedPaths = options?.hmrAllowedPaths;
|
|
14
13
|
const daemonConfig = options?.daemonConfig;
|
|
15
14
|
// Import Vite from the target project's node_modules, not ours.
|
|
@@ -24,10 +23,9 @@ class ViteComponentExplorerHttpServer {
|
|
|
24
23
|
// We always use createRequire because import.meta.resolve's second
|
|
25
24
|
// argument is ignored in some Node.js versions (it resolves from
|
|
26
25
|
// the calling file instead of the specified parentUrl).
|
|
27
|
-
const resolveFrom =
|
|
26
|
+
const resolveFrom = (project.configFile ?? project.cwd).value;
|
|
28
27
|
const parentUrl = pathToFileURL(resolveFrom).href;
|
|
29
28
|
log.debug(`Resolving vite from: ${resolveFrom} (parentUrl: ${parentUrl})`);
|
|
30
|
-
log.debug(` resolveViteFrom=${resolveViteFrom}`);
|
|
31
29
|
log.debug(` project.configFile=${project.configFile}`);
|
|
32
30
|
log.debug(` project.cwd=${project.cwd}`);
|
|
33
31
|
let viteUrl;
|
|
@@ -57,7 +55,7 @@ class ViteComponentExplorerHttpServer {
|
|
|
57
55
|
// takes precedence over the config file, which would break configs
|
|
58
56
|
// that set their own `root` (e.g. `root: '../..'`).
|
|
59
57
|
const prevCwd = process.cwd();
|
|
60
|
-
process.chdir(project.cwd);
|
|
58
|
+
process.chdir(project.cwd.value);
|
|
61
59
|
const plugins = [];
|
|
62
60
|
if (daemonConfig) {
|
|
63
61
|
plugins.push({
|
|
@@ -81,10 +79,29 @@ class ViteComponentExplorerHttpServer {
|
|
|
81
79
|
},
|
|
82
80
|
});
|
|
83
81
|
}
|
|
82
|
+
if (options?.istanbulCoverage) {
|
|
83
|
+
// vite-plugin-istanbul is dynamically imported from the CLI's own
|
|
84
|
+
// node_modules. The plugin is consumed by the user's Vite instance
|
|
85
|
+
// (resolved separately above) but the plugin source itself is portable.
|
|
86
|
+
log.debug(`Injecting vite-plugin-istanbul (include=${options.istanbulCoverage.include.join(',')}, exclude=${options.istanbulCoverage.exclude.join(',')})`);
|
|
87
|
+
const istanbulMod = await import('vite-plugin-istanbul');
|
|
88
|
+
const istanbulPlugin = istanbulMod.default({
|
|
89
|
+
include: [...options.istanbulCoverage.include],
|
|
90
|
+
exclude: [...options.istanbulCoverage.exclude],
|
|
91
|
+
extension: ['.js', '.ts', '.jsx', '.tsx', '.mjs', '.cjs'],
|
|
92
|
+
requireEnv: false,
|
|
93
|
+
forceBuildInstrument: false,
|
|
94
|
+
});
|
|
95
|
+
plugins.push(istanbulPlugin);
|
|
96
|
+
}
|
|
97
|
+
if (options?.cssSourceUrl) {
|
|
98
|
+
log.debug('Injecting CSS sourceURL plugin (for Playwright CSS coverage)');
|
|
99
|
+
plugins.push(createCssSourceUrlPlugin(log));
|
|
100
|
+
}
|
|
84
101
|
let server;
|
|
85
102
|
try {
|
|
86
103
|
server = await createServer({
|
|
87
|
-
configFile: project.configFile,
|
|
104
|
+
configFile: project.configFile?.value,
|
|
88
105
|
server: { port: 0, strictPort: false },
|
|
89
106
|
customLogger,
|
|
90
107
|
clearScreen: false,
|
|
@@ -121,6 +138,70 @@ function globToRegExp(glob) {
|
|
|
121
138
|
.replace(/\?/g, '.');
|
|
122
139
|
return new RegExp(`(?:^|/)${escaped}$`);
|
|
123
140
|
}
|
|
141
|
+
const CSS_EXT_RE = /\.(css|scss|sass|less|styl|stylus|pcss|postcss|sss)(\?|$)/;
|
|
142
|
+
/**
|
|
143
|
+
* Vite's CSS transform emits JS like:
|
|
144
|
+
*
|
|
145
|
+
* import { updateStyle as __vite__updateStyle, ... } from "/@vite/client"
|
|
146
|
+
* const __vite__id = "/abs/path/foo.css"
|
|
147
|
+
* const __vite__css = "...css text..."
|
|
148
|
+
* __vite__updateStyle(__vite__id, __vite__css)
|
|
149
|
+
*
|
|
150
|
+
* `__vite__updateStyle` creates a `<style>` tag with `data-vite-dev-id` but
|
|
151
|
+
* does NOT add a `/*# sourceURL=… *\/` annotation, so Chrome treats the
|
|
152
|
+
* stylesheet as anonymous. Playwright's CSS coverage drops anonymous
|
|
153
|
+
* stylesheets in `crCoverage.ts`, making such CSS invisible to coverage.
|
|
154
|
+
*
|
|
155
|
+
* This plugin appends `\n/*# sourceURL=<id> *\/` to the CSS string literal
|
|
156
|
+
* inside the transformed module, so DevTools (and Playwright) attribute the
|
|
157
|
+
* `<style>` tag back to the source file.
|
|
158
|
+
*/
|
|
159
|
+
function createCssSourceUrlPlugin(log) {
|
|
160
|
+
let projectRoot = '';
|
|
161
|
+
return {
|
|
162
|
+
name: 'component-explorer-css-source-url',
|
|
163
|
+
enforce: 'post',
|
|
164
|
+
configResolved(config) {
|
|
165
|
+
projectRoot = config.root;
|
|
166
|
+
},
|
|
167
|
+
transform(code, id) {
|
|
168
|
+
if (!CSS_EXT_RE.test(id)) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
if (!code.includes('__vite__updateStyle')) {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
// Match: const __vite__css = "..."
|
|
175
|
+
// The CSS payload is JSON-encoded by Vite (so all newlines are \n,
|
|
176
|
+
// quotes escaped). We re-decode → append annotation → re-encode.
|
|
177
|
+
const re = /(const\s+__vite__css\s*=\s*)("(?:[^"\\]|\\.)*")/;
|
|
178
|
+
const match = re.exec(code);
|
|
179
|
+
if (!match) {
|
|
180
|
+
log.trace(`css-source-url: no __vite__css literal in ${id}`);
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
const cleanId = id.split('?')[0];
|
|
184
|
+
const relUrl = projectRoot
|
|
185
|
+
? '/' + cleanId.slice(projectRoot.length).replace(/^[\\/]+/, '').replace(/\\/g, '/')
|
|
186
|
+
: cleanId;
|
|
187
|
+
let css;
|
|
188
|
+
try {
|
|
189
|
+
css = JSON.parse(match[2]);
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
// Idempotent: don't double-annotate on HMR re-transforms.
|
|
195
|
+
if (css.includes('# sourceURL=')) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
const annotated = css + `\n/*# sourceURL=${relUrl} */\n`;
|
|
199
|
+
const newLiteral = JSON.stringify(annotated);
|
|
200
|
+
const patched = code.slice(0, match.index) + match[1] + newLiteral + code.slice(match.index + match[0].length);
|
|
201
|
+
return { code: patched, map: null };
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
}
|
|
124
205
|
|
|
125
206
|
export { createViteServer };
|
|
126
207
|
//# sourceMappingURL=viteServer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viteServer.js","sources":["../../src/server/viteServer.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"viteServer.js","sources":["../../src/server/viteServer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/storage.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AbsolutePath } from './path.js';
|
|
1
2
|
export interface Storage {
|
|
2
3
|
write(filePath: string, data: Uint8Array): Promise<void>;
|
|
3
4
|
read(filePath: string): Promise<Uint8Array>;
|
|
@@ -7,7 +8,7 @@ export interface Storage {
|
|
|
7
8
|
}
|
|
8
9
|
export declare class FileSystemStorage implements Storage {
|
|
9
10
|
private readonly _rootDir;
|
|
10
|
-
constructor(_rootDir:
|
|
11
|
+
constructor(_rootDir: AbsolutePath);
|
|
11
12
|
private _resolve;
|
|
12
13
|
write(filePath: string, data: Uint8Array): Promise<void>;
|
|
13
14
|
read(filePath: string): Promise<Uint8Array>;
|
package/dist/storage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,WAAW,OAAO;IACvB,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAED,qBAAa,iBAAkB,YAAW,OAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,YAAY;IAEnD,OAAO,CAAC,QAAQ;IAIV,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxD,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI3C,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS1C,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAkBvC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAO7C"}
|
package/dist/storage.js
CHANGED
|
@@ -7,7 +7,7 @@ class FileSystemStorage {
|
|
|
7
7
|
this._rootDir = _rootDir;
|
|
8
8
|
}
|
|
9
9
|
_resolve(filePath) {
|
|
10
|
-
return path.join(this._rootDir, ...filePath.split('/'));
|
|
10
|
+
return path.join(this._rootDir.value, ...filePath.split('/'));
|
|
11
11
|
}
|
|
12
12
|
async write(filePath, data) {
|
|
13
13
|
const fullPath = this._resolve(filePath);
|
package/dist/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sources":["../src/storage.ts"],"sourcesContent":[null],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"storage.js","sources":["../src/storage.ts"],"sourcesContent":[null],"names":[],"mappings":";;;MAYa,iBAAiB,CAAA;AACA,IAAA,QAAA;AAA7B,IAAA,WAAA,CAA6B,QAAsB,EAAA;QAAtB,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAAkB;AAE/C,IAAA,QAAQ,CAAC,QAAgB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9D;AAEA,IAAA,MAAM,KAAK,CAAC,QAAgB,EAAE,IAAgB,EAAA;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACxC,QAAA,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC3D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC;IACnC;IAEA,MAAM,IAAI,CAAC,QAAgB,EAAA;AAC1B,QAAA,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClE;IAEA,MAAM,MAAM,CAAC,QAAgB,EAAA;AAC5B,QAAA,IAAI;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACxC,YAAA,OAAO,IAAI;QACZ;AAAE,QAAA,MAAM;AACP,YAAA,OAAO,KAAK;QACb;IACD;IAEA,MAAM,IAAI,CAAC,MAAc,EAAA;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACjC,QAAA,IAAI;AACH,YAAA,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAC1D,MAAM,OAAO,GAAa,EAAE;AAC5B,YAAA,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;gBACvC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;AACrC,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;oBAClB,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC7D;YACD;AACA,YAAA,OAAO,OAAO;QACf;AAAE,QAAA,MAAM;AACP,YAAA,OAAO,EAAE;QACV;IACD;IAEA,MAAM,MAAM,CAAC,QAAgB,EAAA;AAC5B,QAAA,IAAI;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC;AAAE,QAAA,MAAM;;QAER;IACD;AACA;;;;"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,36 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
export interface ExplorerQueryParams {
|
|
3
|
-
readonly mode?: ExplorerMode;
|
|
4
|
-
readonly fixture?: string;
|
|
5
|
-
readonly file?: string;
|
|
6
|
-
readonly report?: string;
|
|
7
|
-
}
|
|
1
|
+
import { AbsolutePath } from './path.js';
|
|
8
2
|
/**
|
|
9
3
|
* The default route path for the Component Explorer.
|
|
10
4
|
* Must match the default in vite-plugin.
|
|
11
5
|
*/
|
|
12
6
|
export declare const EXPLORER_ROUTE = "/___explorer";
|
|
13
|
-
export
|
|
14
|
-
|
|
15
|
-
readonly baseUrl: string;
|
|
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) */
|
|
24
|
-
readonly fixtureId?: string;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Builds a URL for the Component Explorer.
|
|
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)
|
|
31
|
-
*/
|
|
32
|
-
export declare function buildExplorerUrl(options: ExplorerUrlOptions): string;
|
|
33
|
-
export declare function writeFile(filePath: string, data: Uint8Array): Promise<void>;
|
|
34
|
-
export declare function matchGlob(fixtureId: string, pattern: string): boolean;
|
|
35
|
-
export declare function listPngFiles(dir: string): Promise<string[]>;
|
|
7
|
+
export declare function writeFile(filePath: AbsolutePath, data: Uint8Array): Promise<void>;
|
|
8
|
+
export declare function listPngFiles(dir: AbsolutePath): Promise<string[]>;
|
|
36
9
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAE7C,wBAAsB,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvF;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAavE"}
|
package/dist/utils.js
CHANGED
|
@@ -6,33 +6,13 @@ import * as path from 'node:path';
|
|
|
6
6
|
* Must match the default in vite-plugin.
|
|
7
7
|
*/
|
|
8
8
|
const EXPLORER_ROUTE = '/___explorer';
|
|
9
|
-
/**
|
|
10
|
-
* Builds a URL for the Component Explorer.
|
|
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
|
-
*/
|
|
15
|
-
function buildExplorerUrl(options) {
|
|
16
|
-
const base = `${options.baseUrl}${EXPLORER_ROUTE}`;
|
|
17
|
-
const query = {
|
|
18
|
-
mode: options.mode,
|
|
19
|
-
fixture: options.fixtureId,
|
|
20
|
-
};
|
|
21
|
-
const params = new URLSearchParams(Object.entries(query).filter((entry) => entry[1] !== undefined));
|
|
22
|
-
const queryString = params.toString();
|
|
23
|
-
return queryString ? `${base}?${queryString}` : base;
|
|
24
|
-
}
|
|
25
9
|
async function writeFile(filePath, data) {
|
|
26
|
-
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
27
|
-
await fs.writeFile(filePath, data);
|
|
28
|
-
}
|
|
29
|
-
function matchGlob(fixtureId, pattern) {
|
|
30
|
-
const regex = new RegExp('^' + pattern.replace(/\*/g, '.*').replace(/\?/g, '.') + '$');
|
|
31
|
-
return regex.test(fixtureId);
|
|
10
|
+
await fs.mkdir(path.dirname(filePath.value), { recursive: true });
|
|
11
|
+
await fs.writeFile(filePath.value, data);
|
|
32
12
|
}
|
|
33
13
|
async function listPngFiles(dir) {
|
|
34
14
|
try {
|
|
35
|
-
const entries = await fs.readdir(dir, { recursive: true });
|
|
15
|
+
const entries = await fs.readdir(dir.value, { recursive: true });
|
|
36
16
|
const results = [];
|
|
37
17
|
for (const entry of entries) {
|
|
38
18
|
if (entry.endsWith('.png')) {
|
|
@@ -46,5 +26,5 @@ async function listPngFiles(dir) {
|
|
|
46
26
|
}
|
|
47
27
|
}
|
|
48
28
|
|
|
49
|
-
export { EXPLORER_ROUTE,
|
|
29
|
+
export { EXPLORER_ROUTE, listPngFiles, writeFile };
|
|
50
30
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAIA;;;AAGG;AACI,MAAM,cAAc,GAAG;AAEvB,eAAe,SAAS,CAAC,QAAsB,EAAE,IAAgB,EAAA;AACvE,IAAA,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACjE,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;AACzC;AAEO,eAAe,YAAY,CAAC,GAAiB,EAAA;AACnD,IAAA,IAAI;AACH,QAAA,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAChE,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/dist/visualCache.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AbsolutePath } from './path.js';
|
|
1
2
|
export interface VisualCacheEntry {
|
|
2
3
|
readonly expectedVisualDescriptions: readonly string[];
|
|
3
4
|
readonly screenshotHash: string;
|
|
@@ -19,7 +20,7 @@ export type VisualReviewStatus = 'no-expectations' | {
|
|
|
19
20
|
export declare class VisualCache {
|
|
20
21
|
private readonly _filePath;
|
|
21
22
|
private _data;
|
|
22
|
-
constructor(_filePath:
|
|
23
|
+
constructor(_filePath: AbsolutePath);
|
|
23
24
|
/**
|
|
24
25
|
* Look up the review status for a fixture given its current descriptions and screenshot hash.
|
|
25
26
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visualCache.d.ts","sourceRoot":"","sources":["../src/visualCache.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"visualCache.d.ts","sourceRoot":"","sources":["../src/visualCache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAIzC,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,0BAA0B,EAAE,SAAS,MAAM,EAAE,CAAC;IACvD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;CACtD;AAED,MAAM,MAAM,kBAAkB,GAC3B,iBAAiB,GACjB;IACD,0BAA0B,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC;IACpC,QAAQ,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD,CAAC;AAEH,qBAAa,WAAW;IAGX,OAAO,CAAC,QAAQ,CAAC,SAAS;IAFtC,OAAO,CAAC,KAAK,CAAkB;gBAEF,SAAS,EAAE,YAAY;IAIpD;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,0BAA0B,EAAE,SAAS,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,kBAAkB;IAyB7H;;OAEG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,0BAA0B,EAAE,SAAS,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IA8BxH,OAAO,CAAC,KAAK;IAab,OAAO,CAAC,KAAK;CAKb"}
|
package/dist/visualCache.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as fs from 'node:fs';
|
|
2
|
+
import * as path from 'node:path';
|
|
2
3
|
|
|
3
4
|
const MAX_ENTRIES_PER_FIXTURE = 5;
|
|
4
5
|
class VisualCache {
|
|
@@ -59,7 +60,7 @@ class VisualCache {
|
|
|
59
60
|
}
|
|
60
61
|
_load() {
|
|
61
62
|
try {
|
|
62
|
-
const raw = fs.readFileSync(this._filePath, 'utf-8');
|
|
63
|
+
const raw = fs.readFileSync(this._filePath.value, 'utf-8');
|
|
63
64
|
const parsed = JSON.parse(raw);
|
|
64
65
|
if (parsed && parsed.version === 1 && typeof parsed.fixtures === 'object') {
|
|
65
66
|
return parsed;
|
|
@@ -71,9 +72,9 @@ class VisualCache {
|
|
|
71
72
|
return { version: 1, fixtures: {} };
|
|
72
73
|
}
|
|
73
74
|
_save() {
|
|
74
|
-
const dir = this._filePath.
|
|
75
|
+
const dir = path.dirname(this._filePath.value);
|
|
75
76
|
fs.mkdirSync(dir, { recursive: true });
|
|
76
|
-
fs.writeFileSync(this._filePath, JSON.stringify(this._data, null, 2));
|
|
77
|
+
fs.writeFileSync(this._filePath.value, JSON.stringify(this._data, null, 2));
|
|
77
78
|
}
|
|
78
79
|
}
|
|
79
80
|
function descriptionsEqual(a, b) {
|
package/dist/visualCache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visualCache.js","sources":["../src/visualCache.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"visualCache.js","sources":["../src/visualCache.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/viteProjectRef.d.ts
CHANGED
|
@@ -1,22 +1,14 @@
|
|
|
1
|
+
import { AbsolutePath } from './path.js';
|
|
1
2
|
/**
|
|
2
3
|
* Immutable reference to a Vite-based component explorer project.
|
|
3
4
|
* Encapsulates how to locate the project for Vite's `createServer`.
|
|
4
5
|
*/
|
|
5
6
|
export declare class ViteProjectRef {
|
|
6
|
-
|
|
7
|
-
readonly
|
|
8
|
-
/**
|
|
9
|
-
* Absolute path to the Vite config file, or `undefined` to let
|
|
10
|
-
* Vite auto-discover it from `cwd`.
|
|
11
|
-
*/
|
|
12
|
-
readonly configFile: string | undefined;
|
|
7
|
+
readonly cwd: AbsolutePath;
|
|
8
|
+
readonly configFile: AbsolutePath | undefined;
|
|
13
9
|
private constructor();
|
|
14
|
-
/** Create from a project root directory. Vite auto-discovers the config file. */
|
|
15
10
|
static fromSourceRootDir(sourceRootDir: string): ViteProjectRef;
|
|
16
|
-
/**
|
|
17
|
-
* Create from an explicit Vite config file path.
|
|
18
|
-
* CWD is derived as the config file's parent directory.
|
|
19
|
-
*/
|
|
20
11
|
static fromViteConfigPath(viteConfigPath: string): ViteProjectRef;
|
|
12
|
+
rebase(currentRoot: AbsolutePath, newRoot: AbsolutePath): ViteProjectRef;
|
|
21
13
|
}
|
|
22
14
|
//# sourceMappingURL=viteProjectRef.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viteProjectRef.d.ts","sourceRoot":"","sources":["../src/viteProjectRef.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"viteProjectRef.d.ts","sourceRoot":"","sources":["../src/viteProjectRef.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC;;;GAGG;AACH,qBAAa,cAAc;IAEzB,QAAQ,CAAC,GAAG,EAAE,YAAY;IAC1B,QAAQ,CAAC,UAAU,EAAE,YAAY,GAAG,SAAS;IAF9C,OAAO;IAKP,MAAM,CAAC,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc;IAK/D,MAAM,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,cAAc;IAK1D,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,cAAc;CAM/E"}
|