@unotest/web 0.29.0 → 0.31.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/.claude/skills/write-e2e-test/SKILL.md +53 -2
- package/.claude/skills/write-e2e-test-ground/SKILL.md +56 -2
- package/CHANGELOG.md +396 -0
- package/bin/unotest-web.js +3 -1
- package/dist/config/schema.d.ts +21 -21
- package/dist/config/schema.js +1 -1
- package/dist/driver/index.d.ts +12 -4
- package/dist/driver/index.js +1 -1
- package/dist/dsl/index.d.ts +34 -4
- package/dist/dsl/index.js +1 -1
- package/dist/dsl/web-dsl-language-service.d.ts +22 -2
- package/dist/dsl/web-dsl-language-service.js +1 -1
- package/dist/inspection/page-inject.d.ts +1 -1
- package/dist/{interfaces-SzdtOj1F.d.ts → interfaces-B34N4rfI.d.ts} +17 -2
- package/dist/legacy-layout-By62PkbP.d.ts +8 -0
- package/dist/linter-Yf4gPe5J.d.ts +36 -0
- package/dist/mcp/server.js +1 -1
- package/dist/runner/cli.d.ts +13 -2
- 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/agent-integration.md +43 -2
- package/guides/dsl-reference.md +156 -9
- package/package.json +8 -8
- package/src/mcp/prompts/agent-test-author.md +11 -1
- package/types/unotest-dsl.d.ts +31 -7
- package/dist/linter-CM2CpIyW.d.ts +0 -21
package/dist/config/schema.d.ts
CHANGED
|
@@ -90,19 +90,19 @@ declare const FailureBundleConfigSchema: z.ZodObject<{
|
|
|
90
90
|
type FailureBundleConfig = z.infer<typeof FailureBundleConfigSchema>;
|
|
91
91
|
declare const DialogPolicySchema: z.ZodEnum<["accept", "dismiss", "manual"]>;
|
|
92
92
|
type DialogPolicy = z.infer<typeof DialogPolicySchema>;
|
|
93
|
-
declare const LinterRuleIdSchema: z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "lint:flow-returns-value", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>;
|
|
93
|
+
declare const LinterRuleIdSchema: z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "lint:flow-returns-value", "lint:legacy-layout", "lint:external-variable-undeclared", "lint:one-test-per-file", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>;
|
|
94
94
|
type LinterRuleId = z.infer<typeof LinterRuleIdSchema>;
|
|
95
95
|
declare const LinterSeveritySchema: z.ZodEnum<["off", "warn", "error"]>;
|
|
96
96
|
type LinterSeverity = z.infer<typeof LinterSeveritySchema>;
|
|
97
97
|
declare const LinterConfigSchema: z.ZodObject<{
|
|
98
98
|
enabled: z.ZodBoolean;
|
|
99
|
-
rules: z.ZodRecord<z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "lint:flow-returns-value", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>, z.ZodEnum<["off", "warn", "error"]>>;
|
|
99
|
+
rules: z.ZodRecord<z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "lint:flow-returns-value", "lint:legacy-layout", "lint:external-variable-undeclared", "lint:one-test-per-file", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>, z.ZodEnum<["off", "warn", "error"]>>;
|
|
100
100
|
}, "strip", z.ZodTypeAny, {
|
|
101
101
|
enabled: boolean;
|
|
102
|
-
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
102
|
+
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:one-test-per-file" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
103
103
|
}, {
|
|
104
104
|
enabled: boolean;
|
|
105
|
-
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
105
|
+
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:one-test-per-file" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
106
106
|
}>;
|
|
107
107
|
type LinterConfig = z.infer<typeof LinterConfigSchema>;
|
|
108
108
|
declare const QueueConfigSchema: z.ZodObject<{
|
|
@@ -215,15 +215,15 @@ declare const WebServerConfigSchema: z.ZodObject<{
|
|
|
215
215
|
/** How long to wait for the URL to come up after spawning. */
|
|
216
216
|
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
217
217
|
}, "strip", z.ZodTypeAny, {
|
|
218
|
-
command: string;
|
|
219
218
|
url: string;
|
|
220
|
-
reuseExistingServer: boolean;
|
|
221
219
|
timeoutMs: number;
|
|
222
|
-
}, {
|
|
223
220
|
command: string;
|
|
221
|
+
reuseExistingServer: boolean;
|
|
222
|
+
}, {
|
|
224
223
|
url: string;
|
|
225
|
-
|
|
224
|
+
command: string;
|
|
226
225
|
timeoutMs?: number | undefined;
|
|
226
|
+
reuseExistingServer?: boolean | undefined;
|
|
227
227
|
}>;
|
|
228
228
|
type WebServerConfig = z.infer<typeof WebServerConfigSchema>;
|
|
229
229
|
declare const UnotestConfigSchema: z.ZodObject<{
|
|
@@ -249,15 +249,15 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
249
249
|
/** How long to wait for the URL to come up after spawning. */
|
|
250
250
|
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
251
251
|
}, "strip", z.ZodTypeAny, {
|
|
252
|
-
command: string;
|
|
253
252
|
url: string;
|
|
254
|
-
reuseExistingServer: boolean;
|
|
255
253
|
timeoutMs: number;
|
|
256
|
-
}, {
|
|
257
254
|
command: string;
|
|
255
|
+
reuseExistingServer: boolean;
|
|
256
|
+
}, {
|
|
258
257
|
url: string;
|
|
259
|
-
|
|
258
|
+
command: string;
|
|
260
259
|
timeoutMs?: number | undefined;
|
|
260
|
+
reuseExistingServer?: boolean | undefined;
|
|
261
261
|
}>>;
|
|
262
262
|
browsers: z.ZodArray<z.ZodEnum<["chromium", "firefox", "webkit"]>, "many">;
|
|
263
263
|
channel: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"chrome">, z.ZodLiteral<"msedge">, z.ZodLiteral<"chrome-beta">, z.ZodNull]>>;
|
|
@@ -355,13 +355,13 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
355
355
|
defaultNavigationTimeoutMs: z.ZodNumber;
|
|
356
356
|
linter: z.ZodObject<{
|
|
357
357
|
enabled: z.ZodBoolean;
|
|
358
|
-
rules: z.ZodRecord<z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "lint:flow-returns-value", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>, z.ZodEnum<["off", "warn", "error"]>>;
|
|
358
|
+
rules: z.ZodRecord<z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "lint:flow-returns-value", "lint:legacy-layout", "lint:external-variable-undeclared", "lint:one-test-per-file", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>, z.ZodEnum<["off", "warn", "error"]>>;
|
|
359
359
|
}, "strip", z.ZodTypeAny, {
|
|
360
360
|
enabled: boolean;
|
|
361
|
-
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
361
|
+
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:one-test-per-file" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
362
362
|
}, {
|
|
363
363
|
enabled: boolean;
|
|
364
|
-
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
364
|
+
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:one-test-per-file" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
365
365
|
}>;
|
|
366
366
|
mcp: z.ZodObject<{
|
|
367
367
|
transport: z.ZodLiteral<"stdio">;
|
|
@@ -483,7 +483,7 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
483
483
|
defaultNavigationTimeoutMs: number;
|
|
484
484
|
linter: {
|
|
485
485
|
enabled: boolean;
|
|
486
|
-
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
486
|
+
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:one-test-per-file" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
487
487
|
};
|
|
488
488
|
mcp: {
|
|
489
489
|
transport: "stdio";
|
|
@@ -508,10 +508,10 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
508
508
|
};
|
|
509
509
|
baseUrl?: string | undefined;
|
|
510
510
|
webServer?: {
|
|
511
|
-
command: string;
|
|
512
511
|
url: string;
|
|
513
|
-
reuseExistingServer: boolean;
|
|
514
512
|
timeoutMs: number;
|
|
513
|
+
command: string;
|
|
514
|
+
reuseExistingServer: boolean;
|
|
515
515
|
} | undefined;
|
|
516
516
|
channel?: "chrome" | "msedge" | "chrome-beta" | null | undefined;
|
|
517
517
|
storageState?: string | undefined;
|
|
@@ -545,7 +545,7 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
545
545
|
defaultNavigationTimeoutMs: number;
|
|
546
546
|
linter: {
|
|
547
547
|
enabled: boolean;
|
|
548
|
-
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
548
|
+
rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:one-test-per-file" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
|
|
549
549
|
};
|
|
550
550
|
mcp: {
|
|
551
551
|
transport: "stdio";
|
|
@@ -564,10 +564,10 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
564
564
|
};
|
|
565
565
|
baseUrl?: string | undefined;
|
|
566
566
|
webServer?: {
|
|
567
|
-
command: string;
|
|
568
567
|
url: string;
|
|
569
|
-
|
|
568
|
+
command: string;
|
|
570
569
|
timeoutMs?: number | undefined;
|
|
570
|
+
reuseExistingServer?: boolean | undefined;
|
|
571
571
|
} | undefined;
|
|
572
572
|
channel?: "chrome" | "msedge" | "chrome-beta" | null | undefined;
|
|
573
573
|
storageState?: string | undefined;
|
package/dist/config/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var _0x2fa2f7=_0x2c5b;(function(_0x3499ab,_0x5d8568){var _0x15eafc={_0x3b21ab:0x1b8,_0x53bdd8:0x1c4,_0x1d4372:0x1bd,_0x2a51f9:0x1e0,_0x3504e6:0x1dc},_0x17529b=_0x2c5b,_0x17f685=_0x3499ab();while(!![]){try{var _0x12126c=-parseInt(_0x17529b(0x1d4))/0x1+-parseInt(_0x17529b(_0x15eafc._0x3b21ab))/0x2*(parseInt(_0x17529b(0x1b2))/0x3)+-parseInt(_0x17529b(_0x15eafc._0x53bdd8))/0x4+-parseInt(_0x17529b(_0x15eafc._0x1d4372))/0x5+-parseInt(_0x17529b(_0x15eafc._0x2a51f9))/0x6+parseInt(_0x17529b(0x1c9))/0x7+parseInt(_0x17529b(_0x15eafc._0x3504e6))/0x8;if(_0x12126c===_0x5d8568)break;else _0x17f685['push'](_0x17f685['shift']());}catch(_0x1d36eb){_0x17f685['push'](_0x17f685['shift']());}}}(_0x4bad,0x1a19a));function _0x2c5b(_0x2a65eb,_0x5a03d3){_0x2a65eb=_0x2a65eb-0x1b1;var _0x4bad3b=_0x4bad();var _0x2c5b05=_0x4bad3b[_0x2a65eb];if(_0x2c5b['xNMmGo']===undefined){var _0x3be714=function(_0x1319c2){var _0x15751e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0xbdc2b='',_0x2098aa='';for(var _0x2e3c9d=0x0,_0x103b9f,_0x86a1ad,_0x2a3181=0x0;_0x86a1ad=_0x1319c2['charAt'](_0x2a3181++);~_0x86a1ad&&(_0x103b9f=_0x2e3c9d%0x4?_0x103b9f*0x40+_0x86a1ad:_0x86a1ad,_0x2e3c9d++%0x4)?_0xbdc2b+=String['fromCharCode'](0xff&_0x103b9f>>(-0x2*_0x2e3c9d&0x6)):0x0){_0x86a1ad=_0x15751e['indexOf'](_0x86a1ad);}for(var _0x318be3=0x0,_0x156e43=_0xbdc2b['length'];_0x318be3<_0x156e43;_0x318be3++){_0x2098aa+='%'+('00'+_0xbdc2b['charCodeAt'](_0x318be3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2098aa);};_0x2c5b['UUeoiq']=_0x3be714,_0x2c5b['ykZLZs']={},_0x2c5b['xNMmGo']=!![];}var _0x2cb5bb=_0x4bad3b[0x0],_0x25b50c=_0x2a65eb+_0x2cb5bb,_0x145ffc=_0x2c5b['ykZLZs'][_0x25b50c];return!_0x145ffc?(_0x2c5b05=_0x2c5b['UUeoiq'](_0x2c5b05),_0x2c5b['ykZLZs'][_0x25b50c]=_0x2c5b05):_0x2c5b05=_0x145ffc,_0x2c5b05;}import{z}from'zod';function _0x4bad(){var _0x357f87=['y3jHC2G','yxjYyxK','DMfSAwrHDg9YoMzVCI1ZAgfWzq','DMfSAwrHDg9YoNDYyxbWzwqTzM9YBwf0','C3rYAw5N','ndeXnJy4ogv3uNnVBG','DMfSAwrHDg9YoM1LDgeTC2HHCgu','B2zM','lNvUB3rLC3qVzMfPBhvYzxm','mtq3oduYsLf6whfo','DMfSAwrHDg9YoNnLBwfUDgLJlwXVC3m','DMfSAwrHDg9YoNn0zxaTy292zxjHz2u','DxjS','CMvJB3jK','DMfSAwrHDg9YoNzHCI1ZAgfWzq','BgLUDdPYzwDLEc1PBNzHBgLK','BgLUDdPWyxvZzs1LEhbSAwnPDa','D2fYBG','Aw50','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlxn0yxrLBwvUDa','BgLUDdPHCgKTy2fSBc1MAwXLlwjVzhK','BNvSBa','BgLUDdPLy2HVlwfZC2vYDa','D2vIA2L0','BgLUDdPTDxn0ywnOzs1PBI1KC2W','Bwf4','yM9VBgvHBG','BgL0zxjHBa','otmWA1jZEuvM','BMv0D29YAW','BgLUDdPLDMfSDwf0zs1KAxnJB3vYywDLza','DMfSAwrHDg9YoNvUA25VD24TzNvUy3rPB24','DMfSAwrHDg9YoMz1BMn0Aw9UlxnOyxbL','BgLUDdPZy2vUyxjPBY1PBI1YB290','ndjdrg5KsfG','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlwv4ChjLC3nPB24','BgLUDdPKAxnHBwjPzY1IEs1PBMrLEa','zgvMyxvSDa','zgLZBwLZCW','odGWnJa1C2HwB0rm','BgLUDdPVBMuTDgvZDc1WzxiTzMLSzq','BwfUDwfS','BgLUDdPSzwDHy3KTBgf5B3v0','BgLUDdPMBg93lxjLDhvYBNmTDMfSDwu','C3rKAw8','zxjYB3i','nty0mJqWC2H1AuPr','BNvTyMvY','zMLYzwzVEa','BwLU','Cg9ZAxrPDMu','ntGZmJrdChvztu4','DMfSAwrHDg9YoMfYzY1RAw5K','DMfSAwrHDg9YoMXPC3qTyxjN','Dw5VDgvZDc9LmMu','BxnLzgDL','y2HYB21PDw0','zw51Bq','B2jQzwn0','DMfSAwrHDg9YoNn0zxaTC2HHCgu','DhjHBNnPzw50','B3b0Aw9UywW','nJC2nZLLu3vWwwG','Dw5PB24','y2HYB21LlwjLDge'];_0x4bad=function(){return _0x357f87;};return _0x4bad();}var BrowserSchema=z['enum']([_0x2fa2f7(0x1ce),_0x2fa2f7(0x1c6),_0x2fa2f7(0x1ee)]),BrowserChannelSchema=z[_0x2fa2f7(0x1d5)]([z[_0x2fa2f7(0x1b1)]('chrome'),z[_0x2fa2f7(0x1b1)](_0x2fa2f7(0x1cd)),z[_0x2fa2f7(0x1b1)](_0x2fa2f7(0x1d6)),z[_0x2fa2f7(0x1ec)]()])[_0x2fa2f7(0x1d3)](),ViewportSchema=z[_0x2fa2f7(0x1d0)]({'width':z['number']()[_0x2fa2f7(0x1e9)]()[_0x2fa2f7(0x1c8)](),'height':z[_0x2fa2f7(0x1c5)]()[_0x2fa2f7(0x1e9)]()[_0x2fa2f7(0x1c8)]()}),RetryReasonSchema=z['enum']([_0x2fa2f7(0x1d2),_0x2fa2f7(0x1b3),_0x2fa2f7(0x1d7)]),RetryConfigSchema=z['object']({'count':z['number']()[_0x2fa2f7(0x1e9)]()[_0x2fa2f7(0x1c7)](0x0)[_0x2fa2f7(0x1f0)](0xa),'on':z[_0x2fa2f7(0x1d8)](RetryReasonSchema)}),FailureBundleConfigSchema=z[_0x2fa2f7(0x1d0)]({'tier1':z[_0x2fa2f7(0x1b1)](!![])['default'](!![]),'tier2':z[_0x2fa2f7(0x1f1)](),'tier3':z['object']({'network':z[_0x2fa2f7(0x1f1)](),'video':z[_0x2fa2f7(0x1f1)]()}),'retention':z[_0x2fa2f7(0x1d0)]({'runs':z[_0x2fa2f7(0x1c5)]()['int']()[_0x2fa2f7(0x1c8)](),'days':z[_0x2fa2f7(0x1c5)]()[_0x2fa2f7(0x1e9)]()[_0x2fa2f7(0x1c8)]()}),'storageDir':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1c7)](0x1)}),DialogPolicySchema=z[_0x2fa2f7(0x1cf)](['accept',_0x2fa2f7(0x1bc),_0x2fa2f7(0x1bf)]),LinterRuleIdSchema=z[_0x2fa2f7(0x1cf)](['lint:deep-css','lint:xpath','lint:obfuscated-class',_0x2fa2f7(0x1e7),_0x2fa2f7(0x1ba),_0x2fa2f7(0x1b4),_0x2fa2f7(0x1b7),_0x2fa2f7(0x1ef),'lint:goto-concat',_0x2fa2f7(0x1e6),_0x2fa2f7(0x1ed),_0x2fa2f7(0x1eb),'lint:lint-ok-missing-reason',_0x2fa2f7(0x1c1),_0x2fa2f7(0x1c0),'lint:external-variable-undeclared',_0x2fa2f7(0x1be),_0x2fa2f7(0x1b5),'validator:arity',_0x2fa2f7(0x1ca),_0x2fa2f7(0x1e2),_0x2fa2f7(0x1d1),_0x2fa2f7(0x1dd),_0x2fa2f7(0x1b6),_0x2fa2f7(0x1d9),'validator:if-shape',_0x2fa2f7(0x1e5),_0x2fa2f7(0x1ea),_0x2fa2f7(0x1b9),'validator:string-concat',_0x2fa2f7(0x1e1),_0x2fa2f7(0x1cb),_0x2fa2f7(0x1da)]),LinterSeveritySchema=z[_0x2fa2f7(0x1cf)]([_0x2fa2f7(0x1de),_0x2fa2f7(0x1e8),'error']),LinterConfigSchema=z['object']({'enabled':z['boolean'](),'rules':z[_0x2fa2f7(0x1e4)](LinterRuleIdSchema,LinterSeveritySchema)}),QueueConfigSchema=z[_0x2fa2f7(0x1d0)]({'enabled':z[_0x2fa2f7(0x1f1)]()[_0x2fa2f7(0x1bb)](!![]),'concurrency':z[_0x2fa2f7(0x1c5)]()[_0x2fa2f7(0x1e9)]()['positive']()[_0x2fa2f7(0x1bb)](0x1)}),ScheduleSchema=z[_0x2fa2f7(0x1d0)]({'collection':z[_0x2fa2f7(0x1db)]()['min'](0x1),'cron':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1c7)](0x1),'env':z['string']()[_0x2fa2f7(0x1c7)](0x1)[_0x2fa2f7(0x1d3)](),'prepare':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1c7)](0x1)[_0x2fa2f7(0x1d3)]()}),McpConfigSchema=z[_0x2fa2f7(0x1d0)]({'transport':z[_0x2fa2f7(0x1b1)](_0x2fa2f7(0x1c2))}),SandboxConfigSchema=z[_0x2fa2f7(0x1d0)]({'shellCwd':z[_0x2fa2f7(0x1db)]()['optional'](),'shellTimeoutMs':z[_0x2fa2f7(0x1c5)]()['int']()['positive']()[_0x2fa2f7(0x1d3)](),'exportSecrets':z['array'](z[_0x2fa2f7(0x1db)]())[_0x2fa2f7(0x1d3)](),'database':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1d3)](),'apiBaseUrl':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1e3)]()[_0x2fa2f7(0x1d3)](),'uploadDir':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1d3)]()}),WebServerConfigSchema=z[_0x2fa2f7(0x1d0)]({'command':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1c7)](0x1),'url':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1e3)](),'reuseExistingServer':z['boolean']()[_0x2fa2f7(0x1bb)](!![]),'timeoutMs':z[_0x2fa2f7(0x1c5)]()['int']()[_0x2fa2f7(0x1c8)]()['default'](0xea60)}),UnotestConfigSchema=z[_0x2fa2f7(0x1d0)]({'baseUrl':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1e3)]()[_0x2fa2f7(0x1d3)](),'webServer':WebServerConfigSchema[_0x2fa2f7(0x1d3)](),'browsers':z['array'](BrowserSchema)[_0x2fa2f7(0x1c7)](0x1),'channel':BrowserChannelSchema,'viewport':ViewportSchema,'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':z[_0x2fa2f7(0x1db)]()[_0x2fa2f7(0x1d3)](),'testDir':z[_0x2fa2f7(0x1db)]()['min'](0x1),'helpersDir':z[_0x2fa2f7(0x1db)]()['min'](0x1),'defaultTimeoutMs':z[_0x2fa2f7(0x1c5)]()[_0x2fa2f7(0x1e9)]()[_0x2fa2f7(0x1c8)](),'defaultNavigationTimeoutMs':z[_0x2fa2f7(0x1c5)]()['int']()[_0x2fa2f7(0x1c8)](),'linter':LinterConfigSchema,'mcp':McpConfigSchema,'queue':QueueConfigSchema,'schedules':z['array'](ScheduleSchema)[_0x2fa2f7(0x1bb)]([]),'sandbox':SandboxConfigSchema}),DEFAULT_CONFIG={'browsers':[_0x2fa2f7(0x1ce)],'viewport':{'width':0x500,'height':0x2d0},'retry':{'count':0x0,'on':['transient']},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':_0x2fa2f7(0x1df)},'dialogPolicy':'accept','testDir':_0x2fa2f7(0x1cc),'helpersDir':'unotest/e2e/_helpers','defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x7530,'linter':{'enabled':!![],'rules':{'lint:deep-css':_0x2fa2f7(0x1e8),'lint:xpath':_0x2fa2f7(0x1e8),'lint:obfuscated-class':_0x2fa2f7(0x1e8),'lint:pause-explicit':'warn','lint:disambig-by-index':_0x2fa2f7(0x1de),'lint:evaluate-discouraged':_0x2fa2f7(0x1e8),'lint:scenario-in-root':'error','lint:mustache-in-dsl':_0x2fa2f7(0x1c3),'lint:goto-concat':'warn','lint:regex-invalid':_0x2fa2f7(0x1c3),'lint:echo-assert':_0x2fa2f7(0x1e8),'lint:lint-ok-missing-reason':_0x2fa2f7(0x1e8),'lint:flow-returns-value':'warn','lint:legacy-layout':_0x2fa2f7(0x1e8),'lint:external-variable-undeclared':_0x2fa2f7(0x1c3),'lint:one-test-per-file':_0x2fa2f7(0x1e8),'validator:unknown-function':_0x2fa2f7(0x1c3)}},'mcp':{'transport':_0x2fa2f7(0x1c2)},'queue':{'enabled':!![],'concurrency':0x1},'schedules':[],'sandbox':{}};export{BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,QueueConfigSchema,RetryConfigSchema,RetryReasonSchema,SandboxConfigSchema,ScheduleSchema,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 {
|
|
1
|
+
import { E as ElementHint, S as ScreenshotOptions, N as NetworkEntry, W as WebDriver, L as LaunchOptions, C as ContextOptions, D as DriverContext, A as AttachOptions } from '../interfaces-B34N4rfI.js';
|
|
2
|
+
export { a as ActionTimeout, b as CheckOptions, c as ClickOptions, d as CookieOptions, e as DriverPage, F as FillOptions, G as GotoOptions, H as HoverOptions, f as NavigationOptions, P as PressOptions, R as ReloadOptions, g as SelectOptions, V as Viewport, h as WaitOptions, i as WaitState } from '../interfaces-B34N4rfI.js';
|
|
3
3
|
import '@unotest/protocol';
|
|
4
4
|
import '../config/schema.js';
|
|
5
5
|
import 'zod';
|
|
@@ -52,6 +52,14 @@ interface FakeBehavior {
|
|
|
52
52
|
/** Programmable response for outerHTML(loc). Keys are `data-unotest-ref`
|
|
53
53
|
* values; anything not in the map → a synthetic `<div data-ref>` string. */
|
|
54
54
|
outerHtmlByRef?: Record<string, string>;
|
|
55
|
+
/** Bytes screenshot() / screenshotElement() return — a Buffer, or a
|
|
56
|
+
* function of the requested encoding (`png` / `jpeg` / `webp`, undefined
|
|
57
|
+
* when unspecified) for tests that exercise a format fallback. Default:
|
|
58
|
+
* the literal "fake-png"; tests that read dimensions seed a real PNG header. */
|
|
59
|
+
screenshotBytes?: Buffer | ((type: ScreenshotOptions["type"]) => Buffer);
|
|
60
|
+
/** What page.evaluate() resolves to — e.g. an OutlineTree for a capture
|
|
61
|
+
* path under test. Default: undefined. */
|
|
62
|
+
evaluateResult?: unknown;
|
|
55
63
|
/** Seed console entries that consoleEntries() returns. */
|
|
56
64
|
consoleEntries?: ReadonlyArray<{
|
|
57
65
|
level: "log" | "info" | "warn" | "error" | "debug";
|
|
@@ -77,11 +85,11 @@ declare class FakeWebDriver implements WebDriver {
|
|
|
77
85
|
close(): Promise<void>;
|
|
78
86
|
wsEndpoint(): string | undefined;
|
|
79
87
|
connectShared(): Promise<void>;
|
|
80
|
-
attachExisting(): DriverContext;
|
|
88
|
+
attachExisting(_opts?: AttachOptions): DriverContext;
|
|
81
89
|
/** Test helper — full recorded call log. */
|
|
82
90
|
calls(): ReadonlyArray<RecordedCall>;
|
|
83
91
|
/** Test helper — calls matching a method name. */
|
|
84
92
|
callsFor(method: string): ReadonlyArray<RecordedCall>;
|
|
85
93
|
}
|
|
86
94
|
|
|
87
|
-
export { ContextOptions, DriverContext, type FakeBehavior, FakeWebDriver, LaunchOptions, type RecordedCall, WebDriver };
|
|
95
|
+
export { ContextOptions, DriverContext, type FakeBehavior, FakeWebDriver, LaunchOptions, type RecordedCall, ScreenshotOptions, WebDriver };
|
package/dist/driver/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x5a369=_0x3aa3;(function(_0x36dbe9,_0x3f8e55){const _0x1e902c={_0x17ee67:0x126,_0xe36d61:0x168,_0x1f1463:0x172,_0x528a48:0x127,_0x426eb5:0x12c,_0x321306:0x140,_0x1026aa:0x122},_0x267bc3=_0x3aa3,_0x56827c=_0x36dbe9();while(!![]){try{const _0x205872=parseInt(_0x267bc3(_0x1e902c._0x17ee67))/0x1+parseInt(_0x267bc3(0x147))/0x2+parseInt(_0x267bc3(0x152))/0x3*(parseInt(_0x267bc3(_0x1e902c._0xe36d61))/0x4)+parseInt(_0x267bc3(0x130))/0x5*(-parseInt(_0x267bc3(0x169))/0x6)+-parseInt(_0x267bc3(_0x1e902c._0x1f1463))/0x7*(parseInt(_0x267bc3(0x109))/0x8)+parseInt(_0x267bc3(_0x1e902c._0x528a48))/0x9*(parseInt(_0x267bc3(_0x1e902c._0x426eb5))/0xa)+parseInt(_0x267bc3(_0x1e902c._0x321306))/0xb*(-parseInt(_0x267bc3(_0x1e902c._0x1026aa))/0xc);if(_0x205872===_0x3f8e55)break;else _0x56827c['push'](_0x56827c['shift']());}catch(_0x506b5a){_0x56827c['push'](_0x56827c['shift']());}}}(_0x48fc,0xe9b62));var __defProp=Object['defineProperty'],__name=(_0x17acf2,_0x42037d)=>__defProp(_0x17acf2,_0x5a369(0x114),{'value':_0x42037d,'configurable':!![]});function subscribe(_0x1cda37,_0xa08015){const _0x1ca022=_0x5a369;return _0x1cda37[_0x1ca022(0x13e)](_0xa08015),()=>{const _0x57c92e=_0x1ca022;_0x1cda37[_0x57c92e(0x131)](_0xa08015);};}__name(subscribe,_0x5a369(0x166));import{UnotestError}from'@unotest/core';function _0x48fc(){const _0x3a09a5=['iJ48l2rPDJ4','DxbSB2fKrMLSzq','zMLSBa','ndLfCvHev2y','y291BNq','zxjYB3jpBK5LEhrby3rPB24','y3r4','y2XPy2S','AxnwAxnPyMXL','z2v0qxr0CMLIDxrL','D2fPDezVCLrLEhq','zw1PDezHA2vqB3b1Ca','C3rLChm','y2XVC2vgywTLugfNzq','BMv0D29YA0vUDhjPzxm','z2v0tg9JywXtDg9YywDL','BgvUz3rO','B25ozxDqywDL','pgrPDIbKyxrHlxvUB3rLC3qTCMvMpsi','Aw5PDgLHBfvYBa','rhjPDMvYrxjYB3i','nti4mZKYrgLYvK9X','D3nfBMrWB2LUDa','Aw5ZCgvJDevSzw1LBNq','Bg9JywXtDg9YywDL','zhjPDMvY','zw50zxjgCMfTzsbJywXSzwqGD2L0AcbLBxb0EsbSB2nHDg9Y','yMvOyxzPB3i','C2nYzwvUC2HVDa','yxr0CMLIDxrLC0j5rgvMyxvSDa','zMfRzsb0AxrSzq','C2v0qwn0AxzLugfNzq','BMfTzq','C2v0tg9JywXtDg9YywDL','DgL0Bgu','C2nVCgu','Dgv4DenVBNrLBNrcEurLzMf1Bhq','B3v0zxjive1m','zNjHBwvezxb0Aa','CMvSB2fK','z29cywnR','yxr0ywnOrxHPC3rPBMC','D2fPDezVCG','y2XPCgjVyxjKugfZDgu','ChvZAa','C2nYB2XSsw50B1zPzxC','mtm2mJm3odbUqvDWvxu','y29VA2LLCW','y2XVC2u','Ag92zxi','mtC1mdi3meXTsK9xzG','mtyYmZi3mJrJyxPMzw8','Bgf1BMnO','tg9JyxrVCKvYCM9Y','AxneAxnHyMXLzej5rgvMyxvSDa','y29UBMvJDfnOyxjLzcbUB3qGC3vWCg9YDgvKigj5iezHA2vxzwjeCML2zxi','mtbwBw1gCxm','Bg9JywXtDg9YywDLu3rHDgu','y3vYCMvUDfvYBa','zxzHBhvHDgvpBKXVy2f0B3i','nuPdu093DG','zgvSzxrL','AxnwAxnPyMXLqNLezwzHDwX0','z290BW','y29UDgv4Dhm','Dgv4DenVBNrLBNq','zxzHBhvHDgu','B25bzNrLCKnSAwnR','D2fPDezVCKXVywrtDgf0zq','y291BNrcEurLzMf1Bhq','Aw5UzxjuzxH0qNLezwzHDwX0','z2v0q29VA2LL','ChjLC3m','y2HLy2TLzfn0yxrL','ywrK','zg91yMXLq2XPy2S','mJjqy0jzz1C','pgrPDJ48l2rPDJ4','z29gB3j3yxjK','CMvJB3jK','Cg9WDxbpBKnSAwnR','ywn0AxzLugfNzq','zwXLBwvUDeHPBNrcEvjLzG','mJCZntu2ogL6v2TNEq','C2f2zvn0B3jHz2vtDgf0zq','C3bSAwnL','y29UC29SzuvUDhjPzxm','BMv3q29UDgv4DcbJywXSzwqGyMvMB3jLigXHDw5JAcGP','zhjHz0fUzerYB3a','D2fPDezVCK5HDMLNyxrPB24','zMfRzs1WBMC','rMfRzvDLyKrYAxzLCG','CgfNzuXPC3q','Aw5WDxrwywX1zuj5rgvMyxvSDa','ntKYnZDxs3rMELe','Aw5UzxjuzxH0','y2HLy2S','y29UBMvJDfnOyxjLza','y29VA2LLu3rHDgu','ywn0AxzLswr4','y2fSBhm','D2fPDezVCLvYBa','AxneAxnHyMXLza','Bgf1BMnOzwq','Dw5JAgvJAW','A2LUza','BMv3ugfNzuXPC3rLBMvYCW','Bwf5yMvuAhjVDW','C2vSzwn0t3b0Aw9U','zNjHBwvtDgfJAW','rMfRzvbHz2u','lNbHz2u','CgfNzsbPBMrLEcbVDxqGB2yGCMfUz2u','zxHPDezYyw1L','C3vIC2nYAwjL','zw50zxjgCMfTzq','mJr6ELr5Ae0','oda5otKZngrnB2HQsq','CMvM','zNjVBq','ywjVDxq6yMXHBMS','CMvJB3jKzxi','BMv3q29UDgv4Da'];_0x48fc=function(){return _0x3a09a5;};return _0x48fc();}function _0x3aa3(_0x61b84d,_0x424f45){_0x61b84d=_0x61b84d-0x107;const _0x48fc90=_0x48fc();let _0x3aa33a=_0x48fc90[_0x61b84d];if(_0x3aa3['nwPpdS']===undefined){var _0x1cba9e=function(_0x37ec17){const _0x7b4db9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x17acf2='',_0x42037d='';for(let _0x1cda37=0x0,_0xa08015,_0x57ce4f,_0x39a505=0x0;_0x57ce4f=_0x37ec17['charAt'](_0x39a505++);~_0x57ce4f&&(_0xa08015=_0x1cda37%0x4?_0xa08015*0x40+_0x57ce4f:_0x57ce4f,_0x1cda37++%0x4)?_0x17acf2+=String['fromCharCode'](0xff&_0xa08015>>(-0x2*_0x1cda37&0x6)):0x0){_0x57ce4f=_0x7b4db9['indexOf'](_0x57ce4f);}for(let _0xe0c171=0x0,_0x47e2d4=_0x17acf2['length'];_0xe0c171<_0x47e2d4;_0xe0c171++){_0x42037d+='%'+('00'+_0x17acf2['charCodeAt'](_0xe0c171)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x42037d);};_0x3aa3['eYbgwr']=_0x1cba9e,_0x3aa3['JDHFlk']={},_0x3aa3['nwPpdS']=!![];}const _0x3a672c=_0x48fc90[0x0],_0x5fa0ec=_0x61b84d+_0x3a672c,_0x2ce9a8=_0x3aa3['JDHFlk'][_0x5fa0ec];return!_0x2ce9a8?(_0x3aa33a=_0x3aa3['eYbgwr'](_0x3aa33a),_0x3aa3['JDHFlk'][_0x5fa0ec]=_0x3aa33a):_0x3aa33a=_0x2ce9a8,_0x3aa33a;}var DriverError=class extends UnotestError{static{__name(this,_0x5a369(0x108));}},LocatorError=class extends UnotestError{static{__name(this,_0x5a369(0x129));}};function createRecorder(){const _0x52feec=_0x5a369,_0x57ce4f=[];let _0x39a505=0x0;return{'push':__name(_0xe0c171=>_0x57ce4f[_0x52feec(0x120)]({..._0xe0c171,'seq':_0x39a505++}),'push'),'calls':__name(()=>_0x57ce4f,'calls')};}__name(createRecorder,'createRecorder');var FakePage=class{constructor(_0x47e2d4,_0x3d3e42,_0x3597f5,_0x1ca4f2){const _0x11c7cf=_0x5a369;this[_0x11c7cf(0x16d)]=_0x47e2d4,this['behavior']=_0x3d3e42,this[_0x11c7cf(0x117)]=_0x3597f5,this[_0x11c7cf(0x12e)]=_0x1ca4f2;}[_0x5a369(0x16d)];[_0x5a369(0x10f)];['scope'];static{__name(this,_0x5a369(0x162));}[_0x5a369(0x12e)];[_0x5a369(0x137)];[_0x5a369(0x143)](_0x5e89b4,_0x25e13b){const _0x592a5a={_0x3b2510:0x16d},_0x3e36e1=_0x5a369;this[_0x3e36e1(_0x592a5a._0x3b2510)]['push']({'scope':this[_0x3e36e1(0x117)],'method':_0x5e89b4,'args':_0x25e13b});}[_0x5a369(0x15f)](){const _0x7f3eb9={_0x8bf76d:0x174},_0x8b5fff=_0x5a369;if(this[_0x8b5fff(0x10f)]['errorOnNextAction']){const _0x3c2c6c=this[_0x8b5fff(0x10f)]['errorOnNextAction'];this[_0x8b5fff(0x10f)][_0x8b5fff(_0x7f3eb9._0x8bf76d)]=void 0x0;throw _0x3c2c6c;}}['url'](){const _0x2431a8=_0x5a369;return this[_0x2431a8(0x12e)];}async[_0x5a369(0x116)](){const _0x45dd43={_0x81c83a:0x116,_0x49b090:0x112},_0x47727b=_0x5a369;return this['record'](_0x47727b(_0x45dd43._0x81c83a),[]),_0x47727b(_0x45dd43._0x49b090);}async[_0x5a369(0x176)](_0x516679,_0xa2b8f1){const _0x23f0ec={_0x13fdec:0x176,_0x42cb01:0x137},_0x194e18=_0x5a369;this['record'](_0x194e18(_0x23f0ec._0x13fdec),[_0x516679,_0xa2b8f1]),this['maybeThrow'](),this[_0x194e18(_0x23f0ec._0x42cb01)]?.();}async[_0x5a369(0x13f)](_0x2bf403,_0xa3d319){const _0x50523b={_0x4c8592:0x13f},_0x4608a1=_0x5a369;this[_0x4608a1(0x143)](_0x4608a1(_0x50523b._0x4c8592),[_0x2bf403,_0xa3d319]),this['maybeThrow']();}async[_0x5a369(0x171)](_0x45f1bf,_0xd53ae6,_0x5a20f4){const _0x45048b={_0x46010e:0x143},_0x2994e8=_0x5a369;this[_0x2994e8(_0x45048b._0x46010e)](_0x2994e8(0x171),[_0x45f1bf,_0xd53ae6,_0x5a20f4]),this['maybeThrow']();}async[_0x5a369(0x13c)](_0x564094,_0x2235bc,_0x561425){const _0x2c26e5=_0x5a369;this[_0x2c26e5(0x143)]('press',[_0x564094,_0x2235bc,_0x561425]),this['maybeThrow']();}async[_0x5a369(0x154)](_0xebcde4,_0x56a1a5){const _0x1e3bac={_0x58d318:0x154,_0x4e60bd:0x15f},_0x143869=_0x5a369;this['record'](_0x143869(_0x1e3bac._0x58d318),[_0xebcde4,_0x56a1a5]),this[_0x143869(_0x1e3bac._0x4e60bd)]();}async[_0x5a369(0x15c)](_0x26ca2f,_0x583d24){const _0x3f84f8={_0x20205c:0x15f},_0x1a6df3=_0x5a369;this['record']('uncheck',[_0x26ca2f,_0x583d24]),this[_0x1a6df3(_0x3f84f8._0x20205c)]();}async[_0x5a369(0x160)](_0x2bf8de,_0x430b79,_0x3bf106){const _0x169b63={_0x34d5fb:0x143},_0x52baaf=_0x5a369;this[_0x52baaf(_0x169b63._0x34d5fb)](_0x52baaf(0x160),[_0x2bf8de,_0x430b79,_0x3bf106]),this['maybeThrow']();}async[_0x5a369(0x125)](_0x554d14,_0x27fae7){const _0x347b7e=_0x5a369;this[_0x347b7e(0x143)](_0x347b7e(0x125),[_0x554d14,_0x27fae7]),this[_0x347b7e(0x15f)]();}async[_0x5a369(0x121)](_0x4b1543){const _0x352de3={_0x3b0502:0x15f},_0x33d422=_0x5a369;this['record'](_0x33d422(0x121),[_0x4b1543]),this[_0x33d422(_0x352de3._0x3b0502)]();}async[_0x5a369(0x14c)](_0x5efe3d,_0x14ea2f,_0x314a97){const _0x14652d={_0x1b2078:0x15f},_0x4a4b43=_0x5a369;this[_0x4a4b43(0x143)]('dragAndDrop',[_0x5efe3d,_0x14ea2f,_0x314a97]),this[_0x4a4b43(_0x14652d._0x1b2078)]();}async[_0x5a369(0x170)](_0x23995d,_0x40e00d){const _0x560f7f=_0x5a369;this['record'](_0x560f7f(0x170),[_0x23995d,_0x40e00d]),this[_0x560f7f(0x15f)]();}async[_0x5a369(0x11f)](_0x54d5dd,_0xc9729c){const _0x3bdf27={_0x44f060:0x11f},_0x4fcdf2=_0x5a369;this['record'](_0x4fcdf2(_0x3bdf27._0x44f060),[_0x54d5dd,_0xc9729c]),this[_0x4fcdf2(0x15f)]();}async[_0x5a369(0x173)](_0x1d8164){const _0x1d8294={_0x29dd4a:0x139},_0x3c57e3=_0x5a369;return this['record'](_0x3c57e3(0x173),[_0x1d8164]),this[_0x3c57e3(0x10f)][_0x3c57e3(_0x1d8294._0x29dd4a)]??0x1;}async[_0x5a369(0x135)](_0x11a4df){const _0x2cc503={_0x2dd39d:0x135,_0xfa5fc8:0x10f,_0x52cda5:0x118},_0x262681=_0x5a369;return this['record'](_0x262681(_0x2cc503._0x2dd39d),[_0x11a4df]),this[_0x262681(_0x2cc503._0xfa5fc8)][_0x262681(_0x2cc503._0x52cda5)]??'';}async[_0x5a369(0x153)](_0x2bd429){const _0x1bb13e={_0x7a4062:0x10f},_0x299977=_0x5a369;return this[_0x299977(0x143)]('innerText',[_0x2bd429]),this[_0x299977(_0x1bb13e._0x7a4062)][_0x299977(0x13a)]??this['behavior']['textContentByDefault']??'';}async['inputValue'](_0x337824){const _0x5dd9a3=_0x5a369;return this[_0x5dd9a3(0x143)]('inputValue',[_0x337824]),this[_0x5dd9a3(0x10f)][_0x5dd9a3(0x151)]??'';}async[_0x5a369(0x13d)](_0x49f90e){const _0x7aa1e1={_0x1e74c1:0x143},_0xb2246b=_0x5a369;return this[_0xb2246b(_0x7aa1e1._0x1e74c1)](_0xb2246b(0x13d),[_0x49f90e]),this['behavior']['checkedStateByDefault']??null;}async[_0x5a369(0x177)](_0x37b641){const _0x3e01c4={_0x49f071:0x10f,_0x598ec7:0x132},_0x543fe7=_0x5a369;return this[_0x543fe7(0x143)](_0x543fe7(0x177),[_0x37b641]),this[_0x543fe7(_0x3e01c4._0x49f071)][_0x543fe7(_0x3e01c4._0x598ec7)]??!![];}async['isDisabled'](_0x4e8876){const _0xf0a058={_0x5e22a5:0x15a},_0x262d72=_0x5a369;return this['record'](_0x262d72(_0xf0a058._0x5e22a5),[_0x4e8876]),this[_0x262d72(0x10f)][_0x262d72(0x12a)]??![];}async[_0x5a369(0x178)](_0x26c567,_0x5baed4){const _0x101dd5={_0x36cdd9:0x178,_0x1b19dc:0x10f,_0x243415:0x111},_0x3c04d2=_0x5a369;return this[_0x3c04d2(0x143)](_0x3c04d2(_0x101dd5._0x36cdd9),[_0x26c567,_0x5baed4]),this[_0x3c04d2(_0x101dd5._0x1b19dc)][_0x3c04d2(_0x101dd5._0x243415)]?.[_0x5baed4]??null;}async[_0x5a369(0x11e)](_0x358dcf,_0x505a65){const _0x4cfd24={_0x440145:0x11e},_0x9bdc3e=_0x5a369;this[_0x9bdc3e(0x143)](_0x9bdc3e(_0x4cfd24._0x440145),[_0x358dcf,_0x505a65]);}async[_0x5a369(0x159)](_0x271d20,_0x598168){const _0x2e9941=_0x5a369;this[_0x2e9941(0x143)](_0x2e9941(0x159),[_0x271d20,_0x598168]);}async[_0x5a369(0x179)](_0xc63544,_0x2ddcbc){const _0x39253a={_0x11ae61:0x143,_0x5ba372:0x179},_0x565308=_0x5a369;this[_0x565308(_0x39253a._0x11ae61)](_0x565308(_0x39253a._0x5ba372),[_0xc63544,_0x2ddcbc]);}async[_0x5a369(0x14d)](_0x2d1b3e){const _0x4031dd=_0x5a369;this['record'](_0x4031dd(0x14d),[_0x2d1b3e]);}async[_0x5a369(0x138)](_0x1bf247,_0x18d779){const _0x9ae71e=_0x5a369;this[_0x9ae71e(0x143)](_0x9ae71e(0x138),[_0x1bf247,_0x18d779]);}async[_0x5a369(0x133)](_0x4ed72e,_0x589f1c){const _0x27eee3={_0x26c0c0:0x143},_0x58497e=_0x5a369;this[_0x58497e(_0x27eee3._0x26c0c0)]('goto',[_0x4ed72e,_0x589f1c]),this[_0x58497e(0x12e)]=_0x4ed72e;}async['reload'](_0x1c50e8){const _0x5c0c27={_0x2e4ee3:0x11b},_0x586d97=_0x5a369;this[_0x586d97(0x143)](_0x586d97(_0x5c0c27._0x2e4ee3),[_0x1c50e8]);}async['goBack'](_0x372d59){const _0x40a595={_0x3dfa3c:0x143},_0xeffa01=_0x5a369;this[_0xeffa01(_0x40a595._0x3dfa3c)](_0xeffa01(0x11c),[_0x372d59]);}async[_0x5a369(0x142)](_0x25bd92){const _0x44ac22={_0x3a5174:0x143},_0x19daf2=_0x5a369;this[_0x19daf2(_0x44ac22._0x3a5174)](_0x19daf2(0x142),[_0x25bd92]);}async['evaluate'](_0x43b6cc){const _0x492773=_0x5a369;return this[_0x492773(0x143)](_0x492773(0x136),[_0x43b6cc]),void 0x0;}async[_0x5a369(0x12f)](_0x548ace,_0x4c7916){const _0xad5522=_0x5a369;return this[_0xad5522(0x143)]('evaluateOnLocator',[_0x548ace,_0x4c7916]),void 0x0;}async[_0x5a369(0x10b)](_0x341ba9){const _0x4a087d={_0x3449eb:0x17b,_0x472aae:0x16a,_0x30583e:0x146},_0x1dfcef=_0x5a369;this['record'](_0x1dfcef(0x10b),[_0x341ba9]);if(_0x341ba9[_0x1dfcef(_0x4a087d._0x3449eb)][_0x1dfcef(0x17f)]!==0x1||_0x341ba9[_0x1dfcef(0x17b)][0x0]['kind']!==_0x1dfcef(_0x4a087d._0x472aae))return null;const _0x2d4ea7=_0x341ba9[_0x1dfcef(0x17b)][0x0][_0x1dfcef(0x16a)],_0x284e96=this[_0x1dfcef(0x10f)][_0x1dfcef(_0x4a087d._0x30583e)]?.[_0x2d4ea7];return _0x284e96??null;}async[_0x5a369(0x110)](_0x5ae291){const _0x8705b8={_0x6c5713:0x143,_0x7f8d88:0x110},_0x2aa399=_0x5a369;return this[_0x2aa399(_0x8705b8._0x6c5713)](_0x2aa399(_0x8705b8._0x7f8d88),[_0x5ae291]),Buffer[_0x2aa399(0x16b)](_0x2aa399(0x14e));}async['outerHTML'](_0x195b19){const _0x57657={_0x2de6c1:0x17f,_0x25c133:0x17b,_0x4d8adf:0x10f,_0xc69ac6:0x16f,_0x6c5a33:0x141},_0x34cf02=_0x5a369;this[_0x34cf02(0x143)](_0x34cf02(0x119),[_0x195b19]);if(_0x195b19[_0x34cf02(0x17b)][_0x34cf02(_0x57657._0x2de6c1)]===0x1&&_0x195b19[_0x34cf02(0x17b)][0x0][_0x34cf02(0x15d)]==='ref'){const _0x9d7ec3=_0x195b19[_0x34cf02(_0x57657._0x25c133)][0x0]['ref'];return this[_0x34cf02(_0x57657._0x4d8adf)]['outerHtmlByRef']?.[_0x9d7ec3]??_0x34cf02(0x181)+_0x9d7ec3+_0x34cf02(_0x57657._0xc69ac6);}return _0x34cf02(_0x57657._0x6c5a33);}},FakeContext=class{constructor(_0x33c4ea,_0x11832b,_0x376d37){const _0x7df6df={_0x3f223d:0x10f,_0xb329c7:0x117,_0xa93f8a:0x16c,_0x2f2dbf:0x150,_0x1a0bca:0x10c,_0x13a5de:0x123},_0x30cbeb={_0x15d2f1:0x17a},_0x3fe581=_0x5a369;this['recorder']=_0x33c4ea,this[_0x3fe581(_0x7df6df._0x3f223d)]=_0x11832b,this[_0x3fe581(_0x7df6df._0xb329c7)]=_0x376d37;const _0x3acb97=new FakePage(_0x33c4ea,_0x11832b,_0x376d37+'.page0',_0x11832b[_0x3fe581(0x107)]??_0x3fe581(_0x7df6df._0xa93f8a));_0x11832b['popupOnClick']&&(_0x3acb97['onAfterClick']=()=>{const _0x56b7db=_0x3fe581;this[_0x56b7db(_0x30cbeb._0x15d2f1)](_0x11832b[_0x56b7db(0x144)]);}),this[_0x3fe581(_0x7df6df._0x2f2dbf)]=[_0x3acb97],this['localStorageState']={..._0x11832b[_0x3fe581(_0x7df6df._0x1a0bca)]??{}},this['cookieState']={..._0x11832b[_0x3fe581(_0x7df6df._0x13a5de)]??{}};}[_0x5a369(0x16d)];['behavior'];['scope'];static{__name(this,'FakeContext');}[_0x5a369(0x150)];[_0x5a369(0x157)]=0x0;[_0x5a369(0x161)]=[];[_0x5a369(0x12d)];[_0x5a369(0x156)];[_0x5a369(0x15e)]=new Set();['record'](_0x5e7215,_0x40ab23){const _0x3f2d7b={_0x2612ec:0x120},_0x2f3f58=_0x5a369;this['recorder'][_0x2f3f58(_0x3f2d7b._0x2612ec)]({'scope':this['scope'],'method':_0x5e7215,'args':_0x40ab23});}['pages'](){const _0x2f0a58={_0x233be5:0x150},_0x5c68af=_0x5a369;return this[_0x5c68af(_0x2f0a58._0x233be5)];}[_0x5a369(0x145)](){const _0x20f76c=_0x5a369,_0x2a8aca=this[_0x20f76c(0x150)][this['activeIdx']];if(!_0x2a8aca)throw new DriverError('no\x20active\x20page\x20in\x20context',{'activeIdx':this['activeIdx']});return _0x2a8aca;}[_0x5a369(0x14a)](){const _0x3debd3={_0x12aa1d:0x14a},_0x3fa175=_0x5a369;return this['behavior'][_0x3fa175(_0x3debd3._0x12aa1d)]??[];}[_0x5a369(0x17d)](){const _0x13b6d5={_0x992d60:0x10f,_0x28da61:0x17d},_0x4a8ccd=_0x5a369;return this[_0x4a8ccd(_0x13b6d5._0x992d60)][_0x4a8ccd(_0x13b6d5._0x28da61)]??[];}async[_0x5a369(0x113)](_0x4173fd){const _0x1f243d={_0x43c15c:0x143,_0x39df75:0x164,_0x50cc0c:0x157},_0x11f1f6=_0x5a369;this[_0x11f1f6(_0x1f243d._0x43c15c)](_0x11f1f6(0x113),[_0x4173fd]);if(_0x4173fd<0x0||_0x4173fd>=this[_0x11f1f6(0x150)]['length'])throw new DriverError(_0x11f1f6(_0x1f243d._0x39df75),{'index':_0x4173fd,'available':this[_0x11f1f6(0x150)]['length']});this[_0x11f1f6(_0x1f243d._0x50cc0c)]=_0x4173fd,this[_0x11f1f6(0x161)]['length']=0x0;}[_0x5a369(0x180)](_0x33fc58){const _0x416d01=_0x5a369;return subscribe(this[_0x416d01(0x15e)],_0x33fc58);}['emitFakePopup'](_0x4c3e82){const _0x1b676f={_0x435c7a:0x117,_0x27716b:0x163,_0x2cec86:0x17f,_0x424355:0x150,_0x30e489:0x120,_0x6de9a3:0x15e},_0x48532c=_0x5a369,_0x234582=this[_0x48532c(_0x1b676f._0x435c7a)]+_0x48532c(_0x1b676f._0x27716b)+this['pageList'][_0x48532c(_0x1b676f._0x2cec86)],_0x757945=new FakePage(this[_0x48532c(0x16d)],this[_0x48532c(0x10f)],_0x234582,_0x4c3e82);this[_0x48532c(_0x1b676f._0x424355)][_0x48532c(_0x1b676f._0x30e489)](_0x757945);const _0x2c1a8e=this[_0x48532c(0x150)][_0x48532c(_0x1b676f._0x2cec86)]-0x1;for(const _0xb30b03 of this[_0x48532c(_0x1b676f._0x6de9a3)]){try{_0xb30b03({'index':_0x2c1a8e,'url':_0x4c3e82});}catch{}}return _0x2c1a8e;}[_0x5a369(0x17c)](_0x8c8ffc){const _0x67a09f={_0x14e5f7:0x17f,_0x2c6444:0x149},_0x2affdb=_0x5a369;if(_0x8c8ffc<0x0||_0x8c8ffc>=this[_0x2affdb(0x150)][_0x2affdb(_0x67a09f._0x14e5f7)])throw new DriverError('page\x20index\x20out\x20of\x20range',{'index':_0x8c8ffc,'available':this['pageList']['length']});this[_0x2affdb(0x150)][_0x2affdb(_0x67a09f._0x2c6444)](_0x8c8ffc,0x1);}async[_0x5a369(0x167)](_0x5e5287){const _0x40a702={_0x39962d:0x10e},_0x15f7f7=_0x5a369;this[_0x15f7f7(0x143)](_0x15f7f7(0x167),[_0x5e5287]);if(!_0x5e5287[_0x15f7f7(0x17b)][_0x15f7f7(0x17f)])throw new LocatorError(_0x15f7f7(_0x40a702._0x39962d),{'locator':_0x5e5287});this['frameStack']['push'](_0x5e5287);}async[_0x5a369(0x165)](){const _0x4fb9f8={_0x40a7a3:0x143,_0x338a2c:0x161,_0x2c9352:0x17f},_0x677d6b=_0x5a369;this[_0x677d6b(_0x4fb9f8._0x40a7a3)](_0x677d6b(0x165),[]);if(this[_0x677d6b(_0x4fb9f8._0x338a2c)][_0x677d6b(_0x4fb9f8._0x2c9352)]===0x0)throw new DriverError('exitFrame\x20called\x20with\x20no\x20frame\x20on\x20the\x20stack',{});this[_0x677d6b(_0x4fb9f8._0x338a2c)]['pop']();}async['setLocalStorage'](_0x46a76d,_0x2de9b4){const _0x10b9be={_0x411eb3:0x143,_0x1ec3fe:0x12d},_0x505995=_0x5a369;this[_0x505995(_0x10b9be._0x411eb3)](_0x505995(0x115),[_0x46a76d,_0x2de9b4]),this[_0x505995(_0x10b9be._0x1ec3fe)][_0x46a76d]=_0x2de9b4;}async[_0x5a369(0x17e)](_0x4e455f){const _0x35bde2={_0x40b5fe:0x12d},_0x25a145=_0x5a369;return this[_0x25a145(0x143)](_0x25a145(0x17e),[_0x4e455f]),this[_0x25a145(_0x35bde2._0x40b5fe)][_0x4e455f]??null;}async['setCookie'](_0x3559ff,_0x1e7baa,_0x2f7ab3){const _0x508f84=_0x5a369;this[_0x508f84(0x143)]('setCookie',[_0x3559ff,_0x1e7baa,_0x2f7ab3]),this['cookieState'][_0x3559ff]=_0x1e7baa;}async[_0x5a369(0x13b)](_0x404262){const _0x33d899=_0x5a369;return this[_0x33d899(0x143)]('getCookie',[_0x404262]),this['cookieState'][_0x404262]??null;}async[_0x5a369(0x148)](_0x23049a){const _0x252b7a={_0x1bd851:0x143},_0x2bcdb5=_0x5a369;this[_0x2bcdb5(_0x252b7a._0x1bd851)]('saveStorageState',[_0x23049a]);}async[_0x5a369(0x136)](_0x2a3bb3){const _0x1fe91f={_0x3ff783:0x143,_0x291b8d:0x136},_0x4e3169=_0x5a369;return this[_0x4e3169(_0x1fe91f._0x3ff783)](_0x4e3169(_0x1fe91f._0x291b8d),[_0x2a3bb3]),void 0x0;}async[_0x5a369(0x124)](){const _0x4a2cc7={_0x1002ee:0x124},_0x5f3024=_0x5a369;this[_0x5f3024(0x143)](_0x5f3024(_0x4a2cc7._0x1002ee),[]);}[_0x5a369(0x11a)](){const _0x3c88d2={_0x2ebd46:0x161,_0x3beb99:0x17f},_0x1dbfc1=_0x5a369;return this[_0x1dbfc1(_0x3c88d2._0x2ebd46)][_0x1dbfc1(_0x3c88d2._0x3beb99)];}},FakeWebDriver=class{constructor(_0x1565d2={}){const _0x44d7a5={_0xb830b:0x10f,_0x178af4:0x16d},_0x3f3772=_0x5a369;this[_0x3f3772(_0x44d7a5._0xb830b)]=_0x1565d2,this[_0x3f3772(_0x44d7a5._0x178af4)]=createRecorder();}[_0x5a369(0x10f)];static{__name(this,_0x5a369(0x14f));}['launched']=![];[_0x5a369(0x16d)];[_0x5a369(0x134)]=[];async[_0x5a369(0x128)](_0x6b7a79){const _0x2260f3={_0xc2aafe:0x10d},_0x106e74=_0x5a369;this[_0x106e74(0x16d)]['push']({'scope':_0x106e74(_0x2260f3._0xc2aafe),'method':'launch','args':[_0x6b7a79]}),this['launched']=!![];}async[_0x5a369(0x16e)](_0x588916){const _0x1219b5={_0x5d07f8:0x10f,_0x1fa957:0x134,_0x48cbcf:0x120},_0x5c1472=_0x5a369;this[_0x5c1472(0x16d)][_0x5c1472(0x120)]({'scope':_0x5c1472(0x10d),'method':'newContext','args':[_0x588916]});if(!this['launched'])throw new DriverError(_0x5c1472(0x14b),{});const _0x494835=new FakeContext(this[_0x5c1472(0x16d)],this[_0x5c1472(_0x1219b5._0x5d07f8)],_0x5c1472(0x175)+this[_0x5c1472(_0x1219b5._0x1fa957)][_0x5c1472(0x17f)]);return this['contexts'][_0x5c1472(_0x1219b5._0x48cbcf)](_0x494835),_0x494835;}async[_0x5a369(0x124)](){const _0x3336f4={_0x331124:0x16d,_0x3aef86:0x10d,_0x4f119d:0x124,_0x584520:0x15b},_0x2e5cac=_0x5a369;this[_0x2e5cac(_0x3336f4._0x331124)][_0x2e5cac(0x120)]({'scope':_0x2e5cac(_0x3336f4._0x3aef86),'method':_0x2e5cac(_0x3336f4._0x4f119d),'args':[]}),this[_0x2e5cac(_0x3336f4._0x584520)]=![];}[_0x5a369(0x10a)](){return void 0x0;}async[_0x5a369(0x155)](){const _0x4fc479=_0x5a369;throw new DriverError(_0x4fc479(0x12b),{});}[_0x5a369(0x11d)](){throw new DriverError('attachExisting\x20not\x20supported\x20by\x20FakeWebDriver',{});}[_0x5a369(0x158)](){const _0xa49c69={_0xcb4bc4:0x16d,_0x14b7f0:0x158},_0x34c64a=_0x5a369;return this[_0x34c64a(_0xa49c69._0xcb4bc4)][_0x34c64a(_0xa49c69._0x14b7f0)]();}['callsFor'](_0x2ac3fe){const _0x1033e4={_0x50844c:0x16d},_0x2d8347=_0x5a369;return this[_0x2d8347(_0x1033e4._0x50844c)][_0x2d8347(0x158)]()['filter'](_0x46b0dd=>_0x46b0dd['method']===_0x2ac3fe);}};export{FakeWebDriver};
|
|
1
|
+
const _0xeb371e=_0xb3c4;(function(_0x391074,_0x3b2f50){const _0x297e7b={_0x20e96c:0xc6,_0xed9668:0xd9,_0xa00b34:0xe4},_0x33b337=_0xb3c4,_0x4116e6=_0x391074();while(!![]){try{const _0x378cda=parseInt(_0x33b337(_0x297e7b._0x20e96c))/0x1*(-parseInt(_0x33b337(0xc1))/0x2)+parseInt(_0x33b337(_0x297e7b._0xed9668))/0x3+parseInt(_0x33b337(0x82))/0x4*(parseInt(_0x33b337(0xa2))/0x5)+-parseInt(_0x33b337(0x92))/0x6*(parseInt(_0x33b337(0x95))/0x7)+-parseInt(_0x33b337(0xa9))/0x8+-parseInt(_0x33b337(_0x297e7b._0xa00b34))/0x9+-parseInt(_0x33b337(0x8d))/0xa*(-parseInt(_0x33b337(0xc0))/0xb);if(_0x378cda===_0x3b2f50)break;else _0x4116e6['push'](_0x4116e6['shift']());}catch(_0x9a0051){_0x4116e6['push'](_0x4116e6['shift']());}}}(_0x291e,0x91a28));var __defProp=Object['defineProperty'],__name=(_0x33690d,_0x5212f9)=>__defProp(_0x33690d,'name',{'value':_0x5212f9,'configurable':!![]});function _0xb3c4(_0x172257,_0x34afe6){_0x172257=_0x172257-0x6f;const _0x291e59=_0x291e();let _0xb3c46c=_0x291e59[_0x172257];if(_0xb3c4['Lggrra']===undefined){var _0x4c22a9=function(_0x3c0f79){const _0x3759f3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x33690d='',_0x5212f9='';for(let _0x18dd39=0x0,_0x48bc86,_0x3fee35,_0x482524=0x0;_0x3fee35=_0x3c0f79['charAt'](_0x482524++);~_0x3fee35&&(_0x48bc86=_0x18dd39%0x4?_0x48bc86*0x40+_0x3fee35:_0x3fee35,_0x18dd39++%0x4)?_0x33690d+=String['fromCharCode'](0xff&_0x48bc86>>(-0x2*_0x18dd39&0x6)):0x0){_0x3fee35=_0x3759f3['indexOf'](_0x3fee35);}for(let _0x5a5786=0x0,_0x48f7a2=_0x33690d['length'];_0x5a5786<_0x48f7a2;_0x5a5786++){_0x5212f9+='%'+('00'+_0x33690d['charCodeAt'](_0x5a5786)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5212f9);};_0xb3c4['CQLqGn']=_0x4c22a9,_0xb3c4['HewBEB']={},_0xb3c4['Lggrra']=!![];}const _0x8f7ef6=_0x291e59[0x0],_0x4d5b7c=_0x172257+_0x8f7ef6,_0x1d12a1=_0xb3c4['HewBEB'][_0x4d5b7c];return!_0x1d12a1?(_0xb3c46c=_0xb3c4['CQLqGn'](_0xb3c46c),_0xb3c4['HewBEB'][_0x4d5b7c]=_0xb3c46c):_0xb3c46c=_0x1d12a1,_0xb3c46c;}function subscribe(_0x18dd39,_0x48bc86){const _0x1c6392={_0xa501bb:0x93},_0x35b88d=_0xb3c4;return _0x18dd39[_0x35b88d(0x83)](_0x48bc86),()=>{const _0x19a220=_0x35b88d;_0x18dd39[_0x19a220(_0x1c6392._0xa501bb)](_0x48bc86);};}__name(subscribe,'subscribe');function _0x291e(){const _0x38c7c4=['y29VA2LLCW','D2fPDezVCK5HDMLNyxrPB24','Cg9WDxbpBKnSAwnR','C3rLChm','rMfRzvDLyKrYAxzLCG','BM8Gywn0AxzLihbHz2uGAw4Gy29UDgv4Da','z29cywnR','D3nfBMrWB2LUDa','ChjLC3m','mJr0BuHMDwS','ywrK','D2fPDezVCKXVywrtDgf0zq','Aw5WDxrwywX1zuj5rgvMyxvSDa','AxnwAxnPyMXL','y2fSBhngB3i','y3r4','C2nVCgu','zwXLBwvUDeHPBNrcEvjLzG','ywn0AxzLugfNzq','zNjVBq','ndK3mZbvtuvHzvK','y29UBMvJDfnOyxjLza','yMvOyxzPB3i','rMfRzunVBNrLEhq','ywn0AxzLswr4','ntq2y1bhtvvK','zgvSzxrL','BMv3q29UDgv4DcbJywXSzwqGyMvMB3jLigXHDw5JAcGP','mZqYnZLuqKDLDuS','pgrPDJ48l2rPDJ4','y2XVC2u','y29VA2LLu3rHDgu','C2vSzwn0t3b0Aw9U','rhjPDMvYrxjYB3i','A2LUza','Aw5PDgLHBfvYBa','yxr0CMLIDxrLC0j5rgvMyxvSDa','y29UC29SzuvUDhjPzxm','yxr0ywnOrxHPC3rPBMCGBM90ihn1ChbVCNrLzcbIEsbgywTLv2vIrhjPDMvY','Bg9JywXtDg9YywDL','CMvM','mJeWmtG1BuHpBuTn','y29UBMvJDfnOyxjLzcbUB3qGC3vWCg9YDgvKigj5iezHA2vxzwjeCML2zxi','y2fSBhm','y3vYCMvUDfvYBa','iJ48l2rPDJ4','DxbSB2fKrMLSzq','D2fPDezVCG','mJu4oda4sgrHzKLc','CMvJB3jK','y3jLyxrLuMvJB3jKzxi','C2nYzwvUC2HVDa','BMv3ugfNzuXPC3rLBMvYCW','zw50zxjgCMfTzsbJywXSzwqGD2L0AcbLBxb0EsbSB2nHDg9Y','ChvZAa','Bwv0Ag9K','y2HLy2S','C2nYzwvUC2HVDevSzw1LBNq','zxzHBhvHDgvpBKXVy2f0B3i','C2v0qwn0AxzLugfNzq','z2v0q29VA2LL','Bgf1BMnO','B3v0zxjive1m','zxzHBhvHDgu','zMfRzs1WBMC','z2v0qxr0CMLIDxrL','B25bzNrLCKnSAwnR','Aw5WDxrwywX1zq','Aw5UzxjuzxH0qNLezwzHDwX0','CMvJB3jKzxi','Dgv4DenVBNrLBNq','ndGYowX1s0zXqq','mZaWmJjzC1v4wLu','zw50zxjgCMfTzq','zxHPDezYyw1LignHBgXLzcb3AxrOig5VigzYyw1Lig9UihrOzsbZDgfJAW','zMfRzsb0AxrSzq','y2XPy2S','nJb3uKLRyvq','zhjHz0fUzerYB3a','DhLWzq','Bg9JywXtDg9YywDLu3rHDgu','BMv3q29UDgv4Da','zg91yMXLq2XPy2S','Ag92zxi','CMvSB2fK','BMv0D29YA0vUDhjPzxm','CgfNzuXPC3q','zxHPDezYyw1L','y2XVC2vgywTLugfNzq','Bwf5yMvuAhjVDW','Aw5ZCgvJDevSzw1LBNq','zhjPDMvY','CgfNzsbPBMrLEcbVDxqGB2yGCMfUz2u','lNbHz2u','Dgv4DenVBNrLBNrcEurLzMf1Bhq','C2nYB2XSsw50B1zPzxC','nJq5nZu1sffbrNbj','zNjHBwvtDgfJAW','C2v0tg9JywXtDg9YywDL','C3bSAwnL','AxneAxnHyMXLza','y291BNq','C2nYzwvUC2HVDej5DgvZ','ywjVDxq6yMXHBMS','Cg9W','BgvUz3rO','zMLSDgvY','nJa5mte2nhrWuNrSzG','C2f2zvn0B3jHz2vtDgf0zq','rMfRzvbHz2u','pgrPDIbKyxrHlxvUB3rLC3qTCMvMpsi','yxr0ywnOrxHPC3rPBMC','zw1PDezHA2vqB3b1Ca','AxneAxnHyMXLzej5rgvMyxvSDa','y2XPCgjVyxjKugfZDgu','Bgf1BMnOzwq','D2fPDezVCLrLEhq','zxjYB3jpBK5LEhrby3rPB24','Dw5JAgvJAW','Aw5UzxjuzxH0','z2v0tg9JywXtDg9YywDL','y2HLy2TLzfn0yxrLqNLezwzHDwX0','y29UDgv4Dhm','z29gB3j3yxjK'];_0x291e=function(){return _0x38c7c4;};return _0x291e();}import{UnotestError}from'@unotest/core';var DriverError=class extends UnotestError{static{__name(this,_0xeb371e(0x9a));}},LocatorError=class extends UnotestError{static{__name(this,'LocatorError');}};function createRecorder(){const _0x5a5b7c={_0x1241bf:0xaf},_0x9a35c2=_0xeb371e,_0x3fee35=[];let _0x482524=0x0;return{'push':__name(_0x5a5786=>_0x3fee35[_0x9a35c2(0xaf)]({..._0x5a5786,'seq':_0x482524++}),_0x9a35c2(_0x5a5b7c._0x1241bf)),'calls':__name(()=>_0x3fee35,_0x9a35c2(0xa4))};}__name(createRecorder,_0xeb371e(0xab));var FakePage=class{constructor(_0x48f7a2,_0x5d0fe5,_0xa4e6e5,_0x1a5a37){const _0x35d47c={_0x92e137:0xbe},_0x263e56=_0xeb371e;this[_0x263e56(_0x35d47c._0x92e137)]=_0x48f7a2,this[_0x263e56(0x8f)]=_0x5d0fe5,this[_0x263e56(0x89)]=_0xa4e6e5,this['currentUrl']=_0x1a5a37;}['recorder'];[_0xeb371e(0x8f)];['scope'];static{__name(this,_0xeb371e(0xe6));}['currentUrl'];[_0xeb371e(0xbb)];[_0xeb371e(0xaa)](_0x18f44c,_0x1505ea){const _0x2a59fc={_0x3cf297:0x89},_0x1e3458=_0xeb371e;this[_0x1e3458(0xbe)][_0x1e3458(0xaf)]({'scope':this[_0x1e3458(_0x2a59fc._0x3cf297)],'method':_0x18f44c,'args':_0x1505ea});}[_0xeb371e(0xd2)](){const _0x4cab15={_0x565260:0x8f,_0x8c58d5:0x72,_0x3f8a59:0x8f},_0x449e9c=_0xeb371e;if(this[_0x449e9c(_0x4cab15._0x565260)][_0x449e9c(_0x4cab15._0x8c58d5)]){const _0x3ba61d=this[_0x449e9c(_0x4cab15._0x3f8a59)]['errorOnNextAction'];this['behavior'][_0x449e9c(_0x4cab15._0x8c58d5)]=void 0x0;throw _0x3ba61d;}}['url'](){const _0x455a58={_0x3f2d48:0xa5},_0x47572a=_0xeb371e;return this[_0x47572a(_0x455a58._0x3f2d48)];}async['title'](){const _0x7bd92b=_0xeb371e;return this['record']('title',[]),_0x7bd92b(0xc4);}async[_0xeb371e(0xc5)](_0x3cb7e9,_0x37e85d){const _0x19527d={_0x46d339:0xaa},_0x14e271=_0xeb371e;this[_0x14e271(_0x19527d._0x46d339)](_0x14e271(0xc5),[_0x3cb7e9,_0x37e85d]),this[_0x14e271(0xd2)](),this['onAfterClick']?.();}async[_0xeb371e(0xcb)](_0x5ba6c4,_0x21a901){const _0x1f059d={_0x6ff9d6:0xcb},_0x246c0e=_0xeb371e;this['record'](_0x246c0e(_0x1f059d._0x6ff9d6),[_0x5ba6c4,_0x21a901]),this['maybeThrow']();}async['fill'](_0x94970,_0x14ef52,_0x1b05f2){const _0xce030f=_0xeb371e;this['record']('fill',[_0x94970,_0x14ef52,_0x1b05f2]),this[_0xce030f(0xd2)]();}async[_0xeb371e(0x81)](_0x45484c,_0xaba670,_0x5cc686){const _0x1f1c55={_0x40ef5c:0xaa,_0x2b65ea:0x81},_0x311d44=_0xeb371e;this[_0x311d44(_0x1f1c55._0x40ef5c)](_0x311d44(_0x1f1c55._0x2b65ea),[_0x45484c,_0xaba670,_0x5cc686]),this[_0x311d44(0xd2)]();}async[_0xeb371e(0xb1)](_0x5916b4,_0x34f874){const _0x39c3d3={_0x549dae:0xaa,_0x3d9581:0xb1},_0xc60765=_0xeb371e;this[_0xc60765(_0x39c3d3._0x549dae)](_0xc60765(_0x39c3d3._0x3d9581),[_0x5916b4,_0x34f874]),this['maybeThrow']();}async[_0xeb371e(0x73)](_0x22c30b,_0x5f43cf){const _0x49401c={_0x4fb9db:0x73},_0x5abb75=_0xeb371e;this['record'](_0x5abb75(_0x49401c._0x4fb9db),[_0x22c30b,_0x5f43cf]),this[_0x5abb75(0xd2)]();}async['selectOption'](_0x3fd549,_0x1dd747,_0x357d41){const _0x5c9c06={_0x36b268:0xd2},_0x2e17fc=_0xeb371e;this['record'](_0x2e17fc(0x99),[_0x3fd549,_0x1dd747,_0x357d41]),this[_0x2e17fc(_0x5c9c06._0x36b268)]();}async['hover'](_0x531ee8,_0x24bc30){const _0x1d2de8={_0x315c46:0xaa},_0x57ffa1=_0xeb371e;this[_0x57ffa1(_0x1d2de8._0x315c46)](_0x57ffa1(0xcc),[_0x531ee8,_0x24bc30]),this['maybeThrow']();}async['scrollIntoView'](_0x33d06e){const _0x48f507={_0x33acca:0xaa,_0x4275bb:0xd2},_0x3f1159=_0xeb371e;this[_0x3f1159(_0x48f507._0x33acca)](_0x3f1159(0xd8),[_0x33d06e]),this[_0x3f1159(_0x48f507._0x4275bb)]();}async[_0xeb371e(0xc7)](_0x17f1ea,_0x27ceb0,_0xc31a8b){const _0x55f913={_0x115d1f:0xaa,_0x5a7a7c:0xc7},_0x2471ab=_0xeb371e;this[_0x2471ab(_0x55f913._0x115d1f)](_0x2471ab(_0x55f913._0x5a7a7c),[_0x17f1ea,_0x27ceb0,_0xc31a8b]),this[_0x2471ab(0xd2)]();}async['uploadFile'](_0x3c8f55,_0x14bad0){const _0x3f9dbd={_0x268d8e:0xd2},_0x32208b=_0xeb371e;this[_0x32208b(0xaa)](_0x32208b(0xa7),[_0x3c8f55,_0x14bad0]),this[_0x32208b(_0x3f9dbd._0x268d8e)]();}async[_0xeb371e(0x6f)](_0x1e886e,_0x3860c2){const _0x70374f={_0x10e7e1:0x6f},_0x9ffcac=_0xeb371e;this['record'](_0x9ffcac(_0x70374f._0x10e7e1),[_0x1e886e,_0x3860c2]),this[_0x9ffcac(0xd2)]();}async[_0xeb371e(0xde)](_0x39c1e5){const _0x1f09c0={_0x5a50db:0xaa,_0x4889b1:0x8f},_0x79d00c=_0xeb371e;return this[_0x79d00c(_0x1f09c0._0x5a50db)](_0x79d00c(0xde),[_0x39c1e5]),this[_0x79d00c(_0x1f09c0._0x4889b1)]['countByDefault']??0x1;}async[_0xeb371e(0xbf)](_0x1cb7f7){const _0x16b2f1={_0x1fd120:0xbf,_0x27f15e:0x8f},_0x5e3f84=_0xeb371e;return this[_0x5e3f84(0xaa)](_0x5e3f84(_0x16b2f1._0x1fd120),[_0x1cb7f7]),this[_0x5e3f84(_0x16b2f1._0x27f15e)]['textContentByDefault']??'';}async[_0xeb371e(0x74)](_0x2db3e0){const _0x1402cf={_0x223a3f:0x74},_0x546184=_0xeb371e;return this['record'](_0x546184(_0x1402cf._0x223a3f),[_0x2db3e0]),this['behavior'][_0x546184(0xbd)]??this[_0x546184(0x8f)][_0x546184(0xd7)]??'';}async[_0xeb371e(0xbc)](_0x8195b3){const _0x5c2fed={_0x237c62:0xbc},_0x579598=_0xeb371e;return this[_0x579598(0xaa)](_0x579598(_0x5c2fed._0x237c62),[_0x8195b3]),this[_0x579598(0x8f)][_0x579598(0x85)]??'';}async['checkedState'](_0x178921){const _0x3f16fe={_0x467fef:0x8f,_0x181460:0x76},_0x566cbe=_0xeb371e;return this['record']('checkedState',[_0x178921]),this[_0x566cbe(_0x3f16fe._0x467fef)][_0x566cbe(_0x3f16fe._0x181460)]??null;}async[_0xeb371e(0x86)](_0x2b3c06){const _0x49a894={_0x588ac3:0x86},_0x3bd8cc=_0xeb371e;return this[_0x3bd8cc(0xaa)](_0x3bd8cc(_0x49a894._0x588ac3),[_0x2b3c06]),this[_0x3bd8cc(0x8f)]['isVisibleByDefault']??!![];}async[_0xeb371e(0xdd)](_0x5d3c86){const _0x21fca2={_0x18a236:0xaa},_0x2f6379=_0xeb371e;return this[_0x2f6379(_0x21fca2._0x18a236)](_0x2f6379(0xdd),[_0x5d3c86]),this['behavior'][_0x2f6379(0xea)]??![];}async['getAttribute'](_0x289b8f,_0x4a7253){const _0x552550={_0x3c3aad:0xaa},_0x401b6=_0xeb371e;return this[_0x401b6(_0x552550._0x3c3aad)](_0x401b6(0xba),[_0x289b8f,_0x4a7253]),this['behavior'][_0x401b6(0x9d)]?.[_0x4a7253]??null;}async['waitFor'](_0x3a3658,_0x1ca9aa){const _0x4584cf={_0x1ffc3b:0xa8},_0x4e034c=_0xeb371e;this[_0x4e034c(0xaa)](_0x4e034c(_0x4584cf._0x1ffc3b),[_0x3a3658,_0x1ca9aa]);}async['waitForUrl'](_0x3e4613,_0x12e43b){this['record']('waitForUrl',[_0x3e4613,_0x12e43b]);}async[_0xeb371e(0x71)](_0x5b39fe,_0x1731a7){const _0x27c885=_0xeb371e;this[_0x27c885(0xaa)]('waitForText',[_0x5b39fe,_0x1731a7]);}async[_0xeb371e(0x7a)](_0x548be4){const _0xf8e2b0={_0x1453d8:0x7a},_0x2f6fc3=_0xeb371e;this['record'](_0x2f6fc3(_0xf8e2b0._0x1453d8),[_0x548be4]);}async[_0xeb371e(0x84)](_0x11a43b,_0x1f9246){const _0x46f419=_0xeb371e;this['record'](_0x46f419(0x84),[_0x11a43b,_0x1f9246]);}async['goto'](_0x5442b4,_0x2c0ab8){const _0x17c272={_0x1600e9:0xaa,_0x15a117:0xa5},_0x50a2f5=_0xeb371e;this[_0x50a2f5(_0x17c272._0x1600e9)]('goto',[_0x5442b4,_0x2c0ab8]),this[_0x50a2f5(_0x17c272._0x15a117)]=_0x5442b4;}async[_0xeb371e(0xcd)](_0x474bc2){const _0x4f6d75=_0xeb371e;this['record'](_0x4f6d75(0xcd),[_0x474bc2]);}async[_0xeb371e(0x7f)](_0x416866){this['record']('goBack',[_0x416866]);}async[_0xeb371e(0x78)](_0x513bec){const _0x566ffe=_0xeb371e;this[_0x566ffe(0xaa)](_0x566ffe(0x78),[_0x513bec]);}async[_0xeb371e(0xb8)](_0x7452ca){const _0x56935b={_0x505c3d:0x8f},_0x1387a5=_0xeb371e;return this[_0x1387a5(0xaa)](_0x1387a5(0xb8),[_0x7452ca]),this[_0x1387a5(_0x56935b._0x505c3d)]['evaluateResult'];}async[_0xeb371e(0xb3)](_0x35d2bc,_0x52a8b3){const _0x141068={_0x12eab7:0xb3},_0x159d67=_0xeb371e;return this['record'](_0x159d67(_0x141068._0x12eab7),[_0x35d2bc,_0x52a8b3]),void 0x0;}async[_0xeb371e(0xd3)](_0x18b4a0){const _0x5ae42f={_0x252690:0x9b,_0x4f1d35:0xa1},_0x10ffca=_0xeb371e;this[_0x10ffca(0xaa)](_0x10ffca(0xd3),[_0x18b4a0]);if(_0x18b4a0['steps'][_0x10ffca(0xe2)]!==0x1||_0x18b4a0['steps'][0x0][_0x10ffca(_0x5ae42f._0x252690)]!==_0x10ffca(0xa1))return null;const _0x164cb3=_0x18b4a0['steps'][0x0][_0x10ffca(_0x5ae42f._0x4f1d35)],_0x14287c=this['behavior'][_0x10ffca(0x8a)]?.[_0x164cb3];return _0x14287c??null;}async[_0xeb371e(0xac)](_0x65b93f){const _0x127da2={_0x2c3b4a:0xac,_0x299656:0xc8},_0xbf5836=_0xeb371e;return this['record'](_0xbf5836(_0x127da2._0x2c3b4a),[_0x65b93f]),this[_0xbf5836(0xdf)](_0x65b93f?.[_0xbf5836(_0x127da2._0x299656)]);}async[_0xeb371e(0xb2)](_0xa976cd,_0xa1dbc8){const _0x1faedd={_0x58a84d:0xaa,_0x443549:0xb2,_0x4360a5:0xc8},_0x273dcd=_0xeb371e;return this[_0x273dcd(_0x1faedd._0x58a84d)](_0x273dcd(_0x1faedd._0x443549),[_0xa976cd,_0xa1dbc8]),this[_0x273dcd(0xdf)](_0xa1dbc8?.[_0x273dcd(_0x1faedd._0x4360a5)]);}['screenshotBytes'](_0x3ae619){const _0xcb565e=_0xeb371e,_0x48ae4f=this[_0xcb565e(0x8f)][_0xcb565e(0xdf)];if(_0x48ae4f===void 0x0)return Buffer[_0xcb565e(0x8c)](_0xcb565e(0xb9));return typeof _0x48ae4f==='function'?_0x48ae4f(_0x3ae619):_0x48ae4f;}async[_0xeb371e(0xb7)](_0x3e4c47){const _0x48ad9c={_0x47b939:0xaa,_0x514620:0xb7,_0x21eac7:0x7c,_0x25586b:0x8f,_0x2cde9a:0xe7,_0x1a4531:0xa6},_0x422b30=_0xeb371e;this[_0x422b30(_0x48ad9c._0x47b939)](_0x422b30(_0x48ad9c._0x514620),[_0x3e4c47]);if(_0x3e4c47[_0x422b30(_0x48ad9c._0x21eac7)]['length']===0x1&&_0x3e4c47[_0x422b30(_0x48ad9c._0x21eac7)][0x0][_0x422b30(0x9b)]===_0x422b30(0xa1)){const _0x4d7260=_0x3e4c47['steps'][0x0][_0x422b30(0xa1)];return this[_0x422b30(_0x48ad9c._0x25586b)]['outerHtmlByRef']?.[_0x4d7260]??_0x422b30(_0x48ad9c._0x2cde9a)+_0x4d7260+_0x422b30(_0x48ad9c._0x1a4531);}return _0x422b30(0x96);}},FakeContext=class{constructor(_0x7b993a,_0x17f830,_0xab0a0c){const _0x439afb={_0x37ed4d:0x9c,_0x157837:0x7b,_0x106f75:0xa0},_0x2927b6={_0x28db08:0xe9,_0x1668f4:0x7b},_0x4c0b35=_0xeb371e;this['recorder']=_0x7b993a,this[_0x4c0b35(0x8f)]=_0x17f830,this[_0x4c0b35(0x89)]=_0xab0a0c;const _0x12ff9e=new FakePage(_0x7b993a,_0x17f830,_0xab0a0c+'.page0',_0x17f830[_0x4c0b35(_0x439afb._0x37ed4d)]??_0x4c0b35(0xe0));_0x17f830[_0x4c0b35(_0x439afb._0x157837)]&&(_0x12ff9e['onAfterClick']=()=>{const _0x5c9815=_0x4c0b35;this[_0x5c9815(_0x2927b6._0x28db08)](_0x17f830[_0x5c9815(_0x2927b6._0x1668f4)]);}),this[_0x4c0b35(0xcf)]=[_0x12ff9e],this[_0x4c0b35(0xc9)]={..._0x17f830[_0x4c0b35(_0x439afb._0x106f75)]??{}},this[_0x4c0b35(0x98)]={..._0x17f830[_0x4c0b35(0x79)]??{}};}['recorder'];[_0xeb371e(0x8f)];[_0xeb371e(0x89)];static{__name(this,_0xeb371e(0x90));}[_0xeb371e(0xcf)];[_0xeb371e(0x91)]=0x0;[_0xeb371e(0xda)]=[];[_0xeb371e(0xc9)];[_0xeb371e(0x98)];['newPageListeners']=new Set();['record'](_0x2b6643,_0x6af09f){const _0x5a2d93={_0x37b648:0x89},_0x53f2d5=_0xeb371e;this[_0x53f2d5(0xbe)][_0x53f2d5(0xaf)]({'scope':this[_0x53f2d5(_0x5a2d93._0x37b648)],'method':_0x2b6643,'args':_0x6af09f});}['pages'](){const _0x4f3839={_0xfe5ea9:0xcf},_0x33c795=_0xeb371e;return this[_0x33c795(_0x4f3839._0xfe5ea9)];}[_0xeb371e(0x8b)](){const _0x3c4633={_0x19e020:0x7e,_0x1e93f8:0x91},_0x1d1a33=_0xeb371e,_0x21a41f=this['pageList'][this['activeIdx']];if(!_0x21a41f)throw new DriverError(_0x1d1a33(_0x3c4633._0x19e020),{'activeIdx':this[_0x1d1a33(_0x3c4633._0x1e93f8)]});return _0x21a41f;}['consoleEntries'](){const _0x3d8221={_0x29fd01:0x8f,_0x1289f9:0x9e},_0x5168a5=_0xeb371e;return this[_0x5168a5(_0x3d8221._0x29fd01)][_0x5168a5(_0x3d8221._0x1289f9)]??[];}[_0xeb371e(0xce)](){const _0x435858={_0xaa8716:0xce},_0x1ba94e=_0xeb371e;return this['behavior'][_0x1ba94e(_0x435858._0xaa8716)]??[];}async[_0xeb371e(0xb4)](_0x31a406){const _0x16c1d8={_0x49edec:0xda},_0x2c0091=_0xeb371e;this[_0x2c0091(0xaa)](_0x2c0091(0xb4),[_0x31a406]);if(_0x31a406<0x0||_0x31a406>=this['pageList'][_0x2c0091(0xe2)])throw new DriverError('page\x20index\x20out\x20of\x20range',{'index':_0x31a406,'available':this[_0x2c0091(0xcf)]['length']});this[_0x2c0091(0x91)]=_0x31a406,this[_0x2c0091(_0x16c1d8._0x49edec)]['length']=0x0;}['onNewPage'](_0x36e159){const _0x3d615a=_0xeb371e;return subscribe(this[_0x3d615a(0xad)],_0x36e159);}['emitFakePopup'](_0x38495b){const _0x2124a3={_0x407c7c:0xe2,_0x494744:0xaf,_0x350269:0xcf},_0x5d7f75=_0xeb371e,_0x29e286=this['scope']+_0x5d7f75(0xd6)+this['pageList'][_0x5d7f75(_0x2124a3._0x407c7c)],_0x2cadab=new FakePage(this[_0x5d7f75(0xbe)],this['behavior'],_0x29e286,_0x38495b);this['pageList'][_0x5d7f75(_0x2124a3._0x494744)](_0x2cadab);const _0x499aa7=this[_0x5d7f75(_0x2124a3._0x350269)]['length']-0x1;for(const _0x16808a of this['newPageListeners']){try{_0x16808a({'index':_0x499aa7,'url':_0x38495b});}catch{}}return _0x499aa7;}[_0xeb371e(0xd1)](_0x56a2e1){const _0x10d26d={_0x2c71bc:0xcf,_0xfcde9c:0xd5,_0x2de1f4:0xe2,_0x505462:0xcf,_0x20fe9d:0xdc},_0x5202e5=_0xeb371e;if(_0x56a2e1<0x0||_0x56a2e1>=this[_0x5202e5(_0x10d26d._0x2c71bc)][_0x5202e5(0xe2)])throw new DriverError(_0x5202e5(_0x10d26d._0xfcde9c),{'index':_0x56a2e1,'available':this['pageList'][_0x5202e5(_0x10d26d._0x2de1f4)]});this[_0x5202e5(_0x10d26d._0x505462)][_0x5202e5(_0x10d26d._0x20fe9d)](_0x56a2e1,0x1);}async[_0xeb371e(0xc2)](_0x71cff0){const _0x572c49={_0x391e9a:0xaa,_0x23d572:0xc2,_0x160f26:0xae,_0x564484:0xaf},_0x2fd9c2=_0xeb371e;this[_0x2fd9c2(_0x572c49._0x391e9a)](_0x2fd9c2(_0x572c49._0x23d572),[_0x71cff0]);if(!_0x71cff0['steps'][_0x2fd9c2(0xe2)])throw new LocatorError(_0x2fd9c2(_0x572c49._0x160f26),{'locator':_0x71cff0});this['frameStack'][_0x2fd9c2(_0x572c49._0x564484)](_0x71cff0);}async[_0xeb371e(0xd0)](){const _0x25866a={_0x5e3e68:0xaa,_0x26ab32:0xd0,_0x4678ad:0xda,_0x190697:0xe2,_0x31df7c:0xc3},_0x2dc0f7=_0xeb371e;this[_0x2dc0f7(_0x25866a._0x5e3e68)](_0x2dc0f7(_0x25866a._0x26ab32),[]);if(this[_0x2dc0f7(_0x25866a._0x4678ad)][_0x2dc0f7(_0x25866a._0x190697)]===0x0)throw new DriverError(_0x2dc0f7(_0x25866a._0x31df7c),{});this[_0x2dc0f7(0xda)][_0x2dc0f7(0xe1)]();}async[_0xeb371e(0xdb)](_0x11279e,_0x321d59){const _0x409a46={_0xdd481b:0xaa,_0x20189b:0xdb},_0x4d9e96=_0xeb371e;this[_0x4d9e96(_0x409a46._0xdd481b)](_0x4d9e96(_0x409a46._0x20189b),[_0x11279e,_0x321d59]),this['localStorageState'][_0x11279e]=_0x321d59;}async[_0xeb371e(0x75)](_0x5ce2d0){const _0x32a810={_0x491a7d:0xc9},_0x3cd0d9=_0xeb371e;return this['record']('getLocalStorage',[_0x5ce2d0]),this[_0x3cd0d9(_0x32a810._0x491a7d)][_0x5ce2d0]??null;}async['setCookie'](_0x26b21d,_0x1df803,_0x22d70a){const _0xad8337={_0x27b97d:0xaa,_0x436ce7:0x98},_0x55f30f=_0xeb371e;this[_0x55f30f(_0xad8337._0x27b97d)]('setCookie',[_0x26b21d,_0x1df803,_0x22d70a]),this[_0x55f30f(_0xad8337._0x436ce7)][_0x26b21d]=_0x1df803;}async['getCookie'](_0x10d291){const _0x5af258={_0x407e6c:0xaa,_0x3f4013:0x98},_0x4f3cd3=_0xeb371e;return this[_0x4f3cd3(_0x5af258._0x407e6c)](_0x4f3cd3(0xb5),[_0x10d291]),this[_0x4f3cd3(_0x5af258._0x3f4013)][_0x10d291]??null;}async[_0xeb371e(0xe5)](_0xcd59c){const _0x4eab6c=_0xeb371e;this[_0x4eab6c(0xaa)](_0x4eab6c(0xe5),[_0xcd59c]);}async[_0xeb371e(0xb8)](_0x50f86c){const _0x12e487=_0xeb371e;return this[_0x12e487(0xaa)]('evaluate',[_0x50f86c]),void 0x0;}async[_0xeb371e(0x97)](){const _0x1e34f2=_0xeb371e;this[_0x1e34f2(0xaa)]('close',[]);}['frameDepth'](){const _0x888fa5={_0x1a9e60:0xe2},_0x44dfcf=_0xeb371e;return this[_0x44dfcf(0xda)][_0x44dfcf(_0x888fa5._0x1a9e60)];}},FakeWebDriver=class{constructor(_0xa4c90a={}){const _0x1180bd=_0xeb371e;this[_0x1180bd(0x8f)]=_0xa4c90a,this[_0x1180bd(0xbe)]=createRecorder();}[_0xeb371e(0x8f)];static{__name(this,_0xeb371e(0x7d));}[_0xeb371e(0x70)]=![];[_0xeb371e(0xbe)];['contexts']=[];async[_0xeb371e(0xb6)](_0x4d8019){const _0x214f68={_0x2b8911:0xb6,_0x192258:0x70},_0x220fab=_0xeb371e;this[_0x220fab(0xbe)][_0x220fab(0xaf)]({'scope':'driver','method':_0x220fab(_0x214f68._0x2b8911),'args':[_0x4d8019]}),this[_0x220fab(_0x214f68._0x192258)]=!![];}async[_0xeb371e(0xca)](_0x4810da){const _0x14164c={_0x26a739:0xbe,_0x5eadfc:0xd4,_0xfc1459:0xbe,_0x53ea15:0x88,_0x371b08:0x77,_0x1f039f:0xe2,_0xc32d57:0x77},_0x4f750a=_0xeb371e;this[_0x4f750a(_0x14164c._0x26a739)][_0x4f750a(0xaf)]({'scope':_0x4f750a(_0x14164c._0x5eadfc),'method':_0x4f750a(0xca),'args':[_0x4810da]});if(!this['launched'])throw new DriverError(_0x4f750a(0x94),{});const _0x4255a2=new FakeContext(this[_0x4f750a(_0x14164c._0xfc1459)],this[_0x4f750a(0x8f)],_0x4f750a(_0x14164c._0x53ea15)+this[_0x4f750a(_0x14164c._0x371b08)][_0x4f750a(_0x14164c._0x1f039f)]);return this[_0x4f750a(_0x14164c._0xc32d57)]['push'](_0x4255a2),_0x4255a2;}async[_0xeb371e(0x97)](){const _0x26c100={_0x5caeb9:0xd4},_0x52e274=_0xeb371e;this[_0x52e274(0xbe)]['push']({'scope':_0x52e274(_0x26c100._0x5caeb9),'method':'close','args':[]}),this['launched']=![];}[_0xeb371e(0x80)](){return void 0x0;}async[_0xeb371e(0x8e)](){const _0x1d6178=_0xeb371e;throw new DriverError(_0x1d6178(0xa3),{});}[_0xeb371e(0xe8)](_0x1ed45f){const _0x1ccc28=_0xeb371e;throw new DriverError(_0x1ccc28(0x9f),{});}[_0xeb371e(0xa4)](){const _0x146a5a=_0xeb371e;return this['recorder'][_0x146a5a(0xa4)]();}[_0xeb371e(0x87)](_0x1a7f57){const _0x55ccfa={_0x2de913:0xe3},_0x1f5609=_0xeb371e;return this['recorder']['calls']()[_0x1f5609(_0x55ccfa._0x2de913)](_0x2b40fd=>_0x2b40fd[_0x1f5609(0xb0)]===_0x1a7f57);}};export{FakeWebDriver};
|
package/dist/dsl/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
3
|
-
import { Matcher, RegexLiteral, JudgeRequest, JudgeVerdict } from '@unotest/protocol';
|
|
1
|
+
import { j as LocatorValue, W as WebDriver, D as DriverContext, e as DriverPage } from '../interfaces-B34N4rfI.js';
|
|
2
|
+
export { k as LocatorStep, l as appendStep, m as describeLocator, n as isLocatorValue, r as rootedAt } from '../interfaces-B34N4rfI.js';
|
|
3
|
+
import { Matcher, RegexLiteral, JudgeRequest, JudgeVerdict, SoftFailureRecord } 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';
|
|
7
7
|
import { RuntimeExecState } from '@unotest/core';
|
|
8
|
-
export { L as LintDiagnostic, b as LintOptions, a as LintSeverity, l as lintAst } from '../linter-
|
|
8
|
+
export { L as LintDiagnostic, b as LintOptions, a as LintSeverity, l as lintAst } from '../linter-Yf4gPe5J.js';
|
|
9
9
|
import 'zod';
|
|
10
10
|
import '@unotest/dsl';
|
|
11
11
|
|
|
@@ -106,6 +106,18 @@ interface JudgeVerdictSink {
|
|
|
106
106
|
record(record: JudgeVerdictRecord): Promise<void>;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
+
interface NoteRecord {
|
|
110
|
+
label: string;
|
|
111
|
+
/** The value as text: strings as-is, everything else JSON. The sink
|
|
112
|
+
* applies the journal cap; the DSL layer does not know the limit. */
|
|
113
|
+
text: string;
|
|
114
|
+
}
|
|
115
|
+
interface AnnotationSink {
|
|
116
|
+
/** Must not throw on sink faults — a note must never fail the step. */
|
|
117
|
+
note(record: NoteRecord): Promise<void>;
|
|
118
|
+
log(text: string): Promise<void>;
|
|
119
|
+
}
|
|
120
|
+
|
|
109
121
|
type FrameFormat = "png" | "webp";
|
|
110
122
|
|
|
111
123
|
interface ScreenshotSink {
|
|
@@ -152,6 +164,10 @@ interface TestRuntimeDeps {
|
|
|
152
164
|
* wires it to the run's steps.jsonl; absent in ad-hoc / explore
|
|
153
165
|
* runtimes (the verdict then lives only in the assertion error). */
|
|
154
166
|
readonly judgeVerdicts?: JudgeVerdictSink;
|
|
167
|
+
/** Sink for `note(label, value)` and `log(...)` — the CLI runner wires
|
|
168
|
+
* it to the run's steps.jsonl; absent in ad-hoc / explore runtimes
|
|
169
|
+
* (`log` still reaches the logger, `note` is logged in its place). */
|
|
170
|
+
readonly annotations?: AnnotationSink;
|
|
155
171
|
}
|
|
156
172
|
declare class TestRuntime {
|
|
157
173
|
readonly runId: string;
|
|
@@ -163,6 +179,7 @@ declare class TestRuntime {
|
|
|
163
179
|
readonly screenshots?: ScreenshotSink;
|
|
164
180
|
readonly judge?: Judge;
|
|
165
181
|
readonly judgeVerdicts?: JudgeVerdictSink;
|
|
182
|
+
readonly annotations?: AnnotationSink;
|
|
166
183
|
private readonly variables;
|
|
167
184
|
private readonly nowFn;
|
|
168
185
|
private readonly scope;
|
|
@@ -240,12 +257,24 @@ interface ActiveRuntime {
|
|
|
240
257
|
/** Label of the enclosing `step("…")` block, when the failing
|
|
241
258
|
* statement ran inside one — the human-readable intent for reports. */
|
|
242
259
|
stepLabel?: string;
|
|
260
|
+
/** Evaluated `{tag}` of that block — the case a data-driven step was on. */
|
|
261
|
+
stepTag?: string;
|
|
262
|
+
/** Set once the enclosing `step.soft(...)` closed over this failure:
|
|
263
|
+
* the run went on, this is not where it stopped. */
|
|
264
|
+
soft?: boolean;
|
|
243
265
|
error: {
|
|
244
266
|
message: string;
|
|
245
267
|
stack?: string;
|
|
246
268
|
details?: unknown;
|
|
247
269
|
};
|
|
248
270
|
} | null;
|
|
271
|
+
/** Every `step.soft(...)` block that failed so far, in run order. The
|
|
272
|
+
* first one is the moment the failure bundle shows. */
|
|
273
|
+
softFailures: SoftFailureRecord[];
|
|
274
|
+
/** True between the innermost step-end failure and the next step-start:
|
|
275
|
+
* the same error is closing enclosing statements, `lastFailure` stays
|
|
276
|
+
* on the statement that raised it. */
|
|
277
|
+
unwinding: boolean;
|
|
249
278
|
lastResult: RunResult | null;
|
|
250
279
|
createdAt: number;
|
|
251
280
|
/** Active TTL timer (only when state is paused-failure). */
|
|
@@ -268,6 +297,7 @@ interface RuntimeSnapshot {
|
|
|
268
297
|
activePageIndex: number | null;
|
|
269
298
|
lastEvent: ExecutionEvent | null;
|
|
270
299
|
lastFailure: ActiveRuntime['lastFailure'];
|
|
300
|
+
softFailures: readonly SoftFailureRecord[];
|
|
271
301
|
lastResult: RunResult | null;
|
|
272
302
|
}
|
|
273
303
|
interface TestRuntimeManagerDeps {
|