@unotest/web 0.17.0 → 0.19.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 +5 -0
- package/.claude/skills/write-e2e-test-ground/SKILL.md +5 -0
- package/CHANGELOG.md +133 -0
- package/README.md +8 -0
- package/bin/unotest-web.js +18 -0
- 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 +9 -5
- package/dist/dsl/index.js +1 -1
- package/dist/dsl/web-dsl-language-service.d.ts +35 -1
- package/dist/dsl/web-dsl-language-service.js +1 -1
- package/dist/inspection/page-inject.d.ts +1 -1
- package/dist/{interfaces-elRn0llQ.d.ts → interfaces-B-FxA_qn.d.ts} +7 -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.d.ts +14 -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 +44 -2
- package/package.json +12 -8
- package/types/unotest-dsl.d.ts +714 -0
|
@@ -65,6 +65,11 @@ outside this list — they won't tell you anything Phase 1+ doesn't.
|
|
|
65
65
|
3. **`unotest/.env`** — Read it. Pulls `APP_BASE_URL`,
|
|
66
66
|
`DATABASE_URL`, etc. that the scenario will reach for.
|
|
67
67
|
|
|
68
|
+
`unotest/jsconfig.json` and `.unotest/types/` are GENERATED editor
|
|
69
|
+
typings (regenerated on every lint/run from the DSL vocabulary and the
|
|
70
|
+
`.env`/`.secrets` keys) — never edit them and never mine them for the
|
|
71
|
+
DSL surface; the reference above is the source of truth.
|
|
72
|
+
|
|
68
73
|
Then move to Phase 1. Three files in, exploration done.
|
|
69
74
|
|
|
70
75
|
### Phase 1 — start the exploration
|
|
@@ -90,6 +90,11 @@ outside this list — they won't tell you anything Phase 1+ doesn't.
|
|
|
90
90
|
3. **`unotest/.env`** — Read it. Pulls `APP_BASE_URL`,
|
|
91
91
|
`DATABASE_URL`, etc. that the scenario will reach for.
|
|
92
92
|
|
|
93
|
+
`unotest/jsconfig.json` and `.unotest/types/` are GENERATED editor
|
|
94
|
+
typings (regenerated on every lint/run from the DSL vocabulary and the
|
|
95
|
+
`.env`/`.secrets` keys) — never edit them and never mine them for the
|
|
96
|
+
DSL surface; the reference above is the source of truth.
|
|
97
|
+
|
|
93
98
|
Then move to Phase 1. Three files in, exploration done.
|
|
94
99
|
|
|
95
100
|
### Phase 1 — start the exploration
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,138 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.19.0] - 2026-08-23
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- The CLI passes termination on to the process it runs. `unotest-web` is a
|
|
8
|
+
dispatcher that spawns the real entry (`viewer`, a scenario run, the MCP
|
|
9
|
+
server) and waits; killing the dispatcher used to leave that process alive,
|
|
10
|
+
reparented to init and still holding its port. Ctrl-C hid it — a terminal
|
|
11
|
+
signals the whole foreground group — so it only bit tooling that kills the
|
|
12
|
+
process it started: each such call leaked one server. SIGTERM / SIGINT /
|
|
13
|
+
SIGHUP now reach the child, and the exit code still comes from it.
|
|
14
|
+
|
|
15
|
+
### Minor Changes
|
|
16
|
+
|
|
17
|
+
- dfb3991: Per-collection parallelism via a `workers:` field in the collection YAML.
|
|
18
|
+
|
|
19
|
+
- `workers: N` (integer ≥ 1) in `unotest/e2e/_collections/*.yaml` sets how
|
|
20
|
+
many scenarios of that collection run concurrently; omitted = serial.
|
|
21
|
+
- Precedence: CLI `--workers=N` flag > manifest `workers:` > 1.
|
|
22
|
+
- Viewer: the collection header shows an editable `workers` value; the
|
|
23
|
+
setting is stored in the YAML, so CLI and CI runs pick it up too.
|
|
24
|
+
- `CollectionMeta` (protocol) gains a `workers: number | null` field.
|
|
25
|
+
|
|
26
|
+
- Run history scales: runs are filed under daily shards and the viewer stops
|
|
27
|
+
polling history it is not showing.
|
|
28
|
+
|
|
29
|
+
- New on-disk layout `unotest/.runs/<YYYY>/<MM>/<DD>/<runId>/` (UTC date the
|
|
30
|
+
run started). The shard is a pure function of the `runId`, which already
|
|
31
|
+
carries the timestamp — a direct link to a run keeps working even with the
|
|
32
|
+
index deleted. Existing flat `.runs/<runId>/` history is migrated
|
|
33
|
+
automatically (see the `runs migrate` entry).
|
|
34
|
+
- The viewer's watcher polls only LIVE runs; finished history never touches
|
|
35
|
+
it. Discovery watches the current day's directory with native `fs.watch`
|
|
36
|
+
and re-attaches at UTC midnight.
|
|
37
|
+
- A JSONL index per day and per scenario backs the history list. It is fully
|
|
38
|
+
rebuildable — rebuilt on start, non-blocking — so a corrupted or missing
|
|
39
|
+
index degrades the listing, never the runs themselves.
|
|
40
|
+
- `@unotest/protocol`: new `run-shard` and `run-index` modules (shard path
|
|
41
|
+
derivation, index record shapes) exported from the root entry.
|
|
42
|
+
|
|
43
|
+
- Step screenshots are stored once and shared, and old runs expire on their
|
|
44
|
+
own — a long history stops growing without bound.
|
|
45
|
+
|
|
46
|
+
- Identical frames are content-addressed in `unotest/.runs/_blobs/` and
|
|
47
|
+
hardlinked into each run. `du` and ordinary copies see whole files;
|
|
48
|
+
`cp -a` / `rsync -H` preserve the sharing. On one dogfood suite: 45
|
|
49
|
+
frames, 2.04 MB by apparent size, 0.96 MB on disk.
|
|
50
|
+
- Reference counting is the filesystem's (`st_nlink`), so nothing to keep in
|
|
51
|
+
sync. Blob generations keep the dedup honest past ext4's 65 000-link
|
|
52
|
+
ceiling, and a fresh blob is untouchable for an hour so the window between
|
|
53
|
+
writing it and linking it is never mistaken for garbage.
|
|
54
|
+
- Retention: `UNOTEST_RUNS_RETENTION_DAYS` (whole days, default 180) sweeps
|
|
55
|
+
runs older than the window at the end of a collection run. It never
|
|
56
|
+
changes the exit code — a failed sweep is reported, not fatal.
|
|
57
|
+
- `@unotest/protocol`: new `run-blobs` module exported from the root entry.
|
|
58
|
+
|
|
59
|
+
- Upgrading moves existing run history to the new layout by itself, and
|
|
60
|
+
Playwright moves to 1.62.
|
|
61
|
+
|
|
62
|
+
- The flat `.runs/<runId>/` history is migrated on the first run of the new
|
|
63
|
+
version. Default is to remove old runs (nobody asked to keep them);
|
|
64
|
+
`UNOTEST_RUNS_LEGACY=keep` re-files them into date shards instead. The
|
|
65
|
+
completion marker is written last, so an interrupted or failed move is
|
|
66
|
+
retried on the next start rather than silently marked done.
|
|
67
|
+
- New command `unotest-web runs migrate [--dry-run]` — the same migration,
|
|
68
|
+
runnable FIRST, with a report-only mode. A migration nobody can look at
|
|
69
|
+
before it happens is one that runs unannounced on someone else's machine.
|
|
70
|
+
- `playwright` moves to `^1.62.0` in `@unotest/web` and `@unotest/viewer`.
|
|
71
|
+
Run `npx playwright install` once after upgrading if your browser cache
|
|
72
|
+
predates it.
|
|
73
|
+
- Frame capture is now format-parameterised internally, still PNG. WebP was
|
|
74
|
+
measured and rejected: Chromium's lossless `type: "webp"` is pixel-exact
|
|
75
|
+
but 1.5× LARGER than PNG on real frames (3.17 MB vs 2.04 MB on one suite).
|
|
76
|
+
- Fix: the viewer served step screenshots as 403 after the layout change —
|
|
77
|
+
its asset allow-list still expected the flat layout. The route now has
|
|
78
|
+
tests.
|
|
79
|
+
|
|
80
|
+
## [0.18.0] - 2026-08-23
|
|
81
|
+
|
|
82
|
+
### Minor Changes
|
|
83
|
+
|
|
84
|
+
- 44f5d6c: Editor typings for scenarios — `.js` files stop looking like broken
|
|
85
|
+
JavaScript in VS Code / WebStorm: autocomplete, hover docs, signature
|
|
86
|
+
help and locator-chain resolution, without turning on a second
|
|
87
|
+
type-checker (`checkJs` stays off; diagnostics remain the DSL
|
|
88
|
+
validator's job).
|
|
89
|
+
|
|
90
|
+
- New shipped file `types/unotest-dsl.d.ts` — ambient declarations for
|
|
91
|
+
every DSL function, generated from the same contracts the validator
|
|
92
|
+
uses (`buildDslVocab()`), so it can never drift from the installed
|
|
93
|
+
version.
|
|
94
|
+
- New CLI command `unotest-web types` — creates `unotest/jsconfig.json`
|
|
95
|
+
if missing and regenerates the `.unotest/types/env.d.ts` cache
|
|
96
|
+
(variable NAMES from `unotest/.env` / `.secrets`; values never leave
|
|
97
|
+
those files).
|
|
98
|
+
- `init` scaffolds the jsconfig + env cache; `scaffoldWorkspace()` now
|
|
99
|
+
includes the jsconfig too.
|
|
100
|
+
- Upgrade path is automatic: `lint` and `e2e` create a missing
|
|
101
|
+
`unotest/jsconfig.json` on the fly (one announcement line) and
|
|
102
|
+
silently refresh the env cache. Skipped under CI. No action needed
|
|
103
|
+
after upgrading — run any test or `unotest-web lint` once and the
|
|
104
|
+
editor comes alive. If you keep a custom `unotest/jsconfig.json`, it
|
|
105
|
+
is never overwritten (re-run `init --force` to reset it).
|
|
106
|
+
- `@unotest/protocol`: additive optional fields on the DSL vocab —
|
|
107
|
+
`DslVocabArg.enumValues` (literal members behind `kind: "enum"`) and
|
|
108
|
+
`DslVocabEntry.variadic`.
|
|
109
|
+
|
|
110
|
+
- a088bac: New package `@unotest/eslint-plugin` — unotest DSL scenarios as
|
|
111
|
+
first-class ESLint citizens. One rule (`@unotest/dsl`) delegates every
|
|
112
|
+
check to the validator inside the installed `@unotest/web` (parser,
|
|
113
|
+
vocabulary, linter rules, `linter.rules` severities from
|
|
114
|
+
unotest.config), so `npx eslint unotest/e2e` and `unotest-web lint`
|
|
115
|
+
report identical diagnostics; a new validator rule needs zero plugin
|
|
116
|
+
changes. `configs.recommended()` (async factory, flat config) wires
|
|
117
|
+
`unotest/e2e/**/*.js`, turns `no-undef` off (implicit globals are the
|
|
118
|
+
DSL's design; unknown names are the engine's job) and declares globals
|
|
119
|
+
for the vocabulary, your helpers and your `.env`/`.secrets` variable
|
|
120
|
+
names.
|
|
121
|
+
|
|
122
|
+
`@unotest/web`: the `@unotest/web/dsl` subpath now exports
|
|
123
|
+
`loadLintProjectContext()` (config severities + helper discovery +
|
|
124
|
+
variable names) and `linterRulesToSeverity()` — the same loader the CLI
|
|
125
|
+
`lint` command now uses, so the two frontends cannot drift.
|
|
126
|
+
|
|
127
|
+
### Patch Changes
|
|
128
|
+
|
|
129
|
+
- 5ab7bd5: `screenshot()` appears in the DSL vocab (completion, hover, signature
|
|
130
|
+
help, generated editor typings). It always had a validator contract, but
|
|
131
|
+
its diagnostics contract group was missing from the vocab builder, so
|
|
132
|
+
every vocab consumer silently lacked it. A parity test now pins the vocab
|
|
133
|
+
to the contract registry, so a future contract group cannot be forgotten
|
|
134
|
+
again. `@unotest/protocol`: new `DslVocabCategory` value `"diagnostic"`.
|
|
135
|
+
|
|
3
136
|
## [0.17.0] - 2026-08-20
|
|
4
137
|
|
|
5
138
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -22,6 +22,13 @@ during the prompt), and wires the MCP config so Claude Code / Cursor / Codex
|
|
|
22
22
|
pick the server up automatically. Re-run anytime to update — it never
|
|
23
23
|
overwrites your edits.
|
|
24
24
|
|
|
25
|
+
It also wires editor typings (`unotest/jsconfig.json` + generated `.d.ts`
|
|
26
|
+
files), so scenarios get autocomplete, hover docs and signature help in
|
|
27
|
+
VS Code / WebStorm instead of red squiggles. On an existing project this
|
|
28
|
+
self-installs on the first `lint` / `e2e` run after upgrading; refresh by
|
|
29
|
+
hand with `npx @unotest/web types`. Details: the "Editor setup" section of
|
|
30
|
+
`node_modules/@unotest/web/guides/dsl-reference.md`.
|
|
31
|
+
|
|
25
32
|
## 2. Open the viewer
|
|
26
33
|
|
|
27
34
|
```sh
|
|
@@ -115,6 +122,7 @@ alongside it in `guides/`).
|
|
|
115
122
|
| [`@unotest/viewer`](https://www.npmjs.com/package/@unotest/viewer) | local results browser |
|
|
116
123
|
| [`@unotest/protocol`](https://www.npmjs.com/package/@unotest/protocol) | shared types |
|
|
117
124
|
| [`@unotest/dsl`](https://www.npmjs.com/package/@unotest/dsl) | scenario parser + validator engine |
|
|
125
|
+
| [`@unotest/eslint-plugin`](https://www.npmjs.com/package/@unotest/eslint-plugin) | the same scenario diagnostics through ESLint |
|
|
118
126
|
|
|
119
127
|
## License
|
|
120
128
|
|
package/bin/unotest-web.js
CHANGED
|
@@ -158,6 +158,24 @@ if (existsSync(distPath)) {
|
|
|
158
158
|
}
|
|
159
159
|
|
|
160
160
|
const child = spawn(cmd, cmdArgs, { stdio: "inherit" });
|
|
161
|
+
|
|
162
|
+
// Pass termination on to the child. This dispatcher is a thin wrapper: kill
|
|
163
|
+
// IT and the real process — the viewer server, a running scenario — has to
|
|
164
|
+
// go too, or it is orphaned to init and keeps its port for the rest of the
|
|
165
|
+
// day. Ctrl-C in a terminal hid the bug (the signal goes to the whole
|
|
166
|
+
// foreground group, so both died); every programmatic
|
|
167
|
+
// `child.kill("SIGTERM")` leaked one viewer per call, which is how a
|
|
168
|
+
// machine ended up with thirty of them and every release run failed its own
|
|
169
|
+
// viewer precondition.
|
|
170
|
+
//
|
|
171
|
+
// The child's own `exit` handler below still decides this process's exit
|
|
172
|
+
// code — we only forward and wait.
|
|
173
|
+
for (const sig of ["SIGTERM", "SIGINT", "SIGHUP"]) {
|
|
174
|
+
process.on(sig, () => {
|
|
175
|
+
if (child.exitCode === null && child.signalCode === null) child.kill(sig);
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
|
|
161
179
|
// Surface spawn failures explicitly — empty stderr on a silent exit makes
|
|
162
180
|
// debugging miserable for consumers. Reviewers hit this in a prior round.
|
|
163
181
|
child.on("error", (err) => {
|
package/dist/config/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
function _0x24cf(_0x477f62,_0x1eaa9a){_0x477f62=_0x477f62-0x111;var _0x17e137=_0x17e1();var _0x24cf04=_0x17e137[_0x477f62];if(_0x24cf['HAEBEm']===undefined){var _0x5a4b8d=function(_0x5e2fc4){var _0xeac736='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x433503='',_0x52efdf='';for(var _0x116ffc=0x0,_0x1fe7a7,_0x427744,_0x5d0aae=0x0;_0x427744=_0x5e2fc4['charAt'](_0x5d0aae++);~_0x427744&&(_0x1fe7a7=_0x116ffc%0x4?_0x1fe7a7*0x40+_0x427744:_0x427744,_0x116ffc++%0x4)?_0x433503+=String['fromCharCode'](0xff&_0x1fe7a7>>(-0x2*_0x116ffc&0x6)):0x0){_0x427744=_0xeac736['indexOf'](_0x427744);}for(var _0x4094ba=0x0,_0x4b21e0=_0x433503['length'];_0x4094ba<_0x4b21e0;_0x4094ba++){_0x52efdf+='%'+('00'+_0x433503['charCodeAt'](_0x4094ba)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x52efdf);};_0x24cf['JmhbWk']=_0x5a4b8d,_0x24cf['aMnMKM']={},_0x24cf['HAEBEm']=!![];}var _0x42f2eb=_0x17e137[0x0],_0x29b9df=_0x477f62+_0x42f2eb,_0x26e0dd=_0x24cf['aMnMKM'][_0x29b9df];return!_0x26e0dd?(_0x24cf04=_0x24cf['JmhbWk'](_0x24cf04),_0x24cf['aMnMKM'][_0x29b9df]=_0x24cf04):_0x24cf04=_0x26e0dd,_0x24cf04;}var _0x240191=_0x24cf;(function(_0x3296fc,_0x5e66e2){var _0x22d313={_0x14e0e7:0x132,_0x106738:0x13e,_0x72158f:0x119,_0x2a6e5b:0x11c},_0x5d43c5=_0x24cf,_0x353ea6=_0x3296fc();while(!![]){try{var _0x4be76a=-parseInt(_0x5d43c5(0x11f))/0x1*(-parseInt(_0x5d43c5(_0x22d313._0x14e0e7))/0x2)+-parseInt(_0x5d43c5(_0x22d313._0x106738))/0x3+-parseInt(_0x5d43c5(_0x22d313._0x72158f))/0x4+parseInt(_0x5d43c5(0x150))/0x5+parseInt(_0x5d43c5(0x126))/0x6*(parseInt(_0x5d43c5(0x134))/0x7)+parseInt(_0x5d43c5(0x14b))/0x8+-parseInt(_0x5d43c5(_0x22d313._0x2a6e5b))/0x9;if(_0x4be76a===_0x5e66e2)break;else _0x353ea6['push'](_0x353ea6['shift']());}catch(_0x2a14e1){_0x353ea6['push'](_0x353ea6['shift']());}}}(_0x17e1,0xb340b));import{z}from'zod';var BrowserSchema=z[_0x240191(0x141)]([_0x240191(0x12a),_0x240191(0x138),_0x240191(0x13a)]),BrowserChannelSchema=z[_0x240191(0x143)]([z[_0x240191(0x147)](_0x240191(0x123)),z[_0x240191(0x147)](_0x240191(0x120)),z[_0x240191(0x147)](_0x240191(0x14a)),z[_0x240191(0x14d)]()])['optional'](),ViewportSchema=z[_0x240191(0x131)]({'width':z['number']()['int']()[_0x240191(0x148)](),'height':z[_0x240191(0x142)]()[_0x240191(0x135)]()[_0x240191(0x148)]()}),RetryReasonSchema=z[_0x240191(0x141)]([_0x240191(0x121),_0x240191(0x12c),_0x240191(0x125)]),RetryConfigSchema=z[_0x240191(0x131)]({'count':z[_0x240191(0x142)]()[_0x240191(0x135)]()[_0x240191(0x13b)](0x0)[_0x240191(0x139)](0xa),'on':z[_0x240191(0x145)](RetryReasonSchema)}),FailureBundleConfigSchema=z[_0x240191(0x131)]({'tier1':z[_0x240191(0x147)](!![])[_0x240191(0x144)](!![]),'tier2':z[_0x240191(0x111)](),'tier3':z[_0x240191(0x131)]({'network':z['boolean'](),'video':z[_0x240191(0x111)]()}),'retention':z[_0x240191(0x131)]({'runs':z[_0x240191(0x142)]()[_0x240191(0x135)]()[_0x240191(0x148)](),'days':z[_0x240191(0x142)]()[_0x240191(0x135)]()['positive']()}),'storageDir':z['string']()[_0x240191(0x13b)](0x1)}),DialogPolicySchema=z['enum']([_0x240191(0x122),_0x240191(0x113),_0x240191(0x128)]),LinterRuleIdSchema=z['enum'](['lint:deep-css',_0x240191(0x13c),'lint:obfuscated-class',_0x240191(0x140),_0x240191(0x124),_0x240191(0x12d),'lint:scenario-in-root',_0x240191(0x127),_0x240191(0x136),_0x240191(0x14f),_0x240191(0x12f),'lint:api-call-file-body',_0x240191(0x13f),_0x240191(0x11a),_0x240191(0x11d),_0x240191(0x14c),_0x240191(0x130),_0x240191(0x129),'validator:meta-shape',_0x240191(0x137),_0x240191(0x116),'validator:if-shape',_0x240191(0x11b),'validator:unsupported-statement',_0x240191(0x112),'validator:string-concat','validator:semantic-loss',_0x240191(0x133),'validator:wrapped-format']),LinterSeveritySchema=z[_0x240191(0x141)](['off',_0x240191(0x114),'error']),LinterConfigSchema=z[_0x240191(0x131)]({'enabled':z['boolean'](),'rules':z[_0x240191(0x14e)](LinterRuleIdSchema,LinterSeveritySchema)}),McpConfigSchema=z['object']({'transport':z[_0x240191(0x147)]('stdio')}),SandboxConfigSchema=z[_0x240191(0x131)]({'shellCwd':z[_0x240191(0x12e)]()[_0x240191(0x11e)](),'shellTimeoutMs':z[_0x240191(0x142)]()[_0x240191(0x135)]()[_0x240191(0x148)]()[_0x240191(0x11e)](),'exportSecrets':z[_0x240191(0x145)](z[_0x240191(0x12e)]())[_0x240191(0x11e)](),'database':z[_0x240191(0x12e)]()[_0x240191(0x11e)](),'apiBaseUrl':z[_0x240191(0x12e)]()[_0x240191(0x13d)]()['optional'](),'uploadDir':z[_0x240191(0x12e)]()[_0x240191(0x11e)]()}),WebServerConfigSchema=z[_0x240191(0x131)]({'command':z['string']()['min'](0x1),'url':z[_0x240191(0x12e)]()[_0x240191(0x13d)](),'reuseExistingServer':z['boolean']()['default'](!![]),'timeoutMs':z[_0x240191(0x142)]()[_0x240191(0x135)]()[_0x240191(0x148)]()[_0x240191(0x144)](0xea60)}),UnotestConfigSchema=z['object']({'baseUrl':z[_0x240191(0x12e)]()[_0x240191(0x13d)]()[_0x240191(0x11e)](),'webServer':WebServerConfigSchema[_0x240191(0x11e)](),'browsers':z['array'](BrowserSchema)['min'](0x1),'channel':BrowserChannelSchema,'viewport':ViewportSchema,'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':z[_0x240191(0x12e)]()['optional'](),'testDir':z[_0x240191(0x12e)]()[_0x240191(0x13b)](0x1),'helpersDir':z[_0x240191(0x12e)]()['min'](0x1),'defaultTimeoutMs':z[_0x240191(0x142)]()[_0x240191(0x135)]()['positive'](),'defaultNavigationTimeoutMs':z[_0x240191(0x142)]()[_0x240191(0x135)]()[_0x240191(0x148)](),'linter':LinterConfigSchema,'mcp':McpConfigSchema,'sandbox':SandboxConfigSchema}),DEFAULT_CONFIG={'browsers':['chromium'],'viewport':{'width':0x500,'height':0x2d0},'retry':{'count':0x0,'on':[_0x240191(0x121)]},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':_0x240191(0x12b)},'dialogPolicy':_0x240191(0x122),'testDir':_0x240191(0x118),'helpersDir':_0x240191(0x117),'defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x7530,'linter':{'enabled':!![],'rules':{'lint:deep-css':_0x240191(0x114),'lint:xpath':'warn','lint:obfuscated-class':_0x240191(0x114),'lint:pause-explicit':_0x240191(0x114),'lint:disambig-by-index':_0x240191(0x115),'lint:evaluate-discouraged':_0x240191(0x114),'lint:scenario-in-root':_0x240191(0x146),'lint:mustache-in-dsl':'error','lint:goto-concat':_0x240191(0x114),'lint:regex-invalid':_0x240191(0x146),'lint:echo-assert':_0x240191(0x114),'lint:lint-ok-missing-reason':'warn','validator:unknown-function':'error'}},'mcp':{'transport':_0x240191(0x149)},'sandbox':{}};function _0x17e1(){var _0x184576=['DxjS','mJC5nta1nwDkEM55ra','BgLUDdPSAw50lw9Rlw1PC3nPBMCTCMvHC29U','BgLUDdPWyxvZzs1LEhbSAwnPDa','zw51Bq','BNvTyMvY','Dw5PB24','zgvMyxvSDa','yxjYyxK','zxjYB3i','BgL0zxjHBa','Cg9ZAxrPDMu','C3rKAw8','y2HYB21LlwjLDge','nde2mJeWnfHxzMPeDq','DMfSAwrHDg9YoMfYzY1RAw5K','BNvSBa','CMvJB3jK','BgLUDdPYzwDLEc1PBNzHBgLK','mJG5mtu3nwfJEfjrsW','yM9VBgvHBG','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlwv4ChjLC3nPB24','zgLZBwLZCW','D2fYBG','B2zM','DMfSAwrHDg9YoMzVCI1ZAgfWzq','Dw5VDgvZDc9LmMuVx2HLBhbLCNm','Dw5VDgvZDc9LmMu','mtK0ndq0mgDnDxzIrG','DMfSAwrHDg9YoNvUA25VD24TzNvUy3rPB24','DMfSAwrHDg9YoNzHCI1ZAgfWzq','mti4nJa3nZvsrxLlDg8','DMfSAwrHDg9YoMfYAxr5','B3b0Aw9UywW','mZnOzwnpzve','BxnLzgDL','DhjHBNnPzw50','ywnJzxb0','y2HYB21L','BgLUDdPKAxnHBwjPzY1IEs1PBMrLEa','y3jHC2G','odm4mdG2mgjove1dua','BgLUDdPTDxn0ywnOzs1PBI1KC2W','BwfUDwfS','DMfSAwrHDg9YoNn0zxaTC2HHCgu','y2HYB21PDw0','lNvUB3rLC3qVzMfPBhvYzxm','BMv0D29YAW','BgLUDdPLDMfSDwf0zs1KAxnJB3vYywDLza','C3rYAw5N','BgLUDdPLy2HVlwfZC2vYDa','DMfSAwrHDg9YoNn0zxaTy292zxjHz2u','B2jQzwn0','nJu3otrpwerQsvu','DMfSAwrHDg9YoMXPC3qTyxjN','n2XHrLfSta','Aw50','BgLUDdPNB3rVlwnVBMnHDa','DMfSAwrHDg9YoMz1BMn0Aw9UlxnOyxbL','zMLYzwzVEa','Bwf4','D2vIA2L0','BwLU','BgLUDdP4Cgf0Aa'];_0x17e1=function(){return _0x184576;};return _0x17e1();}export{BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,RetryConfigSchema,RetryReasonSchema,SandboxConfigSchema,UnotestConfigSchema,ViewportSchema,WebServerConfigSchema};
|
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-B-FxA_qn.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-B-FxA_qn.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 _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};
|
|
1
|
+
const _0x7a0933=_0x440a;(function(_0x594c07,_0x1c8224){const _0x52b488={_0x3ea6a2:0x163,_0x1dcb73:0x193,_0x4e5348:0x16c,_0x1261de:0x167,_0x2b3c1f:0x182},_0x4564bb=_0x440a,_0x4a5a8b=_0x594c07();while(!![]){try{const _0x11df7e=-parseInt(_0x4564bb(0x197))/0x1+parseInt(_0x4564bb(_0x52b488._0x3ea6a2))/0x2+parseInt(_0x4564bb(_0x52b488._0x1dcb73))/0x3*(-parseInt(_0x4564bb(0x1a3))/0x4)+parseInt(_0x4564bb(_0x52b488._0x4e5348))/0x5+parseInt(_0x4564bb(0x194))/0x6*(-parseInt(_0x4564bb(0x19b))/0x7)+-parseInt(_0x4564bb(_0x52b488._0x1261de))/0x8*(-parseInt(_0x4564bb(_0x52b488._0x2b3c1f))/0x9)+-parseInt(_0x4564bb(0x17c))/0xa;if(_0x11df7e===_0x1c8224)break;else _0x4a5a8b['push'](_0x4a5a8b['shift']());}catch(_0x527752){_0x4a5a8b['push'](_0x4a5a8b['shift']());}}}(_0x4bf1,0xeb972));var __defProp=Object[_0x7a0933(0x1a9)],__name=(_0x962db1,_0x11af7e)=>__defProp(_0x962db1,'name',{'value':_0x11af7e,'configurable':!![]});function subscribe(_0x1fdba8,_0x4e4bb3){const _0x850cc1=_0x7a0933;return _0x1fdba8[_0x850cc1(0x18d)](_0x4e4bb3),()=>{const _0x35272c=_0x850cc1;_0x1fdba8[_0x35272c(0x1d2)](_0x4e4bb3);};}__name(subscribe,_0x7a0933(0x1b6));import{UnotestError}from'@unotest/core';var DriverError=class extends UnotestError{static{__name(this,_0x7a0933(0x176));}},LocatorError=class extends UnotestError{static{__name(this,_0x7a0933(0x1cb));}};function _0x4bf1(){const _0x3947bb=['D3nfBMrWB2LUDa','rhjPDMvYrxjYB3i','Bwf5yMvuAhjVDW','Dw5JAgvJAW','C2f2zvn0B3jHz2vtDgf0zq','zxzHBhvHDgu','Bg9JywXtDg9YywDL','otG4mJmWwwrvzxz5','y29UDgv4Dhm','Dgv4DenVBNrLBNrcEurLzMf1Bhq','zxHPDezYyw1L','yxr0ywnOrxHPC3rPBMCGBM90ihn1ChbVCNrLzcbIEsbgywTLv2vIrhjPDMvY','Aw5ZCgvJDevSzw1LBNq','mJGXmtG0m2riz2vhuq','zw50zxjgCMfTzq','y29VA2LLu3rHDgu','Bgf1BMnO','yxr0CMLIDxrLC0j5rgvMyxvSDa','y29UBMvJDfnOyxjLza','DgL0Bgu','B3v0zxjiDg1SqNLszwy','zNjVBq','zMLSDgvY','BMv3ugfNzuXPC3rLBMvYCW','ywrK','C2v0q29VA2LL','y291BNrcEurLzMf1Bhq','ChvZAa','z2v0qxr0CMLIDxrL','ywn0AxzLugfNzq','ouTpAK9IzW','mJC4nJK4mMjWzLjYyG','z29gB3j3yxjK','D2fPDezVCG','nZGZotCWrgjZrwPe','y291BNq','y3r4','Cg9W','n21Pq2v6vW','B3v0zxjive1m','z2v0q29VA2LL','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','y29UBMvJDfnOyxjLzcbUB3qGC3vWCg9YDgvKigj5iezHA2vxzwjeCML2zxi','y29VA2LLCW','zg91yMXLq2XPy2S','C2nYzwvUC2HVDa','mta4oty3mM9MzxjOzq','CMvSB2fK','B25bzNrLCKnSAwnR','Cg9WDxbpBKnSAwnR','y3vYCMvUDfvYBa','AxneAxnHyMXLzej5rgvMyxvSDa','zgvMAw5LuhjVCgvYDhK','rMfRzunVBNrLEhq','C3rLChm','CgfNzuXPC3q','zxjYB3jpBK5LEhrby3rPB24','y2XVC2vgywTLugfNzq','Ag92zxi','Bg9JywXtDg9YywDLu3rHDgu','zhjHz0fUzerYB3a','CMvJB3jK','zw1PDezHA2vqB3b1Ca','z2v0tg9JywXtDg9YywDL','ChjLC3m','C3vIC2nYAwjL','zxzHBhvHDgvpBKXVy2f0B3i','Bwv0Ag9K','DxjS','CMvJB3jKzxi','D2fPDezVCKXVywrtDgf0zq','y2HLy2TLzfn0yxrL','zNjHBwvtDgfJAW','Aw5PDgLHBfvYBa','C2vSzwn0t3b0Aw9U','rMfRzvbHz2u','y2XPy2S','pgrPDJ48l2rPDJ4','AxneAxnHyMXLza','zhjPDMvY','D2fPDezVCLrLEhq','C2v0qwn0AxzLugfNzq','BMv0D29YA0vUDhjPzxm','y2fSBhm','lNbHz2u','AxnwAxnPyMXL','tg9JyxrVCKvYCM9Y','y2fSBhngB3i','yMvOyxzPB3i','CgfNzsbPBMrLEcbVDxqGB2yGCMfUz2u','zMfRzsb0AxrSzq','ywn0AxzLswr4','CMvM','zgvSzxrL','y2XPCgjVyxjKugfZDgu','z29cywnR','B25ozxDqywDL','mZu2nJm3oeLhsxj3AW','C2nVCgu','zMLSBa','zwXLBwvUDeHPBNrcEvjLzG','mJrqzMHszKG','Bgf1BMnOzwq','Dgv4DenVBNrLBNq','y2HLy2S','D2fPDezVCLvYBa','mJa0nti2mgTys3HszG','DxbSB2fKrMLSzq','z290BW','BgvUz3rO','zNjHBwvezxb0Aa','BMv3q29UDgv4Da','D2fPDezVCK5HDMLNyxrPB24','y2XVC2u','ywjVDxq6yMXHBMS'];_0x4bf1=function(){return _0x3947bb;};return _0x4bf1();}function createRecorder(){const _0x1c88da={_0x449ac8:0x190},_0xc90fa6=_0x7a0933,_0x3f38c0=[];let _0x1d5681=0x0;return{'push':__name(_0x18c799=>_0x3f38c0[_0xc90fa6(0x190)]({..._0x18c799,'seq':_0x1d5681++}),_0xc90fa6(_0x1c88da._0x449ac8)),'calls':__name(()=>_0x3f38c0,'calls')};}__name(createRecorder,'createRecorder');var FakePage=class{constructor(_0x271a05,_0x55b5ae,_0x2a4655,_0x5d137e){const _0x442618={_0x67e071:0x1ba,_0x4b2ba8:0x164},_0x296ced=_0x7a0933;this[_0x296ced(_0x442618._0x67e071)]=_0x271a05,this['behavior']=_0x55b5ae,this[_0x296ced(_0x442618._0x4b2ba8)]=_0x2a4655,this['currentUrl']=_0x5d137e;}['recorder'];[_0x7a0933(0x1cd)];[_0x7a0933(0x164)];static{__name(this,_0x7a0933(0x1c0));}[_0x7a0933(0x1a7)];['onAfterClick'];[_0x7a0933(0x1b2)](_0x493b31,_0x113485){const _0x5909fc={_0x52584f:0x1ba},_0x3ed655=_0x7a0933;this[_0x3ed655(_0x5909fc._0x52584f)][_0x3ed655(0x190)]({'scope':this[_0x3ed655(0x164)],'method':_0x493b31,'args':_0x113485});}[_0x7a0933(0x177)](){const _0x4b9e8a={_0x159bfe:0x1cd,_0x74933f:0x1ad},_0x3dfbf9=_0x7a0933;if(this[_0x3dfbf9(0x1cd)][_0x3dfbf9(0x1ad)]){const _0x5781b8=this[_0x3dfbf9(_0x4b9e8a._0x159bfe)][_0x3dfbf9(_0x4b9e8a._0x74933f)];this['behavior'][_0x3dfbf9(_0x4b9e8a._0x74933f)]=void 0x0;throw _0x5781b8;}}[_0x7a0933(0x1b9)](){return this['currentUrl'];}async['title'](){const _0x3a0925={_0x2ac7d4:0x188},_0x208020=_0x7a0933;return this[_0x208020(0x1b2)](_0x208020(_0x3a0925._0x2ac7d4),[]),_0x208020(0x1cf);}async['click'](_0x26bc52,_0x4ae588){const _0xc5b7ac={_0x23b2f8:0x177,_0x257fbe:0x1a5},_0x99e210=_0x7a0933;this[_0x99e210(0x1b2)](_0x99e210(0x1c1),[_0x26bc52,_0x4ae588]),this[_0x99e210(_0xc5b7ac._0x23b2f8)](),this[_0x99e210(_0xc5b7ac._0x257fbe)]?.();}async[_0x7a0933(0x1a1)](_0x3dd882,_0x15f14b){const _0x564770={_0x8a510f:0x1b2},_0x55edbd=_0x7a0933;this[_0x55edbd(_0x564770._0x8a510f)](_0x55edbd(0x1a1),[_0x3dd882,_0x15f14b]),this['maybeThrow']();}async[_0x7a0933(0x165)](_0x179ee6,_0x5cfbff,_0x560c3b){const _0x5ac622={_0x6dc1a1:0x165,_0x457e32:0x177},_0x1280a9=_0x7a0933;this[_0x1280a9(0x1b2)](_0x1280a9(_0x5ac622._0x6dc1a1),[_0x179ee6,_0x5cfbff,_0x560c3b]),this[_0x1280a9(_0x5ac622._0x457e32)]();}async[_0x7a0933(0x1b5)](_0x4877e9,_0x127683,_0x4dd527){const _0x23c16b={_0xdb0795:0x1b2},_0x2405b0=_0x7a0933;this[_0x2405b0(_0x23c16b._0xdb0795)](_0x2405b0(0x1b5),[_0x4877e9,_0x127683,_0x4dd527]),this[_0x2405b0(0x177)]();}async['check'](_0x3891f3,_0x53a48c){const _0x58f08b={_0x57cc8e:0x1b2,_0x194047:0x16a,_0x2d99ac:0x177},_0x4e93ac=_0x7a0933;this[_0x4e93ac(_0x58f08b._0x57cc8e)](_0x4e93ac(_0x58f08b._0x194047),[_0x3891f3,_0x53a48c]),this[_0x4e93ac(_0x58f08b._0x2d99ac)]();}async[_0x7a0933(0x178)](_0x1a5810,_0x2b7b63){const _0x1e7600=_0x7a0933;this[_0x1e7600(0x1b2)](_0x1e7600(0x178),[_0x1a5810,_0x2b7b63]),this['maybeThrow']();}async[_0x7a0933(0x1bf)](_0x4f40a8,_0x756413,_0x3c0741){const _0x5c1f6c=_0x7a0933;this[_0x5c1f6c(0x1b2)](_0x5c1f6c(0x1bf),[_0x4f40a8,_0x756413,_0x3c0741]),this['maybeThrow']();}async[_0x7a0933(0x1af)](_0x550380,_0x2722b5){const _0x4b0423=_0x7a0933;this['record'](_0x4b0423(0x1af),[_0x550380,_0x2722b5]),this[_0x4b0423(0x177)]();}async['scrollIntoView'](_0x2d0134){const _0x4ece83={_0x3e0374:0x177},_0x35f012=_0x7a0933;this['record']('scrollIntoView',[_0x2d0134]),this[_0x35f012(_0x4ece83._0x3e0374)]();}async[_0x7a0933(0x1b1)](_0x470e81,_0x56fcd1,_0xc38555){const _0x5cb475={_0x4132c2:0x1b1,_0x46daea:0x177},_0x52412a=_0x7a0933;this[_0x52412a(0x1b2)](_0x52412a(_0x5cb475._0x4132c2),[_0x470e81,_0x56fcd1,_0xc38555]),this[_0x52412a(_0x5cb475._0x46daea)]();}async['uploadFile'](_0x170742,_0xcec988){const _0x1b141b=_0x7a0933;this[_0x1b141b(0x1b2)](_0x1b141b(0x16d),[_0x170742,_0xcec988]),this['maybeThrow']();}async['clipboardPaste'](_0x4b49f,_0x5b3a59){const _0x41ab91={_0xcdca68:0x1b2,_0x4951d8:0x1d3},_0x3d513b=_0x7a0933;this[_0x3d513b(_0x41ab91._0xcdca68)](_0x3d513b(_0x41ab91._0x4951d8),[_0x4b49f,_0x5b3a59]),this[_0x3d513b(0x177)]();}async[_0x7a0933(0x198)](_0x3bf283){const _0x1d9a45={_0x176877:0x1b2,_0x446624:0x1cd,_0x196121:0x18f},_0x4ce7a1=_0x7a0933;return this[_0x4ce7a1(_0x1d9a45._0x176877)](_0x4ce7a1(0x198),[_0x3bf283]),this[_0x4ce7a1(_0x1d9a45._0x446624)][_0x4ce7a1(_0x1d9a45._0x196121)]??0x1;}async['textContent'](_0x154c6f){const _0x44ab38={_0x6969a3:0x17e},_0x424992=_0x7a0933;return this[_0x424992(0x1b2)](_0x424992(0x169),[_0x154c6f]),this[_0x424992(0x1cd)][_0x424992(_0x44ab38._0x6969a3)]??'';}async['inputValue'](_0x74db80){const _0x3bdbc8={_0x58ba72:0x1b2,_0x57ae52:0x1cd},_0x44349a=_0x7a0933;return this[_0x44349a(_0x3bdbc8._0x58ba72)]('inputValue',[_0x74db80]),this[_0x44349a(_0x3bdbc8._0x57ae52)]['inputValueByDefault']??'';}async[_0x7a0933(0x1bc)](_0x50f143){const _0xca0b4d={_0x13cb10:0x1bc},_0x37a7bf=_0x7a0933;return this['record'](_0x37a7bf(_0xca0b4d._0x13cb10),[_0x50f143]),this['behavior']['checkedStateByDefault']??null;}async['isVisible'](_0x2c8d21){const _0x14c874={_0xa91be9:0x1cd},_0x5f34ed=_0x7a0933;return this[_0x5f34ed(0x1b2)](_0x5f34ed(0x1ca),[_0x2c8d21]),this[_0x5f34ed(_0x14c874._0xa91be9)]['isVisibleByDefault']??!![];}async[_0x7a0933(0x1c3)](_0xcffa63){const _0x415e96={_0x3fe1f2:0x1b2,_0x356042:0x1c3},_0x53e0ca=_0x7a0933;return this[_0x53e0ca(_0x415e96._0x3fe1f2)](_0x53e0ca(_0x415e96._0x356042),[_0xcffa63]),this['behavior'][_0x53e0ca(0x1a8)]??![];}async[_0x7a0933(0x191)](_0x231d3b,_0xd35877){const _0x1eeb80={_0x571f35:0x1b2},_0x529667=_0x7a0933;return this[_0x529667(_0x1eeb80._0x571f35)]('getAttribute',[_0x231d3b,_0xd35877]),this[_0x529667(0x1cd)][_0x529667(0x186)]?.[_0xd35877]??null;}async[_0x7a0933(0x196)](_0x56f7a7,_0x169030){const _0x143b4b={_0x2ae24c:0x196},_0x4d671c=_0x7a0933;this[_0x4d671c(0x1b2)](_0x4d671c(_0x143b4b._0x2ae24c),[_0x56f7a7,_0x169030]);}async[_0x7a0933(0x16b)](_0x2d9b30,_0x8d2b58){const _0x4a2288=_0x7a0933;this[_0x4a2288(0x1b2)]('waitForUrl',[_0x2d9b30,_0x8d2b58]);}async[_0x7a0933(0x1c5)](_0x41f15d,_0x28587f){const _0x2bbcec={_0x3ba2b4:0x1b2},_0x10cc7e=_0x7a0933;this[_0x10cc7e(_0x2bbcec._0x3ba2b4)](_0x10cc7e(0x1c5),[_0x41f15d,_0x28587f]);}async[_0x7a0933(0x172)](_0x1ee508){const _0x3ab1d3=_0x7a0933;this[_0x3ab1d3(0x1b2)](_0x3ab1d3(0x172),[_0x1ee508]);}async[_0x7a0933(0x1bb)](_0x17b686,_0x1c391d){const _0x120294=_0x7a0933;this[_0x120294(0x1b2)](_0x120294(0x1bb),[_0x17b686,_0x1c391d]);}async[_0x7a0933(0x16e)](_0x293c96,_0x3a514a){const _0x516777=_0x7a0933;this[_0x516777(0x1b2)](_0x516777(0x16e),[_0x293c96,_0x3a514a]),this[_0x516777(0x1a7)]=_0x293c96;}async[_0x7a0933(0x1a4)](_0x49b328){const _0x438121={_0x520267:0x1b2,_0xf69845:0x1a4},_0x17b795=_0x7a0933;this[_0x17b795(_0x438121._0x520267)](_0x17b795(_0x438121._0xf69845),[_0x49b328]);}async[_0x7a0933(0x1d4)](_0x531e61){const _0x29f6aa={_0x54b173:0x1b2},_0x458dd1=_0x7a0933;this[_0x458dd1(_0x29f6aa._0x54b173)]('goBack',[_0x531e61]);}async[_0x7a0933(0x195)](_0x243554){const _0xb271c8={_0x46081a:0x195},_0x85dca4=_0x7a0933;this['record'](_0x85dca4(_0xb271c8._0x46081a),[_0x243554]);}async[_0x7a0933(0x17a)](_0x3cb83f){const _0x4fced9={_0x383351:0x1b2},_0x3841e3=_0x7a0933;return this[_0x3841e3(_0x4fced9._0x383351)](_0x3841e3(0x17a),[_0x3cb83f]),void 0x0;}async[_0x7a0933(0x1b7)](_0x29434f,_0x36dc8a){const _0x362446={_0x38345e:0x1b7},_0x9f203b=_0x7a0933;return this['record'](_0x9f203b(_0x362446._0x38345e),[_0x29434f,_0x36dc8a]),void 0x0;}async[_0x7a0933(0x181)](_0x1ca755){const _0x5b4e3b={_0x4fa835:0x1ab,_0x2f6bce:0x1cd,_0x379264:0x166},_0x27f2d6=_0x7a0933;this['record']('inspectElement',[_0x1ca755]);if(_0x1ca755[_0x27f2d6(0x1ab)][_0x27f2d6(0x16f)]!==0x1||_0x1ca755[_0x27f2d6(_0x5b4e3b._0x4fa835)][0x0]['kind']!=='ref')return null;const _0x476568=_0x1ca755[_0x27f2d6(0x1ab)][0x0][_0x27f2d6(0x1d1)],_0x24c87e=this[_0x27f2d6(_0x5b4e3b._0x2f6bce)][_0x27f2d6(_0x5b4e3b._0x379264)]?.[_0x476568];return _0x24c87e??null;}async[_0x7a0933(0x1a2)](_0x3accde){const _0xb33f3a=_0x7a0933;return this['record'](_0xb33f3a(0x1a2),[_0x3accde]),Buffer[_0xb33f3a(0x18a)]('fake-png');}async[_0x7a0933(0x19c)](_0x1f2123){const _0x284d50={_0x16fc33:0x16f},_0x287100=_0x7a0933;this['record']('outerHTML',[_0x1f2123]);if(_0x1f2123[_0x287100(0x1ab)][_0x287100(_0x284d50._0x16fc33)]===0x1&&_0x1f2123[_0x287100(0x1ab)][0x0]['kind']==='ref'){const _0x47ce78=_0x1f2123[_0x287100(0x1ab)][0x0][_0x287100(0x1d1)];return this[_0x287100(0x1cd)][_0x287100(0x189)]?.[_0x47ce78]??'<div\x20data-unotest-ref=\x22'+_0x47ce78+'\x22></div>';}return _0x287100(0x1c2);}},FakeContext=class{constructor(_0x354287,_0x254b97,_0x5c92e7){const _0x5ac958={_0xbbe951:0x1ba,_0x2cf86a:0x1cd,_0x34bba2:0x1be,_0x34e54b:0x174,_0xfd12d6:0x1ac,_0x24c1c8:0x17b,_0x191c5b:0x184,_0x367fc1:0x1a0},_0x3fb672=_0x7a0933;this[_0x3fb672(_0x5ac958._0xbbe951)]=_0x354287,this[_0x3fb672(_0x5ac958._0x2cf86a)]=_0x254b97,this['scope']=_0x5c92e7;const _0x2f8316=new FakePage(_0x354287,_0x254b97,_0x5c92e7+'.page0',_0x254b97[_0x3fb672(_0x5ac958._0x34bba2)]??_0x3fb672(_0x5ac958._0x34e54b));_0x254b97['popupOnClick']&&(_0x2f8316[_0x3fb672(0x1a5)]=()=>{const _0xfb624f=_0x3fb672;this[_0xfb624f(0x1b3)](_0x254b97[_0xfb624f(0x1a6)]);}),this[_0x3fb672(_0x5ac958._0xfd12d6)]=[_0x2f8316],this[_0x3fb672(0x1b0)]={..._0x254b97[_0x3fb672(_0x5ac958._0x24c1c8)]??{}},this[_0x3fb672(_0x5ac958._0x191c5b)]={..._0x254b97[_0x3fb672(_0x5ac958._0x367fc1)]??{}};}[_0x7a0933(0x1ba)];[_0x7a0933(0x1cd)];[_0x7a0933(0x164)];static{__name(this,_0x7a0933(0x1aa));}[_0x7a0933(0x1ac)];[_0x7a0933(0x1d0)]=0x0;[_0x7a0933(0x1bd)]=[];[_0x7a0933(0x1b0)];['cookieState'];[_0x7a0933(0x18c)]=new Set();['record'](_0x453aa1,_0x3a7e7a){const _0x271b86={_0xabe298:0x1ba},_0xd41675=_0x7a0933;this[_0xd41675(_0x271b86._0xabe298)][_0xd41675(0x190)]({'scope':this[_0xd41675(0x164)],'method':_0x453aa1,'args':_0x3a7e7a});}['pages'](){return this['pageList'];}[_0x7a0933(0x192)](){const _0x3802f3={_0xd4865b:0x1ac,_0x27caf8:0x1d0},_0x4c451e=_0x7a0933,_0x1df0e5=this[_0x4c451e(_0x3802f3._0xd4865b)][this[_0x4c451e(_0x3802f3._0x27caf8)]];if(!_0x1df0e5)throw new DriverError('no\x20active\x20page\x20in\x20context',{'activeIdx':this[_0x4c451e(0x1d0)]});return _0x1df0e5;}['consoleEntries'](){const _0x475f36=_0x7a0933;return this[_0x475f36(0x1cd)]['consoleEntries']??[];}['networkEntries'](){const _0x5a6850=_0x7a0933;return this[_0x5a6850(0x1cd)][_0x5a6850(0x1c7)]??[];}async[_0x7a0933(0x1c6)](_0x3a8b67){const _0x5334ae={_0x4d6569:0x1b2,_0x4e7341:0x1ac,_0x3fd106:0x16f,_0x369501:0x1ac,_0x54ceda:0x1d0},_0x18551f=_0x7a0933;this[_0x18551f(_0x5334ae._0x4d6569)](_0x18551f(0x1c6),[_0x3a8b67]);if(_0x3a8b67<0x0||_0x3a8b67>=this[_0x18551f(_0x5334ae._0x4e7341)][_0x18551f(_0x5334ae._0x3fd106)])throw new DriverError(_0x18551f(0x1ce),{'index':_0x3a8b67,'available':this[_0x18551f(_0x5334ae._0x369501)][_0x18551f(0x16f)]});this[_0x18551f(_0x5334ae._0x54ceda)]=_0x3a8b67,this[_0x18551f(0x1bd)][_0x18551f(_0x5334ae._0x3fd106)]=0x0;}[_0x7a0933(0x162)](_0x171e68){return subscribe(this['newPageListeners'],_0x171e68);}['emitFakePopup'](_0x4bf6cc){const _0x6c3f8e={_0x15731a:0x164,_0x388e38:0x1c9,_0x1c70de:0x1ac,_0x2e10d3:0x16f,_0x205df3:0x1cd,_0x4005bd:0x1ac},_0x52fa17=_0x7a0933,_0x510aef=this[_0x52fa17(_0x6c3f8e._0x15731a)]+_0x52fa17(_0x6c3f8e._0x388e38)+this[_0x52fa17(_0x6c3f8e._0x1c70de)][_0x52fa17(_0x6c3f8e._0x2e10d3)],_0x393c45=new FakePage(this[_0x52fa17(0x1ba)],this[_0x52fa17(_0x6c3f8e._0x205df3)],_0x510aef,_0x4bf6cc);this[_0x52fa17(_0x6c3f8e._0x4005bd)]['push'](_0x393c45);const _0x322772=this[_0x52fa17(0x1ac)][_0x52fa17(0x16f)]-0x1;for(const _0x40dcfd of this['newPageListeners']){try{_0x40dcfd({'index':_0x322772,'url':_0x4bf6cc});}catch{}}return _0x322772;}[_0x7a0933(0x1ae)](_0x45b008){const _0x16497c={_0x3ce9ed:0x1ce,_0x1c40c8:0x1ac},_0x28fe73=_0x7a0933;if(_0x45b008<0x0||_0x45b008>=this[_0x28fe73(0x1ac)][_0x28fe73(0x16f)])throw new DriverError(_0x28fe73(_0x16497c._0x3ce9ed),{'index':_0x45b008,'available':this['pageList']['length']});this[_0x28fe73(_0x16497c._0x1c40c8)]['splice'](_0x45b008,0x1);}async['enterFrame'](_0x5d502b){const _0x58bebe={_0x422cfb:0x183,_0x1d0b20:0x1ab},_0x386295=_0x7a0933;this['record'](_0x386295(_0x58bebe._0x422cfb),[_0x5d502b]);if(!_0x5d502b[_0x386295(_0x58bebe._0x1d0b20)][_0x386295(0x16f)])throw new LocatorError('enterFrame\x20called\x20with\x20empty\x20locator',{'locator':_0x5d502b});this['frameStack'][_0x386295(0x190)](_0x5d502b);}async[_0x7a0933(0x17f)](){const _0x17adcf={_0x279f3c:0x19e,_0x50d61c:0x19a},_0x396d73=_0x7a0933;this['record'](_0x396d73(0x17f),[]);if(this['frameStack'][_0x396d73(0x16f)]===0x0)throw new DriverError(_0x396d73(_0x17adcf._0x279f3c),{});this['frameStack'][_0x396d73(_0x17adcf._0x50d61c)]();}async['setLocalStorage'](_0x1b3779,_0x548f9f){const _0x40d4da={_0x537f8a:0x1b0},_0x1d43fe=_0x7a0933;this[_0x1d43fe(0x1b2)]('setLocalStorage',[_0x1b3779,_0x548f9f]),this[_0x1d43fe(_0x40d4da._0x537f8a)][_0x1b3779]=_0x548f9f;}async[_0x7a0933(0x1b4)](_0x2ef722){const _0x51b5ee={_0x102714:0x1b2},_0x116487=_0x7a0933;return this[_0x116487(_0x51b5ee._0x102714)](_0x116487(0x1b4),[_0x2ef722]),this[_0x116487(0x1b0)][_0x2ef722]??null;}async[_0x7a0933(0x18e)](_0x25ca6c,_0x35b34c,_0x166917){const _0x3c1a38=_0x7a0933;this['record'](_0x3c1a38(0x18e),[_0x25ca6c,_0x35b34c,_0x166917]),this['cookieState'][_0x25ca6c]=_0x35b34c;}async['getCookie'](_0xb43db0){const _0x153fec={_0x295f13:0x19d},_0x5ef9a2=_0x7a0933;return this['record'](_0x5ef9a2(_0x153fec._0x295f13),[_0xb43db0]),this[_0x5ef9a2(0x184)][_0xb43db0]??null;}async[_0x7a0933(0x179)](_0x45c65a){const _0x22baf6={_0x465ed0:0x1b2},_0x5e6f14=_0x7a0933;this[_0x5e6f14(_0x22baf6._0x465ed0)]('saveStorageState',[_0x45c65a]);}async[_0x7a0933(0x17a)](_0x3de16d){const _0x116eb9={_0x927707:0x1b2,_0x242573:0x17a},_0xc477b8=_0x7a0933;return this[_0xc477b8(_0x116eb9._0x927707)](_0xc477b8(_0x116eb9._0x242573),[_0x3de16d]),void 0x0;}async[_0x7a0933(0x173)](){const _0x35f539={_0x306227:0x1b2},_0x4d1c00=_0x7a0933;this[_0x4d1c00(_0x35f539._0x306227)]('close',[]);}[_0x7a0933(0x170)](){const _0x6f991e=_0x7a0933;return this[_0x6f991e(0x1bd)]['length'];}},FakeWebDriver=class{constructor(_0x3870f5={}){const _0x4471d1={_0x1a300b:0x1ba},_0x46b688=_0x7a0933;this['behavior']=_0x3870f5,this[_0x46b688(_0x4471d1._0x1a300b)]=createRecorder();}[_0x7a0933(0x1cd)];static{__name(this,'FakeWebDriver');}['launched']=![];[_0x7a0933(0x1ba)];['contexts']=[];async[_0x7a0933(0x185)](_0x4f2bc3){const _0x139b27={_0x2e79eb:0x185},_0x5cd387=_0x7a0933;this[_0x5cd387(0x1ba)][_0x5cd387(0x190)]({'scope':'driver','method':_0x5cd387(_0x139b27._0x2e79eb),'args':[_0x4f2bc3]}),this['launched']=!![];}async['newContext'](_0x19019b){const _0x344590={_0x3383d7:0x171,_0x279bb6:0x168,_0x17280b:0x199,_0x375354:0x17d,_0x303eb5:0x16f},_0x213045=_0x7a0933;this['recorder'][_0x213045(0x190)]({'scope':'driver','method':_0x213045(_0x344590._0x3383d7),'args':[_0x19019b]});if(!this[_0x213045(_0x344590._0x279bb6)])throw new DriverError('newContext\x20called\x20before\x20launch()',{});const _0x2bc605=new FakeContext(this[_0x213045(0x1ba)],this['behavior'],_0x213045(_0x344590._0x17280b)+this[_0x213045(_0x344590._0x375354)][_0x213045(_0x344590._0x303eb5)]);return this['contexts']['push'](_0x2bc605),_0x2bc605;}async['close'](){const _0x3bcf3c={_0x4b19b2:0x1c4,_0xcae4bf:0x168},_0x455290=_0x7a0933;this['recorder'][_0x455290(0x190)]({'scope':_0x455290(_0x3bcf3c._0x4b19b2),'method':'close','args':[]}),this[_0x455290(_0x3bcf3c._0xcae4bf)]=![];}[_0x7a0933(0x175)](){return void 0x0;}async[_0x7a0933(0x187)](){const _0x875285={_0x2fd09e:0x19f},_0x4b8d67=_0x7a0933;throw new DriverError(_0x4b8d67(_0x875285._0x2fd09e),{});}['attachExisting'](){const _0x3d4562={_0x5d3810:0x180},_0x3aae8f=_0x7a0933;throw new DriverError(_0x3aae8f(_0x3d4562._0x5d3810),{});}[_0x7a0933(0x1c8)](){const _0x1c226d={_0x107032:0x1ba,_0x50ce66:0x1c8},_0x1a2021=_0x7a0933;return this[_0x1a2021(_0x1c226d._0x107032)][_0x1a2021(_0x1c226d._0x50ce66)]();}[_0x7a0933(0x1cc)](_0x390ab7){const _0x334ff1={_0x3b5eab:0x1ba,_0x4f6d27:0x1c8},_0x35a2c1=_0x7a0933;return this[_0x35a2c1(_0x334ff1._0x3b5eab)][_0x35a2c1(_0x334ff1._0x4f6d27)]()[_0x35a2c1(0x18b)](_0x5d820f=>_0x5d820f[_0x35a2c1(0x1b8)]===_0x390ab7);}};function _0x440a(_0x5e85e3,_0x389b6c){_0x5e85e3=_0x5e85e3-0x162;const _0x4bf198=_0x4bf1();let _0x440a29=_0x4bf198[_0x5e85e3];if(_0x440a['WIgSSK']===undefined){var _0x518c42=function(_0x53c32b){const _0x3c6ec4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x962db1='',_0x11af7e='';for(let _0x1fdba8=0x0,_0x4e4bb3,_0x3f38c0,_0x1d5681=0x0;_0x3f38c0=_0x53c32b['charAt'](_0x1d5681++);~_0x3f38c0&&(_0x4e4bb3=_0x1fdba8%0x4?_0x4e4bb3*0x40+_0x3f38c0:_0x3f38c0,_0x1fdba8++%0x4)?_0x962db1+=String['fromCharCode'](0xff&_0x4e4bb3>>(-0x2*_0x1fdba8&0x6)):0x0){_0x3f38c0=_0x3c6ec4['indexOf'](_0x3f38c0);}for(let _0x18c799=0x0,_0x271a05=_0x962db1['length'];_0x18c799<_0x271a05;_0x18c799++){_0x11af7e+='%'+('00'+_0x962db1['charCodeAt'](_0x18c799)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x11af7e);};_0x440a['LoceJl']=_0x518c42,_0x440a['FWtZcV']={},_0x440a['WIgSSK']=!![];}const _0x25a815=_0x4bf198[0x0],_0x1b5f11=_0x5e85e3+_0x25a815,_0x51ff8b=_0x440a['FWtZcV'][_0x1b5f11];return!_0x51ff8b?(_0x440a29=_0x440a['LoceJl'](_0x440a29),_0x440a['FWtZcV'][_0x1b5f11]=_0x440a29):_0x440a29=_0x51ff8b,_0x440a29;}export{FakeWebDriver};
|
package/dist/dsl/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as LocatorValue, W as WebDriver, D as DriverContext, d as DriverPage } from '../interfaces-
|
|
2
|
-
export { j as LocatorStep, k as appendStep, l as describeLocator, m as isLocatorValue, r as rootedAt } from '../interfaces-
|
|
1
|
+
import { i as LocatorValue, W as WebDriver, D as DriverContext, d as DriverPage } from '../interfaces-B-FxA_qn.js';
|
|
2
|
+
export { j as LocatorStep, k as appendStep, l as describeLocator, m as isLocatorValue, r as rootedAt } from '../interfaces-B-FxA_qn.js';
|
|
3
3
|
import { Matcher, RegexLiteral } from '@unotest/protocol';
|
|
4
4
|
import { ExecutionWalker, ExecutionEvent, RunResult, RunOptions } from '@unotest/dsl/executor';
|
|
5
5
|
export { ExecutionError, ExecutionEvent, RunOptions, RunResult } from '@unotest/dsl/executor';
|
|
@@ -88,10 +88,14 @@ interface Logger {
|
|
|
88
88
|
child(prefix: string): Logger;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
+
type FrameFormat = "png" | "webp";
|
|
92
|
+
|
|
91
93
|
interface ScreenshotSink {
|
|
92
|
-
/** Persist one
|
|
93
|
-
*
|
|
94
|
-
|
|
94
|
+
/** Persist one capture. `format` names the bytes so the sink can file
|
|
95
|
+
* them under the right extension instead of assuming — a `.png` that
|
|
96
|
+
* holds webp is the kind of thing nobody notices until a tool tries
|
|
97
|
+
* to read it. Returns the project-relative path it landed at. */
|
|
98
|
+
save(name: string, bytes: Buffer, format: FrameFormat): Promise<string>;
|
|
95
99
|
}
|
|
96
100
|
|
|
97
101
|
type DslPrimitive = string | number | boolean | null;
|