@unotest/web 0.6.2 → 0.9.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.
@@ -152,8 +152,8 @@ For each page state you traverse:
152
152
  repeatedly, stop and ask the user.
153
153
 
154
154
  When recording, `description` and `section` are **required**.
155
- Adjacent same-section entries collapse into one `//@collapse(...) …
156
- //@endcollapse` block in the generated test, so the `section` must read
155
+ Adjacent same-section entries are wrapped in one `step("...", () => { })`
156
+ block in the generated test, so the `section` must read
157
157
  like a line in a human test PLAN — the user-facing GOAL of the block
158
158
  ("Sign in", "Open first car card", "Apply status filter"), **never** a
159
159
  generic mechanic ("Navigation", "Actions", "Click", "Load data"). Use the
@@ -363,25 +363,25 @@ built-in DSL functions.
363
363
  composite multi-step helpers.
364
364
 
365
365
  **Saved test structure.** Every step in a `test_*` entry must sit inside a
366
- `//@collapse("description")` block (linter enforces). The title is the
366
+ `step("description", () => { … })` block (linter enforces). The title is the
367
367
  plain-English intent of the group; when a step later breaks you read it
368
368
  back to repair the group. The recorder groups by phase automatically; when
369
369
  you hand-edit, keep each chunk inside its own block:
370
370
 
371
371
  ```js
372
372
  function test_dashboard_loads_with_widgets() {
373
- //@collapse("Seed a fresh demo user")
374
- wipe_e2e_users();
375
- seed_user('demo@example.com', 'secret');
376
- //@endcollapse
377
-
378
- //@collapse("Sign in as the demo user")
379
- signin_as('demo@example.com', 'secret');
380
- //@endcollapse
381
-
382
- //@collapse("Dashboard shows the Today widget")
383
- assertVisible(getByRole('region', {name: 'Today'}));
384
- //@endcollapse
373
+ step("Seed a fresh demo user", () => {
374
+ wipe_e2e_users();
375
+ seed_user('demo@example.com', 'secret');
376
+ });
377
+
378
+ step("Sign in as the demo user", () => {
379
+ signin_as('demo@example.com', 'secret');
380
+ });
381
+
382
+ step("Dashboard shows the Today widget", () => {
383
+ assertVisible(getByRole('region', {name: 'Today'}));
384
+ });
385
385
  }
386
386
  ```
387
387
 
@@ -501,7 +501,7 @@ Every locator must resolve to exactly one element. When you see
501
501
  names, or `xpath=…`.** Stop and ask the user whether the app should
502
502
  expose a `data-testid` or accessible name.
503
503
  - **Don't omit `section` / `description` when recording.** They shape
504
- the generated test into readable `//@collapse` blocks — and they're
504
+ the generated test into readable `step(...)` blocks — and they're
505
505
  required.
506
506
  - **Don't consider the task done without `next.outcome === "completed"`.**
507
507
  "I recorded the flow, generated the file, looks right" is not done.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,34 @@ 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.9.0] - 2026-06-11
9
+
10
+ ### Added
11
+
12
+ - **Opt-in capture artifacts for the viewer inspector.** `UNOTEST_NETWORK=1`
13
+ records each request/response to the run's `network.json`; `UNOTEST_CONSOLE=1`
14
+ records the browser console to `console.json`. Written per run (any outcome),
15
+ redacted of secrets. Off by default — zero overhead.
16
+ - **`runtime.json` for every run.** The runtime-state writer (vars / scope /
17
+ call stack) now runs for plain headless runs too, not just `--debug`, so the
18
+ viewer's Vars inspector is populated on any run.
19
+ - **Friendly relative-`goto` error.** `goto('/path')` with no `baseUrl`
20
+ configured now throws a typed `NavigationError` that names the URL and the fix,
21
+ instead of Playwright's "Cannot navigate to invalid URL". When `baseUrl` is
22
+ set, Playwright resolves the relative path as before.
23
+
24
+ ### Changed
25
+
26
+ - **MCP collaboration is discoverable.** `get_active_context` now reports an
27
+ attachable live debug session (`attachable` + a hint); the no-active-context
28
+ error points at `attach_debug_session`; the server `instructions` mention
29
+ joining a human's live session. `findShareableRun` is shared between
30
+ `attach_debug_session` and `get_active_context`.
31
+ - **`init` defaults.** Generated `unotest/.env` sets `APP_BASE_URL` to the
32
+ unotest playground and the example scenarios use relative `goto('/...')`;
33
+ `API_BASE_URL` and `PROJECT_ROOT` are dropped; `UNOTEST_NETWORK` /
34
+ `UNOTEST_CONSOLE` are added under Runner config.
35
+
8
36
  ## [0.6.2] - 2026-06-05
9
37
 
10
38
  ### Added
package/README.md CHANGED
@@ -64,7 +64,7 @@ npx @unotest/web e2e # list / usage
64
64
 
65
65
  - **Scenario tree** — scenarios, collections, helpers, and run history.
66
66
  - **Run from the UI** — results stream live over WebSocket as steps execute.
67
- - **Block view** — each `//@collapse` group folds into a section with
67
+ - **Block view** — each `step(...)` group folds into a section with
68
68
  per-step status; a failure pins an error card to the offending line.
69
69
  - **Step debugger** — set gutter breakpoints, run paused, inspect the live
70
70
  DOM at each stop.
@@ -75,20 +75,20 @@ npx @unotest/web e2e # list / usage
75
75
  ### Writing by hand (optional)
76
76
 
77
77
  Scenarios are plain `.js`. Every executable step sits inside a
78
- `//@collapse("what this does")` block — plain-English intent the agent reads
79
- back to repair a step when a selector drifts:
78
+ `step("what this does", () => { … })` block — plain-English intent the agent
79
+ reads back to repair a step when a selector drifts:
80
80
 
81
81
  ```js
82
82
  function test_login() {
83
- //@collapse("Log in as the demo user")
84
- goto('https://app.example.com');
85
- fill(getByLabel('Email'), 'demo@example.com');
86
- click(getByRole('button', { name: 'Continue' }));
87
- //@endcollapse
88
-
89
- //@collapse("Dashboard is shown after login")
90
- assertText(getByRole('heading'), 'Dashboard');
91
- //@endcollapse
83
+ step("Log in as the demo user", () => {
84
+ goto('https://app.example.com');
85
+ fill(getByLabel('Email'), 'demo@example.com');
86
+ click(getByRole('button', { name: 'Continue' }));
87
+ });
88
+
89
+ step("Dashboard is shown after login", () => {
90
+ assertText(getByRole('heading'), 'Dashboard');
91
+ });
92
92
  }
93
93
  ```
94
94
 
