@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.
@@ -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: number;
27
- height: number;
29
+ width?: number | undefined;
30
+ height?: number | undefined;
31
+ deviceScaleFactor?: number | undefined;
28
32
  }, {
29
- width: number;
30
- height: number;
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: ("network" | "transient" | "crash")[];
45
+ on: ("transient" | "network" | "crash")[];
41
46
  }, {
42
47
  count: number;
43
- on: ("network" | "transient" | "crash")[];
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
- timeoutMs?: number | undefined;
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
- timeoutMs?: number | undefined;
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: number;
294
- height: number;
301
+ width?: number | undefined;
302
+ height?: number | undefined;
303
+ deviceScaleFactor?: number | undefined;
295
304
  }, {
296
- width: number;
297
- height: number;
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: ("network" | "transient" | "crash")[];
345
+ on: ("transient" | "network" | "crash")[];
318
346
  }, {
319
347
  count: number;
320
- on: ("network" | "transient" | "crash")[];
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
- defaultTimeoutMs: number;
514
- defaultNavigationTimeoutMs: number;
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: ("network" | "transient" | "crash")[];
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
- env: {
542
- shared: string[];
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" | "chromium" | null | undefined;
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
- browsers: ("chromium" | "firefox" | "webkit")[];
586
- viewport: {
587
- width: number;
588
- height: number;
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: ("network" | "transient" | "crash")[];
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
- timeoutMs?: number | undefined;
824
+ url: string;
638
825
  reuseExistingServer?: boolean | undefined;
826
+ timeoutMs?: number | undefined;
639
827
  } | undefined;
640
- channel?: "chrome" | "msedge" | "chrome-beta" | "chromium" | "bundled" | null | undefined;
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;
@@ -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};