@unotest/web 0.9.1 → 0.11.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
@@ -5,6 +5,303 @@ All notable changes to `@unotest/web` are documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.11.0] - 2026-08-13
9
+
10
+ ### Minor Changes
11
+
12
+ - eb568a6: `e2e` CLI argument diagnostics: extra positional arguments are rejected
13
+ instead of silently ignored (with a "did you mean: unotest-web e2e <name>"
14
+ hint for a duplicated subcommand); an argument that resolves to a
15
+ directory gets its own message instead of the misleading ".js extension"
16
+ error; unknown scenario names now suggest close matches from
17
+ `unotest/e2e/**` (new `suggestClosest` / `levenshteinDistance` utilities
18
+ in `@unotest/core`). The `collection` command also rejects extra
19
+ positionals.
20
+ - a195713: Failure artifacts are always on, and steps can carry screenshots.
21
+
22
+ - On any scenario failure the runner writes `screenshot.png` +
23
+ `page.html` (runtime DOM, open shadow roots included, secrets
24
+ redacted) to `unotest/.runs/<runId>/failure/` — no `UNOTEST_DEBUG`
25
+ needed. The `.unotest/failures/` bundle gains the same `page.html`;
26
+ its screenshot keeps honouring `failureBundle.tier2`.
27
+ - New env flag `UNOTEST_STEP_SCREENSHOTS=1` captures a PNG after every
28
+ executed step into `unotest/.runs/<runId>/screenshot/`.
29
+ - Protocol: `screenshot` events may carry the step's `file`/`line`/`col`.
30
+ - Viewer: a step row with a captured screenshot shows a camera icon and
31
+ toggles an inline preview on click (both `screenshot()` DSL captures
32
+ and per-step ones).
33
+
34
+ - d0ae620: Parse errors now carry an exact position and a caret code frame.
35
+
36
+ - Every lexer failure is a `ParseError` with `line`/`column` (previously
37
+ bare `Error` with no position).
38
+ - New `formatCodeFrame(source, line, column)` / `formatParseError`
39
+ exports in `@unotest/dsl`.
40
+ - The web runner's "parse error in <file>" message now includes
41
+ `<file>:<line>:<col>` plus the code frame — no more hunting for an
42
+ "unexpected LBRACKET" by eye.
43
+ - Token columns are now uniformly 1-based at the token start.
44
+ Previously identifier/number/string tokens were 0-based while
45
+ operators were 1-based, so carets and editor squiggles missed by one.
46
+ Migration note: `line:col` breakpoint keys stored in
47
+ `.debugger[-suffix].json` against word-initial statements shift by
48
+ +1 — re-set those breakpoints once.
49
+
50
+ - 98b0736: BREAKING: multipart uploads in `apiCall` are now opted into explicitly
51
+ with the new `upload(path, {field?, fields?})` DSL function — the
52
+ `{file, field?, fields?}` body-shape magic is removed.
53
+
54
+ A JSON body containing a `file` key now always posts as JSON (the old
55
+ key-name detection broke JSON APIs with a legitimate `file` field —
56
+ `{file: 'x.jsonl'}` tried to read a file from disk and died with
57
+ ENOENT).
58
+
59
+ Migration:
60
+
61
+ ```js
62
+ // before
63
+ apiCall("POST", "/documents", {
64
+ file: "fixtures/doc.pdf",
65
+ fields: { source: "e2e" },
66
+ });
67
+ // after
68
+ apiCall(
69
+ "POST",
70
+ "/documents",
71
+ upload("fixtures/doc.pdf", { fields: { source: "e2e" } })
72
+ );
73
+ ```
74
+
75
+ `upload()` must be the body itself (a nested `{doc: upload(...)}` is
76
+ rejected with a pointer to the correct usage). Path containment in
77
+ `sandbox.uploadDir` and the Content-Type rules are unchanged.
78
+
79
+ ### Patch Changes
80
+
81
+ - ce25926: Fixes and DX follow-ups from the real-time-polls field check:
82
+
83
+ - **Fix: `unotest/.runs/<runId>/failure/` was never written.** The
84
+ runner derived the run dir from its internal runtime id (`r-N…`)
85
+ while the on-disk dir is named by `makeRunId(scenario)`, so the
86
+ always-on failure artifacts silently skipped. The CLI now passes its
87
+ run dir into the runner (`RunJsScenarioOptions.runDir`), and the
88
+ failure screenshot + page.html land where documented.
89
+ - **`init` re-syncs tool-owned skill copies.** `.claude/skills/*` and
90
+ `.claude/hooks/*` shipped by the package are overwritten on a plain
91
+ `init` re-run when they diverge from the installed version (status
92
+ `updated`) — stale skills after a package upgrade no longer require
93
+ `--force`. User-scaffolded files keep the skip-unless-`--force`
94
+ behaviour.
95
+ - The MCP `agent-test-author` prompt caught up with the runtime:
96
+ multipart via `upload(...)` and the `obj.prop[i]` workaround are now
97
+ documented there too, and both facts are enforced by
98
+ `check-skill-prompt-sync`.
99
+
100
+ - 7ac23d5: Screenshots are no longer saved as blank white PNGs. `goto()` resolves
101
+ on the `load` event, which on any client-rendered app fires before the
102
+ first frame carries content — so a per-step capture
103
+ (`UNOTEST_STEP_SCREENSHOTS=1`) of a step that ended on `goto()`, or a
104
+ `screenshot()` call placed right after one, froze the pre-render frame.
105
+ Both paths now settle first: wait for the network to go quiet, then for
106
+ a painted frame, capped at 2s total. A page that never goes quiet
107
+ (polling, live feeds) spends the cap once per capture and is then shot
108
+ as-is; the wait never fails a run. The failure screenshot deliberately
109
+ skips the settle — it must show the page as it was at the failure.
110
+
111
+ Adds `DriverPage.waitForLoadState(state, opts?)` — diagnostics-only,
112
+ backing the settle. It is not exposed to the DSL: a test that waits on
113
+ "the network went quiet" instead of on visible app state is the flaky
114
+ pattern the linter rejects.
115
+
116
+ - Updated dependencies [eb568a6]
117
+ - Updated dependencies [a195713]
118
+ - Updated dependencies [ce25926]
119
+ - Updated dependencies [5a8e92b]
120
+ - Updated dependencies [d0ae620]
121
+ - Updated dependencies [2a68997]
122
+ - Updated dependencies [c01b72f]
123
+ - Updated dependencies [dea90e9]
124
+ - @unotest/core@0.11.0
125
+ - @unotest/protocol@0.11.0
126
+ - @unotest/viewer@0.11.0
127
+ - @unotest/dsl@0.11.0
128
+ - @unotest/grounder-client@0.11.0
129
+
130
+ ## [0.10.0] - 2026-08-06
131
+
132
+ ### Minor Changes
133
+
134
+ - 7ed750c: API-setup primitives for pure-`_helpers/` test setup (multi-host RAG
135
+ smoke flows and similar):
136
+
137
+ - `apiCall(method, path, body?, headers?, options?)` gains
138
+ `{base: 'API_BASE_X'}` — the NAME of a `unotest/.env` variable holding
139
+ an http(s) base URL. Default behavior (path against
140
+ `sandbox.apiBaseUrl`) is unchanged; URLs still never appear in
141
+ scenarios.
142
+ - `apiCall` multipart upload: a body of the exact shape
143
+ `{file, field?, fields?}` posts `multipart/form-data` via
144
+ `fetch`+`FormData`. The path is relative and confined to
145
+ `sandbox.uploadDir` (new optional config field; defaults to the
146
+ project root) — absolute paths and `../` escapes throw, and a manual
147
+ `Content-Type` header with a multipart body is rejected.
148
+ - DSL validator now allows `break` inside loop bodies
149
+ (`break-outside-loop` error elsewhere) and index access on data
150
+ variables (`docs[0].objectsCount`); indexing a Locator is rejected as
151
+ `locator-index-access`, and `while` / `do…while` / `continue` /
152
+ `arr[i] = v` stay unsupported. Parser and executor already supported
153
+ these forms; only validation changed.
154
+
155
+ - b5b9710: Assert steps ground as whole units. `Intent.prefer` gains `"unit"`: the
156
+ grounder returns the semantic unit itself (heading / record / text) and
157
+ suppresses the record→control hop — the profile for read-only targets.
158
+ Web assert actions (`assert_text/visible/hidden/value/count`) declare
159
+ `intentTarget: "unit"` on their plugins, and the intent resolver
160
+ materializes a DOM ref for unit resolutions via the new
161
+ `materializeRefScript(nodeId)` (grounder-client dom-walker): one lazy
162
+ attribute write on the unit's own element, reused by later captures.
163
+ Previously an assert intent like "the page heading" was rejected with a
164
+ RECORD error and forced a `find_element` detour. Control-target errors
165
+ now name the unit kind correctly (heading / record / text block) and
166
+ point at assert steps for check-not-click intents.
167
+
168
+ Materialized record containers now resolve to a stable locator. A record
169
+ row / card / tree-item (`<li>`, `<tr>`, `<article>`) carries no accessible
170
+ name of its own — its text lives in children — so `RefResolver` gains a
171
+ container strategy: `getByRole(role).filter({hasText})`, keyed off the
172
+ container's short descendant text (capped so a whole table is never
173
+ captured) and verified for uniqueness + ref identity. Fixes `assert_visible`
174
+ on a grounded tree item failing with `no stable identifier`.
175
+
176
+ - c7b7b50: `assertValue` on a checkbox / radio / switch now asserts its **checked
177
+ state** instead of the DOM `value`. Their value is the submitted payload
178
+ (`"on"` by default) and is identical whether the box is ticked or not, so
179
+ the old behaviour made a correct test fail on DOM trivia (live agent run:
180
+ `assertValue(checkbox, "true")` → `expected "true", got "on"`).
181
+
182
+ Pass `'true'` / `'false'`; any other expectation on a checkable element is
183
+ rejected with a usage error naming the rule. Text inputs, textareas and
184
+ selects are unchanged. Applies to the `assert_value` MCP action too.
185
+
186
+ **Migration:** a test asserting the literal payload —
187
+ `assertValue(checkbox, 'on')` — now fails with that usage error. Assert
188
+ the state (`'true'`) instead; to read the raw attribute use
189
+ `getAttribute(loc, 'value')`.
190
+
191
+ The `WebDriver` page contract gains `checkedState(loc)` (`boolean | null`,
192
+ null for non-checkable elements) — relevant to custom driver
193
+ implementations.
194
+
195
+ `assert_value` also grounds intent locators as a **control** now
196
+ (`intentTarget: "control"`). Under the previous `"unit"` profile an
197
+ intent like "selection checkbox of the Pending row" resolved to the ROW,
198
+ materialized a ref on the `<tr>`, and failed with `Node is not an
199
+ <input>`. The read-only asserts (`assert_text` / `assert_visible` /
200
+ `assert_hidden` / `assert_count`) keep the unit profile.
201
+
202
+ - 7ed750c: Chat-feed-friendly wait primitives (ai-support plan, tasks 5–6):
203
+
204
+ - `waitForText` now waits for ≥1 VISIBLE occurrence instead of failing
205
+ strict mode on duplicated text; `{first: true}` becomes a no-op.
206
+ New `{exact: true}` option and regex matchers
207
+ (`waitForText(/\bhi\b/)`) fix substring-inside-a-word false matches.
208
+ - New `waitForCount(loc, n, {timeout, exact})` DSL primitive and
209
+ `wait_for_count` explore action: polls until the locator matches at
210
+ least `n` elements (exactly `n` with `{exact: true}`) — the "wait for
211
+ reply №N" pattern without index locators; counts as a verification
212
+ step for autoRun / NO_VERIFICATION.
213
+
214
+ - 65eb77c: Shared injected DOM helpers: one `createDomHelpers()` factory (visibility, ARIA roles, W3C accname, state flags, ref minting) now backs the grounder-client DOM walker and the web snapshot/find algorithms, composed into the page by `composeInjectedScript` — replaces four hand-maintained copies of the same in-page logic.
215
+
216
+ **Breaking (`@unotest/grounder-client`):** `captureRawTree` takes the helpers object as its first parameter, so passing it straight to `page.evaluate(captureRawTree)` no longer works (evaluate arguments are JSON-serialized and cannot carry the helpers). Migration: inject the serialized script instead — `page.evaluate(domWalkerScript())` — which composes the helpers automatically. New exports: `createDomHelpers`, `composeInjectedScript`, `InjectedDomHelpers`, `DomHelperOptions`, `InjectedScriptOptions`.
217
+
218
+ `@unotest/web` behavior deltas from unifying on the walker's ARIA mapping: `get_aria_snapshot` now maps `dl` to `list` (`dt`/`dd` stay name-only) and `tbody`/`thead`/`tfoot` to `rowgroup`, and never names structural containers from their text content; `find_element` matches against the full W3C accname (label-for lookup, composed multi-child names) instead of a reduced approximation.
219
+
220
+ - 0d31a8e: Recorded assertions and one-call test authoring in exploration mode. Six new recordable actions — `assert_text`, `assert_visible`, `assert_hidden`, `assert_value`, `assert_count`, `assert_url` — available in `explore_step`, `explore_steps` and `explore_record`; they execute live through the same poll-until-timeout cores as the runtime `assertText(...)` family (extracted to `dsl/assert-core.ts`), so a recorded assert has already passed against the real page and the generated DSL carries the matching assert lines. Assert steps count as verification for the `NO_VERIFICATION` save gate. New `autoRun: true` flag on `explore_steps` (requires `explorationId`): when every step succeeds, a verification step is recorded, the draft has no blocking warnings (`FRAGILE_LOCATOR` is informational — it passes and rides along in the reply; `DYNAMIC_TEXT` / `NO_DSL_PRIMITIVE` block, mirroring save's policy) and the target file is new, the same call stops the session, saves `unotest/e2e/<scenarioName>.js`, resets the browser context and runs the test with `run_test` semantics (`autoRun.run.next.outcome`); any gate failure degrades to `autoRun.status: "skipped"` + reason with the session left active. The green happy-path shrinks to `new_context` → `explore_start` → `explore_steps {…, autoRun: true}`. `UNOTEST_TOOLSET=core` unchanged — asserts are actions, not tools.
221
+ - 2b2c957: Two MCP round-trips removed from every authoring flow.
222
+
223
+ `explore_step` / `explore_steps` now reply with `url` whenever the step
224
+ CHANGED the page address — the same cure `groundedTo` gave intents, applied to
225
+ navigation: after a batch the agent reads where it ended up instead of spending
226
+ a call on `get_active_context` / `get_url`. Unchanged addresses print nothing,
227
+ so a batch of ten clicks on one page adds no lines.
228
+
229
+ `explore_start` opens the browser context itself when none is open, so the
230
+ `new_context` prologue is gone from the happy path. `new_context` keeps its
231
+ role as the explicit RESET (between the recording and the first run, and inside
232
+ `autoRun`); an existing or attached collaborative context is never re-created.
233
+
234
+ - 9f80b38: Steps whose locator was an intent now report `groundedTo` — the element
235
+ line the grounder resolved it to (`checkbox "Select row R-00147" (in row
236
+ "Row R-00147: … Pending …")`), per locator argument. Present on
237
+ `explore_step`, every step of an `explore_steps` batch, and
238
+ `explore_record`.
239
+
240
+ Until now a step's reply said only `executed / recorded / success`, so an
241
+ agent could not tell WHICH element a positional intent hit without a
242
+ separate `ground_element` probe — grounding the same intent twice. A live
243
+ run spent 4 extra calls and doubled grounder time doing exactly that. The
244
+ skill and the tool descriptions now point at `groundedTo` instead.
245
+
246
+ - 7ed750c: New `screenshot(name?, {fullPage?})` DSL command — on-demand PNG capture
247
+ of the active page into `unotest/.runs/<runId>/screenshot/<NNN>-<name>.png`
248
+ (returns the project-relative path). Evidence tool for green runs: fixes
249
+ what the page actually looked like at a chosen point. Each capture is
250
+ also mirrored as a `screenshot` RunArtifact event, so the viewer's event
251
+ stream links to it. In runtimes with no artifact dir (exploration) the
252
+ call logs a warning and returns `null` instead of failing the run.
253
+
254
+ ### Patch Changes
255
+
256
+ - 30c491b: The `write-e2e-test-ground` skill now records batch-first: when the task brief already spells out the step sequence, Phase 2 sends it as one `explore_steps` call (goto included, intent locators ground at execution time) instead of one `explore_step` per action, with a repair recipe for mid-batch failures. A/B across four eval tasks showed equal-or-better scores with fewer calls, lower cost, and 9–38% less agent time. The snapshot-mode skill is unchanged — its ref discipline requires a snapshot before locator steps, so pre-discovery batching does not apply.
257
+ - 574841f: Dedup pass across the tree (jscpd 0 clones, ratchet threshold 0). New public export in `@unotest/grounder-client`: `intEnvInRange(env, name, def, min, max)` — the `UNOTEST_GROUNDER_*` integer-env parser shared by the consumer side and the grounder server. Everything else is internal refactoring with no behavior change: protocol gains a shared fs-safe-name validator behind `validateCollectionName` / `validateSegmentName` and a shared env-file assignment iterator; core's `RuntimeInspection` becomes a `Pick` of `RuntimeStateFile`; dsl's `ExecutionWalker` threads one `WalkCtx` object instead of an eight-argument clump and AST nodes use constructor parameter properties; web deduplicates the MCP tool scaffolds, action plugins, DSL contracts, perception LRU caches, and semantic-dom grouping passes.
258
+ - 080ea5a: Grounder infra resilience. The MCP server now runs a cheap grounder
259
+ reachability ping at startup when `UNOTEST_GROUNDER_MODE` is `local` or
260
+ `remote` (`/api/tags` for local ollama, `/health` for a remote grounding
261
+ server) — non-blocking, warning-only. Network-level failures on the
262
+ intent / `ground_element` path are wrapped into a typed
263
+ `GrounderUnreachableError` citing the backend URL, a mode-specific fix
264
+ hint and the boot-time health verdict, instead of surfacing undici's raw
265
+ `fetch failed`. The ground-mode skill now spells out the exact fallback
266
+ recipe: a single `{kind:"intent"}` step, the `ref` from `find_element`,
267
+ or the ready-made `locator` object from `ground_element` — hand-assembled
268
+ `getByRole`/`css` locators are rejected in recording mode.
269
+ - Updated dependencies [7324966]
270
+ - Updated dependencies [7ed750c]
271
+ - Updated dependencies [b5b9710]
272
+ - Updated dependencies [574841f]
273
+ - Updated dependencies [65eb77c]
274
+ - Updated dependencies [f106cf8]
275
+ - Updated dependencies [856f087]
276
+ - Updated dependencies [78f850f]
277
+ - Updated dependencies [1bd55ba]
278
+ - Updated dependencies [337a31c]
279
+ - @unotest/grounder-client@0.10.0
280
+ - @unotest/dsl@0.10.0
281
+ - @unotest/protocol@0.10.0
282
+ - @unotest/core@0.10.0
283
+ - @unotest/viewer@0.10.0
284
+
285
+ ## [0.9.2] - 2026-06-16
286
+
287
+ ### Added
288
+
289
+ - **Run snapshot export.** A finished run can be exported as a portable
290
+ `*.unotest.zip` bundle (events + captured artifacts) for a teammate to open in
291
+ their own viewer. The runner now records `console` / `network` capture flags in
292
+ the run manifest so a re-rendered snapshot shows "capture was off" rather than an
293
+ empty console, and `unotest/.snapshots/` is added to the generated `.gitignore`.
294
+
295
+ ### Fixed
296
+
297
+ - **Locator picker survives navigation and reaches into shadow DOM.** A navigation
298
+ that tore down the JS context mid-drain now surfaces as a typed
299
+ `ExecutionContextDestroyedError`, so the picker overlay reports not-alive and
300
+ self-heals (re-stamp refs + re-inject) instead of logging a dead end. Hit-testing
301
+ descends through open shadow roots and ref-lookup climbs back out across shadow
302
+ boundaries, keeping the picked element and its stamped ref symmetric with the
303
+ snapshot capture.
304
+
8
305
  ## [0.9.1] - 2026-06-14
9
306
 
10
307
  ### Added
@@ -121,16 +121,23 @@ declare const SandboxConfigSchema: z.ZodObject<{
121
121
  database: z.ZodOptional<z.ZodString>;
122
122
  /** Base URL for `apiCall(method, path, body?, headers?)`. The path
123
123
  * passed to `apiCall` MUST be relative (starts with `/`); absolute
124
- * URLs are rejected at runtime. */
124
+ * URLs are rejected at runtime. Additional bases come from env
125
+ * variables via `apiCall(..., {base: "API_BASE_X"})`. */
125
126
  apiBaseUrl: z.ZodOptional<z.ZodString>;
127
+ /** Root for `upload()` fixtures. Relative upload paths resolve
128
+ * against it and may not escape it. Defaults to the project root
129
+ * (the runner's cwd). */
130
+ uploadDir: z.ZodOptional<z.ZodString>;
126
131
  }, "strip", z.ZodTypeAny, {
127
132
  shellCwd?: string | undefined;
128
133
  database?: string | undefined;
129
134
  apiBaseUrl?: string | undefined;
135
+ uploadDir?: string | undefined;
130
136
  }, {
131
137
  shellCwd?: string | undefined;
132
138
  database?: string | undefined;
133
139
  apiBaseUrl?: string | undefined;
140
+ uploadDir?: string | undefined;
134
141
  }>;
135
142
  type SandboxConfig = z.infer<typeof SandboxConfigSchema>;
136
143
  declare const WebServerConfigSchema: z.ZodObject<{
@@ -150,13 +157,13 @@ declare const WebServerConfigSchema: z.ZodObject<{
150
157
  /** How long to wait for the URL to come up after spawning. */
151
158
  timeoutMs: z.ZodDefault<z.ZodNumber>;
152
159
  }, "strip", z.ZodTypeAny, {
153
- command: string;
154
160
  url: string;
161
+ command: string;
155
162
  reuseExistingServer: boolean;
156
163
  timeoutMs: number;
157
164
  }, {
158
- command: string;
159
165
  url: string;
166
+ command: string;
160
167
  reuseExistingServer?: boolean | undefined;
161
168
  timeoutMs?: number | undefined;
162
169
  }>;
@@ -184,13 +191,13 @@ declare const UnotestConfigSchema: z.ZodObject<{
184
191
  /** How long to wait for the URL to come up after spawning. */
185
192
  timeoutMs: z.ZodDefault<z.ZodNumber>;
186
193
  }, "strip", z.ZodTypeAny, {
187
- command: string;
188
194
  url: string;
195
+ command: string;
189
196
  reuseExistingServer: boolean;
190
197
  timeoutMs: number;
191
198
  }, {
192
- command: string;
193
199
  url: string;
200
+ command: string;
194
201
  reuseExistingServer?: boolean | undefined;
195
202
  timeoutMs?: number | undefined;
196
203
  }>>;
@@ -281,8 +288,11 @@ declare const UnotestConfigSchema: z.ZodObject<{
281
288
  defaultTimeoutMs: z.ZodNumber;
282
289
  /** Default timeout for navigation (goto / reload / waitForUrl) AND
283
290
  * for click/doubleClick's post-action navigation wait. Real web
284
- * pages routinely take 5–10s to fire `load`; 15000ms is the sweet
285
- * spot between reliability and time-to-failure on a misclick.
291
+ * pages routinely take 5–10s to fire `load`, and heavy legacy sites
292
+ * (bricklink-class) blow through 15s on a cold load — two live-run
293
+ * failures 2026-07-16 were correct waits that just ran out of budget.
294
+ * 30000ms trades slower failure on a misclick for not flaking on
295
+ * slow-but-correct navigation.
286
296
  * Override via `UNOTEST_DEFAULT_NAVIGATION_TIMEOUT_MS`. */
287
297
  defaultNavigationTimeoutMs: z.ZodNumber;
288
298
  linter: z.ZodObject<{
@@ -310,16 +320,23 @@ declare const UnotestConfigSchema: z.ZodObject<{
310
320
  database: z.ZodOptional<z.ZodString>;
311
321
  /** Base URL for `apiCall(method, path, body?, headers?)`. The path
312
322
  * passed to `apiCall` MUST be relative (starts with `/`); absolute
313
- * URLs are rejected at runtime. */
323
+ * URLs are rejected at runtime. Additional bases come from env
324
+ * variables via `apiCall(..., {base: "API_BASE_X"})`. */
314
325
  apiBaseUrl: z.ZodOptional<z.ZodString>;
326
+ /** Root for `upload()` fixtures. Relative upload paths resolve
327
+ * against it and may not escape it. Defaults to the project root
328
+ * (the runner's cwd). */
329
+ uploadDir: z.ZodOptional<z.ZodString>;
315
330
  }, "strip", z.ZodTypeAny, {
316
331
  shellCwd?: string | undefined;
317
332
  database?: string | undefined;
318
333
  apiBaseUrl?: string | undefined;
334
+ uploadDir?: string | undefined;
319
335
  }, {
320
336
  shellCwd?: string | undefined;
321
337
  database?: string | undefined;
322
338
  apiBaseUrl?: string | undefined;
339
+ uploadDir?: string | undefined;
323
340
  }>;
324
341
  }, "strip", z.ZodTypeAny, {
325
342
  browsers: ("chromium" | "firefox" | "webkit")[];
@@ -360,11 +377,12 @@ declare const UnotestConfigSchema: z.ZodObject<{
360
377
  shellCwd?: string | undefined;
361
378
  database?: string | undefined;
362
379
  apiBaseUrl?: string | undefined;
380
+ uploadDir?: string | undefined;
363
381
  };
364
382
  baseUrl?: string | undefined;
365
383
  webServer?: {
366
- command: string;
367
384
  url: string;
385
+ command: string;
368
386
  reuseExistingServer: boolean;
369
387
  timeoutMs: number;
370
388
  } | undefined;
@@ -409,11 +427,12 @@ declare const UnotestConfigSchema: z.ZodObject<{
409
427
  shellCwd?: string | undefined;
410
428
  database?: string | undefined;
411
429
  apiBaseUrl?: string | undefined;
430
+ uploadDir?: string | undefined;
412
431
  };
413
432
  baseUrl?: string | undefined;
414
433
  webServer?: {
415
- command: string;
416
434
  url: string;
435
+ command: string;
417
436
  reuseExistingServer?: boolean | undefined;
418
437
  timeoutMs?: number | undefined;
419
438
  } | undefined;
@@ -1 +1 @@
1
- var _0x4b4ff9=_0x31c8;(function(_0x4ef68e,_0x2ff5c6){var _0x3f1675={_0x3a326e:0x163,_0x54f536:0x18c,_0x166f0e:0x16e,_0x4e62de:0x184,_0x3312cb:0x15e,_0x1e47d2:0x17b},_0x3988c2=_0x31c8,_0x4ac811=_0x4ef68e();while(!![]){try{var _0x4564cd=-parseInt(_0x3988c2(0x17d))/0x1*(-parseInt(_0x3988c2(0x186))/0x2)+parseInt(_0x3988c2(_0x3f1675._0x3a326e))/0x3+-parseInt(_0x3988c2(_0x3f1675._0x54f536))/0x4*(parseInt(_0x3988c2(0x166))/0x5)+parseInt(_0x3988c2(_0x3f1675._0x166f0e))/0x6+parseInt(_0x3988c2(_0x3f1675._0x4e62de))/0x7*(parseInt(_0x3988c2(_0x3f1675._0x3312cb))/0x8)+parseInt(_0x3988c2(0x15c))/0x9*(-parseInt(_0x3988c2(0x18b))/0xa)+-parseInt(_0x3988c2(_0x3f1675._0x1e47d2))/0xb*(parseInt(_0x3988c2(0x160))/0xc);if(_0x4564cd===_0x2ff5c6)break;else _0x4ac811['push'](_0x4ac811['shift']());}catch(_0x403cfa){_0x4ac811['push'](_0x4ac811['shift']());}}}(_0x3422,0x1f3c5));function _0x31c8(_0xed4411,_0x2de1dd){_0xed4411=_0xed4411-0x150;var _0x342232=_0x3422();var _0x31c863=_0x342232[_0xed4411];if(_0x31c8['zKgNuR']===undefined){var _0xe1f7d7=function(_0x15c9b7){var _0x2fcc8a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x2f850d='',_0x3b47d0='';for(var _0x48180b=0x0,_0x2a6cd7,_0x3b96a7,_0x41d138=0x0;_0x3b96a7=_0x15c9b7['charAt'](_0x41d138++);~_0x3b96a7&&(_0x2a6cd7=_0x48180b%0x4?_0x2a6cd7*0x40+_0x3b96a7:_0x3b96a7,_0x48180b++%0x4)?_0x2f850d+=String['fromCharCode'](0xff&_0x2a6cd7>>(-0x2*_0x48180b&0x6)):0x0){_0x3b96a7=_0x2fcc8a['indexOf'](_0x3b96a7);}for(var _0x2c34b8=0x0,_0x3d7d2e=_0x2f850d['length'];_0x2c34b8<_0x3d7d2e;_0x2c34b8++){_0x3b47d0+='%'+('00'+_0x2f850d['charCodeAt'](_0x2c34b8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b47d0);};_0x31c8['BEcFSJ']=_0xe1f7d7,_0x31c8['mudoHD']={},_0x31c8['zKgNuR']=!![];}var _0x2e12dc=_0x342232[0x0],_0x113424=_0xed4411+_0x2e12dc,_0xace658=_0x31c8['mudoHD'][_0x113424];return!_0xace658?(_0x31c863=_0x31c8['BEcFSJ'](_0x31c863),_0x31c8['mudoHD'][_0x113424]=_0x31c863):_0x31c863=_0xace658,_0x31c863;}import{z}from'zod';function _0x3422(){var _0x433420=['DMfSAwrHDg9YoMz1BMn0Aw9UlxnOyxbL','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlwv4ChjLC3nPB24','BgLUDdPVyMz1C2nHDgvKlwnSyxnZ','y3jHC2G','BNvSBa','D2vIA2L0','zxjYB3i','nJnsEgviB0S','C3rKAw8','otG0A013C3fJ','zw51Bq','mtjbvhfmBgK','C3rYAw5N','BwfUDwfS','mZKYotm3ywzXwKDs','y2HYB21LlwjLDge','ywnJzxb0','nuvYwxzTuG','Dw5VDgvZDc9LmMu','DMfSAwrHDg9YoNnLBwfUDgLJlwXVC3m','BgL0zxjHBa','BgLUDdPZy2vUyxjPBY1PBI1YB290','BgLUDdPWyxvZzs1LEhbSAwnPDa','DxjS','y2HYB21PDw0','mZGZmtKWEu9Iu3Dw','DMfSAwrHDg9YoNn0CMLUzY1JB25Jyxq','yxjYyxK','BNvTyMvY','BwLU','B3b0Aw9UywW','D2fYBG','DMfSAwrHDg9YoMLMlxnOyxbL','lNvUB3rLC3qVzMfPBhvYzxm','BMv0D29YAW','zgvMyxvSDa','DMfSAwrHDg9YoMfYAxr5','Aw50','mtK3nde4mxfeyu1fAq','BxnLzgDL','mZeXmdzAs0vrAuu','Bwf4','CMvJB3jK','Cg9ZAxrPDMu','DMfSAwrHDg9YoNzHCI1ZAgfWzq','DMfSAwrHDg9YoM1LDgeTC2HHCgu','DhjHBNnPzw50','ntuZn2DpDwf0sa','zgLZBwLZCW','nejlzhffva','DMfSAwrHDg9YoNDYyxbWzwqTzM9YBwf0','DMfSAwrHDg9YoMzVCI1ZAgfWzq','DMfSAwrHDg9YoMXPC3qTyxjN','Dw5PB24','mJy3mdbMuuPhteu','mteYotG4vw9fvK5M','B2jQzwn0','Dw5VDgvZDc9LmMuVx2HLBhbLCNm','DMfSAwrHDg9YoNvUA25VD24TzNvUy3rPB24','y2HYB21L','yM9VBgvHBG'];_0x3422=function(){return _0x433420;};return _0x3422();}var BrowserSchema=z[_0x4b4ff9(0x15f)](['chromium','firefox',_0x4b4ff9(0x15a)]),BrowserChannelSchema=z[_0x4b4ff9(0x18a)]([z[_0x4b4ff9(0x169)](_0x4b4ff9(0x153)),z[_0x4b4ff9(0x169)](_0x4b4ff9(0x17c)),z['literal'](_0x4b4ff9(0x164)),z[_0x4b4ff9(0x159)]()])['optional'](),ViewportSchema=z[_0x4b4ff9(0x150)]({'width':z[_0x4b4ff9(0x171)]()['int']()[_0x4b4ff9(0x180)](),'height':z[_0x4b4ff9(0x171)]()['int']()[_0x4b4ff9(0x180)]()}),RetryReasonSchema=z['enum']([_0x4b4ff9(0x183),_0x4b4ff9(0x177),_0x4b4ff9(0x158)]),RetryConfigSchema=z[_0x4b4ff9(0x150)]({'count':z[_0x4b4ff9(0x171)]()[_0x4b4ff9(0x17a)]()[_0x4b4ff9(0x172)](0x0)[_0x4b4ff9(0x17e)](0xa),'on':z['array'](RetryReasonSchema)}),FailureBundleConfigSchema=z[_0x4b4ff9(0x150)]({'tier1':z[_0x4b4ff9(0x169)](!![])['default'](!![]),'tier2':z[_0x4b4ff9(0x154)](),'tier3':z['object']({'network':z['boolean'](),'video':z['boolean']()}),'retention':z[_0x4b4ff9(0x150)]({'runs':z[_0x4b4ff9(0x171)]()['int']()['positive'](),'days':z['number']()[_0x4b4ff9(0x17a)]()[_0x4b4ff9(0x180)]()}),'storageDir':z[_0x4b4ff9(0x161)]()['min'](0x1)}),DialogPolicySchema=z[_0x4b4ff9(0x15f)]([_0x4b4ff9(0x165),_0x4b4ff9(0x185),_0x4b4ff9(0x162)]),LinterRuleIdSchema=z[_0x4b4ff9(0x15f)](['lint:deep-css','lint:xpath',_0x4b4ff9(0x157),_0x4b4ff9(0x16b),'lint:disambig-by-index','lint:evaluate-discouraged',_0x4b4ff9(0x16a),'lint:mustache-in-dsl',_0x4b4ff9(0x152),_0x4b4ff9(0x179),'validator:arg-kind','validator:step-coverage','validator:step-shape',_0x4b4ff9(0x182),_0x4b4ff9(0x155),_0x4b4ff9(0x188),_0x4b4ff9(0x175),_0x4b4ff9(0x181),'validator:unsupported-statement',_0x4b4ff9(0x156),_0x4b4ff9(0x16f),_0x4b4ff9(0x168),_0x4b4ff9(0x189),_0x4b4ff9(0x187)]),LinterSeveritySchema=z[_0x4b4ff9(0x15f)](['off',_0x4b4ff9(0x174),'error']),LinterConfigSchema=z['object']({'enabled':z['boolean'](),'rules':z[_0x4b4ff9(0x17f)](LinterRuleIdSchema,LinterSeveritySchema)}),McpConfigSchema=z[_0x4b4ff9(0x150)]({'transport':z[_0x4b4ff9(0x169)](_0x4b4ff9(0x15d))}),SandboxConfigSchema=z[_0x4b4ff9(0x150)]({'shellCwd':z['string']()['optional'](),'database':z[_0x4b4ff9(0x161)]()[_0x4b4ff9(0x173)](),'apiBaseUrl':z[_0x4b4ff9(0x161)]()['url']()[_0x4b4ff9(0x173)]()}),WebServerConfigSchema=z['object']({'command':z[_0x4b4ff9(0x161)]()[_0x4b4ff9(0x172)](0x1),'url':z[_0x4b4ff9(0x161)]()[_0x4b4ff9(0x16c)](),'reuseExistingServer':z['boolean']()[_0x4b4ff9(0x178)](!![]),'timeoutMs':z['number']()[_0x4b4ff9(0x17a)]()[_0x4b4ff9(0x180)]()['default'](0xea60)}),UnotestConfigSchema=z[_0x4b4ff9(0x150)]({'baseUrl':z['string']()[_0x4b4ff9(0x16c)]()[_0x4b4ff9(0x173)](),'webServer':WebServerConfigSchema[_0x4b4ff9(0x173)](),'browsers':z[_0x4b4ff9(0x170)](BrowserSchema)['min'](0x1),'channel':BrowserChannelSchema,'viewport':ViewportSchema,'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':z[_0x4b4ff9(0x161)]()[_0x4b4ff9(0x173)](),'testDir':z[_0x4b4ff9(0x161)]()[_0x4b4ff9(0x172)](0x1),'helpersDir':z['string']()[_0x4b4ff9(0x172)](0x1),'defaultTimeoutMs':z[_0x4b4ff9(0x171)]()['int']()[_0x4b4ff9(0x180)](),'defaultNavigationTimeoutMs':z['number']()[_0x4b4ff9(0x17a)]()[_0x4b4ff9(0x180)](),'linter':LinterConfigSchema,'mcp':McpConfigSchema,'sandbox':SandboxConfigSchema}),DEFAULT_CONFIG={'browsers':[_0x4b4ff9(0x16d)],'viewport':{'width':0x500,'height':0x2d0},'retry':{'count':0x0,'on':[_0x4b4ff9(0x183)]},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':_0x4b4ff9(0x176)},'dialogPolicy':'accept','testDir':_0x4b4ff9(0x167),'helpersDir':_0x4b4ff9(0x151),'defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x3a98,'linter':{'enabled':!![],'rules':{'lint:deep-css':_0x4b4ff9(0x174),'lint:xpath':_0x4b4ff9(0x174),'lint:obfuscated-class':_0x4b4ff9(0x174),'lint:pause-explicit':'warn','lint:disambig-by-index':'off','lint:evaluate-discouraged':'warn','lint:scenario-in-root':_0x4b4ff9(0x15b),'lint:mustache-in-dsl':_0x4b4ff9(0x15b),'validator:unknown-function':_0x4b4ff9(0x15b)}},'mcp':{'transport':_0x4b4ff9(0x15d)},'sandbox':{}};export{BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,RetryConfigSchema,RetryReasonSchema,SandboxConfigSchema,UnotestConfigSchema,ViewportSchema,WebServerConfigSchema};
1
+ function _0xbf3c(){var _0x5a10e4=['zgvMyxvSDa','nZaZnZDkrwX3y0S','DMfSAwrHDg9YoNn0zxaTy292zxjHz2u','mtaXnZiXm1riAMTSDG','mZnyzhzhvg4','zMLYzwzVEa','DMfSAwrHDg9YoNn0CMLUzY1JB25Jyxq','mtK1mZqYthPkwhPg','ohjqwxfcBa','lNvUB3rLC3qVzMfPBhvYzxm','D2fYBG','BxnLzgDL','BgLUDdPVyMz1C2nHDgvKlwnSyxnZ','DMfSAwrHDg9YoM1LDgeTC2HHCgu','Cg9ZAxrPDMu','B3b0Aw9UywW','DMfSAwrHDg9YoNzHCI1ZAgfWzq','BNvSBa','B2jQzwn0','mJu1nZu2mffKrevZEq','BwfUDwfS','y2HYB21PDw0','yxjYyxK','DMfSAwrHDg9YoNDYyxbWzwqTzM9YBwf0','BgLUDdPZy2vUyxjPBY1PBI1YB290','Bwf4','C3rYAw5N','nvrIEKz2uq','mJrfCe1AEee','BNvTyMvY','yM9VBgvHBG','DMfSAwrHDg9YoNvUA25VD24TzNvUy3rPB24','mtqZwK5wBKPy','BgLUDdPTDxn0ywnOzs1PBI1KC2W','Aw50','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlxn0yxrLBwvUDa','DMfSAwrHDg9YoMXPC3qTyxjN','DMfSAwrHDg9YoMzVCI1ZAgfWzq','ywnJzxb0','BgLUDdPKAxnHBwjPzY1IEs1PBMrLEa','C3rKAw8','B2zM','BgLUDdPWyxvZzs1LEhbSAwnPDa','ntuZzhrbsufk','DxjS','zxjYB3i','y2HYB21L','y2HYB21LlwjLDge','mtqXndq1ogLKz3rmtW','CMvJB3jK','mteWotG2ohDLv3LyBa','zw51Bq','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlwv4ChjLC3nPB24','nJu0nJrpt2TzrgO','y3jHC2G','BwLU','Dw5VDgvZDc9LmMu','Dw5VDgvZDc9LmMuVx2HLBhbLCNm','BgLUDdPLDMfSDwf0zs1KAxnJB3vYywDLza','BgL0zxjHBa','DMfSAwrHDg9YoNn0zxaTC2HHCgu'];_0xbf3c=function(){return _0x5a10e4;};return _0xbf3c();}var _0x5b7026=_0x4a4e;(function(_0x2f37c3,_0xd597d6){var _0x574d49={_0x201899:0x172,_0xd15309:0x171,_0x5646ca:0x158,_0x1341cf:0x15d,_0x1122e5:0x17d},_0x412659=_0x4a4e,_0x24087b=_0x2f37c3();while(!![]){try{var _0x157f85=-parseInt(_0x412659(0x16b))/0x1*(-parseInt(_0x412659(0x149))/0x2)+parseInt(_0x412659(0x16d))/0x3*(parseInt(_0x412659(_0x574d49._0x201899))/0x4)+parseInt(_0x412659(0x185))/0x5*(-parseInt(_0x412659(_0x574d49._0xd15309))/0x6)+parseInt(_0x412659(_0x574d49._0x5646ca))/0x7*(-parseInt(_0x412659(0x162))/0x8)+-parseInt(_0x412659(_0x574d49._0x1341cf))/0x9+parseInt(_0x412659(_0x574d49._0x1122e5))/0xa*(parseInt(_0x412659(0x16e))/0xb)+parseInt(_0x412659(0x15f))/0xc*(-parseInt(_0x412659(0x14d))/0xd);if(_0x157f85===_0xd597d6)break;else _0x24087b['push'](_0x24087b['shift']());}catch(_0x5c5156){_0x24087b['push'](_0x24087b['shift']());}}}(_0xbf3c,0x6a89b));import{z}from'zod';var BrowserSchema=z[_0x5b7026(0x160)](['chromium',_0x5b7026(0x16f),'webkit']),BrowserChannelSchema=z['union']([z['literal'](_0x5b7026(0x15b)),z[_0x5b7026(0x168)](_0x5b7026(0x175)),z[_0x5b7026(0x168)](_0x5b7026(0x15c)),z[_0x5b7026(0x17b)]()])[_0x5b7026(0x179)](),ViewportSchema=z[_0x5b7026(0x17c)]({'width':z[_0x5b7026(0x14a)]()[_0x5b7026(0x14f)]()[_0x5b7026(0x178)](),'height':z[_0x5b7026(0x14a)]()['int']()[_0x5b7026(0x178)]()}),RetryReasonSchema=z[_0x5b7026(0x160)](['transient','network',_0x5b7026(0x163)]),RetryConfigSchema=z[_0x5b7026(0x17c)]({'count':z[_0x5b7026(0x14a)]()[_0x5b7026(0x14f)]()[_0x5b7026(0x164)](0x0)[_0x5b7026(0x183)](0xa),'on':z[_0x5b7026(0x180)](RetryReasonSchema)}),FailureBundleConfigSchema=z[_0x5b7026(0x17c)]({'tier1':z[_0x5b7026(0x168)](!![])[_0x5b7026(0x16a)](!![]),'tier2':z['boolean'](),'tier3':z[_0x5b7026(0x17c)]({'network':z[_0x5b7026(0x14b)](),'video':z[_0x5b7026(0x14b)]()}),'retention':z[_0x5b7026(0x17c)]({'runs':z[_0x5b7026(0x14a)]()[_0x5b7026(0x14f)]()[_0x5b7026(0x178)](),'days':z[_0x5b7026(0x14a)]()[_0x5b7026(0x14f)]()[_0x5b7026(0x178)]()}),'storageDir':z[_0x5b7026(0x184)]()['min'](0x1)}),DialogPolicySchema=z[_0x5b7026(0x160)]([_0x5b7026(0x153),'dismiss',_0x5b7026(0x17e)]),LinterRuleIdSchema=z[_0x5b7026(0x160)](['lint:deep-css','lint:xpath',_0x5b7026(0x176),_0x5b7026(0x157),_0x5b7026(0x154),_0x5b7026(0x167),_0x5b7026(0x182),_0x5b7026(0x14e),_0x5b7026(0x14c),'validator:arity','validator:arg-kind',_0x5b7026(0x16c),_0x5b7026(0x169),_0x5b7026(0x177),'validator:function-shape',_0x5b7026(0x152),'validator:if-shape',_0x5b7026(0x17a),_0x5b7026(0x150),_0x5b7026(0x161),_0x5b7026(0x170),'validator:semantic-loss',_0x5b7026(0x151),_0x5b7026(0x181)]),LinterSeveritySchema=z[_0x5b7026(0x160)]([_0x5b7026(0x156),_0x5b7026(0x174),_0x5b7026(0x15a)]),LinterConfigSchema=z[_0x5b7026(0x17c)]({'enabled':z[_0x5b7026(0x14b)](),'rules':z[_0x5b7026(0x15e)](LinterRuleIdSchema,LinterSeveritySchema)}),McpConfigSchema=z[_0x5b7026(0x17c)]({'transport':z['literal'](_0x5b7026(0x155))}),SandboxConfigSchema=z[_0x5b7026(0x17c)]({'shellCwd':z['string']()['optional'](),'database':z[_0x5b7026(0x184)]()[_0x5b7026(0x179)](),'apiBaseUrl':z[_0x5b7026(0x184)]()['url']()[_0x5b7026(0x179)](),'uploadDir':z[_0x5b7026(0x184)]()['optional']()}),WebServerConfigSchema=z[_0x5b7026(0x17c)]({'command':z[_0x5b7026(0x184)]()[_0x5b7026(0x164)](0x1),'url':z['string']()[_0x5b7026(0x159)](),'reuseExistingServer':z[_0x5b7026(0x14b)]()[_0x5b7026(0x16a)](!![]),'timeoutMs':z[_0x5b7026(0x14a)]()[_0x5b7026(0x14f)]()['positive']()[_0x5b7026(0x16a)](0xea60)}),UnotestConfigSchema=z['object']({'baseUrl':z[_0x5b7026(0x184)]()['url']()[_0x5b7026(0x179)](),'webServer':WebServerConfigSchema[_0x5b7026(0x179)](),'browsers':z[_0x5b7026(0x180)](BrowserSchema)[_0x5b7026(0x164)](0x1),'channel':BrowserChannelSchema,'viewport':ViewportSchema,'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':z[_0x5b7026(0x184)]()[_0x5b7026(0x179)](),'testDir':z['string']()['min'](0x1),'helpersDir':z[_0x5b7026(0x184)]()['min'](0x1),'defaultTimeoutMs':z[_0x5b7026(0x14a)]()[_0x5b7026(0x14f)]()[_0x5b7026(0x178)](),'defaultNavigationTimeoutMs':z[_0x5b7026(0x14a)]()[_0x5b7026(0x14f)]()[_0x5b7026(0x178)](),'linter':LinterConfigSchema,'mcp':McpConfigSchema,'sandbox':SandboxConfigSchema}),DEFAULT_CONFIG={'browsers':[_0x5b7026(0x17f)],'viewport':{'width':0x500,'height':0x2d0},'retry':{'count':0x0,'on':['transient']},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':_0x5b7026(0x173)},'dialogPolicy':_0x5b7026(0x153),'testDir':_0x5b7026(0x165),'helpersDir':_0x5b7026(0x166),'defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x7530,'linter':{'enabled':!![],'rules':{'lint:deep-css':_0x5b7026(0x174),'lint:xpath':_0x5b7026(0x174),'lint:obfuscated-class':'warn','lint:pause-explicit':_0x5b7026(0x174),'lint:disambig-by-index':_0x5b7026(0x156),'lint:evaluate-discouraged':'warn','lint:scenario-in-root':_0x5b7026(0x15a),'lint:mustache-in-dsl':_0x5b7026(0x15a),'validator:unknown-function':_0x5b7026(0x15a)}},'mcp':{'transport':_0x5b7026(0x155)},'sandbox':{}};function _0x4a4e(_0x5a0c8d,_0x24a94e){_0x5a0c8d=_0x5a0c8d-0x149;var _0xbf3c28=_0xbf3c();var _0x4a4e14=_0xbf3c28[_0x5a0c8d];if(_0x4a4e['ZZiVPP']===undefined){var _0x3cbfd6=function(_0x5b8e52){var _0x1d90b9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x23a664='',_0x5dd330='';for(var _0x54bc48=0x0,_0x2de8ed,_0xc5f58c,_0x271a4b=0x0;_0xc5f58c=_0x5b8e52['charAt'](_0x271a4b++);~_0xc5f58c&&(_0x2de8ed=_0x54bc48%0x4?_0x2de8ed*0x40+_0xc5f58c:_0xc5f58c,_0x54bc48++%0x4)?_0x23a664+=String['fromCharCode'](0xff&_0x2de8ed>>(-0x2*_0x54bc48&0x6)):0x0){_0xc5f58c=_0x1d90b9['indexOf'](_0xc5f58c);}for(var _0x599abd=0x0,_0x439dac=_0x23a664['length'];_0x599abd<_0x439dac;_0x599abd++){_0x5dd330+='%'+('00'+_0x23a664['charCodeAt'](_0x599abd)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5dd330);};_0x4a4e['BLwFta']=_0x3cbfd6,_0x4a4e['JKObLm']={},_0x4a4e['ZZiVPP']=!![];}var _0x25b54b=_0xbf3c28[0x0],_0x2f5e17=_0x5a0c8d+_0x25b54b,_0x298485=_0x4a4e['JKObLm'][_0x2f5e17];return!_0x298485?(_0x4a4e14=_0x4a4e['BLwFta'](_0x4a4e14),_0x4a4e['JKObLm'][_0x2f5e17]=_0x4a4e14):_0x4a4e14=_0x298485,_0x4a4e14;}export{BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,RetryConfigSchema,RetryReasonSchema,SandboxConfigSchema,UnotestConfigSchema,ViewportSchema,WebServerConfigSchema};
@@ -1,5 +1,5 @@
1
- import { E as ElementHint, N as NetworkEntry, W as WebDriver, L as LaunchOptions, C as ContextOptions, D as DriverContext } from '../interfaces-dbZG10RS.js';
2
- export { A as ActionTimeout, a as CheckOptions, b as ClickOptions, c as CookieOptions, d as DriverPage, F as FillOptions, G as GotoOptions, H as HoverOptions, e as NavigationOptions, P as PressOptions, R as ReloadOptions, S as ScreenshotOptions, f as SelectOptions, V as Viewport, g as WaitOptions, h as WaitState } from '../interfaces-dbZG10RS.js';
1
+ import { E as ElementHint, N as NetworkEntry, W as WebDriver, L as LaunchOptions, C as ContextOptions, D as DriverContext } from '../interfaces-MxHi1Air.js';
2
+ export { A as ActionTimeout, a as CheckOptions, b as ClickOptions, c as CookieOptions, d as DriverPage, F as FillOptions, G as GotoOptions, H as HoverOptions, e as NavigationOptions, P as PressOptions, R as ReloadOptions, S as ScreenshotOptions, f as SelectOptions, V as Viewport, g as WaitOptions, h as WaitState } from '../interfaces-MxHi1Air.js';
3
3
  import '@unotest/protocol';
4
4
  import '../config/schema.js';
5
5
  import 'zod';
@@ -27,6 +27,9 @@ interface FakeBehavior {
27
27
  inputValueByDefault?: string;
28
28
  /** Default isVisible() response. Default: true. */
29
29
  isVisibleByDefault?: boolean;
30
+ /** Default checkedState() response — null = "not a checkable element",
31
+ * the shape a plain <input type=text> reports. Default: null. */
32
+ checkedStateByDefault?: boolean | null;
30
33
  /** Default URL after newContext. Default: 'about:blank'. */
31
34
  initialUrl?: string;
32
35
  /** If set, every action throws this error on next call (then clears). */
@@ -1 +1 @@
1
- function _0x14f0(){const _0x4ee0b1=['C2v0qwn0AxzLugfNzq','mJGYmtaZmLzYDgzmBG','y29UDgv4Dhm','BM8Gywn0AxzLihbHz2uGAw4Gy29UDgv4Da','ChvZAa','y3r4','D2fPDezVCG','C2nYzwvUC2HVDa','ywn0AxzLugfNzq','BgvUz3rO','zhjPDMvY','Bg9JywXtDg9YywDLu3rHDgu','zxHPDezYyw1L','zw50zxjgCMfTzq','mtC1nZyYmNDjwuzPDa','Bgf1BMnO','D2fPDezVCLrLEhq','Aw5WDxrwywX1zq','D2fPDezVCK5HDMLNyxrPB24','zhjHz0fUzerYB3a','CMvM','zgvMAw5LuhjVCgvYDhK','Bg9JywXtDg9YywDL','y29UBMvJDfnOyxjLza','y29VA2LLu3rHDgu','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','B25bzNrLCKnSAwnR','yxr0CMLIDxrLC0j5rgvMyxvSDa','rhjPDMvYrxjYB3i','z290BW','rMfRzvbHz2u','y2fSBhm','y29VA2LLCW','BMfTzq','z29cywnR','z2v0q29VA2LL','zgvSzxrL','yxr0ywnOrxHPC3rPBMC','Ag92zxi','nJuWndGYAfHjCwj5','y29UDgv4Da','Dw5JAgvJAW','zNjLzxPL','CMvJB3jK','CMvSB2fK','pgrPDJ48l2rPDJ4','Aw5WDxrwywX1zuj5rgvMyxvSDa','y3jLyxrLuMvJB3jKzxi','Dgv4DenVBNrLBNrcEurLzMf1Bhq','y3vYCMvUDfvYBa','Cg9WDxbpBKnSAwnR','mtaWnte1mNbJv1vwvq','ChjLC3m','C3rLChm','lNbHz2uW','ywrK','mZK1ntK4u0Lxsw5z','yMvOyxzPB3i','y2XVC2u','DgL0Bgu','CMvJB3jKzxi','C2f2zvn0B3jHz2vtDgf0zq','A2LUza','zxjYB3jpBK5LEhrby3rPB24','zNjHBwvtDgfJAW','zwXLBwvUDeHPBNrcEvjLzG','zw50zxjgCMfTzsbJywXSzwqGD2L0AcbLBxb0EsbSB2nHDg9Y','Aw5PDgLHBfvYBa','BMv3ugfNzuXPC3rLBMvYCW','CgfNzuXPC3q','zMfRzsb0AxrSzq','zMLSBa','C2nYB2XSsw50B1zPzxC','Bgf1BMnOzwq','Dgv4DenVBNrLBNq','zNjHBwvezxb0Aa','ywn0AxzLswr4','z29gB3j3yxjK','y2fSBhngB3i','odiWmtyXm0Hdu01itW','z2v0tg9JywXtDg9YywDL','y29UC29SzuvUDhjPzxm','ntG3nZi2nfr2tNLMEq','zg91yMXLq2XPy2S','zxzHBhvHDgvpBKXVy2f0B3i','Cg9W','lNbHz2u','DxbSB2fKrMLSzq','iJ48l2rPDJ4','C2vSzwn0t3b0Aw9U','BMv3q29UDgv4Da','C2v0q29VA2LL','BMv3q29UDgv4DcbJywXSzwqGyMvMB3jLigXHDw5JAcGP','AxnwAxnPyMXL','Aw5ZCgvJDevSzw1LBNq','y291BNq','nwvqD1Hsyq','Bwf5yMvuAhjVDW','zxzHBhvHDgu','Bwv0Ag9K','z2v0qxr0CMLIDxrL','zw1PDezHA2vqB3b1Ca','rMfRzvDLyKrYAxzLCG','C2nVCgu','C2v0tg9JywXtDg9YywDL','y2XPCgjVyxjKugfZDgu','vw5VDgvZDevYCM9Y','BMv0D29YA0vUDhjPzxm','pgrPDIbKyxrHlxvUB3rLC3qTCMvMpsi','y2HLy2S','y2XPy2S','D2fPDezVCLvYBa','ywjVDxq6yMXHBMS','y2fWDhvYzvn0ywnRvhjHy2u','tg9JyxrVCKvYCM9Y','zNvUy3rPB24','yxr0ywnOrxHPC3rPBMCGBM90ihn1ChbVCNrLzcbIEsbgywTLv2vIrhjPDMvY','owTjBvjTuG','B3v0zxjiDg1SqNLszwy','B25ozxDqywDL','zMfRzs1WBMC'];_0x14f0=function(){return _0x4ee0b1;};return _0x14f0();}const _0x1d0aa9=_0x1047;(function(_0x317790,_0x2f16cc){const _0x25bb38={_0x53ecf7:0x112,_0x214b2b:0x106,_0x5860ee:0x131,_0x435b61:0x117,_0x2ae589:0xe0,_0x48ece8:0xdb},_0x4b437e=_0x1047,_0x19c9dd=_0x317790();while(!![]){try{const _0x5465c4=parseInt(_0x4b437e(_0x25bb38._0x53ecf7))/0x1+parseInt(_0x4b437e(_0x25bb38._0x214b2b))/0x2+-parseInt(_0x4b437e(0xed))/0x3+parseInt(_0x4b437e(_0x25bb38._0x5860ee))/0x4+parseInt(_0x4b437e(0xc6))/0x5*(parseInt(_0x4b437e(_0x25bb38._0x435b61))/0x6)+-parseInt(_0x4b437e(0x12e))/0x7+parseInt(_0x4b437e(_0x25bb38._0x2ae589))/0x8*(-parseInt(_0x4b437e(_0x25bb38._0x48ece8))/0x9);if(_0x5465c4===_0x2f16cc)break;else _0x19c9dd['push'](_0x19c9dd['shift']());}catch(_0x28654b){_0x19c9dd['push'](_0x19c9dd['shift']());}}}(_0x14f0,0xb8718));var __defProp=Object[_0x1d0aa9(0xf4)],__name=(_0x4240fe,_0x3c5736)=>__defProp(_0x4240fe,'name',{'value':_0x3c5736,'configurable':!![]}),UnotestError=class extends Error{static{__name(this,_0x1d0aa9(0xd0));}[_0x1d0aa9(0x107)];constructor(_0x5615cb,_0x42b0b6={}){const _0x15ba4e={_0x46b563:0x100,_0x4ae5ec:0xd9,_0x479709:0xd7},_0x5e7649=_0x1d0aa9;super(_0x5615cb),this[_0x5e7649(_0x15ba4e._0x46b563)]=new.target.name,this[_0x5e7649(0x107)]=Object[_0x5e7649(0x109)]({..._0x42b0b6}),typeof Error[_0x5e7649(0xd7)]===_0x5e7649(_0x15ba4e._0x4ae5ec)&&Error[_0x5e7649(_0x15ba4e._0x479709)](this,new.target);}},DriverError=class extends UnotestError{static{__name(this,_0x1d0aa9(0xfb));}},LocatorError=class extends UnotestError{static{__name(this,_0x1d0aa9(0xd8));}};function createRecorder(){const _0x3af3ea={_0x406429:0xe3,_0x40bd9f:0xfe},_0x201897=_0x1d0aa9,_0x1122e6=[];let _0x5abeac=0x0;return{'push':__name(_0x6c0e32=>_0x1122e6[_0x201897(0xe3)]({..._0x6c0e32,'seq':_0x5abeac++}),_0x201897(_0x3af3ea._0x406429)),'calls':__name(()=>_0x1122e6,_0x201897(_0x3af3ea._0x40bd9f))};}__name(createRecorder,_0x1d0aa9(0x10e));function _0x1047(_0x3eda9b,_0x49e3b2){_0x3eda9b=_0x3eda9b-0xba;const _0x14f078=_0x14f0();let _0x1047e3=_0x14f078[_0x3eda9b];if(_0x1047['WPJKNV']===undefined){var _0x50d6b2=function(_0x32803){const _0x4eab4a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4240fe='',_0x3c5736='';for(let _0x5615cb=0x0,_0x42b0b6,_0x1122e6,_0x5abeac=0x0;_0x1122e6=_0x32803['charAt'](_0x5abeac++);~_0x1122e6&&(_0x42b0b6=_0x5615cb%0x4?_0x42b0b6*0x40+_0x1122e6:_0x1122e6,_0x5615cb++%0x4)?_0x4240fe+=String['fromCharCode'](0xff&_0x42b0b6>>(-0x2*_0x5615cb&0x6)):0x0){_0x1122e6=_0x4eab4a['indexOf'](_0x1122e6);}for(let _0x6c0e32=0x0,_0x28a346=_0x4240fe['length'];_0x6c0e32<_0x28a346;_0x6c0e32++){_0x3c5736+='%'+('00'+_0x4240fe['charCodeAt'](_0x6c0e32)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3c5736);};_0x1047['LJuGPi']=_0x50d6b2,_0x1047['qdFYDS']={},_0x1047['WPJKNV']=!![];}const _0x21659f=_0x14f078[0x0],_0x529aca=_0x3eda9b+_0x21659f,_0x47cd85=_0x1047['qdFYDS'][_0x529aca];return!_0x47cd85?(_0x1047e3=_0x1047['LJuGPi'](_0x1047e3),_0x1047['qdFYDS'][_0x529aca]=_0x1047e3):_0x1047e3=_0x47cd85,_0x1047e3;}var FakePage=class{constructor(_0x28a346,_0x539ce6,_0x54bccf,_0x216771){const _0x503381={_0x56dbae:0x11b,_0xe58738:0x118},_0x1138fc=_0x1d0aa9;this[_0x1138fc(_0x503381._0x56dbae)]=_0x28a346,this[_0x1138fc(_0x503381._0xe58738)]=_0x539ce6,this['scope']=_0x54bccf,this['currentUrl']=_0x216771;}[_0x1d0aa9(0x11b)];[_0x1d0aa9(0x118)];['scope'];static{__name(this,_0x1d0aa9(0xfd));}[_0x1d0aa9(0x110)];[_0x1d0aa9(0xf9)];[_0x1d0aa9(0x10a)](_0x5a7fe5,_0x26f6df){const _0x22e896={_0x52db22:0xe3},_0x1022d0=_0x1d0aa9;this[_0x1022d0(0x11b)][_0x1022d0(_0x22e896._0x52db22)]({'scope':this[_0x1022d0(0xcd)],'method':_0x5a7fe5,'args':_0x26f6df});}[_0x1d0aa9(0xc7)](){const _0x55bd52={_0x2c5c61:0x11e},_0x45115a=_0x1d0aa9;if(this[_0x45115a(0x118)][_0x45115a(_0x55bd52._0x2c5c61)]){const _0x3d65a8=this['behavior']['errorOnNextAction'];this[_0x45115a(0x118)]['errorOnNextAction']=void 0x0;throw _0x3d65a8;}}['url'](){const _0x72bf18=_0x1d0aa9;return this[_0x72bf18(0x110)];}async[_0x1d0aa9(0x11a)](){const _0x2ec9da={_0x2a4022:0x10a},_0x39038a=_0x1d0aa9;return this[_0x39038a(_0x2ec9da._0x2a4022)]('title',[]),_0x39038a(0x125);}async[_0x1d0aa9(0xd4)](_0x23155b,_0x35fb7c){const _0x5de501={_0x4bc877:0xd4,_0x51aeb3:0xc7,_0x2ff727:0xf9},_0x5ebd60=_0x1d0aa9;this[_0x5ebd60(0x10a)](_0x5ebd60(_0x5de501._0x4bc877),[_0x23155b,_0x35fb7c]),this[_0x5ebd60(_0x5de501._0x51aeb3)](),this[_0x5ebd60(_0x5de501._0x2ff727)]?.();}async[_0x1d0aa9(0x132)](_0x4301aa,_0x2914ce){const _0x51b07e={_0x6ac584:0xc7},_0x31aa1a=_0x1d0aa9;this['record'](_0x31aa1a(0x132),[_0x4301aa,_0x2914ce]),this[_0x31aa1a(_0x51b07e._0x6ac584)]();}async[_0x1d0aa9(0x126)](_0x4d0894,_0x24f8f4,_0x43d8b7){const _0x286fc0={_0x19a3fb:0x10a},_0x4d6a64=_0x1d0aa9;this[_0x4d6a64(_0x286fc0._0x19a3fb)]('fill',[_0x4d0894,_0x24f8f4,_0x43d8b7]),this[_0x4d6a64(0xc7)]();}async[_0x1d0aa9(0x113)](_0x54dc10,_0x288dba,_0x26fbbf){const _0x58cfc6={_0x4a0923:0x10a,_0xdcd5ea:0x113,_0x36ce50:0xc7},_0x288c2e=_0x1d0aa9;this[_0x288c2e(_0x58cfc6._0x4a0923)](_0x288c2e(_0x58cfc6._0xdcd5ea),[_0x54dc10,_0x288dba,_0x26fbbf]),this[_0x288c2e(_0x58cfc6._0x36ce50)]();}async[_0x1d0aa9(0xd3)](_0x543481,_0x294462){const _0xd197b7={_0x326014:0xd3},_0x510d92=_0x1d0aa9;this[_0x510d92(0x10a)](_0x510d92(_0xd197b7._0x326014),[_0x543481,_0x294462]),this[_0x510d92(0xc7)]();}async[_0x1d0aa9(0x108)](_0x4fed37,_0x420874){const _0x13f3f1=_0x1d0aa9;this[_0x13f3f1(0x10a)](_0x13f3f1(0x108),[_0x4fed37,_0x420874]),this[_0x13f3f1(0xc7)]();}async[_0x1d0aa9(0xbf)](_0x45a2e0,_0x48fdb8,_0xd43bb){const _0x12f20a=_0x1d0aa9;this[_0x12f20a(0x10a)](_0x12f20a(0xbf),[_0x45a2e0,_0x48fdb8,_0xd43bb]),this[_0x12f20a(0xc7)]();}async[_0x1d0aa9(0x105)](_0x49e285,_0x212827){const _0x4598b8={_0x1531c1:0xc7},_0x5475ce=_0x1d0aa9;this['record'](_0x5475ce(0x105),[_0x49e285,_0x212827]),this[_0x5475ce(_0x4598b8._0x1531c1)]();}async['scrollIntoView'](_0x1ea50f){const _0x186fa1={_0x35b5c3:0x10a,_0xc8f0de:0x127,_0x135395:0xc7},_0x2a5595=_0x1d0aa9;this[_0x2a5595(_0x186fa1._0x35b5c3)](_0x2a5595(_0x186fa1._0xc8f0de),[_0x1ea50f]),this[_0x2a5595(_0x186fa1._0x135395)]();}async[_0x1d0aa9(0xf2)](_0x45c48a,_0x2415f7,_0x595f00){const _0x4d68e9={_0x1f7c0d:0x10a,_0x58a011:0xf2,_0x2991af:0xc7},_0x16b330=_0x1d0aa9;this[_0x16b330(_0x4d68e9._0x1f7c0d)](_0x16b330(_0x4d68e9._0x58a011),[_0x45c48a,_0x2415f7,_0x595f00]),this[_0x16b330(_0x4d68e9._0x2991af)]();}async[_0x1d0aa9(0xbd)](_0x2ba560,_0x1b5631){const _0x13de31={_0x1391ad:0x10a},_0x38b481=_0x1d0aa9;this[_0x38b481(_0x13de31._0x1391ad)]('uploadFile',[_0x2ba560,_0x1b5631]),this[_0x38b481(0xc7)]();}async[_0x1d0aa9(0xcf)](_0x3f1bc4,_0x18d281){const _0x384ac5=_0x1d0aa9;this['record'](_0x384ac5(0xcf),[_0x3f1bc4,_0x18d281]),this['maybeThrow']();}async[_0x1d0aa9(0xc5)](_0x78489e){const _0x2afaf9={_0x42ca9e:0xc5,_0x1ec13a:0x118},_0x2d73c5=_0x1d0aa9;return this[_0x2d73c5(0x10a)](_0x2d73c5(_0x2afaf9._0x42ca9e),[_0x78489e]),this[_0x2d73c5(_0x2afaf9._0x1ec13a)]['countByDefault']??0x1;}async[_0x1d0aa9(0x129)](_0x5ac0a4){const _0x2bc81c={_0x455196:0x10a,_0x197370:0x118,_0x543f6e:0x10f},_0x1a62f5=_0x1d0aa9;return this[_0x1a62f5(_0x2bc81c._0x455196)](_0x1a62f5(0x129),[_0x5ac0a4]),this[_0x1a62f5(_0x2bc81c._0x197370)][_0x1a62f5(_0x2bc81c._0x543f6e)]??'';}async[_0x1d0aa9(0xf0)](_0x3cff97){const _0x1c5d26={_0x1473d1:0xf0,_0x3c1bbc:0x118,_0x2f8f99:0x10d},_0x3d60a1=_0x1d0aa9;return this[_0x3d60a1(0x10a)](_0x3d60a1(_0x1c5d26._0x1473d1),[_0x3cff97]),this[_0x3d60a1(_0x1c5d26._0x3c1bbc)][_0x3d60a1(_0x1c5d26._0x2f8f99)]??'';}async['isVisible'](_0x515047){const _0x2d6b9a={_0x1a7986:0x118},_0x35f726=_0x1d0aa9;return this[_0x35f726(0x10a)](_0x35f726(0xc3),[_0x515047]),this[_0x35f726(_0x2d6b9a._0x1a7986)]['isVisibleByDefault']??!![];}async[_0x1d0aa9(0xca)](_0x199fe5,_0x434056){const _0xdd20c3={_0x2b6213:0x118},_0x28a250=_0x1d0aa9;return this['record']('getAttribute',[_0x199fe5,_0x434056]),this[_0x28a250(_0xdd20c3._0x2b6213)][_0x28a250(0xfa)]?.[_0x434056]??null;}async[_0x1d0aa9(0xe5)](_0x393aca,_0x34804b){const _0x530c94={_0x7ef7bc:0x10a,_0x332a4f:0xe5},_0x14faa7=_0x1d0aa9;this[_0x14faa7(_0x530c94._0x7ef7bc)](_0x14faa7(_0x530c94._0x332a4f),[_0x393aca,_0x34804b]);}async[_0x1d0aa9(0xd5)](_0x78d918,_0x13bdc5){const _0x63cf4d={_0xddcfd6:0x10a},_0x3299e3=_0x1d0aa9;this[_0x3299e3(_0x63cf4d._0xddcfd6)](_0x3299e3(0xd5),[_0x78d918,_0x13bdc5]);}async[_0x1d0aa9(0xef)](_0x3a5860,_0x1bbdfb){const _0x25b8b3={_0x57948c:0x10a,_0x2d4801:0xef},_0x242bed=_0x1d0aa9;this[_0x242bed(_0x25b8b3._0x57948c)](_0x242bed(_0x25b8b3._0x2d4801),[_0x3a5860,_0x1bbdfb]);}async[_0x1d0aa9(0xf1)](_0x54bf8b){const _0x2215e5=_0x1d0aa9;this[_0x2215e5(0x10a)](_0x2215e5(0xf1),[_0x54bf8b]);}async[_0x1d0aa9(0xfc)](_0x5a0ddb,_0x1ffe43){this['record']('goto',[_0x5a0ddb,_0x1ffe43]),this['currentUrl']=_0x5a0ddb;}async[_0x1d0aa9(0x10b)](_0x4acfbe){const _0x5d0cc7={_0x4d41e5:0x10a},_0x3a7990=_0x1d0aa9;this[_0x3a7990(_0x5d0cc7._0x4d41e5)](_0x3a7990(0x10b),[_0x4acfbe]);}async[_0x1d0aa9(0x101)](_0x16c919){const _0x56167e={_0x46b403:0x10a},_0x339ebb=_0x1d0aa9;this[_0x339ebb(_0x56167e._0x46b403)](_0x339ebb(0x101),[_0x16c919]);}async[_0x1d0aa9(0x12c)](_0x3a5f67){const _0x47a83d={_0x4f469a:0x10a},_0x5ef295=_0x1d0aa9;this[_0x5ef295(_0x47a83d._0x4f469a)](_0x5ef295(0x12c),[_0x3a5f67]);}async[_0x1d0aa9(0xc8)](_0x3cf1c8){const _0xc828dc=_0x1d0aa9;return this['record'](_0xc828dc(0xc8),[_0x3cf1c8]),void 0x0;}async[_0x1d0aa9(0xba)](_0x346cf1,_0x7fba47){const _0x4228cb={_0x4ecd52:0x10a},_0x28d7e4=_0x1d0aa9;return this[_0x28d7e4(_0x4228cb._0x4ecd52)](_0x28d7e4(0xba),[_0x346cf1,_0x7fba47]),void 0x0;}async[_0x1d0aa9(0xc4)](_0x2ebd8a){const _0x526d75={_0x56e10d:0x10a,_0x139448:0xf3,_0x1ae1c9:0xf3},_0x403112=_0x1d0aa9;this[_0x403112(_0x526d75._0x56e10d)](_0x403112(0xc4),[_0x2ebd8a]);if(_0x2ebd8a[_0x403112(0x114)][_0x403112(0xe8)]!==0x1||_0x2ebd8a[_0x403112(0x114)][0x0][_0x403112(0x11d)]!==_0x403112(_0x526d75._0x139448))return null;const _0x259079=_0x2ebd8a[_0x403112(0x114)][0x0][_0x403112(_0x526d75._0x1ae1c9)],_0x1f3712=this[_0x403112(0x118)][_0x403112(0x120)]?.[_0x259079];return _0x1f3712??null;}async[_0x1d0aa9(0xe6)](_0x210646){const _0x3404ac={_0x30b08d:0x10a},_0x11e912=_0x1d0aa9;return this[_0x11e912(_0x3404ac._0x30b08d)](_0x11e912(0xe6),[_0x210646]),Buffer['from'](_0x11e912(0xde));}async['outerHTML'](_0x4a51ed){const _0x1be2a1={_0x34396f:0x10a,_0x2491e3:0x114,_0x329a95:0x11d,_0x52334e:0xdc,_0x2df43:0xd2,_0x132368:0xbe,_0x39df08:0x10c},_0x30cfce=_0x1d0aa9;this[_0x30cfce(_0x1be2a1._0x34396f)]('outerHTML',[_0x4a51ed]);if(_0x4a51ed[_0x30cfce(_0x1be2a1._0x2491e3)][_0x30cfce(0xe8)]===0x1&&_0x4a51ed['steps'][0x0][_0x30cfce(_0x1be2a1._0x329a95)]===_0x30cfce(0xf3)){const _0x45d9c8=_0x4a51ed['steps'][0x0]['ref'];return this['behavior'][_0x30cfce(_0x1be2a1._0x52334e)]?.[_0x45d9c8]??_0x30cfce(_0x1be2a1._0x2df43)+_0x45d9c8+_0x30cfce(_0x1be2a1._0x132368);}return _0x30cfce(_0x1be2a1._0x39df08);}},FakeContext=class{constructor(_0x38270b,_0x3ff44a,_0x2ad7da){const _0x4cbd28={_0x33f222:0x11b,_0x1e0c07:0xcd,_0x3465b0:0x115,_0x278bd2:0x111,_0x4c9d44:0xf5,_0x326c02:0xf7,_0x453db8:0xff},_0x33eb23={_0x132b26:0xcb,_0x4957c0:0x111},_0x6d347e=_0x1d0aa9;this[_0x6d347e(_0x4cbd28._0x33f222)]=_0x38270b,this[_0x6d347e(0x118)]=_0x3ff44a,this[_0x6d347e(_0x4cbd28._0x1e0c07)]=_0x2ad7da;const _0x29bd67=new FakePage(_0x38270b,_0x3ff44a,_0x2ad7da+_0x6d347e(_0x4cbd28._0x3465b0),_0x3ff44a[_0x6d347e(0x122)]??_0x6d347e(0xd6));_0x3ff44a[_0x6d347e(_0x4cbd28._0x278bd2)]&&(_0x29bd67[_0x6d347e(0xf9)]=()=>{const _0x7caafa=_0x6d347e;this[_0x7caafa(_0x33eb23._0x132b26)](_0x3ff44a[_0x7caafa(_0x33eb23._0x4957c0)]);}),this['pageList']=[_0x29bd67],this['localStorageState']={..._0x3ff44a[_0x6d347e(_0x4cbd28._0x4c9d44)]??{}},this[_0x6d347e(_0x4cbd28._0x326c02)]={..._0x3ff44a[_0x6d347e(_0x4cbd28._0x453db8)]??{}};}[_0x1d0aa9(0x11b)];[_0x1d0aa9(0x118)];[_0x1d0aa9(0xcd)];static{__name(this,'FakeContext');}[_0x1d0aa9(0x124)];['activeIdx']=0x0;[_0x1d0aa9(0x11f)]=[];[_0x1d0aa9(0xea)];[_0x1d0aa9(0xf7)];[_0x1d0aa9(0x123)]=new Set();['record'](_0xd33ef1,_0x585f29){const _0x1151c8={_0x484a90:0xe3},_0x32db9f=_0x1d0aa9;this['recorder'][_0x32db9f(_0x1151c8._0x484a90)]({'scope':this[_0x32db9f(0xcd)],'method':_0xd33ef1,'args':_0x585f29});}['pages'](){const _0x3713ea=_0x1d0aa9;return this[_0x3713ea(0x124)];}[_0x1d0aa9(0xe7)](){const _0x412067={_0x449a64:0x124,_0x23791c:0xe2},_0x12e4a8=_0x1d0aa9,_0x37d24c=this[_0x12e4a8(_0x412067._0x449a64)][this[_0x12e4a8(0x12b)]];if(!_0x37d24c)throw new DriverError(_0x12e4a8(_0x412067._0x23791c),{'activeIdx':this[_0x12e4a8(0x12b)]});return _0x37d24c;}[_0x1d0aa9(0x130)](){const _0x2d2a73=_0x1d0aa9;return this[_0x2d2a73(0x118)][_0x2d2a73(0x130)]??[];}[_0x1d0aa9(0xd1)](){const _0x17ea65={_0x3be4a5:0xd1},_0x2d708f=_0x1d0aa9;return this[_0x2d708f(0x118)][_0x2d708f(_0x17ea65._0x3be4a5)]??[];}async['setActivePage'](_0x34726c){const _0x1e8c19={_0x4fc34c:0xdf,_0x2deb30:0x124,_0x4d9219:0x11f},_0x2cb177=_0x1d0aa9;this[_0x2cb177(0x10a)](_0x2cb177(_0x1e8c19._0x4fc34c),[_0x34726c]);if(_0x34726c<0x0||_0x34726c>=this['pageList']['length'])throw new DriverError('page\x20index\x20out\x20of\x20range',{'index':_0x34726c,'available':this[_0x2cb177(_0x1e8c19._0x2deb30)][_0x2cb177(0xe8)]});this['activeIdx']=_0x34726c,this[_0x2cb177(_0x1e8c19._0x4d9219)]['length']=0x0;}[_0x1d0aa9(0xdd)](_0x3f41fc){const _0x168fdf={_0x591562:0x123},_0x148a76={_0x41c4ad:0x103},_0x2f5963=_0x1d0aa9;return this[_0x2f5963(_0x168fdf._0x591562)][_0x2f5963(0x116)](_0x3f41fc),()=>{const _0x58563a=_0x2f5963;this['newPageListeners'][_0x58563a(_0x148a76._0x41c4ad)](_0x3f41fc);};}['emitFakePopup'](_0x15e02f){const _0x5382b9={_0x481563:0xcd,_0x205090:0x124},_0x40928c=_0x1d0aa9,_0x4e665a=this[_0x40928c(_0x5382b9._0x481563)]+_0x40928c(0xbc)+this[_0x40928c(_0x5382b9._0x205090)][_0x40928c(0xe8)],_0xf410d2=new FakePage(this[_0x40928c(0x11b)],this[_0x40928c(0x118)],_0x4e665a,_0x15e02f);this['pageList'][_0x40928c(0xe3)](_0xf410d2);const _0x225e26=this[_0x40928c(0x124)][_0x40928c(0xe8)]-0x1;for(const _0x12e05b of this['newPageListeners']){try{_0x12e05b({'index':_0x225e26,'url':_0x15e02f});}catch{}}return _0x225e26;}async[_0x1d0aa9(0xec)](_0x15abfe){const _0x70e1a={_0x33da1c:0xec,_0x29c408:0x121,_0x3d3a26:0x11f},_0x4580da=_0x1d0aa9;this[_0x4580da(0x10a)](_0x4580da(_0x70e1a._0x33da1c),[_0x15abfe]);if(!_0x15abfe['steps']['length'])throw new LocatorError(_0x4580da(_0x70e1a._0x29c408),{'locator':_0x15abfe});this[_0x4580da(_0x70e1a._0x3d3a26)][_0x4580da(0xe3)](_0x15abfe);}async[_0x1d0aa9(0xeb)](){const _0x55fd16={_0x3be186:0x10a,_0x133e47:0xeb,_0x5e613d:0xe8},_0x37e85f=_0x1d0aa9;this[_0x37e85f(_0x55fd16._0x3be186)](_0x37e85f(_0x55fd16._0x133e47),[]);if(this[_0x37e85f(0x11f)][_0x37e85f(_0x55fd16._0x5e613d)]===0x0)throw new DriverError(_0x37e85f(0xf8),{});this['frameStack'][_0x37e85f(0xbb)]();}async['setLocalStorage'](_0x127ed0,_0x23a475){const _0x2610c3={_0x532a3a:0xea},_0x3a4aeb=_0x1d0aa9;this['record'](_0x3a4aeb(0xce),[_0x127ed0,_0x23a475]),this[_0x3a4aeb(_0x2610c3._0x532a3a)][_0x127ed0]=_0x23a475;}async[_0x1d0aa9(0x12f)](_0xa16d9d){const _0x564743=_0x1d0aa9;return this[_0x564743(0x10a)](_0x564743(0x12f),[_0xa16d9d]),this[_0x564743(0xea)][_0xa16d9d]??null;}async[_0x1d0aa9(0xc1)](_0x37b0d6,_0x34de4f,_0x39c412){const _0x23457c=_0x1d0aa9;this[_0x23457c(0x10a)](_0x23457c(0xc1),[_0x37b0d6,_0x34de4f,_0x39c412]),this[_0x23457c(0xf7)][_0x37b0d6]=_0x34de4f;}async[_0x1d0aa9(0x102)](_0x5a4b6f){const _0x43d871={_0x55232c:0x102},_0x50e89d=_0x1d0aa9;return this['record'](_0x50e89d(_0x43d871._0x55232c),[_0x5a4b6f]),this[_0x50e89d(0xf7)][_0x5a4b6f]??null;}async[_0x1d0aa9(0x11c)](_0x4d0b70){const _0x2c6f0e={_0x317e0d:0x10a},_0x4bd6ff=_0x1d0aa9;this[_0x4bd6ff(_0x2c6f0e._0x317e0d)]('saveStorageState',[_0x4d0b70]);}async[_0x1d0aa9(0xc8)](_0x3851eb){const _0x3f9322={_0x5460b5:0x10a},_0x227b8c=_0x1d0aa9;return this[_0x227b8c(_0x3f9322._0x5460b5)](_0x227b8c(0xc8),[_0x3851eb]),void 0x0;}async[_0x1d0aa9(0x119)](){const _0x239d1f={_0x324808:0x10a},_0x4c5317=_0x1d0aa9;this[_0x4c5317(_0x239d1f._0x324808)]('close',[]);}[_0x1d0aa9(0x12a)](){const _0x3ce36c=_0x1d0aa9;return this[_0x3ce36c(0x11f)]['length'];}},FakeWebDriver=class{constructor(_0x58ab08={}){const _0x4e5fd2={_0x33d229:0x11b},_0x1a404e=_0x1d0aa9;this[_0x1a404e(0x118)]=_0x58ab08,this[_0x1a404e(_0x4e5fd2._0x33d229)]=createRecorder();}['behavior'];static{__name(this,_0x1d0aa9(0xcc));}[_0x1d0aa9(0x128)]=![];[_0x1d0aa9(0x11b)];['contexts']=[];async[_0x1d0aa9(0xee)](_0x457e37){const _0x1f37b9={_0x4ed4f2:0x11b,_0x1ce1b6:0xe9,_0xce25a1:0x128},_0x572fae=_0x1d0aa9;this[_0x572fae(_0x1f37b9._0x4ed4f2)]['push']({'scope':_0x572fae(_0x1f37b9._0x1ce1b6),'method':_0x572fae(0xee),'args':[_0x457e37]}),this[_0x572fae(_0x1f37b9._0xce25a1)]=!![];}async['newContext'](_0x154f5){const _0x2f125a={_0x249542:0xc0,_0x5b4d9b:0x128,_0x526b1c:0xc2,_0x2c9e58:0x118,_0x1999d2:0xe4,_0xfaeed9:0xe1,_0x4c1b79:0xe8},_0x383990=_0x1d0aa9;this['recorder'][_0x383990(0xe3)]({'scope':'driver','method':_0x383990(_0x2f125a._0x249542),'args':[_0x154f5]});if(!this[_0x383990(_0x2f125a._0x5b4d9b)])throw new DriverError(_0x383990(_0x2f125a._0x526b1c),{});const _0xaafddb=new FakeContext(this['recorder'],this[_0x383990(_0x2f125a._0x2c9e58)],_0x383990(_0x2f125a._0x1999d2)+this[_0x383990(_0x2f125a._0xfaeed9)][_0x383990(_0x2f125a._0x4c1b79)]);return this['contexts']['push'](_0xaafddb),_0xaafddb;}async[_0x1d0aa9(0x119)](){const _0x8409ef={_0xda8021:0x11b,_0x452544:0xe3,_0x50abb6:0x128},_0x2fb5b7=_0x1d0aa9;this[_0x2fb5b7(_0x8409ef._0xda8021)][_0x2fb5b7(_0x8409ef._0x452544)]({'scope':'driver','method':_0x2fb5b7(0x119),'args':[]}),this[_0x2fb5b7(_0x8409ef._0x50abb6)]=![];}['wsEndpoint'](){return void 0x0;}async[_0x1d0aa9(0xf6)](){throw new DriverError('connectShared\x20not\x20supported\x20by\x20FakeWebDriver',{});}[_0x1d0aa9(0x104)](){const _0x3541a1={_0x37c070:0xda},_0x55aa73=_0x1d0aa9;throw new DriverError(_0x55aa73(_0x3541a1._0x37c070),{});}['calls'](){const _0x1cd7cd={_0x180e95:0x11b},_0x2b7035=_0x1d0aa9;return this[_0x2b7035(_0x1cd7cd._0x180e95)][_0x2b7035(0xfe)]();}[_0x1d0aa9(0x12d)](_0x2a6550){const _0x3ad365={_0x2f14ed:0x11b},_0xa1228f=_0x1d0aa9;return this[_0xa1228f(_0x3ad365._0x2f14ed)][_0xa1228f(0xfe)]()['filter'](_0x682d3a=>_0x682d3a[_0xa1228f(0xc9)]===_0x2a6550);}};export{FakeWebDriver};
1
+ function _0xdbf2(_0x9544a5,_0xb0786d){_0x9544a5=_0x9544a5-0x1d5;const _0x5b45d1=_0x5b45();let _0xdbf23d=_0x5b45d1[_0x9544a5];if(_0xdbf2['bhWgXE']===undefined){var _0x31e59f=function(_0x3137ce){const _0x4f9a21='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x21f477='',_0x2d21d9='';for(let _0x1e3740=0x0,_0x11e754,_0x1d4945,_0x4aab56=0x0;_0x1d4945=_0x3137ce['charAt'](_0x4aab56++);~_0x1d4945&&(_0x11e754=_0x1e3740%0x4?_0x11e754*0x40+_0x1d4945:_0x1d4945,_0x1e3740++%0x4)?_0x21f477+=String['fromCharCode'](0xff&_0x11e754>>(-0x2*_0x1e3740&0x6)):0x0){_0x1d4945=_0x4f9a21['indexOf'](_0x1d4945);}for(let _0x153f14=0x0,_0x45f74f=_0x21f477['length'];_0x153f14<_0x45f74f;_0x153f14++){_0x2d21d9+='%'+('00'+_0x21f477['charCodeAt'](_0x153f14)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2d21d9);};_0xdbf2['ZhUxWX']=_0x31e59f,_0xdbf2['xzbumb']={},_0xdbf2['bhWgXE']=!![];}const _0x703e46=_0x5b45d1[0x0],_0x1c4dea=_0x9544a5+_0x703e46,_0x54dbcf=_0xdbf2['xzbumb'][_0x1c4dea];return!_0x54dbcf?(_0xdbf23d=_0xdbf2['ZhUxWX'](_0xdbf23d),_0xdbf2['xzbumb'][_0x1c4dea]=_0xdbf23d):_0xdbf23d=_0x54dbcf,_0xdbf23d;}const _0x24eb6c=_0xdbf2;(function(_0x128207,_0x5e8c1a){const _0x1893b5={_0x51681f:0x217,_0x46b87e:0x224,_0x565ef5:0x214,_0x59a009:0x22c,_0x300e75:0x1d6,_0x5c6951:0x1e0},_0x5455ee=_0xdbf2,_0x33f39c=_0x128207();while(!![]){try{const _0x26b0e0=parseInt(_0x5455ee(_0x1893b5._0x51681f))/0x1*(-parseInt(_0x5455ee(0x1f3))/0x2)+-parseInt(_0x5455ee(0x226))/0x3*(parseInt(_0x5455ee(0x1d5))/0x4)+-parseInt(_0x5455ee(0x219))/0x5+parseInt(_0x5455ee(_0x1893b5._0x46b87e))/0x6+-parseInt(_0x5455ee(_0x1893b5._0x565ef5))/0x7*(parseInt(_0x5455ee(_0x1893b5._0x59a009))/0x8)+parseInt(_0x5455ee(_0x1893b5._0x300e75))/0x9+parseInt(_0x5455ee(_0x1893b5._0x5c6951))/0xa;if(_0x26b0e0===_0x5e8c1a)break;else _0x33f39c['push'](_0x33f39c['shift']());}catch(_0x59fce8){_0x33f39c['push'](_0x33f39c['shift']());}}}(_0x5b45,0x9e6ff));var __defProp=Object[_0x24eb6c(0x218)],__name=(_0x21f477,_0x2d21d9)=>__defProp(_0x21f477,_0x24eb6c(0x1e6),{'value':_0x2d21d9,'configurable':!![]});function _0x5b45(){const _0x9c98b8=['y29UDgv4Dhm','y3vYCMvUDfvYBa','C2f2zvn0B3jHz2vtDgf0zq','y29VA2LLCW','mZi4ntKZmtb1z0zizNq','A2LUza','iJ48l2rPDJ4','Aw5WDxrwywX1zuj5rgvMyxvSDa','C3rLChm','zg91yMXLq2XPy2S','BMfTzq','zMfRzsb0AxrSzq','zNjHBwvezxb0Aa','Dw5JAgvJAW','C2nVCgu','y29UBMvJDfnOyxjLza','C3vIC2nYAwjL','yMvOyxzPB3i','B3v0zxjive1m','D2fPDezVCG','Cg9WDxbpBKnSAwnR','Bwv0Ag9K','zMfRzs1WBMC','mtiWmdq2neDhs0LNyq','y3jLyxrLuMvJB3jKzxi','y29UBMvJDfnOyxjLzcbUB3qGC3vWCg9YDgvKigj5iezHA2vxzwjeCML2zxi','yxr0ywnOrxHPC3rPBMCGBM90ihn1ChbVCNrLzcbIEsbgywTLv2vIrhjPDMvY','z2v0tg9JywXtDg9YywDL','y2HLy2TLzfn0yxrL','y2XPy2S','Aw5WDxrwywX1zq','y2HLy2S','z29gB3j3yxjK','Dgv4DenVBNrLBNq','CMvJB3jK','B25ozxDqywDL','y291BNq','C2vSzwn0t3b0Aw9U','zxzHBhvHDgu','rMfRzvbHz2u','zMLSBa','ChvZAa','zxHPDezYyw1L','rhjPDMvYrxjYB3i','B3v0zxjiDg1SqNLszwy','CMvM','zxjYB3jpBK5LEhrby3rPB24','Bg9JywXtDg9YywDLu3rHDgu','z29cywnR','BMv0D29YA0vUDhjPzxm','yxr0CMLIDxrLC0j5rgvMyxvSDa','C2v0qwn0AxzLugfNzq','y2XPCgjVyxjKugfZDgu','ywn0AxzLswr4','C2nYB2XSsw50B1zPzxC','ywrK','mta3nJaZm3Pkt05PqG','CMvJB3jKzxi','BMv3q29UDgv4Da','mMXlBNrrwG','zgvMAw5LuhjVCgvYDhK','mJe3nZq5nwjMvujJzq','AxnwAxnPyMXLqNLezwzHDwX0','Bwf5yMvuAhjVDW','Bgf1BMnOzwq','D2fPDezVCLvYBa','ywjVDxq6yMXHBMS','BgvUz3rO','y29VA2LLu3rHDgu','CgfNzuXPC3q','C3bSAwnL','y29UC29SzuvUDhjPzxm','mJi5mZi4neHqvu5swq','pgrPDJ48l2rPDJ4','m2nosgvVDG','y2XVC2u','y3r4','CMvSB2fK','y2HLy2TLzfn0yxrLqNLezwzHDwX0','C2nYzwvUC2HVDa','mtzHEhr4u1K','pgrPDIbKyxrHlxvUB3rLC3qTCMvMpsi','zgvSzxrL','ywn0AxzLugfNzq','zNjLzxPL','DgL0Bgu','tg9JyxrVCKvYCM9Y','AxnwAxnPyMXL','ChjLC3m','lNbHz2u','BMv3ugfNzuXPC3rLBMvYCW','zxzHBhvHDgvpBKXVy2f0B3i','rMfRzvDLyKrYAxzLCG','DxbSB2fKrMLSzq','z2v0qxr0CMLIDxrL','Aw5PDgLHBfvYBa','zw1PDezHA2vqB3b1Ca','zMLSDgvY','zhjPDMvY','B25bzNrLCKnSAwnR','D2fPDezVCK5HDMLNyxrPB24','C2v0q29VA2LL','Bgf1BMnO','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','Aw5ZCgvJDevSzw1LBNq','CgfNzsbPBMrLEcbVDxqGB2yGCMfUz2u','y2fWDhvYzvn0ywnRvhjHy2u','y2fSBhngB3i','D2fPDezVCLrLEhq','Bg9JywXtDg9YywDL','zhjHz0fUzerYB3a','z290BW','y2fSBhm','ndqYmZKYoeTXvLv6tq','mJCXnZCZthvRChbr','z2v0q29VA2LL','C2v0tg9JywXtDg9YywDL','zNjHBwvtDgfJAW','zw50zxjgCMfTzq','BMv3q29UDgv4DcbJywXSzwqGyMvMB3jLigXHDw5JAcGP'];_0x5b45=function(){return _0x9c98b8;};return _0x5b45();}function subscribe(_0x1e3740,_0x11e754){const _0x4faace=_0x24eb6c;return _0x1e3740[_0x4faace(0x213)](_0x11e754),()=>{const _0x89871=_0x4faace;_0x1e3740[_0x89871(0x22e)](_0x11e754);};}__name(subscribe,_0x24eb6c(0x1ec));var UnotestError=class extends Error{static{__name(this,'UnotestError');}['context'];constructor(_0x1d4945,_0x4aab56={}){const _0x18d662={_0x101d82:0x1e6,_0x546917:0x246},_0x4af32a=_0x24eb6c;super(_0x1d4945),this[_0x4af32a(_0x18d662._0x101d82)]=new.target.name,this['context']=Object[_0x4af32a(0x230)]({..._0x4aab56}),typeof Error[_0x4af32a(0x246)]==='function'&&Error[_0x4af32a(_0x18d662._0x546917)](this,new.target);}},DriverError=class extends UnotestError{static{__name(this,_0x24eb6c(0x207));}},LocatorError=class extends UnotestError{static{__name(this,_0x24eb6c(0x232));}};function createRecorder(){const _0x4f5fa5=_0x24eb6c,_0x153f14=[];let _0x45f74f=0x0;return{'push':__name(_0x8f622f=>_0x153f14[_0x4f5fa5(0x205)]({..._0x8f622f,'seq':_0x45f74f++}),'push'),'calls':__name(()=>_0x153f14,_0x4f5fa5(0x24c))};}__name(createRecorder,_0x24eb6c(0x1f4));var FakePage=class{constructor(_0x8608e7,_0x30fac5,_0x162608,_0x3404ef){const _0x31f603={_0x30040c:0x1ea},_0x3e617b=_0x24eb6c;this[_0x3e617b(0x215)]=_0x8608e7,this[_0x3e617b(0x1ed)]=_0x30fac5,this[_0x3e617b(_0x31f603._0x30040c)]=_0x162608,this[_0x3e617b(0x1dd)]=_0x3404ef;}['recorder'];[_0x24eb6c(0x1ed)];[_0x24eb6c(0x1ea)];static{__name(this,_0x24eb6c(0x203));}[_0x24eb6c(0x1dd)];[_0x24eb6c(0x23f)];[_0x24eb6c(0x1fe)](_0x98f53a,_0x46256b){const _0x2f487e={_0x58bebb:0x215,_0x3a123e:0x1ea},_0xb6e1e0=_0x24eb6c;this[_0xb6e1e0(_0x2f487e._0x58bebb)][_0xb6e1e0(0x205)]({'scope':this[_0xb6e1e0(_0x2f487e._0x3a123e)],'method':_0x98f53a,'args':_0x46256b});}[_0x24eb6c(0x21b)](){const _0x1a8a7d={_0x3cdbb6:0x1ed,_0x482fb0:0x20a,_0x37c5de:0x20a},_0x4c8465=_0x24eb6c;if(this[_0x4c8465(_0x1a8a7d._0x3cdbb6)][_0x4c8465(_0x1a8a7d._0x482fb0)]){const _0x3169bc=this['behavior'][_0x4c8465(_0x1a8a7d._0x37c5de)];this[_0x4c8465(0x1ed)][_0x4c8465(0x20a)]=void 0x0;throw _0x3169bc;}}['url'](){const _0x3ddc87=_0x24eb6c;return this[_0x3ddc87(0x1dd)];}async['title'](){const _0x5d6ab5={_0x5bf6c3:0x1fe,_0x3c36c0:0x1e7},_0x55db02=_0x24eb6c;return this[_0x55db02(_0x5d6ab5._0x5bf6c3)](_0x55db02(0x231),[]),_0x55db02(_0x5d6ab5._0x3c36c0);}async['click'](_0x535678,_0x32fadd){const _0x127bf6={_0xf61d2c:0x1f9},_0x4411ad=_0x24eb6c;this[_0x4411ad(0x1fe)](_0x4411ad(_0x127bf6._0xf61d2c),[_0x535678,_0x32fadd]),this['maybeThrow'](),this[_0x4411ad(0x23f)]?.();}async[_0x24eb6c(0x1e5)](_0x1dcedc,_0x5d9f53){const _0xf2b6d2=_0x24eb6c;this[_0xf2b6d2(0x1fe)]('doubleClick',[_0x1dcedc,_0x5d9f53]),this['maybeThrow']();}async[_0x24eb6c(0x204)](_0x1d0cb4,_0x5dfa7b,_0x3e69af){const _0x567433=_0x24eb6c;this[_0x567433(0x1fe)]('fill',[_0x1d0cb4,_0x5dfa7b,_0x3e69af]),this[_0x567433(0x21b)]();}async[_0x24eb6c(0x234)](_0x10649d,_0x4a6421,_0x93ed4c){const _0x4545e9=_0x24eb6c;this[_0x4545e9(0x1fe)](_0x4545e9(0x234),[_0x10649d,_0x4a6421,_0x93ed4c]),this[_0x4545e9(0x21b)]();}async[_0x24eb6c(0x1fb)](_0x34b2d5,_0x512c29){const _0x175786=_0x24eb6c;this['record']('check',[_0x34b2d5,_0x512c29]),this[_0x175786(0x21b)]();}async['uncheck'](_0x39d684,_0xc626cd){const _0x48af26={_0x278f4e:0x1e9},_0x2005d2=_0x24eb6c;this['record'](_0x2005d2(_0x48af26._0x278f4e),[_0x39d684,_0xc626cd]),this['maybeThrow']();}async[_0x24eb6c(0x201)](_0x32281e,_0x3707fc,_0x41f00f){const _0x419ca2={_0x3d9205:0x201,_0x78a16:0x21b},_0x308fb1=_0x24eb6c;this[_0x308fb1(0x1fe)](_0x308fb1(_0x419ca2._0x3d9205),[_0x32281e,_0x3707fc,_0x41f00f]),this[_0x308fb1(_0x419ca2._0x78a16)]();}async['hover'](_0x580c45,_0x5acaaa){const _0x235158=_0x24eb6c;this['record']('hover',[_0x580c45,_0x5acaaa]),this[_0x235158(0x21b)]();}async[_0x24eb6c(0x212)](_0x574c4){const _0x66fcc3={_0x36c9bf:0x21b},_0x5d152e=_0x24eb6c;this['record'](_0x5d152e(0x212),[_0x574c4]),this[_0x5d152e(_0x66fcc3._0x36c9bf)]();}async[_0x24eb6c(0x24a)](_0x583352,_0x5d7724,_0x29e748){const _0x157df6=_0x24eb6c;this['record']('dragAndDrop',[_0x583352,_0x5d7724,_0x29e748]),this[_0x157df6(0x21b)]();}async[_0x24eb6c(0x239)](_0x222902,_0xd8fbef){const _0x1bcd34=_0x24eb6c;this[_0x1bcd34(0x1fe)](_0x1bcd34(0x239),[_0x222902,_0xd8fbef]),this['maybeThrow']();}async[_0x24eb6c(0x210)](_0xc9e8b5,_0x20526d){const _0x46ef9d={_0x4ba593:0x1fe},_0xa05dbc=_0x24eb6c;this[_0xa05dbc(_0x46ef9d._0x4ba593)](_0xa05dbc(0x210),[_0xc9e8b5,_0x20526d]),this[_0xa05dbc(0x21b)]();}async[_0x24eb6c(0x200)](_0x4b2f3d){const _0x9c26b2={_0x50dd65:0x1fe,_0x118a57:0x1ed},_0x16276e=_0x24eb6c;return this[_0x16276e(_0x9c26b2._0x50dd65)]('count',[_0x4b2f3d]),this[_0x16276e(_0x9c26b2._0x118a57)]['countByDefault']??0x1;}async[_0x24eb6c(0x1fd)](_0x15a918){const _0x46a582=_0x24eb6c;return this[_0x46a582(0x1fe)](_0x46a582(0x1fd),[_0x15a918]),this[_0x46a582(0x1ed)]['textContentByDefault']??'';}async['inputValue'](_0x15f989){const _0x57ff10={_0x461aef:0x1e3},_0x19fd7e=_0x24eb6c;return this['record'](_0x19fd7e(0x1fa),[_0x15f989]),this[_0x19fd7e(0x1ed)][_0x19fd7e(_0x57ff10._0x461aef)]??'';}async['checkedState'](_0x165671){const _0x814455={_0xb94005:0x1ed},_0x434763=_0x24eb6c;return this[_0x434763(0x1fe)](_0x434763(0x1f8),[_0x165671]),this[_0x434763(_0x814455._0xb94005)][_0x434763(0x22a)]??null;}async[_0x24eb6c(0x233)](_0x5b1624){const _0xabc6c4={_0x4dec31:0x1fe,_0x5cbcd9:0x1ed},_0x5d516a=_0x24eb6c;return this[_0x5d516a(_0xabc6c4._0x4dec31)]('isVisible',[_0x5b1624]),this[_0x5d516a(_0xabc6c4._0x5cbcd9)][_0x5d516a(0x21a)]??!![];}async['getAttribute'](_0x56af15,_0x3d2336){const _0x158d49={_0x229f2e:0x20e},_0x2d415b=_0x24eb6c;return this['record'](_0x2d415b(0x23a),[_0x56af15,_0x3d2336]),this['behavior'][_0x2d415b(_0x158d49._0x229f2e)]?.[_0x3d2336]??null;}async[_0x24eb6c(0x1ef)](_0x25b749,_0x2271f2){const _0xb60979={_0x51a2be:0x1fe},_0x18f219=_0x24eb6c;this[_0x18f219(_0xb60979._0x51a2be)]('waitFor',[_0x25b749,_0x2271f2]);}async[_0x24eb6c(0x21d)](_0x5b0954,_0x2bd7e4){const _0x4aaa9d={_0x2550b6:0x1fe},_0x415c99=_0x24eb6c;this[_0x415c99(_0x4aaa9d._0x2550b6)]('waitForUrl',[_0x5b0954,_0x2bd7e4]);}async['waitForText'](_0x3cd73a,_0x29598f){const _0x45d064={_0x396315:0x1fe},_0x53e344=_0x24eb6c;this[_0x53e344(_0x45d064._0x396315)](_0x53e344(0x248),[_0x3cd73a,_0x29598f]);}async[_0x24eb6c(0x240)](_0x1b00ed){const _0x2fc2c0={_0x43f8a1:0x1fe},_0x88972d=_0x24eb6c;this[_0x88972d(_0x2fc2c0._0x43f8a1)](_0x88972d(0x240),[_0x1b00ed]);}async['waitForLoadState'](_0x5124ae,_0x5bef2a){const _0x2c36a8=_0x24eb6c;this[_0x2c36a8(0x1fe)]('waitForLoadState',[_0x5124ae,_0x5bef2a]);}async[_0x24eb6c(0x24b)](_0x271e1e,_0x4c2c58){this['record']('goto',[_0x271e1e,_0x4c2c58]),this['currentUrl']=_0x271e1e;}async['reload'](_0x50927f){const _0x4bdb49=_0x24eb6c;this[_0x4bdb49(0x1fe)](_0x4bdb49(0x229),[_0x50927f]);}async[_0x24eb6c(0x20c)](_0x47bd99){const _0x134dc6=_0x24eb6c;this[_0x134dc6(0x1fe)](_0x134dc6(0x20c),[_0x47bd99]);}async[_0x24eb6c(0x1fc)](_0x2d0f82){const _0x1d996f=_0x24eb6c;this[_0x1d996f(0x1fe)](_0x1d996f(0x1fc),[_0x2d0f82]);}async[_0x24eb6c(0x202)](_0x2c4184){const _0x2c6875={_0x992085:0x202},_0x35d9a0=_0x24eb6c;return this[_0x35d9a0(0x1fe)](_0x35d9a0(_0x2c6875._0x992085),[_0x2c4184]),void 0x0;}async[_0x24eb6c(0x237)](_0x5c6015,_0x31e840){const _0x22d37d={_0x1fa7f2:0x1fe},_0x293a0a=_0x24eb6c;return this[_0x293a0a(_0x22d37d._0x1fa7f2)](_0x293a0a(0x237),[_0x5c6015,_0x31e840]),void 0x0;}async[_0x24eb6c(0x244)](_0x5a01d9){const _0x2f8896={_0x4b4abb:0x1e1,_0x27838c:0x209},_0x118bf8=_0x24eb6c;this['record']('inspectElement',[_0x5a01d9]);if(_0x5a01d9[_0x118bf8(0x1e4)][_0x118bf8(0x21f)]!==0x1||_0x5a01d9[_0x118bf8(0x1e4)][0x0][_0x118bf8(_0x2f8896._0x4b4abb)]!==_0x118bf8(0x209))return null;const _0xfc18d0=_0x5a01d9[_0x118bf8(0x1e4)][0x0][_0x118bf8(_0x2f8896._0x27838c)],_0x5af36d=this[_0x118bf8(0x1ed)]['elementHintByRef']?.[_0xfc18d0];return _0x5af36d??null;}async['screenshot'](_0x427995){const _0x157150={_0xcb03d2:0x1fe,_0xcb396c:0x1f2},_0x57f108=_0x24eb6c;return this[_0x57f108(_0x157150._0xcb03d2)](_0x57f108(0x22b),[_0x427995]),Buffer['from'](_0x57f108(_0x157150._0xcb396c));}async['outerHTML'](_0x2c00aa){const _0x40b6e0={_0x39ff2f:0x21f,_0x53c6a2:0x1e1,_0x5ed824:0x208,_0xc9a98b:0x22d,_0xcce565:0x225},_0x3c09e2=_0x24eb6c;this['record'](_0x3c09e2(0x1ee),[_0x2c00aa]);if(_0x2c00aa['steps'][_0x3c09e2(_0x40b6e0._0x39ff2f)]===0x1&&_0x2c00aa['steps'][0x0][_0x3c09e2(_0x40b6e0._0x53c6a2)]==='ref'){const _0x3fff3d=_0x2c00aa[_0x3c09e2(0x1e4)][0x0][_0x3c09e2(0x209)];return this[_0x3c09e2(0x1ed)][_0x3c09e2(_0x40b6e0._0x5ed824)]?.[_0x3fff3d]??_0x3c09e2(_0x40b6e0._0xc9a98b)+_0x3fff3d+_0x3c09e2(0x1e2);}return _0x3c09e2(_0x40b6e0._0xcce565);}},FakeContext=class{constructor(_0x3b8f76,_0x4b2e65,_0x51d789){const _0x4e8b0a={_0x5d6e10:0x1ea,_0x1735c3:0x23b,_0x4b8786:0x1f0,_0x105394:0x20b,_0x4607b8:0x249},_0x1a40c6={_0x1b4dc2:0x23c},_0x130a89=_0x24eb6c;this['recorder']=_0x3b8f76,this['behavior']=_0x4b2e65,this[_0x130a89(_0x4e8b0a._0x5d6e10)]=_0x51d789;const _0x12128d=new FakePage(_0x3b8f76,_0x4b2e65,_0x51d789+'.page0',_0x4b2e65[_0x130a89(_0x4e8b0a._0x1735c3)]??_0x130a89(0x21e));_0x4b2e65[_0x130a89(_0x4e8b0a._0x4b8786)]&&(_0x12128d[_0x130a89(0x23f)]=()=>{const _0x43e691=_0x130a89;this[_0x43e691(_0x1a40c6._0x1b4dc2)](_0x4b2e65['popupOnClick']);}),this['pageList']=[_0x12128d],this[_0x130a89(_0x4e8b0a._0x105394)]={..._0x4b2e65[_0x130a89(_0x4e8b0a._0x4607b8)]??{}},this[_0x130a89(0x220)]={..._0x4b2e65[_0x130a89(0x1df)]??{}};}[_0x24eb6c(0x215)];[_0x24eb6c(0x1ed)];[_0x24eb6c(0x1ea)];static{__name(this,'FakeContext');}[_0x24eb6c(0x221)];[_0x24eb6c(0x211)]=0x0;['frameStack']=[];[_0x24eb6c(0x20b)];[_0x24eb6c(0x220)];['newPageListeners']=new Set();[_0x24eb6c(0x1fe)](_0x139aac,_0x130703){const _0x108d40=_0x24eb6c;this[_0x108d40(0x215)][_0x108d40(0x205)]({'scope':this['scope'],'method':_0x139aac,'args':_0x130703});}['pages'](){const _0x6dd6ca={_0x52adf1:0x221},_0x1b3a4d=_0x24eb6c;return this[_0x1b3a4d(_0x6dd6ca._0x52adf1)];}[_0x24eb6c(0x22f)](){const _0x1476f9={_0x515d85:0x211},_0x4d60ac=_0x24eb6c,_0x1a651d=this[_0x4d60ac(0x221)][this[_0x4d60ac(_0x1476f9._0x515d85)]];if(!_0x1a651d)throw new DriverError('no\x20active\x20page\x20in\x20context',{'activeIdx':this[_0x4d60ac(0x211)]});return _0x1a651d;}[_0x24eb6c(0x223)](){const _0x1e8dbf={_0x34e11a:0x1ed},_0x5f2fb7=_0x24eb6c;return this[_0x5f2fb7(_0x1e8dbf._0x34e11a)][_0x5f2fb7(0x223)]??[];}[_0x24eb6c(0x20d)](){const _0x402aac={_0x2c01fa:0x1ed},_0xb74bf3=_0x24eb6c;return this[_0xb74bf3(_0x402aac._0x2c01fa)][_0xb74bf3(0x20d)]??[];}async['setActivePage'](_0x27d940){const _0xb4aca8={_0xf2f070:0x221,_0x1f39e6:0x211,_0x27fbe1:0x21f},_0x1da57d=_0x24eb6c;this[_0x1da57d(0x1fe)](_0x1da57d(0x20f),[_0x27d940]);if(_0x27d940<0x0||_0x27d940>=this[_0x1da57d(_0xb4aca8._0xf2f070)][_0x1da57d(0x21f)])throw new DriverError(_0x1da57d(0x245),{'index':_0x27d940,'available':this[_0x1da57d(0x221)][_0x1da57d(0x21f)]});this[_0x1da57d(_0xb4aca8._0x1f39e6)]=_0x27d940,this['frameStack'][_0x1da57d(_0xb4aca8._0x27fbe1)]=0x0;}[_0x24eb6c(0x1ff)](_0x584606){const _0x528863={_0x37e146:0x236},_0x5ddc6e=_0x24eb6c;return subscribe(this[_0x5ddc6e(_0x528863._0x37e146)],_0x584606);}['emitFakePopup'](_0x9b6332){const _0x71a880={_0x4e05f1:0x235,_0x4b2dc2:0x221,_0x57b16d:0x236},_0x383042=_0x24eb6c,_0x4ece96=this[_0x383042(0x1ea)]+_0x383042(_0x71a880._0x4e05f1)+this['pageList'][_0x383042(0x21f)],_0xe2c612=new FakePage(this[_0x383042(0x215)],this[_0x383042(0x1ed)],_0x4ece96,_0x9b6332);this[_0x383042(0x221)][_0x383042(0x205)](_0xe2c612);const _0x5cc53e=this[_0x383042(_0x71a880._0x4b2dc2)][_0x383042(0x21f)]-0x1;for(const _0x2a8a47 of this[_0x383042(_0x71a880._0x57b16d)]){try{_0x2a8a47({'index':_0x5cc53e,'url':_0x9b6332});}catch{}}return _0x5cc53e;}['closeFakePage'](_0x2b561e){const _0x200b30={_0x3cc602:0x21f,_0x6bd3ca:0x245,_0x40b8e8:0x221},_0x50f740=_0x24eb6c;if(_0x2b561e<0x0||_0x2b561e>=this['pageList'][_0x50f740(_0x200b30._0x3cc602)])throw new DriverError(_0x50f740(_0x200b30._0x6bd3ca),{'index':_0x2b561e,'available':this[_0x50f740(_0x200b30._0x40b8e8)]['length']});this['pageList'][_0x50f740(0x222)](_0x2b561e,0x1);}async[_0x24eb6c(0x1da)](_0x5bb1d2){const _0x9f45ca={_0x479de6:0x1fe,_0x34486d:0x1e4},_0x20a0ff=_0x24eb6c;this[_0x20a0ff(_0x9f45ca._0x479de6)](_0x20a0ff(0x1da),[_0x5bb1d2]);if(!_0x5bb1d2[_0x20a0ff(_0x9f45ca._0x34486d)]['length'])throw new LocatorError('enterFrame\x20called\x20with\x20empty\x20locator',{'locator':_0x5bb1d2});this[_0x20a0ff(0x1d9)][_0x20a0ff(0x205)](_0x5bb1d2);}async['exitFrame'](){const _0x433f29={_0x3f95de:0x1d9,_0x592f0f:0x243},_0x3d424a=_0x24eb6c;this['record'](_0x3d424a(0x206),[]);if(this[_0x3d424a(_0x433f29._0x3f95de)]['length']===0x0)throw new DriverError(_0x3d424a(_0x433f29._0x592f0f),{});this['frameStack']['pop']();}async['setLocalStorage'](_0x45c7fb,_0x48d44f){const _0x40a59d={_0x3d4d4a:0x1fe},_0x407222=_0x24eb6c;this[_0x407222(_0x40a59d._0x3d4d4a)](_0x407222(0x1d8),[_0x45c7fb,_0x48d44f]),this['localStorageState'][_0x45c7fb]=_0x48d44f;}async[_0x24eb6c(0x1f7)](_0x14c8fa){const _0x210ab8=_0x24eb6c;return this['record'](_0x210ab8(0x1f7),[_0x14c8fa]),this[_0x210ab8(0x20b)][_0x14c8fa]??null;}async[_0x24eb6c(0x241)](_0x5e2f68,_0x1718f2,_0x35f6d2){const _0x42f6de=_0x24eb6c;this['record']('setCookie',[_0x5e2f68,_0x1718f2,_0x35f6d2]),this[_0x42f6de(0x220)][_0x5e2f68]=_0x1718f2;}async[_0x24eb6c(0x1d7)](_0x226e82){const _0x14b7c1={_0x4618f7:0x1d7,_0x52ef62:0x220},_0x4987cd=_0x24eb6c;return this['record'](_0x4987cd(_0x14b7c1._0x4618f7),[_0x226e82]),this[_0x4987cd(_0x14b7c1._0x52ef62)][_0x226e82]??null;}async[_0x24eb6c(0x1de)](_0x4b111c){const _0x49dd04={_0x110355:0x1fe,_0x543fcf:0x1de},_0x308abd=_0x24eb6c;this[_0x308abd(_0x49dd04._0x110355)](_0x308abd(_0x49dd04._0x543fcf),[_0x4b111c]);}async[_0x24eb6c(0x202)](_0x5a9ac1){const _0x3bb395=_0x24eb6c;return this[_0x3bb395(0x1fe)]('evaluate',[_0x5a9ac1]),void 0x0;}async[_0x24eb6c(0x227)](){this['record']('close',[]);}[_0x24eb6c(0x1e8)](){const _0x36e471={_0x1b1e67:0x1d9,_0x4db52a:0x21f},_0x27648f=_0x24eb6c;return this[_0x27648f(_0x36e471._0x1b1e67)][_0x27648f(_0x36e471._0x4db52a)];}},FakeWebDriver=class{constructor(_0x1c3cab={}){const _0x3ae429={_0x1884e8:0x215},_0x3338fe=_0x24eb6c;this['behavior']=_0x1c3cab,this[_0x3338fe(_0x3ae429._0x1884e8)]=createRecorder();}[_0x24eb6c(0x1ed)];static{__name(this,_0x24eb6c(0x238));}[_0x24eb6c(0x21c)]=![];[_0x24eb6c(0x215)];['contexts']=[];async[_0x24eb6c(0x242)](_0x1d60eb){const _0x3b0aee={_0x2c1a8e:0x23e,_0x7c2383:0x242},_0x219ce1=_0x24eb6c;this[_0x219ce1(0x215)]['push']({'scope':_0x219ce1(_0x3b0aee._0x2c1a8e),'method':_0x219ce1(_0x3b0aee._0x7c2383),'args':[_0x1d60eb]}),this[_0x219ce1(0x21c)]=!![];}async[_0x24eb6c(0x216)](_0x1d5c28){const _0x337879={_0x447921:0x215,_0x248a16:0x205,_0x1acfc7:0x21c,_0x2c79d1:0x1dc,_0x119b4d:0x21f},_0x31e5d8=_0x24eb6c;this[_0x31e5d8(_0x337879._0x447921)][_0x31e5d8(_0x337879._0x248a16)]({'scope':_0x31e5d8(0x23e),'method':_0x31e5d8(0x216),'args':[_0x1d5c28]});if(!this[_0x31e5d8(_0x337879._0x1acfc7)])throw new DriverError(_0x31e5d8(0x1db),{});const _0x31ce42=new FakeContext(this[_0x31e5d8(0x215)],this[_0x31e5d8(0x1ed)],_0x31e5d8(0x228)+this[_0x31e5d8(_0x337879._0x2c79d1)][_0x31e5d8(_0x337879._0x119b4d)]);return this[_0x31e5d8(0x1dc)]['push'](_0x31ce42),_0x31ce42;}async[_0x24eb6c(0x227)](){const _0x3ae219={_0x4bf993:0x23e,_0x3feac1:0x227},_0x3c5a66=_0x24eb6c;this[_0x3c5a66(0x215)][_0x3c5a66(0x205)]({'scope':_0x3c5a66(_0x3ae219._0x4bf993),'method':_0x3c5a66(_0x3ae219._0x3feac1),'args':[]}),this[_0x3c5a66(0x21c)]=![];}['wsEndpoint'](){return void 0x0;}async[_0x24eb6c(0x1eb)](){const _0x447a21={_0x2d4cc5:0x1f5},_0x7312a9=_0x24eb6c;throw new DriverError(_0x7312a9(_0x447a21._0x2d4cc5),{});}['attachExisting'](){const _0xbeb883={_0x1dadf3:0x1f6},_0x84439d=_0x24eb6c;throw new DriverError(_0x84439d(_0xbeb883._0x1dadf3),{});}[_0x24eb6c(0x24c)](){const _0x2f499f=_0x24eb6c;return this['recorder'][_0x2f499f(0x24c)]();}[_0x24eb6c(0x247)](_0x20f672){const _0x11fa73={_0x490cbf:0x23d},_0x55feeb=_0x24eb6c;return this[_0x55feeb(0x215)][_0x55feeb(0x24c)]()[_0x55feeb(_0x11fa73._0x490cbf)](_0x5c9348=>_0x5c9348[_0x55feeb(0x1f1)]===_0x20f672);}};export{FakeWebDriver};