@unotest/web 0.49.1 → 0.49.2
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/CHANGELOG.md +55 -3
- package/README.md +5 -4
- package/bin/unotest-web.js +10 -9
- package/dist/config/schema.d.ts +11 -11
- package/dist/config/schema.js +1 -1
- package/dist/driver/index.d.ts +2 -2
- package/dist/driver/index.js +1 -1
- package/dist/dsl/index.d.ts +4 -2
- package/dist/dsl/index.js +1 -1
- package/dist/dsl/web-dsl-language-service.js +1 -1
- package/dist/inspection/page-inject.d.ts +1 -1
- package/dist/inspection/page-inject.js +15 -9
- package/dist/{interfaces-D5ePwBX6.d.ts → interfaces-mlRtu8mL.d.ts} +10 -0
- package/dist/mcp/server.js +1 -1
- package/dist/runner/cli.js +1 -1
- package/dist/runner/init/chrome-probe.js +1 -1
- package/dist/runner/init.js +1 -1
- package/dist/runner/install-chromium.js +1 -1
- package/dist/runner/prepare-fix.js +1 -1
- package/dist/runner/scaffold-workspace.js +1 -1
- package/dist/runner/serve-fixture.js +1 -1
- package/dist/runner/web-runner-adapter.js +1 -1
- package/guides/agent-integration.md +15 -1
- package/guides/dsl-reference.md +94 -14
- package/package.json +8 -8
- package/types/unotest-dsl.d.ts +29 -15
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,57 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.49.2] - 2026-10-12
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 29fc1f3: A test that fails on a page whose main thread is busy no longer spends a long wait collecting its failure bundle. The runner first asks the page a question that costs it nothing, with a short budget; a page that does not answer is not read at all. Each part of the bundle that was not read now holds the reason where it would be (`screenshot-error.txt`, `page-html-error.txt`, `outline-error.txt`) instead of being missing without a word. Assertions keep their own `timeout` on such a page: the page's reads count against it, so `assertText(loc, x, {timeout: 400})` fails after about 400 ms and says the page gave no answer, instead of waiting out the action timeout. `assertNeverAppears` no longer passes on a page that stops answering: absence is proven only by reads that answered for the whole window, so it fails and says the page gave no answer.
|
|
8
|
+
- 5c29258: A failure bundle no longer holds an empty `console.json` when the browser console was not recorded. The console is recorded only with `UNOTEST_CONSOLE=1`; without it, the file is left out, `get_failure_console` answers `entries: null` with a message naming the variable, and the `prepare-fix` prompt says the console was not recorded instead of "no console entries captured".
|
|
9
|
+
- 50a9980: `env(name, fallback)` returns `fallback` when the variable is not set, a default in one line: `api = env('API_URL', 'http://localhost:3000')`. Before, it took an `if` / `else`: the DSL has no `??`, and `env('X') || 'default'` gives `true`, not the value. Without a fallback `env(name)` still returns `null` for an unset name. A secret is refused as before, with a fallback or without.
|
|
10
|
+
- 4df2165: `evaluate(js)` on a page whose main thread is busy, a script loop or a long task, now fails the step after the action timeout with "the page gave no answer" instead of holding the test forever. `evaluateOnLocator` already did. A script that has started still runs as long as it needs.
|
|
11
|
+
|
|
12
|
+
Inside an entered frame, the function form of `evaluate`, `evaluate('function(n) { … }', 21)`, now receives its argument. Before, it received the frame's root element.
|
|
13
|
+
|
|
14
|
+
- 5df0f20: A lambda passed to `evaluate` or `evaluateOnLocator` is now answered with what to write: the JavaScript goes in as a string, so quote the lambda — `evaluate('() => new Date().toISOString()')`. `lint` and a run say the same. Before, both said to call a helper function by name, which pointed the wrong way. For targets built on `@unotest/dsl`: the contract registry and the dispatcher take an optional `suggestForLambdaArgument(name)` hook for this answer.
|
|
15
|
+
- fa28983: A failed test in the CLI now prints where its failure bundle is, as an absolute path on stdout (`failure bundle: /…/.unotest/failures/<runId>/<test>`), so it opens from any working directory. The run journal keeps `bundlePath` and `screenshotPath` relative to the project root (the directory holding `.unotest/` and `unotest/`), and the agent integration guide now says so.
|
|
16
|
+
- eed900d: `getByRole(role, options)` now reads Playwright's state options: `checked`, `disabled`, `expanded`, `pressed`, `selected`, `level` and `includeHidden`, next to `name` and `exact`. Before, every key but `name` and `exact` was dropped without a word, so `count(getByRole('button', {name: 'Save', disabled: false}))` also counted a disabled Save button and the check went green. Any other key is now refused, at lint time (new rule `lint:role-unknown-option`, an error by default) and at run time, with the list of keys it reads.
|
|
17
|
+
|
|
18
|
+
The MCP locator input takes the same options on a `getByRole` step and refuses any other key instead of stripping it. A recorded step keeps them, and the generated test writes them out.
|
|
19
|
+
|
|
20
|
+
- 26d31d7: `lint:env-host-from-base` now finds the host variable of a `goto` inside a ternary and in a longer sum: `goto(ready ? APP_URL : '/x')` and `goto(APP_URL + '/a' + '/b')` were not checked before. A variable used only as the ternary's condition is not taken for the host.
|
|
21
|
+
- 29fc1f3: `unotest-web init --help` prints its usage once. It used to print it twice, while every other command printed its help once.
|
|
22
|
+
- 9dcc571: A test run no longer creates `unotest/jsconfig.json`. `e2e`, `lint` and MCP `run_test` used to write it into your tree when it was missing; now only `init` and `types` write it, and `init` adds `unotest/jsconfig.json` to `.gitignore`. A run still refreshes the gitignored `.unotest/types/env.d.ts` with your variable names.
|
|
23
|
+
|
|
24
|
+
Migration: a checkout without the file (a new clone, a teammate's machine) gets editor typings back with `npx @unotest/web types`. A `jsconfig.json` you already commit stays as it is; remove the new `.gitignore` line if you want to keep committing it.
|
|
25
|
+
|
|
26
|
+
- 22a848b: `locator(selector, options)` now reads its options: `hasText`, `hasNotText`, `has` and `hasNot` narrow the matches exactly as `filter()` does, and any other key is refused at lint time and at run time. Before, the second argument was dropped without a word, so `count(locator('option', {hasText: 'Beta'}))` counted every option.
|
|
27
|
+
|
|
28
|
+
New `isChecked(loc)` reads the checked state of a checkbox, radio or switch, native or ARIA role. An element with no checked state fails the step instead of reading `false`.
|
|
29
|
+
|
|
30
|
+
`check` / `uncheck` now click and wait until the element reads checked (unchecked) within the action timeout. A controlled switch the app flips a moment after the click, once the server confirms, no longer fails with "did not change its state". An element already in the target state is not clicked, as before. A switch that never flips fails, naming the state it wanted and the last one it saw. `check` / `uncheck` on an element that is not a checkbox, radio or switch is refused; use `click` for it.
|
|
31
|
+
|
|
32
|
+
A `<label>`, or anything inside one, stands for the checkbox it names, as in Playwright: `check`, `uncheck` and `isChecked` on `getByText('Remember me')` act on and read the labelled checkbox. `assertValue(label, "true")` on such a label now asserts the checkbox's checked state too, instead of comparing against its submitted value `"on"`.
|
|
33
|
+
|
|
34
|
+
- abd74f5: `locator(selector, options)` and `filter(loc, options)` now refuse options that are not an object, naming the function: `locator('option', 5)` and `filter(loc, null)` used to build a filter with no conditions and match everything, and `locator('option', null)` failed with a bare `TypeError`. `filter(loc)` with no options is unchanged. `getByRole(role, {exact})` now takes only `true` or `false`, like its state flags; `{exact: 'yes'}` used to count as `true`.
|
|
35
|
+
- 6a6712c: MCP locator input now refuses a regex `source` that does not compile, with "regex source does not compile" and the engine's reason, instead of failing later when the locator runs. A recorded regex is written into the generated test with `/` and line breaks escaped, so a source holding `/` can no longer close the literal and add code to the test.
|
|
36
|
+
- 98aeab8: `e2e --notes` and `collection --notes` print every `note()` of every test under its line, a passing test's too, as `note <label>: <value> — step "<step>"`. A failed test lists them in place of the failing step's own notes, so none prints twice. Without the flag the output is unchanged.
|
|
37
|
+
- 51f06c9: Notes printed under a test line (`--notes`, and the notes of a failing step) now show line breaks and terminal escape sequences escaped, as `\n` and `\x1b`. A note's value often comes from the page under test, and an escape sequence in it used to reach the terminal as an instruction, and a line break could forge a line of the report.
|
|
38
|
+
- 0447cec: A `__proto__` key in an object literal is now an ordinary key of that object, as in JSON, instead of setting its prototype. `getByRole('button', {__proto__: {name: 'Save'}})` was refused by the lint, but the run read `name` through the prototype and matched on it. The run now refuses `__proto__` as an unknown option too, with the lint's message.
|
|
39
|
+
- 92242d3: A run on a browser profile (`launch.userDataDir` or `UNOTEST_USER_DATA_DIR`) no longer prints a line about it on every run. The run journal records it instead: the `run:started` event in `steps.jsonl` carries `browserProfile`, the profile directory the run played on. Its presence means every scenario shared one browser context, with no isolation between them. Runs with a fresh context per test have no such field.
|
|
40
|
+
- a1e8482: Scenarios can use the ternary `cond ? a : b`, as in JS: the lowest precedence, nested to the right, and allowed wherever a value goes — a variable, a call argument, an object field, a `return`, a lambda body. Only the branch the condition picks runs, so `x == null ? '' : x.name` is a safe guard. `lint` accepts a ternary in a slot when both branches fit it. `?.` and `??` are still refused, and the parse error now points to the ternary or `if` / `else`.
|
|
41
|
+
- 6b9ceee: New `texts(loc)` returns the `textContent` of every element the locator matches, in page order, and `[]` when nothing matches. It is one read with no wait: the list to branch on, where `assertTexts` is the waiting check. Before, the only way to get that list was `count` plus `nth(i)` in a loop, since `textContent` on several matches is a strict-mode error.
|
|
42
|
+
- 65a81be: The viewer no longer paints a test marked `@expect-fail` as failed on purpose when it errored. The tile, the tree dot, the scenario header and the history strips now read the marker the runner recorded for each run, not the marker in the source today: a marked test that failed is purple, the same test erroring on a script error is red and counts as failing. The run index records that reading per run and is rebuilt once on the first start after the update. The scenario header of a one-test file now shows `expected` in the same purple as the tree, instead of `failed`.
|
|
43
|
+
- Updated dependencies [5df0f20]
|
|
44
|
+
- Updated dependencies [98aeab8]
|
|
45
|
+
- Updated dependencies [0447cec]
|
|
46
|
+
- Updated dependencies [92242d3]
|
|
47
|
+
- Updated dependencies [a1e8482]
|
|
48
|
+
- Updated dependencies [65a81be]
|
|
49
|
+
- @unotest/dsl@0.49.2
|
|
50
|
+
- @unotest/core@0.49.2
|
|
51
|
+
- @unotest/protocol@0.49.2
|
|
52
|
+
- @unotest/viewer@0.49.2
|
|
53
|
+
- @unotest/grounder-client@0.49.2
|
|
54
|
+
|
|
3
55
|
## [0.49.1] - 2026-10-11
|
|
4
56
|
|
|
5
57
|
### Patch Changes
|
|
@@ -1813,7 +1865,7 @@ picker on` fetches this project's own access and writes the three grounder
|
|
|
1813
1865
|
|
|
1814
1866
|
That screen named one command:
|
|
1815
1867
|
|
|
1816
|
-
|
|
1868
|
+
npx @unotest/web bundle push --run --env ENVIRONMENT
|
|
1817
1869
|
|
|
1818
1870
|
In a project that has just been created, the command refuses with `no box
|
|
1819
1871
|
address` before it does anything: the project holds neither the box's address
|
|
@@ -1822,8 +1874,8 @@ address` before it does anything: the project holds neither the box's address
|
|
|
1822
1874
|
|
|
1823
1875
|
The screen now names both steps, in the order they have to happen:
|
|
1824
1876
|
|
|
1825
|
-
|
|
1826
|
-
|
|
1877
|
+
npx @unotest/web box access larch
|
|
1878
|
+
npx @unotest/web bundle push --run --env ENVIRONMENT
|
|
1827
1879
|
|
|
1828
1880
|
The box's own name is filled in when its licence carries one. `box access`
|
|
1829
1881
|
with no name refuses, and its refusal offers to create a box — to somebody who
|
package/README.md
CHANGED
|
@@ -29,15 +29,16 @@ overwrites your edits.
|
|
|
29
29
|
|
|
30
30
|
It also wires editor typings (`unotest/jsconfig.json` + generated `.d.ts`
|
|
31
31
|
files), so scenarios get autocomplete, hover docs and signature help in
|
|
32
|
-
VS Code / WebStorm instead of red squiggles. On an existing project
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
VS Code / WebStorm instead of red squiggles. On an existing project or a
|
|
33
|
+
fresh checkout, `npx @unotest/web types` writes them; a test run does not.
|
|
34
|
+
Details: the "Editor setup" section of
|
|
35
35
|
`node_modules/@unotest/web/guides/dsl-reference.md`.
|
|
36
36
|
|
|
37
37
|
Testing a browser extension? `launch` in `unotest.config` starts the browser
|
|
38
38
|
with a profile (`userDataDir`) and extra arguments (`args`, e.g.
|
|
39
39
|
`--load-extension=./ext`; Chromium only). On a profile every scenario shares
|
|
40
|
-
one browser context — no isolation between them, and the run
|
|
40
|
+
one browser context — no isolation between them, and the run journal records
|
|
41
|
+
the profile.
|
|
41
42
|
`profile: 'per-test'` instead gives every test a new browser on a new,
|
|
42
43
|
empty profile: a suite of N files runs on N profiles.
|
|
43
44
|
|
package/bin/unotest-web.js
CHANGED
|
@@ -52,6 +52,8 @@ const asksForHelp = args.some((a) => a === "--help" || a === "-h");
|
|
|
52
52
|
// under src/. In published packages dist/ exists (built by prepublishOnly);
|
|
53
53
|
// in a fresh clone we fall back to running TS sources via tsx so that
|
|
54
54
|
// `unotest-web --help` works without an explicit `pnpm build` first.
|
|
55
|
+
const INIT_DIST = "dist/runner/init.js";
|
|
56
|
+
|
|
55
57
|
/** The cli dispatcher's route. It stops when this wrapper is gone, through
|
|
56
58
|
* an IPC channel (see the spawn below); the other entries are not told. */
|
|
57
59
|
function cliRoute(forwardArgs) {
|
|
@@ -74,11 +76,12 @@ function dispatch(sub) {
|
|
|
74
76
|
case "e2e":
|
|
75
77
|
return cliRoute(args);
|
|
76
78
|
case "init":
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
// Built: imported and called in this process (see below). Without
|
|
80
|
+
// dist/ the cli dispatches it under tsx — init.ts runs nothing on
|
|
81
|
+
// import, so it is never an entry of its own.
|
|
82
|
+
return existsSync(resolve(root, INIT_DIST))
|
|
83
|
+
? { dist: INIT_DIST, src: "src/runner/init.ts", forwardArgs: args.slice(1) }
|
|
84
|
+
: cliRoute(args);
|
|
82
85
|
case "install-chromium":
|
|
83
86
|
return {
|
|
84
87
|
dist: "dist/runner/install-chromium.js",
|
|
@@ -122,10 +125,8 @@ const distPath = resolve(root, dist);
|
|
|
122
125
|
// npx loses the prompt suffix mid-flush on some shells (Claude Code's
|
|
123
126
|
// REPL, nvm shim variants). Direct import keeps stdio attached to the
|
|
124
127
|
// real TTY without a spawn hop. We import the compiled module and call
|
|
125
|
-
// `runInit` directly so we can await its promise
|
|
126
|
-
|
|
127
|
-
// a child, which we explicitly skip here.
|
|
128
|
-
if (sub === "init" && !asksForHelp && existsSync(distPath)) {
|
|
128
|
+
// `runInit` directly so we can await its promise.
|
|
129
|
+
if (dist === INIT_DIST) {
|
|
129
130
|
const initModule = await import(pathToFileURL(distPath).href);
|
|
130
131
|
try {
|
|
131
132
|
const { exitCode } = await initModule.runInit(forwardArgs);
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -116,19 +116,19 @@ declare const FailureBundleConfigSchema: z.ZodObject<{
|
|
|
116
116
|
type FailureBundleConfig = z.infer<typeof FailureBundleConfigSchema>;
|
|
117
117
|
declare const DialogPolicySchema: z.ZodEnum<["accept", "dismiss", "manual"]>;
|
|
118
118
|
type DialogPolicy = z.infer<typeof DialogPolicySchema>;
|
|
119
|
-
declare const LinterRuleIdSchema: z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "lint:flow-returns-value", "lint:legacy-layout", "lint:external-variable-undeclared", "lint:env-host-from-base", "lint:one-test-per-file", "lint:shadows-dsl-function", "lint:skip-outside-test", "lint:set-test-timeout-outside-test", "lint:filter-unknown-option", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>;
|
|
119
|
+
declare const LinterRuleIdSchema: z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "lint:flow-returns-value", "lint:legacy-layout", "lint:external-variable-undeclared", "lint:env-host-from-base", "lint:one-test-per-file", "lint:shadows-dsl-function", "lint:skip-outside-test", "lint:set-test-timeout-outside-test", "lint:filter-unknown-option", "lint:role-unknown-option", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>;
|
|
120
120
|
type LinterRuleId = z.infer<typeof LinterRuleIdSchema>;
|
|
121
121
|
declare const LinterSeveritySchema: z.ZodEnum<["off", "warn", "error"]>;
|
|
122
122
|
type LinterSeverity = z.infer<typeof LinterSeveritySchema>;
|
|
123
123
|
declare const LinterConfigSchema: z.ZodObject<{
|
|
124
124
|
enabled: z.ZodBoolean;
|
|
125
|
-
rules: z.ZodRecord<z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "lint:flow-returns-value", "lint:legacy-layout", "lint:external-variable-undeclared", "lint:env-host-from-base", "lint:one-test-per-file", "lint:shadows-dsl-function", "lint:skip-outside-test", "lint:set-test-timeout-outside-test", "lint:filter-unknown-option", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>, z.ZodEnum<["off", "warn", "error"]>>;
|
|
125
|
+
rules: z.ZodRecord<z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "lint:flow-returns-value", "lint:legacy-layout", "lint:external-variable-undeclared", "lint:env-host-from-base", "lint:one-test-per-file", "lint:shadows-dsl-function", "lint:skip-outside-test", "lint:set-test-timeout-outside-test", "lint:filter-unknown-option", "lint:role-unknown-option", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>, z.ZodEnum<["off", "warn", "error"]>>;
|
|
126
126
|
}, "strict", z.ZodTypeAny, {
|
|
127
127
|
enabled: boolean;
|
|
128
|
-
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "lint:skip-outside-test" | "lint:set-test-timeout-outside-test" | "lint:filter-unknown-option" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
128
|
+
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "lint:skip-outside-test" | "lint:set-test-timeout-outside-test" | "lint:filter-unknown-option" | "lint:role-unknown-option" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
129
129
|
}, {
|
|
130
130
|
enabled: boolean;
|
|
131
|
-
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "lint:skip-outside-test" | "lint:set-test-timeout-outside-test" | "lint:filter-unknown-option" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
131
|
+
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "lint:skip-outside-test" | "lint:set-test-timeout-outside-test" | "lint:filter-unknown-option" | "lint:role-unknown-option" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
132
132
|
}>;
|
|
133
133
|
type LinterConfig = z.infer<typeof LinterConfigSchema>;
|
|
134
134
|
declare const QueueConfigSchema: z.ZodObject<{
|
|
@@ -620,13 +620,13 @@ declare const UnotestConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
620
620
|
}>;
|
|
621
621
|
linter: z.ZodObject<{
|
|
622
622
|
enabled: z.ZodBoolean;
|
|
623
|
-
rules: z.ZodRecord<z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "lint:flow-returns-value", "lint:legacy-layout", "lint:external-variable-undeclared", "lint:env-host-from-base", "lint:one-test-per-file", "lint:shadows-dsl-function", "lint:skip-outside-test", "lint:set-test-timeout-outside-test", "lint:filter-unknown-option", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>, z.ZodEnum<["off", "warn", "error"]>>;
|
|
623
|
+
rules: z.ZodRecord<z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "lint:flow-returns-value", "lint:legacy-layout", "lint:external-variable-undeclared", "lint:env-host-from-base", "lint:one-test-per-file", "lint:shadows-dsl-function", "lint:skip-outside-test", "lint:set-test-timeout-outside-test", "lint:filter-unknown-option", "lint:role-unknown-option", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>, z.ZodEnum<["off", "warn", "error"]>>;
|
|
624
624
|
}, "strict", z.ZodTypeAny, {
|
|
625
625
|
enabled: boolean;
|
|
626
|
-
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "lint:skip-outside-test" | "lint:set-test-timeout-outside-test" | "lint:filter-unknown-option" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
626
|
+
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "lint:skip-outside-test" | "lint:set-test-timeout-outside-test" | "lint:filter-unknown-option" | "lint:role-unknown-option" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
627
627
|
}, {
|
|
628
628
|
enabled: boolean;
|
|
629
|
-
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "lint:skip-outside-test" | "lint:set-test-timeout-outside-test" | "lint:filter-unknown-option" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
629
|
+
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "lint:skip-outside-test" | "lint:set-test-timeout-outside-test" | "lint:filter-unknown-option" | "lint:role-unknown-option" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
630
630
|
}>;
|
|
631
631
|
mcp: z.ZodObject<{
|
|
632
632
|
transport: z.ZodLiteral<"stdio">;
|
|
@@ -755,7 +755,7 @@ declare const UnotestConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
755
755
|
defaultNavigationTimeoutMs: number;
|
|
756
756
|
linter: {
|
|
757
757
|
enabled: boolean;
|
|
758
|
-
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "lint:skip-outside-test" | "lint:set-test-timeout-outside-test" | "lint:filter-unknown-option" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
758
|
+
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "lint:skip-outside-test" | "lint:set-test-timeout-outside-test" | "lint:filter-unknown-option" | "lint:role-unknown-option" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
759
759
|
};
|
|
760
760
|
mcp: {
|
|
761
761
|
transport: "stdio";
|
|
@@ -835,7 +835,7 @@ declare const UnotestConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
835
835
|
defaultNavigationTimeoutMs: number;
|
|
836
836
|
linter: {
|
|
837
837
|
enabled: boolean;
|
|
838
|
-
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "lint:skip-outside-test" | "lint:set-test-timeout-outside-test" | "lint:filter-unknown-option" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
838
|
+
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "lint:skip-outside-test" | "lint:set-test-timeout-outside-test" | "lint:filter-unknown-option" | "lint:role-unknown-option" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
839
839
|
};
|
|
840
840
|
mcp: {
|
|
841
841
|
transport: "stdio";
|
|
@@ -920,7 +920,7 @@ declare const UnotestConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
920
920
|
defaultNavigationTimeoutMs: number;
|
|
921
921
|
linter: {
|
|
922
922
|
enabled: boolean;
|
|
923
|
-
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "lint:skip-outside-test" | "lint:set-test-timeout-outside-test" | "lint:filter-unknown-option" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
923
|
+
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "lint:skip-outside-test" | "lint:set-test-timeout-outside-test" | "lint:filter-unknown-option" | "lint:role-unknown-option" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
924
924
|
};
|
|
925
925
|
mcp: {
|
|
926
926
|
transport: "stdio";
|
|
@@ -1000,7 +1000,7 @@ declare const UnotestConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
|
1000
1000
|
defaultNavigationTimeoutMs: number;
|
|
1001
1001
|
linter: {
|
|
1002
1002
|
enabled: boolean;
|
|
1003
|
-
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "lint:skip-outside-test" | "lint:set-test-timeout-outside-test" | "lint:filter-unknown-option" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
1003
|
+
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "lint:skip-outside-test" | "lint:set-test-timeout-outside-test" | "lint:filter-unknown-option" | "lint:role-unknown-option" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
1004
1004
|
};
|
|
1005
1005
|
mcp: {
|
|
1006
1006
|
transport: "stdio";
|
package/dist/config/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var _0x328995=_0x3b38;(function(_0x17508c,_0x5578d0){var _0x118a28={_0x2ae2dc:0xed,_0x3df906:0xc6,_0x53e72c:0xe7,_0x479566:0xb0,_0x57d714:0xea},_0x6e890d=_0x3b38,_0x4ea66a=_0x17508c();while(!![]){try{var _0x4212b7=parseInt(_0x6e890d(_0x118a28._0x2ae2dc))/0x1+-parseInt(_0x6e890d(0xe0))/0x2+parseInt(_0x6e890d(0xb2))/0x3*(-parseInt(_0x6e890d(0xda))/0x4)+parseInt(_0x6e890d(_0x118a28._0x3df906))/0x5*(parseInt(_0x6e890d(0xa4))/0x6)+parseInt(_0x6e890d(0xde))/0x7*(parseInt(_0x6e890d(_0x118a28._0x53e72c))/0x8)+parseInt(_0x6e890d(_0x118a28._0x479566))/0x9*(-parseInt(_0x6e890d(0xc9))/0xa)+parseInt(_0x6e890d(_0x118a28._0x57d714))/0xb;if(_0x4212b7===_0x5578d0)break;else _0x4ea66a['push'](_0x4ea66a['shift']());}catch(_0x485d4d){_0x4ea66a['push'](_0x4ea66a['shift']());}}}(_0x9579,0x63ff9));var __defProp=Object[_0x328995(0xc5)],__name=(_0x42e225,_0x1c43f6)=>__defProp(_0x42e225,'name',{'value':_0x1c43f6,'configurable':!![]});import{z as _0x6719d3}from'zod';import{z}from'zod';import{levenshteinDistance}from'@unotest/core';var MAX_EDITS=0x2;function closestKey(_0x577072,_0xa332df){var _0x438773=_0x328995;let _0x1fa843;for(const _0x2e755e of _0xa332df){const _0x5e1bba=levenshteinDistance(_0x577072[_0x438773(0xb1)](),_0x2e755e[_0x438773(0xb1)]());if(_0x5e1bba>MAX_EDITS)continue;if(_0x1fa843===void 0x0||_0x5e1bba<_0x1fa843[_0x438773(0xac)])_0x1fa843={'key':_0x2e755e,'distance':_0x5e1bba};}return _0x1fa843?.[_0x438773(0xaa)];}__name(closestKey,_0x328995(0x9f));function unknownKeyMessage(_0x2417be,_0x34fd58){var _0x363226=_0x328995;return _0x2417be[_0x363226(0xdd)](_0x163a37=>{var _0x32cf85=_0x363226;const _0x3ca6af=closestKey(_0x163a37,_0x34fd58);return _0x3ca6af===void 0x0?'unknown\x20key\x20\x22'+_0x163a37+_0x32cf85(0xc8):'unknown\x20key\x20\x22'+_0x163a37+_0x32cf85(0xe4)+_0x3ca6af+'\x22?';})[_0x363226(0xe6)](';\x20');}__name(unknownKeyMessage,_0x328995(0xb3));function strictObject(_0x9e2911){var _0x1a2119={_0x366d7f:0xc2,_0x12f37d:0xdf},_0x204b4e=_0x328995;const _0x1cc4b0=Object[_0x204b4e(_0x1a2119._0x366d7f)](_0x9e2911);return z['object'](_0x9e2911,{'errorMap':__name((_0x31278a,_0xef323)=>_0x31278a[_0x204b4e(0xd7)]===z[_0x204b4e(0xd4)]['unrecognized_keys']?{'message':unknownKeyMessage(_0x31278a[_0x204b4e(0xc2)],_0x1cc4b0)}:{'message':_0xef323['defaultError']},_0x204b4e(0xc3))})[_0x204b4e(_0x1a2119._0x12f37d)]();}function _0x9579(){var _0x4df104=['rgf0zvrPBwvgB3jTyxq','BgLUDdPLDMfSDwf0zs1KAxnJB3vYywDLza','DxjS','iIdIGjqGzxHWzwn0zwqGyw4GsufoqsbUyw1Lihn1y2GGyxmGiKv1CM9Wzs9nywrYAwqI','DhjHBNnMB3jT','BgL0zxjHBa','BgLUDdPSzwDHy3KTBgf5B3v0','BMv0D29YAW','zMLYzwzVEa','Dw5RBM93BIb0Aw1LihPVBMuGiG','BNvSBa','A2v5CW','zxjYB3jnyxa','DMfSAwrHDg9YoNn0zxaTC2HHCgu','zgvMAw5LuhjVCgvYDhK','nwLjCxL2rW','DMfSAwrHDg9YoMz1BMn0Aw9UlxnOyxbL','iIdIGjqGBM90igeGy29UzMLNigTLEtSGy2HLy2SGEw91CIbaDw5VDgvZDc93zwiGDMvYC2LVBIbPzIbPDcbJB21LCYbMCM9TigeGBMv3zxiGCMvSzwfZzq','ndiWnZeXmeXZBNvSEq','D2fYBG','DMfSAwrHDg9YoMfYzY1RAw5K','CMvKywn0zwq','ywrKsxnZDwu','lNvUB3rLC3qVzMfPBhvYzxm','CMvMAw5L','DMfSAwrHDg9YoMXPC3qTyxjN','zNvSBa','Aw52ywXPzcbSB2nHBguGiG','ywnJzxb0','wM9KsxnZDwvdB2rL','z2v0q2fUB25Py2fStg9JywXLCW','C3vWzxjszwzPBMu','y29Kzq','BgLUDdPZy2vUyxjPBY1PBI1YB290','C3rYAwn0t2jQzwn0','odC2nZC2u2rlwMvk','BgLUDdPWyxvZzs1LEhbSAwnPDa','yM9VBgvHBG','BwfW','mZaXnZiXsM96C0zv','C3rYAwn0','mte2nZaWnMz0u0njsq','AgfZ','ywrK','D2vIA2L0','iIdIGjqGzgLKihLVDsbTzwfUici','DMfSAwrHDg9YoMzVCI1ZAgfWzq','AM9PBG','og5qD0D6EG','DMfSAwrHDg9YoNn0CMLUzY1JB25Jyxq','CMvJB3jK','mteYntKWmdz1qLbsEhy','Aw50','Dw5VDgvZDc9LmMu','mtCZnJC0rMrXr2T6','iIbZzxrZigL0CYbVD24GC2L6zsbHBMqGC2nHBguG4OcuigrYB3aGB25Lig9MihrOzw0U','igLZigfSCMvHzhKGyw5VDgHLCIbZzxj2zxiNCYdIGjqGzwfJAcbZzxj2zxiGBMvLzhmGAxrZig93BIbYzwfKAw5LC3mGvvjmlG','BwLU','DMLLD3bVCNq','BgLUDdPMBg93lxjLDhvYBNmTDMfSDwu','DMfSAwrHDg9YoNnLBwfUDgLJlwXVC3m','zgv2AwnL','igTLzxbZihrOzsbYzwfSigjYB3DZzxiGD2LUzg93lcbHBMqGzgv2AwnLici','BgLUDdPLEhrLCM5HBc12yxjPywjSzs11BMrLy2XHCMvK','Bwf4','B3b0Aw9UywW','DMfSAwrHDg9YoM1LDgeTC2HHCgu','B2zM','C3rYAw5N','DMLLD3bVCNq6ig51BgW','Dw5PB24','zxjYB3i','BgLUDdPZAgfKB3DZlwrZBc1MDw5JDgLVBG','zgvMyxvSDa','BgLUDdPSAw50lw9Rlw1PC3nPBMCTCMvHC29U','BgLUDdPKAxnHBwjPzY1IEs1PBMrLEa','C3rKAw8','zw4Tvvm','BgLUDdPLBNyTAg9ZDc1MCM9TlwjHC2u','D2vIu2vYDMvYwW','BgvUz3rO','Cg9ZAxrPDMu','y2XVC2vZDeTLEq','AxnbCNjHEq','BgLUDdPNB3rVlwnVBMnHDa','BgLUDdPLy2HVlwfZC2vYDa','DMfSAwrHDg9YoNn0zxaTy292zxjHz2u','mZy3mtiZmNDoy0zysq','DMfSAwrHDg9YoMLMlxnOyxbL','zw51Bq','DhjHBNnPzw50','yxjYyxK','BwfUDwfS','A2v5','y3vZDg9T','zgLZDgfUy2u','BNvTyMvY','xs51CMWG','y3jHC2G','ouH2u2novq','Dg9mB3DLCKnHC2u','nNbvt3nnrW','Dw5RBM93BKTLEu1LC3nHz2u','y2HYB21LlwjLDge','BNvSBgfIBgu','BxnLzgDL'];_0x9579=function(){return _0x4df104;};return _0x9579();}__name(strictObject,_0x328995(0xd9));import{BUNDLED_BROWSER_CHANNEL}from'@unotest/protocol';import{z as _0x3f2e51}from'zod';import{UnotestError}from'@unotest/core';var LaunchConfigSchema=_0x3f2e51['object']({'userDataDir':_0x3f2e51[_0x328995(0xfb)]()[_0x328995(0xf0)](0x1)[_0x328995(0xf8)](),'profile':_0x3f2e51['literal']('per-test')[_0x328995(0xf8)](),'args':_0x3f2e51[_0x328995(0xa8)](_0x3f2e51[_0x328995(0xfb)]()['min'](0x1))[_0x328995(0xf8)]()})[_0x328995(0xdf)](),BrowserSchema=_0x6719d3[_0x328995(0xa6)](['chromium',_0x328995(0xbf),_0x328995(0xe3)]),SYSTEM_BROWSER_CHANNELS=['chrome',_0x328995(0xb6),_0x328995(0xb4),'chromium'],BROWSER_CHANNEL_WORDS=[...SYSTEM_BROWSER_CHANNELS,BUNDLED_BROWSER_CHANNEL],BrowserChannelSchema=_0x6719d3[_0x328995(0xfd)]([_0x6719d3[_0x328995(0xa6)](SYSTEM_BROWSER_CHANNELS),_0x6719d3[_0x328995(0xbc)](BUNDLED_BROWSER_CHANNEL)[_0x328995(0xbb)](()=>null),_0x6719d3[_0x328995(0xc1)]()])[_0x328995(0xf8)](),ViewportSchema=strictObject({'width':_0x6719d3[_0x328995(0xad)]()[_0x328995(0xeb)]()[_0x328995(0x9e)]()[_0x328995(0xf8)](),'height':_0x6719d3[_0x328995(0xad)]()['int']()[_0x328995(0x9e)]()[_0x328995(0xf8)](),'deviceScaleFactor':_0x6719d3[_0x328995(0xad)]()[_0x328995(0x9e)]()[_0x328995(0xf8)]()}),ConfigViewportSchema=ViewportSchema[_0x328995(0xb5)]();function viewportDeviceConflict(_0x1e2b3e,_0x12ebaf,_0x2a9565=_0x328995(0xfc)){var _0x14c125={_0xb9f81f:0xee},_0x16ebcd=_0x328995;if(_0x1e2b3e!==null||_0x12ebaf===void 0x0)return void 0x0;return _0x2a9565+_0x16ebcd(0xf5)+_0x12ebaf+_0x16ebcd(_0x14c125._0xb9f81f);}function _0x3b38(_0x2212ed,_0x433953){_0x2212ed=_0x2212ed-0x9a;var _0x957986=_0x9579();var _0x3b38fe=_0x957986[_0x2212ed];if(_0x3b38['NXbhIa']===undefined){var _0x3e9978=function(_0x4060c2){var _0x3f2f9d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x6719d3='',_0x3f2e51='';for(var _0x42e225=0x0,_0x1c43f6,_0x577072,_0xa332df=0x0;_0x577072=_0x4060c2['charAt'](_0xa332df++);~_0x577072&&(_0x1c43f6=_0x42e225%0x4?_0x1c43f6*0x40+_0x577072:_0x577072,_0x42e225++%0x4)?_0x6719d3+=String['fromCharCode'](0xff&_0x1c43f6>>(-0x2*_0x42e225&0x6)):0x0){_0x577072=_0x3f2f9d['indexOf'](_0x577072);}for(var _0x1fa843=0x0,_0x2e755e=_0x6719d3['length'];_0x1fa843<_0x2e755e;_0x1fa843++){_0x3f2e51+='%'+('00'+_0x6719d3['charCodeAt'](_0x1fa843)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3f2e51);};_0x3b38['yuWtEG']=_0x3e9978,_0x3b38['OYlcmI']={},_0x3b38['NXbhIa']=!![];}var _0x50298d=_0x957986[0x0],_0x2a1017=_0x2212ed+_0x50298d,_0x1838c0=_0x3b38['OYlcmI'][_0x2a1017];return!_0x1838c0?(_0x3b38fe=_0x3b38['yuWtEG'](_0x3b38fe),_0x3b38['OYlcmI'][_0x2a1017]=_0x3b38fe):_0x3b38fe=_0x1838c0,_0x3b38fe;}__name(viewportDeviceConflict,'viewportDeviceConflict');var RetryReasonSchema=_0x6719d3['enum']([_0x328995(0xa7),_0x328995(0xbe),_0x328995(0xaf)]),RetryConfigSchema=strictObject({'count':_0x6719d3['number']()['int']()[_0x328995(0xf0)](0x0)[_0x328995(0xf7)](0xa),'on':_0x6719d3[_0x328995(0xa8)](RetryReasonSchema)}),FailureBundleConfigSchema=strictObject({'tier1':_0x6719d3[_0x328995(0xbc)](!![])[_0x328995(0x100)](!![]),'tier2':_0x6719d3[_0x328995(0xdc)](),'tier3':strictObject({'network':_0x6719d3['boolean'](),'video':_0x6719d3[_0x328995(0xdc)]()}),'retention':strictObject({'runs':_0x6719d3[_0x328995(0xad)]()[_0x328995(0xeb)]()[_0x328995(0x9e)](),'days':_0x6719d3[_0x328995(0xad)]()[_0x328995(0xeb)]()[_0x328995(0x9e)]()}),'storageDir':_0x6719d3[_0x328995(0xfb)]()[_0x328995(0xf0)](0x1),'pageHtml':_0x6719d3['enum'](['redacted',_0x328995(0xd1)])}),DialogPolicySchema=_0x6719d3[_0x328995(0xa6)]([_0x328995(0xd3),'dismiss',_0x328995(0xa9)]),LinterRuleIdSchema=_0x6719d3[_0x328995(0xa6)](['lint:deep-css','lint:xpath','lint:obfuscated-class',_0x328995(0xdb),_0x328995(0x102),_0x328995(0xb8),_0x328995(0xd8),'lint:mustache-in-dsl',_0x328995(0xa1),'lint:regex-invalid',_0x328995(0xa2),'lint:api-call-file-body',_0x328995(0x101),_0x328995(0xf2),_0x328995(0xbd),_0x328995(0xf6),_0x328995(0x9b),'lint:one-test-per-file',_0x328995(0xff),'lint:skip-outside-test','lint:set-test-timeout-outside-test','lint:filter-unknown-option','validator:unknown-function','validator:arity',_0x328995(0xcb),_0x328995(0xa3),_0x328995(0xc4),_0x328995(0xf9),_0x328995(0xc7),_0x328995(0xe5),_0x328995(0xa5),'validator:var-shape','validator:unsupported-statement','validator:unsupported-expression',_0x328995(0xe8),_0x328995(0xf3),_0x328995(0xd0),'validator:wrapped-format']),LinterSeveritySchema=_0x6719d3[_0x328995(0xa6)](['off',_0x328995(0xca),_0x328995(0xfe)]),LinterConfigSchema=strictObject({'enabled':_0x6719d3[_0x328995(0xdc)](),'rules':_0x6719d3[_0x328995(0xe9)](LinterRuleIdSchema,LinterSeveritySchema)}),QueueConfigSchema=strictObject({'enabled':_0x6719d3['boolean']()[_0x328995(0x100)](!![]),'concurrency':_0x6719d3[_0x328995(0xad)]()[_0x328995(0xeb)]()[_0x328995(0x9e)]()[_0x328995(0x100)](0x1)}),ScheduleSchema=strictObject({'collection':_0x6719d3[_0x328995(0xfb)]()[_0x328995(0xf0)](0x1),'cron':_0x6719d3[_0x328995(0xfb)]()[_0x328995(0xf0)](0x1),'env':_0x6719d3[_0x328995(0xfb)]()[_0x328995(0xf0)](0x1)[_0x328995(0xf8)](),'prepare':_0x6719d3[_0x328995(0xfb)]()[_0x328995(0xf0)](0x1)['optional']()}),McpConfigSchema=strictObject({'transport':_0x6719d3['literal'](_0x328995(0x103))}),SandboxConfigSchema=strictObject({'shellCwd':_0x6719d3[_0x328995(0xfb)]()[_0x328995(0xf8)](),'shellTimeoutMs':_0x6719d3[_0x328995(0xad)]()[_0x328995(0xeb)]()[_0x328995(0x9e)]()[_0x328995(0xf8)](),'exportSecrets':_0x6719d3[_0x328995(0xa8)](_0x6719d3[_0x328995(0xfb)]())[_0x328995(0xf8)](),'database':_0x6719d3[_0x328995(0xfb)]()['optional'](),'apiBaseUrl':_0x6719d3[_0x328995(0xfb)]()[_0x328995(0xb9)]()['optional'](),'uploadDir':_0x6719d3[_0x328995(0xfb)]()[_0x328995(0xf8)](),'readRoots':_0x6719d3['array'](_0x6719d3[_0x328995(0xfb)]()[_0x328995(0xf0)](0x1))[_0x328995(0xf8)]()}),WebServerConfigSchema=strictObject({'command':_0x6719d3['string']()['min'](0x1),'url':_0x6719d3[_0x328995(0xfb)]()['url'](),'reuseExistingServer':_0x6719d3[_0x328995(0xdc)]()[_0x328995(0x100)](!![]),'timeoutMs':_0x6719d3[_0x328995(0xad)]()[_0x328995(0xeb)]()[_0x328995(0x9e)]()['default'](0xea60)}),WebServersConfigSchema=_0x6719d3[_0x328995(0xfd)]([WebServerConfigSchema,_0x6719d3[_0x328995(0xa8)](WebServerConfigSchema)[_0x328995(0xf0)](0x1)])['transform'](_0x4f057c=>Array[_0x328995(0xa0)](_0x4f057c)?_0x4f057c:[_0x4f057c])[_0x328995(0xd6)]((_0x502e42,_0x226710)=>{var _0x19861f={_0x2eee3c:0xe1,_0x20a514:0xab,_0x215b76:0xb9};const _0x179a21=new Set();_0x502e42['forEach']((_0x2da4f9,_0x2d864c)=>{var _0x5cf211=_0x3b38;_0x179a21[_0x5cf211(_0x19861f._0x2eee3c)](_0x2da4f9[_0x5cf211(0xb9)])&&_0x226710[_0x5cf211(0xcd)]({'code':_0x6719d3['ZodIssueCode'][_0x5cf211(_0x19861f._0x20a514)],'path':[_0x2d864c,_0x5cf211(_0x19861f._0x215b76)],'message':_0x5cf211(0x9c)+_0x2d864c+_0x5cf211(0xae)+_0x2da4f9[_0x5cf211(0xb9)]+_0x5cf211(0xef)}),_0x179a21[_0x5cf211(0xe2)](_0x2da4f9[_0x5cf211(0xb9)]);});}),EnvConfigSchema=strictObject({'shared':_0x6719d3[_0x328995(0xa8)](_0x6719d3[_0x328995(0xfb)]())[_0x328995(0x100)]([])}),UnotestConfigSchema=strictObject({'baseUrl':_0x6719d3['string']()[_0x328995(0xb9)]()['optional'](),'webServer':WebServersConfigSchema[_0x328995(0xf8)](),'generate':_0x6719d3[_0x328995(0xfb)]()[_0x328995(0xf0)](0x1)[_0x328995(0xf8)](),'browsers':_0x6719d3[_0x328995(0xa8)](BrowserSchema)[_0x328995(0xf0)](0x1),'channel':BrowserChannelSchema,'viewport':ConfigViewportSchema[_0x328995(0xf8)](),'device':_0x6719d3[_0x328995(0xfb)]()[_0x328995(0xf0)](0x1)[_0x328995(0xf8)](),'timezone':_0x6719d3[_0x328995(0xfb)]()[_0x328995(0xcf)](isTimeZone,_0x4add3d=>({'message':_0x328995(0xc0)+_0x4add3d+_0x328995(0xba)}))[_0x328995(0xf8)](),'locale':_0x6719d3[_0x328995(0xfb)]()[_0x328995(0xcf)](isLocale,_0x1aa8cf=>({'message':_0x328995(0xd2)+_0x1aa8cf+'\x22\x20—\x20expected\x20a\x20BCP\x2047\x20tag\x20such\x20as\x20\x22es-ES\x22'}))[_0x328995(0xf8)](),'maxContexts':_0x6719d3['number']()['int']()[_0x328995(0x9e)]()['optional'](),'launch':LaunchConfigSchema[_0x328995(0xf8)](),'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':_0x6719d3[_0x328995(0xfb)]()[_0x328995(0xf8)](),'testDir':_0x6719d3[_0x328995(0xfb)]()[_0x328995(0xf0)](0x1),'helpersDir':_0x6719d3[_0x328995(0xfb)]()[_0x328995(0xf0)](0x1),'defaultTimeoutMs':_0x6719d3[_0x328995(0xad)]()[_0x328995(0xeb)]()[_0x328995(0x9e)](),'defaultNavigationTimeoutMs':_0x6719d3[_0x328995(0xad)]()[_0x328995(0xeb)]()['positive'](),'teardownTimeoutMs':_0x6719d3[_0x328995(0xad)]()[_0x328995(0xeb)]()[_0x328995(0x9e)]()['optional'](),'testTimeoutMs':_0x6719d3[_0x328995(0xad)]()[_0x328995(0xeb)]()[_0x328995(0x9e)]()[_0x328995(0xf8)](),'env':EnvConfigSchema,'linter':LinterConfigSchema,'mcp':McpConfigSchema,'queue':QueueConfigSchema,'schedules':_0x6719d3[_0x328995(0xa8)](ScheduleSchema)[_0x328995(0x100)]([]),'sandbox':SandboxConfigSchema})['superRefine']((_0x16d36d,_0x2d904b)=>{var _0xabbca9={_0x44187c:0xf1,_0x51cf7c:0xf4,_0x133ac3:0xcd,_0x2df6f4:0xd4},_0x17d272=_0x328995;const _0x1c5fc8=viewportDeviceConflict(_0x16d36d[_0x17d272(_0xabbca9._0x44187c)],_0x16d36d[_0x17d272(_0xabbca9._0x51cf7c)]);_0x1c5fc8!==void 0x0&&_0x2d904b[_0x17d272(_0xabbca9._0x133ac3)]({'code':_0x6719d3[_0x17d272(_0xabbca9._0x2df6f4)][_0x17d272(0xab)],'path':['viewport'],'message':_0x1c5fc8});});function isTimeZone(_0x5d213f){var _0x455f37={_0xf6902a:0x9a,_0x375bb6:0x9d},_0x26f7de=_0x328995;try{return new Intl[(_0x26f7de(0xb7))](_0x26f7de(_0x455f37._0xf6902a),{'timeZone':_0x5d213f}),_0x5d213f[_0x26f7de(_0x455f37._0x375bb6)]>0x0;}catch{return![];}}__name(isTimeZone,'isTimeZone');function isLocale(_0x3f7338){var _0x16b0d6=_0x328995;try{return Intl[_0x16b0d6(0xd5)](_0x3f7338)['length']===0x1;}catch{return![];}}__name(isLocale,'isLocale');var DEFAULT_CONFIG={'browsers':['chromium'],'retry':{'count':0x0,'on':[_0x328995(0xa7)]},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':_0x328995(0xce),'pageHtml':_0x328995(0xcc)},'dialogPolicy':_0x328995(0xd3),'testDir':_0x328995(0xec),'helpersDir':'unotest/e2e/_helpers','defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x7530,'linter':{'enabled':!![],'rules':{'lint:deep-css':_0x328995(0xca),'lint:xpath':_0x328995(0xca),'lint:obfuscated-class':_0x328995(0xca),'lint:pause-explicit':_0x328995(0xca),'lint:disambig-by-index':_0x328995(0xfa),'lint:evaluate-discouraged':_0x328995(0xca),'lint:scenario-in-root':'error','lint:mustache-in-dsl':'error','lint:goto-concat':_0x328995(0xca),'lint:regex-invalid':_0x328995(0xfe),'lint:echo-assert':'warn','lint:lint-ok-missing-reason':_0x328995(0xca),'lint:flow-returns-value':_0x328995(0xca),'lint:legacy-layout':_0x328995(0xca),'lint:external-variable-undeclared':'error','lint:env-host-from-base':_0x328995(0xfe),'lint:one-test-per-file':_0x328995(0xca),'lint:shadows-dsl-function':'warn','lint:skip-outside-test':_0x328995(0xfe),'lint:set-test-timeout-outside-test':'error','lint:filter-unknown-option':_0x328995(0xfe),'validator:unknown-function':_0x328995(0xfe)}},'env':{'shared':[]},'mcp':{'transport':_0x328995(0x103)},'queue':{'enabled':!![],'concurrency':0x1},'schedules':[],'sandbox':{}};export{BROWSER_CHANNEL_WORDS,BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,EnvConfigSchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,QueueConfigSchema,RetryConfigSchema,RetryReasonSchema,SYSTEM_BROWSER_CHANNELS,SandboxConfigSchema,ScheduleSchema,UnotestConfigSchema,ViewportSchema,WebServerConfigSchema,WebServersConfigSchema,viewportDeviceConflict};
|
|
1
|
+
var _0x4b2829=_0x181a;(function(_0x282d14,_0x3fe266){var _0x3e1421={_0x80dd09:0x133,_0x4cddfe:0x130,_0x752b99:0x121,_0x468bea:0x134,_0x4a3353:0x150},_0x2eaac5=_0x181a,_0x41e487=_0x282d14();while(!![]){try{var _0x1c02ac=parseInt(_0x2eaac5(_0x3e1421._0x80dd09))/0x1*(-parseInt(_0x2eaac5(0x13b))/0x2)+parseInt(_0x2eaac5(0x11e))/0x3+parseInt(_0x2eaac5(_0x3e1421._0x4cddfe))/0x4*(-parseInt(_0x2eaac5(0x14c))/0x5)+-parseInt(_0x2eaac5(0x117))/0x6*(parseInt(_0x2eaac5(_0x3e1421._0x752b99))/0x7)+-parseInt(_0x2eaac5(0x143))/0x8+parseInt(_0x2eaac5(_0x3e1421._0x468bea))/0x9+parseInt(_0x2eaac5(_0x3e1421._0x4a3353))/0xa;if(_0x1c02ac===_0x3fe266)break;else _0x41e487['push'](_0x41e487['shift']());}catch(_0x59f838){_0x41e487['push'](_0x41e487['shift']());}}}(_0x1737,0x7cdd8));var __defProp=Object[_0x4b2829(0x16b)],__name=(_0x3b52db,_0x46ae7d)=>__defProp(_0x3b52db,_0x4b2829(0x12a),{'value':_0x46ae7d,'configurable':!![]});import{z as _0x3a0701}from'zod';import{z}from'zod';import{levenshteinDistance}from'@unotest/core';var MAX_EDITS=0x2;function closestKey(_0x353e51,_0x1d3c5a){var _0x4b920e={_0x1f8338:0x124,_0x4ddd9c:0x14b},_0x1f2edf=_0x4b2829;let _0x46dc63;for(const _0x2a4370 of _0x1d3c5a){const _0x5c9ba1=levenshteinDistance(_0x353e51['toLowerCase'](),_0x2a4370['toLowerCase']());if(_0x5c9ba1>MAX_EDITS)continue;if(_0x46dc63===void 0x0||_0x5c9ba1<_0x46dc63[_0x1f2edf(_0x4b920e._0x1f8338)])_0x46dc63={'key':_0x2a4370,'distance':_0x5c9ba1};}return _0x46dc63?.[_0x1f2edf(_0x4b920e._0x4ddd9c)];}__name(closestKey,_0x4b2829(0x12b));function unknownKeyMessage(_0xa27254,_0x594b9a){var _0x77a463={_0x175e3f:0x120},_0x51c03f={_0x4de527:0x10c},_0x3f9221=_0x4b2829;return _0xa27254[_0x3f9221(0x11d)](_0x3d10b8=>{var _0x71c61=_0x3f9221;const _0x20e06e=closestKey(_0x3d10b8,_0x594b9a);return _0x20e06e===void 0x0?'unknown\x20key\x20\x22'+_0x3d10b8+_0x71c61(0x15f):_0x71c61(_0x51c03f._0x4de527)+_0x3d10b8+_0x71c61(0x168)+_0x20e06e+'\x22?';})[_0x3f9221(_0x77a463._0x175e3f)](';\x20');}__name(unknownKeyMessage,_0x4b2829(0x160));function strictObject(_0x57437e){var _0x59ca41={_0x14114c:0x11c},_0x24637b=_0x4b2829;const _0x1ddfac=Object[_0x24637b(0x127)](_0x57437e);return z['object'](_0x57437e,{'errorMap':__name((_0x482870,_0x3171b3)=>_0x482870['code']===z[_0x24637b(0x13f)][_0x24637b(0x166)]?{'message':unknownKeyMessage(_0x482870['keys'],_0x1ddfac)}:{'message':_0x3171b3[_0x24637b(0x162)]},'errorMap')})[_0x24637b(_0x59ca41._0x14114c)]();}__name(strictObject,_0x4b2829(0xfe));import{BUNDLED_BROWSER_CHANNEL}from'@unotest/protocol';function _0x181a(_0x601664,_0x1d53ae){_0x601664=_0x601664-0xfe;var _0x17374e=_0x1737();var _0x181acd=_0x17374e[_0x601664];if(_0x181a['hSriEP']===undefined){var _0x21db07=function(_0x4788fc){var _0x32150a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x3a0701='',_0x30fe35='';for(var _0x3b52db=0x0,_0x46ae7d,_0x353e51,_0x1d3c5a=0x0;_0x353e51=_0x4788fc['charAt'](_0x1d3c5a++);~_0x353e51&&(_0x46ae7d=_0x3b52db%0x4?_0x46ae7d*0x40+_0x353e51:_0x353e51,_0x3b52db++%0x4)?_0x3a0701+=String['fromCharCode'](0xff&_0x46ae7d>>(-0x2*_0x3b52db&0x6)):0x0){_0x353e51=_0x32150a['indexOf'](_0x353e51);}for(var _0x46dc63=0x0,_0x2a4370=_0x3a0701['length'];_0x46dc63<_0x2a4370;_0x46dc63++){_0x30fe35+='%'+('00'+_0x3a0701['charCodeAt'](_0x46dc63)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x30fe35);};_0x181a['TkzsMM']=_0x21db07,_0x181a['dXnifj']={},_0x181a['hSriEP']=!![];}var _0x2d2957=_0x17374e[0x0],_0x2cd111=_0x601664+_0x2d2957,_0x1ad96d=_0x181a['dXnifj'][_0x2cd111];return!_0x1ad96d?(_0x181acd=_0x181a['TkzsMM'](_0x181acd),_0x181a['dXnifj'][_0x2cd111]=_0x181acd):_0x181acd=_0x1ad96d,_0x181acd;}import{z as _0x30fe35}from'zod';function _0x1737(){var _0x31a7f0=['igLZigfSCMvHzhKGyw5VDgHLCIbZzxj2zxiNCYdIGjqGzwfJAcbZzxj2zxiGBMvLzhmGAxrZig93BIbYzwfKAw5LC3mGvvjmlG','BgLUDdPSzwDHy3KTBgf5B3v0','C3rYAw5N','zM9YrwfJAa','Dw5RBM93BIbRzxKGiG','BgLUDdPZy2vUyxjPBY1PBI1YB290','CMvKywn0zwq','DxjS','C3rKAw8','Cg9ZAxrPDMu','BgLUDdPVyMz1C2nHDgvKlwnSyxnZ','yxjYyxK','BgLUDdPNB3rVlwnVBMnHDa','BNvSBa','BgLUDdPZzxqTDgvZDc10Aw1LB3v0lw91DhnPzguTDgvZDa','ntiYndm4ELjly1nn','DMfSAwrHDg9YoM1LDgeTC2HHCgu','BNvTyMvY','BgLUDdPYzwDLEc1PBNzHBgLK','y2HYB21L','C3rYAwn0','BwfW','mtqZnZKWowPjDufcra','zgLZBwLZCW','AM9PBG','nZDxvvv4sxq','yM9VBgvHBG','DMfSAwrHDg9YoMLMlxnOyxbL','zgLZDgfUy2u','DMfSAwrHDg9YoNnLBwfUDgLJlwXVC3m','zMLYzwzVEa','A2v5CW','lNvUB3rLC3qVzMfPBhvYzxm','D2fYBG','BMfTzq','y2XVC2vZDeTLEq','BgLUDdPLBNyTAg9ZDc1MCM9TlwjHC2u','D2vIu2vYDMvYwW','zw4Tvvm','DhjHBNnPzw50','mZK3ntCYD2PQCNPr','Dw5VDgvZDc9LmMu','DMfSAwrHDg9YoNn0zxaTC2HHCgu','ody3ndnJwhjWwLm','nZi5mdm2qvHuywLL','CgvYlxrLC3q','ywrK','y3jHC2G','DMfSAwrHDg9YoNn0CMLUzY1JB25Jyxq','zxjYB3i','y2HYB21LlwjLDge','mtrTq2XbrNC','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlwv4ChjLC3nPB24','BgLUDdP4Cgf0Aa','zw51Bq','wM9KsxnZDwvdB2rL','B3b0Aw9UywW','Bwf4','DhjHBNnMB3jT','mtK3mJmYmg5Tq2Drva','zgvMyxvSDa','BwfUDwfS','AxnbCNjHEq','DMLLD3bVCNq','Dw5RBM93BIb0Aw1LihPVBMuGiG','CMvJB3jK','DMfSAwrHDg9YoNDYyxbWzwqTzM9YBwf0','A2v5','nuz2yNDotG','BgLUDdPTDxn0ywnOzs1PBI1KC2W','y2HYB21PDw0','BgLUDdPWyxvZzs1LEhbSAwnPDa','mtG2mJa3odblyxzcwfe','BgLUDdPSAw50lw9Rlw1PC3nPBMCTCMvHC29U','BgLUDdPKAxnHBwjPzY1IEs1PBMrLEa','y3vZDg9T','BgvUz3rO','zNvSBa','BgLUDdPYB2XLlxvUA25VD24TB3b0Aw9U','DMfSAwrHDg9YoMfYzY1RAw5K','C3vWzxjszwzPBMu','DMfSAwrHDg9YoMzVCI1ZAgfWzq','AxnuAw1LwM9Uzq','z2v0q2fUB25Py2fStg9JywXLCW','ywnJzxb0','rgf0zvrPBwvgB3jTyxq','BMv0D29YAW','iIdIGjqGBM90igeGy29UzMLNigTLEtSGy2HLy2SGEw91CIbaDw5VDgvZDc93zwiGDMvYC2LVBIbPzIbPDcbJB21LCYbMCM9TigeGBMv3zxiGCMvSzwfZzq','Dw5RBM93BKTLEu1LC3nHz2u','AgfZ','zgvMyxvSDevYCM9Y','BgLUDdPKzwvWlwnZCW','BgL0zxjHBa','BxnLzgDL','Dw5YzwnVz25PEMvKx2TLExm','igTLzxbZihrOzsbYzwfSigjYB3DZzxiGD2LUzg93lcbHBMqGzgv2AwnLici','iIdIGjqGzgLKihLVDsbTzwfUici','BgLUDdPMBg93lxjLDhvYBNmTDMfSDwu','DMfSAwrHDg9YoMXPC3qTyxjN','zgvMAw5LuhjVCgvYDhK','BNvSBgfIBgu','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlxn0yxrLBwvUDa','Aw50','BgLUDdPZA2LWlw91DhnPzguTDgvZDa','B2zM','DMLLD3bVCNq6ig51BgW','BwLU','Dw5PB24','C3rYAwn0t2jQzwn0','DMfSAwrHDg9YoMfYAxr5','zgv2AwnL','DMfSAwrHDg9YoMz1BMn0Aw9UlxnOyxbL','D2vIA2L0','iIbZzxrZigL0CYbVD24GC2L6zsbHBMqGC2nHBguG4OcuigrYB3aGB25Lig9MihrOzw0U','AxnmB2nHBgu','CMvMAw5L','DMfSAwrHDg9YoNn0zxaTy292zxjHz2u','BgLUDdPHCgKTy2fSBc1MAwXLlwjVzhK'];_0x1737=function(){return _0x31a7f0;};return _0x1737();}import{UnotestError}from'@unotest/core';var LaunchConfigSchema=_0x30fe35['object']({'userDataDir':_0x30fe35[_0x4b2829(0x10a)]()[_0x4b2829(0x172)](0x1)['optional'](),'profile':_0x30fe35[_0x4b2829(0x164)](_0x4b2829(0x135))[_0x4b2829(0x140)](),'args':_0x30fe35[_0x4b2829(0x113)](_0x30fe35[_0x4b2829(0x10a)]()[_0x4b2829(0x172)](0x1))[_0x4b2829(0x140)]()})['strict'](),BrowserSchema=_0x3a0701[_0x4b2829(0x13e)]([_0x4b2829(0x14e),_0x4b2829(0x126),_0x4b2829(0x102)]),SYSTEM_BROWSER_CHANNELS=[_0x4b2829(0x11b),_0x4b2829(0x165),_0x4b2829(0x13a),'chromium'],BROWSER_CHANNEL_WORDS=[...SYSTEM_BROWSER_CHANNELS,BUNDLED_BROWSER_CHANNEL],BrowserChannelSchema=_0x3a0701['union']([_0x3a0701['enum'](SYSTEM_BROWSER_CHANNELS),_0x3a0701[_0x4b2829(0x164)](BUNDLED_BROWSER_CHANNEL)['transform'](()=>null),_0x3a0701[_0x4b2829(0x115)]()])['optional'](),ViewportSchema=strictObject({'width':_0x3a0701['number']()['int']()[_0x4b2829(0x111)]()[_0x4b2829(0x140)](),'height':_0x3a0701[_0x4b2829(0x119)]()['int']()['positive']()[_0x4b2829(0x140)](),'deviceScaleFactor':_0x3a0701['number']()[_0x4b2829(0x111)]()[_0x4b2829(0x140)]()}),ConfigViewportSchema=ViewportSchema[_0x4b2829(0x16c)]();function viewportDeviceConflict(_0x2539dd,_0x2ed50c,_0x476cdc=_0x4b2829(0x171)){var _0x31661f={_0x1688b0:0x167,_0x331759:0x103},_0x2ae083=_0x4b2829;if(_0x2539dd!==null||_0x2ed50c===void 0x0)return void 0x0;return _0x476cdc+_0x2ae083(_0x31661f._0x1688b0)+_0x2ed50c+_0x2ae083(_0x31661f._0x331759);}__name(viewportDeviceConflict,'viewportDeviceConflict');var RetryReasonSchema=_0x3a0701[_0x4b2829(0x13e)]([_0x4b2829(0x12f),_0x4b2829(0x15e),_0x4b2829(0x137)]),RetryConfigSchema=strictObject({'count':_0x3a0701[_0x4b2829(0x119)]()[_0x4b2829(0x16e)]()['min'](0x0)[_0x4b2829(0x141)](0xa),'on':_0x3a0701[_0x4b2829(0x113)](RetryReasonSchema)}),FailureBundleConfigSchema=strictObject({'tier1':_0x3a0701[_0x4b2829(0x164)](!![])[_0x4b2829(0x144)](!![]),'tier2':_0x3a0701['boolean'](),'tier3':strictObject({'network':_0x3a0701['boolean'](),'video':_0x3a0701[_0x4b2829(0x122)]()}),'retention':strictObject({'runs':_0x3a0701['number']()[_0x4b2829(0x16e)]()[_0x4b2829(0x111)](),'days':_0x3a0701['number']()[_0x4b2829(0x16e)]()[_0x4b2829(0x111)]()}),'storageDir':_0x3a0701['string']()[_0x4b2829(0x172)](0x1),'pageHtml':_0x3a0701[_0x4b2829(0x13e)]([_0x4b2829(0x10e),_0x4b2829(0x155)])}),DialogPolicySchema=_0x3a0701[_0x4b2829(0x13e)]([_0x4b2829(0x15c),_0x4b2829(0x11f),_0x4b2829(0x145)]),LinterRuleIdSchema=_0x3a0701[_0x4b2829(0x13e)]([_0x4b2829(0x163),_0x4b2829(0x13d),_0x4b2829(0x112),_0x4b2829(0x14f),_0x4b2829(0x152),'lint:evaluate-discouraged',_0x4b2829(0x10d),_0x4b2829(0x14d),_0x4b2829(0x114),_0x4b2829(0x11a),'lint:echo-assert',_0x4b2829(0x107),_0x4b2829(0x151),_0x4b2829(0x169),_0x4b2829(0x109),'lint:external-variable-undeclared',_0x4b2829(0x12c),'lint:one-test-per-file','lint:shadows-dsl-function',_0x4b2829(0x16f),_0x4b2829(0x116),'lint:filter-unknown-option',_0x4b2829(0x156),'validator:unknown-function',_0x4b2829(0xff),_0x4b2829(0x157),_0x4b2829(0x106),_0x4b2829(0x132),_0x4b2829(0x118),_0x4b2829(0x101),_0x4b2829(0x159),_0x4b2829(0x123),'validator:var-shape',_0x4b2829(0x16d),_0x4b2829(0x13c),_0x4b2829(0x138),_0x4b2829(0x125),_0x4b2829(0x16a),_0x4b2829(0x14a)]),LinterSeveritySchema=_0x3a0701[_0x4b2829(0x13e)](['off',_0x4b2829(0x129),_0x4b2829(0x139)]),LinterConfigSchema=strictObject({'enabled':_0x3a0701['boolean'](),'rules':_0x3a0701[_0x4b2829(0x149)](LinterRuleIdSchema,LinterSeveritySchema)}),QueueConfigSchema=strictObject({'enabled':_0x3a0701[_0x4b2829(0x122)]()[_0x4b2829(0x144)](!![]),'concurrency':_0x3a0701['number']()[_0x4b2829(0x16e)]()[_0x4b2829(0x111)]()[_0x4b2829(0x144)](0x1)}),ScheduleSchema=strictObject({'collection':_0x3a0701[_0x4b2829(0x10a)]()['min'](0x1),'cron':_0x3a0701[_0x4b2829(0x10a)]()[_0x4b2829(0x172)](0x1),'env':_0x3a0701['string']()[_0x4b2829(0x172)](0x1)['optional'](),'prepare':_0x3a0701[_0x4b2829(0x10a)]()[_0x4b2829(0x172)](0x1)[_0x4b2829(0x140)]()}),McpConfigSchema=strictObject({'transport':_0x3a0701['literal'](_0x4b2829(0x110))}),SandboxConfigSchema=strictObject({'shellCwd':_0x3a0701['string']()['optional'](),'shellTimeoutMs':_0x3a0701['number']()['int']()[_0x4b2829(0x111)]()['optional'](),'exportSecrets':_0x3a0701['array'](_0x3a0701['string']())['optional'](),'database':_0x3a0701['string']()[_0x4b2829(0x140)](),'apiBaseUrl':_0x3a0701['string']()[_0x4b2829(0x10f)]()[_0x4b2829(0x140)](),'uploadDir':_0x3a0701['string']()[_0x4b2829(0x140)](),'readRoots':_0x3a0701[_0x4b2829(0x113)](_0x3a0701[_0x4b2829(0x10a)]()[_0x4b2829(0x172)](0x1))[_0x4b2829(0x140)]()}),WebServerConfigSchema=strictObject({'command':_0x3a0701[_0x4b2829(0x10a)]()[_0x4b2829(0x172)](0x1),'url':_0x3a0701[_0x4b2829(0x10a)]()[_0x4b2829(0x10f)](),'reuseExistingServer':_0x3a0701[_0x4b2829(0x122)]()[_0x4b2829(0x144)](!![]),'timeoutMs':_0x3a0701['number']()[_0x4b2829(0x16e)]()[_0x4b2829(0x111)]()[_0x4b2829(0x144)](0xea60)}),WebServersConfigSchema=_0x3a0701[_0x4b2829(0x173)]([WebServerConfigSchema,_0x3a0701[_0x4b2829(0x113)](WebServerConfigSchema)[_0x4b2829(0x172)](0x1)])[_0x4b2829(0x142)](_0x260f05=>Array[_0x4b2829(0x146)](_0x260f05)?_0x260f05:[_0x260f05])['superRefine']((_0x2c84b2,_0x263d55)=>{var _0x2449d5={_0x19ea64:0x10b},_0x2f1afb={_0x50f79c:0x161,_0x430889:0x13f,_0xf2de18:0x10f,_0x17b590:0x10f},_0x380746=_0x4b2829;const _0x42cf7f=new Set();_0x2c84b2[_0x380746(_0x2449d5._0x19ea64)]((_0x35af51,_0x4fdecf)=>{var _0x50cacc=_0x380746;_0x42cf7f[_0x50cacc(_0x2f1afb._0x50f79c)](_0x35af51[_0x50cacc(0x10f)])&&_0x263d55['addIssue']({'code':_0x3a0701[_0x50cacc(_0x2f1afb._0x430889)][_0x50cacc(0x153)],'path':[_0x4fdecf,_0x50cacc(_0x2f1afb._0xf2de18)],'message':_0x50cacc(0x12d)+_0x4fdecf+'].url\x20'+_0x35af51[_0x50cacc(_0x2f1afb._0x17b590)]+_0x50cacc(0x108)}),_0x42cf7f[_0x50cacc(0x136)](_0x35af51[_0x50cacc(0x10f)]);});}),EnvConfigSchema=strictObject({'shared':_0x3a0701[_0x4b2829(0x113)](_0x3a0701['string']())[_0x4b2829(0x144)]([])}),UnotestConfigSchema=strictObject({'baseUrl':_0x3a0701['string']()['url']()[_0x4b2829(0x140)](),'webServer':WebServersConfigSchema[_0x4b2829(0x140)](),'generate':_0x3a0701[_0x4b2829(0x10a)]()[_0x4b2829(0x172)](0x1)[_0x4b2829(0x140)](),'browsers':_0x3a0701[_0x4b2829(0x113)](BrowserSchema)['min'](0x1),'channel':BrowserChannelSchema,'viewport':ConfigViewportSchema[_0x4b2829(0x140)](),'device':_0x3a0701[_0x4b2829(0x10a)]()[_0x4b2829(0x172)](0x1)[_0x4b2829(0x140)](),'timezone':_0x3a0701[_0x4b2829(0x10a)]()[_0x4b2829(0x105)](isTimeZone,_0x33e6e2=>({'message':_0x4b2829(0x148)+_0x33e6e2+'\x22\x20—\x20expected\x20an\x20IANA\x20name\x20such\x20as\x20\x22Europe/Madrid\x22'}))[_0x4b2829(0x140)](),'locale':_0x3a0701[_0x4b2829(0x10a)]()[_0x4b2829(0x105)](isLocale,_0x5dfb28=>({'message':'invalid\x20locale\x20\x22'+_0x5dfb28+'\x22\x20—\x20expected\x20a\x20BCP\x2047\x20tag\x20such\x20as\x20\x22es-ES\x22'}))[_0x4b2829(0x140)](),'maxContexts':_0x3a0701[_0x4b2829(0x119)]()[_0x4b2829(0x16e)]()['positive']()['optional'](),'launch':LaunchConfigSchema[_0x4b2829(0x140)](),'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':_0x3a0701[_0x4b2829(0x10a)]()[_0x4b2829(0x140)](),'testDir':_0x3a0701['string']()[_0x4b2829(0x172)](0x1),'helpersDir':_0x3a0701[_0x4b2829(0x10a)]()[_0x4b2829(0x172)](0x1),'defaultTimeoutMs':_0x3a0701['number']()[_0x4b2829(0x16e)]()[_0x4b2829(0x111)](),'defaultNavigationTimeoutMs':_0x3a0701[_0x4b2829(0x119)]()['int']()[_0x4b2829(0x111)](),'teardownTimeoutMs':_0x3a0701[_0x4b2829(0x119)]()[_0x4b2829(0x16e)]()[_0x4b2829(0x111)]()['optional'](),'testTimeoutMs':_0x3a0701['number']()[_0x4b2829(0x16e)]()['positive']()['optional'](),'env':EnvConfigSchema,'linter':LinterConfigSchema,'mcp':McpConfigSchema,'queue':QueueConfigSchema,'schedules':_0x3a0701[_0x4b2829(0x113)](ScheduleSchema)[_0x4b2829(0x144)]([]),'sandbox':SandboxConfigSchema})[_0x4b2829(0x158)]((_0x20a25a,_0x53f946)=>{var _0x2700ff={_0x2d94b0:0x147,_0x320ebd:0x100,_0x37c6ed:0x13f,_0x549a0d:0x147},_0x577dc0=_0x4b2829;const _0x5b8163=viewportDeviceConflict(_0x20a25a[_0x577dc0(_0x2700ff._0x2d94b0)],_0x20a25a[_0x577dc0(_0x2700ff._0x320ebd)]);_0x5b8163!==void 0x0&&_0x53f946['addIssue']({'code':_0x3a0701[_0x577dc0(_0x2700ff._0x37c6ed)][_0x577dc0(0x153)],'path':[_0x577dc0(_0x2700ff._0x549a0d)],'message':_0x5b8163});});function isTimeZone(_0x450fd3){var _0x2b787c={_0x57e30e:0x154},_0x4a35f4=_0x4b2829;try{return new Intl[(_0x4a35f4(0x15d))](_0x4a35f4(0x12e),{'timeZone':_0x450fd3}),_0x450fd3[_0x4a35f4(_0x2b787c._0x57e30e)]>0x0;}catch{return![];}}__name(isTimeZone,_0x4b2829(0x15a));function isLocale(_0x4b4fa0){var _0x3e9517={_0x4b48a9:0x15b},_0x133045=_0x4b2829;try{return Intl[_0x133045(_0x3e9517._0x4b48a9)](_0x4b4fa0)[_0x133045(0x154)]===0x1;}catch{return![];}}__name(isLocale,_0x4b2829(0x104));var DEFAULT_CONFIG={'browsers':[_0x4b2829(0x14e)],'retry':{'count':0x0,'on':[_0x4b2829(0x12f)]},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':_0x4b2829(0x128),'pageHtml':'redacted'},'dialogPolicy':_0x4b2829(0x15c),'testDir':_0x4b2829(0x131),'helpersDir':'unotest/e2e/_helpers','defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x7530,'linter':{'enabled':!![],'rules':{'lint:deep-css':_0x4b2829(0x129),'lint:xpath':_0x4b2829(0x129),'lint:obfuscated-class':'warn','lint:pause-explicit':'warn','lint:disambig-by-index':_0x4b2829(0x170),'lint:evaluate-discouraged':_0x4b2829(0x129),'lint:scenario-in-root':_0x4b2829(0x139),'lint:mustache-in-dsl':_0x4b2829(0x139),'lint:goto-concat':'warn','lint:regex-invalid':_0x4b2829(0x139),'lint:echo-assert':'warn','lint:lint-ok-missing-reason':_0x4b2829(0x129),'lint:flow-returns-value':_0x4b2829(0x129),'lint:legacy-layout':_0x4b2829(0x129),'lint:external-variable-undeclared':_0x4b2829(0x139),'lint:env-host-from-base':_0x4b2829(0x139),'lint:one-test-per-file':_0x4b2829(0x129),'lint:shadows-dsl-function':_0x4b2829(0x129),'lint:skip-outside-test':_0x4b2829(0x139),'lint:set-test-timeout-outside-test':'error','lint:filter-unknown-option':'error','lint:role-unknown-option':'error','validator:unknown-function':_0x4b2829(0x139)}},'env':{'shared':[]},'mcp':{'transport':'stdio'},'queue':{'enabled':!![],'concurrency':0x1},'schedules':[],'sandbox':{}};export{BROWSER_CHANNEL_WORDS,BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,EnvConfigSchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,QueueConfigSchema,RetryConfigSchema,RetryReasonSchema,SYSTEM_BROWSER_CHANNELS,SandboxConfigSchema,ScheduleSchema,UnotestConfigSchema,ViewportSchema,WebServerConfigSchema,WebServersConfigSchema,viewportDeviceConflict};
|
package/dist/driver/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { B as BoundingBox, I as ImageSize, E as ElementHint, S as ScreenshotOptions, L as LocatorValue, C as CaptureFrame, a as CaptureRect, P as PageConsole, N as NetworkEntry, W as WebDriver, b as LaunchOptions, c as ContextOptions, D as DriverContext, A as AttachOptions } from '../interfaces-
|
|
2
|
-
export { d as ActionTimeout, e as CheckOptions, f as ClickOptions, g as CookieOptions, h as DriverPage, F as FillOptions, G as GotoOptions, H as HoverOptions, i as NavigationOptions, j as PressOptions, R as ReloadOptions, k as SelectOptions, V as Viewport, l as ViewportSize, m as WaitOptions, n as WaitState } from '../interfaces-
|
|
1
|
+
import { B as BoundingBox, I as ImageSize, E as ElementHint, S as ScreenshotOptions, L as LocatorValue, C as CaptureFrame, a as CaptureRect, P as PageConsole, N as NetworkEntry, W as WebDriver, b as LaunchOptions, c as ContextOptions, D as DriverContext, A as AttachOptions } from '../interfaces-mlRtu8mL.js';
|
|
2
|
+
export { d as ActionTimeout, e as CheckOptions, f as ClickOptions, g as CookieOptions, h as DriverPage, F as FillOptions, G as GotoOptions, H as HoverOptions, i as NavigationOptions, j as PressOptions, R as ReloadOptions, k as SelectOptions, V as Viewport, l as ViewportSize, m as WaitOptions, n as WaitState } from '../interfaces-mlRtu8mL.js';
|
|
3
3
|
import '@unotest/protocol';
|
|
4
4
|
import '../config/schema.js';
|
|
5
5
|
import 'zod';
|