@e2edev/e2e 0.5.1 → 0.6.1
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 +24 -11
- package/dist/agent/act.d.ts +1 -1
- package/dist/agent/act.js +4 -2
- package/dist/agent/act.js.map +1 -1
- package/dist/agent/ai-sdk.d.ts +1 -2
- package/dist/agent/ai-sdk.d.ts.map +1 -1
- package/dist/agent/ai-sdk.js +1 -2
- package/dist/agent/ai-sdk.js.map +1 -1
- package/dist/agent/default-agent.d.ts +7 -3
- package/dist/agent/default-agent.d.ts.map +1 -1
- package/dist/agent/default-agent.js +2 -2
- package/dist/agent/default-agent.js.map +1 -1
- package/dist/agent/derived.d.ts +1 -1
- package/dist/agent/derived.js +1 -1
- package/dist/agent/error.d.ts +2 -2
- package/dist/agent/error.d.ts.map +1 -1
- package/dist/agent/error.js +2 -2
- package/dist/agent/error.js.map +1 -1
- package/dist/agent/executor.d.ts +8 -3
- package/dist/agent/executor.d.ts.map +1 -1
- package/dist/agent/executor.js +1 -1
- package/dist/agent/executor.js.map +1 -1
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +8 -5
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/invocation.d.ts +2 -2
- package/dist/agent/invocation.d.ts.map +1 -1
- package/dist/agent/invocation.js +9 -3
- package/dist/agent/invocation.js.map +1 -1
- package/dist/agent/ledger.d.ts +1 -1
- package/dist/agent/ledger.js +1 -1
- package/dist/agent/model/adapter.d.ts +7 -4
- package/dist/agent/model/adapter.d.ts.map +1 -1
- package/dist/agent/model/adapter.js +2 -2
- package/dist/agent/model/adapter.js.map +1 -1
- package/dist/agent/model/router.d.ts +1 -1
- package/dist/agent/model/router.d.ts.map +1 -1
- package/dist/agent/model/router.js +1 -1
- package/dist/agent/model/router.js.map +1 -1
- package/dist/agent/model/sdk.d.ts +11 -1
- package/dist/agent/model/sdk.d.ts.map +1 -1
- package/dist/agent/model/sdk.js +54 -10
- package/dist/agent/model/sdk.js.map +1 -1
- package/dist/agent/observation.d.ts +1 -1
- package/dist/agent/observation.d.ts.map +1 -1
- package/dist/agent/observation.js +2 -2
- package/dist/agent/observation.js.map +1 -1
- package/dist/agent/prompts.d.ts +1 -1
- package/dist/agent/prompts.js +1 -1
- package/dist/agent/protocol.d.ts +2 -3
- package/dist/agent/protocol.d.ts.map +1 -1
- package/dist/agent/protocol.js +2 -3
- package/dist/agent/protocol.js.map +1 -1
- package/dist/agent/public.d.ts +1 -1
- package/dist/agent/public.js +1 -1
- package/dist/agent/replay.d.ts +1 -1
- package/dist/agent/replay.js +1 -1
- package/dist/agent/secrets.d.ts +1 -1
- package/dist/agent/secrets.d.ts.map +1 -1
- package/dist/agent/secrets.js +1 -1
- package/dist/agent/secrets.js.map +1 -1
- package/dist/agent/step-cache.d.ts +1 -1
- package/dist/agent/step-cache.d.ts.map +1 -1
- package/dist/agent/step-cache.js +7 -1
- package/dist/agent/step-cache.js.map +1 -1
- package/dist/agent/tool-loop.d.ts +7 -3
- package/dist/agent/tool-loop.d.ts.map +1 -1
- package/dist/agent/tool-loop.js +6 -5
- package/dist/agent/tool-loop.js.map +1 -1
- package/dist/agent/usage.d.ts +6 -1
- package/dist/agent/usage.d.ts.map +1 -1
- package/dist/agent/usage.js +12 -0
- package/dist/agent/usage.js.map +1 -1
- package/dist/cache/anchors.d.ts +1 -1
- package/dist/cache/anchors.js +1 -1
- package/dist/cache/context.d.ts +6 -1
- package/dist/cache/context.d.ts.map +1 -1
- package/dist/cache/context.js +2 -1
- package/dist/cache/context.js.map +1 -1
- package/dist/cache/decide.d.ts +1 -1
- package/dist/cache/decide.js +1 -1
- package/dist/cache/identity.d.ts +1 -1
- package/dist/cache/identity.js +1 -1
- package/dist/cache/recorder.d.ts +4 -2
- package/dist/cache/recorder.d.ts.map +1 -1
- package/dist/cache/recorder.js +10 -1
- package/dist/cache/recorder.js.map +1 -1
- package/dist/cache/relocate.d.ts +1 -1
- package/dist/cache/relocate.js +1 -1
- package/dist/cache/store.d.ts +1 -1
- package/dist/cache/store.js +1 -1
- package/dist/cache/trace.d.ts +16 -1
- package/dist/cache/trace.d.ts.map +1 -1
- package/dist/cache/trace.js +22 -1
- package/dist/cache/trace.js.map +1 -1
- package/dist/cli/bin.js +9 -1
- package/dist/cli/bin.js.map +1 -1
- package/dist/cli/cache.d.ts +25 -0
- package/dist/cli/cache.d.ts.map +1 -0
- package/dist/cli/cache.js +249 -0
- package/dist/cli/cache.js.map +1 -0
- package/dist/cli/docs-url.d.ts +3 -0
- package/dist/cli/docs-url.d.ts.map +1 -0
- package/dist/cli/docs-url.js +3 -0
- package/dist/cli/docs-url.js.map +1 -0
- package/dist/cli/guide.d.ts +4 -0
- package/dist/cli/guide.d.ts.map +1 -0
- package/dist/cli/guide.js +16 -0
- package/dist/cli/guide.js.map +1 -0
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +210 -41
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/agent-skill.d.ts +34 -0
- package/dist/cli/init/agent-skill.d.ts.map +1 -0
- package/dist/cli/init/agent-skill.js +44 -0
- package/dist/cli/init/agent-skill.js.map +1 -0
- package/dist/cli/init/engines.d.ts +31 -23
- package/dist/cli/init/engines.d.ts.map +1 -1
- package/dist/cli/init/engines.js +34 -24
- package/dist/cli/init/engines.js.map +1 -1
- package/dist/cli/init/package.d.ts +19 -3
- package/dist/cli/init/package.d.ts.map +1 -1
- package/dist/cli/init/package.js +20 -20
- package/dist/cli/init/package.js.map +1 -1
- package/dist/cli/init/scaffold.d.ts.map +1 -1
- package/dist/cli/init/scaffold.js +5 -3
- package/dist/cli/init/scaffold.js.map +1 -1
- package/dist/cli/init.d.ts +14 -2
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +94 -16
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/signals.d.ts +4 -1
- package/dist/cli/signals.d.ts.map +1 -1
- package/dist/cli/signals.js +8 -2
- package/dist/cli/signals.js.map +1 -1
- package/dist/cli/skill.d.ts +16 -0
- package/dist/cli/skill.d.ts.map +1 -0
- package/dist/cli/skill.js +57 -0
- package/dist/cli/skill.js.map +1 -0
- package/dist/collect/collect.d.ts +9 -1
- package/dist/collect/collect.d.ts.map +1 -1
- package/dist/collect/collect.js +50 -5
- package/dist/collect/collect.js.map +1 -1
- package/dist/collect/registry.d.ts +1 -1
- package/dist/collect/registry.d.ts.map +1 -1
- package/dist/collect/registry.js +1 -1
- package/dist/collect/registry.js.map +1 -1
- package/dist/collect/select.d.ts +1 -1
- package/dist/collect/select.d.ts.map +1 -1
- package/dist/collect/select.js +77 -8
- package/dist/collect/select.js.map +1 -1
- package/dist/config/agent.d.ts +14 -2
- package/dist/config/agent.d.ts.map +1 -1
- package/dist/config/agent.js +53 -16
- package/dist/config/agent.js.map +1 -1
- package/dist/config/app.d.ts +2 -2
- package/dist/config/app.d.ts.map +1 -1
- package/dist/config/app.js +3 -3
- package/dist/config/app.js.map +1 -1
- package/dist/config/diagnose.d.ts +15 -0
- package/dist/config/diagnose.d.ts.map +1 -0
- package/dist/config/diagnose.js +122 -0
- package/dist/config/diagnose.js.map +1 -0
- package/dist/config/load.d.ts +9 -1
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +35 -3
- package/dist/config/load.js.map +1 -1
- package/dist/config/resolve.d.ts +2 -2
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +51 -16
- package/dist/config/resolve.js.map +1 -1
- package/dist/config/validate.d.ts +6 -2
- package/dist/config/validate.d.ts.map +1 -1
- package/dist/config/validate.js +20 -3
- package/dist/config/validate.js.map +1 -1
- package/dist/credentials.d.ts +1 -1
- package/dist/credentials.d.ts.map +1 -1
- package/dist/credentials.js +1 -1
- package/dist/credentials.js.map +1 -1
- package/dist/engine/contract.d.ts +2 -2
- package/dist/engine/contract.js +1 -1
- package/dist/engine/index.d.ts +2 -2
- package/dist/engine/index.js +3 -3
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/session.d.ts +1 -1
- package/dist/engine/session.d.ts.map +1 -1
- package/dist/engine/session.js +5 -2
- package/dist/engine/session.js.map +1 -1
- package/dist/expect/async.d.ts +1 -1
- package/dist/expect/async.d.ts.map +1 -1
- package/dist/expect/async.js +37 -1
- package/dist/expect/async.js.map +1 -1
- package/dist/expect/values.d.ts +1 -1
- package/dist/expect/values.d.ts.map +1 -1
- package/dist/expect/values.js +1 -1
- package/dist/expect/values.js.map +1 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -4
- package/dist/index.js.map +1 -1
- package/dist/internal/errors.d.ts +21 -3
- package/dist/internal/errors.d.ts.map +1 -1
- package/dist/internal/errors.js +55 -5
- package/dist/internal/errors.js.map +1 -1
- package/dist/internal/globs.d.ts +2 -2
- package/dist/internal/globs.d.ts.map +1 -1
- package/dist/internal/globs.js +2 -2
- package/dist/internal/globs.js.map +1 -1
- package/dist/internal/ids.d.ts +3 -3
- 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/node-version.d.ts +10 -0
- package/dist/internal/node-version.d.ts.map +1 -0
- package/dist/internal/node-version.js +28 -0
- package/dist/internal/node-version.js.map +1 -0
- package/dist/internal/package-manager.d.ts +10 -0
- package/dist/internal/package-manager.d.ts.map +1 -0
- package/dist/internal/package-manager.js +43 -0
- package/dist/internal/package-manager.js.map +1 -0
- package/dist/internal/redact.d.ts +1 -1
- package/dist/internal/redact.d.ts.map +1 -1
- package/dist/internal/redact.js +1 -1
- package/dist/internal/redact.js.map +1 -1
- package/dist/internal/suggest.d.ts +16 -0
- package/dist/internal/suggest.d.ts.map +1 -0
- package/dist/internal/suggest.js +61 -0
- package/dist/internal/suggest.js.map +1 -0
- package/dist/internal/text.d.ts +1 -1
- package/dist/internal/text.d.ts.map +1 -1
- package/dist/internal/text.js +1 -1
- package/dist/internal/text.js.map +1 -1
- package/dist/internal/urls.d.ts +2 -2
- package/dist/internal/urls.d.ts.map +1 -1
- package/dist/internal/urls.js +2 -2
- package/dist/internal/urls.js.map +1 -1
- package/dist/locator/engine.d.ts +1 -1
- package/dist/locator/engine.d.ts.map +1 -1
- package/dist/locator/engine.js +1 -1
- package/dist/locator/engine.js.map +1 -1
- package/dist/locator/expression.d.ts +1 -1
- package/dist/locator/expression.d.ts.map +1 -1
- package/dist/locator/expression.js +1 -1
- package/dist/locator/expression.js.map +1 -1
- package/dist/locator/screen.js +1 -1
- package/dist/locator/screen.js.map +1 -1
- package/dist/report/build.d.ts +1 -1
- package/dist/report/build.d.ts.map +1 -1
- package/dist/report/build.js +4 -4
- package/dist/report/build.js.map +1 -1
- package/dist/report/format.d.ts +9 -1
- package/dist/report/format.d.ts.map +1 -1
- package/dist/report/format.js +17 -4
- package/dist/report/format.js.map +1 -1
- package/dist/report/junit.d.ts +1 -1
- package/dist/report/junit.d.ts.map +1 -1
- package/dist/report/junit.js +1 -1
- package/dist/report/junit.js.map +1 -1
- package/dist/report/list-model.d.ts +79 -0
- package/dist/report/list-model.d.ts.map +1 -0
- package/dist/report/list-model.js +10 -0
- package/dist/report/list-model.js.map +1 -0
- package/dist/report/list-steps.d.ts +27 -0
- package/dist/report/list-steps.d.ts.map +1 -0
- package/dist/report/list-steps.js +65 -0
- package/dist/report/list-steps.js.map +1 -0
- package/dist/report/list.d.ts +26 -24
- package/dist/report/list.d.ts.map +1 -1
- package/dist/report/list.js +89 -157
- package/dist/report/list.js.map +1 -1
- package/dist/report/live-window.d.ts +11 -0
- package/dist/report/live-window.d.ts.map +1 -1
- package/dist/report/live-window.js +12 -5
- package/dist/report/live-window.js.map +1 -1
- package/dist/report/running-tree.d.ts +46 -0
- package/dist/report/running-tree.d.ts.map +1 -0
- package/dist/report/running-tree.js +182 -0
- package/dist/report/running-tree.js.map +1 -0
- package/dist/report/write.d.ts +1 -1
- package/dist/report/write.d.ts.map +1 -1
- package/dist/report/write.js +1 -1
- package/dist/report/write.js.map +1 -1
- package/dist/run/budget.d.ts +2 -2
- package/dist/run/budget.js +2 -2
- package/dist/run/declared-processes.d.ts +1 -1
- package/dist/run/declared-processes.js +1 -1
- package/dist/run/events.d.ts +2 -0
- package/dist/run/events.d.ts.map +1 -1
- package/dist/run/events.js.map +1 -1
- package/dist/run/execute.d.ts +2 -3
- package/dist/run/execute.d.ts.map +1 -1
- package/dist/run/execute.js +4 -5
- package/dist/run/execute.js.map +1 -1
- package/dist/run/fixtures.d.ts +1 -1
- package/dist/run/fixtures.d.ts.map +1 -1
- package/dist/run/fixtures.js +41 -5
- package/dist/run/fixtures.js.map +1 -1
- package/dist/run/managed-process.d.ts +8 -1
- package/dist/run/managed-process.d.ts.map +1 -1
- package/dist/run/managed-process.js +35 -17
- package/dist/run/managed-process.js.map +1 -1
- package/dist/run/realm.d.ts +2 -2
- package/dist/run/realm.js +2 -2
- package/dist/run/runner.d.ts +22 -0
- package/dist/run/runner.d.ts.map +1 -1
- package/dist/run/runner.js +47 -9
- package/dist/run/runner.js.map +1 -1
- package/dist/run/scheduler.d.ts +1 -2
- package/dist/run/scheduler.d.ts.map +1 -1
- package/dist/run/scheduler.js +2 -3
- 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 +3 -3
- package/dist/run/serial.js.map +1 -1
- package/dist/run/sessions.d.ts +1 -1
- package/dist/run/sessions.d.ts.map +1 -1
- package/dist/run/sessions.js +1 -1
- package/dist/run/sessions.js.map +1 -1
- package/dist/run/steps.d.ts +8 -2
- package/dist/run/steps.d.ts.map +1 -1
- package/dist/run/steps.js +1 -1
- package/dist/run/steps.js.map +1 -1
- package/dist/run/units.d.ts +1 -1
- package/dist/run/units.js +1 -1
- package/dist/types.d.ts +27 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -2
- package/package.json +13 -12
- package/skills/e2e/SKILL.md +110 -0
- package/skills/e2e/references/agent.md +210 -0
- package/skills/e2e/references/debugging.md +81 -0
- package/skills/e2e/references/running.md +153 -0
- package/skills/e2e/references/setup.md +239 -0
- package/skills/e2e/references/writing-tests.md +289 -0
package/dist/config/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/config/agent.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/config/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/config/app.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Per-target app resolution
|
|
2
|
+
* Per-target app resolution: what an engine declares
|
|
3
3
|
* about the app it drives, validated where an error can name the target.
|
|
4
4
|
*/
|
|
5
5
|
import type { EngineAppDeclaration, EngineHandle } from '../engine/index.ts';
|
|
@@ -67,7 +67,7 @@ export declare function resolveTargetApp(targetName: string, engine: EngineHandl
|
|
|
67
67
|
* in errors, so a failing service is traceable to the engine that declared it.
|
|
68
68
|
*/
|
|
69
69
|
export declare function resolveServices(raw: EngineAppDeclaration['services'], projectRoot: string, prefix?: string): readonly ResolvedService[];
|
|
70
|
-
/** A command's env as it enters the config digest: values reduced to their names
|
|
70
|
+
/** A command's env as it enters the config digest: values reduced to their names. */
|
|
71
71
|
interface DigestedEnv {
|
|
72
72
|
readonly env?: Readonly<Record<string, {
|
|
73
73
|
envName: string;
|
package/dist/config/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/config/app.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG7E,OAAO,EAAwC,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnG,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,aAAa,CAAC;AAGhE;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;CAAE,CAAC;AAEvF,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;CACjC;AAED,wEAAwE;AACxE,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,SAAS,CAAC;CAChD;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;IACxD;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,CAAC;IAC5C,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;CAC/C;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,WAAW,EAAE,MAAM,GAClB,WAAW,CA0Db;AAyGD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,oBAAoB,CAAC,UAAU,CAAC,EACrC,WAAW,EAAE,MAAM,EACnB,MAAM,SAAiB,GACtB,SAAS,eAAe,EAAE,CAiC5B;AAED,
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/config/app.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG7E,OAAO,EAAwC,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnG,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,aAAa,CAAC;AAGhE;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;CAAE,CAAC;AAEvF,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;CACjC;AAED,wEAAwE;AACxE,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,0FAA0F;IAC1F,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,SAAS,CAAC;CAChD;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;IACxD;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,CAAC;IAC5C,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;CAC/C;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,WAAW,EAAE,MAAM,GAClB,WAAW,CA0Db;AAyGD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,oBAAoB,CAAC,UAAU,CAAC,EACrC,WAAW,EAAE,MAAM,EACnB,MAAM,SAAiB,GACtB,SAAS,eAAe,EAAE,CAiC5B;AAED,qFAAqF;AACrF,UAAU,WAAW;IACnB,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CAC9D;AAQD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,oBAAoB;;;;;;;;;;;;;;;;;;cAf7C,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;;;GA+B7D"}
|
package/dist/config/app.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Per-target app resolution
|
|
2
|
+
* Per-target app resolution: what an engine declares
|
|
3
3
|
* about the app it drives, validated where an error can name the target.
|
|
4
4
|
*/
|
|
5
5
|
import fs from 'node:fs';
|
|
@@ -75,8 +75,8 @@ function validateCommand(command, label, projectRoot) {
|
|
|
75
75
|
if (typeof command.executable !== 'string' || command.executable.length === 0) {
|
|
76
76
|
throw new ConfigurationError('INVALID_CONFIG', `${label}.executable is required`);
|
|
77
77
|
}
|
|
78
|
-
positiveInt(command.startupTimeout, `${label}.startupTimeout
|
|
79
|
-
positiveInt(command.shutdownTimeout, `${label}.shutdownTimeout
|
|
78
|
+
positiveInt(command.startupTimeout, `${label}.startupTimeout`, 'milliseconds');
|
|
79
|
+
positiveInt(command.shutdownTimeout, `${label}.shutdownTimeout`, 'milliseconds');
|
|
80
80
|
if (command.log !== undefined) {
|
|
81
81
|
if (typeof command.log !== 'string' || command.log.trim() === '') {
|
|
82
82
|
throw new ConfigurationError('INVALID_CONFIG', `${label}.log must be a non-empty path`);
|
package/dist/config/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/config/app.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/config/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turns a module loading failure into a sentence that names the fix. The
|
|
3
|
+
* loader's own messages are accurate but stop at the symptom: a missing
|
|
4
|
+
* package reads the same whether it was never added or just not installed,
|
|
5
|
+
* and a removed export looks like a typo.
|
|
6
|
+
*/
|
|
7
|
+
/** The runtime exports of `@e2edev/e2e`; a unit test keeps this list equal to the real module. */
|
|
8
|
+
export declare const RUNTIME_EXPORTS: readonly string[];
|
|
9
|
+
/**
|
|
10
|
+
* The message of a failed import of `importer`, extended with what to do
|
|
11
|
+
* about it when the cause is one the runner recognizes. Any other cause keeps
|
|
12
|
+
* its own message.
|
|
13
|
+
*/
|
|
14
|
+
export declare function explainModuleError(cause: unknown, importer: string): string;
|
|
15
|
+
//# sourceMappingURL=diagnose.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnose.d.ts","sourceRoot":"","sources":["../../src/config/diagnose.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,kGAAkG;AAClG,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAS5C,CAAC;AASF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG3E"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Turns a module loading failure into a sentence that names the fix. The
|
|
3
|
+
* loader's own messages are accurate but stop at the symptom: a missing
|
|
4
|
+
* package reads the same whether it was never added or just not installed,
|
|
5
|
+
* and a removed export looks like a typo.
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
8
|
+
import path from 'node:path';
|
|
9
|
+
import { withHint } from '../internal/errors.js';
|
|
10
|
+
import { addDevDependencyCommand, detectPackageManager } from '../internal/package-manager.js';
|
|
11
|
+
import { didYouMean, suggest } from '../internal/suggest.js';
|
|
12
|
+
/** The runtime exports of `@e2edev/e2e`; a unit test keeps this list equal to the real module. */
|
|
13
|
+
export const RUNTIME_EXPORTS = [
|
|
14
|
+
'test',
|
|
15
|
+
'expect',
|
|
16
|
+
'credentials',
|
|
17
|
+
'AgentError',
|
|
18
|
+
'BLOCKABLE_CODES',
|
|
19
|
+
'RUNTIME_CODES',
|
|
20
|
+
'buildTraceEntry',
|
|
21
|
+
'readTraceEntry',
|
|
22
|
+
];
|
|
23
|
+
/**
|
|
24
|
+
* The message of a failed import of `importer`, extended with what to do
|
|
25
|
+
* about it when the cause is one the runner recognizes. Any other cause keeps
|
|
26
|
+
* its own message.
|
|
27
|
+
*/
|
|
28
|
+
export function explainModuleError(cause, importer) {
|
|
29
|
+
const message = cause instanceof Error ? cause.message : String(cause);
|
|
30
|
+
return withHint(message, moduleErrorHint(message, cause?.code, importer));
|
|
31
|
+
}
|
|
32
|
+
function moduleErrorHint(message, code, importer) {
|
|
33
|
+
if (code === 'ERR_MODULE_NOT_FOUND') {
|
|
34
|
+
const missing = /Cannot find (?:package|module) '([^']+)'/.exec(message)?.[1];
|
|
35
|
+
if (missing !== undefined && !missing.startsWith('.') && !path.isAbsolute(missing)) {
|
|
36
|
+
return missingPackageHint(packageNameOf(missing), importer);
|
|
37
|
+
}
|
|
38
|
+
return '';
|
|
39
|
+
}
|
|
40
|
+
if (code === 'ERR_PACKAGE_PATH_NOT_EXPORTED') {
|
|
41
|
+
const match = /Package subpath '([^']+)' is not defined by "exports" in (.+?package\.json)/.exec(message);
|
|
42
|
+
return match === null ? '' : subpathHint(match[1], match[2]);
|
|
43
|
+
}
|
|
44
|
+
const missingExport = /The requested module '([^']+)' does not provide an export named '([^']+)'/.exec(message);
|
|
45
|
+
return missingExport === null ? '' : missingExportHint(missingExport[1], missingExport[2]);
|
|
46
|
+
}
|
|
47
|
+
/** `@scope/name/subpath` and `name/subpath` reduce to the package that would be installed. */
|
|
48
|
+
function packageNameOf(specifier) {
|
|
49
|
+
const parts = specifier.split('/');
|
|
50
|
+
return specifier.startsWith('@') ? parts.slice(0, 2).join('/') : parts[0];
|
|
51
|
+
}
|
|
52
|
+
function missingPackageHint(name, importer) {
|
|
53
|
+
const manifest = nearestManifest(path.dirname(importer));
|
|
54
|
+
const manager = detectPackageManager(manifest?.dir ?? path.dirname(importer), manifest?.packageManager);
|
|
55
|
+
if (manifest?.dependencies.has(name) === true) {
|
|
56
|
+
return `${name} is declared in ${manifest.path} but is not installed: run ${manager} install`;
|
|
57
|
+
}
|
|
58
|
+
return `add it to the project: ${addDevDependencyCommand(manager, name)}`;
|
|
59
|
+
}
|
|
60
|
+
function subpathHint(subpath, manifestPath) {
|
|
61
|
+
let parsed;
|
|
62
|
+
try {
|
|
63
|
+
parsed = JSON.parse(readFileSync(manifestPath, 'utf8'));
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return '';
|
|
67
|
+
}
|
|
68
|
+
const name = typeof parsed.name === 'string' ? parsed.name : path.basename(path.dirname(manifestPath));
|
|
69
|
+
const entries = typeof parsed.exports === 'object' && parsed.exports !== null && !Array.isArray(parsed.exports)
|
|
70
|
+
? Object.keys(parsed.exports).filter((key) => key.startsWith('.'))
|
|
71
|
+
: ['.'];
|
|
72
|
+
const specifiers = entries.map((entry) => (entry === '.' ? name : `${name}/${entry.slice(2)}`));
|
|
73
|
+
const attempted = `${name}/${subpath.replace(/^\.\//, '')}`;
|
|
74
|
+
return `${name} exports ${specifiers.join(', ')}${didYouMean(attempted, specifiers)}`;
|
|
75
|
+
}
|
|
76
|
+
function missingExportHint(specifier, exportName) {
|
|
77
|
+
if (specifier !== '@e2edev/e2e')
|
|
78
|
+
return '';
|
|
79
|
+
if (exportName === 'defineConfig') {
|
|
80
|
+
return 'defineConfig was removed in @e2edev/e2e 0.5: default-export the object and end it with satisfies E2EConfig';
|
|
81
|
+
}
|
|
82
|
+
const suggestion = suggest(exportName, RUNTIME_EXPORTS);
|
|
83
|
+
if (suggestion !== undefined)
|
|
84
|
+
return `did you mean "${suggestion}"?`;
|
|
85
|
+
return /^[A-Z]/.test(exportName)
|
|
86
|
+
? `if ${exportName} is a type, import it with import type { ${exportName} } from '@e2edev/e2e'`
|
|
87
|
+
: `@e2edev/e2e exports ${RUNTIME_EXPORTS.join(', ')}`;
|
|
88
|
+
}
|
|
89
|
+
/** The closest package.json above `dir`, read for its declared dependencies. */
|
|
90
|
+
function nearestManifest(dir) {
|
|
91
|
+
let current = dir;
|
|
92
|
+
for (;;) {
|
|
93
|
+
const manifestPath = path.join(current, 'package.json');
|
|
94
|
+
if (existsSync(manifestPath)) {
|
|
95
|
+
try {
|
|
96
|
+
const parsed = JSON.parse(readFileSync(manifestPath, 'utf8'));
|
|
97
|
+
const dependencies = new Set();
|
|
98
|
+
for (const block of ['dependencies', 'devDependencies', 'peerDependencies', 'optionalDependencies']) {
|
|
99
|
+
const section = parsed[block];
|
|
100
|
+
if (typeof section === 'object' && section !== null) {
|
|
101
|
+
for (const name of Object.keys(section))
|
|
102
|
+
dependencies.add(name);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
path: manifestPath,
|
|
107
|
+
dir: current,
|
|
108
|
+
packageManager: typeof parsed['packageManager'] === 'string' ? parsed['packageManager'] : undefined,
|
|
109
|
+
dependencies,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
const parent = path.dirname(current);
|
|
117
|
+
if (parent === current)
|
|
118
|
+
return undefined;
|
|
119
|
+
current = parent;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=diagnose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../src/config/diagnose.ts"],"names":[],"mappings":"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"}
|
package/dist/config/load.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
/** Config discovery and ESM/TypeScript loading
|
|
1
|
+
/** Config discovery and ESM/TypeScript loading. */
|
|
2
|
+
import { ConfigurationError } from '../internal/errors.ts';
|
|
2
3
|
import type { E2EConfig } from '../types.ts';
|
|
3
4
|
export interface DiscoveredConfig {
|
|
4
5
|
readonly configPath: string | undefined;
|
|
@@ -10,6 +11,13 @@ export interface DiscoveredConfig {
|
|
|
10
11
|
* repository root. The selected file's directory is the project root.
|
|
11
12
|
*/
|
|
12
13
|
export declare function discoverConfig(cwd: string, explicitPath?: string): DiscoveredConfig;
|
|
14
|
+
/**
|
|
15
|
+
* The failure for a run that found no config file: where the search looked,
|
|
16
|
+
* a lookalike in the working directory when one exists, and otherwise the
|
|
17
|
+
* command that creates a config. Thrown by the CLI path only; an embedding
|
|
18
|
+
* host passes its config as a value.
|
|
19
|
+
*/
|
|
20
|
+
export declare function missingConfigError(cwd: string): ConfigurationError;
|
|
13
21
|
/**
|
|
14
22
|
* Imports a TypeScript/ESM module with erasable-syntax support. Every call
|
|
15
23
|
* evaluates the module afresh: the query carries the caller's key (what the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAAA,mDAAmD;AAMnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAoB7C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,gBAAgB,CA2BnF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CASlE;AAWD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,SAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAO9F;AAED,mEAAmE;AACnE,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAuB7E"}
|
package/dist/config/load.js
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
|
-
/** Config discovery and ESM/TypeScript loading
|
|
1
|
+
/** Config discovery and ESM/TypeScript loading. */
|
|
2
2
|
import { existsSync } from 'node:fs';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { pathToFileURL } from 'node:url';
|
|
5
5
|
import { register } from 'tsx/esm/api';
|
|
6
6
|
import { ConfigurationError } from '../internal/errors.js';
|
|
7
|
+
import { explainModuleError } from './diagnose.js';
|
|
7
8
|
import { esmPackageHint } from './esm.js';
|
|
8
9
|
const CONFIG_NAMES = ['e2e.config.ts', 'e2e.config.mts'];
|
|
10
|
+
/** Spellings a config author might reach for that the loader does not read. */
|
|
11
|
+
const CONFIG_LOOKALIKES = [
|
|
12
|
+
'e2e.config.js',
|
|
13
|
+
'e2e.config.mjs',
|
|
14
|
+
'e2e.config.cjs',
|
|
15
|
+
'e2e.config.cts',
|
|
16
|
+
'e2e.config.json',
|
|
17
|
+
'e2e.config.mts.ts',
|
|
18
|
+
'e2e.ts',
|
|
19
|
+
'e2e.json',
|
|
20
|
+
'e2e-config.ts',
|
|
21
|
+
'e2e.conf.ts',
|
|
22
|
+
];
|
|
9
23
|
/**
|
|
10
24
|
* Discovers the config file. With `--config` the explicit path wins. Otherwise
|
|
11
25
|
* the search starts at cwd and inspects each parent, stopping after the
|
|
@@ -37,6 +51,21 @@ export function discoverConfig(cwd, explicitPath) {
|
|
|
37
51
|
}
|
|
38
52
|
return { configPath: undefined, projectRoot: path.resolve(cwd) };
|
|
39
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* The failure for a run that found no config file: where the search looked,
|
|
56
|
+
* a lookalike in the working directory when one exists, and otherwise the
|
|
57
|
+
* command that creates a config. Thrown by the CLI path only; an embedding
|
|
58
|
+
* host passes its config as a value.
|
|
59
|
+
*/
|
|
60
|
+
export function missingConfigError(cwd) {
|
|
61
|
+
const root = path.resolve(cwd);
|
|
62
|
+
const lookalike = CONFIG_LOOKALIKES.find((name) => existsSync(path.join(root, name)));
|
|
63
|
+
const searched = `no ${CONFIG_NAMES.join(' or ')} found in ${root} or its parent directories`;
|
|
64
|
+
const remedy = lookalike === undefined
|
|
65
|
+
? 'run e2e init to create one, or pass --config <path>'
|
|
66
|
+
: `found ${lookalike}, but only ${CONFIG_NAMES.join(' and ')} are loaded: rename it and keep it an ES module`;
|
|
67
|
+
return new ConfigurationError('CONFIG_NOT_FOUND', `${searched}; ${remedy}`);
|
|
68
|
+
}
|
|
40
69
|
/**
|
|
41
70
|
* The process-wide TypeScript loader, registered on first use. `tsImport`
|
|
42
71
|
* would register a fresh, never-removed loader hook per call - once per
|
|
@@ -68,11 +97,14 @@ export async function loadConfigModule(configPath) {
|
|
|
68
97
|
moduleValue = await importModule(configPath);
|
|
69
98
|
}
|
|
70
99
|
catch (cause) {
|
|
71
|
-
throw new ConfigurationError('CONFIG_LOAD_FAILED', `failed to load config ${configPath}: ${cause
|
|
100
|
+
throw new ConfigurationError('CONFIG_LOAD_FAILED', `failed to load config ${configPath}: ${explainModuleError(cause, configPath)}`, { cause });
|
|
72
101
|
}
|
|
73
102
|
const defaultExport = moduleValue.default;
|
|
74
103
|
if (typeof defaultExport !== 'object' || defaultExport === null) {
|
|
75
|
-
|
|
104
|
+
const found = defaultExport === undefined
|
|
105
|
+
? 'has no default export'
|
|
106
|
+
: `default-exports ${typeof defaultExport === 'function' ? 'a function' : `a ${typeof defaultExport}`}`;
|
|
107
|
+
throw new ConfigurationError('INVALID_CONFIG', `config ${configPath} ${found}; write export default { targets: [...] } satisfies E2EConfig`);
|
|
76
108
|
}
|
|
77
109
|
return defaultExport;
|
|
78
110
|
}
|
package/dist/config/load.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"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"}
|
package/dist/config/resolve.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** Config validation, defaults, and resolution
|
|
1
|
+
/** Config validation, defaults, and resolution. */
|
|
2
2
|
import type { ArtifactStore, CacheMode, E2EConfig, Platform, SecretProvider, TraceCacheStore } from '../types.ts';
|
|
3
3
|
import { type EngineHandle } from '../engine/index.ts';
|
|
4
4
|
import { type ResolvedAgentConfig, type ResolvedLimits } from './agent.ts';
|
|
@@ -73,7 +73,7 @@ export interface CliOverrides {
|
|
|
73
73
|
/** Trace cache mode override; `--no-cache` maps to `'off'`. */
|
|
74
74
|
cache?: CacheMode;
|
|
75
75
|
}
|
|
76
|
-
/** True when CI mode is active
|
|
76
|
+
/** True when CI mode is active. */
|
|
77
77
|
export declare function isCiMode(env?: NodeJS.ProcessEnv): boolean;
|
|
78
78
|
/** Resolves a raw config object plus environment into an immutable resolved config. */
|
|
79
79
|
export declare function resolveConfig(raw: E2EConfig, options: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"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"}
|
package/dist/config/resolve.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
/** Config validation, defaults, and resolution
|
|
1
|
+
/** Config validation, defaults, and resolution. */
|
|
2
2
|
import { existsSync, readFileSync } from 'node:fs';
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { ConfigurationError } from '../internal/errors.js';
|
|
6
6
|
import { canonicalDigest, sha256Hex } from '../internal/ids.js';
|
|
7
|
+
import { didYouMean } from '../internal/suggest.js';
|
|
7
8
|
import { isStepExecutor } from '../agent/executor.js';
|
|
8
9
|
import { boundedInt, positiveInt } from './validate.js';
|
|
9
10
|
import { isEngineHandle } from '../engine/index.js';
|
|
@@ -33,7 +34,37 @@ const TOP_LEVEL_KEYS = new Set([
|
|
|
33
34
|
]);
|
|
34
35
|
const CACHE_KEYS = new Set(['mode', 'store', 'dir']);
|
|
35
36
|
const CACHE_MODES = new Set(['off', 'read-only', 'read-write']);
|
|
36
|
-
|
|
37
|
+
const APP_BELONGS_TO_ENGINE = 'the app under test is declared by the engine: engine: playwright({ url }) for a browser, agentDevice({ platform, app }) for a device';
|
|
38
|
+
/** Keys from other runners' configs, each mapped to where that fact lives here. */
|
|
39
|
+
const FOREIGN_TOP_LEVEL_KEYS = {
|
|
40
|
+
testDir: 'test files are selected by tests, a glob such as "tests/**/*.e2e.ts"',
|
|
41
|
+
testMatch: 'test files are selected by tests, a glob such as "tests/**/*.e2e.ts"',
|
|
42
|
+
app: APP_BELONGS_TO_ENGINE,
|
|
43
|
+
url: APP_BELONGS_TO_ENGINE,
|
|
44
|
+
baseURL: APP_BELONGS_TO_ENGINE,
|
|
45
|
+
baseUrl: APP_BELONGS_TO_ENGINE,
|
|
46
|
+
webServer: 'the runner starts the app from the engine options: playwright({ url, command: { executable, args } })',
|
|
47
|
+
use: 'browser and app options are engine options: engine: playwright({ ... })',
|
|
48
|
+
projects: 'one target per browser or device: targets: [{ name, platform, engine }]',
|
|
49
|
+
};
|
|
50
|
+
/** Keys authors put on a target that belong to its engine. */
|
|
51
|
+
const FOREIGN_TARGET_KEYS = new Set([
|
|
52
|
+
'app',
|
|
53
|
+
'url',
|
|
54
|
+
'baseURL',
|
|
55
|
+
'baseUrl',
|
|
56
|
+
'command',
|
|
57
|
+
'appPath',
|
|
58
|
+
'bundleId',
|
|
59
|
+
'browser',
|
|
60
|
+
'device',
|
|
61
|
+
]);
|
|
62
|
+
/** `; did you mean "targets"?` or a pointer to where a foreign key's fact lives. */
|
|
63
|
+
function unknownTopLevelKeyHint(key) {
|
|
64
|
+
const foreign = FOREIGN_TOP_LEVEL_KEYS[key];
|
|
65
|
+
return foreign === undefined ? didYouMean(key, [...TOP_LEVEL_KEYS]) : `; ${foreign}`;
|
|
66
|
+
}
|
|
67
|
+
/** True when CI mode is active. */
|
|
37
68
|
export function isCiMode(env = process.env) {
|
|
38
69
|
const raw = env['CI'];
|
|
39
70
|
if (raw === undefined)
|
|
@@ -51,7 +82,7 @@ export function resolveConfig(raw, options) {
|
|
|
51
82
|
}
|
|
52
83
|
for (const key of Object.keys(raw)) {
|
|
53
84
|
if (!TOP_LEVEL_KEYS.has(key)) {
|
|
54
|
-
throw new ConfigurationError('INVALID_CONFIG', `unknown config key "${key}"`);
|
|
85
|
+
throw new ConfigurationError('INVALID_CONFIG', `unknown config key "${key}"${unknownTopLevelKeyHint(key)}`);
|
|
55
86
|
}
|
|
56
87
|
}
|
|
57
88
|
if (raw.specVersion !== undefined && raw.specVersion !== '0.1') {
|
|
@@ -59,11 +90,11 @@ export function resolveConfig(raw, options) {
|
|
|
59
90
|
}
|
|
60
91
|
const targets = resolveTargets(raw, options.projectRoot);
|
|
61
92
|
const tests = normalizeTests(raw.tests);
|
|
62
|
-
const timeout = positiveInt(raw.timeout, 'timeout') ?? 120_000;
|
|
63
|
-
const launchTimeout = positiveInt(raw.launchTimeout, 'launchTimeout') ?? 60_000;
|
|
64
|
-
const actionTimeout = positiveInt(raw.actionTimeout, 'actionTimeout') ?? 30_000;
|
|
65
|
-
const assertionTimeout = positiveInt(raw.assertionTimeout, 'assertionTimeout') ?? 5_000;
|
|
66
|
-
const cleanupTimeout = positiveInt(raw.cleanupTimeout, 'cleanupTimeout') ?? 30_000;
|
|
93
|
+
const timeout = positiveInt(raw.timeout, 'timeout', 'milliseconds') ?? 120_000;
|
|
94
|
+
const launchTimeout = positiveInt(raw.launchTimeout, 'launchTimeout', 'milliseconds') ?? 60_000;
|
|
95
|
+
const actionTimeout = positiveInt(raw.actionTimeout, 'actionTimeout', 'milliseconds') ?? 30_000;
|
|
96
|
+
const assertionTimeout = positiveInt(raw.assertionTimeout, 'assertionTimeout', 'milliseconds') ?? 5_000;
|
|
97
|
+
const cleanupTimeout = positiveInt(raw.cleanupTimeout, 'cleanupTimeout', 'milliseconds') ?? 30_000;
|
|
67
98
|
// CLI overrides obey the same bounds as the config keys they replace: a
|
|
68
99
|
// `--workers 0` would otherwise plan work no worker can ever take.
|
|
69
100
|
const retries = boundedInt(cli.retries, '--retries', 0, 10) ??
|
|
@@ -79,7 +110,7 @@ export function resolveConfig(raw, options) {
|
|
|
79
110
|
}
|
|
80
111
|
for (const reporter of reporters) {
|
|
81
112
|
if (!['list', 'json', 'junit'].includes(reporter)) {
|
|
82
|
-
throw new ConfigurationError('INVALID_CONFIG', `unknown reporter "${reporter}"`);
|
|
113
|
+
throw new ConfigurationError('INVALID_CONFIG', `unknown reporter "${reporter}"; reporters are list, json, and junit${didYouMean(reporter, ['list', 'json', 'junit'])}`);
|
|
83
114
|
}
|
|
84
115
|
}
|
|
85
116
|
if (reporters.includes('json') && reporters.includes('list')) {
|
|
@@ -128,7 +159,7 @@ export function resolveConfig(raw, options) {
|
|
|
128
159
|
* `cache: 'off'` or `--no-cache` (which wins over the config) turns it off.
|
|
129
160
|
* CI demotes the *defaulted* mode from `read-write` to `read-only`: a
|
|
130
161
|
* committed cache is untrusted input, and a CI run never publishes what it
|
|
131
|
-
* learned unless the project says so
|
|
162
|
+
* learned unless the project says so. An explicit
|
|
132
163
|
* `read-write` in the config is that statement of trust and is honored as
|
|
133
164
|
* written, as is a host-supplied `cache.store`, which states its own trust
|
|
134
165
|
* through the store's `writable` flag.
|
|
@@ -150,7 +181,7 @@ function resolveCacheConfig(raw, ci, projectRoot, cliMode) {
|
|
|
150
181
|
}
|
|
151
182
|
for (const key of Object.keys(value)) {
|
|
152
183
|
if (!CACHE_KEYS.has(key)) {
|
|
153
|
-
throw new ConfigurationError('INVALID_CONFIG', `unknown cache config key "${key}"`);
|
|
184
|
+
throw new ConfigurationError('INVALID_CONFIG', `unknown cache config key "${key}"${didYouMean(key, [...CACHE_KEYS])}`);
|
|
154
185
|
}
|
|
155
186
|
}
|
|
156
187
|
mode = value.mode ?? 'read-write';
|
|
@@ -184,7 +215,7 @@ const ARTIFACTS_KEYS = new Set(['kinds', 'store']);
|
|
|
184
215
|
/**
|
|
185
216
|
* Resolves the `artifacts` key: a bare array of kinds, or `{ kinds, store }`
|
|
186
217
|
* where `store` is the host seam every produced artifact is handed to
|
|
187
|
-
|
|
218
|
+
*. Kinds default to screenshot and trace; a store is a
|
|
188
219
|
* live value validated structurally, like `cache.store`.
|
|
189
220
|
*/
|
|
190
221
|
function resolveArtifactsConfig(raw) {
|
|
@@ -197,7 +228,7 @@ function resolveArtifactsConfig(raw) {
|
|
|
197
228
|
}
|
|
198
229
|
for (const key of Object.keys(value)) {
|
|
199
230
|
if (!ARTIFACTS_KEYS.has(key)) {
|
|
200
|
-
throw new ConfigurationError('INVALID_CONFIG', `unknown artifacts config key "${key}"`);
|
|
231
|
+
throw new ConfigurationError('INVALID_CONFIG', `unknown artifacts config key "${key}"${didYouMean(key, [...ARTIFACTS_KEYS])}`);
|
|
201
232
|
}
|
|
202
233
|
}
|
|
203
234
|
kinds = value.kinds;
|
|
@@ -259,14 +290,18 @@ function resolveTargets(raw, projectRoot) {
|
|
|
259
290
|
seen.add(target.name);
|
|
260
291
|
for (const key of Object.keys(target)) {
|
|
261
292
|
if (!TARGET_KEYS.has(key)) {
|
|
262
|
-
|
|
293
|
+
const hint = FOREIGN_TARGET_KEYS.has(key)
|
|
294
|
+
? `; ${APP_BELONGS_TO_ENGINE}`
|
|
295
|
+
: didYouMean(key, [...TARGET_KEYS]);
|
|
296
|
+
throw new ConfigurationError('INVALID_CONFIG', `target "${target.name}" has unknown key "${key}"; a target is { name, platform, engine? }${hint}`);
|
|
263
297
|
}
|
|
264
298
|
}
|
|
265
299
|
if (typeof target.platform !== 'string' || target.platform.trim() === '') {
|
|
266
300
|
throw new ConfigurationError('INVALID_CONFIG', `target "${target.name}" requires a non-empty platform`);
|
|
267
301
|
}
|
|
268
302
|
if (target.engine !== undefined && !isEngineHandle(target.engine)) {
|
|
269
|
-
|
|
303
|
+
const got = typeof target.engine === 'string' ? `the string ${JSON.stringify(target.engine)}` : `a ${typeof target.engine}`;
|
|
304
|
+
throw new ConfigurationError('INVALID_CONFIG', `target "${target.name}" engine must be an engine handle, got ${got}; call the engine's factory: playwright({ url }) from @e2edev/playwright, agentDevice({ platform, app }) from @e2edev/agent-device, or your own defineEngine(...)`);
|
|
270
305
|
}
|
|
271
306
|
return {
|
|
272
307
|
name: target.name,
|
|
@@ -326,7 +361,7 @@ function resolveCredentials(raw, env) {
|
|
|
326
361
|
}
|
|
327
362
|
/**
|
|
328
363
|
* SHA-256/JCS digest of resolved config after replacing credential material
|
|
329
|
-
* with `{ secretName }` and env values with `{ envName }
|
|
364
|
+
* with `{ secretName }` and env values with `{ envName }`.
|
|
330
365
|
* Live objects (engine handles, model instances) are replaced by their stable
|
|
331
366
|
* identity before the JSON clone, so they never enter the digest and cannot
|
|
332
367
|
* make it nondeterministic across processes.
|