@unotest/web 0.21.0 → 0.23.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 +65 -0
- package/README.md +1 -1
- package/dist/config/schema.js +1 -1
- package/dist/driver/index.js +1 -1
- package/dist/dsl/index.d.ts +29 -1
- package/dist/dsl/index.js +1 -1
- package/dist/dsl/web-dsl-language-service.js +1 -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 +47 -1
- package/package.json +8 -7
- package/types/unotest-dsl.d.ts +7 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,70 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.23.0] - 2026-08-26
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- LLM-judge assertion for free-form text: `assertJudge(locator, rubric)`.
|
|
8
|
+
|
|
9
|
+
- New package `@unotest/judge` — the judge service (`npx @unotest/judge`):
|
|
10
|
+
judges text against a natural-language rubric and returns a structured
|
|
11
|
+
`{verdict, reasoning, model, attempts}`. Providers: `vertex` (Google
|
|
12
|
+
Vertex AI via ADC, no API keys; temperature pinned to 0) and `fake`
|
|
13
|
+
(deterministic, CI-safe). Non-determinism policy lives in the service:
|
|
14
|
+
`JUDGE_RETRIES` re-asks on `fail`, first `pass` wins.
|
|
15
|
+
- `@unotest/web`: new DSL assertion `assertJudge(locator, rubric)` — the
|
|
16
|
+
element's rendered text + the rubric go to the judge; a `fail` verdict
|
|
17
|
+
fails the step with the judge's reasoning. Wired via env so the config
|
|
18
|
+
sits in the `--env` overlay: `UNOTEST_JUDGE_MODE=off|local|remote`,
|
|
19
|
+
`UNOTEST_JUDGE_URL`, `UNOTEST_JUDGE_TOKEN`, `UNOTEST_JUDGE_TIMEOUT_MS`.
|
|
20
|
+
Every verdict (pass and fail) is recorded into the run's `steps.jsonl`.
|
|
21
|
+
Also documented: `shell()` runs with cwd = the project root
|
|
22
|
+
(`sandbox.shellCwd` to override) and returns `{stdout, stderr, code}`.
|
|
23
|
+
- `@unotest/protocol`: judge wire types (`JudgeRequest`, `JudgeVerdict`,
|
|
24
|
+
`JUDGE_ROUTES`) and the new `judge:verdict` run-artifact event.
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- Judge provider matrix: four new `JUDGE_PROVIDER` backends.
|
|
29
|
+
|
|
30
|
+
- `claude` — spawns the local Claude Code CLI (`claude -p`, no shell
|
|
31
|
+
interpretation): auth comes from the Claude Code session, so a
|
|
32
|
+
subscription works with no API key. `JUDGE_MODEL` is passed as
|
|
33
|
+
`--model` (aliases like `sonnet` work); `JUDGE_CLAUDE_BIN` overrides
|
|
34
|
+
the binary; default `JUDGE_TIMEOUT_MS` is 120000 for this provider.
|
|
35
|
+
- `gemini` — the Gemini API with `GEMINI_API_KEY` (same wire format as
|
|
36
|
+
`vertex`, temperature pinned to 0; default model `gemini-2.5-flash`).
|
|
37
|
+
- `openai` — OpenAI chat completions with `OPENAI_API_KEY`
|
|
38
|
+
(`response_format: json_object`; default model `gpt-5-mini`).
|
|
39
|
+
- `anthropic` — the Anthropic API (`/v1/messages`) with
|
|
40
|
+
`ANTHROPIC_API_KEY` (default model `claude-haiku-4-5`).
|
|
41
|
+
|
|
42
|
+
`openai` and `anthropic` deliberately send no sampling params — current
|
|
43
|
+
reasoning models reject `temperature`; determinism relies on the strict
|
|
44
|
+
JSON verdict prompt plus the `JUDGE_RETRIES` policy. Still zero provider
|
|
45
|
+
SDKs: everything is raw HTTP or a local process.
|
|
46
|
+
|
|
47
|
+
`@unotest/web`: docs only — provider matrix in the `assertJudge`
|
|
48
|
+
reference and the `.env.example` judge block.
|
|
49
|
+
|
|
50
|
+
- Updated dependencies
|
|
51
|
+
- @unotest/protocol@0.23.0
|
|
52
|
+
- @unotest/viewer@0.23.0
|
|
53
|
+
- @unotest/core@0.23.0
|
|
54
|
+
- @unotest/dsl@0.23.0
|
|
55
|
+
- @unotest/grounder-client@0.23.0
|
|
56
|
+
|
|
57
|
+
## [0.22.0] - 2026-08-26
|
|
58
|
+
|
|
59
|
+
### Patch Changes
|
|
60
|
+
|
|
61
|
+
- Updated dependencies [80619a9]
|
|
62
|
+
- @unotest/viewer@0.22.0
|
|
63
|
+
- @unotest/core@0.22.0
|
|
64
|
+
- @unotest/dsl@0.22.0
|
|
65
|
+
- @unotest/grounder-client@0.22.0
|
|
66
|
+
- @unotest/protocol@0.22.0
|
|
67
|
+
|
|
3
68
|
## [0.21.0] - 2026-08-25
|
|
4
69
|
|
|
5
70
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -105,7 +105,7 @@ the way you already expect:
|
|
|
105
105
|
- **Navigation** — `goto`, `reload`, `waitForUrl`
|
|
106
106
|
- **Locators** — `getByRole`, `getByTestId`, `getByLabel`, `getByText`, `getByPlaceholder`, `locator`
|
|
107
107
|
- **Actions** — `click`, `fill`, `press`, `hover`, `check`, `uncheck`, `selectOption`
|
|
108
|
-
- **Assertions** — `assertText`, `assertUrl`, `assertVisible`, `
|
|
108
|
+
- **Assertions** — `assertText`, `assertUrl`, `assertVisible`, `assertCount`, `assertValue`, `assertJudge` (LLM-judge for free-form text, backed by [`@unotest/judge`](https://www.npmjs.com/package/@unotest/judge))
|
|
109
109
|
- **Setup** — `dbQuery`, `dbExec`, `apiCall`, `shell`, `evaluate`
|
|
110
110
|
|
|
111
111
|
Full reference, shipped with the package:
|
package/dist/config/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var _0x3673c0=_0x4f94;(function(_0x108810,_0x3506b1){var _0x4d02c6={_0xb476f8:0x84,_0x547eb5:0x79,_0xaec624:0xa7,_0x1904d8:0x98,_0x3d1342:0x9a,_0x1a714f:0x7b,_0x43fb23:0xa3},_0x344411=_0x4f94,_0xbfd4bc=_0x108810();while(!![]){try{var _0x5286e4=-parseInt(_0x344411(_0x4d02c6._0xb476f8))/0x1*(-parseInt(_0x344411(_0x4d02c6._0x547eb5))/0x2)+-parseInt(_0x344411(_0x4d02c6._0xaec624))/0x3+parseInt(_0x344411(_0x4d02c6._0x1904d8))/0x4*(-parseInt(_0x344411(_0x4d02c6._0x3d1342))/0x5)+-parseInt(_0x344411(0x8f))/0x6*(-parseInt(_0x344411(0xa5))/0x7)+parseInt(_0x344411(0x93))/0x8+parseInt(_0x344411(_0x4d02c6._0x1a714f))/0x9+-parseInt(_0x344411(_0x4d02c6._0x43fb23))/0xa;if(_0x5286e4===_0x3506b1)break;else _0xbfd4bc['push'](_0xbfd4bc['shift']());}catch(_0x45ec70){_0xbfd4bc['push'](_0xbfd4bc['shift']());}}}(_0x897c,0xa8a61));function _0x4f94(_0x485474,_0x441643){_0x485474=_0x485474-0x72;var _0x897c4a=_0x897c();var _0x4f9480=_0x897c4a[_0x485474];if(_0x4f94['Oattsn']===undefined){var _0x2e3b94=function(_0x3dc307){var _0x1f276e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x3e9ae9='',_0x4409e7='';for(var _0x26e833=0x0,_0x5651e9,_0x56296d,_0x58bc46=0x0;_0x56296d=_0x3dc307['charAt'](_0x58bc46++);~_0x56296d&&(_0x5651e9=_0x26e833%0x4?_0x5651e9*0x40+_0x56296d:_0x56296d,_0x26e833++%0x4)?_0x3e9ae9+=String['fromCharCode'](0xff&_0x5651e9>>(-0x2*_0x26e833&0x6)):0x0){_0x56296d=_0x1f276e['indexOf'](_0x56296d);}for(var _0x46e738=0x0,_0x37cbb4=_0x3e9ae9['length'];_0x46e738<_0x37cbb4;_0x46e738++){_0x4409e7+='%'+('00'+_0x3e9ae9['charCodeAt'](_0x46e738)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4409e7);};_0x4f94['DSPlCk']=_0x2e3b94,_0x4f94['uRCphd']={},_0x4f94['Oattsn']=!![];}var _0x38613d=_0x897c4a[0x0],_0x199f5c=_0x485474+_0x38613d,_0x1fab64=_0x4f94['uRCphd'][_0x199f5c];return!_0x1fab64?(_0x4f9480=_0x4f94['DSPlCk'](_0x4f9480),_0x4f94['uRCphd'][_0x199f5c]=_0x4f9480):_0x4f9480=_0x1fab64,_0x4f9480;}import{z}from'zod';var BrowserSchema=z[_0x3673c0(0xab)]([_0x3673c0(0xa9),_0x3673c0(0xa1),'webkit']),BrowserChannelSchema=z[_0x3673c0(0x87)]([z[_0x3673c0(0x8b)]('chrome'),z[_0x3673c0(0x8b)](_0x3673c0(0x86)),z[_0x3673c0(0x8b)]('chrome-beta'),z[_0x3673c0(0x82)]()])[_0x3673c0(0x94)](),ViewportSchema=z[_0x3673c0(0xa8)]({'width':z[_0x3673c0(0xae)]()[_0x3673c0(0x85)]()['positive'](),'height':z['number']()['int']()['positive']()}),RetryReasonSchema=z[_0x3673c0(0xab)](['transient','network','crash']),RetryConfigSchema=z['object']({'count':z[_0x3673c0(0xae)]()[_0x3673c0(0x85)]()[_0x3673c0(0x88)](0x0)[_0x3673c0(0xaf)](0xa),'on':z[_0x3673c0(0xac)](RetryReasonSchema)}),FailureBundleConfigSchema=z[_0x3673c0(0xa8)]({'tier1':z[_0x3673c0(0x8b)](!![])[_0x3673c0(0x83)](!![]),'tier2':z[_0x3673c0(0x77)](),'tier3':z[_0x3673c0(0xa8)]({'network':z['boolean'](),'video':z['boolean']()}),'retention':z[_0x3673c0(0xa8)]({'runs':z[_0x3673c0(0xae)]()[_0x3673c0(0x85)]()[_0x3673c0(0x7f)](),'days':z[_0x3673c0(0xae)]()[_0x3673c0(0x85)]()['positive']()}),'storageDir':z[_0x3673c0(0x78)]()[_0x3673c0(0x88)](0x1)}),DialogPolicySchema=z['enum']([_0x3673c0(0x80),'dismiss',_0x3673c0(0xa6)]),LinterRuleIdSchema=z['enum']([_0x3673c0(0x90),_0x3673c0(0x8d),_0x3673c0(0x96),'lint:pause-explicit',_0x3673c0(0x99),_0x3673c0(0x91),_0x3673c0(0x81),_0x3673c0(0x72),'lint:goto-concat',_0x3673c0(0x89),_0x3673c0(0x9f),'lint:api-call-file-body','lint:lint-ok-missing-reason',_0x3673c0(0x75),_0x3673c0(0x74),_0x3673c0(0xa2),_0x3673c0(0x9d),_0x3673c0(0x7e),'validator:step-shape',_0x3673c0(0xa0),_0x3673c0(0x9c),'validator:for-shape',_0x3673c0(0xa4),'validator:var-shape',_0x3673c0(0x8c),_0x3673c0(0x95),_0x3673c0(0x8a),_0x3673c0(0xaa),'validator:list-arg',_0x3673c0(0x76)]),LinterSeveritySchema=z[_0x3673c0(0xab)](['off',_0x3673c0(0x7a),'error']),LinterConfigSchema=z[_0x3673c0(0xa8)]({'enabled':z[_0x3673c0(0x77)](),'rules':z[_0x3673c0(0x92)](LinterRuleIdSchema,LinterSeveritySchema)}),McpConfigSchema=z[_0x3673c0(0xa8)]({'transport':z[_0x3673c0(0x8b)](_0x3673c0(0x9e))}),SandboxConfigSchema=z[_0x3673c0(0xa8)]({'shellCwd':z[_0x3673c0(0x78)]()['optional'](),'shellTimeoutMs':z['number']()['int']()[_0x3673c0(0x7f)]()[_0x3673c0(0x94)](),'exportSecrets':z['array'](z['string']())[_0x3673c0(0x94)](),'database':z[_0x3673c0(0x78)]()[_0x3673c0(0x94)](),'apiBaseUrl':z[_0x3673c0(0x78)]()[_0x3673c0(0x97)]()['optional'](),'uploadDir':z[_0x3673c0(0x78)]()[_0x3673c0(0x94)]()}),WebServerConfigSchema=z['object']({'command':z[_0x3673c0(0x78)]()['min'](0x1),'url':z[_0x3673c0(0x78)]()[_0x3673c0(0x97)](),'reuseExistingServer':z['boolean']()[_0x3673c0(0x83)](!![]),'timeoutMs':z[_0x3673c0(0xae)]()[_0x3673c0(0x85)]()[_0x3673c0(0x7f)]()[_0x3673c0(0x83)](0xea60)}),UnotestConfigSchema=z[_0x3673c0(0xa8)]({'baseUrl':z[_0x3673c0(0x78)]()[_0x3673c0(0x97)]()[_0x3673c0(0x94)](),'webServer':WebServerConfigSchema[_0x3673c0(0x94)](),'browsers':z[_0x3673c0(0xac)](BrowserSchema)[_0x3673c0(0x88)](0x1),'channel':BrowserChannelSchema,'viewport':ViewportSchema,'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':z[_0x3673c0(0x78)]()[_0x3673c0(0x94)](),'testDir':z[_0x3673c0(0x78)]()[_0x3673c0(0x88)](0x1),'helpersDir':z[_0x3673c0(0x78)]()[_0x3673c0(0x88)](0x1),'defaultTimeoutMs':z[_0x3673c0(0xae)]()[_0x3673c0(0x85)]()[_0x3673c0(0x7f)](),'defaultNavigationTimeoutMs':z['number']()[_0x3673c0(0x85)]()[_0x3673c0(0x7f)](),'linter':LinterConfigSchema,'mcp':McpConfigSchema,'sandbox':SandboxConfigSchema}),DEFAULT_CONFIG={'browsers':[_0x3673c0(0xa9)],'viewport':{'width':0x500,'height':0x2d0},'retry':{'count':0x0,'on':[_0x3673c0(0xad)]},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':_0x3673c0(0x9b)},'dialogPolicy':_0x3673c0(0x80),'testDir':_0x3673c0(0x8e),'helpersDir':_0x3673c0(0x7c),'defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x7530,'linter':{'enabled':!![],'rules':{'lint:deep-css':_0x3673c0(0x7a),'lint:xpath':_0x3673c0(0x7a),'lint:obfuscated-class':'warn','lint:pause-explicit':'warn','lint:disambig-by-index':_0x3673c0(0x7d),'lint:evaluate-discouraged':_0x3673c0(0x7a),'lint:scenario-in-root':'error','lint:mustache-in-dsl':'error','lint:goto-concat':'warn','lint:regex-invalid':_0x3673c0(0x73),'lint:echo-assert':_0x3673c0(0x7a),'lint:lint-ok-missing-reason':_0x3673c0(0x7a),'lint:flow-returns-value':'warn','validator:unknown-function':'error'}},'mcp':{'transport':_0x3673c0(0x9e)},'sandbox':{}};function _0x897c(){var _0x813d53=['BwfUDwfS','nZyZmZy4qwLmD2LM','B2jQzwn0','y2HYB21PDw0','DMfSAwrHDg9YoNnLBwfUDgLJlwXVC3m','zw51Bq','yxjYyxK','DhjHBNnPzw50','BNvTyMvY','Bwf4','BgLUDdPTDxn0ywnOzs1PBI1KC2W','zxjYB3i','DMfSAwrHDg9YoNvUA25VD24TzNvUy3rPB24','BgLUDdPMBg93lxjLDhvYBNmTDMfSDwu','DMfSAwrHDg9YoNDYyxbWzwqTzM9YBwf0','yM9VBgvHBG','C3rYAw5N','mM5ZrKn5BG','D2fYBG','nJa1ndeZohL3sKTcza','Dw5VDgvZDc9LmMuVx2HLBhbLCNm','B2zM','DMfSAwrHDg9YoNn0zxaTy292zxjHz2u','Cg9ZAxrPDMu','ywnJzxb0','BgLUDdPZy2vUyxjPBY1PBI1YB290','BNvSBa','zgvMyxvSDa','ntG5nJC4r2TwyvbK','Aw50','BxnLzgDL','Dw5PB24','BwLU','BgLUDdPYzwDLEc1PBNzHBgLK','DMfSAwrHDg9YoNn0CMLUzY1JB25Jyxq','BgL0zxjHBa','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlxn0yxrLBwvUDa','BgLUDdP4Cgf0Aa','Dw5VDgvZDc9LmMu','mJrcDMP4u2y','BgLUDdPKzwvWlwnZCW','BgLUDdPLDMfSDwf0zs1KAxnJB3vYywDLza','CMvJB3jK','otuXnte5mNfYqwDAua','B3b0Aw9UywW','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlwv4ChjLC3nPB24','BgLUDdPVyMz1C2nHDgvKlwnSyxnZ','DxjS','mJeYz0Dnz3rx','BgLUDdPKAxnHBwjPzY1IEs1PBMrLEa','mte1nJe1uM5ZB3Hl','lNvUB3rLC3qVzMfPBhvYzxm','DMfSAwrHDg9YoMz1BMn0Aw9UlxnOyxbL','DMfSAwrHDg9YoMfYzY1RAw5K','C3rKAw8','BgLUDdPLy2HVlwfZC2vYDa','DMfSAwrHDg9YoM1LDgeTC2HHCgu','zMLYzwzVEa','DMfSAwrHDg9YoMfYAxr5','mtm5ntGYmZbtrNDYrNC','DMfSAwrHDg9YoMLMlxnOyxbL','mtK1mdK0mKT5y1DHzW'];_0x897c=function(){return _0x813d53;};return _0x897c();}export{BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,RetryConfigSchema,RetryReasonSchema,SandboxConfigSchema,UnotestConfigSchema,ViewportSchema,WebServerConfigSchema};
|
package/dist/driver/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x3ee4d3=_0x1704;(function(_0x53e7f8,_0x238b2b){const _0x5a3c97={_0x18ab1a:0x95,_0x1d6475:0x96,_0x2aff8b:0xa0,_0x17dee2:0x97,_0x3dbcea:0xe6,_0x33fd7b:0xe1},_0x1ac309=_0x1704,_0x181198=_0x53e7f8();while(!![]){try{const _0x9009d6=parseInt(_0x1ac309(_0x5a3c97._0x18ab1a))/0x1+-parseInt(_0x1ac309(0xc1))/0x2*(-parseInt(_0x1ac309(_0x5a3c97._0x1d6475))/0x3)+parseInt(_0x1ac309(_0x5a3c97._0x2aff8b))/0x4+parseInt(_0x1ac309(_0x5a3c97._0x17dee2))/0x5*(-parseInt(_0x1ac309(0xd7))/0x6)+parseInt(_0x1ac309(_0x5a3c97._0x3dbcea))/0x7+-parseInt(_0x1ac309(0x93))/0x8*(-parseInt(_0x1ac309(0xa7))/0x9)+-parseInt(_0x1ac309(_0x5a3c97._0x33fd7b))/0xa;if(_0x9009d6===_0x238b2b)break;else _0x181198['push'](_0x181198['shift']());}catch(_0x3322d5){_0x181198['push'](_0x181198['shift']());}}}(_0x1db7,0x6b5cf));var __defProp=Object[_0x3ee4d3(0xe9)],__name=(_0x333d9c,_0x483464)=>__defProp(_0x333d9c,'name',{'value':_0x483464,'configurable':!![]});function subscribe(_0x442e72,_0x42cf29){const _0x374437=_0x3ee4d3;return _0x442e72[_0x374437(0xbc)](_0x42cf29),()=>{const _0x44b0ab=_0x374437;_0x442e72[_0x44b0ab(0xd6)](_0x42cf29);};}function _0x1704(_0x3286a3,_0x684151){_0x3286a3=_0x3286a3-0x86;const _0x1db704=_0x1db7();let _0x170429=_0x1db704[_0x3286a3];if(_0x1704['MDjfga']===undefined){var _0x90b012=function(_0x1f8c7b){const _0x4c7074='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x333d9c='',_0x483464='';for(let _0x442e72=0x0,_0x42cf29,_0x160d65,_0x4885fc=0x0;_0x160d65=_0x1f8c7b['charAt'](_0x4885fc++);~_0x160d65&&(_0x42cf29=_0x442e72%0x4?_0x42cf29*0x40+_0x160d65:_0x160d65,_0x442e72++%0x4)?_0x333d9c+=String['fromCharCode'](0xff&_0x42cf29>>(-0x2*_0x442e72&0x6)):0x0){_0x160d65=_0x4c7074['indexOf'](_0x160d65);}for(let _0x4dfc18=0x0,_0x1aebf4=_0x333d9c['length'];_0x4dfc18<_0x1aebf4;_0x4dfc18++){_0x483464+='%'+('00'+_0x333d9c['charCodeAt'](_0x4dfc18)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x483464);};_0x1704['OHzBHD']=_0x90b012,_0x1704['hXgKTD']={},_0x1704['MDjfga']=!![];}const _0x2205e2=_0x1db704[0x0],_0x531d06=_0x3286a3+_0x2205e2,_0x1f62c6=_0x1704['hXgKTD'][_0x531d06];return!_0x1f62c6?(_0x170429=_0x1704['OHzBHD'](_0x170429),_0x1704['hXgKTD'][_0x531d06]=_0x170429):_0x170429=_0x1f62c6,_0x170429;}__name(subscribe,'subscribe');import{UnotestError}from'@unotest/core';function _0x1db7(){const _0x3cbc02=['mtj5vev2tw4','y2HLy2S','zw1PDezHA2vqB3b1Ca','AxnwAxnPyMXL','zNjHBwvtDgfJAW','y291BNq','Bgf1BMnO','iJ48l2rPDJ4','Aw5WDxrwywX1zq','AxneAxnHyMXLza','mtuZmde4nZbUBfHHveq','z290BW','y2XPCgjVyxjKugfZDgu','y2XVC2u','D2fPDezVCG','mtaZmdiZmMPLvujLEa','Ag92zxi','y2XPy2S','zgvMAw5LuhjVCgvYDhK','Bgf1BMnOzwq','zwXLBwvUDeHPBNrcEvjLzG','C2nYzwvUC2HVDa','B25ozxDqywDL','B3v0zxjive1m','CMvJB3jK','zNjHBwvezxb0Aa','y29UBMvJDfnOyxjLza','zhjPDMvY','yMvOyxzPB3i','zg91yMXLq2XPy2S','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','rhjPDMvYrxjYB3i','Aw5WDxrwywX1zuj5rgvMyxvSDa','CMvJB3jKzxi','Bwv0Ag9K','zMLSBa','y2HLy2TLzfn0yxrL','Bwf5yMvuAhjVDW','C2v0tg9JywXtDg9YywDL','D2fPDezVCLrLEhq','A2LUza','Dw5JAgvJAW','DxjS','zxjYB3jpBK5LEhrby3rPB24','C2f2zvn0B3jHz2vtDgf0zq','mJq4DvP4y0nb','AxneAxnHyMXLzej5rgvMyxvSDa','nZGXnJi1BMzAv05n','mZm2nZC3BvLfsM9X','mtqZody1nvzYBNjyyW','zw50zxjgCMfTzsbJywXSzwqGD2L0AcbLBxb0EsbSB2nHDg9Y','y29VA2LLCW','y2XVC2vgywTLugfNzq','D2fPDezVCLvYBa','z2v0tg9JywXtDg9YywDL','BMv3q29UDgv4DcbJywXSzwqGyMvMB3jLigXHDw5JAcGP','z29gB3j3yxjK','yxr0CMLIDxrLC0j5rgvMyxvSDa','mJy3nde2mfnhCxbhtq','C2v0q29VA2LL','D3nfBMrWB2LUDa','BMv0D29YA0vUDhjPzxm','zxzHBhvHDgu','CgfNzuXPC3q','rMfRzvDLyKrYAxzLCG','ndCXmdzIqvDdveq','C2nVCgu','z29cywnR','y29UDgv4Dhm','BgvUz3rO','y2fSBhm','Bg9JywXtDg9YywDL','lNbHz2uW','Cg9W','Dgv4DenVBNrLBNq','y29UBMvJDfnOyxjLzcbUB3qGC3vWCg9YDgvKigj5iezHA2vxzwjeCML2zxi','ChjLC3m','D2fPDezVCK5HDMLNyxrPB24','zhjHz0fUzerYB3a','rMfRzunVBNrLEhq','tg9JyxrVCKvYCM9Y','y3vYCMvUDfvYBa','z2v0qxr0CMLIDxrL','y291BNrcEurLzMf1Bhq','AxnwAxnPyMXLqNLezwzHDwX0','lNbHz2u','ywrK','Aw5ZCgvJDevSzw1LBNq','zxzHBhvHDgvpBKXVy2f0B3i','BMv3q29UDgv4Da','D2fPDezVCKXVywrtDgf0zq','mtrxwNnuzKO','DxbSB2fKrMLSzq','BMv3ugfNzuXPC3rLBMvYCW','C2v0qwn0AxzLugfNzq','C3rLChm','Cg9WDxbpBKnSAwnR','ywn0AxzLswr4','CgfNzsbPBMrLEcbVDxqGB2yGCMfUz2u','ywjVDxq6yMXHBMS','Bg9JywXtDg9YywDLu3rHDgu','z2v0q29VA2LL','y29VA2LLu3rHDgu','pgrPDIbKyxrHlxvUB3rLC3qTCMvMpsi','ChvZAa','y29UC29SzuvUDhjPzxm','ywn0AxzLugfNzq','CMvSB2fK','BM8Gywn0AxzLihbHz2uGAw4Gy29UDgv4Da','CMvM','B25bzNrLCKnSAwnR','zw50zxjgCMfTzq','zgvSzxrL'];_0x1db7=function(){return _0x3cbc02;};return _0x1db7();}var DriverError=class extends UnotestError{static{__name(this,_0x3ee4d3(0xf6));}},LocatorError=class extends UnotestError{static{__name(this,_0x3ee4d3(0xb6));}};function createRecorder(){const _0x32f817={_0xe3ef6:0xac},_0x24b965=_0x3ee4d3,_0x160d65=[];let _0x4885fc=0x0;return{'push':__name(_0x4dfc18=>_0x160d65[_0x24b965(0xce)]({..._0x4dfc18,'seq':_0x4885fc++}),'push'),'calls':__name(()=>_0x160d65,_0x24b965(_0x32f817._0xe3ef6))};}__name(createRecorder,'createRecorder');var FakePage=class{constructor(_0x1aebf4,_0x4e4808,_0x4548b7,_0x48f97b){const _0x2f07c5={_0x1c1389:0x87,_0x357960:0xa8},_0x3180b8=_0x3ee4d3;this[_0x3180b8(_0x2f07c5._0x1c1389)]=_0x1aebf4,this[_0x3180b8(0xf3)]=_0x4e4808,this[_0x3180b8(_0x2f07c5._0x357960)]=_0x4548b7,this['currentUrl']=_0x48f97b;}[_0x3ee4d3(0x87)];[_0x3ee4d3(0xf3)];['scope'];static{__name(this,'FakePage');}[_0x3ee4d3(0xb7)];[_0x3ee4d3(0xd4)];[_0x3ee4d3(0xef)](_0x581f22,_0x35da90){const _0x4f8474={_0x108133:0xce},_0x44fbdc=_0x3ee4d3;this['recorder'][_0x44fbdc(_0x4f8474._0x108133)]({'scope':this['scope'],'method':_0x581f22,'args':_0x35da90});}[_0x3ee4d3(0x8b)](){const _0x3ff468={_0x5dc2c3:0xf3,_0x2fb95d:0x91},_0x272660=_0x3ee4d3;if(this[_0x272660(0xf3)]['errorOnNextAction']){const _0x6b471d=this[_0x272660(_0x3ff468._0x5dc2c3)][_0x272660(0x91)];this['behavior'][_0x272660(_0x3ff468._0x2fb95d)]=void 0x0;throw _0x6b471d;}}[_0x3ee4d3(0x90)](){const _0x47beed=_0x3ee4d3;return this[_0x47beed(0xb7)];}async['title'](){const _0xd160b4={_0x5d9ccc:0xef},_0x38cba5=_0x3ee4d3;return this[_0x38cba5(_0xd160b4._0x5d9ccc)]('title',[]),'fake\x20title';}async[_0x3ee4d3(0xe8)](_0x21fbac,_0x4da099){const _0x5ea06f={_0xd1699c:0xe8},_0x1edd5d=_0x3ee4d3;this['record'](_0x1edd5d(_0x5ea06f._0xd1699c),[_0x21fbac,_0x4da099]),this[_0x1edd5d(0x8b)](),this[_0x1edd5d(0xd4)]?.();}async[_0x3ee4d3(0xf4)](_0x3adac1,_0x35f706){const _0x1d2ee3={_0x4cd115:0x8b},_0x2d4649=_0x3ee4d3;this['record'](_0x2d4649(0xf4),[_0x3adac1,_0x35f706]),this[_0x2d4649(_0x1d2ee3._0x4cd115)]();}async['fill'](_0x4448c2,_0x18fde1,_0x1a8623){const _0x34e363={_0x5ddc5f:0xef},_0x387338=_0x3ee4d3;this[_0x387338(_0x34e363._0x5ddc5f)](_0x387338(0x89),[_0x4448c2,_0x18fde1,_0x1a8623]),this['maybeThrow']();}async[_0x3ee4d3(0xb2)](_0x4fcd03,_0x109871,_0x468a2b){const _0x17807d={_0x1a6a9b:0xb2},_0x110eb2=_0x3ee4d3;this['record'](_0x110eb2(_0x17807d._0x1a6a9b),[_0x4fcd03,_0x109871,_0x468a2b]),this[_0x110eb2(0x8b)]();}async[_0x3ee4d3(0xd8)](_0x22146b,_0x3893e3){const _0x1b3616={_0x57a2e2:0xef,_0x25a48a:0xd8},_0x23d584=_0x3ee4d3;this[_0x23d584(_0x1b3616._0x57a2e2)](_0x23d584(_0x1b3616._0x25a48a),[_0x22146b,_0x3893e3]),this['maybeThrow']();}async[_0x3ee4d3(0x8f)](_0x13bb9e,_0x31e3da){const _0x48fa3e={_0xd4d677:0x8f},_0x3f7c43=_0x3ee4d3;this['record'](_0x3f7c43(_0x48fa3e._0xd4d677),[_0x13bb9e,_0x31e3da]),this[_0x3f7c43(0x8b)]();}async['selectOption'](_0x441957,_0x1fa98a,_0x5da0f8){const _0x327f7a={_0x31d4b1:0xef},_0x34d2df=_0x3ee4d3;this[_0x34d2df(_0x327f7a._0x31d4b1)]('selectOption',[_0x441957,_0x1fa98a,_0x5da0f8]),this['maybeThrow']();}async[_0x3ee4d3(0xe7)](_0x205876,_0x464407){const _0x1da884=_0x3ee4d3;this['record'](_0x1da884(0xe7),[_0x205876,_0x464407]),this['maybeThrow']();}async['scrollIntoView'](_0x45a619){const _0x247158={_0x3ea511:0xef,_0x4aebfe:0x8b},_0x57df6b=_0x3ee4d3;this[_0x57df6b(_0x247158._0x3ea511)]('scrollIntoView',[_0x45a619]),this[_0x57df6b(_0x247158._0x4aebfe)]();}async[_0x3ee4d3(0xb4)](_0x353d3e,_0x4a9e82,_0x1ace8e){const _0x311dcb={_0x5566c4:0xef},_0x185aca=_0x3ee4d3;this[_0x185aca(_0x311dcb._0x5566c4)]('dragAndDrop',[_0x353d3e,_0x4a9e82,_0x1ace8e]),this['maybeThrow']();}async[_0x3ee4d3(0xc2)](_0x52dacc,_0x5560c1){const _0x182207=_0x3ee4d3;this[_0x182207(0xef)](_0x182207(0xc2),[_0x52dacc,_0x5560c1]),this[_0x182207(0x8b)]();}async[_0x3ee4d3(0xe3)](_0x53b896,_0x4bf63b){const _0x478cc4=_0x3ee4d3;this[_0x478cc4(0xef)](_0x478cc4(0xe3),[_0x53b896,_0x4bf63b]),this[_0x478cc4(0x8b)]();}async[_0x3ee4d3(0xdc)](_0x558ed2){const _0xc29762={_0x5ab218:0xef,_0x598564:0xdc,_0x5c7344:0xb9},_0x1fb860=_0x3ee4d3;return this[_0x1fb860(_0xc29762._0x5ab218)](_0x1fb860(_0xc29762._0x598564),[_0x558ed2]),this[_0x1fb860(0xf3)][_0x1fb860(_0xc29762._0x5c7344)]??0x1;}async['textContent'](_0x43c78b){const _0x3d45ed=_0x3ee4d3;return this['record'](_0x3d45ed(0xb0),[_0x43c78b]),this['behavior']['textContentByDefault']??'';}async[_0x3ee4d3(0xdf)](_0x3ff231){const _0x41b905={_0x2ea746:0xdf,_0x20f5f2:0xf3,_0x4125b1:0x86},_0x97660b=_0x3ee4d3;return this['record'](_0x97660b(_0x41b905._0x2ea746),[_0x3ff231]),this[_0x97660b(_0x41b905._0x20f5f2)][_0x97660b(_0x41b905._0x4125b1)]??'';}async[_0x3ee4d3(0x8a)](_0x397581){const _0x209213={_0x3afc9d:0xef,_0x3dedd9:0xf3},_0x2ba2cc=_0x3ee4d3;return this[_0x2ba2cc(_0x209213._0x3afc9d)]('checkedState',[_0x397581]),this[_0x2ba2cc(_0x209213._0x3dedd9)]['checkedStateByDefault']??null;}async[_0x3ee4d3(0xda)](_0x1f8ff0){const _0x1e029f={_0x1df9ba:0xef,_0x41bda8:0xda,_0x314481:0xf3,_0x58bf07:0xba},_0x261b75=_0x3ee4d3;return this[_0x261b75(_0x1e029f._0x1df9ba)](_0x261b75(_0x1e029f._0x41bda8),[_0x1f8ff0]),this[_0x261b75(_0x1e029f._0x314481)][_0x261b75(_0x1e029f._0x58bf07)]??!![];}async[_0x3ee4d3(0xe0)](_0x52e0d5){const _0x4c629f={_0x522c6c:0xef,_0x276e5d:0xe0,_0x30786c:0xf3,_0x11abd6:0x94},_0x470dc0=_0x3ee4d3;return this[_0x470dc0(_0x4c629f._0x522c6c)](_0x470dc0(_0x4c629f._0x276e5d),[_0x52e0d5]),this[_0x470dc0(_0x4c629f._0x30786c)][_0x470dc0(_0x4c629f._0x11abd6)]??![];}async[_0x3ee4d3(0xb8)](_0x3d49b1,_0x46e621){const _0xadf2dd={_0x8bea3f:0xef,_0x143d36:0x9f},_0x161c2d=_0x3ee4d3;return this[_0x161c2d(_0xadf2dd._0x8bea3f)]('getAttribute',[_0x3d49b1,_0x46e621]),this['behavior'][_0x161c2d(_0xadf2dd._0x143d36)]?.[_0x46e621]??null;}async[_0x3ee4d3(0xe5)](_0xbbd067,_0x293834){const _0x507387={_0x43b3cc:0xef},_0x201b4a=_0x3ee4d3;this[_0x201b4a(_0x507387._0x43b3cc)](_0x201b4a(0xe5),[_0xbbd067,_0x293834]);}async[_0x3ee4d3(0x9b)](_0xff1982,_0x4751c1){const _0x3d77f6={_0x492a0d:0xef},_0x232af5=_0x3ee4d3;this[_0x232af5(_0x3d77f6._0x492a0d)]('waitForUrl',[_0xff1982,_0x4751c1]);}async[_0x3ee4d3(0x8d)](_0x3a0e9b,_0x3945db){const _0x49761d={_0x68d82c:0x8d},_0x242c55=_0x3ee4d3;this[_0x242c55(0xef)](_0x242c55(_0x49761d._0x68d82c),[_0x3a0e9b,_0x3945db]);}async[_0x3ee4d3(0xb3)](_0x598c08){const _0x4c0cd2=_0x3ee4d3;this[_0x4c0cd2(0xef)](_0x4c0cd2(0xb3),[_0x598c08]);}async[_0x3ee4d3(0xc0)](_0x55ad23,_0x2f6c28){const _0x31b997={_0x35286a:0xef},_0x1e29ee=_0x3ee4d3;this[_0x1e29ee(_0x31b997._0x35286a)](_0x1e29ee(0xc0),[_0x55ad23,_0x2f6c28]);}async[_0x3ee4d3(0xe2)](_0x101909,_0x4a247a){const _0x25e186={_0xce079f:0xe2},_0x479c51=_0x3ee4d3;this['record'](_0x479c51(_0x25e186._0xce079f),[_0x101909,_0x4a247a]),this[_0x479c51(0xb7)]=_0x101909;}async[_0x3ee4d3(0xd1)](_0x25cb4d){const _0x535617={_0x2179e2:0xd1},_0x54531=_0x3ee4d3;this['record'](_0x54531(_0x535617._0x2179e2),[_0x25cb4d]);}async['goBack'](_0x5e8cc0){const _0x5da80a={_0x1c9fdb:0xa9},_0x1bddb6=_0x3ee4d3;this['record'](_0x1bddb6(_0x5da80a._0x1c9fdb),[_0x5e8cc0]);}async['goForward'](_0x5934e5){const _0xb39a0d=_0x3ee4d3;this[_0xb39a0d(0xef)](_0xb39a0d(0x9e),[_0x5934e5]);}async[_0x3ee4d3(0xa4)](_0x4a30fc){const _0x5386a1={_0x4d1890:0xef},_0x21cf60=_0x3ee4d3;return this[_0x21cf60(_0x5386a1._0x4d1890)]('evaluate',[_0x4a30fc]),void 0x0;}async[_0x3ee4d3(0xbe)](_0x3a7c57,_0x181056){const _0x159c53={_0x4407ce:0xbe},_0x4822a6=_0x3ee4d3;return this[_0x4822a6(0xef)](_0x4822a6(_0x159c53._0x4407ce),[_0x3a7c57,_0x181056]),void 0x0;}async[_0x3ee4d3(0xbd)](_0x395231){const _0xd81f5={_0xfccb63:0xbd,_0x559ee2:0xc5,_0x5cd6f7:0xab,_0x393079:0xf3,_0x90c046:0xeb},_0x41e943=_0x3ee4d3;this[_0x41e943(0xef)](_0x41e943(_0xd81f5._0xfccb63),[_0x395231]);if(_0x395231[_0x41e943(_0xd81f5._0x559ee2)][_0x41e943(_0xd81f5._0x5cd6f7)]!==0x1||_0x395231[_0x41e943(0xc5)][0x0][_0x41e943(0x8e)]!=='ref')return null;const _0x4d6aae=_0x395231[_0x41e943(0xc5)][0x0]['ref'],_0x8d41c2=this[_0x41e943(_0xd81f5._0x393079)][_0x41e943(_0xd81f5._0x90c046)]?.[_0x4d6aae];return _0x8d41c2??null;}async[_0x3ee4d3(0xec)](_0x198335){const _0x43f474={_0x3032a2:0xef},_0x101e37=_0x3ee4d3;return this[_0x101e37(_0x43f474._0x3032a2)](_0x101e37(0xec),[_0x198335]),Buffer['from']('fake-png');}async[_0x3ee4d3(0xee)](_0x2a0cf4){const _0x73dbcb={_0x2257b9:0xef,_0x310aa7:0xee,_0x3203e2:0xc5,_0x132824:0xab,_0x12c4de:0x8e,_0x4dbad2:0xd3,_0x1b0ee0:0xc5,_0x3cd774:0xde},_0x16adc7=_0x3ee4d3;this[_0x16adc7(_0x73dbcb._0x2257b9)](_0x16adc7(_0x73dbcb._0x310aa7),[_0x2a0cf4]);if(_0x2a0cf4[_0x16adc7(_0x73dbcb._0x3203e2)][_0x16adc7(_0x73dbcb._0x132824)]===0x1&&_0x2a0cf4[_0x16adc7(0xc5)][0x0][_0x16adc7(_0x73dbcb._0x12c4de)]===_0x16adc7(_0x73dbcb._0x4dbad2)){const _0x426fae=_0x2a0cf4[_0x16adc7(_0x73dbcb._0x1b0ee0)][0x0][_0x16adc7(0xd3)];return this[_0x16adc7(0xf3)]['outerHtmlByRef']?.[_0x426fae]??_0x16adc7(0xcd)+_0x426fae+_0x16adc7(_0x73dbcb._0x3cd774);}return'<div></div>';}},FakeContext=class{constructor(_0x1173f5,_0x26e5cb,_0x239742){const _0x427318={_0x1c3098:0xc9,_0x29a936:0xc6,_0x560d75:0xca,_0xb7dd7d:0x99},_0x3cefd4={_0x41a95e:0xd9},_0x48f87e=_0x3ee4d3;this[_0x48f87e(0x87)]=_0x1173f5,this['behavior']=_0x26e5cb,this[_0x48f87e(0xa8)]=_0x239742;const _0x1f76c5=new FakePage(_0x1173f5,_0x26e5cb,_0x239742+_0x48f87e(0xae),_0x26e5cb['initialUrl']??_0x48f87e(_0x427318._0x1c3098));_0x26e5cb[_0x48f87e(_0x427318._0x29a936)]&&(_0x1f76c5[_0x48f87e(0xd4)]=()=>{const _0x1b6448=_0x48f87e;this[_0x1b6448(_0x3cefd4._0x41a95e)](_0x26e5cb[_0x1b6448(0xc6)]);}),this[_0x48f87e(0xa5)]=[_0x1f76c5],this[_0x48f87e(_0x427318._0x560d75)]={..._0x26e5cb[_0x48f87e(0xad)]??{}},this[_0x48f87e(0xcc)]={..._0x26e5cb[_0x48f87e(_0x427318._0xb7dd7d)]??{}};}[_0x3ee4d3(0x87)];[_0x3ee4d3(0xf3)];['scope'];static{__name(this,_0x3ee4d3(0xb5));}['pageList'];[_0x3ee4d3(0xc7)]=0x0;['frameStack']=[];[_0x3ee4d3(0xca)];['cookieState'];['newPageListeners']=new Set();[_0x3ee4d3(0xef)](_0x6bc70,_0x3846d4){const _0x408511={_0x5d7473:0x87,_0x114bf3:0xa8},_0x7fd5=_0x3ee4d3;this[_0x7fd5(_0x408511._0x5d7473)]['push']({'scope':this[_0x7fd5(_0x408511._0x114bf3)],'method':_0x6bc70,'args':_0x3846d4});}['pages'](){const _0x494481={_0x3cc758:0xa5},_0x4d3866=_0x3ee4d3;return this[_0x4d3866(_0x494481._0x3cc758)];}[_0x3ee4d3(0xd0)](){const _0x3cae4a={_0x3854af:0xc7,_0x44d38d:0xd2,_0x196689:0xc7},_0x433e88=_0x3ee4d3,_0xd2a027=this['pageList'][this[_0x433e88(_0x3cae4a._0x3854af)]];if(!_0xd2a027)throw new DriverError(_0x433e88(_0x3cae4a._0x44d38d),{'activeIdx':this[_0x433e88(_0x3cae4a._0x196689)]});return _0xd2a027;}[_0x3ee4d3(0xcf)](){const _0x4406e1={_0x1cfe1c:0xcf},_0x364d16=_0x3ee4d3;return this['behavior'][_0x364d16(_0x4406e1._0x1cfe1c)]??[];}[_0x3ee4d3(0xa3)](){const _0x197886=_0x3ee4d3;return this[_0x197886(0xf3)][_0x197886(0xa3)]??[];}async[_0x3ee4d3(0xc4)](_0x542e46){const _0x13f0d3={_0x13f046:0xab},_0x4ad64c=_0x3ee4d3;this[_0x4ad64c(0xef)]('setActivePage',[_0x542e46]);if(_0x542e46<0x0||_0x542e46>=this['pageList'][_0x4ad64c(0xab)])throw new DriverError(_0x4ad64c(0xc8),{'index':_0x542e46,'available':this['pageList'][_0x4ad64c(0xab)]});this['activeIdx']=_0x542e46,this['frameStack'][_0x4ad64c(_0x13f0d3._0x13f046)]=0x0;}[_0x3ee4d3(0xed)](_0x2eaabd){const _0x5f5aa7=_0x3ee4d3;return subscribe(this[_0x5f5aa7(0xc3)],_0x2eaabd);}[_0x3ee4d3(0xd9)](_0x3bbddd){const _0x7acd83={_0x44b6a0:0xbb,_0x2bdab8:0xab,_0x22323d:0x87,_0x1feff3:0xa5,_0x540cf6:0xc3},_0x75a475=_0x3ee4d3,_0x251c21=this[_0x75a475(0xa8)]+_0x75a475(_0x7acd83._0x44b6a0)+this[_0x75a475(0xa5)][_0x75a475(_0x7acd83._0x2bdab8)],_0x2bc245=new FakePage(this[_0x75a475(_0x7acd83._0x22323d)],this['behavior'],_0x251c21,_0x3bbddd);this['pageList'][_0x75a475(0xce)](_0x2bc245);const _0x668062=this[_0x75a475(_0x7acd83._0x1feff3)][_0x75a475(_0x7acd83._0x2bdab8)]-0x1;for(const _0xb9d3f5 of this[_0x75a475(_0x7acd83._0x540cf6)]){try{_0xb9d3f5({'index':_0x668062,'url':_0x3bbddd});}catch{}}return _0x668062;}[_0x3ee4d3(0x9a)](_0x2aec07){const _0x49ea45={_0x524242:0xa5},_0x45b2be=_0x3ee4d3;if(_0x2aec07<0x0||_0x2aec07>=this[_0x45b2be(_0x49ea45._0x524242)][_0x45b2be(0xab)])throw new DriverError(_0x45b2be(0xc8),{'index':_0x2aec07,'available':this['pageList'][_0x45b2be(0xab)]});this[_0x45b2be(0xa5)]['splice'](_0x2aec07,0x1);}async[_0x3ee4d3(0xd5)](_0x2290ce){const _0xfbe989={_0x3b320f:0xef,_0x1b7fde:0xdb},_0x57e7e9=_0x3ee4d3;this[_0x57e7e9(_0xfbe989._0x3b320f)](_0x57e7e9(0xd5),[_0x2290ce]);if(!_0x2290ce[_0x57e7e9(0xc5)][_0x57e7e9(0xab)])throw new LocatorError(_0x57e7e9(0x98),{'locator':_0x2290ce});this[_0x57e7e9(_0xfbe989._0x1b7fde)][_0x57e7e9(0xce)](_0x2290ce);}async['exitFrame'](){const _0x2c3366={_0x2657d7:0xf5},_0x5a0fc9=_0x3ee4d3;this[_0x5a0fc9(0xef)]('exitFrame',[]);if(this[_0x5a0fc9(0xdb)]['length']===0x0)throw new DriverError(_0x5a0fc9(_0x2c3366._0x2657d7),{});this['frameStack'][_0x5a0fc9(0xaf)]();}async[_0x3ee4d3(0x8c)](_0xe5efe2,_0x51b75d){const _0x5bef73={_0x19ad86:0x8c,_0x4f8783:0xca},_0x3d7c1b=_0x3ee4d3;this[_0x3d7c1b(0xef)](_0x3d7c1b(_0x5bef73._0x19ad86),[_0xe5efe2,_0x51b75d]),this[_0x3d7c1b(_0x5bef73._0x4f8783)][_0xe5efe2]=_0x51b75d;}async[_0x3ee4d3(0x9c)](_0x23a1a4){const _0x201b39=_0x3ee4d3;return this['record']('getLocalStorage',[_0x23a1a4]),this[_0x201b39(0xca)][_0x23a1a4]??null;}async['setCookie'](_0x3ee2d3,_0x1205a4,_0x259516){const _0x52651e={_0xde8c30:0xef,_0xee960e:0xcc},_0x547a1a=_0x3ee4d3;this[_0x547a1a(_0x52651e._0xde8c30)](_0x547a1a(0xa1),[_0x3ee2d3,_0x1205a4,_0x259516]),this[_0x547a1a(_0x52651e._0xee960e)][_0x3ee2d3]=_0x1205a4;}async[_0x3ee4d3(0xcb)](_0xdbb07b){const _0x19f8d6={_0x26aeeb:0xef,_0x22bcb7:0xcb,_0x2825e8:0xcc},_0x20265e=_0x3ee4d3;return this[_0x20265e(_0x19f8d6._0x26aeeb)](_0x20265e(_0x19f8d6._0x22bcb7),[_0xdbb07b]),this[_0x20265e(_0x19f8d6._0x2825e8)][_0xdbb07b]??null;}async[_0x3ee4d3(0x92)](_0x2652f1){const _0x42765f=_0x3ee4d3;this['record'](_0x42765f(0x92),[_0x2652f1]);}async[_0x3ee4d3(0xa4)](_0x4cf225){const _0x117350=_0x3ee4d3;return this[_0x117350(0xef)]('evaluate',[_0x4cf225]),void 0x0;}async[_0x3ee4d3(0xe4)](){const _0x4c82e0=_0x3ee4d3;this[_0x4c82e0(0xef)]('close',[]);}[_0x3ee4d3(0xf0)](){const _0x3faf5d=_0x3ee4d3;return this[_0x3faf5d(0xdb)][_0x3faf5d(0xab)];}},FakeWebDriver=class{constructor(_0x45c1f7={}){const _0x4d2e73={_0x9dd4aa:0x87},_0x5d2623=_0x3ee4d3;this[_0x5d2623(0xf3)]=_0x45c1f7,this[_0x5d2623(_0x4d2e73._0x9dd4aa)]=createRecorder();}[_0x3ee4d3(0xf3)];static{__name(this,_0x3ee4d3(0xa6));}[_0x3ee4d3(0xea)]=![];['recorder'];['contexts']=[];async[_0x3ee4d3(0xdd)](_0x18ce05){const _0x2a62ae={_0x273b3b:0x87},_0xdeb408=_0x3ee4d3;this[_0xdeb408(_0x2a62ae._0x273b3b)]['push']({'scope':_0xdeb408(0xf2),'method':'launch','args':[_0x18ce05]}),this[_0xdeb408(0xea)]=!![];}async['newContext'](_0x10a385){const _0x500b54={_0x5538c1:0x87,_0x135c47:0xce,_0x5d1dda:0xea,_0x5d6efb:0x9d,_0x57d4e2:0xf3,_0x2f2322:0xaa},_0x21e7cb=_0x3ee4d3;this[_0x21e7cb(_0x500b54._0x5538c1)][_0x21e7cb(_0x500b54._0x135c47)]({'scope':_0x21e7cb(0xf2),'method':_0x21e7cb(0xbf),'args':[_0x10a385]});if(!this[_0x21e7cb(_0x500b54._0x5d1dda)])throw new DriverError(_0x21e7cb(_0x500b54._0x5d6efb),{});const _0x3addb7=new FakeContext(this[_0x21e7cb(_0x500b54._0x5538c1)],this[_0x21e7cb(_0x500b54._0x57d4e2)],'ctx'+this[_0x21e7cb(_0x500b54._0x2f2322)]['length']);return this[_0x21e7cb(0xaa)][_0x21e7cb(0xce)](_0x3addb7),_0x3addb7;}async[_0x3ee4d3(0xe4)](){const _0x435ddb={_0x1d94e8:0x87,_0x4bc078:0xe4,_0x5184cf:0xea},_0x49eb7f=_0x3ee4d3;this[_0x49eb7f(_0x435ddb._0x1d94e8)][_0x49eb7f(0xce)]({'scope':'driver','method':_0x49eb7f(_0x435ddb._0x4bc078),'args':[]}),this[_0x49eb7f(_0x435ddb._0x5184cf)]=![];}[_0x3ee4d3(0xa2)](){return void 0x0;}async[_0x3ee4d3(0xf1)](){const _0x17cb72=_0x3ee4d3;throw new DriverError(_0x17cb72(0xb1),{});}['attachExisting'](){throw new DriverError('attachExisting\x20not\x20supported\x20by\x20FakeWebDriver',{});}[_0x3ee4d3(0xac)](){const _0x7d5108=_0x3ee4d3;return this[_0x7d5108(0x87)]['calls']();}['callsFor'](_0x4f95e3){const _0x3ad89d={_0x11164e:0x87},_0x18577d=_0x3ee4d3;return this[_0x18577d(_0x3ad89d._0x11164e)][_0x18577d(0xac)]()['filter'](_0x244fb4=>_0x244fb4[_0x18577d(0x88)]===_0x4f95e3);}};export{FakeWebDriver};
|
|
1
|
+
const _0x2c3ac0=_0x561f;(function(_0x337cf5,_0xdc7271){const _0x143fde={_0x360ea6:0x191,_0x392592:0x14c,_0x46b261:0x1a3,_0x31b62f:0x1a4,_0x5ca20f:0x188},_0x4c36f7=_0x561f,_0x95e2b9=_0x337cf5();while(!![]){try{const _0x29a8e7=-parseInt(_0x4c36f7(_0x143fde._0x360ea6))/0x1*(-parseInt(_0x4c36f7(0x17d))/0x2)+-parseInt(_0x4c36f7(_0x143fde._0x392592))/0x3+parseInt(_0x4c36f7(0x170))/0x4*(parseInt(_0x4c36f7(_0x143fde._0x46b261))/0x5)+parseInt(_0x4c36f7(0x19c))/0x6+parseInt(_0x4c36f7(0x135))/0x7*(parseInt(_0x4c36f7(_0x143fde._0x31b62f))/0x8)+parseInt(_0x4c36f7(_0x143fde._0x5ca20f))/0x9*(parseInt(_0x4c36f7(0x169))/0xa)+-parseInt(_0x4c36f7(0x13d))/0xb;if(_0x29a8e7===_0xdc7271)break;else _0x95e2b9['push'](_0x95e2b9['shift']());}catch(_0x5a6926){_0x95e2b9['push'](_0x95e2b9['shift']());}}}(_0x16c1,0xa88a5));var __defProp=Object[_0x2c3ac0(0x18e)],__name=(_0x988574,_0x3cc0b3)=>__defProp(_0x988574,_0x2c3ac0(0x14a),{'value':_0x3cc0b3,'configurable':!![]});function subscribe(_0x31f671,_0x38178e){const _0x5eefba={_0x3d5e29:0x143},_0x34f4fd=_0x2c3ac0;return _0x31f671[_0x34f4fd(_0x5eefba._0x3d5e29)](_0x38178e),()=>{const _0x371216=_0x34f4fd;_0x31f671[_0x371216(0x16c)](_0x38178e);};}__name(subscribe,_0x2c3ac0(0x1a0));function _0x561f(_0x37fada,_0x46b0b6){_0x37fada=_0x37fada-0x12b;const _0x16c15c=_0x16c1();let _0x561fb6=_0x16c15c[_0x37fada];if(_0x561f['IeSitP']===undefined){var _0x24bea4=function(_0xb8518b){const _0x4252a1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x988574='',_0x3cc0b3='';for(let _0x31f671=0x0,_0x38178e,_0x351ecc,_0x14e6cf=0x0;_0x351ecc=_0xb8518b['charAt'](_0x14e6cf++);~_0x351ecc&&(_0x38178e=_0x31f671%0x4?_0x38178e*0x40+_0x351ecc:_0x351ecc,_0x31f671++%0x4)?_0x988574+=String['fromCharCode'](0xff&_0x38178e>>(-0x2*_0x31f671&0x6)):0x0){_0x351ecc=_0x4252a1['indexOf'](_0x351ecc);}for(let _0x121a1b=0x0,_0x530251=_0x988574['length'];_0x121a1b<_0x530251;_0x121a1b++){_0x3cc0b3+='%'+('00'+_0x988574['charCodeAt'](_0x121a1b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3cc0b3);};_0x561f['DwlsTr']=_0x24bea4,_0x561f['eJvLZu']={},_0x561f['IeSitP']=!![];}const _0x10cb7b=_0x16c15c[0x0],_0x29bf09=_0x37fada+_0x10cb7b,_0x16b210=_0x561f['eJvLZu'][_0x29bf09];return!_0x16b210?(_0x561fb6=_0x561f['DwlsTr'](_0x561fb6),_0x561f['eJvLZu'][_0x29bf09]=_0x561fb6):_0x561fb6=_0x16b210,_0x561fb6;}import{UnotestError}from'@unotest/core';function _0x16c1(){const _0x5c5317=['D2fPDezVCLrLEhq','Aw5WDxrwywX1zq','ChvZAa','Dgv4DenVBNrLBNrcEurLzMf1Bhq','ntGXB0TSA1vQ','D2fPDezVCLvYBa','z29cywnR','BMv3q29UDgv4DcbJywXSzwqGyMvMB3jLigXHDw5JAcGP','CgfNzsbPBMrLEcbVDxqGB2yGCMfUz2u','zg91yMXLq2XPy2S','iJ48l2rPDJ4','tg9JyxrVCKvYCM9Y','mZmYotm0otfuvMvKr0W','yxr0CMLIDxrLC0j5rgvMyxvSDa','zMfRzs1WBMC','zhjPDMvY','y2XPy2S','CgfNzxm','ywrK','zxHPDezYyw1L','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','rMfRzunVBNrLEhq','Bwf5yMvuAhjVDW','C2vSzwn0t3b0Aw9U','ywn0AxzLswr4','BMfTzq','y2HLy2S','nZmYmteXt0Dyu29W','zw50zxjgCMfTzq','BgvUz3rO','B25bzNrLCKnSAwnR','AxneAxnHyMXLza','y2HLy2TLzfn0yxrL','D2fPDezVCG','z29gB3j3yxjK','y291BNrcEurLzMf1Bhq','zNjHBwvtDgfJAW','y3vYCMvUDfvYBa','AxnwAxnPyMXLqNLezwzHDwX0','z2v0qxr0CMLIDxrL','y29VA2LLCW','y2fSBhm','Cg9WDxbpBKnSAwnR','Bwv0Ag9K','z2v0q29VA2LL','C2v0q29VA2LL','Aw5WDxrwywX1zuj5rgvMyxvSDa','zxjYB3jpBK5LEhrby3rPB24','DgL0Bgu','zMfRzsb0AxrSzq','y29UDgv4Dhm','CMvSB2fK','z2v0tg9JywXtDg9YywDL','y29UC29SzuvUDhjPzxm','C3rLChm','Dgv4DenVBNrLBNq','mZaWBeTLzM5o','y2XVC2vgywTLugfNzq','B3v0zxjive1m','zgvSzxrL','ChjLC3m','y3r4','yxr0ywnOrxHPC3rPBMC','mtC4odqYoer6u3rVsG','C2nYB2XSsw50B1zPzxC','y29UBMvJDfnOyxjLzcbUB3qGC3vWCg9YDgvKigj5iezHA2vxzwjeCML2zxi','C2nVCgu','zw1PDezHA2vqB3b1Ca','ywn0AxzLugfNzq','Ag92zxi','CMvJB3jK','zwXLBwvUDeHPBNrcEvjLzG','Bgf1BMnO','A2LUza','zMLSBa','zxzHBhvHDgu','mta1ody2wen6qwXg','Dw5JAgvJAW','z290BW','zNjHBwvezxb0Aa','AxneAxnHyMXLzej5rgvMyxvSDa','y3jLyxrLuMvJB3jKzxi','C2v0qwn0AxzLugfNzq','y2HLy2TLzfn0yxrLqNLezwzHDwX0','CMvM','yMvOyxzPB3i','pgrPDIbKyxrHlxvUB3rLC3qTCMvMpsi','mtK3mZyXA1jMqxPw','Cg9W','zxzHBhvHDgvpBKXVy2f0B3i','CgfNzuXPC3q','y291BNq','rhjPDMvYrxjYB3i','zgvMAw5LuhjVCgvYDhK','rMfRzvbHz2u','DxbSB2fKrMLSzq','mNPdreHtuW','y29UBMvJDfnOyxjLza','Bg9JywXtDg9YywDLu3rHDgu','zMLSDgvY','y29VA2LLu3rHDgu','BM8Gywn0AxzLihbHz2uGAw4Gy29UDgv4Da','BMv3q29UDgv4Da','D2fPDezVCKXVywrtDgf0zq','BMv3ugfNzuXPC3rLBMvYCW','D2fPDezVCK5HDMLNyxrPB24','y2XVC2u','mZGXntKXmhvNquPpAW','lNbHz2uW','Bg9JywXtDg9YywDL','zhjHz0fUzerYB3a','C3vIC2nYAwjL','B3v0zxjiDg1SqNLszwy','AxnwAxnPyMXL','mtvkEuf3txy','mte3ntKYy29Wv0nA','C2v0tg9JywXtDg9YywDL','BMv0D29YA0vUDhjPzxm','y2XPCgjVyxjKugfZDgu','CMvJB3jKzxi','C2f2zvn0B3jHz2vtDgf0zq','Bgf1BMnOzwq','Aw5ZCgvJDevSzw1LBNq'];_0x16c1=function(){return _0x5c5317;};return _0x16c1();}var DriverError=class extends UnotestError{static{__name(this,_0x2c3ac0(0x18d));}},LocatorError=class extends UnotestError{static{__name(this,_0x2c3ac0(0x13c));}};function createRecorder(){const _0x2ace38=_0x2c3ac0,_0x351ecc=[];let _0x14e6cf=0x0;return{'push':__name(_0x121a1b=>_0x351ecc['push']({..._0x121a1b,'seq':_0x14e6cf++}),_0x2ace38(0x133)),'calls':__name(()=>_0x351ecc,_0x2ace38(0x15a))};}__name(createRecorder,_0x2c3ac0(0x182));var FakePage=class{constructor(_0x530251,_0x12389a,_0x3b6497,_0x161823){const _0x32464f={_0x26eab2:0x173,_0x306c3c:0x156},_0x4717ec=_0x2c3ac0;this[_0x4717ec(0x12d)]=_0x530251,this['behavior']=_0x12389a,this[_0x4717ec(_0x32464f._0x26eab2)]=_0x3b6497,this[_0x4717ec(_0x32464f._0x306c3c)]=_0x161823;}[_0x2c3ac0(0x12d)];[_0x2c3ac0(0x186)];[_0x2c3ac0(0x173)];static{__name(this,_0x2c3ac0(0x18f));}[_0x2c3ac0(0x156)];[_0x2c3ac0(0x14f)];['record'](_0x2fdc04,_0x1b95e2){const _0x4e1795={_0x2bda43:0x12d},_0x2b0e01=_0x2c3ac0;this[_0x2b0e01(_0x4e1795._0x2bda43)]['push']({'scope':this[_0x2b0e01(0x173)],'method':_0x2fdc04,'args':_0x1b95e2});}[_0x2c3ac0(0x147)](){const _0x2ca6f5={_0x314eb8:0x186},_0x2aa6c8=_0x2c3ac0;if(this[_0x2aa6c8(0x186)]['errorOnNextAction']){const _0x5e5ccb=this[_0x2aa6c8(_0x2ca6f5._0x314eb8)][_0x2aa6c8(0x160)];this['behavior']['errorOnNextAction']=void 0x0;throw _0x5e5ccb;}}['url'](){const _0xe9d892=_0x2c3ac0;return this[_0xe9d892(0x156)];}async[_0x2c3ac0(0x161)](){const _0xe7af={_0x43413e:0x177,_0x12d95f:0x161,_0x482c36:0x162},_0x411f59=_0x2c3ac0;return this[_0x411f59(_0xe7af._0x43413e)](_0x411f59(_0xe7af._0x12d95f),[]),_0x411f59(_0xe7af._0x482c36);}async[_0x2c3ac0(0x141)](_0x57d80f,_0x1bbdce){const _0x5e8096={_0x181384:0x177,_0x5bd7b6:0x141,_0xeb5631:0x147,_0x4a4e1e:0x14f},_0x314554=_0x2c3ac0;this[_0x314554(_0x5e8096._0x181384)](_0x314554(_0x5e8096._0x5bd7b6),[_0x57d80f,_0x1bbdce]),this[_0x314554(_0x5e8096._0xeb5631)](),this[_0x314554(_0x5e8096._0x4a4e1e)]?.();}async[_0x2c3ac0(0x13a)](_0x33f53d,_0x20c1c8){const _0xeed0a4={_0x3c48de:0x177,_0x54de19:0x147},_0x57d2ea=_0x2c3ac0;this[_0x57d2ea(_0xeed0a4._0x3c48de)]('doubleClick',[_0x33f53d,_0x20c1c8]),this[_0x57d2ea(_0xeed0a4._0x54de19)]();}async[_0x2c3ac0(0x17b)](_0x52e994,_0x555c41,_0x40d4c0){const _0x107e7a={_0x35221a:0x17b},_0x15f7a8=_0x2c3ac0;this[_0x15f7a8(0x177)](_0x15f7a8(_0x107e7a._0x35221a),[_0x52e994,_0x555c41,_0x40d4c0]),this[_0x15f7a8(0x147)]();}async[_0x2c3ac0(0x16d)](_0x3384e4,_0x53c19d,_0x30a693){const _0x19cd51=_0x2c3ac0;this['record'](_0x19cd51(0x16d),[_0x3384e4,_0x53c19d,_0x30a693]),this['maybeThrow']();}async[_0x2c3ac0(0x14b)](_0x4017c8,_0xd965d1){const _0x587d26={_0x3ed379:0x177,_0x43360e:0x14b},_0x24c860=_0x2c3ac0;this[_0x24c860(_0x587d26._0x3ed379)](_0x24c860(_0x587d26._0x43360e),[_0x4017c8,_0xd965d1]),this[_0x24c860(0x147)]();}async[_0x2c3ac0(0x17e)](_0x2c6cd8,_0x432236){const _0x130304={_0x54dbf5:0x177,_0x282ca5:0x17e,_0x5aca82:0x147},_0x37a7f3=_0x2c3ac0;this[_0x37a7f3(_0x130304._0x54dbf5)](_0x37a7f3(_0x130304._0x282ca5),[_0x2c6cd8,_0x432236]),this[_0x37a7f3(_0x130304._0x5aca82)]();}async[_0x2c3ac0(0x148)](_0x3a7f20,_0x5a34b6,_0x2bc730){const _0x23e245=_0x2c3ac0;this[_0x23e245(0x177)]('selectOption',[_0x3a7f20,_0x5a34b6,_0x2bc730]),this[_0x23e245(0x147)]();}async[_0x2c3ac0(0x176)](_0x5c6520,_0x231fca){const _0x13b245={_0x190600:0x177,_0x26d696:0x176},_0x288d6a=_0x2c3ac0;this[_0x288d6a(_0x13b245._0x190600)](_0x288d6a(_0x13b245._0x26d696),[_0x5c6520,_0x231fca]),this[_0x288d6a(0x147)]();}async[_0x2c3ac0(0x171)](_0x373278){const _0x365bb3={_0x1493e6:0x171,_0xdebf84:0x147},_0x38a654=_0x2c3ac0;this['record'](_0x38a654(_0x365bb3._0x1493e6),[_0x373278]),this[_0x38a654(_0x365bb3._0xdebf84)]();}async[_0x2c3ac0(0x19f)](_0x182170,_0xf69e69,_0xbee484){const _0x2a0d61={_0x4b6383:0x147},_0x24b71f=_0x2c3ac0;this[_0x24b71f(0x177)](_0x24b71f(0x19f),[_0x182170,_0xf69e69,_0xbee484]),this[_0x24b71f(_0x2a0d61._0x4b6383)]();}async[_0x2c3ac0(0x190)](_0x5f2f87,_0x339a2e){const _0x4d3e76={_0x222f33:0x177,_0x58308e:0x190},_0x3d8b4c=_0x2c3ac0;this[_0x3d8b4c(_0x4d3e76._0x222f33)](_0x3d8b4c(_0x4d3e76._0x58308e),[_0x5f2f87,_0x339a2e]),this[_0x3d8b4c(0x147)]();}async[_0x2c3ac0(0x12c)](_0x137774,_0x5945bb){const _0x4a3d5c=_0x2c3ac0;this['record'](_0x4a3d5c(0x12c),[_0x137774,_0x5945bb]),this['maybeThrow']();}async[_0x2c3ac0(0x18c)](_0x5f0a2f){const _0x50769b={_0x37c2e7:0x154},_0xca654c=_0x2c3ac0;return this[_0xca654c(0x177)](_0xca654c(0x18c),[_0x5f0a2f]),this[_0xca654c(0x186)][_0xca654c(_0x50769b._0x37c2e7)]??0x1;}async[_0x2c3ac0(0x168)](_0x503a19){const _0x58b61c={_0x53716a:0x186,_0xc66d8a:0x134},_0x22c4a6=_0x2c3ac0;return this[_0x22c4a6(0x177)](_0x22c4a6(0x168),[_0x503a19]),this[_0x22c4a6(_0x58b61c._0x53716a)][_0x22c4a6(_0x58b61c._0xc66d8a)]??'';}async['inputValue'](_0x4af890){const _0x23161b={_0x1e6678:0x177,_0x4e25e8:0x132,_0x2c08dd:0x15f},_0x4b4764=_0x2c3ac0;return this[_0x4b4764(_0x23161b._0x1e6678)](_0x4b4764(_0x23161b._0x4e25e8),[_0x4af890]),this[_0x4b4764(0x186)][_0x4b4764(_0x23161b._0x2c08dd)]??'';}async[_0x2c3ac0(0x151)](_0x23e18d){const _0x5cde1e={_0x3c1481:0x151,_0x8c5086:0x184},_0x27034e=_0x2c3ac0;return this[_0x27034e(0x177)](_0x27034e(_0x5cde1e._0x3c1481),[_0x23e18d]),this['behavior'][_0x27034e(_0x5cde1e._0x8c5086)]??null;}async[_0x2c3ac0(0x1a2)](_0x3a7d14){const _0x3fa527={_0x51a401:0x1a2,_0x4879ce:0x157},_0x2c7845=_0x2c3ac0;return this[_0x2c7845(0x177)](_0x2c7845(_0x3fa527._0x51a401),[_0x3a7d14]),this[_0x2c7845(0x186)][_0x2c7845(_0x3fa527._0x4879ce)]??!![];}async[_0x2c3ac0(0x150)](_0x459b13){const _0x101f65={_0x149f70:0x150,_0x18ff31:0x186,_0x544b82:0x181},_0x62dbba=_0x2c3ac0;return this[_0x62dbba(0x177)](_0x62dbba(_0x101f65._0x149f70),[_0x459b13]),this[_0x62dbba(_0x101f65._0x18ff31)][_0x62dbba(_0x101f65._0x544b82)]??![];}async[_0x2c3ac0(0x158)](_0xd68c2d,_0x1e546c){const _0x2ba34b=_0x2c3ac0;return this[_0x2ba34b(0x177)](_0x2ba34b(0x158),[_0xd68c2d,_0x1e546c]),this['behavior'][_0x2ba34b(0x13e)]?.[_0x1e546c]??null;}async['waitFor'](_0x28dcdf,_0x8a7223){const _0x3dbf2f={_0x20c88c:0x177},_0x5f222d=_0x2c3ac0;this[_0x5f222d(_0x3dbf2f._0x20c88c)](_0x5f222d(0x152),[_0x28dcdf,_0x8a7223]);}async[_0x2c3ac0(0x136)](_0x507768,_0x3ff1eb){const _0x490f3a={_0x11c89a:0x177},_0x83d0a5=_0x2c3ac0;this[_0x83d0a5(_0x490f3a._0x11c89a)](_0x83d0a5(0x136),[_0x507768,_0x3ff1eb]);}async[_0x2c3ac0(0x131)](_0x414d7e,_0xd21442){const _0x4fb38a={_0x571b2b:0x131},_0x6f2c13=_0x2c3ac0;this['record'](_0x6f2c13(_0x4fb38a._0x571b2b),[_0x414d7e,_0xd21442]);}async[_0x2c3ac0(0x19a)](_0x31c17d){const _0x3ef88a=_0x2c3ac0;this['record'](_0x3ef88a(0x19a),[_0x31c17d]);}async[_0x2c3ac0(0x198)](_0xd3152f,_0x2a4a5a){const _0x5a0208=_0x2c3ac0;this[_0x5a0208(0x177)](_0x5a0208(0x198),[_0xd3152f,_0x2a4a5a]);}async[_0x2c3ac0(0x17f)](_0x3b29e6,_0x399b1f){const _0x320317=_0x2c3ac0;this['record']('goto',[_0x3b29e6,_0x399b1f]),this[_0x320317(0x156)]=_0x3b29e6;}async[_0x2c3ac0(0x164)](_0x3145bb){const _0x350377={_0x477c9b:0x177},_0x531f19=_0x2c3ac0;this[_0x531f19(_0x350377._0x477c9b)](_0x531f19(0x164),[_0x3145bb]);}async[_0x2c3ac0(0x137)](_0x419f29){const _0xb812bc={_0x3ca4e7:0x137},_0x2b17fe=_0x2c3ac0;this['record'](_0x2b17fe(_0xb812bc._0x3ca4e7),[_0x419f29]);}async[_0x2c3ac0(0x153)](_0x5c6711){const _0x6198b5={_0xf94d06:0x177},_0x4271af=_0x2c3ac0;this[_0x4271af(_0x6198b5._0xf94d06)]('goForward',[_0x5c6711]);}async['evaluate'](_0x4120ee){const _0x5b9fed={_0x5f0200:0x17c},_0x23bf28=_0x2c3ac0;return this['record'](_0x23bf28(_0x5b9fed._0x5f0200),[_0x4120ee]),void 0x0;}async[_0x2c3ac0(0x18a)](_0x5d134b,_0x184635){const _0x34bbc4={_0x15f9d8:0x177},_0x2fdeb7=_0x2c3ac0;return this[_0x2fdeb7(_0x34bbc4._0x15f9d8)]('evaluateOnLocator',[_0x5d134b,_0x184635]),void 0x0;}async[_0x2c3ac0(0x130)](_0x30ffb9){const _0x21599b={_0x7da985:0x177,_0x6f99b0:0x14e,_0x18ae25:0x167,_0x4dd657:0x186},_0x3bcec1=_0x2c3ac0;this[_0x3bcec1(_0x21599b._0x7da985)](_0x3bcec1(0x130),[_0x30ffb9]);if(_0x30ffb9[_0x3bcec1(0x167)][_0x3bcec1(_0x21599b._0x6f99b0)]!==0x1||_0x30ffb9[_0x3bcec1(_0x21599b._0x18ae25)][0x0][_0x3bcec1(0x17a)]!=='ref')return null;const _0x219c1d=_0x30ffb9[_0x3bcec1(0x167)][0x0]['ref'],_0x2cdfaa=this[_0x3bcec1(_0x21599b._0x4dd657)][_0x3bcec1(0x178)]?.[_0x219c1d];return _0x2cdfaa??null;}async['screenshot'](_0x38de91){const _0x3134d9={_0x10f218:0x177,_0x3cd079:0x13f},_0x18ddab=_0x2c3ac0;return this[_0x18ddab(_0x3134d9._0x10f218)]('screenshot',[_0x38de91]),Buffer['from'](_0x18ddab(_0x3134d9._0x3cd079));}async[_0x2c3ac0(0x16b)](_0x48b088){const _0xd06b00={_0x348880:0x177,_0x5267a5:0x16b,_0x4130bc:0x17a,_0x35bd09:0x185,_0x29a474:0x167,_0x1d4fa6:0x1a1,_0x27d0b7:0x187,_0x3cc81c:0x13b},_0x392071=_0x2c3ac0;this[_0x392071(_0xd06b00._0x348880)](_0x392071(_0xd06b00._0x5267a5),[_0x48b088]);if(_0x48b088[_0x392071(0x167)][_0x392071(0x14e)]===0x1&&_0x48b088['steps'][0x0][_0x392071(_0xd06b00._0x4130bc)]===_0x392071(_0xd06b00._0x35bd09)){const _0x2746bf=_0x48b088[_0x392071(_0xd06b00._0x29a474)][0x0][_0x392071(0x185)];return this[_0x392071(0x186)][_0x392071(_0xd06b00._0x1d4fa6)]?.[_0x2746bf]??_0x392071(_0xd06b00._0x27d0b7)+_0x2746bf+_0x392071(_0xd06b00._0x3cc81c);}return'<div></div>';}},FakeContext=class{constructor(_0xa31004,_0x1307c7,_0x25a38c){const _0x3ffd4f={_0xcdab0e:0x186,_0x187968:0x193},_0x30f26a=_0x2c3ac0;this[_0x30f26a(0x12d)]=_0xa31004,this[_0x30f26a(_0x3ffd4f._0xcdab0e)]=_0x1307c7,this['scope']=_0x25a38c;const _0x45b672=new FakePage(_0xa31004,_0x1307c7,_0x25a38c+_0x30f26a(0x19d),_0x1307c7['initialUrl']??'about:blank');_0x1307c7[_0x30f26a(0x15b)]&&(_0x45b672['onAfterClick']=()=>{const _0x11debd=_0x30f26a;this[_0x11debd(0x174)](_0x1307c7['popupOnClick']);}),this[_0x30f26a(0x18b)]=[_0x45b672],this[_0x30f26a(_0x3ffd4f._0x187968)]={..._0x1307c7[_0x30f26a(0x19e)]??{}},this['cookieState']={..._0x1307c7[_0x30f26a(0x159)]??{}};}[_0x2c3ac0(0x12d)];[_0x2c3ac0(0x186)];['scope'];static{__name(this,_0x2c3ac0(0x146));}[_0x2c3ac0(0x18b)];[_0x2c3ac0(0x149)]=0x0;[_0x2c3ac0(0x155)]=[];['localStorageState'];[_0x2c3ac0(0x195)];[_0x2c3ac0(0x199)]=new Set();['record'](_0x107138,_0x455db9){const _0x5bf2dd={_0x55d442:0x133},_0x15c5db=_0x2c3ac0;this[_0x15c5db(0x12d)][_0x15c5db(_0x5bf2dd._0x55d442)]({'scope':this[_0x15c5db(0x173)],'method':_0x107138,'args':_0x455db9});}[_0x2c3ac0(0x142)](){return this['pageList'];}[_0x2c3ac0(0x175)](){const _0x206510={_0x6a4e0f:0x149,_0x2a9522:0x196},_0x4be433=_0x2c3ac0,_0x487d50=this[_0x4be433(0x18b)][this[_0x4be433(_0x206510._0x6a4e0f)]];if(!_0x487d50)throw new DriverError(_0x4be433(_0x206510._0x2a9522),{'activeIdx':this[_0x4be433(0x149)]});return _0x487d50;}[_0x2c3ac0(0x166)](){const _0x2eac0d=_0x2c3ac0;return this['behavior'][_0x2eac0d(0x166)]??[];}['networkEntries'](){const _0x213320={_0xff720b:0x12b},_0x5ecc8a=_0x2c3ac0;return this[_0x5ecc8a(0x186)][_0x5ecc8a(_0x213320._0xff720b)]??[];}async[_0x2c3ac0(0x183)](_0x475318){const _0x2ac99c={_0x4c8153:0x14e,_0xc1eb69:0x155},_0x4e6303=_0x2c3ac0;this[_0x4e6303(0x177)](_0x4e6303(0x183),[_0x475318]);if(_0x475318<0x0||_0x475318>=this['pageList'][_0x4e6303(_0x2ac99c._0x4c8153)])throw new DriverError(_0x4e6303(0x139),{'index':_0x475318,'available':this['pageList'][_0x4e6303(0x14e)]});this[_0x4e6303(0x149)]=_0x475318,this[_0x4e6303(_0x2ac99c._0xc1eb69)][_0x4e6303(0x14e)]=0x0;}['onNewPage'](_0x535d04){return subscribe(this['newPageListeners'],_0x535d04);}[_0x2c3ac0(0x174)](_0x55d547){const _0x5af29b={_0x34d859:0x18b},_0x47f752=_0x2c3ac0,_0x2b3157=this[_0x47f752(0x173)]+'.page'+this['pageList']['length'],_0x3cee08=new FakePage(this['recorder'],this[_0x47f752(0x186)],_0x2b3157,_0x55d547);this[_0x47f752(_0x5af29b._0x34d859)][_0x47f752(0x133)](_0x3cee08);const _0x221bc6=this[_0x47f752(0x18b)][_0x47f752(0x14e)]-0x1;for(const _0x2ce706 of this[_0x47f752(0x199)]){try{_0x2ce706({'index':_0x221bc6,'url':_0x55d547});}catch{}}return _0x221bc6;}[_0x2c3ac0(0x16a)](_0x4bcbcc){const _0xe906ae={_0x460c6e:0x18b,_0x2e3cac:0x14e},_0xa7ec38=_0x2c3ac0;if(_0x4bcbcc<0x0||_0x4bcbcc>=this[_0xa7ec38(0x18b)]['length'])throw new DriverError(_0xa7ec38(0x139),{'index':_0x4bcbcc,'available':this[_0xa7ec38(_0xe906ae._0x460c6e)][_0xa7ec38(_0xe906ae._0x2e3cac)]});this[_0xa7ec38(_0xe906ae._0x460c6e)]['splice'](_0x4bcbcc,0x1);}async[_0x2c3ac0(0x14d)](_0x10849e){const _0x2ee887={_0x2db1dc:0x177,_0x5c4fef:0x167},_0xe02c8d=_0x2c3ac0;this[_0xe02c8d(_0x2ee887._0x2db1dc)]('enterFrame',[_0x10849e]);if(!_0x10849e[_0xe02c8d(_0x2ee887._0x5c4fef)]['length'])throw new LocatorError('enterFrame\x20called\x20with\x20empty\x20locator',{'locator':_0x10849e});this[_0xe02c8d(0x155)]['push'](_0x10849e);}async[_0x2c3ac0(0x144)](){const _0x2d7701={_0x3ee7fa:0x189},_0x4c2a88=_0x2c3ac0;this[_0x4c2a88(0x177)]('exitFrame',[]);if(this['frameStack'][_0x4c2a88(0x14e)]===0x0)throw new DriverError(_0x4c2a88(0x145),{});this[_0x4c2a88(0x155)][_0x4c2a88(_0x2d7701._0x3ee7fa)]();}async[_0x2c3ac0(0x1a5)](_0x42d9fc,_0x4393dc){const _0x30bff9={_0x290d34:0x1a5},_0x1d60d5=_0x2c3ac0;this[_0x1d60d5(0x177)](_0x1d60d5(_0x30bff9._0x290d34),[_0x42d9fc,_0x4393dc]),this[_0x1d60d5(0x193)][_0x42d9fc]=_0x4393dc;}async[_0x2c3ac0(0x165)](_0x438208){const _0x1574fb={_0x5c9301:0x193},_0x4ef3f7=_0x2c3ac0;return this[_0x4ef3f7(0x177)](_0x4ef3f7(0x165),[_0x438208]),this[_0x4ef3f7(_0x1574fb._0x5c9301)][_0x438208]??null;}async[_0x2c3ac0(0x15e)](_0xd26b26,_0x86739e,_0x218bff){const _0x1d8ca9={_0x2cdd6a:0x15e},_0x31b759=_0x2c3ac0;this['record'](_0x31b759(_0x1d8ca9._0x2cdd6a),[_0xd26b26,_0x86739e,_0x218bff]),this['cookieState'][_0xd26b26]=_0x86739e;}async[_0x2c3ac0(0x15d)](_0x32eb75){const _0x390a74={_0x1c00c9:0x15d},_0x560870=_0x2c3ac0;return this[_0x560870(0x177)](_0x560870(_0x390a74._0x1c00c9),[_0x32eb75]),this[_0x560870(0x195)][_0x32eb75]??null;}async[_0x2c3ac0(0x12e)](_0x5e3b4a){const _0x27d0dd={_0x136165:0x177},_0x46b53c=_0x2c3ac0;this[_0x46b53c(_0x27d0dd._0x136165)](_0x46b53c(0x12e),[_0x5e3b4a]);}async['evaluate'](_0x13e7cc){return this['record']('evaluate',[_0x13e7cc]),void 0x0;}async[_0x2c3ac0(0x19b)](){const _0x22460d=_0x2c3ac0;this[_0x22460d(0x177)](_0x22460d(0x19b),[]);}[_0x2c3ac0(0x180)](){const _0x16825d={_0x2f8986:0x14e},_0x6953d9=_0x2c3ac0;return this[_0x6953d9(0x155)][_0x6953d9(_0x16825d._0x2f8986)];}},FakeWebDriver=class{constructor(_0x2168e9={}){const _0x3c0eea=_0x2c3ac0;this[_0x3c0eea(0x186)]=_0x2168e9,this['recorder']=createRecorder();}[_0x2c3ac0(0x186)];static{__name(this,'FakeWebDriver');}[_0x2c3ac0(0x12f)]=![];[_0x2c3ac0(0x12d)];['contexts']=[];async[_0x2c3ac0(0x179)](_0x216341){const _0x42ea54=_0x2c3ac0;this[_0x42ea54(0x12d)][_0x42ea54(0x133)]({'scope':_0x42ea54(0x140),'method':_0x42ea54(0x179),'args':[_0x216341]}),this[_0x42ea54(0x12f)]=!![];}async['newContext'](_0x27a249){const _0x29f0cb={_0x539b30:0x12f,_0x525655:0x138,_0x26e849:0x16e,_0x426ef1:0x14e,_0x1fe2cd:0x163},_0x599061=_0x2c3ac0;this['recorder'][_0x599061(0x133)]({'scope':'driver','method':_0x599061(0x197),'args':[_0x27a249]});if(!this[_0x599061(_0x29f0cb._0x539b30)])throw new DriverError(_0x599061(_0x29f0cb._0x525655),{});const _0x2e1080=new FakeContext(this[_0x599061(0x12d)],this['behavior'],_0x599061(_0x29f0cb._0x26e849)+this[_0x599061(0x163)][_0x599061(_0x29f0cb._0x426ef1)]);return this[_0x599061(_0x29f0cb._0x1fe2cd)][_0x599061(0x133)](_0x2e1080),_0x2e1080;}async[_0x2c3ac0(0x19b)](){const _0x2a687a={_0x8cd408:0x12d,_0x3493b8:0x140,_0x1d86bc:0x12f},_0x1f1883=_0x2c3ac0;this[_0x1f1883(_0x2a687a._0x8cd408)][_0x1f1883(0x133)]({'scope':_0x1f1883(_0x2a687a._0x3493b8),'method':_0x1f1883(0x19b),'args':[]}),this[_0x1f1883(_0x2a687a._0x1d86bc)]=![];}['wsEndpoint'](){return void 0x0;}async[_0x2c3ac0(0x192)](){const _0x1cdca7=_0x2c3ac0;throw new DriverError(_0x1cdca7(0x172),{});}[_0x2c3ac0(0x16f)](){throw new DriverError('attachExisting\x20not\x20supported\x20by\x20FakeWebDriver',{});}[_0x2c3ac0(0x15a)](){const _0x1251a0={_0x2ae96d:0x12d},_0x38227c=_0x2c3ac0;return this[_0x38227c(_0x1251a0._0x2ae96d)][_0x38227c(0x15a)]();}['callsFor'](_0x58d81c){const _0x195237={_0x3a1b3b:0x12d,_0x40fd07:0x15a},_0x5244d2=_0x2c3ac0;return this[_0x5244d2(_0x195237._0x3a1b3b)][_0x5244d2(_0x195237._0x40fd07)]()[_0x5244d2(0x194)](_0x1d457a=>_0x1d457a[_0x5244d2(0x15c)]===_0x58d81c);}};export{FakeWebDriver};
|
package/dist/dsl/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { i as LocatorValue, W as WebDriver, D as DriverContext, d as DriverPage } from '../interfaces-B-FxA_qn.js';
|
|
2
2
|
export { j as LocatorStep, k as appendStep, l as describeLocator, m as isLocatorValue, r as rootedAt } from '../interfaces-B-FxA_qn.js';
|
|
3
|
-
import { Matcher, RegexLiteral } from '@unotest/protocol';
|
|
3
|
+
import { Matcher, RegexLiteral, JudgeRequest, JudgeVerdict } 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';
|
|
6
6
|
import { SandboxConfig } from '../config/schema.js';
|
|
@@ -88,6 +88,24 @@ interface Logger {
|
|
|
88
88
|
child(prefix: string): Logger;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
+
interface Judge {
|
|
92
|
+
/** Produce a structured verdict. A clean `fail` is a RESULT (returned);
|
|
93
|
+
* infrastructure faults throw JudgeUnavailableError / ConfigError. */
|
|
94
|
+
judge(request: JudgeRequest): Promise<JudgeVerdict>;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
interface JudgeVerdictRecord extends JudgeVerdict {
|
|
98
|
+
rubric: string;
|
|
99
|
+
/** The judged text (the resolved element's rendered text). */
|
|
100
|
+
text: string;
|
|
101
|
+
}
|
|
102
|
+
interface JudgeVerdictSink {
|
|
103
|
+
/** Persist one verdict — pass AND fail, so the report explains green
|
|
104
|
+
* runs too. Must not throw on sink faults (reporting must never fail
|
|
105
|
+
* the assertion). */
|
|
106
|
+
record(record: JudgeVerdictRecord): Promise<void>;
|
|
107
|
+
}
|
|
108
|
+
|
|
91
109
|
type FrameFormat = "png" | "webp";
|
|
92
110
|
|
|
93
111
|
interface ScreenshotSink {
|
|
@@ -126,6 +144,14 @@ interface TestRuntimeDeps {
|
|
|
126
144
|
* to the run dir; absent in ad-hoc / explore runtimes (the DSL
|
|
127
145
|
* function then logs and skips). */
|
|
128
146
|
readonly screenshots?: ScreenshotSink;
|
|
147
|
+
/** LLM-judge behind `assertJudge`. Wired from the composition root
|
|
148
|
+
* (UNOTEST_JUDGE_MODE); absent in bare test runtimes — the DSL
|
|
149
|
+
* function then fails with the NullJudge-style setup message. */
|
|
150
|
+
readonly judge?: Judge;
|
|
151
|
+
/** Sink for `assertJudge` verdicts (pass AND fail) — the CLI runner
|
|
152
|
+
* wires it to the run's steps.jsonl; absent in ad-hoc / explore
|
|
153
|
+
* runtimes (the verdict then lives only in the assertion error). */
|
|
154
|
+
readonly judgeVerdicts?: JudgeVerdictSink;
|
|
129
155
|
}
|
|
130
156
|
declare class TestRuntime {
|
|
131
157
|
readonly runId: string;
|
|
@@ -135,6 +161,8 @@ declare class TestRuntime {
|
|
|
135
161
|
readonly sandbox: SandboxConfig;
|
|
136
162
|
readonly baseUrl?: string;
|
|
137
163
|
readonly screenshots?: ScreenshotSink;
|
|
164
|
+
readonly judge?: Judge;
|
|
165
|
+
readonly judgeVerdicts?: JudgeVerdictSink;
|
|
138
166
|
private readonly variables;
|
|
139
167
|
private readonly nowFn;
|
|
140
168
|
private readonly scope;
|