@unotest/web 0.42.0 → 0.43.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.
@@ -10,12 +10,19 @@ type Browser = z.infer<typeof BrowserSchema>;
10
10
  * Ignored for firefox / webkit browsers (Playwright has no system
11
11
  * channel for those). Chosen at init time via the browser prompt;
12
12
  * user can flip later in unotest.config.{mjs,js,ts}. */
13
- declare const BrowserChannelSchema: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"chrome">, z.ZodLiteral<"msedge">, z.ZodLiteral<"chrome-beta">, z.ZodLiteral<"chromium">, z.ZodNull]>>;
13
+ declare const SYSTEM_BROWSER_CHANNELS: readonly ["chrome", "msedge", "chrome-beta", "chromium"];
14
+ /** Every word either input accepts, in one place: this schema and the
15
+ * reader of `UNOTEST_BROWSER_CHANNEL` (`runner-env.ts`) take the same
16
+ * list. They used to keep two — `bundled` was a word the variable knew
17
+ * and the config refused, while the `.env` template promised the
18
+ * variable merely "overrides channel" (#209). */
19
+ declare const BROWSER_CHANNEL_WORDS: readonly ["chrome", "msedge", "chrome-beta", "chromium", "bundled"];
20
+ declare const BrowserChannelSchema: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["chrome", "msedge", "chrome-beta", "chromium"]>, z.ZodEffects<z.ZodLiteral<"bundled">, null, "bundled">, z.ZodNull]>>;
14
21
  type BrowserChannel = z.infer<typeof BrowserChannelSchema>;
