@unotest/web 0.40.0 → 0.41.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/CHANGELOG.md +265 -3
- package/README.md +20 -4
- package/dist/config/schema.js +1 -1
- package/dist/driver/index.js +1 -1
- package/dist/dsl/index.js +1 -1
- package/dist/dsl/web-dsl-language-service.js +1 -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 +4 -0
- 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/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,267 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.41.0] - 2026-09-21
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- e793fa2: `env push | set | rm`: the box and the token come from the project's own files
|
|
8
|
+
|
|
9
|
+
The values commands now resolve the box address and the project token
|
|
10
|
+
exactly the way `bundle push` does — a flag, then `UNOTEST_BOX_URL` /
|
|
11
|
+
`UNOTEST_BOX_TOKEN`, then `unotest/.env` and `unotest/.secrets`, where
|
|
12
|
+
`box create` and `box access` wrote them. A project set up with either of
|
|
13
|
+
those commands no longer answers "no box address" to `env push` while
|
|
14
|
+
`bundle push` works, and the two exports stop being typed in front of
|
|
15
|
+
every line.
|
|
16
|
+
|
|
17
|
+
`env set <env> <NAME> <value>` takes the value as an argument. Stdin
|
|
18
|
+
still works when there is none, and stays the way to pass a credential:
|
|
19
|
+
an argument is in the shell's history.
|
|
20
|
+
|
|
21
|
+
`env push --dry-run` now prints what the overlays resolved to, quoted, so
|
|
22
|
+
a value that kept its quotes or picked up a trailing space is visible
|
|
23
|
+
before it reaches a box. `--dry-run --json` carries the same under
|
|
24
|
+
`values`. A secret's value is still never printed: where it would be, the
|
|
25
|
+
mask used everywhere else (`‹secret:NAME›`) stands instead.
|
|
26
|
+
|
|
27
|
+
A push whose box lacks some of the suite's declared values no longer
|
|
28
|
+
claims the run "will stop at the first step that reads" one of them: the
|
|
29
|
+
names are what the suite DECLARES, and a declared name no scenario reads
|
|
30
|
+
costs a run nothing.
|
|
31
|
+
|
|
32
|
+
- 41b0369: A box rented from the dashboard now says how to send it a suite
|
|
33
|
+
|
|
34
|
+
A box rented from the CLI arrives with the suite already on it: `box create`
|
|
35
|
+
pushes it and prints the command that runs it. A box rented from the dashboard
|
|
36
|
+
arrives empty, and the card said nothing about that. It showed the address, the
|
|
37
|
+
login and the password, and left the customer with a machine that answers, an
|
|
38
|
+
empty viewer, and no idea that anything else was needed. Everything they had to
|
|
39
|
+
do next lived in an email and on the box's own empty screen.
|
|
40
|
+
|
|
41
|
+
The card of a ready box now carries the three commands that take a project from
|
|
42
|
+
here to a first run: sign in, take the box's tokens, push the suite. Each is a
|
|
43
|
+
field that can be copied in one click, with the box's own name already in it.
|
|
44
|
+
The environment name is filled in when the box has exactly one, and left as
|
|
45
|
+
`<env>` when it has several — picking one for the customer would send the run
|
|
46
|
+
to a site they did not mean, and nothing would refuse it, because the name is
|
|
47
|
+
perfectly valid. The collection is named too: a box runs a collection, not a
|
|
48
|
+
single scenario, and a push that names none is turned away.
|
|
49
|
+
|
|
50
|
+
Those commands are now written in one place and printed by both the card and
|
|
51
|
+
the "your box is ready" letter. They used to be the letter's alone, and a
|
|
52
|
+
second copy on the card would have been a second piece of advice the first time
|
|
53
|
+
either was edited.
|
|
54
|
+
|
|
55
|
+
Once a project has taken the box's tokens, the card stops repeating the first
|
|
56
|
+
two commands and asks only for the push. That is the one thing the cloud can
|
|
57
|
+
honestly know about the far end of a box: the suite travels from the customer's
|
|
58
|
+
machine straight to it, and nothing reports back. So the card says nothing at
|
|
59
|
+
all about runs — not "no runs yet", not "0 runs". It cannot tell a box that has
|
|
60
|
+
been testing for a week from one nobody has touched, and a page that says
|
|
61
|
+
otherwise is inventing it.
|
|
62
|
+
|
|
63
|
+
### Patch Changes
|
|
64
|
+
|
|
65
|
+
- 36bc4b3: An empty list of environments says which kind of empty it is
|
|
66
|
+
|
|
67
|
+
`box envs` on a box that listed nothing said "This box serves no environments
|
|
68
|
+
you can read." — a sentence about the token, on a list that is not filtered by
|
|
69
|
+
the token at all. People whose box was simply new went looking for a stronger
|
|
70
|
+
credential, and the box's own journal had nothing to say either way.
|
|
71
|
+
|
|
72
|
+
The list now talks about the box:
|
|
73
|
+
|
|
74
|
+
This box serves no environments yet.
|
|
75
|
+
An environment appears once a suite has been pushed to it.
|
|
76
|
+
|
|
77
|
+
A token that really is not let in still answers in its own words, with its own
|
|
78
|
+
exit code, so the two are told apart by reading them.
|
|
79
|
+
|
|
80
|
+
Behind the list, the box now records which of five things happened when it
|
|
81
|
+
looked for its route table: there is no table yet, the table cannot be read,
|
|
82
|
+
it is not JSON, its shape is wrong, or it is honestly empty. Each is one line
|
|
83
|
+
in the box's journal, naming the file and never its contents — the table holds
|
|
84
|
+
internal addresses. A table that loaded says how many environments it found,
|
|
85
|
+
because "none" and "three" were otherwise the same silence.
|
|
86
|
+
|
|
87
|
+
Two fixes come with it. A line belongs to a state rather than to a request, so
|
|
88
|
+
a busy box writes one line and not one per proxied asset. And a table that
|
|
89
|
+
failed to parse is read again a second later instead of being remembered as an
|
|
90
|
+
empty box until its timestamp changes — which is why "I tried again and it was
|
|
91
|
+
the same" used to be true.
|
|
92
|
+
|
|
93
|
+
An empty list stays a successful answer, `200` with no entries: a box with
|
|
94
|
+
nothing on it yet is a normal box, not a service that is down.
|
|
95
|
+
|
|
96
|
+
- 7bac819: A box installs a suite whose `npm ci` is slow, and stops retrying in a loop
|
|
97
|
+
|
|
98
|
+
A box could not install a suite whose dependency install went quiet for
|
|
99
|
+
more than five minutes — which is what a heavy lockfile does. The install
|
|
100
|
+
died on the 301st second, reported the runner as unavailable, and the box
|
|
101
|
+
started the whole install again in the second it failed. That repeated for
|
|
102
|
+
as long as the box existed: nothing ever ran on it, and the message blamed
|
|
103
|
+
the network rather than naming the timeout that caused it.
|
|
104
|
+
|
|
105
|
+
Three things change. The daemon no longer puts a ceiling of its own on
|
|
106
|
+
reading a run's output, so silence is not a failure; the run's deadline
|
|
107
|
+
remains the only clock that ends a run, and a backstop behind it covers a
|
|
108
|
+
connection that stops answering altogether. A run whose output stops
|
|
109
|
+
without an exit now takes its container with it — abandoned containers
|
|
110
|
+
used to fill the box's capacity while healthy environments waited for a
|
|
111
|
+
slot. And a failed install is followed by a pause that grows: 1, 2, 5, 15
|
|
112
|
+
and 30 minutes, capped there, never "never". Asking for that bundle
|
|
113
|
+
yourself — a switch or a repair — is tried at once and clears the count,
|
|
114
|
+
as does an install that succeeds, and the log says when the box will try
|
|
115
|
+
next by itself.
|
|
116
|
+
|
|
117
|
+
The pause is the box's own, never yours: a run you order by hand, and a run
|
|
118
|
+
a push to your repository orders, install the bundle at once and clear the
|
|
119
|
+
count. Only the box's unattended retry waits.
|
|
120
|
+
|
|
121
|
+
- 7880b7d: Installs on a box share one npm cache, and a suite can never reach it
|
|
122
|
+
|
|
123
|
+
Until now every install on a box started with an empty npm cache: the
|
|
124
|
+
container that runs `npm ci` was thrown away with everything it had
|
|
125
|
+
downloaded, so the second box of the same account — and the same box
|
|
126
|
+
after a restart — paid the full download again for dependencies it had
|
|
127
|
+
already had twice.
|
|
128
|
+
|
|
129
|
+
Boxes now keep one npm cache and every install uses it. The second
|
|
130
|
+
install of a dependency is taken from disk instead of the network; how
|
|
131
|
+
much time that saves depends on your lockfile and your registry, and on a
|
|
132
|
+
fast registry it can be none at all — the promise here is only that
|
|
133
|
+
what has already been downloaded is not downloaded again.
|
|
134
|
+
|
|
135
|
+
The cache is mounted into the container that installs, and into no other.
|
|
136
|
+
A container running your suite gets no access to it under any name: the
|
|
137
|
+
cache is the directory that every later install of every project on that
|
|
138
|
+
box unpacks, and a test that could write into it would be writing into
|
|
139
|
+
the next install. That boundary is asserted as a pair — the install has
|
|
140
|
+
it, the run does not — rather than as two separate claims.
|
|
141
|
+
|
|
142
|
+
A substituted cache entry is never installed. npm verifies an entry's
|
|
143
|
+
checksum when it READS from the cache, not only when it writes one: an
|
|
144
|
+
entry whose content does not match is reported as corrupted and fetched
|
|
145
|
+
again (verified on the box's own image, npm 11.16.0 — with a registry
|
|
146
|
+
reachable the correct package is installed; without one the install fails
|
|
147
|
+
rather than using the substitute).
|
|
148
|
+
|
|
149
|
+
The box keeps the cache's size in hand. It is measured on each
|
|
150
|
+
housekeeping sweep and, over the ceiling (1 GB by default, and an
|
|
151
|
+
operator can raise it or turn it off), emptied whole with a line in the
|
|
152
|
+
log — losing a cache costs a download and nothing else.
|
|
153
|
+
|
|
154
|
+
- d456001: Ordering a run in an environment now decides what that environment serves
|
|
155
|
+
|
|
156
|
+
Pushing a suite and asking for a run in a named environment is a
|
|
157
|
+
statement about that environment: it should serve the bundle you just
|
|
158
|
+
sent. Until now the box decided that separately, by matching the
|
|
159
|
+
bundle's branch — so a suite packed outside a git repository, which is
|
|
160
|
+
what `init` produces in a clean directory, matched nothing. The run
|
|
161
|
+
installed, executed and passed, while the environment kept pointing at
|
|
162
|
+
nothing: its viewer was never started, the guard was given no route for
|
|
163
|
+
it, `box envs` listed nothing, and `box runs --env <name>` answered that
|
|
164
|
+
the box does not serve that environment. Four different answers to one
|
|
165
|
+
question, after the client had been told the suite was accepted and
|
|
166
|
+
queued.
|
|
167
|
+
|
|
168
|
+
An explicit run request now selects the bundle for the environment,
|
|
169
|
+
through the same path a selection made in the viewer takes, recorded
|
|
170
|
+
against the token that pushed — so it survives a restart and the box
|
|
171
|
+
does not silently move the environment back on its next sweep. Branch
|
|
172
|
+
matching keeps deciding exactly one thing, the one it is right for:
|
|
173
|
+
which bundle the environment's SCHEDULES run.
|
|
174
|
+
|
|
175
|
+
An environment that may not be switched (`allowSwitch: false`) keeps
|
|
176
|
+
serving what its own branch deploys, and the answer now says so instead
|
|
177
|
+
of leaving it to be found out: the run goes ahead there, and the
|
|
178
|
+
acceptance names the branch the environment stays on — so it is clear
|
|
179
|
+
the result belongs to that environment's journal rather than to the
|
|
180
|
+
screen the environment shows.
|
|
181
|
+
|
|
182
|
+
The one case with nothing to show is refused out loud. An environment
|
|
183
|
+
that may not be switched and serves nothing yet has no viewer at all, so
|
|
184
|
+
a run ordered there could only end where this bug ended: executed, green
|
|
185
|
+
and invisible. The refusal names the branch to deploy to instead.
|
|
186
|
+
|
|
187
|
+
Migration note: that refusal is a new error code on the run endpoint.
|
|
188
|
+
A CLI older than this release does not know it and will report the
|
|
189
|
+
box's answer as "not a box" rather than as a refusal — the request is
|
|
190
|
+
still refused, and nothing runs. Upgrade the CLI to see the message.
|
|
191
|
+
The acceptance note is a new field on an otherwise unchanged answer, and
|
|
192
|
+
an older CLI ignores it.
|
|
193
|
+
|
|
194
|
+
- 436b683: The box's own screen gives the same first-run command as everything else
|
|
195
|
+
|
|
196
|
+
A freshly rented box shows two commands: one that points the project at the
|
|
197
|
+
box, one that sends the suite and starts it running. The second was printed
|
|
198
|
+
without `--collection`, and a box runs a collection or a schedule — never a
|
|
199
|
+
scenario by name. Copied exactly as shown, into a project straight out of
|
|
200
|
+
`init`, it came back refused with nothing to run: an answer about a project
|
|
201
|
+
that had done nothing wrong, from the first screen a new box owner reads.
|
|
202
|
+
|
|
203
|
+
The screen now prints the whole command, and says where collections live:
|
|
204
|
+
|
|
205
|
+
npx @unotest/web bundle push --run --env ENVIRONMENT --collection examples
|
|
206
|
+
|
|
207
|
+
The command is no longer written out on each surface that shows it. The box's
|
|
208
|
+
screen, the last line of `box create`, and the collection `init` writes all
|
|
209
|
+
come from one place, so the next flag to change changes in one edit rather
|
|
210
|
+
than in three. `examples` is the collection `init` creates, and the screen
|
|
211
|
+
says so — it is an example of a name, not a claim about your project.
|
|
212
|
+
|
|
213
|
+
The cabinet half is unchanged in behaviour: with exactly one environment and
|
|
214
|
+
one collection it still prints a command that can be pasted as is, and
|
|
215
|
+
placeholders where it cannot know.
|
|
216
|
+
|
|
217
|
+
- 3d8e45d: `unotest/.secrets` is now created owner-only (`0600`)
|
|
218
|
+
|
|
219
|
+
The file holds the box push and read tokens, and was created with the
|
|
220
|
+
default umask — on a shared machine any other user could read it. It is
|
|
221
|
+
now narrow from the moment it is created, and a file left wider by an
|
|
222
|
+
earlier version is narrowed the next time a command writes to it, with one
|
|
223
|
+
line saying what changed. `unotest/.env` is configuration rather than
|
|
224
|
+
secrets and keeps the width your project gave it.
|
|
225
|
+
|
|
226
|
+
- 8a436b9: Exploration tools refuse an unknown `{{NAME}}` instead of typing it
|
|
227
|
+
|
|
228
|
+
A `{{NAME}}` the session could not resolve was passed through as text, so
|
|
229
|
+
`explore_run_flow {args:["admin","{{PASSWORD}}"]}` typed the placeholder
|
|
230
|
+
into the password field and the page answered with a normal login failure.
|
|
231
|
+
It now fails with a message that names the variable, says where to declare
|
|
232
|
+
it, and lists the names the session does have — so the value never has to
|
|
233
|
+
be pasted into the tool call by hand.
|
|
234
|
+
|
|
235
|
+
A bare `SHOUTY_NAME` is unchanged: a reference where it is registered, a
|
|
236
|
+
literal otherwise. A variable declared with an empty value still
|
|
237
|
+
substitutes as empty and is reported in `variableWarnings`; a name
|
|
238
|
+
declared as a secret with an empty value is refused with its own message.
|
|
239
|
+
|
|
240
|
+
- a1b9eac: Editing a secret in the viewer's variables panel keeps `unotest/.secrets` owner-only
|
|
241
|
+
|
|
242
|
+
The panel writes a file by creating a temporary one beside it and renaming
|
|
243
|
+
it into place, and a rename replaces the target together with its
|
|
244
|
+
permissions. So a secrets file that was owner-only became world-readable
|
|
245
|
+
again after a single edit in the panel, with the box tokens inside it, and
|
|
246
|
+
adding the first secret to a project created the file wide in the first
|
|
247
|
+
place.
|
|
248
|
+
|
|
249
|
+
The temporary file is now created owner-only when the layer being written
|
|
250
|
+
holds secrets, which also narrows a file an earlier version left wide. A
|
|
251
|
+
leftover temporary file from an interrupted write is removed rather than
|
|
252
|
+
reused, so it cannot pass its own permissions on. `unotest/.env` is
|
|
253
|
+
configuration rather than secrets and keeps the width your project gave it.
|
|
254
|
+
On Windows there are no POSIX permission bits and nothing is narrowed
|
|
255
|
+
there.
|
|
256
|
+
|
|
257
|
+
- Updated dependencies [436b683]
|
|
258
|
+
- Updated dependencies [a1b9eac]
|
|
259
|
+
- @unotest/protocol@0.41.0
|
|
260
|
+
- @unotest/viewer@0.41.0
|
|
261
|
+
- @unotest/core@0.41.0
|
|
262
|
+
- @unotest/dsl@0.41.0
|
|
263
|
+
- @unotest/grounder-client@0.41.0
|
|
264
|
+
|
|
3
265
|
## [0.40.0] - 2026-09-19
|
|
4
266
|
|
|
5
267
|
### Minor Changes
|
|
@@ -389,7 +651,7 @@ picker on` fetches this project's own access and writes the three grounder
|
|
|
389
651
|
|
|
390
652
|
That screen named one command:
|
|
391
653
|
|
|
392
|
-
|
|
654
|
+
npx @unotest/web bundle push --run --env ENVIRONMENT
|
|
393
655
|
|
|
394
656
|
In a project that has just been created, the command refuses with `no box
|
|
395
657
|
address` before it does anything: the project holds neither the box's address
|
|
@@ -398,8 +660,8 @@ address` before it does anything: the project holds neither the box's address
|
|
|
398
660
|
|
|
399
661
|
The screen now names both steps, in the order they have to happen:
|
|
400
662
|
|
|
401
|
-
|
|
402
|
-
|
|
663
|
+
npx @unotest/web box access larch
|
|
664
|
+
npx @unotest/web bundle push --run --env ENVIRONMENT
|
|
403
665
|
|
|
404
666
|
The box's own name is filled in when its licence carries one. `box access`
|
|
405
667
|
with no name refuses, and its refusal offers to create a box — to somebody who
|
package/README.md
CHANGED
|
@@ -253,13 +253,18 @@ run reads:
|
|
|
253
253
|
|
|
254
254
|
```sh
|
|
255
255
|
npx @unotest/web env push dev # .env + .env.dev + .secrets + .secrets.dev
|
|
256
|
+
npx @unotest/web env set dev REGION eu-west
|
|
256
257
|
printf '%s' "$KEY" | npx @unotest/web env set dev API_KEY --secret
|
|
257
258
|
```
|
|
258
259
|
|
|
259
260
|
`.env*` become the environment's variables, `.secrets*` its secrets,
|
|
260
|
-
`APP_BASE_URL` its target; `UNOTEST_*` stay home. A value never
|
|
261
|
-
|
|
262
|
-
|
|
261
|
+
`APP_BASE_URL` its target; `UNOTEST_*` stay home. A secret's value never
|
|
262
|
+
prints; `env push --dry-run` shows what the other values resolved to. The
|
|
263
|
+
box and the token come from the same places `bundle push` reads them
|
|
264
|
+
from — flags, the environment, then `unotest/.env` and
|
|
265
|
+
`unotest/.secrets` — and the token must be minted with `--values` on the
|
|
266
|
+
box. Admins also see and change them on the box's admin page. Manual: [An
|
|
267
|
+
environment's values on a
|
|
263
268
|
box](https://docs.unotest.com/box/environments-and-values/).
|
|
264
269
|
|
|
265
270
|
A run on the box happens inside the box's own container: nothing on your
|
|
@@ -309,6 +314,16 @@ file; `--box` and `--token` win over both.
|
|
|
309
314
|
The token is never read from `unotest/.env` — that file travels inside a
|
|
310
315
|
pushed bundle, and `.secrets` does not.
|
|
311
316
|
|
|
317
|
+
`unotest/.secrets` is created owner-only (`0600`), so the tokens in it are
|
|
318
|
+
not readable by other users of a shared machine. A file left wider by an
|
|
319
|
+
earlier version is narrowed the next time a command writes to it, and the
|
|
320
|
+
command says so once. Editing a secret in the viewer's variables panel
|
|
321
|
+
keeps the same width. `unotest/.env` is configuration, not secrets, and
|
|
322
|
+
keeps whatever width your project gave it.
|
|
323
|
+
|
|
324
|
+
On Windows there are no POSIX permission bits, so nothing is narrowed there
|
|
325
|
+
and no width is promised: protect the file with the tools your system has.
|
|
326
|
+
|
|
312
327
|
Keeping it in the file is what lets your agent read runs: an MCP server is
|
|
313
328
|
started by your editor, so a token that only exists in your shell is a
|
|
314
329
|
token the agent never sees. A token added while the server is running is
|
|
@@ -320,7 +335,8 @@ hand you mint it for yourself on the box's guard, where it is shown once
|
|
|
320
335
|
and can be revoked. Either way it is read-only whatever your role on the
|
|
321
336
|
box — it cannot start a run or change a value. `UNOTEST_BOX_TOKEN` is the
|
|
322
337
|
project's push credential and cannot read runs. `box envs` lists the
|
|
323
|
-
environments
|
|
338
|
+
environments the box serves — an empty list means the box has none yet,
|
|
339
|
+
not that the token is too weak to see them.
|
|
324
340
|
|
|
325
341
|
## 5. Watch it run — the viewer
|
|
326
342
|
|
package/dist/config/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
var _0x11147f=_0x3619;(function(_0x45534e,_0x5d9f5d){var _0x4e7a9c={_0x1edeea:0x147,_0x2da4f1:0x15b,_0x45797b:0x14c,_0x6aa242:0x163,_0x31fb5d:0x145,_0x49e31d:0x156,_0x286bde:0x177},_0xeb1bb2=_0x3619,_0x55ddb3=_0x45534e();while(!![]){try{var _0x25cd55=-parseInt(_0xeb1bb2(_0x4e7a9c._0x1edeea))/0x1+-parseInt(_0xeb1bb2(_0x4e7a9c._0x2da4f1))/0x2*(-parseInt(_0xeb1bb2(0x16c))/0x3)+-parseInt(_0xeb1bb2(_0x4e7a9c._0x45797b))/0x4+-parseInt(_0xeb1bb2(0x16f))/0x5*(-parseInt(_0xeb1bb2(0x155))/0x6)+-parseInt(_0xeb1bb2(0x154))/0x7+parseInt(_0xeb1bb2(_0x4e7a9c._0x6aa242))/0x8*(-parseInt(_0xeb1bb2(_0x4e7a9c._0x31fb5d))/0x9)+parseInt(_0xeb1bb2(_0x4e7a9c._0x49e31d))/0xa*(parseInt(_0xeb1bb2(_0x4e7a9c._0x286bde))/0xb);if(_0x25cd55===_0x5d9f5d)break;else _0x55ddb3['push'](_0x55ddb3['shift']());}catch(_0x27d78b){_0x55ddb3['push'](_0x55ddb3['shift']());}}}(_0x5ebe,0xda387));import{z}from'zod';var BrowserSchema=z['enum']([_0x11147f(0x159),_0x11147f(0x166),_0x11147f(0x167)]),BrowserChannelSchema=z[_0x11147f(0x15a)]([z[_0x11147f(0x14f)](_0x11147f(0x153)),z['literal'](_0x11147f(0x13d)),z[_0x11147f(0x14f)](_0x11147f(0x171)),z[_0x11147f(0x149)]()])[_0x11147f(0x161)](),ViewportSchema=z[_0x11147f(0x148)]({'width':z['number']()[_0x11147f(0x141)]()[_0x11147f(0x14b)](),'height':z[_0x11147f(0x16e)]()['int']()[_0x11147f(0x14b)]()}),RetryReasonSchema=z['enum']([_0x11147f(0x168),_0x11147f(0x16b),'crash']),RetryConfigSchema=z[_0x11147f(0x148)]({'count':z[_0x11147f(0x16e)]()['int']()[_0x11147f(0x15f)](0x0)['max'](0xa),'on':z[_0x11147f(0x176)](RetryReasonSchema)}),FailureBundleConfigSchema=z[_0x11147f(0x148)]({'tier1':z[_0x11147f(0x14f)](!![])[_0x11147f(0x13b)](!![]),'tier2':z['boolean'](),'tier3':z[_0x11147f(0x148)]({'network':z[_0x11147f(0x144)](),'video':z[_0x11147f(0x144)]()}),'retention':z[_0x11147f(0x148)]({'runs':z['number']()[_0x11147f(0x141)]()['positive'](),'days':z[_0x11147f(0x16e)]()[_0x11147f(0x141)]()[_0x11147f(0x14b)]()}),'storageDir':z['string']()[_0x11147f(0x15f)](0x1)}),DialogPolicySchema=z['enum'](['accept',_0x11147f(0x175),_0x11147f(0x165)]),LinterRuleIdSchema=z['enum'](['lint:deep-css',_0x11147f(0x13f),_0x11147f(0x14e),_0x11147f(0x14d),_0x11147f(0x13e),_0x11147f(0x143),'lint:scenario-in-root',_0x11147f(0x158),'lint:goto-concat',_0x11147f(0x15d),'lint:echo-assert',_0x11147f(0x179),'lint:lint-ok-missing-reason',_0x11147f(0x142),_0x11147f(0x170),_0x11147f(0x169),'lint:one-test-per-file',_0x11147f(0x174),_0x11147f(0x17a),_0x11147f(0x14a),'validator:step-coverage',_0x11147f(0x17b),_0x11147f(0x152),'validator:function-shape',_0x11147f(0x151),_0x11147f(0x16d),'validator:var-shape',_0x11147f(0x146),'validator:unsupported-expression',_0x11147f(0x160),_0x11147f(0x162),_0x11147f(0x15e),_0x11147f(0x164)]),LinterSeveritySchema=z['enum']([_0x11147f(0x172),'warn',_0x11147f(0x157)]),LinterConfigSchema=z[_0x11147f(0x148)]({'enabled':z[_0x11147f(0x144)](),'rules':z[_0x11147f(0x178)](LinterRuleIdSchema,LinterSeveritySchema)}),QueueConfigSchema=z[_0x11147f(0x148)]({'enabled':z[_0x11147f(0x144)]()[_0x11147f(0x13b)](!![]),'concurrency':z[_0x11147f(0x16e)]()['int']()[_0x11147f(0x14b)]()[_0x11147f(0x13b)](0x1)}),ScheduleSchema=z['object']({'collection':z[_0x11147f(0x15c)]()['min'](0x1),'cron':z[_0x11147f(0x15c)]()[_0x11147f(0x15f)](0x1),'env':z[_0x11147f(0x15c)]()[_0x11147f(0x15f)](0x1)[_0x11147f(0x161)](),'prepare':z['string']()['min'](0x1)[_0x11147f(0x161)]()}),McpConfigSchema=z[_0x11147f(0x148)]({'transport':z['literal'](_0x11147f(0x173))}),SandboxConfigSchema=z[_0x11147f(0x148)]({'shellCwd':z[_0x11147f(0x15c)]()['optional'](),'shellTimeoutMs':z[_0x11147f(0x16e)]()[_0x11147f(0x141)]()['positive']()[_0x11147f(0x161)](),'exportSecrets':z[_0x11147f(0x176)](z['string']())['optional'](),'database':z[_0x11147f(0x15c)]()[_0x11147f(0x161)](),'apiBaseUrl':z['string']()[_0x11147f(0x140)]()[_0x11147f(0x161)](),'uploadDir':z[_0x11147f(0x15c)]()[_0x11147f(0x161)]()}),WebServerConfigSchema=z[_0x11147f(0x148)]({'command':z[_0x11147f(0x15c)]()[_0x11147f(0x15f)](0x1),'url':z[_0x11147f(0x15c)]()['url'](),'reuseExistingServer':z[_0x11147f(0x144)]()['default'](!![]),'timeoutMs':z[_0x11147f(0x16e)]()[_0x11147f(0x141)]()[_0x11147f(0x14b)]()[_0x11147f(0x13b)](0xea60)}),UnotestConfigSchema=z[_0x11147f(0x148)]({'baseUrl':z['string']()[_0x11147f(0x140)]()[_0x11147f(0x161)](),'webServer':WebServerConfigSchema[_0x11147f(0x161)](),'browsers':z[_0x11147f(0x176)](BrowserSchema)[_0x11147f(0x15f)](0x1),'channel':BrowserChannelSchema,'viewport':ViewportSchema,'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':z[_0x11147f(0x15c)]()[_0x11147f(0x161)](),'testDir':z[_0x11147f(0x15c)]()[_0x11147f(0x15f)](0x1),'helpersDir':z[_0x11147f(0x15c)]()[_0x11147f(0x15f)](0x1),'defaultTimeoutMs':z[_0x11147f(0x16e)]()[_0x11147f(0x141)]()[_0x11147f(0x14b)](),'defaultNavigationTimeoutMs':z[_0x11147f(0x16e)]()['int']()[_0x11147f(0x14b)](),'linter':LinterConfigSchema,'mcp':McpConfigSchema,'queue':QueueConfigSchema,'schedules':z['array'](ScheduleSchema)[_0x11147f(0x13b)]([]),'sandbox':SandboxConfigSchema}),DEFAULT_CONFIG={'browsers':[_0x11147f(0x159)],'viewport':{'width':0x500,'height':0x2d0},'retry':{'count':0x0,'on':['transient']},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':'.unotest/failures'},'dialogPolicy':'accept','testDir':_0x11147f(0x13c),'helpersDir':_0x11147f(0x150),'defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x7530,'linter':{'enabled':!![],'rules':{'lint:deep-css':_0x11147f(0x16a),'lint:xpath':_0x11147f(0x16a),'lint:obfuscated-class':_0x11147f(0x16a),'lint:pause-explicit':_0x11147f(0x16a),'lint:disambig-by-index':_0x11147f(0x172),'lint:evaluate-discouraged':'warn','lint:scenario-in-root':'error','lint:mustache-in-dsl':_0x11147f(0x157),'lint:goto-concat':_0x11147f(0x16a),'lint:regex-invalid':_0x11147f(0x157),'lint:echo-assert':_0x11147f(0x16a),'lint:lint-ok-missing-reason':_0x11147f(0x16a),'lint:flow-returns-value':_0x11147f(0x16a),'lint:legacy-layout':_0x11147f(0x16a),'lint:external-variable-undeclared':_0x11147f(0x157),'lint:one-test-per-file':'warn','validator:unknown-function':_0x11147f(0x157)}},'mcp':{'transport':_0x11147f(0x173)},'queue':{'enabled':!![],'concurrency':0x1},'schedules':[],'sandbox':{}};function _0x5ebe(){var _0x544887=['Dw5PB24','mJeYzLn6vNfd','C3rYAw5N','BgLUDdPYzwDLEc1PBNzHBgLK','DMfSAwrHDg9YoMXPC3qTyxjN','BwLU','DMfSAwrHDg9YoNn0CMLUzY1JB25Jyxq','B3b0Aw9UywW','DMfSAwrHDg9YoNnLBwfUDgLJlwXVC3m','ntuYodHbD21Mq00','DMfSAwrHDg9YoNDYyxbWzwqTzM9YBwf0','BwfUDwfS','zMLYzwzVEa','D2vIA2L0','DhjHBNnPzw50','BgLUDdPLEhrLCM5HBc12yxjPywjSzs11BMrLy2XHCMvK','D2fYBG','BMv0D29YAW','ndC4odzzB0vOAfa','DMfSAwrHDg9YoMLMlxnOyxbL','BNvTyMvY','mty5mZiXmhjNteLUDq','BgLUDdPSzwDHy3KTBgf5B3v0','y2HYB21LlwjLDge','B2zM','C3rKAw8','DMfSAwrHDg9YoNvUA25VD24TzNvUy3rPB24','zgLZBwLZCW','yxjYyxK','mtC1nJmWmtHJuxbxwuC','CMvJB3jK','BgLUDdPHCgKTy2fSBc1MAwXLlwjVzhK','DMfSAwrHDg9YoMfYAxr5','DMfSAwrHDg9YoNn0zxaTC2HHCgu','zgvMyxvSDa','Dw5VDgvZDc9LmMu','BxnLzgDL','BgLUDdPKAxnHBwjPzY1IEs1PBMrLEa','BgLUDdP4Cgf0Aa','DxjS','Aw50','BgLUDdPMBg93lxjLDhvYBNmTDMfSDwu','BgLUDdPLDMfSDwf0zs1KAxnJB3vYywDLza','yM9VBgvHBG','mtmYm3LKBwPszG','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlxn0yxrLBwvUDa','odi1nZy0AfbMBe9j','B2jQzwn0','BNvSBa','DMfSAwrHDg9YoMfYzY1RAw5K','Cg9ZAxrPDMu','mtKZnJqYmgjmsK5bsG','BgLUDdPWyxvZzs1LEhbSAwnPDa','BgLUDdPVyMz1C2nHDgvKlwnSyxnZ','BgL0zxjHBa','Dw5VDgvZDc9LmMuVx2HLBhbLCNm','DMfSAwrHDg9YoMzVCI1ZAgfWzq','DMfSAwrHDg9YoM1LDgeTC2HHCgu','y2HYB21L','mtiZmZu0mJfSCgLMDw4','mZbQr2zMyLi','mtbzwNneD1O','zxjYB3i','BgLUDdPTDxn0ywnOzs1PBI1KC2W','y2HYB21PDw0'];_0x5ebe=function(){return _0x544887;};return _0x5ebe();}function _0x3619(_0x5f06b7,_0x5e1052){_0x5f06b7=_0x5f06b7-0x13b;var _0x5ebe27=_0x5ebe();var _0x36198e=_0x5ebe27[_0x5f06b7];if(_0x3619['MsaDYg']===undefined){var _0x47f406=function(_0x209b55){var _0x5a1961='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x541e51='',_0x19aa18='';for(var _0x5cd0b5=0x0,_0x22c6e0,_0x5cd928,_0xb0454=0x0;_0x5cd928=_0x209b55['charAt'](_0xb0454++);~_0x5cd928&&(_0x22c6e0=_0x5cd0b5%0x4?_0x22c6e0*0x40+_0x5cd928:_0x5cd928,_0x5cd0b5++%0x4)?_0x541e51+=String['fromCharCode'](0xff&_0x22c6e0>>(-0x2*_0x5cd0b5&0x6)):0x0){_0x5cd928=_0x5a1961['indexOf'](_0x5cd928);}for(var _0x1497c4=0x0,_0x595653=_0x541e51['length'];_0x1497c4<_0x595653;_0x1497c4++){_0x19aa18+='%'+('00'+_0x541e51['charCodeAt'](_0x1497c4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x19aa18);};_0x3619['QCOiuC']=_0x47f406,_0x3619['VkmBKP']={},_0x3619['MsaDYg']=!![];}var _0x3ca301=_0x5ebe27[0x0],_0xb0a50f=_0x5f06b7+_0x3ca301,_0x3ad402=_0x3619['VkmBKP'][_0xb0a50f];return!_0x3ad402?(_0x36198e=_0x3619['QCOiuC'](_0x36198e),_0x3619['VkmBKP'][_0xb0a50f]=_0x36198e):_0x36198e=_0x3ad402,_0x36198e;}export{BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,QueueConfigSchema,RetryConfigSchema,RetryReasonSchema,SandboxConfigSchema,ScheduleSchema,UnotestConfigSchema,ViewportSchema,WebServerConfigSchema};
|
package/dist/driver/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x294f52=_0x5ba6;(function(_0x3795f0,_0x1eb898){const _0x3a9f41={_0x198bf9:0x109,_0x256073:0xa2,_0x25ed2a:0x96,_0x3c7afe:0xd1},_0x272dd3=_0x5ba6,_0x4a69f4=_0x3795f0();while(!![]){try{const _0x37b462=-parseInt(_0x272dd3(0xca))/0x1+-parseInt(_0x272dd3(0xac))/0x2+parseInt(_0x272dd3(_0x3a9f41._0x198bf9))/0x3*(-parseInt(_0x272dd3(0xea))/0x4)+parseInt(_0x272dd3(0x91))/0x5+-parseInt(_0x272dd3(0xb4))/0x6*(-parseInt(_0x272dd3(_0x3a9f41._0x256073))/0x7)+parseInt(_0x272dd3(_0x3a9f41._0x25ed2a))/0x8*(-parseInt(_0x272dd3(0xeb))/0x9)+parseInt(_0x272dd3(_0x3a9f41._0x3c7afe))/0xa;if(_0x37b462===_0x1eb898)break;else _0x4a69f4['push'](_0x4a69f4['shift']());}catch(_0x10ee57){_0x4a69f4['push'](_0x4a69f4['shift']());}}}(_0x163a,0x4e987));var __defProp=Object[_0x294f52(0xf0)],__name=(_0x28ba8b,_0x268e18)=>__defProp(_0x28ba8b,'name',{'value':_0x268e18,'configurable':!![]});function subscribe(_0x16dc01,_0x5c9011){const _0x5ba5cc=_0x294f52;return _0x16dc01[_0x5ba5cc(0xe3)](_0x5c9011),()=>{const _0x4ed0d0=_0x5ba5cc;_0x16dc01[_0x4ed0d0(0xe4)](_0x5c9011);};}__name(subscribe,_0x294f52(0xdb));import{UnotestError}from'@unotest/core';var DriverError=class extends UnotestError{static{__name(this,_0x294f52(0x93));}},LocatorError=class extends UnotestError{static{__name(this,_0x294f52(0xb2));}};function _0x163a(){const _0x1c4d13=['Dw5JAgvJAW','D2fPDezVCKXVywrtDgf0zq','zNjHBwvtDgfJAW','Ag92zxi','B3v0zxjive1m','z2v0q29VA2LL','zMfRzs1WBMC','z2v0tg9JywXtDg9YywDL','mtaXmdGXogLVEe1YqG','Bwf5yMvuAhjVDW','CMvJB3jKzxi','BMv3ugfNzuXPC3rLBMvYCW','BM8Gywn0AxzLihbHz2uGAw4Gy29UDgv4Da','Cg9WDxbpBKnSAwnR','tg9JyxrVCKvYCM9Y','Dgv4DenVBNrLBNq','mJGYnKDJEMfvCG','zwXLBwvUDeHPBNrcEvjLzG','zxzHBhvHDgvpBKXVy2f0B3i','y3vYCMvUDfvYBa','y291BNrcEurLzMf1Bhq','Bwv0Ag9K','y2fSBhngB3i','y2XVC2u','Aw5PDgLHBfvYBa','zhjPDMvY','C2nYzwvUC2HVDej5DgvZ','ChvZAa','z29cywnR','pgrPDIbKyxrHlxvUB3rLC3qTCMvMpsi','yMvOyxzPB3i','zw50zxjgCMfTzq','y2HLy2S','yxr0ywnOrxHPC3rPBMCGBM90ihn1ChbVCNrLzcbIEsbgywTLv2vIrhjPDMvY','Aw5UzxjuzxH0','zNjVBq','AxnwAxnPyMXL','AxneAxnHyMXLza','mJKXnJGWuLnnrg5S','CMvSB2fK','AxneAxnHyMXLzej5rgvMyxvSDa','y29UBMvJDfnOyxjLza','z29gB3j3yxjK','Aw5ZCgvJDevSzw1LBNq','rMfRzvDLyKrYAxzLCG','mteXmZKZnZbRs0DRsNi','y29VA2LLu3rHDgu','C3rLChm','C2f2zvn0B3jHz2vtDgf0zq','DhLWzq','y2HLy2TLzfn0yxrLqNLezwzHDwX0','zMLSBa','D3nfBMrWB2LUDa','CgfNzxm','Bgf1BMnOzwq','C3vIC2nYAwjL','rMfRzvbHz2u','y2XPCgjVyxjKugfZDgu','C2nYzwvUC2HVDa','zxzHBhvHDgu','C2nYzwvUC2HVDevSzw1LBNq','ChjLC3m','CMvM','ywrK','zgvSzxrL','BMv3q29UDgv4Da','BMv0D29YA0vUDhjPzxm','y29UC29SzuvUDhjPzxm','zhjHz0fUzerYB3a','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','mtjIB1rwufe','mZG3nJKZEwXLCNbV','zNvUy3rPB24','DgL0Bgu','C2nVCgu','Aw5UzxjuzxH0qNLezwzHDwX0','zgvMAw5LuhjVCgvYDhK','zw1PDezHA2vqB3b1Ca','zMfRzsb0AxrSzq','Aw5WDxrwywX1zuj5rgvMyxvSDa','CgfNzsbPBMrLEcbVDxqGB2yGCMfUz2u','D2fPDezVCG','Bgf1BMnO','BgvUz3rO','C2v0qwn0AxzLugfNzq','ywn0AxzLugfNzq','B3v0zxjiDg1SqNLszwy','pgrPDJ48l2rPDJ4','DxbSB2fKrMLSzq','B25bzNrLCKnSAwnR','y2XPy2S','iJ48l2rPDJ4','zxjYB3jpBK5LEhrby3rPB24','CMvJB3jK','Dgv4DenVBNrLBNrcEurLzMf1Bhq','D2fPDezVCLvYBa','BMv3q29UDgv4DcbJywXSzwqGyMvMB3jLigXHDw5JAcGP','zMLSDgvY','yxr0CMLIDxrLC0j5rgvMyxvSDa','y3jLyxrLuMvJB3jKzxi','Aw5WDxrwywX1zq','mJeZmtG2Be96DKDY','Bg9JywXtDg9YywDLu3rHDgu','C3bSAwnL','C2nYB2XSsw50B1zPzxC','z2v0qxr0CMLIDxrL','A2LUza','C2v0tg9JywXtDg9YywDL','zw50zxjgCMfTzsbJywXSzwqGD2L0AcbLBxb0EsbSB2nHDg9Y','ywn0AxzLswr4','y3r4','CgfNzuXPC3q','mtKWmtK0mhDLr3vuCq','z290BW','rhjPDMvYrxjYB3i','AxnwAxnPyMXLqNLezwzHDwX0','D2fPDezVCK5HDMLNyxrPB24','ntzAu05Ts0m','zxzHBhvHDgvszxn1Bhq','zxHPDezYyw1L','C2vSzwn0t3b0Aw9U','zg91yMXLq2XPy2S','y2fSBhm','ywjVDxq6yMXHBMS','y2HLy2TLzfn0yxrL','y29UDgv4Dhm','zNjHBwvezxb0Aa','y29VA2LLCW','Cg9W','mJa3mLLKBLv3vW','y291BNq'];_0x163a=function(){return _0x1c4d13;};return _0x163a();}function createRecorder(){const _0x41a65c={_0xc01b10:0xbf},_0x17f6b8=_0x294f52,_0x544a95=[];let _0x8488ab=0x0;return{'push':__name(_0x510e9d=>_0x544a95[_0x17f6b8(0xbf)]({..._0x510e9d,'seq':_0x8488ab++}),_0x17f6b8(_0x41a65c._0xc01b10)),'calls':__name(()=>_0x544a95,_0x17f6b8(0x9b))};}__name(createRecorder,_0x294f52(0x107));function _0x5ba6(_0x2989b1,_0x51a7ef){_0x2989b1=_0x2989b1-0x8a;const _0x163a9a=_0x163a();let _0x5ba6a1=_0x163a9a[_0x2989b1];if(_0x5ba6['KlJBco']===undefined){var _0x369c8d=function(_0x35f8cb){const _0x26c96c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x28ba8b='',_0x268e18='';for(let _0x16dc01=0x0,_0x5c9011,_0x544a95,_0x8488ab=0x0;_0x544a95=_0x35f8cb['charAt'](_0x8488ab++);~_0x544a95&&(_0x5c9011=_0x16dc01%0x4?_0x5c9011*0x40+_0x544a95:_0x544a95,_0x16dc01++%0x4)?_0x28ba8b+=String['fromCharCode'](0xff&_0x5c9011>>(-0x2*_0x16dc01&0x6)):0x0){_0x544a95=_0x26c96c['indexOf'](_0x544a95);}for(let _0x510e9d=0x0,_0x45ccf4=_0x28ba8b['length'];_0x510e9d<_0x45ccf4;_0x510e9d++){_0x268e18+='%'+('00'+_0x28ba8b['charCodeAt'](_0x510e9d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x268e18);};_0x5ba6['FFxdxk']=_0x369c8d,_0x5ba6['xZtQhA']={},_0x5ba6['KlJBco']=!![];}const _0x4cd067=_0x163a9a[0x0],_0x38077e=_0x2989b1+_0x4cd067,_0x525191=_0x5ba6['xZtQhA'][_0x38077e];return!_0x525191?(_0x5ba6a1=_0x5ba6['FFxdxk'](_0x5ba6a1),_0x5ba6['xZtQhA'][_0x38077e]=_0x5ba6a1):_0x5ba6a1=_0x525191,_0x5ba6a1;}var FakePage=class{constructor(_0x45ccf4,_0x4721cb,_0x47f272,_0x136c51){const _0x4f5ae2={_0x1a325f:0xee,_0x4d7647:0xb7},_0x59d21a=_0x294f52;this[_0x59d21a(0xae)]=_0x45ccf4,this['behavior']=_0x4721cb,this[_0x59d21a(_0x4f5ae2._0x1a325f)]=_0x47f272,this[_0x59d21a(_0x4f5ae2._0x4d7647)]=_0x136c51;}[_0x294f52(0xae)];[_0x294f52(0xc2)];[_0x294f52(0xee)];static{__name(this,_0x294f52(0xdc));}[_0x294f52(0xb7)];[_0x294f52(0xfd)];[_0x294f52(0x101)](_0x238b5e,_0x327f17){const _0x3a014e={_0x1c3d81:0xae},_0x7392ee=_0x294f52;this[_0x7392ee(_0x3a014e._0x1c3d81)]['push']({'scope':this[_0x7392ee(0xee)],'method':_0x238b5e,'args':_0x327f17});}[_0x294f52(0xad)](){const _0x449c57={_0x16988c:0xc2,_0x1de15f:0x100,_0x50ac0d:0x100},_0x3a1337=_0x294f52;if(this[_0x3a1337(0xc2)][_0x3a1337(0x100)]){const _0x53e7f9=this[_0x3a1337(_0x449c57._0x16988c)][_0x3a1337(_0x449c57._0x1de15f)];this[_0x3a1337(0xc2)][_0x3a1337(_0x449c57._0x50ac0d)]=void 0x0;throw _0x53e7f9;}}['url'](){return this['currentUrl'];}async[_0x294f52(0xed)](){const _0xc2901a={_0xfa9aa8:0x101},_0x4849d9=_0x294f52;return this[_0x4849d9(_0xc2901a._0xfa9aa8)]('title',[]),_0x4849d9(0xf2);}async[_0x294f52(0xfe)](_0x3143e9,_0x413357){const _0x2eb0eb={_0x2e2f93:0x101,_0x9b5ea2:0xfe,_0x4ff2b7:0xad,_0x2921f8:0xfd},_0x96cdc3=_0x294f52;this[_0x96cdc3(_0x2eb0eb._0x2e2f93)](_0x96cdc3(_0x2eb0eb._0x9b5ea2),[_0x3143e9,_0x413357]),this[_0x96cdc3(_0x2eb0eb._0x4ff2b7)](),this[_0x96cdc3(_0x2eb0eb._0x2921f8)]?.();}async[_0x294f52(0x9a)](_0x27b2bb,_0xd00b60){const _0x3b3eb1=_0x294f52;this[_0x3b3eb1(0x101)](_0x3b3eb1(0x9a),[_0x27b2bb,_0xd00b60]),this['maybeThrow']();}async[_0x294f52(0xd7)](_0x2d9af1,_0x598ce9,_0x37d3c4){const _0x33adc8={_0x4c3877:0xd7,_0x13cdaf:0xad},_0x1e6716=_0x294f52;this['record'](_0x1e6716(_0x33adc8._0x4c3877),[_0x2d9af1,_0x598ce9,_0x37d3c4]),this[_0x1e6716(_0x33adc8._0x13cdaf)]();}async['press'](_0x1f48b2,_0x2caef7,_0x4172dc){const _0x591d7d={_0x438b:0x101,_0xb28a0b:0xe1},_0x3127db=_0x294f52;this[_0x3127db(_0x591d7d._0x438b)](_0x3127db(_0x591d7d._0xb28a0b),[_0x1f48b2,_0x2caef7,_0x4172dc]),this[_0x3127db(0xad)]();}async['check'](_0x394dbb,_0x1fad3d){const _0x588626={_0x5d9dc4:0x101},_0x5996ab=_0x294f52;this[_0x5996ab(_0x588626._0x5d9dc4)](_0x5996ab(0xc4),[_0x394dbb,_0x1fad3d]),this[_0x5996ab(0xad)]();}async['uncheck'](_0x19f80d,_0x7369a9){const _0x415272={_0x140f3e:0x101,_0x48ee3a:0xad},_0x1ba743=_0x294f52;this[_0x1ba743(_0x415272._0x140f3e)](_0x1ba743(0xa4),[_0x19f80d,_0x7369a9]),this[_0x1ba743(_0x415272._0x48ee3a)]();}async['selectOption'](_0x448e70,_0x444f1d,_0x330bc9){const _0x2456ef=_0x294f52;this['record'](_0x2456ef(0x99),[_0x448e70,_0x444f1d,_0x330bc9]),this[_0x2456ef(0xad)]();}async[_0x294f52(0xa7)](_0xb915d,_0x671948){const _0x5d2843={_0x56a3da:0xa7},_0x89592b=_0x294f52;this[_0x89592b(0x101)](_0x89592b(_0x5d2843._0x56a3da),[_0xb915d,_0x671948]),this['maybeThrow']();}async[_0x294f52(0x10c)](_0x3ce1ca){const _0x461319=_0x294f52;this['record']('scrollIntoView',[_0x3ce1ca]),this[_0x461319(0xad)]();}async['dragAndDrop'](_0x3ae8fb,_0x5397ce,_0x2daf7e){const _0x23cb89={_0x1329c9:0xad},_0x358932=_0x294f52;this[_0x358932(0x101)](_0x358932(0xe8),[_0x3ae8fb,_0x5397ce,_0x2daf7e]),this[_0x358932(_0x23cb89._0x1329c9)]();}async[_0x294f52(0xfc)](_0x13a2fa,_0x4bece5){const _0xe9dece={_0x3c0c03:0x101,_0x4d2c56:0xfc},_0x4d43b6=_0x294f52;this[_0x4d43b6(_0xe9dece._0x3c0c03)](_0x4d43b6(_0xe9dece._0x4d2c56),[_0x13a2fa,_0x4bece5]),this[_0x4d43b6(0xad)]();}async[_0x294f52(0xdd)](_0x5ccddf,_0x32807b){const _0x1dd4ea={_0x25d2d1:0xdd,_0x58f63c:0xad},_0x3470c1=_0x294f52;this[_0x3470c1(0x101)](_0x3470c1(_0x1dd4ea._0x25d2d1),[_0x5ccddf,_0x32807b]),this[_0x3470c1(_0x1dd4ea._0x58f63c)]();}async[_0x294f52(0xa3)](_0x26ee83){const _0xd99faa={_0x33e6af:0xb8},_0xadad47=_0x294f52;return this['record'](_0xadad47(0xa3),[_0x26ee83]),this[_0xadad47(0xc2)][_0xadad47(_0xd99faa._0x33e6af)]??0x1;}async['textContent'](_0x5930a4){const _0x1fa6de={_0x433ab2:0x102},_0x4e59f6=_0x294f52;return this[_0x4e59f6(0x101)](_0x4e59f6(0xb3),[_0x5930a4]),this[_0x4e59f6(0xc2)][_0x4e59f6(_0x1fa6de._0x433ab2)]??'';}async['innerText'](_0x2b2394){const _0x144922={_0x204023:0xc2,_0x28cba0:0x102},_0x39a2d0=_0x294f52;return this['record'](_0x39a2d0(0xc6),[_0x2b2394]),this[_0x39a2d0(_0x144922._0x204023)][_0x39a2d0(0xef)]??this['behavior'][_0x39a2d0(_0x144922._0x28cba0)]??'';}async[_0x294f52(0x108)](_0x580c45){const _0x4f525a=_0x294f52;return this[_0x4f525a(0x101)]('inputValue',[_0x580c45]),this['behavior'][_0x4f525a(0xf3)]??'';}async[_0x294f52(0x9d)](_0xb60327){const _0x266956={_0xe2b323:0x9d,_0x4fb359:0xc2,_0x45c27b:0xd6},_0x580a20=_0x294f52;return this['record'](_0x580a20(_0x266956._0xe2b323),[_0xb60327]),this[_0x580a20(_0x266956._0x4fb359)][_0x580a20(_0x266956._0x45c27b)]??null;}async[_0x294f52(0xc8)](_0x203796){const _0x25fb9f={_0x4dc9ba:0x101},_0x2e475f=_0x294f52;return this[_0x2e475f(_0x25fb9f._0x4dc9ba)](_0x2e475f(0xc8),[_0x203796]),this['behavior'][_0x2e475f(0x94)]??!![];}async[_0x294f52(0xc9)](_0x50a08b){const _0x15634a={_0x59a5ab:0xcc},_0x462c16=_0x294f52;return this['record'](_0x462c16(0xc9),[_0x50a08b]),this[_0x462c16(0xc2)][_0x462c16(_0x15634a._0x59a5ab)]??![];}async[_0x294f52(0x8a)](_0x4d0a34,_0xef4e57){const _0x4020e3={_0x506622:0xc2,_0x2a8c79:0x106},_0x1d87c9=_0x294f52;return this[_0x1d87c9(0x101)]('getAttribute',[_0x4d0a34,_0xef4e57]),this[_0x1d87c9(_0x4020e3._0x506622)][_0x1d87c9(_0x4020e3._0x2a8c79)]?.[_0xef4e57]??null;}async['waitFor'](_0x4cbf99,_0x5dc607){const _0x37efc8={_0x3f137a:0xf5},_0x2937e3=_0x294f52;this['record'](_0x2937e3(_0x37efc8._0x3f137a),[_0x4cbf99,_0x5dc607]);}async[_0x294f52(0x103)](_0x85f30e,_0x5517a6){const _0x1dea3a={_0x21f156:0x103},_0x573e88=_0x294f52;this[_0x573e88(0x101)](_0x573e88(_0x1dea3a._0x21f156),[_0x85f30e,_0x5517a6]);}async['waitForText'](_0xe3c8a,_0x19b120){const _0x36fb85={_0x481008:0x101},_0x2d27e1=_0x294f52;this[_0x2d27e1(_0x36fb85._0x481008)]('waitForText',[_0xe3c8a,_0x19b120]);}async['waitForNavigation'](_0x392310){const _0x2a3a2b=_0x294f52;this[_0x2a3a2b(0x101)](_0x2a3a2b(0x95),[_0x392310]);}async[_0x294f52(0xa5)](_0x59baa7,_0x25d24c){const _0x3a499e=_0x294f52;this[_0x3a499e(0x101)](_0x3a499e(0xa5),[_0x59baa7,_0x25d24c]);}async[_0x294f52(0x92)](_0x45275e,_0x48acd7){const _0x55a7ce=_0x294f52;this[_0x55a7ce(0x101)]('goto',[_0x45275e,_0x48acd7]),this['currentUrl']=_0x45275e;}async[_0x294f52(0xcb)](_0x18c16a){const _0x2e18d7=_0x294f52;this[_0x2e18d7(0x101)]('reload',[_0x18c16a]);}async['goBack'](_0x40365b){const _0xf287bb={_0x5c9250:0x101,_0x57d8bb:0xc0},_0x5b4377=_0x294f52;this[_0x5b4377(_0xf287bb._0x5c9250)](_0x5b4377(_0xf287bb._0x57d8bb),[_0x40365b]);}async[_0x294f52(0xce)](_0x8741d5){this['record']('goForward',[_0x8741d5]);}async[_0x294f52(0xdf)](_0x3eb1c6){const _0x531a24={_0x32163f:0x101,_0x2d19ab:0xdf,_0x1dcaa9:0xc2},_0x52a9e4=_0x294f52;return this[_0x52a9e4(_0x531a24._0x32163f)](_0x52a9e4(_0x531a24._0x2d19ab),[_0x3eb1c6]),this[_0x52a9e4(_0x531a24._0x1dcaa9)][_0x52a9e4(0x97)];}async[_0x294f52(0xb6)](_0x433d84,_0x3c1f51){const _0x34e5f9=_0x294f52;return this['record'](_0x34e5f9(0xb6),[_0x433d84,_0x3c1f51]),void 0x0;}async[_0x294f52(0xcf)](_0x187f54){const _0x4b9b83={_0x1937a2:0xcf,_0x227505:0xd3},_0xcde513=_0x294f52;this[_0xcde513(0x101)](_0xcde513(_0x4b9b83._0x1937a2),[_0x187f54]);if(_0x187f54[_0xcde513(0xd3)]['length']!==0x1||_0x187f54[_0xcde513(_0x4b9b83._0x227505)][0x0]['kind']!=='ref')return null;const _0x281f02=_0x187f54[_0xcde513(0xd3)][0x0][_0xcde513(0xe2)],_0xc2911d=this[_0xcde513(0xc2)][_0xcde513(0xb5)]?.[_0x281f02];return _0xc2911d??null;}async[_0x294f52(0xde)](_0x3351b6){const _0x5d3939={_0x34d82f:0x101,_0x4c6904:0xbe,_0x2a8ccf:0xd5},_0x4beb7d=_0x294f52;return this[_0x4beb7d(_0x5d3939._0x34d82f)]('screenshot',[_0x3351b6]),this[_0x4beb7d(_0x5d3939._0x4c6904)](_0x3351b6?.[_0x4beb7d(_0x5d3939._0x2a8ccf)]);}async[_0x294f52(0xe0)](_0x49580e,_0x57908b){const _0x449a30={_0x55af87:0x101,_0x2e5e9f:0xd5},_0x595a99=_0x294f52;return this[_0x595a99(_0x449a30._0x55af87)](_0x595a99(0xe0),[_0x49580e,_0x57908b]),this[_0x595a99(0xbe)](_0x57908b?.[_0x595a99(_0x449a30._0x2e5e9f)]);}[_0x294f52(0xbe)](_0x20ec51){const _0x3cb915={_0x784f5f:0xbe,_0x1f53b4:0xc7,_0x22641a:0xec},_0x231e81=_0x294f52,_0xbfff7b=this[_0x231e81(0xc2)][_0x231e81(_0x3cb915._0x784f5f)];if(_0xbfff7b===void 0x0)return Buffer[_0x231e81(_0x3cb915._0x1f53b4)](_0x231e81(0xaa));return typeof _0xbfff7b===_0x231e81(_0x3cb915._0x22641a)?_0xbfff7b(_0x20ec51):_0xbfff7b;}async['outerHTML'](_0x10c9f8){const _0x1db45b={_0x5cbfdd:0xd3,_0x4611fe:0x8b,_0x47c1b3:0xc2,_0x14caa8:0xff,_0x55be8c:0xfb},_0x293750=_0x294f52;this['record'](_0x293750(0xa8),[_0x10c9f8]);if(_0x10c9f8[_0x293750(_0x1db45b._0x5cbfdd)][_0x293750(0xf7)]===0x1&&_0x10c9f8['steps'][0x0][_0x293750(_0x1db45b._0x4611fe)]==='ref'){const _0x533353=_0x10c9f8['steps'][0x0]['ref'];return this[_0x293750(_0x1db45b._0x47c1b3)][_0x293750(0xfa)]?.[_0x533353]??_0x293750(0xc1)+_0x533353+_0x293750(_0x1db45b._0x14caa8);}return _0x293750(_0x1db45b._0x55be8c);}},FakeContext=class{constructor(_0x5e463c,_0x330a5c,_0x4712ae){const _0x27ae9b={_0x551a8a:0xae,_0x373ec7:0xbc,_0x29a686:0xb1},_0x32765e={_0x3e2396:0xf1},_0x53cac8=_0x294f52;this[_0x53cac8(_0x27ae9b._0x551a8a)]=_0x5e463c,this['behavior']=_0x330a5c,this[_0x53cac8(0xee)]=_0x4712ae;const _0x9458bc=new FakePage(_0x5e463c,_0x330a5c,_0x4712ae+'.page0',_0x330a5c[_0x53cac8(_0x27ae9b._0x373ec7)]??_0x53cac8(0x9c));_0x330a5c[_0x53cac8(_0x27ae9b._0x29a686)]&&(_0x9458bc[_0x53cac8(0xfd)]=()=>{const _0x7a381e=_0x53cac8;this[_0x7a381e(_0x32765e._0x3e2396)](_0x330a5c[_0x7a381e(0xb1)]);}),this['pageList']=[_0x9458bc],this['localStorageState']={..._0x330a5c['localStorage']??{}},this[_0x53cac8(0xd2)]={..._0x330a5c[_0x53cac8(0xa0)]??{}};}['recorder'];['behavior'];[_0x294f52(0xee)];static{__name(this,'FakeContext');}[_0x294f52(0x90)];[_0x294f52(0x8e)]=0x0;[_0x294f52(0xa6)]=[];[_0x294f52(0x10a)];[_0x294f52(0xd2)];[_0x294f52(0xaf)]=new Set();[_0x294f52(0x101)](_0x5a70e0,_0xaa3cf6){const _0x38ed3c={_0x303edc:0xee},_0x2b2cf8=_0x294f52;this['recorder'][_0x2b2cf8(0xbf)]({'scope':this[_0x2b2cf8(_0x38ed3c._0x303edc)],'method':_0x5a70e0,'args':_0xaa3cf6});}[_0x294f52(0xd9)](){const _0x327a49={_0x5bf354:0x90},_0x23a3f6=_0x294f52;return this[_0x23a3f6(_0x327a49._0x5bf354)];}[_0x294f52(0xf9)](){const _0x12a866={_0x1ad65b:0xb0,_0x48449c:0x8e},_0x582d91=_0x294f52,_0x3d3c6e=this[_0x582d91(0x90)][this['activeIdx']];if(!_0x3d3c6e)throw new DriverError(_0x582d91(_0x12a866._0x1ad65b),{'activeIdx':this[_0x582d91(_0x12a866._0x48449c)]});return _0x3d3c6e;}[_0x294f52(0xe7)](){const _0x31363a={_0x5dce71:0xc2,_0x4b093a:0xe7},_0x191cd0=_0x294f52;return this[_0x191cd0(_0x31363a._0x5dce71)][_0x191cd0(_0x31363a._0x4b093a)]??[];}[_0x294f52(0xe6)](){const _0x2f0ca2={_0xf68ee0:0xc2},_0xbc1996=_0x294f52;return this[_0xbc1996(_0x2f0ca2._0xf68ee0)][_0xbc1996(0xe6)]??[];}async[_0x294f52(0xf8)](_0x13f147){const _0x236b8c={_0x312501:0x101,_0x4b85b1:0xf8,_0x336772:0x90,_0x28f8b7:0xf7},_0x86652e=_0x294f52;this[_0x86652e(_0x236b8c._0x312501)](_0x86652e(_0x236b8c._0x4b85b1),[_0x13f147]);if(_0x13f147<0x0||_0x13f147>=this[_0x86652e(0x90)][_0x86652e(0xf7)])throw new DriverError(_0x86652e(0xf4),{'index':_0x13f147,'available':this[_0x86652e(_0x236b8c._0x336772)]['length']});this['activeIdx']=_0x13f147,this[_0x86652e(0xa6)][_0x86652e(_0x236b8c._0x28f8b7)]=0x0;}['onNewPage'](_0x6279fa){const _0x44f6bf={_0x4ddf44:0xaf},_0x4b1d13=_0x294f52;return subscribe(this[_0x4b1d13(_0x44f6bf._0x4ddf44)],_0x6279fa);}[_0x294f52(0xf1)](_0x4255fa){const _0x4bd3fe={_0x47acab:0x90,_0x37fef0:0xf7,_0x2ce800:0xc2,_0x505ca9:0xf7},_0x287db2=_0x294f52,_0x29530a=this['scope']+'.page'+this[_0x287db2(_0x4bd3fe._0x47acab)][_0x287db2(_0x4bd3fe._0x37fef0)],_0x194e1f=new FakePage(this[_0x287db2(0xae)],this[_0x287db2(_0x4bd3fe._0x2ce800)],_0x29530a,_0x4255fa);this['pageList'][_0x287db2(0xbf)](_0x194e1f);const _0x5934f5=this[_0x287db2(0x90)][_0x287db2(_0x4bd3fe._0x505ca9)]-0x1;for(const _0xe921c of this[_0x287db2(0xaf)]){try{_0xe921c({'index':_0x5934f5,'url':_0x4255fa});}catch{}}return _0x5934f5;}['closeFakePage'](_0x556652){const _0x26dfff={_0x57b4f2:0x90,_0x3bda4e:0x10b},_0x39b8d5=_0x294f52;if(_0x556652<0x0||_0x556652>=this[_0x39b8d5(0x90)][_0x39b8d5(0xf7)])throw new DriverError(_0x39b8d5(0xf4),{'index':_0x556652,'available':this[_0x39b8d5(_0x26dfff._0x57b4f2)]['length']});this[_0x39b8d5(0x90)][_0x39b8d5(_0x26dfff._0x3bda4e)](_0x556652,0x1);}async[_0x294f52(0xc3)](_0x5bd102){const _0x27a83b={_0x12d989:0x101,_0x2e8f8e:0xc3,_0x2240b4:0xf7,_0x91a8f9:0x8d},_0xc8d1fa=_0x294f52;this[_0xc8d1fa(_0x27a83b._0x12d989)](_0xc8d1fa(_0x27a83b._0x2e8f8e),[_0x5bd102]);if(!_0x5bd102[_0xc8d1fa(0xd3)][_0xc8d1fa(_0x27a83b._0x2240b4)])throw new LocatorError(_0xc8d1fa(_0x27a83b._0x91a8f9),{'locator':_0x5bd102});this[_0xc8d1fa(0xa6)]['push'](_0x5bd102);}async[_0x294f52(0x98)](){const _0x45a69f={_0x3d3fae:0xe9},_0xd26fa4=_0x294f52;this['record']('exitFrame',[]);if(this[_0xd26fa4(0xa6)][_0xd26fa4(0xf7)]===0x0)throw new DriverError(_0xd26fa4(_0x45a69f._0x3d3fae),{});this[_0xd26fa4(0xa6)][_0xd26fa4(0xa1)]();}async[_0x294f52(0x8c)](_0x2f4400,_0x488aba){const _0x5a5a1e=_0x294f52;this[_0x5a5a1e(0x101)]('setLocalStorage',[_0x2f4400,_0x488aba]),this[_0x5a5a1e(0x10a)][_0x2f4400]=_0x488aba;}async[_0x294f52(0xab)](_0x29a502){const _0x2ab6a8={_0x54388d:0x10a},_0x3359a0=_0x294f52;return this['record'](_0x3359a0(0xab),[_0x29a502]),this[_0x3359a0(_0x2ab6a8._0x54388d)][_0x29a502]??null;}async['setCookie'](_0x4f6b63,_0x453e99,_0x1a6e7f){const _0x5228a9={_0x469ecc:0xd2},_0x2889df=_0x294f52;this[_0x2889df(0x101)]('setCookie',[_0x4f6b63,_0x453e99,_0x1a6e7f]),this[_0x2889df(_0x5228a9._0x469ecc)][_0x4f6b63]=_0x453e99;}async['getCookie'](_0x4b23e7){const _0x2999a6={_0x204b35:0xd2},_0x3720c8=_0x294f52;return this[_0x3720c8(0x101)](_0x3720c8(0xa9),[_0x4b23e7]),this[_0x3720c8(_0x2999a6._0x204b35)][_0x4b23e7]??null;}async[_0x294f52(0xd4)](_0x17c947){const _0x55ef5a=_0x294f52;this[_0x55ef5a(0x101)]('saveStorageState',[_0x17c947]);}async[_0x294f52(0xdf)](_0x500c53){const _0x2aebbb=_0x294f52;return this['record'](_0x2aebbb(0xdf),[_0x500c53]),void 0x0;}async['close'](){const _0x1a9234={_0x4727d1:0xbb},_0x398ce3=_0x294f52;this[_0x398ce3(0x101)](_0x398ce3(_0x1a9234._0x4727d1),[]);}[_0x294f52(0x9f)](){const _0x2ee297=_0x294f52;return this['frameStack'][_0x2ee297(0xf7)];}},FakeWebDriver=class{constructor(_0x4e0b11={}){const _0x121a78={_0xc4e0a0:0xc2},_0x454128=_0x294f52;this[_0x454128(_0x121a78._0xc4e0a0)]=_0x4e0b11,this[_0x454128(0xae)]=createRecorder();}[_0x294f52(0xc2)];static{__name(this,_0x294f52(0xd0));}['launched']=![];[_0x294f52(0xae)];[_0x294f52(0x9e)]=[];async[_0x294f52(0xf6)](_0x3460ea){const _0x1722b2={_0x4885ef:0xae,_0x5bfc74:0xbd,_0x23fd54:0xda},_0x33c82f=_0x294f52;this[_0x33c82f(_0x1722b2._0x4885ef)]['push']({'scope':_0x33c82f(_0x1722b2._0x5bfc74),'method':_0x33c82f(0xf6),'args':[_0x3460ea]}),this[_0x33c82f(_0x1722b2._0x23fd54)]=!![];}async['newContext'](_0xe77cac){const _0x6264f3={_0x3d0ec8:0xbf,_0x5f32c2:0xda,_0x340cc9:0x104,_0x2aa282:0xae,_0x2bd88e:0xf7,_0x48125d:0x9e},_0x2794f4=_0x294f52;this[_0x2794f4(0xae)][_0x2794f4(_0x6264f3._0x3d0ec8)]({'scope':_0x2794f4(0xbd),'method':_0x2794f4(0xe5),'args':[_0xe77cac]});if(!this[_0x2794f4(_0x6264f3._0x5f32c2)])throw new DriverError(_0x2794f4(_0x6264f3._0x340cc9),{});const _0x28e868=new FakeContext(this[_0x2794f4(_0x6264f3._0x2aa282)],this['behavior'],_0x2794f4(0x8f)+this['contexts'][_0x2794f4(_0x6264f3._0x2bd88e)]);return this[_0x2794f4(_0x6264f3._0x48125d)][_0x2794f4(0xbf)](_0x28e868),_0x28e868;}async['close'](){const _0xf0a8f3={_0x356b8e:0xae},_0x1ee912=_0x294f52;this[_0x1ee912(_0xf0a8f3._0x356b8e)]['push']({'scope':'driver','method':'close','args':[]}),this[_0x1ee912(0xda)]=![];}[_0x294f52(0xd8)](){return void 0x0;}async[_0x294f52(0xcd)](){throw new DriverError('connectShared\x20not\x20supported\x20by\x20FakeWebDriver',{});}['attachExisting'](_0x4cb253){const _0x10d513=_0x294f52;throw new DriverError(_0x10d513(0xc5),{});}['calls'](){const _0x515246=_0x294f52;return this[_0x515246(0xae)]['calls']();}[_0x294f52(0xba)](_0x4c339c){const _0x523e65=_0x294f52;return this[_0x523e65(0xae)][_0x523e65(0x9b)]()[_0x523e65(0x105)](_0x37d26f=>_0x37d26f[_0x523e65(0xb9)]===_0x4c339c);}};export{FakeWebDriver};
|
|
1
|
+
const _0x3695c4=_0x2469;(function(_0x1cd99f,_0x5101c9){const _0x52e71a={_0x1dae44:0x132,_0x1f6b16:0x144,_0x2422f8:0x164,_0x1b0c91:0x170},_0x2ad1dc=_0x2469,_0x2158f3=_0x1cd99f();while(!![]){try{const _0xa1b40=parseInt(_0x2ad1dc(0x13c))/0x1*(-parseInt(_0x2ad1dc(_0x52e71a._0x1dae44))/0x2)+parseInt(_0x2ad1dc(0x158))/0x3+-parseInt(_0x2ad1dc(0x178))/0x4+parseInt(_0x2ad1dc(_0x52e71a._0x1f6b16))/0x5+-parseInt(_0x2ad1dc(_0x52e71a._0x2422f8))/0x6*(parseInt(_0x2ad1dc(0x18c))/0x7)+-parseInt(_0x2ad1dc(0x187))/0x8+parseInt(_0x2ad1dc(_0x52e71a._0x1b0c91))/0x9*(parseInt(_0x2ad1dc(0x161))/0xa);if(_0xa1b40===_0x5101c9)break;else _0x2158f3['push'](_0x2158f3['shift']());}catch(_0x49c6e8){_0x2158f3['push'](_0x2158f3['shift']());}}}(_0x2dfa,0x48e77));var __defProp=Object[_0x3695c4(0x154)],__name=(_0x230de5,_0x25d2fc)=>__defProp(_0x230de5,_0x3695c4(0x182),{'value':_0x25d2fc,'configurable':!![]});function subscribe(_0xd9d3fe,_0x4faf37){const _0x1a35b6={_0x154d7c:0x135},_0x1e2a17=_0x3695c4;return _0xd9d3fe[_0x1e2a17(_0x1a35b6._0x154d7c)](_0x4faf37),()=>{const _0x2f11bd=_0x1e2a17;_0xd9d3fe[_0x2f11bd(0x140)](_0x4faf37);};}__name(subscribe,_0x3695c4(0x13b));import{UnotestError}from'@unotest/core';function _0x2dfa(){const _0x42c780=['z290BW','zgvMAw5LuhjVCgvYDhK','C2nYzwvUC2HVDa','CgfNzuXPC3q','z29cywnR','nZC1ntaWDKvIrKXx','B25ozxDqywDL','y2XVC2vgywTLugfNzq','zxzHBhvHDgvpBKXVy2f0B3i','y29UBMvJDfnOyxjLza','D2fPDezVCLrLEhq','BgvUz3rO','y2HLy2TLzfn0yxrL','z2v0q29VA2LL','oti2ndm4mhDpzvfPta','y29UBMvJDfnOyxjLzcbUB3qGC3vWCg9YDgvKigj5iezHA2vxzwjeCML2zxi','C2nVCgu','ndGZndaYCKPpz1f2','C3rLChm','C2nYzwvUC2HVDej5DgvZ','CgfNzxm','BMv0D29YA0vUDhjPzxm','y2XVC2u','y29UDgv4Dhm','BMv3q29UDgv4Da','Aw5UzxjuzxH0qNLezwzHDwX0','y2fSBhm','Dw5JAgvJAW','z2v0tg9JywXtDg9YywDL','ourMthDysa','zxHPDezYyw1L','y29UC29SzuvUDhjPzxm','AxnwAxnPyMXL','zMLSBa','y2HLy2S','ywjVDxq6yMXHBMS','AxneAxnHyMXLzej5rgvMyxvSDa','nZe0nduYDgXpD1fl','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','C2v0qwn0AxzLugfNzq','ywn0AxzLugfNzq','Aw5WDxrwywX1zq','Cg9WDxbpBKnSAwnR','zNjHBwvtDgfJAW','yxr0CMLIDxrLC0j5rgvMyxvSDa','y29VA2LLu3rHDgu','CMvJB3jKzxi','BMfTzq','iJ48l2rPDJ4','ywn0AxzLswr4','Bgf1BMnOzwq','lNbHz2uW','nde1odGWogflv3fbAa','zwXLBwvUDeHPBNrcEvjLzG','lNbHz2u','DgL0Bgu','BMv3q29UDgv4DcbJywXSzwqGyMvMB3jLigXHDw5JAcGP','mJfrvM5rzgO','yxr0ywnOrxHPC3rPBMCGBM90ihn1ChbVCNrLzcbIEsbgywTLv2vIrhjPDMvY','Bwv0Ag9K','zMfRzsb0AxrSzq','DxbSB2fKrMLSzq','yxr0ywnOrxHPC3rPBMC','Bgf1BMnO','zxjYB3jpBK5LEhrby3rPB24','BMv3ugfNzuXPC3rLBMvYCW','Ag92zxi','Dgv4DenVBNrLBNq','C2v0tg9JywXtDg9YywDL','z2v0qxr0CMLIDxrL','tg9JyxrVCKvYCM9Y','Cg9W','Dgv4DenVBNrLBNrcEurLzMf1Bhq','zNjVBq','ChvZAa','zg91yMXLq2XPy2S','C2nYzwvUC2HVDevSzw1LBNq','A2LUza','zhjHz0fUzerYB3a','z29gB3j3yxjK','D2fPDezVCKXVywrtDgf0zq','B3v0zxjive1m','zw1PDezHA2vqB3b1Ca','AxnwAxnPyMXLqNLezwzHDwX0','zMLSDgvY','CMvM','y3r4','rhjPDMvYrxjYB3i','rMfRzvbHz2u','zNvUy3rPB24','CMvJB3jK','AxneAxnHyMXLza','D2fPDezVCG','Aw5UzxjuzxH0','y29VA2LLCW','D2fPDezVCK5HDMLNyxrPB24','CMvSB2fK','mtrOsKHhBM8','C2v0q29VA2LL','y3jLyxrLuMvJB3jKzxi','ywrK','C2vSzwn0t3b0Aw9U','pgrPDIbKyxrHlxvUB3rLC3qTCMvMpsi','y291BNq','y3vYCMvUDfvYBa','rMfRzvDLyKrYAxzLCG','C3vIC2nYAwjL','nJC5odvdshfJrw0','zhjPDMvY','rMfRzunVBNrLEhq','y2XPCgjVyxjKugfZDgu','zgvSzxrL','C2f2zvn0B3jHz2vtDgf0zq','zxzHBhvHDgu','Aw5WDxrwywX1zuj5rgvMyxvSDa','mJy0ody4nvrbqu5tzW','C3bSAwnL','ChjLC3m','y2XPy2S','yMvOyxzPB3i','Bg9JywXtDg9YywDLu3rHDgu','Bg9JywXtDg9YywDL','DxjS','D2fPDezVCLvYBa','Aw5PDgLHBfvYBa','Bwf5yMvuAhjVDW','zw50zxjgCMfTzq','BM8Gywn0AxzLihbHz2uGAw4Gy29UDgv4Da','DhLWzq','C2nYB2XSsw50B1zPzxC'];_0x2dfa=function(){return _0x42c780;};return _0x2dfa();}var DriverError=class extends UnotestError{static{__name(this,_0x3695c4(0x128));}},LocatorError=class extends UnotestError{static{__name(this,_0x3695c4(0x199));}};function _0x2469(_0x264c37,_0x3f086a){_0x264c37=_0x264c37-0x121;const _0x2dfa80=_0x2dfa();let _0x2469d3=_0x2dfa80[_0x264c37];if(_0x2469['DWWRjd']===undefined){var _0x4f910f=function(_0x4777fe){const _0x562014='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x230de5='',_0x25d2fc='';for(let _0xd9d3fe=0x0,_0x4faf37,_0x17afd7,_0x10d015=0x0;_0x17afd7=_0x4777fe['charAt'](_0x10d015++);~_0x17afd7&&(_0x4faf37=_0xd9d3fe%0x4?_0x4faf37*0x40+_0x17afd7:_0x17afd7,_0xd9d3fe++%0x4)?_0x230de5+=String['fromCharCode'](0xff&_0x4faf37>>(-0x2*_0xd9d3fe&0x6)):0x0){_0x17afd7=_0x562014['indexOf'](_0x17afd7);}for(let _0x2d7206=0x0,_0x1e9c74=_0x230de5['length'];_0x2d7206<_0x1e9c74;_0x2d7206++){_0x25d2fc+='%'+('00'+_0x230de5['charCodeAt'](_0x2d7206)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x25d2fc);};_0x2469['CBrzCq']=_0x4f910f,_0x2469['iwBckE']={},_0x2469['DWWRjd']=!![];}const _0x2b262e=_0x2dfa80[0x0],_0xb57c3a=_0x264c37+_0x2b262e,_0xaeddf3=_0x2469['iwBckE'][_0xb57c3a];return!_0xaeddf3?(_0x2469d3=_0x2469['CBrzCq'](_0x2469d3),_0x2469['iwBckE'][_0xb57c3a]=_0x2469d3):_0x2469d3=_0xaeddf3,_0x2469d3;}function createRecorder(){const _0x4c346f=_0x3695c4,_0x17afd7=[];let _0x10d015=0x0;return{'push':__name(_0x2d7206=>_0x17afd7['push']({..._0x2d7206,'seq':_0x10d015++}),'push'),'calls':__name(()=>_0x17afd7,_0x4c346f(0x16d))};}__name(createRecorder,_0x3695c4(0x134));var FakePage=class{constructor(_0x1e9c74,_0x42ea4b,_0x18dc98,_0x38d97b){const _0x19952e={_0x1095a1:0x139},_0x2dba1d=_0x3695c4;this[_0x2dba1d(0x181)]=_0x1e9c74,this['behavior']=_0x42ea4b,this['scope']=_0x18dc98,this[_0x2dba1d(_0x19952e._0x1095a1)]=_0x38d97b;}[_0x3695c4(0x181)];[_0x3695c4(0x148)];['scope'];static{__name(this,_0x3695c4(0x129));}[_0x3695c4(0x139)];['onAfterClick'];[_0x3695c4(0x12b)](_0x289b23,_0x28913e){const _0x1df281={_0x12939c:0x181,_0x50b771:0x163},_0x332539=_0x3695c4;this[_0x332539(_0x1df281._0x12939c)][_0x332539(0x19d)]({'scope':this[_0x332539(_0x1df281._0x50b771)],'method':_0x289b23,'args':_0x28913e});}[_0x3695c4(0x14e)](){const _0x1d5f42={_0x5544d8:0x193,_0xc2e48f:0x193},_0x3c7816=_0x3695c4;if(this['behavior'][_0x3c7816(0x193)]){const _0x592ff2=this[_0x3c7816(0x148)][_0x3c7816(_0x1d5f42._0x5544d8)];this[_0x3c7816(0x148)][_0x3c7816(_0x1d5f42._0xc2e48f)]=void 0x0;throw _0x592ff2;}}[_0x3695c4(0x14b)](){const _0x4accca={_0x29895c:0x139},_0x316248=_0x3695c4;return this[_0x316248(_0x4accca._0x29895c)];}async[_0x3695c4(0x18a)](){const _0x5eb9b1=_0x3695c4;return this[_0x5eb9b1(0x12b)]('title',[]),_0x5eb9b1(0x18f);}async['click'](_0x444697,_0x5b7259){const _0x146a3d=_0x3695c4;this[_0x146a3d(0x12b)](_0x146a3d(0x147),[_0x444697,_0x5b7259]),this['maybeThrow'](),this['onAfterClick']?.();}async['doubleClick'](_0x52b8da,_0x597e3c){const _0x256530={_0x1d290b:0x14e},_0x23f99a=_0x3695c4;this[_0x23f99a(0x12b)](_0x23f99a(0x19e),[_0x52b8da,_0x597e3c]),this[_0x23f99a(_0x256530._0x1d290b)]();}async[_0x3695c4(0x174)](_0x31f0cd,_0x125a52,_0x1de587){const _0x6dc283={_0x175a56:0x174},_0x42cf79=_0x3695c4;this[_0x42cf79(0x12b)](_0x42cf79(_0x6dc283._0x175a56),[_0x31f0cd,_0x125a52,_0x1de587]),this['maybeThrow']();}async[_0x3695c4(0x146)](_0x184c64,_0x19ce36,_0x1d3700){const _0x3f5934={_0x37ef2e:0x12b},_0x5c736b=_0x3695c4;this[_0x5c736b(_0x3f5934._0x37ef2e)]('press',[_0x184c64,_0x19ce36,_0x1d3700]),this['maybeThrow']();}async[_0x3695c4(0x175)](_0x598514,_0x1cec71){const _0xb740a4={_0x7b976c:0x175},_0x17d1f1=_0x3695c4;this[_0x17d1f1(0x12b)](_0x17d1f1(_0xb740a4._0x7b976c),[_0x598514,_0x1cec71]),this[_0x17d1f1(0x14e)]();}async[_0x3695c4(0x16e)](_0x4dda3d,_0x3d017c){const _0xb072f1={_0x507e4b:0x16e,_0x278018:0x14e},_0x2851df=_0x3695c4;this['record'](_0x2851df(_0xb072f1._0x507e4b),[_0x4dda3d,_0x3d017c]),this[_0x2851df(_0xb072f1._0x278018)]();}async['selectOption'](_0x52c094,_0x11627e,_0x1f1f90){const _0x198f83={_0xd1d014:0x12b},_0x2c1da4=_0x3695c4;this[_0x2c1da4(_0x198f83._0xd1d014)](_0x2c1da4(0x136),[_0x52c094,_0x11627e,_0x1f1f90]),this[_0x2c1da4(0x14e)]();}async[_0x3695c4(0x195)](_0x30917f,_0x26226b){const _0x28cec8=_0x3695c4;this[_0x28cec8(0x12b)]('hover',[_0x30917f,_0x26226b]),this['maybeThrow']();}async[_0x3695c4(0x152)](_0x4c553d){const _0x58a30={_0x41d77a:0x12b,_0x1b1ea1:0x152},_0x33e5ab=_0x3695c4;this[_0x33e5ab(_0x58a30._0x41d77a)](_0x33e5ab(_0x58a30._0x1b1ea1),[_0x4c553d]),this[_0x33e5ab(0x14e)]();}async[_0x3695c4(0x1a1)](_0x4a466b,_0x13ac5a,_0x465c85){const _0x47e780=_0x3695c4;this[_0x47e780(0x12b)]('dragAndDrop',[_0x4a466b,_0x13ac5a,_0x465c85]),this['maybeThrow']();}async['uploadFile'](_0x129367,_0x277839){const _0xf06c3e={_0x27938c:0x12b,_0x33d922:0x190,_0x249571:0x14e},_0x476ba4=_0x3695c4;this[_0x476ba4(_0xf06c3e._0x27938c)](_0x476ba4(_0xf06c3e._0x33d922),[_0x129367,_0x277839]),this[_0x476ba4(_0xf06c3e._0x249571)]();}async[_0x3695c4(0x13f)](_0x136d37,_0x5ce226){const _0x231831={_0xb750e6:0x12b,_0x4c33c3:0x14e},_0x4fda46=_0x3695c4;this[_0x4fda46(_0x231831._0xb750e6)](_0x4fda46(0x13f),[_0x136d37,_0x5ce226]),this[_0x4fda46(_0x231831._0x4c33c3)]();}async[_0x3695c4(0x138)](_0x21b88d){const _0x11515b={_0x3724bb:0x148},_0x1259db=_0x3695c4;return this[_0x1259db(0x12b)](_0x1259db(0x138),[_0x21b88d]),this[_0x1259db(_0x11515b._0x3724bb)]['countByDefault']??0x1;}async[_0x3695c4(0x196)](_0x415f4b){const _0x529195={_0x508c93:0x196,_0x575c34:0x19b},_0x3e8600=_0x3695c4;return this['record'](_0x3e8600(_0x529195._0x508c93),[_0x415f4b]),this[_0x3e8600(0x148)][_0x3e8600(_0x529195._0x575c34)]??'';}async[_0x3695c4(0x12e)](_0x58b54f){const _0x7da497={_0xedaef4:0x12e,_0x41af57:0x19b},_0x57481f=_0x3695c4;return this['record'](_0x57481f(_0x7da497._0xedaef4),[_0x58b54f]),this[_0x57481f(0x148)][_0x57481f(0x16c)]??this['behavior'][_0x57481f(_0x7da497._0x41af57)]??'';}async[_0x3695c4(0x17c)](_0x4693ea){const _0xadbbf6={_0x30276b:0x12b,_0x426d68:0x17c,_0x52ec2c:0x148},_0x577fc4=_0x3695c4;return this[_0x577fc4(_0xadbbf6._0x30276b)](_0x577fc4(_0xadbbf6._0x426d68),[_0x4693ea]),this[_0x577fc4(_0xadbbf6._0x52ec2c)][_0x577fc4(0x143)]??'';}async['checkedState'](_0x556e00){const _0x12738b={_0xcbfb02:0x12b,_0xda9c8a:0x15f,_0x2c044a:0x148},_0x3ee6bf=_0x3695c4;return this[_0x3ee6bf(_0x12738b._0xcbfb02)](_0x3ee6bf(_0x12738b._0xda9c8a),[_0x556e00]),this[_0x3ee6bf(_0x12738b._0x2c044a)]['checkedStateByDefault']??null;}async[_0x3695c4(0x173)](_0x100211){const _0x382a4b={_0x56b35e:0x148},_0x1baa4d=_0x3695c4;return this[_0x1baa4d(0x12b)]('isVisible',[_0x100211]),this[_0x1baa4d(_0x382a4b._0x56b35e)][_0x1baa4d(0x124)]??!![];}async['isDisabled'](_0x354c1c){const _0x13917f={_0x24e365:0x148,_0x5d8fd5:0x177},_0x57a6e6=_0x3695c4;return this['record'](_0x57a6e6(0x12c),[_0x354c1c]),this[_0x57a6e6(_0x13917f._0x24e365)][_0x57a6e6(_0x13917f._0x5d8fd5)]??![];}async[_0x3695c4(0x198)](_0x33fd45,_0x2c0025){const _0x4d6afd={_0x4b8201:0x12b,_0x2947c5:0x198,_0x27ddd7:0x148},_0x86a8b4=_0x3695c4;return this[_0x86a8b4(_0x4d6afd._0x4b8201)](_0x86a8b4(_0x4d6afd._0x2947c5),[_0x33fd45,_0x2c0025]),this[_0x86a8b4(_0x4d6afd._0x27ddd7)][_0x86a8b4(0x17f)]?.[_0x2c0025]??null;}async[_0x3695c4(0x12d)](_0x286a06,_0x56b70c){const _0x3b4c5f={_0x3868d1:0x12d},_0x56d619=_0x3695c4;this[_0x56d619(0x12b)](_0x56d619(_0x3b4c5f._0x3868d1),[_0x286a06,_0x56b70c]);}async[_0x3695c4(0x14c)](_0x325bf2,_0x3ca9a8){const _0x2d0547=_0x3695c4;this[_0x2d0547(0x12b)](_0x2d0547(0x14c),[_0x325bf2,_0x3ca9a8]);}async[_0x3695c4(0x15d)](_0x46c970,_0xee1c0d){const _0x2d55e7=_0x3695c4;this[_0x2d55e7(0x12b)](_0x2d55e7(0x15d),[_0x46c970,_0xee1c0d]);}async['waitForNavigation'](_0x60859c){const _0x22de98=_0x3695c4;this[_0x22de98(0x12b)](_0x22de98(0x130),[_0x60859c]);}async[_0x3695c4(0x121)](_0xbb0c03,_0x290cb4){const _0x50d4f9=_0x3695c4;this[_0x50d4f9(0x12b)](_0x50d4f9(0x121),[_0xbb0c03,_0x290cb4]);}async['goto'](_0x13a69e,_0x3cf9cf){const _0x5e55f5={_0x3e3920:0x12b},_0x728e0b=_0x3695c4;this[_0x728e0b(_0x5e55f5._0x3e3920)](_0x728e0b(0x153),[_0x13a69e,_0x3cf9cf]),this[_0x728e0b(0x139)]=_0x13a69e;}async[_0x3695c4(0x131)](_0x4c5f0b){const _0xcef00e={_0x393680:0x12b,_0x4efa41:0x131},_0x4cde05=_0x3695c4;this[_0x4cde05(_0xcef00e._0x393680)](_0x4cde05(_0xcef00e._0x4efa41),[_0x4c5f0b]);}async[_0x3695c4(0x157)](_0x3b6678){const _0x448bed=_0x3695c4;this[_0x448bed(0x12b)](_0x448bed(0x157),[_0x3b6678]);}async[_0x3695c4(0x1a2)](_0x539c5a){const _0x3d8893={_0x4fb60e:0x12b},_0x59fc70=_0x3695c4;this[_0x59fc70(_0x3d8893._0x4fb60e)](_0x59fc70(0x1a2),[_0x539c5a]);}async[_0x3695c4(0x142)](_0x164a04){const _0x27f59d={_0x33ab5b:0x12b},_0x540204=_0x3695c4;return this[_0x540204(_0x27f59d._0x33ab5b)]('evaluate',[_0x164a04]),this['behavior']['evaluateResult'];}async['evaluateOnLocator'](_0x2dba6b,_0x2b55e7){const _0x1c8dd3=_0x3695c4;return this[_0x1c8dd3(0x12b)](_0x1c8dd3(0x15b),[_0x2dba6b,_0x2b55e7]),void 0x0;}async['inspectElement'](_0x333384){const _0x247359={_0x76d50b:0x165,_0x1d28d2:0x148},_0x538695=_0x3695c4;this[_0x538695(0x12b)]('inspectElement',[_0x333384]);if(_0x333384['steps'][_0x538695(0x15e)]!==0x1||_0x333384[_0x538695(0x165)][0x0]['kind']!=='ref')return null;const _0xa92e9b=_0x333384[_0x538695(_0x247359._0x76d50b)][0x0][_0x538695(0x126)],_0x3dc737=this[_0x538695(_0x247359._0x1d28d2)][_0x538695(0x188)]?.[_0xa92e9b];return _0x3dc737??null;}async['screenshot'](_0x3eea5c){const _0x583fbd={_0x4095fd:0x151},_0x3f4dd2=_0x3695c4;return this[_0x3f4dd2(0x12b)](_0x3f4dd2(0x155),[_0x3eea5c]),this['screenshotBytes'](_0x3eea5c?.[_0x3f4dd2(_0x583fbd._0x4095fd)]);}async[_0x3695c4(0x19f)](_0x484b55,_0x509368){const _0x4b9326={_0x276c49:0x166},_0xfac605=_0x3695c4;return this[_0xfac605(0x12b)](_0xfac605(0x19f),[_0x484b55,_0x509368]),this[_0xfac605(_0x4b9326._0x276c49)](_0x509368?.[_0xfac605(0x151)]);}[_0x3695c4(0x166)](_0x1b2ae6){const _0x409b4e={_0x514a12:0x148,_0x3397f8:0x12a},_0x592271=_0x3695c4,_0xd42ed1=this[_0x592271(_0x409b4e._0x514a12)][_0x592271(0x166)];if(_0xd42ed1===void 0x0)return Buffer[_0x592271(0x19c)]('fake-png');return typeof _0xd42ed1===_0x592271(_0x409b4e._0x3397f8)?_0xd42ed1(_0x1b2ae6):_0xd42ed1;}async[_0x3695c4(0x122)](_0x2c84b1){const _0xd6d667={_0x11f48f:0x12b,_0xd16fb5:0x165,_0x557546:0x165,_0x3a624e:0x148,_0xb88cbe:0x183},_0x36734a=_0x3695c4;this[_0x36734a(_0xd6d667._0x11f48f)]('outerHTML',[_0x2c84b1]);if(_0x2c84b1[_0x36734a(_0xd6d667._0xd16fb5)][_0x36734a(0x15e)]===0x1&&_0x2c84b1[_0x36734a(_0xd6d667._0x557546)][0x0][_0x36734a(0x1a0)]===_0x36734a(0x126)){const _0x89605a=_0x2c84b1['steps'][0x0]['ref'];return this[_0x36734a(_0xd6d667._0x3a624e)]['outerHtmlByRef']?.[_0x89605a]??_0x36734a(0x137)+_0x89605a+_0x36734a(_0xd6d667._0xb88cbe);}return'<div></div>';}},FakeContext=class{constructor(_0x29662e,_0x30860b,_0x2b0b69){const _0xd5e141={_0x26f0e7:0x186,_0x3a8b67:0x14d,_0x4ece49:0x180},_0x50a6c6={_0x43474:0x123},_0x3db572=_0x3695c4;this[_0x3db572(0x181)]=_0x29662e,this[_0x3db572(0x148)]=_0x30860b,this[_0x3db572(0x163)]=_0x2b0b69;const _0x1f1477=new FakePage(_0x29662e,_0x30860b,_0x2b0b69+_0x3db572(_0xd5e141._0x26f0e7),_0x30860b[_0x3db572(_0xd5e141._0x3a8b67)]??_0x3db572(0x176));_0x30860b['popupOnClick']&&(_0x1f1477['onAfterClick']=()=>{const _0x18a7a0=_0x3db572;this[_0x18a7a0(_0x50a6c6._0x43474)](_0x30860b[_0x18a7a0(0x17d)]);}),this['pageList']=[_0x1f1477],this[_0x3db572(0x149)]={..._0x30860b[_0x3db572(0x14a)]??{}},this[_0x3db572(_0xd5e141._0x4ece49)]={..._0x30860b[_0x3db572(0x12f)]??{}};}[_0x3695c4(0x181)];[_0x3695c4(0x148)];[_0x3695c4(0x163)];static{__name(this,_0x3695c4(0x13e));}[_0x3695c4(0x156)];['activeIdx']=0x0;[_0x3695c4(0x17e)]=[];[_0x3695c4(0x149)];[_0x3695c4(0x180)];['newPageListeners']=new Set();[_0x3695c4(0x12b)](_0x3a7b5f,_0x41be94){const _0x580c35={_0x164bf8:0x181,_0x7273a9:0x19d},_0x289906=_0x3695c4;this[_0x289906(_0x580c35._0x164bf8)][_0x289906(_0x580c35._0x7273a9)]({'scope':this['scope'],'method':_0x3a7b5f,'args':_0x41be94});}[_0x3695c4(0x167)](){const _0x4fc920={_0x28dc12:0x156},_0x320fd4=_0x3695c4;return this[_0x320fd4(_0x4fc920._0x28dc12)];}[_0x3695c4(0x17b)](){const _0x15ca68={_0x4b1142:0x150,_0x39662b:0x184},_0x41f432=_0x3695c4,_0x4aabd7=this[_0x41f432(0x156)][this['activeIdx']];if(!_0x4aabd7)throw new DriverError(_0x41f432(_0x15ca68._0x4b1142),{'activeIdx':this[_0x41f432(_0x15ca68._0x39662b)]});return _0x4aabd7;}['consoleEntries'](){const _0x5a696c={_0x5ec506:0x172},_0x2b6f21=_0x3695c4;return this[_0x2b6f21(0x148)][_0x2b6f21(_0x5a696c._0x5ec506)]??[];}[_0x3695c4(0x168)](){const _0x26564c={_0x5af449:0x148,_0x1cd82f:0x168},_0x1f1fbb=_0x3695c4;return this[_0x1f1fbb(_0x26564c._0x5af449)][_0x1f1fbb(_0x26564c._0x1cd82f)]??[];}async['setActivePage'](_0x5ae170){const _0xd595bf={_0x422782:0x156,_0x5f4b52:0x17e},_0x3ed08f=_0x3695c4;this[_0x3ed08f(0x12b)](_0x3ed08f(0x17a),[_0x5ae170]);if(_0x5ae170<0x0||_0x5ae170>=this['pageList']['length'])throw new DriverError('page\x20index\x20out\x20of\x20range',{'index':_0x5ae170,'available':this[_0x3ed08f(_0xd595bf._0x422782)]['length']});this['activeIdx']=_0x5ae170,this[_0x3ed08f(_0xd595bf._0x5f4b52)][_0x3ed08f(0x15e)]=0x0;}[_0x3695c4(0x159)](_0x503acb){const _0xe938a0=_0x3695c4;return subscribe(this[_0xe938a0(0x194)],_0x503acb);}['emitFakePopup'](_0x1e7529){const _0x383f1a={_0xea6d3d:0x163,_0xad787f:0x189,_0x2934b8:0x15e,_0x4a1205:0x181,_0x2fc136:0x156,_0x34ea06:0x15e,_0x523a0c:0x194},_0x114e80=_0x3695c4,_0x413af8=this[_0x114e80(_0x383f1a._0xea6d3d)]+_0x114e80(_0x383f1a._0xad787f)+this[_0x114e80(0x156)][_0x114e80(_0x383f1a._0x2934b8)],_0x135ebb=new FakePage(this[_0x114e80(_0x383f1a._0x4a1205)],this[_0x114e80(0x148)],_0x413af8,_0x1e7529);this[_0x114e80(_0x383f1a._0x2fc136)][_0x114e80(0x19d)](_0x135ebb);const _0x25fcb5=this[_0x114e80(_0x383f1a._0x2fc136)][_0x114e80(_0x383f1a._0x34ea06)]-0x1;for(const _0x4d4d6f of this[_0x114e80(_0x383f1a._0x523a0c)]){try{_0x4d4d6f({'index':_0x25fcb5,'url':_0x1e7529});}catch{}}return _0x25fcb5;}[_0x3695c4(0x15a)](_0x3acd06){const _0x3abd58={_0xc48ea0:0x15e,_0x281123:0x145},_0x5ca9eb=_0x3695c4;if(_0x3acd06<0x0||_0x3acd06>=this['pageList'][_0x5ca9eb(_0x3abd58._0xc48ea0)])throw new DriverError('page\x20index\x20out\x20of\x20range',{'index':_0x3acd06,'available':this[_0x5ca9eb(0x156)]['length']});this[_0x5ca9eb(0x156)][_0x5ca9eb(_0x3abd58._0x281123)](_0x3acd06,0x1);}async['enterFrame'](_0x102457){const _0x25cd99={_0x3dbdf1:0x12b,_0x40e20:0x14f,_0x4d358b:0x165,_0x473b7e:0x19d},_0x5c50da=_0x3695c4;this[_0x5c50da(_0x25cd99._0x3dbdf1)](_0x5c50da(_0x25cd99._0x40e20),[_0x102457]);if(!_0x102457[_0x5c50da(_0x25cd99._0x4d358b)]['length'])throw new LocatorError('enterFrame\x20called\x20with\x20empty\x20locator',{'locator':_0x102457});this['frameStack'][_0x5c50da(_0x25cd99._0x473b7e)](_0x102457);}async[_0x3695c4(0x171)](){const _0x47539c={_0x1fdbf5:0x12b,_0x4f89e3:0x171,_0x541335:0x15e,_0xe21962:0x179,_0x426a19:0x17e,_0x3a8bf6:0x19a},_0x3b82c2=_0x3695c4;this[_0x3b82c2(_0x47539c._0x1fdbf5)](_0x3b82c2(_0x47539c._0x4f89e3),[]);if(this[_0x3b82c2(0x17e)][_0x3b82c2(_0x47539c._0x541335)]===0x0)throw new DriverError(_0x3b82c2(_0x47539c._0xe21962),{});this[_0x3b82c2(_0x47539c._0x426a19)][_0x3b82c2(_0x47539c._0x3a8bf6)]();}async[_0x3695c4(0x197)](_0x265b49,_0x24c1aa){const _0x3bcc93=_0x3695c4;this['record'](_0x3bcc93(0x197),[_0x265b49,_0x24c1aa]),this['localStorageState'][_0x265b49]=_0x24c1aa;}async['getLocalStorage'](_0x2ef9e6){const _0x4fc33b=_0x3695c4;return this[_0x4fc33b(0x12b)](_0x4fc33b(0x16f),[_0x2ef9e6]),this[_0x4fc33b(0x149)][_0x2ef9e6]??null;}async[_0x3695c4(0x133)](_0x27fc67,_0x11d1d4,_0x3fe7b1){const _0x38d6a5={_0x3972bc:0x12b,_0x5048a0:0x133,_0x14af47:0x180},_0x4acf97=_0x3695c4;this[_0x4acf97(_0x38d6a5._0x3972bc)](_0x4acf97(_0x38d6a5._0x5048a0),[_0x27fc67,_0x11d1d4,_0x3fe7b1]),this[_0x4acf97(_0x38d6a5._0x14af47)][_0x27fc67]=_0x11d1d4;}async[_0x3695c4(0x160)](_0x75bcbc){const _0x497e47=_0x3695c4;return this[_0x497e47(0x12b)](_0x497e47(0x160),[_0x75bcbc]),this[_0x497e47(0x180)][_0x75bcbc]??null;}async['saveStorageState'](_0x2042a7){const _0x4a2e52={_0x461cd3:0x141},_0x50e9e5=_0x3695c4;this['record'](_0x50e9e5(_0x4a2e52._0x461cd3),[_0x2042a7]);}async['evaluate'](_0x373f15){const _0x3bfd8b={_0x4e9ba4:0x12b},_0x1570ff=_0x3695c4;return this[_0x1570ff(_0x3bfd8b._0x4e9ba4)]('evaluate',[_0x373f15]),void 0x0;}async[_0x3695c4(0x169)](){const _0x596033={_0x5f018d:0x12b},_0x56da5b=_0x3695c4;this[_0x56da5b(_0x596033._0x5f018d)]('close',[]);}['frameDepth'](){const _0x40d1cf={_0x151981:0x17e},_0x5021e3=_0x3695c4;return this[_0x5021e3(_0x40d1cf._0x151981)][_0x5021e3(0x15e)];}},FakeWebDriver=class{constructor(_0xfe3354={}){const _0x483d2f=_0x3695c4;this['behavior']=_0xfe3354,this[_0x483d2f(0x181)]=createRecorder();}[_0x3695c4(0x148)];static{__name(this,_0x3695c4(0x13a));}[_0x3695c4(0x185)]=![];[_0x3695c4(0x181)];[_0x3695c4(0x16a)]=[];async[_0x3695c4(0x192)](_0x333fe8){const _0x24904f={_0x3c788f:0x19d,_0x499872:0x13d},_0x21ef18=_0x3695c4;this['recorder'][_0x21ef18(_0x24904f._0x3c788f)]({'scope':_0x21ef18(_0x24904f._0x499872),'method':_0x21ef18(0x192),'args':[_0x333fe8]}),this[_0x21ef18(0x185)]=!![];}async[_0x3695c4(0x16b)](_0xe9a0f){const _0x2f2f00={_0x52095b:0x13d,_0x7200be:0x18b,_0x1d7f9f:0x181,_0x21c333:0x148,_0x44d9dc:0x16a,_0x11f7b6:0x19d},_0x1b39dc=_0x3695c4;this['recorder'][_0x1b39dc(0x19d)]({'scope':_0x1b39dc(_0x2f2f00._0x52095b),'method':'newContext','args':[_0xe9a0f]});if(!this['launched'])throw new DriverError(_0x1b39dc(_0x2f2f00._0x7200be),{});const _0x55ed7a=new FakeContext(this[_0x1b39dc(_0x2f2f00._0x1d7f9f)],this[_0x1b39dc(_0x2f2f00._0x21c333)],_0x1b39dc(0x127)+this['contexts'][_0x1b39dc(0x15e)]);return this[_0x1b39dc(_0x2f2f00._0x44d9dc)][_0x1b39dc(_0x2f2f00._0x11f7b6)](_0x55ed7a),_0x55ed7a;}async[_0x3695c4(0x169)](){const _0xedb549={_0x1108b8:0x181,_0x35b889:0x185},_0x582331=_0x3695c4;this[_0x582331(_0xedb549._0x1108b8)][_0x582331(0x19d)]({'scope':_0x582331(0x13d),'method':'close','args':[]}),this[_0x582331(_0xedb549._0x35b889)]=![];}['wsEndpoint'](){return void 0x0;}async[_0x3695c4(0x15c)](){const _0x33cbaf={_0x508db9:0x162},_0x363553=_0x3695c4;throw new DriverError(_0x363553(_0x33cbaf._0x508db9),{});}[_0x3695c4(0x191)](_0x405cfc){const _0x59a824={_0x36d4ae:0x18d},_0x26b7be=_0x3695c4;throw new DriverError(_0x26b7be(_0x59a824._0x36d4ae),{});}[_0x3695c4(0x16d)](){const _0x414f2f=_0x3695c4;return this[_0x414f2f(0x181)][_0x414f2f(0x16d)]();}['callsFor'](_0x2d2e83){const _0x1526a5=_0x3695c4;return this[_0x1526a5(0x181)]['calls']()[_0x1526a5(0x125)](_0x43e54f=>_0x43e54f[_0x1526a5(0x18e)]===_0x2d2e83);}};export{FakeWebDriver};
|