@@ -1 +1 @@
1
- function _0x16c7(){var _0xb973b1=['Cg9ZAxrPDMu','CMvJB3jK','zw51Bq','C3rYAw5N','zxjYB3i','mtjMqLfpzNa','Aw50','BgL0zxjHBa','mZu4nK5xwLbkzq','mtuZmdm1yvLirMvm','mtuZA1vPqM9R','y2HYB21LlwjLDge','Dw5VDgvZDc9LmMuVx2HLBhbLCNm','B2zM','y2HYB21PDw0','zgvMyxvSDa','y3jHC2G','BNvSBa','y2HYB21L','BxnLzgDL','nZe5otCWwuL5r3HT','Dw5PB24','BNvTyMvY','D2vIA2L0','BwLU','B3b0Aw9UywW','DxjS','DMfSAwrHDg9YoNvUA25VD24TzNvUy3rPB24','mJu0nJbzBuHRqNe','D2fYBG','B2jQzwn0','zgLZBwLZCW','BgLUDdPZy2vUyxjPBY1PBI1YB290','BMv0D29YAW','mZaXC29WD2Tr','yM9VBgvHBG','BgLUDdPLDMfSDwf0zs1KAxnJB3vYywDLza','yxjYyxK','ywnJzxb0','DhjHBNnPzw50','Dw5VDgvZDc9LmMu','BwfUDwfS','mZCWodbWt3vmB1y','otC5u1f3zMH4','mJm1odGXmeXcDvPQDa','DMfSAwrHDg9YoMrZBa','BgLUDdPTDxn0ywnOzs1PBI1KC2W','otu2nhDrvKrmzW','zMLYzwzVEa'];_0x16c7=function(){return _0xb973b1;};return _0x16c7();}var _0x3893a2=_0x1f93;(function(_0x224983,_0x4ea4ba){var _0x4a0693={_0xb7d0c5:0xab,_0x5053dd:0xa8,_0x4ef3b5:0xc5,_0x33befc:0xcd},_0x80a53d=_0x1f93,_0x2a1e1b=_0x224983();while(!![]){try{var _0x5ceb66=parseInt(_0x80a53d(0xac))/0x1+-parseInt(_0x80a53d(_0x4a0693._0xb7d0c5))/0x2+parseInt(_0x80a53d(0xad))/0x3*(-parseInt(_0x80a53d(0xa1))/0x4)+parseInt(_0x80a53d(0xb7))/0x5*(parseInt(_0x80a53d(_0x4a0693._0x5053dd))/0x6)+-parseInt(_0x80a53d(_0x4a0693._0x4ef3b5))/0x7*(parseInt(_0x80a53d(_0x4a0693._0x33befc))/0x8)+parseInt(_0x80a53d(0xcf))/0x9+-parseInt(_0x80a53d(0xbf))/0xa*(parseInt(_0x80a53d(0xce))/0xb);if(_0x5ceb66===_0x4ea4ba)break;else _0x2a1e1b['push'](_0x2a1e1b['shift']());}catch(_0x5b69b7){_0x2a1e1b['push'](_0x2a1e1b['shift']());}}}(_0x16c7,0x25788));import{z}from'zod';function _0x1f93(_0x1ec1b0,_0x2c48d8){_0x1ec1b0=_0x1ec1b0-0x9f;var _0x16c79d=_0x16c7();var _0x1f9358=_0x16c79d[_0x1ec1b0];if(_0x1f93['iUYfIn']===undefined){var _0x1e2f01=function(_0x5ba337){var _0x379035='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x5ad0e0='',_0x477573='';for(var _0x2f68f7=0x0,_0x1cbf77,_0x5c6ba6,_0x10bb37=0x0;_0x5c6ba6=_0x5ba337['charAt'](_0x10bb37++);~_0x5c6ba6&&(_0x1cbf77=_0x2f68f7%0x4?_0x1cbf77*0x40+_0x5c6ba6:_0x5c6ba6,_0x2f68f7++%0x4)?_0x5ad0e0+=String['fromCharCode'](0xff&_0x1cbf77>>(-0x2*_0x2f68f7&0x6)):0x0){_0x5c6ba6=_0x379035['indexOf'](_0x5c6ba6);}for(var _0x5865de=0x0,_0x5b87a9=_0x5ad0e0['length'];_0x5865de<_0x5b87a9;_0x5865de++){_0x477573+='%'+('00'+_0x5ad0e0['charCodeAt'](_0x5865de)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x477573);};_0x1f93['UPRwyN']=_0x1e2f01,_0x1f93['fNATEj']={},_0x1f93['iUYfIn']=!![];}var _0xad7c19=_0x16c79d[0x0],_0x3792ff=_0x1ec1b0+_0xad7c19,_0x5080ef=_0x1f93['fNATEj'][_0x3792ff];return!_0x5080ef?(_0x1f9358=_0x1f93['UPRwyN'](_0x1f9358),_0x1f93['fNATEj'][_0x3792ff]=_0x1f9358):_0x1f9358=_0x5080ef,_0x1f9358;}var BrowserSchema=z[_0x3893a2(0xa5)](['chromium',_0x3893a2(0xa2),_0x3893a2(0xba)]),BrowserChannelSchema=z[_0x3893a2(0xb8)]([z['literal'](_0x3893a2(0xb5)),z[_0x3893a2(0xaa)](_0x3893a2(0xb6)),z[_0x3893a2(0xaa)](_0x3893a2(0xae)),z[_0x3893a2(0xb4)]()])[_0x3893a2(0xbc)](),ViewportSchema=z[_0x3893a2(0xc1)]({'width':z[_0x3893a2(0xb9)]()[_0x3893a2(0xa9)]()[_0x3893a2(0xa3)](),'height':z[_0x3893a2(0xb9)]()[_0x3893a2(0xa9)]()[_0x3893a2(0xa3)]()}),RetryReasonSchema=z[_0x3893a2(0xa5)]([_0x3893a2(0xca),_0x3893a2(0xc4),_0x3893a2(0xb3)]),RetryConfigSchema=z[_0x3893a2(0xc1)]({'count':z[_0x3893a2(0xb9)]()[_0x3893a2(0xa9)]()[_0x3893a2(0xbb)](0x0)['max'](0xa),'on':z['array'](RetryReasonSchema)}),FailureBundleConfigSchema=z[_0x3893a2(0xc1)]({'tier1':z['literal'](!![])[_0x3893a2(0xb2)](!![]),'tier2':z[_0x3893a2(0xc6)](),'tier3':z[_0x3893a2(0xc1)]({'network':z[_0x3893a2(0xc6)](),'video':z[_0x3893a2(0xc6)]()}),'retention':z[_0x3893a2(0xc1)]({'runs':z[_0x3893a2(0xb9)]()[_0x3893a2(0xa9)]()[_0x3893a2(0xa3)](),'days':z[_0x3893a2(0xb9)]()[_0x3893a2(0xa9)]()[_0x3893a2(0xa3)]()}),'storageDir':z[_0x3893a2(0xa6)]()['min'](0x1)}),DialogPolicySchema=z[_0x3893a2(0xa5)]([_0x3893a2(0xc9),_0x3893a2(0xc2),_0x3893a2(0xcc)]),LinterRuleIdSchema=z[_0x3893a2(0xa5)](['lint:deep-css','lint:xpath','lint:obfuscated-class','lint:pause-explicit','lint:disambig-by-index',_0x3893a2(0xc7),_0x3893a2(0xc3),_0x3893a2(0xa0),_0x3893a2(0xbe),_0x3893a2(0x9f)]),LinterSeveritySchema=z[_0x3893a2(0xa5)](['off',_0x3893a2(0xc0),'error']),LinterConfigSchema=z[_0x3893a2(0xc1)]({'enabled':z[_0x3893a2(0xc6)](),'rules':z[_0x3893a2(0xa4)](LinterRuleIdSchema,LinterSeveritySchema)}),McpConfigSchema=z['object']({'transport':z['literal']('stdio')}),SandboxConfigSchema=z[_0x3893a2(0xc1)]({'shellCwd':z[_0x3893a2(0xa6)]()['optional'](),'database':z[_0x3893a2(0xa6)]()['optional'](),'apiBaseUrl':z['string']()[_0x3893a2(0xbd)]()['optional']()}),UnotestConfigSchema=z['object']({'baseUrl':z[_0x3893a2(0xa6)]()[_0x3893a2(0xbd)]()[_0x3893a2(0xbc)](),'browsers':z[_0x3893a2(0xc8)](BrowserSchema)['min'](0x1),'channel':BrowserChannelSchema,'viewport':ViewportSchema,'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':z[_0x3893a2(0xa6)]()[_0x3893a2(0xbc)](),'testDir':z[_0x3893a2(0xa6)]()['min'](0x1),'helpersDir':z[_0x3893a2(0xa6)]()[_0x3893a2(0xbb)](0x1),'defaultTimeoutMs':z[_0x3893a2(0xb9)]()[_0x3893a2(0xa9)]()[_0x3893a2(0xa3)](),'defaultNavigationTimeoutMs':z[_0x3893a2(0xb9)]()[_0x3893a2(0xa9)]()[_0x3893a2(0xa3)](),'linter':LinterConfigSchema,'mcp':McpConfigSchema,'sandbox':SandboxConfigSchema}),DEFAULT_CONFIG={'browsers':[_0x3893a2(0xb1)],'viewport':{'width':0x500,'height':0x2d0},'retry':{'count':0x0,'on':['transient']},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':'.unotest/failures'},'dialogPolicy':_0x3893a2(0xc9),'testDir':_0x3893a2(0xcb),'helpersDir':_0x3893a2(0xaf),'defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x3a98,'linter':{'enabled':!![],'rules':{'lint:deep-css':'warn','lint:xpath':_0x3893a2(0xc0),'lint:obfuscated-class':_0x3893a2(0xc0),'lint:pause-explicit':_0x3893a2(0xc0),'lint:disambig-by-index':_0x3893a2(0xb0),'lint:evaluate-discouraged':_0x3893a2(0xc0),'lint:scenario-in-root':_0x3893a2(0xa7),'lint:mustache-in-dsl':'error','validator:unknown-function':_0x3893a2(0xa7),'validator:dsl':_0x3893a2(0xa7)}},'mcp':{'transport':'stdio'},'sandbox':{}};export{BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,RetryConfigSchema,RetryReasonSchema,SandboxConfigSchema,UnotestConfigSchema,ViewportSchema};
1
+ var _0x2f4e9c=_0x5088;function _0x5088(_0x35ba0f,_0x4f1556){_0x35ba0f=_0x35ba0f-0x16f;var _0x5f0c45=_0x5f0c();var _0x5088d1=_0x5f0c45[_0x35ba0f];if(_0x5088['NVKkTr']===undefined){var _0x16a1af=function(_0x451af3){var _0x5b4805='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x5b9d04='',_0x2f88a3='';for(var _0x2a8880=0x0,_0x47feb8,_0x17d054,_0xf51d57=0x0;_0x17d054=_0x451af3['charAt'](_0xf51d57++);~_0x17d054&&(_0x47feb8=_0x2a8880%0x4?_0x47feb8*0x40+_0x17d054:_0x17d054,_0x2a8880++%0x4)?_0x5b9d04+=String['fromCharCode'](0xff&_0x47feb8>>(-0x2*_0x2a8880&0x6)):0x0){_0x17d054=_0x5b4805['indexOf'](_0x17d054);}for(var _0x541710=0x0,_0x483552=_0x5b9d04['length'];_0x541710<_0x483552;_0x541710++){_0x2f88a3+='%'+('00'+_0x5b9d04['charCodeAt'](_0x541710)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2f88a3);};_0x5088['FAqgnd']=_0x16a1af,_0x5088['wLKUZH']={},_0x5088['NVKkTr']=!![];}var _0x3990bf=_0x5f0c45[0x0],_0xd91f61=_0x35ba0f+_0x3990bf,_0x242047=_0x5088['wLKUZH'][_0xd91f61];return!_0x242047?(_0x5088d1=_0x5088['FAqgnd'](_0x5088d1),_0x5088['wLKUZH'][_0xd91f61]=_0x5088d1):_0x5088d1=_0x242047,_0x5088d1;}(function(_0x3cce67,_0x192c32){var _0x1e21ad={_0x2d54de:0x19d,_0x7f5c28:0x18f,_0x24a64e:0x191,_0x3b1c32:0x189,_0x1cd0d0:0x170,_0x3f11e4:0x17d,_0x1737a5:0x198},_0x44a598=_0x5088,_0x4ef498=_0x3cce67();while(!![]){try{var _0x21ddfd=parseInt(_0x44a598(_0x1e21ad._0x2d54de))/0x1*(-parseInt(_0x44a598(0x18b))/0x2)+parseInt(_0x44a598(_0x1e21ad._0x7f5c28))/0x3*(-parseInt(_0x44a598(_0x1e21ad._0x24a64e))/0x4)+parseInt(_0x44a598(_0x1e21ad._0x3b1c32))/0x5+-parseInt(_0x44a598(0x184))/0x6*(parseInt(_0x44a598(0x180))/0x7)+-parseInt(_0x44a598(_0x1e21ad._0x1cd0d0))/0x8+parseInt(_0x44a598(0x188))/0x9+-parseInt(_0x44a598(_0x1e21ad._0x3f11e4))/0xa*(-parseInt(_0x44a598(_0x1e21ad._0x1737a5))/0xb);if(_0x21ddfd===_0x192c32)break;else _0x4ef498['push'](_0x4ef498['shift']());}catch(_0x4efa28){_0x4ef498['push'](_0x4ef498['shift']());}}}(_0x5f0c,0xeb7d9));import{z}from'zod';function _0x5f0c(){var _0x49077b=['BgLUDdPZy2vUyxjPBY1PBI1YB290','mta0nZC0mdbxCfHszhO','BNvTyMvY','BNvSBa','C3rYAw5N','Cg9ZAxrPDMu','zw51Bq','yxjYyxK','B2jQzwn0','BgLUDdP4Cgf0Aa','zxjYB3i','lNvUB3rLC3qVzMfPBhvYzxm','ywnJzxb0','zMLYzwzVEa','mtmZmtCWvMH4rfDe','BxnLzgDL','CMvJB3jK','mteYnJK5m0rszvHAuW','Aw50','zgLZBwLZCW','DxjS','mZztA3rfyNC','D2vIA2L0','DMfSAwrHDg9YoMrZBa','BgLUDdPKzwvWlwnZCW','mtmYntu2mtrrv2zcEwW','ndKXnZmZmfDKy296yq','Bwf4','nde3nfjdzuDMBa','y2HYB21L','BwfUDwfS','zgvMyxvSDa','nMjNv2TREa','y2HYB21PDw0','nde3mtC2DenLrgPw','y3jHC2G','Dw5PB24','BgLUDdPLDMfSDwf0zs1KAxnJB3vYywDLza','DMfSAwrHDg9YoNvUA25VD24TzNvUy3rPB24','BgLUDdPKAxnHBwjPzY1IEs1PBMrLEa','BgLUDdPTDxn0ywnOzs1PBI1KC2W','odi1tLndwK1n','B2zM','D2fYBG','DhjHBNnPzw50','BMv0D29YAW','m1nYDxnfAa','C3rKAw8','BgL0zxjHBa','BwLU','B3b0Aw9UywW','yM9VBgvHBG','BgLUDdPVyMz1C2nHDgvKlwnSyxnZ','Dw5VDgvZDc9LmMuVx2HLBhbLCNm'];_0x5f0c=function(){return _0x49077b;};return _0x5f0c();}var BrowserSchema=z[_0x2f4e9c(0x175)]([_0x2f4e9c(0x190),_0x2f4e9c(0x17c),_0x2f4e9c(0x185)]),BrowserChannelSchema=z[_0x2f4e9c(0x193)]([z[_0x2f4e9c(0x19f)](_0x2f4e9c(0x18c)),z[_0x2f4e9c(0x19f)](_0x2f4e9c(0x17e)),z[_0x2f4e9c(0x19f)]('chrome-beta'),z[_0x2f4e9c(0x172)]()])[_0x2f4e9c(0x1a1)](),ViewportSchema=z[_0x2f4e9c(0x177)]({'width':z[_0x2f4e9c(0x171)]()[_0x2f4e9c(0x181)]()[_0x2f4e9c(0x174)](),'height':z[_0x2f4e9c(0x171)]()[_0x2f4e9c(0x181)]()[_0x2f4e9c(0x174)]()}),RetryReasonSchema=z[_0x2f4e9c(0x175)]([_0x2f4e9c(0x19b),_0x2f4e9c(0x19c),_0x2f4e9c(0x192)]),RetryConfigSchema=z[_0x2f4e9c(0x177)]({'count':z[_0x2f4e9c(0x171)]()[_0x2f4e9c(0x181)]()['min'](0x0)[_0x2f4e9c(0x18a)](0xa),'on':z[_0x2f4e9c(0x176)](RetryReasonSchema)}),FailureBundleConfigSchema=z['object']({'tier1':z[_0x2f4e9c(0x19f)](!![])[_0x2f4e9c(0x18e)](!![]),'tier2':z['boolean'](),'tier3':z[_0x2f4e9c(0x177)]({'network':z[_0x2f4e9c(0x1a2)](),'video':z['boolean']()}),'retention':z[_0x2f4e9c(0x177)]({'runs':z['number']()[_0x2f4e9c(0x181)]()[_0x2f4e9c(0x174)](),'days':z[_0x2f4e9c(0x171)]()[_0x2f4e9c(0x181)]()['positive']()}),'storageDir':z[_0x2f4e9c(0x173)]()[_0x2f4e9c(0x1a0)](0x1)}),DialogPolicySchema=z['enum']([_0x2f4e9c(0x17b),_0x2f4e9c(0x182),_0x2f4e9c(0x18d)]),LinterRuleIdSchema=z['enum']([_0x2f4e9c(0x187),_0x2f4e9c(0x178),_0x2f4e9c(0x1a3),'lint:pause-explicit',_0x2f4e9c(0x196),_0x2f4e9c(0x194),_0x2f4e9c(0x16f),_0x2f4e9c(0x197),_0x2f4e9c(0x195),_0x2f4e9c(0x186)]),LinterSeveritySchema=z[_0x2f4e9c(0x175)](['off',_0x2f4e9c(0x19a),_0x2f4e9c(0x179)]),LinterConfigSchema=z[_0x2f4e9c(0x177)]({'enabled':z[_0x2f4e9c(0x1a2)](),'rules':z[_0x2f4e9c(0x17f)](LinterRuleIdSchema,LinterSeveritySchema)}),McpConfigSchema=z[_0x2f4e9c(0x177)]({'transport':z[_0x2f4e9c(0x19f)](_0x2f4e9c(0x19e))}),SandboxConfigSchema=z[_0x2f4e9c(0x177)]({'shellCwd':z[_0x2f4e9c(0x173)]()['optional'](),'database':z[_0x2f4e9c(0x173)]()[_0x2f4e9c(0x1a1)](),'apiBaseUrl':z[_0x2f4e9c(0x173)]()[_0x2f4e9c(0x183)]()[_0x2f4e9c(0x1a1)]()}),UnotestConfigSchema=z[_0x2f4e9c(0x177)]({'baseUrl':z[_0x2f4e9c(0x173)]()[_0x2f4e9c(0x183)]()[_0x2f4e9c(0x1a1)](),'browsers':z['array'](BrowserSchema)[_0x2f4e9c(0x1a0)](0x1),'channel':BrowserChannelSchema,'viewport':ViewportSchema,'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':z['string']()[_0x2f4e9c(0x1a1)](),'testDir':z['string']()['min'](0x1),'helpersDir':z[_0x2f4e9c(0x173)]()[_0x2f4e9c(0x1a0)](0x1),'defaultTimeoutMs':z[_0x2f4e9c(0x171)]()[_0x2f4e9c(0x181)]()[_0x2f4e9c(0x174)](),'defaultNavigationTimeoutMs':z[_0x2f4e9c(0x171)]()[_0x2f4e9c(0x181)]()[_0x2f4e9c(0x174)](),'linter':LinterConfigSchema,'mcp':McpConfigSchema,'sandbox':SandboxConfigSchema}),DEFAULT_CONFIG={'browsers':['chromium'],'viewport':{'width':0x500,'height':0x2d0},'retry':{'count':0x0,'on':[_0x2f4e9c(0x19b)]},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':_0x2f4e9c(0x17a)},'dialogPolicy':_0x2f4e9c(0x17b),'testDir':'unotest/e2e','helpersDir':_0x2f4e9c(0x1a4),'defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x3a98,'linter':{'enabled':!![],'rules':{'lint:deep-css':_0x2f4e9c(0x19a),'lint:xpath':'warn','lint:obfuscated-class':'warn','lint:pause-explicit':_0x2f4e9c(0x19a),'lint:disambig-by-index':_0x2f4e9c(0x199),'lint:evaluate-discouraged':_0x2f4e9c(0x19a),'lint:scenario-in-root':_0x2f4e9c(0x179),'lint:mustache-in-dsl':_0x2f4e9c(0x179),'validator:unknown-function':_0x2f4e9c(0x179),'validator:dsl':_0x2f4e9c(0x179)}},'mcp':{'transport':'stdio'},'sandbox':{}};export{BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,RetryConfigSchema,RetryReasonSchema,SandboxConfigSchema,UnotestConfigSchema,ViewportSchema};
@@ -1,5 +1,5 @@
1
- import { E as ElementHint, W as WebDriver, L as LaunchOptions, C as ContextOptions, D as DriverContext } from '../interfaces-iTfjd1zT.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, N as NavigationOptions, P as PressOptions, R as ReloadOptions, S as ScreenshotOptions, e as SelectOptions, V as Viewport, f as WaitOptions, g as WaitState } from '../interfaces-iTfjd1zT.js';
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';
3
3
  import '@unotest/protocol';
4
4
  import '../config/schema.js';
5
5
  import 'zod';
@@ -50,6 +50,8 @@ interface FakeBehavior {
50
50
  text: string;
51
51
  timestamp: string;
52
52
  }>;
53
+ /** Seed network entries that networkEntries() returns. */
54
+ networkEntries?: ReadonlyArray<NetworkEntry>;
53
55
  /** When set, every `click(loc)` opens a popup at this URL by calling
54
56
  * the owning context's `emitFakePopup`. Used by popup-watcher
55
57
  * integration tests so the FakeContext's `click` becomes a tab
@@ -65,6 +67,9 @@ declare class FakeWebDriver implements WebDriver {
65
67
  launch(opts: LaunchOptions): Promise<void>;
66
68
  newContext(opts?: ContextOptions): Promise<DriverContext>;
67
69
  close(): Promise<void>;
70
+ wsEndpoint(): string | undefined;
71
+ connectShared(): Promise<void>;
72
+ attachExisting(): DriverContext;
68
73
  /** Test helper — full recorded call log. */
69
74
  calls(): ReadonlyArray<RecordedCall>;
70
75
  /** Test helper — calls matching a method name. */
@@ -1 +1 @@
1
- const _0x5b8479=_0x54fe;(function(_0x292e08,_0xa5514){const _0x1e27ec={_0x3ed49b:0x1c2,_0x7b556d:0x1a4,_0x3b62b7:0x1cb,_0x298ac9:0x18e,_0x27e380:0x1b3,_0x528459:0x1d3,_0x1da82f:0x1be},_0x3c4ff9=_0x54fe,_0x51621f=_0x292e08();while(!![]){try{const _0x56929d=parseInt(_0x3c4ff9(_0x1e27ec._0x3ed49b))/0x1*(-parseInt(_0x3c4ff9(_0x1e27ec._0x7b556d))/0x2)+-parseInt(_0x3c4ff9(_0x1e27ec._0x3b62b7))/0x3+parseInt(_0x3c4ff9(_0x1e27ec._0x298ac9))/0x4+-parseInt(_0x3c4ff9(_0x1e27ec._0x27e380))/0x5+parseInt(_0x3c4ff9(_0x1e27ec._0x528459))/0x6*(parseInt(_0x3c4ff9(_0x1e27ec._0x1da82f))/0x7)+parseInt(_0x3c4ff9(0x1e4))/0x8*(-parseInt(_0x3c4ff9(0x191))/0x9)+parseInt(_0x3c4ff9(0x1a6))/0xa;if(_0x56929d===_0xa5514)break;else _0x51621f['push'](_0x51621f['shift']());}catch(_0x30c7ca){_0x51621f['push'](_0x51621f['shift']());}}}(_0x234e,0x198bd));function _0x54fe(_0x2ab4ce,_0x21d8b6){_0x2ab4ce=_0x2ab4ce-0x18c;const _0x234e72=_0x234e();let _0x54fe34=_0x234e72[_0x2ab4ce];if(_0x54fe['YlPNhB']===undefined){var _0x5b003e=function(_0x214fad){const _0x2298c4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1fb501='',_0x514a09='';for(let _0x4ce8e6=0x0,_0x4c4e32,_0x58d03d,_0x54e1ec=0x0;_0x58d03d=_0x214fad['charAt'](_0x54e1ec++);~_0x58d03d&&(_0x4c4e32=_0x4ce8e6%0x4?_0x4c4e32*0x40+_0x58d03d:_0x58d03d,_0x4ce8e6++%0x4)?_0x1fb501+=String['fromCharCode'](0xff&_0x4c4e32>>(-0x2*_0x4ce8e6&0x6)):0x0){_0x58d03d=_0x2298c4['indexOf'](_0x58d03d);}for(let _0x1cba72=0x0,_0x57cc63=_0x1fb501['length'];_0x1cba72<_0x57cc63;_0x1cba72++){_0x514a09+='%'+('00'+_0x1fb501['charCodeAt'](_0x1cba72)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x514a09);};_0x54fe['Vhwoxx']=_0x5b003e,_0x54fe['ZObbiZ']={},_0x54fe['YlPNhB']=!![];}const _0x59ff79=_0x234e72[0x0],_0x23879a=_0x2ab4ce+_0x59ff79,_0x5bd7cd=_0x54fe['ZObbiZ'][_0x23879a];return!_0x5bd7cd?(_0x54fe34=_0x54fe['Vhwoxx'](_0x54fe34),_0x54fe['ZObbiZ'][_0x23879a]=_0x54fe34):_0x54fe34=_0x5bd7cd,_0x54fe34;}var __defProp=Object[_0x5b8479(0x1b7)],__name=(_0x1fb501,_0x514a09)=>__defProp(_0x1fb501,_0x5b8479(0x1a8),{'value':_0x514a09,'configurable':!![]}),UnotestError=class extends Error{static{__name(this,_0x5b8479(0x19b));}['context'];constructor(_0x4ce8e6,_0x4c4e32={}){const _0x201f87={_0x3cd6e9:0x1cc},_0x529fff=_0x5b8479;super(_0x4ce8e6),this['name']=new.target.name,this[_0x529fff(0x198)]=Object[_0x529fff(0x1de)]({..._0x4c4e32}),typeof Error[_0x529fff(0x1cc)]===_0x529fff(0x18c)&&Error[_0x529fff(_0x201f87._0x3cd6e9)](this,new.target);}},DriverError=class extends UnotestError{static{__name(this,_0x5b8479(0x1e2));}},LocatorError=class extends UnotestError{static{__name(this,_0x5b8479(0x193));}};function createRecorder(){const _0x263dd5=_0x5b8479,_0x58d03d=[];let _0x54e1ec=0x0;return{'push':__name(_0x1cba72=>_0x58d03d['push']({..._0x1cba72,'seq':_0x54e1ec++}),_0x263dd5(0x1d2)),'calls':__name(()=>_0x58d03d,_0x263dd5(0x1bf))};}function _0x234e(){const _0x5f0bc8=['zMfRzs1WBMC','y3vYCMvUDfvYBa','zhjPDMvY','yxr0CMLIDxrLC0j5rgvMyxvSDa','BMv3q29UDgv4DcbJywXSzwqGyMvMB3jLigXHDw5JAcGP','zNvUy3rPB24','Aw5PDgLHBfvYBa','nZu3nZKYEe1WCg9M','Aw5WDxrwywX1zq','C2v0tg9JywXtDg9YywDL','ndvnu2v0ruK','BMv3ugfNzuXPC3rLBMvYCW','tg9JyxrVCKvYCM9Y','y29VA2LLu3rHDgu','C2f2zvn0B3jHz2vtDgf0zq','pgrPDIbKyxrHlxvUB3rLC3qTCMvMpsi','DgL0Bgu','y29UDgv4Da','y291BNq','y2XVC2u','vw5VDgvZDevYCM9Y','D2fPDezVCK5HDMLNyxrPB24','zMfRzsb0AxrSzq','C2nVCgu','y291BNrcEurLzMf1Bhq','Bg9JywXtDg9YywDLu3rHDgu','C2nYB2XSsw50B1zPzxC','y2XPy2S','z2v0tg9JywXtDg9YywDL','ntu1mfDowhDSvq','zw50zxjgCMfTzsbJywXSzwqGD2L0AcbLBxb0EsbSB2nHDg9Y','mtm4ndyZmgPUq21Jva','Ag92zxi','BMfTzq','DxjS','Cg9WDxbpBKnSAwnR','D2fPDezVCG','Dgv4DenVBNrLBNq','y29UDgv4Dhm','y2HLy2S','zxzHBhvHDgu','zxzHBhvHDgvpBKXVy2f0B3i','AxnwAxnPyMXL','y2XPCgjVyxjKugfZDgu','ntqXnda1ExjoDhv5','B25bzNrLCKnSAwnR','zNjVBq','zxjYB3jpBK5LEhrby3rPB24','zgvMAw5LuhjVCgvYDhK','DxbSB2fKrMLSzq','Bgf1BMnO','Bgf1BMnOzwq','ywn0AxzLswr4','y29VA2LLCW','AxnwAxnPyMXLqNLezwzHDwX0','odKWnhHmsw5eEa','y2fSBhm','z29gB3j3yxjK','ywrK','mtnbtu1HExO','CMvJB3jK','y3r4','zg91yMXLq2XPy2S','D2fPDezVCLvYBa','CMvSB2fK','BMv3q29UDgv4Da','zxHPDezYyw1L','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','mZm1oda4r2XsEMTA','y2fWDhvYzvn0ywnRvhjHy2u','Dw5JAgvJAW','D2fPDezVCLrLEhq','z2v0q29VA2LL','yMvOyxzPB3i','Cg9W','ChvZAa','nZq0twfbu3rY','z29cywnR','CgfNzuXPC3q','y29UC29SzuvUDhjPzxm','BM8Gywn0AxzLihbHz2uGAw4Gy29UDgv4Da','Aw5WDxrwywX1zuj5rgvMyxvSDa','zw1PDezHA2vqB3b1Ca','zgvSzxrL','C2v0qwn0AxzLugfNzq','lNbHz2u','B25ozxDqywDL','zNjLzxPL','rMfRzunVBNrLEhq','zwXLBwvUDeHPBNrcEvjLzG','zhjHz0fUzerYB3a','rhjPDMvYrxjYB3i','z2v0qxr0CMLIDxrL','mtK5ntm2DuzruLjk','B3v0zxjive1m','zNjHBwvtDgfJAW','Aw5ZCgvJDevSzw1LBNq','Bg9JywXtDg9YywDL','C2vSzwn0t3b0Aw9U','zNjHBwvezxb0Aa','rMfRzvDLyKrYAxzLCG','C2nYzwvUC2HVDa','zMLSDgvY','C2v0q29VA2LL','z290BW','ChjLC3m','BgvUz3rO','CMvM','C3rLChm','CMvJB3jKzxi','Bwf5yMvuAhjVDW'];_0x234e=function(){return _0x5f0bc8;};return _0x234e();}__name(createRecorder,'createRecorder');var FakePage=class{constructor(_0x57cc63,_0xbc4422,_0x2dd4cd,_0x567ad4){const _0xcc0fc6={_0x38ba36:0x1f4,_0x2c4b77:0x1d0},_0x52cfc1=_0x5b8479;this[_0x52cfc1(_0xcc0fc6._0x38ba36)]=_0x57cc63,this[_0x52cfc1(_0xcc0fc6._0x2c4b77)]=_0xbc4422,this[_0x52cfc1(0x19e)]=_0x2dd4cd,this[_0x52cfc1(0x1f7)]=_0x567ad4;}[_0x5b8479(0x1f4)];[_0x5b8479(0x1d0)];['scope'];static{__name(this,'FakePage');}[_0x5b8479(0x1f7)];[_0x5b8479(0x1b4)];[_0x5b8479(0x1c3)](_0xc6e58f,_0xf3478a){const _0x2c9e59=_0x5b8479;this[_0x2c9e59(0x1f4)]['push']({'scope':this[_0x2c9e59(0x19e)],'method':_0xc6e58f,'args':_0xf3478a});}['maybeThrow'](){const _0x4dedb0={_0x62345e:0x1b6},_0x3ef9cf=_0x5b8479;if(this[_0x3ef9cf(0x1d0)][_0x3ef9cf(_0x4dedb0._0x62345e)]){const _0x427b56=this[_0x3ef9cf(0x1d0)][_0x3ef9cf(0x1b6)];this[_0x3ef9cf(0x1d0)]['errorOnNextAction']=void 0x0;throw _0x427b56;}}[_0x5b8479(0x1a9)](){const _0xd70b15=_0x5b8479;return this[_0xd70b15(0x1f7)];}async[_0x5b8479(0x197)](){const _0x3e3d3a={_0x201098:0x1c3},_0x1c35c7=_0x5b8479;return this[_0x1c35c7(_0x3e3d3a._0x201098)](_0x1c35c7(0x197),[]),_0x1c35c7(0x19d);}async[_0x5b8479(0x1a2)](_0x493495,_0x24c661){const _0x25eb67={_0x4c1551:0x1b4},_0x59260d=_0x5b8479;this[_0x59260d(0x1c3)](_0x59260d(0x1a2),[_0x493495,_0x24c661]),this[_0x59260d(0x1f5)](),this[_0x59260d(_0x25eb67._0x4c1551)]?.();}async[_0x5b8479(0x1c5)](_0xcda7c2,_0x13fd06){const _0x527a05={_0x40bede:0x1c3,_0x43420b:0x1c5,_0x34d4f1:0x1f5},_0x302276=_0x5b8479;this[_0x302276(_0x527a05._0x40bede)](_0x302276(_0x527a05._0x43420b),[_0xcda7c2,_0x13fd06]),this[_0x302276(_0x527a05._0x34d4f1)]();}async['fill'](_0xc82613,_0x1c4ee2,_0x83697){const _0x15a883={_0x36f0cd:0x1c3},_0x2569a3=_0x5b8479;this[_0x2569a3(_0x15a883._0x36f0cd)]('fill',[_0xc82613,_0x1c4ee2,_0x83697]),this['maybeThrow']();}async[_0x5b8479(0x1f0)](_0x23a88c,_0x58413e,_0x26b8c7){const _0x2a0bf5={_0x24d048:0x1c3},_0x2c206c=_0x5b8479;this[_0x2c206c(_0x2a0bf5._0x24d048)](_0x2c206c(0x1f0),[_0x23a88c,_0x58413e,_0x26b8c7]),this['maybeThrow']();}async[_0x5b8479(0x1ae)](_0x14e08c,_0x406495){const _0x180b77={_0x9c906e:0x1c3},_0x28dce1=_0x5b8479;this[_0x28dce1(_0x180b77._0x9c906e)](_0x28dce1(0x1ae),[_0x14e08c,_0x406495]),this['maybeThrow']();}async[_0x5b8479(0x1cd)](_0x525e03,_0x2a089b){const _0x2f6cc6=_0x5b8479;this[_0x2f6cc6(0x1c3)](_0x2f6cc6(0x1cd),[_0x525e03,_0x2a089b]),this[_0x2f6cc6(0x1f5)]();}async[_0x5b8479(0x1e9)](_0x24f909,_0x43c40c,_0x504645){const _0x217bfc={_0x338427:0x1e9,_0x88bc49:0x1f5},_0x204ddf=_0x5b8479;this[_0x204ddf(0x1c3)](_0x204ddf(_0x217bfc._0x338427),[_0x24f909,_0x43c40c,_0x504645]),this[_0x204ddf(_0x217bfc._0x88bc49)]();}async['hover'](_0x177c6c,_0x542de9){const _0x4d6946={_0x32cc8b:0x1f5},_0x2c89f7=_0x5b8479;this[_0x2c89f7(0x1c3)](_0x2c89f7(0x1a7),[_0x177c6c,_0x542de9]),this[_0x2c89f7(_0x4d6946._0x32cc8b)]();}async[_0x5b8479(0x1a1)](_0x31a9d0){const _0x425a8d={_0x39eb19:0x1a1},_0x4fdfea=_0x5b8479;this[_0x4fdfea(0x1c3)](_0x4fdfea(_0x425a8d._0x39eb19),[_0x31a9d0]),this[_0x4fdfea(0x1f5)]();}async[_0x5b8479(0x1e1)](_0x471a57,_0x3e6152,_0x3163cd){const _0xa45c8d=_0x5b8479;this[_0xa45c8d(0x1c3)]('dragAndDrop',[_0x471a57,_0x3e6152,_0x3163cd]),this[_0xa45c8d(0x1f5)]();}async[_0x5b8479(0x1b8)](_0x430969,_0x2746a9){const _0x53a5b2={_0x3a3532:0x1c3},_0x5a5cca=_0x5b8479;this[_0x5a5cca(_0x53a5b2._0x3a3532)](_0x5a5cca(0x1b8),[_0x430969,_0x2746a9]),this[_0x5a5cca(0x1f5)]();}async[_0x5b8479(0x1b2)](_0xd73331,_0x250b19){const _0x2b4730={_0xceec6e:0x1b2},_0x2e7d15=_0x5b8479;this[_0x2e7d15(0x1c3)](_0x2e7d15(_0x2b4730._0xceec6e),[_0xd73331,_0x250b19]),this[_0x2e7d15(0x1f5)]();}async[_0x5b8479(0x199)](_0x8aaba3){const _0x48e173={_0x1f8dd8:0x1c3},_0x33ac8a=_0x5b8479;return this[_0x33ac8a(_0x48e173._0x1f8dd8)]('count',[_0x8aaba3]),this[_0x33ac8a(0x1d0)][_0x33ac8a(0x19f)]??0x1;}async[_0x5b8479(0x1ac)](_0x5c17b3){const _0x4573a2={_0x12ba9e:0x1ac},_0x20003e=_0x5b8479;return this[_0x20003e(0x1c3)](_0x20003e(_0x4573a2._0x12ba9e),[_0x5c17b3]),this['behavior']['textContentByDefault']??'';}async[_0x5b8479(0x18f)](_0xb7b9bc){const _0x325bc6={_0x4bf2a5:0x18f,_0x3aedb1:0x1d0,_0x48a0dd:0x1d8},_0x220c44=_0x5b8479;return this[_0x220c44(0x1c3)](_0x220c44(_0x325bc6._0x4bf2a5),[_0xb7b9bc]),this[_0x220c44(_0x325bc6._0x3aedb1)][_0x220c44(_0x325bc6._0x48a0dd)]??'';}async[_0x5b8479(0x1b1)](_0x156976){const _0x33cc47={_0x4ac7a0:0x1b1},_0x5e5046=_0x5b8479;return this[_0x5e5046(0x1c3)](_0x5e5046(_0x33cc47._0x4ac7a0),[_0x156976]),this[_0x5e5046(0x1d0)][_0x5e5046(0x1bd)]??!![];}async['getAttribute'](_0x67d7d2,_0x11cd88){const _0x30bd2d={_0x857fba:0x1e3,_0x3594c5:0x1f9},_0x4a17fc=_0x5b8479;return this[_0x4a17fc(0x1c3)](_0x4a17fc(_0x30bd2d._0x857fba),[_0x67d7d2,_0x11cd88]),this['behavior'][_0x4a17fc(_0x30bd2d._0x3594c5)]?.[_0x11cd88]??null;}async[_0x5b8479(0x1ab)](_0x526075,_0x450666){this['record']('waitFor',[_0x526075,_0x450666]);}async[_0x5b8479(0x1c6)](_0x4c07ec,_0x4f9ec6){const _0x5a5a2b=_0x5b8479;this[_0x5a5a2b(0x1c3)]('waitForUrl',[_0x4c07ec,_0x4f9ec6]);}async[_0x5b8479(0x1ce)](_0x187673,_0x284433){const _0x494979={_0x4415f5:0x1c3,_0x581dca:0x1ce},_0x1b7d94=_0x5b8479;this[_0x1b7d94(_0x494979._0x4415f5)](_0x1b7d94(_0x494979._0x581dca),[_0x187673,_0x284433]);}async['waitForNavigation'](_0x3f7381){const _0x1b9681={_0x5ed98b:0x1c3},_0x5c3e27=_0x5b8479;this[_0x5c3e27(_0x1b9681._0x5ed98b)](_0x5c3e27(0x19c),[_0x3f7381]);}async['goto'](_0x14b18c,_0x1dad01){const _0x587997={_0x3284c9:0x1ef},_0x121ce7=_0x5b8479;this[_0x121ce7(0x1c3)](_0x121ce7(_0x587997._0x3284c9),[_0x14b18c,_0x1dad01]),this['currentUrl']=_0x14b18c;}async[_0x5b8479(0x1c7)](_0x39fcd5){const _0x35018f={_0x36f44d:0x1c3},_0x371253=_0x5b8479;this[_0x371253(_0x35018f._0x36f44d)]('reload',[_0x39fcd5]);}async[_0x5b8479(0x1d4)](_0x5f2107){const _0xb9fbfd={_0x55c60d:0x1c3},_0x24749c=_0x5b8479;this[_0x24749c(_0xb9fbfd._0x55c60d)](_0x24749c(0x1d4),[_0x5f2107]);}async['goForward'](_0x30e122){const _0x4a46c9={_0x5d8637:0x1c0},_0x1c7231=_0x5b8479;this[_0x1c7231(0x1c3)](_0x1c7231(_0x4a46c9._0x5d8637),[_0x30e122]);}async[_0x5b8479(0x1af)](_0x1c73b4){const _0x35c815=_0x5b8479;return this[_0x35c815(0x1c3)]('evaluate',[_0x1c73b4]),void 0x0;}async['evaluateOnLocator'](_0x193949,_0x3238a9){const _0x3e248d={_0x199b16:0x1c3,_0x1a018c:0x1b0},_0x5624d6=_0x5b8479;return this[_0x5624d6(_0x3e248d._0x199b16)](_0x5624d6(_0x3e248d._0x1a018c),[_0x193949,_0x3238a9]),void 0x0;}async['inspectElement'](_0x2117d8){const _0x56bc10={_0x15eb5b:0x1c3,_0x49a84b:0x1e7,_0x455f8c:0x1f3,_0x1259dc:0x1f2,_0x316983:0x1d0,_0x2c689d:0x1e0},_0x5d70c0=_0x5b8479;this[_0x5d70c0(_0x56bc10._0x15eb5b)](_0x5d70c0(_0x56bc10._0x49a84b),[_0x2117d8]);if(_0x2117d8[_0x5d70c0(0x1f3)]['length']!==0x1||_0x2117d8[_0x5d70c0(_0x56bc10._0x455f8c)][0x0]['kind']!==_0x5d70c0(_0x56bc10._0x1259dc))return null;const _0x53c025=_0x2117d8[_0x5d70c0(_0x56bc10._0x455f8c)][0x0]['ref'],_0x3a33e5=this[_0x5d70c0(_0x56bc10._0x316983)][_0x5d70c0(_0x56bc10._0x2c689d)]?.[_0x53c025];return _0x3a33e5??null;}async[_0x5b8479(0x1ec)](_0x36a241){const _0x49b8e4={_0x53163f:0x1c3,_0x5137a9:0x1ec,_0x597969:0x1f6},_0x14abe7=_0x5b8479;return this[_0x14abe7(_0x49b8e4._0x53163f)](_0x14abe7(_0x49b8e4._0x5137a9),[_0x36a241]),Buffer[_0x14abe7(0x1b5)](_0x14abe7(_0x49b8e4._0x597969));}async[_0x5b8479(0x1e5)](_0x253f43){const _0x4369dc={_0x456fc7:0x1c3,_0x3fc15e:0x1f3,_0x5adef3:0x1d0},_0x273cb2=_0x5b8479;this[_0x273cb2(_0x4369dc._0x456fc7)]('outerHTML',[_0x253f43]);if(_0x253f43[_0x273cb2(0x1f3)][_0x273cb2(0x1f1)]===0x1&&_0x253f43[_0x273cb2(0x1f3)][0x0]['kind']===_0x273cb2(0x1f2)){const _0x14bbe4=_0x253f43[_0x273cb2(_0x4369dc._0x3fc15e)][0x0][_0x273cb2(0x1f2)];return this[_0x273cb2(_0x4369dc._0x5adef3)]['outerHtmlByRef']?.[_0x14bbe4]??_0x273cb2(0x196)+_0x14bbe4+'\x22></div>';}return'<div></div>';}},FakeContext=class{constructor(_0x4ea5e,_0x3628b2,_0x2c130a){const _0x24697f={_0x3665c5:0x1f4,_0x4d279b:0x1a0,_0x1c1615:0x194},_0xa25f49=_0x5b8479;this[_0xa25f49(_0x24697f._0x3665c5)]=_0x4ea5e,this['behavior']=_0x3628b2,this['scope']=_0x2c130a;const _0x5dfda8=new FakePage(_0x4ea5e,_0x3628b2,_0x2c130a+'.page0',_0x3628b2[_0xa25f49(0x18d)]??'about:blank');_0x3628b2[_0xa25f49(0x1aa)]&&(_0x5dfda8['onAfterClick']=()=>{const _0x3d0867=_0xa25f49;this[_0x3d0867(0x1d9)](_0x3628b2[_0x3d0867(0x1aa)]);}),this[_0xa25f49(0x1d5)]=[_0x5dfda8],this[_0xa25f49(_0x24697f._0x4d279b)]={..._0x3628b2[_0xa25f49(0x1e8)]??{}},this[_0xa25f49(_0x24697f._0x1c1615)]={..._0x3628b2[_0xa25f49(0x1bc)]??{}};}[_0x5b8479(0x1f4)];[_0x5b8479(0x1d0)];[_0x5b8479(0x19e)];static{__name(this,_0x5b8479(0x1df));}['pageList'];[_0x5b8479(0x1bb)]=0x0;[_0x5b8479(0x1e6)]=[];[_0x5b8479(0x1a0)];['cookieState'];[_0x5b8479(0x192)]=new Set();[_0x5b8479(0x1c3)](_0x5e6224,_0x5ac9f6){const _0x4f1a23=_0x5b8479;this[_0x4f1a23(0x1f4)]['push']({'scope':this['scope'],'method':_0x5e6224,'args':_0x5ac9f6});}['pages'](){const _0x2e06cd={_0x120f45:0x1d5},_0x6de2c7=_0x5b8479;return this[_0x6de2c7(_0x2e06cd._0x120f45)];}['activePage'](){const _0x1bf224={_0x32d6f0:0x1bb},_0x169fa9=_0x5b8479,_0x28cd00=this['pageList'][this[_0x169fa9(_0x1bf224._0x32d6f0)]];if(!_0x28cd00)throw new DriverError(_0x169fa9(0x1d7),{'activeIdx':this[_0x169fa9(0x1bb)]});return _0x28cd00;}['consoleEntries'](){const _0x43580b={_0x6d02f3:0x1d6},_0x56c269=_0x5b8479;return this[_0x56c269(0x1d0)][_0x56c269(_0x43580b._0x6d02f3)]??[];}async[_0x5b8479(0x1db)](_0x584bac){const _0x101cfa={_0xa6258:0x1d5,_0x2b0db8:0x1f1,_0x447332:0x1f1},_0x24ba78=_0x5b8479;this[_0x24ba78(0x1c3)](_0x24ba78(0x1db),[_0x584bac]);if(_0x584bac<0x0||_0x584bac>=this[_0x24ba78(_0x101cfa._0xa6258)][_0x24ba78(_0x101cfa._0x2b0db8)])throw new DriverError('page\x20index\x20out\x20of\x20range',{'index':_0x584bac,'available':this[_0x24ba78(0x1d5)]['length']});this[_0x24ba78(0x1bb)]=_0x584bac,this[_0x24ba78(0x1e6)][_0x24ba78(_0x101cfa._0x447332)]=0x0;}[_0x5b8479(0x1dd)](_0x20d1f3){const _0x17cf32={_0x40bfd4:0x192},_0x3c2c14={_0x406dea:0x1da},_0x292542=_0x5b8479;return this[_0x292542(_0x17cf32._0x40bfd4)][_0x292542(0x1c1)](_0x20d1f3),()=>{const _0x3568fb=_0x292542;this[_0x3568fb(0x192)][_0x3568fb(_0x3c2c14._0x406dea)](_0x20d1f3);};}['emitFakePopup'](_0x298ce7){const _0x3e6538={_0xb91edf:0x19e,_0x4da48d:0x1dc,_0x1e1c19:0x1d5,_0x3dd712:0x1f4,_0x2a6884:0x1d0,_0x4b1655:0x1f1,_0xbad163:0x192},_0x3c9fe6=_0x5b8479,_0x230016=this[_0x3c9fe6(_0x3e6538._0xb91edf)]+_0x3c9fe6(_0x3e6538._0x4da48d)+this[_0x3c9fe6(_0x3e6538._0x1e1c19)]['length'],_0x69533e=new FakePage(this[_0x3c9fe6(_0x3e6538._0x3dd712)],this[_0x3c9fe6(_0x3e6538._0x2a6884)],_0x230016,_0x298ce7);this[_0x3c9fe6(0x1d5)]['push'](_0x69533e);const _0x23105f=this[_0x3c9fe6(0x1d5)][_0x3c9fe6(_0x3e6538._0x4b1655)]-0x1;for(const _0x532563 of this[_0x3c9fe6(_0x3e6538._0xbad163)]){try{_0x532563({'index':_0x23105f,'url':_0x298ce7});}catch{}}return _0x23105f;}async['enterFrame'](_0x47c274){const _0x2cf29d={_0x2e71b1:0x1d2},_0x2d9d5e=_0x5b8479;this[_0x2d9d5e(0x1c3)]('enterFrame',[_0x47c274]);if(!_0x47c274['steps'][_0x2d9d5e(0x1f1)])throw new LocatorError(_0x2d9d5e(0x1a5),{'locator':_0x47c274});this['frameStack'][_0x2d9d5e(_0x2cf29d._0x2e71b1)](_0x47c274);}async[_0x5b8479(0x1c9)](){const _0x339d85={_0x2f7656:0x1c3,_0x31c5e8:0x1c9,_0xdaa408:0x1f1,_0xd28760:0x1ca,_0x9d5e13:0x1e6},_0x451374=_0x5b8479;this[_0x451374(_0x339d85._0x2f7656)](_0x451374(_0x339d85._0x31c5e8),[]);if(this[_0x451374(0x1e6)][_0x451374(_0x339d85._0xdaa408)]===0x0)throw new DriverError(_0x451374(_0x339d85._0xd28760),{});this[_0x451374(_0x339d85._0x9d5e13)][_0x451374(0x1d1)]();}async['setLocalStorage'](_0x7cd3c1,_0x1c2379){const _0x269328={_0x90245f:0x1c3,_0x282b33:0x190},_0x59e852=_0x5b8479;this[_0x59e852(_0x269328._0x90245f)](_0x59e852(_0x269328._0x282b33),[_0x7cd3c1,_0x1c2379]),this[_0x59e852(0x1a0)][_0x7cd3c1]=_0x1c2379;}async['getLocalStorage'](_0x1bcb8a){const _0x30cb24={_0xeedc6e:0x1a3,_0x44b952:0x1a0},_0x3fd4db=_0x5b8479;return this['record'](_0x3fd4db(_0x30cb24._0xeedc6e),[_0x1bcb8a]),this[_0x3fd4db(_0x30cb24._0x44b952)][_0x1bcb8a]??null;}async['setCookie'](_0x56fc92,_0x5284c6,_0xbe147e){const _0x5dc4bb={_0x1d5bde:0x1c3,_0x179f15:0x1ee,_0x144d09:0x194},_0x2f5704=_0x5b8479;this[_0x2f5704(_0x5dc4bb._0x1d5bde)](_0x2f5704(_0x5dc4bb._0x179f15),[_0x56fc92,_0x5284c6,_0xbe147e]),this[_0x2f5704(_0x5dc4bb._0x144d09)][_0x56fc92]=_0x5284c6;}async[_0x5b8479(0x1cf)](_0x1b6585){const _0x25dd4e=_0x5b8479;return this['record'](_0x25dd4e(0x1cf),[_0x1b6585]),this['cookieState'][_0x1b6585]??null;}async[_0x5b8479(0x195)](_0x4f4984){const _0x54658d={_0x5d5fd4:0x195},_0x13b44a=_0x5b8479;this['record'](_0x13b44a(_0x54658d._0x5d5fd4),[_0x4f4984]);}async[_0x5b8479(0x1af)](_0x2379ac){const _0xe5818a=_0x5b8479;return this[_0xe5818a(0x1c3)](_0xe5818a(0x1af),[_0x2379ac]),void 0x0;}async[_0x5b8479(0x19a)](){const _0x15c0ff={_0x3c0d0b:0x1c3},_0x2f90c8=_0x5b8479;this[_0x2f90c8(_0x15c0ff._0x3c0d0b)](_0x2f90c8(0x19a),[]);}[_0x5b8479(0x1ea)](){const _0x1b1e6e={_0xa8b526:0x1e6,_0x357e6f:0x1f1},_0x2f65cb=_0x5b8479;return this[_0x2f65cb(_0x1b1e6e._0xa8b526)][_0x2f65cb(_0x1b1e6e._0x357e6f)];}},FakeWebDriver=class{constructor(_0x427f8e={}){const _0x1ddb78=_0x5b8479;this[_0x1ddb78(0x1d0)]=_0x427f8e,this[_0x1ddb78(0x1f4)]=createRecorder();}['behavior'];static{__name(this,_0x5b8479(0x1eb));}['launched']=![];[_0x5b8479(0x1f4)];[_0x5b8479(0x1ad)]=[];async[_0x5b8479(0x1b9)](_0x2dbc94){const _0xd8e251={_0x5dbbd4:0x1f4,_0x1e03cb:0x1f8,_0x4e4f72:0x1b9},_0x212a0b=_0x5b8479;this[_0x212a0b(_0xd8e251._0x5dbbd4)]['push']({'scope':_0x212a0b(_0xd8e251._0x1e03cb),'method':_0x212a0b(_0xd8e251._0x4e4f72),'args':[_0x2dbc94]}),this['launched']=!![];}async[_0x5b8479(0x1c8)](_0x52d6fb){const _0x5976d3={_0x508828:0x1f4,_0x5becc5:0x1d2,_0x14f31a:0x1ba,_0x2b9ce9:0x1d0,_0x4e8c22:0x1f1},_0x48f903=_0x5b8479;this[_0x48f903(_0x5976d3._0x508828)][_0x48f903(_0x5976d3._0x5becc5)]({'scope':_0x48f903(0x1f8),'method':_0x48f903(0x1c8),'args':[_0x52d6fb]});if(!this[_0x48f903(_0x5976d3._0x14f31a)])throw new DriverError(_0x48f903(0x1fa),{});const _0x3503de=new FakeContext(this[_0x48f903(0x1f4)],this[_0x48f903(_0x5976d3._0x2b9ce9)],_0x48f903(0x1c4)+this[_0x48f903(0x1ad)][_0x48f903(_0x5976d3._0x4e8c22)]);return this[_0x48f903(0x1ad)]['push'](_0x3503de),_0x3503de;}async['close'](){const _0x1bdef5={_0x40416c:0x1d2,_0x41a4f1:0x1ba},_0x463c08=_0x5b8479;this[_0x463c08(0x1f4)][_0x463c08(_0x1bdef5._0x40416c)]({'scope':'driver','method':'close','args':[]}),this[_0x463c08(_0x1bdef5._0x41a4f1)]=![];}[_0x5b8479(0x1bf)](){const _0x1f4175=_0x5b8479;return this[_0x1f4175(0x1f4)][_0x1f4175(0x1bf)]();}['callsFor'](_0xd3fb70){const _0x5778c2={_0x4b367d:0x1f4,_0x538904:0x1bf,_0x2042c2:0x1ed},_0x597bd7=_0x5b8479;return this[_0x597bd7(_0x5778c2._0x4b367d)][_0x597bd7(_0x5778c2._0x538904)]()[_0x597bd7(_0x5778c2._0x2042c2)](_0x1377fd=>_0x1377fd['method']===_0xd3fb70);}};export{FakeWebDriver};
1
+ const _0x296b36=_0x5f64;(function(_0x1acf4e,_0x1dbb8d){const _0x429dc7={_0x40bd21:0x1b4,_0x43c267:0x1bf,_0x502089:0x1a3,_0x4648b1:0x1a2,_0x52b286:0x1cb,_0x5aab0b:0x1aa},_0x5f2dfa=_0x5f64,_0x1f5773=_0x1acf4e();while(!![]){try{const _0x33f5e3=parseInt(_0x5f2dfa(0x19e))/0x1*(-parseInt(_0x5f2dfa(_0x429dc7._0x40bd21))/0x2)+-parseInt(_0x5f2dfa(_0x429dc7._0x43c267))/0x3*(parseInt(_0x5f2dfa(_0x429dc7._0x502089))/0x4)+parseInt(_0x5f2dfa(0x179))/0x5*(parseInt(_0x5f2dfa(_0x429dc7._0x4648b1))/0x6)+parseInt(_0x5f2dfa(0x1c7))/0x7*(parseInt(_0x5f2dfa(0x1c1))/0x8)+parseInt(_0x5f2dfa(_0x429dc7._0x52b286))/0x9+-parseInt(_0x5f2dfa(0x1e0))/0xa*(-parseInt(_0x5f2dfa(0x1ab))/0xb)+parseInt(_0x5f2dfa(_0x429dc7._0x5aab0b))/0xc;if(_0x33f5e3===_0x1dbb8d)break;else _0x1f5773['push'](_0x1f5773['shift']());}catch(_0x4574e7){_0x1f5773['push'](_0x1f5773['shift']());}}}(_0x1962,0xea106));function _0x1962(){const _0x1c9380=['ywn0AxzLswr4','y2fSBhngB3i','D2fPDezVCLrLEhq','CMvJB3jKzxi','m0nQwKj3qW','y29VA2LLCW','mZKYofzbtuPXDW','DgL0Bgu','y2XVC2u','Aw5ZCgvJDevSzw1LBNq','zMLSBa','CgfNzsbPBMrLEcbVDxqGB2yGCMfUz2u','mJG4nfLRu0f0Ca','zhjPDMvY','zNjHBwvezxb0Aa','y3r4','ndCXntK2ngzLwLvuBG','Bg9JywXtDg9YywDLu3rHDgu','pgrPDJ48l2rPDJ4','zMfRzs1WBMC','y291BNq','CMvSB2fK','y29UC29SzuvUDhjPzxm','DxbSB2fKrMLSzq','D2fPDezVCG','Bwv0Ag9K','AxnwAxnPyMXL','BMv0D29YA0vUDhjPzxm','z2v0tg9JywXtDg9YywDL','rMfRzunVBNrLEhq','C2f2zvn0B3jHz2vtDgf0zq','yMvOyxzPB3i','Cg9WDxbpBKnSAwnR','Cg9W','lNbHz2uW','zxzHBhvHDgu','zg91yMXLq2XPy2S','mtyZmeftC3DmwG','ywrK','C2nYB2XSsw50B1zPzxC','BMfTzq','y3vYCMvUDfvYBa','y2fSBhm','y29UDgv4Da','Aw5PDgLHBfvYBa','yxr0ywnOrxHPC3rPBMC','BM8Gywn0AxzLihbHz2uGAw4Gy29UDgv4Da','zw50zxjgCMfTzsbJywXSzwqGD2L0AcbLBxb0EsbSB2nHDg9Y','C2v0qwn0AxzLugfNzq','C2v0tg9JywXtDg9YywDL','zxHPDezYyw1L','CMvM','z290BW','Bwf5yMvuAhjVDW','zNjVBq','zhjHz0fUzerYB3a','C2nVCgu','ntiZnteWDez1CMDT','Bgf1BMnOzwq','Bg9JywXtDg9YywDL','CMvJB3jK','zwXLBwvUDeHPBNrcEvjLzG','z2v0q29VA2LL','BMv3q29UDgv4Da','B25bzNrLCKnSAwnR','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','C2v0q29VA2LL','zxzHBhvHDgvpBKXVy2f0B3i','vw5VDgvZDevYCM9Y','B3v0zxjive1m','D3nfBMrWB2LUDa','Dw5JAgvJAW','zgvSzxrL','Aw5WDxrwywX1zq','Bgf1BMnO','y2XPCgjVyxjKugfZDgu','zxjYB3jpBK5LEhrby3rPB24','z29gB3j3yxjK','A2LUza','C3rLChm','iJ48l2rPDJ4','y29UBMvJDfnOyxjLzcbUB3qGC3vWCg9YDgvKigj5iezHA2vxzwjeCML2zxi','ywjVDxq6yMXHBMS','y29VA2LLu3rHDgu','D2fPDezVCK5HDMLNyxrPB24','CgfNzuXPC3q','C2vSzwn0t3b0Aw9U','y2fWDhvYzvn0ywnRvhjHy2u','Dgv4DenVBNrLBNq','DxjS','C2nYzwvUC2HVDa','B25ozxDqywDL','z29cywnR','B3v0zxjiDg1SqNLszwy','mLfWALngtG','Dgv4DenVBNrLBNrcEurLzMf1Bhq','D2fPDezVCLvYBa','pgrPDIbKyxrHlxvUB3rLC3qTCMvMpsi','mJreCgf0yw4','mtq0mtmWofPMCgTMtq','y2XPy2S','ChjLC3m','zNjHBwvtDgfJAW','rhjPDMvYrxjYB3i','AxnwAxnPyMXLqNLezwzHDwX0','zMLSDgvY','mtGWotK2nZj5y3byBum','mJy5mtD4ze14DwK','Ag92zxi','z2v0qxr0CMLIDxrL','ChvZAa','BMv3ugfNzuXPC3rLBMvYCW','zNvUy3rPB24','zMfRzsb0AxrSzq','BgvUz3rO','lNbHz2u','mtCZmZiXmfbwEKL1Da','ywn0AxzLugfNzq','zgvMAw5LuhjVCgvYDhK','yxr0CMLIDxrLC0j5rgvMyxvSDa','y29UDgv4Dhm','CgfNzxm','BMv3q29UDgv4DcbJywXSzwqGyMvMB3jLigXHDw5JAcGP'];_0x1962=function(){return _0x1c9380;};return _0x1962();}var __defProp=Object[_0x296b36(0x1b6)],__name=(_0x100bd0,_0x539b66)=>__defProp(_0x100bd0,_0x296b36(0x1e3),{'value':_0x539b66,'configurable':!![]}),UnotestError=class extends Error{static{__name(this,_0x296b36(0x184));}[_0x296b36(0x1e6)];constructor(_0x201fea,_0xd99b6c={}){const _0x153cac={_0x45f7d5:0x1e6},_0x3083bd=_0x296b36;super(_0x201fea),this['name']=new.target.name,this[_0x3083bd(_0x153cac._0x45f7d5)]=Object['freeze']({..._0xd99b6c}),typeof Error[_0x3083bd(0x197)]===_0x3083bd(0x1b0)&&Error['captureStackTrace'](this,new.target);}},DriverError=class extends UnotestError{static{__name(this,_0x296b36(0x1a7));}},LocatorError=class extends UnotestError{static{__name(this,'LocatorError');}};function createRecorder(){const _0x4a79d3={_0x901da9:0x1ae,_0x430069:0x1e5},_0x5d68a9=_0x296b36,_0x1e1827=[];let _0xf6002d=0x0;return{'push':__name(_0x3b25b0=>_0x1e1827[_0x5d68a9(0x1ae)]({..._0x3b25b0,'seq':_0xf6002d++}),_0x5d68a9(_0x4a79d3._0x901da9)),'calls':__name(()=>_0x1e1827,_0x5d68a9(_0x4a79d3._0x430069))};}function _0x5f64(_0x510958,_0x4716c0){_0x510958=_0x510958-0x175;const _0x1962fd=_0x1962();let _0x5f6484=_0x1962fd[_0x510958];if(_0x5f64['fvghhS']===undefined){var _0x19966e=function(_0x432983){const _0x5e3af4='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x100bd0='',_0x539b66='';for(let _0x201fea=0x0,_0xd99b6c,_0x1e1827,_0xf6002d=0x0;_0x1e1827=_0x432983['charAt'](_0xf6002d++);~_0x1e1827&&(_0xd99b6c=_0x201fea%0x4?_0xd99b6c*0x40+_0x1e1827:_0x1e1827,_0x201fea++%0x4)?_0x100bd0+=String['fromCharCode'](0xff&_0xd99b6c>>(-0x2*_0x201fea&0x6)):0x0){_0x1e1827=_0x5e3af4['indexOf'](_0x1e1827);}for(let _0x3b25b0=0x0,_0x5dfd92=_0x100bd0['length'];_0x3b25b0<_0x5dfd92;_0x3b25b0++){_0x539b66+='%'+('00'+_0x100bd0['charCodeAt'](_0x3b25b0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x539b66);};_0x5f64['IxKrmA']=_0x19966e,_0x5f64['CSvVAV']={},_0x5f64['fvghhS']=!![];}const _0x5c3678=_0x1962fd[0x0],_0x1a31b8=_0x510958+_0x5c3678,_0x5483b0=_0x5f64['CSvVAV'][_0x1a31b8];return!_0x5483b0?(_0x5f6484=_0x5f64['IxKrmA'](_0x5f6484),_0x5f64['CSvVAV'][_0x1a31b8]=_0x5f6484):_0x5f6484=_0x5483b0,_0x5f6484;}__name(createRecorder,'createRecorder');var FakePage=class{constructor(_0x5dfd92,_0xc540e5,_0x5bd9b6,_0x4ef2d2){const _0x84c8b=_0x296b36;this[_0x84c8b(0x1be)]=_0x5dfd92,this['behavior']=_0xc540e5,this[_0x84c8b(0x178)]=_0x5bd9b6,this[_0x84c8b(0x1e4)]=_0x4ef2d2;}[_0x296b36(0x1be)];[_0x296b36(0x1da)];[_0x296b36(0x178)];static{__name(this,'FakePage');}['currentUrl'];[_0x296b36(0x180)];['record'](_0x28f14c,_0x11c42f){const _0x25a7f0={_0x4b65d1:0x1be,_0x3f3045:0x1ae,_0x396219:0x178},_0x1425fe=_0x296b36;this[_0x1425fe(_0x25a7f0._0x4b65d1)][_0x1425fe(_0x25a7f0._0x3f3045)]({'scope':this[_0x1425fe(_0x25a7f0._0x396219)],'method':_0x28f14c,'args':_0x11c42f});}[_0x296b36(0x175)](){const _0x118dbb={_0x4871da:0x18c,_0x4de42c:0x18c},_0x5a0851=_0x296b36;if(this['behavior'][_0x5a0851(_0x118dbb._0x4871da)]){const _0xea31f3=this[_0x5a0851(0x1da)][_0x5a0851(0x18c)];this[_0x5a0851(0x1da)][_0x5a0851(_0x118dbb._0x4de42c)]=void 0x0;throw _0xea31f3;}}[_0x296b36(0x199)](){const _0x362662={_0x3da611:0x1e4},_0x7870ae=_0x296b36;return this[_0x7870ae(_0x362662._0x3da611)];}async[_0x296b36(0x1c2)](){const _0x2837f5={_0x3071dc:0x1b1},_0x18b9a7=_0x296b36;return this[_0x18b9a7(0x17c)](_0x18b9a7(0x1c2),[]),_0x18b9a7(_0x2837f5._0x3071dc);}async[_0x296b36(0x1a4)](_0x568efa,_0x2342f0){const _0xfde242={_0x489ee8:0x17c,_0x298864:0x175},_0x3b618e=_0x296b36;this[_0x3b618e(_0xfde242._0x489ee8)]('click',[_0x568efa,_0x2342f0]),this[_0x3b618e(_0xfde242._0x298864)](),this[_0x3b618e(0x180)]?.();}async[_0x296b36(0x1df)](_0x69c3b,_0x533caa){this['record']('doubleClick',[_0x69c3b,_0x533caa]),this['maybeThrow']();}async[_0x296b36(0x1c5)](_0x504844,_0xd775e7,_0x5ba254){const _0x40a8ea=_0x296b36;this['record'](_0x40a8ea(0x1c5),[_0x504844,_0xd775e7,_0x5ba254]),this[_0x40a8ea(0x175)]();}async['press'](_0x2c3ed1,_0x30ed20,_0x5353bd){const _0x111a76=_0x296b36;this[_0x111a76(0x17c)](_0x111a76(0x1a5),[_0x2c3ed1,_0x30ed20,_0x5353bd]),this['maybeThrow']();}async['check'](_0x525b87,_0x4d7eb6){const _0x3ae924=_0x296b36;this['record']('check',[_0x525b87,_0x4d7eb6]),this[_0x3ae924(0x175)]();}async[_0x296b36(0x187)](_0x20014c,_0x9e8840){const _0x536ac1=_0x296b36;this[_0x536ac1(0x17c)](_0x536ac1(0x187),[_0x20014c,_0x9e8840]),this['maybeThrow']();}async['selectOption'](_0x51dc2e,_0x24c528,_0x4659cd){const _0x3f0818={_0x2e65fd:0x196},_0x55cfcc=_0x296b36;this[_0x55cfcc(0x17c)](_0x55cfcc(_0x3f0818._0x2e65fd),[_0x51dc2e,_0x24c528,_0x4659cd]),this[_0x55cfcc(0x175)]();}async[_0x296b36(0x1ac)](_0x2d604c,_0x3562e5){const _0x4aaaf9={_0x520562:0x17c,_0x52e862:0x1ac},_0x5ad5e7=_0x296b36;this[_0x5ad5e7(_0x4aaaf9._0x520562)](_0x5ad5e7(_0x4aaaf9._0x52e862),[_0x2d604c,_0x3562e5]),this['maybeThrow']();}async[_0x296b36(0x1e2)](_0x46b31b){const _0x29ae1f={_0x588760:0x1e2,_0x4da923:0x175},_0x2d1c5f=_0x296b36;this['record'](_0x2d1c5f(_0x29ae1f._0x588760),[_0x46b31b]),this[_0x2d1c5f(_0x29ae1f._0x4da923)]();}async[_0x296b36(0x177)](_0x1c08e1,_0xdd2ed2,_0x34aaaa){const _0x472dc8=_0x296b36;this['record']('dragAndDrop',[_0x1c08e1,_0xdd2ed2,_0x34aaaa]),this[_0x472dc8(0x175)]();}async[_0x296b36(0x1d2)](_0x1e6e05,_0x20e4ea){const _0x4695f6=_0x296b36;this[_0x4695f6(0x17c)](_0x4695f6(0x1d2),[_0x1e6e05,_0x20e4ea]),this[_0x4695f6(0x175)]();}async[_0x296b36(0x18b)](_0x3a5090,_0xb228eb){const _0x2156f0={_0x3be53b:0x17c},_0x464b95=_0x296b36;this[_0x464b95(_0x2156f0._0x3be53b)]('clipboardPaste',[_0x3a5090,_0xb228eb]),this['maybeThrow']();}async[_0x296b36(0x1cf)](_0x520a71){const _0x3f75e4={_0x20a857:0x1cf},_0x61c2ee=_0x296b36;return this[_0x61c2ee(0x17c)](_0x61c2ee(_0x3f75e4._0x20a857),[_0x520a71]),this[_0x61c2ee(0x1da)]['countByDefault']??0x1;}async[_0x296b36(0x198)](_0x4f1e0e){const _0x209b1f={_0x546a1e:0x17c},_0x1e1630=_0x296b36;return this[_0x1e1630(_0x209b1f._0x546a1e)](_0x1e1630(0x198),[_0x4f1e0e]),this[_0x1e1630(0x1da)][_0x1e1630(0x19f)]??'';}async[_0x296b36(0x189)](_0x5f0556){const _0x83daa7={_0x220816:0x189},_0x48837e=_0x296b36;return this[_0x48837e(0x17c)](_0x48837e(_0x83daa7._0x220816),[_0x5f0556]),this[_0x48837e(0x1da)]['inputValueByDefault']??'';}async[_0x296b36(0x1d5)](_0x170409){const _0x342ecd={_0x12dee5:0x1a8},_0x686a1c=_0x296b36;return this[_0x686a1c(0x17c)]('isVisible',[_0x170409]),this['behavior'][_0x686a1c(_0x342ecd._0x12dee5)]??!![];}async[_0x296b36(0x1ad)](_0x46c2ff,_0x419d99){const _0x53e140={_0x8b585d:0x1ad},_0x4d8d6a=_0x296b36;return this['record'](_0x4d8d6a(_0x53e140._0x8b585d),[_0x46c2ff,_0x419d99]),this['behavior'][_0x4d8d6a(0x1b7)]?.[_0x419d99]??null;}async['waitFor'](_0x4d57c3,_0x465eba){const _0x42565a=_0x296b36;this[_0x42565a(0x17c)](_0x42565a(0x1d3),[_0x4d57c3,_0x465eba]);}async[_0x296b36(0x1a0)](_0x17a56e,_0x1fdb1d){const _0x40042a={_0x1d2d0b:0x1a0},_0x505a9d=_0x296b36;this[_0x505a9d(0x17c)](_0x505a9d(_0x40042a._0x1d2d0b),[_0x17a56e,_0x1fdb1d]);}async[_0x296b36(0x1bd)](_0x417253,_0x4895d6){const _0x36f643=_0x296b36;this[_0x36f643(0x17c)](_0x36f643(0x1bd),[_0x417253,_0x4895d6]);}async[_0x296b36(0x194)](_0x265f32){const _0x166b94={_0x339d8c:0x17c,_0x5d92a9:0x194},_0x4c5e34=_0x296b36;this[_0x4c5e34(_0x166b94._0x339d8c)](_0x4c5e34(_0x166b94._0x5d92a9),[_0x265f32]);}async[_0x296b36(0x1ef)](_0x234efd,_0x2e2032){const _0x17bb70={_0xf3f622:0x1e4},_0x249e99=_0x296b36;this[_0x249e99(0x17c)]('goto',[_0x234efd,_0x2e2032]),this[_0x249e99(_0x17bb70._0xf3f622)]=_0x234efd;}async[_0x296b36(0x1d0)](_0x261dc2){const _0x4b4af0={_0x261f4a:0x1d0},_0xd75d65=_0x296b36;this[_0xd75d65(0x17c)](_0xd75d65(_0x4b4af0._0x261f4a),[_0x261dc2]);}async['goBack'](_0x13c9e1){const _0x227cf={_0x4aef97:0x17c,_0x40422d:0x19c},_0xc91637=_0x296b36;this[_0xc91637(_0x227cf._0x4aef97)](_0xc91637(_0x227cf._0x40422d),[_0x13c9e1]);}async[_0x296b36(0x18d)](_0x4b99be){const _0x5716d6=_0x296b36;this[_0x5716d6(0x17c)](_0x5716d6(0x18d),[_0x4b99be]);}async[_0x296b36(0x1de)](_0x3601ef){const _0x5c6dcc={_0x67dbd3:0x1de},_0x50f6a3=_0x296b36;return this['record'](_0x50f6a3(_0x5c6dcc._0x67dbd3),[_0x3601ef]),void 0x0;}async[_0x296b36(0x183)](_0x1432c4,_0x933df1){const _0x64e510={_0x137d10:0x17c},_0x1507f3=_0x296b36;return this[_0x1507f3(_0x64e510._0x137d10)](_0x1507f3(0x183),[_0x1432c4,_0x933df1]),void 0x0;}async[_0x296b36(0x1c4)](_0x44dfed){const _0x479838={_0x4c1a42:0x17c},_0x361d00=_0x296b36;this[_0x361d00(_0x479838._0x4c1a42)]('inspectElement',[_0x44dfed]);if(_0x44dfed['steps'][_0x361d00(0x1b2)]!==0x1||_0x44dfed['steps'][0x0]['kind']!==_0x361d00(0x1ee))return null;const _0xc99efe=_0x44dfed[_0x361d00(0x18f)][0x0]['ref'],_0x12d4ce=this[_0x361d00(0x1da)][_0x361d00(0x17d)]?.[_0xc99efe];return _0x12d4ce??null;}async[_0x296b36(0x19a)](_0x250a65){const _0xa5b0d7={_0x2e9505:0x19a,_0x5f1dea:0x1ce},_0x2a4e66=_0x296b36;return this['record'](_0x2a4e66(_0xa5b0d7._0x2e9505),[_0x250a65]),Buffer[_0x2a4e66(0x176)](_0x2a4e66(_0xa5b0d7._0x5f1dea));}async[_0x296b36(0x185)](_0x2b19ef){const _0x13a361={_0xa02dc9:0x18e,_0x100be7:0x1ee,_0x25a25c:0x19d,_0x335ec6:0x1a1,_0x11d2ba:0x1cd},_0x51417a=_0x296b36;this[_0x51417a(0x17c)](_0x51417a(0x185),[_0x2b19ef]);if(_0x2b19ef[_0x51417a(0x18f)][_0x51417a(0x1b2)]===0x1&&_0x2b19ef['steps'][0x0][_0x51417a(_0x13a361._0xa02dc9)]==='ref'){const _0x1faaa5=_0x2b19ef['steps'][0x0][_0x51417a(_0x13a361._0x100be7)];return this[_0x51417a(0x1da)][_0x51417a(_0x13a361._0x25a25c)]?.[_0x1faaa5]??_0x51417a(_0x13a361._0x335ec6)+_0x1faaa5+_0x51417a(0x190);}return _0x51417a(_0x13a361._0x11d2ba);}},FakeContext=class{constructor(_0x596efe,_0x460b56,_0xb2bcaa){const _0x33e95b={_0xe3b909:0x1be,_0x2b8a29:0x1dd,_0x1d36b3:0x180,_0x3158e6:0x193},_0x5a2aba=_0x296b36;this[_0x5a2aba(_0x33e95b._0xe3b909)]=_0x596efe,this[_0x5a2aba(0x1da)]=_0x460b56,this[_0x5a2aba(0x178)]=_0xb2bcaa;const _0x5bbc2b=new FakePage(_0x596efe,_0x460b56,_0xb2bcaa+_0x5a2aba(_0x33e95b._0x2b8a29),_0x460b56[_0x5a2aba(0x1e7)]??_0x5a2aba(0x192));_0x460b56['popupOnClick']&&(_0x5bbc2b[_0x5a2aba(_0x33e95b._0x1d36b3)]=()=>{const _0x2dba7b=_0x5a2aba;this['emitFakePopup'](_0x460b56[_0x2dba7b(0x1db)]);}),this[_0x5a2aba(0x195)]=[_0x5bbc2b],this['localStorageState']={..._0x460b56[_0x5a2aba(0x17b)]??{}},this[_0x5a2aba(_0x33e95b._0x3158e6)]={..._0x460b56[_0x5a2aba(0x1c0)]??{}};}[_0x296b36(0x1be)];[_0x296b36(0x1da)];[_0x296b36(0x178)];static{__name(this,_0x296b36(0x1d8));}[_0x296b36(0x195)];[_0x296b36(0x1bb)]=0x0;[_0x296b36(0x1a6)]=[];['localStorageState'];[_0x296b36(0x193)];[_0x296b36(0x1af)]=new Set();[_0x296b36(0x17c)](_0x121ef5,_0x4f9530){const _0x38ae7f={_0x47f092:0x1be,_0x504274:0x1ae,_0x43990d:0x178},_0x3b036a=_0x296b36;this[_0x3b036a(_0x38ae7f._0x47f092)][_0x3b036a(_0x38ae7f._0x504274)]({'scope':this[_0x3b036a(_0x38ae7f._0x43990d)],'method':_0x121ef5,'args':_0x4f9530});}[_0x296b36(0x1b9)](){const _0x31b768={_0x45bf90:0x195},_0x854c43=_0x296b36;return this[_0x854c43(_0x31b768._0x45bf90)];}[_0x296b36(0x1b5)](){const _0x3a144c={_0x48ad9c:0x1bb},_0xaba19a=_0x296b36,_0x3defbe=this[_0xaba19a(0x195)][this[_0xaba19a(_0x3a144c._0x48ad9c)]];if(!_0x3defbe)throw new DriverError(_0xaba19a(0x1e9),{'activeIdx':this['activeIdx']});return _0x3defbe;}[_0x296b36(0x1d1)](){const _0x5cb641={_0x11725c:0x1da},_0x5af691=_0x296b36;return this[_0x5af691(_0x5cb641._0x11725c)]['consoleEntries']??[];}[_0x296b36(0x1d6)](){const _0xdd7713={_0x3980a0:0x1d6},_0x5dbd2a=_0x296b36;return this[_0x5dbd2a(0x1da)][_0x5dbd2a(_0xdd7713._0x3980a0)]??[];}async[_0x296b36(0x1eb)](_0x1174e0){const _0x589e17={_0x5dfc8d:0x1eb,_0x592cb2:0x195,_0x531c40:0x1b2},_0x1d2645=_0x296b36;this[_0x1d2645(0x17c)](_0x1d2645(_0x589e17._0x5dfc8d),[_0x1174e0]);if(_0x1174e0<0x0||_0x1174e0>=this[_0x1d2645(_0x589e17._0x592cb2)][_0x1d2645(0x1b2)])throw new DriverError(_0x1d2645(0x1c6),{'index':_0x1174e0,'available':this[_0x1d2645(_0x589e17._0x592cb2)][_0x1d2645(0x1b2)]});this[_0x1d2645(0x1bb)]=_0x1174e0,this[_0x1d2645(0x1a6)][_0x1d2645(_0x589e17._0x531c40)]=0x0;}[_0x296b36(0x19b)](_0x17b6e6){const _0x54a300={_0xb71e22:0x1af,_0x5c1a39:0x1e1},_0x64d341={_0x526a32:0x188},_0x2038d9=_0x296b36;return this[_0x2038d9(_0x54a300._0xb71e22)][_0x2038d9(_0x54a300._0x5c1a39)](_0x17b6e6),()=>{const _0xf5414f=_0x2038d9;this['newPageListeners'][_0xf5414f(_0x64d341._0x526a32)](_0x17b6e6);};}['emitFakePopup'](_0x57d7aa){const _0x2d2b35={_0x5830dd:0x1b2,_0x46ad67:0x195,_0x39d5f5:0x195},_0x33b49a=_0x296b36,_0x342457=this['scope']+_0x33b49a(0x1b3)+this['pageList'][_0x33b49a(_0x2d2b35._0x5830dd)],_0x55984f=new FakePage(this['recorder'],this[_0x33b49a(0x1da)],_0x342457,_0x57d7aa);this[_0x33b49a(_0x2d2b35._0x46ad67)]['push'](_0x55984f);const _0x22f01c=this[_0x33b49a(_0x2d2b35._0x39d5f5)]['length']-0x1;for(const _0x55433c of this['newPageListeners']){try{_0x55433c({'index':_0x22f01c,'url':_0x57d7aa});}catch{}}return _0x22f01c;}async['enterFrame'](_0x540d0d){const _0x540a7e={_0x2d741a:0x18f},_0x236a28=_0x296b36;this[_0x236a28(0x17c)]('enterFrame',[_0x540d0d]);if(!_0x540d0d[_0x236a28(_0x540a7e._0x2d741a)][_0x236a28(0x1b2)])throw new LocatorError(_0x236a28(0x1ea),{'locator':_0x540d0d});this[_0x236a28(0x1a6)]['push'](_0x540d0d);}async[_0x296b36(0x1ed)](){const _0x5028d8={_0x32d1a3:0x1a6,_0x41528f:0x1dc},_0x24b79a=_0x296b36;this['record'](_0x24b79a(0x1ed),[]);if(this[_0x24b79a(0x1a6)][_0x24b79a(0x1b2)]===0x0)throw new DriverError(_0x24b79a(0x181),{});this[_0x24b79a(_0x5028d8._0x32d1a3)][_0x24b79a(_0x5028d8._0x41528f)]();}async[_0x296b36(0x1ec)](_0x46cff9,_0x32fa7f){const _0x1c64f8=_0x296b36;this['record']('setLocalStorage',[_0x46cff9,_0x32fa7f]),this[_0x1c64f8(0x1cc)][_0x46cff9]=_0x32fa7f;}async['getLocalStorage'](_0x29108d){const _0x5cb508={_0x58c12d:0x1d7,_0x230543:0x1cc},_0x44b3ea=_0x296b36;return this['record'](_0x44b3ea(_0x5cb508._0x58c12d),[_0x29108d]),this[_0x44b3ea(_0x5cb508._0x230543)][_0x29108d]??null;}async[_0x296b36(0x182)](_0x4b2941,_0x4705d0,_0x57ad57){const _0x1220a6=_0x296b36;this[_0x1220a6(0x17c)]('setCookie',[_0x4b2941,_0x4705d0,_0x57ad57]),this[_0x1220a6(0x193)][_0x4b2941]=_0x4705d0;}async[_0x296b36(0x17e)](_0x1e30dd){const _0x2258c1=_0x296b36;return this[_0x2258c1(0x17c)](_0x2258c1(0x17e),[_0x1e30dd]),this['cookieState'][_0x1e30dd]??null;}async[_0x296b36(0x1d9)](_0x302e58){const _0x1a6c3d={_0x5d5cf7:0x17c},_0x2bdd07=_0x296b36;this[_0x2bdd07(_0x1a6c3d._0x5d5cf7)](_0x2bdd07(0x1d9),[_0x302e58]);}async[_0x296b36(0x1de)](_0x5804b1){const _0x54319f={_0x3cf509:0x17c,_0x16bdac:0x1de},_0x40504b=_0x296b36;return this[_0x40504b(_0x54319f._0x3cf509)](_0x40504b(_0x54319f._0x16bdac),[_0x5804b1]),void 0x0;}async[_0x296b36(0x1c3)](){const _0x16a2a2={_0x1c041e:0x17c},_0x2f6356=_0x296b36;this[_0x2f6356(_0x16a2a2._0x1c041e)](_0x2f6356(0x1c3),[]);}[_0x296b36(0x1c9)](){return this['frameStack']['length'];}},FakeWebDriver=class{constructor(_0x43bffb={}){const _0x4fc00d=_0x296b36;this['behavior']=_0x43bffb,this[_0x4fc00d(0x1be)]=createRecorder();}[_0x296b36(0x1da)];static{__name(this,'FakeWebDriver');}['launched']=![];[_0x296b36(0x1be)];['contexts']=[];async[_0x296b36(0x18a)](_0xf1bb92){const _0x5d92ca={_0x2e0b32:0x1ae,_0x2b6e4e:0x1c8},_0x4378ca=_0x296b36;this[_0x4378ca(0x1be)][_0x4378ca(_0x5d92ca._0x2e0b32)]({'scope':_0x4378ca(_0x5d92ca._0x2b6e4e),'method':_0x4378ca(0x18a),'args':[_0xf1bb92]}),this[_0x4378ca(0x17a)]=!![];}async[_0x296b36(0x17f)](_0x29b9bb){const _0x1797b5={_0x4cea79:0x1be,_0x3fd0c2:0x1c8,_0x60ae0d:0x1ba,_0x46b381:0x1da,_0x235707:0x1ca},_0x490369=_0x296b36;this[_0x490369(_0x1797b5._0x4cea79)][_0x490369(0x1ae)]({'scope':_0x490369(_0x1797b5._0x3fd0c2),'method':'newContext','args':[_0x29b9bb]});if(!this[_0x490369(0x17a)])throw new DriverError(_0x490369(_0x1797b5._0x60ae0d),{});const _0x3beb02=new FakeContext(this[_0x490369(0x1be)],this[_0x490369(_0x1797b5._0x46b381)],_0x490369(_0x1797b5._0x235707)+this[_0x490369(0x1b8)][_0x490369(0x1b2)]);return this[_0x490369(0x1b8)]['push'](_0x3beb02),_0x3beb02;}async[_0x296b36(0x1c3)](){const _0xcf2792={_0xe3ffd4:0x1be,_0xfaa763:0x1ae},_0x470f06=_0x296b36;this[_0x470f06(_0xcf2792._0xe3ffd4)][_0x470f06(_0xcf2792._0xfaa763)]({'scope':'driver','method':_0x470f06(0x1c3),'args':[]}),this[_0x470f06(0x17a)]=![];}[_0x296b36(0x186)](){return void 0x0;}async['connectShared'](){const _0x5cc900={_0x7e6102:0x191},_0x153802=_0x296b36;throw new DriverError(_0x153802(_0x5cc900._0x7e6102),{});}[_0x296b36(0x1e8)](){throw new DriverError('attachExisting\x20not\x20supported\x20by\x20FakeWebDriver',{});}[_0x296b36(0x1e5)](){const _0x2b8c09=_0x296b36;return this[_0x2b8c09(0x1be)]['calls']();}[_0x296b36(0x1bc)](_0x93af25){const _0x14e683=_0x296b36;return this['recorder'][_0x14e683(0x1e5)]()[_0x14e683(0x1a9)](_0x52133d=>_0x52133d[_0x14e683(0x1d4)]===_0x93af25);}};export{FakeWebDriver};
@@ -1,9 +1,9 @@
1
- import { h as LocatorValue, W as WebDriver, D as DriverContext, d as DriverPage } from '../interfaces-iTfjd1zT.js';
2
- export { i as LocatorStep, j as appendStep, k as describeLocator, l as isLocatorValue, r as rootedAt } from '../interfaces-iTfjd1zT.js';
1
+ import { i as LocatorValue, W as WebDriver, D as DriverContext, d as DriverPage } from '../interfaces-dbZG10RS.js';
2
+ export { j as LocatorStep, k as appendStep, l as describeLocator, m as isLocatorValue, r as rootedAt } from '../interfaces-dbZG10RS.js';
3
3
  import { Matcher, RegexLiteral } from '@unotest/protocol';
4
4
  import { Statement, BlockStatement } from '@unotest/dsl';
5
5
  import { SandboxConfig } from '../config/schema.js';
6
- export { L as LintDiagnostic, a as LintOptions, b as LintSeverity, l as lintAst } from '../linter-DzAzJpab.js';
6
+ export { L as LintDiagnostic, b as LintOptions, a as LintSeverity, l as lintAst } from '../linter-CM2CpIyW.js';
7
7
  import 'zod';
8
8
 
9
9
  /** Test/codegen convenience: build a RegexLiteral inline. The DSL
@@ -175,6 +175,10 @@ interface TestRuntimeDeps {
175
175
  /** External variable store (`unotest/.env` + `.secrets`). Resolves bare
176
176
  * UPPER_SNAKE identifiers. Defaults to an empty store when omitted. */
177
177
  readonly variables?: VariableStore;
178
+ /** Resolved base URL (`config.baseUrl`, auto-wired from APP_BASE_URL). Used
179
+ * to fail a relative `goto('/path')` with a clear message when no base is
180
+ * configured, instead of an opaque Playwright "invalid URL". */
181
+ readonly baseUrl?: string;
178
182
  /** Injectable clock — defaults to Date.now. Tests pass a fake. */
179
183
  readonly nowFn?: () => number;
180
184
  }
@@ -184,6 +188,7 @@ declare class TestRuntime {
184
188
  readonly context: DriverContext;
185
189
  readonly logger: Logger;
186
190
  readonly sandbox: SandboxConfig;
191
+ readonly baseUrl?: string;
187
192
  private readonly variables;
188
193
  private readonly nowFn;
189
194
  private readonly scope;
@@ -331,6 +336,13 @@ declare class TestRuntimeManager {
331
336
  resume(id: string): Promise<ExecutionEvent | RunResult>;
332
337
  abort(id: string): Promise<void>;
333
338
  inspect(id: string): RuntimeSnapshot;
339
+ /** The live active page of a runtime — used by the locator picker to
340
+ * attach its overlay to the page held open during a debug pause.
341
+ * Returns null when the runtime is gone or has no page yet. */
342
+ currentPage(id: string): DriverPage | null;
343
+ /** The runtime's driver context (for capture artifacts — console/network).
344
+ * Null when the runtime isn't registered. */
345
+ currentContext(id: string): DriverContext | null;
334
346
  list(): RuntimeSummary[];
335
347
  private armTtl;
336
348
  private clearTtl;