15
22
  declare const ViewportSchema: z.ZodObject<{
16
23
  width: z.ZodNumber;
17
24
  height: z.ZodNumber;
18
- }, "strip", z.ZodTypeAny, {
25
+ }, "strict", z.ZodTypeAny, {
19
26
  width: number;
20
27
  height: number;
21
28
  }, {
@@ -28,12 +35,12 @@ type RetryReason = z.infer<typeof RetryReasonSchema>;
28
35
  declare const RetryConfigSchema: z.ZodObject<{
29
36
  count: z.ZodNumber;
30
37
  on: z.ZodArray<z.ZodEnum<["transient", "network", "crash"]>, "many">;
31
- }, "strip", z.ZodTypeAny, {
38
+ }, "strict", z.ZodTypeAny, {
32
39
  count: number;
33
- on: ("network" | "transient" | "crash")[];
40
+ on: ("transient" | "network" | "crash")[];
34
41
  }, {
35
42
  count: number;
36
- on: ("network" | "transient" | "crash")[];
43
+ on: ("transient" | "network" | "crash")[];
37
44
  }>;
38
45
  type RetryConfig = z.infer<typeof RetryConfigSchema>;
39
46
  declare const FailureBundleConfigSchema: z.ZodObject<{
@@ -44,7 +51,7 @@ declare const FailureBundleConfigSchema: z.ZodObject<{
44
51
  tier3: z.ZodObject<{
45
52
  network: z.ZodBoolean;
46
53
  video: z.ZodBoolean;
47
- }, "strip", z.ZodTypeAny, {
54
+ }, "strict", z.ZodTypeAny, {
48
55
  network: boolean;
49
56
  video: boolean;
50
57
  }, {
@@ -54,7 +61,7 @@ declare const FailureBundleConfigSchema: z.ZodObject<{
54
61
  retention: z.ZodObject<{
55
62
  runs: z.ZodNumber;
56
63
  days: z.ZodNumber;
57
- }, "strip", z.ZodTypeAny, {
64
+ }, "strict", z.ZodTypeAny, {
58
65
  runs: number;
59
66
  days: number;
60
67
  }, {
@@ -62,7 +69,7 @@ declare const FailureBundleConfigSchema: z.ZodObject<{
62
69
  days: number;
63
70
  }>;
64
71
  storageDir: z.ZodString;
65
- }, "strip", z.ZodTypeAny, {
72
+ }, "strict", z.ZodTypeAny, {
66
73
  tier1: true;
67
74
  tier2: boolean;
68
75
  tier3: {
@@ -90,19 +97,19 @@ declare const FailureBundleConfigSchema: z.ZodObject<{
90
97
  type FailureBundleConfig = z.infer<typeof FailureBundleConfigSchema>;
91
98
  declare const DialogPolicySchema: z.ZodEnum<["accept", "dismiss", "manual"]>;
92
99
  type DialogPolicy = z.infer<typeof DialogPolicySchema>;
93
- declare const LinterRuleIdSchema: z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "lint:flow-returns-value", "lint:legacy-layout", "lint:external-variable-undeclared", "lint:one-test-per-file", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>;
100
+ 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"]>;
94
101
  type LinterRuleId = z.infer<typeof LinterRuleIdSchema>;
95
102
  declare const LinterSeveritySchema: z.ZodEnum<["off", "warn", "error"]>;
96
103
  type LinterSeverity = z.infer<typeof LinterSeveritySchema>;
97
104
  declare const LinterConfigSchema: z.ZodObject<{
98
105
  enabled: z.ZodBoolean;
99
- rules: z.ZodRecord<z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "lint:flow-returns-value", "lint:legacy-layout", "lint:external-variable-undeclared", "lint:one-test-per-file", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>, z.ZodEnum<["off", "warn", "error"]>>;
100
- }, "strip", z.ZodTypeAny, {
106
+ 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"]>>;
107
+ }, "strict", z.ZodTypeAny, {
101
108
  enabled: boolean;
102
- rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:one-test-per-file" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
109
+ 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">>;
103
110
  }, {
104
111
  enabled: boolean;
105
- rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:one-test-per-file" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
112
+ 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">>;
106
113
  }>;
107
114
  type LinterConfig = z.infer<typeof LinterConfigSchema>;
108
115
  declare const QueueConfigSchema: z.ZodObject<{
@@ -112,7 +119,7 @@ declare const QueueConfigSchema: z.ZodObject<{
112
119
  /** How many runs may be in flight for one environment. 1 (the default)
113
120
  * is strict FIFO — the machine runs one thing at a time. */
114
121
  concurrency: z.ZodDefault<z.ZodNumber>;
115
- }, "strip", z.ZodTypeAny, {
122
+ }, "strict", z.ZodTypeAny, {
116
123
  enabled: boolean;
117
124
  concurrency: number;
118
125
  }, {
@@ -136,7 +143,7 @@ declare const ScheduleSchema: z.ZodObject<{
136
143
  * — seeding a database, resetting a fixture. Its failure is reported
137
144
  * as "the environment was not prepared", not as a red suite. */
138
145
  prepare: z.ZodOptional<z.ZodString>;
139
- }, "strip", z.ZodTypeAny, {
146
+ }, "strict", z.ZodTypeAny, {
140
147
  collection: string;
141
148
  cron: string;
142
149
  env?: string | undefined;
@@ -150,7 +157,7 @@ declare const ScheduleSchema: z.ZodObject<{
150
157
  type ScheduleConfig = z.infer<typeof ScheduleSchema>;
151
158
  declare const McpConfigSchema: z.ZodObject<{
152
159
  transport: z.ZodLiteral<"stdio">;
153
- }, "strip", z.ZodTypeAny, {
160
+ }, "strict", z.ZodTypeAny, {
154
161
  transport: "stdio";
155
162
  }, {
156
163
  transport: "stdio";
@@ -182,7 +189,7 @@ declare const SandboxConfigSchema: z.ZodObject<{
182
189
  * against it and may not escape it. Defaults to the project root
183
190
  * (the runner's cwd). */
184
191
  uploadDir: z.ZodOptional<z.ZodString>;
185
- }, "strip", z.ZodTypeAny, {
192
+ }, "strict", z.ZodTypeAny, {
186
193
  shellCwd?: string | undefined;
187
194
  shellTimeoutMs?: number | undefined;
188
195
  exportSecrets?: string[] | undefined;
@@ -214,18 +221,29 @@ declare const WebServerConfigSchema: z.ZodObject<{
214
221
  reuseExistingServer: z.ZodDefault<z.ZodBoolean>;
215
222
  /** How long to wait for the URL to come up after spawning. */
216
223
  timeoutMs: z.ZodDefault<z.ZodNumber>;
217
- }, "strip", z.ZodTypeAny, {
218
- url: string;
219
- timeoutMs: number;
224
+ }, "strict", z.ZodTypeAny, {
220
225
  command: string;
226
+ url: string;
221
227
  reuseExistingServer: boolean;
228
+ timeoutMs: number;
222
229
  }, {
223
- url: string;
224
230
  command: string;
225
- timeoutMs?: number | undefined;
231
+ url: string;
226
232
  reuseExistingServer?: boolean | undefined;
233
+ timeoutMs?: number | undefined;
227
234
  }>;
228
235
  type WebServerConfig = z.infer<typeof WebServerConfigSchema>;
236
+ declare const EnvConfigSchema: z.ZodObject<{
237
+ /** Variable names whose base `.env` value is deliberately shared by
238
+ * every environment. Only names that become a HOST are checked, so
239
+ * listing anything else has no effect. */
240
+ shared: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
241
+ }, "strict", z.ZodTypeAny, {
242
+ shared: string[];
243
+ }, {
244
+ shared?: string[] | undefined;
245
+ }>;
246
+ type EnvConfig = z.infer<typeof EnvConfigSchema>;
229
247
  declare const UnotestConfigSchema: z.ZodObject<{
230
248
  baseUrl: z.ZodOptional<z.ZodString>;
231
249
  /** Dev-server lifecycle for the app under test (M-12). Unset → the app
@@ -248,23 +266,23 @@ declare const UnotestConfigSchema: z.ZodObject<{
248
266
  reuseExistingServer: z.ZodDefault<z.ZodBoolean>;
249
267
  /** How long to wait for the URL to come up after spawning. */
250
268
  timeoutMs: z.ZodDefault<z.ZodNumber>;
251
- }, "strip", z.ZodTypeAny, {
252
- url: string;
253
- timeoutMs: number;
269
+ }, "strict", z.ZodTypeAny, {
254
270
  command: string;
271
+ url: string;
255
272
  reuseExistingServer: boolean;
273
+ timeoutMs: number;
256
274
  }, {
257
- url: string;
258
275
  command: string;
259
- timeoutMs?: number | undefined;
276
+ url: string;
260
277
  reuseExistingServer?: boolean | undefined;
278
+ timeoutMs?: number | undefined;
261
279
  }>>;
262
280
  browsers: z.ZodArray<z.ZodEnum<["chromium", "firefox", "webkit"]>, "many">;
263
- channel: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"chrome">, z.ZodLiteral<"msedge">, z.ZodLiteral<"chrome-beta">, z.ZodLiteral<"chromium">, z.ZodNull]>>;
281
+ channel: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["chrome", "msedge", "chrome-beta", "chromium"]>, z.ZodEffects<z.ZodLiteral<"bundled">, null, "bundled">, z.ZodNull]>>;
264
282
  viewport: z.ZodObject<{
265
283
  width: z.ZodNumber;
266
284
  height: z.ZodNumber;
267
- }, "strip", z.ZodTypeAny, {
285
+ }, "strict", z.ZodTypeAny, {
268
286
  width: number;
269
287
  height: number;
270
288
  }, {
@@ -278,21 +296,21 @@ declare const UnotestConfigSchema: z.ZodObject<{
278
296
  userDataDir: z.ZodOptional<z.ZodString>;
279
297
  args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
280
298
  }, "strict", z.ZodTypeAny, {
281
- args?: string[] | undefined;
282
299
  userDataDir?: string | undefined;
283
- }, {
284
300
  args?: string[] | undefined;
301
+ }, {
285
302
  userDataDir?: string | undefined;
303
+ args?: string[] | undefined;
286
304
  }>>;
287
305
  retry: z.ZodObject<{
288
306
  count: z.ZodNumber;
289
307
  on: z.ZodArray<z.ZodEnum<["transient", "network", "crash"]>, "many">;
290
- }, "strip", z.ZodTypeAny, {
308
+ }, "strict", z.ZodTypeAny, {
291
309
  count: number;
292
- on: ("network" | "transient" | "crash")[];
310
+ on: ("transient" | "network" | "crash")[];
293
311
  }, {
294
312
  count: number;
295
- on: ("network" | "transient" | "crash")[];
313
+ on: ("transient" | "network" | "crash")[];
296
314
  }>;
297
315
  failureBundle: z.ZodObject<{
298
316
  /** Tier 1 is always on by D-16. Schema lock — not user-toggleable. */
@@ -302,7 +320,7 @@ declare const UnotestConfigSchema: z.ZodObject<{
302
320
  tier3: z.ZodObject<{
303
321
  network: z.ZodBoolean;
304
322
  video: z.ZodBoolean;
305
- }, "strip", z.ZodTypeAny, {
323
+ }, "strict", z.ZodTypeAny, {
306
324
  network: boolean;
307
325
  video: boolean;
308
326
  }, {
@@ -312,7 +330,7 @@ declare const UnotestConfigSchema: z.ZodObject<{
312
330
  retention: z.ZodObject<{
313
331
  runs: z.ZodNumber;
314
332
  days: z.ZodNumber;
315
- }, "strip", z.ZodTypeAny, {
333
+ }, "strict", z.ZodTypeAny, {
316
334
  runs: number;
317
335
  days: number;
318
336
  }, {
@@ -320,7 +338,7 @@ declare const UnotestConfigSchema: z.ZodObject<{
320
338
  days: number;
321
339
  }>;
322
340
  storageDir: z.ZodString;
323
- }, "strip", z.ZodTypeAny, {
341
+ }, "strict", z.ZodTypeAny, {
324
342
  tier1: true;
325
343
  tier2: boolean;
326
344
  tier3: {
@@ -366,19 +384,30 @@ declare const UnotestConfigSchema: z.ZodObject<{
366
384
  * slow-but-correct navigation.
367
385
  * Override via `UNOTEST_DEFAULT_NAVIGATION_TIMEOUT_MS`. */
368
386
  defaultNavigationTimeoutMs: z.ZodNumber;
387
+ /** Cross-environment declarations (`.env.<name>` overlays). */
388
+ env: z.ZodObject<{
389
+ /** Variable names whose base `.env` value is deliberately shared by
390
+ * every environment. Only names that become a HOST are checked, so
391
+ * listing anything else has no effect. */
392
+ shared: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
393
+ }, "strict", z.ZodTypeAny, {
394
+ shared: string[];
395
+ }, {
396
+ shared?: string[] | undefined;
397
+ }>;
369
398
  linter: z.ZodObject<{
370
399
  enabled: z.ZodBoolean;
371
- rules: z.ZodRecord<z.ZodEnum<["lint:deep-css", "lint:xpath", "lint:obfuscated-class", "lint:pause-explicit", "lint:disambig-by-index", "lint:evaluate-discouraged", "lint:scenario-in-root", "lint:mustache-in-dsl", "lint:goto-concat", "lint:regex-invalid", "lint:echo-assert", "lint:api-call-file-body", "lint:lint-ok-missing-reason", "lint:flow-returns-value", "lint:legacy-layout", "lint:external-variable-undeclared", "lint:one-test-per-file", "validator:unknown-function", "validator:arity", "validator:arg-kind", "validator:step-coverage", "validator:step-shape", "validator:meta-shape", "validator:function-shape", "validator:for-shape", "validator:if-shape", "validator:var-shape", "validator:unsupported-statement", "validator:unsupported-expression", "validator:string-concat", "validator:semantic-loss", "validator:list-arg", "validator:wrapped-format"]>, z.ZodEnum<["off", "warn", "error"]>>;
372
- }, "strip", z.ZodTypeAny, {
400
+ 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"]>>;
401
+ }, "strict", z.ZodTypeAny, {
373
402
  enabled: boolean;
374
- rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:one-test-per-file" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
403
+ 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">>;
375
404
  }, {
376
405
  enabled: boolean;
377
- rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:one-test-per-file" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
406
+ 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">>;
378
407
  }>;
379
408
  mcp: z.ZodObject<{
380
409
  transport: z.ZodLiteral<"stdio">;
381
- }, "strip", z.ZodTypeAny, {
410
+ }, "strict", z.ZodTypeAny, {
382
411
  transport: "stdio";
383
412
  }, {
384
413
  transport: "stdio";
@@ -390,7 +419,7 @@ declare const UnotestConfigSchema: z.ZodObject<{
390
419
  /** How many runs may be in flight for one environment. 1 (the default)
391
420
  * is strict FIFO — the machine runs one thing at a time. */
392
421
  concurrency: z.ZodDefault<z.ZodNumber>;
393
- }, "strip", z.ZodTypeAny, {
422
+ }, "strict", z.ZodTypeAny, {
394
423
  enabled: boolean;
395
424
  concurrency: number;
396
425
  }, {
@@ -414,7 +443,7 @@ declare const UnotestConfigSchema: z.ZodObject<{
414
443
  * — seeding a database, resetting a fixture. Its failure is reported
415
444
  * as "the environment was not prepared", not as a red suite. */
416
445
  prepare: z.ZodOptional<z.ZodString>;
417
- }, "strip", z.ZodTypeAny, {
446
+ }, "strict", z.ZodTypeAny, {
418
447
  collection: string;
419
448
  cron: string;
420
449
  env?: string | undefined;
@@ -451,7 +480,7 @@ declare const UnotestConfigSchema: z.ZodObject<{
451
480
  * against it and may not escape it. Defaults to the project root
452
481
  * (the runner's cwd). */
453
482
  uploadDir: z.ZodOptional<z.ZodString>;
454
- }, "strip", z.ZodTypeAny, {
483
+ }, "strict", z.ZodTypeAny, {
455
484
  shellCwd?: string | undefined;
456
485
  shellTimeoutMs?: number | undefined;
457
486
  exportSecrets?: string[] | undefined;
@@ -466,9 +495,10 @@ declare const UnotestConfigSchema: z.ZodObject<{
466
495
  apiBaseUrl?: string | undefined;
467
496
  uploadDir?: string | undefined;
468
497
  }>;
469
- }, "strip", z.ZodTypeAny, {
470
- defaultTimeoutMs: number;
471
- defaultNavigationTimeoutMs: number;
498
+ }, "strict", z.ZodTypeAny, {
499
+ env: {
500
+ shared: string[];
501
+ };
472
502
  browsers: ("chromium" | "firefox" | "webkit")[];
473
503
  viewport: {
474
504
  width: number;
@@ -476,7 +506,7 @@ declare const UnotestConfigSchema: z.ZodObject<{
476
506
  };
477
507
  retry: {
478
508
  count: number;
479
- on: ("network" | "transient" | "crash")[];
509
+ on: ("transient" | "network" | "crash")[];
480
510
  };
481
511
  failureBundle: {
482
512
  tier1: true;
@@ -494,9 +524,11 @@ declare const UnotestConfigSchema: z.ZodObject<{
494
524
  dialogPolicy: "accept" | "dismiss" | "manual";
495
525
  testDir: string;
496
526
  helpersDir: string;
527
+ defaultTimeoutMs: number;
528
+ defaultNavigationTimeoutMs: number;
497
529
  linter: {
498
530
  enabled: boolean;
499
- rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:one-test-per-file" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
531
+ 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">>;
500
532
  };
501
533
  mcp: {
502
534
  transport: "stdio";
@@ -521,20 +553,21 @@ declare const UnotestConfigSchema: z.ZodObject<{
521
553
  };
522
554
  baseUrl?: string | undefined;
523
555
  webServer?: {
524
- url: string;
525
- timeoutMs: number;
526
556
  command: string;
557
+ url: string;
527
558
  reuseExistingServer: boolean;
559
+ timeoutMs: number;
528
560
  } | undefined;
529
- channel?: "chrome" | "msedge" | "chrome-beta" | "chromium" | null | undefined;
561
+ channel?: "chromium" | "chrome" | "msedge" | "chrome-beta" | null | undefined;
530
562
  launch?: {
531
- args?: string[] | undefined;
532
563
  userDataDir?: string | undefined;
564
+ args?: string[] | undefined;
533
565
  } | undefined;
534
566
  storageState?: string | undefined;
535
567
  }, {
536
- defaultTimeoutMs: number;
537
- defaultNavigationTimeoutMs: number;
568
+ env: {
569
+ shared?: string[] | undefined;
570
+ };
538
571
  browsers: ("chromium" | "firefox" | "webkit")[];
539
572
  viewport: {
540
573
  width: number;
@@ -542,7 +575,7 @@ declare const UnotestConfigSchema: z.ZodObject<{
542
575
  };
543
576
  retry: {
544
577
  count: number;
545
- on: ("network" | "transient" | "crash")[];
578
+ on: ("transient" | "network" | "crash")[];
546
579
  };
547
580
  failureBundle: {
548
581
  tier2: boolean;
@@ -560,9 +593,11 @@ declare const UnotestConfigSchema: z.ZodObject<{
560
593
  dialogPolicy: "accept" | "dismiss" | "manual";
561
594
  testDir: string;
562
595
  helpersDir: string;
596
+ defaultTimeoutMs: number;
597
+ defaultNavigationTimeoutMs: number;
563
598
  linter: {
564
599
  enabled: boolean;
565
- rules: Partial<Record<"lint:deep-css" | "lint:xpath" | "lint:obfuscated-class" | "lint:pause-explicit" | "lint:disambig-by-index" | "lint:evaluate-discouraged" | "lint:scenario-in-root" | "lint:mustache-in-dsl" | "lint:goto-concat" | "lint:regex-invalid" | "lint:echo-assert" | "lint:api-call-file-body" | "lint:lint-ok-missing-reason" | "lint:flow-returns-value" | "lint:legacy-layout" | "lint:external-variable-undeclared" | "lint:one-test-per-file" | "validator:unknown-function" | "validator:arity" | "validator:arg-kind" | "validator:step-coverage" | "validator:step-shape" | "validator:meta-shape" | "validator:function-shape" | "validator:for-shape" | "validator:if-shape" | "validator:var-shape" | "validator:unsupported-statement" | "validator:unsupported-expression" | "validator:string-concat" | "validator:semantic-loss" | "validator:list-arg" | "validator:wrapped-format", "off" | "warn" | "error">>;
600
+ 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">>;
566
601
  };
567
602
  mcp: {
568
603
  transport: "stdio";
@@ -581,15 +616,15 @@ declare const UnotestConfigSchema: z.ZodObject<{
581
616
  };
582
617
  baseUrl?: string | undefined;
583
618
  webServer?: {
584
- url: string;
585
619
  command: string;
586
- timeoutMs?: number | undefined;
620
+ url: string;
587
621
  reuseExistingServer?: boolean | undefined;
622
+ timeoutMs?: number | undefined;
588
623
  } | undefined;
589
- channel?: "chrome" | "msedge" | "chrome-beta" | "chromium" | null | undefined;
624
+ channel?: "chromium" | "chrome" | "msedge" | "chrome-beta" | "bundled" | null | undefined;
590
625
  launch?: {
591
- args?: string[] | undefined;
592
626
  userDataDir?: string | undefined;
627
+ args?: string[] | undefined;
593
628
  } | undefined;
594
629
  storageState?: string | undefined;
595
630
  schedules?: {
@@ -603,4 +638,4 @@ type UnotestConfig = z.infer<typeof UnotestConfigSchema>;
603
638
  type UnotestConfigInput = z.input<typeof UnotestConfigSchema>;
604
639
  declare const DEFAULT_CONFIG: UnotestConfig;
605
640
 
606
- export { type Browser, type BrowserChannel, BrowserChannelSchema, BrowserSchema, DEFAULT_CONFIG, type DialogPolicy, DialogPolicySchema, type FailureBundleConfig, FailureBundleConfigSchema, type LinterConfig, LinterConfigSchema, type LinterRuleId, LinterRuleIdSchema, type LinterSeverity, LinterSeveritySchema, type McpConfig, McpConfigSchema, type QueueConfig, QueueConfigSchema, type RetryConfig, RetryConfigSchema, type RetryReason, RetryReasonSchema, type SandboxConfig, SandboxConfigSchema, type ScheduleConfig, ScheduleSchema, type UnotestConfig, type UnotestConfigInput, UnotestConfigSchema, type Viewport, ViewportSchema, type WebServerConfig, WebServerConfigSchema };
641
+ export { BROWSER_CHANNEL_WORDS, type Browser, type BrowserChannel, BrowserChannelSchema, BrowserSchema, DEFAULT_CONFIG, type DialogPolicy, DialogPolicySchema, type EnvConfig, EnvConfigSchema, type FailureBundleConfig, FailureBundleConfigSchema, type LinterConfig, LinterConfigSchema, type LinterRuleId, LinterRuleIdSchema, type LinterSeverity, LinterSeveritySchema, type McpConfig, McpConfigSchema, type QueueConfig, QueueConfigSchema, type RetryConfig, RetryConfigSchema, type RetryReason, RetryReasonSchema, SYSTEM_BROWSER_CHANNELS, type SandboxConfig, SandboxConfigSchema, type ScheduleConfig, ScheduleSchema, type UnotestConfig, type UnotestConfigInput, UnotestConfigSchema, type Viewport, ViewportSchema, type WebServerConfig, WebServerConfigSchema };
@@ -1 +1 @@
1
- function _0x256a(){var _0x2d855b=['DMfSAwrHDg9YoMfYAxr5','BNvTyMvY','BgLUDdPZy2vUyxjPBY1PBI1YB290','D2fYBG','nJeZmte2AKDnANvL','zgLZBwLZCW','C3rYAw5N','y2HYB21PDw0','mZG1ndiWsef6D2vI','DhjHBNnPzw50','BwLU','mtm2whLjC1DY','DMfSAwrHDg9YoMLMlxnOyxbL','CMvJB3jK','mtbgvxjVq1u','DMfSAwrHDg9YoMXPC3qTyxjN','BgLUDdPLy2HVlwfZC2vYDa','BgL0zxjHBa','C3rKAw8','mte5ndbnsffUthm','zxjYB3i','lNvUB3rLC3qVzMfPBhvYzxm','BgLUDdPMBg93lxjLDhvYBNmTDMfSDwu','DMfSAwrHDg9YoNDYyxbWzwqTzM9YBwf0','BgLUDdPLDMfSDwf0zs1KAxnJB3vYywDLza','BxnLzgDL','BwfUDwfS','DMfSAwrHDg9YoM1LDgeTC2HHCgu','Dw5VDgvZDc9LmMu','DMfSAwrHDg9YoMzVCI1ZAgfWzq','yM9VBgvHBG','BMv0D29YAW','zw51Bq','BgLUDdPHCgKTy2fSBc1MAwXLlwjVzhK','BgLUDdPLEhrLCM5HBc12yxjPywjSzs11BMrLy2XHCMvK','BNvSBa','BgLUDdPKzwvWlwnZCW','B3b0Aw9UywW','BgLUDdPNB3rVlwnVBMnHDa','BgLUDdPWyxvZzs1LEhbSAwnPDa','Aw50','Cg9ZAxrPDMu','DMfSAwrHDg9YoNzHCI1ZAgfWzq','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlwv4ChjLC3nPB24','Dw5PB24','zgvMyxvSDa','B2jQzwn0','ndm0mZvQCNz2z2C','BgLUDdPTDxn0ywnOzs1PBI1KC2W','oda1ndi4A0fpA1nY','BgLUDdP4Cgf0Aa','DxjS','DMfSAwrHDg9YoMz1BMn0Aw9UlxnOyxbL','D2vIA2L0','BgLUDdPVBMuTDgvZDc1WzxiTzMLSzq','ntiZnty5AezftfHx','ywnJzxb0','mtK1nZLKu1DzzuK','y2HYB21LlwjLDge','yxjYyxK','DMfSAwrHDg9YoNn0zxaTy292zxjHz2u','BgLUDdPSzwDHy3KTBgf5B3v0','C3rYAwn0'];_0x256a=function(){return _0x2d855b;};return _0x256a();}var _0x4d6978=_0x9989;(function(_0x376e58,_0x23aa0d){var _0x1502ed={_0x526bfd:0x1cc,_0x4efeca:0x1b6,_0x19deee:0x1d1,_0x5a637f:0x1c6,_0x490284:0x1ae,_0x57ae97:0x1c9},_0x3400bf=_0x9989,_0x3b6b5d=_0x376e58();while(!![]){try{var _0x2269a6=parseInt(_0x3400bf(0x1b8))/0x1*(parseInt(_0x3400bf(_0x1502ed._0x526bfd))/0x2)+parseInt(_0x3400bf(_0x1502ed._0x4efeca))/0x3+parseInt(_0x3400bf(_0x1502ed._0x19deee))/0x4+-parseInt(_0x3400bf(_0x1502ed._0x5a637f))/0x5+parseInt(_0x3400bf(0x1c2))/0x6+parseInt(_0x3400bf(_0x1502ed._0x490284))/0x7*(-parseInt(_0x3400bf(_0x1502ed._0x57ae97))/0x8)+-parseInt(_0x3400bf(0x1b0))/0x9;if(_0x2269a6===_0x23aa0d)break;else _0x3b6b5d['push'](_0x3b6b5d['shift']());}catch(_0x563132){_0x3b6b5d['push'](_0x3b6b5d['shift']());}}}(_0x256a,0x19c38));import{z as _0x22039d}from'zod';function _0x9989(_0x1db101,_0x2f10b3){_0x1db101=_0x1db101-0x1a1;var _0x256a05=_0x256a();var _0x9989e2=_0x256a05[_0x1db101];if(_0x9989['HbxpAQ']===undefined){var _0x23eb16=function(_0x1980ed){var _0x4af31c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x22039d='',_0x9864f='';for(var _0x45cdba=0x0,_0x571d47,_0x305ce7,_0x1e4659=0x0;_0x305ce7=_0x1980ed['charAt'](_0x1e4659++);~_0x305ce7&&(_0x571d47=_0x45cdba%0x4?_0x571d47*0x40+_0x305ce7:_0x305ce7,_0x45cdba++%0x4)?_0x22039d+=String['fromCharCode'](0xff&_0x571d47>>(-0x2*_0x45cdba&0x6)):0x0){_0x305ce7=_0x4af31c['indexOf'](_0x305ce7);}for(var _0x46c5da=0x0,_0x17dbd9=_0x22039d['length'];_0x46c5da<_0x17dbd9;_0x46c5da++){_0x9864f+='%'+('00'+_0x22039d['charCodeAt'](_0x46c5da)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x9864f);};_0x9989['sFnunZ']=_0x23eb16,_0x9989['FgKnyf']={},_0x9989['HbxpAQ']=!![];}var _0x256e04=_0x256a05[0x0],_0x4f800b=_0x1db101+_0x256e04,_0x5ef601=_0x9989['FgKnyf'][_0x4f800b];return!_0x5ef601?(_0x9989e2=_0x9989['sFnunZ'](_0x9989e2),_0x9989['FgKnyf'][_0x4f800b]=_0x9989e2):_0x9989e2=_0x5ef601,_0x9989e2;}import{z}from'zod';import{UnotestError}from'@unotest/core';var LaunchConfigSchema=z['object']({'userDataDir':z[_0x4d6978(0x1c4)]()[_0x4d6978(0x1c8)](0x1)[_0x4d6978(0x1a4)](),'args':z[_0x4d6978(0x1ba)](z[_0x4d6978(0x1c4)]()['min'](0x1))[_0x4d6978(0x1a4)]()})[_0x4d6978(0x1bd)](),BrowserSchema=_0x22039d['enum']([_0x4d6978(0x1c5),'firefox',_0x4d6978(0x1b4)]),BrowserChannelSchema=_0x22039d[_0x4d6978(0x1ab)]([_0x22039d[_0x4d6978(0x1cf)]('chrome'),_0x22039d['literal'](_0x4d6978(0x1d7)),_0x22039d[_0x4d6978(0x1cf)](_0x4d6978(0x1b9)),_0x22039d[_0x4d6978(0x1cf)]('chromium'),_0x22039d[_0x4d6978(0x1a2)]()])[_0x4d6978(0x1a4)](),ViewportSchema=_0x22039d[_0x4d6978(0x1ad)]({'width':_0x22039d[_0x4d6978(0x1bf)]()[_0x4d6978(0x1a7)]()['positive'](),'height':_0x22039d[_0x4d6978(0x1bf)]()[_0x4d6978(0x1a7)]()[_0x4d6978(0x1a8)]()}),RetryReasonSchema=_0x22039d[_0x4d6978(0x1de)]([_0x4d6978(0x1c7),_0x4d6978(0x1dd),'crash']),RetryConfigSchema=_0x22039d['object']({'count':_0x22039d[_0x4d6978(0x1bf)]()[_0x4d6978(0x1a7)]()[_0x4d6978(0x1c8)](0x0)['max'](0xa),'on':_0x22039d['array'](RetryReasonSchema)}),FailureBundleConfigSchema=_0x22039d[_0x4d6978(0x1ad)]({'tier1':_0x22039d[_0x4d6978(0x1cf)](!![])[_0x4d6978(0x1ac)](!![]),'tier2':_0x22039d['boolean'](),'tier3':_0x22039d[_0x4d6978(0x1ad)]({'network':_0x22039d['boolean'](),'video':_0x22039d['boolean']()}),'retention':_0x22039d[_0x4d6978(0x1ad)]({'runs':_0x22039d[_0x4d6978(0x1bf)]()['int']()[_0x4d6978(0x1a8)](),'days':_0x22039d[_0x4d6978(0x1bf)]()['int']()[_0x4d6978(0x1a8)]()}),'storageDir':_0x22039d[_0x4d6978(0x1c4)]()[_0x4d6978(0x1c8)](0x1)}),DialogPolicySchema=_0x22039d[_0x4d6978(0x1de)]([_0x4d6978(0x1b7),_0x4d6978(0x1c3),_0x4d6978(0x1d8)]),LinterRuleIdSchema=_0x22039d[_0x4d6978(0x1de)]([_0x4d6978(0x1a3),_0x4d6978(0x1b1),'lint:obfuscated-class',_0x4d6978(0x1a6),'lint:disambig-by-index',_0x4d6978(0x1d6),_0x4d6978(0x1c0),_0x4d6978(0x1af),_0x4d6978(0x1a5),'lint:regex-invalid',_0x4d6978(0x1ce),_0x4d6978(0x1df),'lint:lint-ok-missing-reason',_0x4d6978(0x1d4),_0x4d6978(0x1bc),_0x4d6978(0x1a1),_0x4d6978(0x1b5),'validator:unknown-function',_0x4d6978(0x1be),'validator:arg-kind',_0x4d6978(0x1bb),'validator:step-shape',_0x4d6978(0x1d9),_0x4d6978(0x1b3),_0x4d6978(0x1db),_0x4d6978(0x1ca),_0x4d6978(0x1a9),'validator:unsupported-statement',_0x4d6978(0x1aa),'validator:string-concat','validator:semantic-loss',_0x4d6978(0x1cd),_0x4d6978(0x1d5)]),LinterSeveritySchema=_0x22039d[_0x4d6978(0x1de)](['off',_0x4d6978(0x1c1),'error']),LinterConfigSchema=_0x22039d[_0x4d6978(0x1ad)]({'enabled':_0x22039d[_0x4d6978(0x1dc)](),'rules':_0x22039d[_0x4d6978(0x1cb)](LinterRuleIdSchema,LinterSeveritySchema)}),QueueConfigSchema=_0x22039d[_0x4d6978(0x1ad)]({'enabled':_0x22039d[_0x4d6978(0x1dc)]()['default'](!![]),'concurrency':_0x22039d['number']()[_0x4d6978(0x1a7)]()[_0x4d6978(0x1a8)]()[_0x4d6978(0x1ac)](0x1)}),ScheduleSchema=_0x22039d[_0x4d6978(0x1ad)]({'collection':_0x22039d[_0x4d6978(0x1c4)]()[_0x4d6978(0x1c8)](0x1),'cron':_0x22039d[_0x4d6978(0x1c4)]()[_0x4d6978(0x1c8)](0x1),'env':_0x22039d[_0x4d6978(0x1c4)]()[_0x4d6978(0x1c8)](0x1)[_0x4d6978(0x1a4)](),'prepare':_0x22039d['string']()[_0x4d6978(0x1c8)](0x1)['optional']()}),McpConfigSchema=_0x22039d['object']({'transport':_0x22039d[_0x4d6978(0x1cf)]('stdio')}),SandboxConfigSchema=_0x22039d[_0x4d6978(0x1ad)]({'shellCwd':_0x22039d[_0x4d6978(0x1c4)]()[_0x4d6978(0x1a4)](),'shellTimeoutMs':_0x22039d['number']()[_0x4d6978(0x1a7)]()[_0x4d6978(0x1a8)]()[_0x4d6978(0x1a4)](),'exportSecrets':_0x22039d[_0x4d6978(0x1ba)](_0x22039d['string']())[_0x4d6978(0x1a4)](),'database':_0x22039d[_0x4d6978(0x1c4)]()['optional'](),'apiBaseUrl':_0x22039d[_0x4d6978(0x1c4)]()[_0x4d6978(0x1b2)]()['optional'](),'uploadDir':_0x22039d[_0x4d6978(0x1c4)]()[_0x4d6978(0x1a4)]()}),WebServerConfigSchema=_0x22039d[_0x4d6978(0x1ad)]({'command':_0x22039d[_0x4d6978(0x1c4)]()[_0x4d6978(0x1c8)](0x1),'url':_0x22039d['string']()['url'](),'reuseExistingServer':_0x22039d['boolean']()[_0x4d6978(0x1ac)](!![]),'timeoutMs':_0x22039d[_0x4d6978(0x1bf)]()[_0x4d6978(0x1a7)]()[_0x4d6978(0x1a8)]()[_0x4d6978(0x1ac)](0xea60)}),UnotestConfigSchema=_0x22039d[_0x4d6978(0x1ad)]({'baseUrl':_0x22039d['string']()[_0x4d6978(0x1b2)]()[_0x4d6978(0x1a4)](),'webServer':WebServerConfigSchema[_0x4d6978(0x1a4)](),'browsers':_0x22039d[_0x4d6978(0x1ba)](BrowserSchema)[_0x4d6978(0x1c8)](0x1),'channel':BrowserChannelSchema,'viewport':ViewportSchema,'launch':LaunchConfigSchema['optional'](),'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':_0x22039d['string']()[_0x4d6978(0x1a4)](),'testDir':_0x22039d[_0x4d6978(0x1c4)]()[_0x4d6978(0x1c8)](0x1),'helpersDir':_0x22039d[_0x4d6978(0x1c4)]()[_0x4d6978(0x1c8)](0x1),'defaultTimeoutMs':_0x22039d[_0x4d6978(0x1bf)]()[_0x4d6978(0x1a7)]()[_0x4d6978(0x1a8)](),'defaultNavigationTimeoutMs':_0x22039d[_0x4d6978(0x1bf)]()[_0x4d6978(0x1a7)]()[_0x4d6978(0x1a8)](),'linter':LinterConfigSchema,'mcp':McpConfigSchema,'queue':QueueConfigSchema,'schedules':_0x22039d[_0x4d6978(0x1ba)](ScheduleSchema)['default']([]),'sandbox':SandboxConfigSchema}),DEFAULT_CONFIG={'browsers':[_0x4d6978(0x1c5)],'viewport':{'width':0x500,'height':0x2d0},'retry':{'count':0x0,'on':[_0x4d6978(0x1c7)]},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':_0x4d6978(0x1d3)},'dialogPolicy':_0x4d6978(0x1b7),'testDir':_0x4d6978(0x1da),'helpersDir':'unotest/e2e/_helpers','defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x7530,'linter':{'enabled':!![],'rules':{'lint:deep-css':_0x4d6978(0x1c1),'lint:xpath':_0x4d6978(0x1c1),'lint:obfuscated-class':_0x4d6978(0x1c1),'lint:pause-explicit':'warn','lint:disambig-by-index':'off','lint:evaluate-discouraged':_0x4d6978(0x1c1),'lint:scenario-in-root':_0x4d6978(0x1d2),'lint:mustache-in-dsl':_0x4d6978(0x1d2),'lint:goto-concat':_0x4d6978(0x1c1),'lint:regex-invalid':'error','lint:echo-assert':'warn','lint:lint-ok-missing-reason':'warn','lint:flow-returns-value':_0x4d6978(0x1c1),'lint:legacy-layout':'warn','lint:external-variable-undeclared':_0x4d6978(0x1d2),'lint:one-test-per-file':_0x4d6978(0x1c1),'validator:unknown-function':_0x4d6978(0x1d2)}},'mcp':{'transport':_0x4d6978(0x1d0)},'queue':{'enabled':!![],'concurrency':0x1},'schedules':[],'sandbox':{}};export{BrowserChannelSchema,BrowserSchema,DEFAULT_CONFIG,DialogPolicySchema,FailureBundleConfigSchema,LinterConfigSchema,LinterRuleIdSchema,LinterSeveritySchema,McpConfigSchema,QueueConfigSchema,RetryConfigSchema,RetryReasonSchema,SandboxConfigSchema,ScheduleSchema,UnotestConfigSchema,ViewportSchema,WebServerConfigSchema};
1
+ var _0x35f08b=_0x7b5c;(function(_0x3900aa,_0x651d58){var _0x520f7d={_0x45de20:0xbf,_0x2347bd:0x96,_0x2f1497:0xc0,_0x442d3a:0x97,_0x54c77c:0xab,_0x5f9c1d:0xa8},_0x475de5=_0x7b5c,_0xb9069f=_0x3900aa();while(!![]){try{var _0x310fed=parseInt(_0x475de5(0xcb))/0x1*(-parseInt(_0x475de5(_0x520f7d._0x45de20))/0x2)+-parseInt(_0x475de5(_0x520f7d._0x2347bd))/0x3+-parseInt(_0x475de5(0x88))/0x4*(-parseInt(_0x475de5(_0x520f7d._0x2f1497))/0x5)+-parseInt(_0x475de5(0x87))/0x6+parseInt(_0x475de5(0xb3))/0x7+parseInt(_0x475de5(_0x520f7d._0x442d3a))/0x8*(-parseInt(_0x475de5(0xc8))/0x9)+parseInt(_0x475de5(_0x520f7d._0x54c77c))/0xa*(parseInt(_0x475de5(_0x520f7d._0x5f9c1d))/0xb);if(_0x310fed===_0x651d58)break;else _0xb9069f['push'](_0xb9069f['shift']());}catch(_0x4295da){_0xb9069f['push'](_0xb9069f['shift']());}}}(_0x2812,0x7d199));var __defProp=Object[_0x35f08b(0x95)],__name=(_0x30e000,_0x2700d4)=>__defProp(_0x30e000,_0x35f08b(0x8b),{'value':_0x2700d4,'configurable':!![]});function _0x7b5c(_0x3dece4,_0x17b132){_0x3dece4=_0x3dece4-0x86;var _0x281288=_0x2812();var _0x7b5ccb=_0x281288[_0x3dece4];if(_0x7b5c['kaiKbm']===undefined){var _0x3d5535=function(_0x2ddd68){var _0x390cca='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x5661df='',_0x44e8fb='';for(var _0x30e000=0x0,_0x2700d4,_0x15c8ac,_0x57d7dc=0x0;_0x15c8ac=_0x2ddd68['charAt'](_0x57d7dc++);~_0x15c8ac&&(_0x2700d4=_0x30e000%0x4?_0x2700d4*0x40+_0x15c8ac:_0x15c8ac,_0x30e000++%0x4)?_0x5661df+=String['fromCharCode'](0xff&_0x2700d4>>(-0x2*_0x30e000&0x6)):0x0){_0x15c8ac=_0x390cca['indexOf'](_0x15c8ac);}for(var _0x37c423=0x0,_0x2fe3da=_0x5661df['length'];_0x37c423<_0x2fe3da;_0x37c423++){_0x44e8fb+='%'+('00'+_0x5661df['charCodeAt'](_0x37c423)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x44e8fb);};_0x7b5c['PMKyob']=_0x3d5535,_0x7b5c['IyQLRU']={},_0x7b5c['kaiKbm']=!![];}var _0x8655f0=_0x281288[0x0],_0x57828f=_0x3dece4+_0x8655f0,_0x1862e9=_0x7b5c['IyQLRU'][_0x57828f];return!_0x1862e9?(_0x7b5ccb=_0x7b5c['PMKyob'](_0x7b5ccb),_0x7b5c['IyQLRU'][_0x57828f]=_0x7b5ccb):_0x7b5ccb=_0x1862e9,_0x7b5ccb;}import{z as _0x5661df}from'zod';import{z}from'zod';function _0x2812(){var _0x5e448c=['DMfSAwrHDg9YoNn0zxaTC2HHCgu','iIdIGjqGzgLKihLVDsbTzwfUici','y2HYB21PDw0','BgLUDdPNB3rVlwnVBMnHDa','Dg9mB3DLCKnHC2u','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlxn0yxrLBwvUDa','BgLUDdPTDxn0ywnOzs1PBI1KC2W','D2fYBG','DMfSAwrHDg9YoNvUC3vWCg9YDgvKlwv4ChjLC3nPB24','BgLUDdPLEhrLCM5HBc12yxjPywjSzs11BMrLy2XHCMvK','C3rYAw5N','A2v5','DxjS','zw51Bq','Cg9ZAxrPDMu','mtyXmda5mdLYtKveyxC','BwfUDwfS','BNvTyMvY','mtbVs1fQrNC','yxjYyxK','BgLUDdPLBNyTAg9ZDc1MCM9TlwjHC2u','zgLZDgfUy2u','y2HYB21L','Dw5RBM93BKTLEu1LC3nHz2u','ywnJzxb0','C3rYAwn0','mZC3mZeYnKLcr1npwG','zMLYzwzVEa','CMvJB3jK','A2v5CW','BgL0zxjHBa','DhjHBNnMB3jT','DMfSAwrHDg9YoM1LDgeTC2HHCgu','DMfSAwrHDg9YoNzHCI1ZAgfWzq','B3b0Aw9UywW','Dw5VDgvZDc9LmMu','BMv0D29YAW','B2zM','nJC0v1DtCKzU','mtyZmtvQA0zmyKi','zxjYB3i','y3jHC2G','AM9PBG','BgLUDdPWyxvZzs1LEhbSAwnPDa','Dw5PB24','BgLUDdPHCgKTy2fSBc1MAwXLlwjVzhK','DMfSAwrHDg9YoMfYAxr5','ovb3CKrjuW','DMfSAwrHDg9YoMz1BMn0Aw9UlxnOyxbL','zgvMyxvSDa','mtG1ohL3C2TLDG','wM9KsxnZDwvdB2rL','C3rYAwn0t2jQzwn0','zgvMyxvSDevYCM9Y','DMfSAwrHDg9YoNn0CMLUzY1JB25Jyxq','BgLUDdPVyMz1C2nHDgvKlwnSyxnZ','Dw5RBM93BIbRzxKGiG','y2XVC2vZDeTLEq','BgLUDdPVBMuTDgvZDc1WzxiTzMLSzq','B2jQzwn0','BgLUDdP4Cgf0Aa','Aw50','DMfSAwrHDg9YoNn0zxaTy292zxjHz2u','DMfSAwrHDg9YoMLMlxnOyxbL','iIdIGjqGBM90igeGy29UzMLNigTLEtSGy2HLy2SGEw91CIbaDw5VDgvZDc93zwiGDMvYC2LVBIbPzIbPDcbJB21LCYbMCM9TigeGBMv3zxiGCMvSzwfZzq','DMfSAwrHDg9YoNDYyxbWzwqTzM9YBwf0','lNvUB3rLC3qVzMfPBhvYzxm','mtiWmdKXmNDrtg9nDG','otiWvKveDxjf','BgLUDdPSzwDHy3KTBgf5B3v0','y2HYB21LlwjLDge','BMfTzq','zgLZBwLZCW','BwLU','DMfSAwrHDg9YoMfYzY1RAw5K','C3rKAw8','DMfSAwrHDg9YoNnLBwfUDgLJlwXVC3m','BwfW','DMfSAwrHDg9YoNvUA25VD24TzNvUy3rPB24','yM9VBgvHBG','Dw5YzwnVz25PEMvKx2TLExm','zgvMAw5LuhjVCgvYDhK','mJq0mJm4n1rICwfzua','ndGWmZeYogTLBKzPAq','DhjHBNnPzw50'];_0x2812=function(){return _0x5e448c;};return _0x2812();}import{levenshteinDistance}from'@unotest/core';var MAX_EDITS=0x2;function closestKey(_0x15c8ac,_0x57d7dc){var _0x5262b6={_0x332b2b:0xae},_0x239085=_0x35f08b;let _0x37c423;for(const _0x2fe3da of _0x57d7dc){const _0x3252b9=levenshteinDistance(_0x15c8ac[_0x239085(0x9d)](),_0x2fe3da['toLowerCase']());if(_0x3252b9>MAX_EDITS)continue;if(_0x37c423===void 0x0||_0x3252b9<_0x37c423[_0x239085(_0x5262b6._0x332b2b)])_0x37c423={'key':_0x2fe3da,'distance':_0x3252b9};}return _0x37c423?.[_0x239085(0xa4)];}__name(closestKey,_0x35f08b(0xd2));function unknownKeyMessage(_0x31285d,_0x1d6e68){var _0x30a5cc={_0x229a78:0x91},_0x29f31f={_0x5dc2b9:0xd1,_0x5d6059:0xd9},_0x4f978a=_0x35f08b;return _0x31285d[_0x4f978a(_0x30a5cc._0x229a78)](_0x5e4c63=>{var _0x2aa1e6=_0x4f978a;const _0x52c28f=closestKey(_0x5e4c63,_0x1d6e68);return _0x52c28f===void 0x0?_0x2aa1e6(_0x29f31f._0x5dc2b9)+_0x5e4c63+_0x2aa1e6(_0x29f31f._0x5d6059):_0x2aa1e6(_0x29f31f._0x5dc2b9)+_0x5e4c63+_0x2aa1e6(0x9a)+_0x52c28f+'\x22?';})[_0x4f978a(0xc3)](';\x20');}__name(unknownKeyMessage,_0x35f08b(0xb0));function strictObject(_0x22229c){var _0x155f9a=_0x35f08b;const _0x1b9138=Object['keys'](_0x22229c);return z['object'](_0x22229c,{'errorMap':__name((_0x2204d5,_0x32e550)=>_0x2204d5['code']===z[_0x155f9a(0xcc)][_0x155f9a(0x94)]?{'message':unknownKeyMessage(_0x2204d5[_0x155f9a(0xb6)],_0x1b9138)}:{'message':_0x32e550[_0x155f9a(0xce)]},'errorMap')})[_0x155f9a(0xb2)]();}__name(strictObject,_0x35f08b(0xcd));import{BUNDLED_BROWSER_CHANNEL}from'@unotest/protocol';import{z as _0x44e8fb}from'zod';import{UnotestError}from'@unotest/core';var LaunchConfigSchema=_0x44e8fb[_0x35f08b(0xd4)]({'userDataDir':_0x44e8fb[_0x35f08b(0xa3)]()['min'](0x1)[_0x35f08b(0xbb)](),'args':_0x44e8fb['array'](_0x44e8fb[_0x35f08b(0xa3)]()[_0x35f08b(0x8d)](0x1))[_0x35f08b(0xbb)]()})['strict'](),BrowserSchema=_0x5661df[_0x35f08b(0xa6)]([_0x35f08b(0x9b),_0x35f08b(0xb4),'webkit']),SYSTEM_BROWSER_CHANNELS=[_0x35f08b(0xaf),'msedge',_0x35f08b(0x8a),_0x35f08b(0x9b)],BROWSER_CHANNEL_WORDS=[...SYSTEM_BROWSER_CHANNELS,BUNDLED_BROWSER_CHANNEL],BrowserChannelSchema=_0x5661df[_0x35f08b(0xc5)]([_0x5661df[_0x35f08b(0xa6)](SYSTEM_BROWSER_CHANNELS),_0x5661df['literal'](BUNDLED_BROWSER_CHANNEL)[_0x35f08b(0xb8)](()=>null),_0x5661df['null']()])['optional'](),ViewportSchema=strictObject({'width':_0x5661df[_0x35f08b(0xaa)]()[_0x35f08b(0xd6)]()['positive'](),'height':_0x5661df[_0x35f08b(0xaa)]()[_0x35f08b(0xd6)]()[_0x35f08b(0xa7)]()}),RetryReasonSchema=_0x5661df[_0x35f08b(0xa6)]([_0x35f08b(0x98),_0x35f08b(0xbd),_0x35f08b(0xc2)]),RetryConfigSchema=strictObject({'count':_0x5661df[_0x35f08b(0xaa)]()['int']()[_0x35f08b(0x8d)](0x0)['max'](0xa),'on':_0x5661df[_0x35f08b(0xac)](RetryReasonSchema)}),FailureBundleConfigSchema=strictObject({'tier1':_0x5661df[_0x35f08b(0xb7)](!![])['default'](!![]),'tier2':_0x5661df['boolean'](),'tier3':strictObject({'network':_0x5661df[_0x35f08b(0x93)](),'video':_0x5661df['boolean']()}),'retention':strictObject({'runs':_0x5661df['number']()[_0x35f08b(0xd6)]()[_0x35f08b(0xa7)](),'days':_0x5661df[_0x35f08b(0xaa)]()[_0x35f08b(0xd6)]()[_0x35f08b(0xa7)]()}),'storageDir':_0x5661df[_0x35f08b(0xa3)]()['min'](0x1)}),DialogPolicySchema=_0x5661df[_0x35f08b(0xa6)](['accept',_0x35f08b(0x8c),_0x35f08b(0xa9)]),LinterRuleIdSchema=_0x5661df[_0x35f08b(0xa6)](['lint:deep-css',_0x35f08b(0xd5),_0x35f08b(0xd0),_0x35f08b(0xc4),'lint:disambig-by-index','lint:evaluate-discouraged','lint:scenario-in-root',_0x35f08b(0x9f),_0x35f08b(0x9c),'lint:regex-invalid','lint:echo-assert',_0x35f08b(0xc6),'lint:lint-ok-missing-reason','lint:flow-returns-value',_0x35f08b(0x89),_0x35f08b(0xa2),_0x35f08b(0xad),_0x35f08b(0xd3),_0x35f08b(0x92),_0x35f08b(0xc7),_0x35f08b(0x8e),_0x35f08b(0xd7),_0x35f08b(0x99),_0x35f08b(0xb9),_0x35f08b(0xc9),'validator:for-shape',_0x35f08b(0xd8),_0x35f08b(0xba),_0x35f08b(0x9e),_0x35f08b(0xa1),_0x35f08b(0xcf),_0x35f08b(0x90),'validator:list-arg',_0x35f08b(0xda)]),LinterSeveritySchema=_0x5661df[_0x35f08b(0xa6)](['off',_0x35f08b(0xa0),_0x35f08b(0xc1)]),LinterConfigSchema=strictObject({'enabled':_0x5661df['boolean'](),'rules':_0x5661df[_0x35f08b(0xb5)](LinterRuleIdSchema,LinterSeveritySchema)}),QueueConfigSchema=strictObject({'enabled':_0x5661df[_0x35f08b(0x93)]()[_0x35f08b(0xca)](!![]),'concurrency':_0x5661df['number']()[_0x35f08b(0xd6)]()[_0x35f08b(0xa7)]()[_0x35f08b(0xca)](0x1)}),ScheduleSchema=strictObject({'collection':_0x5661df[_0x35f08b(0xa3)]()[_0x35f08b(0x8d)](0x1),'cron':_0x5661df[_0x35f08b(0xa3)]()[_0x35f08b(0x8d)](0x1),'env':_0x5661df['string']()[_0x35f08b(0x8d)](0x1)[_0x35f08b(0xbb)](),'prepare':_0x5661df[_0x35f08b(0xa3)]()[_0x35f08b(0x8d)](0x1)[_0x35f08b(0xbb)]()}),McpConfigSchema=strictObject({'transport':_0x5661df[_0x35f08b(0xb7)](_0x35f08b(0x8f))}),SandboxConfigSchema=strictObject({'shellCwd':_0x5661df[_0x35f08b(0xa3)]()[_0x35f08b(0xbb)](),'shellTimeoutMs':_0x5661df[_0x35f08b(0xaa)]()[_0x35f08b(0xd6)]()[_0x35f08b(0xa7)]()[_0x35f08b(0xbb)](),'exportSecrets':_0x5661df[_0x35f08b(0xac)](_0x5661df[_0x35f08b(0xa3)]())['optional'](),'database':_0x5661df[_0x35f08b(0xa3)]()['optional'](),'apiBaseUrl':_0x5661df[_0x35f08b(0xa3)]()[_0x35f08b(0xa5)]()['optional'](),'uploadDir':_0x5661df[_0x35f08b(0xa3)]()[_0x35f08b(0xbb)]()}),WebServerConfigSchema=strictObject({'command':_0x5661df[_0x35f08b(0xa3)]()[_0x35f08b(0x8d)](0x1),'url':_0x5661df[_0x35f08b(0xa3)]()[_0x35f08b(0xa5)](),'reuseExistingServer':_0x5661df[_0x35f08b(0x93)]()[_0x35f08b(0xca)](!![]),'timeoutMs':_0x5661df[_0x35f08b(0xaa)]()[_0x35f08b(0xd6)]()[_0x35f08b(0xa7)]()[_0x35f08b(0xca)](0xea60)}),EnvConfigSchema=strictObject({'shared':_0x5661df[_0x35f08b(0xac)](_0x5661df['string']())[_0x35f08b(0xca)]([])}),UnotestConfigSchema=strictObject({'baseUrl':_0x5661df[_0x35f08b(0xa3)]()[_0x35f08b(0xa5)]()[_0x35f08b(0xbb)](),'webServer':WebServerConfigSchema[_0x35f08b(0xbb)](),'browsers':_0x5661df['array'](BrowserSchema)[_0x35f08b(0x8d)](0x1),'channel':BrowserChannelSchema,'viewport':ViewportSchema,'launch':LaunchConfigSchema[_0x35f08b(0xbb)](),'retry':RetryConfigSchema,'failureBundle':FailureBundleConfigSchema,'dialogPolicy':DialogPolicySchema,'storageState':_0x5661df['string']()[_0x35f08b(0xbb)](),'testDir':_0x5661df['string']()[_0x35f08b(0x8d)](0x1),'helpersDir':_0x5661df[_0x35f08b(0xa3)]()['min'](0x1),'defaultTimeoutMs':_0x5661df[_0x35f08b(0xaa)]()[_0x35f08b(0xd6)]()['positive'](),'defaultNavigationTimeoutMs':_0x5661df[_0x35f08b(0xaa)]()[_0x35f08b(0xd6)]()[_0x35f08b(0xa7)](),'env':EnvConfigSchema,'linter':LinterConfigSchema,'mcp':McpConfigSchema,'queue':QueueConfigSchema,'schedules':_0x5661df[_0x35f08b(0xac)](ScheduleSchema)[_0x35f08b(0xca)]([]),'sandbox':SandboxConfigSchema}),DEFAULT_CONFIG={'browsers':['chromium'],'viewport':{'width':0x500,'height':0x2d0},'retry':{'count':0x0,'on':['transient']},'failureBundle':{'tier1':!![],'tier2':!![],'tier3':{'network':![],'video':![]},'retention':{'runs':0x14,'days':0x7},'storageDir':_0x35f08b(0x86)},'dialogPolicy':_0x35f08b(0xb1),'testDir':_0x35f08b(0xbc),'helpersDir':'unotest/e2e/_helpers','defaultTimeoutMs':0xbb8,'defaultNavigationTimeoutMs':0x7530,'linter':{'enabled':!![],'rules':{'lint:deep-css':_0x35f08b(0xa0),'lint:xpath':_0x35f08b(0xa0),'lint:obfuscated-class':_0x35f08b(0xa0),'lint:pause-explicit':'warn','lint:disambig-by-index':_0x35f08b(0xbe),'lint:evaluate-discouraged':_0x35f08b(0xa0),'lint:scenario-in-root':_0x35f08b(0xc1),'lint:mustache-in-dsl':'error','lint:goto-concat':_0x35f08b(0xa0),'lint:regex-invalid':_0x35f08b(0xc1),'lint:echo-assert':_0x35f08b(0xa0),'lint:lint-ok-missing-reason':_0x35f08b(0xa0),'lint:flow-returns-value':_0x35f08b(0xa0),'lint:legacy-layout':_0x35f08b(0xa0),'lint:external-variable-undeclared':'error','lint:env-host-from-base':_0x35f08b(0xc1),'lint:one-test-per-file':'warn','validator:unknown-function':'error'}},'env':{'shared':[]},'mcp':{'transport':'stdio'},'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};