@unotest/web 0.43.2 → 0.45.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 +7 -6
- package/.claude/skills/write-e2e-test-ground/SKILL.md +7 -6
- package/CHANGELOG.md +127 -3
- package/dist/config/schema.d.ts +260 -62
- package/dist/config/schema.js +1 -1
- package/dist/driver/index.d.ts +12 -3
- package/dist/driver/index.js +1 -1
- package/dist/dsl/index.d.ts +241 -6
- package/dist/dsl/index.js +1 -1
- package/dist/dsl/web-dsl-language-service.js +1 -1
- package/dist/inspection/page-inject.d.ts +1 -1
- package/dist/{interfaces-ClW2IRgY.d.ts → interfaces-OvnJKELk.d.ts} +232 -9
- 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/agent-integration.md +8 -0
- package/guides/dsl-reference.md +846 -10
- package/package.json +9 -8
- package/types/unotest-dsl.d.ts +199 -3
package/dist/config/schema.d.ts
CHANGED
|
@@ -20,14 +20,19 @@ declare const BROWSER_CHANNEL_WORDS: readonly ["chrome", "msedge", "chrome-beta"
|
|
|
20
20
|
declare const BrowserChannelSchema: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["chrome", "msedge", "chrome-beta", "chromium"]>, z.ZodEffects<z.ZodLiteral<"bundled">, null, "bundled">, z.ZodNull]>>;
|
|
21
21
|
type BrowserChannel = z.infer<typeof BrowserChannelSchema>;
|
|
22
22
|
declare const ViewportSchema: z.ZodObject<{
|
|
23
|
-
width: z.ZodNumber
|
|
24
|
-
height: z.ZodNumber
|
|
23
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
24
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
25
|
+
/** CSS pixel → device pixel ratio: 2 makes a 390×844 page a 780×1688
|
|
26
|
+
* screenshot, the scale design mockups are usually drawn at. */
|
|
27
|
+
deviceScaleFactor: z.ZodOptional<z.ZodNumber>;
|
|
25
28
|
}, "strict", z.ZodTypeAny, {
|
|
26
|
-
width
|
|
27
|
-
height
|
|
29
|
+
width?: number | undefined;
|
|
30
|
+
height?: number | undefined;
|
|
31
|
+
deviceScaleFactor?: number | undefined;
|
|
28
32
|
}, {
|
|
29
|
-
width
|
|
30
|
-
height
|
|
33
|
+
width?: number | undefined;
|
|
34
|
+
height?: number | undefined;
|
|
35
|
+
deviceScaleFactor?: number | undefined;
|
|
31
36
|
}>;
|
|
32
37
|
type Viewport = z.infer<typeof ViewportSchema>;
|
|
33
38
|
declare const RetryReasonSchema: z.ZodEnum<["transient", "network", "crash"]>;
|
|
@@ -37,10 +42,10 @@ declare const RetryConfigSchema: z.ZodObject<{
|
|
|
37
42
|
on: z.ZodArray<z.ZodEnum<["transient", "network", "crash"]>, "many">;
|
|
38
43
|
}, "strict", z.ZodTypeAny, {
|
|
39
44
|
count: number;
|
|
40
|
-
on: ("
|
|
45
|
+
on: ("transient" | "network" | "crash")[];
|
|
41
46
|
}, {
|
|
42
47
|
count: number;
|
|
43
|
-
on: ("
|
|
48
|
+
on: ("transient" | "network" | "crash")[];
|
|
44
49
|
}>;
|
|
45
50
|
type RetryConfig = z.infer<typeof RetryConfigSchema>;
|
|
46
51
|
declare const FailureBundleConfigSchema: z.ZodObject<{
|
|
@@ -104,19 +109,19 @@ declare const FailureBundleConfigSchema: z.ZodObject<{
|
|
|
104
109
|
type FailureBundleConfig = z.infer<typeof FailureBundleConfigSchema>;
|
|
105
110
|
declare const DialogPolicySchema: z.ZodEnum<["accept", "dismiss", "manual"]>;
|
|
106
111
|
type DialogPolicy = z.infer<typeof DialogPolicySchema>;
|
|
107
|
-
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:env-host-from-base", "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"]>;
|
|
112
|
+
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:env-host-from-base", "lint:one-test-per-file", "lint:shadows-dsl-function", "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"]>;
|
|
108
113
|
type LinterRuleId = z.infer<typeof LinterRuleIdSchema>;
|
|
109
114
|
declare const LinterSeveritySchema: z.ZodEnum<["off", "warn", "error"]>;
|
|
110
115
|
type LinterSeverity = z.infer<typeof LinterSeveritySchema>;
|
|
111
116
|
declare const LinterConfigSchema: z.ZodObject<{
|
|
112
117
|
enabled: z.ZodBoolean;
|
|
113
|
-
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:env-host-from-base", "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"]>>;
|
|
118
|
+
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:env-host-from-base", "lint:one-test-per-file", "lint:shadows-dsl-function", "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"]>>;
|
|
114
119
|
}, "strict", z.ZodTypeAny, {
|
|
115
120
|
enabled: boolean;
|
|
116
|
-
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:env-host-from-base" | "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">>;
|
|
121
|
+
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:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "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">>;
|
|
117
122
|
}, {
|
|
118
123
|
enabled: boolean;
|
|
119
|
-
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:env-host-from-base" | "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">>;
|
|
124
|
+
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:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "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">>;
|
|
120
125
|
}>;
|
|
121
126
|
type LinterConfig = z.infer<typeof LinterConfigSchema>;
|
|
122
127
|
declare const QueueConfigSchema: z.ZodObject<{
|
|
@@ -229,15 +234,15 @@ declare const WebServerConfigSchema: z.ZodObject<{
|
|
|
229
234
|
/** How long to wait for the URL to come up after spawning. */
|
|
230
235
|
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
231
236
|
}, "strict", z.ZodTypeAny, {
|
|
232
|
-
url: string;
|
|
233
|
-
timeoutMs: number;
|
|
234
237
|
command: string;
|
|
238
|
+
url: string;
|
|
235
239
|
reuseExistingServer: boolean;
|
|
240
|
+
timeoutMs: number;
|
|
236
241
|
}, {
|
|
237
|
-
url: string;
|
|
238
242
|
command: string;
|
|
239
|
-
|
|
243
|
+
url: string;
|
|
240
244
|
reuseExistingServer?: boolean | undefined;
|
|
245
|
+
timeoutMs?: number | undefined;
|
|
241
246
|
}>;
|
|
242
247
|
type WebServerConfig = z.infer<typeof WebServerConfigSchema>;
|
|
243
248
|
declare const EnvConfigSchema: z.ZodObject<{
|
|
@@ -251,7 +256,7 @@ declare const EnvConfigSchema: z.ZodObject<{
|
|
|
251
256
|
shared?: string[] | undefined;
|
|
252
257
|
}>;
|
|
253
258
|
type EnvConfig = z.infer<typeof EnvConfigSchema>;
|
|
254
|
-
declare const UnotestConfigSchema: z.ZodObject<{
|
|
259
|
+
declare const UnotestConfigSchema: z.ZodEffects<z.ZodObject<{
|
|
255
260
|
baseUrl: z.ZodOptional<z.ZodString>;
|
|
256
261
|
/** Dev-server lifecycle for the app under test (M-12). Unset → the app
|
|
257
262
|
* is expected to be running already (current behaviour). When set, the
|
|
@@ -274,28 +279,51 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
274
279
|
/** How long to wait for the URL to come up after spawning. */
|
|
275
280
|
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
276
281
|
}, "strict", z.ZodTypeAny, {
|
|
277
|
-
url: string;
|
|
278
|
-
timeoutMs: number;
|
|
279
282
|
command: string;
|
|
283
|
+
url: string;
|
|
280
284
|
reuseExistingServer: boolean;
|
|
285
|
+
timeoutMs: number;
|
|
281
286
|
}, {
|
|
282
|
-
url: string;
|
|
283
287
|
command: string;
|
|
284
|
-
|
|
288
|
+
url: string;
|
|
285
289
|
reuseExistingServer?: boolean | undefined;
|
|
290
|
+
timeoutMs?: number | undefined;
|
|
286
291
|
}>>;
|
|
287
292
|
browsers: z.ZodArray<z.ZodEnum<["chromium", "firefox", "webkit"]>, "many">;
|
|
288
293
|
channel: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["chrome", "msedge", "chrome-beta", "chromium"]>, z.ZodEffects<z.ZodLiteral<"bundled">, null, "bundled">, z.ZodNull]>>;
|
|
289
|
-
viewport: z.ZodObject<{
|
|
290
|
-
width: z.ZodNumber
|
|
291
|
-
height: z.ZodNumber
|
|
294
|
+
viewport: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
295
|
+
width: z.ZodOptional<z.ZodNumber>;
|
|
296
|
+
height: z.ZodOptional<z.ZodNumber>;
|
|
297
|
+
/** CSS pixel → device pixel ratio: 2 makes a 390×844 page a 780×1688
|
|
298
|
+
* screenshot, the scale design mockups are usually drawn at. */
|
|
299
|
+
deviceScaleFactor: z.ZodOptional<z.ZodNumber>;
|
|
292
300
|
}, "strict", z.ZodTypeAny, {
|
|
293
|
-
width
|
|
294
|
-
height
|
|
301
|
+
width?: number | undefined;
|
|
302
|
+
height?: number | undefined;
|
|
303
|
+
deviceScaleFactor?: number | undefined;
|
|
295
304
|
}, {
|
|
296
|
-
width
|
|
297
|
-
height
|
|
298
|
-
|
|
305
|
+
width?: number | undefined;
|
|
306
|
+
height?: number | undefined;
|
|
307
|
+
deviceScaleFactor?: number | undefined;
|
|
308
|
+
}>>>;
|
|
309
|
+
/** A device preset by its Playwright name (`"iPhone 14"`, `"Pixel 7"`):
|
|
310
|
+
* size, scale, touch, mobile mode and user agent at once. `viewport`
|
|
311
|
+
* next to it overrides the preset's size. The name is checked by the
|
|
312
|
+
* driver when a context opens — the list is Playwright's, and this
|
|
313
|
+
* schema is imported where Playwright is not installed. */
|
|
314
|
+
device: z.ZodOptional<z.ZodString>;
|
|
315
|
+
/** IANA time zone of every page (`"Europe/Madrid"`): `Date#toString`,
|
|
316
|
+
* `Intl` and `getTimezoneOffset` answer in it. Unset → the machine's.
|
|
317
|
+
* `UNOTEST_TIMEZONE` overrides it. */
|
|
318
|
+
timezone: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
319
|
+
/** BCP 47 locale of every page (`"es-ES"`): `navigator.language`, `Intl`
|
|
320
|
+
* defaults, Accept-Language. Unset → the browser's. `UNOTEST_LOCALE`
|
|
321
|
+
* overrides it. */
|
|
322
|
+
locale: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
323
|
+
/** Browser contexts one test may hold at once — the run's own plus
|
|
324
|
+
* every `newContext()`. The next one past it is refused: a guard
|
|
325
|
+
* against a loop that opens a browser per iteration. Default 4. */
|
|
326
|
+
maxContexts: z.ZodOptional<z.ZodNumber>;
|
|
299
327
|
/** How the browser is started: a profile and extra arguments
|
|
300
328
|
* (`config/launch.ts`). Unset → as before: a fresh browser, a fresh
|
|
301
329
|
* context per scenario. */
|
|
@@ -303,21 +331,21 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
303
331
|
userDataDir: z.ZodOptional<z.ZodString>;
|
|
304
332
|
args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
305
333
|
}, "strict", z.ZodTypeAny, {
|
|
306
|
-
args?: string[] | undefined;
|
|
307
334
|
userDataDir?: string | undefined;
|
|
308
|
-
}, {
|
|
309
335
|
args?: string[] | undefined;
|
|
336
|
+
}, {
|
|
310
337
|
userDataDir?: string | undefined;
|
|
338
|
+
args?: string[] | undefined;
|
|
311
339
|
}>>;
|
|
312
340
|
retry: z.ZodObject<{
|
|
313
341
|
count: z.ZodNumber;
|
|
314
342
|
on: z.ZodArray<z.ZodEnum<["transient", "network", "crash"]>, "many">;
|
|
315
343
|
}, "strict", z.ZodTypeAny, {
|
|
316
344
|
count: number;
|
|
317
|
-
on: ("
|
|
345
|
+
on: ("transient" | "network" | "crash")[];
|
|
318
346
|
}, {
|
|
319
347
|
count: number;
|
|
320
|
-
on: ("
|
|
348
|
+
on: ("transient" | "network" | "crash")[];
|
|
321
349
|
}>;
|
|
322
350
|
failureBundle: z.ZodObject<{
|
|
323
351
|
/** Tier 1 is always on by D-16. Schema lock — not user-toggleable. */
|
|
@@ -398,6 +426,12 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
398
426
|
* slow-but-correct navigation.
|
|
399
427
|
* Override via `UNOTEST_DEFAULT_NAVIGATION_TIMEOUT_MS`. */
|
|
400
428
|
defaultNavigationTimeoutMs: z.ZodNumber;
|
|
429
|
+
/** Wall-clock ceiling for a run's rollback pass — every `teardown(...)`
|
|
430
|
+
* block together. Separate from the run's own time budget on purpose: a
|
|
431
|
+
* test that failed BY that budget still has to give the stand back.
|
|
432
|
+
* Unset → 60000. A pass cut by it leaves the rest of the stand as the
|
|
433
|
+
* test set it, and the run result says which blocks did not finish. */
|
|
434
|
+
teardownTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
401
435
|
/** Cross-environment declarations (`.env.<name>` overlays). */
|
|
402
436
|
env: z.ZodObject<{
|
|
403
437
|
/** Variable names whose base `.env` value is deliberately shared by
|
|
@@ -411,13 +445,13 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
411
445
|
}>;
|
|
412
446
|
linter: z.ZodObject<{
|
|
413
447
|
enabled: z.ZodBoolean;
|
|
414
|
-
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:env-host-from-base", "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"]>>;
|
|
448
|
+
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:env-host-from-base", "lint:one-test-per-file", "lint:shadows-dsl-function", "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"]>>;
|
|
415
449
|
}, "strict", z.ZodTypeAny, {
|
|
416
450
|
enabled: boolean;
|
|
417
|
-
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:env-host-from-base" | "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">>;
|
|
451
|
+
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:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "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">>;
|
|
418
452
|
}, {
|
|
419
453
|
enabled: boolean;
|
|
420
|
-
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:env-host-from-base" | "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">>;
|
|
454
|
+
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:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "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">>;
|
|
421
455
|
}>;
|
|
422
456
|
mcp: z.ZodObject<{
|
|
423
457
|
transport: z.ZodLiteral<"stdio">;
|
|
@@ -510,16 +544,13 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
510
544
|
uploadDir?: string | undefined;
|
|
511
545
|
}>;
|
|
512
546
|
}, "strict", z.ZodTypeAny, {
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
browsers: ("chromium" | "firefox" | "webkit")[];
|
|
516
|
-
viewport: {
|
|
517
|
-
width: number;
|
|
518
|
-
height: number;
|
|
547
|
+
env: {
|
|
548
|
+
shared: string[];
|
|
519
549
|
};
|
|
550
|
+
browsers: ("chromium" | "firefox" | "webkit")[];
|
|
520
551
|
retry: {
|
|
521
552
|
count: number;
|
|
522
|
-
on: ("
|
|
553
|
+
on: ("transient" | "network" | "crash")[];
|
|
523
554
|
};
|
|
524
555
|
failureBundle: {
|
|
525
556
|
tier1: true;
|
|
@@ -538,12 +569,11 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
538
569
|
dialogPolicy: "accept" | "dismiss" | "manual";
|
|
539
570
|
testDir: string;
|
|
540
571
|
helpersDir: string;
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
};
|
|
572
|
+
defaultTimeoutMs: number;
|
|
573
|
+
defaultNavigationTimeoutMs: number;
|
|
544
574
|
linter: {
|
|
545
575
|
enabled: boolean;
|
|
546
|
-
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:env-host-from-base" | "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">>;
|
|
576
|
+
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:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "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">>;
|
|
547
577
|
};
|
|
548
578
|
mcp: {
|
|
549
579
|
transport: "stdio";
|
|
@@ -568,30 +598,114 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
568
598
|
};
|
|
569
599
|
baseUrl?: string | undefined;
|
|
570
600
|
webServer?: {
|
|
571
|
-
url: string;
|
|
572
|
-
timeoutMs: number;
|
|
573
601
|
command: string;
|
|
602
|
+
url: string;
|
|
574
603
|
reuseExistingServer: boolean;
|
|
604
|
+
timeoutMs: number;
|
|
575
605
|
} | undefined;
|
|
576
|
-
channel?: "chrome" | "msedge" | "chrome-beta" |
|
|
606
|
+
channel?: "chromium" | "chrome" | "msedge" | "chrome-beta" | null | undefined;
|
|
607
|
+
viewport?: {
|
|
608
|
+
width?: number | undefined;
|
|
609
|
+
height?: number | undefined;
|
|
610
|
+
deviceScaleFactor?: number | undefined;
|
|
611
|
+
} | null | undefined;
|
|
612
|
+
device?: string | undefined;
|
|
613
|
+
timezone?: string | undefined;
|
|
614
|
+
locale?: string | undefined;
|
|
615
|
+
maxContexts?: number | undefined;
|
|
577
616
|
launch?: {
|
|
578
|
-
args?: string[] | undefined;
|
|
579
617
|
userDataDir?: string | undefined;
|
|
618
|
+
args?: string[] | undefined;
|
|
580
619
|
} | undefined;
|
|
581
620
|
storageState?: string | undefined;
|
|
621
|
+
teardownTimeoutMs?: number | undefined;
|
|
582
622
|
}, {
|
|
623
|
+
env: {
|
|
624
|
+
shared?: string[] | undefined;
|
|
625
|
+
};
|
|
626
|
+
browsers: ("chromium" | "firefox" | "webkit")[];
|
|
627
|
+
retry: {
|
|
628
|
+
count: number;
|
|
629
|
+
on: ("transient" | "network" | "crash")[];
|
|
630
|
+
};
|
|
631
|
+
failureBundle: {
|
|
632
|
+
tier2: boolean;
|
|
633
|
+
tier3: {
|
|
634
|
+
network: boolean;
|
|
635
|
+
video: boolean;
|
|
636
|
+
};
|
|
637
|
+
retention: {
|
|
638
|
+
runs: number;
|
|
639
|
+
days: number;
|
|
640
|
+
};
|
|
641
|
+
storageDir: string;
|
|
642
|
+
pageHtml: "redacted" | "full";
|
|
643
|
+
tier1?: true | undefined;
|
|
644
|
+
};
|
|
645
|
+
dialogPolicy: "accept" | "dismiss" | "manual";
|
|
646
|
+
testDir: string;
|
|
647
|
+
helpersDir: string;
|
|
583
648
|
defaultTimeoutMs: number;
|
|
584
649
|
defaultNavigationTimeoutMs: number;
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
650
|
+
linter: {
|
|
651
|
+
enabled: boolean;
|
|
652
|
+
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:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "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">>;
|
|
653
|
+
};
|
|
654
|
+
mcp: {
|
|
655
|
+
transport: "stdio";
|
|
656
|
+
};
|
|
657
|
+
queue: {
|
|
658
|
+
enabled?: boolean | undefined;
|
|
659
|
+
concurrency?: number | undefined;
|
|
660
|
+
};
|
|
661
|
+
sandbox: {
|
|
662
|
+
shellCwd?: string | undefined;
|
|
663
|
+
shellTimeoutMs?: number | undefined;
|
|
664
|
+
exportSecrets?: string[] | undefined;
|
|
665
|
+
database?: string | undefined;
|
|
666
|
+
apiBaseUrl?: string | undefined;
|
|
667
|
+
uploadDir?: string | undefined;
|
|
668
|
+
};
|
|
669
|
+
baseUrl?: string | undefined;
|
|
670
|
+
webServer?: {
|
|
671
|
+
command: string;
|
|
672
|
+
url: string;
|
|
673
|
+
reuseExistingServer?: boolean | undefined;
|
|
674
|
+
timeoutMs?: number | undefined;
|
|
675
|
+
} | undefined;
|
|
676
|
+
channel?: "chromium" | "chrome" | "msedge" | "chrome-beta" | "bundled" | null | undefined;
|
|
677
|
+
viewport?: {
|
|
678
|
+
width?: number | undefined;
|
|
679
|
+
height?: number | undefined;
|
|
680
|
+
deviceScaleFactor?: number | undefined;
|
|
681
|
+
} | null | undefined;
|
|
682
|
+
device?: string | undefined;
|
|
683
|
+
timezone?: string | undefined;
|
|
684
|
+
locale?: string | undefined;
|
|
685
|
+
maxContexts?: number | undefined;
|
|
686
|
+
launch?: {
|
|
687
|
+
userDataDir?: string | undefined;
|
|
688
|
+
args?: string[] | undefined;
|
|
689
|
+
} | undefined;
|
|
690
|
+
storageState?: string | undefined;
|
|
691
|
+
teardownTimeoutMs?: number | undefined;
|
|
692
|
+
schedules?: {
|
|
693
|
+
collection: string;
|
|
694
|
+
cron: string;
|
|
695
|
+
env?: string | undefined;
|
|
696
|
+
prepare?: string | undefined;
|
|
697
|
+
}[] | undefined;
|
|
698
|
+
}>, {
|
|
699
|
+
env: {
|
|
700
|
+
shared: string[];
|
|
589
701
|
};
|
|
702
|
+
browsers: ("chromium" | "firefox" | "webkit")[];
|
|
590
703
|
retry: {
|
|
591
704
|
count: number;
|
|
592
|
-
on: ("
|
|
705
|
+
on: ("transient" | "network" | "crash")[];
|
|
593
706
|
};
|
|
594
707
|
failureBundle: {
|
|
708
|
+
tier1: true;
|
|
595
709
|
tier2: boolean;
|
|
596
710
|
tier3: {
|
|
597
711
|
network: boolean;
|
|
@@ -603,17 +717,91 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
603
717
|
};
|
|
604
718
|
storageDir: string;
|
|
605
719
|
pageHtml: "redacted" | "full";
|
|
606
|
-
tier1?: true | undefined;
|
|
607
720
|
};
|
|
608
721
|
dialogPolicy: "accept" | "dismiss" | "manual";
|
|
609
722
|
testDir: string;
|
|
610
723
|
helpersDir: string;
|
|
724
|
+
defaultTimeoutMs: number;
|
|
725
|
+
defaultNavigationTimeoutMs: number;
|
|
726
|
+
linter: {
|
|
727
|
+
enabled: boolean;
|
|
728
|
+
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:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "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">>;
|
|
729
|
+
};
|
|
730
|
+
mcp: {
|
|
731
|
+
transport: "stdio";
|
|
732
|
+
};
|
|
733
|
+
queue: {
|
|
734
|
+
enabled: boolean;
|
|
735
|
+
concurrency: number;
|
|
736
|
+
};
|
|
737
|
+
schedules: {
|
|
738
|
+
collection: string;
|
|
739
|
+
cron: string;
|
|
740
|
+
env?: string | undefined;
|
|
741
|
+
prepare?: string | undefined;
|
|
742
|
+
}[];
|
|
743
|
+
sandbox: {
|
|
744
|
+
shellCwd?: string | undefined;
|
|
745
|
+
shellTimeoutMs?: number | undefined;
|
|
746
|
+
exportSecrets?: string[] | undefined;
|
|
747
|
+
database?: string | undefined;
|
|
748
|
+
apiBaseUrl?: string | undefined;
|
|
749
|
+
uploadDir?: string | undefined;
|
|
750
|
+
};
|
|
751
|
+
baseUrl?: string | undefined;
|
|
752
|
+
webServer?: {
|
|
753
|
+
command: string;
|
|
754
|
+
url: string;
|
|
755
|
+
reuseExistingServer: boolean;
|
|
756
|
+
timeoutMs: number;
|
|
757
|
+
} | undefined;
|
|
758
|
+
channel?: "chromium" | "chrome" | "msedge" | "chrome-beta" | null | undefined;
|
|
759
|
+
viewport?: {
|
|
760
|
+
width?: number | undefined;
|
|
761
|
+
height?: number | undefined;
|
|
762
|
+
deviceScaleFactor?: number | undefined;
|
|
763
|
+
} | null | undefined;
|
|
764
|
+
device?: string | undefined;
|
|
765
|
+
timezone?: string | undefined;
|
|
766
|
+
locale?: string | undefined;
|
|
767
|
+
maxContexts?: number | undefined;
|
|
768
|
+
launch?: {
|
|
769
|
+
userDataDir?: string | undefined;
|
|
770
|
+
args?: string[] | undefined;
|
|
771
|
+
} | undefined;
|
|
772
|
+
storageState?: string | undefined;
|
|
773
|
+
teardownTimeoutMs?: number | undefined;
|
|
774
|
+
}, {
|
|
611
775
|
env: {
|
|
612
776
|
shared?: string[] | undefined;
|
|
613
777
|
};
|
|
778
|
+
browsers: ("chromium" | "firefox" | "webkit")[];
|
|
779
|
+
retry: {
|
|
780
|
+
count: number;
|
|
781
|
+
on: ("transient" | "network" | "crash")[];
|
|
782
|
+
};
|
|
783
|
+
failureBundle: {
|
|
784
|
+
tier2: boolean;
|
|
785
|
+
tier3: {
|
|
786
|
+
network: boolean;
|
|
787
|
+
video: boolean;
|
|
788
|
+
};
|
|
789
|
+
retention: {
|
|
790
|
+
runs: number;
|
|
791
|
+
days: number;
|
|
792
|
+
};
|
|
793
|
+
storageDir: string;
|
|
794
|
+
pageHtml: "redacted" | "full";
|
|
795
|
+
tier1?: true | undefined;
|
|
796
|
+
};
|
|
797
|
+
dialogPolicy: "accept" | "dismiss" | "manual";
|
|
798
|
+
testDir: string;
|
|
799
|
+
helpersDir: string;
|
|
800
|
+
defaultTimeoutMs: number;
|
|
801
|
+
defaultNavigationTimeoutMs: number;
|
|
614
802
|
linter: {
|
|
615
803
|
enabled: boolean;
|
|
616
|
-
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:env-host-from-base" | "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">>;
|
|
804
|
+
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:env-host-from-base" | "lint:one-test-per-file" | "lint:shadows-dsl-function" | "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">>;
|
|
617
805
|
};
|
|
618
806
|
mcp: {
|
|
619
807
|
transport: "stdio";
|
|
@@ -632,17 +820,27 @@ declare const UnotestConfigSchema: z.ZodObject<{
|
|
|
632
820
|
};
|
|
633
821
|
baseUrl?: string | undefined;
|
|
634
822
|
webServer?: {
|
|
635
|
-
url: string;
|
|
636
823
|
command: string;
|
|
637
|
-
|
|
824
|
+
url: string;
|
|
638
825
|
reuseExistingServer?: boolean | undefined;
|
|
826
|
+
timeoutMs?: number | undefined;
|
|
639
827
|
} | undefined;
|
|
640
|
-
channel?: "chrome" | "msedge" | "chrome-beta" | "
|
|
828
|
+
channel?: "chromium" | "chrome" | "msedge" | "chrome-beta" | "bundled" | null | undefined;
|
|
829
|
+
viewport?: {
|
|
830
|
+
width?: number | undefined;
|
|
831
|
+
height?: number | undefined;
|
|
832
|
+
deviceScaleFactor?: number | undefined;
|
|
833
|
+
} | null | undefined;
|
|
834
|
+
device?: string | undefined;
|
|
835
|
+
timezone?: string | undefined;
|
|
836
|
+
locale?: string | undefined;
|
|
837
|
+
maxContexts?: number | undefined;
|
|
641
838
|
launch?: {
|
|
642
|
-
args?: string[] | undefined;
|
|
643
839
|
userDataDir?: string | undefined;
|
|
840
|
+
args?: string[] | undefined;
|
|
644
841
|
} | undefined;
|
|
645
842
|
storageState?: string | undefined;
|
|
843
|
+
teardownTimeoutMs?: number | undefined;
|
|
646
844
|
schedules?: {
|
|
647
845
|
collection: string;
|
|
648
846
|
cron: string;
|
package/dist/config/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var _0x14f507=_0x26f9;(function(_0x5575a5,_0x2c08b9){var _0x104177={_0x1ddfca:0x131,_0x7410b2:0x10f,_0x3db77c:0x139,_0x5a0e30:0x107,_0x1cada0:0x117,_0x27734c:0x121},_0x1443de=_0x26f9,_0x1a5570=_0x5575a5();while(!![]){try{var _0x14cc5f=parseInt(_0x1443de(0x11f))/0x1*(parseInt(_0x1443de(_0x104177._0x1ddfca))/0x2)+-parseInt(_0x1443de(_0x104177._0x7410b2))/0x3*(-parseInt(_0x1443de(0xf4))/0x4)+-parseInt(_0x1443de(0x10c))/0x5*(-parseInt(_0x1443de(_0x104177._0x3db77c))/0x6)+-parseInt(_0x1443de(0xf2))/0x7*(-parseInt(_0x1443de(0x123))/0x8)+parseInt(_0x1443de(_0x104177._0x5a0e30))/0x9*(parseInt(_0x1443de(_0x104177._0x1cada0))/0xa)+parseInt(_0x1443de(0x133))/0xb+-parseInt(_0x1443de(_0x104177._0x27734c))/0xc;if(_0x14cc5f===_0x2c08b9)break;else _0x1a5570['push'](_0x1a5570['shift']());}catch(_0xa7e7c8){_0x1a5570['push'](_0x1a5570['shift']());}}}(_0x347e,0xe35b6));var __defProp=Object['defineProperty'],__name=(_0x150d5a,_0xc62c67)=>__defProp(_0x150d5a,_0x14f507(0x11b),{'value':_0xc62c67,'configurable':!![]});import{z as _0x3d70ee}from'zod';function _0x347e(){var _0x163dba=['C3rYAwn0','mti0v2jSywXP','BgLUDdPVyMz1C2nHDgvKlwnSyxnZ','DMfSAwrHDg9YoMzVCI1ZAgfWzq','DxjS','DMfSAwrHDg9YoNDYyxbWzwqTzM9YBwf0','Dw5RBM93BIbRzxKGiG','BNvSBa','DMfSAwrHDg9YoNn0zxaTC2HHCgu','yxjYyxK','zNvSBa','C3rKAw8','zxjYB3jnyxa','DMfSAwrHDg9YoNn0CMLUzY1JB25Jyxq','zgvMyxvSDa','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlxn0yxrLBwvUDa','y2HYB21PDw0','BwLU','AM9PBG','Dw5VDgvZDc9LmMuVx2HLBhbLCNm','ntm1mJngDgnNvxm','BgLUDdPSAw50lw9Rlw1PC3nPBMCTCMvHC29U','D2fYBG','DMfSAwrHDg9YoMLMlxnOyxbL','Aw50','ndaWyxbhsLLW','A2v5CW','yM9VBgvHBG','mZmWodfRvhLozKe','BgLUDdPKAxnHBwjPzY1IEs1PBMrLEa','y3jHC2G','BMv0D29YAW','BgLUDdPVBMuTDgvZDc1WzxiTzMLSzq','zxjYB3i','BgLUDdPWyxvZzs1LEhbSAwnPDa','Dg9mB3DLCKnHC2u','nZeWzgTpD252','DMfSAwrHDg9YoMz1BMn0Aw9UlxnOyxbL','BgL0zxjHBa','BgLUDdPKzwvWlwnZCW','BMfTzq','DMfSAwrHDg9YoMfYAxr5','BgLUDdPHCgKTy2fSBc1MAwXLlwjVzhK','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlwv4ChjLC3nPB24','mtG1mJa1mwvfuxLLBq','C3rYAwn0t2jQzwn0','nti2nJi5odryB3r1vfC','DMfSAwrHDg9YoNn0zxaTy292zxjHz2u','nZi1nNjUDejTrq','DMfSAwrHDg9YoNnLBwfUDgLJlwXVC3m','zgLZBwLZCW','BgLUDdPLy2HVlwfZC2vYDa','BgLUDdPZy2vUyxjPBY1PBI1YB290','CMvJB3jK','zw51Bq','DMfSAwrHDg9YoNvUA25VD24TzNvUy3rPB24','C3rYAw5N','B3b0Aw9UywW','BNvTyMvY','ywnJzxb0','BwfW','DMfSAwrHDg9YoMXPC3qTyxjN','mMHPy0PhAq','y29Kzq','mZK5nZK2mxDcBgXnEG','y2HYB21L','DMfSAwrHDg9YoNzHCI1ZAgfWzq','y2HYB21LlwjLDge','B2zM','BgLUDdPTDxn0ywnOzs1PBI1KC2W','mteXntC2wxPJsfrx','zgLZDgfUy2u','zgvMyxvSDevYCM9Y','BgLUDdP4Cgf0Aa','Dw5YzwnVz25PEMvKx2TLExm','y2XVC2vZDeTLEq','B2jQzwn0','Cg9ZAxrPDMu','DhjHBNnPzw50','BgLUDdPNB3rVlwnVBMnHDa','A2v5','BgLUDdPLBNyTAg9ZDc1MCM9TlwjHC2u','D2vIA2L0','BxnLzgDL','BgLUDdPLEhrLCM5HBc12yxjPywjSzs11BMrLy2XHCMvK','zMLYzwzVEa','Dw5RBM93BKTLEu1LC3nHz2u','nJu4merutM1ksG'];_0x347e=function(){return _0x163dba;};return _0x347e();}import{z}from'zod';import{levenshteinDistance}from'@unotest/core';var MAX_EDITS=0x2;function closestKey(_0x100013,_0x405cc3){var _0x1e6e7c={_0x47fc35:0x116},_0xf87393=_0x14f507;let _0x1a132e;for(const _0x5bc5b1 of _0x405cc3){const _0x2a2ede=levenshteinDistance(_0x100013[_0xf87393(0x116)](),_0x5bc5b1[_0xf87393(_0x1e6e7c._0x47fc35)]());if(_0x2a2ede>MAX_EDITS)continue;if(_0x1a132e===void 0x0||_0x2a2ede<_0x1a132e[_0xf87393(0x13a)])_0x1a132e={'key':_0x5bc5b1,'distance':_0x2a2ede};}return _0x1a132e?.[_0xf87393(0xeb)];}__name(closestKey,_0x14f507(0x13e));function unknownKeyMessage(_0x450cf7,_0x157ab7){var _0x4ff0e8={_0xfe46e:0xf9},_0x4c3292=_0x14f507;return _0x450cf7[_0x4c3292(0x12f)](_0x3e5a78=>{var _0x114484=_0x4c3292;const _0x2f4e59=closestKey(_0x3e5a78,_0x157ab7);return _0x2f4e59===void 0x0?_0x114484(0xf9)+_0x3e5a78+'\x22\x20—\x20not\x20a\x20config\x20key;\x20check\x20your\x20@unotest/web\x20version\x20if\x20it\x20comes\x20from\x20a\x20newer\x20release':_0x114484(_0x4ff0e8._0xfe46e)+_0x3e5a78+'\x22\x20—\x20did\x20you\x20mean\x20\x22'+_0x2f4e59+'\x22?';})[_0x4c3292(0x105)](';\x20');}__name(unknownKeyMessage,_0x14f507(0xf1));function _0x26f9(_0x5d081d,_0x3a0c2e){_0x5d081d=_0x5d081d-0xe7;var _0x347ea3=_0x347e();var _0x26f93e=_0x347ea3[_0x5d081d];if(_0x26f9['lHlPHF']===undefined){var _0x23de78=function(_0x1228a3){var _0x2b022f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x3d70ee='',_0x3e4f30='';for(var _0x150d5a=0x0,_0xc62c67,_0x100013,_0x405cc3=0x0;_0x100013=_0x1228a3['charAt'](_0x405cc3++);~_0x100013&&(_0xc62c67=_0x150d5a%0x4?_0xc62c67*0x40+_0x100013:_0x100013,_0x150d5a++%0x4)?_0x3d70ee+=String['fromCharCode'](0xff&_0xc62c67>>(-0x2*_0x150d5a&0x6)):0x0){_0x100013=_0x2b022f['indexOf'](_0x100013);}for(var _0x1a132e=0x0,_0x5bc5b1=_0x3d70ee['length'];_0x1a132e<_0x5bc5b1;_0x1a132e++){_0x3e4f30+='%'+('00'+_0x3d70ee['charCodeAt'](_0x1a132e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3e4f30);};_0x26f9['ohjWJT']=_0x23de78,_0x26f9['ASeMoG']={},_0x26f9['lHlPHF']=!![];}var _0x41a637=_0x347ea3[0x0],_0x194252=_0x5d081d+_0x41a637,_0x4343d9=_0x26f9['ASeMoG'][_0x194252];return!_0x4343d9?(_0x26f93e=_0x26f9['ohjWJT'](_0x26f93e),_0x26f9['ASeMoG'][_0x194252]=_0x26f93e):_0x26f93e=_0x4343d9,_0x26f93e;}function strictObject(_0xfeb4d){var _0x107bf1={_0x394081:0x10d,_0x26a0ed:0xff,_0x2b9be8:0xf3},_0x31aedc=_0x14f507;const _0x3c9e92=Object[_0x31aedc(_0x107bf1._0x394081)](_0xfeb4d);return z[_0x31aedc(0xe7)](_0xfeb4d,{'errorMap':__name((_0x1d3557,_0x4dc016)=>_0x1d3557[_0x31aedc(0x132)]===z['ZodIssueCode'][_0x31aedc(0x13d)]?{'message':unknownKeyMessage(_0x1d3557[_0x31aedc(0x10d)],_0x3c9e92)}:{'message':_0x4dc016[_0x31aedc(0x13b)]},_0x31aedc(_0x107bf1._0x26a0ed))})[_0x31aedc(_0x107bf1._0x2b9be8)]();}__name(strictObject,_0x14f507(0x120));import{BUNDLED_BROWSER_CHANNEL}from'@unotest/protocol';import{z as _0x3e4f30}from'zod';import{UnotestError}from'@unotest/core';var LaunchConfigSchema=_0x3e4f30[_0x14f507(0xe7)]({'userDataDir':_0x3e4f30[_0x14f507(0x12b)]()[_0x14f507(0x104)](0x1)[_0x14f507(0x12c)](),'args':_0x3e4f30[_0x14f507(0xfc)](_0x3e4f30['string']()[_0x14f507(0x104)](0x1))[_0x14f507(0x12c)]()})[_0x14f507(0xf3)](),BrowserSchema=_0x3d70ee['enum'](['chromium',_0x14f507(0xf0),_0x14f507(0xed)]),SYSTEM_BROWSER_CHANNELS=[_0x14f507(0x134),_0x14f507(0xee),_0x14f507(0x136),_0x14f507(0x103)],BROWSER_CHANNEL_WORDS=[...SYSTEM_BROWSER_CHANNELS,BUNDLED_BROWSER_CHANNEL],BrowserChannelSchema=_0x3d70ee['union']([_0x3d70ee[_0x14f507(0x129)](SYSTEM_BROWSER_CHANNELS),_0x3d70ee[_0x14f507(0x119)](BUNDLED_BROWSER_CHANNEL)['transform'](()=>null),_0x3d70ee[_0x14f507(0xfa)]()])[_0x14f507(0x12c)](),ViewportSchema=strictObject({'width':_0x3d70ee[_0x14f507(0x12d)]()['int']()[_0x14f507(0xe8)](),'height':_0x3d70ee[_0x14f507(0x12d)]()[_0x14f507(0x10b)]()[_0x14f507(0xe8)]()}),RetryReasonSchema=_0x3d70ee[_0x14f507(0x129)]([_0x14f507(0xe9),_0x14f507(0x112),_0x14f507(0x111)]),RetryConfigSchema=strictObject({'count':_0x3d70ee[_0x14f507(0x12d)]()[_0x14f507(0x10b)]()[_0x14f507(0x104)](0x0)['max'](0xa),'on':_0x3d70ee[_0x14f507(0xfc)](RetryReasonSchema)}),FailureBundleConfigSchema=strictObject({'tier1':_0x3d70ee['literal'](!![])[_0x14f507(0x101)](!![]),'tier2':_0x3d70ee[_0x14f507(0x10e)](),'tier3':strictObject({'network':_0x3d70ee[_0x14f507(0x10e)](),'video':_0x3d70ee[_0x14f507(0x10e)]()}),'retention':strictObject({'runs':_0x3d70ee[_0x14f507(0x12d)]()['int']()[_0x14f507(0xe8)](),'days':_0x3d70ee['number']()[_0x14f507(0x10b)]()['positive']()}),'storageDir':_0x3d70ee['string']()['min'](0x1),'pageHtml':_0x3d70ee[_0x14f507(0x129)](['redacted',_0x14f507(0xfd)])}),DialogPolicySchema=_0x3d70ee[_0x14f507(0x129)]([_0x14f507(0x12e),_0x14f507(0x125),'manual']),LinterRuleIdSchema=_0x3d70ee[_0x14f507(0x129)]([_0x14f507(0x11a),_0x14f507(0x13c),_0x14f507(0xf5),_0x14f507(0x115),_0x14f507(0x110),'lint:evaluate-discouraged',_0x14f507(0x127),_0x14f507(0x138),_0x14f507(0xea),'lint:regex-invalid',_0x14f507(0x126),_0x14f507(0x11d),_0x14f507(0x108),'lint:flow-returns-value','lint:legacy-layout',_0x14f507(0xef),_0x14f507(0xec),_0x14f507(0x113),_0x14f507(0x12a),_0x14f507(0x11c),'validator:arg-kind',_0x14f507(0x122),_0x14f507(0xfb),'validator:meta-shape',_0x14f507(0x118),_0x14f507(0xf6),_0x14f507(0x10a),_0x14f507(0x135),_0x14f507(0x102),_0x14f507(0x11e),_0x14f507(0x100),_0x14f507(0x124),_0x14f507(0x130),_0x14f507(0xf8)]),LinterSeveritySchema=_0x3d70ee[_0x14f507(0x129)]([_0x14f507(0x137),_0x14f507(0x109),_0x14f507(0x114)]),LinterConfigSchema=strictObject({'enabled':_0x3d70ee[_0x14f507(0x10e)](),'rules':_0x3d70ee[_0x14f507(0x128)](LinterRuleIdSchema,LinterSeveritySchema)}),QueueConfigSchema=strictObject({'enabled':_0x3d70ee['boolean']()[_0x14f507(0x101)](!![]),'concurrency':_0x3d70ee['number']()['int']()[_0x14f507(0xe8)]()[_0x14f507(0x101)](0x1)}),ScheduleSchema=strictObject({'collection':_0x3d70ee[_0x14f507(0x12b)]()[_0x14f507(0x104)](0x1),'cron':_0x3d70ee[_0x14f507(0x12b)]()[_0x14f507(0x104)](0x1),'env':_0x3d70ee[_0x14f507(0x12b)]()[_0x14f507(0x104)](0x1)[_0x14f507(0x12c)](),'prepare':_0x3d70ee['string']()['min'](0x1)[_0x14f507(0x12c)]()}),McpConfigSchema=strictObject({'transport':_0x3d70ee['literal'](_0x14f507(0xfe))}),SandboxConfigSchema=strictObject({'shellCwd':_0x3d70ee['string']()[_0x14f507(0x12c)](),'shellTimeoutMs':_0x3d70ee[_0x14f507(0x12d)]()[_0x14f507(0x10b)]()[_0x14f507(0xe8)]()[_0x14f507(0x12c)](),'exportSecrets':_0x3d70ee[_0x14f507(0xfc)](_0x3d70ee[_0x14f507(0x12b)]())[_0x14f507(0x12c)](),'database':_0x3d70ee['string']()[_0x14f507(0x12c)](),'apiBaseUrl':_0x3d70ee[_0x14f507(0x12b)]()[_0x14f507(0xf7)]()[_0x14f507(0x12c)](),'uploadDir':_0x3d70ee[_0x14f507(0x12b)]()['optional']()}),WebServerConfigSchema=strictObject({'command':_0x3d70ee[_0x14f507(0x12b)]()['min'](0x1),'url':_0x3d70ee['string']()[_0x14f507(0xf7)](),'reuseExistingServer':_0x3d70ee[_0x14f507(0x10e)]()[_0x14f507(0x101)](!![]),'timeoutMs':_0x3d70ee['number']()[_0x14f507(0x10b)]()['positive']()[_0x14f507(0x101)](0xea60)}),EnvConfigSchema=strictObject({'shared':_0x3d70ee[_0x14f507(0xfc)](_0x3d70ee[_0x14f507(0x12b)]())[_0x14f507(0x101)]([])}),UnotestConfigSchema=strictObject({'baseUrl':_0x3d70ee[_0x14f507(0x12b)]()[_0x14f507(0xf7)]()[_0x14f507(0x12c)](),'webServer':WebServerConfigSchema[_0x14f507(0x12c)](),'browsers':_0x3d70ee[_0x14f507(0xfc)](BrowserSchema)['min'](0x1),'channel':BrowserChannelSchema,'viewport':ViewportSchema,'launch':LaunchConfigSchema[_0x14f507(0x12c)](),'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':_0x3d70ee['string']()['optional'](),'testDir':_0x3d70ee['string']()[_0x14f507(0x104)](0x1),'helpersDir':_0x3d70ee[_0x14f507(0x12b)]()[_0x14f507(0x104)](0x1),'defaultTimeoutMs':_0x3d70ee['number']()[_0x14f507(0x10b)]()['positive'](),'defaultNavigationTimeoutMs':_0x3d70ee[_0x14f507(0x12d)]()[_0x14f507(0x10b)]()['positive'](),'env':EnvConfigSchema,'linter':LinterConfigSchema,'mcp':McpConfigSchema,'queue':QueueConfigSchema,'schedules':_0x3d70ee[_0x14f507(0xfc)](ScheduleSchema)[_0x14f507(0x101)]([]),'sandbox':SandboxConfigSchema}),DEFAULT_CONFIG={'browsers':[_0x14f507(0x103)],'viewport':{'width':0x500,'height':0x2d0},'retry':{'count':0x0,'on':['transient']},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':'.unotest/failures','pageHtml':'redacted'},'dialogPolicy':_0x14f507(0x12e),'testDir':'unotest/e2e','helpersDir':_0x14f507(0x106),'defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x7530,'linter':{'enabled':!![],'rules':{'lint:deep-css':_0x14f507(0x109),'lint:xpath':_0x14f507(0x109),'lint:obfuscated-class':_0x14f507(0x109),'lint:pause-explicit':_0x14f507(0x109),'lint:disambig-by-index':_0x14f507(0x137),'lint:evaluate-discouraged':_0x14f507(0x109),'lint:scenario-in-root':_0x14f507(0x114),'lint:mustache-in-dsl':_0x14f507(0x114),'lint:goto-concat':_0x14f507(0x109),'lint:regex-invalid':'error','lint:echo-assert':'warn','lint:lint-ok-missing-reason':_0x14f507(0x109),'lint:flow-returns-value':_0x14f507(0x109),'lint:legacy-layout':_0x14f507(0x109),'lint:external-variable-undeclared':'error','lint:env-host-from-base':_0x14f507(0x114),'lint:one-test-per-file':_0x14f507(0x109),'validator:unknown-function':'error'}},'env':{'shared':[]},'mcp':{'transport':_0x14f507(0xfe)},'queue':{'enabled':!![],'concurrency':0x1},'schedules':[],'sandbox':{}};export{BROWSER_CHANNEL_WORDS,BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,EnvConfigSchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,QueueConfigSchema,RetryConfigSchema,RetryReasonSchema,SYSTEM_BROWSER_CHANNELS,SandboxConfigSchema,ScheduleSchema,UnotestConfigSchema,ViewportSchema,WebServerConfigSchema};
|
|
1
|
+
var _0x12781d=_0x4bc7;(function(_0xdbd49f,_0x278b24){var _0x3774ee={_0x5c849a:0x1f0,_0x5c6364:0x1da,_0x54e50f:0x1f5,_0x540327:0x1d7,_0x283de6:0x1ef},_0x3fa77f=_0x4bc7,_0x500eb9=_0xdbd49f();while(!![]){try{var _0x521e04=parseInt(_0x3fa77f(_0x3774ee._0x5c849a))/0x1*(parseInt(_0x3fa77f(0x204))/0x2)+-parseInt(_0x3fa77f(0x1dd))/0x3+parseInt(_0x3fa77f(0x205))/0x4*(parseInt(_0x3fa77f(0x207))/0x5)+-parseInt(_0x3fa77f(0x221))/0x6*(parseInt(_0x3fa77f(_0x3774ee._0x5c6364))/0x7)+parseInt(_0x3fa77f(_0x3774ee._0x54e50f))/0x8*(-parseInt(_0x3fa77f(_0x3774ee._0x540327))/0x9)+parseInt(_0x3fa77f(0x1f9))/0xa+parseInt(_0x3fa77f(_0x3774ee._0x283de6))/0xb;if(_0x521e04===_0x278b24)break;else _0x500eb9['push'](_0x500eb9['shift']());}catch(_0x1f774b){_0x500eb9['push'](_0x500eb9['shift']());}}}(_0x5cef,0x2569c));var __defProp=Object[_0x12781d(0x216)],__name=(_0x22b034,_0x541f24)=>__defProp(_0x22b034,_0x12781d(0x20a),{'value':_0x541f24,'configurable':!![]});import{z as _0x3f8e0e}from'zod';import{z}from'zod';import{levenshteinDistance}from'@unotest/core';var MAX_EDITS=0x2;function closestKey(_0x1b5ff1,_0x432b5c){var _0x23fcc6={_0x5b13ba:0x1dc},_0x1261c3=_0x12781d;let _0xacd35;for(const _0x38f171 of _0x432b5c){const _0x267873=levenshteinDistance(_0x1b5ff1[_0x1261c3(_0x23fcc6._0x5b13ba)](),_0x38f171[_0x1261c3(0x1dc)]());if(_0x267873>MAX_EDITS)continue;if(_0xacd35===void 0x0||_0x267873<_0xacd35['distance'])_0xacd35={'key':_0x38f171,'distance':_0x267873};}return _0xacd35?.['key'];}function _0x5cef(){var _0x49220b=['DMfSAwrHDg9YoNvUC3vWCg9YDgvKlwv4ChjLC3nPB24','BwLU','ywnJzxb0','DMfSAwrHDg9YoMfYAxr5','BgLUDdPLBNyTAg9ZDc1MCM9TlwjHC2u','ndGWnZK0nMjyyvrNqG','nePfAwftra','iIdIGjqGzgLKihLVDsbTzwfUici','DMfSAwrHDg9YoMzVCI1ZAgfWzq','BgLUDdPVyMz1C2nHDgvKlwnSyxnZ','BgLUDdPKzwvWlwnZCW','mteZmJCYmfnWzNL0va','B2zM','CMvKywn0zwq','Dw5RBM93BKTLEu1LC3nHz2u','mJa5oduWuxL6sgz0','BNvTyMvY','D2fYBG','BgvUz3rO','rgf0zvrPBwvgB3jTyxq','DMfSAwrHDg9YoNzHCI1ZAgfWzq','lNvUB3rLC3qVzMfPBhvYzxm','BNvSBa','y2HYB21PDw0','CMvJB3jK','zw4Tvvm','nJq5ntrQzffeBvO','mtuWnJHLwu5tC3G','Dw5VDgvZDc9LmMu','mtq1D1nbvhDd','DMfSAwrHDg9YoNn0zxaTy292zxjHz2u','DhjHBNnPzw50','BMfTzq','DMfSAwrHDg9YoNnLBwfUDgLJlwXVC3m','BgLUDdPLEhrLCM5HBc12yxjPywjSzs11BMrLy2XHCMvK','DMfSAwrHDg9YoNDYyxbWzwqTzM9YBwf0','BgLUDdPMBg93lxjLDhvYBNmTDMfSDwu','DMfSAwrHDg9YoNn0zxaTC2HHCgu','zgLZBwLZCW','BgLUDdPYzwDLEc1PBNzHBgLK','BgLUDdPSAw50lw9Rlw1PC3nPBMCTCMvHC29U','BgLUDdPHCgKTy2fSBc1MAwXLlwjVzhK','BgLUDdP4Cgf0Aa','yM9VBgvHBG','zgvMAw5LuhjVCgvYDhK','C3rYAwn0t2jQzwn0','Dw5VDgvZDc9LmMuVx2HLBhbLCNm','y2XVC2vZDeTLEq','iIdIGjqGzxHWzwn0zwqGyw4GsufoqsbUyw1Lihn1y2GGyxmGiKv1CM9Wzs9nywrYAwqI','Aw50','AM9PBG','DxjS','zgvMyxvSDa','AxnuAw1LwM9Uzq','C3rKAw8','nMTLyK9YEq','BgLUDdPWyxvZzs1LEhbSAwnPDa','B3b0Aw9UywW','y3vZDg9T','B2jQzwn0','yxjYyxK','CMvMAw5L','ywrKsxnZDwu','DMfSAwrHDg9YoMz1BMn0Aw9UlxnOyxbL','A2v5CW','zxjYB3i','zgvMyxvSDevYCM9Y','DMfSAwrHDg9YoNn0CMLUzY1JB25Jyxq','zgv2AwnL','BxnLzgDL','Dw5RBM93BIbRzxKGiG','BgLUDdPVBMuTDgvZDc1WzxiTzMLSzq','DMLLD3bVCNq','zw51Bq','BgLUDdPSzwDHy3KTBgf5B3v0','y29Kzq','BgLUDdPZAgfKB3DZlwrZBc1MDw5JDgLVBG','oxjfsvHdvW','BgLUDdPKAxnHBwjPzY1IEs1PBMrLEa','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlxn0yxrLBwvUDa','mtCWnZK3oxDmww5dAq','Bwf4','Dg9mB3DLCKnHC2u','ndC1mtCZy2jXALrY','DMLLD3bVCNq6ig51BgWGA2vLChmGDgHLihjLywWGyNjVD3nLCIb3Aw5KB3CSigfUzcbKzxzPy2uGiG','BgLUDdPTDxn0ywnOzs1PBI1KC2W','BgLUDdPZy2vUyxjPBY1PBI1YB290','wM9KsxnZDwvdB2rL','C3rYAw5N','BwfUDwfS','y2HYB21L','BgL0zxjHBa','BwfW','Cg9ZAxrPDMu','y2HYB21LlwjLDge','Dw5YzwnVz25PEMvKx2TLExm'];_0x5cef=function(){return _0x49220b;};return _0x5cef();}__name(closestKey,_0x12781d(0x219));function unknownKeyMessage(_0x2d0d75,_0x3618de){var _0x12d474={_0x5baa6a:0x21c},_0x7bd79f={_0x369b7f:0x1d0,_0x1d0233:0x1f1},_0x100a71=_0x12781d;return _0x2d0d75[_0x100a71(0x1e6)](_0x545dad=>{var _0x363ebe=_0x100a71;const _0x39b1f9=closestKey(_0x545dad,_0x3618de);return _0x39b1f9===void 0x0?_0x363ebe(_0x7bd79f._0x369b7f)+_0x545dad+'\x22\x20—\x20not\x20a\x20config\x20key;\x20check\x20your\x20@unotest/web\x20version\x20if\x20it\x20comes\x20from\x20a\x20newer\x20release':_0x363ebe(_0x7bd79f._0x369b7f)+_0x545dad+_0x363ebe(_0x7bd79f._0x1d0233)+_0x39b1f9+'\x22?';})[_0x100a71(_0x12d474._0x5baa6a)](';\x20');}__name(unknownKeyMessage,_0x12781d(0x1f8));function strictObject(_0x5d9e02){var _0x274583=_0x12781d;const _0x40a6cf=Object['keys'](_0x5d9e02);return z[_0x274583(0x225)](_0x5d9e02,{'errorMap':__name((_0x51ebbb,_0x292145)=>_0x51ebbb[_0x274583(0x1d5)]===z['ZodIssueCode'][_0x274583(0x1e9)]?{'message':unknownKeyMessage(_0x51ebbb[_0x274583(0x22a)],_0x40a6cf)}:{'message':_0x292145[_0x274583(0x1cc)]},'errorMap')})['strict']();}__name(strictObject,_0x12781d(0x217));import{BUNDLED_BROWSER_CHANNEL}from'@unotest/protocol';import{z as _0x48b82e}from'zod';import{UnotestError}from'@unotest/core';var LaunchConfigSchema=_0x48b82e['object']({'userDataDir':_0x48b82e[_0x12781d(0x1e2)]()[_0x12781d(0x1eb)](0x1)[_0x12781d(0x223)](),'args':_0x48b82e[_0x12781d(0x226)](_0x48b82e[_0x12781d(0x1e2)]()[_0x12781d(0x1eb)](0x1))[_0x12781d(0x223)]()})['strict'](),BrowserSchema=_0x3f8e0e[_0x12781d(0x1d3)]([_0x12781d(0x201),'firefox','webkit']),SYSTEM_BROWSER_CHANNELS=[_0x12781d(0x1e4),_0x12781d(0x1cf),_0x12781d(0x1e8),_0x12781d(0x201)],BROWSER_CHANNEL_WORDS=[...SYSTEM_BROWSER_CHANNELS,BUNDLED_BROWSER_CHANNEL],BrowserChannelSchema=_0x3f8e0e['union']([_0x3f8e0e['enum'](SYSTEM_BROWSER_CHANNELS),_0x3f8e0e[_0x12781d(0x1e5)](BUNDLED_BROWSER_CHANNEL)['transform'](()=>null),_0x3f8e0e[_0x12781d(0x200)]()])['optional'](),ViewportSchema=strictObject({'width':_0x3f8e0e[_0x12781d(0x1fa)]()[_0x12781d(0x21b)]()[_0x12781d(0x1e7)]()[_0x12781d(0x223)](),'height':_0x3f8e0e[_0x12781d(0x1fa)]()[_0x12781d(0x21b)]()[_0x12781d(0x1e7)]()[_0x12781d(0x223)](),'deviceScaleFactor':_0x3f8e0e[_0x12781d(0x1fa)]()[_0x12781d(0x1e7)]()[_0x12781d(0x223)]()}),ConfigViewportSchema=ViewportSchema['nullable'](),RetryReasonSchema=_0x3f8e0e[_0x12781d(0x1d3)]([_0x12781d(0x209),'network','crash']),RetryConfigSchema=strictObject({'count':_0x3f8e0e['number']()[_0x12781d(0x21b)]()[_0x12781d(0x1eb)](0x0)[_0x12781d(0x1db)](0xa),'on':_0x3f8e0e[_0x12781d(0x226)](RetryReasonSchema)}),FailureBundleConfigSchema=strictObject({'tier1':_0x3f8e0e['literal'](!![])[_0x12781d(0x21e)](!![]),'tier2':_0x3f8e0e[_0x12781d(0x215)](),'tier3':strictObject({'network':_0x3f8e0e[_0x12781d(0x215)](),'video':_0x3f8e0e[_0x12781d(0x215)]()}),'retention':strictObject({'runs':_0x3f8e0e['number']()[_0x12781d(0x21b)]()['positive'](),'days':_0x3f8e0e[_0x12781d(0x1fa)]()['int']()[_0x12781d(0x1e7)]()}),'storageDir':_0x3f8e0e[_0x12781d(0x1e2)]()['min'](0x1),'pageHtml':_0x3f8e0e['enum'](['redacted','full'])}),DialogPolicySchema=_0x3f8e0e[_0x12781d(0x1d3)]([_0x12781d(0x1ec),_0x12781d(0x210),_0x12781d(0x1e3)]),LinterRuleIdSchema=_0x3f8e0e['enum']([_0x12781d(0x1f4),_0x12781d(0x214),_0x12781d(0x1f3),_0x12781d(0x222),_0x12781d(0x1d8),'lint:evaluate-discouraged',_0x12781d(0x1e0),_0x12781d(0x1df),'lint:goto-concat',_0x12781d(0x211),'lint:echo-assert',_0x12781d(0x213),_0x12781d(0x212),_0x12781d(0x20e),_0x12781d(0x1d4),_0x12781d(0x20c),_0x12781d(0x1ee),_0x12781d(0x1d1),_0x12781d(0x1d6),'validator:unknown-function',_0x12781d(0x1ed),'validator:arg-kind',_0x12781d(0x208),_0x12781d(0x20f),'validator:meta-shape',_0x12781d(0x229),_0x12781d(0x1f2),'validator:if-shape',_0x12781d(0x1fe),_0x12781d(0x1d9),_0x12781d(0x1ea),_0x12781d(0x1cd),_0x12781d(0x20b),'validator:list-arg',_0x12781d(0x20d)]),LinterSeveritySchema=_0x3f8e0e[_0x12781d(0x1d3)]([_0x12781d(0x1f6),'warn',_0x12781d(0x22b)]),LinterConfigSchema=strictObject({'enabled':_0x3f8e0e[_0x12781d(0x215)](),'rules':_0x3f8e0e[_0x12781d(0x202)](LinterRuleIdSchema,LinterSeveritySchema)}),QueueConfigSchema=strictObject({'enabled':_0x3f8e0e[_0x12781d(0x215)]()[_0x12781d(0x21e)](!![]),'concurrency':_0x3f8e0e[_0x12781d(0x1fa)]()[_0x12781d(0x21b)]()[_0x12781d(0x1e7)]()['default'](0x1)}),ScheduleSchema=strictObject({'collection':_0x3f8e0e[_0x12781d(0x1e2)]()['min'](0x1),'cron':_0x3f8e0e[_0x12781d(0x1e2)]()['min'](0x1),'env':_0x3f8e0e[_0x12781d(0x1e2)]()[_0x12781d(0x1eb)](0x1)[_0x12781d(0x223)](),'prepare':_0x3f8e0e[_0x12781d(0x1e2)]()[_0x12781d(0x1eb)](0x1)[_0x12781d(0x223)]()}),McpConfigSchema=strictObject({'transport':_0x3f8e0e[_0x12781d(0x1e5)](_0x12781d(0x220))}),SandboxConfigSchema=strictObject({'shellCwd':_0x3f8e0e['string']()[_0x12781d(0x223)](),'shellTimeoutMs':_0x3f8e0e[_0x12781d(0x1fa)]()['int']()[_0x12781d(0x1e7)]()[_0x12781d(0x223)](),'exportSecrets':_0x3f8e0e[_0x12781d(0x226)](_0x3f8e0e[_0x12781d(0x1e2)]())['optional'](),'database':_0x3f8e0e['string']()[_0x12781d(0x223)](),'apiBaseUrl':_0x3f8e0e[_0x12781d(0x1e2)]()[_0x12781d(0x21d)]()['optional'](),'uploadDir':_0x3f8e0e[_0x12781d(0x1e2)]()['optional']()}),WebServerConfigSchema=strictObject({'command':_0x3f8e0e[_0x12781d(0x1e2)]()[_0x12781d(0x1eb)](0x1),'url':_0x3f8e0e['string']()[_0x12781d(0x21d)](),'reuseExistingServer':_0x3f8e0e[_0x12781d(0x215)]()[_0x12781d(0x21e)](!![]),'timeoutMs':_0x3f8e0e['number']()[_0x12781d(0x21b)]()['positive']()['default'](0xea60)}),EnvConfigSchema=strictObject({'shared':_0x3f8e0e[_0x12781d(0x226)](_0x3f8e0e[_0x12781d(0x1e2)]())['default']([])}),UnotestConfigSchema=strictObject({'baseUrl':_0x3f8e0e[_0x12781d(0x1e2)]()[_0x12781d(0x21d)]()[_0x12781d(0x223)](),'webServer':WebServerConfigSchema['optional'](),'browsers':_0x3f8e0e[_0x12781d(0x226)](BrowserSchema)[_0x12781d(0x1eb)](0x1),'channel':BrowserChannelSchema,'viewport':ConfigViewportSchema['optional'](),'device':_0x3f8e0e['string']()[_0x12781d(0x1eb)](0x1)['optional'](),'timezone':_0x3f8e0e[_0x12781d(0x1e2)]()[_0x12781d(0x227)](isTimeZone,_0x3634e0=>({'message':'unknown\x20time\x20zone\x20\x22'+_0x3634e0+_0x12781d(0x21a)}))[_0x12781d(0x223)](),'locale':_0x3f8e0e[_0x12781d(0x1e2)]()[_0x12781d(0x227)](isLocale,_0x2df1b8=>({'message':'invalid\x20locale\x20\x22'+_0x2df1b8+'\x22\x20—\x20expected\x20a\x20BCP\x2047\x20tag\x20such\x20as\x20\x22es-ES\x22'}))[_0x12781d(0x223)](),'maxContexts':_0x3f8e0e[_0x12781d(0x1fa)]()[_0x12781d(0x21b)]()[_0x12781d(0x1e7)]()[_0x12781d(0x223)](),'launch':LaunchConfigSchema[_0x12781d(0x223)](),'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':_0x3f8e0e[_0x12781d(0x1e2)]()['optional'](),'testDir':_0x3f8e0e[_0x12781d(0x1e2)]()[_0x12781d(0x1eb)](0x1),'helpersDir':_0x3f8e0e[_0x12781d(0x1e2)]()[_0x12781d(0x1eb)](0x1),'defaultTimeoutMs':_0x3f8e0e[_0x12781d(0x1fa)]()['int']()[_0x12781d(0x1e7)](),'defaultNavigationTimeoutMs':_0x3f8e0e[_0x12781d(0x1fa)]()[_0x12781d(0x21b)]()[_0x12781d(0x1e7)](),'teardownTimeoutMs':_0x3f8e0e[_0x12781d(0x1fa)]()[_0x12781d(0x21b)]()[_0x12781d(0x1e7)]()[_0x12781d(0x223)](),'env':EnvConfigSchema,'linter':LinterConfigSchema,'mcp':McpConfigSchema,'queue':QueueConfigSchema,'schedules':_0x3f8e0e['array'](ScheduleSchema)['default']([]),'sandbox':SandboxConfigSchema})['superRefine']((_0x2c92a9,_0x2c848d)=>{var _0x35d3a6={_0x5d198e:0x228,_0x2fc226:0x1e1},_0x29f5e8=_0x12781d;_0x2c92a9['viewport']===null&&_0x2c92a9[_0x29f5e8(0x1ce)]!==void 0x0&&_0x2c848d[_0x29f5e8(_0x35d3a6._0x5d198e)]({'code':_0x3f8e0e[_0x29f5e8(_0x35d3a6._0x2fc226)][_0x29f5e8(0x224)],'path':[_0x29f5e8(0x1d2)],'message':_0x29f5e8(0x1de)+_0x2c92a9[_0x29f5e8(0x1ce)]+'\x22\x20sets\x20its\x20own\x20size\x20and\x20scale\x20—\x20drop\x20one\x20of\x20them.'});});function isTimeZone(_0x32c3da){var _0x544df2={_0x4b1885:0x1fd,_0x9905e3:0x1fc},_0x169910=_0x12781d;try{return new Intl[(_0x169910(_0x544df2._0x4b1885))](_0x169910(0x203),{'timeZone':_0x32c3da}),_0x32c3da[_0x169910(_0x544df2._0x9905e3)]>0x0;}catch{return![];}}function _0x4bc7(_0x588736,_0xc6f124){_0x588736=_0x588736-0x1cc;var _0x5cefe6=_0x5cef();var _0x4bc70a=_0x5cefe6[_0x588736];if(_0x4bc7['PTIemz']===undefined){var _0x57d7f6=function(_0x103f5a){var _0x4cc2ac='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x3f8e0e='',_0x48b82e='';for(var _0x22b034=0x0,_0x541f24,_0x1b5ff1,_0x432b5c=0x0;_0x1b5ff1=_0x103f5a['charAt'](_0x432b5c++);~_0x1b5ff1&&(_0x541f24=_0x22b034%0x4?_0x541f24*0x40+_0x1b5ff1:_0x1b5ff1,_0x22b034++%0x4)?_0x3f8e0e+=String['fromCharCode'](0xff&_0x541f24>>(-0x2*_0x22b034&0x6)):0x0){_0x1b5ff1=_0x4cc2ac['indexOf'](_0x1b5ff1);}for(var _0xacd35=0x0,_0x38f171=_0x3f8e0e['length'];_0xacd35<_0x38f171;_0xacd35++){_0x48b82e+='%'+('00'+_0x3f8e0e['charCodeAt'](_0xacd35)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x48b82e);};_0x4bc7['ZlpNzz']=_0x57d7f6,_0x4bc7['DcZVCo']={},_0x4bc7['PTIemz']=!![];}var _0x1a90df=_0x5cefe6[0x0],_0x3982b7=_0x588736+_0x1a90df,_0x7ce58e=_0x4bc7['DcZVCo'][_0x3982b7];return!_0x7ce58e?(_0x4bc70a=_0x4bc7['ZlpNzz'](_0x4bc70a),_0x4bc7['DcZVCo'][_0x3982b7]=_0x4bc70a):_0x4bc70a=_0x7ce58e,_0x4bc70a;}__name(isTimeZone,_0x12781d(0x21f));function isLocale(_0x1ba508){try{return Intl['getCanonicalLocales'](_0x1ba508)['length']===0x1;}catch{return![];}}__name(isLocale,'isLocale');var DEFAULT_CONFIG={'browsers':[_0x12781d(0x201)],'retry':{'count':0x0,'on':[_0x12781d(0x209)]},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':_0x12781d(0x1ff),'pageHtml':_0x12781d(0x1f7)},'dialogPolicy':_0x12781d(0x1ec),'testDir':_0x12781d(0x206),'helpersDir':_0x12781d(0x218),'defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x7530,'linter':{'enabled':!![],'rules':{'lint:deep-css':'warn','lint:xpath':_0x12781d(0x1fb),'lint:obfuscated-class':_0x12781d(0x1fb),'lint:pause-explicit':_0x12781d(0x1fb),'lint:disambig-by-index':_0x12781d(0x1f6),'lint:evaluate-discouraged':'warn','lint:scenario-in-root':_0x12781d(0x22b),'lint:mustache-in-dsl':'error','lint:goto-concat':_0x12781d(0x1fb),'lint:regex-invalid':'error','lint:echo-assert':_0x12781d(0x1fb),'lint:lint-ok-missing-reason':'warn','lint:flow-returns-value':_0x12781d(0x1fb),'lint:legacy-layout':_0x12781d(0x1fb),'lint:external-variable-undeclared':_0x12781d(0x22b),'lint:env-host-from-base':_0x12781d(0x22b),'lint:one-test-per-file':_0x12781d(0x1fb),'lint:shadows-dsl-function':_0x12781d(0x1fb),'validator:unknown-function':_0x12781d(0x22b)}},'env':{'shared':[]},'mcp':{'transport':_0x12781d(0x220)},'queue':{'enabled':!![],'concurrency':0x1},'schedules':[],'sandbox':{}};export{BROWSER_CHANNEL_WORDS,BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,EnvConfigSchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,QueueConfigSchema,RetryConfigSchema,RetryReasonSchema,SYSTEM_BROWSER_CHANNELS,SandboxConfigSchema,ScheduleSchema,UnotestConfigSchema,ViewportSchema,WebServerConfigSchema};
|