@unotest/web 0.18.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +77 -0
- package/bin/unotest-web.js +18 -0
- package/dist/config/schema.js +1 -1
- package/dist/driver/index.d.ts +2 -2
- package/dist/driver/index.js +1 -1
- package/dist/dsl/index.d.ts +9 -5
- package/dist/dsl/index.js +1 -1
- package/dist/dsl/web-dsl-language-service.js +1 -1
- package/dist/inspection/page-inject.d.ts +1 -1
- package/dist/{interfaces-elRn0llQ.d.ts → interfaces-B-FxA_qn.d.ts} +7 -1
- package/dist/mcp/server.js +1 -1
- package/dist/runner/cli.js +1 -1
- package/dist/runner/init/chrome-probe.js +1 -1
- package/dist/runner/init.js +1 -1
- package/dist/runner/install-chromium.js +1 -1
- package/dist/runner/prepare-fix.js +1 -1
- package/dist/runner/scaffold-workspace.js +1 -1
- package/dist/runner/serve-fixture.js +1 -1
- package/dist/runner/web-runner-adapter.js +1 -1
- package/guides/dsl-reference.md +2 -1
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,82 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.19.0] - 2026-08-23
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- The CLI passes termination on to the process it runs. `unotest-web` is a
|
|
8
|
+
dispatcher that spawns the real entry (`viewer`, a scenario run, the MCP
|
|
9
|
+
server) and waits; killing the dispatcher used to leave that process alive,
|
|
10
|
+
reparented to init and still holding its port. Ctrl-C hid it — a terminal
|
|
11
|
+
signals the whole foreground group — so it only bit tooling that kills the
|
|
12
|
+
process it started: each such call leaked one server. SIGTERM / SIGINT /
|
|
13
|
+
SIGHUP now reach the child, and the exit code still comes from it.
|
|
14
|
+
|
|
15
|
+
### Minor Changes
|
|
16
|
+
|
|
17
|
+
- dfb3991: Per-collection parallelism via a `workers:` field in the collection YAML.
|
|
18
|
+
|
|
19
|
+
- `workers: N` (integer ≥ 1) in `unotest/e2e/_collections/*.yaml` sets how
|
|
20
|
+
many scenarios of that collection run concurrently; omitted = serial.
|
|
21
|
+
- Precedence: CLI `--workers=N` flag > manifest `workers:` > 1.
|
|
22
|
+
- Viewer: the collection header shows an editable `workers` value; the
|
|
23
|
+
setting is stored in the YAML, so CLI and CI runs pick it up too.
|
|
24
|
+
- `CollectionMeta` (protocol) gains a `workers: number | null` field.
|
|
25
|
+
|
|
26
|
+
- Run history scales: runs are filed under daily shards and the viewer stops
|
|
27
|
+
polling history it is not showing.
|
|
28
|
+
|
|
29
|
+
- New on-disk layout `unotest/.runs/<YYYY>/<MM>/<DD>/<runId>/` (UTC date the
|
|
30
|
+
run started). The shard is a pure function of the `runId`, which already
|
|
31
|
+
carries the timestamp — a direct link to a run keeps working even with the
|
|
32
|
+
index deleted. Existing flat `.runs/<runId>/` history is migrated
|
|
33
|
+
automatically (see the `runs migrate` entry).
|
|
34
|
+
- The viewer's watcher polls only LIVE runs; finished history never touches
|
|
35
|
+
it. Discovery watches the current day's directory with native `fs.watch`
|
|
36
|
+
and re-attaches at UTC midnight.
|
|
37
|
+
- A JSONL index per day and per scenario backs the history list. It is fully
|
|
38
|
+
rebuildable — rebuilt on start, non-blocking — so a corrupted or missing
|
|
39
|
+
index degrades the listing, never the runs themselves.
|
|
40
|
+
- `@unotest/protocol`: new `run-shard` and `run-index` modules (shard path
|
|
41
|
+
derivation, index record shapes) exported from the root entry.
|
|
42
|
+
|
|
43
|
+
- Step screenshots are stored once and shared, and old runs expire on their
|
|
44
|
+
own — a long history stops growing without bound.
|
|
45
|
+
|
|
46
|
+
- Identical frames are content-addressed in `unotest/.runs/_blobs/` and
|
|
47
|
+
hardlinked into each run. `du` and ordinary copies see whole files;
|
|
48
|
+
`cp -a` / `rsync -H` preserve the sharing. On one dogfood suite: 45
|
|
49
|
+
frames, 2.04 MB by apparent size, 0.96 MB on disk.
|
|
50
|
+
- Reference counting is the filesystem's (`st_nlink`), so nothing to keep in
|
|
51
|
+
sync. Blob generations keep the dedup honest past ext4's 65 000-link
|
|
52
|
+
ceiling, and a fresh blob is untouchable for an hour so the window between
|
|
53
|
+
writing it and linking it is never mistaken for garbage.
|
|
54
|
+
- Retention: `UNOTEST_RUNS_RETENTION_DAYS` (whole days, default 180) sweeps
|
|
55
|
+
runs older than the window at the end of a collection run. It never
|
|
56
|
+
changes the exit code — a failed sweep is reported, not fatal.
|
|
57
|
+
- `@unotest/protocol`: new `run-blobs` module exported from the root entry.
|
|
58
|
+
|
|
59
|
+
- Upgrading moves existing run history to the new layout by itself, and
|
|
60
|
+
Playwright moves to 1.62.
|
|
61
|
+
|
|
62
|
+
- The flat `.runs/<runId>/` history is migrated on the first run of the new
|
|
63
|
+
version. Default is to remove old runs (nobody asked to keep them);
|
|
64
|
+
`UNOTEST_RUNS_LEGACY=keep` re-files them into date shards instead. The
|
|
65
|
+
completion marker is written last, so an interrupted or failed move is
|
|
66
|
+
retried on the next start rather than silently marked done.
|
|
67
|
+
- New command `unotest-web runs migrate [--dry-run]` — the same migration,
|
|
68
|
+
runnable FIRST, with a report-only mode. A migration nobody can look at
|
|
69
|
+
before it happens is one that runs unannounced on someone else's machine.
|
|
70
|
+
- `playwright` moves to `^1.62.0` in `@unotest/web` and `@unotest/viewer`.
|
|
71
|
+
Run `npx playwright install` once after upgrading if your browser cache
|
|
72
|
+
predates it.
|
|
73
|
+
- Frame capture is now format-parameterised internally, still PNG. WebP was
|
|
74
|
+
measured and rejected: Chromium's lossless `type: "webp"` is pixel-exact
|
|
75
|
+
but 1.5× LARGER than PNG on real frames (3.17 MB vs 2.04 MB on one suite).
|
|
76
|
+
- Fix: the viewer served step screenshots as 403 after the layout change —
|
|
77
|
+
its asset allow-list still expected the flat layout. The route now has
|
|
78
|
+
tests.
|
|
79
|
+
|
|
3
80
|
## [0.18.0] - 2026-08-23
|
|
4
81
|
|
|
5
82
|
### Minor Changes
|
package/bin/unotest-web.js
CHANGED
|
@@ -158,6 +158,24 @@ if (existsSync(distPath)) {
|
|
|
158
158
|
}
|
|
159
159
|
|
|
160
160
|
const child = spawn(cmd, cmdArgs, { stdio: "inherit" });
|
|
161
|
+
|
|
162
|
+
// Pass termination on to the child. This dispatcher is a thin wrapper: kill
|
|
163
|
+
// IT and the real process — the viewer server, a running scenario — has to
|
|
164
|
+
// go too, or it is orphaned to init and keeps its port for the rest of the
|
|
165
|
+
// day. Ctrl-C in a terminal hid the bug (the signal goes to the whole
|
|
166
|
+
// foreground group, so both died); every programmatic
|
|
167
|
+
// `child.kill("SIGTERM")` leaked one viewer per call, which is how a
|
|
168
|
+
// machine ended up with thirty of them and every release run failed its own
|
|
169
|
+
// viewer precondition.
|
|
170
|
+
//
|
|
171
|
+
// The child's own `exit` handler below still decides this process's exit
|
|
172
|
+
// code — we only forward and wait.
|
|
173
|
+
for (const sig of ["SIGTERM", "SIGINT", "SIGHUP"]) {
|
|
174
|
+
process.on(sig, () => {
|
|
175
|
+
if (child.exitCode === null && child.signalCode === null) child.kill(sig);
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
|
|
161
179
|
// Surface spawn failures explicitly — empty stderr on a silent exit makes
|
|
162
180
|
// debugging miserable for consumers. Reviewers hit this in a prior round.
|
|
163
181
|
child.on("error", (err) => {
|
package/dist/config/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
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};
|
package/dist/driver/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { E as ElementHint, N as NetworkEntry, W as WebDriver, L as LaunchOptions, C as ContextOptions, D as DriverContext } from '../interfaces-
|
|
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-
|
|
1
|
+
import { E as ElementHint, N as NetworkEntry, W as WebDriver, L as LaunchOptions, C as ContextOptions, D as DriverContext } from '../interfaces-B-FxA_qn.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-B-FxA_qn.js';
|
|
3
3
|
import '@unotest/protocol';
|
|
4
4
|
import '../config/schema.js';
|
|
5
5
|
import 'zod';
|
package/dist/driver/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x5ef1c7=_0x1ac4;(function(_0x1f6861,_0xad6a1f){const _0x2ba2c2={_0x492d7c:0x118,_0x553607:0x126,_0x18137f:0x14c,_0x5a0f45:0xe9,_0x35fee2:0x143},_0x50a7d7=_0x1ac4,_0x2510a7=_0x1f6861();while(!![]){try{const _0x36e2e7=-parseInt(_0x50a7d7(_0x2ba2c2._0x492d7c))/0x1*(-parseInt(_0x50a7d7(0xff))/0x2)+-parseInt(_0x50a7d7(_0x2ba2c2._0x553607))/0x3+-parseInt(_0x50a7d7(_0x2ba2c2._0x18137f))/0x4*(-parseInt(_0x50a7d7(0x12b))/0x5)+-parseInt(_0x50a7d7(_0x2ba2c2._0x5a0f45))/0x6+parseInt(_0x50a7d7(_0x2ba2c2._0x35fee2))/0x7+parseInt(_0x50a7d7(0x108))/0x8+parseInt(_0x50a7d7(0x120))/0x9;if(_0x36e2e7===_0xad6a1f)break;else _0x2510a7['push'](_0x2510a7['shift']());}catch(_0x13ec8f){_0x2510a7['push'](_0x2510a7['shift']());}}}(_0x36db,0x9c9fc));var __defProp=Object['defineProperty'],__name=(_0x2d1598,_0x5836a5)=>__defProp(_0x2d1598,_0x5ef1c7(0xe4),{'value':_0x5836a5,'configurable':!![]});function subscribe(_0x4264db,_0x315307){const _0x4ce769={_0x216136:0x12e},_0x309d2f=_0x5ef1c7;return _0x4264db[_0x309d2f(0x117)](_0x315307),()=>{const _0x3cafe2=_0x309d2f;_0x4264db[_0x3cafe2(_0x4ce769._0x216136)](_0x315307);};}__name(subscribe,'subscribe');import{UnotestError}from'@unotest/core';var DriverError=class extends UnotestError{static{__name(this,'DriverError');}},LocatorError=class extends UnotestError{static{__name(this,'LocatorError');}};function _0x1ac4(_0x1d7119,_0x52c572){_0x1d7119=_0x1d7119-0xdd;const _0x36dbdf=_0x36db();let _0x1ac44c=_0x36dbdf[_0x1d7119];if(_0x1ac4['PyNIkS']===undefined){var _0x4168aa=function(_0x41d436){const _0x496872='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d1598='',_0x5836a5='';for(let _0x4264db=0x0,_0x315307,_0x1e7c1a,_0x4e2e01=0x0;_0x1e7c1a=_0x41d436['charAt'](_0x4e2e01++);~_0x1e7c1a&&(_0x315307=_0x4264db%0x4?_0x315307*0x40+_0x1e7c1a:_0x1e7c1a,_0x4264db++%0x4)?_0x2d1598+=String['fromCharCode'](0xff&_0x315307>>(-0x2*_0x4264db&0x6)):0x0){_0x1e7c1a=_0x496872['indexOf'](_0x1e7c1a);}for(let _0x29d321=0x0,_0x43bba1=_0x2d1598['length'];_0x29d321<_0x43bba1;_0x29d321++){_0x5836a5+='%'+('00'+_0x2d1598['charCodeAt'](_0x29d321)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5836a5);};_0x1ac4['hTBAeO']=_0x4168aa,_0x1ac4['MggviT']={},_0x1ac4['PyNIkS']=!![];}const _0x318aac=_0x36dbdf[0x0],_0x13316a=_0x1d7119+_0x318aac,_0x3b8c52=_0x1ac4['MggviT'][_0x13316a];return!_0x3b8c52?(_0x1ac44c=_0x1ac4['hTBAeO'](_0x1ac44c),_0x1ac4['MggviT'][_0x13316a]=_0x1ac44c):_0x1ac44c=_0x3b8c52,_0x1ac44c;}function createRecorder(){const _0x3eb109=_0x5ef1c7,_0x1e7c1a=[];let _0x4e2e01=0x0;return{'push':__name(_0x29d321=>_0x1e7c1a['push']({..._0x29d321,'seq':_0x4e2e01++}),_0x3eb109(0x14b)),'calls':__name(()=>_0x1e7c1a,'calls')};}__name(createRecorder,_0x5ef1c7(0x124));function _0x36db(){const _0x135e97=['pgrPDIbKyxrHlxvUB3rLC3qTCMvMpsi','CgfNzsbPBMrLEcbVDxqGB2yGCMfUz2u','ntiXnJuYoef2wLbdEG','rMfRzunVBNrLEhq','zxHPDezYyw1L','AxneAxnHyMXLzej5rgvMyxvSDa','Aw5PDgLHBfvYBa','yMvOyxzPB3i','ywn0AxzLugfNzq','Cg9W','D2fPDezVCG','BMv3q29UDgv4DcbJywXSzwqGyMvMB3jLigXHDw5JAcGP','Bwf5yMvuAhjVDW','BgvUz3rO','BMv0D29YA0vUDhjPzxm','lNbHz2uW','zg91yMXLq2XPy2S','ywrK','ndmXotq4sgzRy3Dg','y29UBMvJDfnOyxjLza','C2nVCgu','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','y291BNq','DxbSB2fKrMLSzq','C2nYzwvUC2HVDa','Bgf1BMnO','mtaYmZC1mhHQzhDjrG','y2XVC2u','Cg9WDxbpBKnSAwnR','zNjHBwvtDgfJAW','y3jLyxrLuMvJB3jKzxi','Ag92zxi','mZGYode0nfvSr1jMDW','yxr0ywnOrxHPC3rPBMC','z2v0tg9JywXtDg9YywDL','zMfRzs1WBMC','BM8Gywn0AxzLihbHz2uGAw4Gy29UDgv4Da','nwfftu5dDW','zxzHBhvHDgvpBKXVy2f0B3i','DgL0Bgu','zgvSzxrL','Dgv4DenVBNrLBNq','Dw5JAgvJAW','zMfRzsb0AxrSzq','Aw5ZCgvJDevSzw1LBNq','yxr0CMLIDxrLC0j5rgvMyxvSDa','B25ozxDqywDL','iJ48l2rPDJ4','y29VA2LLCW','D2fPDezVCLrLEhq','y2HLy2S','y2XVC2vgywTLugfNzq','zhjHz0fUzerYB3a','y29VA2LLu3rHDgu','CMvJB3jKzxi','zMLSDgvY','BMv3q29UDgv4Da','zw1PDezHA2vqB3b1Ca','y29UC29SzuvUDhjPzxm','Aw5WDxrwywX1zuj5rgvMyxvSDa','Bgf1BMnOzwq','odq5odu5nvLsu05TEG','zNjVBq','ChjLC3m','zMLSBa','z29gB3j3yxjK','C2v0tg9JywXtDg9YywDL','y2HLy2TLzfn0yxrL','yxr0ywnOrxHPC3rPBMCGBM90ihn1ChbVCNrLzcbIEsbgywTLv2vIrhjPDMvY','ChvZAa','mJKWntiYohPjyuHhDG','C2v0q29VA2LL','C2v0qwn0AxzLugfNzq','C3bSAwnL','BMv3ugfNzuXPC3rLBMvYCW','zwXLBwvUDeHPBNrcEvjLzG','CMvM','z2v0qxr0CMLIDxrL','B3v0zxjive1m','CMvJB3jK','BMfTzq','B25bzNrLCKnSAwnR','AxneAxnHyMXLza','D2fPDezVCLvYBa','zxjYB3jpBK5LEhrby3rPB24','nZmYmZq1nNzTDxbfyq','D2fPDezVCKXVywrtDgf0zq','B3v0zxjiDg1SqNLszwy','Bg9JywXtDg9YywDL','zhjPDMvY','Aw5WDxrwywX1zq','C2nYB2XSsw50B1zPzxC','CMvSB2fK','zxzHBhvHDgu','y29UDgv4Dhm','y2fSBhngB3i','y291BNrcEurLzMf1Bhq','z29cywnR','y3vYCMvUDfvYBa','y29UBMvJDfnOyxjLzcbUB3qGC3vWCg9YDgvKigj5iezHA2vxzwjeCML2zxi','C3rLChm','y2XPCgjVyxjKugfZDgu','Bg9JywXtDg9YywDLu3rHDgu','AxnwAxnPyMXL','zw50zxjgCMfTzq','A2LUza','Dgv4DenVBNrLBNrcEurLzMf1Bhq','mMDnuxrYtq','D2fPDezVCK5HDMLNyxrPB24','C2f2zvn0B3jHz2vtDgf0zq','CgfNzuXPC3q','y2XPy2S','y2fSBhm','ywn0AxzLswr4'];_0x36db=function(){return _0x135e97;};return _0x36db();}var FakePage=class{constructor(_0x43bba1,_0x594be1,_0xe33cc6,_0x2c237a){const _0x33a24e={_0x526321:0x13c,_0x2d6c79:0xf6},_0x323948=_0x5ef1c7;this[_0x323948(_0x33a24e._0x526321)]=_0x43bba1,this[_0x323948(0x10d)]=_0x594be1,this[_0x323948(0x11a)]=_0xe33cc6,this[_0x323948(_0x33a24e._0x2d6c79)]=_0x2c237a;}[_0x5ef1c7(0x13c)];['behavior'];[_0x5ef1c7(0x11a)];static{__name(this,'FakePage');}[_0x5ef1c7(0xf6)];['onAfterClick'];[_0x5ef1c7(0xe3)](_0x46729c,_0x1a9069){const _0x55f825={_0x91d446:0x13c},_0x4477de=_0x5ef1c7;this[_0x4477de(_0x55f825._0x91d446)]['push']({'scope':this[_0x4477de(0x11a)],'method':_0x46729c,'args':_0x1a9069});}['maybeThrow'](){const _0x1c3b08={_0x25302c:0xe8,_0x251154:0xe8},_0x436676=_0x5ef1c7;if(this['behavior'][_0x436676(_0x1c3b08._0x25302c)]){const _0xee8aec=this['behavior'][_0x436676(_0x1c3b08._0x251154)];this[_0x436676(0x10d)]['errorOnNextAction']=void 0x0;throw _0xee8aec;}}['url'](){const _0x485a1f=_0x5ef1c7;return this[_0x485a1f(0xf6)];}async[_0x5ef1c7(0x12d)](){const _0x46f617={_0x15d862:0xe3,_0x55afb6:0x12d,_0x4af636:0x131},_0x34713f=_0x5ef1c7;return this[_0x34713f(_0x46f617._0x15d862)](_0x34713f(_0x46f617._0x55afb6),[]),_0x34713f(_0x46f617._0x4af636);}async[_0x5ef1c7(0x103)](_0x1f2c00,_0x37a49f){const _0x40b7a6={_0x3d1535:0xe5},_0x54129e=_0x5ef1c7;this['record']('click',[_0x1f2c00,_0x37a49f]),this['maybeThrow'](),this[_0x54129e(_0x40b7a6._0x3d1535)]?.();}async[_0x5ef1c7(0x116)](_0x26a52b,_0x226ff1){const _0x4f3892={_0xf2609:0xe3,_0x59cde5:0x116,_0x30c667:0x112},_0x4f9ee9=_0x5ef1c7;this[_0x4f9ee9(_0x4f3892._0xf2609)](_0x4f9ee9(_0x4f3892._0x59cde5),[_0x26a52b,_0x226ff1]),this[_0x4f9ee9(_0x4f3892._0x30c667)]();}async[_0x5ef1c7(0x146)](_0x3e8889,_0x52dc52,_0xcc1de4){const _0x5b4548=_0x5ef1c7;this[_0x5b4548(0xe3)](_0x5b4548(0x146),[_0x3e8889,_0x52dc52,_0xcc1de4]),this['maybeThrow']();}async[_0x5ef1c7(0x145)](_0x1befc7,_0x20a8e3,_0x4d0c9c){const _0x1ad9f9={_0x2c08dd:0xe3},_0x5049c6=_0x5ef1c7;this[_0x5049c6(_0x1ad9f9._0x2c08dd)]('press',[_0x1befc7,_0x20a8e3,_0x4d0c9c]),this[_0x5049c6(0x112)]();}async['check'](_0x310605,_0x519315){const _0x3147da={_0x4b4aa9:0xe3,_0x783ea:0x112},_0x2e3f39=_0x5ef1c7;this[_0x2e3f39(_0x3147da._0x4b4aa9)](_0x2e3f39(0x138),[_0x310605,_0x519315]),this[_0x2e3f39(_0x3147da._0x783ea)]();}async[_0x5ef1c7(0x130)](_0x3ccfc6,_0x101805){const _0x3f1a55={_0x1c87ac:0x130,_0xfb21c9:0x112},_0x245ac0=_0x5ef1c7;this['record'](_0x245ac0(_0x3f1a55._0x1c87ac),[_0x3ccfc6,_0x101805]),this[_0x245ac0(_0x3f1a55._0xfb21c9)]();}async['selectOption'](_0x3d7214,_0x16125b,_0x3f3f5f){const _0x5925cd={_0x17d73c:0xe3},_0x465797=_0x5ef1c7;this[_0x465797(_0x5925cd._0x17d73c)]('selectOption',[_0x3d7214,_0x16125b,_0x3f3f5f]),this[_0x465797(0x112)]();}async['hover'](_0x21e559,_0x345e31){const _0x160ab0={_0x522168:0x112},_0x216bec=_0x5ef1c7;this[_0x216bec(0xe3)](_0x216bec(0x125),[_0x21e559,_0x345e31]),this[_0x216bec(_0x160ab0._0x522168)]();}async[_0x5ef1c7(0xef)](_0x3bf220){const _0x51c3ff=_0x5ef1c7;this[_0x51c3ff(0xe3)](_0x51c3ff(0xef),[_0x3bf220]),this[_0x51c3ff(0x112)]();}async['dragAndDrop'](_0x11bb4b,_0x21469d,_0x41999d){const _0x2befbd=_0x5ef1c7;this[_0x2befbd(0xe3)](_0x2befbd(0x13a),[_0x11bb4b,_0x21469d,_0x41999d]),this['maybeThrow']();}async[_0x5ef1c7(0x11d)](_0x5c2a93,_0x2d42aa){const _0x247504={_0x11cc8e:0x11d},_0x13eec6=_0x5ef1c7;this[_0x13eec6(0xe3)](_0x13eec6(_0x247504._0x11cc8e),[_0x5c2a93,_0x2d42aa]),this[_0x13eec6(0x112)]();}async[_0x5ef1c7(0xf9)](_0x50714d,_0x5d8db9){const _0xc83465={_0x4f3db9:0xe3,_0x7a1009:0xf9,_0x5206b9:0x112},_0x3d9f4f=_0x5ef1c7;this[_0x3d9f4f(_0xc83465._0x4f3db9)](_0x3d9f4f(_0xc83465._0x7a1009),[_0x50714d,_0x5d8db9]),this[_0x3d9f4f(_0xc83465._0x5206b9)]();}async[_0x5ef1c7(0x11c)](_0x20aeae){const _0x1e037b={_0x3bf0cc:0x10d},_0x1cba4f=_0x5ef1c7;return this[_0x1cba4f(0xe3)]('count',[_0x20aeae]),this[_0x1cba4f(_0x1e037b._0x3bf0cc)][_0x1cba4f(0xf4)]??0x1;}async[_0x5ef1c7(0x12f)](_0x487b93){const _0x406a5f={_0xd0a36d:0xe3,_0x55395f:0x12f,_0x135f22:0x10d,_0x3a532b:0xfe},_0x311b0e=_0x5ef1c7;return this[_0x311b0e(_0x406a5f._0xd0a36d)](_0x311b0e(_0x406a5f._0x55395f),[_0x487b93]),this[_0x311b0e(_0x406a5f._0x135f22)][_0x311b0e(_0x406a5f._0x3a532b)]??'';}async['inputValue'](_0xb7c8e2){const _0x5a5e64={_0x485e06:0x141},_0x56ddcf=_0x5ef1c7;return this['record'](_0x56ddcf(0xee),[_0xb7c8e2]),this[_0x56ddcf(0x10d)][_0x56ddcf(_0x5a5e64._0x485e06)]??'';}async['checkedState'](_0x1cf53b){const _0x5bb36e={_0x44348d:0xe3,_0x2d2450:0x10d},_0x16eba3=_0x5ef1c7;return this[_0x16eba3(_0x5bb36e._0x44348d)](_0x16eba3(0x149),[_0x1cf53b]),this[_0x16eba3(_0x5bb36e._0x2d2450)]['checkedStateByDefault']??null;}async[_0x5ef1c7(0xfb)](_0x94843c){const _0x483388={_0x21f7db:0xfb},_0xbf9dbb=_0x5ef1c7;return this['record'](_0xbf9dbb(_0x483388._0x21f7db),[_0x94843c]),this[_0xbf9dbb(0x10d)]['isVisibleByDefault']??!![];}async[_0x5ef1c7(0xe6)](_0x186573){const _0x2ddea0={_0x27149f:0xe3,_0x2830a5:0xe6,_0x52fc5f:0x10d},_0x37bc01=_0x5ef1c7;return this[_0x37bc01(_0x2ddea0._0x27149f)](_0x37bc01(_0x2ddea0._0x2830a5),[_0x186573]),this[_0x37bc01(_0x2ddea0._0x52fc5f)][_0x37bc01(0x10b)]??![];}async[_0x5ef1c7(0xe1)](_0x42779d,_0x5781f9){const _0x197834={_0x3d60af:0xe1,_0x106a8a:0x10d},_0x23ab12=_0x5ef1c7;return this[_0x23ab12(0xe3)](_0x23ab12(_0x197834._0x3d60af),[_0x42779d,_0x5781f9]),this[_0x23ab12(_0x197834._0x106a8a)][_0x23ab12(0x133)]?.[_0x5781f9]??null;}async[_0x5ef1c7(0x110)](_0x32dd18,_0x1bba1e){const _0x2b9900={_0x2ce504:0xe3},_0x22752e=_0x5ef1c7;this[_0x22752e(_0x2b9900._0x2ce504)](_0x22752e(0x110),[_0x32dd18,_0x1bba1e]);}async[_0x5ef1c7(0xe7)](_0x41d282,_0x590dc9){const _0x496235={_0x3a3dd0:0xe3},_0x1e1825=_0x5ef1c7;this[_0x1e1825(_0x496235._0x3a3dd0)]('waitForUrl',[_0x41d282,_0x590dc9]);}async[_0x5ef1c7(0x137)](_0x4da993,_0x2678e2){const _0xb09860=_0x5ef1c7;this[_0xb09860(0xe3)](_0xb09860(0x137),[_0x4da993,_0x2678e2]);}async[_0x5ef1c7(0x100)](_0x49d674){const _0x5827f3={_0x962182:0xe3},_0x32e1d9=_0x5ef1c7;this[_0x32e1d9(_0x5827f3._0x962182)]('waitForNavigation',[_0x49d674]);}async[_0x5ef1c7(0xea)](_0x36598d,_0x298812){this['record']('waitForLoadState',[_0x36598d,_0x298812]);}async['goto'](_0x3cbe60,_0x576c11){const _0x48ade7={_0x18eded:0xe3,_0x418dd6:0xf6},_0xc3a05b=_0x5ef1c7;this[_0xc3a05b(_0x48ade7._0x18eded)]('goto',[_0x3cbe60,_0x576c11]),this[_0xc3a05b(_0x48ade7._0x418dd6)]=_0x3cbe60;}async[_0x5ef1c7(0xf0)](_0x2fff9c){this['record']('reload',[_0x2fff9c]);}async[_0x5ef1c7(0xf5)](_0x23855c){const _0x1a06c3={_0x5cb215:0xf5},_0x3289c1=_0x5ef1c7;this[_0x3289c1(0xe3)](_0x3289c1(_0x1a06c3._0x5cb215),[_0x23855c]);}async[_0x5ef1c7(0x147)](_0x430d84){const _0x5123d7={_0x575493:0xe3},_0x2f5b70=_0x5ef1c7;this[_0x2f5b70(_0x5123d7._0x575493)](_0x2f5b70(0x147),[_0x430d84]);}async[_0x5ef1c7(0xf1)](_0x406d15){const _0xc58b4={_0x4e2e72:0xe3},_0x242c7c=_0x5ef1c7;return this[_0x242c7c(_0xc58b4._0x4e2e72)](_0x242c7c(0xf1),[_0x406d15]),void 0x0;}async[_0x5ef1c7(0x12c)](_0x5c9064,_0x2368dd){const _0x2bf7f8={_0x2d7dac:0x12c},_0x14f01f=_0x5ef1c7;return this[_0x14f01f(0xe3)](_0x14f01f(_0x2bf7f8._0x2d7dac),[_0x5c9064,_0x2368dd]),void 0x0;}async[_0x5ef1c7(0x132)](_0x2a8087){const _0x330cde={_0x381869:0xf8,_0x41358a:0xe0},_0x1c6f58=_0x5ef1c7;this['record'](_0x1c6f58(0x132),[_0x2a8087]);if(_0x2a8087['steps']['length']!==0x1||_0x2a8087[_0x1c6f58(0xf8)][0x0][_0x1c6f58(0xfd)]!==_0x1c6f58(0xe0))return null;const _0x4dad57=_0x2a8087[_0x1c6f58(_0x330cde._0x381869)][0x0][_0x1c6f58(_0x330cde._0x41358a)],_0x57371a=this[_0x1c6f58(0x10d)][_0x1c6f58(0xdf)]?.[_0x4dad57];return _0x57371a??null;}async[_0x5ef1c7(0x11e)](_0x368b26){const _0x4e4ba3={_0x5793a8:0x129},_0x3e6665=_0x5ef1c7;return this[_0x3e6665(0xe3)]('screenshot',[_0x368b26]),Buffer[_0x3e6665(0x144)](_0x3e6665(_0x4e4ba3._0x5793a8));}async['outerHTML'](_0x75ead){const _0x282862={_0x3b1f60:0xe2,_0x313da7:0xe0,_0x490b4c:0x10d,_0x54e874:0x106},_0x3ecc13=_0x5ef1c7;this['record'](_0x3ecc13(_0x282862._0x3b1f60),[_0x75ead]);if(_0x75ead['steps']['length']===0x1&&_0x75ead[_0x3ecc13(0xf8)][0x0]['kind']===_0x3ecc13(_0x282862._0x313da7)){const _0x1a3f2f=_0x75ead['steps'][0x0]['ref'];return this[_0x3ecc13(_0x282862._0x490b4c)][_0x3ecc13(0xeb)]?.[_0x1a3f2f]??_0x3ecc13(_0x282862._0x54e874)+_0x1a3f2f+_0x3ecc13(0x135);}return'<div></div>';}},FakeContext=class{constructor(_0x519843,_0x5f5ded,_0x32f37a){const _0x585be4={_0x1a8cdc:0x13c,_0xb35ed8:0x11a,_0x44b365:0x10c,_0x5d95d8:0xe5,_0x220a57:0x102,_0x2c0078:0xec,_0x20ebb6:0x136},_0x5bb59f=_0x5ef1c7;this[_0x5bb59f(_0x585be4._0x1a8cdc)]=_0x519843,this['behavior']=_0x5f5ded,this[_0x5bb59f(_0x585be4._0xb35ed8)]=_0x32f37a;const _0x4efe5a=new FakePage(_0x519843,_0x5f5ded,_0x32f37a+_0x5bb59f(0x115),_0x5f5ded[_0x5bb59f(_0x585be4._0x44b365)]??'about:blank');_0x5f5ded[_0x5bb59f(0x122)]&&(_0x4efe5a[_0x5bb59f(_0x585be4._0x5d95d8)]=()=>{const _0x11ebd2=_0x5bb59f;this[_0x11ebd2(0x13f)](_0x5f5ded['popupOnClick']);}),this[_0x5bb59f(_0x585be4._0x220a57)]=[_0x4efe5a],this['localStorageState']={..._0x5f5ded[_0x5bb59f(_0x585be4._0x2c0078)]??{}},this[_0x5bb59f(0x13b)]={..._0x5f5ded[_0x5bb59f(_0x585be4._0x20ebb6)]??{}};}[_0x5ef1c7(0x13c)];[_0x5ef1c7(0x10d)];[_0x5ef1c7(0x11a)];static{__name(this,_0x5ef1c7(0x109));}[_0x5ef1c7(0x102)];['activeIdx']=0x0;[_0x5ef1c7(0x123)]=[];[_0x5ef1c7(0xfa)];['cookieState'];['newPageListeners']=new Set();[_0x5ef1c7(0xe3)](_0x3a9149,_0x4d2dcd){const _0x3f2886={_0x1b4e86:0x13c},_0x45b326=_0x5ef1c7;this[_0x45b326(_0x3f2886._0x1b4e86)][_0x45b326(0x14b)]({'scope':this[_0x45b326(0x11a)],'method':_0x3a9149,'args':_0x4d2dcd});}['pages'](){return this['pageList'];}[_0x5ef1c7(0x10e)](){const _0x1638a5={_0x2b07ac:0x105,_0x4518de:0x12a},_0xb67fdc=_0x5ef1c7,_0x35d194=this['pageList'][this[_0xb67fdc(_0x1638a5._0x2b07ac)]];if(!_0x35d194)throw new DriverError(_0xb67fdc(_0x1638a5._0x4518de),{'activeIdx':this['activeIdx']});return _0x35d194;}[_0x5ef1c7(0x140)](){const _0x2feb37=_0x5ef1c7;return this[_0x2feb37(0x10d)][_0x2feb37(0x140)]??[];}['networkEntries'](){const _0x44675e={_0x36dfdb:0x10d},_0x5ef5cc=_0x5ef1c7;return this[_0x5ef5cc(_0x44675e._0x36dfdb)][_0x5ef5cc(0x114)]??[];}async[_0x5ef1c7(0x14e)](_0x1d32c7){const _0x2036fb={_0x2c5a7e:0xe3,_0x47fff7:0x107,_0xd059ed:0x105},_0xe72eea=_0x5ef1c7;this[_0xe72eea(_0x2036fb._0x2c5a7e)]('setActivePage',[_0x1d32c7]);if(_0x1d32c7<0x0||_0x1d32c7>=this['pageList'][_0xe72eea(0x113)])throw new DriverError(_0xe72eea(_0x2036fb._0x47fff7),{'index':_0x1d32c7,'available':this[_0xe72eea(0x102)][_0xe72eea(0x113)]});this[_0xe72eea(_0x2036fb._0xd059ed)]=_0x1d32c7,this[_0xe72eea(0x123)][_0xe72eea(0x113)]=0x0;}[_0x5ef1c7(0x134)](_0xce436c){return subscribe(this['newPageListeners'],_0xce436c);}['emitFakePopup'](_0x477c08){const _0x2c5e51={_0x4998a4:0x113},_0x38dd8a=_0x5ef1c7,_0x4892be=this[_0x38dd8a(0x11a)]+'.page'+this[_0x38dd8a(0x102)][_0x38dd8a(_0x2c5e51._0x4998a4)],_0x491edb=new FakePage(this[_0x38dd8a(0x13c)],this[_0x38dd8a(0x10d)],_0x4892be,_0x477c08);this['pageList']['push'](_0x491edb);const _0x3dfd6f=this['pageList']['length']-0x1;for(const _0x3cb892 of this[_0x38dd8a(0xde)]){try{_0x3cb892({'index':_0x3dfd6f,'url':_0x477c08});}catch{}}return _0x3dfd6f;}[_0x5ef1c7(0x139)](_0x9900f9){const _0x163128={_0xec899f:0x102,_0x41e713:0xdd},_0x4351c8=_0x5ef1c7;if(_0x9900f9<0x0||_0x9900f9>=this[_0x4351c8(_0x163128._0xec899f)]['length'])throw new DriverError(_0x4351c8(0x107),{'index':_0x9900f9,'available':this[_0x4351c8(_0x163128._0xec899f)]['length']});this['pageList'][_0x4351c8(_0x163128._0x41e713)](_0x9900f9,0x1);}async[_0x5ef1c7(0xfc)](_0x4aedf6){const _0x37e56d={_0x142166:0xf8,_0x57fcdd:0x123},_0x3cfdad=_0x5ef1c7;this[_0x3cfdad(0xe3)](_0x3cfdad(0xfc),[_0x4aedf6]);if(!_0x4aedf6[_0x3cfdad(_0x37e56d._0x142166)]['length'])throw new LocatorError('enterFrame\x20called\x20with\x20empty\x20locator',{'locator':_0x4aedf6});this[_0x3cfdad(_0x37e56d._0x57fcdd)][_0x3cfdad(0x14b)](_0x4aedf6);}async[_0x5ef1c7(0x10a)](){const _0x5cd0ff={_0x5ad418:0xe3},_0x5da9db=_0x5ef1c7;this[_0x5da9db(_0x5cd0ff._0x5ad418)](_0x5da9db(0x10a),[]);if(this['frameStack'][_0x5da9db(0x113)]===0x0)throw new DriverError(_0x5da9db(0x11b),{});this['frameStack'][_0x5da9db(0x10f)]();}async[_0x5ef1c7(0x148)](_0x33eab4,_0x123c79){const _0x4198db={_0x609fe:0xfa},_0x2474cb=_0x5ef1c7;this[_0x2474cb(0xe3)]('setLocalStorage',[_0x33eab4,_0x123c79]),this[_0x2474cb(_0x4198db._0x609fe)][_0x33eab4]=_0x123c79;}async[_0x5ef1c7(0x128)](_0x5703a2){const _0xe1827b=_0x5ef1c7;return this['record'](_0xe1827b(0x128),[_0x5703a2]),this[_0xe1827b(0xfa)][_0x5703a2]??null;}async['setCookie'](_0x5b0a8b,_0x44fbe1,_0x54bf6a){const _0xb818a7=_0x5ef1c7;this['record'](_0xb818a7(0x14d),[_0x5b0a8b,_0x44fbe1,_0x54bf6a]),this[_0xb818a7(0x13b)][_0x5b0a8b]=_0x44fbe1;}async['getCookie'](_0x581a5f){const _0x4a72a7={_0x1b33cf:0xe3,_0x42828:0x13b},_0x457c71=_0x5ef1c7;return this[_0x457c71(_0x4a72a7._0x1b33cf)]('getCookie',[_0x581a5f]),this[_0x457c71(_0x4a72a7._0x42828)][_0x581a5f]??null;}async[_0x5ef1c7(0x101)](_0x4401cd){const _0x40ea34={_0x2b0bd2:0x101},_0x2cdc26=_0x5ef1c7;this['record'](_0x2cdc26(_0x40ea34._0x2b0bd2),[_0x4401cd]);}async[_0x5ef1c7(0xf1)](_0x204ce2){const _0x330b93=_0x5ef1c7;return this[_0x330b93(0xe3)]('evaluate',[_0x204ce2]),void 0x0;}async[_0x5ef1c7(0x121)](){const _0x416fcc={_0x38b05d:0xe3},_0xca9078=_0x5ef1c7;this[_0xca9078(_0x416fcc._0x38b05d)]('close',[]);}['frameDepth'](){const _0x61906a={_0x508c8c:0x123,_0x31c039:0x113},_0x240b08=_0x5ef1c7;return this[_0x240b08(_0x61906a._0x508c8c)][_0x240b08(_0x61906a._0x31c039)];}},FakeWebDriver=class{constructor(_0x2dcc75={}){const _0x470e60={_0x55f651:0x13c},_0x1f8aa3=_0x5ef1c7;this[_0x1f8aa3(0x10d)]=_0x2dcc75,this[_0x1f8aa3(_0x470e60._0x55f651)]=createRecorder();}[_0x5ef1c7(0x10d)];static{__name(this,'FakeWebDriver');}[_0x5ef1c7(0x142)]=![];['recorder'];['contexts']=[];async[_0x5ef1c7(0x11f)](_0x8010d9){const _0x76d9ad={_0x2aa92c:0x13c,_0x5e17ae:0xed,_0x3bfa32:0x11f,_0x8a3919:0x142},_0x59493a=_0x5ef1c7;this[_0x59493a(_0x76d9ad._0x2aa92c)]['push']({'scope':_0x59493a(_0x76d9ad._0x5e17ae),'method':_0x59493a(_0x76d9ad._0x3bfa32),'args':[_0x8010d9]}),this[_0x59493a(_0x76d9ad._0x8a3919)]=!![];}async['newContext'](_0x2f35dc){const _0x4d9074={_0x2aec05:0x14b,_0x2c7fee:0xed,_0xef406e:0x142,_0x491486:0x10d,_0x587707:0xf2,_0x12b2a5:0x14b},_0x4ab4f9=_0x5ef1c7;this[_0x4ab4f9(0x13c)][_0x4ab4f9(_0x4d9074._0x2aec05)]({'scope':_0x4ab4f9(_0x4d9074._0x2c7fee),'method':_0x4ab4f9(0x13e),'args':[_0x2f35dc]});if(!this[_0x4ab4f9(_0x4d9074._0xef406e)])throw new DriverError(_0x4ab4f9(0x111),{});const _0x47821c=new FakeContext(this['recorder'],this[_0x4ab4f9(_0x4d9074._0x491486)],'ctx'+this['contexts']['length']);return this[_0x4ab4f9(_0x4d9074._0x587707)][_0x4ab4f9(_0x4d9074._0x12b2a5)](_0x47821c),_0x47821c;}async['close'](){const _0x19d031={_0x209b2a:0x13c},_0x29b058=_0x5ef1c7;this[_0x29b058(_0x19d031._0x209b2a)][_0x29b058(0x14b)]({'scope':_0x29b058(0xed),'method':'close','args':[]}),this[_0x29b058(0x142)]=![];}['wsEndpoint'](){return void 0x0;}async[_0x5ef1c7(0x119)](){const _0x19c785={_0x15736e:0xf7},_0x3db724=_0x5ef1c7;throw new DriverError(_0x3db724(_0x19c785._0x15736e),{});}[_0x5ef1c7(0x127)](){const _0x53b4b7=_0x5ef1c7;throw new DriverError(_0x53b4b7(0x14a),{});}['calls'](){const _0x25ac56={_0x58efd0:0x13c},_0x2e1948=_0x5ef1c7;return this[_0x2e1948(_0x25ac56._0x58efd0)]['calls']();}[_0x5ef1c7(0xf3)](_0x5b3444){const _0x5cc665={_0x4ca5aa:0x13c,_0x2c4c4b:0x13d},_0x83bd23=_0x5ef1c7;return this[_0x83bd23(_0x5cc665._0x4ca5aa)][_0x83bd23(0x104)]()[_0x83bd23(_0x5cc665._0x2c4c4b)](_0x14dbff=>_0x14dbff['method']===_0x5b3444);}};export{FakeWebDriver};
|
|
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};
|
package/dist/dsl/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as LocatorValue, W as WebDriver, D as DriverContext, d as DriverPage } from '../interfaces-
|
|
2
|
-
export { j as LocatorStep, k as appendStep, l as describeLocator, m as isLocatorValue, r as rootedAt } from '../interfaces-
|
|
1
|
+
import { i as LocatorValue, W as WebDriver, D as DriverContext, d as DriverPage } from '../interfaces-B-FxA_qn.js';
|
|
2
|
+
export { j as LocatorStep, k as appendStep, l as describeLocator, m as isLocatorValue, r as rootedAt } from '../interfaces-B-FxA_qn.js';
|
|
3
3
|
import { Matcher, RegexLiteral } from '@unotest/protocol';
|
|
4
4
|
import { ExecutionWalker, ExecutionEvent, RunResult, RunOptions } from '@unotest/dsl/executor';
|
|
5
5
|
export { ExecutionError, ExecutionEvent, RunOptions, RunResult } from '@unotest/dsl/executor';
|
|
@@ -88,10 +88,14 @@ interface Logger {
|
|
|
88
88
|
child(prefix: string): Logger;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
+
type FrameFormat = "png" | "webp";
|
|
92
|
+
|
|
91
93
|
interface ScreenshotSink {
|
|
92
|
-
/** Persist one
|
|
93
|
-
*
|
|
94
|
-
|
|
94
|
+
/** Persist one capture. `format` names the bytes so the sink can file
|
|
95
|
+
* them under the right extension instead of assuming — a `.png` that
|
|
96
|
+
* holds webp is the kind of thing nobody notices until a tool tries
|
|
97
|
+
* to read it. Returns the project-relative path it landed at. */
|
|
98
|
+
save(name: string, bytes: Buffer, format: FrameFormat): Promise<string>;
|
|
95
99
|
}
|
|
96
100
|
|
|
97
101
|
type DslPrimitive = string | number | boolean | null;
|