@e2edev/e2e 0.11.0 → 0.13.0
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 +7 -7
- package/dist/agent/act.d.ts +43 -9
- package/dist/agent/act.d.ts.map +1 -1
- package/dist/agent/act.js +126 -734
- package/dist/agent/act.js.map +1 -1
- package/dist/agent/action-dispatcher.d.ts +98 -0
- package/dist/agent/action-dispatcher.d.ts.map +1 -0
- package/dist/agent/action-dispatcher.js +319 -0
- package/dist/agent/action-dispatcher.js.map +1 -0
- package/dist/agent/actions.d.ts +16 -1
- package/dist/agent/actions.d.ts.map +1 -1
- package/dist/agent/actions.js +5 -1
- package/dist/agent/actions.js.map +1 -1
- package/dist/agent/default-agent.d.ts +17 -8
- package/dist/agent/default-agent.d.ts.map +1 -1
- package/dist/agent/default-agent.js +65 -43
- package/dist/agent/default-agent.js.map +1 -1
- package/dist/agent/executor.d.ts +30 -2
- package/dist/agent/executor.d.ts.map +1 -1
- package/dist/agent/executor.js.map +1 -1
- package/dist/agent/index.js +1 -1
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/interactive-step.d.ts +38 -0
- package/dist/agent/interactive-step.d.ts.map +1 -0
- package/dist/agent/interactive-step.js +131 -0
- package/dist/agent/interactive-step.js.map +1 -0
- package/dist/agent/invocation.d.ts +4 -9
- package/dist/agent/invocation.d.ts.map +1 -1
- package/dist/agent/invocation.js +1 -6
- package/dist/agent/invocation.js.map +1 -1
- package/dist/agent/model/sdk.d.ts +1 -1
- package/dist/agent/model/sdk.js +1 -1
- package/dist/agent/model/tool-choice.d.ts +21 -0
- package/dist/agent/model/tool-choice.d.ts.map +1 -0
- package/dist/agent/model/tool-choice.js +49 -0
- package/dist/agent/model/tool-choice.js.map +1 -0
- package/dist/agent/observation-feed.d.ts +123 -0
- package/dist/agent/observation-feed.d.ts.map +1 -0
- package/dist/agent/observation-feed.js +281 -0
- package/dist/agent/observation-feed.js.map +1 -0
- package/dist/agent/observation.d.ts +14 -1
- package/dist/agent/observation.d.ts.map +1 -1
- package/dist/agent/observation.js +58 -2
- package/dist/agent/observation.js.map +1 -1
- package/dist/agent/operation-queue.d.ts +21 -0
- package/dist/agent/operation-queue.d.ts.map +1 -0
- package/dist/agent/operation-queue.js +27 -0
- package/dist/agent/operation-queue.js.map +1 -0
- package/dist/agent/pixels.d.ts +21 -0
- package/dist/agent/pixels.d.ts.map +1 -0
- package/dist/agent/pixels.js +85 -0
- package/dist/agent/pixels.js.map +1 -0
- package/dist/agent/point-tap.d.ts +52 -0
- package/dist/agent/point-tap.d.ts.map +1 -0
- package/dist/agent/point-tap.js +88 -0
- package/dist/agent/point-tap.js.map +1 -0
- package/dist/agent/primitives.d.ts +7 -1
- package/dist/agent/primitives.d.ts.map +1 -1
- package/dist/agent/primitives.js +96 -25
- package/dist/agent/primitives.js.map +1 -1
- package/dist/agent/replay.d.ts +8 -3
- package/dist/agent/replay.d.ts.map +1 -1
- package/dist/agent/replay.js +44 -15
- package/dist/agent/replay.js.map +1 -1
- package/dist/agent/screen-update.d.ts +50 -18
- package/dist/agent/screen-update.d.ts.map +1 -1
- package/dist/agent/screen-update.js +76 -94
- package/dist/agent/screen-update.js.map +1 -1
- package/dist/agent/step-accounting.d.ts +95 -0
- package/dist/agent/step-accounting.d.ts.map +1 -0
- package/dist/agent/step-accounting.js +201 -0
- package/dist/agent/step-accounting.js.map +1 -0
- package/dist/agent/step-cache.d.ts.map +1 -1
- package/dist/agent/step-cache.js +2 -2
- package/dist/agent/step-cache.js.map +1 -1
- package/dist/agent/tool-loop.d.ts +4 -4
- package/dist/agent/tool-loop.d.ts.map +1 -1
- package/dist/agent/tool-loop.js +109 -25
- package/dist/agent/tool-loop.js.map +1 -1
- package/dist/agent/transcript-compaction.d.ts +38 -0
- package/dist/agent/transcript-compaction.d.ts.map +1 -0
- package/dist/agent/transcript-compaction.js +165 -0
- package/dist/agent/transcript-compaction.js.map +1 -0
- package/dist/cache/recorder.d.ts.map +1 -1
- package/dist/cache/recorder.js +20 -0
- package/dist/cache/recorder.js.map +1 -1
- package/dist/cache/trace.d.ts +28 -1
- package/dist/cache/trace.d.ts.map +1 -1
- package/dist/cache/trace.js +44 -0
- package/dist/cache/trace.js.map +1 -1
- package/dist/cli/docs-url.d.ts +1 -1
- package/dist/cli/docs-url.d.ts.map +1 -1
- package/dist/cli/docs-url.js +1 -1
- package/dist/cli/docs-url.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +71 -26
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/engine-versions.json +1 -1
- package/dist/cli/init/engines.d.ts +26 -16
- package/dist/cli/init/engines.d.ts.map +1 -1
- package/dist/cli/init/engines.js +33 -24
- package/dist/cli/init/engines.js.map +1 -1
- package/dist/cli/init/gateways.js +3 -3
- package/dist/cli/init/mcp-config.d.ts +31 -0
- package/dist/cli/init/mcp-config.d.ts.map +1 -0
- package/dist/cli/init/mcp-config.js +72 -0
- package/dist/cli/init/mcp-config.js.map +1 -0
- package/dist/cli/init/scaffold.d.ts +1 -1
- package/dist/cli/init/scaffold.js +2 -2
- package/dist/cli/init/scaffold.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +65 -29
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/mcp.d.ts +15 -0
- package/dist/cli/mcp.d.ts.map +1 -0
- package/dist/cli/mcp.js +63 -0
- package/dist/cli/mcp.js.map +1 -0
- package/dist/collect/collect.d.ts +8 -3
- package/dist/collect/collect.d.ts.map +1 -1
- package/dist/collect/collect.js +29 -5
- package/dist/collect/collect.js.map +1 -1
- package/dist/collect/registry.d.ts +20 -5
- package/dist/collect/registry.d.ts.map +1 -1
- package/dist/collect/registry.js +162 -56
- package/dist/collect/registry.js.map +1 -1
- package/dist/collect/select.d.ts +9 -2
- package/dist/collect/select.d.ts.map +1 -1
- package/dist/collect/select.js +60 -12
- package/dist/collect/select.js.map +1 -1
- package/dist/config/agent.d.ts +1 -7
- package/dist/config/agent.d.ts.map +1 -1
- package/dist/config/agent.js +5 -8
- package/dist/config/agent.js.map +1 -1
- package/dist/config/app.d.ts +24 -2
- package/dist/config/app.d.ts.map +1 -1
- package/dist/config/app.js +82 -15
- package/dist/config/app.js.map +1 -1
- package/dist/config/resolve.d.ts +23 -6
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +34 -14
- package/dist/config/resolve.js.map +1 -1
- package/dist/credentials.d.ts +6 -0
- package/dist/credentials.d.ts.map +1 -1
- package/dist/credentials.js +9 -0
- package/dist/credentials.js.map +1 -1
- package/dist/engine/contract.d.ts +9 -2
- package/dist/engine/contract.d.ts.map +1 -1
- package/dist/engine/contract.js.map +1 -1
- package/dist/engine/index.d.ts +18 -4
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +8 -0
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/session.d.ts.map +1 -1
- package/dist/engine/session.js +3 -0
- package/dist/engine/session.js.map +1 -1
- package/dist/engine/surface.d.ts +6 -2
- package/dist/engine/surface.d.ts.map +1 -1
- package/dist/engine/surface.js.map +1 -1
- package/dist/expect/attempt.d.ts +15 -0
- package/dist/expect/attempt.d.ts.map +1 -0
- package/dist/expect/attempt.js +33 -0
- package/dist/expect/attempt.js.map +1 -0
- package/dist/expect/index.d.ts +7 -5
- package/dist/expect/index.d.ts.map +1 -1
- package/dist/expect/index.js +8 -1
- package/dist/expect/index.js.map +1 -1
- package/dist/expect/poll.d.ts +5 -0
- package/dist/expect/poll.d.ts.map +1 -0
- package/dist/expect/poll.js +118 -0
- package/dist/expect/poll.js.map +1 -0
- package/dist/expect/values.d.ts.map +1 -1
- package/dist/expect/values.js +6 -1
- package/dist/expect/values.js.map +1 -1
- package/dist/explore/body.d.ts.map +1 -1
- package/dist/explore/body.js +2 -0
- package/dist/explore/body.js.map +1 -1
- package/dist/explore/executor.js +16 -11
- package/dist/explore/executor.js.map +1 -1
- package/dist/explore/index.d.ts +3 -2
- package/dist/explore/index.d.ts.map +1 -1
- package/dist/explore/index.js +11 -9
- package/dist/explore/index.js.map +1 -1
- package/dist/explore/plan.d.ts.map +1 -1
- package/dist/explore/plan.js +16 -5
- package/dist/explore/plan.js.map +1 -1
- package/dist/explore/progress.d.ts +43 -0
- package/dist/explore/progress.d.ts.map +1 -0
- package/dist/explore/progress.js +9 -0
- package/dist/explore/progress.js.map +1 -0
- package/dist/explore/state.d.ts +13 -12
- package/dist/explore/state.d.ts.map +1 -1
- package/dist/explore/state.js +28 -11
- package/dist/explore/state.js.map +1 -1
- package/dist/internal/ai-trace.d.ts +2 -0
- package/dist/internal/ai-trace.d.ts.map +1 -1
- package/dist/internal/ai-trace.js +3 -0
- package/dist/internal/ai-trace.js.map +1 -1
- package/dist/internal/brands.d.ts +2 -0
- package/dist/internal/brands.d.ts.map +1 -1
- package/dist/internal/brands.js +2 -0
- package/dist/internal/brands.js.map +1 -1
- package/dist/internal/geometry.d.ts +13 -0
- package/dist/internal/geometry.d.ts.map +1 -0
- package/dist/internal/geometry.js +16 -0
- package/dist/internal/geometry.js.map +1 -0
- package/dist/internal/ids.d.ts +2 -2
- package/dist/internal/ids.d.ts.map +1 -1
- package/dist/internal/ids.js +3 -3
- package/dist/internal/ids.js.map +1 -1
- package/dist/internal/package-manager.d.ts +4 -0
- package/dist/internal/package-manager.d.ts.map +1 -1
- package/dist/internal/package-manager.js +26 -0
- package/dist/internal/package-manager.js.map +1 -1
- package/dist/internal/urls.d.ts +6 -0
- package/dist/internal/urls.d.ts.map +1 -1
- package/dist/internal/urls.js +28 -0
- package/dist/internal/urls.js.map +1 -1
- package/dist/mcp/catalog.d.ts +51 -0
- package/dist/mcp/catalog.d.ts.map +1 -0
- package/dist/mcp/catalog.js +141 -0
- package/dist/mcp/catalog.js.map +1 -0
- package/dist/mcp/config.d.ts +11 -0
- package/dist/mcp/config.d.ts.map +1 -0
- package/dist/mcp/config.js +16 -0
- package/dist/mcp/config.js.map +1 -0
- package/dist/mcp/server.d.ts +29 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +86 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/session.d.ts +68 -0
- package/dist/mcp/session.d.ts.map +1 -0
- package/dist/mcp/session.js +319 -0
- package/dist/mcp/session.js.map +1 -0
- package/dist/mcp/tools.d.ts +77 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +179 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/report/build.d.ts +8 -0
- package/dist/report/build.d.ts.map +1 -1
- package/dist/report/build.js +3 -1
- package/dist/report/build.js.map +1 -1
- package/dist/report/format.d.ts +19 -0
- package/dist/report/format.d.ts.map +1 -1
- package/dist/report/format.js +42 -0
- package/dist/report/format.js.map +1 -1
- package/dist/report/junit.d.ts.map +1 -1
- package/dist/report/junit.js +4 -1
- package/dist/report/junit.js.map +1 -1
- package/dist/report/list-explore.d.ts +109 -0
- package/dist/report/list-explore.d.ts.map +1 -0
- package/dist/report/list-explore.js +388 -0
- package/dist/report/list-explore.js.map +1 -0
- package/dist/report/list.d.ts +31 -1
- package/dist/report/list.d.ts.map +1 -1
- package/dist/report/list.js +114 -16
- package/dist/report/list.js.map +1 -1
- package/dist/report/running-tree.d.ts +7 -7
- package/dist/report/running-tree.d.ts.map +1 -1
- package/dist/report/running-tree.js +12 -13
- package/dist/report/running-tree.js.map +1 -1
- package/dist/run/app-ports.d.ts +17 -0
- package/dist/run/app-ports.d.ts.map +1 -0
- package/dist/run/app-ports.js +74 -0
- package/dist/run/app-ports.js.map +1 -0
- package/dist/run/events.d.ts +21 -7
- package/dist/run/events.d.ts.map +1 -1
- package/dist/run/events.js.map +1 -1
- package/dist/run/execute.d.ts +2 -2
- package/dist/run/execute.d.ts.map +1 -1
- package/dist/run/execute.js +42 -20
- package/dist/run/execute.js.map +1 -1
- package/dist/run/extended-fixtures.d.ts +33 -0
- package/dist/run/extended-fixtures.d.ts.map +1 -0
- package/dist/run/extended-fixtures.js +91 -0
- package/dist/run/extended-fixtures.js.map +1 -0
- package/dist/run/fixtures.d.ts +10 -4
- package/dist/run/fixtures.d.ts.map +1 -1
- package/dist/run/fixtures.js +40 -27
- package/dist/run/fixtures.js.map +1 -1
- package/dist/run/in-process.d.ts.map +1 -1
- package/dist/run/in-process.js +4 -3
- package/dist/run/in-process.js.map +1 -1
- package/dist/run/managed-process.d.ts +18 -0
- package/dist/run/managed-process.d.ts.map +1 -1
- package/dist/run/managed-process.js +101 -6
- package/dist/run/managed-process.js.map +1 -1
- package/dist/run/provision.d.ts +51 -0
- package/dist/run/provision.d.ts.map +1 -0
- package/dist/run/provision.js +94 -0
- package/dist/run/provision.js.map +1 -0
- package/dist/run/realm.d.ts +5 -4
- package/dist/run/realm.d.ts.map +1 -1
- package/dist/run/realm.js +8 -7
- package/dist/run/realm.js.map +1 -1
- package/dist/run/records.d.ts +4 -0
- package/dist/run/records.d.ts.map +1 -1
- package/dist/run/runner.d.ts +14 -5
- package/dist/run/runner.d.ts.map +1 -1
- package/dist/run/runner.js +28 -71
- package/dist/run/runner.js.map +1 -1
- package/dist/run/scheduler.d.ts +5 -2
- package/dist/run/scheduler.d.ts.map +1 -1
- package/dist/run/scheduler.js +13 -10
- package/dist/run/scheduler.js.map +1 -1
- package/dist/run/serial.d.ts +1 -1
- package/dist/run/serial.d.ts.map +1 -1
- package/dist/run/serial.js +7 -2
- package/dist/run/serial.js.map +1 -1
- package/dist/run/standalone.d.ts +63 -0
- package/dist/run/standalone.d.ts.map +1 -0
- package/dist/run/standalone.js +152 -0
- package/dist/run/standalone.js.map +1 -0
- package/dist/run/units.d.ts +6 -3
- package/dist/run/units.d.ts.map +1 -1
- package/dist/run/units.js +0 -0
- package/dist/run/units.js.map +1 -1
- package/dist/run/worker/entry.js +4 -3
- package/dist/run/worker/entry.js.map +1 -1
- package/dist/run/worker/protocol.d.ts +12 -1
- package/dist/run/worker/protocol.d.ts.map +1 -1
- package/dist/run/worker/protocol.js.map +1 -1
- package/dist/run/worker/session.d.ts +3 -4
- package/dist/run/worker/session.d.ts.map +1 -1
- package/dist/run/worker/session.js +5 -4
- package/dist/run/worker/session.js.map +1 -1
- package/dist/types.d.ts +77 -17
- package/dist/types.d.ts.map +1 -1
- package/package.json +11 -7
- package/skills/e2e/SKILL.md +9 -7
- package/skills/e2e/references/agent.md +27 -12
- package/skills/e2e/references/debugging.md +5 -5
- package/skills/e2e/references/explore.md +15 -9
- package/skills/e2e/references/mcp.md +88 -0
- package/skills/e2e/references/running.md +23 -18
- package/skills/e2e/references/setup.md +32 -18
- package/skills/e2e/references/writing-tests.md +12 -5
- package/dist/agent/model/router.d.ts +0 -36
- package/dist/agent/model/router.d.ts.map +0 -1
- package/dist/agent/model/router.js +0 -45
- package/dist/agent/model/router.js.map +0 -1
- package/dist/explore/reporter.d.ts +0 -11
- package/dist/explore/reporter.d.ts.map +0 -1
- package/dist/explore/reporter.js +0 -54
- package/dist/explore/reporter.js.map +0 -1
package/dist/cli/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/** e2e CLI. */
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
2
3
|
import { resolve as resolvePath } from 'node:path';
|
|
3
4
|
import { Argument, Command, CommanderError, InvalidArgumentError, Option } from 'commander';
|
|
4
5
|
import picocolors from 'picocolors';
|
|
6
|
+
import { detectPackageManager, execCommand, runScriptCommand } from '../internal/package-manager.js';
|
|
5
7
|
import { packageVersion } from '../internal/package-version.js';
|
|
6
8
|
import { classifyError, exitCodeForCategory } from '../internal/errors.js';
|
|
7
9
|
import { list, run } from '../run/runner.js';
|
|
@@ -12,6 +14,7 @@ import { cache } from './cache.js';
|
|
|
12
14
|
import { DOCS_URL } from './docs-url.js';
|
|
13
15
|
import { guide } from './guide.js';
|
|
14
16
|
import { init } from './init.js';
|
|
17
|
+
import { mcp } from './mcp.js';
|
|
15
18
|
import { SignalLadder } from './signals.js';
|
|
16
19
|
import { skillTopics } from './skill.js';
|
|
17
20
|
import { telemetry as telemetryCommand, TELEMETRY_ACTIONS } from './telemetry.js';
|
|
@@ -45,6 +48,26 @@ function parseBoundedInt(bounds) {
|
|
|
45
48
|
return parsed;
|
|
46
49
|
};
|
|
47
50
|
}
|
|
51
|
+
const FILES_DESCRIPTION = 'test files, directories, or globs relative to the project root; a bare file name (signup.e2e.ts, signup) or a trailing part of the path (agent/signup.e2e.ts) also selects the file';
|
|
52
|
+
/**
|
|
53
|
+
* A flag commander took for a file because a `--` came before it, which is
|
|
54
|
+
* what a package manager forwards from `pnpm test:e2e -- --headed`. Left
|
|
55
|
+
* alone, the flag is dropped and the run goes on without it, so the action
|
|
56
|
+
* fails as a usage error naming the command that keeps the flag a flag: the
|
|
57
|
+
* whole tail from the first such value, so option values stay with their
|
|
58
|
+
* option. A dash-prefixed name that exists is a file, as it always was.
|
|
59
|
+
*/
|
|
60
|
+
function rejectForwardedFlags(command, files) {
|
|
61
|
+
const cwd = process.cwd();
|
|
62
|
+
const first = files.findIndex((value) => value.startsWith('-') && !existsSync(resolvePath(cwd, value)));
|
|
63
|
+
if (first === -1)
|
|
64
|
+
return;
|
|
65
|
+
const tail = files.slice(first).join(' ');
|
|
66
|
+
const manager = detectPackageManager(cwd);
|
|
67
|
+
const forwarded = `${runScriptCommand(manager, 'test:e2e')} -- ${tail}`;
|
|
68
|
+
const direct = execCommand(manager, `e2e ${command.name()} ${tail}`);
|
|
69
|
+
command.error(`error: "${files[first]}" is a flag, not a test file. It arrived as a file because a "--" came before it; "${forwarded}" reaches e2e as "${command.name()} -- ${tail}" when the package manager forwards the separator. Run the CLI directly instead: ${direct}`, { exitCode: 2 });
|
|
70
|
+
}
|
|
48
71
|
const REPORTERS = ['list', 'json', 'junit'];
|
|
49
72
|
function isReporter(value) {
|
|
50
73
|
return REPORTERS.includes(value);
|
|
@@ -162,6 +185,7 @@ function createProgram(version, telemetry) {
|
|
|
162
185
|
'e2e list --tag smoke',
|
|
163
186
|
'e2e cache ls',
|
|
164
187
|
'e2e guide',
|
|
188
|
+
'e2e mcp',
|
|
165
189
|
'e2e telemetry disable',
|
|
166
190
|
]),
|
|
167
191
|
'',
|
|
@@ -204,11 +228,27 @@ function createProgram(version, telemetry) {
|
|
|
204
228
|
.action((topic) => {
|
|
205
229
|
process.exitCode = guide(topic);
|
|
206
230
|
});
|
|
231
|
+
program
|
|
232
|
+
.command('mcp')
|
|
233
|
+
.summary('serve the project to a coding agent over MCP')
|
|
234
|
+
.description('Serve an MCP server over stdio for a coding agent such as Claude Code or Cursor: open_session opens a live session on one target of any config the agent names, call runs the session\'s tools (observe, tap, type, press, select, scroll, navigate, type_secret, locate, screenshot, and the project\'s own), tools describes them, close_session ends it. The agent explores the real app before writing a test. Register it with the client, e.g. claude mcp add e2e -- npx e2e mcp.')
|
|
235
|
+
.option('--config <path>', 'config file (default: the nearest e2e.config.ts)')
|
|
236
|
+
.option('--target <name>', 'target every session opens on (default: the only target, or the one open_session names)')
|
|
237
|
+
.option('--headless', 'hide the UI during live sessions (default: headed outside CI)')
|
|
238
|
+
.addHelpText('after', [
|
|
239
|
+
'',
|
|
240
|
+
examples(['e2e mcp', 'e2e mcp --target web --headless', 'claude mcp add e2e -- npx e2e mcp']),
|
|
241
|
+
'',
|
|
242
|
+
docsLine('/reference/mcp'),
|
|
243
|
+
].join('\n'))
|
|
244
|
+
.action(async (options) => {
|
|
245
|
+
process.exitCode = await mcp(version, options);
|
|
246
|
+
});
|
|
207
247
|
program
|
|
208
248
|
.command('run')
|
|
209
249
|
.summary('run the tests')
|
|
210
250
|
.description('Run the tests the config discovers and write .e2e/report.json. Files, directories, and quoted globs narrow that selection, as do --tag and --target.')
|
|
211
|
-
.argument('[files...]',
|
|
251
|
+
.argument('[files...]', FILES_DESCRIPTION)
|
|
212
252
|
.optionsGroup('Selection:')
|
|
213
253
|
.option('--config <path>', 'config file (default: the nearest e2e.config.ts)')
|
|
214
254
|
.option('--target <ids>', 'comma-separated target names (default: all targets)', parseList)
|
|
@@ -220,7 +260,7 @@ function createProgram(version, telemetry) {
|
|
|
220
260
|
.option('--pass-with-no-tests', 'exit 0 on an empty selection instead of NO_TESTS')
|
|
221
261
|
.optionsGroup('Execution:')
|
|
222
262
|
.option('--headed', 'show the UI while tests run, when the engine supports it')
|
|
223
|
-
.option('--agent <
|
|
263
|
+
.option('--agent <names>', 'the configured agent unpinned tests run with (default: agents.default); comma-separated or repeated names run each such test once per agent', (value, previous = []) => [...previous, ...parseList(value)])
|
|
224
264
|
.option('--workers <n>', 'parallel workers (default: from the config)', parseNonNegativeInt)
|
|
225
265
|
.option('--retries <n>', 'retries per failing test (default: from the config)', parseNonNegativeInt)
|
|
226
266
|
.option('--no-cache', 'run with the trace cache off, whatever the config says')
|
|
@@ -238,6 +278,7 @@ function createProgram(version, telemetry) {
|
|
|
238
278
|
"e2e run 'tests/**/*.smoke.e2e.ts' --target web --tag smoke",
|
|
239
279
|
'e2e run --reporter list,junit --workers 4 --retries 2',
|
|
240
280
|
'e2e run --agent ux tests/onboarding.e2e.ts',
|
|
281
|
+
'e2e run --agent buyer,admin tests/checkout.e2e.ts',
|
|
241
282
|
'AI_GATEWAY_API_KEY=... e2e run --no-cache',
|
|
242
283
|
]),
|
|
243
284
|
'',
|
|
@@ -247,30 +288,33 @@ function createProgram(version, telemetry) {
|
|
|
247
288
|
].join('\n'))
|
|
248
289
|
.action(async (files,
|
|
249
290
|
// Each value is what its parser returned, so a bad one never reaches here.
|
|
250
|
-
options, command) =>
|
|
251
|
-
files
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
291
|
+
options, command) => {
|
|
292
|
+
rejectForwardedFlags(command, files);
|
|
293
|
+
return runToOutcome(telemetry, command, (signals) => run({
|
|
294
|
+
files,
|
|
295
|
+
configPath: options.config,
|
|
296
|
+
targetIds: options.target,
|
|
297
|
+
tags: options.tag,
|
|
298
|
+
tagMode: options.tagMode,
|
|
299
|
+
headed: options.headed,
|
|
300
|
+
agent: options.agent,
|
|
301
|
+
retries: options.retries,
|
|
302
|
+
workers: options.workers,
|
|
303
|
+
reporters: options.reporter,
|
|
304
|
+
artifactsDir: options.artifacts,
|
|
305
|
+
noCache: options.cache === false,
|
|
306
|
+
passWithNoTests: options.passWithNoTests,
|
|
307
|
+
debug: options.debug,
|
|
308
|
+
aiTrace: options.aiTrace,
|
|
309
|
+
video: options.video,
|
|
310
|
+
interruptSignal: signals.interruptSignal,
|
|
311
|
+
forceSignal: signals.forceSignal,
|
|
312
|
+
}));
|
|
313
|
+
});
|
|
270
314
|
program
|
|
271
315
|
.command('explore')
|
|
272
316
|
.summary('explore the app toward a goal and report findings, without a test file')
|
|
273
|
-
.description('Run the agent against the app with a goal instead of a test: it plans one exploration step at a time, drives the app, reports every defect it has evidence of, and ends with an assessment. The run writes .e2e/report.json like e2e run, with the exploration record under run.explore. The model
|
|
317
|
+
.description('Run the agent against the app with a goal instead of a test: it plans one exploration step at a time, drives the app, reports every defect it has evidence of, and ends with an assessment. The run writes .e2e/report.json like e2e run, with the exploration record under run.explore. The model is the one the selected agent holds, as for e2e run.')
|
|
274
318
|
.argument('[goal]', 'what to explore, in a sentence (default: "Explore the app and find bugs")')
|
|
275
319
|
.optionsGroup('Selection:')
|
|
276
320
|
.option('--config <path>', 'config file (default: the nearest e2e.config.ts)')
|
|
@@ -294,7 +338,7 @@ function createProgram(version, telemetry) {
|
|
|
294
338
|
"e2e explore 'Explore the checkout flow like a first-time buyer and report anything off'",
|
|
295
339
|
'e2e explore --target web --max-steps 4 --headed',
|
|
296
340
|
"e2e explore --agent ux 'Review onboarding as a first-time user'",
|
|
297
|
-
"
|
|
341
|
+
"e2e explore 'Hunt for broken forms and dead links' --video",
|
|
298
342
|
]),
|
|
299
343
|
'',
|
|
300
344
|
exitCodesSection(EXPLORE_EXIT_CODES),
|
|
@@ -322,7 +366,7 @@ function createProgram(version, telemetry) {
|
|
|
322
366
|
.command('list')
|
|
323
367
|
.summary('print the tests a run would select, without running them')
|
|
324
368
|
.description('Collect and select tests exactly as run does, print one line per test and target (file › title [target]), and exit. Nothing starts: no app process, no engine, no worker. The same files, --tag, and --target flags narrow the selection.')
|
|
325
|
-
.argument('[files...]',
|
|
369
|
+
.argument('[files...]', FILES_DESCRIPTION)
|
|
326
370
|
.optionsGroup('Selection:')
|
|
327
371
|
.option('--config <path>', 'config file (default: the nearest e2e.config.ts)')
|
|
328
372
|
.option('--target <ids>', 'comma-separated target names (default: all targets)', parseList)
|
|
@@ -342,7 +386,8 @@ function createProgram(version, telemetry) {
|
|
|
342
386
|
'',
|
|
343
387
|
docsLine('/reference/cli#e2e-list'),
|
|
344
388
|
].join('\n'))
|
|
345
|
-
.action(async (files, options) => {
|
|
389
|
+
.action(async (files, options, command) => {
|
|
390
|
+
rejectForwardedFlags(command, files);
|
|
346
391
|
let pairs;
|
|
347
392
|
try {
|
|
348
393
|
({ pairs } = await list({
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,eAAe;AAEf,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5F,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,GAAG,EAAoC,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,KAAK,EAAqB,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,iBAAiB,EAAwB,MAAM,gBAAgB,CAAC;AAExG;;;;GAIG;AACH,MAAM,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAEzC,wEAAwE;AACxE,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,oBAAoB,CAAC,+BAA+B,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK;SACT,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,iEAAiE;AACjE,SAAS,eAAe,CAAC,MAAsD;IAC7E,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YAChF,MAAM,IAAI,oBAAoB,CAAC,2BAA2B,MAAM,CAAC,GAAG,YAAY,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAGrD,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAQ,SAA+B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,gFAAgF;AAChF,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACjC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,oBAAoB,CAAC,qBAAqB,EAAE,eAAe,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,KAAK,CAAU,CAAC;AAG1C,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU,CAAC;AAGjD,4FAA4F;AAC5F,SAAS,gBAAgB,CAAC,IAAgB;IACxC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;IAC7E,OAAO,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,cAAc,IAAI,CAAC,UAAU,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACnG,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,GAA0D;IACxE,CAAC,GAAG,EAAE,uDAAuD,CAAC;IAC9D,CAAC,GAAG,EAAE,4BAA4B,CAAC;IACnC,CAAC,GAAG,EAAE,oCAAoC,CAAC;IAC3C,CAAC,GAAG,EAAE,0DAA0D,CAAC;IACjE,CAAC,GAAG,EAAE,uBAAuB,CAAC;IAC9B,CAAC,KAAK,EAAE,sCAAsC,CAAC;CAChD,CAAC;AAEF,kFAAkF;AAClF,MAAM,qBAAqB,GAAqC;IAC9D,GAAG,EAAE,mEAAmE;IACxE,GAAG,EAAE,+DAA+D;CACrE,CAAC;AACF,MAAM,kBAAkB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,IAAI,OAAO,CAAU,CAAC,CAAC;AAExH,kEAAkE;AAClE,SAAS,WAAW,CAAC,KAAa,EAAE,KAAwB;IAC1D,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA4D;IACpF,OAAO,WAAW,CAChB,aAAa,EACb,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CACzE,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,QAA2B;IAC3C,OAAO,WAAW,CAChB,WAAW,EACX,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CACvD,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAI,GAAG,EAAE;IACzB,OAAO,SAAS,EAAE,CAAC,SAAS,CAAC,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,yFAAyF;AACzF,SAAS,WAAW,CAAC,OAAgB;IACnC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,OAAO,GAAmB,OAAO,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAClH,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,+FAA+F;AAC/F,SAAS,SAAS,CAAC,OAAgB;IACjC,OAAO,OAAO,CAAC,OAAO;SACnB,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAClB,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CACjH;SACA,QAAQ,EAAE,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,YAAY,CACzB,SAAoB,EACpB,OAAgB,EAChB,KAAqD;IAErD,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACpC,iHAAiH;QACjH,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAC1D,OAAO,CAAC,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;YAAS,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,oCAAoC;AACpC,SAAS,aAAa,CAAC,OAAe,EAAE,SAAoB;IAC1D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IACnC,4EAA4E;IAC5E,wEAAwE;IACxE,OAAO;SACJ,KAAK,CAAC,qBAAqB,CAAC;SAC5B,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,mBAAmB,CAAC;SACtD,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC;SACrC,WAAW,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;SACxD,kBAAkB,CAAC,wBAAwB,CAAC;SAC5C,aAAa,CAAC;QACb,UAAU,EAAE,EAAE,CAAC,IAAI;QACnB,gBAAgB,EAAE,EAAE,CAAC,IAAI;QACzB,eAAe,EAAE,EAAE,CAAC,IAAI;QACxB,mBAAmB,EAAE,EAAE,CAAC,IAAI;QAC5B,iBAAiB,EAAE,EAAE,CAAC,IAAI;KAC3B,CAAC;SACD,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,qDAAqD,CAAC;SACxH,WAAW,CACV,OAAO,EACP;QACE,EAAE;QACF,QAAQ,CAAC;YACP,UAAU;YACV,SAAS;YACT,sCAAsC;YACtC,2CAA2C;YAC3C,sEAAsE;YACtE,sBAAsB;YACtB,cAAc;YACd,WAAW;YACX,uBAAuB;SACxB,CAAC;QACF,EAAE;QACF,OAAO,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,gCAAgC;QACtE,QAAQ,EAAE;KACX,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACJ,kFAAkF;IAClF,2EAA2E;IAC3E,OAAO,CAAC,YAAY,EAAE,CAAC;IACvB,wEAAwE;IACxE,uEAAuE;IACvE,iDAAiD;IACjD,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE;QACpD,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;QAC3C,IAAI,OAAO,KAAK,WAAW;YAAE,SAAS,CAAC,MAAM,EAAE,CAAC;QAChD,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,OAAO,CAAC,kGAAkG,CAAC;SAC3G,WAAW,CACV,uWAAuW,CACxW;SACA,QAAQ,CAAC,aAAa,EAAE,0EAA0E,CAAC;SACnG,MAAM,CAAC,WAAW,EAAE,sDAAsD,CAAC;SAC3E,WAAW,CACV,OAAO,EACP,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7G;SACA,MAAM,CAAC,KAAK,EAAE,SAA6B,EAAE,OAA0B,EAAE,EAAE;QAC1E,OAAO,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,IAAI,GAAG,CAAC,EAAE;YAC1E,GAAG,OAAO;YACV,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;YACjD,wEAAwE;YACxE,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;SAC3E,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,OAAO,CAAC,uCAAuC,CAAC;SAChD,WAAW,CACV,oLAAoL,CACrL;SACA,QAAQ,CAAC,SAAS,EAAE,UAAU,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SACzD,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnI,MAAM,CAAC,CAAC,KAAyB,EAAE,EAAE;QACpC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CACV,sJAAsJ,CACvJ;SACA,QAAQ,CAAC,YAAY,EAAE,gEAAgE,CAAC;SACxF,YAAY,CAAC,YAAY,CAAC;SAC1B,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,CAAC;SAC7E,MAAM,CAAC,gBAAgB,EAAE,qDAAqD,EAAE,SAAS,CAAC;SAC1F,MAAM,CAAC,aAAa,EAAE,6CAA6C,EAAE,CAAC,KAAa,EAAE,QAAQ,GAAa,EAAE,EAAE,EAAE,CAAC;QAChH,GAAG,QAAQ;QACX,KAAK;KACN,CAAC;SACD,SAAS,CAAC,IAAI,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzG,MAAM,CAAC,sBAAsB,EAAE,kDAAkD,CAAC;SAClF,YAAY,CAAC,YAAY,CAAC;SAC1B,MAAM,CAAC,UAAU,EAAE,0DAA0D,CAAC;SAC9E,MAAM,CAAC,gBAAgB,EAAE,4DAA4D,CAAC;SACtF,MAAM,CAAC,eAAe,EAAE,6CAA6C,EAAE,mBAAmB,CAAC;SAC3F,MAAM,CAAC,eAAe,EAAE,qDAAqD,EAAE,mBAAmB,CAAC;SACnG,MAAM,CAAC,YAAY,EAAE,wDAAwD,CAAC;SAC9E,YAAY,CAAC,SAAS,CAAC;SACvB,MAAM,CAAC,kBAAkB,EAAE,8CAA8C,EAAE,cAAc,CAAC;SAC1F,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,CAAC;SACtE,MAAM,CAAC,SAAS,EAAE,wDAAwD,CAAC;SAC3E,MAAM,CAAC,YAAY,EAAE,0DAA0D,CAAC;SAChF,MAAM,CAAC,SAAS,EAAE,8DAA8D,CAAC;SACjF,WAAW,CACV,OAAO,EACP;QACE,EAAE;QACF,QAAQ,CAAC;YACP,SAAS;YACT,sCAAsC;YACtC,4DAA4D;YAC5D,uDAAuD;YACvD,4CAA4C;YAC5C,2CAA2C;SAC5C,CAAC;QACF,EAAE;QACF,gBAAgB,CAAC,UAAU,CAAC;QAC5B,EAAE;QACF,QAAQ,CAAC,2BAA2B,CAAC;KACtC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb;SACA,MAAM,CACL,KAAK,EACH,KAAe;IACf,2EAA2E;IAC3E,OAiBC,EACD,OAAgB,EAChB,EAAE,CACF,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAC3C,GAAG,CAAC;QACF,KAAK;QACL,UAAU,EAAE,OAAO,CAAC,MAAM;QAC1B,SAAS,EAAE,OAAO,CAAC,MAAM;QACzB,IAAI,EAAE,OAAO,CAAC,GAAG;QACjB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,QAAQ;QAC3B,YAAY,EAAE,OAAO,CAAC,SAAS;QAC/B,OAAO,EAAE,OAAO,CAAC,KAAK,KAAK,KAAK;QAChC,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CACH,CACJ,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,OAAO,CAAC,wEAAwE,CAAC;SACjF,WAAW,CACV,yUAAyU,CAC1U;SACA,QAAQ,CAAC,QAAQ,EAAE,2EAA2E,CAAC;SAC/F,YAAY,CAAC,YAAY,CAAC;SAC1B,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,CAAC;SAC7E,MAAM,CAAC,eAAe,EAAE,8DAA8D,CAAC;SACvF,MAAM,CAAC,gBAAgB,EAAE,gEAAgE,CAAC;SAC1F,YAAY,CAAC,UAAU,CAAC;SACxB,MAAM,CACL,iBAAiB,EACjB,8BAA8B,WAAW,CAAC,GAAG,YAAY,WAAW,CAAC,GAAG,cAAc,WAAW,CAAC,OAAO,GAAG,EAC5G,eAAe,CAAC,WAAW,CAAC,CAC7B;SACA,MAAM,CACL,gBAAgB,EAChB,+BAA+B,cAAc,CAAC,GAAG,YAAY,cAAc,CAAC,GAAG,cAAc,cAAc,CAAC,OAAO,GAAG,EACtH,eAAe,CAAC,cAAc,CAAC,CAChC;SACA,YAAY,CAAC,YAAY,CAAC;SAC1B,MAAM,CAAC,UAAU,EAAE,mEAAmE,CAAC;SACvF,YAAY,CAAC,SAAS,CAAC;SACvB,MAAM,CAAC,kBAAkB,EAAE,8CAA8C,EAAE,cAAc,CAAC;SAC1F,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,CAAC;SACtE,MAAM,CAAC,SAAS,EAAE,wDAAwD,CAAC;SAC3E,MAAM,CAAC,YAAY,EAAE,0DAA0D,CAAC;SAChF,MAAM,CAAC,SAAS,EAAE,gEAAgE,CAAC;SACnF,WAAW,CACV,OAAO,EACP;QACE,EAAE;QACF,QAAQ,CAAC;YACP,aAAa;YACb,yFAAyF;YACzF,iDAAiD;YACjD,iEAAiE;YACjE,wFAAwF;SACzF,CAAC;QACF,EAAE;QACF,gBAAgB,CAAC,kBAAkB,CAAC;QACpC,EAAE;QACF,QAAQ,CAAC,UAAU,CAAC;KACrB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb;SACA,MAAM,CACL,KAAK,EACH,IAAwB,EACxB,OAYC,EACD,OAAgB,EAChB,EAAE,CACF,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAC3C,OAAO,CAAC;QACN,IAAI;QACJ,UAAU,EAAE,OAAO,CAAC,MAAM;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,OAAO;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,QAAQ;QAC3B,YAAY,EAAE,OAAO,CAAC,SAAS;QAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,OAAO,IAAI,CAAC;KACvE,CAAC,CACH,CACJ,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,OAAO,CAAC,0DAA0D,CAAC;SACnE,WAAW,CACV,2OAA2O,CAC5O;SACA,QAAQ,CAAC,YAAY,EAAE,gEAAgE,CAAC;SACxF,YAAY,CAAC,YAAY,CAAC;SAC1B,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,CAAC;SAC7E,MAAM,CAAC,gBAAgB,EAAE,qDAAqD,EAAE,SAAS,CAAC;SAC1F,MAAM,CAAC,aAAa,EAAE,6CAA6C,EAAE,CAAC,KAAa,EAAE,QAAQ,GAAa,EAAE,EAAE,EAAE,CAAC;QAChH,GAAG,QAAQ;QACX,KAAK;KACN,CAAC;SACD,SAAS,CAAC,IAAI,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzG,MAAM,CAAC,sBAAsB,EAAE,kDAAkD,CAAC;SAClF,YAAY,CAAC,SAAS,CAAC;SACvB,SAAS,CACR,IAAI,MAAM,CAAC,iBAAiB,EAAE,6DAA6D,CAAC;SACzF,OAAO,CAAC,cAAc,CAAC;SACvB,OAAO,CAAC,MAAM,CAAC,CACnB;SACA,WAAW,CACV,OAAO,EACP;QACE,EAAE;QACF,QAAQ,CAAC,CAAC,UAAU,EAAE,8BAA8B,EAAE,mCAAmC,EAAE,0BAA0B,CAAC,CAAC;QACvH,EAAE;QACF,QAAQ,CAAC,yBAAyB,CAAC;KACpC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb;SACA,MAAM,CACL,KAAK,EACH,KAAe,EACf,OAOC,EACD,EAAE;QACF,IAAI,KAAmB,CAAC;QACxB,IAAI,CAAC;YACH,CAAC,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC;gBACtB,KAAK;gBACL,UAAU,EAAE,OAAO,CAAC,MAAM;gBAC1B,SAAS,EAAE,OAAO,CAAC,MAAM;gBACzB,IAAI,EAAE,OAAO,CAAC,GAAG;gBACjB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,eAAe,EAAE,OAAO,CAAC,eAAe;aACzC,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YAC1D,OAAO,CAAC,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,OAAO,CAAC,QAAQ,KAAK,MAAM;YACzB,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;YAC3C,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAChE,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CACF,CAAC;IAEJ,MAAM,YAAY,GAAG,OAAO;SACzB,OAAO,CAAC,OAAO,CAAC;SAChB,OAAO,CAAC,6CAA6C,CAAC;SACtD,WAAW,CACV,2NAA2N,CAC5N;SACA,WAAW,CACV,OAAO,EACP,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5H,CAAC;IAEJ,MAAM,eAAe,GAAG,CAAC,IAAkB,EAAE,OAAe,EAAE,WAAmB,EAAQ,EAAE;QACzF,YAAY;aACT,OAAO,CAAC,IAAI,CAAC;aACb,OAAO,CAAC,OAAO,CAAC;aAChB,WAAW,CAAC,WAAW,CAAC;aACxB,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,CAAC;aAC7E,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;YAC7C,OAAO,CAAC,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,eAAe,CACb,IAAI,EACJ,wBAAwB,EACxB,2JAA2J,CAC5J,CAAC;IACF,eAAe,CAAC,OAAO,EAAE,2BAA2B,EAAE,+FAA+F,CAAC,CAAC;IACvJ,eAAe,CAAC,OAAO,EAAE,gCAAgC,EAAE,8FAA8F,CAAC,CAAC;IAE3J,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,OAAO,CAAC,oDAAoD,CAAC;SAC7D,WAAW,CACV,gTAAgT,CACjT;SACA,WAAW,CAAC,IAAI,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAChH,WAAW,CACV,OAAO,EACP;QACE,EAAE;QACF,QAAQ,CAAC,CAAC,eAAe,EAAE,uBAAuB,EAAE,+BAA+B,CAAC,CAAC;QACrF,EAAE;QACF,QAAQ,CAAC,YAAY,CAAC;KACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb;SACA,MAAM,CAAC,CAAC,MAAuB,EAAE,EAAE;QAClC,OAAO,CAAC,QAAQ,GAAG,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4CAA4C;AAC5C,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAuB;IAChD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;YACpC,6DAA6D;YAC7D,gEAAgE;YAChE,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,oFAAoF;QACpF,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,eAAe;AAEf,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5F,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,GAAG,EAAoC,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,KAAK,EAAqB,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,iBAAiB,EAAwB,MAAM,gBAAgB,CAAC;AAExG;;;;GAIG;AACH,MAAM,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAEzC,wEAAwE;AACxE,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,oBAAoB,CAAC,+BAA+B,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK;SACT,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,iEAAiE;AACjE,SAAS,eAAe,CAAC,MAAsD;IAC7E,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YAChF,MAAM,IAAI,oBAAoB,CAAC,2BAA2B,MAAM,CAAC,GAAG,YAAY,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GACrB,qLAAqL,CAAC;AAExL;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,OAAgB,EAAE,KAAwB;IACtE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACxG,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO;IACzB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,GAAG,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC;IACxE,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,OAAO,OAAO,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACrE,OAAO,CAAC,KAAK,CACX,WAAW,KAAK,CAAC,KAAK,CAAC,sFAAsF,SAAS,qBAAqB,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,oFAAoF,MAAM,EAAE,EAChQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAChB,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAGrD,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAQ,SAA+B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,gFAAgF;AAChF,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACjC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,oBAAoB,CAAC,qBAAqB,EAAE,eAAe,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,KAAK,CAAU,CAAC;AAG1C,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU,CAAC;AAGjD,4FAA4F;AAC5F,SAAS,gBAAgB,CAAC,IAAgB;IACxC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;IAC7E,OAAO,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,cAAc,IAAI,CAAC,UAAU,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACnG,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,GAA0D;IACxE,CAAC,GAAG,EAAE,uDAAuD,CAAC;IAC9D,CAAC,GAAG,EAAE,4BAA4B,CAAC;IACnC,CAAC,GAAG,EAAE,oCAAoC,CAAC;IAC3C,CAAC,GAAG,EAAE,0DAA0D,CAAC;IACjE,CAAC,GAAG,EAAE,uBAAuB,CAAC;IAC9B,CAAC,KAAK,EAAE,sCAAsC,CAAC;CAChD,CAAC;AAEF,kFAAkF;AAClF,MAAM,qBAAqB,GAAqC;IAC9D,GAAG,EAAE,mEAAmE;IACxE,GAAG,EAAE,+DAA+D;CACrE,CAAC;AACF,MAAM,kBAAkB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,IAAI,OAAO,CAAU,CAAC,CAAC;AAExH,kEAAkE;AAClE,SAAS,WAAW,CAAC,KAAa,EAAE,KAAwB;IAC1D,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA4D;IACpF,OAAO,WAAW,CAChB,aAAa,EACb,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CACzE,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,QAA2B;IAC3C,OAAO,WAAW,CAChB,WAAW,EACX,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CACvD,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAI,GAAG,EAAE;IACzB,OAAO,SAAS,EAAE,CAAC,SAAS,CAAC,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,yFAAyF;AACzF,SAAS,WAAW,CAAC,OAAgB;IACnC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,OAAO,GAAmB,OAAO,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAClH,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,+FAA+F;AAC/F,SAAS,SAAS,CAAC,OAAgB;IACjC,OAAO,OAAO,CAAC,OAAO;SACnB,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAClB,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CACjH;SACA,QAAQ,EAAE,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,YAAY,CACzB,SAAoB,EACpB,OAAgB,EAChB,KAAqD;IAErD,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACpC,iHAAiH;QACjH,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAC1D,OAAO,CAAC,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;YAAS,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,oCAAoC;AACpC,SAAS,aAAa,CAAC,OAAe,EAAE,SAAoB;IAC1D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;IACnC,4EAA4E;IAC5E,wEAAwE;IACxE,OAAO;SACJ,KAAK,CAAC,qBAAqB,CAAC;SAC5B,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,mBAAmB,CAAC;SACtD,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC;SACrC,WAAW,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;SACxD,kBAAkB,CAAC,wBAAwB,CAAC;SAC5C,aAAa,CAAC;QACb,UAAU,EAAE,EAAE,CAAC,IAAI;QACnB,gBAAgB,EAAE,EAAE,CAAC,IAAI;QACzB,eAAe,EAAE,EAAE,CAAC,IAAI;QACxB,mBAAmB,EAAE,EAAE,CAAC,IAAI;QAC5B,iBAAiB,EAAE,EAAE,CAAC,IAAI;KAC3B,CAAC;SACD,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,qDAAqD,CAAC;SACxH,WAAW,CACV,OAAO,EACP;QACE,EAAE;QACF,QAAQ,CAAC;YACP,UAAU;YACV,SAAS;YACT,sCAAsC;YACtC,2CAA2C;YAC3C,sEAAsE;YACtE,sBAAsB;YACtB,cAAc;YACd,WAAW;YACX,SAAS;YACT,uBAAuB;SACxB,CAAC;QACF,EAAE;QACF,OAAO,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,gCAAgC;QACtE,QAAQ,EAAE;KACX,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACJ,kFAAkF;IAClF,2EAA2E;IAC3E,OAAO,CAAC,YAAY,EAAE,CAAC;IACvB,wEAAwE;IACxE,uEAAuE;IACvE,iDAAiD;IACjD,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE;QACpD,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;QAC3C,IAAI,OAAO,KAAK,WAAW;YAAE,SAAS,CAAC,MAAM,EAAE,CAAC;QAChD,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,OAAO,CAAC,kGAAkG,CAAC;SAC3G,WAAW,CACV,uWAAuW,CACxW;SACA,QAAQ,CAAC,aAAa,EAAE,0EAA0E,CAAC;SACnG,MAAM,CAAC,WAAW,EAAE,sDAAsD,CAAC;SAC3E,WAAW,CACV,OAAO,EACP,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7G;SACA,MAAM,CAAC,KAAK,EAAE,SAA6B,EAAE,OAA0B,EAAE,EAAE;QAC1E,OAAO,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,IAAI,GAAG,CAAC,EAAE;YAC1E,GAAG,OAAO;YACV,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;YACjD,wEAAwE;YACxE,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI;SAC3E,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,OAAO,CAAC,uCAAuC,CAAC;SAChD,WAAW,CACV,oLAAoL,CACrL;SACA,QAAQ,CAAC,SAAS,EAAE,UAAU,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SACzD,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnI,MAAM,CAAC,CAAC,KAAyB,EAAE,EAAE;QACpC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,OAAO,CAAC,8CAA8C,CAAC;SACvD,WAAW,CACV,ydAAyd,CAC1d;SACA,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,CAAC;SAC7E,MAAM,CAAC,iBAAiB,EAAE,yFAAyF,CAAC;SACpH,MAAM,CAAC,YAAY,EAAE,+DAA+D,CAAC;SACrF,WAAW,CACV,OAAO,EACP;QACE,EAAE;QACF,QAAQ,CAAC,CAAC,SAAS,EAAE,iCAAiC,EAAE,mCAAmC,CAAC,CAAC;QAC7F,EAAE;QACF,QAAQ,CAAC,gBAAgB,CAAC;KAC3B,CAAC,IAAI,CAAC,IAAI,CAAC,CACb;SACA,MAAM,CAAC,KAAK,EAAE,OAAiE,EAAE,EAAE;QAClF,OAAO,CAAC,QAAQ,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CACV,sJAAsJ,CACvJ;SACA,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;SACzC,YAAY,CAAC,YAAY,CAAC;SAC1B,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,CAAC;SAC7E,MAAM,CAAC,gBAAgB,EAAE,qDAAqD,EAAE,SAAS,CAAC;SAC1F,MAAM,CAAC,aAAa,EAAE,6CAA6C,EAAE,CAAC,KAAa,EAAE,QAAQ,GAAa,EAAE,EAAE,EAAE,CAAC;QAChH,GAAG,QAAQ;QACX,KAAK;KACN,CAAC;SACD,SAAS,CAAC,IAAI,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzG,MAAM,CAAC,sBAAsB,EAAE,kDAAkD,CAAC;SAClF,YAAY,CAAC,YAAY,CAAC;SAC1B,MAAM,CAAC,UAAU,EAAE,0DAA0D,CAAC;SAC9E,MAAM,CACL,iBAAiB,EACjB,6IAA6I,EAC7I,CAAC,KAAa,EAAE,QAAQ,GAAa,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAC/E;SACA,MAAM,CAAC,eAAe,EAAE,6CAA6C,EAAE,mBAAmB,CAAC;SAC3F,MAAM,CAAC,eAAe,EAAE,qDAAqD,EAAE,mBAAmB,CAAC;SACnG,MAAM,CAAC,YAAY,EAAE,wDAAwD,CAAC;SAC9E,YAAY,CAAC,SAAS,CAAC;SACvB,MAAM,CAAC,kBAAkB,EAAE,8CAA8C,EAAE,cAAc,CAAC;SAC1F,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,CAAC;SACtE,MAAM,CAAC,SAAS,EAAE,wDAAwD,CAAC;SAC3E,MAAM,CAAC,YAAY,EAAE,0DAA0D,CAAC;SAChF,MAAM,CAAC,SAAS,EAAE,8DAA8D,CAAC;SACjF,WAAW,CACV,OAAO,EACP;QACE,EAAE;QACF,QAAQ,CAAC;YACP,SAAS;YACT,sCAAsC;YACtC,4DAA4D;YAC5D,uDAAuD;YACvD,4CAA4C;YAC5C,mDAAmD;YACnD,2CAA2C;SAC5C,CAAC;QACF,EAAE;QACF,gBAAgB,CAAC,UAAU,CAAC;QAC5B,EAAE;QACF,QAAQ,CAAC,2BAA2B,CAAC;KACtC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb;SACA,MAAM,CACL,KAAK,EACH,KAAe;IACf,2EAA2E;IAC3E,OAiBC,EACD,OAAgB,EAChB,EAAE;QACF,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAClD,GAAG,CAAC;YACF,KAAK;YACL,UAAU,EAAE,OAAO,CAAC,MAAM;YAC1B,SAAS,EAAE,OAAO,CAAC,MAAM;YACzB,IAAI,EAAE,OAAO,CAAC,GAAG;YACjB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,QAAQ;YAC3B,YAAY,EAAE,OAAO,CAAC,SAAS;YAC/B,OAAO,EAAE,OAAO,CAAC,KAAK,KAAK,KAAK;YAChC,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CACH,CAAC;IACJ,CAAC,CACF,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,OAAO,CAAC,wEAAwE,CAAC;SACjF,WAAW,CACV,yVAAyV,CAC1V;SACA,QAAQ,CAAC,QAAQ,EAAE,2EAA2E,CAAC;SAC/F,YAAY,CAAC,YAAY,CAAC;SAC1B,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,CAAC;SAC7E,MAAM,CAAC,eAAe,EAAE,8DAA8D,CAAC;SACvF,MAAM,CAAC,gBAAgB,EAAE,gEAAgE,CAAC;SAC1F,YAAY,CAAC,UAAU,CAAC;SACxB,MAAM,CACL,iBAAiB,EACjB,8BAA8B,WAAW,CAAC,GAAG,YAAY,WAAW,CAAC,GAAG,cAAc,WAAW,CAAC,OAAO,GAAG,EAC5G,eAAe,CAAC,WAAW,CAAC,CAC7B;SACA,MAAM,CACL,gBAAgB,EAChB,+BAA+B,cAAc,CAAC,GAAG,YAAY,cAAc,CAAC,GAAG,cAAc,cAAc,CAAC,OAAO,GAAG,EACtH,eAAe,CAAC,cAAc,CAAC,CAChC;SACA,YAAY,CAAC,YAAY,CAAC;SAC1B,MAAM,CAAC,UAAU,EAAE,mEAAmE,CAAC;SACvF,YAAY,CAAC,SAAS,CAAC;SACvB,MAAM,CAAC,kBAAkB,EAAE,8CAA8C,EAAE,cAAc,CAAC;SAC1F,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,CAAC;SACtE,MAAM,CAAC,SAAS,EAAE,wDAAwD,CAAC;SAC3E,MAAM,CAAC,YAAY,EAAE,0DAA0D,CAAC;SAChF,MAAM,CAAC,SAAS,EAAE,gEAAgE,CAAC;SACnF,WAAW,CACV,OAAO,EACP;QACE,EAAE;QACF,QAAQ,CAAC;YACP,aAAa;YACb,yFAAyF;YACzF,iDAAiD;YACjD,iEAAiE;YACjE,4DAA4D;SAC7D,CAAC;QACF,EAAE;QACF,gBAAgB,CAAC,kBAAkB,CAAC;QACpC,EAAE;QACF,QAAQ,CAAC,UAAU,CAAC;KACrB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb;SACA,MAAM,CACL,KAAK,EACH,IAAwB,EACxB,OAYC,EACD,OAAgB,EAChB,EAAE,CACF,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAC3C,OAAO,CAAC;QACN,IAAI;QACJ,UAAU,EAAE,OAAO,CAAC,MAAM;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,OAAO;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,QAAQ;QAC3B,YAAY,EAAE,OAAO,CAAC,SAAS;QAC/B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,OAAO,IAAI,CAAC;KACvE,CAAC,CACH,CACJ,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,OAAO,CAAC,0DAA0D,CAAC;SACnE,WAAW,CACV,2OAA2O,CAC5O;SACA,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;SACzC,YAAY,CAAC,YAAY,CAAC;SAC1B,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,CAAC;SAC7E,MAAM,CAAC,gBAAgB,EAAE,qDAAqD,EAAE,SAAS,CAAC;SAC1F,MAAM,CAAC,aAAa,EAAE,6CAA6C,EAAE,CAAC,KAAa,EAAE,QAAQ,GAAa,EAAE,EAAE,EAAE,CAAC;QAChH,GAAG,QAAQ;QACX,KAAK;KACN,CAAC;SACD,SAAS,CAAC,IAAI,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACzG,MAAM,CAAC,sBAAsB,EAAE,kDAAkD,CAAC;SAClF,YAAY,CAAC,SAAS,CAAC;SACvB,SAAS,CACR,IAAI,MAAM,CAAC,iBAAiB,EAAE,6DAA6D,CAAC;SACzF,OAAO,CAAC,cAAc,CAAC;SACvB,OAAO,CAAC,MAAM,CAAC,CACnB;SACA,WAAW,CACV,OAAO,EACP;QACE,EAAE;QACF,QAAQ,CAAC,CAAC,UAAU,EAAE,8BAA8B,EAAE,mCAAmC,EAAE,0BAA0B,CAAC,CAAC;QACvH,EAAE;QACF,QAAQ,CAAC,yBAAyB,CAAC;KACpC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb;SACA,MAAM,CACL,KAAK,EACH,KAAe,EACf,OAOC,EACD,OAAgB,EAChB,EAAE;QACF,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACrC,IAAI,KAAmB,CAAC;QACxB,IAAI,CAAC;YACH,CAAC,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC;gBACtB,KAAK;gBACL,UAAU,EAAE,OAAO,CAAC,MAAM;gBAC1B,SAAS,EAAE,OAAO,CAAC,MAAM;gBACzB,IAAI,EAAE,OAAO,CAAC,GAAG;gBACjB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,eAAe,EAAE,OAAO,CAAC,eAAe;aACzC,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;YAC1D,OAAO,CAAC,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,OAAO,CAAC,QAAQ,KAAK,MAAM;YACzB,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;YAC3C,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAChE,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CACF,CAAC;IAEJ,MAAM,YAAY,GAAG,OAAO;SACzB,OAAO,CAAC,OAAO,CAAC;SAChB,OAAO,CAAC,6CAA6C,CAAC;SACtD,WAAW,CACV,2NAA2N,CAC5N;SACA,WAAW,CACV,OAAO,EACP,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5H,CAAC;IAEJ,MAAM,eAAe,GAAG,CAAC,IAAkB,EAAE,OAAe,EAAE,WAAmB,EAAQ,EAAE;QACzF,YAAY;aACT,OAAO,CAAC,IAAI,CAAC;aACb,OAAO,CAAC,OAAO,CAAC;aAChB,WAAW,CAAC,WAAW,CAAC;aACxB,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,CAAC;aAC7E,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;YAC7C,OAAO,CAAC,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,eAAe,CACb,IAAI,EACJ,wBAAwB,EACxB,2JAA2J,CAC5J,CAAC;IACF,eAAe,CAAC,OAAO,EAAE,2BAA2B,EAAE,+FAA+F,CAAC,CAAC;IACvJ,eAAe,CAAC,OAAO,EAAE,gCAAgC,EAAE,8FAA8F,CAAC,CAAC;IAE3J,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,OAAO,CAAC,oDAAoD,CAAC;SAC7D,WAAW,CACV,gTAAgT,CACjT;SACA,WAAW,CAAC,IAAI,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAChH,WAAW,CACV,OAAO,EACP;QACE,EAAE;QACF,QAAQ,CAAC,CAAC,eAAe,EAAE,uBAAuB,EAAE,+BAA+B,CAAC,CAAC;QACrF,EAAE;QACF,QAAQ,CAAC,YAAY,CAAC;KACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb;SACA,MAAM,CAAC,CAAC,MAAuB,EAAE,EAAE;QAClC,OAAO,CAAC,QAAQ,GAAG,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4CAA4C;AAC5C,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAuB;IAChD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;YACpC,6DAA6D;YAC7D,gEAAgE;YAChE,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,oFAAoF;QACpF,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"@e2edev/playwright":"0.
|
|
1
|
+
{"@e2edev/playwright":"0.10.0","@e2edev/agent-device":"0.6.0","playwright":"1.63.0"}
|
|
@@ -8,7 +8,8 @@ export interface EnginePreset {
|
|
|
8
8
|
readonly config: string;
|
|
9
9
|
readonly example: string;
|
|
10
10
|
readonly aiExample?: string;
|
|
11
|
-
|
|
11
|
+
/** Whether the run hint sets APP_URL, for engines that drive a URL. */
|
|
12
|
+
readonly needsAppUrl: boolean;
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
14
15
|
* The range init writes for an engine. Engines version independently of the
|
|
@@ -19,12 +20,21 @@ export interface EnginePreset {
|
|
|
19
20
|
* installed engines whose peer range rejected the runner.
|
|
20
21
|
*/
|
|
21
22
|
export declare function engineRange(version: string | undefined): string;
|
|
23
|
+
/**
|
|
24
|
+
* The range init writes for `playwright`, which `@e2edev/playwright` peers on
|
|
25
|
+
* rather than installs, so an app that already ships Playwright keeps one copy
|
|
26
|
+
* and one browser cache. The build records the version the engine was built
|
|
27
|
+
* and tested against; from source, where nothing is recorded, any 1.x will do.
|
|
28
|
+
*/
|
|
29
|
+
export declare function playwrightRange(version: string | undefined): string;
|
|
22
30
|
/** Builds prompt choices and scaffolds with defaults for the machine running init. */
|
|
23
31
|
export declare function getEnginePresets(): readonly [{
|
|
24
32
|
readonly id: 'playwright';
|
|
25
|
-
readonly label: '
|
|
26
|
-
readonly hint: '
|
|
27
|
-
readonly dependencies:
|
|
33
|
+
readonly label: 'Web';
|
|
34
|
+
readonly hint: 'Playwright';
|
|
35
|
+
readonly dependencies: {
|
|
36
|
+
readonly playwright: string;
|
|
37
|
+
};
|
|
28
38
|
readonly imports: readonly ["import { playwright } from '@e2edev/playwright';"];
|
|
29
39
|
readonly config: ` // The engine declares the app it drives; APP_URL overrides the default at run time.
|
|
30
40
|
targets: [{
|
|
@@ -51,7 +61,17 @@ test('app opens', async ({ app, web }) => {
|
|
|
51
61
|
// await agent.assert('one question about the screen');
|
|
52
62
|
// });
|
|
53
63
|
`;
|
|
54
|
-
readonly
|
|
64
|
+
readonly needsAppUrl: true;
|
|
65
|
+
}, {
|
|
66
|
+
readonly id: 'agent-device';
|
|
67
|
+
readonly label: 'Mobile (iOS/Android)';
|
|
68
|
+
readonly hint: 'agent-device';
|
|
69
|
+
readonly dependencies: Readonly<Record<string, string>>;
|
|
70
|
+
readonly imports: readonly ["import { agentDevice } from '@e2edev/agent-device';"];
|
|
71
|
+
readonly config: " // Requires Xcode and an iOS simulator. Replace Settings with your app's bundle ID.\n targets: [{ name: 'ios', engine: agentDevice({ platform: 'ios', app: 'Settings' }) }],\n workers: 1," | " // Requires the Android SDK and an emulator. Replace com.android.settings with your app's package.\n targets: [{ name: 'android', engine: agentDevice({ platform: 'android', app: 'com.android.settings' }) }],\n workers: 1,";
|
|
72
|
+
readonly example: "import { test } from '@e2edev/agent-device';\nimport { expect } from '@e2edev/e2e';\n\ntest('Settings opens', async ({ screen }) => {\n await expect(screen.getByRole('button', { name: 'General' })).toBeVisible();\n});\n" | "import { test } from '@e2edev/agent-device';\nimport { expect } from '@e2edev/e2e';\n\ntest('Settings opens', async ({ screen }) => {\n await expect(screen.getByText('Network & internet')).toBeVisible();\n});\n";
|
|
73
|
+
readonly aiExample: "\n// Runs once the key the model in e2e.config.ts reads is in the environment:\n// test('the agent opens General', async ({ agent, device }) => {\n// await agent.act('open General settings');\n// await expect(device.locator('role=NavigationBar id=General')).toBeVisible();\n// });\n" | "\n// Runs once the key the model in e2e.config.ts reads is in the environment:\n// test('the agent opens Network settings', async ({ agent, device }) => {\n// await agent.act('open Network & internet settings');\n// await expect(device.locator('id=com.android.settings:id/collapsing_toolbar')).toHaveText('Network & internet');\n// });\n";
|
|
74
|
+
readonly needsAppUrl: false;
|
|
55
75
|
}, {
|
|
56
76
|
readonly id: 'none';
|
|
57
77
|
readonly label: 'None';
|
|
@@ -67,17 +87,7 @@ test('app responds', async () => {
|
|
|
67
87
|
expect(response.ok).toBe(true);
|
|
68
88
|
});
|
|
69
89
|
`;
|
|
70
|
-
readonly
|
|
71
|
-
}, {
|
|
72
|
-
readonly id: 'agent-device';
|
|
73
|
-
readonly label: 'agent-device';
|
|
74
|
-
readonly hint: 'mobile testing: iOS and Android';
|
|
75
|
-
readonly dependencies: Readonly<Record<string, string>>;
|
|
76
|
-
readonly imports: readonly ["import { agentDevice } from '@e2edev/agent-device';"];
|
|
77
|
-
readonly config: " // Requires Xcode and an iOS simulator. Replace Settings with your app's bundle ID.\n targets: [{ name: 'ios', engine: agentDevice({ platform: 'ios', app: 'Settings' }) }],\n workers: 1," | " // Requires the Android SDK and an emulator. Replace com.android.settings with your app's package.\n targets: [{ name: 'android', engine: agentDevice({ platform: 'android', app: 'com.android.settings' }) }],\n workers: 1,";
|
|
78
|
-
readonly example: "import { test } from '@e2edev/agent-device';\nimport { expect } from '@e2edev/e2e';\n\ntest('Settings opens', async ({ screen }) => {\n await expect(screen.getByRole('button', { name: 'General' })).toBeVisible();\n});\n" | "import { test } from '@e2edev/agent-device';\nimport { expect } from '@e2edev/e2e';\n\ntest('Settings opens', async ({ screen }) => {\n await expect(screen.getByText('Network & internet')).toBeVisible();\n});\n";
|
|
79
|
-
readonly aiExample: "\n// Runs once the key the model in e2e.config.ts reads is in the environment:\n// test('the agent opens General', async ({ agent, device }) => {\n// await agent.act('open General settings');\n// await expect(device.locator('role=NavigationBar id=General')).toBeVisible();\n// });\n" | "\n// Runs once the key the model in e2e.config.ts reads is in the environment:\n// test('the agent opens Network settings', async ({ agent, device }) => {\n// await agent.act('open Network & internet settings');\n// await expect(device.locator('id=com.android.settings:id/collapsing_toolbar')).toHaveText('Network & internet');\n// });\n";
|
|
80
|
-
readonly runCommand: 'npx --no-install e2e run';
|
|
90
|
+
readonly needsAppUrl: true;
|
|
81
91
|
}];
|
|
82
92
|
export type EngineId = ReturnType<typeof getEnginePresets>[number]['id'];
|
|
83
93
|
export declare const DEFAULT_ENGINE_ID = "playwright";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engines.d.ts","sourceRoot":"","sources":["../../../src/cli/init/engines.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAKhG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"engines.d.ts","sourceRoot":"","sources":["../../../src/cli/init/engines.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAKhG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AASD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE/D;AAMD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEnE;AAED,sFAAsF;AACtF,wBAAgB,gBAAgB;iBAItB,YAAY;oBACT,KAAK;mBACN,YAAY;;;;;qBAGV;;;;;;;;MAQR;sBACS;;;;;;;CAOd;wBACgB;;;;;;;CAOhB;;;iBAIS,cAAc;oBACX,sBAAsB;mBACvB,cAAc;;;;;;;;iBAmChB,MAAM;oBACH,MAAM;mBACP,+BAA+B;;;qBAG7B;sDACwC;sBACvC;;;;;;CAMd;;GAIA;AAED,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACzE,eAAO,MAAM,iBAAiB,eAAkC,CAAC;AAEjE,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,GAAG,YAAY,CAI1D"}
|
package/dist/cli/init/engines.js
CHANGED
|
@@ -21,15 +21,24 @@ export function engineRange(version) {
|
|
|
21
21
|
function engineDependency(name) {
|
|
22
22
|
return { [name]: engineRange(ENGINE_VERSIONS?.[name]) };
|
|
23
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* The range init writes for `playwright`, which `@e2edev/playwright` peers on
|
|
26
|
+
* rather than installs, so an app that already ships Playwright keeps one copy
|
|
27
|
+
* and one browser cache. The build records the version the engine was built
|
|
28
|
+
* and tested against; from source, where nothing is recorded, any 1.x will do.
|
|
29
|
+
*/
|
|
30
|
+
export function playwrightRange(version) {
|
|
31
|
+
return version === undefined ? '^1' : `^${version}`;
|
|
32
|
+
}
|
|
24
33
|
/** Builds prompt choices and scaffolds with defaults for the machine running init. */
|
|
25
34
|
export function getEnginePresets() {
|
|
26
35
|
const ios = os.platform() === 'darwin';
|
|
27
36
|
return [
|
|
28
37
|
{
|
|
29
38
|
id: 'playwright',
|
|
30
|
-
label: '
|
|
31
|
-
hint: '
|
|
32
|
-
dependencies: engineDependency('@e2edev/playwright'),
|
|
39
|
+
label: 'Web',
|
|
40
|
+
hint: 'Playwright',
|
|
41
|
+
dependencies: { ...engineDependency('@e2edev/playwright'), playwright: playwrightRange(ENGINE_VERSIONS?.['playwright']) },
|
|
33
42
|
imports: ["import { playwright } from '@e2edev/playwright';"],
|
|
34
43
|
config: ` // The engine declares the app it drives; APP_URL overrides the default at run time.
|
|
35
44
|
targets: [{
|
|
@@ -56,29 +65,12 @@ test('app opens', async ({ app, web }) => {
|
|
|
56
65
|
// await agent.assert('one question about the screen');
|
|
57
66
|
// });
|
|
58
67
|
`,
|
|
59
|
-
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
id: 'none',
|
|
63
|
-
label: 'None',
|
|
64
|
-
hint: 'HTTP tests or your own engine',
|
|
65
|
-
dependencies: {},
|
|
66
|
-
imports: [],
|
|
67
|
-
config: ` // Add an engine here when your tests need to drive an app.
|
|
68
|
-
targets: [{ name: 'default', platform: 'custom' }],`,
|
|
69
|
-
example: `import { test, expect } from '@e2edev/e2e';
|
|
70
|
-
|
|
71
|
-
test('app responds', async () => {
|
|
72
|
-
const response = await fetch(process.env.APP_URL ?? 'http://localhost:3000');
|
|
73
|
-
expect(response.ok).toBe(true);
|
|
74
|
-
});
|
|
75
|
-
`,
|
|
76
|
-
runCommand: 'APP_URL=http://localhost:3000 npx --no-install e2e run',
|
|
68
|
+
needsAppUrl: true,
|
|
77
69
|
},
|
|
78
70
|
{
|
|
79
71
|
id: 'agent-device',
|
|
80
|
-
label: '
|
|
81
|
-
hint: '
|
|
72
|
+
label: 'Mobile (iOS/Android)',
|
|
73
|
+
hint: 'agent-device',
|
|
82
74
|
dependencies: engineDependency('@e2edev/agent-device'),
|
|
83
75
|
imports: ["import { agentDevice } from '@e2edev/agent-device';"],
|
|
84
76
|
config: ios
|
|
@@ -110,7 +102,24 @@ test('Settings opens', async ({ screen }) => {
|
|
|
110
102
|
// await expect(device.locator('id=com.android.settings:id/collapsing_toolbar')).toHaveText('Network & internet');
|
|
111
103
|
// });
|
|
112
104
|
`,
|
|
113
|
-
|
|
105
|
+
needsAppUrl: false,
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
id: 'none',
|
|
109
|
+
label: 'None',
|
|
110
|
+
hint: 'HTTP tests or your own engine',
|
|
111
|
+
dependencies: {},
|
|
112
|
+
imports: [],
|
|
113
|
+
config: ` // Add an engine here when your tests need to drive an app.
|
|
114
|
+
targets: [{ name: 'default', platform: 'custom' }],`,
|
|
115
|
+
example: `import { test, expect } from '@e2edev/e2e';
|
|
116
|
+
|
|
117
|
+
test('app responds', async () => {
|
|
118
|
+
const response = await fetch(process.env.APP_URL ?? 'http://localhost:3000');
|
|
119
|
+
expect(response.ok).toBe(true);
|
|
120
|
+
});
|
|
121
|
+
`,
|
|
122
|
+
needsAppUrl: true,
|
|
114
123
|
},
|
|
115
124
|
];
|
|
116
125
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engines.js","sourceRoot":"","sources":["../../../src/cli/init/engines.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAEhG,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"engines.js","sourceRoot":"","sources":["../../../src/cli/init/engines.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAEhG,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAe7D;;;;GAIG;AACH,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAiD,CAAC;AAE5H;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,OAA2B;IACzD,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;AACtD,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC;IACvC,OAAO;QACL;YACE,EAAE,EAAE,YAAY;YAChB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,EAAE,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,eAAe,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE;YACzH,OAAO,EAAE,CAAC,kDAAkD,CAAC;YAC7D,MAAM,EAAE;;;;;;;;MAQR;YACA,OAAO,EAAE;;;;;;;CAOd;YACK,SAAS,EAAE;;;;;;;CAOhB;YACK,WAAW,EAAE,IAAI;SAClB;QACD;YACE,EAAE,EAAE,cAAc;YAClB,KAAK,EAAE,sBAAsB;YAC7B,IAAI,EAAE,cAAc;YACpB,YAAY,EAAE,gBAAgB,CAAC,sBAAsB,CAAC;YACtD,OAAO,EAAE,CAAC,qDAAqD,CAAC;YAChE,MAAM,EAAE,GAAG;gBACT,CAAC,CAAC;;cAEI;gBACN,CAAC,CAAC;;cAEI;YACR,OAAO,EAAE;;;;iBAIE,GAAG,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,wCAAwC;;CAElH;YACK,SAAS,EAAE,GAAG;gBACZ,CAAC,CAAC;;;;;;CAMT;gBACO,CAAC,CAAC;;;;;;CAMT;YACK,WAAW,EAAE,KAAK;SACnB;QACD;YACE,EAAE,EAAE,MAAM;YACV,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,+BAA+B;YACrC,YAAY,EAAE,EAAE;YAChB,OAAO,EAAE,EAAE;YACX,MAAM,EAAE;sDACwC;YAChD,OAAO,EAAE;;;;;;CAMd;YACK,WAAW,EAAE,IAAI;SAClB;KACyC,CAAC;AAC/C,CAAC;AAGD,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAA+B,CAAC;AAEjE,2EAA2E;AAC3E,MAAM,UAAU,eAAe,CAAC,EAAY;IAC1C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -12,7 +12,7 @@ export const GATEWAYS = [
|
|
|
12
12
|
dependencies: {},
|
|
13
13
|
import: "import { gateway } from 'ai';",
|
|
14
14
|
comment: 'The Vercel AI Gateway serves the model id and reads AI_GATEWAY_API_KEY.',
|
|
15
|
-
model: () => "gateway('openai/gpt-5.
|
|
15
|
+
model: () => "gateway('openai/gpt-5.6-luna')",
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
id: 'openrouter',
|
|
@@ -21,7 +21,7 @@ export const GATEWAYS = [
|
|
|
21
21
|
dependencies: { '@openrouter/ai-sdk-provider': '^3.0.0' },
|
|
22
22
|
import: "import { openrouter } from '@openrouter/ai-sdk-provider';",
|
|
23
23
|
comment: 'OpenRouter serves the model id and reads OPENROUTER_API_KEY.',
|
|
24
|
-
model: () => "openrouter('openai/gpt-5.
|
|
24
|
+
model: () => "openrouter('openai/gpt-5.6-luna')",
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
id: 'openai-compatible',
|
|
@@ -34,7 +34,7 @@ export const GATEWAYS = [
|
|
|
34
34
|
name: 'openai-compatible',
|
|
35
35
|
baseURL: ${quote(endpoint ?? 'http://127.0.0.1:11434/v1')},
|
|
36
36
|
// apiKey: process.env.LLM_API_KEY,
|
|
37
|
-
}).chatModel('gpt-5.
|
|
37
|
+
}).chatModel('gpt-5.6-luna')`,
|
|
38
38
|
},
|
|
39
39
|
];
|
|
40
40
|
export function getGatewayPreset(id) {
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `e2e init` step that registers the `e2e mcp` server with the coding
|
|
3
|
+
* agents that read a project-level MCP config file. Each file is JSON with a
|
|
4
|
+
* `mcpServers` map; the entry is merged in and every other server is left
|
|
5
|
+
* exactly as it was.
|
|
6
|
+
*/
|
|
7
|
+
/** Where project-scoped MCP servers are declared. */
|
|
8
|
+
export declare const MCP_LOCATIONS: readonly [{
|
|
9
|
+
readonly file: '.mcp.json';
|
|
10
|
+
readonly hint: 'Claude Code';
|
|
11
|
+
}, {
|
|
12
|
+
readonly file: '.cursor/mcp.json';
|
|
13
|
+
readonly hint: 'Cursor';
|
|
14
|
+
}];
|
|
15
|
+
export interface McpRegistration {
|
|
16
|
+
/** Project-relative file, e.g. `.mcp.json`. */
|
|
17
|
+
readonly relative: string;
|
|
18
|
+
/** True when the file already existed, so the write is an update. */
|
|
19
|
+
readonly existing: boolean;
|
|
20
|
+
readonly absolute: string;
|
|
21
|
+
readonly content: string;
|
|
22
|
+
}
|
|
23
|
+
/** Known config files that already register the e2e server. */
|
|
24
|
+
export declare function findRegisteredMcpFiles(cwd: string): string[];
|
|
25
|
+
/**
|
|
26
|
+
* Plans the writes for the given files. A file without the entry gets it
|
|
27
|
+
* merged in; one whose entry already matches needs nothing and is left out.
|
|
28
|
+
* Other servers, other keys, and the file's indentation are preserved.
|
|
29
|
+
*/
|
|
30
|
+
export declare function planMcpRegistration(cwd: string, files: readonly string[]): McpRegistration[];
|
|
31
|
+
//# sourceMappingURL=mcp-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../../../src/cli/init/mcp-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,qDAAqD;AACrD,eAAO,MAAM,aAAa;mBAChB,WAAW;mBAAQ,aAAa;;mBAChC,kBAAkB;mBAAQ,QAAQ;EACD,CAAC;AAO5C,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAsBD,+DAA+D;AAC/D,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAS5D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,EAAE,CAqB5F"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `e2e init` step that registers the `e2e mcp` server with the coding
|
|
3
|
+
* agents that read a project-level MCP config file. Each file is JSON with a
|
|
4
|
+
* `mcpServers` map; the entry is merged in and every other server is left
|
|
5
|
+
* exactly as it was.
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
8
|
+
import path from 'node:path';
|
|
9
|
+
/** Where project-scoped MCP servers are declared. */
|
|
10
|
+
export const MCP_LOCATIONS = [
|
|
11
|
+
{ file: '.mcp.json', hint: 'Claude Code' },
|
|
12
|
+
{ file: '.cursor/mcp.json', hint: 'Cursor' },
|
|
13
|
+
];
|
|
14
|
+
const MCP_SERVER_NAME = 'e2e';
|
|
15
|
+
/** How every client starts the server: the project's own e2e, never a fetched one. */
|
|
16
|
+
const SERVER_ENTRY = { command: 'npx', args: ['e2e', 'mcp'] };
|
|
17
|
+
function readDocument(absolute) {
|
|
18
|
+
if (!existsSync(absolute))
|
|
19
|
+
return undefined;
|
|
20
|
+
const text = readFileSync(absolute, 'utf8');
|
|
21
|
+
let parsed;
|
|
22
|
+
try {
|
|
23
|
+
parsed = text.trim() === '' ? {} : JSON.parse(text);
|
|
24
|
+
}
|
|
25
|
+
catch (cause) {
|
|
26
|
+
throw new Error(`${absolute} is not valid JSON; fix it or remove it before registering the MCP server`, { cause });
|
|
27
|
+
}
|
|
28
|
+
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
|
|
29
|
+
throw new Error(`${absolute} must hold a JSON object with a "mcpServers" map`);
|
|
30
|
+
}
|
|
31
|
+
return parsed;
|
|
32
|
+
}
|
|
33
|
+
/** Known config files that already register the e2e server. */
|
|
34
|
+
export function findRegisteredMcpFiles(cwd) {
|
|
35
|
+
return MCP_LOCATIONS.map((location) => location.file).filter((file) => {
|
|
36
|
+
try {
|
|
37
|
+
const servers = readDocument(path.join(cwd, file))?.mcpServers;
|
|
38
|
+
return typeof servers === 'object' && servers !== null && MCP_SERVER_NAME in servers;
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Plans the writes for the given files. A file without the entry gets it
|
|
47
|
+
* merged in; one whose entry already matches needs nothing and is left out.
|
|
48
|
+
* Other servers, other keys, and the file's indentation are preserved.
|
|
49
|
+
*/
|
|
50
|
+
export function planMcpRegistration(cwd, files) {
|
|
51
|
+
const registrations = [];
|
|
52
|
+
for (const file of files) {
|
|
53
|
+
const absolute = path.join(cwd, file);
|
|
54
|
+
const document = readDocument(absolute) ?? {};
|
|
55
|
+
const servers = typeof document.mcpServers === 'object' && document.mcpServers !== null && !Array.isArray(document.mcpServers)
|
|
56
|
+
? document.mcpServers
|
|
57
|
+
: {};
|
|
58
|
+
if (JSON.stringify(servers[MCP_SERVER_NAME]) === JSON.stringify(SERVER_ENTRY))
|
|
59
|
+
continue;
|
|
60
|
+
const merged = { ...document, mcpServers: { ...servers, [MCP_SERVER_NAME]: SERVER_ENTRY } };
|
|
61
|
+
const original = existsSync(absolute) ? readFileSync(absolute, 'utf8') : undefined;
|
|
62
|
+
const indent = original?.match(/\n([\t ]+)"/)?.[1] ?? ' ';
|
|
63
|
+
registrations.push({
|
|
64
|
+
relative: file,
|
|
65
|
+
existing: original !== undefined,
|
|
66
|
+
absolute,
|
|
67
|
+
content: `${JSON.stringify(merged, null, indent)}\n`,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
return registrations;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=mcp-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../../../src/cli/init/mcp-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ function agentConfig(model) {
|
|
|
12
12
|
const preset = getGatewayPreset(model.gateway);
|
|
13
13
|
return ` // One model for every agent.* call, checked once when the first test acquires the agent fixture.
|
|
14
14
|
// ${preset.comment}
|
|
15
|
-
// Any AI SDK model works here: openai('gpt-5.
|
|
15
|
+
// Any AI SDK model works here: openai('gpt-5.6-luna') from @ai-sdk/openai calls the provider directly.
|
|
16
16
|
agents: {
|
|
17
17
|
default: createAgent({
|
|
18
18
|
model: ${preset.model(model.endpoint)},
|
|
@@ -47,7 +47,7 @@ ${configFields.join('\n')}
|
|
|
47
47
|
} satisfies E2EConfig;
|
|
48
48
|
`,
|
|
49
49
|
example: engine.example + (gateway === undefined ? '' : engine.aiExample ?? ''),
|
|
50
|
-
|
|
50
|
+
needsAppUrl: engine.needsAppUrl,
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
53
|
//# sourceMappingURL=scaffold.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/cli/init/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAiB,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAkB,MAAM,eAAe,CAAC;AAEjE,MAAM,YAAY,GAAG,kDAAkD,CAAC;AAQxE;;;;;GAKG;AACH,SAAS,WAAW,CAAC,KAAoB;IACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,OAAO;OACF,MAAM,CAAC,OAAO;;;;eAIN,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;;;KAGtC,CAAC;AACN,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,cAAc,CAAC,QAAkB,EAAE,KAAgC;IACjF,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG;QACd,+CAA+C;QAC/C,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAChD,GAAG,MAAM,CAAC,OAAO;QACjB,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KACnD,CAAC;IACF,MAAM,YAAY,GAAG;QACnB,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM;KACd,CAAC;IAEF,OAAO;QACL,YAAY,EAAE;YACZ,aAAa,EAAE,IAAI,cAAc,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE;YACtF,GAAG,MAAM,CAAC,YAAY;YACtB,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;SAC5E;QACD,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAG/B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;;CAExB;QACG,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;QAC/E,
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/cli/init/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAiB,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAkB,MAAM,eAAe,CAAC;AAEjE,MAAM,YAAY,GAAG,kDAAkD,CAAC;AAQxE;;;;;GAKG;AACH,SAAS,WAAW,CAAC,KAAoB;IACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,OAAO;OACF,MAAM,CAAC,OAAO;;;;eAIN,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;;;KAGtC,CAAC;AACN,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,cAAc,CAAC,QAAkB,EAAE,KAAgC;IACjF,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG;QACd,+CAA+C;QAC/C,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAChD,GAAG,MAAM,CAAC,OAAO;QACjB,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KACnD,CAAC;IACF,MAAM,YAAY,GAAG;QACnB,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM;KACd,CAAC;IAEF,OAAO;QACL,YAAY,EAAE;YACZ,aAAa,EAAE,IAAI,cAAc,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,uBAAuB,EAAE,OAAO,CAAC,EAAE;YACtF,GAAG,MAAM,CAAC,YAAY;YACtB,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;SAC5E;QACD,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAG/B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;;CAExB;QACG,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;QAC/E,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC;AACJ,CAAC"}
|