@unotest/web 0.19.0 → 0.21.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.
@@ -466,6 +466,24 @@ built-in DSL functions.
466
466
  (`camelCase`); `test_*` is reserved for entry functions; `flow_*` for
467
467
  composite multi-step helpers.
468
468
 
469
+ **A helper that READS is not a flow.** `flow_*` is executable on its own —
470
+ the runner accepts it as an entry and `explore_run_flow` replays it — so
471
+ that prefix is for journeys worth replaying. Anything that reads state and
472
+ hands back a value is a plain `snake_case` helper:
473
+
474
+ ```js
475
+ // unotest/e2e/_helpers/viewer.js
476
+ function overview_header_width() {
477
+ return evaluate('(() => document.querySelector("header").getBoundingClientRect().width)()');
478
+ }
479
+ ```
480
+
481
+ `return` is legal in either helper kind, and NOT in a `test_*` entry —
482
+ there it would mean the scenario silently ended halfway. A `flow_*` that
483
+ returns a value gets a `lint:flow-returns-value` warning: fine when the flow
484
+ acts and yields its result (`email = flow_signup()`), a rename hint when it
485
+ only reads.
486
+
469
487
  **Saved test structure.** Every step in a `test_*` entry must sit inside a
470
488
  `step("description", () => { … })` block (linter enforces). The title is the
471
489
  plain-English intent of the group; when a step later breaks you read it
@@ -597,6 +597,24 @@ built-in DSL functions.
597
597
  (`camelCase`); `test_*` is reserved for entry functions; `flow_*` for
598
598
  composite multi-step helpers.
599
599
 
600
+ **A helper that READS is not a flow.** `flow_*` is executable on its own —
601
+ the runner accepts it as an entry and `explore_run_flow` replays it — so
602
+ that prefix is for journeys worth replaying. Anything that reads state and
603
+ hands back a value is a plain `snake_case` helper:
604
+
605
+ ```js
606
+ // unotest/e2e/_helpers/viewer.js
607
+ function overview_header_width() {
608
+ return evaluate('(() => document.querySelector("header").getBoundingClientRect().width)()');
609
+ }
610
+ ```
611
+
612
+ `return` is legal in either helper kind, and NOT in a `test_*` entry —
613
+ there it would mean the scenario silently ended halfway. A `flow_*` that
614
+ returns a value gets a `lint:flow-returns-value` warning: fine when the flow
615
+ acts and yields its result (`email = flow_signup()`), a rename hint when it
616
+ only reads.
617
+
600
618
  **Saved test structure.** Every step in a `test_*` entry must sit inside a
601
619
  `step("description", () => { … })` block (linter enforces). The title is the
602
620
  plain-English intent of the group; when a step later breaks you read it
package/CHANGELOG.md CHANGED
@@ -1,5 +1,141 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.21.0] - 2026-08-25
4
+
5
+ ### Minor Changes
6
+
7
+ - 174d27e: feat: environments are first-class in the viewer — a switcher, per-env run history
8
+
9
+ **Run artifacts are laid out per environment, as folders.** Each
10
+ environment's history lives in its own root, mirroring the env-file
11
+ scheme: `unotest/.runs` (base), `unotest/.runs.<env>` (e.g.
12
+ `.runs.staging` for `--env staging` / `UNOTEST_ENV=staging`); the axes
13
+ compose — `.runs-mobile.staging`. Indexes (`_day.jsonl`, `_latest.json`)
14
+ are per-env automatically: switching environments is a change of root,
15
+ not a filter and not a rebuild. Old runs stay in `.runs` (= base), no
16
+ migration needed. `runsDirFor` / `projectRunsRoot` / `projectRunDirFor`
17
+ gained an optional `envName` parameter; the run manifest carries `env`
18
+ for self-description. Make sure your `.gitignore` uses the wildcard
19
+ form — `unotest/.runs*/` (`init` already writes it that way for new
20
+ projects).
21
+
22
+ **The viewer knows about environments.** A new switcher sits at the top
23
+ of the Variables panel and in the status bar: base plus every
24
+ environment discovered from `unotest/.env.<name>` / `.secrets.<name>`
25
+ (`.env.example` and other templates do not count). The active
26
+ environment is server-side (`GET/POST /api/environments`), and all tabs
27
+ converge via the `env:changed` WS message:
28
+
29
+ - the Variables panel shows layers WITH the active environment's
30
+ overlay (previously base only); values coming from `.env.<name>`
31
+ carry a badge; an edit goes to the file where the key is defined; new
32
+ variables go to base;
33
+ - Overview and the Runs list show only the active environment — tiles
34
+ are colored by the latest run in that environment;
35
+ - a run started from the viewer gets the active environment's
36
+ `UNOTEST_ENV` (`RunRequest.env` is a per-request override);
37
+ - a run opened from another environment still resolves by runId across
38
+ all `.runs*` roots.
39
+
40
+ MCP: `run_test {env}` already switched the child process's environment;
41
+ its artifacts are now correctly found by the server in `.runs.<env>`
42
+ (inspect/step/attach/list_runtimes scan all roots).
43
+
44
+ Four fixes uncovered while shaking this down:
45
+
46
+ - **The `--env` overlay actually reaches the run.** Long-lived hosts
47
+ (viewer, MCP server) flattened the base `.env` into their own
48
+ `process.env` on `loadConfig`; children inherited it as ambient
49
+ (ambient beats files) — the overlay's `APP_BASE_URL` was silently
50
+ clobbered by the base value. The viewer now rolls its env back after
51
+ loading the config; MCP spawns children from a clean pre-flatten
52
+ snapshot.
53
+ - **Pause/Abort from the viewer work again.** Debug commands were
54
+ written to the flat `<root>/<runId>/commands.jsonl`, while runs have
55
+ lived in date shards since 0.19 — the write 404'd and abort was
56
+ silently ignored. Order fixed too: SIGTERM to the own process first
57
+ (tests AND collections), then the command file.
58
+ - **A collection no longer "dies" in the UI after 30 seconds.** The
59
+ parent run wrote no heartbeat — the monitor declared it interrupted,
60
+ the row vanished from ACTIVE and the tail detached. The orchestrator
61
+ now maintains the heartbeat (shared machinery in `@unotest/core`),
62
+ and the viewer additionally treats a flowing steps.jsonl as a sign of
63
+ life (compatibility with older runners).
64
+ - **No phantom `failed` after a clean exit.** The "child exited without
65
+ artifacts" check looked at the flat path and fired bogus
66
+ `run-finished: failed` events plus an error toast on every exit.
67
+
68
+ ### Patch Changes
69
+
70
+ - Updated dependencies [174d27e]
71
+ - @unotest/protocol@0.21.0
72
+ - @unotest/core@0.21.0
73
+ - @unotest/viewer@0.21.0
74
+ - @unotest/dsl@0.21.0
75
+ - @unotest/grounder-client@0.21.0
76
+
77
+ ## [0.20.0] - 2026-08-24
78
+
79
+ ### Minor Changes
80
+
81
+ - c6efd92: Value helpers: `return` is no longer tied to the `flow_` prefix
82
+
83
+ A helper that reads state and returns a value had to be named `flow_*` —
84
+ the only place the validator accepted `return`. But `flow_*` is an
85
+ executable entry: the runner accepts it as a scenario and flow discovery
86
+ offers it to the agent to replay while recording, so a width getter showed
87
+ up in the list of reusable flows.
88
+
89
+ The boundary now keys off `test_*` instead. `return` is legal in any
90
+ helper — `flow_*` composites and plain `snake_case` value helpers alike —
91
+ and still rejected in a `test_*` entry, where it would mean the scenario
92
+ silently ended halfway.
93
+
94
+ ```js
95
+ // unotest/e2e/_helpers/viewer.js
96
+ function overview_header_width() {
97
+ return evaluate(
98
+ '(() => document.querySelector("header").getBoundingClientRect().width)()'
99
+ );
100
+ }
101
+ ```
102
+
103
+ New linter rule `lint:flow-returns-value` (warning) flags a `flow_*` that
104
+ returns a value: legitimate when the flow acts and yields its result
105
+ (`email = flow_signup()`), a rename hint when it only reads. Override it
106
+ under `linter.rules` like any other rule.
107
+
108
+ No migration needed — existing `flow_*` helpers that return keep working.
109
+
110
+ ### Patch Changes
111
+
112
+ - aab65a5: A failure in the first test of a file is no longer lost, and the dashboard no longer waits for F5.
113
+
114
+ **One run, one `run:finished`.** The event was written by the executor's
115
+ per-entry tap, so a file with four `test_*()` functions left four terminal
116
+ events in `steps.jsonl`. Every consumer reads the last one — so `collection`
117
+ reported a scenario green whenever the final function passed and the first
118
+ one failed. The runner now writes the event once, folding the outcomes of
119
+ every entry: `failed` > `interrupted` > `aborted` > `completed`. A run that
120
+ never got started (no entry function, browser failed to launch) writes a
121
+ terminal event too — its artifact used to read as "the process died".
122
+
123
+ **The viewer asks for the index again.** The first `load()` could land while
124
+ the server was still rebuilding the run index: the answer was "no runs", and
125
+ nobody asked again — WS only reports a run starting and finishing. On a
126
+ project with history the whole overview showed "never run" until a page
127
+ reload. `indexReady: false` now schedules a retry with a 0.5s → 30s backoff,
128
+ until the first ready answer.
129
+
130
+ - Updated dependencies [7957469]
131
+ - Updated dependencies [aab65a5]
132
+ - Updated dependencies [c6efd92]
133
+ - @unotest/protocol@0.20.0
134
+ - @unotest/viewer@0.20.0
135
+ - @unotest/dsl@0.20.0
136
+ - @unotest/core@0.20.0
137
+ - @unotest/grounder-client@0.20.0
138
+
3
139
  ## [0.19.0] - 2026-08-23
4
140
 
5
141
  ### Patch Changes
