@unotest/web 0.31.0 → 0.32.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 CHANGED
@@ -1,5 +1,122 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.32.0] - 2026-09-05
4
+
5
+ ### Minor Changes
6
+
7
+ - 442fadf: `npx @unotest/web box …` reads a box's results from a terminal: `box envs` lists the environments a read token may look at, `box runs` their history (`--latest` collapses it to one line per scenario with its failing streak), `box run <id>` explains one run — the failure, the soft steps, the judge's verdicts — `box queue` shows who is waiting, and `box screenshot` saves a frame the run captured.
8
+
9
+ `box run --download` fetches the run's `*.unotest.zip` into `.unotest/box/` and unpacks its failure bundle into `.unotest/failures/`, where `list_failures`, `get_failure_*` and `agent_fix` already look — so a run that failed on a box is debugged with the commands a local failure is. `--no-screenshots` asks the box itself to leave the step frames out (`GET /api/runs/:id/export?screenshots=0`), which is what makes the download smaller rather than only the disk.
10
+
11
+ Reading needs a personal read token in `UNOTEST_BOX_READ_TOKEN`; the project's `UNOTEST_BOX_TOKEN` still pushes bundles and values and cannot read runs.
12
+
13
+ The viewer publishes its archive reader as `@unotest/viewer/snapshot`, so the three places that open a `*.unotest.zip` — its server, its browser bundle and now the CLI — share one implementation and one message for a file that is not an archive.
14
+
15
+ - 69fbea1: Six MCP tools close the loop that `bundle push --run` opens: `box_run` says what became of a run the agent ordered on a box, `box_run_download` unpacks its failure bundle into `.unotest/failures/` so `get_failure_trace`, `get_failure_console`, `get_failure_a11y`, `get_failure_screenshot`, `get_failure_network` and `agent_fix` work on it unchanged, and `box_envs`, `box_runs`, `box_queue` and `box_screenshot` cover the cases where the agent has no run id, no environment name, a run that never started, or a page it would rather see than read about. Their descriptions carry the route, not just the arguments.
16
+
17
+ Without a read token the tools refuse with a message saying where to mint one, so an agent meets an instruction rather than an unexplained failure.
18
+
19
+ - 9099f64: Box: personal read tokens, so an agent can read a box's runs without a browser.
20
+
21
+ A user mints a token for themselves on the guard's new **Read tokens** page
22
+ (`/_guard/tokens`), sees the value once, and points a client at the box with
23
+ `UNOTEST_BOX_READ_TOKEN`. The token is always `readonly` whatever its owner's
24
+ role, may only `GET`, and names the environment it means in
25
+ `X-Unotest-Environment: <project>/<environment>` (`GET /_guard/api/envs` lists
26
+ them). It is not a machine identity: it follows its owner — revoked, disabled
27
+ or a lapsed seat all stop it, and the refusal says which. An administrator
28
+ sees every token on the box and can revoke one that is not theirs; issuing,
29
+ first use and revocation all land in the audit trail.
30
+
31
+ `UNOTEST_BOX_TOKEN` is unchanged: the project token still pushes bundles and
32
+ environment values, and read tokens cannot — asking with the wrong one now
33
+ says which token the route wants instead of a bare "unauthenticated".
34
+
35
+ A read token is never passed on to the viewer behind the guard, so it cannot
36
+ end up in the logs of a service that has no use for it. A box whose licence
37
+ has lapsed, and an environment whose viewer is not up yet, answer a token in
38
+ the read contract's shape rather than with a page or a bare 503 — "wait" and
39
+ "renew the licence" are not the same instruction as "your token is wrong".
40
+
41
+ ### Patch Changes
42
+
43
+ - 5266b30: The agent integration guide's tool catalog matches the server again. It listed fifteen per-action tools (`goto`, `click`, `fill`, `press`, …) that were removed when recording moved into `explore_step`, had no section at all for the ten exploration tools that replaced them, counted the debugger's eleven tools as six, and put the total at 39 when it is 50. An agent reading it as a map — which is exactly what this file is for — would call tools that do not exist and conclude the server is broken. Every name now comes from the list the test suite verifies against the real registry, and the section counts add up to the total.
44
+ - 442fadf: `BoxReadClient` reads a box's runs — environments, run history, one run's whole journal, a collection's children, the queue, a run's export zip and its individual artifacts — over the same HTTP routes a browser uses, authenticated with the personal read token in `UNOTEST_BOX_READ_TOKEN`. Every refusal arrives as a typed `BoxReadError` whose `kind` says what to do next, so throttling is never mistaken for a rejected token and a live run's export says "wait" rather than looking like a broken box. Configuration mistakes surface when a read is attempted rather than at startup, so a stale token in a project's `.env` cannot stop a local run that never touches a box.
45
+
46
+ The viewer gains a `@unotest/viewer/wire` entry point exporting its HTTP contract types (the runs page, a run's full snapshot, the queue payload and the snapshot manifest), so a client can name the shapes it parses instead of keeping a second copy of them.
47
+
48
+ - f770a25: The box address and the read token are resolved from `unotest/.env` and `unotest/.secrets` on every request, not once at startup, and the `box` CLI reads those files directly. `unotest-web box …` runs without loading the project config, so nothing had flattened `unotest/.env` into its environment — the command told people to put the address there and then refused with "no box address". And an MCP server that resolved once meant a token written while it ran was ignored until the editor reconnected it, which is exactly the restart this path exists to avoid. One rule for both settings, from both entry points: a flag, then the environment, then the project's files.
49
+ - 8aa0f30: Protocol contract for reading a box's run results with a personal read token: `UNOTEST_BOX_READ_TOKEN` (distinct from the project's `UNOTEST_BOX_TOKEN`, which stays a write credential for bundles and environment values), the `X-Unotest-Environment: <project>/<environment>` header every bearer request names its own environment with, the `/_guard/api/envs` listing and its `BoxReadEnvironment` entry, and typed refusals (`unauthorized`, `forbidden`, `unknown-environment`, `not-found`, `rate-limited`, `run-in-progress`, `unavailable`, `malformed`) with parsers that reject anything that is not a box answering. Throttling gets a code of its own rather than an `unauthorized` carrying `Retry-After`: a rejected token means mint a new one, a throttled one means wait and resend the same one. The viewer's `ViewerEnvOption` is now that same protocol type rather than a second copy of it. An environment whose viewer is still starting — the common state right after a bundle push — answers `unavailable` rather than looking like an unreachable box, so the advice is to wait rather than to check the address.
50
+ - 8aa0f30: A run exported as `*.unotest.zip` now carries everything needed to diagnose it away from the machine that produced it: `stdout.log` and `stderr.log` (previously dropped, which left the one artifact that explains a runner crash outside the bundle), the failing page's `page.html` reachable through the manifest, and the run's step screenshots — declared in a new `manifest.screenshots` list, because an importer keeps only what the manifest names and a frame absent from it did not survive the round trip.
51
+ - 5266b30: `UNOTEST_BOX_READ_TOKEN` is now read from `unotest/.secrets` as well as from the environment, with an exported value winning. This is what makes the `box_*` tools usable from an agent at all: an MCP server is started by the editor, so a token that exists only in a shell is a token the server never receives — the alternative was editing the editor's own JSON config and reconnecting the server. `unotest/.env` is deliberately not consulted: it travels inside a pushed bundle, while `.secrets` does not. The CLI resolves the token the same way, so one token serves both.
52
+ - 5266b30: `box run` and `box_run` now carry the `{tag}` of a failed soft step, in the JSON and in the printed line (`Rubric [judge-red]`, the shape a local run already prints). A data-driven test runs one `step.soft` over many cases, so its failures all share a label and the tag is the only thing that says which case failed — without it a remote reader saw "Rubric failed" three times and had to tell them apart by line number. The tag was in the run's journal all along; the summary dropped it.
53
+ - ee6bb51: Secrets injected by a box are masked. Masking works by value, and the registry of values was built from `unotest/.secrets` alone — a file that does not exist on a box, where the daemon passes the values as environment variables and names them in `UNOTEST_BOX_SECRET_NAMES`. The registry was therefore empty on every box run, and a password a scenario typed reached the run journal, the run's `stdout.log`, the viewer's System pane and anything an agent downloaded, in the clear. The runner now registers those values alongside the ones it reads from files, so masking no longer depends on where the run happens to be. Nothing changes on a developer's machine, where the variable is not set.
54
+ - 047ca68: Failure text no longer carries terminal colouring into files and replies.
55
+
56
+ Playwright paints its call log whenever the environment claims a terminal is
57
+ watching — `FORCE_COLOR`, which an MCP server inherits from whatever launched
58
+ it — and that message was copied verbatim into `steps.jsonl`, `runtime.json`
59
+ and the failure bundle. An agent reading the JSON got an escape sequence in
60
+ the middle of the sentence it was trying to parse, and the viewer rendered
61
+ it as a chewed-up word.
62
+
63
+ The colouring is dropped where a thrown error becomes our data, so every
64
+ reader of a failure gets the same clean text. Our own output is unaffected:
65
+ it paints at print time, which is where colour belongs.
66
+
67
+ The same on mobile: a failure's text in the run journal and in the report no
68
+ longer carries terminal escapes.
69
+
70
+ - 047ca68: A failure somebody paused on stays a failure, with the evidence to show for it.
71
+
72
+ A run driven through the debugger — `run_test` then `resume`, or the viewer's
73
+ Continue — reported `completed` after a failure it had paused on, wrote no
74
+ failure bundle and no `failure/` artifacts, and left `list_failures` with
75
+ nothing to show. Continuing past a failure is how it gets inspected; it was
76
+ never meant to retract it. The verdict is now decided where the run's own
77
+ events are seen, so the journal, `runtime.json` and the reply agree, and a
78
+ debug run leaves the same evidence a plain `unotest-web e2e` run does.
79
+
80
+ `abort_runtime` (and Stop, and SIGTERM) now also ends the run in
81
+ `runtime.json`, not only in `steps.jsonl`: the control file used to keep
82
+ saying `paused-step` about a run that was over, so anything reading it rather
83
+ than the journal saw a pause that never ended.
84
+
85
+ - c5d3cda: README links the documentation site instead of manuals that are not shipped in the package (`guides/manuals/*`), and says what a run on a box cannot reach: `localhost`, port-forwards, host tools, a judge service on your machine — with the recipe for the judge on a box.
86
+ - 442fadf: Secret values registered from `unotest/.secrets` are now masked in what the runner prints, not only in what it writes. The run journal and every failure artifact were redacted; the terminal line was not, and that line is also copied into the run's `stdout.log` / `stderr.log` and streamed to the viewer's System pane. Masking is applied once, where the logger is built, so child loggers and message arguments are covered too. The collection runner is covered by the same rule: its messages go through its logger rather than straight to the stream, and the logger it builds when a caller passes none reads the project's secrets the way the composition root's does.
87
+ - 047ca68: A `step.soft(...)` failure no longer stops a debug run — or goes missing from it.
88
+
89
+ Under a debugger (`run_test`, or `e2e --debug`), every soft failure raised
90
+ the debug wheel: the run stopped on each one and an agent had to `resume`
91
+ its way through them. Worse, it was then lost — a paused failure is consumed
92
+ where it paused, so it never reached the `step.soft` envelope that records
93
+ it, the envelope closed as if the block had passed, and a run with three
94
+ soft failures could finish green with none of them listed.
95
+
96
+ Pausing is now for a failure that ENDS the run. A failure under any
97
+ enclosing soft step is recorded and stepped over exactly as it is on the
98
+ command line, and `runtime.json` — which the `run_test` reply is built from —
99
+ carries every soft failure of the run, not just the last stop.
100
+
101
+ A hard failure still pauses: that is what the debugger is for.
102
+
103
+ The same holds on mobile: a `step.soft(...)` failure no longer stops a run
104
+ under the debugger, and every soft failure of a run is now part of its
105
+ runtime state instead of being lost at the pause.
106
+
107
+ - Updated dependencies [442fadf]
108
+ - Updated dependencies [442fadf]
109
+ - Updated dependencies [8aa0f30]
110
+ - Updated dependencies [8aa0f30]
111
+ - Updated dependencies [047ca68]
112
+ - Updated dependencies [047ca68]
113
+ - Updated dependencies [047ca68]
114
+ - @unotest/viewer@0.32.0
115
+ - @unotest/protocol@0.32.0
116
+ - @unotest/dsl@0.32.0
117
+ - @unotest/core@0.32.0
118
+ - @unotest/grounder-client@0.32.0
119
+
3
120
  ## [0.31.0] - 2026-09-04
4
121
 
5
122
  ### Minor Changes
package/README.md CHANGED
@@ -7,6 +7,11 @@ and commit.**
7
7
  MCP server + CLI runner + JavaScript DSL + semantic DOM snapshots +
8
8
  structured failure bundles.
9
9
 
