@unotest/web 0.15.0 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/write-e2e-test/SKILL.md +17 -2
- package/.claude/skills/write-e2e-test-ground/SKILL.md +17 -2
- package/CHANGELOG.md +106 -66
- package/dist/config/schema.d.ts +21 -21
- 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 +2 -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 +5 -0
- package/dist/{interfaces-BaVF0jV-.d.ts → interfaces-elRn0llQ.d.ts} +18 -1
- 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/dsl-reference.md +109 -1
- package/package.json +7 -7
- package/src/mcp/prompts/agent-test-author.md +3 -1
|
@@ -16,13 +16,28 @@ run is unverified — selectors may be invented, transitions may race,
|
|
|
16
16
|
the scenario may not actually pass. Producing a test you can't show
|
|
17
17
|
green is the failure case.
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
Three modes, picked at Phase 1:
|
|
20
20
|
|
|
21
21
|
- **Interactive (preferred)** — phases 1–5 below. The MCP server is up
|
|
22
22
|
(`new_context`, `get_page_snapshot`, `explore_start`, `explore_step`,
|
|
23
23
|
`run_test`, …). You drive the browser live, record the flow, generate
|
|
24
24
|
the DSL, save it, run it, iterate until green.
|
|
25
25
|
|
|
26
|
+
- **Compose-from-helpers** — the project already has a helper layer
|
|
27
|
+
(`unotest/e2e/_helpers/`) whose `flow_*` functions cover every step of
|
|
28
|
+
the scenario, so no new locator is needed. Skip the browser: assemble
|
|
29
|
+
the scenario from those helpers, then **verify with a CLI run**
|
|
30
|
+
(`npx @unotest/web e2e <feature>/<name>`) and iterate until green.
|
|
31
|
+
Conditions, all of them:
|
|
32
|
+
- every interaction maps to an existing helper — the moment you need a
|
|
33
|
+
NEW locator, switch to Interactive; guessing a selector from source
|
|
34
|
+
is what the live app is for;
|
|
35
|
+
- the CLI run is not optional. This mode trades browser recording for
|
|
36
|
+
a real run, not for no verification at all.
|
|
37
|
+
|
|
38
|
+
For a project with a mature helper layer this is the ordinary mode,
|
|
39
|
+
not an exception — most days add scenarios, not selectors.
|
|
40
|
+
|
|
26
41
|
- **Draft-only (fallback)** — if no MCP / no working `explore_start`,
|
|
27
42
|
write the file from the description the user gave you, mark it as
|
|
28
43
|
unverified in your final reply ("⚠ unverified — no live browser —
|
|
@@ -416,7 +431,7 @@ Escape hatch:
|
|
|
416
431
|
- `evaluate(\`js body\`, …args)` — raw backticks, no `${}`. Linter
|
|
417
432
|
warns `lint:evaluate-discouraged`. Use only when nothing above fits.
|
|
418
433
|
|
|
419
|
-
Time helpers: `nowMs()`, `today()`, `daysFromNow(n)`. Marker helper: `randomWord(len)` — random lowercase letters, digit-free.
|
|
434
|
+
Time helpers: `nowMs()`, `today()`, `daysFromNow(n)`. Marker helper: `randomWord(len)` — random lowercase letters, digit-free. Debug helper: `json(value)` — serialize any value for an assert message: `assertTrue(res.status == 202, json(res.body))`.
|
|
420
435
|
|
|
421
436
|
## Helpers convention
|
|
422
437
|
|
|
@@ -16,13 +16,28 @@ run is unverified — selectors may be invented, transitions may race,
|
|
|
16
16
|
the scenario may not actually pass. Producing a test you can't show
|
|
17
17
|
green is the failure case.
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
Three modes, picked at Phase 1:
|
|
20
20
|
|
|
21
21
|
- **Interactive (preferred)** — phases 1–5 below. The MCP server is up
|
|
22
22
|
(`new_context`, `ground_element`, `explore_start`, `explore_step`,
|
|
23
23
|
`run_test`, …). You drive the browser live, record the flow, generate
|
|
24
24
|
the DSL, save it, run it, iterate until green.
|
|
25
25
|
|
|
26
|
+
- **Compose-from-helpers** — the project already has a helper layer
|
|
27
|
+
(`unotest/e2e/_helpers/`) whose `flow_*` functions cover every step of
|
|
28
|
+
the scenario, so no new locator is needed. Skip the browser: assemble
|
|
29
|
+
the scenario from those helpers, then **verify with a CLI run**
|
|
30
|
+
(`npx @unotest/web e2e <feature>/<name>`) and iterate until green.
|
|
31
|
+
Conditions, all of them:
|
|
32
|
+
- every interaction maps to an existing helper — the moment you need a
|
|
33
|
+
NEW locator, switch to Interactive; guessing a selector from source
|
|
34
|
+
is what the live app is for;
|
|
35
|
+
- the CLI run is not optional. This mode trades browser recording for
|
|
36
|
+
a real run, not for no verification at all.
|
|
37
|
+
|
|
38
|
+
For a project with a mature helper layer this is the ordinary mode,
|
|
39
|
+
not an exception — most days add scenarios, not selectors.
|
|
40
|
+
|
|
26
41
|
- **Draft-only (fallback)** — if no MCP / no working `explore_start`,
|
|
27
42
|
write the file from the description the user gave you, mark it as
|
|
28
43
|
unverified in your final reply ("⚠ unverified — no live browser —
|
|
@@ -547,7 +562,7 @@ Escape hatch:
|
|
|
547
562
|
- `evaluate(\`js body\`, …args)` — raw backticks, no `${}`. Linter
|
|
548
563
|
warns `lint:evaluate-discouraged`. Use only when nothing above fits.
|
|
549
564
|
|
|
550
|
-
Time helpers: `nowMs()`, `today()`, `daysFromNow(n)`. Marker helper: `randomWord(len)` — random lowercase letters, digit-free.
|
|
565
|
+
Time helpers: `nowMs()`, `today()`, `daysFromNow(n)`. Marker helper: `randomWord(len)` — random lowercase letters, digit-free. Debug helper: `json(value)` — serialize any value for an assert message: `assertTrue(res.status == 202, json(res.body))`.
|
|
551
566
|
|
|
552
567
|
## Helpers convention
|
|
553
568
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,111 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.17.0] - 2026-08-20
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 0306eb1: Upload/API-step DX, driven by 0.16.0 consumer feedback (a multipart
|
|
8
|
+
upload authored as `apiCall(m, p, {file: …})` failed only as a remote
|
|
9
|
+
400, with nothing local pointing at `upload()`):
|
|
10
|
+
|
|
11
|
+
- New DSL function `json(value)` — serialize any value to a JSON string
|
|
12
|
+
for readable assert messages:
|
|
13
|
+
`assertTrue(res.status == 202, json(res.body))`. Objects concatenated
|
|
14
|
+
with `+` collapse into `[object Object]`; this is the readable form.
|
|
15
|
+
- New linter rule `lint:api-call-file-body` (warning) — an `apiCall`
|
|
16
|
+
body object with a `file` key is sent as plain JSON, no file
|
|
17
|
+
attached; the diagnostic shows the `upload(...)` shape to use.
|
|
18
|
+
Deliberate JSON fields named `file` are kept with
|
|
19
|
+
`// lint-ok: <reason>`.
|
|
20
|
+
- The CLI `e2e` command now runs the same pre-run lint as the MCP
|
|
21
|
+
`run_test` tool and prints diagnostics before the run (advisory —
|
|
22
|
+
the run still proceeds). Previously authoring mistakes the linter
|
|
23
|
+
knows about surfaced only through `unotest-web lint`.
|
|
24
|
+
- Reaching for a JS global in a scenario (`JSON.stringify`, `Date`)
|
|
25
|
+
now answers with the DSL alternative (`json(value)`, `nowMs()`)
|
|
26
|
+
instead of the misleading `add it to unotest/.env` error.
|
|
27
|
+
- The generated `unotest.config.mjs` template documents the `sandbox`
|
|
28
|
+
section (`apiBaseUrl`, `uploadDir`, `database`) — `uploadDir` was
|
|
29
|
+
referenced by the guides but absent from the template.
|
|
30
|
+
|
|
31
|
+
## [0.16.0] - 2026-08-19
|
|
32
|
+
|
|
33
|
+
### Minor Changes
|
|
34
|
+
|
|
35
|
+
- bf92e6f: File oracles as first-class citizens, plus an interaction-state wait
|
|
36
|
+
(bot-service feedback, round 4).
|
|
37
|
+
|
|
38
|
+
A background process that speaks by appending JSONL was only half
|
|
39
|
+
supported: `waitForFile` matches a substring against the WHOLE file, so a
|
|
40
|
+
multi-key event filter was inexpressible — JSON key order is not
|
|
41
|
+
guaranteed, and `"userId":"x","isBot":true` breaks the first time the
|
|
42
|
+
writer reorders its fields. Every positive wait therefore went through a
|
|
43
|
+
hand-written node script. Four functions close that:
|
|
44
|
+
|
|
45
|
+
- `waitForJsonLine(path, filter, {timeoutMs})` → the matching line,
|
|
46
|
+
parsed. Strict equality per key, dot paths (`'user.id'`) for nesting,
|
|
47
|
+
unparsable lines skipped (a file caught mid-append is normal). The
|
|
48
|
+
timeout says how many lines were read, how many parsed, and which one
|
|
49
|
+
matched the most keys.
|
|
50
|
+
- `assertNoJsonLine(path, filter, {withinMs})` — the negative twin.
|
|
51
|
+
- `waitForFileCount(path, pattern, count, {timeoutMs})` → the count.
|
|
52
|
+
Waits for **at least** `count` matching lines: between two polls a
|
|
53
|
+
writer can append more than one, and a strict wait would then never
|
|
54
|
+
see its target. `pattern` is a substring, a regex, or the same key
|
|
55
|
+
filter.
|
|
56
|
+
- `assertFileCount(path, pattern, count)` — snapshot, strict equality,
|
|
57
|
+
for "exactly N happened" after the window has been awaited.
|
|
58
|
+
|
|
59
|
+
Counting is per LINE (`grep -c` semantics), not per occurrence.
|
|
60
|
+
|
|
61
|
+
`waitFor(loc, {state})` also accepts `'enabled'` / `'disabled'` now,
|
|
62
|
+
alongside the DOM-presence states. It polls the same probe `isEnabled` /
|
|
63
|
+
`isDisabled` use, so `aria-disabled` widgets and `<fieldset disabled>`
|
|
64
|
+
inheritance count — Playwright's own wait knows neither. This replaces
|
|
65
|
+
the `for` loop around `pause()` that a widget which unlocks on a timeout
|
|
66
|
+
otherwise forces.
|
|
67
|
+
|
|
68
|
+
Two smaller things that came with them:
|
|
69
|
+
|
|
70
|
+
- Options objects on the file oracles reject unknown keys. A misspelled
|
|
71
|
+
`{timeout: 5000}` used to be ignored and the step silently waited the
|
|
72
|
+
default instead.
|
|
73
|
+
- `UNOTEST_DEBUG=1` gained a `step` layer: every executed statement is
|
|
74
|
+
bracketed with `enter`/`exit` (file, line, step label, ms, ok) and
|
|
75
|
+
every nested `driver` / `resolver` event carries the step it ran
|
|
76
|
+
under. A CLI failure can now be diagnosed by reading the log as
|
|
77
|
+
step → driver call → answer, instead of matching timestamps by eye.
|
|
78
|
+
|
|
79
|
+
- 225e762: `unotest-web viewer` learns `UNOTEST_VIEWER_HOST` / `UNOTEST_VIEWER_PORT`.
|
|
80
|
+
|
|
81
|
+
By default the viewer still binds `localhost` plus a free port the OS
|
|
82
|
+
picks. Set the variables for headless / containerized setups where a
|
|
83
|
+
reverse proxy reaches the viewer at a fixed address (e.g. `viewer:4000`
|
|
84
|
+
inside a compose stack). An invalid port fails fast with an actionable
|
|
85
|
+
message instead of silently falling back. `UNOTEST_VIEWER_NO_OPEN=1`
|
|
86
|
+
still skips opening the browser.
|
|
87
|
+
|
|
88
|
+
### Patch Changes
|
|
89
|
+
|
|
90
|
+
- 4fc5e5a: `UnotestError` — the typed-error base class — now lives in
|
|
91
|
+
`@unotest/core` and is part of its public API. `@unotest/web` re-exports
|
|
92
|
+
it unchanged, so existing imports and `instanceof` chains keep working.
|
|
93
|
+
Motivation: other packages need the same base without copying it, and a
|
|
94
|
+
published package is the only home they may all import.
|
|
95
|
+
- bf92e6f: `Unknown function: indexOf` now says what to write instead.
|
|
96
|
+
|
|
97
|
+
The DSL has no string or array methods, so a JS habit (`out.stdout.indexOf(x)`,
|
|
98
|
+
`s.toLowerCase()`, `JSON.parse(line)`) failed with the same bare message as a
|
|
99
|
+
typo in a helper name — indistinguishable, and the reason bot-service asked for
|
|
100
|
+
a linter hint back in 0.10.0.
|
|
101
|
+
|
|
102
|
+
The engine stays vocab-agnostic: `FunctionContractRegistry` gained an optional
|
|
103
|
+
`suggestForUnknown(name)` hook, and the web vocab supplies the table
|
|
104
|
+
(`indexOf` → `textContains`, `concat` → `textJoin`, `JSON.parse` →
|
|
105
|
+
`waitForJsonLine`, `Date.now` → `nowMs`, and so on). A registry without the
|
|
106
|
+
hook — or a name that is genuinely just misspelled — keeps the old message
|
|
107
|
+
unchanged.
|
|
108
|
+
|
|
3
109
|
## [0.15.0] - 2026-08-17
|
|
4
110
|
|
|
5
111
|
### Minor Changes
|
|
@@ -33,14 +139,6 @@
|
|
|
33
139
|
`external variable "CATALOG_SEED" not found`. The workaround was to delete
|
|
34
140
|
`unotest/.env` by hand — on the runner, and for anyone who forked the examples.
|
|
35
141
|
|
|
36
|
-
- Updated dependencies [d2161a9]
|
|
37
|
-
- Updated dependencies [32692b4]
|
|
38
|
-
- @unotest/viewer@0.15.0
|
|
39
|
-
- @unotest/core@0.15.0
|
|
40
|
-
- @unotest/dsl@0.15.0
|
|
41
|
-
- @unotest/grounder-client@0.15.0
|
|
42
|
-
- @unotest/protocol@0.15.0
|
|
43
|
-
|
|
44
142
|
## [0.14.0] - 2026-08-16
|
|
45
143
|
|
|
46
144
|
### Minor Changes
|
|
@@ -105,15 +203,6 @@
|
|
|
105
203
|
one step that runs AFTER obfuscation — now exercises all four against a
|
|
106
204
|
real page.
|
|
107
205
|
|
|
108
|
-
- Updated dependencies [0255f2d]
|
|
109
|
-
- Updated dependencies [da5badd]
|
|
110
|
-
- Updated dependencies [da5badd]
|
|
111
|
-
- @unotest/dsl@0.14.0
|
|
112
|
-
- @unotest/viewer@0.14.0
|
|
113
|
-
- @unotest/core@0.14.0
|
|
114
|
-
- @unotest/grounder-client@0.14.0
|
|
115
|
-
- @unotest/protocol@0.14.0
|
|
116
|
-
|
|
117
206
|
## [0.13.1] - 2026-08-15
|
|
118
207
|
|
|
119
208
|
### Patch Changes
|
|
@@ -160,14 +249,6 @@
|
|
|
160
249
|
build its locator from the top document, so inside a frame it waited on
|
|
161
250
|
text the frame content could never satisfy. Found by the dogfood suite
|
|
162
251
|
(nested-iframes scenario).
|
|
163
|
-
- Updated dependencies [39ca34f]
|
|
164
|
-
- Updated dependencies [a4f0a62]
|
|
165
|
-
- Updated dependencies [8d70df6]
|
|
166
|
-
- @unotest/dsl@0.13.0
|
|
167
|
-
- @unotest/core@0.13.0
|
|
168
|
-
- @unotest/viewer@0.13.0
|
|
169
|
-
- @unotest/grounder-client@0.13.0
|
|
170
|
-
- @unotest/protocol@0.13.0
|
|
171
252
|
|
|
172
253
|
All notable changes to `@unotest/web` are documented in this file.
|
|
173
254
|
|
|
@@ -238,18 +319,6 @@ unotest/.env.dev (no such file)`). Tool descriptions for `run_test` /
|
|
|
238
319
|
instead of silently cascading into "Unknown function" at every call
|
|
239
320
|
site. The viewer logs the same condition (patch).
|
|
240
321
|
|
|
241
|
-
### Patch Changes
|
|
242
|
-
|
|
243
|
-
- Updated dependencies [40300d3]
|
|
244
|
-
- Updated dependencies [479aa25]
|
|
245
|
-
- Updated dependencies [5dd59af]
|
|
246
|
-
- Updated dependencies [7069d24]
|
|
247
|
-
- @unotest/dsl@0.12.0
|
|
248
|
-
- @unotest/viewer@0.12.0
|
|
249
|
-
- @unotest/core@0.12.0
|
|
250
|
-
- @unotest/grounder-client@0.12.0
|
|
251
|
-
- @unotest/protocol@0.12.0
|
|
252
|
-
|
|
253
322
|
## [0.11.0] - 2026-08-13
|
|
254
323
|
|
|
255
324
|
### Minor Changes
|
|
@@ -358,20 +427,6 @@ unotest/.env.dev (no such file)`). Tool descriptions for `run_test` /
|
|
|
358
427
|
"the network went quiet" instead of on visible app state is the flaky
|
|
359
428
|
pattern the linter rejects.
|
|
360
429
|
|
|
361
|
-
- Updated dependencies [eb568a6]
|
|
362
|
-
- Updated dependencies [a195713]
|
|
363
|
-
- Updated dependencies [ce25926]
|
|
364
|
-
- Updated dependencies [5a8e92b]
|
|
365
|
-
- Updated dependencies [d0ae620]
|
|
366
|
-
- Updated dependencies [2a68997]
|
|
367
|
-
- Updated dependencies [c01b72f]
|
|
368
|
-
- Updated dependencies [dea90e9]
|
|
369
|
-
- @unotest/core@0.11.0
|
|
370
|
-
- @unotest/protocol@0.11.0
|
|
371
|
-
- @unotest/viewer@0.11.0
|
|
372
|
-
- @unotest/dsl@0.11.0
|
|
373
|
-
- @unotest/grounder-client@0.11.0
|
|
374
|
-
|
|
375
430
|
## [0.10.0] - 2026-08-06
|
|
376
431
|
|
|
377
432
|
### Minor Changes
|
|
@@ -511,21 +566,6 @@ unotest/.env.dev (no such file)`). Tool descriptions for `run_test` /
|
|
|
511
566
|
recipe: a single `{kind:"intent"}` step, the `ref` from `find_element`,
|
|
512
567
|
or the ready-made `locator` object from `ground_element` — hand-assembled
|
|
513
568
|
`getByRole`/`css` locators are rejected in recording mode.
|
|
514
|
-
- Updated dependencies [7324966]
|
|
515
|
-
- Updated dependencies [7ed750c]
|
|
516
|
-
- Updated dependencies [b5b9710]
|
|
517
|
-
- Updated dependencies [574841f]
|
|
518
|
-
- Updated dependencies [65eb77c]
|
|
519
|
-
- Updated dependencies [f106cf8]
|
|
520
|
-
- Updated dependencies [856f087]
|
|
521
|
-
- Updated dependencies [78f850f]
|
|
522
|
-
- Updated dependencies [1bd55ba]
|
|
523
|
-
- Updated dependencies [337a31c]
|
|
524
|
-
- @unotest/grounder-client@0.10.0
|
|
525
|
-
- @unotest/dsl@0.10.0
|
|
526
|
-
- @unotest/protocol@0.10.0
|
|
527
|
-
- @unotest/core@0.10.0
|
|
528
|
-
- @unotest/viewer@0.10.0
|
|
529
569
|
|
|
530
570
|
## [0.9.2] - 2026-06-16
|
|
531
571
|
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -90,19 +90,19 @@ declare const FailureBundleConfigSchema: z.ZodObject<{
|
|
|
90
90
|
type FailureBundleConfig = z.infer<typeof FailureBundleConfigSchema>;
|
|
91
91
|
declare const DialogPolicySchema: z.ZodEnum<["accept", "dismiss", "manual"]>;
|
|
92
92
|
type DialogPolicy = z.infer<typeof DialogPolicySchema>;
|
|
93
|
-
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:lint-ok-missing-reason", "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"]>;
|
|
93
|
+
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", "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"]>;
|
|
94
94
|
type LinterRuleId = z.infer<typeof LinterRuleIdSchema>;
|
|
95
95
|
declare const LinterSeveritySchema: z.ZodEnum<["off", "warn", "error"]>;
|
|
96
96
|
type LinterSeverity = z.infer<typeof LinterSeveritySchema>;
|
|
97
97
|
declare const LinterConfigSchema: z.ZodObject<{
|
|
98
98
|
enabled: z.ZodBoolean;
|
|
99
|
-
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:lint-ok-missing-reason", "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"]>>;
|
|
99
|
+
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", "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"]>>;
|
|
100
100
|
}, "strip", z.ZodTypeAny, {
|
|
101
101
|
enabled: boolean;
|
|
102
|
-
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:lint-ok-missing-reason" | "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">>;
|
|
102
|
+
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" | "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">>;
|
|
103
103
|
}, {
|
|
104
104
|
enabled: boolean;
|
|
105
|
-
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:lint-ok-missing-reason" | "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">>;
|
|
105
|
+
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" | "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">>;
|
|
106
106
|
}>;
|
|
107
107
|
type LinterConfig = z.infer<typeof LinterConfigSchema>;
|
|
108
108
|
declare const McpConfigSchema: z.ZodObject<{
|
|
@@ -172,15 +172,15 @@ declare const WebServerConfigSchema: z.ZodObject<{
|
|
|
172
172
|
/** How long to wait for the URL to come up after spawning. */
|
|
173
173
|
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
174
174
|
}, "strip", z.ZodTypeAny, {
|
|
175
|
-
url: string;
|
|
176
|
-
timeoutMs: number;
|
|
177
175
|
command: string;
|
|
176
|
+
url: string;
|
|
178
177
|
reuseExistingServer: boolean;
|
|
178
|
+
timeoutMs: number;
|
|
179
179
|
}, {
|
|
180
|
-
url: string;
|
|
181
180
|
command: string;
|
|
182
|
-
|
|
181
|
+
url: string;
|
|
183
182
|
reuseExistingServer?: boolean | undefined;
|
|
183
|
+
timeoutMs?: number | undefined;
|
|
184
184
|
}>;
|
|
185
185
|
type WebServerConfig = z.infer<typeof WebServerConfigSchema>;
|
|
186
186
|
declare const UnotestConfigSchema: z.ZodObject<{
|
|
@@ -206,15 +206,15 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
206
206
|
/** How long to wait for the URL to come up after spawning. */
|
|
207
207
|
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
208
208
|
}, "strip", z.ZodTypeAny, {
|
|
209
|
-
url: string;
|
|
210
|
-
timeoutMs: number;
|
|
211
209
|
command: string;
|
|
210
|
+
url: string;
|
|
212
211
|
reuseExistingServer: boolean;
|
|
212
|
+
timeoutMs: number;
|
|
213
213
|
}, {
|
|
214
|
-
url: string;
|
|
215
214
|
command: string;
|
|
216
|
-
|
|
215
|
+
url: string;
|
|
217
216
|
reuseExistingServer?: boolean | undefined;
|
|
217
|
+
timeoutMs?: number | undefined;
|
|
218
218
|
}>>;
|
|
219
219
|
browsers: z.ZodArray<z.ZodEnum<["chromium", "firefox", "webkit"]>, "many">;
|
|
220
220
|
channel: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"chrome">, z.ZodLiteral<"msedge">, z.ZodLiteral<"chrome-beta">, z.ZodNull]>>;
|
|
@@ -312,13 +312,13 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
312
312
|
defaultNavigationTimeoutMs: z.ZodNumber;
|
|
313
313
|
linter: z.ZodObject<{
|
|
314
314
|
enabled: z.ZodBoolean;
|
|
315
|
-
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:lint-ok-missing-reason", "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"]>>;
|
|
315
|
+
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", "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"]>>;
|
|
316
316
|
}, "strip", z.ZodTypeAny, {
|
|
317
317
|
enabled: boolean;
|
|
318
|
-
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:lint-ok-missing-reason" | "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">>;
|
|
318
|
+
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" | "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">>;
|
|
319
319
|
}, {
|
|
320
320
|
enabled: boolean;
|
|
321
|
-
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:lint-ok-missing-reason" | "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">>;
|
|
321
|
+
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" | "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">>;
|
|
322
322
|
}>;
|
|
323
323
|
mcp: z.ZodObject<{
|
|
324
324
|
transport: z.ZodLiteral<"stdio">;
|
|
@@ -398,7 +398,7 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
398
398
|
defaultNavigationTimeoutMs: number;
|
|
399
399
|
linter: {
|
|
400
400
|
enabled: boolean;
|
|
401
|
-
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:lint-ok-missing-reason" | "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">>;
|
|
401
|
+
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" | "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">>;
|
|
402
402
|
};
|
|
403
403
|
mcp: {
|
|
404
404
|
transport: "stdio";
|
|
@@ -413,10 +413,10 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
413
413
|
};
|
|
414
414
|
baseUrl?: string | undefined;
|
|
415
415
|
webServer?: {
|
|
416
|
-
url: string;
|
|
417
|
-
timeoutMs: number;
|
|
418
416
|
command: string;
|
|
417
|
+
url: string;
|
|
419
418
|
reuseExistingServer: boolean;
|
|
419
|
+
timeoutMs: number;
|
|
420
420
|
} | undefined;
|
|
421
421
|
channel?: "chrome" | "msedge" | "chrome-beta" | null | undefined;
|
|
422
422
|
storageState?: string | undefined;
|
|
@@ -450,7 +450,7 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
450
450
|
defaultNavigationTimeoutMs: number;
|
|
451
451
|
linter: {
|
|
452
452
|
enabled: boolean;
|
|
453
|
-
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:lint-ok-missing-reason" | "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">>;
|
|
453
|
+
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" | "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">>;
|
|
454
454
|
};
|
|
455
455
|
mcp: {
|
|
456
456
|
transport: "stdio";
|
|
@@ -465,10 +465,10 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
465
465
|
};
|
|
466
466
|
baseUrl?: string | undefined;
|
|
467
467
|
webServer?: {
|
|
468
|
-
url: string;
|
|
469
468
|
command: string;
|
|
470
|
-
|
|
469
|
+
url: string;
|
|
471
470
|
reuseExistingServer?: boolean | undefined;
|
|
471
|
+
timeoutMs?: number | undefined;
|
|
472
472
|
} | undefined;
|
|
473
473
|
channel?: "chrome" | "msedge" | "chrome-beta" | null | undefined;
|
|
474
474
|
storageState?: string | undefined;
|
package/dist/config/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var _0x2052e0=_0x1715;(function(_0x1b4eb8,_0x39d252){var _0x46022c={_0x3f8f66:0x204,_0x478011:0x1fa,_0x444cea:0x1f4,_0x2b0078:0x1fd},_0x206d9f=_0x1715,_0x1ff9af=_0x1b4eb8();while(!![]){try{var _0x33e783=-parseInt(_0x206d9f(0x1cc))/0x1+parseInt(_0x206d9f(_0x46022c._0x3f8f66))/0x2*(-parseInt(_0x206d9f(0x1ce))/0x3)+-parseInt(_0x206d9f(0x1eb))/0x4+-parseInt(_0x206d9f(_0x46022c._0x478011))/0x5+parseInt(_0x206d9f(0x1d1))/0x6*(parseInt(_0x206d9f(0x1dd))/0x7)+parseInt(_0x206d9f(_0x46022c._0x444cea))/0x8+parseInt(_0x206d9f(_0x46022c._0x2b0078))/0x9;if(_0x33e783===_0x39d252)break;else _0x1ff9af['push'](_0x1ff9af['shift']());}catch(_0x3a65ea){_0x1ff9af['push'](_0x1ff9af['shift']());}}}(_0x262b,0xd8442));import{z}from'zod';var BrowserSchema=z['enum']([_0x2052e0(0x1d9),_0x2052e0(0x1ca),_0x2052e0(0x1d6)]),BrowserChannelSchema=z['union']([z['literal']('chrome'),z['literal'](_0x2052e0(0x205)),z[_0x2052e0(0x1f6)](_0x2052e0(0x1f0)),z['null']()])['optional'](),ViewportSchema=z['object']({'width':z[_0x2052e0(0x1e9)]()[_0x2052e0(0x1e8)]()[_0x2052e0(0x1d2)](),'height':z[_0x2052e0(0x1e9)]()['int']()['positive']()}),RetryReasonSchema=z['enum']([_0x2052e0(0x1ed),_0x2052e0(0x1f1),_0x2052e0(0x1e2)]),RetryConfigSchema=z['object']({'count':z[_0x2052e0(0x1e9)]()[_0x2052e0(0x1e8)]()[_0x2052e0(0x1e7)](0x0)[_0x2052e0(0x200)](0xa),'on':z['array'](RetryReasonSchema)}),FailureBundleConfigSchema=z[_0x2052e0(0x1c8)]({'tier1':z['literal'](!![])[_0x2052e0(0x1fe)](!![]),'tier2':z['boolean'](),'tier3':z[_0x2052e0(0x1c8)]({'network':z[_0x2052e0(0x1d4)](),'video':z['boolean']()}),'retention':z[_0x2052e0(0x1c8)]({'runs':z[_0x2052e0(0x1e9)]()[_0x2052e0(0x1e8)]()[_0x2052e0(0x1d2)](),'days':z[_0x2052e0(0x1e9)]()[_0x2052e0(0x1e8)]()[_0x2052e0(0x1d2)]()}),'storageDir':z[_0x2052e0(0x1ec)]()[_0x2052e0(0x1e7)](0x1)}),DialogPolicySchema=z[_0x2052e0(0x1da)]([_0x2052e0(0x1fc),_0x2052e0(0x1fb),'manual']),LinterRuleIdSchema=z[_0x2052e0(0x1da)]([_0x2052e0(0x1d3),_0x2052e0(0x1ea),_0x2052e0(0x1f5),_0x2052e0(0x1de),'lint:disambig-by-index',_0x2052e0(0x202),_0x2052e0(0x1dc),_0x2052e0(0x1ff),'lint:goto-concat',_0x2052e0(0x1ef),_0x2052e0(0x1e6),'lint:api-call-file-body','lint:lint-ok-missing-reason',_0x2052e0(0x203),_0x2052e0(0x1cd),_0x2052e0(0x1e0),_0x2052e0(0x1e1),_0x2052e0(0x1e3),_0x2052e0(0x1e5),_0x2052e0(0x1f3),_0x2052e0(0x1f8),_0x2052e0(0x1c6),_0x2052e0(0x1cf),_0x2052e0(0x1f9),_0x2052e0(0x1df),_0x2052e0(0x1e4),_0x2052e0(0x1d5),_0x2052e0(0x1db),_0x2052e0(0x1c9)]),LinterSeveritySchema=z['enum']([_0x2052e0(0x1d7),'warn',_0x2052e0(0x1d0)]),LinterConfigSchema=z['object']({'enabled':z[_0x2052e0(0x1d4)](),'rules':z['record'](LinterRuleIdSchema,LinterSeveritySchema)}),McpConfigSchema=z['object']({'transport':z[_0x2052e0(0x1f6)](_0x2052e0(0x1f7))}),SandboxConfigSchema=z[_0x2052e0(0x1c8)]({'shellCwd':z['string']()[_0x2052e0(0x1c7)](),'shellTimeoutMs':z[_0x2052e0(0x1e9)]()[_0x2052e0(0x1e8)]()[_0x2052e0(0x1d2)]()[_0x2052e0(0x1c7)](),'exportSecrets':z['array'](z[_0x2052e0(0x1ec)]())[_0x2052e0(0x1c7)](),'database':z['string']()[_0x2052e0(0x1c7)](),'apiBaseUrl':z['string']()[_0x2052e0(0x1d8)]()[_0x2052e0(0x1c7)](),'uploadDir':z[_0x2052e0(0x1ec)]()['optional']()}),WebServerConfigSchema=z[_0x2052e0(0x1c8)]({'command':z[_0x2052e0(0x1ec)]()[_0x2052e0(0x1e7)](0x1),'url':z['string']()[_0x2052e0(0x1d8)](),'reuseExistingServer':z['boolean']()[_0x2052e0(0x1fe)](!![]),'timeoutMs':z[_0x2052e0(0x1e9)]()[_0x2052e0(0x1e8)]()[_0x2052e0(0x1d2)]()[_0x2052e0(0x1fe)](0xea60)}),UnotestConfigSchema=z[_0x2052e0(0x1c8)]({'baseUrl':z[_0x2052e0(0x1ec)]()['url']()[_0x2052e0(0x1c7)](),'webServer':WebServerConfigSchema['optional'](),'browsers':z[_0x2052e0(0x201)](BrowserSchema)['min'](0x1),'channel':BrowserChannelSchema,'viewport':ViewportSchema,'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':z[_0x2052e0(0x1ec)]()[_0x2052e0(0x1c7)](),'testDir':z['string']()[_0x2052e0(0x1e7)](0x1),'helpersDir':z['string']()[_0x2052e0(0x1e7)](0x1),'defaultTimeoutMs':z[_0x2052e0(0x1e9)]()['int']()[_0x2052e0(0x1d2)](),'defaultNavigationTimeoutMs':z[_0x2052e0(0x1e9)]()['int']()[_0x2052e0(0x1d2)](),'linter':LinterConfigSchema,'mcp':McpConfigSchema,'sandbox':SandboxConfigSchema}),DEFAULT_CONFIG={'browsers':[_0x2052e0(0x1d9)],'viewport':{'width':0x500,'height':0x2d0},'retry':{'count':0x0,'on':['transient']},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':_0x2052e0(0x1f2)},'dialogPolicy':_0x2052e0(0x1fc),'testDir':_0x2052e0(0x1cb),'helpersDir':_0x2052e0(0x1c5),'defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x7530,'linter':{'enabled':!![],'rules':{'lint:deep-css':_0x2052e0(0x1ee),'lint:xpath':'warn','lint:obfuscated-class':_0x2052e0(0x1ee),'lint:pause-explicit':_0x2052e0(0x1ee),'lint:disambig-by-index':_0x2052e0(0x1d7),'lint:evaluate-discouraged':_0x2052e0(0x1ee),'lint:scenario-in-root':_0x2052e0(0x1d0),'lint:mustache-in-dsl':_0x2052e0(0x1d0),'lint:goto-concat':_0x2052e0(0x1ee),'lint:regex-invalid':'error','lint:echo-assert':_0x2052e0(0x1ee),'lint:lint-ok-missing-reason':_0x2052e0(0x1ee),'validator:unknown-function':_0x2052e0(0x1d0)}},'mcp':{'transport':_0x2052e0(0x1f7)},'sandbox':{}};function _0x1715(_0x593def,_0x37b950){_0x593def=_0x593def-0x1c5;var _0x262b96=_0x262b();var _0x1715af=_0x262b96[_0x593def];if(_0x1715['lLVLre']===undefined){var _0x30a692=function(_0x5354b5){var _0x323d53='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x534531='',_0x284bb5='';for(var _0x2a8b8e=0x0,_0x1149f0,_0x66e7a,_0x44c211=0x0;_0x66e7a=_0x5354b5['charAt'](_0x44c211++);~_0x66e7a&&(_0x1149f0=_0x2a8b8e%0x4?_0x1149f0*0x40+_0x66e7a:_0x66e7a,_0x2a8b8e++%0x4)?_0x534531+=String['fromCharCode'](0xff&_0x1149f0>>(-0x2*_0x2a8b8e&0x6)):0x0){_0x66e7a=_0x323d53['indexOf'](_0x66e7a);}for(var _0x4d2463=0x0,_0x91063c=_0x534531['length'];_0x4d2463<_0x91063c;_0x4d2463++){_0x284bb5+='%'+('00'+_0x534531['charCodeAt'](_0x4d2463)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x284bb5);};_0x1715['jZfduB']=_0x30a692,_0x1715['nLaBVY']={},_0x1715['lLVLre']=!![];}var _0x57b3de=_0x262b96[0x0],_0x1b3020=_0x593def+_0x57b3de,_0x494e7f=_0x1715['nLaBVY'][_0x1b3020];return!_0x494e7f?(_0x1715af=_0x1715['jZfduB'](_0x1715af),_0x1715['nLaBVY'][_0x1b3020]=_0x1715af):_0x1715af=_0x494e7f,_0x1715af;}export{BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,RetryConfigSchema,RetryReasonSchema,SandboxConfigSchema,UnotestConfigSchema,ViewportSchema,WebServerConfigSchema};function _0x262b(){var _0x134d3a=['BNvTyMvY','BgLUDdP4Cgf0Aa','nduXodm1nNfkA3jMra','C3rYAw5N','DhjHBNnPzw50','D2fYBG','BgLUDdPYzwDLEc1PBNzHBgLK','y2HYB21LlwjLDge','BMv0D29YAW','lNvUB3rLC3qVzMfPBhvYzxm','DMfSAwrHDg9YoMz1BMn0Aw9UlxnOyxbL','odC1ntuWnejZt0j3zG','BgLUDdPVyMz1C2nHDgvKlwnSyxnZ','BgL0zxjHBa','C3rKAw8','DMfSAwrHDg9YoMzVCI1ZAgfWzq','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlxn0yxrLBwvUDa','odC4ntm1mhLiweHwyG','zgLZBwLZCW','ywnJzxb0','mJeYndG2ndbSDvvvugq','zgvMyxvSDa','BgLUDdPTDxn0ywnOzs1PBI1KC2W','Bwf4','yxjYyxK','BgLUDdPLDMfSDwf0zs1KAxnJB3vYywDLza','DMfSAwrHDg9YoNvUA25VD24TzNvUy3rPB24','mtKXmte2BezbAunJ','BxnLzgDL','Dw5VDgvZDc9LmMuVx2HLBhbLCNm','DMfSAwrHDg9YoMLMlxnOyxbL','B3b0Aw9UywW','B2jQzwn0','DMfSAwrHDg9YoNDYyxbWzwqTzM9YBwf0','zMLYzwzVEa','Dw5VDgvZDc9LmMu','mJC0nZaWuLbOsK5Z','DMfSAwrHDg9YoMfYAxr5','nM1YuwXPCq','DMfSAwrHDg9YoNzHCI1ZAgfWzq','zxjYB3i','nJC5oev1z0LOva','Cg9ZAxrPDMu','BgLUDdPKzwvWlwnZCW','yM9VBgvHBG','DMfSAwrHDg9YoNnLBwfUDgLJlwXVC3m','D2vIA2L0','B2zM','DxjS','y2HYB21PDw0','zw51Bq','DMfSAwrHDg9YoMXPC3qTyxjN','BgLUDdPZy2vUyxjPBY1PBI1YB290','ndGZn051ugT6Ca','BgLUDdPWyxvZzs1LEhbSAwnPDa','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlwv4ChjLC3nPB24','DMfSAwrHDg9YoMfYzY1RAw5K','DMfSAwrHDg9YoNn0zxaTy292zxjHz2u','y3jHC2G','DMfSAwrHDg9YoNn0zxaTC2HHCgu','DMfSAwrHDg9YoNn0CMLUzY1JB25Jyxq','DMfSAwrHDg9YoM1LDgeTC2HHCgu','BgLUDdPLy2HVlwfZC2vYDa','BwLU','Aw50'];_0x262b=function(){return _0x134d3a;};return _0x262b();}
|
package/dist/driver/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { E as ElementHint, N as NetworkEntry, W as WebDriver, L as LaunchOptions, C as ContextOptions, D as DriverContext } from '../interfaces-
|
|
2
|
-
export { A as ActionTimeout, a as CheckOptions, b as ClickOptions, c as CookieOptions, d as DriverPage, F as FillOptions, G as GotoOptions, H as HoverOptions, e as NavigationOptions, P as PressOptions, R as ReloadOptions, S as ScreenshotOptions, f as SelectOptions, V as Viewport, g as WaitOptions, h as WaitState } from '../interfaces-
|
|
1
|
+
import { E as ElementHint, N as NetworkEntry, W as WebDriver, L as LaunchOptions, C as ContextOptions, D as DriverContext } from '../interfaces-elRn0llQ.js';
|
|
2
|
+
export { A as ActionTimeout, a as CheckOptions, b as ClickOptions, c as CookieOptions, d as DriverPage, F as FillOptions, G as GotoOptions, H as HoverOptions, e as NavigationOptions, P as PressOptions, R as ReloadOptions, S as ScreenshotOptions, f as SelectOptions, V as Viewport, g as WaitOptions, h as WaitState } from '../interfaces-elRn0llQ.js';
|
|
3
3
|
import '@unotest/protocol';
|
|
4
4
|
import '../config/schema.js';
|
|
5
5
|
import 'zod';
|
package/dist/driver/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x12dc02=_0x2d9c;(function(_0x143a7c,_0x1d55c5){const _0x4df7d1={_0x444771:0xee,_0x135acc:0xdc,_0x35814c:0xf7,_0x133bbb:0xca,_0xef9b70:0xbe,_0x5c46f3:0x10a},_0x4c4ee8=_0x2d9c,_0x4acbfa=_0x143a7c();while(!![]){try{const _0x189f2e=-parseInt(_0x4c4ee8(_0x4df7d1._0x444771))/0x1+parseInt(_0x4c4ee8(0x121))/0x2+parseInt(_0x4c4ee8(0xba))/0x3*(-parseInt(_0x4c4ee8(0xe1))/0x4)+-parseInt(_0x4c4ee8(_0x4df7d1._0x135acc))/0x5*(parseInt(_0x4c4ee8(0xe5))/0x6)+parseInt(_0x4c4ee8(_0x4df7d1._0x35814c))/0x7+-parseInt(_0x4c4ee8(0xd2))/0x8*(-parseInt(_0x4c4ee8(_0x4df7d1._0x133bbb))/0x9)+parseInt(_0x4c4ee8(_0x4df7d1._0xef9b70))/0xa*(parseInt(_0x4c4ee8(_0x4df7d1._0x5c46f3))/0xb);if(_0x189f2e===_0x1d55c5)break;else _0x4acbfa['push'](_0x4acbfa['shift']());}catch(_0x399ab2){_0x4acbfa['push'](_0x4acbfa['shift']());}}}(_0x3172,0x3a2a9));var __defProp=Object[_0x12dc02(0xb4)],__name=(_0x48da75,_0x2bead6)=>__defProp(_0x48da75,'name',{'value':_0x2bead6,'configurable':!![]});function subscribe(_0x5d893c,_0x27286a){const _0x50639a=_0x12dc02;return _0x5d893c[_0x50639a(0xf5)](_0x27286a),()=>{_0x5d893c['delete'](_0x27286a);};}function _0x3172(){const _0x5490f6=['C3vIC2nYAwjL','rhjPDMvYrxjYB3i','Bwf5yMvuAhjVDW','ChvZAa','mJG1ntf6uLHSsuu','y3vYCMvUDfvYBa','C2v0qwn0AxzLugfNzq','zw1PDezHA2vqB3b1Ca','mtq2ndyWz0rNyvHh','zg91yMXLq2XPy2S','CgfNzxm','D2fPDezVCG','lNbHz2uW','Aw5WDxrwywX1zq','D2fPDezVCLrLEhq','z290BW','D2fPDezVCLvYBa','C2nYzwvUC2HVDa','zhjHz0fUzerYB3a','BMfTzq','mJGZmJnYDLvlzxC','C2vSzwn0t3b0Aw9U','Cg9WDxbpBKnSAwnR','y29UDgv4Da','rMfRzunVBNrLEhq','Ag92zxi','yxr0ywnOrxHPC3rPBMC','zhjPDMvY','ntq0rw9mB1D5','B3v0zxjive1m','zMLSBa','zxzHBhvHDgvpBKXVy2f0B3i','BMv0D29YA0vUDhjPzxm','ywn0AxzLswr4','tg9JyxrVCKvYCM9Y','zNjHBwvtDgfJAW','ywjVDxq6yMXHBMS','y2HLy2TLzfn0yxrLqNLezwzHDwX0','ntG1C0HoyM1d','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','Bwv0Ag9K','zNvUy3rPB24','y29VA2LLu3rHDgu','ngriAe1fuG','zwXLBwvUDeHPBNrcEvjLzG','D2fPDezVCKXVywrtDgf0zq','Bg9JywXtDg9YywDLu3rHDgu','mJqZndH2wKvksNm','z29gB3j3yxjK','B25bzNrLCKnSAwnR','C2nYB2XSsw50B1zPzxC','z2v0tg9JywXtDg9YywDL','Dgv4DenVBNrLBNq','y2XVC2u','BgvUz3rO','ywn0AxzLugfNzq','mZqXodu0B2vsrxn6','zxHPDezYyw1L','CMvSB2fK','y2XVC2vgywTLugfNzq','C3rLChm','CgfNzuXPC3q','y2fWDhvYzvn0ywnRvhjHy2u','ywrK','rMfRzvDLyKrYAxzLCG','mty2mtCZEhbtyw1T','y2XPCgjVyxjKugfZDgu','D3nfBMrWB2LUDa','pgrPDJ48l2rPDJ4','iJ48l2rPDJ4','AxnwAxnPyMXL','D2fPDezVCK5HDMLNyxrPB24','Cg9W','zxzHBhvHDgu','vw5VDgvZDevYCM9Y','zxjYB3jpBK5LEhrby3rPB24','z29cywnR','BMv3ugfNzuXPC3rLBMvYCW','y3jLyxrLuMvJB3jKzxi','DgL0Bgu','zNjLzxPL','Bgf1BMnO','CMvJB3jK','pgrPDIbKyxrHlxvUB3rLC3qTCMvMpsi','mZG1D3PZAerK','yxr0ywnOrxHPC3rPBMCGBM90ihn1ChbVCNrLzcbIEsbgywTLv2vIrhjPDMvY','CMvJB3jKzxi','DxjS','BM8Gywn0AxzLihbHz2uGAw4Gy29UDgv4Da','AxneAxnHyMXLza','Bgf1BMnOzwq','CgfNzsbPBMrLEcbVDxqGB2yGCMfUz2u','z2v0qxr0CMLIDxrL','DxbSB2fKrMLSzq','C2nVCgu','zMfRzsb0AxrSzq','y291BNq','y29UDgv4Dhm','BMv3q29UDgv4Da','C2v0q29VA2LL','Aw5ZCgvJDevSzw1LBNq','y2HLy2TLzfn0yxrL','zMLSDgvY','yMvOyxzPB3i','y2XPy2S','y29UBMvJDfnOyxjLza','zNjHBwvezxb0Aa','nJi4mtiYzMfOtMLR','C2f2zvn0B3jHz2vtDgf0zq','zw50zxjgCMfTzq','Dgv4DenVBNrLBNrcEurLzMf1Bhq','C2v0tg9JywXtDg9YywDL','lNbHz2u','z2v0q29VA2LL','CMvM','ChjLC3m','y29VA2LLCW','y3r4','Aw5WDxrwywX1zuj5rgvMyxvSDa','Dw5JAgvJAW','A2LUza','zgvMAw5LuhjVCgvYDhK','y29UC29SzuvUDhjPzxm'];_0x3172=function(){return _0x5490f6;};return _0x3172();}__name(subscribe,_0x12dc02(0xb6));var UnotestError=class extends Error{static{__name(this,_0x12dc02(0x100));}[_0x12dc02(0xcd)];constructor(_0x486247,_0x13448d={}){const _0x15af56={_0x71174e:0xc9,_0x4517f9:0xcd,_0x3b76e9:0x106},_0x594ff4=_0x12dc02;super(_0x486247),this[_0x594ff4(_0x15af56._0x71174e)]=new.target.name,this[_0x594ff4(_0x15af56._0x4517f9)]=Object[_0x594ff4(_0x15af56._0x3b76e9)]({..._0x13448d}),typeof Error[_0x594ff4(0xf4)]===_0x594ff4(0xdf)&&Error[_0x594ff4(0xf4)](this,new.target);}},DriverError=class extends UnotestError{static{__name(this,_0x12dc02(0xb7));}},LocatorError=class extends UnotestError{static{__name(this,_0x12dc02(0xd8));}};function _0x2d9c(_0x2a9477,_0x2859c9){_0x2a9477=_0x2a9477-0xb3;const _0x3172c2=_0x3172();let _0x2d9c40=_0x3172c2[_0x2a9477];if(_0x2d9c['sAvxyT']===undefined){var _0x1f08b8=function(_0x77e38d){const _0x2ab3e1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x48da75='',_0x2bead6='';for(let _0x5d893c=0x0,_0x27286a,_0x486247,_0x13448d=0x0;_0x486247=_0x77e38d['charAt'](_0x13448d++);~_0x486247&&(_0x27286a=_0x5d893c%0x4?_0x27286a*0x40+_0x486247:_0x486247,_0x5d893c++%0x4)?_0x48da75+=String['fromCharCode'](0xff&_0x27286a>>(-0x2*_0x5d893c&0x6)):0x0){_0x486247=_0x2ab3e1['indexOf'](_0x486247);}for(let _0x1b24ad=0x0,_0x137e5c=_0x48da75['length'];_0x1b24ad<_0x137e5c;_0x1b24ad++){_0x2bead6+='%'+('00'+_0x48da75['charCodeAt'](_0x1b24ad)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2bead6);};_0x2d9c['CBUYUF']=_0x1f08b8,_0x2d9c['AWuegY']={},_0x2d9c['sAvxyT']=!![];}const _0x10af18=_0x3172c2[0x0],_0x2d1c25=_0x2a9477+_0x10af18,_0x58eab8=_0x2d9c['AWuegY'][_0x2d1c25];return!_0x58eab8?(_0x2d9c40=_0x2d9c['CBUYUF'](_0x2d9c40),_0x2d9c['AWuegY'][_0x2d1c25]=_0x2d9c40):_0x2d9c40=_0x58eab8,_0x2d9c40;}function createRecorder(){const _0x419255=_0x12dc02,_0x1b24ad=[];let _0x137e5c=0x0;return{'push':__name(_0x5066eb=>_0x1b24ad[_0x419255(0xb9)]({..._0x5066eb,'seq':_0x137e5c++}),_0x419255(0xb9)),'calls':__name(()=>_0x1b24ad,'calls')};}__name(createRecorder,_0x12dc02(0x104));var FakePage=class{constructor(_0x314771,_0x5ce5d8,_0x1a5837,_0x2730a5){const _0x1b2993={_0x5e310f:0x10c,_0x29d339:0xbb},_0x9b5d31=_0x12dc02;this[_0x9b5d31(_0x1b2993._0x5e310f)]=_0x314771,this[_0x9b5d31(0x11d)]=_0x5ce5d8,this[_0x9b5d31(0x114)]=_0x1a5837,this[_0x9b5d31(_0x1b2993._0x29d339)]=_0x2730a5;}[_0x12dc02(0x10c)];[_0x12dc02(0x11d)];[_0x12dc02(0x114)];static{__name(this,'FakePage');}[_0x12dc02(0xbb)];[_0x12dc02(0xe7)];[_0x12dc02(0x108)](_0x7ada4f,_0x4e8bcd){const _0x2bc691={_0x230874:0x10c,_0x50c001:0xb9},_0x3d7c19=_0x12dc02;this[_0x3d7c19(_0x2bc691._0x230874)][_0x3d7c19(_0x2bc691._0x50c001)]({'scope':this['scope'],'method':_0x7ada4f,'args':_0x4e8bcd});}['maybeThrow'](){const _0x32e65c={_0x549413:0x11d,_0x5b675b:0x101},_0x4f8db8=_0x12dc02;if(this['behavior'][_0x4f8db8(0x101)]){const _0x173fa9=this['behavior'][_0x4f8db8(0x101)];this[_0x4f8db8(_0x32e65c._0x549413)][_0x4f8db8(_0x32e65c._0x5b675b)]=void 0x0;throw _0x173fa9;}}[_0x12dc02(0x10d)](){return this['currentUrl'];}async[_0x12dc02(0x105)](){const _0x58a6d7={_0x488dee:0x108,_0x4bbc45:0x105,_0x4b8b00:0x115},_0x1d4921=_0x12dc02;return this[_0x1d4921(_0x58a6d7._0x488dee)](_0x1d4921(_0x58a6d7._0x4bbc45),[]),_0x1d4921(_0x58a6d7._0x4b8b00);}async['click'](_0x2ca204,_0xfa1c34){const _0x414195={_0x5db2ad:0xb8,_0x3505bd:0xe7},_0x5ae7b9=_0x12dc02;this[_0x5ae7b9(0x108)](_0x5ae7b9(0x11e),[_0x2ca204,_0xfa1c34]),this[_0x5ae7b9(_0x414195._0x5db2ad)](),this[_0x5ae7b9(_0x414195._0x3505bd)]?.();}async[_0x12dc02(0xbf)](_0x2eb4a9,_0x30fb8f){this['record']('doubleClick',[_0x2eb4a9,_0x30fb8f]),this['maybeThrow']();}async[_0x12dc02(0xd4)](_0x4e09e9,_0x30a971,_0x2cb39d){const _0x3708c8={_0x3005ce:0xd4},_0x4df158=_0x12dc02;this[_0x4df158(0x108)](_0x4df158(_0x3708c8._0x3005ce),[_0x4e09e9,_0x30a971,_0x2cb39d]),this[_0x4df158(0xb8)]();}async[_0x12dc02(0x129)](_0x22007d,_0x293674,_0x4bec5d){const _0x30a4b4={_0x3e55d0:0x129},_0x2ddcdc=_0x12dc02;this[_0x2ddcdc(0x108)](_0x2ddcdc(_0x30a4b4._0x3e55d0),[_0x22007d,_0x293674,_0x4bec5d]),this[_0x2ddcdc(0xb8)]();}async['check'](_0xb6485b,_0x37d787){const _0x3614e4={_0x57592f:0x108},_0x2dd67b=_0x12dc02;this[_0x2dd67b(_0x3614e4._0x57592f)]('check',[_0xb6485b,_0x37d787]),this['maybeThrow']();}async[_0x12dc02(0x12d)](_0x14bb81,_0x1e5b94){const _0x45a465=_0x12dc02;this[_0x45a465(0x108)](_0x45a465(0x12d),[_0x14bb81,_0x1e5b94]),this[_0x45a465(0xb8)]();}async['selectOption'](_0x31d9a7,_0x19fd0f,_0x512adf){const _0x2ec9d6={_0x5ba9ee:0xb8},_0x5f5252=_0x12dc02;this['record'](_0x5f5252(0xcb),[_0x31d9a7,_0x19fd0f,_0x512adf]),this[_0x5f5252(_0x2ec9d6._0x5ba9ee)]();}async[_0x12dc02(0xcf)](_0x5b560c,_0x386fab){const _0x41cca8={_0x503178:0x108,_0x15f894:0xcf},_0x42744b=_0x12dc02;this[_0x42744b(_0x41cca8._0x503178)](_0x42744b(_0x41cca8._0x15f894),[_0x5b560c,_0x386fab]),this[_0x42744b(0xb8)]();}async[_0x12dc02(0xe8)](_0x3ccc32){const _0x1e9877={_0x186e24:0xb8},_0x5613e9=_0x12dc02;this[_0x5613e9(0x108)](_0x5613e9(0xe8),[_0x3ccc32]),this[_0x5613e9(_0x1e9877._0x186e24)]();}async[_0x12dc02(0xc8)](_0x13e422,_0xa28976,_0x3ee326){const _0x20307e={_0x1b7204:0x108,_0x597cbb:0xc8,_0x4bcd08:0xb8},_0x159543=_0x12dc02;this[_0x159543(_0x20307e._0x1b7204)](_0x159543(_0x20307e._0x597cbb),[_0x13e422,_0xa28976,_0x3ee326]),this[_0x159543(_0x20307e._0x4bcd08)]();}async[_0x12dc02(0x113)](_0x3a4479,_0x118e32){const _0x3e4f51={_0x5bc40b:0x113},_0x4a51e3=_0x12dc02;this['record'](_0x4a51e3(_0x3e4f51._0x5bc40b),[_0x3a4479,_0x118e32]),this['maybeThrow']();}async[_0x12dc02(0xf8)](_0xdc4d9,_0xcb367c){const _0x456d42={_0x35b301:0x108},_0x420eda=_0x12dc02;this[_0x420eda(_0x456d42._0x35b301)]('clipboardPaste',[_0xdc4d9,_0xcb367c]),this['maybeThrow']();}async['count'](_0x4cf1a3){const _0x4db7ae={_0xe38a52:0x108,_0x60575a:0x116},_0xc838f2=_0x12dc02;return this[_0xc838f2(_0x4db7ae._0xe38a52)](_0xc838f2(_0x4db7ae._0x60575a),[_0x4cf1a3]),this['behavior']['countByDefault']??0x1;}async['textContent'](_0x4f7934){const _0x126bec={_0x5c85e2:0x11d},_0x346762=_0x12dc02;return this[_0x346762(0x108)](_0x346762(0xea),[_0x4f7934]),this[_0x346762(_0x126bec._0x5c85e2)][_0x346762(0x124)]??'';}async[_0x12dc02(0xc3)](_0x1a4666){const _0x529722={_0x1cd09b:0x12c},_0x1ee32c=_0x12dc02;return this['record'](_0x1ee32c(0xc3),[_0x1a4666]),this[_0x1ee32c(0x11d)][_0x1ee32c(_0x529722._0x1cd09b)]??'';}async['checkedState'](_0x10fc5d){const _0x245934={_0x5b5739:0x11b,_0x2fc309:0x11d,_0x1c0de2:0xdb},_0x8d4edf=_0x12dc02;return this[_0x8d4edf(0x108)](_0x8d4edf(_0x245934._0x5b5739),[_0x10fc5d]),this[_0x8d4edf(_0x245934._0x2fc309)][_0x8d4edf(_0x245934._0x1c0de2)]??null;}async[_0x12dc02(0xfc)](_0x231a24){const _0x29177f={_0x20c37f:0xfc},_0x5296a8=_0x12dc02;return this['record'](_0x5296a8(_0x29177f._0x20c37f),[_0x231a24]),this[_0x5296a8(0x11d)]['isVisibleByDefault']??!![];}async[_0x12dc02(0x10f)](_0x52d618){const _0xd59dff={_0x290fe2:0x10f,_0x8bc06a:0x11d},_0x28934e=_0x12dc02;return this['record'](_0x28934e(_0xd59dff._0x290fe2),[_0x52d618]),this[_0x28934e(_0xd59dff._0x8bc06a)]['isDisabledByDefault']??![];}async[_0x12dc02(0x112)](_0x42f26e,_0x4658b4){const _0x7caa74={_0x16304b:0x108},_0x371565=_0x12dc02;return this[_0x371565(_0x7caa74._0x16304b)]('getAttribute',[_0x42f26e,_0x4658b4]),this['behavior']['attributesByDefault']?.[_0x4658b4]??null;}async[_0x12dc02(0xc1)](_0x2b50a3,_0x1fef04){const _0xbd5395={_0x53fe37:0x108},_0xc8e7a6=_0x12dc02;this[_0xc8e7a6(_0xbd5395._0x53fe37)](_0xc8e7a6(0xc1),[_0x2b50a3,_0x1fef04]);}async[_0x12dc02(0xc6)](_0x1d3c9a,_0x55e824){const _0x3da741={_0x11bbbb:0x108},_0x2e0954=_0x12dc02;this[_0x2e0954(_0x3da741._0x11bbbb)](_0x2e0954(0xc6),[_0x1d3c9a,_0x55e824]);}async[_0x12dc02(0xc4)](_0x5923eb,_0x5b6a97){const _0x2b6d66=_0x12dc02;this['record'](_0x2b6d66(0xc4),[_0x5923eb,_0x5b6a97]);}async[_0x12dc02(0xfd)](_0x1bc49a){this['record']('waitForNavigation',[_0x1bc49a]);}async[_0x12dc02(0xe3)](_0x199c39,_0x306179){const _0x2aaaf4=_0x12dc02;this[_0x2aaaf4(0x108)](_0x2aaaf4(0xe3),[_0x199c39,_0x306179]);}async[_0x12dc02(0xc5)](_0x5ed76b,_0x46ae65){const _0x21e52b=_0x12dc02;this['record'](_0x21e52b(0xc5),[_0x5ed76b,_0x46ae65]),this[_0x21e52b(0xbb)]=_0x5ed76b;}async[_0x12dc02(0xf0)](_0x90b9fe){const _0x35cb78={_0xc57cd4:0x108,_0x5db068:0xf0},_0x59cb5f=_0x12dc02;this[_0x59cb5f(_0x35cb78._0xc57cd4)](_0x59cb5f(_0x35cb78._0x5db068),[_0x90b9fe]);}async[_0x12dc02(0x102)](_0x47e53b){const _0x3ea64f={_0x36a8f3:0x102},_0x4a96f3=_0x12dc02;this['record'](_0x4a96f3(_0x3ea64f._0x36a8f3),[_0x47e53b]);}async[_0x12dc02(0xe6)](_0x51f7a6){const _0x5935f3=_0x12dc02;this['record'](_0x5935f3(0xe6),[_0x51f7a6]);}async[_0x12dc02(0xff)](_0x2c7b1f){const _0x315961=_0x12dc02;return this[_0x315961(0x108)](_0x315961(0xff),[_0x2c7b1f]),void 0x0;}async[_0x12dc02(0xd5)](_0x4ebed0,_0x213bd7){const _0x4af6c4={_0x377829:0xd5},_0x486b09=_0x12dc02;return this['record'](_0x486b09(_0x4af6c4._0x377829),[_0x4ebed0,_0x213bd7]),void 0x0;}async[_0x12dc02(0x11a)](_0x1a40a8){const _0x1ef3bb={_0x31b5f5:0xec,_0x5e48b0:0xf2,_0x5cd7fe:0xb3,_0xf49a13:0x128,_0x5df8f1:0x11d},_0x3806b6=_0x12dc02;this[_0x3806b6(0x108)](_0x3806b6(0x11a),[_0x1a40a8]);if(_0x1a40a8['steps'][_0x3806b6(_0x1ef3bb._0x31b5f5)]!==0x1||_0x1a40a8[_0x3806b6(_0x1ef3bb._0x5e48b0)][0x0][_0x3806b6(_0x1ef3bb._0x5cd7fe)]!==_0x3806b6(0x128))return null;const _0x2596ab=_0x1a40a8['steps'][0x0][_0x3806b6(_0x1ef3bb._0xf49a13)],_0x7a04d8=this[_0x3806b6(_0x1ef3bb._0x5df8f1)][_0x3806b6(0xe2)]?.[_0x2596ab];return _0x7a04d8??null;}async[_0x12dc02(0xc7)](_0x13ff00){const _0x1db07f={_0x2ff545:0xc7},_0x3d6879=_0x12dc02;return this[_0x3d6879(0x108)](_0x3d6879(_0x1db07f._0x2ff545),[_0x13ff00]),Buffer['from']('fake-png');}async[_0x12dc02(0xd3)](_0xebe3f4){const _0x1f5920={_0x52613a:0x108,_0x504ac1:0xec,_0x447f18:0xb3,_0x301227:0x11d,_0x3a077b:0x109},_0x34fac7=_0x12dc02;this[_0x34fac7(_0x1f5920._0x52613a)](_0x34fac7(0xd3),[_0xebe3f4]);if(_0xebe3f4['steps'][_0x34fac7(_0x1f5920._0x504ac1)]===0x1&&_0xebe3f4[_0x34fac7(0xf2)][0x0][_0x34fac7(_0x1f5920._0x447f18)]===_0x34fac7(0x128)){const _0x2345c6=_0xebe3f4['steps'][0x0]['ref'];return this[_0x34fac7(_0x1f5920._0x301227)]['outerHtmlByRef']?.[_0x2345c6]??_0x34fac7(_0x1f5920._0x3a077b)+_0x2345c6+_0x34fac7(0xfb);}return _0x34fac7(0xfa);}},FakeContext=class{constructor(_0x3268a6,_0xe1de38,_0xcc0870){const _0x3bc8c3={_0x158cf4:0x114,_0x41252d:0xe0,_0x28ab67:0x12a},_0x55a6d6={_0x18ea17:0xbd},_0xf8a96a=_0x12dc02;this[_0xf8a96a(0x10c)]=_0x3268a6,this[_0xf8a96a(0x11d)]=_0xe1de38,this[_0xf8a96a(_0x3bc8c3._0x158cf4)]=_0xcc0870;const _0x50159a=new FakePage(_0x3268a6,_0xe1de38,_0xcc0870+_0xf8a96a(0xc2),_0xe1de38['initialUrl']??_0xf8a96a(0xda));_0xe1de38['popupOnClick']&&(_0x50159a[_0xf8a96a(0xe7)]=()=>{const _0xecbfbc=_0xf8a96a;this[_0xecbfbc(_0x55a6d6._0x18ea17)](_0xe1de38[_0xecbfbc(0xcc)]);}),this[_0xf8a96a(0xf3)]=[_0x50159a],this['localStorageState']={..._0xe1de38['localStorage']??{}},this[_0xf8a96a(_0x3bc8c3._0x41252d)]={..._0xe1de38[_0xf8a96a(_0x3bc8c3._0x28ab67)]??{}};}[_0x12dc02(0x10c)];[_0x12dc02(0x11d)];['scope'];static{__name(this,_0x12dc02(0xce));}[_0x12dc02(0xf3)];[_0x12dc02(0xd7)]=0x0;['frameStack']=[];['localStorageState'];['cookieState'];[_0x12dc02(0x103)]=new Set();[_0x12dc02(0x108)](_0x376009,_0x257404){const _0x42b8dc={_0x2a3148:0xb9,_0x487ed7:0x114},_0x212757=_0x12dc02;this[_0x212757(0x10c)][_0x212757(_0x42b8dc._0x2a3148)]({'scope':this[_0x212757(_0x42b8dc._0x487ed7)],'method':_0x376009,'args':_0x257404});}[_0x12dc02(0xc0)](){const _0x168091={_0x161085:0xf3},_0x2809b6=_0x12dc02;return this[_0x2809b6(_0x168091._0x161085)];}[_0x12dc02(0xed)](){const _0x5ec522={_0x5c2f9a:0xf3,_0x4a98bc:0xd7},_0x398909=_0x12dc02,_0x5d2a54=this[_0x398909(_0x5ec522._0x5c2f9a)][this['activeIdx']];if(!_0x5d2a54)throw new DriverError(_0x398909(0x10e),{'activeIdx':this[_0x398909(_0x5ec522._0x4a98bc)]});return _0x5d2a54;}[_0x12dc02(0xb5)](){const _0xb712df=_0x12dc02;return this['behavior'][_0xb712df(0xb5)]??[];}[_0x12dc02(0xd6)](){const _0x30612f={_0x542c56:0xd6},_0x2ab146=_0x12dc02;return this['behavior'][_0x2ab146(_0x30612f._0x542c56)]??[];}async[_0x12dc02(0xbc)](_0x4f67b1){const _0x3ccc93={_0x31d7bc:0x108,_0x1c8ba5:0x111,_0x28b632:0xd9,_0x2d1071:0xec},_0x374bba=_0x12dc02;this[_0x374bba(_0x3ccc93._0x31d7bc)](_0x374bba(0xbc),[_0x4f67b1]);if(_0x4f67b1<0x0||_0x4f67b1>=this[_0x374bba(0xf3)][_0x374bba(0xec)])throw new DriverError(_0x374bba(_0x3ccc93._0x1c8ba5),{'index':_0x4f67b1,'available':this[_0x374bba(0xf3)][_0x374bba(0xec)]});this['activeIdx']=_0x4f67b1,this[_0x374bba(_0x3ccc93._0x28b632)][_0x374bba(_0x3ccc93._0x2d1071)]=0x0;}['onNewPage'](_0x4e533e){const _0x54f07b=_0x12dc02;return subscribe(this[_0x54f07b(0x103)],_0x4e533e);}['emitFakePopup'](_0x1f4ee8){const _0x4221cf={_0x2f8365:0x126,_0x3d1676:0xec,_0x340c9b:0xec,_0x2d31fc:0x103},_0x45187b=_0x12dc02,_0x2767a7=this['scope']+_0x45187b(_0x4221cf._0x2f8365)+this['pageList'][_0x45187b(_0x4221cf._0x3d1676)],_0x258f68=new FakePage(this['recorder'],this[_0x45187b(0x11d)],_0x2767a7,_0x1f4ee8);this[_0x45187b(0xf3)][_0x45187b(0xb9)](_0x258f68);const _0x21f34a=this[_0x45187b(0xf3)][_0x45187b(_0x4221cf._0x340c9b)]-0x1;for(const _0x20107b of this[_0x45187b(_0x4221cf._0x2d31fc)]){try{_0x20107b({'index':_0x21f34a,'url':_0x1f4ee8});}catch{}}return _0x21f34a;}[_0x12dc02(0xf1)](_0x5b3630){const _0x27074b={_0x1c350c:0xec,_0x55d9d0:0xf3},_0x3b7596=_0x12dc02;if(_0x5b3630<0x0||_0x5b3630>=this['pageList'][_0x3b7596(_0x27074b._0x1c350c)])throw new DriverError(_0x3b7596(0x111),{'index':_0x5b3630,'available':this['pageList'][_0x3b7596(0xec)]});this[_0x3b7596(_0x27074b._0x55d9d0)]['splice'](_0x5b3630,0x1);}async[_0x12dc02(0x123)](_0x1f8203){const _0x375329={_0x3fefa4:0x108,_0x665a22:0xf2},_0x3eeb75=_0x12dc02;this[_0x3eeb75(_0x375329._0x3fefa4)](_0x3eeb75(0x123),[_0x1f8203]);if(!_0x1f8203[_0x3eeb75(_0x375329._0x665a22)]['length'])throw new LocatorError('enterFrame\x20called\x20with\x20empty\x20locator',{'locator':_0x1f8203});this[_0x3eeb75(0xd9)][_0x3eeb75(0xb9)](_0x1f8203);}async['exitFrame'](){const _0x4ce4c1={_0xa04a91:0xec},_0x1b07d7=_0x12dc02;this[_0x1b07d7(0x108)](_0x1b07d7(0xef),[]);if(this['frameStack'][_0x1b07d7(_0x4ce4c1._0xa04a91)]===0x0)throw new DriverError(_0x1b07d7(0xdd),{});this[_0x1b07d7(0xd9)][_0x1b07d7(0xfe)]();}async[_0x12dc02(0x125)](_0x1937de,_0x8a48f0){const _0x1ae1b2={_0x24729b:0x108,_0x1a7be7:0xe4},_0x30331a=_0x12dc02;this[_0x30331a(_0x1ae1b2._0x24729b)]('setLocalStorage',[_0x1937de,_0x8a48f0]),this[_0x30331a(_0x1ae1b2._0x1a7be7)][_0x1937de]=_0x8a48f0;}async['getLocalStorage'](_0x3df444){const _0x352801=_0x12dc02;return this['record'](_0x352801(0xe9),[_0x3df444]),this[_0x352801(0xe4)][_0x3df444]??null;}async[_0x12dc02(0x119)](_0x5da77e,_0x2bf885,_0x1f8a35){const _0x3c5faf={_0x20bf3c:0x108,_0x46ffec:0xe0},_0x5557b7=_0x12dc02;this[_0x5557b7(_0x3c5faf._0x20bf3c)](_0x5557b7(0x119),[_0x5da77e,_0x2bf885,_0x1f8a35]),this[_0x5557b7(_0x3c5faf._0x46ffec)][_0x5da77e]=_0x2bf885;}async[_0x12dc02(0x127)](_0x1b0eaf){const _0x5c4fe6=_0x12dc02;return this[_0x5c4fe6(0x108)]('getCookie',[_0x1b0eaf]),this[_0x5c4fe6(0xe0)][_0x1b0eaf]??null;}async[_0x12dc02(0x122)](_0x85725a){const _0x1dad69={_0x3b6efe:0x108},_0x2f123d=_0x12dc02;this[_0x2f123d(_0x1dad69._0x3b6efe)](_0x2f123d(0x122),[_0x85725a]);}async['evaluate'](_0x42fdf7){const _0xfe9ce6=_0x12dc02;return this[_0xfe9ce6(0x108)]('evaluate',[_0x42fdf7]),void 0x0;}async[_0x12dc02(0xeb)](){const _0x4b713b={_0x1673dd:0xeb},_0x4f377b=_0x12dc02;this[_0x4f377b(0x108)](_0x4f377b(_0x4b713b._0x1673dd),[]);}[_0x12dc02(0x120)](){const _0x340582={_0x4ab43a:0xec},_0xf488e8=_0x12dc02;return this[_0xf488e8(0xd9)][_0xf488e8(_0x340582._0x4ab43a)];}},FakeWebDriver=class{constructor(_0x29563e={}){const _0x11c12a=_0x12dc02;this[_0x11c12a(0x11d)]=_0x29563e,this['recorder']=createRecorder();}[_0x12dc02(0x11d)];static{__name(this,_0x12dc02(0xf6));}[_0x12dc02(0x110)]=![];[_0x12dc02(0x10c)];[_0x12dc02(0x117)]=[];async[_0x12dc02(0x107)](_0x19cf90){const _0x15f3b2={_0x5876de:0xd1},_0x5ef122=_0x12dc02;this[_0x5ef122(0x10c)][_0x5ef122(0xb9)]({'scope':_0x5ef122(_0x15f3b2._0x5876de),'method':_0x5ef122(0x107),'args':[_0x19cf90]}),this['launched']=!![];}async[_0x12dc02(0x118)](_0x106bf6){const _0x2eabd2={_0x438c5b:0x12b,_0x4da1d1:0x117,_0x133e87:0xb9},_0x3423a4=_0x12dc02;this[_0x3423a4(0x10c)][_0x3423a4(0xb9)]({'scope':'driver','method':'newContext','args':[_0x106bf6]});if(!this['launched'])throw new DriverError('newContext\x20called\x20before\x20launch()',{});const _0x33d2f2=new FakeContext(this['recorder'],this['behavior'],_0x3423a4(_0x2eabd2._0x438c5b)+this[_0x3423a4(_0x2eabd2._0x4da1d1)]['length']);return this['contexts'][_0x3423a4(_0x2eabd2._0x133e87)](_0x33d2f2),_0x33d2f2;}async[_0x12dc02(0xeb)](){const _0x4caf49={_0x125015:0xd1},_0x2bcf77=_0x12dc02;this['recorder']['push']({'scope':_0x2bcf77(_0x4caf49._0x125015),'method':'close','args':[]}),this[_0x2bcf77(0x110)]=![];}[_0x12dc02(0xf9)](){return void 0x0;}async[_0x12dc02(0x11f)](){throw new DriverError('connectShared\x20not\x20supported\x20by\x20FakeWebDriver',{});}[_0x12dc02(0xd0)](){const _0x3d43b3=_0x12dc02;throw new DriverError(_0x3d43b3(0x10b),{});}['calls'](){const _0x3a9156={_0x330867:0x10c},_0x16359f=_0x12dc02;return this[_0x16359f(_0x3a9156._0x330867)]['calls']();}['callsFor'](_0x41653a){const _0x4c8628=_0x12dc02;return this['recorder']['calls']()[_0x4c8628(0x11c)](_0x358695=>_0x358695[_0x4c8628(0xde)]===_0x41653a);}};export{FakeWebDriver};
|
|
1
|
+
const _0x2744d9=_0x2fd3;(function(_0x4f30cd,_0x57fa0e){const _0x35341a={_0x162357:0x143,_0x1260df:0x128,_0x2ce412:0x160,_0x1753b0:0x14c,_0x507c20:0x10d},_0x157ce7=_0x2fd3,_0x22ed87=_0x4f30cd();while(!![]){try{const _0x55603d=parseInt(_0x157ce7(_0x35341a._0x162357))/0x1*(-parseInt(_0x157ce7(0x165))/0x2)+-parseInt(_0x157ce7(_0x35341a._0x1260df))/0x3*(parseInt(_0x157ce7(_0x35341a._0x2ce412))/0x4)+-parseInt(_0x157ce7(_0x35341a._0x1753b0))/0x5*(-parseInt(_0x157ce7(0x115))/0x6)+-parseInt(_0x157ce7(_0x35341a._0x507c20))/0x7+-parseInt(_0x157ce7(0x118))/0x8+parseInt(_0x157ce7(0x109))/0x9+parseInt(_0x157ce7(0x125))/0xa;if(_0x55603d===_0x57fa0e)break;else _0x22ed87['push'](_0x22ed87['shift']());}catch(_0x1ad6e5){_0x22ed87['push'](_0x22ed87['shift']());}}}(_0x32ef,0x5da95));var __defProp=Object[_0x2744d9(0x107)],__name=(_0x22bfc2,_0x236a12)=>__defProp(_0x22bfc2,_0x2744d9(0x134),{'value':_0x236a12,'configurable':!![]});function subscribe(_0xa0461c,_0x3b47dc){return _0xa0461c['add'](_0x3b47dc),()=>{_0xa0461c['delete'](_0x3b47dc);};}__name(subscribe,_0x2744d9(0x106));import{UnotestError}from'@unotest/core';var DriverError=class extends UnotestError{static{__name(this,_0x2744d9(0xfc));}},LocatorError=class extends UnotestError{static{__name(this,'LocatorError');}};function _0x2fd3(_0x3b88e9,_0x551163){_0x3b88e9=_0x3b88e9-0xf5;const _0x32ef4c=_0x32ef();let _0x2fd313=_0x32ef4c[_0x3b88e9];if(_0x2fd3['Hmavpk']===undefined){var _0x30098e=function(_0x31b4c8){const _0x5daf38='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x22bfc2='',_0x236a12='';for(let _0xa0461c=0x0,_0x3b47dc,_0x4ea2de,_0x50df5f=0x0;_0x4ea2de=_0x31b4c8['charAt'](_0x50df5f++);~_0x4ea2de&&(_0x3b47dc=_0xa0461c%0x4?_0x3b47dc*0x40+_0x4ea2de:_0x4ea2de,_0xa0461c++%0x4)?_0x22bfc2+=String['fromCharCode'](0xff&_0x3b47dc>>(-0x2*_0xa0461c&0x6)):0x0){_0x4ea2de=_0x5daf38['indexOf'](_0x4ea2de);}for(let _0x245578=0x0,_0x406471=_0x22bfc2['length'];_0x245578<_0x406471;_0x245578++){_0x236a12+='%'+('00'+_0x22bfc2['charCodeAt'](_0x245578)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x236a12);};_0x2fd3['WGwyZP']=_0x30098e,_0x2fd3['UgNFac']={},_0x2fd3['Hmavpk']=!![];}const _0x56420=_0x32ef4c[0x0],_0x211c26=_0x3b88e9+_0x56420,_0x32399f=_0x2fd3['UgNFac'][_0x211c26];return!_0x32399f?(_0x2fd313=_0x2fd3['WGwyZP'](_0x2fd313),_0x2fd3['UgNFac'][_0x211c26]=_0x2fd313):_0x2fd313=_0x32399f,_0x2fd313;}function createRecorder(){const _0x5dd118=_0x2744d9,_0x4ea2de=[];let _0x50df5f=0x0;return{'push':__name(_0x245578=>_0x4ea2de['push']({..._0x245578,'seq':_0x50df5f++}),'push'),'calls':__name(()=>_0x4ea2de,_0x5dd118(0x159))};}__name(createRecorder,'createRecorder');var FakePage=class{constructor(_0x406471,_0xa97cc2,_0x549614,_0x5e605b){const _0xbcfaa6={_0x493182:0x121},_0x40f148=_0x2744d9;this[_0x40f148(0x123)]=_0x406471,this[_0x40f148(_0xbcfaa6._0x493182)]=_0xa97cc2,this['scope']=_0x549614,this[_0x40f148(0x10f)]=_0x5e605b;}['recorder'];[_0x2744d9(0x121)];[_0x2744d9(0x16f)];static{__name(this,_0x2744d9(0xf6));}['currentUrl'];[_0x2744d9(0x137)];[_0x2744d9(0x12c)](_0x25cf5a,_0x3572a6){const _0x2417e0={_0x1f0d9e:0xf7},_0x539e65=_0x2744d9;this['recorder'][_0x539e65(_0x2417e0._0x1f0d9e)]({'scope':this[_0x539e65(0x16f)],'method':_0x25cf5a,'args':_0x3572a6});}[_0x2744d9(0x140)](){const _0x2c3556={_0x4303c2:0x117,_0x52ec0a:0x117},_0x92e4bd=_0x2744d9;if(this[_0x92e4bd(0x121)][_0x92e4bd(0x117)]){const _0x29dd18=this[_0x92e4bd(0x121)][_0x92e4bd(_0x2c3556._0x4303c2)];this[_0x92e4bd(0x121)][_0x92e4bd(_0x2c3556._0x52ec0a)]=void 0x0;throw _0x29dd18;}}[_0x2744d9(0x10b)](){const _0xe0c41a=_0x2744d9;return this[_0xe0c41a(0x10f)];}async['title'](){const _0x405251={_0x303a7a:0x119},_0x29023d=_0x2744d9;return this['record']('title',[]),_0x29023d(_0x405251._0x303a7a);}async['click'](_0x10808b,_0x601c72){const _0x44ca71={_0x5e3025:0x12c,_0x5b5f86:0xfd,_0x58757a:0x137},_0x58180a=_0x2744d9;this[_0x58180a(_0x44ca71._0x5e3025)](_0x58180a(_0x44ca71._0x5b5f86),[_0x10808b,_0x601c72]),this[_0x58180a(0x140)](),this[_0x58180a(_0x44ca71._0x58757a)]?.();}async[_0x2744d9(0x108)](_0x1c6715,_0x3549e0){const _0x1f2ef2={_0x377bed:0x12c,_0x1bfb3a:0x108},_0x40c14f=_0x2744d9;this[_0x40c14f(_0x1f2ef2._0x377bed)](_0x40c14f(_0x1f2ef2._0x1bfb3a),[_0x1c6715,_0x3549e0]),this[_0x40c14f(0x140)]();}async['fill'](_0x5690dc,_0x68d980,_0x273caa){const _0x4e2bf5={_0x4b1a8d:0x12c,_0x278037:0x136},_0x295102=_0x2744d9;this[_0x295102(_0x4e2bf5._0x4b1a8d)](_0x295102(_0x4e2bf5._0x278037),[_0x5690dc,_0x68d980,_0x273caa]),this[_0x295102(0x140)]();}async['press'](_0x5ca742,_0x1044e0,_0x458270){const _0x44d179=_0x2744d9;this['record'](_0x44d179(0x12b),[_0x5ca742,_0x1044e0,_0x458270]),this[_0x44d179(0x140)]();}async[_0x2744d9(0x13f)](_0x3c0055,_0x2f9508){const _0x35d8d5={_0x2b552b:0x13f,_0x4b70ab:0x140},_0x4ee69a=_0x2744d9;this[_0x4ee69a(0x12c)](_0x4ee69a(_0x35d8d5._0x2b552b),[_0x3c0055,_0x2f9508]),this[_0x4ee69a(_0x35d8d5._0x4b70ab)]();}async[_0x2744d9(0x133)](_0xf2f7d1,_0x4e8248){const _0x32c81e={_0x3bc508:0x12c,_0x38b4aa:0x133},_0x5dd047=_0x2744d9;this[_0x5dd047(_0x32c81e._0x3bc508)](_0x5dd047(_0x32c81e._0x38b4aa),[_0xf2f7d1,_0x4e8248]),this[_0x5dd047(0x140)]();}async[_0x2744d9(0xfa)](_0x2062a4,_0x377342,_0x3a699f){const _0x45e84b={_0x20518a:0x12c},_0x566e68=_0x2744d9;this[_0x566e68(_0x45e84b._0x20518a)]('selectOption',[_0x2062a4,_0x377342,_0x3a699f]),this[_0x566e68(0x140)]();}async['hover'](_0x7d5f30,_0x3d7b2b){const _0x6e690a=_0x2744d9;this['record']('hover',[_0x7d5f30,_0x3d7b2b]),this[_0x6e690a(0x140)]();}async[_0x2744d9(0x151)](_0x26cd0c){const _0x4e83a7=_0x2744d9;this[_0x4e83a7(0x12c)]('scrollIntoView',[_0x26cd0c]),this['maybeThrow']();}async[_0x2744d9(0x148)](_0x1313b4,_0x59d359,_0x438e76){const _0xed5c71={_0x185b11:0x148},_0x2f9f14=_0x2744d9;this[_0x2f9f14(0x12c)](_0x2f9f14(_0xed5c71._0x185b11),[_0x1313b4,_0x59d359,_0x438e76]),this['maybeThrow']();}async['uploadFile'](_0x26856d,_0xca32c1){const _0xe78ab4={_0x32590b:0x12c,_0x2139c6:0x12f},_0x3a05e1=_0x2744d9;this[_0x3a05e1(_0xe78ab4._0x32590b)](_0x3a05e1(_0xe78ab4._0x2139c6),[_0x26856d,_0xca32c1]),this['maybeThrow']();}async[_0x2744d9(0x141)](_0x16cb80,_0x2e5cd2){const _0x26e76e={_0x52a1f0:0x12c},_0x36fa14=_0x2744d9;this[_0x36fa14(_0x26e76e._0x52a1f0)]('clipboardPaste',[_0x16cb80,_0x2e5cd2]),this[_0x36fa14(0x140)]();}async[_0x2744d9(0x11c)](_0x22915e){const _0x50a661={_0xf3c61f:0x121,_0x1dcd41:0x166},_0x2ea1bd=_0x2744d9;return this['record'](_0x2ea1bd(0x11c),[_0x22915e]),this[_0x2ea1bd(_0x50a661._0xf3c61f)][_0x2ea1bd(_0x50a661._0x1dcd41)]??0x1;}async['textContent'](_0x4ea5dd){const _0x26efa9={_0x5dfbdb:0x135},_0x4e43ee=_0x2744d9;return this[_0x4e43ee(0x12c)](_0x4e43ee(0x100),[_0x4ea5dd]),this['behavior'][_0x4e43ee(_0x26efa9._0x5dfbdb)]??'';}async['inputValue'](_0x50cc56){const _0x15d9ee={_0x3f74c0:0x167},_0x1d4aed=_0x2744d9;return this['record'](_0x1d4aed(_0x15d9ee._0x3f74c0),[_0x50cc56]),this[_0x1d4aed(0x121)][_0x1d4aed(0x130)]??'';}async[_0x2744d9(0x142)](_0x58ffc8){const _0x33cc9f={_0x37b926:0x142},_0x36de92=_0x2744d9;return this['record'](_0x36de92(_0x33cc9f._0x37b926),[_0x58ffc8]),this['behavior'][_0x36de92(0x139)]??null;}async[_0x2744d9(0x105)](_0x1b5bed){const _0x719927={_0x3d43ca:0x105,_0x10b377:0x121},_0xbdeb82=_0x2744d9;return this['record'](_0xbdeb82(_0x719927._0x3d43ca),[_0x1b5bed]),this[_0xbdeb82(_0x719927._0x10b377)][_0xbdeb82(0xf5)]??!![];}async[_0x2744d9(0x131)](_0x350b40){const _0x12779c={_0x21fff9:0x12c,_0x4fca11:0x11f},_0x2957d8=_0x2744d9;return this[_0x2957d8(_0x12779c._0x21fff9)](_0x2957d8(0x131),[_0x350b40]),this[_0x2957d8(0x121)][_0x2957d8(_0x12779c._0x4fca11)]??![];}async[_0x2744d9(0x155)](_0x2d80aa,_0xe489bd){const _0x4aa72b={_0x4a3f75:0x138},_0x586afd=_0x2744d9;return this['record']('getAttribute',[_0x2d80aa,_0xe489bd]),this['behavior'][_0x586afd(_0x4aa72b._0x4a3f75)]?.[_0xe489bd]??null;}async['waitFor'](_0x36447d,_0x35cb37){const _0x5d9120=_0x2744d9;this[_0x5d9120(0x12c)]('waitFor',[_0x36447d,_0x35cb37]);}async[_0x2744d9(0x103)](_0x231691,_0x17b83c){const _0x1f596e={_0x1d897a:0x103},_0x4ccc90=_0x2744d9;this[_0x4ccc90(0x12c)](_0x4ccc90(_0x1f596e._0x1d897a),[_0x231691,_0x17b83c]);}async[_0x2744d9(0x12d)](_0x2ca592,_0x2fcbb0){const _0xc8b07d={_0x31f8b4:0x12c,_0x3d8f98:0x12d},_0x43cd71=_0x2744d9;this[_0x43cd71(_0xc8b07d._0x31f8b4)](_0x43cd71(_0xc8b07d._0x3d8f98),[_0x2ca592,_0x2fcbb0]);}async[_0x2744d9(0xff)](_0x3bc807){const _0x1a9447=_0x2744d9;this[_0x1a9447(0x12c)](_0x1a9447(0xff),[_0x3bc807]);}async[_0x2744d9(0x101)](_0x3a6416,_0x13a39a){const _0x3c47b6=_0x2744d9;this[_0x3c47b6(0x12c)](_0x3c47b6(0x101),[_0x3a6416,_0x13a39a]);}async[_0x2744d9(0x150)](_0x419d89,_0x44d519){const _0x1f5e72={_0x1aa88e:0x150},_0x39ee47=_0x2744d9;this[_0x39ee47(0x12c)](_0x39ee47(_0x1f5e72._0x1aa88e),[_0x419d89,_0x44d519]),this['currentUrl']=_0x419d89;}async['reload'](_0x4f3f4b){const _0x14f936=_0x2744d9;this[_0x14f936(0x12c)](_0x14f936(0x113),[_0x4f3f4b]);}async['goBack'](_0x1b02cb){const _0x4c187c={_0x4a908e:0x10a},_0x1e28ca=_0x2744d9;this[_0x1e28ca(0x12c)](_0x1e28ca(_0x4c187c._0x4a908e),[_0x1b02cb]);}async[_0x2744d9(0x146)](_0x537aa8){const _0x2c5560=_0x2744d9;this[_0x2c5560(0x12c)]('goForward',[_0x537aa8]);}async[_0x2744d9(0x124)](_0x4ae6dd){const _0x82051b={_0x3dc10a:0x12c},_0x1573fe=_0x2744d9;return this[_0x1573fe(_0x82051b._0x3dc10a)](_0x1573fe(0x124),[_0x4ae6dd]),void 0x0;}async[_0x2744d9(0x147)](_0x160d35,_0x28f83b){const _0x5d6c66=_0x2744d9;return this[_0x5d6c66(0x12c)](_0x5d6c66(0x147),[_0x160d35,_0x28f83b]),void 0x0;}async['inspectElement'](_0x4c8f38){const _0x30d94b={_0x23dcfc:0xfe,_0x2b2148:0xf9,_0x29554f:0x121,_0x8c7867:0x13b},_0x3db668=_0x2744d9;this[_0x3db668(0x12c)](_0x3db668(0xf8),[_0x4c8f38]);if(_0x4c8f38[_0x3db668(_0x30d94b._0x23dcfc)]['length']!==0x1||_0x4c8f38[_0x3db668(0xfe)][0x0]['kind']!==_0x3db668(0xf9))return null;const _0x4c4626=_0x4c8f38['steps'][0x0][_0x3db668(_0x30d94b._0x2b2148)],_0x1c9d9f=this[_0x3db668(_0x30d94b._0x29554f)][_0x3db668(_0x30d94b._0x8c7867)]?.[_0x4c4626];return _0x1c9d9f??null;}async['screenshot'](_0x18a5e0){const _0x511be0={_0x2ce0fd:0x12c},_0xb6a034=_0x2744d9;return this[_0xb6a034(_0x511be0._0x2ce0fd)]('screenshot',[_0x18a5e0]),Buffer[_0xb6a034(0x162)](_0xb6a034(0x112));}async[_0x2744d9(0x169)](_0x157ddb){const _0xdb3b53={_0x57b55a:0x114,_0x41f39d:0xfe,_0xe49c7:0x15d,_0x3894be:0x126,_0x2df2da:0x15b},_0x160bc5=_0x2744d9;this['record']('outerHTML',[_0x157ddb]);if(_0x157ddb[_0x160bc5(0xfe)][_0x160bc5(0x163)]===0x1&&_0x157ddb[_0x160bc5(0xfe)][0x0][_0x160bc5(_0xdb3b53._0x57b55a)]===_0x160bc5(0xf9)){const _0x130628=_0x157ddb[_0x160bc5(_0xdb3b53._0x41f39d)][0x0][_0x160bc5(0xf9)];return this[_0x160bc5(0x121)][_0x160bc5(_0xdb3b53._0xe49c7)]?.[_0x130628]??_0x160bc5(0x16d)+_0x130628+_0x160bc5(_0xdb3b53._0x3894be);}return _0x160bc5(_0xdb3b53._0x2df2da);}},FakeContext=class{constructor(_0x188664,_0x3b39f5,_0x159076){const _0x224515={_0x30a986:0x16b},_0x6f811e={_0x23b8e4:0xfb},_0x17575a=_0x2744d9;this['recorder']=_0x188664,this[_0x17575a(0x121)]=_0x3b39f5,this['scope']=_0x159076;const _0x5cd04b=new FakePage(_0x188664,_0x3b39f5,_0x159076+'.page0',_0x3b39f5[_0x17575a(_0x224515._0x30a986)]??_0x17575a(0x122));_0x3b39f5['popupOnClick']&&(_0x5cd04b['onAfterClick']=()=>{const _0x2201fe=_0x17575a;this[_0x2201fe(0x127)](_0x3b39f5[_0x2201fe(_0x6f811e._0x23b8e4)]);}),this[_0x17575a(0x15c)]=[_0x5cd04b],this[_0x17575a(0x158)]={..._0x3b39f5[_0x17575a(0x12e)]??{}},this[_0x17575a(0x11b)]={..._0x3b39f5[_0x17575a(0x164)]??{}};}[_0x2744d9(0x123)];[_0x2744d9(0x121)];[_0x2744d9(0x16f)];static{__name(this,_0x2744d9(0x161));}[_0x2744d9(0x15c)];[_0x2744d9(0x110)]=0x0;[_0x2744d9(0x13c)]=[];[_0x2744d9(0x158)];[_0x2744d9(0x11b)];['newPageListeners']=new Set();['record'](_0x398101,_0x54bdff){const _0x151061={_0x294384:0xf7},_0x2bd661=_0x2744d9;this[_0x2bd661(0x123)][_0x2bd661(_0x151061._0x294384)]({'scope':this['scope'],'method':_0x398101,'args':_0x54bdff});}[_0x2744d9(0x129)](){const _0x2f2346=_0x2744d9;return this[_0x2f2346(0x15c)];}[_0x2744d9(0x145)](){const _0x1ae790={_0x59df2e:0x10e},_0x1240df=_0x2744d9,_0x1a5044=this['pageList'][this[_0x1240df(0x110)]];if(!_0x1a5044)throw new DriverError(_0x1240df(_0x1ae790._0x59df2e),{'activeIdx':this['activeIdx']});return _0x1a5044;}[_0x2744d9(0x11a)](){const _0x413117={_0x4c1c0e:0x11a},_0x2a0f2a=_0x2744d9;return this['behavior'][_0x2a0f2a(_0x413117._0x4c1c0e)]??[];}[_0x2744d9(0x116)](){const _0x197c8f={_0x375f17:0x116},_0x199bc3=_0x2744d9;return this['behavior'][_0x199bc3(_0x197c8f._0x375f17)]??[];}async['setActivePage'](_0x5585b4){const _0x156dc8={_0x4d8575:0x163},_0x105643=_0x2744d9;this[_0x105643(0x12c)]('setActivePage',[_0x5585b4]);if(_0x5585b4<0x0||_0x5585b4>=this[_0x105643(0x15c)][_0x105643(0x163)])throw new DriverError('page\x20index\x20out\x20of\x20range',{'index':_0x5585b4,'available':this['pageList'][_0x105643(_0x156dc8._0x4d8575)]});this[_0x105643(0x110)]=_0x5585b4,this[_0x105643(0x13c)]['length']=0x0;}[_0x2744d9(0x14e)](_0x536378){const _0x3ef4ab={_0x3549ad:0x156},_0x136cc9=_0x2744d9;return subscribe(this[_0x136cc9(_0x3ef4ab._0x3549ad)],_0x536378);}[_0x2744d9(0x127)](_0x3f5946){const _0x53f61b={_0x1cb35b:0x16f,_0x3e2e73:0x15c,_0x23eb57:0x121,_0x5c12b9:0x156},_0x1bfc9d=_0x2744d9,_0x1b8212=this[_0x1bfc9d(_0x53f61b._0x1cb35b)]+_0x1bfc9d(0x132)+this[_0x1bfc9d(_0x53f61b._0x3e2e73)][_0x1bfc9d(0x163)],_0xf77111=new FakePage(this[_0x1bfc9d(0x123)],this[_0x1bfc9d(_0x53f61b._0x23eb57)],_0x1b8212,_0x3f5946);this[_0x1bfc9d(0x15c)][_0x1bfc9d(0xf7)](_0xf77111);const _0x21edf9=this['pageList']['length']-0x1;for(const _0x4db783 of this[_0x1bfc9d(_0x53f61b._0x5c12b9)]){try{_0x4db783({'index':_0x21edf9,'url':_0x3f5946});}catch{}}return _0x21edf9;}[_0x2744d9(0x13d)](_0x45bd76){const _0x3e8ba6={_0x53c357:0x163,_0x52aeee:0x15c,_0x3e60ee:0x14d},_0x4f3e19=_0x2744d9;if(_0x45bd76<0x0||_0x45bd76>=this[_0x4f3e19(0x15c)][_0x4f3e19(_0x3e8ba6._0x53c357)])throw new DriverError('page\x20index\x20out\x20of\x20range',{'index':_0x45bd76,'available':this['pageList']['length']});this[_0x4f3e19(_0x3e8ba6._0x52aeee)][_0x4f3e19(_0x3e8ba6._0x3e60ee)](_0x45bd76,0x1);}async[_0x2744d9(0x11e)](_0x39758c){const _0x5bcaa5={_0x24de1c:0xfe,_0x380cb1:0x163},_0xc26018=_0x2744d9;this['record'](_0xc26018(0x11e),[_0x39758c]);if(!_0x39758c[_0xc26018(_0x5bcaa5._0x24de1c)][_0xc26018(_0x5bcaa5._0x380cb1)])throw new LocatorError(_0xc26018(0x120),{'locator':_0x39758c});this[_0xc26018(0x13c)][_0xc26018(0xf7)](_0x39758c);}async[_0x2744d9(0x154)](){const _0x3b518b={_0x5628a1:0x12c,_0x3e7197:0x13c,_0x566d69:0x163},_0x59c2cf=_0x2744d9;this[_0x59c2cf(_0x3b518b._0x5628a1)]('exitFrame',[]);if(this[_0x59c2cf(_0x3b518b._0x3e7197)][_0x59c2cf(_0x3b518b._0x566d69)]===0x0)throw new DriverError(_0x59c2cf(0x149),{});this[_0x59c2cf(0x13c)]['pop']();}async['setLocalStorage'](_0x6916b1,_0x402c2a){const _0x2d1acf={_0x3e19f0:0x12c,_0x95ab15:0x158},_0x43b6ca=_0x2744d9;this[_0x43b6ca(_0x2d1acf._0x3e19f0)]('setLocalStorage',[_0x6916b1,_0x402c2a]),this[_0x43b6ca(_0x2d1acf._0x95ab15)][_0x6916b1]=_0x402c2a;}async[_0x2744d9(0x10c)](_0x36eb97){const _0xc2a0da={_0x5a0b6a:0x12c},_0x23a3c9=_0x2744d9;return this[_0x23a3c9(_0xc2a0da._0x5a0b6a)](_0x23a3c9(0x10c),[_0x36eb97]),this[_0x23a3c9(0x158)][_0x36eb97]??null;}async[_0x2744d9(0x102)](_0xf84c33,_0x42b4d1,_0xf5a4fa){this['record']('setCookie',[_0xf84c33,_0x42b4d1,_0xf5a4fa]),this['cookieState'][_0xf84c33]=_0x42b4d1;}async[_0x2744d9(0x144)](_0x26b696){const _0x431f69={_0x2ca6ad:0x11b},_0xe6d61c=_0x2744d9;return this['record']('getCookie',[_0x26b696]),this[_0xe6d61c(_0x431f69._0x2ca6ad)][_0x26b696]??null;}async['saveStorageState'](_0x4dabb8){const _0x30d2f0={_0x15b1c9:0x157},_0x40438c=_0x2744d9;this['record'](_0x40438c(_0x30d2f0._0x15b1c9),[_0x4dabb8]);}async[_0x2744d9(0x124)](_0x3fc5ec){const _0x1cb4ee={_0x209f41:0x12c},_0xd3b58d=_0x2744d9;return this[_0xd3b58d(_0x1cb4ee._0x209f41)]('evaluate',[_0x3fc5ec]),void 0x0;}async['close'](){const _0x4fe5bc={_0x499098:0x12c,_0x121da2:0x16a},_0xa50dff=_0x2744d9;this[_0xa50dff(_0x4fe5bc._0x499098)](_0xa50dff(_0x4fe5bc._0x121da2),[]);}[_0x2744d9(0x14b)](){const _0x10ce59=_0x2744d9;return this[_0x10ce59(0x13c)]['length'];}},FakeWebDriver=class{constructor(_0x1940fc={}){const _0x430d10={_0x198b2c:0x121,_0x46805e:0x123},_0x43a9da=_0x2744d9;this[_0x43a9da(_0x430d10._0x198b2c)]=_0x1940fc,this[_0x43a9da(_0x430d10._0x46805e)]=createRecorder();}[_0x2744d9(0x121)];static{__name(this,_0x2744d9(0x16e));}[_0x2744d9(0x11d)]=![];[_0x2744d9(0x123)];[_0x2744d9(0x14f)]=[];async[_0x2744d9(0x15e)](_0x360794){const _0x16f928={_0x2daba5:0x15e,_0x2791ad:0x11d},_0x551ff2=_0x2744d9;this[_0x551ff2(0x123)]['push']({'scope':_0x551ff2(0x15f),'method':_0x551ff2(_0x16f928._0x2daba5),'args':[_0x360794]}),this[_0x551ff2(_0x16f928._0x2791ad)]=!![];}async[_0x2744d9(0x168)](_0x367b53){const _0x21b55d={_0x454f5c:0x123,_0x46d6c2:0xf7,_0x23ae84:0x123,_0xbb3741:0x14f},_0xf3c93c=_0x2744d9;this[_0xf3c93c(_0x21b55d._0x454f5c)][_0xf3c93c(_0x21b55d._0x46d6c2)]({'scope':_0xf3c93c(0x15f),'method':_0xf3c93c(0x168),'args':[_0x367b53]});if(!this[_0xf3c93c(0x11d)])throw new DriverError(_0xf3c93c(0x14a),{});const _0x33aa78=new FakeContext(this[_0xf3c93c(_0x21b55d._0x23ae84)],this['behavior'],_0xf3c93c(0x153)+this[_0xf3c93c(0x14f)][_0xf3c93c(0x163)]);return this[_0xf3c93c(_0x21b55d._0xbb3741)][_0xf3c93c(_0x21b55d._0x46d6c2)](_0x33aa78),_0x33aa78;}async['close'](){const _0x856c46={_0x1bf2ef:0x16a,_0x29b5dc:0x11d},_0x2a9264=_0x2744d9;this['recorder']['push']({'scope':_0x2a9264(0x15f),'method':_0x2a9264(_0x856c46._0x1bf2ef),'args':[]}),this[_0x2a9264(_0x856c46._0x29b5dc)]=![];}[_0x2744d9(0x15a)](){return void 0x0;}async[_0x2744d9(0x152)](){const _0xb45271={_0x12b557:0x111},_0x449f72=_0x2744d9;throw new DriverError(_0x449f72(_0xb45271._0x12b557),{});}[_0x2744d9(0x12a)](){const _0x324596={_0x3f674b:0x16c},_0x5a2d97=_0x2744d9;throw new DriverError(_0x5a2d97(_0x324596._0x3f674b),{});}[_0x2744d9(0x159)](){const _0x130a54={_0x10dbfa:0x123},_0x4e5cac=_0x2744d9;return this[_0x4e5cac(_0x130a54._0x10dbfa)]['calls']();}[_0x2744d9(0x13e)](_0x25f68){const _0x1c02ec=_0x2744d9;return this['recorder'][_0x1c02ec(0x159)]()[_0x1c02ec(0x13a)](_0x3e28e3=>_0x3e28e3[_0x1c02ec(0x104)]===_0x25f68);}};function _0x32ef(){const _0x16e0bc=['BMv3q29UDgv4Da','B3v0zxjive1m','y2XVC2u','Aw5PDgLHBfvYBa','yxr0ywnOrxHPC3rPBMCGBM90ihn1ChbVCNrLzcbIEsbgywTLv2vIrhjPDMvY','pgrPDIbKyxrHlxvUB3rLC3qTCMvMpsi','rMfRzvDLyKrYAxzLCG','C2nVCgu','AxnwAxnPyMXLqNLezwzHDwX0','rMfRzvbHz2u','ChvZAa','Aw5ZCgvJDevSzw1LBNq','CMvM','C2vSzwn0t3b0Aw9U','Cg9WDxbpBKnSAwnR','rhjPDMvYrxjYB3i','y2XPy2S','C3rLChm','D2fPDezVCK5HDMLNyxrPB24','Dgv4DenVBNrLBNq','D2fPDezVCKXVywrtDgf0zq','C2v0q29VA2LL','D2fPDezVCLvYBa','Bwv0Ag9K','AxnwAxnPyMXL','C3vIC2nYAwjL','zgvMAw5LuhjVCgvYDhK','zg91yMXLq2XPy2S','nta0nJK2nMfIzeL5DG','z29cywnR','DxjS','z2v0tg9JywXtDg9YywDL','mte2ndq5mMDpqvzHrq','BM8Gywn0AxzLihbHz2uGAw4Gy29UDgv4Da','y3vYCMvUDfvYBa','ywn0AxzLswr4','y29UBMvJDfnOyxjLzcbUB3qGC3vWCg9YDgvKigj5iezHA2vxzwjeCML2zxi','zMfRzs1WBMC','CMvSB2fK','A2LUza','nta2mdr4zNDoEhO','BMv0D29YA0vUDhjPzxm','zxjYB3jpBK5LEhrby3rPB24','nJa4ndbZELvZt2u','zMfRzsb0AxrSzq','y29UC29SzuvUDhjPzxm','y29VA2LLu3rHDgu','y291BNq','Bgf1BMnOzwq','zw50zxjgCMfTzq','AxneAxnHyMXLzej5rgvMyxvSDa','zw50zxjgCMfTzsbJywXSzwqGD2L0AcbLBxb0EsbSB2nHDg9Y','yMvOyxzPB3i','ywjVDxq6yMXHBMS','CMvJB3jKzxi','zxzHBhvHDgu','odCWnJGWmfvArNfvsq','iJ48l2rPDJ4','zw1PDezHA2vqB3b1Ca','odf4wLfws0i','CgfNzxm','yxr0ywnOrxHPC3rPBMC','ChjLC3m','CMvJB3jK','D2fPDezVCLrLEhq','Bg9JywXtDg9YywDL','DxbSB2fKrMLSzq','Aw5WDxrwywX1zuj5rgvMyxvSDa','AxneAxnHyMXLza','lNbHz2u','Dw5JAgvJAW','BMfTzq','Dgv4DenVBNrLBNrcEurLzMf1Bhq','zMLSBa','B25bzNrLCKnSAwnR','yxr0CMLIDxrLC0j5rgvMyxvSDa','y2HLy2TLzfn0yxrLqNLezwzHDwX0','zMLSDgvY','zwXLBwvUDeHPBNrcEvjLzG','zNjHBwvtDgfJAW','y2XVC2vgywTLugfNzq','y2fSBhngB3i','y2HLy2S','Bwf5yMvuAhjVDW','y2XPCgjVyxjKugfZDgu','y2HLy2TLzfn0yxrL','nJC4EvLlB3fe','z2v0q29VA2LL','ywn0AxzLugfNzq','z29gB3j3yxjK','zxzHBhvHDgvpBKXVy2f0B3i','zhjHz0fUzerYB3a','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','BMv3q29UDgv4DcbJywXSzwqGyMvMB3jLigXHDw5JAcGP','zNjHBwvezxb0Aa','mte1Afjbyvjy','C3bSAwnL','B25ozxDqywDL','y29UDgv4Dhm','z290BW','C2nYB2XSsw50B1zPzxC','y29UBMvJDfnOyxjLza','y3r4','zxHPDezYyw1L','z2v0qxr0CMLIDxrL','BMv3ugfNzuXPC3rLBMvYCW','C2f2zvn0B3jHz2vtDgf0zq','Bg9JywXtDg9YywDLu3rHDgu','y2fSBhm','D3nfBMrWB2LUDa','pgrPDJ48l2rPDJ4','CgfNzuXPC3q','B3v0zxjiDg1SqNLszwy','Bgf1BMnO','zhjPDMvY','nJe4nZjzu2HcAxO','rMfRzunVBNrLEhq','zNjVBq','BgvUz3rO','y29VA2LLCW','mtKXoeXQzvzfqG','y291BNrcEurLzMf1Bhq','Aw5WDxrwywX1zq'];_0x32ef=function(){return _0x16e0bc;};return _0x32ef();}export{FakeWebDriver};
|