@@ -90,19 +90,19 @@ declare const FailureBundleConfigSchema: z.ZodObject<{
90
90
  type FailureBundleConfig = z.infer<typeof FailureBundleConfigSchema>;
91
91
  declare const DialogPolicySchema: z.ZodEnum<["accept", "dismiss", "manual"]>;
92
92
  type DialogPolicy = z.infer<typeof DialogPolicySchema>;
93
- declare const LinterRuleIdSchema: z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>;
93
+ declare const LinterRuleIdSchema: z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "lint:flow-returns-value", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>;
94
94
  type LinterRuleId = z.infer<typeof LinterRuleIdSchema>;
95
95
  declare const LinterSeveritySchema: z.ZodEnum<["off", "warn", "error"]>;
96
96
  type LinterSeverity = z.infer<typeof LinterSeveritySchema>;
97
97
  declare const LinterConfigSchema: z.ZodObject<{
98
98
  enabled: z.ZodBoolean;
99
- rules: z.ZodRecord<z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>, z.ZodEnum<["off", "warn", "error"]>>;
99
+ rules: z.ZodRecord<z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "lint:flow-returns-value", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>, z.ZodEnum<["off", "warn", "error"]>>;
100
100
  }, "strip", z.ZodTypeAny, {
101
101
  enabled: boolean;
102
- rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
102
+ rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
103
103
  }, {
104
104
  enabled: boolean;
105
- rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
105
+ rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
106
106
  }>;
107
107
  type LinterConfig = z.infer<typeof LinterConfigSchema>;
108
108
  declare const McpConfigSchema: z.ZodObject<{
@@ -172,15 +172,15 @@ declare const WebServerConfigSchema: z.ZodObject<{
172
172
  /** How long to wait for the URL to come up after spawning. */
173
173
  timeoutMs: z.ZodDefault<z.ZodNumber>;
174
174
  }, "strip", z.ZodTypeAny, {
175
- command: string;
176
175
  url: string;
177
- reuseExistingServer: boolean;
178
176
  timeoutMs: number;
179
- }, {
180
177
  command: string;
178
+ reuseExistingServer: boolean;
179
+ }, {
181
180
  url: string;
182
- reuseExistingServer?: boolean | undefined;
181
+ command: string;
183
182
  timeoutMs?: number | undefined;
183
+ reuseExistingServer?: boolean | undefined;
184
184
  }>;
185
185
  type WebServerConfig = z.infer<typeof WebServerConfigSchema>;
186
186
  declare const UnotestConfigSchema: z.ZodObject<{
@@ -206,15 +206,15 @@ declare const UnotestConfigSchema: z.ZodObject<{
206
206
  /** How long to wait for the URL to come up after spawning. */
207
207
  timeoutMs: z.ZodDefault<z.ZodNumber>;
208
208
  }, "strip", z.ZodTypeAny, {
209
- command: string;
210
209
  url: string;
211
- reuseExistingServer: boolean;
212
210
  timeoutMs: number;
213
- }, {
214
211
  command: string;
212
+ reuseExistingServer: boolean;
213
+ }, {
215
214
  url: string;
216
- reuseExistingServer?: boolean | undefined;
215
+ command: string;
217
216
  timeoutMs?: number | undefined;
217
+ reuseExistingServer?: boolean | undefined;
218
218
  }>>;
219
219
  browsers: z.ZodArray<z.ZodEnum<["chromium", "firefox", "webkit"]>, "many">;
220
220
  channel: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"chrome">, z.ZodLiteral<"msedge">, z.ZodLiteral<"chrome-beta">, z.ZodNull]>>;
@@ -312,13 +312,13 @@ declare const UnotestConfigSchema: z.ZodObject<{
312
312
  defaultNavigationTimeoutMs: z.ZodNumber;
313
313
  linter: z.ZodObject<{
314
314
  enabled: z.ZodBoolean;
315
- rules: z.ZodRecord<z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>, z.ZodEnum<["off", "warn", "error"]>>;
315
+ rules: z.ZodRecord<z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "lint:flow-returns-value", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>, z.ZodEnum<["off", "warn", "error"]>>;
316
316
  }, "strip", z.ZodTypeAny, {
317
317
  enabled: boolean;
318
- rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
318
+ rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
319
319
  }, {
320
320
  enabled: boolean;
321
- rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
321
+ rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
322
322
  }>;
323
323
  mcp: z.ZodObject<{
324
324
  transport: z.ZodLiteral<"stdio">;
@@ -398,7 +398,7 @@ declare const UnotestConfigSchema: z.ZodObject<{
398
398
  defaultNavigationTimeoutMs: number;
399
399
  linter: {
400
400
  enabled: boolean;
401
- rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
401
+ rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
402
402
  };
403
403
  mcp: {
404
404
  transport: "stdio";
@@ -413,10 +413,10 @@ declare const UnotestConfigSchema: z.ZodObject<{
413
413
  };
414
414
  baseUrl?: string | undefined;
415
415
  webServer?: {
416
- command: string;
417
416
  url: string;
418
- reuseExistingServer: boolean;
419
417
  timeoutMs: number;
418
+ command: string;
419
+ reuseExistingServer: boolean;
420
420
  } | undefined;
421
421
  channel?: "chrome" | "msedge" | "chrome-beta" | null | undefined;
422
422
  storageState?: string | undefined;
@@ -450,7 +450,7 @@ declare const UnotestConfigSchema: z.ZodObject<{
450
450
  defaultNavigationTimeoutMs: number;
451
451
  linter: {
452
452
  enabled: boolean;
453
- rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
453
+ rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
454
454
  };
455
455
  mcp: {
456
456
  transport: "stdio";
@@ -465,10 +465,10 @@ declare const UnotestConfigSchema: z.ZodObject<{
465
465
  };
466
466
  baseUrl?: string | undefined;
467
467
  webServer?: {
468
- command: string;
469
468
  url: string;
470
- reuseExistingServer?: boolean | undefined;
469
+ command: string;
471
470
  timeoutMs?: number | undefined;
471
+ reuseExistingServer?: boolean | undefined;
472
472
  } | undefined;
473
473
  channel?: "chrome" | "msedge" | "chrome-beta" | null | undefined;
474
474
  storageState?: string | undefined;
@@ -1 +1 @@
1
- function _0x24cf(_0x477f62,_0x1eaa9a){_0x477f62=_0x477f62-0x111;var _0x17e137=_0x17e1();var _0x24cf04=_0x17e137[_0x477f62];if(_0x24cf['HAEBEm']===undefined){var _0x5a4b8d=function(_0x5e2fc4){var _0xeac736='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x433503='',_0x52efdf='';for(var _0x116ffc=0x0,_0x1fe7a7,_0x427744,_0x5d0aae=0x0;_0x427744=_0x5e2fc4['charAt'](_0x5d0aae++);~_0x427744&&(_0x1fe7a7=_0x116ffc%0x4?_0x1fe7a7*0x40+_0x427744:_0x427744,_0x116ffc++%0x4)?_0x433503+=String['fromCharCode'](0xff&_0x1fe7a7>>(-0x2*_0x116ffc&0x6)):0x0){_0x427744=_0xeac736['indexOf'](_0x427744);}for(var _0x4094ba=0x0,_0x4b21e0=_0x433503['length'];_0x4094ba<_0x4b21e0;_0x4094ba++){_0x52efdf+='%'+('00'+_0x433503['charCodeAt'](_0x4094ba)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x52efdf);};_0x24cf['JmhbWk']=_0x5a4b8d,_0x24cf['aMnMKM']={},_0x24cf['HAEBEm']=!![];}var _0x42f2eb=_0x17e137[0x0],_0x29b9df=_0x477f62+_0x42f2eb,_0x26e0dd=_0x24cf['aMnMKM'][_0x29b9df];return!_0x26e0dd?(_0x24cf04=_0x24cf['JmhbWk'](_0x24cf04),_0x24cf['aMnMKM'][_0x29b9df]=_0x24cf04):_0x24cf04=_0x26e0dd,_0x24cf04;}var _0x240191=_0x24cf;(function(_0x3296fc,_0x5e66e2){var _0x22d313={_0x14e0e7:0x132,_0x106738:0x13e,_0x72158f:0x119,_0x2a6e5b:0x11c},_0x5d43c5=_0x24cf,_0x353ea6=_0x3296fc();while(!![]){try{var _0x4be76a=-parseInt(_0x5d43c5(0x11f))/0x1*(-parseInt(_0x5d43c5(_0x22d313._0x14e0e7))/0x2)+-parseInt(_0x5d43c5(_0x22d313._0x106738))/0x3+-parseInt(_0x5d43c5(_0x22d313._0x72158f))/0x4+parseInt(_0x5d43c5(0x150))/0x5+parseInt(_0x5d43c5(0x126))/0x6*(parseInt(_0x5d43c5(0x134))/0x7)+parseInt(_0x5d43c5(0x14b))/0x8+-parseInt(_0x5d43c5(_0x22d313._0x2a6e5b))/0x9;if(_0x4be76a===_0x5e66e2)break;else _0x353ea6['push'](_0x353ea6['shift']());}catch(_0x2a14e1){_0x353ea6['push'](_0x353ea6['shift']());}}}(_0x17e1,0xb340b));import{z}from'zod';var BrowserSchema=z[_0x240191(0x141)]([_0x240191(0x12a),_0x240191(0x138),_0x240191(0x13a)]),BrowserChannelSchema=z[_0x240191(0x143)]([z[_0x240191(0x147)](_0x240191(0x123)),z[_0x240191(0x147)](_0x240191(0x120)),z[_0x240191(0x147)](_0x240191(0x14a)),z[_0x240191(0x14d)]()])['optional'](),ViewportSchema=z[_0x240191(0x131)]({'width':z['number']()['int']()[_0x240191(0x148)](),'height':z[_0x240191(0x142)]()[_0x240191(0x135)]()[_0x240191(0x148)]()}),RetryReasonSchema=z[_0x240191(0x141)]([_0x240191(0x121),_0x240191(0x12c),_0x240191(0x125)]),RetryConfigSchema=z[_0x240191(0x131)]({'count':z[_0x240191(0x142)]()[_0x240191(0x135)]()[_0x240191(0x13b)](0x0)[_0x240191(0x139)](0xa),'on':z[_0x240191(0x145)](RetryReasonSchema)}),FailureBundleConfigSchema=z[_0x240191(0x131)]({'tier1':z[_0x240191(0x147)](!![])[_0x240191(0x144)](!![]),'tier2':z[_0x240191(0x111)](),'tier3':z[_0x240191(0x131)]({'network':z['boolean'](),'video':z[_0x240191(0x111)]()}),'retention':z[_0x240191(0x131)]({'runs':z[_0x240191(0x142)]()[_0x240191(0x135)]()[_0x240191(0x148)](),'days':z[_0x240191(0x142)]()[_0x240191(0x135)]()['positive']()}),'storageDir':z['string']()[_0x240191(0x13b)](0x1)}),DialogPolicySchema=z['enum']([_0x240191(0x122),_0x240191(0x113),_0x240191(0x128)]),LinterRuleIdSchema=z['enum'](['lint:deep-css',_0x240191(0x13c),'lint:obfuscated-class',_0x240191(0x140),_0x240191(0x124),_0x240191(0x12d),'lint:scenario-in-root',_0x240191(0x127),_0x240191(0x136),_0x240191(0x14f),_0x240191(0x12f),'lint:api-call-file-body',_0x240191(0x13f),_0x240191(0x11a),_0x240191(0x11d),_0x240191(0x14c),_0x240191(0x130),_0x240191(0x129),'validator:meta-shape',_0x240191(0x137),_0x240191(0x116),'validator:if-shape',_0x240191(0x11b),'validator:unsupported-statement',_0x240191(0x112),'validator:string-concat','validator:semantic-loss',_0x240191(0x133),'validator:wrapped-format']),LinterSeveritySchema=z[_0x240191(0x141)](['off',_0x240191(0x114),'error']),LinterConfigSchema=z[_0x240191(0x131)]({'enabled':z['boolean'](),'rules':z[_0x240191(0x14e)](LinterRuleIdSchema,LinterSeveritySchema)}),McpConfigSchema=z['object']({'transport':z[_0x240191(0x147)]('stdio')}),SandboxConfigSchema=z[_0x240191(0x131)]({'shellCwd':z[_0x240191(0x12e)]()[_0x240191(0x11e)](),'shellTimeoutMs':z[_0x240191(0x142)]()[_0x240191(0x135)]()[_0x240191(0x148)]()[_0x240191(0x11e)](),'exportSecrets':z[_0x240191(0x145)](z[_0x240191(0x12e)]())[_0x240191(0x11e)](),'database':z[_0x240191(0x12e)]()[_0x240191(0x11e)](),'apiBaseUrl':z[_0x240191(0x12e)]()[_0x240191(0x13d)]()['optional'](),'uploadDir':z[_0x240191(0x12e)]()[_0x240191(0x11e)]()}),WebServerConfigSchema=z[_0x240191(0x131)]({'command':z['string']()['min'](0x1),'url':z[_0x240191(0x12e)]()[_0x240191(0x13d)](),'reuseExistingServer':z['boolean']()['default'](!![]),'timeoutMs':z[_0x240191(0x142)]()[_0x240191(0x135)]()[_0x240191(0x148)]()[_0x240191(0x144)](0xea60)}),UnotestConfigSchema=z['object']({'baseUrl':z[_0x240191(0x12e)]()[_0x240191(0x13d)]()[_0x240191(0x11e)](),'webServer':WebServerConfigSchema[_0x240191(0x11e)](),'browsers':z['array'](BrowserSchema)['min'](0x1),'channel':BrowserChannelSchema,'viewport':ViewportSchema,'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':z[_0x240191(0x12e)]()['optional'](),'testDir':z[_0x240191(0x12e)]()[_0x240191(0x13b)](0x1),'helpersDir':z[_0x240191(0x12e)]()['min'](0x1),'defaultTimeoutMs':z[_0x240191(0x142)]()[_0x240191(0x135)]()['positive'](),'defaultNavigationTimeoutMs':z[_0x240191(0x142)]()[_0x240191(0x135)]()[_0x240191(0x148)](),'linter':LinterConfigSchema,'mcp':McpConfigSchema,'sandbox':SandboxConfigSchema}),DEFAULT_CONFIG={'browsers':['chromium'],'viewport':{'width':0x500,'height':0x2d0},'retry':{'count':0x0,'on':[_0x240191(0x121)]},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':_0x240191(0x12b)},'dialogPolicy':_0x240191(0x122),'testDir':_0x240191(0x118),'helpersDir':_0x240191(0x117),'defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x7530,'linter':{'enabled':!![],'rules':{'lint:deep-css':_0x240191(0x114),'lint:xpath':'warn','lint:obfuscated-class':_0x240191(0x114),'lint:pause-explicit':_0x240191(0x114),'lint:disambig-by-index':_0x240191(0x115),'lint:evaluate-discouraged':_0x240191(0x114),'lint:scenario-in-root':_0x240191(0x146),'lint:mustache-in-dsl':'error','lint:goto-concat':_0x240191(0x114),'lint:regex-invalid':_0x240191(0x146),'lint:echo-assert':_0x240191(0x114),'lint:lint-ok-missing-reason':'warn','validator:unknown-function':'error'}},'mcp':{'transport':_0x240191(0x149)},'sandbox':{}};function _0x17e1(){var _0x184576=['DxjS','mJC5nta1nwDkEM55ra','BgLUDdPSAw50lw9Rlw1PC3nPBMCTCMvHC29U','BgLUDdPWyxvZzs1LEhbSAwnPDa','zw51Bq','BNvTyMvY','Dw5PB24','zgvMyxvSDa','yxjYyxK','zxjYB3i','BgL0zxjHBa','Cg9ZAxrPDMu','C3rKAw8','y2HYB21LlwjLDge','nde2mJeWnfHxzMPeDq','DMfSAwrHDg9YoMfYzY1RAw5K','BNvSBa','CMvJB3jK','BgLUDdPYzwDLEc1PBNzHBgLK','mJG5mtu3nwfJEfjrsW','yM9VBgvHBG','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlwv4ChjLC3nPB24','zgLZBwLZCW','D2fYBG','B2zM','DMfSAwrHDg9YoMzVCI1ZAgfWzq','Dw5VDgvZDc9LmMuVx2HLBhbLCNm','Dw5VDgvZDc9LmMu','mtK0ndq0mgDnDxzIrG','DMfSAwrHDg9YoNvUA25VD24TzNvUy3rPB24','DMfSAwrHDg9YoNzHCI1ZAgfWzq','mti4nJa3nZvsrxLlDg8','DMfSAwrHDg9YoMfYAxr5','B3b0Aw9UywW','mZnOzwnpzve','BxnLzgDL','DhjHBNnPzw50','ywnJzxb0','y2HYB21L','BgLUDdPKAxnHBwjPzY1IEs1PBMrLEa','y3jHC2G','odm4mdG2mgjove1dua','BgLUDdPTDxn0ywnOzs1PBI1KC2W','BwfUDwfS','DMfSAwrHDg9YoNn0zxaTC2HHCgu','y2HYB21PDw0','lNvUB3rLC3qVzMfPBhvYzxm','BMv0D29YAW','BgLUDdPLDMfSDwf0zs1KAxnJB3vYywDLza','C3rYAw5N','BgLUDdPLy2HVlwfZC2vYDa','DMfSAwrHDg9YoNn0zxaTy292zxjHz2u','B2jQzwn0','nJu3otrpwerQsvu','DMfSAwrHDg9YoMXPC3qTyxjN','n2XHrLfSta','Aw50','BgLUDdPNB3rVlwnVBMnHDa','DMfSAwrHDg9YoMz1BMn0Aw9UlxnOyxbL','zMLYzwzVEa','Bwf4','D2vIA2L0','BwLU','BgLUDdP4Cgf0Aa'];_0x17e1=function(){return _0x184576;};return _0x17e1();}export{BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,RetryConfigSchema,RetryReasonSchema,SandboxConfigSchema,UnotestConfigSchema,ViewportSchema,WebServerConfigSchema};
1
+ var _0x3a1d0b=_0x2568;function _0x2568(_0x338e45,_0x586d38){_0x338e45=_0x338e45-0xc8;var _0x1776f4=_0x1776();var _0x2568e5=_0x1776f4[_0x338e45];if(_0x2568['qJLKYF']===undefined){var _0x4896ec=function(_0x36b4c3){var _0x21b95e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x297d74='',_0x1ae1b4='';for(var _0x4b7dec=0x0,_0x5f36d2,_0x1635f5,_0x53963d=0x0;_0x1635f5=_0x36b4c3['charAt'](_0x53963d++);~_0x1635f5&&(_0x5f36d2=_0x4b7dec%0x4?_0x5f36d2*0x40+_0x1635f5:_0x1635f5,_0x4b7dec++%0x4)?_0x297d74+=String['fromCharCode'](0xff&_0x5f36d2>>(-0x2*_0x4b7dec&0x6)):0x0){_0x1635f5=_0x21b95e['indexOf'](_0x1635f5);}for(var _0x43318b=0x0,_0x56fc9d=_0x297d74['length'];_0x43318b<_0x56fc9d;_0x43318b++){_0x1ae1b4+='%'+('00'+_0x297d74['charCodeAt'](_0x43318b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1ae1b4);};_0x2568['JRDYzl']=_0x4896ec,_0x2568['Xzudtt']={},_0x2568['qJLKYF']=!![];}var _0x2267bb=_0x1776f4[0x0],_0x3f3527=_0x338e45+_0x2267bb,_0x3d501b=_0x2568['Xzudtt'][_0x3f3527];return!_0x3d501b?(_0x2568e5=_0x2568['JRDYzl'](_0x2568e5),_0x2568['Xzudtt'][_0x3f3527]=_0x2568e5):_0x2568e5=_0x3d501b,_0x2568e5;}(function(_0x341cf9,_0x5d1bea){var _0x309904={_0x59a8d5:0xca,_0x263bcd:0xe7,_0x3532fb:0xfe,_0x5acb36:0x102},_0x1aaa80=_0x2568,_0x4ba53f=_0x341cf9();while(!![]){try{var _0x4e8146=-parseInt(_0x1aaa80(0x108))/0x1*(parseInt(_0x1aaa80(0xee))/0x2)+-parseInt(_0x1aaa80(_0x309904._0x59a8d5))/0x3+parseInt(_0x1aaa80(_0x309904._0x263bcd))/0x4*(parseInt(_0x1aaa80(_0x309904._0x3532fb))/0x5)+-parseInt(_0x1aaa80(0xd1))/0x6*(parseInt(_0x1aaa80(0xec))/0x7)+parseInt(_0x1aaa80(0xd0))/0x8+-parseInt(_0x1aaa80(_0x309904._0x5acb36))/0x9+parseInt(_0x1aaa80(0x106))/0xa*(parseInt(_0x1aaa80(0xf4))/0xb);if(_0x4e8146===_0x5d1bea)break;else _0x4ba53f['push'](_0x4ba53f['shift']());}catch(_0x1811b2){_0x4ba53f['push'](_0x4ba53f['shift']());}}}(_0x1776,0x77fea));import{z}from'zod';var BrowserSchema=z[_0x3a1d0b(0x107)]([_0x3a1d0b(0xd5),_0x3a1d0b(0xed),_0x3a1d0b(0xdb)]),BrowserChannelSchema=z[_0x3a1d0b(0x10a)]([z[_0x3a1d0b(0xdc)](_0x3a1d0b(0x10b)),z[_0x3a1d0b(0xdc)](_0x3a1d0b(0x100)),z[_0x3a1d0b(0xdc)]('chrome-beta'),z[_0x3a1d0b(0xf8)]()])[_0x3a1d0b(0xcb)](),ViewportSchema=z['object']({'width':z[_0x3a1d0b(0xd9)]()[_0x3a1d0b(0xff)]()[_0x3a1d0b(0xd6)](),'height':z[_0x3a1d0b(0xd9)]()['int']()[_0x3a1d0b(0xd6)]()}),RetryReasonSchema=z[_0x3a1d0b(0x107)]([_0x3a1d0b(0xe4),'network',_0x3a1d0b(0xcf)]),RetryConfigSchema=z['object']({'count':z[_0x3a1d0b(0xd9)]()[_0x3a1d0b(0xff)]()['min'](0x0)[_0x3a1d0b(0xfd)](0xa),'on':z[_0x3a1d0b(0x101)](RetryReasonSchema)}),FailureBundleConfigSchema=z['object']({'tier1':z[_0x3a1d0b(0xdc)](!![])[_0x3a1d0b(0xe8)](!![]),'tier2':z[_0x3a1d0b(0xc9)](),'tier3':z[_0x3a1d0b(0xe1)]({'network':z[_0x3a1d0b(0xc9)](),'video':z[_0x3a1d0b(0xc9)]()}),'retention':z[_0x3a1d0b(0xe1)]({'runs':z[_0x3a1d0b(0xd9)]()[_0x3a1d0b(0xff)]()[_0x3a1d0b(0xd6)](),'days':z[_0x3a1d0b(0xd9)]()[_0x3a1d0b(0xff)]()[_0x3a1d0b(0xd6)]()}),'storageDir':z[_0x3a1d0b(0xf9)]()['min'](0x1)}),DialogPolicySchema=z[_0x3a1d0b(0x107)]([_0x3a1d0b(0xd8),_0x3a1d0b(0xef),_0x3a1d0b(0xd3)]),LinterRuleIdSchema=z[_0x3a1d0b(0x107)]([_0x3a1d0b(0xce),_0x3a1d0b(0xcd),_0x3a1d0b(0x104),_0x3a1d0b(0xfc),'lint:disambig-by-index',_0x3a1d0b(0xe6),_0x3a1d0b(0xe3),_0x3a1d0b(0xdf),_0x3a1d0b(0xfa),_0x3a1d0b(0xeb),_0x3a1d0b(0xdd),_0x3a1d0b(0xf6),_0x3a1d0b(0xfb),_0x3a1d0b(0x103),_0x3a1d0b(0xd4),_0x3a1d0b(0xf1),_0x3a1d0b(0xda),_0x3a1d0b(0xf5),_0x3a1d0b(0xe2),'validator:meta-shape',_0x3a1d0b(0xcc),_0x3a1d0b(0xf0),_0x3a1d0b(0xea),'validator:var-shape',_0x3a1d0b(0xe9),_0x3a1d0b(0xd2),_0x3a1d0b(0xde),_0x3a1d0b(0x109),'validator:list-arg','validator:wrapped-format']),LinterSeveritySchema=z[_0x3a1d0b(0x107)]([_0x3a1d0b(0xf7),_0x3a1d0b(0xf3),_0x3a1d0b(0xe5)]),LinterConfigSchema=z[_0x3a1d0b(0xe1)]({'enabled':z[_0x3a1d0b(0xc9)](),'rules':z[_0x3a1d0b(0xc8)](LinterRuleIdSchema,LinterSeveritySchema)}),McpConfigSchema=z[_0x3a1d0b(0xe1)]({'transport':z[_0x3a1d0b(0xdc)]('stdio')}),SandboxConfigSchema=z['object']({'shellCwd':z['string']()['optional'](),'shellTimeoutMs':z[_0x3a1d0b(0xd9)]()[_0x3a1d0b(0xff)]()[_0x3a1d0b(0xd6)]()['optional'](),'exportSecrets':z[_0x3a1d0b(0x101)](z[_0x3a1d0b(0xf9)]())[_0x3a1d0b(0xcb)](),'database':z[_0x3a1d0b(0xf9)]()[_0x3a1d0b(0xcb)](),'apiBaseUrl':z['string']()[_0x3a1d0b(0xd7)]()['optional'](),'uploadDir':z[_0x3a1d0b(0xf9)]()['optional']()}),WebServerConfigSchema=z[_0x3a1d0b(0xe1)]({'command':z[_0x3a1d0b(0xf9)]()[_0x3a1d0b(0x105)](0x1),'url':z[_0x3a1d0b(0xf9)]()[_0x3a1d0b(0xd7)](),'reuseExistingServer':z[_0x3a1d0b(0xc9)]()[_0x3a1d0b(0xe8)](!![]),'timeoutMs':z[_0x3a1d0b(0xd9)]()['int']()[_0x3a1d0b(0xd6)]()[_0x3a1d0b(0xe8)](0xea60)}),UnotestConfigSchema=z['object']({'baseUrl':z[_0x3a1d0b(0xf9)]()[_0x3a1d0b(0xd7)]()[_0x3a1d0b(0xcb)](),'webServer':WebServerConfigSchema[_0x3a1d0b(0xcb)](),'browsers':z[_0x3a1d0b(0x101)](BrowserSchema)[_0x3a1d0b(0x105)](0x1),'channel':BrowserChannelSchema,'viewport':ViewportSchema,'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':z[_0x3a1d0b(0xf9)]()['optional'](),'testDir':z['string']()[_0x3a1d0b(0x105)](0x1),'helpersDir':z[_0x3a1d0b(0xf9)]()[_0x3a1d0b(0x105)](0x1),'defaultTimeoutMs':z[_0x3a1d0b(0xd9)]()[_0x3a1d0b(0xff)]()[_0x3a1d0b(0xd6)](),'defaultNavigationTimeoutMs':z['number']()[_0x3a1d0b(0xff)]()[_0x3a1d0b(0xd6)](),'linter':LinterConfigSchema,'mcp':McpConfigSchema,'sandbox':SandboxConfigSchema}),DEFAULT_CONFIG={'browsers':[_0x3a1d0b(0xd5)],'viewport':{'width':0x500,'height':0x2d0},'retry':{'count':0x0,'on':[_0x3a1d0b(0xe4)]},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':_0x3a1d0b(0xe0)},'dialogPolicy':'accept','testDir':'unotest/e2e','helpersDir':_0x3a1d0b(0xf2),'defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x7530,'linter':{'enabled':!![],'rules':{'lint:deep-css':_0x3a1d0b(0xf3),'lint:xpath':'warn','lint:obfuscated-class':_0x3a1d0b(0xf3),'lint:pause-explicit':_0x3a1d0b(0xf3),'lint:disambig-by-index':_0x3a1d0b(0xf7),'lint:evaluate-discouraged':_0x3a1d0b(0xf3),'lint:scenario-in-root':_0x3a1d0b(0xe5),'lint:mustache-in-dsl':_0x3a1d0b(0xe5),'lint:goto-concat':'warn','lint:regex-invalid':'error','lint:echo-assert':'warn','lint:lint-ok-missing-reason':'warn','lint:flow-returns-value':_0x3a1d0b(0xf3),'validator:unknown-function':_0x3a1d0b(0xe5)}},'mcp':{'transport':'stdio'},'sandbox':{}};export{BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,RetryConfigSchema,RetryReasonSchema,SandboxConfigSchema,UnotestConfigSchema,ViewportSchema,WebServerConfigSchema};function _0x1776(){var _0x2f3eb5=['DMfSAwrHDg9YoNvUC3vWCg9YDgvKlxn0yxrLBwvUDa','DMfSAwrHDg9YoMLMlxnOyxbL','BgLUDdPYzwDLEc1PBNzHBgLK','mtGZodq1ouP3EeneDa','zMLYzwzVEa','nJeYodjdAwXAwee','zgLZBwLZCW','DMfSAwrHDg9YoMzVCI1ZAgfWzq','DMfSAwrHDg9YoMfYAxr5','Dw5VDgvZDc9LmMuVx2HLBhbLCNm','D2fYBG','ndqWCujxufvL','DMfSAwrHDg9YoNn0zxaTy292zxjHz2u','BgLUDdPHCgKTy2fSBc1MAwXLlwjVzhK','B2zM','BNvSBa','C3rYAw5N','BgLUDdPNB3rVlwnVBMnHDa','BgLUDdPSAw50lw9Rlw1PC3nPBMCTCMvHC29U','BgLUDdPWyxvZzs1LEhbSAwnPDa','Bwf4','ntvXz2PZCNO','Aw50','BxnLzgDL','yxjYyxK','oda2otq5mhbPy1nAsq','BgLUDdPMBg93lxjLDhvYBNmTDMfSDwu','BgLUDdPVyMz1C2nHDgvKlwnSyxnZ','BwLU','mZC3mdGWsMzmC2fQ','zw51Bq','mtrRv3vAEwm','DMfSAwrHDg9YoNnLBwfUDgLJlwXVC3m','Dw5PB24','y2HYB21L','CMvJB3jK','yM9VBgvHBG','mJy1nZC1mur2vMniCq','B3b0Aw9UywW','DMfSAwrHDg9YoMz1BMn0Aw9UlxnOyxbL','BgLUDdP4Cgf0Aa','BgLUDdPKzwvWlwnZCW','y3jHC2G','ntKYmdKZnKftD3fJBG','mtjTD3PhEw4','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlwv4ChjLC3nPB24','BwfUDwfS','DMfSAwrHDg9YoNvUA25VD24TzNvUy3rPB24','y2HYB21PDw0','Cg9ZAxrPDMu','DxjS','ywnJzxb0','BNvTyMvY','DMfSAwrHDg9YoMfYzY1RAw5K','D2vIA2L0','BgL0zxjHBa','BgLUDdPLy2HVlwfZC2vYDa','DMfSAwrHDg9YoNn0CMLUzY1JB25Jyxq','BgLUDdPTDxn0ywnOzs1PBI1KC2W','lNvUB3rLC3qVzMfPBhvYzxm','B2jQzwn0','DMfSAwrHDg9YoNn0zxaTC2HHCgu','BgLUDdPZy2vUyxjPBY1PBI1YB290','DhjHBNnPzw50','zxjYB3i','BgLUDdPLDMfSDwf0zs1KAxnJB3vYywDLza','mZu2mZa0A3zVq0TA','zgvMyxvSDa'];_0x1776=function(){return _0x2f3eb5;};return _0x1776();}
@@ -1 +1 @@
1
- const _0x7a0933=_0x440a;(function(_0x594c07,_0x1c8224){const _0x52b488={_0x3ea6a2:0x163,_0x1dcb73:0x193,_0x4e5348:0x16c,_0x1261de:0x167,_0x2b3c1f:0x182},_0x4564bb=_0x440a,_0x4a5a8b=_0x594c07();while(!![]){try{const _0x11df7e=-parseInt(_0x4564bb(0x197))/0x1+parseInt(_0x4564bb(_0x52b488._0x3ea6a2))/0x2+parseInt(_0x4564bb(_0x52b488._0x1dcb73))/0x3*(-parseInt(_0x4564bb(0x1a3))/0x4)+parseInt(_0x4564bb(_0x52b488._0x4e5348))/0x5+parseInt(_0x4564bb(0x194))/0x6*(-parseInt(_0x4564bb(0x19b))/0x7)+-parseInt(_0x4564bb(_0x52b488._0x1261de))/0x8*(-parseInt(_0x4564bb(_0x52b488._0x2b3c1f))/0x9)+-parseInt(_0x4564bb(0x17c))/0xa;if(_0x11df7e===_0x1c8224)break;else _0x4a5a8b['push'](_0x4a5a8b['shift']());}catch(_0x527752){_0x4a5a8b['push'](_0x4a5a8b['shift']());}}}(_0x4bf1,0xeb972));var __defProp=Object[_0x7a0933(0x1a9)],__name=(_0x962db1,_0x11af7e)=>__defProp(_0x962db1,'name',{'value':_0x11af7e,'configurable':!![]});function subscribe(_0x1fdba8,_0x4e4bb3){const _0x850cc1=_0x7a0933;return _0x1fdba8[_0x850cc1(0x18d)](_0x4e4bb3),()=>{const _0x35272c=_0x850cc1;_0x1fdba8[_0x35272c(0x1d2)](_0x4e4bb3);};}__name(subscribe,_0x7a0933(0x1b6));import{UnotestError}from'@unotest/core';var DriverError=class extends UnotestError{static{__name(this,_0x7a0933(0x176));}},LocatorError=class extends UnotestError{static{__name(this,_0x7a0933(0x1cb));}};function _0x4bf1(){const _0x3947bb=['D3nfBMrWB2LUDa','rhjPDMvYrxjYB3i','Bwf5yMvuAhjVDW','Dw5JAgvJAW','C2f2zvn0B3jHz2vtDgf0zq','zxzHBhvHDgu','Bg9JywXtDg9YywDL','otG4mJmWwwrvzxz5','y29UDgv4Dhm','Dgv4DenVBNrLBNrcEurLzMf1Bhq','zxHPDezYyw1L','yxr0ywnOrxHPC3rPBMCGBM90ihn1ChbVCNrLzcbIEsbgywTLv2vIrhjPDMvY','Aw5ZCgvJDevSzw1LBNq','mJGXmtG0m2riz2vhuq','zw50zxjgCMfTzq','y29VA2LLu3rHDgu','Bgf1BMnO','yxr0CMLIDxrLC0j5rgvMyxvSDa','y29UBMvJDfnOyxjLza','DgL0Bgu','B3v0zxjiDg1SqNLszwy','zNjVBq','zMLSDgvY','BMv3ugfNzuXPC3rLBMvYCW','ywrK','C2v0q29VA2LL','y291BNrcEurLzMf1Bhq','ChvZAa','z2v0qxr0CMLIDxrL','ywn0AxzLugfNzq','ouTpAK9IzW','mJC4nJK4mMjWzLjYyG','z29gB3j3yxjK','D2fPDezVCG','nZGZotCWrgjZrwPe','y291BNq','y3r4','Cg9W','n21Pq2v6vW','B3v0zxjive1m','z2v0q29VA2LL','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','y29UBMvJDfnOyxjLzcbUB3qGC3vWCg9YDgvKigj5iezHA2vxzwjeCML2zxi','y29VA2LLCW','zg91yMXLq2XPy2S','C2nYzwvUC2HVDa','mta4oty3mM9MzxjOzq','CMvSB2fK','B25bzNrLCKnSAwnR','Cg9WDxbpBKnSAwnR','y3vYCMvUDfvYBa','AxneAxnHyMXLzej5rgvMyxvSDa','zgvMAw5LuhjVCgvYDhK','rMfRzunVBNrLEhq','C3rLChm','CgfNzuXPC3q','zxjYB3jpBK5LEhrby3rPB24','y2XVC2vgywTLugfNzq','Ag92zxi','Bg9JywXtDg9YywDLu3rHDgu','zhjHz0fUzerYB3a','CMvJB3jK','zw1PDezHA2vqB3b1Ca','z2v0tg9JywXtDg9YywDL','ChjLC3m','C3vIC2nYAwjL','zxzHBhvHDgvpBKXVy2f0B3i','Bwv0Ag9K','DxjS','CMvJB3jKzxi','D2fPDezVCKXVywrtDgf0zq','y2HLy2TLzfn0yxrL','zNjHBwvtDgfJAW','Aw5PDgLHBfvYBa','C2vSzwn0t3b0Aw9U','rMfRzvbHz2u','y2XPy2S','pgrPDJ48l2rPDJ4','AxneAxnHyMXLza','zhjPDMvY','D2fPDezVCLrLEhq','C2v0qwn0AxzLugfNzq','BMv0D29YA0vUDhjPzxm','y2fSBhm','lNbHz2u','AxnwAxnPyMXL','tg9JyxrVCKvYCM9Y','y2fSBhngB3i','yMvOyxzPB3i','CgfNzsbPBMrLEcbVDxqGB2yGCMfUz2u','zMfRzsb0AxrSzq','ywn0AxzLswr4','CMvM','zgvSzxrL','y2XPCgjVyxjKugfZDgu','z29cywnR','B25ozxDqywDL','mZu2nJm3oeLhsxj3AW','C2nVCgu','zMLSBa','zwXLBwvUDeHPBNrcEvjLzG','mJrqzMHszKG','Bgf1BMnOzwq','Dgv4DenVBNrLBNq','y2HLy2S','D2fPDezVCLvYBa','mJa0nti2mgTys3HszG','DxbSB2fKrMLSzq','z290BW','BgvUz3rO','zNjHBwvezxb0Aa','BMv3q29UDgv4Da','D2fPDezVCK5HDMLNyxrPB24','y2XVC2u','ywjVDxq6yMXHBMS'];_0x4bf1=function(){return _0x3947bb;};return _0x4bf1();}function createRecorder(){const _0x1c88da={_0x449ac8:0x190},_0xc90fa6=_0x7a0933,_0x3f38c0=[];let _0x1d5681=0x0;return{'push':__name(_0x18c799=>_0x3f38c0[_0xc90fa6(0x190)]({..._0x18c799,'seq':_0x1d5681++}),_0xc90fa6(_0x1c88da._0x449ac8)),'calls':__name(()=>_0x3f38c0,'calls')};}__name(createRecorder,'createRecorder');var FakePage=class{constructor(_0x271a05,_0x55b5ae,_0x2a4655,_0x5d137e){const _0x442618={_0x67e071:0x1ba,_0x4b2ba8:0x164},_0x296ced=_0x7a0933;this[_0x296ced(_0x442618._0x67e071)]=_0x271a05,this['behavior']=_0x55b5ae,this[_0x296ced(_0x442618._0x4b2ba8)]=_0x2a4655,this['currentUrl']=_0x5d137e;}['recorder'];[_0x7a0933(0x1cd)];[_0x7a0933(0x164)];static{__name(this,_0x7a0933(0x1c0));}[_0x7a0933(0x1a7)];['onAfterClick'];[_0x7a0933(0x1b2)](_0x493b31,_0x113485){const _0x5909fc={_0x52584f:0x1ba},_0x3ed655=_0x7a0933;this[_0x3ed655(_0x5909fc._0x52584f)][_0x3ed655(0x190)]({'scope':this[_0x3ed655(0x164)],'method':_0x493b31,'args':_0x113485});}[_0x7a0933(0x177)](){const _0x4b9e8a={_0x159bfe:0x1cd,_0x74933f:0x1ad},_0x3dfbf9=_0x7a0933;if(this[_0x3dfbf9(0x1cd)][_0x3dfbf9(0x1ad)]){const _0x5781b8=this[_0x3dfbf9(_0x4b9e8a._0x159bfe)][_0x3dfbf9(_0x4b9e8a._0x74933f)];this['behavior'][_0x3dfbf9(_0x4b9e8a._0x74933f)]=void 0x0;throw _0x5781b8;}}[_0x7a0933(0x1b9)](){return this['currentUrl'];}async['title'](){const _0x3a0925={_0x2ac7d4:0x188},_0x208020=_0x7a0933;return this[_0x208020(0x1b2)](_0x208020(_0x3a0925._0x2ac7d4),[]),_0x208020(0x1cf);}async['click'](_0x26bc52,_0x4ae588){const _0xc5b7ac={_0x23b2f8:0x177,_0x257fbe:0x1a5},_0x99e210=_0x7a0933;this[_0x99e210(0x1b2)](_0x99e210(0x1c1),[_0x26bc52,_0x4ae588]),this[_0x99e210(_0xc5b7ac._0x23b2f8)](),this[_0x99e210(_0xc5b7ac._0x257fbe)]?.();}async[_0x7a0933(0x1a1)](_0x3dd882,_0x15f14b){const _0x564770={_0x8a510f:0x1b2},_0x55edbd=_0x7a0933;this[_0x55edbd(_0x564770._0x8a510f)](_0x55edbd(0x1a1),[_0x3dd882,_0x15f14b]),this['maybeThrow']();}async[_0x7a0933(0x165)](_0x179ee6,_0x5cfbff,_0x560c3b){const _0x5ac622={_0x6dc1a1:0x165,_0x457e32:0x177},_0x1280a9=_0x7a0933;this[_0x1280a9(0x1b2)](_0x1280a9(_0x5ac622._0x6dc1a1),[_0x179ee6,_0x5cfbff,_0x560c3b]),this[_0x1280a9(_0x5ac622._0x457e32)]();}async[_0x7a0933(0x1b5)](_0x4877e9,_0x127683,_0x4dd527){const _0x23c16b={_0xdb0795:0x1b2},_0x2405b0=_0x7a0933;this[_0x2405b0(_0x23c16b._0xdb0795)](_0x2405b0(0x1b5),[_0x4877e9,_0x127683,_0x4dd527]),this[_0x2405b0(0x177)]();}async['check'](_0x3891f3,_0x53a48c){const _0x58f08b={_0x57cc8e:0x1b2,_0x194047:0x16a,_0x2d99ac:0x177},_0x4e93ac=_0x7a0933;this[_0x4e93ac(_0x58f08b._0x57cc8e)](_0x4e93ac(_0x58f08b._0x194047),[_0x3891f3,_0x53a48c]),this[_0x4e93ac(_0x58f08b._0x2d99ac)]();}async[_0x7a0933(0x178)](_0x1a5810,_0x2b7b63){const _0x1e7600=_0x7a0933;this[_0x1e7600(0x1b2)](_0x1e7600(0x178),[_0x1a5810,_0x2b7b63]),this['maybeThrow']();}async[_0x7a0933(0x1bf)](_0x4f40a8,_0x756413,_0x3c0741){const _0x5c1f6c=_0x7a0933;this[_0x5c1f6c(0x1b2)](_0x5c1f6c(0x1bf),[_0x4f40a8,_0x756413,_0x3c0741]),this['maybeThrow']();}async[_0x7a0933(0x1af)](_0x550380,_0x2722b5){const _0x4b0423=_0x7a0933;this['record'](_0x4b0423(0x1af),[_0x550380,_0x2722b5]),this[_0x4b0423(0x177)]();}async['scrollIntoView'](_0x2d0134){const _0x4ece83={_0x3e0374:0x177},_0x35f012=_0x7a0933;this['record']('scrollIntoView',[_0x2d0134]),this[_0x35f012(_0x4ece83._0x3e0374)]();}async[_0x7a0933(0x1b1)](_0x470e81,_0x56fcd1,_0xc38555){const _0x5cb475={_0x4132c2:0x1b1,_0x46daea:0x177},_0x52412a=_0x7a0933;this[_0x52412a(0x1b2)](_0x52412a(_0x5cb475._0x4132c2),[_0x470e81,_0x56fcd1,_0xc38555]),this[_0x52412a(_0x5cb475._0x46daea)]();}async['uploadFile'](_0x170742,_0xcec988){const _0x1b141b=_0x7a0933;this[_0x1b141b(0x1b2)](_0x1b141b(0x16d),[_0x170742,_0xcec988]),this['maybeThrow']();}async['clipboardPaste'](_0x4b49f,_0x5b3a59){const _0x41ab91={_0xcdca68:0x1b2,_0x4951d8:0x1d3},_0x3d513b=_0x7a0933;this[_0x3d513b(_0x41ab91._0xcdca68)](_0x3d513b(_0x41ab91._0x4951d8),[_0x4b49f,_0x5b3a59]),this[_0x3d513b(0x177)]();}async[_0x7a0933(0x198)](_0x3bf283){const _0x1d9a45={_0x176877:0x1b2,_0x446624:0x1cd,_0x196121:0x18f},_0x4ce7a1=_0x7a0933;return this[_0x4ce7a1(_0x1d9a45._0x176877)](_0x4ce7a1(0x198),[_0x3bf283]),this[_0x4ce7a1(_0x1d9a45._0x446624)][_0x4ce7a1(_0x1d9a45._0x196121)]??0x1;}async['textContent'](_0x154c6f){const _0x44ab38={_0x6969a3:0x17e},_0x424992=_0x7a0933;return this[_0x424992(0x1b2)](_0x424992(0x169),[_0x154c6f]),this[_0x424992(0x1cd)][_0x424992(_0x44ab38._0x6969a3)]??'';}async['inputValue'](_0x74db80){const _0x3bdbc8={_0x58ba72:0x1b2,_0x57ae52:0x1cd},_0x44349a=_0x7a0933;return this[_0x44349a(_0x3bdbc8._0x58ba72)]('inputValue',[_0x74db80]),this[_0x44349a(_0x3bdbc8._0x57ae52)]['inputValueByDefault']??'';}async[_0x7a0933(0x1bc)](_0x50f143){const _0xca0b4d={_0x13cb10:0x1bc},_0x37a7bf=_0x7a0933;return this['record'](_0x37a7bf(_0xca0b4d._0x13cb10),[_0x50f143]),this['behavior']['checkedStateByDefault']??null;}async['isVisible'](_0x2c8d21){const _0x14c874={_0xa91be9:0x1cd},_0x5f34ed=_0x7a0933;return this[_0x5f34ed(0x1b2)](_0x5f34ed(0x1ca),[_0x2c8d21]),this[_0x5f34ed(_0x14c874._0xa91be9)]['isVisibleByDefault']??!![];}async[_0x7a0933(0x1c3)](_0xcffa63){const _0x415e96={_0x3fe1f2:0x1b2,_0x356042:0x1c3},_0x53e0ca=_0x7a0933;return this[_0x53e0ca(_0x415e96._0x3fe1f2)](_0x53e0ca(_0x415e96._0x356042),[_0xcffa63]),this['behavior'][_0x53e0ca(0x1a8)]??![];}async[_0x7a0933(0x191)](_0x231d3b,_0xd35877){const _0x1eeb80={_0x571f35:0x1b2},_0x529667=_0x7a0933;return this[_0x529667(_0x1eeb80._0x571f35)]('getAttribute',[_0x231d3b,_0xd35877]),this[_0x529667(0x1cd)][_0x529667(0x186)]?.[_0xd35877]??null;}async[_0x7a0933(0x196)](_0x56f7a7,_0x169030){const _0x143b4b={_0x2ae24c:0x196},_0x4d671c=_0x7a0933;this[_0x4d671c(0x1b2)](_0x4d671c(_0x143b4b._0x2ae24c),[_0x56f7a7,_0x169030]);}async[_0x7a0933(0x16b)](_0x2d9b30,_0x8d2b58){const _0x4a2288=_0x7a0933;this[_0x4a2288(0x1b2)]('waitForUrl',[_0x2d9b30,_0x8d2b58]);}async[_0x7a0933(0x1c5)](_0x41f15d,_0x28587f){const _0x2bbcec={_0x3ba2b4:0x1b2},_0x10cc7e=_0x7a0933;this[_0x10cc7e(_0x2bbcec._0x3ba2b4)](_0x10cc7e(0x1c5),[_0x41f15d,_0x28587f]);}async[_0x7a0933(0x172)](_0x1ee508){const _0x3ab1d3=_0x7a0933;this[_0x3ab1d3(0x1b2)](_0x3ab1d3(0x172),[_0x1ee508]);}async[_0x7a0933(0x1bb)](_0x17b686,_0x1c391d){const _0x120294=_0x7a0933;this[_0x120294(0x1b2)](_0x120294(0x1bb),[_0x17b686,_0x1c391d]);}async[_0x7a0933(0x16e)](_0x293c96,_0x3a514a){const _0x516777=_0x7a0933;this[_0x516777(0x1b2)](_0x516777(0x16e),[_0x293c96,_0x3a514a]),this[_0x516777(0x1a7)]=_0x293c96;}async[_0x7a0933(0x1a4)](_0x49b328){const _0x438121={_0x520267:0x1b2,_0xf69845:0x1a4},_0x17b795=_0x7a0933;this[_0x17b795(_0x438121._0x520267)](_0x17b795(_0x438121._0xf69845),[_0x49b328]);}async[_0x7a0933(0x1d4)](_0x531e61){const _0x29f6aa={_0x54b173:0x1b2},_0x458dd1=_0x7a0933;this[_0x458dd1(_0x29f6aa._0x54b173)]('goBack',[_0x531e61]);}async[_0x7a0933(0x195)](_0x243554){const _0xb271c8={_0x46081a:0x195},_0x85dca4=_0x7a0933;this['record'](_0x85dca4(_0xb271c8._0x46081a),[_0x243554]);}async[_0x7a0933(0x17a)](_0x3cb83f){const _0x4fced9={_0x383351:0x1b2},_0x3841e3=_0x7a0933;return this[_0x3841e3(_0x4fced9._0x383351)](_0x3841e3(0x17a),[_0x3cb83f]),void 0x0;}async[_0x7a0933(0x1b7)](_0x29434f,_0x36dc8a){const _0x362446={_0x38345e:0x1b7},_0x9f203b=_0x7a0933;return this['record'](_0x9f203b(_0x362446._0x38345e),[_0x29434f,_0x36dc8a]),void 0x0;}async[_0x7a0933(0x181)](_0x1ca755){const _0x5b4e3b={_0x4fa835:0x1ab,_0x2f6bce:0x1cd,_0x379264:0x166},_0x27f2d6=_0x7a0933;this['record']('inspectElement',[_0x1ca755]);if(_0x1ca755[_0x27f2d6(0x1ab)][_0x27f2d6(0x16f)]!==0x1||_0x1ca755[_0x27f2d6(_0x5b4e3b._0x4fa835)][0x0]['kind']!=='ref')return null;const _0x476568=_0x1ca755[_0x27f2d6(0x1ab)][0x0][_0x27f2d6(0x1d1)],_0x24c87e=this[_0x27f2d6(_0x5b4e3b._0x2f6bce)][_0x27f2d6(_0x5b4e3b._0x379264)]?.[_0x476568];return _0x24c87e??null;}async[_0x7a0933(0x1a2)](_0x3accde){const _0xb33f3a=_0x7a0933;return this['record'](_0xb33f3a(0x1a2),[_0x3accde]),Buffer[_0xb33f3a(0x18a)]('fake-png');}async[_0x7a0933(0x19c)](_0x1f2123){const _0x284d50={_0x16fc33:0x16f},_0x287100=_0x7a0933;this['record']('outerHTML',[_0x1f2123]);if(_0x1f2123[_0x287100(0x1ab)][_0x287100(_0x284d50._0x16fc33)]===0x1&&_0x1f2123[_0x287100(0x1ab)][0x0]['kind']==='ref'){const _0x47ce78=_0x1f2123[_0x287100(0x1ab)][0x0][_0x287100(0x1d1)];return this[_0x287100(0x1cd)][_0x287100(0x189)]?.[_0x47ce78]??'<div\x20data-unotest-ref=\x22'+_0x47ce78+'\x22></div>';}return _0x287100(0x1c2);}},FakeContext=class{constructor(_0x354287,_0x254b97,_0x5c92e7){const _0x5ac958={_0xbbe951:0x1ba,_0x2cf86a:0x1cd,_0x34bba2:0x1be,_0x34e54b:0x174,_0xfd12d6:0x1ac,_0x24c1c8:0x17b,_0x191c5b:0x184,_0x367fc1:0x1a0},_0x3fb672=_0x7a0933;this[_0x3fb672(_0x5ac958._0xbbe951)]=_0x354287,this[_0x3fb672(_0x5ac958._0x2cf86a)]=_0x254b97,this['scope']=_0x5c92e7;const _0x2f8316=new FakePage(_0x354287,_0x254b97,_0x5c92e7+'.page0',_0x254b97[_0x3fb672(_0x5ac958._0x34bba2)]??_0x3fb672(_0x5ac958._0x34e54b));_0x254b97['popupOnClick']&&(_0x2f8316[_0x3fb672(0x1a5)]=()=>{const _0xfb624f=_0x3fb672;this[_0xfb624f(0x1b3)](_0x254b97[_0xfb624f(0x1a6)]);}),this[_0x3fb672(_0x5ac958._0xfd12d6)]=[_0x2f8316],this[_0x3fb672(0x1b0)]={..._0x254b97[_0x3fb672(_0x5ac958._0x24c1c8)]??{}},this[_0x3fb672(_0x5ac958._0x191c5b)]={..._0x254b97[_0x3fb672(_0x5ac958._0x367fc1)]??{}};}[_0x7a0933(0x1ba)];[_0x7a0933(0x1cd)];[_0x7a0933(0x164)];static{__name(this,_0x7a0933(0x1aa));}[_0x7a0933(0x1ac)];[_0x7a0933(0x1d0)]=0x0;[_0x7a0933(0x1bd)]=[];[_0x7a0933(0x1b0)];['cookieState'];[_0x7a0933(0x18c)]=new Set();['record'](_0x453aa1,_0x3a7e7a){const _0x271b86={_0xabe298:0x1ba},_0xd41675=_0x7a0933;this[_0xd41675(_0x271b86._0xabe298)][_0xd41675(0x190)]({'scope':this[_0xd41675(0x164)],'method':_0x453aa1,'args':_0x3a7e7a});}['pages'](){return this['pageList'];}[_0x7a0933(0x192)](){const _0x3802f3={_0xd4865b:0x1ac,_0x27caf8:0x1d0},_0x4c451e=_0x7a0933,_0x1df0e5=this[_0x4c451e(_0x3802f3._0xd4865b)][this[_0x4c451e(_0x3802f3._0x27caf8)]];if(!_0x1df0e5)throw new DriverError('no\x20active\x20page\x20in\x20context',{'activeIdx':this[_0x4c451e(0x1d0)]});return _0x1df0e5;}['consoleEntries'](){const _0x475f36=_0x7a0933;return this[_0x475f36(0x1cd)]['consoleEntries']??[];}['networkEntries'](){const _0x5a6850=_0x7a0933;return this[_0x5a6850(0x1cd)][_0x5a6850(0x1c7)]??[];}async[_0x7a0933(0x1c6)](_0x3a8b67){const _0x5334ae={_0x4d6569:0x1b2,_0x4e7341:0x1ac,_0x3fd106:0x16f,_0x369501:0x1ac,_0x54ceda:0x1d0},_0x18551f=_0x7a0933;this[_0x18551f(_0x5334ae._0x4d6569)](_0x18551f(0x1c6),[_0x3a8b67]);if(_0x3a8b67<0x0||_0x3a8b67>=this[_0x18551f(_0x5334ae._0x4e7341)][_0x18551f(_0x5334ae._0x3fd106)])throw new DriverError(_0x18551f(0x1ce),{'index':_0x3a8b67,'available':this[_0x18551f(_0x5334ae._0x369501)][_0x18551f(0x16f)]});this[_0x18551f(_0x5334ae._0x54ceda)]=_0x3a8b67,this[_0x18551f(0x1bd)][_0x18551f(_0x5334ae._0x3fd106)]=0x0;}[_0x7a0933(0x162)](_0x171e68){return subscribe(this['newPageListeners'],_0x171e68);}['emitFakePopup'](_0x4bf6cc){const _0x6c3f8e={_0x15731a:0x164,_0x388e38:0x1c9,_0x1c70de:0x1ac,_0x2e10d3:0x16f,_0x205df3:0x1cd,_0x4005bd:0x1ac},_0x52fa17=_0x7a0933,_0x510aef=this[_0x52fa17(_0x6c3f8e._0x15731a)]+_0x52fa17(_0x6c3f8e._0x388e38)+this[_0x52fa17(_0x6c3f8e._0x1c70de)][_0x52fa17(_0x6c3f8e._0x2e10d3)],_0x393c45=new FakePage(this[_0x52fa17(0x1ba)],this[_0x52fa17(_0x6c3f8e._0x205df3)],_0x510aef,_0x4bf6cc);this[_0x52fa17(_0x6c3f8e._0x4005bd)]['push'](_0x393c45);const _0x322772=this[_0x52fa17(0x1ac)][_0x52fa17(0x16f)]-0x1;for(const _0x40dcfd of this['newPageListeners']){try{_0x40dcfd({'index':_0x322772,'url':_0x4bf6cc});}catch{}}return _0x322772;}[_0x7a0933(0x1ae)](_0x45b008){const _0x16497c={_0x3ce9ed:0x1ce,_0x1c40c8:0x1ac},_0x28fe73=_0x7a0933;if(_0x45b008<0x0||_0x45b008>=this[_0x28fe73(0x1ac)][_0x28fe73(0x16f)])throw new DriverError(_0x28fe73(_0x16497c._0x3ce9ed),{'index':_0x45b008,'available':this['pageList']['length']});this[_0x28fe73(_0x16497c._0x1c40c8)]['splice'](_0x45b008,0x1);}async['enterFrame'](_0x5d502b){const _0x58bebe={_0x422cfb:0x183,_0x1d0b20:0x1ab},_0x386295=_0x7a0933;this['record'](_0x386295(_0x58bebe._0x422cfb),[_0x5d502b]);if(!_0x5d502b[_0x386295(_0x58bebe._0x1d0b20)][_0x386295(0x16f)])throw new LocatorError('enterFrame\x20called\x20with\x20empty\x20locator',{'locator':_0x5d502b});this['frameStack'][_0x386295(0x190)](_0x5d502b);}async[_0x7a0933(0x17f)](){const _0x17adcf={_0x279f3c:0x19e,_0x50d61c:0x19a},_0x396d73=_0x7a0933;this['record'](_0x396d73(0x17f),[]);if(this['frameStack'][_0x396d73(0x16f)]===0x0)throw new DriverError(_0x396d73(_0x17adcf._0x279f3c),{});this['frameStack'][_0x396d73(_0x17adcf._0x50d61c)]();}async['setLocalStorage'](_0x1b3779,_0x548f9f){const _0x40d4da={_0x537f8a:0x1b0},_0x1d43fe=_0x7a0933;this[_0x1d43fe(0x1b2)]('setLocalStorage',[_0x1b3779,_0x548f9f]),this[_0x1d43fe(_0x40d4da._0x537f8a)][_0x1b3779]=_0x548f9f;}async[_0x7a0933(0x1b4)](_0x2ef722){const _0x51b5ee={_0x102714:0x1b2},_0x116487=_0x7a0933;return this[_0x116487(_0x51b5ee._0x102714)](_0x116487(0x1b4),[_0x2ef722]),this[_0x116487(0x1b0)][_0x2ef722]??null;}async[_0x7a0933(0x18e)](_0x25ca6c,_0x35b34c,_0x166917){const _0x3c1a38=_0x7a0933;this['record'](_0x3c1a38(0x18e),[_0x25ca6c,_0x35b34c,_0x166917]),this['cookieState'][_0x25ca6c]=_0x35b34c;}async['getCookie'](_0xb43db0){const _0x153fec={_0x295f13:0x19d},_0x5ef9a2=_0x7a0933;return this['record'](_0x5ef9a2(_0x153fec._0x295f13),[_0xb43db0]),this[_0x5ef9a2(0x184)][_0xb43db0]??null;}async[_0x7a0933(0x179)](_0x45c65a){const _0x22baf6={_0x465ed0:0x1b2},_0x5e6f14=_0x7a0933;this[_0x5e6f14(_0x22baf6._0x465ed0)]('saveStorageState',[_0x45c65a]);}async[_0x7a0933(0x17a)](_0x3de16d){const _0x116eb9={_0x927707:0x1b2,_0x242573:0x17a},_0xc477b8=_0x7a0933;return this[_0xc477b8(_0x116eb9._0x927707)](_0xc477b8(_0x116eb9._0x242573),[_0x3de16d]),void 0x0;}async[_0x7a0933(0x173)](){const _0x35f539={_0x306227:0x1b2},_0x4d1c00=_0x7a0933;this[_0x4d1c00(_0x35f539._0x306227)]('close',[]);}[_0x7a0933(0x170)](){const _0x6f991e=_0x7a0933;return this[_0x6f991e(0x1bd)]['length'];}},FakeWebDriver=class{constructor(_0x3870f5={}){const _0x4471d1={_0x1a300b:0x1ba},_0x46b688=_0x7a0933;this['behavior']=_0x3870f5,this[_0x46b688(_0x4471d1._0x1a300b)]=createRecorder();}[_0x7a0933(0x1cd)];static{__name(this,'FakeWebDriver');}['launched']=![];[_0x7a0933(0x1ba)];['contexts']=[];async[_0x7a0933(0x185)](_0x4f2bc3){const _0x139b27={_0x2e79eb:0x185},_0x5cd387=_0x7a0933;this[_0x5cd387(0x1ba)][_0x5cd387(0x190)]({'scope':'driver','method':_0x5cd387(_0x139b27._0x2e79eb),'args':[_0x4f2bc3]}),this['launched']=!![];}async['newContext'](_0x19019b){const _0x344590={_0x3383d7:0x171,_0x279bb6:0x168,_0x17280b:0x199,_0x375354:0x17d,_0x303eb5:0x16f},_0x213045=_0x7a0933;this['recorder'][_0x213045(0x190)]({'scope':'driver','method':_0x213045(_0x344590._0x3383d7),'args':[_0x19019b]});if(!this[_0x213045(_0x344590._0x279bb6)])throw new DriverError('newContext\x20called\x20before\x20launch()',{});const _0x2bc605=new FakeContext(this[_0x213045(0x1ba)],this['behavior'],_0x213045(_0x344590._0x17280b)+this[_0x213045(_0x344590._0x375354)][_0x213045(_0x344590._0x303eb5)]);return this['contexts']['push'](_0x2bc605),_0x2bc605;}async['close'](){const _0x3bcf3c={_0x4b19b2:0x1c4,_0xcae4bf:0x168},_0x455290=_0x7a0933;this['recorder'][_0x455290(0x190)]({'scope':_0x455290(_0x3bcf3c._0x4b19b2),'method':'close','args':[]}),this[_0x455290(_0x3bcf3c._0xcae4bf)]=![];}[_0x7a0933(0x175)](){return void 0x0;}async[_0x7a0933(0x187)](){const _0x875285={_0x2fd09e:0x19f},_0x4b8d67=_0x7a0933;throw new DriverError(_0x4b8d67(_0x875285._0x2fd09e),{});}['attachExisting'](){const _0x3d4562={_0x5d3810:0x180},_0x3aae8f=_0x7a0933;throw new DriverError(_0x3aae8f(_0x3d4562._0x5d3810),{});}[_0x7a0933(0x1c8)](){const _0x1c226d={_0x107032:0x1ba,_0x50ce66:0x1c8},_0x1a2021=_0x7a0933;return this[_0x1a2021(_0x1c226d._0x107032)][_0x1a2021(_0x1c226d._0x50ce66)]();}[_0x7a0933(0x1cc)](_0x390ab7){const _0x334ff1={_0x3b5eab:0x1ba,_0x4f6d27:0x1c8},_0x35a2c1=_0x7a0933;return this[_0x35a2c1(_0x334ff1._0x3b5eab)][_0x35a2c1(_0x334ff1._0x4f6d27)]()[_0x35a2c1(0x18b)](_0x5d820f=>_0x5d820f[_0x35a2c1(0x1b8)]===_0x390ab7);}};function _0x440a(_0x5e85e3,_0x389b6c){_0x5e85e3=_0x5e85e3-0x162;const _0x4bf198=_0x4bf1();let _0x440a29=_0x4bf198[_0x5e85e3];if(_0x440a['WIgSSK']===undefined){var _0x518c42=function(_0x53c32b){const _0x3c6ec4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x962db1='',_0x11af7e='';for(let _0x1fdba8=0x0,_0x4e4bb3,_0x3f38c0,_0x1d5681=0x0;_0x3f38c0=_0x53c32b['charAt'](_0x1d5681++);~_0x3f38c0&&(_0x4e4bb3=_0x1fdba8%0x4?_0x4e4bb3*0x40+_0x3f38c0:_0x3f38c0,_0x1fdba8++%0x4)?_0x962db1+=String['fromCharCode'](0xff&_0x4e4bb3>>(-0x2*_0x1fdba8&0x6)):0x0){_0x3f38c0=_0x3c6ec4['indexOf'](_0x3f38c0);}for(let _0x18c799=0x0,_0x271a05=_0x962db1['length'];_0x18c799<_0x271a05;_0x18c799++){_0x11af7e+='%'+('00'+_0x962db1['charCodeAt'](_0x18c799)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x11af7e);};_0x440a['LoceJl']=_0x518c42,_0x440a['FWtZcV']={},_0x440a['WIgSSK']=!![];}const _0x25a815=_0x4bf198[0x0],_0x1b5f11=_0x5e85e3+_0x25a815,_0x51ff8b=_0x440a['FWtZcV'][_0x1b5f11];return!_0x51ff8b?(_0x440a29=_0x440a['LoceJl'](_0x440a29),_0x440a['FWtZcV'][_0x1b5f11]=_0x440a29):_0x440a29=_0x51ff8b,_0x440a29;}export{FakeWebDriver};
1
+ const _0x3ee4d3=_0x1704;(function(_0x53e7f8,_0x238b2b){const _0x5a3c97={_0x18ab1a:0x95,_0x1d6475:0x96,_0x2aff8b:0xa0,_0x17dee2:0x97,_0x3dbcea:0xe6,_0x33fd7b:0xe1},_0x1ac309=_0x1704,_0x181198=_0x53e7f8();while(!![]){try{const _0x9009d6=parseInt(_0x1ac309(_0x5a3c97._0x18ab1a))/0x1+-parseInt(_0x1ac309(0xc1))/0x2*(-parseInt(_0x1ac309(_0x5a3c97._0x1d6475))/0x3)+parseInt(_0x1ac309(_0x5a3c97._0x2aff8b))/0x4+parseInt(_0x1ac309(_0x5a3c97._0x17dee2))/0x5*(-parseInt(_0x1ac309(0xd7))/0x6)+parseInt(_0x1ac309(_0x5a3c97._0x3dbcea))/0x7+-parseInt(_0x1ac309(0x93))/0x8*(-parseInt(_0x1ac309(0xa7))/0x9)+-parseInt(_0x1ac309(_0x5a3c97._0x33fd7b))/0xa;if(_0x9009d6===_0x238b2b)break;else _0x181198['push'](_0x181198['shift']());}catch(_0x3322d5){_0x181198['push'](_0x181198['shift']());}}}(_0x1db7,0x6b5cf));var __defProp=Object[_0x3ee4d3(0xe9)],__name=(_0x333d9c,_0x483464)=>__defProp(_0x333d9c,'name',{'value':_0x483464,'configurable':!![]});function subscribe(_0x442e72,_0x42cf29){const _0x374437=_0x3ee4d3;return _0x442e72[_0x374437(0xbc)](_0x42cf29),()=>{const _0x44b0ab=_0x374437;_0x442e72[_0x44b0ab(0xd6)](_0x42cf29);};}function _0x1704(_0x3286a3,_0x684151){_0x3286a3=_0x3286a3-0x86;const _0x1db704=_0x1db7();let _0x170429=_0x1db704[_0x3286a3];if(_0x1704['MDjfga']===undefined){var _0x90b012=function(_0x1f8c7b){const _0x4c7074='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x333d9c='',_0x483464='';for(let _0x442e72=0x0,_0x42cf29,_0x160d65,_0x4885fc=0x0;_0x160d65=_0x1f8c7b['charAt'](_0x4885fc++);~_0x160d65&&(_0x42cf29=_0x442e72%0x4?_0x42cf29*0x40+_0x160d65:_0x160d65,_0x442e72++%0x4)?_0x333d9c+=String['fromCharCode'](0xff&_0x42cf29>>(-0x2*_0x442e72&0x6)):0x0){_0x160d65=_0x4c7074['indexOf'](_0x160d65);}for(let _0x4dfc18=0x0,_0x1aebf4=_0x333d9c['length'];_0x4dfc18<_0x1aebf4;_0x4dfc18++){_0x483464+='%'+('00'+_0x333d9c['charCodeAt'](_0x4dfc18)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x483464);};_0x1704['OHzBHD']=_0x90b012,_0x1704['hXgKTD']={},_0x1704['MDjfga']=!![];}const _0x2205e2=_0x1db704[0x0],_0x531d06=_0x3286a3+_0x2205e2,_0x1f62c6=_0x1704['hXgKTD'][_0x531d06];return!_0x1f62c6?(_0x170429=_0x1704['OHzBHD'](_0x170429),_0x1704['hXgKTD'][_0x531d06]=_0x170429):_0x170429=_0x1f62c6,_0x170429;}__name(subscribe,'subscribe');import{UnotestError}from'@unotest/core';function _0x1db7(){const _0x3cbc02=['mtj5vev2tw4','y2HLy2S','zw1PDezHA2vqB3b1Ca','AxnwAxnPyMXL','zNjHBwvtDgfJAW','y291BNq','Bgf1BMnO','iJ48l2rPDJ4','Aw5WDxrwywX1zq','AxneAxnHyMXLza','mtuZmde4nZbUBfHHveq','z290BW','y2XPCgjVyxjKugfZDgu','y2XVC2u','D2fPDezVCG','mtaZmdiZmMPLvujLEa','Ag92zxi','y2XPy2S','zgvMAw5LuhjVCgvYDhK','Bgf1BMnOzwq','zwXLBwvUDeHPBNrcEvjLzG','C2nYzwvUC2HVDa','B25ozxDqywDL','B3v0zxjive1m','CMvJB3jK','zNjHBwvezxb0Aa','y29UBMvJDfnOyxjLza','zhjPDMvY','yMvOyxzPB3i','zg91yMXLq2XPy2S','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','rhjPDMvYrxjYB3i','Aw5WDxrwywX1zuj5rgvMyxvSDa','CMvJB3jKzxi','Bwv0Ag9K','zMLSBa','y2HLy2TLzfn0yxrL','Bwf5yMvuAhjVDW','C2v0tg9JywXtDg9YywDL','D2fPDezVCLrLEhq','A2LUza','Dw5JAgvJAW','DxjS','zxjYB3jpBK5LEhrby3rPB24','C2f2zvn0B3jHz2vtDgf0zq','mJq4DvP4y0nb','AxneAxnHyMXLzej5rgvMyxvSDa','nZGXnJi1BMzAv05n','mZm2nZC3BvLfsM9X','mtqZody1nvzYBNjyyW','zw50zxjgCMfTzsbJywXSzwqGD2L0AcbLBxb0EsbSB2nHDg9Y','y29VA2LLCW','y2XVC2vgywTLugfNzq','D2fPDezVCLvYBa','z2v0tg9JywXtDg9YywDL','BMv3q29UDgv4DcbJywXSzwqGyMvMB3jLigXHDw5JAcGP','z29gB3j3yxjK','yxr0CMLIDxrLC0j5rgvMyxvSDa','mJy3nde2mfnhCxbhtq','C2v0q29VA2LL','D3nfBMrWB2LUDa','BMv0D29YA0vUDhjPzxm','zxzHBhvHDgu','CgfNzuXPC3q','rMfRzvDLyKrYAxzLCG','ndCXmdzIqvDdveq','C2nVCgu','z29cywnR','y29UDgv4Dhm','BgvUz3rO','y2fSBhm','Bg9JywXtDg9YywDL','lNbHz2uW','Cg9W','Dgv4DenVBNrLBNq','y29UBMvJDfnOyxjLzcbUB3qGC3vWCg9YDgvKigj5iezHA2vxzwjeCML2zxi','ChjLC3m','D2fPDezVCK5HDMLNyxrPB24','zhjHz0fUzerYB3a','rMfRzunVBNrLEhq','tg9JyxrVCKvYCM9Y','y3vYCMvUDfvYBa','z2v0qxr0CMLIDxrL','y291BNrcEurLzMf1Bhq','AxnwAxnPyMXLqNLezwzHDwX0','lNbHz2u','ywrK','Aw5ZCgvJDevSzw1LBNq','zxzHBhvHDgvpBKXVy2f0B3i','BMv3q29UDgv4Da','D2fPDezVCKXVywrtDgf0zq','mtrxwNnuzKO','DxbSB2fKrMLSzq','BMv3ugfNzuXPC3rLBMvYCW','C2v0qwn0AxzLugfNzq','C3rLChm','Cg9WDxbpBKnSAwnR','ywn0AxzLswr4','CgfNzsbPBMrLEcbVDxqGB2yGCMfUz2u','ywjVDxq6yMXHBMS','Bg9JywXtDg9YywDLu3rHDgu','z2v0q29VA2LL','y29VA2LLu3rHDgu','pgrPDIbKyxrHlxvUB3rLC3qTCMvMpsi','ChvZAa','y29UC29SzuvUDhjPzxm','ywn0AxzLugfNzq','CMvSB2fK','BM8Gywn0AxzLihbHz2uGAw4Gy29UDgv4Da','CMvM','B25bzNrLCKnSAwnR','zw50zxjgCMfTzq','zgvSzxrL'];_0x1db7=function(){return _0x3cbc02;};return _0x1db7();}var DriverError=class extends UnotestError{static{__name(this,_0x3ee4d3(0xf6));}},LocatorError=class extends UnotestError{static{__name(this,_0x3ee4d3(0xb6));}};function createRecorder(){const _0x32f817={_0xe3ef6:0xac},_0x24b965=_0x3ee4d3,_0x160d65=[];let _0x4885fc=0x0;return{'push':__name(_0x4dfc18=>_0x160d65[_0x24b965(0xce)]({..._0x4dfc18,'seq':_0x4885fc++}),'push'),'calls':__name(()=>_0x160d65,_0x24b965(_0x32f817._0xe3ef6))};}__name(createRecorder,'createRecorder');var FakePage=class{constructor(_0x1aebf4,_0x4e4808,_0x4548b7,_0x48f97b){const _0x2f07c5={_0x1c1389:0x87,_0x357960:0xa8},_0x3180b8=_0x3ee4d3;this[_0x3180b8(_0x2f07c5._0x1c1389)]=_0x1aebf4,this[_0x3180b8(0xf3)]=_0x4e4808,this[_0x3180b8(_0x2f07c5._0x357960)]=_0x4548b7,this['currentUrl']=_0x48f97b;}[_0x3ee4d3(0x87)];[_0x3ee4d3(0xf3)];['scope'];static{__name(this,'FakePage');}[_0x3ee4d3(0xb7)];[_0x3ee4d3(0xd4)];[_0x3ee4d3(0xef)](_0x581f22,_0x35da90){const _0x4f8474={_0x108133:0xce},_0x44fbdc=_0x3ee4d3;this['recorder'][_0x44fbdc(_0x4f8474._0x108133)]({'scope':this['scope'],'method':_0x581f22,'args':_0x35da90});}[_0x3ee4d3(0x8b)](){const _0x3ff468={_0x5dc2c3:0xf3,_0x2fb95d:0x91},_0x272660=_0x3ee4d3;if(this[_0x272660(0xf3)]['errorOnNextAction']){const _0x6b471d=this[_0x272660(_0x3ff468._0x5dc2c3)][_0x272660(0x91)];this['behavior'][_0x272660(_0x3ff468._0x2fb95d)]=void 0x0;throw _0x6b471d;}}[_0x3ee4d3(0x90)](){const _0x47beed=_0x3ee4d3;return this[_0x47beed(0xb7)];}async['title'](){const _0xd160b4={_0x5d9ccc:0xef},_0x38cba5=_0x3ee4d3;return this[_0x38cba5(_0xd160b4._0x5d9ccc)]('title',[]),'fake\x20title';}async[_0x3ee4d3(0xe8)](_0x21fbac,_0x4da099){const _0x5ea06f={_0xd1699c:0xe8},_0x1edd5d=_0x3ee4d3;this['record'](_0x1edd5d(_0x5ea06f._0xd1699c),[_0x21fbac,_0x4da099]),this[_0x1edd5d(0x8b)](),this[_0x1edd5d(0xd4)]?.();}async[_0x3ee4d3(0xf4)](_0x3adac1,_0x35f706){const _0x1d2ee3={_0x4cd115:0x8b},_0x2d4649=_0x3ee4d3;this['record'](_0x2d4649(0xf4),[_0x3adac1,_0x35f706]),this[_0x2d4649(_0x1d2ee3._0x4cd115)]();}async['fill'](_0x4448c2,_0x18fde1,_0x1a8623){const _0x34e363={_0x5ddc5f:0xef},_0x387338=_0x3ee4d3;this[_0x387338(_0x34e363._0x5ddc5f)](_0x387338(0x89),[_0x4448c2,_0x18fde1,_0x1a8623]),this['maybeThrow']();}async[_0x3ee4d3(0xb2)](_0x4fcd03,_0x109871,_0x468a2b){const _0x17807d={_0x1a6a9b:0xb2},_0x110eb2=_0x3ee4d3;this['record'](_0x110eb2(_0x17807d._0x1a6a9b),[_0x4fcd03,_0x109871,_0x468a2b]),this[_0x110eb2(0x8b)]();}async[_0x3ee4d3(0xd8)](_0x22146b,_0x3893e3){const _0x1b3616={_0x57a2e2:0xef,_0x25a48a:0xd8},_0x23d584=_0x3ee4d3;this[_0x23d584(_0x1b3616._0x57a2e2)](_0x23d584(_0x1b3616._0x25a48a),[_0x22146b,_0x3893e3]),this['maybeThrow']();}async[_0x3ee4d3(0x8f)](_0x13bb9e,_0x31e3da){const _0x48fa3e={_0xd4d677:0x8f},_0x3f7c43=_0x3ee4d3;this['record'](_0x3f7c43(_0x48fa3e._0xd4d677),[_0x13bb9e,_0x31e3da]),this[_0x3f7c43(0x8b)]();}async['selectOption'](_0x441957,_0x1fa98a,_0x5da0f8){const _0x327f7a={_0x31d4b1:0xef},_0x34d2df=_0x3ee4d3;this[_0x34d2df(_0x327f7a._0x31d4b1)]('selectOption',[_0x441957,_0x1fa98a,_0x5da0f8]),this['maybeThrow']();}async[_0x3ee4d3(0xe7)](_0x205876,_0x464407){const _0x1da884=_0x3ee4d3;this['record'](_0x1da884(0xe7),[_0x205876,_0x464407]),this['maybeThrow']();}async['scrollIntoView'](_0x45a619){const _0x247158={_0x3ea511:0xef,_0x4aebfe:0x8b},_0x57df6b=_0x3ee4d3;this[_0x57df6b(_0x247158._0x3ea511)]('scrollIntoView',[_0x45a619]),this[_0x57df6b(_0x247158._0x4aebfe)]();}async[_0x3ee4d3(0xb4)](_0x353d3e,_0x4a9e82,_0x1ace8e){const _0x311dcb={_0x5566c4:0xef},_0x185aca=_0x3ee4d3;this[_0x185aca(_0x311dcb._0x5566c4)]('dragAndDrop',[_0x353d3e,_0x4a9e82,_0x1ace8e]),this['maybeThrow']();}async[_0x3ee4d3(0xc2)](_0x52dacc,_0x5560c1){const _0x182207=_0x3ee4d3;this[_0x182207(0xef)](_0x182207(0xc2),[_0x52dacc,_0x5560c1]),this[_0x182207(0x8b)]();}async[_0x3ee4d3(0xe3)](_0x53b896,_0x4bf63b){const _0x478cc4=_0x3ee4d3;this[_0x478cc4(0xef)](_0x478cc4(0xe3),[_0x53b896,_0x4bf63b]),this[_0x478cc4(0x8b)]();}async[_0x3ee4d3(0xdc)](_0x558ed2){const _0xc29762={_0x5ab218:0xef,_0x598564:0xdc,_0x5c7344:0xb9},_0x1fb860=_0x3ee4d3;return this[_0x1fb860(_0xc29762._0x5ab218)](_0x1fb860(_0xc29762._0x598564),[_0x558ed2]),this[_0x1fb860(0xf3)][_0x1fb860(_0xc29762._0x5c7344)]??0x1;}async['textContent'](_0x43c78b){const _0x3d45ed=_0x3ee4d3;return this['record'](_0x3d45ed(0xb0),[_0x43c78b]),this['behavior']['textContentByDefault']??'';}async[_0x3ee4d3(0xdf)](_0x3ff231){const _0x41b905={_0x2ea746:0xdf,_0x20f5f2:0xf3,_0x4125b1:0x86},_0x97660b=_0x3ee4d3;return this['record'](_0x97660b(_0x41b905._0x2ea746),[_0x3ff231]),this[_0x97660b(_0x41b905._0x20f5f2)][_0x97660b(_0x41b905._0x4125b1)]??'';}async[_0x3ee4d3(0x8a)](_0x397581){const _0x209213={_0x3afc9d:0xef,_0x3dedd9:0xf3},_0x2ba2cc=_0x3ee4d3;return this[_0x2ba2cc(_0x209213._0x3afc9d)]('checkedState',[_0x397581]),this[_0x2ba2cc(_0x209213._0x3dedd9)]['checkedStateByDefault']??null;}async[_0x3ee4d3(0xda)](_0x1f8ff0){const _0x1e029f={_0x1df9ba:0xef,_0x41bda8:0xda,_0x314481:0xf3,_0x58bf07:0xba},_0x261b75=_0x3ee4d3;return this[_0x261b75(_0x1e029f._0x1df9ba)](_0x261b75(_0x1e029f._0x41bda8),[_0x1f8ff0]),this[_0x261b75(_0x1e029f._0x314481)][_0x261b75(_0x1e029f._0x58bf07)]??!![];}async[_0x3ee4d3(0xe0)](_0x52e0d5){const _0x4c629f={_0x522c6c:0xef,_0x276e5d:0xe0,_0x30786c:0xf3,_0x11abd6:0x94},_0x470dc0=_0x3ee4d3;return this[_0x470dc0(_0x4c629f._0x522c6c)](_0x470dc0(_0x4c629f._0x276e5d),[_0x52e0d5]),this[_0x470dc0(_0x4c629f._0x30786c)][_0x470dc0(_0x4c629f._0x11abd6)]??![];}async[_0x3ee4d3(0xb8)](_0x3d49b1,_0x46e621){const _0xadf2dd={_0x8bea3f:0xef,_0x143d36:0x9f},_0x161c2d=_0x3ee4d3;return this[_0x161c2d(_0xadf2dd._0x8bea3f)]('getAttribute',[_0x3d49b1,_0x46e621]),this['behavior'][_0x161c2d(_0xadf2dd._0x143d36)]?.[_0x46e621]??null;}async[_0x3ee4d3(0xe5)](_0xbbd067,_0x293834){const _0x507387={_0x43b3cc:0xef},_0x201b4a=_0x3ee4d3;this[_0x201b4a(_0x507387._0x43b3cc)](_0x201b4a(0xe5),[_0xbbd067,_0x293834]);}async[_0x3ee4d3(0x9b)](_0xff1982,_0x4751c1){const _0x3d77f6={_0x492a0d:0xef},_0x232af5=_0x3ee4d3;this[_0x232af5(_0x3d77f6._0x492a0d)]('waitForUrl',[_0xff1982,_0x4751c1]);}async[_0x3ee4d3(0x8d)](_0x3a0e9b,_0x3945db){const _0x49761d={_0x68d82c:0x8d},_0x242c55=_0x3ee4d3;this[_0x242c55(0xef)](_0x242c55(_0x49761d._0x68d82c),[_0x3a0e9b,_0x3945db]);}async[_0x3ee4d3(0xb3)](_0x598c08){const _0x4c0cd2=_0x3ee4d3;this[_0x4c0cd2(0xef)](_0x4c0cd2(0xb3),[_0x598c08]);}async[_0x3ee4d3(0xc0)](_0x55ad23,_0x2f6c28){const _0x31b997={_0x35286a:0xef},_0x1e29ee=_0x3ee4d3;this[_0x1e29ee(_0x31b997._0x35286a)](_0x1e29ee(0xc0),[_0x55ad23,_0x2f6c28]);}async[_0x3ee4d3(0xe2)](_0x101909,_0x4a247a){const _0x25e186={_0xce079f:0xe2},_0x479c51=_0x3ee4d3;this['record'](_0x479c51(_0x25e186._0xce079f),[_0x101909,_0x4a247a]),this[_0x479c51(0xb7)]=_0x101909;}async[_0x3ee4d3(0xd1)](_0x25cb4d){const _0x535617={_0x2179e2:0xd1},_0x54531=_0x3ee4d3;this['record'](_0x54531(_0x535617._0x2179e2),[_0x25cb4d]);}async['goBack'](_0x5e8cc0){const _0x5da80a={_0x1c9fdb:0xa9},_0x1bddb6=_0x3ee4d3;this['record'](_0x1bddb6(_0x5da80a._0x1c9fdb),[_0x5e8cc0]);}async['goForward'](_0x5934e5){const _0xb39a0d=_0x3ee4d3;this[_0xb39a0d(0xef)](_0xb39a0d(0x9e),[_0x5934e5]);}async[_0x3ee4d3(0xa4)](_0x4a30fc){const _0x5386a1={_0x4d1890:0xef},_0x21cf60=_0x3ee4d3;return this[_0x21cf60(_0x5386a1._0x4d1890)]('evaluate',[_0x4a30fc]),void 0x0;}async[_0x3ee4d3(0xbe)](_0x3a7c57,_0x181056){const _0x159c53={_0x4407ce:0xbe},_0x4822a6=_0x3ee4d3;return this[_0x4822a6(0xef)](_0x4822a6(_0x159c53._0x4407ce),[_0x3a7c57,_0x181056]),void 0x0;}async[_0x3ee4d3(0xbd)](_0x395231){const _0xd81f5={_0xfccb63:0xbd,_0x559ee2:0xc5,_0x5cd6f7:0xab,_0x393079:0xf3,_0x90c046:0xeb},_0x41e943=_0x3ee4d3;this[_0x41e943(0xef)](_0x41e943(_0xd81f5._0xfccb63),[_0x395231]);if(_0x395231[_0x41e943(_0xd81f5._0x559ee2)][_0x41e943(_0xd81f5._0x5cd6f7)]!==0x1||_0x395231[_0x41e943(0xc5)][0x0][_0x41e943(0x8e)]!=='ref')return null;const _0x4d6aae=_0x395231[_0x41e943(0xc5)][0x0]['ref'],_0x8d41c2=this[_0x41e943(_0xd81f5._0x393079)][_0x41e943(_0xd81f5._0x90c046)]?.[_0x4d6aae];return _0x8d41c2??null;}async[_0x3ee4d3(0xec)](_0x198335){const _0x43f474={_0x3032a2:0xef},_0x101e37=_0x3ee4d3;return this[_0x101e37(_0x43f474._0x3032a2)](_0x101e37(0xec),[_0x198335]),Buffer['from']('fake-png');}async[_0x3ee4d3(0xee)](_0x2a0cf4){const _0x73dbcb={_0x2257b9:0xef,_0x310aa7:0xee,_0x3203e2:0xc5,_0x132824:0xab,_0x12c4de:0x8e,_0x4dbad2:0xd3,_0x1b0ee0:0xc5,_0x3cd774:0xde},_0x16adc7=_0x3ee4d3;this[_0x16adc7(_0x73dbcb._0x2257b9)](_0x16adc7(_0x73dbcb._0x310aa7),[_0x2a0cf4]);if(_0x2a0cf4[_0x16adc7(_0x73dbcb._0x3203e2)][_0x16adc7(_0x73dbcb._0x132824)]===0x1&&_0x2a0cf4[_0x16adc7(0xc5)][0x0][_0x16adc7(_0x73dbcb._0x12c4de)]===_0x16adc7(_0x73dbcb._0x4dbad2)){const _0x426fae=_0x2a0cf4[_0x16adc7(_0x73dbcb._0x1b0ee0)][0x0][_0x16adc7(0xd3)];return this[_0x16adc7(0xf3)]['outerHtmlByRef']?.[_0x426fae]??_0x16adc7(0xcd)+_0x426fae+_0x16adc7(_0x73dbcb._0x3cd774);}return'<div></div>';}},FakeContext=class{constructor(_0x1173f5,_0x26e5cb,_0x239742){const _0x427318={_0x1c3098:0xc9,_0x29a936:0xc6,_0x560d75:0xca,_0xb7dd7d:0x99},_0x3cefd4={_0x41a95e:0xd9},_0x48f87e=_0x3ee4d3;this[_0x48f87e(0x87)]=_0x1173f5,this['behavior']=_0x26e5cb,this[_0x48f87e(0xa8)]=_0x239742;const _0x1f76c5=new FakePage(_0x1173f5,_0x26e5cb,_0x239742+_0x48f87e(0xae),_0x26e5cb['initialUrl']??_0x48f87e(_0x427318._0x1c3098));_0x26e5cb[_0x48f87e(_0x427318._0x29a936)]&&(_0x1f76c5[_0x48f87e(0xd4)]=()=>{const _0x1b6448=_0x48f87e;this[_0x1b6448(_0x3cefd4._0x41a95e)](_0x26e5cb[_0x1b6448(0xc6)]);}),this[_0x48f87e(0xa5)]=[_0x1f76c5],this[_0x48f87e(_0x427318._0x560d75)]={..._0x26e5cb[_0x48f87e(0xad)]??{}},this[_0x48f87e(0xcc)]={..._0x26e5cb[_0x48f87e(_0x427318._0xb7dd7d)]??{}};}[_0x3ee4d3(0x87)];[_0x3ee4d3(0xf3)];['scope'];static{__name(this,_0x3ee4d3(0xb5));}['pageList'];[_0x3ee4d3(0xc7)]=0x0;['frameStack']=[];[_0x3ee4d3(0xca)];['cookieState'];['newPageListeners']=new Set();[_0x3ee4d3(0xef)](_0x6bc70,_0x3846d4){const _0x408511={_0x5d7473:0x87,_0x114bf3:0xa8},_0x7fd5=_0x3ee4d3;this[_0x7fd5(_0x408511._0x5d7473)]['push']({'scope':this[_0x7fd5(_0x408511._0x114bf3)],'method':_0x6bc70,'args':_0x3846d4});}['pages'](){const _0x494481={_0x3cc758:0xa5},_0x4d3866=_0x3ee4d3;return this[_0x4d3866(_0x494481._0x3cc758)];}[_0x3ee4d3(0xd0)](){const _0x3cae4a={_0x3854af:0xc7,_0x44d38d:0xd2,_0x196689:0xc7},_0x433e88=_0x3ee4d3,_0xd2a027=this['pageList'][this[_0x433e88(_0x3cae4a._0x3854af)]];if(!_0xd2a027)throw new DriverError(_0x433e88(_0x3cae4a._0x44d38d),{'activeIdx':this[_0x433e88(_0x3cae4a._0x196689)]});return _0xd2a027;}[_0x3ee4d3(0xcf)](){const _0x4406e1={_0x1cfe1c:0xcf},_0x364d16=_0x3ee4d3;return this['behavior'][_0x364d16(_0x4406e1._0x1cfe1c)]??[];}[_0x3ee4d3(0xa3)](){const _0x197886=_0x3ee4d3;return this[_0x197886(0xf3)][_0x197886(0xa3)]??[];}async[_0x3ee4d3(0xc4)](_0x542e46){const _0x13f0d3={_0x13f046:0xab},_0x4ad64c=_0x3ee4d3;this[_0x4ad64c(0xef)]('setActivePage',[_0x542e46]);if(_0x542e46<0x0||_0x542e46>=this['pageList'][_0x4ad64c(0xab)])throw new DriverError(_0x4ad64c(0xc8),{'index':_0x542e46,'available':this['pageList'][_0x4ad64c(0xab)]});this['activeIdx']=_0x542e46,this['frameStack'][_0x4ad64c(_0x13f0d3._0x13f046)]=0x0;}[_0x3ee4d3(0xed)](_0x2eaabd){const _0x5f5aa7=_0x3ee4d3;return subscribe(this[_0x5f5aa7(0xc3)],_0x2eaabd);}[_0x3ee4d3(0xd9)](_0x3bbddd){const _0x7acd83={_0x44b6a0:0xbb,_0x2bdab8:0xab,_0x22323d:0x87,_0x1feff3:0xa5,_0x540cf6:0xc3},_0x75a475=_0x3ee4d3,_0x251c21=this[_0x75a475(0xa8)]+_0x75a475(_0x7acd83._0x44b6a0)+this[_0x75a475(0xa5)][_0x75a475(_0x7acd83._0x2bdab8)],_0x2bc245=new FakePage(this[_0x75a475(_0x7acd83._0x22323d)],this['behavior'],_0x251c21,_0x3bbddd);this['pageList'][_0x75a475(0xce)](_0x2bc245);const _0x668062=this[_0x75a475(_0x7acd83._0x1feff3)][_0x75a475(_0x7acd83._0x2bdab8)]-0x1;for(const _0xb9d3f5 of this[_0x75a475(_0x7acd83._0x540cf6)]){try{_0xb9d3f5({'index':_0x668062,'url':_0x3bbddd});}catch{}}return _0x668062;}[_0x3ee4d3(0x9a)](_0x2aec07){const _0x49ea45={_0x524242:0xa5},_0x45b2be=_0x3ee4d3;if(_0x2aec07<0x0||_0x2aec07>=this[_0x45b2be(_0x49ea45._0x524242)][_0x45b2be(0xab)])throw new DriverError(_0x45b2be(0xc8),{'index':_0x2aec07,'available':this['pageList'][_0x45b2be(0xab)]});this[_0x45b2be(0xa5)]['splice'](_0x2aec07,0x1);}async[_0x3ee4d3(0xd5)](_0x2290ce){const _0xfbe989={_0x3b320f:0xef,_0x1b7fde:0xdb},_0x57e7e9=_0x3ee4d3;this[_0x57e7e9(_0xfbe989._0x3b320f)](_0x57e7e9(0xd5),[_0x2290ce]);if(!_0x2290ce[_0x57e7e9(0xc5)][_0x57e7e9(0xab)])throw new LocatorError(_0x57e7e9(0x98),{'locator':_0x2290ce});this[_0x57e7e9(_0xfbe989._0x1b7fde)][_0x57e7e9(0xce)](_0x2290ce);}async['exitFrame'](){const _0x2c3366={_0x2657d7:0xf5},_0x5a0fc9=_0x3ee4d3;this[_0x5a0fc9(0xef)]('exitFrame',[]);if(this[_0x5a0fc9(0xdb)]['length']===0x0)throw new DriverError(_0x5a0fc9(_0x2c3366._0x2657d7),{});this['frameStack'][_0x5a0fc9(0xaf)]();}async[_0x3ee4d3(0x8c)](_0xe5efe2,_0x51b75d){const _0x5bef73={_0x19ad86:0x8c,_0x4f8783:0xca},_0x3d7c1b=_0x3ee4d3;this[_0x3d7c1b(0xef)](_0x3d7c1b(_0x5bef73._0x19ad86),[_0xe5efe2,_0x51b75d]),this[_0x3d7c1b(_0x5bef73._0x4f8783)][_0xe5efe2]=_0x51b75d;}async[_0x3ee4d3(0x9c)](_0x23a1a4){const _0x201b39=_0x3ee4d3;return this['record']('getLocalStorage',[_0x23a1a4]),this[_0x201b39(0xca)][_0x23a1a4]??null;}async['setCookie'](_0x3ee2d3,_0x1205a4,_0x259516){const _0x52651e={_0xde8c30:0xef,_0xee960e:0xcc},_0x547a1a=_0x3ee4d3;this[_0x547a1a(_0x52651e._0xde8c30)](_0x547a1a(0xa1),[_0x3ee2d3,_0x1205a4,_0x259516]),this[_0x547a1a(_0x52651e._0xee960e)][_0x3ee2d3]=_0x1205a4;}async[_0x3ee4d3(0xcb)](_0xdbb07b){const _0x19f8d6={_0x26aeeb:0xef,_0x22bcb7:0xcb,_0x2825e8:0xcc},_0x20265e=_0x3ee4d3;return this[_0x20265e(_0x19f8d6._0x26aeeb)](_0x20265e(_0x19f8d6._0x22bcb7),[_0xdbb07b]),this[_0x20265e(_0x19f8d6._0x2825e8)][_0xdbb07b]??null;}async[_0x3ee4d3(0x92)](_0x2652f1){const _0x42765f=_0x3ee4d3;this['record'](_0x42765f(0x92),[_0x2652f1]);}async[_0x3ee4d3(0xa4)](_0x4cf225){const _0x117350=_0x3ee4d3;return this[_0x117350(0xef)]('evaluate',[_0x4cf225]),void 0x0;}async[_0x3ee4d3(0xe4)](){const _0x4c82e0=_0x3ee4d3;this[_0x4c82e0(0xef)]('close',[]);}[_0x3ee4d3(0xf0)](){const _0x3faf5d=_0x3ee4d3;return this[_0x3faf5d(0xdb)][_0x3faf5d(0xab)];}},FakeWebDriver=class{constructor(_0x45c1f7={}){const _0x4d2e73={_0x9dd4aa:0x87},_0x5d2623=_0x3ee4d3;this[_0x5d2623(0xf3)]=_0x45c1f7,this[_0x5d2623(_0x4d2e73._0x9dd4aa)]=createRecorder();}[_0x3ee4d3(0xf3)];static{__name(this,_0x3ee4d3(0xa6));}[_0x3ee4d3(0xea)]=![];['recorder'];['contexts']=[];async[_0x3ee4d3(0xdd)](_0x18ce05){const _0x2a62ae={_0x273b3b:0x87},_0xdeb408=_0x3ee4d3;this[_0xdeb408(_0x2a62ae._0x273b3b)]['push']({'scope':_0xdeb408(0xf2),'method':'launch','args':[_0x18ce05]}),this[_0xdeb408(0xea)]=!![];}async['newContext'](_0x10a385){const _0x500b54={_0x5538c1:0x87,_0x135c47:0xce,_0x5d1dda:0xea,_0x5d6efb:0x9d,_0x57d4e2:0xf3,_0x2f2322:0xaa},_0x21e7cb=_0x3ee4d3;this[_0x21e7cb(_0x500b54._0x5538c1)][_0x21e7cb(_0x500b54._0x135c47)]({'scope':_0x21e7cb(0xf2),'method':_0x21e7cb(0xbf),'args':[_0x10a385]});if(!this[_0x21e7cb(_0x500b54._0x5d1dda)])throw new DriverError(_0x21e7cb(_0x500b54._0x5d6efb),{});const _0x3addb7=new FakeContext(this[_0x21e7cb(_0x500b54._0x5538c1)],this[_0x21e7cb(_0x500b54._0x57d4e2)],'ctx'+this[_0x21e7cb(_0x500b54._0x2f2322)]['length']);return this[_0x21e7cb(0xaa)][_0x21e7cb(0xce)](_0x3addb7),_0x3addb7;}async[_0x3ee4d3(0xe4)](){const _0x435ddb={_0x1d94e8:0x87,_0x4bc078:0xe4,_0x5184cf:0xea},_0x49eb7f=_0x3ee4d3;this[_0x49eb7f(_0x435ddb._0x1d94e8)][_0x49eb7f(0xce)]({'scope':'driver','method':_0x49eb7f(_0x435ddb._0x4bc078),'args':[]}),this[_0x49eb7f(_0x435ddb._0x5184cf)]=![];}[_0x3ee4d3(0xa2)](){return void 0x0;}async[_0x3ee4d3(0xf1)](){const _0x17cb72=_0x3ee4d3;throw new DriverError(_0x17cb72(0xb1),{});}['attachExisting'](){throw new DriverError('attachExisting\x20not\x20supported\x20by\x20FakeWebDriver',{});}[_0x3ee4d3(0xac)](){const _0x7d5108=_0x3ee4d3;return this[_0x7d5108(0x87)]['calls']();}['callsFor'](_0x4f95e3){const _0x3ad89d={_0x11164e:0x87},_0x18577d=_0x3ee4d3;return this[_0x18577d(_0x3ad89d._0x11164e)][_0x18577d(0xac)]()['filter'](_0x244fb4=>_0x244fb4[_0x18577d(0x88)]===_0x4f95e3);}};export{FakeWebDriver};