10
+ Full documentation — manuals, the box, CI, the judge — lives at
11
+ [docs.unotest.com](https://docs.unotest.com). This README is the short
12
+ tour; the package ships only `guides/dsl-reference.md` and
13
+ `guides/agent-integration.md` alongside it.
14
+
10
15
  ---
11
16
 
12
17
  ## 1. Setup
@@ -170,7 +175,7 @@ a suite takes minutes, and a request held open that long is a timeout,
170
175
  not a result. Watch them in the viewer, or let the box report the checks
171
176
  back to GitHub. `--pr` makes a newer push withdraw the older runs of the
172
177
  same pull request that are still waiting, so three pushes in five minutes
173
- cost one suite. Recipe: `guides/manuals/ci-setup.md`.
178
+ cost one suite. Recipe: [Pushing suites → A minimal CI job](https://docs.unotest.com/box/pushing-suites/#a-minimal-ci-job).
174
179
 
175
180
  The values a suite runs with on the box — `APP_BASE_URL`, its `.env`
176
181
  settings, its secrets — are sent separately, from the same files a local
@@ -184,7 +189,66 @@ printf '%s' "$KEY" | npx @unotest/web env set dev API_KEY --secret
184
189
  `.env*` become the environment's variables, `.secrets*` its secrets,
185
190
  `APP_BASE_URL` its target; `UNOTEST_*` stay home. A value never prints.
186
191
  The token must be minted with `--values` on the box. Admins also see and
187
- change them on the box's admin page. Manual: `guides/manuals/box-values.md`.
192
+ change them on the box's admin page. Manual: [An environment's values on a
193
+ box](https://docs.unotest.com/box/environments-and-values/).
194
+
195
+ A run on the box happens inside the box's own container: nothing on your
196
+ machine is reachable from it — no `localhost`, no `kubectl port-forward`,
197
+ no tools installed on your laptop. Preconditions must probe the
198
+ environment's public URL, and `assertJudge` runs its judge in-process there
199
+ (`UNOTEST_JUDGE_MODE=local`, `@unotest/judge` in the suite's
200
+ `package.json`, the API key as a secret). Details:
201
+ [Judge on a box](https://docs.unotest.com/guides/judge/#on-a-box) and
202
+ [What a box cannot reach](https://docs.unotest.com/box/troubleshooting/#what-a-box-cannot-reach).
203
+
204
+ ### Reading results from a box
205
+
206
+ `bundle push --run` gives you a run id. Read what became of it from the
207
+ same terminal — no browser, no shell on the box:
208
+
209
+ ```sh
210
+ npx @unotest/web box runs --env acme/test --latest
211
+ npx @unotest/web box run checkout-mqf3pwr1 --env acme/test
212
+ ```
213
+
214
+ `box run` prints the failure, the results of soft steps and the judge's
215
+ verdicts. When you want the artifacts too:
216
+
217
+ ```sh
218
+ npx @unotest/web box run checkout-mqf3pwr1 --env acme/test --download
219
+ ```
220
+
221
+ That saves the run's `*.unotest.zip` under `.unotest/box/` and unpacks its
222
+ failure bundle into `.unotest/failures/` — where `list_failures`,
223
+ `get_failure_*` and `agent_fix` already look, so your agent debugs a box
224
+ failure with the commands it uses for a local one. Add `--no-screenshots`
225
+ to leave the step frames on the box; they are usually most of the bytes.
226
+
227
+ Reading uses a **personal** read token, not the project one. Put it in
228
+ `unotest/.secrets`, next to your other project secrets:
229
+
230
+ ```sh
231
+ UNOTEST_BOX_READ_TOKEN=ubr_...
232
+ ```
233
+
234
+ and the box's address in `unotest/.env` as `UNOTEST_BOX_URL`. Both files
235
+ are read directly, so this works the same from the terminal and from your
236
+ agent. Exporting either value in your shell works too and wins over the
237
+ file; `--box` and `--token` win over both.
238
+
239
+ The token is never read from `unotest/.env` — that file travels inside a
240
+ pushed bundle, and `.secrets` does not.
241
+
242
+ Keeping it in the file is what lets your agent read runs: an MCP server is
243
+ started by your editor, so a token that only exists in your shell is a
244
+ token the agent never sees. A token added while the server is running is
245
+ picked up on the next call — nothing to restart.
246
+
247
+ You mint it for yourself on the box's guard ("Read tokens"), it is shown
248
+ once, and it is revocable. It is read-only whatever your role on the box — it cannot start
249
+ a run or change a value. `UNOTEST_BOX_TOKEN` is the project's push
250
+ credential and cannot read runs. `box envs` lists the environments a token
251
+ may look at.
188
252
 
189
253
  ## 5. Watch it run — the viewer
190
254
 
@@ -30,10 +30,10 @@ declare const RetryConfigSchema: z.ZodObject<{
30
30
  on: z.ZodArray<z.ZodEnum<["transient", "network", "crash"]>, "many">;
31
31
  }, "strip", z.ZodTypeAny, {
32
32
  count: number;
33
- on: ("transient" | "network" | "crash")[];
33
+ on: ("network" | "transient" | "crash")[];
34
34
  }, {
35
35
  count: number;
36
- on: ("transient" | "network" | "crash")[];
36
+ on: ("network" | "transient" | "crash")[];
37
37
  }>;
38
38
  type RetryConfig = z.infer<typeof RetryConfigSchema>;
39
39
  declare const FailureBundleConfigSchema: z.ZodObject<{
@@ -276,10 +276,10 @@ declare const UnotestConfigSchema: z.ZodObject<{
276
276
  on: z.ZodArray<z.ZodEnum<["transient", "network", "crash"]>, "many">;
277
277
  }, "strip", z.ZodTypeAny, {
278
278
  count: number;
279
- on: ("transient" | "network" | "crash")[];
279
+ on: ("network" | "transient" | "crash")[];
280
280
  }, {
281
281
  count: number;
282
- on: ("transient" | "network" | "crash")[];
282
+ on: ("network" | "transient" | "crash")[];
283
283
  }>;
284
284
  failureBundle: z.ZodObject<{
285
285
  /** Tier 1 is always on by D-16. Schema lock — not user-toggleable. */
@@ -461,7 +461,7 @@ declare const UnotestConfigSchema: z.ZodObject<{
461
461
  };
462
462
  retry: {
463
463
  count: number;
464
- on: ("transient" | "network" | "crash")[];
464
+ on: ("network" | "transient" | "crash")[];
465
465
  };
466
466
  failureBundle: {
467
467
  tier1: true;
@@ -523,7 +523,7 @@ declare const UnotestConfigSchema: z.ZodObject<{
523
523
  };
524
524
  retry: {
525
525
  count: number;
526
- on: ("transient" | "network" | "crash")[];
526
+ on: ("network" | "transient" | "crash")[];
527
527
  };
528
528
  failureBundle: {
529
529
  tier2: boolean;
@@ -1 +1 @@
1
- var _0x2fa2f7=_0x2c5b;(function(_0x3499ab,_0x5d8568){var _0x15eafc={_0x3b21ab:0x1b8,_0x53bdd8:0x1c4,_0x1d4372:0x1bd,_0x2a51f9:0x1e0,_0x3504e6:0x1dc},_0x17529b=_0x2c5b,_0x17f685=_0x3499ab();while(!![]){try{var _0x12126c=-parseInt(_0x17529b(0x1d4))/0x1+-parseInt(_0x17529b(_0x15eafc._0x3b21ab))/0x2*(parseInt(_0x17529b(0x1b2))/0x3)+-parseInt(_0x17529b(_0x15eafc._0x53bdd8))/0x4+-parseInt(_0x17529b(_0x15eafc._0x1d4372))/0x5+-parseInt(_0x17529b(_0x15eafc._0x2a51f9))/0x6+parseInt(_0x17529b(0x1c9))/0x7+parseInt(_0x17529b(_0x15eafc._0x3504e6))/0x8;if(_0x12126c===_0x5d8568)break;else _0x17f685['push'](_0x17f685['shift']());}catch(_0x1d36eb){_0x17f685['push'](_0x17f685['shift']());}}}(_0x4bad,0x1a19a));function _0x2c5b(_0x2a65eb,_0x5a03d3){_0x2a65eb=_0x2a65eb-0x1b1;var _0x4bad3b=_0x4bad();var _0x2c5b05=_0x4bad3b[_0x2a65eb];if(_0x2c5b['xNMmGo']===undefined){var _0x3be714=function(_0x1319c2){var _0x15751e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0xbdc2b='',_0x2098aa='';for(var _0x2e3c9d=0x0,_0x103b9f,_0x86a1ad,_0x2a3181=0x0;_0x86a1ad=_0x1319c2['charAt'](_0x2a3181++);~_0x86a1ad&&(_0x103b9f=_0x2e3c9d%0x4?_0x103b9f*0x40+_0x86a1ad:_0x86a1ad,_0x2e3c9d++%0x4)?_0xbdc2b+=String['fromCharCode'](0xff&_0x103b9f>>(-0x2*_0x2e3c9d&0x6)):0x0){_0x86a1ad=_0x15751e['indexOf'](_0x86a1ad);}for(var _0x318be3=0x0,_0x156e43=_0xbdc2b['length'];_0x318be3<_0x156e43;_0x318be3++){_0x2098aa+='%'+('00'+_0xbdc2b['charCodeAt'](_0x318be3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2098aa);};_0x2c5b['UUeoiq']=_0x3be714,_0x2c5b['ykZLZs']={},_0x2c5b['xNMmGo']=!![];}var _0x2cb5bb=_0x4bad3b[0x0],_0x25b50c=_0x2a65eb+_0x2cb5bb,_0x145ffc=_0x2c5b['ykZLZs'][_0x25b50c];return!_0x145ffc?(_0x2c5b05=_0x2c5b['UUeoiq'](_0x2c5b05),_0x2c5b['ykZLZs'][_0x25b50c]=_0x2c5b05):_0x2c5b05=_0x145ffc,_0x2c5b05;}import{z}from'zod';function _0x4bad(){var _0x357f87=['y3jHC2G','yxjYyxK','DMfSAwrHDg9YoMzVCI1ZAgfWzq','DMfSAwrHDg9YoNDYyxbWzwqTzM9YBwf0','C3rYAw5N','ndeXnJy4ogv3uNnVBG','DMfSAwrHDg9YoM1LDgeTC2HHCgu','B2zM','lNvUB3rLC3qVzMfPBhvYzxm','mtq3oduYsLf6whfo','DMfSAwrHDg9YoNnLBwfUDgLJlwXVC3m','DMfSAwrHDg9YoNn0zxaTy292zxjHz2u','DxjS','CMvJB3jK','DMfSAwrHDg9YoNzHCI1ZAgfWzq','BgLUDdPYzwDLEc1PBNzHBgLK','BgLUDdPWyxvZzs1LEhbSAwnPDa','D2fYBG','Aw50','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlxn0yxrLBwvUDa','BgLUDdPHCgKTy2fSBc1MAwXLlwjVzhK','BNvSBa','BgLUDdPLy2HVlwfZC2vYDa','D2vIA2L0','BgLUDdPTDxn0ywnOzs1PBI1KC2W','Bwf4','yM9VBgvHBG','BgL0zxjHBa','otmWA1jZEuvM','BMv0D29YAW','BgLUDdPLDMfSDwf0zs1KAxnJB3vYywDLza','DMfSAwrHDg9YoNvUA25VD24TzNvUy3rPB24','DMfSAwrHDg9YoMz1BMn0Aw9UlxnOyxbL','BgLUDdPZy2vUyxjPBY1PBI1YB290','ndjdrg5KsfG','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlwv4ChjLC3nPB24','BgLUDdPKAxnHBwjPzY1IEs1PBMrLEa','zgvMyxvSDa','zgLZBwLZCW','odGWnJa1C2HwB0rm','BgLUDdPVBMuTDgvZDc1WzxiTzMLSzq','BwfUDwfS','BgLUDdPSzwDHy3KTBgf5B3v0','BgLUDdPMBg93lxjLDhvYBNmTDMfSDwu','C3rKAw8','zxjYB3i','nty0mJqWC2H1AuPr','BNvTyMvY','zMLYzwzVEa','BwLU','Cg9ZAxrPDMu','ntGZmJrdChvztu4','DMfSAwrHDg9YoMfYzY1RAw5K','DMfSAwrHDg9YoMXPC3qTyxjN','Dw5VDgvZDc9LmMu','BxnLzgDL','y2HYB21PDw0','zw51Bq','B2jQzwn0','DMfSAwrHDg9YoNn0zxaTC2HHCgu','DhjHBNnPzw50','B3b0Aw9UywW','nJC2nZLLu3vWwwG','Dw5PB24','y2HYB21LlwjLDge'];_0x4bad=function(){return _0x357f87;};return _0x4bad();}var BrowserSchema=z['enum']([_0x2fa2f7(0x1ce),_0x2fa2f7(0x1c6),_0x2fa2f7(0x1ee)]),BrowserChannelSchema=z[_0x2fa2f7(0x1d5)]([z[_0x2fa2f7(0x1b1)]('chrome'),z[_0x2fa2f7(0x1b1)](_0x2fa2f7(0x1cd)),z[_0x2fa2f7(0x1b1)](_0x2fa2f7(0x1d6)),z[_0x2fa2f7(0x1ec)]()])[_0x2fa2f7(0x1d3)](),ViewportSchema=z[_0x2fa2f7(0x1d0)]({'width':z['number']()[_0x2fa2f7(0x1e9)]()[_0x2fa2f7(0x1c8)](),'height':z[_0x2fa2f7(0x1c5)]()[_0x2fa2f7(0x1e9)]()[_0x2fa2f7(0x1c8)]()}),RetryReasonSchema=z['enum']([_0x2fa2f7(0x1d2),_0x2fa2f7(0x1b3),_0x2fa2f7(0x1d7)]),RetryConfigSchema=z['object']({'count':z['number']()[_0x2fa2f7(0x1e9)]()[_0x2fa2f7(0x1c7)](0x0)[_0x2fa2f7(0x1f0)](0xa),'on':z[_0x2fa2f7(0x1d8)](RetryReasonSchema)}),FailureBundleConfigSchema=z[_0x2fa2f7(0x1d0)]({'tier1':z[_0x2fa2f7(0x1b1)](!![])['default'](!![]),'tier2':z[_0x2fa2f7(0x1f1)](),'tier3':z['object']({'network':z[_0x2fa2f7(0x1f1)](),'video':z[_0x2fa2f7(0x1f1)]()}),'retention':z[_0x2fa2f7(0x1d0)]({'runs':z[_0x2fa2f7(0x1c5)]()['int']()[_0x2fa2f7(0x1c8)](),'days':z[_0x2fa2f7(0x1c5)]()[_0x2fa2f7(0x1e9)]()[_0x2fa2f7(0x1c8)]()}),'storageDir':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1c7)](0x1)}),DialogPolicySchema=z[_0x2fa2f7(0x1cf)](['accept',_0x2fa2f7(0x1bc),_0x2fa2f7(0x1bf)]),LinterRuleIdSchema=z[_0x2fa2f7(0x1cf)](['lint:deep-css','lint:xpath','lint:obfuscated-class',_0x2fa2f7(0x1e7),_0x2fa2f7(0x1ba),_0x2fa2f7(0x1b4),_0x2fa2f7(0x1b7),_0x2fa2f7(0x1ef),'lint:goto-concat',_0x2fa2f7(0x1e6),_0x2fa2f7(0x1ed),_0x2fa2f7(0x1eb),'lint:lint-ok-missing-reason',_0x2fa2f7(0x1c1),_0x2fa2f7(0x1c0),'lint:external-variable-undeclared',_0x2fa2f7(0x1be),_0x2fa2f7(0x1b5),'validator:arity',_0x2fa2f7(0x1ca),_0x2fa2f7(0x1e2),_0x2fa2f7(0x1d1),_0x2fa2f7(0x1dd),_0x2fa2f7(0x1b6),_0x2fa2f7(0x1d9),'validator:if-shape',_0x2fa2f7(0x1e5),_0x2fa2f7(0x1ea),_0x2fa2f7(0x1b9),'validator:string-concat',_0x2fa2f7(0x1e1),_0x2fa2f7(0x1cb),_0x2fa2f7(0x1da)]),LinterSeveritySchema=z[_0x2fa2f7(0x1cf)]([_0x2fa2f7(0x1de),_0x2fa2f7(0x1e8),'error']),LinterConfigSchema=z['object']({'enabled':z['boolean'](),'rules':z[_0x2fa2f7(0x1e4)](LinterRuleIdSchema,LinterSeveritySchema)}),QueueConfigSchema=z[_0x2fa2f7(0x1d0)]({'enabled':z[_0x2fa2f7(0x1f1)]()[_0x2fa2f7(0x1bb)](!![]),'concurrency':z[_0x2fa2f7(0x1c5)]()[_0x2fa2f7(0x1e9)]()['positive']()[_0x2fa2f7(0x1bb)](0x1)}),ScheduleSchema=z[_0x2fa2f7(0x1d0)]({'collection':z[_0x2fa2f7(0x1db)]()['min'](0x1),'cron':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1c7)](0x1),'env':z['string']()[_0x2fa2f7(0x1c7)](0x1)[_0x2fa2f7(0x1d3)](),'prepare':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1c7)](0x1)[_0x2fa2f7(0x1d3)]()}),McpConfigSchema=z[_0x2fa2f7(0x1d0)]({'transport':z[_0x2fa2f7(0x1b1)](_0x2fa2f7(0x1c2))}),SandboxConfigSchema=z[_0x2fa2f7(0x1d0)]({'shellCwd':z[_0x2fa2f7(0x1db)]()['optional'](),'shellTimeoutMs':z[_0x2fa2f7(0x1c5)]()['int']()['positive']()[_0x2fa2f7(0x1d3)](),'exportSecrets':z['array'](z[_0x2fa2f7(0x1db)]())[_0x2fa2f7(0x1d3)](),'database':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1d3)](),'apiBaseUrl':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1e3)]()[_0x2fa2f7(0x1d3)](),'uploadDir':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1d3)]()}),WebServerConfigSchema=z[_0x2fa2f7(0x1d0)]({'command':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1c7)](0x1),'url':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1e3)](),'reuseExistingServer':z['boolean']()[_0x2fa2f7(0x1bb)](!![]),'timeoutMs':z[_0x2fa2f7(0x1c5)]()['int']()[_0x2fa2f7(0x1c8)]()['default'](0xea60)}),UnotestConfigSchema=z[_0x2fa2f7(0x1d0)]({'baseUrl':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1e3)]()[_0x2fa2f7(0x1d3)](),'webServer':WebServerConfigSchema[_0x2fa2f7(0x1d3)](),'browsers':z['array'](BrowserSchema)[_0x2fa2f7(0x1c7)](0x1),'channel':BrowserChannelSchema,'viewport':ViewportSchema,'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1d3)](),'testDir':z[_0x2fa2f7(0x1db)]()['min'](0x1),'helpersDir':z[_0x2fa2f7(0x1db)]()['min'](0x1),'defaultTimeoutMs':z[_0x2fa2f7(0x1c5)]()[_0x2fa2f7(0x1e9)]()[_0x2fa2f7(0x1c8)](),'defaultNavigationTimeoutMs':z[_0x2fa2f7(0x1c5)]()['int']()[_0x2fa2f7(0x1c8)](),'linter':LinterConfigSchema,'mcp':McpConfigSchema,'queue':QueueConfigSchema,'schedules':z['array'](ScheduleSchema)[_0x2fa2f7(0x1bb)]([]),'sandbox':SandboxConfigSchema}),DEFAULT_CONFIG={'browsers':[_0x2fa2f7(0x1ce)],'viewport':{'width':0x500,'height':0x2d0},'retry':{'count':0x0,'on':['transient']},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':_0x2fa2f7(0x1df)},'dialogPolicy':'accept','testDir':_0x2fa2f7(0x1cc),'helpersDir':'unotest/e2e/_helpers','defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x7530,'linter':{'enabled':!![],'rules':{'lint:deep-css':_0x2fa2f7(0x1e8),'lint:xpath':_0x2fa2f7(0x1e8),'lint:obfuscated-class':_0x2fa2f7(0x1e8),'lint:pause-explicit':'warn','lint:disambig-by-index':_0x2fa2f7(0x1de),'lint:evaluate-discouraged':_0x2fa2f7(0x1e8),'lint:scenario-in-root':'error','lint:mustache-in-dsl':_0x2fa2f7(0x1c3),'lint:goto-concat':'warn','lint:regex-invalid':_0x2fa2f7(0x1c3),'lint:echo-assert':_0x2fa2f7(0x1e8),'lint:lint-ok-missing-reason':_0x2fa2f7(0x1e8),'lint:flow-returns-value':'warn','lint:legacy-layout':_0x2fa2f7(0x1e8),'lint:external-variable-undeclared':_0x2fa2f7(0x1c3),'lint:one-test-per-file':_0x2fa2f7(0x1e8),'validator:unknown-function':_0x2fa2f7(0x1c3)}},'mcp':{'transport':_0x2fa2f7(0x1c2)},'queue':{'enabled':!![],'concurrency':0x1},'schedules':[],'sandbox':{}};export{BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,QueueConfigSchema,RetryConfigSchema,RetryReasonSchema,SandboxConfigSchema,ScheduleSchema,UnotestConfigSchema,ViewportSchema,WebServerConfigSchema};
1
+ var _0x5c7c04=_0x4207;function _0x4207(_0x454c75,_0x3095d){_0x454c75=_0x454c75-0x1c8;var _0x209034=_0x2090();var _0x4207cc=_0x209034[_0x454c75];if(_0x4207['jGFbYf']===undefined){var _0x285a29=function(_0x107f7c){var _0x41d0e6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x31c002='',_0x1a95c4='';for(var _0xcd9d04=0x0,_0x2d772f,_0x174409,_0x55caf9=0x0;_0x174409=_0x107f7c['charAt'](_0x55caf9++);~_0x174409&&(_0x2d772f=_0xcd9d04%0x4?_0x2d772f*0x40+_0x174409:_0x174409,_0xcd9d04++%0x4)?_0x31c002+=String['fromCharCode'](0xff&_0x2d772f>>(-0x2*_0xcd9d04&0x6)):0x0){_0x174409=_0x41d0e6['indexOf'](_0x174409);}for(var _0x33f5ed=0x0,_0x242f97=_0x31c002['length'];_0x33f5ed<_0x242f97;_0x33f5ed++){_0x1a95c4+='%'+('00'+_0x31c002['charCodeAt'](_0x33f5ed)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1a95c4);};_0x4207['hnsyHs']=_0x285a29,_0x4207['QiBXrc']={},_0x4207['jGFbYf']=!![];}var _0x1f2f13=_0x209034[0x0],_0x3909aa=_0x454c75+_0x1f2f13,_0x377df3=_0x4207['QiBXrc'][_0x3909aa];return!_0x377df3?(_0x4207cc=_0x4207['hnsyHs'](_0x4207cc),_0x4207['QiBXrc'][_0x3909aa]=_0x4207cc):_0x4207cc=_0x377df3,_0x4207cc;}(function(_0x1338cc,_0x57a561){var _0x56fe2a={_0x5f1e29:0x200,_0x39d1d6:0x201,_0x39bc8a:0x1fe,_0x4f4f9f:0x1cf,_0xf3ea23:0x204},_0x47e60e=_0x4207,_0x56db90=_0x1338cc();while(!![]){try{var _0x4fed80=-parseInt(_0x47e60e(_0x56fe2a._0x5f1e29))/0x1+-parseInt(_0x47e60e(0x1e1))/0x2+-parseInt(_0x47e60e(0x1c8))/0x3+-parseInt(_0x47e60e(_0x56fe2a._0x39d1d6))/0x4*(parseInt(_0x47e60e(0x1d3))/0x5)+-parseInt(_0x47e60e(_0x56fe2a._0x39bc8a))/0x6+parseInt(_0x47e60e(0x1fa))/0x7+parseInt(_0x47e60e(_0x56fe2a._0x4f4f9f))/0x8*(parseInt(_0x47e60e(_0x56fe2a._0xf3ea23))/0x9);if(_0x4fed80===_0x57a561)break;else _0x56db90['push'](_0x56db90['shift']());}catch(_0x1e953f){_0x56db90['push'](_0x56db90['shift']());}}}(_0x2090,0x8b071));import{z}from'zod';function _0x2090(){var _0x306270=['Dw5PB24','zw51Bq','zxjYB3i','D2vIA2L0','mtu5mJK3ugnsq1PN','Dw5VDgvZDc9LmMu','y2HYB21PDw0','DMfSAwrHDg9YoMLMlxnOyxbL','DhjHBNnPzw50','Cg9ZAxrPDMu','BgLUDdPYzwDLEc1PBNzHBgLK','mJC2mdK4mdHVsgLksuO','y3jHC2G','B3b0Aw9UywW','BMv0D29YAW','mZq4nxDKB25vCa','BgLUDdPKAxnHBwjPzY1IEs1PBMrLEa','BgLUDdPSAw50lw9Rlw1PC3nPBMCTCMvHC29U','BgLUDdPHCgKTy2fSBc1MAwXLlwjVzhK','C3rKAw8','DMfSAwrHDg9YoMzVCI1ZAgfWzq','DMfSAwrHDg9YoNzHCI1ZAgfWzq','yxjYyxK','BgLUDdPVBMuTDgvZDc1WzxiTzMLSzq','DMfSAwrHDg9YoMz1BMn0Aw9UlxnOyxbL','BwLU','D2fYBG','zgvMyxvSDa','yM9VBgvHBG','mty2ndm0ngrPEeXbta','BNvTyMvY','zMLYzwzVEa','DMfSAwrHDg9YoNDYyxbWzwqTzM9YBwf0','B2jQzwn0','BgL0zxjHBa','BgLUDdPWyxvZzs1LEhbSAwnPDa','DMfSAwrHDg9YoMfYzY1RAw5K','ywnJzxb0','C3rYAw5N','BNvSBa','B2zM','DMfSAwrHDg9YoNvUA25VD24TzNvUy3rPB24','BgLUDdPZy2vUyxjPBY1PBI1YB290','BgLUDdPLEhrLCM5HBc12yxjPywjSzs11BMrLy2XHCMvK','DMfSAwrHDg9YoNn0zxaTC2HHCgu','CMvJB3jK','DMfSAwrHDg9YoM1LDgeTC2HHCgu','BgLUDdP4Cgf0Aa','BgLUDdPLDMfSDwf0zs1KAxnJB3vYywDLza','Aw50','lNvUB3rLC3qVzMfPBhvYzxm','y2HYB21LlwjLDge','zgLZBwLZCW','BgLUDdPNB3rVlwnVBMnHDa','nZe0mZuWrfb5zLrk','Bwf4','BxnLzgDL','BgLUDdPVyMz1C2nHDgvKlwnSyxnZ','nJa2nJm0ofD2qvD6yq','BgLUDdPKzwvWlwnZCW','nta0mtaXC3b0De9l','mZm0ofHRseThvq','BgLUDdPLy2HVlwfZC2vYDa','DxjS','ouDjDhnezW','DMfSAwrHDg9YoNn0zxaTy292zxjHz2u'];_0x2090=function(){return _0x306270;};return _0x2090();}var BrowserSchema=z['enum']([_0x5c7c04(0x1ca),_0x5c7c04(0x1e3),_0x5c7c04(0x209)]),BrowserChannelSchema=z[_0x5c7c04(0x206)]([z[_0x5c7c04(0x1e6)]('chrome'),z[_0x5c7c04(0x1e6)](_0x5c7c04(0x1fc)),z['literal'](_0x5c7c04(0x1f7)),z[_0x5c7c04(0x1eb)]()])[_0x5c7c04(0x1d1)](),ViewportSchema=z[_0x5c7c04(0x1e5)]({'width':z[_0x5c7c04(0x1e2)]()[_0x5c7c04(0x1f5)]()[_0x5c7c04(0x1cd)](),'height':z[_0x5c7c04(0x1e2)]()['int']()[_0x5c7c04(0x1cd)]()}),RetryReasonSchema=z[_0x5c7c04(0x207)]([_0x5c7c04(0x1cc),_0x5c7c04(0x1d2),_0x5c7c04(0x1d0)]),RetryConfigSchema=z[_0x5c7c04(0x1e5)]({'count':z[_0x5c7c04(0x1e2)]()[_0x5c7c04(0x1f5)]()['min'](0x0)[_0x5c7c04(0x1fb)](0xa),'on':z[_0x5c7c04(0x1da)](RetryReasonSchema)}),FailureBundleConfigSchema=z[_0x5c7c04(0x1e5)]({'tier1':z['literal'](!![])['default'](!![]),'tier2':z[_0x5c7c04(0x1e0)](),'tier3':z['object']({'network':z[_0x5c7c04(0x1e0)](),'video':z[_0x5c7c04(0x1e0)]()}),'retention':z[_0x5c7c04(0x1e5)]({'runs':z['number']()[_0x5c7c04(0x1f5)]()[_0x5c7c04(0x1cd)](),'days':z[_0x5c7c04(0x1e2)]()[_0x5c7c04(0x1f5)]()['positive']()}),'storageDir':z[_0x5c7c04(0x1ea)]()[_0x5c7c04(0x1dd)](0x1)}),DialogPolicySchema=z[_0x5c7c04(0x207)]([_0x5c7c04(0x1e9),_0x5c7c04(0x1f8),'manual']),LinterRuleIdSchema=z['enum']([_0x5c7c04(0x1ff),_0x5c7c04(0x1f3),_0x5c7c04(0x1fd),_0x5c7c04(0x1e7),_0x5c7c04(0x1d4),_0x5c7c04(0x1f4),_0x5c7c04(0x1ee),'lint:mustache-in-dsl',_0x5c7c04(0x1f9),_0x5c7c04(0x1ce),_0x5c7c04(0x202),_0x5c7c04(0x1d6),_0x5c7c04(0x1d5),'lint:flow-returns-value','lint:legacy-layout',_0x5c7c04(0x1ef),_0x5c7c04(0x1db),_0x5c7c04(0x1ed),'validator:arity',_0x5c7c04(0x1e8),_0x5c7c04(0x205),_0x5c7c04(0x1f0),_0x5c7c04(0x1f2),_0x5c7c04(0x1dc),_0x5c7c04(0x1d8),_0x5c7c04(0x1cb),_0x5c7c04(0x1d9),'validator:unsupported-statement','validator:unsupported-expression','validator:string-concat','validator:semantic-loss','validator:list-arg',_0x5c7c04(0x1e4)]),LinterSeveritySchema=z[_0x5c7c04(0x207)](['off','warn',_0x5c7c04(0x208)]),LinterConfigSchema=z[_0x5c7c04(0x1e5)]({'enabled':z[_0x5c7c04(0x1e0)](),'rules':z[_0x5c7c04(0x1f1)](LinterRuleIdSchema,LinterSeveritySchema)}),QueueConfigSchema=z[_0x5c7c04(0x1e5)]({'enabled':z[_0x5c7c04(0x1e0)]()[_0x5c7c04(0x1df)](!![]),'concurrency':z[_0x5c7c04(0x1e2)]()[_0x5c7c04(0x1f5)]()[_0x5c7c04(0x1cd)]()[_0x5c7c04(0x1df)](0x1)}),ScheduleSchema=z['object']({'collection':z[_0x5c7c04(0x1ea)]()[_0x5c7c04(0x1dd)](0x1),'cron':z[_0x5c7c04(0x1ea)]()[_0x5c7c04(0x1dd)](0x1),'env':z[_0x5c7c04(0x1ea)]()[_0x5c7c04(0x1dd)](0x1)[_0x5c7c04(0x1d1)](),'prepare':z[_0x5c7c04(0x1ea)]()[_0x5c7c04(0x1dd)](0x1)[_0x5c7c04(0x1d1)]()}),McpConfigSchema=z[_0x5c7c04(0x1e5)]({'transport':z[_0x5c7c04(0x1e6)](_0x5c7c04(0x1d7))}),SandboxConfigSchema=z['object']({'shellCwd':z[_0x5c7c04(0x1ea)]()[_0x5c7c04(0x1d1)](),'shellTimeoutMs':z[_0x5c7c04(0x1e2)]()['int']()[_0x5c7c04(0x1cd)]()[_0x5c7c04(0x1d1)](),'exportSecrets':z['array'](z[_0x5c7c04(0x1ea)]())['optional'](),'database':z[_0x5c7c04(0x1ea)]()['optional'](),'apiBaseUrl':z['string']()[_0x5c7c04(0x203)]()[_0x5c7c04(0x1d1)](),'uploadDir':z['string']()['optional']()}),WebServerConfigSchema=z[_0x5c7c04(0x1e5)]({'command':z[_0x5c7c04(0x1ea)]()['min'](0x1),'url':z['string']()[_0x5c7c04(0x203)](),'reuseExistingServer':z[_0x5c7c04(0x1e0)]()[_0x5c7c04(0x1df)](!![]),'timeoutMs':z['number']()[_0x5c7c04(0x1f5)]()[_0x5c7c04(0x1cd)]()['default'](0xea60)}),UnotestConfigSchema=z['object']({'baseUrl':z[_0x5c7c04(0x1ea)]()['url']()['optional'](),'webServer':WebServerConfigSchema[_0x5c7c04(0x1d1)](),'browsers':z['array'](BrowserSchema)[_0x5c7c04(0x1dd)](0x1),'channel':BrowserChannelSchema,'viewport':ViewportSchema,'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':z[_0x5c7c04(0x1ea)]()[_0x5c7c04(0x1d1)](),'testDir':z[_0x5c7c04(0x1ea)]()[_0x5c7c04(0x1dd)](0x1),'helpersDir':z[_0x5c7c04(0x1ea)]()['min'](0x1),'defaultTimeoutMs':z[_0x5c7c04(0x1e2)]()[_0x5c7c04(0x1f5)]()[_0x5c7c04(0x1cd)](),'defaultNavigationTimeoutMs':z['number']()[_0x5c7c04(0x1f5)]()[_0x5c7c04(0x1cd)](),'linter':LinterConfigSchema,'mcp':McpConfigSchema,'queue':QueueConfigSchema,'schedules':z[_0x5c7c04(0x1da)](ScheduleSchema)['default']([]),'sandbox':SandboxConfigSchema}),DEFAULT_CONFIG={'browsers':[_0x5c7c04(0x1ca)],'viewport':{'width':0x500,'height':0x2d0},'retry':{'count':0x0,'on':[_0x5c7c04(0x1cc)]},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':_0x5c7c04(0x1f6)},'dialogPolicy':_0x5c7c04(0x1e9),'testDir':_0x5c7c04(0x1c9),'helpersDir':'unotest/e2e/_helpers','defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x7530,'linter':{'enabled':!![],'rules':{'lint:deep-css':_0x5c7c04(0x1de),'lint:xpath':'warn','lint:obfuscated-class':'warn','lint:pause-explicit':_0x5c7c04(0x1de),'lint:disambig-by-index':_0x5c7c04(0x1ec),'lint:evaluate-discouraged':_0x5c7c04(0x1de),'lint:scenario-in-root':_0x5c7c04(0x208),'lint:mustache-in-dsl':'error','lint:goto-concat':'warn','lint:regex-invalid':_0x5c7c04(0x208),'lint:echo-assert':'warn','lint:lint-ok-missing-reason':_0x5c7c04(0x1de),'lint:flow-returns-value':_0x5c7c04(0x1de),'lint:legacy-layout':_0x5c7c04(0x1de),'lint:external-variable-undeclared':_0x5c7c04(0x208),'lint:one-test-per-file':_0x5c7c04(0x1de),'validator:unknown-function':'error'}},'mcp':{'transport':'stdio'},'queue':{'enabled':!![],'concurrency':0x1},'schedules':[],'sandbox':{}};export{BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,QueueConfigSchema,RetryConfigSchema,RetryReasonSchema,SandboxConfigSchema,ScheduleSchema,UnotestConfigSchema,ViewportSchema,WebServerConfigSchema};
@@ -1 +1 @@
1
- const _0xeb371e=_0xb3c4;(function(_0x391074,_0x3b2f50){const _0x297e7b={_0x20e96c:0xc6,_0xed9668:0xd9,_0xa00b34:0xe4},_0x33b337=_0xb3c4,_0x4116e6=_0x391074();while(!![]){try{const _0x378cda=parseInt(_0x33b337(_0x297e7b._0x20e96c))/0x1*(-parseInt(_0x33b337(0xc1))/0x2)+parseInt(_0x33b337(_0x297e7b._0xed9668))/0x3+parseInt(_0x33b337(0x82))/0x4*(parseInt(_0x33b337(0xa2))/0x5)+-parseInt(_0x33b337(0x92))/0x6*(parseInt(_0x33b337(0x95))/0x7)+-parseInt(_0x33b337(0xa9))/0x8+-parseInt(_0x33b337(_0x297e7b._0xa00b34))/0x9+-parseInt(_0x33b337(0x8d))/0xa*(-parseInt(_0x33b337(0xc0))/0xb);if(_0x378cda===_0x3b2f50)break;else _0x4116e6['push'](_0x4116e6['shift']());}catch(_0x9a0051){_0x4116e6['push'](_0x4116e6['shift']());}}}(_0x291e,0x91a28));var __defProp=Object['defineProperty'],__name=(_0x33690d,_0x5212f9)=>__defProp(_0x33690d,'name',{'value':_0x5212f9,'configurable':!![]});function _0xb3c4(_0x172257,_0x34afe6){_0x172257=_0x172257-0x6f;const _0x291e59=_0x291e();let _0xb3c46c=_0x291e59[_0x172257];if(_0xb3c4['Lggrra']===undefined){var _0x4c22a9=function(_0x3c0f79){const _0x3759f3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x33690d='',_0x5212f9='';for(let _0x18dd39=0x0,_0x48bc86,_0x3fee35,_0x482524=0x0;_0x3fee35=_0x3c0f79['charAt'](_0x482524++);~_0x3fee35&&(_0x48bc86=_0x18dd39%0x4?_0x48bc86*0x40+_0x3fee35:_0x3fee35,_0x18dd39++%0x4)?_0x33690d+=String['fromCharCode'](0xff&_0x48bc86>>(-0x2*_0x18dd39&0x6)):0x0){_0x3fee35=_0x3759f3['indexOf'](_0x3fee35);}for(let _0x5a5786=0x0,_0x48f7a2=_0x33690d['length'];_0x5a5786<_0x48f7a2;_0x5a5786++){_0x5212f9+='%'+('00'+_0x33690d['charCodeAt'](_0x5a5786)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5212f9);};_0xb3c4['CQLqGn']=_0x4c22a9,_0xb3c4['HewBEB']={},_0xb3c4['Lggrra']=!![];}const _0x8f7ef6=_0x291e59[0x0],_0x4d5b7c=_0x172257+_0x8f7ef6,_0x1d12a1=_0xb3c4['HewBEB'][_0x4d5b7c];return!_0x1d12a1?(_0xb3c46c=_0xb3c4['CQLqGn'](_0xb3c46c),_0xb3c4['HewBEB'][_0x4d5b7c]=_0xb3c46c):_0xb3c46c=_0x1d12a1,_0xb3c46c;}function subscribe(_0x18dd39,_0x48bc86){const _0x1c6392={_0xa501bb:0x93},_0x35b88d=_0xb3c4;return _0x18dd39[_0x35b88d(0x83)](_0x48bc86),()=>{const _0x19a220=_0x35b88d;_0x18dd39[_0x19a220(_0x1c6392._0xa501bb)](_0x48bc86);};}__name(subscribe,'subscribe');function _0x291e(){const _0x38c7c4=['y29VA2LLCW','D2fPDezVCK5HDMLNyxrPB24','Cg9WDxbpBKnSAwnR','C3rLChm','rMfRzvDLyKrYAxzLCG','BM8Gywn0AxzLihbHz2uGAw4Gy29UDgv4Da','z29cywnR','D3nfBMrWB2LUDa','ChjLC3m','mJr0BuHMDwS','ywrK','D2fPDezVCKXVywrtDgf0zq','Aw5WDxrwywX1zuj5rgvMyxvSDa','AxnwAxnPyMXL','y2fSBhngB3i','y3r4','C2nVCgu','zwXLBwvUDeHPBNrcEvjLzG','ywn0AxzLugfNzq','zNjVBq','ndK3mZbvtuvHzvK','y29UBMvJDfnOyxjLza','yMvOyxzPB3i','rMfRzunVBNrLEhq','ywn0AxzLswr4','ntq2y1bhtvvK','zgvSzxrL','BMv3q29UDgv4DcbJywXSzwqGyMvMB3jLigXHDw5JAcGP','mZqYnZLuqKDLDuS','pgrPDJ48l2rPDJ4','y2XVC2u','y29VA2LLu3rHDgu','C2vSzwn0t3b0Aw9U','rhjPDMvYrxjYB3i','A2LUza','Aw5PDgLHBfvYBa','yxr0CMLIDxrLC0j5rgvMyxvSDa','y29UC29SzuvUDhjPzxm','yxr0ywnOrxHPC3rPBMCGBM90ihn1ChbVCNrLzcbIEsbgywTLv2vIrhjPDMvY','Bg9JywXtDg9YywDL','CMvM','mJeWmtG1BuHpBuTn','y29UBMvJDfnOyxjLzcbUB3qGC3vWCg9YDgvKigj5iezHA2vxzwjeCML2zxi','y2fSBhm','y3vYCMvUDfvYBa','iJ48l2rPDJ4','DxbSB2fKrMLSzq','D2fPDezVCG','mJu4oda4sgrHzKLc','CMvJB3jK','y3jLyxrLuMvJB3jKzxi','C2nYzwvUC2HVDa','BMv3ugfNzuXPC3rLBMvYCW','zw50zxjgCMfTzsbJywXSzwqGD2L0AcbLBxb0EsbSB2nHDg9Y','ChvZAa','Bwv0Ag9K','y2HLy2S','C2nYzwvUC2HVDevSzw1LBNq','zxzHBhvHDgvpBKXVy2f0B3i','C2v0qwn0AxzLugfNzq','z2v0q29VA2LL','Bgf1BMnO','B3v0zxjive1m','zxzHBhvHDgu','zMfRzs1WBMC','z2v0qxr0CMLIDxrL','B25bzNrLCKnSAwnR','Aw5WDxrwywX1zq','Aw5UzxjuzxH0qNLezwzHDwX0','CMvJB3jKzxi','Dgv4DenVBNrLBNq','ndGYowX1s0zXqq','mZaWmJjzC1v4wLu','zw50zxjgCMfTzq','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','zMfRzsb0AxrSzq','y2XPy2S','nJb3uKLRyvq','zhjHz0fUzerYB3a','DhLWzq','Bg9JywXtDg9YywDLu3rHDgu','BMv3q29UDgv4Da','zg91yMXLq2XPy2S','Ag92zxi','CMvSB2fK','BMv0D29YA0vUDhjPzxm','CgfNzuXPC3q','zxHPDezYyw1L','y2XVC2vgywTLugfNzq','Bwf5yMvuAhjVDW','Aw5ZCgvJDevSzw1LBNq','zhjPDMvY','CgfNzsbPBMrLEcbVDxqGB2yGCMfUz2u','lNbHz2u','Dgv4DenVBNrLBNrcEurLzMf1Bhq','C2nYB2XSsw50B1zPzxC','nJq5nZu1sffbrNbj','zNjHBwvtDgfJAW','C2v0tg9JywXtDg9YywDL','C3bSAwnL','AxneAxnHyMXLza','y291BNq','C2nYzwvUC2HVDej5DgvZ','ywjVDxq6yMXHBMS','Cg9W','BgvUz3rO','zMLSDgvY','nJa5mte2nhrWuNrSzG','C2f2zvn0B3jHz2vtDgf0zq','rMfRzvbHz2u','pgrPDIbKyxrHlxvUB3rLC3qTCMvMpsi','yxr0ywnOrxHPC3rPBMC','zw1PDezHA2vqB3b1Ca','AxneAxnHyMXLzej5rgvMyxvSDa','y2XPCgjVyxjKugfZDgu','Bgf1BMnOzwq','D2fPDezVCLrLEhq','zxjYB3jpBK5LEhrby3rPB24','Dw5JAgvJAW','Aw5UzxjuzxH0','z2v0tg9JywXtDg9YywDL','y2HLy2TLzfn0yxrLqNLezwzHDwX0','y29UDgv4Dhm','z29gB3j3yxjK'];_0x291e=function(){return _0x38c7c4;};return _0x291e();}import{UnotestError}from'@unotest/core';var DriverError=class extends UnotestError{static{__name(this,_0xeb371e(0x9a));}},LocatorError=class extends UnotestError{static{__name(this,'LocatorError');}};function createRecorder(){const _0x5a5b7c={_0x1241bf:0xaf},_0x9a35c2=_0xeb371e,_0x3fee35=[];let _0x482524=0x0;return{'push':__name(_0x5a5786=>_0x3fee35[_0x9a35c2(0xaf)]({..._0x5a5786,'seq':_0x482524++}),_0x9a35c2(_0x5a5b7c._0x1241bf)),'calls':__name(()=>_0x3fee35,_0x9a35c2(0xa4))};}__name(createRecorder,_0xeb371e(0xab));var FakePage=class{constructor(_0x48f7a2,_0x5d0fe5,_0xa4e6e5,_0x1a5a37){const _0x35d47c={_0x92e137:0xbe},_0x263e56=_0xeb371e;this[_0x263e56(_0x35d47c._0x92e137)]=_0x48f7a2,this[_0x263e56(0x8f)]=_0x5d0fe5,this[_0x263e56(0x89)]=_0xa4e6e5,this['currentUrl']=_0x1a5a37;}['recorder'];[_0xeb371e(0x8f)];['scope'];static{__name(this,_0xeb371e(0xe6));}['currentUrl'];[_0xeb371e(0xbb)];[_0xeb371e(0xaa)](_0x18f44c,_0x1505ea){const _0x2a59fc={_0x3cf297:0x89},_0x1e3458=_0xeb371e;this[_0x1e3458(0xbe)][_0x1e3458(0xaf)]({'scope':this[_0x1e3458(_0x2a59fc._0x3cf297)],'method':_0x18f44c,'args':_0x1505ea});}[_0xeb371e(0xd2)](){const _0x4cab15={_0x565260:0x8f,_0x8c58d5:0x72,_0x3f8a59:0x8f},_0x449e9c=_0xeb371e;if(this[_0x449e9c(_0x4cab15._0x565260)][_0x449e9c(_0x4cab15._0x8c58d5)]){const _0x3ba61d=this[_0x449e9c(_0x4cab15._0x3f8a59)]['errorOnNextAction'];this['behavior'][_0x449e9c(_0x4cab15._0x8c58d5)]=void 0x0;throw _0x3ba61d;}}['url'](){const _0x455a58={_0x3f2d48:0xa5},_0x47572a=_0xeb371e;return this[_0x47572a(_0x455a58._0x3f2d48)];}async['title'](){const _0x7bd92b=_0xeb371e;return this['record']('title',[]),_0x7bd92b(0xc4);}async[_0xeb371e(0xc5)](_0x3cb7e9,_0x37e85d){const _0x19527d={_0x46d339:0xaa},_0x14e271=_0xeb371e;this[_0x14e271(_0x19527d._0x46d339)](_0x14e271(0xc5),[_0x3cb7e9,_0x37e85d]),this[_0x14e271(0xd2)](),this['onAfterClick']?.();}async[_0xeb371e(0xcb)](_0x5ba6c4,_0x21a901){const _0x1f059d={_0x6ff9d6:0xcb},_0x246c0e=_0xeb371e;this['record'](_0x246c0e(_0x1f059d._0x6ff9d6),[_0x5ba6c4,_0x21a901]),this['maybeThrow']();}async['fill'](_0x94970,_0x14ef52,_0x1b05f2){const _0xce030f=_0xeb371e;this['record']('fill',[_0x94970,_0x14ef52,_0x1b05f2]),this[_0xce030f(0xd2)]();}async[_0xeb371e(0x81)](_0x45484c,_0xaba670,_0x5cc686){const _0x1f1c55={_0x40ef5c:0xaa,_0x2b65ea:0x81},_0x311d44=_0xeb371e;this[_0x311d44(_0x1f1c55._0x40ef5c)](_0x311d44(_0x1f1c55._0x2b65ea),[_0x45484c,_0xaba670,_0x5cc686]),this[_0x311d44(0xd2)]();}async[_0xeb371e(0xb1)](_0x5916b4,_0x34f874){const _0x39c3d3={_0x549dae:0xaa,_0x3d9581:0xb1},_0xc60765=_0xeb371e;this[_0xc60765(_0x39c3d3._0x549dae)](_0xc60765(_0x39c3d3._0x3d9581),[_0x5916b4,_0x34f874]),this['maybeThrow']();}async[_0xeb371e(0x73)](_0x22c30b,_0x5f43cf){const _0x49401c={_0x4fb9db:0x73},_0x5abb75=_0xeb371e;this['record'](_0x5abb75(_0x49401c._0x4fb9db),[_0x22c30b,_0x5f43cf]),this[_0x5abb75(0xd2)]();}async['selectOption'](_0x3fd549,_0x1dd747,_0x357d41){const _0x5c9c06={_0x36b268:0xd2},_0x2e17fc=_0xeb371e;this['record'](_0x2e17fc(0x99),[_0x3fd549,_0x1dd747,_0x357d41]),this[_0x2e17fc(_0x5c9c06._0x36b268)]();}async['hover'](_0x531ee8,_0x24bc30){const _0x1d2de8={_0x315c46:0xaa},_0x57ffa1=_0xeb371e;this[_0x57ffa1(_0x1d2de8._0x315c46)](_0x57ffa1(0xcc),[_0x531ee8,_0x24bc30]),this['maybeThrow']();}async['scrollIntoView'](_0x33d06e){const _0x48f507={_0x33acca:0xaa,_0x4275bb:0xd2},_0x3f1159=_0xeb371e;this[_0x3f1159(_0x48f507._0x33acca)](_0x3f1159(0xd8),[_0x33d06e]),this[_0x3f1159(_0x48f507._0x4275bb)]();}async[_0xeb371e(0xc7)](_0x17f1ea,_0x27ceb0,_0xc31a8b){const _0x55f913={_0x115d1f:0xaa,_0x5a7a7c:0xc7},_0x2471ab=_0xeb371e;this[_0x2471ab(_0x55f913._0x115d1f)](_0x2471ab(_0x55f913._0x5a7a7c),[_0x17f1ea,_0x27ceb0,_0xc31a8b]),this[_0x2471ab(0xd2)]();}async['uploadFile'](_0x3c8f55,_0x14bad0){const _0x3f9dbd={_0x268d8e:0xd2},_0x32208b=_0xeb371e;this[_0x32208b(0xaa)](_0x32208b(0xa7),[_0x3c8f55,_0x14bad0]),this[_0x32208b(_0x3f9dbd._0x268d8e)]();}async[_0xeb371e(0x6f)](_0x1e886e,_0x3860c2){const _0x70374f={_0x10e7e1:0x6f},_0x9ffcac=_0xeb371e;this['record'](_0x9ffcac(_0x70374f._0x10e7e1),[_0x1e886e,_0x3860c2]),this[_0x9ffcac(0xd2)]();}async[_0xeb371e(0xde)](_0x39c1e5){const _0x1f09c0={_0x5a50db:0xaa,_0x4889b1:0x8f},_0x79d00c=_0xeb371e;return this[_0x79d00c(_0x1f09c0._0x5a50db)](_0x79d00c(0xde),[_0x39c1e5]),this[_0x79d00c(_0x1f09c0._0x4889b1)]['countByDefault']??0x1;}async[_0xeb371e(0xbf)](_0x1cb7f7){const _0x16b2f1={_0x1fd120:0xbf,_0x27f15e:0x8f},_0x5e3f84=_0xeb371e;return this[_0x5e3f84(0xaa)](_0x5e3f84(_0x16b2f1._0x1fd120),[_0x1cb7f7]),this[_0x5e3f84(_0x16b2f1._0x27f15e)]['textContentByDefault']??'';}async[_0xeb371e(0x74)](_0x2db3e0){const _0x1402cf={_0x223a3f:0x74},_0x546184=_0xeb371e;return this['record'](_0x546184(_0x1402cf._0x223a3f),[_0x2db3e0]),this['behavior'][_0x546184(0xbd)]??this[_0x546184(0x8f)][_0x546184(0xd7)]??'';}async[_0xeb371e(0xbc)](_0x8195b3){const _0x5c2fed={_0x237c62:0xbc},_0x579598=_0xeb371e;return this[_0x579598(0xaa)](_0x579598(_0x5c2fed._0x237c62),[_0x8195b3]),this[_0x579598(0x8f)][_0x579598(0x85)]??'';}async['checkedState'](_0x178921){const _0x3f16fe={_0x467fef:0x8f,_0x181460:0x76},_0x566cbe=_0xeb371e;return this['record']('checkedState',[_0x178921]),this[_0x566cbe(_0x3f16fe._0x467fef)][_0x566cbe(_0x3f16fe._0x181460)]??null;}async[_0xeb371e(0x86)](_0x2b3c06){const _0x49a894={_0x588ac3:0x86},_0x3bd8cc=_0xeb371e;return this[_0x3bd8cc(0xaa)](_0x3bd8cc(_0x49a894._0x588ac3),[_0x2b3c06]),this[_0x3bd8cc(0x8f)]['isVisibleByDefault']??!![];}async[_0xeb371e(0xdd)](_0x5d3c86){const _0x21fca2={_0x18a236:0xaa},_0x2f6379=_0xeb371e;return this[_0x2f6379(_0x21fca2._0x18a236)](_0x2f6379(0xdd),[_0x5d3c86]),this['behavior'][_0x2f6379(0xea)]??![];}async['getAttribute'](_0x289b8f,_0x4a7253){const _0x552550={_0x3c3aad:0xaa},_0x401b6=_0xeb371e;return this[_0x401b6(_0x552550._0x3c3aad)](_0x401b6(0xba),[_0x289b8f,_0x4a7253]),this['behavior'][_0x401b6(0x9d)]?.[_0x4a7253]??null;}async['waitFor'](_0x3a3658,_0x1ca9aa){const _0x4584cf={_0x1ffc3b:0xa8},_0x4e034c=_0xeb371e;this[_0x4e034c(0xaa)](_0x4e034c(_0x4584cf._0x1ffc3b),[_0x3a3658,_0x1ca9aa]);}async['waitForUrl'](_0x3e4613,_0x12e43b){this['record']('waitForUrl',[_0x3e4613,_0x12e43b]);}async[_0xeb371e(0x71)](_0x5b39fe,_0x1731a7){const _0x27c885=_0xeb371e;this[_0x27c885(0xaa)]('waitForText',[_0x5b39fe,_0x1731a7]);}async[_0xeb371e(0x7a)](_0x548be4){const _0xf8e2b0={_0x1453d8:0x7a},_0x2f6fc3=_0xeb371e;this['record'](_0x2f6fc3(_0xf8e2b0._0x1453d8),[_0x548be4]);}async[_0xeb371e(0x84)](_0x11a43b,_0x1f9246){const _0x46f419=_0xeb371e;this['record'](_0x46f419(0x84),[_0x11a43b,_0x1f9246]);}async['goto'](_0x5442b4,_0x2c0ab8){const _0x17c272={_0x1600e9:0xaa,_0x15a117:0xa5},_0x50a2f5=_0xeb371e;this[_0x50a2f5(_0x17c272._0x1600e9)]('goto',[_0x5442b4,_0x2c0ab8]),this[_0x50a2f5(_0x17c272._0x15a117)]=_0x5442b4;}async[_0xeb371e(0xcd)](_0x474bc2){const _0x4f6d75=_0xeb371e;this['record'](_0x4f6d75(0xcd),[_0x474bc2]);}async[_0xeb371e(0x7f)](_0x416866){this['record']('goBack',[_0x416866]);}async[_0xeb371e(0x78)](_0x513bec){const _0x566ffe=_0xeb371e;this[_0x566ffe(0xaa)](_0x566ffe(0x78),[_0x513bec]);}async[_0xeb371e(0xb8)](_0x7452ca){const _0x56935b={_0x505c3d:0x8f},_0x1387a5=_0xeb371e;return this[_0x1387a5(0xaa)](_0x1387a5(0xb8),[_0x7452ca]),this[_0x1387a5(_0x56935b._0x505c3d)]['evaluateResult'];}async[_0xeb371e(0xb3)](_0x35d2bc,_0x52a8b3){const _0x141068={_0x12eab7:0xb3},_0x159d67=_0xeb371e;return this['record'](_0x159d67(_0x141068._0x12eab7),[_0x35d2bc,_0x52a8b3]),void 0x0;}async[_0xeb371e(0xd3)](_0x18b4a0){const _0x5ae42f={_0x252690:0x9b,_0x4f1d35:0xa1},_0x10ffca=_0xeb371e;this[_0x10ffca(0xaa)](_0x10ffca(0xd3),[_0x18b4a0]);if(_0x18b4a0['steps'][_0x10ffca(0xe2)]!==0x1||_0x18b4a0['steps'][0x0][_0x10ffca(_0x5ae42f._0x252690)]!==_0x10ffca(0xa1))return null;const _0x164cb3=_0x18b4a0['steps'][0x0][_0x10ffca(_0x5ae42f._0x4f1d35)],_0x14287c=this['behavior'][_0x10ffca(0x8a)]?.[_0x164cb3];return _0x14287c??null;}async[_0xeb371e(0xac)](_0x65b93f){const _0x127da2={_0x2c3b4a:0xac,_0x299656:0xc8},_0xbf5836=_0xeb371e;return this['record'](_0xbf5836(_0x127da2._0x2c3b4a),[_0x65b93f]),this[_0xbf5836(0xdf)](_0x65b93f?.[_0xbf5836(_0x127da2._0x299656)]);}async[_0xeb371e(0xb2)](_0xa976cd,_0xa1dbc8){const _0x1faedd={_0x58a84d:0xaa,_0x443549:0xb2,_0x4360a5:0xc8},_0x273dcd=_0xeb371e;return this[_0x273dcd(_0x1faedd._0x58a84d)](_0x273dcd(_0x1faedd._0x443549),[_0xa976cd,_0xa1dbc8]),this[_0x273dcd(0xdf)](_0xa1dbc8?.[_0x273dcd(_0x1faedd._0x4360a5)]);}['screenshotBytes'](_0x3ae619){const _0xcb565e=_0xeb371e,_0x48ae4f=this[_0xcb565e(0x8f)][_0xcb565e(0xdf)];if(_0x48ae4f===void 0x0)return Buffer[_0xcb565e(0x8c)](_0xcb565e(0xb9));return typeof _0x48ae4f==='function'?_0x48ae4f(_0x3ae619):_0x48ae4f;}async[_0xeb371e(0xb7)](_0x3e4c47){const _0x48ad9c={_0x47b939:0xaa,_0x514620:0xb7,_0x21eac7:0x7c,_0x25586b:0x8f,_0x2cde9a:0xe7,_0x1a4531:0xa6},_0x422b30=_0xeb371e;this[_0x422b30(_0x48ad9c._0x47b939)](_0x422b30(_0x48ad9c._0x514620),[_0x3e4c47]);if(_0x3e4c47[_0x422b30(_0x48ad9c._0x21eac7)]['length']===0x1&&_0x3e4c47[_0x422b30(_0x48ad9c._0x21eac7)][0x0][_0x422b30(0x9b)]===_0x422b30(0xa1)){const _0x4d7260=_0x3e4c47['steps'][0x0][_0x422b30(0xa1)];return this[_0x422b30(_0x48ad9c._0x25586b)]['outerHtmlByRef']?.[_0x4d7260]??_0x422b30(_0x48ad9c._0x2cde9a)+_0x4d7260+_0x422b30(_0x48ad9c._0x1a4531);}return _0x422b30(0x96);}},FakeContext=class{constructor(_0x7b993a,_0x17f830,_0xab0a0c){const _0x439afb={_0x37ed4d:0x9c,_0x157837:0x7b,_0x106f75:0xa0},_0x2927b6={_0x28db08:0xe9,_0x1668f4:0x7b},_0x4c0b35=_0xeb371e;this['recorder']=_0x7b993a,this[_0x4c0b35(0x8f)]=_0x17f830,this[_0x4c0b35(0x89)]=_0xab0a0c;const _0x12ff9e=new FakePage(_0x7b993a,_0x17f830,_0xab0a0c+'.page0',_0x17f830[_0x4c0b35(_0x439afb._0x37ed4d)]??_0x4c0b35(0xe0));_0x17f830[_0x4c0b35(_0x439afb._0x157837)]&&(_0x12ff9e['onAfterClick']=()=>{const _0x5c9815=_0x4c0b35;this[_0x5c9815(_0x2927b6._0x28db08)](_0x17f830[_0x5c9815(_0x2927b6._0x1668f4)]);}),this[_0x4c0b35(0xcf)]=[_0x12ff9e],this[_0x4c0b35(0xc9)]={..._0x17f830[_0x4c0b35(_0x439afb._0x106f75)]??{}},this[_0x4c0b35(0x98)]={..._0x17f830[_0x4c0b35(0x79)]??{}};}['recorder'];[_0xeb371e(0x8f)];[_0xeb371e(0x89)];static{__name(this,_0xeb371e(0x90));}[_0xeb371e(0xcf)];[_0xeb371e(0x91)]=0x0;[_0xeb371e(0xda)]=[];[_0xeb371e(0xc9)];[_0xeb371e(0x98)];['newPageListeners']=new Set();['record'](_0x2b6643,_0x6af09f){const _0x5a2d93={_0x37b648:0x89},_0x53f2d5=_0xeb371e;this[_0x53f2d5(0xbe)][_0x53f2d5(0xaf)]({'scope':this[_0x53f2d5(_0x5a2d93._0x37b648)],'method':_0x2b6643,'args':_0x6af09f});}['pages'](){const _0x4f3839={_0xfe5ea9:0xcf},_0x33c795=_0xeb371e;return this[_0x33c795(_0x4f3839._0xfe5ea9)];}[_0xeb371e(0x8b)](){const _0x3c4633={_0x19e020:0x7e,_0x1e93f8:0x91},_0x1d1a33=_0xeb371e,_0x21a41f=this['pageList'][this['activeIdx']];if(!_0x21a41f)throw new DriverError(_0x1d1a33(_0x3c4633._0x19e020),{'activeIdx':this[_0x1d1a33(_0x3c4633._0x1e93f8)]});return _0x21a41f;}['consoleEntries'](){const _0x3d8221={_0x29fd01:0x8f,_0x1289f9:0x9e},_0x5168a5=_0xeb371e;return this[_0x5168a5(_0x3d8221._0x29fd01)][_0x5168a5(_0x3d8221._0x1289f9)]??[];}[_0xeb371e(0xce)](){const _0x435858={_0xaa8716:0xce},_0x1ba94e=_0xeb371e;return this['behavior'][_0x1ba94e(_0x435858._0xaa8716)]??[];}async[_0xeb371e(0xb4)](_0x31a406){const _0x16c1d8={_0x49edec:0xda},_0x2c0091=_0xeb371e;this[_0x2c0091(0xaa)](_0x2c0091(0xb4),[_0x31a406]);if(_0x31a406<0x0||_0x31a406>=this['pageList'][_0x2c0091(0xe2)])throw new DriverError('page\x20index\x20out\x20of\x20range',{'index':_0x31a406,'available':this[_0x2c0091(0xcf)]['length']});this[_0x2c0091(0x91)]=_0x31a406,this[_0x2c0091(_0x16c1d8._0x49edec)]['length']=0x0;}['onNewPage'](_0x36e159){const _0x3d615a=_0xeb371e;return subscribe(this[_0x3d615a(0xad)],_0x36e159);}['emitFakePopup'](_0x38495b){const _0x2124a3={_0x407c7c:0xe2,_0x494744:0xaf,_0x350269:0xcf},_0x5d7f75=_0xeb371e,_0x29e286=this['scope']+_0x5d7f75(0xd6)+this['pageList'][_0x5d7f75(_0x2124a3._0x407c7c)],_0x2cadab=new FakePage(this[_0x5d7f75(0xbe)],this['behavior'],_0x29e286,_0x38495b);this['pageList'][_0x5d7f75(_0x2124a3._0x494744)](_0x2cadab);const _0x499aa7=this[_0x5d7f75(_0x2124a3._0x350269)]['length']-0x1;for(const _0x16808a of this['newPageListeners']){try{_0x16808a({'index':_0x499aa7,'url':_0x38495b});}catch{}}return _0x499aa7;}[_0xeb371e(0xd1)](_0x56a2e1){const _0x10d26d={_0x2c71bc:0xcf,_0xfcde9c:0xd5,_0x2de1f4:0xe2,_0x505462:0xcf,_0x20fe9d:0xdc},_0x5202e5=_0xeb371e;if(_0x56a2e1<0x0||_0x56a2e1>=this[_0x5202e5(_0x10d26d._0x2c71bc)][_0x5202e5(0xe2)])throw new DriverError(_0x5202e5(_0x10d26d._0xfcde9c),{'index':_0x56a2e1,'available':this['pageList'][_0x5202e5(_0x10d26d._0x2de1f4)]});this[_0x5202e5(_0x10d26d._0x505462)][_0x5202e5(_0x10d26d._0x20fe9d)](_0x56a2e1,0x1);}async[_0xeb371e(0xc2)](_0x71cff0){const _0x572c49={_0x391e9a:0xaa,_0x23d572:0xc2,_0x160f26:0xae,_0x564484:0xaf},_0x2fd9c2=_0xeb371e;this[_0x2fd9c2(_0x572c49._0x391e9a)](_0x2fd9c2(_0x572c49._0x23d572),[_0x71cff0]);if(!_0x71cff0['steps'][_0x2fd9c2(0xe2)])throw new LocatorError(_0x2fd9c2(_0x572c49._0x160f26),{'locator':_0x71cff0});this['frameStack'][_0x2fd9c2(_0x572c49._0x564484)](_0x71cff0);}async[_0xeb371e(0xd0)](){const _0x25866a={_0x5e3e68:0xaa,_0x26ab32:0xd0,_0x4678ad:0xda,_0x190697:0xe2,_0x31df7c:0xc3},_0x2dc0f7=_0xeb371e;this[_0x2dc0f7(_0x25866a._0x5e3e68)](_0x2dc0f7(_0x25866a._0x26ab32),[]);if(this[_0x2dc0f7(_0x25866a._0x4678ad)][_0x2dc0f7(_0x25866a._0x190697)]===0x0)throw new DriverError(_0x2dc0f7(_0x25866a._0x31df7c),{});this[_0x2dc0f7(0xda)][_0x2dc0f7(0xe1)]();}async[_0xeb371e(0xdb)](_0x11279e,_0x321d59){const _0x409a46={_0xdd481b:0xaa,_0x20189b:0xdb},_0x4d9e96=_0xeb371e;this[_0x4d9e96(_0x409a46._0xdd481b)](_0x4d9e96(_0x409a46._0x20189b),[_0x11279e,_0x321d59]),this['localStorageState'][_0x11279e]=_0x321d59;}async[_0xeb371e(0x75)](_0x5ce2d0){const _0x32a810={_0x491a7d:0xc9},_0x3cd0d9=_0xeb371e;return this['record']('getLocalStorage',[_0x5ce2d0]),this[_0x3cd0d9(_0x32a810._0x491a7d)][_0x5ce2d0]??null;}async['setCookie'](_0x26b21d,_0x1df803,_0x22d70a){const _0xad8337={_0x27b97d:0xaa,_0x436ce7:0x98},_0x55f30f=_0xeb371e;this[_0x55f30f(_0xad8337._0x27b97d)]('setCookie',[_0x26b21d,_0x1df803,_0x22d70a]),this[_0x55f30f(_0xad8337._0x436ce7)][_0x26b21d]=_0x1df803;}async['getCookie'](_0x10d291){const _0x5af258={_0x407e6c:0xaa,_0x3f4013:0x98},_0x4f3cd3=_0xeb371e;return this[_0x4f3cd3(_0x5af258._0x407e6c)](_0x4f3cd3(0xb5),[_0x10d291]),this[_0x4f3cd3(_0x5af258._0x3f4013)][_0x10d291]??null;}async[_0xeb371e(0xe5)](_0xcd59c){const _0x4eab6c=_0xeb371e;this[_0x4eab6c(0xaa)](_0x4eab6c(0xe5),[_0xcd59c]);}async[_0xeb371e(0xb8)](_0x50f86c){const _0x12e487=_0xeb371e;return this[_0x12e487(0xaa)]('evaluate',[_0x50f86c]),void 0x0;}async[_0xeb371e(0x97)](){const _0x1e34f2=_0xeb371e;this[_0x1e34f2(0xaa)]('close',[]);}['frameDepth'](){const _0x888fa5={_0x1a9e60:0xe2},_0x44dfcf=_0xeb371e;return this[_0x44dfcf(0xda)][_0x44dfcf(_0x888fa5._0x1a9e60)];}},FakeWebDriver=class{constructor(_0xa4c90a={}){const _0x1180bd=_0xeb371e;this[_0x1180bd(0x8f)]=_0xa4c90a,this[_0x1180bd(0xbe)]=createRecorder();}[_0xeb371e(0x8f)];static{__name(this,_0xeb371e(0x7d));}[_0xeb371e(0x70)]=![];[_0xeb371e(0xbe)];['contexts']=[];async[_0xeb371e(0xb6)](_0x4d8019){const _0x214f68={_0x2b8911:0xb6,_0x192258:0x70},_0x220fab=_0xeb371e;this[_0x220fab(0xbe)][_0x220fab(0xaf)]({'scope':'driver','method':_0x220fab(_0x214f68._0x2b8911),'args':[_0x4d8019]}),this[_0x220fab(_0x214f68._0x192258)]=!![];}async[_0xeb371e(0xca)](_0x4810da){const _0x14164c={_0x26a739:0xbe,_0x5eadfc:0xd4,_0xfc1459:0xbe,_0x53ea15:0x88,_0x371b08:0x77,_0x1f039f:0xe2,_0xc32d57:0x77},_0x4f750a=_0xeb371e;this[_0x4f750a(_0x14164c._0x26a739)][_0x4f750a(0xaf)]({'scope':_0x4f750a(_0x14164c._0x5eadfc),'method':_0x4f750a(0xca),'args':[_0x4810da]});if(!this['launched'])throw new DriverError(_0x4f750a(0x94),{});const _0x4255a2=new FakeContext(this[_0x4f750a(_0x14164c._0xfc1459)],this[_0x4f750a(0x8f)],_0x4f750a(_0x14164c._0x53ea15)+this[_0x4f750a(_0x14164c._0x371b08)][_0x4f750a(_0x14164c._0x1f039f)]);return this[_0x4f750a(_0x14164c._0xc32d57)]['push'](_0x4255a2),_0x4255a2;}async[_0xeb371e(0x97)](){const _0x26c100={_0x5caeb9:0xd4},_0x52e274=_0xeb371e;this[_0x52e274(0xbe)]['push']({'scope':_0x52e274(_0x26c100._0x5caeb9),'method':'close','args':[]}),this['launched']=![];}[_0xeb371e(0x80)](){return void 0x0;}async[_0xeb371e(0x8e)](){const _0x1d6178=_0xeb371e;throw new DriverError(_0x1d6178(0xa3),{});}[_0xeb371e(0xe8)](_0x1ed45f){const _0x1ccc28=_0xeb371e;throw new DriverError(_0x1ccc28(0x9f),{});}[_0xeb371e(0xa4)](){const _0x146a5a=_0xeb371e;return this['recorder'][_0x146a5a(0xa4)]();}[_0xeb371e(0x87)](_0x1a7f57){const _0x55ccfa={_0x2de913:0xe3},_0x1f5609=_0xeb371e;return this['recorder']['calls']()[_0x1f5609(_0x55ccfa._0x2de913)](_0x2b40fd=>_0x2b40fd[_0x1f5609(0xb0)]===_0x1a7f57);}};export{FakeWebDriver};
1
+ function _0x270b(_0xcec87e,_0x436d56){_0xcec87e=_0xcec87e-0x18f;const _0x182f06=_0x182f();let _0x270bfa=_0x182f06[_0xcec87e];if(_0x270b['QHqkUi']===undefined){var _0xeae874=function(_0x278cbe){const _0x590767='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3812e5='',_0x444a60='';for(let _0xfe7289=0x0,_0x1daf50,_0x4e1ade,_0x1f8ccb=0x0;_0x4e1ade=_0x278cbe['charAt'](_0x1f8ccb++);~_0x4e1ade&&(_0x1daf50=_0xfe7289%0x4?_0x1daf50*0x40+_0x4e1ade:_0x4e1ade,_0xfe7289++%0x4)?_0x3812e5+=String['fromCharCode'](0xff&_0x1daf50>>(-0x2*_0xfe7289&0x6)):0x0){_0x4e1ade=_0x590767['indexOf'](_0x4e1ade);}for(let _0x539e05=0x0,_0x20b1ef=_0x3812e5['length'];_0x539e05<_0x20b1ef;_0x539e05++){_0x444a60+='%'+('00'+_0x3812e5['charCodeAt'](_0x539e05)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x444a60);};_0x270b['QOmeZq']=_0xeae874,_0x270b['OcTQhQ']={},_0x270b['QHqkUi']=!![];}const _0x55aff7=_0x182f06[0x0],_0x2f9ef9=_0xcec87e+_0x55aff7,_0x41686f=_0x270b['OcTQhQ'][_0x2f9ef9];return!_0x41686f?(_0x270bfa=_0x270b['QOmeZq'](_0x270bfa),_0x270b['OcTQhQ'][_0x2f9ef9]=_0x270bfa):_0x270bfa=_0x41686f,_0x270bfa;}const _0x2db01d=_0x270b;(function(_0x51b598,_0x5bd198){const _0x5b4d6a={_0x2a3eab:0x1a7,_0x3f395c:0x1f2,_0x4ed4bb:0x1be,_0x1af903:0x190,_0xf09f55:0x1a2},_0x32f4d2=_0x270b,_0xc9d200=_0x51b598();while(!![]){try{const _0x3f9628=-parseInt(_0x32f4d2(0x20c))/0x1*(-parseInt(_0x32f4d2(_0x5b4d6a._0x2a3eab))/0x2)+-parseInt(_0x32f4d2(0x1ce))/0x3*(-parseInt(_0x32f4d2(0x1d2))/0x4)+-parseInt(_0x32f4d2(0x1e0))/0x5+-parseInt(_0x32f4d2(_0x5b4d6a._0x3f395c))/0x6*(-parseInt(_0x32f4d2(_0x5b4d6a._0x4ed4bb))/0x7)+parseInt(_0x32f4d2(0x1ec))/0x8+parseInt(_0x32f4d2(_0x5b4d6a._0x1af903))/0x9+-parseInt(_0x32f4d2(_0x5b4d6a._0xf09f55))/0xa;if(_0x3f9628===_0x5bd198)break;else _0xc9d200['push'](_0xc9d200['shift']());}catch(_0x355051){_0xc9d200['push'](_0xc9d200['shift']());}}}(_0x182f,0x3e8a9));var __defProp=Object[_0x2db01d(0x195)],__name=(_0x3812e5,_0x444a60)=>__defProp(_0x3812e5,_0x2db01d(0x20b),{'value':_0x444a60,'configurable':!![]});function _0x182f(){const _0x38faf6=['zMLSBa','D2fPDezVCK5HDMLNyxrPB24','zgvSzxrL','z2v0tg9JywXtDg9YywDL','Dgv4DenVBNrLBNrcEurLzMf1Bhq','zxzHBhvHDgvszxn1Bhq','y2XPy2S','mZm2ntGWoevoCwHwza','zhjPDMvY','z29cywnR','Bwf5yMvuAhjVDW','y29VA2LLu3rHDgu','C2vSzwn0t3b0Aw9U','mtj4yMfJCNa','Aw5WDxrwywX1zq','B25bzNrLCKnSAwnR','Aw5PDgLHBfvYBa','Aw5UzxjuzxH0qNLezwzHDwX0','z29gB3j3yxjK','iJ48l2rPDJ4','C2v0qwn0AxzLugfNzq','BMv3q29UDgv4Da','DgL0Bgu','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','pgrPDIbKyxrHlxvUB3rLC3qTCMvMpsi','ywn0AxzLswr4','yxr0CMLIDxrLC0j5rgvMyxvSDa','ChjLC3m','Bg9JywXtDg9YywDL','lNbHz2u','yMvOyxzPB3i','y2XPCgjVyxjKugfZDgu','yxr0ywnOrxHPC3rPBMCGBM90ihn1ChbVCNrLzcbIEsbgywTLv2vIrhjPDMvY','BgvUz3rO','D2fPDezVCLrLEhq','rMfRzvbHz2u','zw1PDezHA2vqB3b1Ca','C2nYB2XSsw50B1zPzxC','BMfTzq','odK5odzfCvL6t1m','yxr0ywnOrxHPC3rPBMC','z290BW','Bgf1BMnOzwq','mJCXntKZmgjhzNr2qW','Aw5WDxrwywX1zuj5rgvMyxvSDa','y29VA2LLCW','z2v0qxr0CMLIDxrL','C2nYzwvUC2HVDa','zgvMAw5LuhjVCgvYDhK','Bg9JywXtDg9YywDLu3rHDgu','Cg9WDxbpBKnSAwnR','ChvZAa','y29UBMvJDfnOyxjLza','AxnwAxnPyMXL','zMfRzs1WBMC','y29UBMvJDfnOyxjLzcbUB3qGC3vWCg9YDgvKigj5iezHA2vxzwjeCML2zxi','y29UC29SzuvUDhjPzxm','BMv3ugfNzuXPC3rLBMvYCW','y3jLyxrLuMvJB3jKzxi','zxzHBhvHDgvpBKXVy2f0B3i','CgfNzuXPC3q','mtu0ndiXmZbms2v0rMS','C3vIC2nYAwjL','C2nVCgu','B3v0zxjiDg1SqNLszwy','lNbHz2uW','ofj4AKfWDG','zNjHBwvtDgfJAW','zMfRzsb0AxrSzq','z2v0q29VA2LL','zxjYB3jpBK5LEhrby3rPB24','pgrPDJ48l2rPDJ4','DhLWzq','C2nYzwvUC2HVDej5DgvZ','D2fPDezVCG','D2fPDezVCKXVywrtDgf0zq','y2XVC2u','Bwv0Ag9K','zg91yMXLq2XPy2S','tg9JyxrVCKvYCM9Y','y2HLy2TLzfn0yxrLqNLezwzHDwX0','Aw5ZCgvJDevSzw1LBNq','Dgv4DenVBNrLBNq','CMvJB3jK','y29UDgv4Dhm','zw50zxjgCMfTzq','zNvUy3rPB24','zxzHBhvHDgu','B3v0zxjive1m','mtCWmdi5m0f1v3fyqW','zhjHz0fUzerYB3a','zw50zxjgCMfTzsbJywXSzwqGD2L0AcbLBxb0EsbSB2nHDg9Y','y3vYCMvUDfvYBa','D3nfBMrWB2LUDa','Bgf1BMnO','rMfRzunVBNrLEhq','CgfNzxm','A2LUza','C3rLChm','y2fSBhngB3i','rMfRzvDLyKrYAxzLCG','C2v0q29VA2LL','DxbSB2fKrMLSzq','y2XVC2vgywTLugfNzq','y3r4','mtq1ndG3muPsqNrgDG','Dw5JAgvJAW','y291BNq','BMv0D29YA0vUDhjPzxm','nermEKXxAW','AxneAxnHyMXLza','CMvJB3jKzxi','B25ozxDqywDL','Aw5UzxjuzxH0','CMvSB2fK','Ag92zxi','BM8Gywn0AxzLihbHz2uGAw4Gy29UDgv4Da','CgfNzsbPBMrLEcbVDxqGB2yGCMfUz2u','CMvM','y2HLy2S','AxnwAxnPyMXLqNLezwzHDwX0','BMv3q29UDgv4DcbJywXSzwqGyMvMB3jLigXHDw5JAcGP','ywjVDxq6yMXHBMS','mti2nda2nwX2t0H2vG','D2fPDezVCLvYBa','ywn0AxzLugfNzq','y2fSBhm','zxHPDezYyw1L'];_0x182f=function(){return _0x38faf6;};return _0x182f();}function subscribe(_0xfe7289,_0x1daf50){const _0x5e8af3={_0x151b40:0x1e7};return _0xfe7289['add'](_0x1daf50),()=>{const _0x1ad85d=_0x270b;_0xfe7289[_0x1ad85d(_0x5e8af3._0x151b40)](_0x1daf50);};}__name(subscribe,_0x2db01d(0x1a3));import{UnotestError}from'@unotest/core';var DriverError=class extends UnotestError{static{__name(this,'DriverError');}},LocatorError=class extends UnotestError{static{__name(this,_0x2db01d(0x1b4));}};function createRecorder(){const _0x40a333={_0x5ca034:0x1e3},_0x204f7f=_0x2db01d,_0x4e1ade=[];let _0x1f8ccb=0x0;return{'push':__name(_0x539e05=>_0x4e1ade[_0x204f7f(0x198)]({..._0x539e05,'seq':_0x1f8ccb++}),'push'),'calls':__name(()=>_0x4e1ade,_0x204f7f(_0x40a333._0x5ca034))};}__name(createRecorder,_0x2db01d(0x19f));var FakePage=class{constructor(_0x20b1ef,_0x5b30f0,_0x22b6a3,_0x49dac7){const _0x1769af=_0x2db01d;this[_0x1769af(0x1d4)]=_0x20b1ef,this[_0x1769af(0x203)]=_0x5b30f0,this[_0x1769af(0x1a4)]=_0x22b6a3,this['currentUrl']=_0x49dac7;}[_0x2db01d(0x1d4)];['behavior'];[_0x2db01d(0x1a4)];static{__name(this,_0x2db01d(0x208));}[_0x2db01d(0x1c1)];[_0x2db01d(0x1f4)];[_0x2db01d(0x1b8)](_0x274f52,_0x3fcaa3){const _0x57dcb2={_0x3c0f5c:0x1d4,_0x3b8cb1:0x198},_0x3eea20=_0x2db01d;this[_0x3eea20(_0x57dcb2._0x3c0f5c)][_0x3eea20(_0x57dcb2._0x3b8cb1)]({'scope':this[_0x3eea20(0x1a4)],'method':_0x274f52,'args':_0x3fcaa3});}[_0x2db01d(0x1ef)](){const _0x25be34={_0x3fd481:0x1ab},_0x3773d4=_0x2db01d;if(this[_0x3773d4(0x203)][_0x3773d4(_0x25be34._0x3fd481)]){const _0x3547c5=this[_0x3773d4(0x203)][_0x3773d4(_0x25be34._0x3fd481)];this['behavior']['errorOnNextAction']=void 0x0;throw _0x3547c5;}}['url'](){const _0x3971c9=_0x2db01d;return this[_0x3971c9(0x1c1)];}async['title'](){const _0x45b82f={_0x41df3c:0x1fb,_0x25672b:0x1a9},_0x4162b6=_0x2db01d;return this[_0x4162b6(0x1b8)](_0x4162b6(_0x45b82f._0x41df3c),[]),_0x4162b6(_0x45b82f._0x25672b);}async[_0x2db01d(0x1eb)](_0x4d7d1e,_0x3af385){const _0x5ed5a5={_0x4cb928:0x1b8,_0x334f82:0x1eb},_0x1c67e6=_0x2db01d;this[_0x1c67e6(_0x5ed5a5._0x4cb928)](_0x1c67e6(_0x5ed5a5._0x334f82),[_0x4d7d1e,_0x3af385]),this[_0x1c67e6(0x1ef)](),this[_0x1c67e6(0x1f4)]?.();}async[_0x2db01d(0x1b3)](_0x193341,_0x3a51d6){const _0x313edd={_0x9544ba:0x1b3},_0x1583d4=_0x2db01d;this[_0x1583d4(0x1b8)](_0x1583d4(_0x313edd._0x9544ba),[_0x193341,_0x3a51d6]),this[_0x1583d4(0x1ef)]();}async[_0x2db01d(0x1e5)](_0x3e5b52,_0x510674,_0x2ac214){const _0x8bdbd6={_0x52ddaa:0x1b8,_0x41bfea:0x1ef},_0x32bff7=_0x2db01d;this[_0x32bff7(_0x8bdbd6._0x52ddaa)]('fill',[_0x3e5b52,_0x510674,_0x2ac214]),this[_0x32bff7(_0x8bdbd6._0x41bfea)]();}async[_0x2db01d(0x200)](_0x352c29,_0x51c5aa,_0x4eab7b){const _0xdaa25e=_0x2db01d;this['record'](_0xdaa25e(0x200),[_0x352c29,_0x51c5aa,_0x4eab7b]),this[_0xdaa25e(0x1ef)]();}async[_0x2db01d(0x1dc)](_0x59225b,_0x5624f6){const _0x5321b4=_0x2db01d;this[_0x5321b4(0x1b8)](_0x5321b4(0x1dc),[_0x59225b,_0x5624f6]),this[_0x5321b4(0x1ef)]();}async[_0x2db01d(0x1cf)](_0x4a6545,_0x52526a){const _0x3d425a={_0x5e87ae:0x1cf},_0x4b5182=_0x2db01d;this['record'](_0x4b5182(_0x3d425a._0x5e87ae),[_0x4a6545,_0x52526a]),this[_0x4b5182(0x1ef)]();}async[_0x2db01d(0x1f1)](_0xb1f341,_0x4692c5,_0x3ddd2e){const _0x185220={_0x3696b9:0x1ef},_0x2d006f=_0x2db01d;this[_0x2d006f(0x1b8)](_0x2d006f(0x1f1),[_0xb1f341,_0x4692c5,_0x3ddd2e]),this[_0x2d006f(_0x185220._0x3696b9)]();}async[_0x2db01d(0x1d8)](_0x2dc21a,_0x4c07db){const _0x20eabf={_0x27216d:0x1ef},_0x9f50e7=_0x2db01d;this[_0x9f50e7(0x1b8)]('hover',[_0x2dc21a,_0x4c07db]),this[_0x9f50e7(_0x20eabf._0x27216d)]();}async[_0x2db01d(0x20a)](_0x5be87e){const _0x1661ae=_0x2db01d;this[_0x1661ae(0x1b8)]('scrollIntoView',[_0x5be87e]),this[_0x1661ae(0x1ef)]();}async[_0x2db01d(0x1bf)](_0x2817da,_0x330a27,_0x1e2531){const _0x317a9d=_0x2db01d;this['record'](_0x317a9d(0x1bf),[_0x2817da,_0x330a27,_0x1e2531]),this[_0x317a9d(0x1ef)]();}async[_0x2db01d(0x1cb)](_0x35fb1b,_0x166d66){const _0x44730c={_0xa7ea83:0x1b8,_0xbc97a8:0x1cb},_0xe54936=_0x2db01d;this[_0xe54936(_0x44730c._0xa7ea83)](_0xe54936(_0x44730c._0xbc97a8),[_0x35fb1b,_0x166d66]),this[_0xe54936(0x1ef)]();}async['clipboardPaste'](_0x2e5f90,_0x1b0959){const _0x5edaee=_0x2db01d;this[_0x5edaee(0x1b8)](_0x5edaee(0x204),[_0x2e5f90,_0x1b0959]),this[_0x5edaee(0x1ef)]();}async[_0x2db01d(0x1d0)](_0x4a7d63){const _0x1ab594=_0x2db01d;return this[_0x1ab594(0x1b8)](_0x1ab594(0x1d0),[_0x4a7d63]),this['behavior']['countByDefault']??0x1;}async[_0x2db01d(0x1b7)](_0x11de74){const _0x5d2e6e={_0x84d4e0:0x1e9},_0x38ef61=_0x2db01d;return this[_0x38ef61(0x1b8)]('textContent',[_0x11de74]),this[_0x38ef61(0x203)][_0x38ef61(_0x5d2e6e._0x84d4e0)]??'';}async[_0x2db01d(0x1d6)](_0x3b385a){const _0x35604c={_0xc0fda5:0x1b8,_0x4303d4:0x1d6,_0x54a0f7:0x1f6,_0x4713ac:0x1e9},_0x97e297=_0x2db01d;return this[_0x97e297(_0x35604c._0xc0fda5)](_0x97e297(_0x35604c._0x4303d4),[_0x3b385a]),this['behavior'][_0x97e297(_0x35604c._0x54a0f7)]??this[_0x97e297(0x203)][_0x97e297(_0x35604c._0x4713ac)]??'';}async['inputValue'](_0x2b203b){const _0x2a90de={_0x4058ec:0x1b8},_0x464ea0=_0x2db01d;return this[_0x464ea0(_0x2a90de._0x4058ec)](_0x464ea0(0x1f3),[_0x2b203b]),this[_0x464ea0(0x203)][_0x464ea0(0x191)]??'';}async['checkedState'](_0x6912fc){const _0x46a184={_0x375c35:0x1b8,_0x2d9018:0x203},_0x46c71b=_0x2db01d;return this[_0x46c71b(_0x46a184._0x375c35)]('checkedState',[_0x6912fc]),this[_0x46c71b(_0x46a184._0x2d9018)][_0x46c71b(0x1b5)]??null;}async[_0x2db01d(0x19a)](_0x497344){const _0x2fb6d4={_0x21b55e:0x1b8,_0x1f20b4:0x19a,_0x406ecb:0x1dd},_0x7ffab2=_0x2db01d;return this[_0x7ffab2(_0x2fb6d4._0x21b55e)](_0x7ffab2(_0x2fb6d4._0x1f20b4),[_0x497344]),this[_0x7ffab2(0x203)][_0x7ffab2(_0x2fb6d4._0x406ecb)]??!![];}async[_0x2db01d(0x1d3)](_0x33a33d){const _0x527b6b=_0x2db01d;return this[_0x527b6b(0x1b8)](_0x527b6b(0x1d3),[_0x33a33d]),this[_0x527b6b(0x203)]['isDisabledByDefault']??![];}async[_0x2db01d(0x193)](_0x2aefb5,_0x2a0714){const _0x26b33c={_0x50cbcd:0x1b8,_0x3218d7:0x193},_0x2fddf8=_0x2db01d;return this[_0x2fddf8(_0x26b33c._0x50cbcd)](_0x2fddf8(_0x26b33c._0x3218d7),[_0x2aefb5,_0x2a0714]),this['behavior'][_0x2fddf8(0x1ff)]?.[_0x2a0714]??null;}async['waitFor'](_0x156a1c,_0x51be78){const _0xe59a87=_0x2db01d;this[_0xe59a87(0x1b8)](_0xe59a87(0x1af),[_0x156a1c,_0x51be78]);}async[_0x2db01d(0x1e1)](_0x3a3ac8,_0x93fd3d){const _0x378aee={_0x5ce11a:0x1e1},_0x589eb2=_0x2db01d;this[_0x589eb2(0x1b8)](_0x589eb2(_0x378aee._0x5ce11a),[_0x3a3ac8,_0x93fd3d]);}async[_0x2db01d(0x207)](_0x5404fd,_0x53416e){const _0x5aadda={_0x2cb6b1:0x1b8},_0x317af1=_0x2db01d;this[_0x317af1(_0x5aadda._0x2cb6b1)](_0x317af1(0x207),[_0x5404fd,_0x53416e]);}async[_0x2db01d(0x1e6)](_0x456366){const _0x515e1c={_0x2f7ad7:0x1e6},_0x2ecfdd=_0x2db01d;this['record'](_0x2ecfdd(_0x515e1c._0x2f7ad7),[_0x456366]);}async[_0x2db01d(0x1b0)](_0x9bb2c4,_0x53ecbb){const _0x1eb10a=_0x2db01d;this[_0x1eb10a(0x1b8)](_0x1eb10a(0x1b0),[_0x9bb2c4,_0x53ecbb]);}async[_0x2db01d(0x20e)](_0x521280,_0x183824){const _0x5f2db2=_0x2db01d;this[_0x5f2db2(0x1b8)](_0x5f2db2(0x20e),[_0x521280,_0x183824]),this[_0x5f2db2(0x1c1)]=_0x521280;}async[_0x2db01d(0x1d7)](_0x3ad58f){const _0x34b0da={_0x37fc43:0x1d7},_0x223647=_0x2db01d;this['record'](_0x223647(_0x34b0da._0x37fc43),[_0x3ad58f]);}async[_0x2db01d(0x1ee)](_0x384fe4){const _0x251b5c=_0x2db01d;this[_0x251b5c(0x1b8)](_0x251b5c(0x1ee),[_0x384fe4]);}async[_0x2db01d(0x1f7)](_0x48af38){const _0x4fc490=_0x2db01d;this['record'](_0x4fc490(0x1f7),[_0x48af38]);}async[_0x2db01d(0x1bc)](_0x3ad62b){const _0x58c11f=_0x2db01d;return this[_0x58c11f(0x1b8)](_0x58c11f(0x1bc),[_0x3ad62b]),this['behavior'][_0x58c11f(0x1ea)];}async[_0x2db01d(0x1a0)](_0x1aae5e,_0x26b3e6){const _0x53a67a=_0x2db01d;return this[_0x53a67a(0x1b8)](_0x53a67a(0x1a0),[_0x1aae5e,_0x26b3e6]),void 0x0;}async['inspectElement'](_0x50f023){const _0x4c212e={_0x5c787f:0x206},_0x372ed8=_0x2db01d;this['record'](_0x372ed8(0x1b6),[_0x50f023]);if(_0x50f023['steps'][_0x372ed8(_0x4c212e._0x5c787f)]!==0x1||_0x50f023['steps'][0x0]['kind']!=='ref')return null;const _0x1c28ab=_0x50f023['steps'][0x0][_0x372ed8(0x1db)],_0xc225f8=this[_0x372ed8(0x203)]['elementHintByRef']?.[_0x1c28ab];return _0xc225f8??null;}async[_0x2db01d(0x194)](_0x74b236){const _0x2ef6d5={_0x2b96a4:0x1ae},_0x2bfad4=_0x2db01d;return this['record']('screenshot',[_0x74b236]),this[_0x2bfad4(_0x2ef6d5._0x2b96a4)](_0x74b236?.['type']);}async['screenshotElement'](_0x1af0f7,_0x5bc980){const _0x372bd6={_0x51faff:0x1b8},_0x19780b=_0x2db01d;return this[_0x19780b(_0x372bd6._0x51faff)]('screenshotElement',[_0x1af0f7,_0x5bc980]),this[_0x19780b(0x1ae)](_0x5bc980?.[_0x19780b(0x1ad)]);}[_0x2db01d(0x1ae)](_0x385419){const _0x5be542={_0x14625b:0x203,_0x156dbd:0x1ae},_0x521f6d=_0x2db01d,_0x4fea5b=this[_0x521f6d(_0x5be542._0x14625b)][_0x521f6d(_0x5be542._0x156dbd)];if(_0x4fea5b===void 0x0)return Buffer['from'](_0x521f6d(0x19b));return typeof _0x4fea5b===_0x521f6d(0x1bb)?_0x4fea5b(_0x385419):_0x4fea5b;}async[_0x2db01d(0x1bd)](_0x382a60){const _0x437560={_0x408683:0x1c7,_0x11886e:0x1db,_0x4cc33c:0x1a5,_0x4aa25e:0x1fd,_0x1caab2:0x1f8},_0x5bb1cf=_0x2db01d;this[_0x5bb1cf(0x1b8)](_0x5bb1cf(0x1bd),[_0x382a60]);if(_0x382a60[_0x5bb1cf(0x1c7)][_0x5bb1cf(0x206)]===0x1&&_0x382a60[_0x5bb1cf(_0x437560._0x408683)][0x0][_0x5bb1cf(0x1c6)]==='ref'){const _0x2d7ed8=_0x382a60[_0x5bb1cf(0x1c7)][0x0][_0x5bb1cf(_0x437560._0x11886e)];return this['behavior'][_0x5bb1cf(_0x437560._0x4cc33c)]?.[_0x2d7ed8]??_0x5bb1cf(_0x437560._0x4aa25e)+_0x2d7ed8+_0x5bb1cf(_0x437560._0x1caab2);}return _0x5bb1cf(0x1ac);}},FakeContext=class{constructor(_0x3dad51,_0x540831,_0x18ed14){const _0xd396b7={_0x1e7fe5:0x203,_0x16f54f:0x1a4,_0x3f41bf:0x1f5,_0x12a152:0x1a1,_0x5d6c73:0x201,_0x109505:0x192},_0x128680=_0x2db01d;this[_0x128680(0x1d4)]=_0x3dad51,this[_0x128680(_0xd396b7._0x1e7fe5)]=_0x540831,this[_0x128680(_0xd396b7._0x16f54f)]=_0x18ed14;const _0x26b63d=new FakePage(_0x3dad51,_0x540831,_0x18ed14+_0x128680(0x1a6),_0x540831[_0x128680(_0xd396b7._0x3f41bf)]??_0x128680(0x1df));_0x540831[_0x128680(0x197)]&&(_0x26b63d[_0x128680(0x1f4)]=()=>{const _0x81774a=_0x128680;this[_0x81774a(0x209)](_0x540831['popupOnClick']);}),this[_0x128680(_0xd396b7._0x12a152)]=[_0x26b63d],this['localStorageState']={..._0x540831[_0x128680(_0xd396b7._0x5d6c73)]??{}},this[_0x128680(0x1f0)]={..._0x540831[_0x128680(_0xd396b7._0x109505)]??{}};}[_0x2db01d(0x1d4)];[_0x2db01d(0x203)];[_0x2db01d(0x1a4)];static{__name(this,_0x2db01d(0x1c4));}[_0x2db01d(0x1a1)];[_0x2db01d(0x1fe)]=0x0;[_0x2db01d(0x1a8)]=[];[_0x2db01d(0x196)];[_0x2db01d(0x1f0)];[_0x2db01d(0x19e)]=new Set();[_0x2db01d(0x1b8)](_0x594729,_0x144e4c){const _0x42845b={_0x2ea408:0x198},_0x52fb0e=_0x2db01d;this[_0x52fb0e(0x1d4)][_0x52fb0e(_0x42845b._0x2ea408)]({'scope':this['scope'],'method':_0x594729,'args':_0x144e4c});}[_0x2db01d(0x1c5)](){const _0x32f325=_0x2db01d;return this[_0x32f325(0x1a1)];}[_0x2db01d(0x1e2)](){const _0x49fa03=_0x2db01d,_0x532288=this['pageList'][this['activeIdx']];if(!_0x532288)throw new DriverError(_0x49fa03(0x1d9),{'activeIdx':this['activeIdx']});return _0x532288;}[_0x2db01d(0x19d)](){const _0x262d14={_0x4ca2f6:0x19d},_0x7e679=_0x2db01d;return this[_0x7e679(0x203)][_0x7e679(_0x262d14._0x4ca2f6)]??[];}['networkEntries'](){const _0x6f2251=_0x2db01d;return this['behavior'][_0x6f2251(0x1d1)]??[];}async['setActivePage'](_0x3638be){const _0x3dc3c1={_0x43f520:0x1f9,_0x25b327:0x1a1,_0x47132e:0x206,_0x16b200:0x1a8},_0x51a75f=_0x2db01d;this['record'](_0x51a75f(_0x3dc3c1._0x43f520),[_0x3638be]);if(_0x3638be<0x0||_0x3638be>=this[_0x51a75f(_0x3dc3c1._0x25b327)]['length'])throw new DriverError(_0x51a75f(0x1da),{'index':_0x3638be,'available':this[_0x51a75f(_0x3dc3c1._0x25b327)][_0x51a75f(_0x3dc3c1._0x47132e)]});this['activeIdx']=_0x3638be,this[_0x51a75f(_0x3dc3c1._0x16b200)][_0x51a75f(0x206)]=0x0;}[_0x2db01d(0x1d5)](_0x36c1e1){const _0x83d9fc=_0x2db01d;return subscribe(this[_0x83d9fc(0x19e)],_0x36c1e1);}['emitFakePopup'](_0xdb665d){const _0x4ea23d={_0x257986:0x1a4,_0x3b1d7f:0x1d4,_0x3d6da0:0x1a1,_0x3f86f3:0x206,_0x18bc00:0x19e},_0x4c621b=_0x2db01d,_0x59a463=this[_0x4c621b(_0x4ea23d._0x257986)]+_0x4c621b(0x202)+this['pageList']['length'],_0x2a3ba8=new FakePage(this[_0x4c621b(_0x4ea23d._0x3b1d7f)],this['behavior'],_0x59a463,_0xdb665d);this[_0x4c621b(_0x4ea23d._0x3d6da0)][_0x4c621b(0x198)](_0x2a3ba8);const _0x82588e=this[_0x4c621b(_0x4ea23d._0x3d6da0)][_0x4c621b(_0x4ea23d._0x3f86f3)]-0x1;for(const _0x305af9 of this[_0x4c621b(_0x4ea23d._0x18bc00)]){try{_0x305af9({'index':_0x82588e,'url':_0xdb665d});}catch{}}return _0x82588e;}[_0x2db01d(0x1cc)](_0x361246){const _0x41d0b8={_0x126b41:0x206},_0x33cebc=_0x2db01d;if(_0x361246<0x0||_0x361246>=this['pageList'][_0x33cebc(_0x41d0b8._0x126b41)])throw new DriverError(_0x33cebc(0x1da),{'index':_0x361246,'available':this[_0x33cebc(0x1a1)][_0x33cebc(0x206)]});this['pageList']['splice'](_0x361246,0x1);}async[_0x2db01d(0x1ba)](_0x43015a){const _0xf71510={_0x547437:0x1ba,_0x12d157:0x1c0,_0x49b1df:0x1a8,_0x1efbb2:0x198},_0x3edf8e=_0x2db01d;this['record'](_0x3edf8e(_0xf71510._0x547437),[_0x43015a]);if(!_0x43015a['steps'][_0x3edf8e(0x206)])throw new LocatorError(_0x3edf8e(_0xf71510._0x12d157),{'locator':_0x43015a});this[_0x3edf8e(_0xf71510._0x49b1df)][_0x3edf8e(_0xf71510._0x1efbb2)](_0x43015a);}async['exitFrame'](){const _0x5d4b6e={_0x5b58c0:0x1e4,_0x1241f8:0x1a8,_0x3f8e0d:0x1fc},_0x290273=_0x2db01d;this[_0x290273(0x1b8)](_0x290273(_0x5d4b6e._0x5b58c0),[]);if(this[_0x290273(_0x5d4b6e._0x1241f8)][_0x290273(0x206)]===0x0)throw new DriverError(_0x290273(_0x5d4b6e._0x3f8e0d),{});this[_0x290273(0x1a8)]['pop']();}async['setLocalStorage'](_0x49b1ca,_0x6edc){const _0x5ccc6d=_0x2db01d;this[_0x5ccc6d(0x1b8)]('setLocalStorage',[_0x49b1ca,_0x6edc]),this[_0x5ccc6d(0x196)][_0x49b1ca]=_0x6edc;}async[_0x2db01d(0x1e8)](_0x129a84){const _0xf6f082={_0x564d7e:0x1e8},_0x4f743d=_0x2db01d;return this[_0x4f743d(0x1b8)](_0x4f743d(_0xf6f082._0x564d7e),[_0x129a84]),this['localStorageState'][_0x129a84]??null;}async['setCookie'](_0x177437,_0x375ce6,_0x3db6db){const _0x5f3d82={_0x1ea3f9:0x1f0},_0x1386b7=_0x2db01d;this['record'](_0x1386b7(0x1ca),[_0x177437,_0x375ce6,_0x3db6db]),this[_0x1386b7(_0x5f3d82._0x1ea3f9)][_0x177437]=_0x375ce6;}async[_0x2db01d(0x1aa)](_0xe89973){const _0x4af7ec={_0x399a2c:0x1aa,_0x7c05f5:0x1f0},_0x45e2b7=_0x2db01d;return this['record'](_0x45e2b7(_0x4af7ec._0x399a2c),[_0xe89973]),this[_0x45e2b7(_0x4af7ec._0x7c05f5)][_0xe89973]??null;}async['saveStorageState'](_0x93f1f6){const _0x415723=_0x2db01d;this[_0x415723(0x1b8)]('saveStorageState',[_0x93f1f6]);}async[_0x2db01d(0x1bc)](_0x198e0c){const _0x536623=_0x2db01d;return this[_0x536623(0x1b8)]('evaluate',[_0x198e0c]),void 0x0;}async[_0x2db01d(0x1b1)](){const _0x4f8130=_0x2db01d;this[_0x4f8130(0x1b8)]('close',[]);}['frameDepth'](){const _0x4abe32={_0x2c2b5c:0x1a8},_0x429321=_0x2db01d;return this[_0x429321(_0x4abe32._0x2c2b5c)]['length'];}},FakeWebDriver=class{constructor(_0x3af242={}){const _0x36606e=_0x2db01d;this[_0x36606e(0x203)]=_0x3af242,this['recorder']=createRecorder();}[_0x2db01d(0x203)];static{__name(this,_0x2db01d(0x1c9));}[_0x2db01d(0x18f)]=![];[_0x2db01d(0x1d4)];[_0x2db01d(0x1b9)]=[];async[_0x2db01d(0x1c3)](_0x341d21){const _0x40e533={_0xd5500b:0x1d4,_0x5517c1:0x198},_0xcbbbed=_0x2db01d;this[_0xcbbbed(_0x40e533._0xd5500b)][_0xcbbbed(_0x40e533._0x5517c1)]({'scope':_0xcbbbed(0x1ed),'method':_0xcbbbed(0x1c3),'args':[_0x341d21]}),this['launched']=!![];}async[_0x2db01d(0x1fa)](_0x5d6d2c){const _0x1858d9={_0x30bdad:0x1d4,_0x43ef23:0x198,_0x363e78:0x1fa,_0xb7abe0:0x18f,_0x3d0fae:0x198},_0x5535ab=_0x2db01d;this[_0x5535ab(_0x1858d9._0x30bdad)][_0x5535ab(_0x1858d9._0x43ef23)]({'scope':_0x5535ab(0x1ed),'method':_0x5535ab(_0x1858d9._0x363e78),'args':[_0x5d6d2c]});if(!this[_0x5535ab(_0x1858d9._0xb7abe0)])throw new DriverError(_0x5535ab(0x1de),{});const _0x1a0646=new FakeContext(this[_0x5535ab(0x1d4)],this[_0x5535ab(0x203)],_0x5535ab(0x1cd)+this['contexts']['length']);return this[_0x5535ab(0x1b9)][_0x5535ab(_0x1858d9._0x3d0fae)](_0x1a0646),_0x1a0646;}async[_0x2db01d(0x1b1)](){const _0x57c22d={_0x117b34:0x198},_0x3bc9f1=_0x2db01d;this['recorder'][_0x3bc9f1(_0x57c22d._0x117b34)]({'scope':'driver','method':_0x3bc9f1(0x1b1),'args':[]}),this['launched']=![];}[_0x2db01d(0x1c2)](){return void 0x0;}async[_0x2db01d(0x199)](){const _0x2f1e3f=_0x2db01d;throw new DriverError(_0x2f1e3f(0x19c),{});}[_0x2db01d(0x20d)](_0x434b49){const _0x155c8d=_0x2db01d;throw new DriverError(_0x155c8d(0x205),{});}[_0x2db01d(0x1e3)](){const _0x1746c7={_0x47ff54:0x1d4},_0x1ec0f7=_0x2db01d;return this[_0x1ec0f7(_0x1746c7._0x47ff54)][_0x1ec0f7(0x1e3)]();}[_0x2db01d(0x1c8)](_0x44e421){const _0x452a55=_0x2db01d;return this[_0x452a55(0x1d4)]['calls']()['filter'](_0x2bc8a4=>_0x2bc8a4[_0x452a55(0x1b2)]===_0x44e421);}};export{FakeWebDriver};
@@ -275,6 +275,16 @@ interface ActiveRuntime {
275
275
  * the same error is closing enclosing statements, `lastFailure` stays
276
276
  * on the statement that raised it. */
277
277
  unwinding: boolean;
278
+ /** The failure this run stopped at, kept from the moment the executor
279
+ * paused on it.
280
+ *
281
+ * It exists because continuing is how a failure gets INSPECTED: with
282
+ * `pauseOnFailure`, the walker holds at the error and, once resumed,
283
+ * carries on with the next statement — so a run that broke can still
284
+ * reach the end and report `completed`. It did not stop being broken
285
+ * because somebody looked at it, and the verdict must not depend on
286
+ * whether anyone did. */
287
+ pausedOnFailure: ActiveRuntime['lastFailure'];
278
288
  lastResult: RunResult | null;
279
289
  createdAt: number;
280
290
  /** Active TTL timer (only when state is paused-failure). */
@@ -328,6 +338,16 @@ declare class TestRuntimeManager {
328
338
  runOptions: RunOptions;
329
339
  }): string;
330
340
  pump(id: string): Promise<ExecutionEvent | RunResult>;
341
+ /** The run's verdict — the executor's own, corrected for the one thing
342
+ * it cannot see: that a failure it paused on was resumed rather than
343
+ * fixed.
344
+ *
345
+ * Only that case. A run the executor already calls failed keeps its own
346
+ * error and its soft failures; a clean run stays clean. (Mobile's
347
+ * `resumeRetriesFailedStep` re-runs the failed statement instead of
348
+ * going past it — web never sets it, and if it ever does, the retry's
349
+ * own `step-end` decides and this correction has to be revisited.) */
350
+ private verdict;
331
351
  step(id: string): Promise<ExecutionEvent | RunResult>;
332
352
  resume(id: string): Promise<ExecutionEvent | RunResult>;
333
353
  abort(id: string): Promise<void>;