@unotest/protocol 0.26.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,94 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.27.0] - 2026-08-31
4
+
5
+ ### Minor Changes
6
+
7
+ - Schedule provenance and the push fingerprint. `ScheduleEntry` gains
8
+ optional `source: "config" | "file"`, stamped by `mergeSchedules`
9
+ (so `schedules --json` carries it; neither half ever writes it) —
10
+ what lets a UI showing the merged set tell "edit the file" from
11
+ "edit the config". New `canonicalScheduleSet()` — the canonical text
12
+ a schedules fingerprint hashes: sorted by target, `source`-blind.
13
+ `BundleManifest` gains optional `schedulesFingerprint` (sha256 of the
14
+ effective set at pack time, advisory), and
15
+ `SCHEDULES_FINGERPRINT_ENV` names the env var a box's
16
+ viewer-supervisor hands the deployed viewer next to the bundle id.
17
+
18
+ - `schedule-spec`: the schedule-builder subset of cron is now public —
19
+ `specFromCron` / `cronFromSpec` / `nextTickFromSpec` /
20
+ `formatNextTick` / `describeCron` and friends, pure and
21
+ dependency-free (moved here from the viewer, so the CLI's next-run
22
+ preview and the viewer's popup share one implementation). It is a
23
+ PREVIEW, not an engine: expressions outside the subset map to `null`,
24
+ and the full cron engine still lives only with the executor.
25
+ `IRunnerAdapter` gains optional `schedulesArgs()` — argv that prints
26
+ the project's effective schedule set as JSON (web:
27
+ `["schedules", "--json"]`).
28
+
29
+ - c843d21: Schedules from the viewer — for collections and single tests.
30
+
31
+ Right-click a test or a collection in the viewer → **Schedule…**: a
32
+ human schedule builder (frequency select — every 5/15 min, hourly,
33
+ every 2/4/6/12 h, daily, weekly — plus toggle badges for minutes,
34
+ hours and weekdays; multi-select, so `04` + `16` × `00` + `30` runs
35
+ four times a day). Saved to `unotest/schedules.yaml`, versioned next
36
+ to the tests; a box applies it after commit & sync. The Home screen
37
+ gains a `last run | schedule` toggle: in schedule mode tiles are
38
+ tinted by how often a test runs (grey = not scheduled), with an
39
+ upcoming list and per-tile next-run times in your browser's clock.
40
+
41
+ Under the hood:
42
+
43
+ - `unotest/schedules.yaml` is a new schedule registry; `unotest-web
44
+ schedules [--json]` prints it merged with the config's `schedules`
45
+ (the file wins on a duplicate target), so boxes pick both up
46
+ unchanged.
47
+ - A schedule entry may now target a single test: `scenario:
48
+ <ref>` instead of `collection: <name>`.
49
+ - `unotest-web e2e <name> --scheduled[=index]` runs a test the way its
50
+ entry says (env + prepare, exit 94 when prepare fails) — the
51
+ per-test mirror of `collection --scheduled`.
52
+ - Viewer server: `GET/PUT /api/schedules` (validated by the same
53
+ parser the CLI reads the file with).
54
+
55
+ ## [0.26.1] - 2026-08-30
56
+
57
+ ### Patch Changes
58
+
59
+ - `BundleManifest` gains `declaredVariables?: string[]` — the external
60
+ NAMES a suite declares (values never travel) — and `BundleUploadOk`
61
+ gains `variableGaps?`, how a box reports the ones it cannot supply.
62
+
63
+ - `CollectionMeta` gains `prepare: string | null` — the collection's own
64
+ environment-preparation command, read from `prepare:` in its YAML.
65
+
66
+ - 9424f6b: Fix: screenshots stayed blank in the viewer when runs write to a separate
67
+ artifact root
68
+
69
+ A run whose artifacts do not live under the working directory — every run on
70
+ a box, where the sources are a disposable copy of a test bundle — emitted
71
+ `screenshot` events whose path was relativised against the working directory.
72
+ That came out as `../../../…`, which the viewer's asset route refuses to
73
+ serve, so every step preview rendered as a broken image. Artifact paths are
74
+ now relative to the artifact root, which is still the project root on every
75
+ local run.
76
+
77
+ The failure bundle had the mirror-image problem: it was written to
78
+ `.unotest/failures/` under the working directory, so on a box it landed
79
+ inside the bundle copy — outside the tree the viewer serves, and discarded on
80
+ the next bundle push. It now hangs off the artifact root too, which leaves
81
+ local runs byte-for-byte unchanged.
82
+
83
+ The inspector's Semantic DOM, Console, Network and Snapshot panes were dark
84
+ for a third reason, and this one bit local runs as well: they composed the
85
+ run's directory in the browser and left out the date shard runs have been
86
+ filed under since M-10, plus the environment suffix on a box. The viewer's
87
+ asset route now takes `?file=<name-relative-to-the-run-dir>` and resolves the
88
+ directory itself — runs root, target suffix, environment suffix and shard are
89
+ all things only the server knows. `?path=` stays for the whole paths the
90
+ server ships on run events.
91
+
3
92
  ## [0.26.0] - 2026-08-30
4
93
 
5
94
  ### Minor Changes
package/dist/index.d.ts CHANGED
@@ -119,6 +119,11 @@ declare const ENV_FILE = "unotest/.env";
119
119
  /** Secret scenario variables, beside `.env` under `unotest/`. Same KEY=VALUE
120
120
  * format; secrecy is a property of THIS file (not a name heuristic). */
121
121
  declare const SECRETS_FILE = "unotest/.secrets";
122
+ /** Schedule registry edited by the viewer (`schedules:` array of
123
+ * `ScheduleEntry`). Relative to project root. Merged with the
124
+ * `schedules` of `unotest.config` by `unotest-web schedules` — this
125
+ * file wins on a duplicate target. */
126
+ declare const SCHEDULES_FILE = "unotest/schedules.yaml";
122
127
  /** Env/secrets file naming spans TWO axes (M-11):
123
128
  *
124
129
  * - TARGET (dash, M-10): `.env` is the shared base AND web's file (bare
@@ -427,7 +432,12 @@ interface StepFailEvent extends RunArtifactBase {
427
432
  }
428
433
  interface ScreenshotEvent extends RunArtifactBase {
429
434
  kind: "screenshot";
430
- /** Project-relative path to the PNG (under `unotest/.runs/<runId>/screenshot/`). */
435
+ /** Artifact-root-relative path to the PNG (under
436
+ * `unotest/.runs<suffix>/<shard>/<runId>/screenshot/`). The artifact
437
+ * root is the project root on every local run, and the environment's
438
+ * directory on a box — where the sources are a disposable bundle copy
439
+ * and making this cwd-relative yields a `../../..` path the viewer's
440
+ * asset route refuses to serve. */
431
441
  path: string;
432
442
  /** Step identity for captures bound to a specific step (per-step
433
443
  * screenshots under `UNOTEST_STEP_SCREENSHOTS`). Same semantics as
@@ -473,10 +483,10 @@ interface JudgeVerdictEvent extends RunArtifactBase {
473
483
  * agent-fix MCP tools. */
474
484
  interface FailureBundleWrittenEvent extends RunArtifactBase {
475
485
  kind: "failure-bundle:written";
476
- /** Project-relative path to the bundle directory. */
486
+ /** Artifact-root-relative path to the bundle directory. */
477
487
  bundlePath: string;
478
- /** Project-relative path to the screenshot PNG inside the bundle,
479
- * when tier-2 capture succeeded. */
488
+ /** Artifact-root-relative path to the screenshot PNG inside the
489
+ * bundle, when tier-2 capture succeeded. */
480
490
  screenshotPath?: string;
481
491
  /** Page URL at the moment of failure (same value captured into the
482
492
  * bundle's `snapshot.json`/`outline.txt`), for the viewer's ErrorCard. */
@@ -1118,6 +1128,12 @@ declare const BOX_TOKEN_ENV = "UNOTEST_BOX_TOKEN";
1118
1128
  * the answer to "which code produced this" after the environment has
1119
1129
  * moved on. Never set locally — there is no bundle there. */
1120
1130
  declare const BUNDLE_ID_ENV = "UNOTEST_BUNDLE_ID";
1131
+ /** Set by a box's viewer-supervisor next to {@link BUNDLE_ID_ENV}: the
1132
+ * manifest's `schedulesFingerprint`, so the deployed viewer can compare
1133
+ * the set it reads with the set recorded at push and say out loud when
1134
+ * the project's config computed something different in the box's
1135
+ * environment. Never set locally. */
1136
+ declare const SCHEDULES_FINGERPRINT_ENV = "UNOTEST_SCHEDULES_FINGERPRINT";
1121
1137
  /** Where the code came from — provenance, never identity. A bundle is
1122
1138
  * identified by its CONTENT (see `bundleId`): the sha of a dirty working
1123
1139
  * tree is not unique, and two people can push different trees from the
@@ -1156,6 +1172,19 @@ interface BundleManifest {
1156
1172
  * `git config user.email`, falling back to the OS user. */
1157
1173
  author?: string;
1158
1174
  git?: BundleGitInfo;
1175
+ /** NAMES of the externals the suite declares (`.env` / `.secrets` key
1176
+ * names). Values never travel — they belong to the environment a box
1177
+ * runs the suite in — so the names are what lets a box answer "nothing
1178
+ * here can supply LOGIN" at upload instead of an hour later. Optional:
1179
+ * a bundle packed by an older CLI carries none. */
1180
+ declaredVariables?: string[];
1181
+ /** sha256 of `canonicalScheduleSet` over the EFFECTIVE schedules
1182
+ * (`schedules --json`) as the pusher's machine computed them. The
1183
+ * config is user JS: a box re-computes the set in its own
1184
+ * environment, and this is what lets it notice — and say — that it
1185
+ * got a different answer than the person who pushed saw. Advisory
1186
+ * provenance, absent from bundles packed by an older CLI. */
1187
+ schedulesFingerprint?: string;
1159
1188
  /** Payload size, excluding this manifest. Diagnostics and limits — a
1160
1189
  * box states its cap in these terms. */
1161
1190
  fileCount: number;
@@ -1176,9 +1205,31 @@ declare function describeBundle(manifest: BundleManifest): string;
1176
1205
  * already there and the upload was a no-op. Both are success: a CI job
1177
1206
  * that pushes an unchanged suite must not go red. */
1178
1207
  type BundleUploadStatus = "created" | "exists";
1208
+ /** An environment on the box that would not be able to RUN this suite:
1209
+ * the bundle declares external variables (its `.env.example` /
1210
+ * `.secrets.example` keys) that the environment neither sets nor holds
1211
+ * as a secret.
1212
+ *
1213
+ * Reported at UPLOAD, where a person is still watching, rather than as a
1214
+ * red suite an hour later — the values live with the environment by
1215
+ * design and no bundle can carry them, so "you pushed fine, and nothing
1216
+ * here can run it" is exactly what the box knows and the pusher does
1217
+ * not. Never fatal: a suite may legitimately not use every key it
1218
+ * declares. */
1219
+ interface BundleVariableGap {
1220
+ /** Project on the box — half of the `<project>/<environment>` target an
1221
+ * operator types, so the advice can be copied rather than assembled. */
1222
+ project: string;
1223
+ /** Environment name within the project (`prod`, `staging`). */
1224
+ environment: string;
1225
+ /** Declared by the bundle, provided by neither variables nor secrets. */
1226
+ missing: string[];
1227
+ }
1179
1228
  interface BundleUploadOk {
1180
1229
  status: BundleUploadStatus;
1181
1230
  bundleId: string;
1231
+ /** Present only when something is missing somewhere. */
1232
+ variableGaps?: BundleVariableGap[];
1182
1233
  }
1183
1234
  /** Why an upload was refused. A code, not a message, because the CLI
1184
1235
  * turns each into its own advice — and because matching on message text
@@ -1262,10 +1313,8 @@ interface WorkspaceFile {
1262
1313
  * viewer: the bundle UI stays hidden rather than half-populated. */
1263
1314
  declare function parseWorkspaceFile(value: unknown): WorkspaceFile | null;
1264
1315
 
1265
- /** One scheduled run of one collection. */
1266
- interface ScheduleEntry {
1267
- /** Collection name — the file stem under `_collections/`. */
1268
- collection: string;
1316
+ /** Fields every schedule carries, whatever it targets. */
1317
+ interface ScheduleEntryBase {
1269
1318
  /** Standard 5-field cron expression, interpreted by whoever executes
1270
1319
  * the schedule. Opaque to every public package. */
1271
1320
  cron: string;
@@ -1282,21 +1331,126 @@ interface ScheduleEntry {
1282
1331
  * the yaml stays the single authority on parallelism. Carried here so
1283
1332
  * an executor can weigh the run's queue ticket (a suite costs its
1284
1333
  * worker count in a host-wide pool) without parsing yaml itself.
1285
- * Absent when the manifest declares none, or does not exist. */
1334
+ * Absent when the manifest declares none, or does not exist — and
1335
+ * always absent on a scenario entry (one test weighs 1). */
1286
1336
  workers?: number;
1337
+ /** Where the entry was declared — stamped by {@link mergeSchedules},
1338
+ * so it appears in `schedules --json` and nowhere else: neither half
1339
+ * ever WRITES it (the yaml stays clean, the config schema does not
1340
+ * know it). It is what lets a UI showing the merged set tell "edit
1341
+ * this in the file" from "this is the config's, go edit the config".
1342
+ * Provenance, never identity: {@link canonicalScheduleSet} drops it. */
1343
+ source?: "config" | "file";
1344
+ }
1345
+ /** One scheduled run of one collection. */
1346
+ interface CollectionScheduleEntry extends ScheduleEntryBase {
1347
+ /** Collection name — the file stem under `_collections/`. */
1348
+ collection: string;
1349
+ scenario?: never;
1350
+ }
1351
+ /** One scheduled run of one scenario — a schedule set on a single test.
1352
+ * Kept as an ALTERNATIVE field rather than a `kind` discriminator so
1353
+ * the wire shape of collection entries never changed: an executor that
1354
+ * predates scenario schedules drops these entries individually (its
1355
+ * `parseScheduleEntry` finds no `collection`) and keeps running the
1356
+ * suites it understands. */
1357
+ interface ScenarioScheduleEntry extends ScheduleEntryBase {
1358
+ /** Scenario name — the file stem relative to the test dir. */
1359
+ scenario: string;
1360
+ collection?: never;
1287
1361
  }
1362
+ type ScheduleEntry = CollectionScheduleEntry | ScenarioScheduleEntry;
1363
+ /** The entry's target as one value — for keying (one schedule per
1364
+ * target), log lines and metric series. */
1365
+ declare function scheduleTarget(e: ScheduleEntry): {
1366
+ kind: "collection" | "scenario";
1367
+ name: string;
1368
+ };
1288
1369
  /** Structural validation of one entry read from JSON. Null for anything
1289
1370
  * we cannot trust — a consumer skips it rather than scheduling a run it
1290
1371
  * does not understand. A malformed `workers` is dropped alone (the
1291
1372
  * engine's weight then defaults to 1) — losing a weight is recoverable,
1292
1373
  * losing a schedule is a suite that silently stops running. */
1293
1374
  declare function parseScheduleEntry(value: unknown): ScheduleEntry | null;
1375
+ /** Parsed `unotest/schedules.yaml` (see `SCHEDULES_FILE`) — the
1376
+ * viewer-managed registry. Takes the ALREADY-parsed yaml value: this
1377
+ * package stays runtime-dep-free, the caller owns the yaml library.
1378
+ *
1379
+ * Strict where the box payload is lenient: this file is written by the
1380
+ * viewer and edited by humans, and silently dropping an entry here
1381
+ * would un-schedule a suite with nobody told. Any problem names the
1382
+ * entry and fails the whole read. */
1383
+ declare function parseSchedulesDoc(value: unknown): {
1384
+ entries: ScheduleEntry[];
1385
+ } | {
1386
+ error: string;
1387
+ };
1388
+ /** Config `schedules` + the viewer's file, as ONE list — the shape both
1389
+ * `schedules --json` prints and `--scheduled=<index>` indexes into, so
1390
+ * it must be computed in exactly one way. The file wins on a duplicate
1391
+ * target; config entries keep their relative order, file entries
1392
+ * follow. Each entry is stamped with its `source` here — the single
1393
+ * point that knows which half an entry came from. */
1394
+ declare function mergeSchedules(config: readonly ScheduleEntry[], file: readonly ScheduleEntry[]): ScheduleEntry[];
1395
+ /** Canonical text of an effective schedule set — what the bundle
1396
+ * fingerprint hashes (`computeSchedulesFingerprint` in
1397
+ * `@unotest/core`). Two sides compute it independently — the pusher's
1398
+ * machine at pack time, the box after unpacking — and a difference
1399
+ * means the project's config computed something else in the box's
1400
+ * environment, so the canon must depend on nothing but the entries:
1401
+ * sorted by target (declaration order is presentation), `source`
1402
+ * dropped (provenance, not identity), fields serialised in one fixed
1403
+ * order. Byte-order comparison, not locale collation. */
1404
+ declare function canonicalScheduleSet(entries: readonly ScheduleEntry[]): string;
1294
1405
  /** Parse the whole `schedules --json` payload. Null when the text is not
1295
1406
  * a JSON array — the caller reports "could not read the schedules"
1296
1407
  * rather than silently running nothing. Entries that fail validation
1297
1408
  * are dropped individually and counted by the caller. */
1298
1409
  declare function parseSchedulesJson(text: string): ScheduleEntry[] | null;
1299
1410
 
1411
+ /** What the frequency select offers. `off` (no schedule) is popup
1412
+ * state, not a spec — a spec always runs. */
1413
+ type ScheduleFreq = "m5" | "m15" | "h1" | "h2" | "h4" | "h6" | "h12" | "daily" | "weekly";
1414
+ interface ScheduleSpec {
1415
+ freq: ScheduleFreq;
1416
+ /** Minutes-of-hour badges, 0–55 step 5. Ignored by m5/m15. */
1417
+ minutes: number[];
1418
+ /** Hours-of-day badges, 0–23. Only daily/weekly. */
1419
+ hours: number[];
1420
+ /** Cron day-of-week numbers (0 = Sun). Only weekly. */
1421
+ days: number[];
1422
+ }
1423
+ /** Which pickers a frequency shows. One table, used by the popup for
1424
+ * rendering and by the builder for which fields matter. */
1425
+ declare const FREQ_FIELDS: Record<ScheduleFreq, {
1426
+ minutes: boolean;
1427
+ hours: boolean;
1428
+ days: boolean;
1429
+ }>;
1430
+ declare function cronFromSpec(s: ScheduleSpec): string;
1431
+ /** Inverse of {@link cronFromSpec} — null for any expression the popup
1432
+ * could not have generated. */
1433
+ declare function specFromCron(cron: string): ScheduleSpec | null;
1434
+ /** Human line for a cron the viewer shows anywhere outside the popup —
1435
+ * tree tooltips, menu labels, hover cards. Raw string when the
1436
+ * expression is not one of ours. */
1437
+ declare function describeCron(cron: string): string;
1438
+ declare function describeSpec(s: ScheduleSpec): string;
1439
+ /** Epoch ms of the first run strictly after `afterMs`, in the CALLER's
1440
+ * timezone (declared next to every rendering as "your clock" — a box
1441
+ * usually ticks in UTC). Minute-walk on purpose: a weekly spec matches
1442
+ * within 8 days, ~11k cheap iterations worst case, and there is no
1443
+ * cron-engine arithmetic to get subtly wrong. Only for specs the
1444
+ * builder can express — a custom cron has no next tick here. */
1445
+ declare function nextTickFromSpec(s: ScheduleSpec, afterMs: number): number;
1446
+ /** `today 14:05` / `tomorrow 03:00` / `Mon 03:00` — enough precision
1447
+ * for a dashboard, no relative-time maths to go stale on screen. */
1448
+ declare function formatNextTick(tickMs: number, nowMs: number): string;
1449
+ /** Chip labels, cron order Sun=0 — the popup renders Mon-first via
1450
+ * {@link WEEK_CHIP_ORDER}. */
1451
+ declare const DAY_SHORT: readonly string[];
1452
+ declare const WEEK_CHIP_ORDER: readonly number[];
1453
+
1300
1454
  /** Blob root under the runs root. Leading underscore for the same reason
1301
1455
  * as `_scenarios`: derived, internal, and can never be mistaken for a
1302
1456
  * `YYYY` shard directory. */
@@ -1357,6 +1511,17 @@ interface CollectionMeta {
1357
1511
  * is absent (callers default to 1 = sequential). A CLI `--workers`
1358
1512
  * flag overrides this value for one run. */
1359
1513
  workers: number | null;
1514
+ /** Optional `prepare:` from the YAML — a shell command that readies the
1515
+ * environment (seeding a database, resetting a fixture) before the
1516
+ * suite runs, inside the same queue slot.
1517
+ *
1518
+ * It belongs to the COLLECTION, not to a schedule: a suite that needs
1519
+ * seeded fixtures needs them however it was started. Before this, a
1520
+ * `prepare` could only live in a `schedules` entry, so the same
1521
+ * collection run from CI, from the viewer or by hand was red on a box
1522
+ * for the want of a table. A schedules entry may still name its own
1523
+ * `prepare` (it wins for that tick), and `--no-prepare` skips it. */
1524
+ prepare: string | null;
1360
1525
  }
1361
1526
 
1362
1527
  declare const RUN_MANIFEST_FILE = "manifest.json";
@@ -1468,6 +1633,14 @@ interface IRunnerAdapter {
1468
1633
  * app-launch capability and the viewer hides the feature for this
1469
1634
  * target. Example: `["app-server"]`. */
1470
1635
  appServerArgs?(): string[];
1636
+ /** Argv (after the bin path) that prints the project's EFFECTIVE
1637
+ * schedule set — config-declared entries merged with the
1638
+ * viewer-managed file — as a `ScheduleEntry[]` JSON array on stdout
1639
+ * (web: `["schedules", "--json"]`). The one parser of the project's
1640
+ * config, asked across a process boundary: a deployed viewer shows
1641
+ * the set through this instead of re-reading half of it. Absent →
1642
+ * the target has no schedules command and the viewer says so. */
1643
+ schedulesArgs?(): string[];
1471
1644
  /** Path inputs the App panel renders for this target (M-17) — each
1472
1645
  * spec becomes an input + file-picker button whose value is saved
1473
1646
  * into the target's env file (`envKey`). The viewer stays
@@ -2274,4 +2447,4 @@ declare const JUDGE_ENV: {
2274
2447
  readonly skipPreflight: "UNOTEST_JUDGE_SKIP_PREFLIGHT";
2275
2448
  };
2276
2449
 
2277
- export { ARTIFACTS_ROOT_ENV, type AddVariablePlan, type AddVariablePlanInput, type AppPathPickerSpec, type AppServerEvent, type AuthoringRunRequest, BLOBS_DIR, BOX_TOKEN_ENV, BOX_URL_ENV, BUNDLE_ID_ENV, BUNDLE_MANIFEST_FILE, BUNDLE_SCHEMA_VERSION, BUNDLE_UPLOAD_PATH, type BreakpointEntry, type BreakpointsFile, type BundleGitInfo, type BundleManifest, type BundleUploadError, type BundleUploadErrorCode, type BundleUploadOk, type BundleUploadResponse, type BundleUploadStatus, CI_RUN_PATH, COLLECTIONS_SUBDIR, COLLECTION_NAME_FORBIDDEN_RE, COMMANDS_FILE, type CheckSeverity, type CiProviderId, type CiQueuedRun, type CiRunAccepted, type CiRunError, type CiRunErrorCode, type CiRunRequest, type CiRunResponse, type CollectionMeta, type CollectionRunArtifact, type CollectionRunFinishedEvent, type CollectionRunRequest, type CollectionRunStartedEvent, type CollectionRunTab, type CollectionScenarioFinishedEvent, type CollectionScenarioStartedEvent, type CollectionTab, DAY_INDEX_FILE, type DbgCommand, type DbgCommandAbort, type DbgCommandClearBp, type DbgCommandContinue, type DbgCommandKind, type DbgCommandPause, type DbgCommandPickerStart, type DbgCommandPickerStop, type DbgCommandProbe, type DbgCommandRecord, type DbgCommandSetBp, type DbgCommandSnapshot, type DbgCommandStep, type DbgCommandWheel, type DebugCapabilities, type DoctorCheck, type DoctorContext, type DslDiagnostic, type DslValidateContext, type DslVocabArg, type DslVocabCategory, type DslVocabEntry, E2E_SUBDIR, ENV_FILE, EXPECT_FAIL_ANNOTATION, type EnqueueRunInput, type EnvChangedMessage, type EnvFile, type EnvUpdate, type EnvVar, type ErrorMessage, type FailureBundleWrittenEvent, type FsBreakpointsChangedMessage, type FsCollectionRunStepMessage, type FsCollectionsChangedMessage, type FsHelpersChangedMessage, type FsRunFinishedMessage, type FsRunStartedMessage, type FsRunStepMessage, type FsScenariosChangedMessage, HEARTBEAT_FILE, HELPERS_SUBDIR, type HelperMeta, type HelperTab, type HostRequirement, type IDslLanguageService, type ILaunchedProcess, type IProcessLauncher, type IRunQueue, type IRunnerAdapter, InvalidBlobHashError, JUDGE_ENV, JUDGE_ROUTES, type JudgeErrorResponse, type JudgeHealthResponse, type JudgeRequest, type JudgeVerdict, type JudgeVerdictEvent, LOCK_FILE, LOG_FILE, type LaunchSpec, type LocatorPickedEvent, type LockFile, type LogLineMessage, type Matcher, type OverviewTab, PICKER_SNAPSHOT_FILE, type ParsedTicketName, type PausedEvent, type PickerMode, type ProbeMatch, type ProbePinned, type ProbeResult, type ProbeResultEvent, QUEUE_DISABLED_ENV, QUEUE_GLOBAL_DIR_ENV, QUEUE_GLOBAL_SLOTS_ENV, QUEUE_LEASE_ENV, QUEUE_MUTEX_FILE, QUEUE_PRIORITIES, QUEUE_RUNNING_DIR, QUEUE_SCHEMA_VERSION, QUEUE_SLOTS_DIR, QUEUE_SUBDIR, QUEUE_TICKETS_DIR, type QueueChangedMessage, type QueueEntry, type QueuePoolState, type QueuePriority, type QueueProducer, type QueueProducerKind, type QueueSnapshot, type QueueTicket, type QueueTicketCi, type QueueTicketKind, type QueueTicketSource, RUNNER_CONFIG_KEYS, RUNS_SUBDIR, RUNTIME_FILE, RUN_INDEX_SCHEMA_VERSION, RUN_MANIFEST_FILE, RUN_SOURCES_FILE, type RecordedActionKind, type RegexLiteral, type ResumedEvent, type RunArtifact, type RunFinishedEvent, type RunId, type RunIndexEntry, type RunIndexHeader, type RunKind, type RunManifest, type RunMeta, type RunOutcome, type RunQueueLease, type RunQueueTicketHandle, type RunRequest, type RunSources, type RunStartedEvent, type RunStatus, RunnerAdapterNotFoundError, RunnerNotConfiguredError, type RuntimeState, type RuntimeStateFile, SCENARIOS_INDEX_DIR, SCENARIOS_LATEST_FILE, SCENARIO_RECENT_WINDOW, SECRETS_FILE, SEGMENT_NAME_FORBIDDEN_RE, SNAPSHOTS_SUBDIR, STDERR_FILE, STDOUT_FILE, STEPS_FILE, type ScenarioAnnotations, type ScenarioLatestEntry, type ScenarioMeta, type ScenarioRunRequest, type ScenarioRunTab, type ScenarioTab, type ScenariosLatest, type ScenariosPayload, type ScheduleEntry, type ScreenshotEvent, type SnapshotTab, type StepFailEvent, type StepOkEvent, type StepStartedEvent, TERMINAL_RUNTIME_STATES, TERMINAL_WS_EVENT, type TabKind, type TabKindName, type TerminalClientMessage, type TerminalCloseMessage, type TerminalDataMessage, type TerminalErrorMessage, type TerminalExitMessage, type TerminalKind, type TerminalOutputMessage, type TerminalResizeMessage, type TerminalServerMessage, type TerminalSpawnMessage, type ToolCallEvent, type ToolResultEvent, UNOTEST_DIR, UnplaceableRunIdError, UnsupportedRunKindError, type VariableCategory, type VariableKind, type VariablePlanError, WORKSPACE_FILE, WORKSPACE_SCHEMA_VERSION, type WheelChangedEvent, type WorkspaceBundle, type WorkspaceFile, type WsMessage, type WsMessageKind, activeEnvName, artifactsRootFrom, blobPathFor, blobRelPathFor, blobRelSegmentsFor, blobsRootFor, categorizeVariable, compareQueueTicketNames, debugDirFor, debuggerFileFor, deleteShadowWarning, describeBundle, describeTicketCi, envFileFor, envKeys, envLayerFilesFor, envNamesFromDirListing, foldScenarioRun, insertEnvVar, isAnnotationLine, isExternalVarName, isFailingStatus, isQueueDirName, isRecord, isRegexLiteral, isRunnerConfigKey, isRunsDirName, isTerminalRuntimeState, makeQueueTicketName, makeRunId, parseAppServerEvent, parseBundleManifest, parseBundleUploadResponse, parseCiProvider, parseCiRunRequest, parseCiRunResponse, parseEnvContent, parseQueueTicket, parseQueueTicketName, parseScenarioAnnotations, parseScheduleEntry, parseSchedulesJson, parseWorkspaceFile, planAddVariable, projectQueueRoot, projectRunDirFor, projectRunsRoot, queueDirFor, queuePriorityFromRank, queuePriorityRank, regexLiteral, removeEnvVar, requireRunDirFor, runDirFor, runIdStartedAt, runsDirFor, sanitizeRunIdSegment, scenarioIndexFileName, scenarioRefFromFileName, secretsFileFor, secretsLayerFilesFor, serializeEnvValue, shardDaysDescending, shardDirFor, shardPathForRunId, shardPathForTimestamp, testDirFor, validateCollectionName, validateSegmentName };
2450
+ export { ARTIFACTS_ROOT_ENV, type AddVariablePlan, type AddVariablePlanInput, type AppPathPickerSpec, type AppServerEvent, type AuthoringRunRequest, BLOBS_DIR, BOX_TOKEN_ENV, BOX_URL_ENV, BUNDLE_ID_ENV, BUNDLE_MANIFEST_FILE, BUNDLE_SCHEMA_VERSION, BUNDLE_UPLOAD_PATH, type BreakpointEntry, type BreakpointsFile, type BundleGitInfo, type BundleManifest, type BundleUploadError, type BundleUploadErrorCode, type BundleUploadOk, type BundleUploadResponse, type BundleUploadStatus, type BundleVariableGap, CI_RUN_PATH, COLLECTIONS_SUBDIR, COLLECTION_NAME_FORBIDDEN_RE, COMMANDS_FILE, type CheckSeverity, type CiProviderId, type CiQueuedRun, type CiRunAccepted, type CiRunError, type CiRunErrorCode, type CiRunRequest, type CiRunResponse, type CollectionMeta, type CollectionRunArtifact, type CollectionRunFinishedEvent, type CollectionRunRequest, type CollectionRunStartedEvent, type CollectionRunTab, type CollectionScenarioFinishedEvent, type CollectionScenarioStartedEvent, type CollectionScheduleEntry, type CollectionTab, DAY_INDEX_FILE, DAY_SHORT, type DbgCommand, type DbgCommandAbort, type DbgCommandClearBp, type DbgCommandContinue, type DbgCommandKind, type DbgCommandPause, type DbgCommandPickerStart, type DbgCommandPickerStop, type DbgCommandProbe, type DbgCommandRecord, type DbgCommandSetBp, type DbgCommandSnapshot, type DbgCommandStep, type DbgCommandWheel, type DebugCapabilities, type DoctorCheck, type DoctorContext, type DslDiagnostic, type DslValidateContext, type DslVocabArg, type DslVocabCategory, type DslVocabEntry, E2E_SUBDIR, ENV_FILE, EXPECT_FAIL_ANNOTATION, type EnqueueRunInput, type EnvChangedMessage, type EnvFile, type EnvUpdate, type EnvVar, type ErrorMessage, FREQ_FIELDS, type FailureBundleWrittenEvent, type FsBreakpointsChangedMessage, type FsCollectionRunStepMessage, type FsCollectionsChangedMessage, type FsHelpersChangedMessage, type FsRunFinishedMessage, type FsRunStartedMessage, type FsRunStepMessage, type FsScenariosChangedMessage, HEARTBEAT_FILE, HELPERS_SUBDIR, type HelperMeta, type HelperTab, type HostRequirement, type IDslLanguageService, type ILaunchedProcess, type IProcessLauncher, type IRunQueue, type IRunnerAdapter, InvalidBlobHashError, JUDGE_ENV, JUDGE_ROUTES, type JudgeErrorResponse, type JudgeHealthResponse, type JudgeRequest, type JudgeVerdict, type JudgeVerdictEvent, LOCK_FILE, LOG_FILE, type LaunchSpec, type LocatorPickedEvent, type LockFile, type LogLineMessage, type Matcher, type OverviewTab, PICKER_SNAPSHOT_FILE, type ParsedTicketName, type PausedEvent, type PickerMode, type ProbeMatch, type ProbePinned, type ProbeResult, type ProbeResultEvent, QUEUE_DISABLED_ENV, QUEUE_GLOBAL_DIR_ENV, QUEUE_GLOBAL_SLOTS_ENV, QUEUE_LEASE_ENV, QUEUE_MUTEX_FILE, QUEUE_PRIORITIES, QUEUE_RUNNING_DIR, QUEUE_SCHEMA_VERSION, QUEUE_SLOTS_DIR, QUEUE_SUBDIR, QUEUE_TICKETS_DIR, type QueueChangedMessage, type QueueEntry, type QueuePoolState, type QueuePriority, type QueueProducer, type QueueProducerKind, type QueueSnapshot, type QueueTicket, type QueueTicketCi, type QueueTicketKind, type QueueTicketSource, RUNNER_CONFIG_KEYS, RUNS_SUBDIR, RUNTIME_FILE, RUN_INDEX_SCHEMA_VERSION, RUN_MANIFEST_FILE, RUN_SOURCES_FILE, type RecordedActionKind, type RegexLiteral, type ResumedEvent, type RunArtifact, type RunFinishedEvent, type RunId, type RunIndexEntry, type RunIndexHeader, type RunKind, type RunManifest, type RunMeta, type RunOutcome, type RunQueueLease, type RunQueueTicketHandle, type RunRequest, type RunSources, type RunStartedEvent, type RunStatus, RunnerAdapterNotFoundError, RunnerNotConfiguredError, type RuntimeState, type RuntimeStateFile, SCENARIOS_INDEX_DIR, SCENARIOS_LATEST_FILE, SCENARIO_RECENT_WINDOW, SCHEDULES_FILE, SCHEDULES_FINGERPRINT_ENV, SECRETS_FILE, SEGMENT_NAME_FORBIDDEN_RE, SNAPSHOTS_SUBDIR, STDERR_FILE, STDOUT_FILE, STEPS_FILE, type ScenarioAnnotations, type ScenarioLatestEntry, type ScenarioMeta, type ScenarioRunRequest, type ScenarioRunTab, type ScenarioScheduleEntry, type ScenarioTab, type ScenariosLatest, type ScenariosPayload, type ScheduleEntry, type ScheduleFreq, type ScheduleSpec, type ScreenshotEvent, type SnapshotTab, type StepFailEvent, type StepOkEvent, type StepStartedEvent, TERMINAL_RUNTIME_STATES, TERMINAL_WS_EVENT, type TabKind, type TabKindName, type TerminalClientMessage, type TerminalCloseMessage, type TerminalDataMessage, type TerminalErrorMessage, type TerminalExitMessage, type TerminalKind, type TerminalOutputMessage, type TerminalResizeMessage, type TerminalServerMessage, type TerminalSpawnMessage, type ToolCallEvent, type ToolResultEvent, UNOTEST_DIR, UnplaceableRunIdError, UnsupportedRunKindError, type VariableCategory, type VariableKind, type VariablePlanError, WEEK_CHIP_ORDER, WORKSPACE_FILE, WORKSPACE_SCHEMA_VERSION, type WheelChangedEvent, type WorkspaceBundle, type WorkspaceFile, type WsMessage, type WsMessageKind, activeEnvName, artifactsRootFrom, blobPathFor, blobRelPathFor, blobRelSegmentsFor, blobsRootFor, canonicalScheduleSet, categorizeVariable, compareQueueTicketNames, cronFromSpec, debugDirFor, debuggerFileFor, deleteShadowWarning, describeBundle, describeCron, describeSpec, describeTicketCi, envFileFor, envKeys, envLayerFilesFor, envNamesFromDirListing, foldScenarioRun, formatNextTick, insertEnvVar, isAnnotationLine, isExternalVarName, isFailingStatus, isQueueDirName, isRecord, isRegexLiteral, isRunnerConfigKey, isRunsDirName, isTerminalRuntimeState, makeQueueTicketName, makeRunId, mergeSchedules, nextTickFromSpec, parseAppServerEvent, parseBundleManifest, parseBundleUploadResponse, parseCiProvider, parseCiRunRequest, parseCiRunResponse, parseEnvContent, parseQueueTicket, parseQueueTicketName, parseScenarioAnnotations, parseScheduleEntry, parseSchedulesDoc, parseSchedulesJson, parseWorkspaceFile, planAddVariable, projectQueueRoot, projectRunDirFor, projectRunsRoot, queueDirFor, queuePriorityFromRank, queuePriorityRank, regexLiteral, removeEnvVar, requireRunDirFor, runDirFor, runIdStartedAt, runsDirFor, sanitizeRunIdSegment, scenarioIndexFileName, scenarioRefFromFileName, scheduleTarget, secretsFileFor, secretsLayerFilesFor, serializeEnvValue, shardDaysDescending, shardDirFor, shardPathForRunId, shardPathForTimestamp, specFromCron, testDirFor, validateCollectionName, validateSegmentName };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- const _0x705370=_0x4252;(function(_0x54fd00,_0x1b09a1){const _0x2fd5a8={_0x193be1:0x157,_0x1532e5:0x17a,_0x2edd52:0x10a,_0x337238:0x127,_0x1bc460:0x10e,_0x175a6f:0x114,_0x19be48:0x1a5,_0x563692:0x12b},_0x2bdb0e=_0x4252,_0x577da5=_0x54fd00();while(!![]){try{const _0x142552=parseInt(_0x2bdb0e(_0x2fd5a8._0x193be1))/0x1*(-parseInt(_0x2bdb0e(_0x2fd5a8._0x1532e5))/0x2)+-parseInt(_0x2bdb0e(0x1ae))/0x3*(parseInt(_0x2bdb0e(_0x2fd5a8._0x2edd52))/0x4)+-parseInt(_0x2bdb0e(0x186))/0x5*(parseInt(_0x2bdb0e(0x103))/0x6)+parseInt(_0x2bdb0e(_0x2fd5a8._0x337238))/0x7*(parseInt(_0x2bdb0e(0xd0))/0x8)+parseInt(_0x2bdb0e(_0x2fd5a8._0x1bc460))/0x9*(parseInt(_0x2bdb0e(_0x2fd5a8._0x175a6f))/0xa)+-parseInt(_0x2bdb0e(_0x2fd5a8._0x19be48))/0xb*(-parseInt(_0x2bdb0e(_0x2fd5a8._0x563692))/0xc)+parseInt(_0x2bdb0e(0x19f))/0xd*(-parseInt(_0x2bdb0e(0xc8))/0xe);if(_0x142552===_0x1b09a1)break;else _0x577da5['push'](_0x577da5['shift']());}catch(_0x233444){_0x577da5['push'](_0x577da5['shift']());}}}(_0x2c65,0x4b807));var __defProp=Object[_0x705370(0xfa)],__name=(_0x1eca7d,_0x565f78)=>__defProp(_0x1eca7d,_0x705370(0xdd),{'value':_0x565f78,'configurable':!![]});function parseAppServerEvent(_0x454b09){const _0x4e2dd2={_0x50f617:0x116},_0x17cf14=_0x705370,_0x2dedc7=_0x454b09[_0x17cf14(0xdc)]();if(!_0x2dedc7['startsWith']('{'))return null;try{const _0x3c9c4f=JSON['parse'](_0x2dedc7);if(_0x3c9c4f[_0x17cf14(0x116)]==='app-server:ready'||_0x3c9c4f[_0x17cf14(0x116)]===_0x17cf14(0x14c)||_0x3c9c4f[_0x17cf14(_0x4e2dd2._0x50f617)]===_0x17cf14(0x13f))return _0x3c9c4f;return null;}catch{return null;}}__name(parseAppServerEvent,_0x705370(0x101));function isRecord(_0x11a723){const _0x5912d3=_0x705370;return typeof _0x11a723===_0x5912d3(0xc0)&&_0x11a723!==null&&!Array[_0x5912d3(0x18f)](_0x11a723);}__name(isRecord,_0x705370(0xff));var UNOTEST_DIR=_0x705370(0x18d),E2E_SUBDIR='e2e',HELPERS_SUBDIR='_helpers',COLLECTIONS_SUBDIR=_0x705370(0x174),RUNS_SUBDIR=_0x705370(0xe0),SNAPSHOTS_SUBDIR=_0x705370(0xf1);function testDirFor(_0x3850c5){return''+E2E_SUBDIR+_0x3850c5;}__name(testDirFor,'testDirFor');function runsDirFor(_0x2cf097,_0x182864){return''+RUNS_SUBDIR+_0x2cf097+(_0x182864?'.'+_0x182864:'');}__name(runsDirFor,'runsDirFor');function isRunsDirName(_0x5de615){const _0x411e87=_0x705370;return _0x5de615===RUNS_SUBDIR||_0x5de615[_0x411e87(0x145)](RUNS_SUBDIR+'-')||_0x5de615['startsWith'](RUNS_SUBDIR+'.');}__name(isRunsDirName,_0x705370(0x185));function debugDirFor(_0x1ca785){return'.debug'+_0x1ca785;}__name(debugDirFor,_0x705370(0x105));function debuggerFileFor(_0x2ed65e){const _0x3c7a1f=_0x705370;return UNOTEST_DIR+_0x3c7a1f(0x190)+_0x2ed65e+_0x3c7a1f(0x11f);}__name(debuggerFileFor,_0x705370(0x191));var LOCK_FILE=_0x705370(0xe5),LOG_FILE=_0x705370(0xfc),STEPS_FILE=_0x705370(0x171),HEARTBEAT_FILE=_0x705370(0x173),DAY_INDEX_FILE=_0x705370(0xeb),SCENARIOS_INDEX_DIR='_scenarios',SCENARIOS_LATEST_FILE=_0x705370(0xd6),STDOUT_FILE=_0x705370(0x15a),STDERR_FILE='stderr.log',COMMANDS_FILE=_0x705370(0xda),RUNTIME_FILE=_0x705370(0x1af),PICKER_SNAPSHOT_FILE=_0x705370(0xef),ENV_FILE=_0x705370(0x112),SECRETS_FILE=_0x705370(0x136);function envFileFor(_0x5b69f1,_0x42f12f){return''+ENV_FILE+_0x5b69f1+(_0x42f12f?'.'+_0x42f12f:'');}__name(envFileFor,_0x705370(0x153));function secretsFileFor(_0x181c56,_0x3e00d6){return''+SECRETS_FILE+_0x181c56+(_0x3e00d6?'.'+_0x3e00d6:'');}__name(secretsFileFor,'secretsFileFor');function envLayerFilesFor(_0x51ec87,_0x433e3a){return layersFor(ENV_FILE,_0x51ec87,_0x433e3a);}__name(envLayerFilesFor,_0x705370(0xee));function secretsLayerFilesFor(_0x40b852,_0xb9d860){return layersFor(SECRETS_FILE,_0x40b852,_0xb9d860);}__name(secretsLayerFilesFor,'secretsLayerFilesFor');function layersFor(_0x370fd9,_0x59c9b5,_0x7ca320){const _0x467912={_0x379597:0x130},_0x565662=_0x705370,_0x4e4e1b=[_0x370fd9];if(_0x59c9b5)_0x4e4e1b['push'](''+_0x370fd9+_0x59c9b5);if(_0x7ca320){_0x4e4e1b['push'](_0x370fd9+'.'+_0x7ca320);if(_0x59c9b5)_0x4e4e1b[_0x565662(_0x467912._0x379597)](''+_0x370fd9+_0x59c9b5+'.'+_0x7ca320);}return _0x4e4e1b;}__name(layersFor,_0x705370(0x1b5));var ARTIFACTS_ROOT_ENV='UNOTEST_ARTIFACTS_ROOT';function artifactsRootFrom(_0x20ee75,_0x5096ee){const _0x486dd3=_0x20ee75[ARTIFACTS_ROOT_ENV]?.['trim']();return _0x486dd3?_0x486dd3:_0x5096ee;}__name(artifactsRootFrom,_0x705370(0x199));function activeEnvName(_0x2b5d16){const _0x54f386={_0x42d4b9:0xdc},_0x5e7ee6=_0x705370,_0x3a10cd=_0x2b5d16[_0x5e7ee6(0x133)]?.[_0x5e7ee6(_0x54f386._0x42d4b9)]();return _0x3a10cd?_0x3a10cd:void 0x0;}__name(activeEnvName,_0x705370(0x187));var RESERVED_ENV_NAMES=new Set(['example','sample',_0x705370(0x178)]);function envNamesFromDirListing(_0x27e696,_0x1f38d6){const _0x2d572f={_0x11ce8:0xf3,_0x2c6df1:0x145,_0x2e5226:0x1b9,_0x370aa9:0x131,_0x5efd86:0x17e},_0x4a395d=_0x705370,_0xcbc4ea=[_0x4a395d(_0x2d572f._0x11ce8),_0x4a395d(0x14e)]['flatMap'](_0x3c153f=>_0x1f38d6?[_0x3c153f,''+_0x3c153f+_0x1f38d6]:[_0x3c153f]),_0x10edc3=new Set();for(const _0xae6d17 of _0x27e696){for(const _0x3a58c1 of _0xcbc4ea){const _0x376a9d=_0x3a58c1+'.';if(!_0xae6d17[_0x4a395d(_0x2d572f._0x2c6df1)](_0x376a9d))continue;const _0x2d8c8a=_0xae6d17[_0x4a395d(_0x2d572f._0x2e5226)](_0x376a9d[_0x4a395d(_0x2d572f._0x370aa9)]);if(!_0x2d8c8a||_0x2d8c8a['includes']('/'))continue;if(RESERVED_ENV_NAMES[_0x4a395d(_0x2d572f._0x5efd86)](_0x2d8c8a))continue;_0x10edc3[_0x4a395d(0x166)](_0x2d8c8a);}}return[..._0x10edc3]['sort']();}__name(envNamesFromDirListing,_0x705370(0x19d));function isRegexLiteral(_0x10a5d3){const _0x46e4f4={_0x8a40e7:0x116,_0x34035d:0x162,_0x4f8e21:0x14b,_0x2e979f:0x15b},_0x276f26=_0x705370;return typeof _0x10a5d3===_0x276f26(0xc0)&&_0x10a5d3!==null&&_0x10a5d3[_0x276f26(_0x46e4f4._0x8a40e7)]===_0x276f26(_0x46e4f4._0x34035d)&&typeof _0x10a5d3[_0x276f26(_0x46e4f4._0x4f8e21)]===_0x276f26(_0x46e4f4._0x2e979f)&&typeof _0x10a5d3[_0x276f26(0x12c)]==='string';}function _0x4252(_0x33b801,_0x2fe28b){_0x33b801=_0x33b801-0xc0;const _0x2c65a9=_0x2c65();let _0x4252f4=_0x2c65a9[_0x33b801];if(_0x4252['EwHWNv']===undefined){var _0x31bf7f=function(_0x5a4f8d){const _0x53c709='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1eca7d='',_0x565f78='';for(let _0x454b09=0x0,_0x2dedc7,_0x3c9c4f,_0x11a723=0x0;_0x3c9c4f=_0x5a4f8d['charAt'](_0x11a723++);~_0x3c9c4f&&(_0x2dedc7=_0x454b09%0x4?_0x2dedc7*0x40+_0x3c9c4f:_0x3c9c4f,_0x454b09++%0x4)?_0x1eca7d+=String['fromCharCode'](0xff&_0x2dedc7>>(-0x2*_0x454b09&0x6)):0x0){_0x3c9c4f=_0x53c709['indexOf'](_0x3c9c4f);}for(let _0x3850c5=0x0,_0x2cf097=_0x1eca7d['length'];_0x3850c5<_0x2cf097;_0x3850c5++){_0x565f78+='%'+('00'+_0x1eca7d['charCodeAt'](_0x3850c5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x565f78);};_0x4252['YfqTFj']=_0x31bf7f,_0x4252['hWsJQd']={},_0x4252['EwHWNv']=!![];}const _0x32fe32=_0x2c65a9[0x0],_0x347854=_0x33b801+_0x32fe32,_0x22f3c3=_0x4252['hWsJQd'][_0x347854];return!_0x22f3c3?(_0x4252f4=_0x4252['YfqTFj'](_0x4252f4),_0x4252['hWsJQd'][_0x347854]=_0x4252f4):_0x4252f4=_0x22f3c3,_0x4252f4;}__name(isRegexLiteral,'isRegexLiteral');function regexLiteral(_0x34d369,_0x5efe34=''){const _0x5808a1={_0x418bef:0x162},_0xc304f4=_0x705370;return{'kind':_0xc304f4(_0x5808a1._0x418bef),'source':_0x34d369,'flags':_0x5efe34};}__name(regexLiteral,_0x705370(0xce));var RAND_BYTES=0x6;function makeRunId(_0x20712f){const _0x6084d6={_0x409c6c:0x142,_0x38fb42:0x104},_0x3304a3=_0x705370,_0x255f5e=sanitizeRunIdSegment(_0x20712f),_0xf10482=Date[_0x3304a3(_0x6084d6._0x409c6c)]()['toString'](0x24),_0xc2c4a0=new Uint8Array(RAND_BYTES);globalThis[_0x3304a3(0x1b7)][_0x3304a3(0xe2)](_0xc2c4a0);let _0x135faa='';for(let _0xcdae8=0x0;_0xcdae8<_0xc2c4a0['length'];_0xcdae8++){_0x135faa+=_0xc2c4a0[_0xcdae8][_0x3304a3(_0x6084d6._0x38fb42)](0x10)['padStart'](0x2,'0');}return _0x255f5e+'-'+_0xf10482+'-'+_0x135faa;}__name(makeRunId,_0x705370(0x129));function sanitizeRunIdSegment(_0x399820){const _0x21248b={_0x9df7be:0x15f},_0x54c42d=_0x705370,_0x4eecde=_0x399820[_0x54c42d(_0x21248b._0x9df7be)](/[^a-zA-Z0-9_-]+/g,'-')[_0x54c42d(0x15f)](/-+/g,'-')['replace'](/^-|-$/g,'');return _0x4eecde[_0x54c42d(0x131)]>0x0?_0x4eecde:_0x54c42d(0x195);}__name(sanitizeRunIdSegment,'sanitizeRunIdSegment');var RANDOM_SUFFIX_RE=/^[0-9a-f]{6,}$/,MIN_PLAUSIBLE_MS=Date[_0x705370(0xca)](0x7e4,0x0,0x1),MAX_PLAUSIBLE_MS=Date[_0x705370(0xca)](0x834,0x0,0x1);function runIdStartedAt(_0x5bc1cd){const _0x299610={_0x40ccf6:0xc9,_0x3a4c5d:0x131,_0x460899:0x1be,_0x5afe58:0x11b},_0x1ad23=_0x705370,_0x2a77e2=_0x5bc1cd[_0x1ad23(_0x299610._0x40ccf6)]('-');if(_0x2a77e2['length']<0x3)return null;const _0x2b1a74=_0x2a77e2[_0x2a77e2[_0x1ad23(_0x299610._0x3a4c5d)]-0x1];if(!RANDOM_SUFFIX_RE[_0x1ad23(0x1be)](_0x2b1a74))return null;const _0x342796=_0x2a77e2[_0x2a77e2[_0x1ad23(0x131)]-0x2];if(!/^[0-9a-z]+$/[_0x1ad23(_0x299610._0x460899)](_0x342796))return null;const _0x5d4d5e=parseInt(_0x342796,0x24);if(!Number[_0x1ad23(_0x299610._0x5afe58)](_0x5d4d5e))return null;if(_0x5d4d5e<MIN_PLAUSIBLE_MS||_0x5d4d5e>=MAX_PLAUSIBLE_MS)return null;return _0x5d4d5e;}__name(runIdStartedAt,_0x705370(0x108));function shardPathForTimestamp(_0x133eb0){const _0x138a12={_0x14e349:0xfd,_0xf862d8:0x123,_0x24fa3c:0x16b},_0x2247d2=_0x705370,_0x26abb9=new Date(_0x133eb0),_0x134d8a=String(_0x26abb9[_0x2247d2(_0x138a12._0x14e349)]())[_0x2247d2(_0x138a12._0xf862d8)](0x4,'0'),_0x2f0f5c=String(_0x26abb9['getUTCMonth']()+0x1)[_0x2247d2(0x123)](0x2,'0'),_0x34ef05=String(_0x26abb9[_0x2247d2(_0x138a12._0x24fa3c)]())[_0x2247d2(_0x138a12._0xf862d8)](0x2,'0');return _0x134d8a+'/'+_0x2f0f5c+'/'+_0x34ef05;}__name(shardPathForTimestamp,_0x705370(0x17b));function shardPathForRunId(_0x2333b6){const _0x4db7bf=runIdStartedAt(_0x2333b6);return _0x4db7bf===null?null:shardPathForTimestamp(_0x4db7bf);}__name(shardPathForRunId,_0x705370(0xea));function runDirFor(_0x23679b,_0x1f9e61){const _0x27e64f=shardPathForRunId(_0x1f9e61);return _0x27e64f===null?null:_0x23679b+'/'+_0x27e64f+'/'+_0x1f9e61;}__name(runDirFor,'runDirFor');var UnplaceableRunIdError=class extends Error{static{__name(this,_0x705370(0x13a));}constructor(_0x1794cf){const _0x4dc26d={_0x116f9b:0x128,_0x338051:0x13a},_0x4ca739=_0x705370;super(_0x4ca739(_0x4dc26d._0x116f9b)+_0x1794cf),this['name']=_0x4ca739(_0x4dc26d._0x338051);}};function requireRunDirFor(_0x470059,_0x5a21b2){const _0x1b937e=runDirFor(_0x470059,_0x5a21b2);if(_0x1b937e===null)throw new UnplaceableRunIdError(_0x5a21b2);return _0x1b937e;}__name(requireRunDirFor,'requireRunDirFor');function projectRunsRoot(_0x260a60='',_0x61416){return UNOTEST_DIR+'/'+runsDirFor(_0x260a60,_0x61416);}__name(projectRunsRoot,'projectRunsRoot');function projectRunDirFor(_0x5e6f54,_0x3331ec='',_0x1736e4){return requireRunDirFor(projectRunsRoot(_0x3331ec,_0x1736e4),_0x5e6f54);}__name(projectRunDirFor,'projectRunDirFor');function shardDirFor(_0x54e960,_0x3c1027){return _0x54e960+'/'+shardPathForTimestamp(_0x3c1027);}__name(shardDirFor,'shardDirFor');function*shardDaysDescending(_0x191d2d,_0x461267,_0x44c0bd){const _0x955308={_0x4c1fcd:0xd9},_0x303784=_0x705370,_0x4d5921=0x5265c00;let _0x684954=Math[_0x303784(_0x955308._0x4c1fcd)](_0x461267/_0x4d5921)*_0x4d5921;for(let _0x499c9a=0x0;_0x499c9a<_0x44c0bd;_0x499c9a++){yield shardDirFor(_0x191d2d,_0x684954),_0x684954-=_0x4d5921;}}__name(shardDaysDescending,_0x705370(0x18c));var RUN_INDEX_SCHEMA_VERSION=0x2,SCENARIO_RECENT_WINDOW=0xc;function isFailingStatus(_0x2b17b4){const _0x51632e={_0x4f24ae:0x16c},_0x9d2f0a=_0x705370;return _0x2b17b4==='failed'||_0x2b17b4===_0x9d2f0a(_0x51632e._0x4f24ae);}__name(isFailingStatus,'isFailingStatus');function foldScenarioRun(_0x2d36df,_0x1f839c){const _0x514926={_0x401cba:0x148,_0x147b79:0x172,_0x205300:0x134,_0x3c2274:0x155,_0x3711a1:0x1b9,_0x464663:0x155,_0x5bb8b6:0xc4,_0x49ec1c:0x126},_0xe37255=_0x705370,_0x1da825={'lastRunId':_0x1f839c[_0xe37255(_0x514926._0x401cba)],'lastStatus':_0x1f839c[_0xe37255(0x155)],'lastAt':_0x1f839c[_0xe37255(_0x514926._0x147b79)],'lastDurationMs':_0x1f839c['durationMs'],'recent':[..._0x2d36df?.[_0xe37255(_0x514926._0x205300)]??[],_0x1f839c[_0xe37255(_0x514926._0x3c2274)]][_0xe37255(_0x514926._0x3711a1)](-SCENARIO_RECENT_WINDOW)};if(!isFailingStatus(_0x1f839c[_0xe37255(_0x514926._0x464663)]))return{..._0x1da825,'failStreak':0x0,'failingSince':null};const _0x325969=(_0x2d36df?.[_0xe37255(_0x514926._0x5bb8b6)]??0x0)+0x1;return{..._0x1da825,'failStreak':_0x325969,'failingSince':_0x325969===0x1?_0x1f839c[_0xe37255(0x172)]:_0x2d36df?.[_0xe37255(_0x514926._0x49ec1c)]??_0x1f839c[_0xe37255(0x172)]};}__name(foldScenarioRun,'foldScenarioRun');function scenarioIndexFileName(_0x1d0142){const _0x43d26e={_0x4157c3:0x159},_0x39c28f=_0x705370;return encodeURIComponent(_0x1d0142)+_0x39c28f(_0x43d26e._0x4157c3);}__name(scenarioIndexFileName,_0x705370(0x1a7));function scenarioRefFromFileName(_0x370f6c){const _0x4fd705={_0x5200c6:0x1a3,_0x1a5f54:0x159,_0x489c6f:0x1b9,_0x3681e7:0x131},_0x47bd48=_0x705370;if(!_0x370f6c[_0x47bd48(_0x4fd705._0x5200c6)](_0x47bd48(_0x4fd705._0x1a5f54)))return null;try{return decodeURIComponent(_0x370f6c[_0x47bd48(_0x4fd705._0x489c6f)](0x0,-_0x47bd48(0x159)[_0x47bd48(_0x4fd705._0x3681e7)]));}catch{return null;}}__name(scenarioRefFromFileName,_0x705370(0xed));var CI_RUN_PATH=_0x705370(0xe1),PROVIDER_IDS=[_0x705370(0xc7),'gitlab',_0x705370(0x1a2)],RUN_ERROR_CODES=['unauthorized',_0x705370(0x10f),_0x705370(0x181),_0x705370(0x1bf),_0x705370(0x18b),_0x705370(0x165),_0x705370(0xfe)];function parseCiRunRequest(_0x2e4d2b){const _0x592eef={_0x2fbb77:0x131,_0x10944d:0x131,_0x570a4f:0x18f,_0x1f96e8:0x15b,_0xc11240:0x15b,_0x2b7926:0x15b},_0x350ecf=_0x705370;if(!isRecord(_0x2e4d2b))return null;const {bundleId:_0x43b57c,environment:_0x301c97,collections:_0x32c751,pr:_0xad2bfc,branch:_0x1a6ba0,sha:_0x1acfb3}=_0x2e4d2b;if(typeof _0x43b57c!==_0x350ecf(0x15b)||_0x43b57c[_0x350ecf(_0x592eef._0x2fbb77)]===0x0)return null;if(typeof _0x301c97!==_0x350ecf(0x15b)||_0x301c97[_0x350ecf(_0x592eef._0x10944d)]===0x0)return null;let _0x5a0234=null;if(_0x32c751!==void 0x0){if(!Array[_0x350ecf(_0x592eef._0x570a4f)](_0x32c751))return null;if(_0x32c751[_0x350ecf(0xf7)](_0x13bc4b=>typeof _0x13bc4b!=='string'||_0x13bc4b['length']===0x0))return null;_0x5a0234=_0x32c751;}if(_0xad2bfc!==void 0x0&&(typeof _0xad2bfc!=='number'||!Number[_0x350ecf(0x13d)](_0xad2bfc)))return null;for(const _0x404fab of[_0x1a6ba0,_0x1acfb3]){if(_0x404fab!==void 0x0&&typeof _0x404fab!==_0x350ecf(_0x592eef._0x1f96e8))return null;}return{'bundleId':_0x43b57c,'environment':_0x301c97,..._0x5a0234?{'collections':_0x5a0234}:{},...typeof _0xad2bfc===_0x350ecf(0x1b2)?{'pr':_0xad2bfc}:{},...typeof _0x1a6ba0===_0x350ecf(_0x592eef._0xc11240)?{'branch':_0x1a6ba0}:{},...typeof _0x1acfb3===_0x350ecf(_0x592eef._0x2b7926)?{'sha':_0x1acfb3}:{}};}__name(parseCiRunRequest,_0x705370(0x1ac));function parseCiRunResponse(_0x126527){const _0x400ae4={_0x159cfc:0x15b,_0x533a63:0x15c,_0x4175bc:0x130,_0x1363e4:0x1b2},_0x6fa91e=_0x705370;if(!isRecord(_0x126527))return null;if(isRecord(_0x126527['error'])){const {code:_0x59bb5b,message:_0x248427}=_0x126527[_0x6fa91e(0x111)];if(!RUN_ERROR_CODES['includes'](_0x59bb5b))return null;if(typeof _0x248427!==_0x6fa91e(_0x400ae4._0x159cfc))return null;return{'error':{'code':_0x59bb5b,'message':_0x248427}};}const {status:_0x51e85e,bundleId:_0x4b89db,environment:_0x5063cc,runs:_0x59106c,superseded:_0x3cbb1c}=_0x126527;if(_0x51e85e!==_0x6fa91e(_0x400ae4._0x533a63))return null;if(typeof _0x4b89db!==_0x6fa91e(0x15b)||typeof _0x5063cc!==_0x6fa91e(0x15b))return null;if(!Array[_0x6fa91e(0x18f)](_0x59106c))return null;const _0x27b151=[];for(const _0x557780 of _0x59106c){if(!isRecord(_0x557780))return null;const {runId:_0x38a58d,collection:_0x4262ee}=_0x557780;if(typeof _0x38a58d!==_0x6fa91e(0x15b)||typeof _0x4262ee!==_0x6fa91e(_0x400ae4._0x159cfc))return null;_0x27b151[_0x6fa91e(_0x400ae4._0x4175bc)]({'runId':_0x38a58d,'collection':_0x4262ee});}if(_0x3cbb1c!==void 0x0&&typeof _0x3cbb1c!==_0x6fa91e(_0x400ae4._0x1363e4))return null;return{'status':_0x6fa91e(0x15c),'bundleId':_0x4b89db,'environment':_0x5063cc,'runs':_0x27b151,...typeof _0x3cbb1c==='number'?{'superseded':_0x3cbb1c}:{}};}__name(parseCiRunResponse,_0x705370(0xf2));function parseCiProvider(_0x40e25b){return PROVIDER_IDS['includes'](_0x40e25b)?_0x40e25b:null;}__name(parseCiProvider,_0x705370(0x132));var QUEUE_SUBDIR=_0x705370(0x198),QUEUE_TICKETS_DIR='tickets',QUEUE_RUNNING_DIR=_0x705370(0x13e),QUEUE_SLOTS_DIR=_0x705370(0xd5),QUEUE_MUTEX_FILE='.mutex',QUEUE_LEASE_ENV=_0x705370(0x15e),QUEUE_DISABLED_ENV=_0x705370(0x182),QUEUE_GLOBAL_DIR_ENV='UNOTEST_QUEUE_GLOBAL_DIR',QUEUE_GLOBAL_SLOTS_ENV=_0x705370(0xf4),QUEUE_SCHEMA_VERSION=0x1;function queueDirFor(_0x2e3b97,_0x2952cf){return''+QUEUE_SUBDIR+_0x2e3b97+(_0x2952cf?'.'+_0x2952cf:'');}__name(queueDirFor,_0x705370(0x146));function isQueueDirName(_0x458d96){const _0x4fcb7c=_0x705370;return _0x458d96===QUEUE_SUBDIR||_0x458d96[_0x4fcb7c(0x145)](QUEUE_SUBDIR+'-')||_0x458d96[_0x4fcb7c(0x145)](QUEUE_SUBDIR+'.');}__name(isQueueDirName,_0x705370(0xe3));function projectQueueRoot(_0x4d6507='',_0xdc9500){return UNOTEST_DIR+'/'+queueDirFor(_0x4d6507,_0xdc9500);}__name(projectQueueRoot,_0x705370(0x1b8));var PRIORITY_RANKS=Object[_0x705370(0xe7)]({'maintenance':0x0,'interactive':0x1,'ci':0x2,'schedule':0x3}),RANK_PRIORITIES=[_0x705370(0xc1),'interactive','ci','schedule'],QUEUE_PRIORITIES=RANK_PRIORITIES;function queuePriorityRank(_0x102cff){return PRIORITY_RANKS[_0x102cff];}__name(queuePriorityRank,_0x705370(0x14f));function queuePriorityFromRank(_0x274972){return RANK_PRIORITIES[_0x274972]??null;}__name(queuePriorityFromRank,_0x705370(0x170));function describeTicketCi(_0x1c8302){const _0x10d6db={_0x4e76fc:0x11d,_0x48ccbc:0x1b9,_0x73a244:0xcc},_0x5c25aa=_0x705370,_0x10d889=_0x1c8302[_0x5c25aa(0x11d)]?'@'+_0x1c8302[_0x5c25aa(_0x10d6db._0x4e76fc)][_0x5c25aa(_0x10d6db._0x48ccbc)](0x0,0x7):'';if(_0x1c8302['pr']!==void 0x0)return _0x5c25aa(0x1b4)+_0x1c8302['pr']+_0x10d889;if(_0x1c8302[_0x5c25aa(0xd2)]!==void 0x0)return''+_0x1c8302[_0x5c25aa(0xd2)]+_0x10d889;return _0x10d889[_0x5c25aa(0x131)]>0x0?_0x10d889[_0x5c25aa(0x1b9)](0x1):_0x1c8302[_0x5c25aa(_0x10d6db._0x73a244)];}__name(describeTicketCi,_0x705370(0x118));function makeQueueTicketName(_0x5316aa,_0x4bf8fe,_0x34582e){const _0x1482f0=_0x705370;return queuePriorityRank(_0x5316aa)+'-'+_0x4bf8fe['toString'](0x24)+'-'+_0x34582e+_0x1482f0(0x11f);}__name(makeQueueTicketName,'makeQueueTicketName');var TICKET_NAME_RE=/^([0-3])-([0-9a-z]+)-([0-9a-f]+)\.json$/;function parseQueueTicketName(_0x279854){const _0x4355b6={_0x412865:0x156},_0x3dab62=_0x705370,_0x4b3c93=TICKET_NAME_RE[_0x3dab62(_0x4355b6._0x412865)](_0x279854);if(!_0x4b3c93)return null;const _0x3b3b17=Number(_0x4b3c93[0x1]),_0x6354b7=queuePriorityFromRank(_0x3b3b17);if(_0x6354b7===null)return null;const _0x459fce=parseInt(_0x4b3c93[0x2],0x24);if(!Number[_0x3dab62(0x11b)](_0x459fce))return null;return{'rank':_0x3b3b17,'priority':_0x6354b7,'createdAt':_0x459fce,'random':_0x4b3c93[0x3]};}__name(parseQueueTicketName,_0x705370(0x109));function compareQueueTicketNames(_0x485e89,_0x328000){const _0x382b2d={_0x2eab77:0x11e,_0x20a92a:0x161},_0x318acb=_0x705370,_0x4bd624=parseQueueTicketName(_0x485e89),_0x390a52=parseQueueTicketName(_0x328000);if(!_0x4bd624||!_0x390a52)return _0x485e89<_0x328000?-0x1:_0x485e89>_0x328000?0x1:0x0;if(_0x4bd624[_0x318acb(_0x382b2d._0x2eab77)]!==_0x390a52[_0x318acb(0x11e)])return _0x4bd624['rank']-_0x390a52[_0x318acb(_0x382b2d._0x2eab77)];if(_0x4bd624['createdAt']!==_0x390a52[_0x318acb(_0x382b2d._0x20a92a)])return _0x4bd624['createdAt']-_0x390a52[_0x318acb(_0x382b2d._0x20a92a)];return _0x4bd624[_0x318acb(0x19a)]<_0x390a52['random']?-0x1:_0x4bd624['random']>_0x390a52[_0x318acb(0x19a)]?0x1:0x0;}__name(compareQueueTicketNames,_0x705370(0x106));var TICKET_KINDS=[_0x705370(0x12a),_0x705370(0x167),_0x705370(0xe4),_0x705370(0xc1)],PRODUCER_KINDS=['cli',_0x705370(0x15d),_0x705370(0x110),_0x705370(0x1ab),'ci'];function parseQueueTicket(_0x32bfc2){const _0x181a74={_0x4ded68:0x15b,_0x23d8f6:0xcb,_0x41ba1f:0x1b2,_0x5dfa10:0x11b,_0x94dd76:0xcb,_0x958597:0x116,_0x35c064:0x1c0,_0x221e3c:0x1b2,_0x4ed5dd:0x13b,_0x1f10c5:0x131},_0x2dedfa=_0x705370;if(!isRecord(_0x32bfc2))return null;const {schemaVersion:_0xf8d739,runId:_0x35d8b2,kind:_0x523033,ref:_0x2c9cda,env:_0x2f8e3f,priority:_0x5afb57,weight:_0x4da27c,producer:_0x31f2f5,source:_0x5315c4,ci:_0x902b08,createdAt:_0x171f28}=_0x32bfc2;if(_0xf8d739!==QUEUE_SCHEMA_VERSION)return null;if(typeof _0x35d8b2!==_0x2dedfa(0x15b)||_0x35d8b2[_0x2dedfa(0x131)]===0x0)return null;if(typeof _0x2c9cda!==_0x2dedfa(_0x181a74._0x4ded68))return null;if(!TICKET_KINDS[_0x2dedfa(0xcb)](_0x523033))return null;if(!QUEUE_PRIORITIES[_0x2dedfa(_0x181a74._0x23d8f6)](_0x5afb57))return null;if(typeof _0x4da27c!==_0x2dedfa(_0x181a74._0x41ba1f)||!Number[_0x2dedfa(_0x181a74._0x5dfa10)](_0x4da27c)||_0x4da27c<0x1)return null;if(typeof _0x171f28!=='number'||!Number[_0x2dedfa(_0x181a74._0x5dfa10)](_0x171f28))return null;if(!isRecord(_0x31f2f5))return null;if(!PRODUCER_KINDS[_0x2dedfa(_0x181a74._0x94dd76)](_0x31f2f5[_0x2dedfa(_0x181a74._0x958597)]))return null;if(typeof _0x31f2f5[_0x2dedfa(_0x181a74._0x35c064)]!==_0x2dedfa(_0x181a74._0x221e3c)||typeof _0x31f2f5[_0x2dedfa(0x1a4)]!=='string')return null;if(_0x2f8e3f!==void 0x0&&typeof _0x2f8e3f!==_0x2dedfa(0x15b))return null;let _0x44f46b=null;if(_0x5315c4!==void 0x0){if(!isRecord(_0x5315c4)||typeof _0x5315c4[_0x2dedfa(_0x181a74._0x4ed5dd)]!==_0x2dedfa(0x15b)||_0x5315c4['bundleId'][_0x2dedfa(_0x181a74._0x1f10c5)]===0x0)return null;_0x44f46b={'bundleId':_0x5315c4[_0x2dedfa(0x13b)]};}let _0x573e46=null;if(_0x902b08!==void 0x0){_0x573e46=parseTicketCi(_0x902b08);if(_0x573e46===null)return null;}return{'schemaVersion':QUEUE_SCHEMA_VERSION,'runId':_0x35d8b2,'kind':_0x523033,'ref':_0x2c9cda,'priority':_0x5afb57,'weight':_0x4da27c,'producer':{'kind':_0x31f2f5['kind'],'pid':_0x31f2f5[_0x2dedfa(0x1c0)],'host':_0x31f2f5[_0x2dedfa(0x1a4)]},'createdAt':_0x171f28,...typeof _0x2f8e3f===_0x2dedfa(0x15b)?{'env':_0x2f8e3f}:{},..._0x44f46b?{'source':_0x44f46b}:{},..._0x573e46?{'ci':_0x573e46}:{}};}__name(parseQueueTicket,_0x705370(0x10d));function parseTicketCi(_0x10c148){const _0x133c23={_0x206a08:0x1b2,_0x3be618:0x15b,_0x21d58a:0x15b},_0x3a0eae=_0x705370;if(!isRecord(_0x10c148))return null;const _0x5888ae=parseCiProvider(_0x10c148['provider']);if(_0x5888ae===null)return null;const {repo:_0xd748aa,branch:_0x3ff8f0,sha:_0x1dfe1c,pr:_0x512326,checkId:_0xcf46a7}=_0x10c148;for(const _0x506ab3 of[_0xd748aa,_0x3ff8f0,_0x1dfe1c,_0xcf46a7]){if(_0x506ab3!==void 0x0&&typeof _0x506ab3!=='string')return null;}if(_0x512326!==void 0x0&&(typeof _0x512326!==_0x3a0eae(_0x133c23._0x206a08)||!Number[_0x3a0eae(0x13d)](_0x512326)))return null;return{'provider':_0x5888ae,...typeof _0xd748aa===_0x3a0eae(_0x133c23._0x3be618)?{'repo':_0xd748aa}:{},...typeof _0x3ff8f0===_0x3a0eae(0x15b)?{'branch':_0x3ff8f0}:{},...typeof _0x1dfe1c===_0x3a0eae(_0x133c23._0x21d58a)?{'sha':_0x1dfe1c}:{},...typeof _0x512326==='number'?{'pr':_0x512326}:{},...typeof _0xcf46a7==='string'?{'checkId':_0xcf46a7}:{}};}__name(parseTicketCi,_0x705370(0x1b1));var BUNDLE_SCHEMA_VERSION=0x1,BUNDLE_MANIFEST_FILE=_0x705370(0xcd),BUNDLE_UPLOAD_PATH=_0x705370(0xc3),BOX_URL_ENV='UNOTEST_BOX_URL',BOX_TOKEN_ENV=_0x705370(0x160),BUNDLE_ID_ENV=_0x705370(0xd1);function parseGitInfo(_0x6f243d){const _0x5d6df3={_0x514c3f:0x15b},_0x1605b2=_0x705370;if(!isRecord(_0x6f243d))return null;const {repo:_0x53d321,branch:_0xdb4951,sha:_0x135689,dirty:_0x1e17a8}=_0x6f243d;if(typeof _0x1e17a8!=='boolean')return null;for(const _0x55c955 of[_0x53d321,_0xdb4951,_0x135689]){if(_0x55c955!==void 0x0&&typeof _0x55c955!==_0x1605b2(_0x5d6df3._0x514c3f))return null;}return{'dirty':_0x1e17a8,...typeof _0x53d321===_0x1605b2(_0x5d6df3._0x514c3f)?{'repo':_0x53d321}:{},...typeof _0xdb4951===_0x1605b2(0x15b)?{'branch':_0xdb4951}:{},...typeof _0x135689===_0x1605b2(0x15b)?{'sha':_0x135689}:{}};}__name(parseGitInfo,'parseGitInfo');function parseBundleManifest(_0x1a1a4c){const _0x334037={_0x4c4fdd:0x131,_0x33818b:0x11b,_0x36f78d:0x1b2,_0x5b1b6d:0x13d,_0x28ced8:0x15b},_0x468995=_0x705370;if(!isRecord(_0x1a1a4c))return null;const {schemaVersion:_0x373baf,bundleId:_0x1e4895,sha256:_0x47a05e,createdAt:_0x5232bf,webVersion:_0x2eecd2,author:_0x888d8a,git:_0x9b42eb,fileCount:_0x44777d,byteSize:_0x494d58}=_0x1a1a4c;if(_0x373baf!==BUNDLE_SCHEMA_VERSION)return null;if(typeof _0x1e4895!=='string'||_0x1e4895[_0x468995(_0x334037._0x4c4fdd)]===0x0)return null;if(_0x47a05e!==void 0x0&&!/^[0-9a-f]{64}$/['test'](String(_0x47a05e)))return null;if(typeof _0x2eecd2!==_0x468995(0x15b)||_0x2eecd2[_0x468995(_0x334037._0x4c4fdd)]===0x0)return null;if(typeof _0x5232bf!=='number'||!Number[_0x468995(_0x334037._0x33818b)](_0x5232bf))return null;if(typeof _0x44777d!==_0x468995(_0x334037._0x36f78d)||!Number[_0x468995(0x13d)](_0x44777d))return null;if(typeof _0x494d58!==_0x468995(_0x334037._0x36f78d)||!Number[_0x468995(_0x334037._0x5b1b6d)](_0x494d58))return null;if(_0x888d8a!==void 0x0&&typeof _0x888d8a!==_0x468995(0x15b))return null;let _0x5cf431=null;if(_0x9b42eb!==void 0x0){_0x5cf431=parseGitInfo(_0x9b42eb);if(_0x5cf431===null)return null;}return{'schemaVersion':BUNDLE_SCHEMA_VERSION,'bundleId':_0x1e4895,...typeof _0x47a05e===_0x468995(_0x334037._0x28ced8)?{'sha256':_0x47a05e}:{},'createdAt':_0x5232bf,'webVersion':_0x2eecd2,'fileCount':_0x44777d,'byteSize':_0x494d58,...typeof _0x888d8a===_0x468995(_0x334037._0x28ced8)?{'author':_0x888d8a}:{},..._0x5cf431?{'git':_0x5cf431}:{}};}__name(parseBundleManifest,'parseBundleManifest');function describeBundle(_0x3582be){const _0x3352a7={_0x515a11:0xd2,_0x587f74:0xc2},_0x53818c=_0x705370,_0x2114cd=_0x3582be['git'];if(!_0x2114cd||_0x2114cd['branch']===void 0x0&&_0x2114cd[_0x53818c(0x11d)]===void 0x0)return _0x3582be[_0x53818c(0x13b)];const _0xbdb994=_0x2114cd[_0x53818c(0x11d)]?_0x2114cd[_0x53818c(0x11d)][_0x53818c(0x1b9)](0x0,0x7):'?',_0x511eb6=_0x2114cd[_0x53818c(_0x3352a7._0x515a11)]??'?';return _0x511eb6+'@'+_0xbdb994+(_0x2114cd[_0x53818c(0x14d)]?_0x53818c(_0x3352a7._0x587f74):'');}__name(describeBundle,_0x705370(0x18e));var UPLOAD_ERROR_CODES=[_0x705370(0xfb),_0x705370(0x113),_0x705370(0x165),_0x705370(0xd3),_0x705370(0xd8),_0x705370(0x10f),_0x705370(0xfe)];function parseBundleUploadResponse(_0x327143){const _0x4dd155={_0x4e2678:0x111,_0x493217:0xcb,_0x5d38d2:0x15b,_0x5556ef:0x131},_0xefb2e1=_0x705370;if(!isRecord(_0x327143))return null;if(isRecord(_0x327143[_0xefb2e1(_0x4dd155._0x4e2678)])){const {code:_0x11dd2b,message:_0x12c100}=_0x327143['error'];if(!UPLOAD_ERROR_CODES[_0xefb2e1(_0x4dd155._0x493217)](_0x11dd2b))return null;if(typeof _0x12c100!=='string')return null;return{'error':{'code':_0x11dd2b,'message':_0x12c100}};}const {status:_0x8b337e,bundleId:_0x220f1e}=_0x327143;if(_0x8b337e!==_0xefb2e1(0x1a1)&&_0x8b337e!=='exists')return null;if(typeof _0x220f1e!==_0xefb2e1(_0x4dd155._0x5d38d2)||_0x220f1e[_0xefb2e1(_0x4dd155._0x5556ef)]===0x0)return null;return{'status':_0x8b337e,'bundleId':_0x220f1e};}__name(parseBundleUploadResponse,_0x705370(0xf0));var WORKSPACE_SCHEMA_VERSION=0x1,WORKSPACE_FILE='.workspace.json';function stringList(_0x361884){const _0x365f84={_0x4ce77c:0x18f,_0x18aa89:0xf7},_0xc269d5=_0x705370;if(!Array[_0xc269d5(_0x365f84._0x4ce77c)](_0x361884))return null;if(_0x361884[_0xc269d5(_0x365f84._0x18aa89)](_0x3356e9=>typeof _0x3356e9!==_0xc269d5(0x15b)))return null;return _0x361884;}__name(stringList,_0x705370(0x184));function parseBundle(_0x557cfc){const _0x4b2852={_0x13a608:0x131,_0x10eabb:0x15b,_0x1b621d:0x15b,_0x354399:0x15b},_0x53647e=_0x705370;if(!isRecord(_0x557cfc))return null;const {bundleId:_0x439833,label:_0x5de0ff,branch:_0x2d53bc,sha:_0x257f3c,dirty:_0x2bd647,author:_0x361b9c,createdAt:_0x1c58d8,webVersion:_0x5762cf}=_0x557cfc;if(typeof _0x439833!==_0x53647e(0x15b)||_0x439833[_0x53647e(_0x4b2852._0x13a608)]===0x0)return null;if(typeof _0x5de0ff!==_0x53647e(_0x4b2852._0x10eabb)||typeof _0x5762cf!==_0x53647e(_0x4b2852._0x1b621d))return null;if(typeof _0x2bd647!=='boolean')return null;if(typeof _0x1c58d8!==_0x53647e(0x1b2)||!Number[_0x53647e(0x11b)](_0x1c58d8))return null;for(const _0x4e47e9 of[_0x2d53bc,_0x257f3c,_0x361b9c]){if(_0x4e47e9!==void 0x0&&typeof _0x4e47e9!=='string')return null;}return{'bundleId':_0x439833,'label':_0x5de0ff,'dirty':_0x2bd647,'createdAt':_0x1c58d8,'webVersion':_0x5762cf,...typeof _0x2d53bc==='string'?{'branch':_0x2d53bc}:{},...typeof _0x257f3c===_0x53647e(_0x4b2852._0x354399)?{'sha':_0x257f3c}:{},...typeof _0x361b9c==='string'?{'author':_0x361b9c}:{}};}__name(parseBundle,_0x705370(0x1a6));function parseWorkspaceFile(_0x10d233){const _0x438007={_0x372c50:0x15b,_0x52500b:0x177,_0x4bbc26:0x18f,_0xdc9074:0x15b,_0x133e93:0x15b,_0x3ffc49:0x15b},_0x20d89c=_0x705370;if(!isRecord(_0x10d233))return null;if(_0x10d233[_0x20d89c(0x102)]!==WORKSPACE_SCHEMA_VERSION)return null;const {workspace:_0x22efaf,environment:_0x180753,allowSwitch:_0x30c1c1,currentBundleId:_0x37538d,switchedBy:_0x28422d,switchedAt:_0x486a84,bundles:_0x50b531,variables:_0x2bcf43,secrets:_0x566b05,switchPath:_0xaf5752}=_0x10d233;if(typeof _0x22efaf!==_0x20d89c(0x15b)||typeof _0x180753!==_0x20d89c(_0x438007._0x372c50))return null;if(typeof _0x30c1c1!==_0x20d89c(_0x438007._0x52500b))return null;if(!Array[_0x20d89c(_0x438007._0x4bbc26)](_0x50b531))return null;const _0x47e59e=[];for(const _0x229a07 of _0x50b531){const _0x3e2954=parseBundle(_0x229a07);if(!_0x3e2954)return null;_0x47e59e[_0x20d89c(0x130)](_0x3e2954);}const _0xf21b60=stringList(_0x2bcf43),_0x20beff=stringList(_0x566b05);if(!_0xf21b60||!_0x20beff)return null;for(const _0x261e5a of[_0x37538d,_0x28422d,_0xaf5752]){if(_0x261e5a!==void 0x0&&typeof _0x261e5a!==_0x20d89c(_0x438007._0xdc9074))return null;}if(_0x486a84!==void 0x0&&typeof _0x486a84!==_0x20d89c(0x1b2))return null;return{'schemaVersion':WORKSPACE_SCHEMA_VERSION,'workspace':_0x22efaf,'environment':_0x180753,'allowSwitch':_0x30c1c1,'bundles':_0x47e59e,'variables':_0xf21b60,'secrets':_0x20beff,...typeof _0x37538d===_0x20d89c(_0x438007._0x133e93)?{'currentBundleId':_0x37538d}:{},...typeof _0x28422d===_0x20d89c(_0x438007._0x3ffc49)?{'switchedBy':_0x28422d}:{},...typeof _0x486a84===_0x20d89c(0x1b2)?{'switchedAt':_0x486a84}:{},...typeof _0xaf5752==='string'?{'switchPath':_0xaf5752}:{}};}__name(parseWorkspaceFile,_0x705370(0x1b3));function parseScheduleEntry(_0x5e73cc){const _0x4080c7={_0x3123f1:0x131,_0x1e3f02:0x15b,_0xe6d065:0x1b2},_0x24c09b=_0x705370;if(!isRecord(_0x5e73cc))return null;const {collection:_0x417978,cron:_0x56b371,env:_0x1cd817,prepare:_0x1774bb,workers:_0x393337}=_0x5e73cc;if(typeof _0x417978!=='string'||_0x417978[_0x24c09b(_0x4080c7._0x3123f1)]===0x0)return null;if(typeof _0x56b371!==_0x24c09b(_0x4080c7._0x1e3f02)||_0x56b371[_0x24c09b(0xdc)]()[_0x24c09b(0x131)]===0x0)return null;if(_0x1cd817!==void 0x0&&typeof _0x1cd817!=='string')return null;if(_0x1774bb!==void 0x0&&typeof _0x1774bb!=='string')return null;const _0x464bb5=typeof _0x393337===_0x24c09b(_0x4080c7._0xe6d065)&&Number[_0x24c09b(0x13d)](_0x393337)&&_0x393337>=0x1?_0x393337:void 0x0;return{'collection':_0x417978,'cron':_0x56b371,..._0x1cd817!==void 0x0?{'env':_0x1cd817}:{},..._0x1774bb!==void 0x0?{'prepare':_0x1774bb}:{},..._0x464bb5!==void 0x0?{'workers':_0x464bb5}:{}};}__name(parseScheduleEntry,'parseScheduleEntry');function parseSchedulesJson(_0x3b2f82){const _0x16fd08=_0x705370;let _0x4596d9;try{_0x4596d9=JSON[_0x16fd08(0x164)](_0x3b2f82);}catch{return null;}if(!Array[_0x16fd08(0x18f)](_0x4596d9))return null;const _0x29e947=[];for(const _0x51f43c of _0x4596d9){const _0x2cbb56=parseScheduleEntry(_0x51f43c);if(_0x2cbb56)_0x29e947[_0x16fd08(0x130)](_0x2cbb56);}return _0x29e947;}__name(parseSchedulesJson,_0x705370(0x16e));var BLOBS_DIR=_0x705370(0x12d),GENERATION_SEP='~',HASH_RE=/^[0-9a-f]{8,}$/,InvalidBlobHashError=class extends Error{static{__name(this,_0x705370(0x10c));}constructor(_0x9dde74){const _0x1d9bb1={_0x2d44e0:0xe6,_0xbbe03a:0xdd},_0x194d31=_0x705370;super(_0x194d31(_0x1d9bb1._0x2d44e0)+_0x9dde74),this[_0x194d31(_0x1d9bb1._0xbbe03a)]=_0x194d31(0x10c);}};function blobPathFor(_0x1a90a0,_0x330c85,_0x2c0cce,_0x333791=0x0){return _0x1a90a0+'/'+blobRelPathFor(_0x330c85,_0x2c0cce,_0x333791);}__name(blobPathFor,_0x705370(0x139));function blobRelSegmentsFor(_0x4da3f8,_0x4b97c8,_0x149913=0x0){const _0x5b761c={_0xe91324:0x1be,_0x27333f:0x1b9},_0x5325d3=_0x705370;if(!HASH_RE[_0x5325d3(_0x5b761c._0xe91324)](_0x4da3f8))throw new InvalidBlobHashError(_0x4da3f8);const _0x443614=_0x149913>0x0?''+GENERATION_SEP+_0x149913:'';return[BLOBS_DIR,_0x4da3f8[_0x5325d3(_0x5b761c._0x27333f)](0x0,0x2),_0x4da3f8['slice'](0x2,0x4),''+_0x4da3f8+_0x443614+'.'+_0x4b97c8];}__name(blobRelSegmentsFor,'blobRelSegmentsFor');function blobRelPathFor(_0x50961d,_0x85e1bb,_0x229841=0x0){const _0x3a3801=_0x705370;return blobRelSegmentsFor(_0x50961d,_0x85e1bb,_0x229841)[_0x3a3801(0x12e)]('/');}__name(blobRelPathFor,_0x705370(0xdb));function _0x2c65(){const _0x455384=['BMfTzq','AxnbBM5VDgf0Aw9UtgLUzq','AxnsDw5UzxjdB25MAwDlzxK','lNj1BNm','l2fWAs9IB3GVy2KVCNvU','z2v0uMfUzg9TvMfSDwvZ','AxnrDwv1zurPCK5HBwu','yxv0Ag9YAw5N','lNzPzxDLCI5SB2nR','yMXVyIbOyxnOig11C3qGyMuGBg93zxjJyxnLigHLEcWGz290oIa','zNjLzxPL','CNvUBMvYici','vu5pvevtvf9orvrxt1jl','C2HHCMrqyxrOrM9YuNvUswq','x2rHEs5QC29UBa','vu5pvevtvf9kvurhrv9srvrssuvt','C2nLBMfYAw9szwzgCM9TrMLSzu5HBwu','zw52tgf5zxjgAwXLC0zVCG','CgLJA2vYlxnUyxbZAg90lNr4Da','CgfYC2vcDw5KBgvvCgXVywrszxnWB25Zzq','lNnUyxbZAg90CW','CgfYC2vdAvj1BLjLC3bVBNnL','lMvUDG','vu5pvevtvf9rvuvvrv9hte9cquXFu0Xpvfm','AM9PBKXPBMvZ','CNvUBMvY','C29Tzq','BxvZDcbUB3qGC3rHCNqGD2L0AcaNxYCGkhjLC2vYDMvKkq','Aw5KzxHpzG','zgvMAw5LuhjVCgvYDhK','Dw5HDxrOB3jPEMvK','lNzPzxDLCI5SB2C','z2v0vvrdrNvSBfLLyxi','C3rVCMfNzq','AxnszwnVCMq','vu5pvevtvf9tte9xx01p','CgfYC2vbChbtzxj2zxjfDMvUDa','C2nOzw1HvMvYC2LVBG','nKLirhfgqq','Dg9tDhjPBMC','zgvIDwDeAxjgB3i','y29TCgfYzvf1zxvLvgLJA2v0tMfTzxm','C2vJCMv0C0nVBNrLBNq','CNvUswrtDgfYDgvKqxq','CgfYC2vrDwv1zvrPy2TLDe5HBwu','mtyZnZzIwxrgq3y','CMvTB3zLrw52vMfY','sw52ywXPzejSB2jiyxnOrxjYB3i','CgfYC2vrDwv1zvrPy2TLDa','ndaZmZqZmvPJCxnRra','C2nVCguTBwLZBwf0y2G','BwnW','zxjYB3i','Dw5VDgvZDc8Uzw52','Dg9VlwXHCMDL','mtbLExDvBMW','zMLUzeLUzgv4','A2LUza','vu5pvevtvf9erujvr19nqvHFqLLurvm','zgvZy3jPyMvuAwnRzxrdAq','igfSCMvHzhKGzxHPC3rZigLUia','zgvSzxrLu2HHzg93v2fYBMLUzW','AxngAw5PDgu','AxnbC3nPz25Tzw50tgLUzq','C2HH','CMfUAW','lMPZB24','vu5pvevtvf9erujvr19quKvwsuvxx0jzvevt','DMfSAwrHDgvgC1nHzMvoyw1L','BxvZDcbUB3qGy29UDgfPBIbCic8GoIaQid8GiIa8id4GFcbVCIbJB250CM9SignOyxjHy3rLCNm','CgfKu3rHCNq','ywjVCNrLza','C3bSAwnL','zMfPBgLUz1nPBMnL','ndGZn3vfuNfTCa','CNvUswqGy2fYCMLLCYbUBYb0Aw1LC3rHBxaSignHBM5VDcbWBgfJzsbPDcbPBIbHihnOyxjKoIa','BwfRzvj1BKLK','C2nLBMfYAw8','nti2otmWoejADefSqq','zMXHz3m','x2jSB2jZ','AM9PBG','vu5pvevtvf9kvurhrv9quKvbtujmrq','ChvZAa','BgvUz3rO','CgfYC2vdAvbYB3zPzgvY','vu5pvevtvf9ftLy','CMvJzw50','iokaLcbWAwnRigeGzgLMzMvYzw50ig5HBwuGB3iGzwrPDcb0AguGzxHPC3rPBMCGDMfSDwuU','Dw5VDgvZDc8UC2vJCMv0CW','vu5pvevtvf9kvurhrv9usu1ft1vux01t','vu5pvevtvf9kvurhrv9mt0DFtevwruW','yMXVyLbHDgHgB3i','vw5WBgfJzwfIBgvsDw5jzevYCM9Y','yNvUzgXLswq','zMfPBgvK','AxnjBNrLz2vY','CNvUBMLUzW','yxbWlxnLCNzLCJPLCNjVCG','C2vJCMv0','BxvZDcbUB3qGC3rHCNqGD2L0AcaNlIC','BM93','vu5pvevtvf9eruzbvuXux05bvKLhqvrjt05FveLnru9vvf9nuW','vu5pvevtvf9kvurhrv9dtefvrevFqKLo','C3rHCNrZv2L0Aa','CxvLDwveAxjgB3i','igLZigfSC28GC2v0igLUihvUB3rLC3qVlMvUDIdIGjqGDgHLihnLy3jLDcb2ywX1zsbUB3CGC2HHzg93CYbPDc4','CNvUswq','C3bSAxrmAw5LCW','vu5pvevtvf9dt05tt0Xf','C291CMnL','yxbWlxnLCNzLCJPYzxvZzwq','zgLYDhK','lNnLy3jLDhm','CxvLDwvqCMLVCML0EvjHBMS','Dw5RBM93BI1YDw5UzxiTA2v5','Dg9mB3DLCKnHC2u','qxbW','zw52rMLSzuzVCG','zw52','C3rHDhvZ','zxHLyW','mZm4mJDnAg5hsKS','uNvUBMvYtM90q29UzMLNDxjLzevYCM9Y','lMPZB25S','C3rKB3v0lMXVzW','C3rYAw5N','CxvLDwvK','DMLLD2vY','vu5pvevtvf9rvuvvrv9mruftrq','CMvWBgfJzq','vu5pvevtvf9ct1HFve9lru4','y3jLyxrLzef0','CMvNzxG','C2vJCMv0CW','CgfYC2u','BwfSzM9YBwvK','ywrK','y29SBgvJDgLVBG','vu5pvevtvf9kvurhrv9nt0rfta','DgvYBwLUywW','igLZigfSC28GC2v0igLUihvUB3rLC3qVlNnLy3jLDhmG4OcuihrOzsbZzwnYzxqGDMfSDwuGC2HHzg93CYb0AgLZig9Uzs4','z2v0vvrdrgf0zq','Aw50zxjYDxb0zwq','Aw52ywXPzc1Uyw1L','CgfYC2vty2HLzhvSzxnkC29U','vu5pvevtvf9kvurhrv9it1nu','CxvLDwvqCMLVCML0EuzYB21syw5R','C3rLChmUANnVBMW','C3rHCNrLzef0','AgvHCNrIzwf0','x2nVBgXLy3rPB25Z','vu5pvevtvf9kvurhrv9qt1ju','BwfUAwzLC3qUANnVBG','yM9VBgvHBG','DgvTCgXHDgu','l2HLywX0Aa','mJb4D3Lcq1a','C2HHCMrqyxrOrM9YvgLTzxn0yw1W','l2P1zgDL','CgfYC2vty2vUyxjPB0fUBM90yxrPB25Z','AgfZ','iI4G','tK9Fq09mt1i','Dw5RBM93BI1LBNzPCM9UBwvUDa','vu5pvevtvf9ot19rvuvvrq','vu5pvevtvf9qt1bvuf9huKfdrv9nuW','C3rYAw5NtgLZDa','AxnsDw5ZrgLYtMfTzq','mtmXoty5nvDOBgT2sW','ywn0AxzLrw52tMfTzq','BxvZDcbIzsbHihn0CMLUzW','C291CMnLCY5QC29U','vu5pvevtvf9kvurhrv9quK9wsurfuG','BM8Ty29SBgvJDgLVBNm','C2HHCMreyxLZrgvZy2vUzgLUzW','Dw5VDgvZDa','zgvZy3jPyMvcDw5KBgu','AxnbCNjHEq','lY5Kzwj1z2DLCG','zgvIDwDNzxjgAwXLrM9Y','igLZigfSC28GC2v0igLUihLVDxiGC2HLBgWGzw52AxjVBM1LBNqG4OcuigL0ihDPBgWGA2vLCcbYzxnVBhzPBMCGzNjVBsb0AgvYzsaODgHLigvUDMLYB25Tzw50ihDPBNmGB3zLCIb0AguGzMLSzsKU','vu5pvevtvf9erujvr19lruvqx0nbteXt','vu5pvevtvf9kvurhrv9vuKW','CNvU','vw5ZDxbWB3j0zwrsDw5lAw5KrxjYB3i','C2vYAwfSAxPLrw52vMfSDwu','lNf1zxvL','yxj0AwzHy3rZuM9VDezYB20','CMfUzg9T','AxnfEhrLCM5HBfzHCK5HBwu','CMvZzxj2zwrvBMrLCNnJB3jL','zw52tMfTzxngCM9TrgLYtgLZDgLUzW','vu5pvevtvf9erujvr19ive1mx01bwf9cwvrfuW','mtnAB291zum','uNvUBMvYqwrHChrLCK5VDezVDw5KrxjYB3i','y3jLyxrLza','yxbP','zw5KC1DPDgG','Ag9ZDa','mtf5t0PswgG','CgfYC2vcDw5KBgu','C2nLBMfYAw9jBMrLEezPBgvoyw1L','Bwf0y2G','zhvWBgLJyxrL','Aw5Zzxj0rw52vMfY','C2nOzwr1Bgu','CgfYC2vdAvj1BLjLCxvLC3q','CgfYC2vfBNzdB250zw50','mZe4tw1rre5U','CNvUDgLTzs5QC29U','vu5pvevtvf9erujvrW','CgfYC2vuAwnRzxrdAq','BNvTyMvY','CgfYC2vxB3jRC3bHy2vgAwXL','ufiGiW','Bgf5zxjZrM9Y','zMLSDgvY','y3j5ChrV','ChjVAMvJDff1zxvLuM9VDa','C2XPy2u','yxbW','refuqujbu0vFvvjm','DMfSAwrHDgvdB2XSzwn0Aw9UtMfTzq','vu5pvevtvf9kvurhrv9wt1rf','DgvZDa','Dw5RBM93BI1IDw5KBgu','CgLK','AxnbC3nPz25Tzw50t2y','B2jQzwn0','BwfPBNrLBMfUy2u','icH3AxaP','l2fWAs9IB3GVyNvUzgXLCW','zMfPBfn0CMvHAW','iIbKB2vZig5VDcbZDxbWB3j0ihj1BIbRAw5Kici','CgXHBKfKzfzHCMLHyMXL','z2L0AhvI','mJiXndK2ofrpDxHNAq','C3bSAxq','vvrd','Aw5JBhvKzxm','ChjVDMLKzxi','yNvUzgXLlMPZB24','CMvNzxHmAxrLCMfS','DMfSAwrHDgvtzwDTzw50tMfTzq','nZeZnMLyAhnYuq','vu5pvevtvf9cvu5etevFsuq','yNjHBMnO','AwqTBwLZBwf0y2G','ic0Tlq','C2XVDhm','x2XHDgvZDc5QC29U','zxHWzwn0lwzHAwW','BwLUlxzLCNnPB24','zMXVB3i','y29TBwfUzhmUANnVBMW','yMXVyLjLBfbHDgHgB3i','DhjPBq'];_0x2c65=function(){return _0x455384;};return _0x2c65();}function blobsRootFor(_0x251bcc){return _0x251bcc+'/'+BLOBS_DIR;}__name(blobsRootFor,'blobsRootFor');var FS_UNSAFE_NAME_RE=/[\\/:*?"<>|\x00-\x1f]/;function validateFsSafeName(_0x1f5531,_0x592d91){const _0x4fd26c={_0x6d1a1f:0x15b,_0x16ea2c:0x188,_0xc31976:0xdc,_0x154cf4:0x131,_0x2436d8:0x145,_0x4992a6:0x145,_0x1eafa4:0xf8,_0x521ae2:0x122},_0x106f89=_0x705370;if(typeof _0x1f5531!==_0x106f89(_0x4fd26c._0x6d1a1f))return _0x106f89(_0x4fd26c._0x16ea2c);const _0x3b1cda=_0x1f5531[_0x106f89(_0x4fd26c._0xc31976)]();if(_0x3b1cda[_0x106f89(_0x4fd26c._0x154cf4)]===0x0)return'must\x20not\x20be\x20empty';if(_0x3b1cda==='.'||_0x3b1cda==='..')return'must\x20not\x20be\x20\x22.\x22\x20or\x20\x22..\x22';if(_0x3b1cda[_0x106f89(_0x4fd26c._0x2436d8)]('.'))return _0x106f89(0x141);if(_0x592d91?.[_0x106f89(0x19c)]&&_0x3b1cda[_0x106f89(_0x4fd26c._0x4992a6)]('_'))return _0x106f89(_0x4fd26c._0x1eafa4);if(FS_UNSAFE_NAME_RE[_0x106f89(0x1be)](_0x3b1cda))return _0x106f89(_0x4fd26c._0x521ae2);return null;}__name(validateFsSafeName,_0x705370(0x121));var COLLECTION_NAME_FORBIDDEN_RE=FS_UNSAFE_NAME_RE;function validateCollectionName(_0x4cf4db){return validateFsSafeName(_0x4cf4db);}__name(validateCollectionName,_0x705370(0x1bc));var RUN_MANIFEST_FILE=_0x705370(0x176),RUN_SOURCES_FILE=_0x705370(0x189),UnsupportedRunKindError=class extends Error{static{__name(this,_0x705370(0x196));}constructor(_0x474687,_0x157414){const _0x1ecfa6={_0x519f55:0xe8,_0x3edce8:0xdd},_0x57cb86=_0x705370;super(_0x57cb86(_0x1ecfa6._0x519f55)+_0x157414+_0x57cb86(0xc5)+_0x474687+'\x22'),this[_0x57cb86(_0x1ecfa6._0x3edce8)]='UnsupportedRunKindError';}},RunnerAdapterNotFoundError=class extends Error{static{__name(this,'RunnerAdapterNotFoundError');}constructor(_0x2fac00,_0x2c4d28){const _0x2ae47d={_0x50774c:0x17f,_0x585ca7:0x1a0},_0x5f14fb=_0x705370;super('cannot\x20load\x20runner\x20adapter\x20\x22'+_0x2fac00+_0x5f14fb(_0x2ae47d._0x50774c)+_0x2c4d28),this['name']=_0x5f14fb(_0x2ae47d._0x585ca7);}},RunnerNotConfiguredError=class extends Error{static{__name(this,_0x705370(0x158));}constructor(_0x47f646){const _0x15d62c=_0x705370;super(_0x47f646),this['name']=_0x15d62c(0x158);}},EXPECT_FAIL_ANNOTATION=_0x705370(0xd7),ANNOTATION_RE=/^\s*\/\/\s*@([a-z0-9-]+)\s*$/;function isAnnotationLine(_0xb720b2){const _0x484321=_0x705370;return ANNOTATION_RE[_0x484321(0x1be)](_0xb720b2);}__name(isAnnotationLine,_0x705370(0xde));function parseScenarioAnnotations(_0x503e17){const _0x348d71={_0x3f2348:0xc9,_0x4bbb92:0xdc,_0x23f97d:0x166,_0x47a670:0x17e},_0x5c1cf4=_0x705370,_0x3d58e7=new Set();for(const _0x5b7646 of _0x503e17[_0x5c1cf4(_0x348d71._0x3f2348)](/\r?\n/)){const _0x4c21d1=_0x5b7646[_0x5c1cf4(_0x348d71._0x4bbb92)]();if(_0x4c21d1==='')continue;if(!_0x4c21d1['startsWith']('//'))break;const _0x2c8714=_0x4c21d1[_0x5c1cf4(0x1a8)](ANNOTATION_RE);if(_0x2c8714)_0x3d58e7[_0x5c1cf4(_0x348d71._0x23f97d)](_0x2c8714[0x1]);}return{'expectFail':_0x3d58e7[_0x5c1cf4(_0x348d71._0x47a670)](EXPECT_FAIL_ANNOTATION)};}__name(parseScenarioAnnotations,_0x705370(0x17d));var SEGMENT_NAME_FORBIDDEN_RE=FS_UNSAFE_NAME_RE;function validateSegmentName(_0x15cb8a){return validateFsSafeName(_0x15cb8a,{'reservedUnderscore':!![]});}__name(validateSegmentName,_0x705370(0xcf));var TERMINAL_WS_EVENT=_0x705370(0x169),RUNNER_CONFIG_KEYS=new Set(['UNOTEST_BROWSER','UNOTEST_HEADED',_0x705370(0x100),'UNOTEST_DEFAULT_TIMEOUT_MS',_0x705370(0x143),_0x705370(0x183),'UNOTEST_LOCALE','UNOTEST_TIMEZONE','UNOTEST_LOG_LEVEL',_0x705370(0x1b0),'UNOTEST_DEBUG_DIR',_0x705370(0x117),_0x705370(0x120),_0x705370(0x19e),_0x705370(0x193),_0x705370(0xe9),_0x705370(0x14a),'UNOTEST_CACHE_DIR',_0x705370(0x180),'FORCE_COLOR',_0x705370(0x1bb)]);function isRunnerConfigKey(_0x38fb28){const _0x52df65=_0x705370;return RUNNER_CONFIG_KEYS[_0x52df65(0x17e)](_0x38fb28);}__name(isRunnerConfigKey,_0x705370(0xdf));function categorizeVariable(_0x134afb){const _0x4fe440={_0x27794b:0xf6},_0x49c06b=_0x705370;if(_0x134afb[_0x49c06b(0x14b)]==='secrets')return'secret';return isRunnerConfigKey(_0x134afb[_0x49c06b(0xdd)])?_0x49c06b(_0x4fe440._0x27794b):_0x49c06b(0x1ba);}__name(categorizeVariable,'categorizeVariable');function isExternalVarName(_0x3158df){return/^[A-Z][A-Z0-9_]*$/['test'](_0x3158df);}__name(isExternalVarName,_0x705370(0x19b));var ENV_KEY_RE=/^[A-Za-z_][A-Za-z0-9_]*$/;function*assignmentEntries(_0x492f8e){const _0x4cc7e3={_0x4ebd57:0x145,_0x1481d9:0x1b9,_0x472a9a:0xdc},_0x3d773c=_0x705370;for(const _0x16b263 of _0x492f8e[_0x3d773c(0xc9)](/\r?\n/)){const _0xf39ed6=_0x16b263[_0x3d773c(0xdc)]();if(_0xf39ed6===''||_0xf39ed6[_0x3d773c(_0x4cc7e3._0x4ebd57)]('#'))continue;const _0x4b2245=_0xf39ed6[_0x3d773c(0xf9)]('=');if(_0x4b2245<=0x0)continue;const _0x4a10c1=_0xf39ed6[_0x3d773c(_0x4cc7e3._0x1481d9)](0x0,_0x4b2245)[_0x3d773c(_0x4cc7e3._0x472a9a)]();if(!ENV_KEY_RE[_0x3d773c(0x1be)](_0x4a10c1))continue;yield[_0x4a10c1,_0xf39ed6[_0x3d773c(0x1b9)](_0x4b2245+0x1)['trim']()];}}__name(assignmentEntries,'assignmentEntries');function parseEnvContent(_0x4945bf){const _0x501694=_0x705370,_0x1acbd8={};for(const [_0x1e0c37,_0x46d036]of assignmentEntries(_0x4945bf)){let _0x4878ad=_0x46d036;if(_0x4878ad['length']>=0x2){const _0x5b416a=_0x4878ad[0x0],_0x57b9bb=_0x4878ad[_0x4878ad[_0x501694(0x131)]-0x1];(_0x5b416a==='\x22'||_0x5b416a==='\x27')&&_0x5b416a===_0x57b9bb&&(_0x4878ad=_0x4878ad[_0x501694(0x1b9)](0x1,-0x1));}_0x1acbd8[_0x1e0c37]=_0x4878ad;}return _0x1acbd8;}__name(parseEnvContent,_0x705370(0x1ad));function serializeEnvValue(_0x2893fa){const _0x245f87={_0x3e1638:0x1be,_0x590eec:0x1be,_0x8e93e6:0x15f},_0x5e9aac=_0x705370;if(_0x2893fa==='')return'';if(/[\s#"'=\\]|^[`]/[_0x5e9aac(_0x245f87._0x3e1638)](_0x2893fa)||/[\n\r]/[_0x5e9aac(_0x245f87._0x590eec)](_0x2893fa)){const _0xce3bd8=_0x2893fa[_0x5e9aac(0x15f)](/\\/g,'\x5c\x5c')[_0x5e9aac(0x15f)](/"/g,'\x5c\x22')['replace'](/\n/g,'\x5cn')[_0x5e9aac(_0x245f87._0x8e93e6)](/\r/g,'\x5cr');return'\x22'+_0xce3bd8+'\x22';}return _0x2893fa;}__name(serializeEnvValue,_0x705370(0x197));function envKeys(_0x488ff7){const _0x2f67ee=_0x705370,_0x367b72=new Set();for(const [_0x57f6f5]of assignmentEntries(_0x488ff7))_0x367b72[_0x2f67ee(0x166)](_0x57f6f5);return _0x367b72;}__name(envKeys,'envKeys');function isSectionDivider(_0x149dda){const _0x1d9b01={_0x1d4196:0xdc},_0x2a4671=_0x705370,_0x72a8b1=_0x149dda[_0x2a4671(_0x1d9b01._0x1d4196)]();return _0x72a8b1[_0x2a4671(0x145)]('#')&&/---/['test'](_0x72a8b1);}__name(isSectionDivider,'isSectionDivider');function isAssignmentLine(_0x4fb2c2){const _0x290d09={_0x20a457:0xdc,_0xa1bd7a:0x145,_0x341541:0xf9},_0x1d202c=_0x705370,_0x3ab3e8=_0x4fb2c2[_0x1d202c(_0x290d09._0x20a457)]();if(_0x3ab3e8===''||_0x3ab3e8[_0x1d202c(_0x290d09._0xa1bd7a)]('#'))return![];const _0x36e4b6=_0x3ab3e8[_0x1d202c(_0x290d09._0x341541)]('=');return _0x36e4b6>0x0&&ENV_KEY_RE['test'](_0x3ab3e8[_0x1d202c(0x1b9)](0x0,_0x36e4b6)[_0x1d202c(0xdc)]());}__name(isAssignmentLine,_0x705370(0x11c));function isAssignmentOf(_0x57abe3,_0x5d18b0){const _0x2b9489={_0x6925c7:0xf9},_0x19629d=_0x705370,_0x883351=_0x57abe3[_0x19629d(0xdc)]();if(_0x883351===''||_0x883351['startsWith']('#'))return![];const _0x45bbe8=_0x883351[_0x19629d(_0x2b9489._0x6925c7)]('=');if(_0x45bbe8<=0x0)return![];return _0x883351[_0x19629d(0x1b9)](0x0,_0x45bbe8)['trim']()===_0x5d18b0;}__name(isAssignmentOf,_0x705370(0x1c1));function splitLines(_0x5bd342){const _0x2978a5={_0x544265:0x1b9},_0x4b81ee=_0x705370,_0x5bcbc8=_0x5bd342['endsWith']('\x0a'),_0xd3629b=_0x5bcbc8?_0x5bd342[_0x4b81ee(_0x2978a5._0x544265)](0x0,-0x1):_0x5bd342;return{'lines':_0xd3629b===''?[]:_0xd3629b[_0x4b81ee(0xc9)]('\x0a'),'trailingNewline':_0x5bcbc8};}__name(splitLines,_0x705370(0x149));function joinLines(_0x468dc4,_0x181353){const _0xb38757=_0x705370,_0x589a7b=_0x468dc4[_0xb38757(0x12e)]('\x0a');return _0x181353||_0x589a7b===''?_0x589a7b+'\x0a':_0x589a7b;}__name(joinLines,_0x705370(0xf5));function insertEnvVar(_0x192027,_0x32665c,_0x2826a0,_0xa7456b){const _0x3d4351={_0x20eade:0x151,_0x507391:0x131,_0x346727:0x130},_0x524a96=_0x705370,_0x2e48fe=_0x32665c+'='+serializeEnvValue(_0x2826a0),{lines:_0x178d77,trailingNewline:_0x477b48}=splitLines(_0x192027);if(_0xa7456b){const _0x33f2f2=new RegExp('\x5cb'+_0xa7456b[_0x524a96(_0x3d4351._0x20eade)]()+'\x5cb'),_0x439fee=_0x178d77[_0x524a96(0x115)](_0x38d600=>isSectionDivider(_0x38d600)&&_0x33f2f2[_0x524a96(0x1be)](_0x38d600[_0x524a96(0x151)]()));if(_0x439fee!==-0x1){let _0x560a39=_0x178d77[_0x524a96(_0x3d4351._0x507391)];for(let _0x33b765=_0x439fee+0x1;_0x33b765<_0x178d77['length'];_0x33b765++){if(isSectionDivider(_0x178d77[_0x33b765])){_0x560a39=_0x33b765;break;}}let _0x42b6cb=-0x1,_0x28ab7a=-0x1;for(let _0x588e57=_0x439fee+0x1;_0x588e57<_0x560a39;_0x588e57++){if(_0x178d77[_0x588e57][_0x524a96(0xdc)]()!=='')_0x28ab7a=_0x588e57;if(isAssignmentLine(_0x178d77[_0x588e57]))_0x42b6cb=_0x588e57;}const _0x370b05=_0x42b6cb>=0x0?_0x42b6cb:_0x28ab7a,_0x26bfb5=_0x370b05>=0x0?_0x370b05+0x1:_0x439fee+0x1;return _0x178d77[_0x524a96(0x125)](_0x26bfb5,0x0,_0x2e48fe),joinLines(_0x178d77,_0x477b48||_0x178d77['length']>0x0);}if(_0x178d77[_0x524a96(0x131)]>0x0)_0x178d77[_0x524a96(_0x3d4351._0x346727)]('');return _0x178d77['push']('#\x20---\x20'+_0xa7456b+_0x524a96(0xd4),_0x2e48fe),joinLines(_0x178d77,!![]);}return _0x178d77['push'](_0x2e48fe),joinLines(_0x178d77,!![]);}__name(insertEnvVar,_0x705370(0x1aa));function removeEnvVar(_0x514d5a,_0x27da16){const _0x42913c=_0x705370,{lines:_0x4ce401,trailingNewline:_0x39f931}=splitLines(_0x514d5a),_0x3c85bc=_0x4ce401[_0x42913c(0x1b6)](_0x2fd700=>!isAssignmentOf(_0x2fd700,_0x27da16)),_0x151601=_0x3c85bc['length']!==_0x4ce401['length'];return{'content':joinLines(_0x3c85bc,_0x39f931),'removed':_0x151601};}__name(removeEnvVar,_0x705370(0x10b));var SECTION_BY_KIND={'app':_0x705370(0x152),'runner':'Runner','secret':void 0x0};function planAddVariable(_0x771604){const _0x2300c1={_0x35ddc3:0x16d,_0x5c41ba:0x163,_0x107628:0x163,_0x1bbd0e:0x135,_0x23b471:0x140,_0x3055a4:0x130,_0x6875f9:0x16a},_0x5a3774=_0x705370,{name:_0x1ab331,kind:_0x8ffb8f}=_0x771604;if(_0x8ffb8f===_0x5a3774(0xf6)){if(!isRunnerConfigKey(_0x1ab331))return{'ok':![],'code':_0x5a3774(0x150),'message':_0x1ab331+'\x20is\x20not\x20a\x20known\x20runner\x20setting\x20—\x20choose\x20one\x20from\x20the\x20runner-config\x20list.'};}else{if(!isExternalVarName(_0x1ab331))return{'ok':![],'code':_0x5a3774(_0x2300c1._0x35ddc3),'message':_0x1ab331+'\x20must\x20be\x20UPPER_SNAKE\x20(e.g.\x20APP_BASE_URL)\x20so\x20a\x20scenario\x20can\x20reference\x20it\x20by\x20name.'};}const _0x16ba1d=envKeys(_0x771604['envContent'])[_0x5a3774(0x17e)](_0x1ab331),_0x4aacc7=envKeys(_0x771604[_0x5a3774(0x107)])['has'](_0x1ab331),_0x2741af=_0x8ffb8f===_0x5a3774(0x140)?_0x5a3774(_0x2300c1._0x5c41ba):_0x5a3774(0x154),_0x562217=_0x2741af===_0x5a3774(0x163)?_0x4aacc7:_0x16ba1d,_0x51a98f=_0x2741af===_0x5a3774(_0x2300c1._0x107628)?_0x5a3774(0x136):_0x5a3774(0x112);if(_0x562217)return{'ok':![],'code':_0x5a3774(0x1a9),'message':_0x1ab331+_0x5a3774(0x119)+_0x51a98f+_0x5a3774(_0x2300c1._0x1bbd0e)};const _0x4e4002=[];return _0x8ffb8f===_0x5a3774(_0x2300c1._0x23b471)&&_0x16ba1d&&_0x4e4002[_0x5a3774(0x130)](_0x1ab331+_0x5a3774(0x147)),_0x8ffb8f!==_0x5a3774(0x140)&&_0x4aacc7&&_0x4e4002[_0x5a3774(_0x2300c1._0x3055a4)](_0x1ab331+_0x5a3774(_0x2300c1._0x6875f9)),{'ok':!![],'target':_0x2741af,'sectionLabel':SECTION_BY_KIND[_0x8ffb8f],'warnings':_0x4e4002};}__name(planAddVariable,_0x705370(0xc6));function deleteShadowWarning(_0x147b0d,_0x546821,_0xa849f3){const _0x69f909=_0x705370;if(_0xa849f3!==void 0x0&&_0xa849f3!==_0x546821)return[_0x147b0d+_0x69f909(0x192)];return[];}__name(deleteShadowWarning,_0x705370(0x11a));var TERMINAL_RUNTIME_STATES=['completed',_0x705370(0x13c),_0x705370(0x124)];function isTerminalRuntimeState(_0x2b6311){return TERMINAL_RUNTIME_STATES['includes'](_0x2b6311);}__name(isTerminalRuntimeState,'isTerminalRuntimeState');var JUDGE_ROUTES={'judge':_0x705370(0x17c),'health':_0x705370(0x179)},JUDGE_ENV={'mode':'UNOTEST_JUDGE_MODE','url':_0x705370(0x194),'token':'UNOTEST_JUDGE_TOKEN','requestTimeoutMs':_0x705370(0x137),'preamble':_0x705370(0x12f),'provider':_0x705370(0x18a),'model':_0x705370(0x168),'callTimeoutMs':'UNOTEST_JUDGE_CALL_TIMEOUT_MS','retries':_0x705370(0xec),'vote':_0x705370(0x1bd),'accessToken':'UNOTEST_JUDGE_ACCESS_TOKEN','claudeBin':_0x705370(0x144),'host':_0x705370(0x16f),'port':_0x705370(0x175),'logLevel':_0x705370(0x138),'skipPreflight':'UNOTEST_JUDGE_SKIP_PREFLIGHT'};export{ARTIFACTS_ROOT_ENV,BLOBS_DIR,BOX_TOKEN_ENV,BOX_URL_ENV,BUNDLE_ID_ENV,BUNDLE_MANIFEST_FILE,BUNDLE_SCHEMA_VERSION,BUNDLE_UPLOAD_PATH,CI_RUN_PATH,COLLECTIONS_SUBDIR,COLLECTION_NAME_FORBIDDEN_RE,COMMANDS_FILE,DAY_INDEX_FILE,E2E_SUBDIR,ENV_FILE,EXPECT_FAIL_ANNOTATION,HEARTBEAT_FILE,HELPERS_SUBDIR,InvalidBlobHashError,JUDGE_ENV,JUDGE_ROUTES,LOCK_FILE,LOG_FILE,PICKER_SNAPSHOT_FILE,QUEUE_DISABLED_ENV,QUEUE_GLOBAL_DIR_ENV,QUEUE_GLOBAL_SLOTS_ENV,QUEUE_LEASE_ENV,QUEUE_MUTEX_FILE,QUEUE_PRIORITIES,QUEUE_RUNNING_DIR,QUEUE_SCHEMA_VERSION,QUEUE_SLOTS_DIR,QUEUE_SUBDIR,QUEUE_TICKETS_DIR,RUNNER_CONFIG_KEYS,RUNS_SUBDIR,RUNTIME_FILE,RUN_INDEX_SCHEMA_VERSION,RUN_MANIFEST_FILE,RUN_SOURCES_FILE,RunnerAdapterNotFoundError,RunnerNotConfiguredError,SCENARIOS_INDEX_DIR,SCENARIOS_LATEST_FILE,SCENARIO_RECENT_WINDOW,SECRETS_FILE,SEGMENT_NAME_FORBIDDEN_RE,SNAPSHOTS_SUBDIR,STDERR_FILE,STDOUT_FILE,STEPS_FILE,TERMINAL_RUNTIME_STATES,TERMINAL_WS_EVENT,UNOTEST_DIR,UnplaceableRunIdError,UnsupportedRunKindError,WORKSPACE_FILE,WORKSPACE_SCHEMA_VERSION,activeEnvName,artifactsRootFrom,blobPathFor,blobRelPathFor,blobRelSegmentsFor,blobsRootFor,categorizeVariable,compareQueueTicketNames,debugDirFor,debuggerFileFor,deleteShadowWarning,describeBundle,describeTicketCi,envFileFor,envKeys,envLayerFilesFor,envNamesFromDirListing,foldScenarioRun,insertEnvVar,isAnnotationLine,isExternalVarName,isFailingStatus,isQueueDirName,isRecord,isRegexLiteral,isRunnerConfigKey,isRunsDirName,isTerminalRuntimeState,makeQueueTicketName,makeRunId,parseAppServerEvent,parseBundleManifest,parseBundleUploadResponse,parseCiProvider,parseCiRunRequest,parseCiRunResponse,parseEnvContent,parseQueueTicket,parseQueueTicketName,parseScenarioAnnotations,parseScheduleEntry,parseSchedulesJson,parseWorkspaceFile,planAddVariable,projectQueueRoot,projectRunDirFor,projectRunsRoot,queueDirFor,queuePriorityFromRank,queuePriorityRank,regexLiteral,removeEnvVar,requireRunDirFor,runDirFor,runIdStartedAt,runsDirFor,sanitizeRunIdSegment,scenarioIndexFileName,scenarioRefFromFileName,secretsFileFor,secretsLayerFilesFor,serializeEnvValue,shardDaysDescending,shardDirFor,shardPathForRunId,shardPathForTimestamp,testDirFor,validateCollectionName,validateSegmentName};
1
+ const _0x213977=_0x1666;(function(_0x9bfdac,_0x14c09c){const _0x41949b={_0x6496d6:0x27e,_0x2329ae:0x28c,_0x46cd52:0x17c,_0x53ee56:0x1ab,_0x1d2479:0x1f9,_0x320613:0x18d,_0x25dc86:0x1b7},_0x5d43ab=_0x1666,_0xa332b7=_0x9bfdac();while(!![]){try{const _0x258472=parseInt(_0x5d43ab(_0x41949b._0x6496d6))/0x1+parseInt(_0x5d43ab(0x17d))/0x2+-parseInt(_0x5d43ab(_0x41949b._0x2329ae))/0x3*(parseInt(_0x5d43ab(_0x41949b._0x46cd52))/0x4)+-parseInt(_0x5d43ab(_0x41949b._0x53ee56))/0x5*(-parseInt(_0x5d43ab(_0x41949b._0x1d2479))/0x6)+-parseInt(_0x5d43ab(0x292))/0x7+parseInt(_0x5d43ab(_0x41949b._0x320613))/0x8+-parseInt(_0x5d43ab(_0x41949b._0x25dc86))/0x9;if(_0x258472===_0x14c09c)break;else _0xa332b7['push'](_0xa332b7['shift']());}catch(_0xf7d2b4){_0xa332b7['push'](_0xa332b7['shift']());}}}(_0x4112,0x7c4f1));var __defProp=Object[_0x213977(0x1a2)],__name=(_0x7a72db,_0x519155)=>__defProp(_0x7a72db,_0x213977(0x1e9),{'value':_0x519155,'configurable':!![]});function parseAppServerEvent(_0xe77c60){const _0x1fd066={_0x59c688:0x1f4,_0x2f212f:0x24a,_0x1668bc:0x283,_0x7ad98a:0x271,_0x1ddfb0:0x1d9},_0x53273d=_0x213977,_0x364c0d=_0xe77c60[_0x53273d(0x1cc)]();if(!_0x364c0d[_0x53273d(_0x1fd066._0x59c688)]('{'))return null;try{const _0x148984=JSON[_0x53273d(_0x1fd066._0x2f212f)](_0x364c0d);if(_0x148984[_0x53273d(_0x1fd066._0x1668bc)]==='app-server:ready'||_0x148984[_0x53273d(0x283)]===_0x53273d(_0x1fd066._0x7ad98a)||_0x148984[_0x53273d(0x283)]===_0x53273d(_0x1fd066._0x1ddfb0))return _0x148984;return null;}catch{return null;}}__name(parseAppServerEvent,_0x213977(0x1b3));function isRecord(_0x23ce0b){const _0x5cffef={_0x219b8d:0x261,_0x576844:0x1d5},_0xa4e307=_0x213977;return typeof _0x23ce0b===_0xa4e307(_0x5cffef._0x219b8d)&&_0x23ce0b!==null&&!Array[_0xa4e307(_0x5cffef._0x576844)](_0x23ce0b);}__name(isRecord,_0x213977(0x20b));var UNOTEST_DIR='unotest',E2E_SUBDIR=_0x213977(0x25b),HELPERS_SUBDIR=_0x213977(0x26f),COLLECTIONS_SUBDIR='_collections',RUNS_SUBDIR='.runs',SNAPSHOTS_SUBDIR='.snapshots';function testDirFor(_0xbf09a9){return''+E2E_SUBDIR+_0xbf09a9;}__name(testDirFor,_0x213977(0x1f1));function runsDirFor(_0x2d370e,_0x42d003){return''+RUNS_SUBDIR+_0x2d370e+(_0x42d003?'.'+_0x42d003:'');}__name(runsDirFor,_0x213977(0x215));function isRunsDirName(_0x5c5310){const _0x419754={_0x443874:0x1f4},_0x8900ef=_0x213977;return _0x5c5310===RUNS_SUBDIR||_0x5c5310[_0x8900ef(_0x419754._0x443874)](RUNS_SUBDIR+'-')||_0x5c5310[_0x8900ef(0x1f4)](RUNS_SUBDIR+'.');}__name(isRunsDirName,_0x213977(0x29b));function debugDirFor(_0x5a2c67){const _0x4ff8a2=_0x213977;return _0x4ff8a2(0x222)+_0x5a2c67;}__name(debugDirFor,'debugDirFor');function debuggerFileFor(_0x15bd76){const _0x4a4a6c={_0x597af5:0x230},_0x9206e1=_0x213977;return UNOTEST_DIR+_0x9206e1(_0x4a4a6c._0x597af5)+_0x15bd76+_0x9206e1(0x24b);}__name(debuggerFileFor,'debuggerFileFor');var LOCK_FILE=_0x213977(0x1e2),LOG_FILE=_0x213977(0x21a),STEPS_FILE='steps.jsonl',HEARTBEAT_FILE=_0x213977(0x1b9),DAY_INDEX_FILE=_0x213977(0x25a),SCENARIOS_INDEX_DIR=_0x213977(0x229),SCENARIOS_LATEST_FILE=_0x213977(0x286),STDOUT_FILE=_0x213977(0x176),STDERR_FILE=_0x213977(0x1e8),COMMANDS_FILE=_0x213977(0x238),RUNTIME_FILE='runtime.json',PICKER_SNAPSHOT_FILE='picker-snapshot.txt',ENV_FILE=_0x213977(0x1a4),SECRETS_FILE=_0x213977(0x235),SCHEDULES_FILE='unotest/schedules.yaml';function envFileFor(_0x2aa361,_0x4f414f){return''+ENV_FILE+_0x2aa361+(_0x4f414f?'.'+_0x4f414f:'');}__name(envFileFor,_0x213977(0x21f));function secretsFileFor(_0x44cc61,_0x2c78e8){return''+SECRETS_FILE+_0x44cc61+(_0x2c78e8?'.'+_0x2c78e8:'');}__name(secretsFileFor,_0x213977(0x255));function envLayerFilesFor(_0x588578,_0x438da0){return layersFor(ENV_FILE,_0x588578,_0x438da0);}__name(envLayerFilesFor,_0x213977(0x250));function secretsLayerFilesFor(_0x59cccb,_0x2dea59){return layersFor(SECRETS_FILE,_0x59cccb,_0x2dea59);}__name(secretsLayerFilesFor,_0x213977(0x188));function layersFor(_0x1669e1,_0x5a988a,_0x1924fa){const _0x4ca7bd={_0x312586:0x1e5},_0x164526=_0x213977,_0x128cf7=[_0x1669e1];if(_0x5a988a)_0x128cf7[_0x164526(_0x4ca7bd._0x312586)](''+_0x1669e1+_0x5a988a);if(_0x1924fa){_0x128cf7['push'](_0x1669e1+'.'+_0x1924fa);if(_0x5a988a)_0x128cf7['push'](''+_0x1669e1+_0x5a988a+'.'+_0x1924fa);}return _0x128cf7;}__name(layersFor,_0x213977(0x177));var ARTIFACTS_ROOT_ENV='UNOTEST_ARTIFACTS_ROOT';function artifactsRootFrom(_0x4de972,_0x31aa75){const _0x34011e={_0x54a285:0x1cc},_0x26a2b0=_0x213977,_0x3bac2a=_0x4de972[ARTIFACTS_ROOT_ENV]?.[_0x26a2b0(_0x34011e._0x54a285)]();return _0x3bac2a?_0x3bac2a:_0x31aa75;}__name(artifactsRootFrom,_0x213977(0x253));function activeEnvName(_0x2fe831){const _0x25d12f=_0x213977,_0x2ab34e=_0x2fe831['UNOTEST_ENV']?.[_0x25d12f(0x1cc)]();return _0x2ab34e?_0x2ab34e:void 0x0;}__name(activeEnvName,_0x213977(0x20f));var RESERVED_ENV_NAMES=new Set(['example','sample',_0x213977(0x19d)]);function envNamesFromDirListing(_0x4b9108,_0x251d63){const _0x411a85={_0x58b9aa:0x260,_0x9027d9:0x204,_0x5ce917:0x1b0,_0x1fca3e:0x25c},_0x3d4925=_0x213977,_0x3fa392=[_0x3d4925(0x275),_0x3d4925(_0x411a85._0x58b9aa)][_0x3d4925(_0x411a85._0x9027d9)](_0x244b33=>_0x251d63?[_0x244b33,''+_0x244b33+_0x251d63]:[_0x244b33]),_0x4a45ac=new Set();for(const _0x1e0684 of _0x4b9108){for(const _0x43cbf9 of _0x3fa392){const _0x167e77=_0x43cbf9+'.';if(!_0x1e0684[_0x3d4925(0x1f4)](_0x167e77))continue;const _0x506853=_0x1e0684[_0x3d4925(0x1da)](_0x167e77[_0x3d4925(_0x411a85._0x5ce917)]);if(!_0x506853||_0x506853['includes']('/'))continue;if(RESERVED_ENV_NAMES[_0x3d4925(0x243)](_0x506853))continue;_0x4a45ac[_0x3d4925(0x263)](_0x506853);}}return[..._0x4a45ac][_0x3d4925(_0x411a85._0x1fca3e)]();}__name(envNamesFromDirListing,_0x213977(0x1f7));function isRegexLiteral(_0x28216e){const _0x2599ad={_0xfb41c6:0x261,_0x2a2671:0x283},_0xada3af=_0x213977;return typeof _0x28216e===_0xada3af(_0x2599ad._0xfb41c6)&&_0x28216e!==null&&_0x28216e[_0xada3af(_0x2599ad._0x2a2671)]===_0xada3af(0x233)&&typeof _0x28216e[_0xada3af(0x208)]===_0xada3af(0x272)&&typeof _0x28216e['flags']===_0xada3af(0x272);}__name(isRegexLiteral,_0x213977(0x290));function regexLiteral(_0x588824,_0x4b7017=''){const _0xf8db3e={_0x2714bf:0x233},_0x4f855d=_0x213977;return{'kind':_0x4f855d(_0xf8db3e._0x2714bf),'source':_0x588824,'flags':_0x4b7017};}__name(regexLiteral,_0x213977(0x1c8));var RAND_BYTES=0x6;function makeRunId(_0x391fe1){const _0x85391d={_0x5e1b7f:0x1c3,_0x8f2495:0x1c0,_0x51407d:0x211,_0x2a0644:0x296,_0x41f7d1:0x1b0,_0x4eff01:0x179},_0xa8cd2e=_0x213977,_0x58c517=sanitizeRunIdSegment(_0x391fe1),_0x2b0a0b=Date[_0xa8cd2e(_0x85391d._0x5e1b7f)]()[_0xa8cd2e(_0x85391d._0x8f2495)](0x24),_0x114f5e=new Uint8Array(RAND_BYTES);globalThis[_0xa8cd2e(_0x85391d._0x51407d)][_0xa8cd2e(_0x85391d._0x2a0644)](_0x114f5e);let _0x2ab621='';for(let _0x3c8674=0x0;_0x3c8674<_0x114f5e[_0xa8cd2e(_0x85391d._0x41f7d1)];_0x3c8674++){_0x2ab621+=_0x114f5e[_0x3c8674]['toString'](0x10)[_0xa8cd2e(_0x85391d._0x4eff01)](0x2,'0');}return _0x58c517+'-'+_0x2b0a0b+'-'+_0x2ab621;}__name(makeRunId,'makeRunId');function sanitizeRunIdSegment(_0x57872c){const _0x522c2d={_0xe2f13a:0x29c,_0x50f10a:0x1b0},_0x31b4d8=_0x213977,_0x23feb2=_0x57872c[_0x31b4d8(_0x522c2d._0xe2f13a)](/[^a-zA-Z0-9_-]+/g,'-')['replace'](/-+/g,'-')[_0x31b4d8(0x29c)](/^-|-$/g,'');return _0x23feb2[_0x31b4d8(_0x522c2d._0x50f10a)]>0x0?_0x23feb2:'run';}__name(sanitizeRunIdSegment,_0x213977(0x170));var RANDOM_SUFFIX_RE=/^[0-9a-f]{6,}$/,MIN_PLAUSIBLE_MS=Date[_0x213977(0x1e3)](0x7e4,0x0,0x1),MAX_PLAUSIBLE_MS=Date[_0x213977(0x1e3)](0x834,0x0,0x1);function runIdStartedAt(_0x73fb2a){const _0x868c3={_0x1e3998:0x18c,_0x2397a0:0x1b0},_0x9100e9=_0x213977,_0x461bee=_0x73fb2a[_0x9100e9(_0x868c3._0x1e3998)]('-');if(_0x461bee[_0x9100e9(0x1b0)]<0x3)return null;const _0x34a145=_0x461bee[_0x461bee['length']-0x1];if(!RANDOM_SUFFIX_RE['test'](_0x34a145))return null;const _0x3f6a3c=_0x461bee[_0x461bee[_0x9100e9(_0x868c3._0x2397a0)]-0x2];if(!/^[0-9a-z]+$/['test'](_0x3f6a3c))return null;const _0x398c8c=parseInt(_0x3f6a3c,0x24);if(!Number['isFinite'](_0x398c8c))return null;if(_0x398c8c<MIN_PLAUSIBLE_MS||_0x398c8c>=MAX_PLAUSIBLE_MS)return null;return _0x398c8c;}__name(runIdStartedAt,_0x213977(0x194));function shardPathForTimestamp(_0x281c59){const _0x15a32e={_0x1643c8:0x187,_0x563414:0x1d3,_0x52f0b4:0x179},_0x14d558=_0x213977,_0x247599=new Date(_0x281c59),_0x1cd572=String(_0x247599[_0x14d558(_0x15a32e._0x1643c8)]())[_0x14d558(0x179)](0x4,'0'),_0x29450c=String(_0x247599['getUTCMonth']()+0x1)[_0x14d558(0x179)](0x2,'0'),_0xfad31=String(_0x247599[_0x14d558(_0x15a32e._0x563414)]())[_0x14d558(_0x15a32e._0x52f0b4)](0x2,'0');return _0x1cd572+'/'+_0x29450c+'/'+_0xfad31;}__name(shardPathForTimestamp,_0x213977(0x1ac));function shardPathForRunId(_0x1e12de){const _0x39ca61=runIdStartedAt(_0x1e12de);return _0x39ca61===null?null:shardPathForTimestamp(_0x39ca61);}__name(shardPathForRunId,'shardPathForRunId');function runDirFor(_0x3073ce,_0x55c98a){const _0x545773=shardPathForRunId(_0x55c98a);return _0x545773===null?null:_0x3073ce+'/'+_0x545773+'/'+_0x55c98a;}__name(runDirFor,_0x213977(0x1bb));var UnplaceableRunIdError=class extends Error{static{__name(this,_0x213977(0x1dc));}constructor(_0x2cebc0){const _0x5a0dba={_0x2730db:0x278},_0x164ce1=_0x213977;super(_0x164ce1(_0x5a0dba._0x2730db)+_0x2cebc0),this['name']='UnplaceableRunIdError';}};function requireRunDirFor(_0x2964bd,_0x18b9f9){const _0x4b721a=runDirFor(_0x2964bd,_0x18b9f9);if(_0x4b721a===null)throw new UnplaceableRunIdError(_0x18b9f9);return _0x4b721a;}__name(requireRunDirFor,_0x213977(0x22e));function projectRunsRoot(_0x1bb4ca='',_0x2e2d7f){return UNOTEST_DIR+'/'+runsDirFor(_0x1bb4ca,_0x2e2d7f);}__name(projectRunsRoot,_0x213977(0x1a7));function projectRunDirFor(_0xc8da82,_0x258261='',_0x3d5888){return requireRunDirFor(projectRunsRoot(_0x258261,_0x3d5888),_0xc8da82);}__name(projectRunDirFor,_0x213977(0x214));function shardDirFor(_0x24813c,_0x3a6c6e){return _0x24813c+'/'+shardPathForTimestamp(_0x3a6c6e);}__name(shardDirFor,_0x213977(0x173));function*shardDaysDescending(_0x195902,_0x18879a,_0x4b4b1b){const _0x44d783={_0x5dfcac:0x17b},_0x4b1ee9=_0x213977,_0x5c42cb=0x5265c00;let _0x5a2c8c=Math[_0x4b1ee9(_0x44d783._0x5dfcac)](_0x18879a/_0x5c42cb)*_0x5c42cb;for(let _0x4db493=0x0;_0x4db493<_0x4b4b1b;_0x4db493++){yield shardDirFor(_0x195902,_0x5a2c8c),_0x5a2c8c-=_0x5c42cb;}}__name(shardDaysDescending,'shardDaysDescending');var RUN_INDEX_SCHEMA_VERSION=0x2,SCENARIO_RECENT_WINDOW=0xc;function isFailingStatus(_0x327086){const _0x3843ec=_0x213977;return _0x327086===_0x3843ec(0x1c9)||_0x327086==='interrupted';}__name(isFailingStatus,_0x213977(0x270));function foldScenarioRun(_0x3e800c,_0x2eb69d){const _0x21deee={_0x1f23f9:0x234,_0x528340:0x1c6},_0xe3c75f=_0x213977,_0x21e94a={'lastRunId':_0x2eb69d['runId'],'lastStatus':_0x2eb69d[_0xe3c75f(0x23a)],'lastAt':_0x2eb69d[_0xe3c75f(_0x21deee._0x1f23f9)],'lastDurationMs':_0x2eb69d[_0xe3c75f(0x202)],'recent':[..._0x3e800c?.[_0xe3c75f(_0x21deee._0x528340)]??[],_0x2eb69d[_0xe3c75f(0x23a)]][_0xe3c75f(0x1da)](-SCENARIO_RECENT_WINDOW)};if(!isFailingStatus(_0x2eb69d[_0xe3c75f(0x23a)]))return{..._0x21e94a,'failStreak':0x0,'failingSince':null};const _0x27fcfe=(_0x3e800c?.[_0xe3c75f(0x19b)]??0x0)+0x1;return{..._0x21e94a,'failStreak':_0x27fcfe,'failingSince':_0x27fcfe===0x1?_0x2eb69d[_0xe3c75f(_0x21deee._0x1f23f9)]:_0x3e800c?.['failingSince']??_0x2eb69d[_0xe3c75f(0x234)]};}__name(foldScenarioRun,_0x213977(0x21d));function scenarioIndexFileName(_0x181306){const _0x53354b=_0x213977;return encodeURIComponent(_0x181306)+_0x53354b(0x1e7);}__name(scenarioIndexFileName,'scenarioIndexFileName');function scenarioRefFromFileName(_0x4c09a2){const _0xc78d49={_0x271585:0x1e7,_0x195be0:0x1b0},_0x4bd355=_0x213977;if(!_0x4c09a2[_0x4bd355(0x1aa)](_0x4bd355(_0xc78d49._0x271585)))return null;try{return decodeURIComponent(_0x4c09a2[_0x4bd355(0x1da)](0x0,-_0x4bd355(0x1e7)[_0x4bd355(_0xc78d49._0x195be0)]));}catch{return null;}}__name(scenarioRefFromFileName,_0x213977(0x16d));var CI_RUN_PATH='/api/box/ci/run',PROVIDER_IDS=['github',_0x213977(0x1be),'api'],RUN_ERROR_CODES=['unauthorized',_0x213977(0x28f),'unknown-environment',_0x213977(0x221),'no-collections',_0x213977(0x1ee),_0x213977(0x1af)];function parseCiRunRequest(_0x3a0fdd){const _0x3609b8={_0x42de96:0x272,_0x8d28e0:0x1b0,_0x5b45b9:0x1d5,_0xdc2ad2:0x182,_0x180316:0x26b},_0x314fde=_0x213977;if(!isRecord(_0x3a0fdd))return null;const {bundleId:_0x1e82b0,environment:_0x56b222,collections:_0x14442c,pr:_0x1e2698,branch:_0x49135a,sha:_0x3ec62c}=_0x3a0fdd;if(typeof _0x1e82b0!=='string'||_0x1e82b0['length']===0x0)return null;if(typeof _0x56b222!==_0x314fde(_0x3609b8._0x42de96)||_0x56b222[_0x314fde(_0x3609b8._0x8d28e0)]===0x0)return null;let _0x17023b=null;if(_0x14442c!==void 0x0){if(!Array[_0x314fde(_0x3609b8._0x5b45b9)](_0x14442c))return null;if(_0x14442c[_0x314fde(_0x3609b8._0xdc2ad2)](_0x594d89=>typeof _0x594d89!==_0x314fde(0x272)||_0x594d89[_0x314fde(0x1b0)]===0x0))return null;_0x17023b=_0x14442c;}if(_0x1e2698!==void 0x0&&(typeof _0x1e2698!==_0x314fde(_0x3609b8._0x180316)||!Number[_0x314fde(0x1d0)](_0x1e2698)))return null;for(const _0x287fbf of[_0x49135a,_0x3ec62c]){if(_0x287fbf!==void 0x0&&typeof _0x287fbf!==_0x314fde(_0x3609b8._0x42de96))return null;}return{'bundleId':_0x1e82b0,'environment':_0x56b222,..._0x17023b?{'collections':_0x17023b}:{},...typeof _0x1e2698==='number'?{'pr':_0x1e2698}:{},...typeof _0x49135a===_0x314fde(0x272)?{'branch':_0x49135a}:{},...typeof _0x3ec62c==='string'?{'sha':_0x3ec62c}:{}};}__name(parseCiRunRequest,_0x213977(0x264));function parseCiRunResponse(_0x19a60e){const _0x28e0da={_0xc92647:0x216,_0x564546:0x272,_0x317af0:0x1e5,_0x5dea2d:0x26b},_0x242370=_0x213977;if(!isRecord(_0x19a60e))return null;if(isRecord(_0x19a60e[_0x242370(0x216)])){const {code:_0x6b5571,message:_0x70e783}=_0x19a60e[_0x242370(_0x28e0da._0xc92647)];if(!RUN_ERROR_CODES['includes'](_0x6b5571))return null;if(typeof _0x70e783!=='string')return null;return{'error':{'code':_0x6b5571,'message':_0x70e783}};}const {status:_0x459a01,bundleId:_0x15e61b,environment:_0x4cd6f4,runs:_0x2334e4,superseded:_0xa2075b}=_0x19a60e;if(_0x459a01!==_0x242370(0x199))return null;if(typeof _0x15e61b!==_0x242370(0x272)||typeof _0x4cd6f4!==_0x242370(0x272))return null;if(!Array['isArray'](_0x2334e4))return null;const _0x50f099=[];for(const _0x3e9cdc of _0x2334e4){if(!isRecord(_0x3e9cdc))return null;const {runId:_0x2afbab,collection:_0x408dde}=_0x3e9cdc;if(typeof _0x2afbab!==_0x242370(_0x28e0da._0x564546)||typeof _0x408dde!=='string')return null;_0x50f099[_0x242370(_0x28e0da._0x317af0)]({'runId':_0x2afbab,'collection':_0x408dde});}if(_0xa2075b!==void 0x0&&typeof _0xa2075b!=='number')return null;return{'status':'queued','bundleId':_0x15e61b,'environment':_0x4cd6f4,'runs':_0x50f099,...typeof _0xa2075b===_0x242370(_0x28e0da._0x5dea2d)?{'superseded':_0xa2075b}:{}};}__name(parseCiRunResponse,_0x213977(0x191));function parseCiProvider(_0x4b0f6e){const _0x267a74={_0x3cfa80:0x218},_0x4cae92=_0x213977;return PROVIDER_IDS[_0x4cae92(_0x267a74._0x3cfa80)](_0x4b0f6e)?_0x4b0f6e:null;}__name(parseCiProvider,_0x213977(0x1a8));var QUEUE_SUBDIR=_0x213977(0x23c),QUEUE_TICKETS_DIR=_0x213977(0x1b6),QUEUE_RUNNING_DIR=_0x213977(0x1d4),QUEUE_SLOTS_DIR='slots',QUEUE_MUTEX_FILE=_0x213977(0x185),QUEUE_LEASE_ENV=_0x213977(0x1fd),QUEUE_DISABLED_ENV='UNOTEST_NO_QUEUE',QUEUE_GLOBAL_DIR_ENV=_0x213977(0x299),QUEUE_GLOBAL_SLOTS_ENV='UNOTEST_QUEUE_GLOBAL_SLOTS',QUEUE_SCHEMA_VERSION=0x1;function queueDirFor(_0x188a66,_0x2a3db0){return''+QUEUE_SUBDIR+_0x188a66+(_0x2a3db0?'.'+_0x2a3db0:'');}__name(queueDirFor,'queueDirFor');function isQueueDirName(_0x31afef){const _0x2f1341={_0x10281c:0x1f4},_0x453f3e=_0x213977;return _0x31afef===QUEUE_SUBDIR||_0x31afef['startsWith'](QUEUE_SUBDIR+'-')||_0x31afef[_0x453f3e(_0x2f1341._0x10281c)](QUEUE_SUBDIR+'.');}__name(isQueueDirName,_0x213977(0x294));function projectQueueRoot(_0xbc3c1d='',_0x2b3d30){return UNOTEST_DIR+'/'+queueDirFor(_0xbc3c1d,_0x2b3d30);}__name(projectQueueRoot,'projectQueueRoot');var PRIORITY_RANKS=Object[_0x213977(0x207)]({'maintenance':0x0,'interactive':0x1,'ci':0x2,'schedule':0x3}),RANK_PRIORITIES=[_0x213977(0x1c1),_0x213977(0x17e),'ci','schedule'],QUEUE_PRIORITIES=RANK_PRIORITIES;function queuePriorityRank(_0x113f1c){return PRIORITY_RANKS[_0x113f1c];}__name(queuePriorityRank,'queuePriorityRank');function queuePriorityFromRank(_0x443261){return RANK_PRIORITIES[_0x443261]??null;}__name(queuePriorityFromRank,'queuePriorityFromRank');function describeTicketCi(_0x10f8bd){const _0x577776={_0x4fd288:0x1e6,_0xebc8be:0x25d,_0x46696d:0x1f0,_0x20ca5c:0x1da},_0xcea7a=_0x213977,_0x311b39=_0x10f8bd[_0xcea7a(_0x577776._0x4fd288)]?'@'+_0x10f8bd['sha'][_0xcea7a(0x1da)](0x0,0x7):'';if(_0x10f8bd['pr']!==void 0x0)return _0xcea7a(_0x577776._0xebc8be)+_0x10f8bd['pr']+_0x311b39;if(_0x10f8bd[_0xcea7a(_0x577776._0x46696d)]!==void 0x0)return''+_0x10f8bd['branch']+_0x311b39;return _0x311b39[_0xcea7a(0x1b0)]>0x0?_0x311b39[_0xcea7a(_0x577776._0x20ca5c)](0x1):_0x10f8bd[_0xcea7a(0x22f)];}__name(describeTicketCi,_0x213977(0x22a));function makeQueueTicketName(_0x5810d1,_0x2a8852,_0xc4d2c1){return queuePriorityRank(_0x5810d1)+'-'+_0x2a8852['toString'](0x24)+'-'+_0xc4d2c1+'.json';}__name(makeQueueTicketName,'makeQueueTicketName');var TICKET_NAME_RE=/^([0-3])-([0-9a-z]+)-([0-9a-f]+)\.json$/;function parseQueueTicketName(_0x5459b0){const _0x535221={_0x3a782d:0x293,_0x20179f:0x184},_0x5a2bd4=_0x213977,_0x42245c=TICKET_NAME_RE[_0x5a2bd4(_0x535221._0x3a782d)](_0x5459b0);if(!_0x42245c)return null;const _0x4c7a95=Number(_0x42245c[0x1]),_0x58ef72=queuePriorityFromRank(_0x4c7a95);if(_0x58ef72===null)return null;const _0x55cd6e=parseInt(_0x42245c[0x2],0x24);if(!Number[_0x5a2bd4(_0x535221._0x20179f)](_0x55cd6e))return null;return{'rank':_0x4c7a95,'priority':_0x58ef72,'createdAt':_0x55cd6e,'random':_0x42245c[0x3]};}__name(parseQueueTicketName,'parseQueueTicketName');function compareQueueTicketNames(_0x54959f,_0x2316df){const _0x5aa4b8={_0x50d26f:0x29a,_0x2595cd:0x16e,_0x5a55d7:0x16e},_0x2df1e6=_0x213977,_0x194f32=parseQueueTicketName(_0x54959f),_0x541e29=parseQueueTicketName(_0x2316df);if(!_0x194f32||!_0x541e29)return _0x54959f<_0x2316df?-0x1:_0x54959f>_0x2316df?0x1:0x0;if(_0x194f32[_0x2df1e6(0x29a)]!==_0x541e29['rank'])return _0x194f32['rank']-_0x541e29[_0x2df1e6(_0x5aa4b8._0x50d26f)];if(_0x194f32['createdAt']!==_0x541e29[_0x2df1e6(0x1b8)])return _0x194f32[_0x2df1e6(0x1b8)]-_0x541e29['createdAt'];return _0x194f32['random']<_0x541e29[_0x2df1e6(_0x5aa4b8._0x2595cd)]?-0x1:_0x194f32[_0x2df1e6(_0x5aa4b8._0x5a55d7)]>_0x541e29[_0x2df1e6(0x16e)]?0x1:0x0;}__name(compareQueueTicketNames,'compareQueueTicketNames');var TICKET_KINDS=[_0x213977(0x262),_0x213977(0x1a9),_0x213977(0x19c),_0x213977(0x1c1)],PRODUCER_KINDS=[_0x213977(0x224),_0x213977(0x1b5),_0x213977(0x1ce),'schedule','ci'];function parseQueueTicket(_0x581cb1){const _0x954860={_0x3e6927:0x272,_0x2762c5:0x218,_0x2114e5:0x26b,_0x2e7ef3:0x26b,_0x18d593:0x272,_0x4aa83a:0x1ca,_0x4bac24:0x193},_0x19979a=_0x213977;if(!isRecord(_0x581cb1))return null;const {schemaVersion:_0xe9eeb3,runId:_0x36ec4d,kind:_0x2b4869,ref:_0x62f200,env:_0x1b977c,priority:_0x497d58,weight:_0x30f6b9,producer:_0x4d94b0,source:_0x39172d,ci:_0x234b0a,createdAt:_0x54b7ca}=_0x581cb1;if(_0xe9eeb3!==QUEUE_SCHEMA_VERSION)return null;if(typeof _0x36ec4d!=='string'||_0x36ec4d[_0x19979a(0x1b0)]===0x0)return null;if(typeof _0x62f200!==_0x19979a(_0x954860._0x3e6927))return null;if(!TICKET_KINDS['includes'](_0x2b4869))return null;if(!QUEUE_PRIORITIES[_0x19979a(_0x954860._0x2762c5)](_0x497d58))return null;if(typeof _0x30f6b9!==_0x19979a(_0x954860._0x2114e5)||!Number[_0x19979a(0x184)](_0x30f6b9)||_0x30f6b9<0x1)return null;if(typeof _0x54b7ca!==_0x19979a(_0x954860._0x2e7ef3)||!Number[_0x19979a(0x184)](_0x54b7ca))return null;if(!isRecord(_0x4d94b0))return null;if(!PRODUCER_KINDS[_0x19979a(0x218)](_0x4d94b0[_0x19979a(0x283)]))return null;if(typeof _0x4d94b0['pid']!=='number'||typeof _0x4d94b0[_0x19979a(0x193)]!==_0x19979a(_0x954860._0x18d593))return null;if(_0x1b977c!==void 0x0&&typeof _0x1b977c!=='string')return null;let _0x3392a2=null;if(_0x39172d!==void 0x0){if(!isRecord(_0x39172d)||typeof _0x39172d[_0x19979a(_0x954860._0x4aa83a)]!==_0x19979a(_0x954860._0x3e6927)||_0x39172d[_0x19979a(_0x954860._0x4aa83a)]['length']===0x0)return null;_0x3392a2={'bundleId':_0x39172d[_0x19979a(_0x954860._0x4aa83a)]};}let _0x35afd7=null;if(_0x234b0a!==void 0x0){_0x35afd7=parseTicketCi(_0x234b0a);if(_0x35afd7===null)return null;}return{'schemaVersion':QUEUE_SCHEMA_VERSION,'runId':_0x36ec4d,'kind':_0x2b4869,'ref':_0x62f200,'priority':_0x497d58,'weight':_0x30f6b9,'producer':{'kind':_0x4d94b0['kind'],'pid':_0x4d94b0[_0x19979a(0x268)],'host':_0x4d94b0[_0x19979a(_0x954860._0x4bac24)]},'createdAt':_0x54b7ca,...typeof _0x1b977c===_0x19979a(0x272)?{'env':_0x1b977c}:{},..._0x3392a2?{'source':_0x3392a2}:{},..._0x35afd7?{'ci':_0x35afd7}:{}};}__name(parseQueueTicket,_0x213977(0x1cf));function parseTicketCi(_0x353f32){const _0x1e0759={_0x94b101:0x272,_0x2b5fc4:0x26b,_0x2bb627:0x272,_0x22c919:0x272},_0x16ec02=_0x213977;if(!isRecord(_0x353f32))return null;const _0x3774c4=parseCiProvider(_0x353f32['provider']);if(_0x3774c4===null)return null;const {repo:_0x5f81c,branch:_0x1ff404,sha:_0x896f39,pr:_0x55997d,checkId:_0xaa9f3}=_0x353f32;for(const _0x435f6f of[_0x5f81c,_0x1ff404,_0x896f39,_0xaa9f3]){if(_0x435f6f!==void 0x0&&typeof _0x435f6f!==_0x16ec02(_0x1e0759._0x94b101))return null;}if(_0x55997d!==void 0x0&&(typeof _0x55997d!==_0x16ec02(_0x1e0759._0x2b5fc4)||!Number['isInteger'](_0x55997d)))return null;return{'provider':_0x3774c4,...typeof _0x5f81c===_0x16ec02(_0x1e0759._0x2bb627)?{'repo':_0x5f81c}:{},...typeof _0x1ff404===_0x16ec02(_0x1e0759._0x22c919)?{'branch':_0x1ff404}:{},...typeof _0x896f39==='string'?{'sha':_0x896f39}:{},...typeof _0x55997d===_0x16ec02(0x26b)?{'pr':_0x55997d}:{},...typeof _0xaa9f3==='string'?{'checkId':_0xaa9f3}:{}};}__name(parseTicketCi,_0x213977(0x25e));var BUNDLE_SCHEMA_VERSION=0x1,BUNDLE_MANIFEST_FILE=_0x213977(0x246),BUNDLE_UPLOAD_PATH='/api/box/bundles',BOX_URL_ENV='UNOTEST_BOX_URL',BOX_TOKEN_ENV='UNOTEST_BOX_TOKEN',BUNDLE_ID_ENV=_0x213977(0x227),SCHEDULES_FINGERPRINT_ENV=_0x213977(0x245);function parseGitInfo(_0x27888c){const _0x266ac6={_0x518449:0x284},_0x4a9b05=_0x213977;if(!isRecord(_0x27888c))return null;const {repo:_0x345274,branch:_0x45018f,sha:_0x22f8c6,dirty:_0x3d6149}=_0x27888c;if(typeof _0x3d6149!==_0x4a9b05(_0x266ac6._0x518449))return null;for(const _0x235c27 of[_0x345274,_0x45018f,_0x22f8c6]){if(_0x235c27!==void 0x0&&typeof _0x235c27!==_0x4a9b05(0x272))return null;}return{'dirty':_0x3d6149,...typeof _0x345274===_0x4a9b05(0x272)?{'repo':_0x345274}:{},...typeof _0x45018f==='string'?{'branch':_0x45018f}:{},...typeof _0x22f8c6===_0x4a9b05(0x272)?{'sha':_0x22f8c6}:{}};}__name(parseGitInfo,_0x213977(0x288));function parseBundleManifest(_0x12a19a){const _0x3e1f53={_0x4a7a94:0x1b0,_0x1b3b5e:0x26b,_0x46dc90:0x184,_0x3e21ae:0x272},_0x52f6ff=_0x213977;if(!isRecord(_0x12a19a))return null;const {schemaVersion:_0x2e57d5,bundleId:_0x9050ea,sha256:_0x13bc28,createdAt:_0x371cc9,webVersion:_0x5eafba,author:_0x1ce3bb,git:_0x57b2f5,fileCount:_0x32f704,byteSize:_0x51cdaf,declaredVariables:_0x493537,schedulesFingerprint:_0x3ab806}=_0x12a19a;if(_0x2e57d5!==BUNDLE_SCHEMA_VERSION)return null;if(typeof _0x9050ea!==_0x52f6ff(0x272)||_0x9050ea[_0x52f6ff(_0x3e1f53._0x4a7a94)]===0x0)return null;if(_0x13bc28!==void 0x0&&!/^[0-9a-f]{64}$/[_0x52f6ff(0x1e4)](String(_0x13bc28)))return null;if(typeof _0x5eafba!==_0x52f6ff(0x272)||_0x5eafba[_0x52f6ff(0x1b0)]===0x0)return null;if(typeof _0x371cc9!==_0x52f6ff(_0x3e1f53._0x1b3b5e)||!Number[_0x52f6ff(_0x3e1f53._0x46dc90)](_0x371cc9))return null;if(typeof _0x32f704!=='number'||!Number[_0x52f6ff(0x1d0)](_0x32f704))return null;if(typeof _0x51cdaf!==_0x52f6ff(0x26b)||!Number['isInteger'](_0x51cdaf))return null;if(_0x1ce3bb!==void 0x0&&typeof _0x1ce3bb!==_0x52f6ff(_0x3e1f53._0x3e21ae))return null;let _0x4ae332=null;if(_0x57b2f5!==void 0x0){_0x4ae332=parseGitInfo(_0x57b2f5);if(_0x4ae332===null)return null;}const _0x519b94=Array['isArray'](_0x493537)?_0x493537['filter'](_0x2a471f=>typeof _0x2a471f===_0x52f6ff(0x272)):[],_0x323bfb=typeof _0x3ab806===_0x52f6ff(_0x3e1f53._0x3e21ae)&&/^[0-9a-f]{64}$/[_0x52f6ff(0x1e4)](_0x3ab806)?_0x3ab806:void 0x0;return{'schemaVersion':BUNDLE_SCHEMA_VERSION,'bundleId':_0x9050ea,...typeof _0x13bc28==='string'?{'sha256':_0x13bc28}:{},'createdAt':_0x371cc9,'webVersion':_0x5eafba,'fileCount':_0x32f704,'byteSize':_0x51cdaf,...typeof _0x1ce3bb==='string'?{'author':_0x1ce3bb}:{},..._0x4ae332?{'git':_0x4ae332}:{},..._0x519b94[_0x52f6ff(0x1b0)]>0x0?{'declaredVariables':_0x519b94}:{},..._0x323bfb!==void 0x0?{'schedulesFingerprint':_0x323bfb}:{}};}__name(parseBundleManifest,'parseBundleManifest');function describeBundle(_0x399ffb){const _0x56706d={_0x4fc1ff:0x1b1,_0x1b1da9:0x1f0},_0x5b3ca4=_0x213977,_0x191a3b=_0x399ffb[_0x5b3ca4(_0x56706d._0x4fc1ff)];if(!_0x191a3b||_0x191a3b[_0x5b3ca4(_0x56706d._0x1b1da9)]===void 0x0&&_0x191a3b['sha']===void 0x0)return _0x399ffb['bundleId'];const _0x34c36b=_0x191a3b[_0x5b3ca4(0x1e6)]?_0x191a3b[_0x5b3ca4(0x1e6)][_0x5b3ca4(0x1da)](0x0,0x7):'?',_0x55e695=_0x191a3b[_0x5b3ca4(0x1f0)]??'?';return _0x55e695+'@'+_0x34c36b+(_0x191a3b[_0x5b3ca4(0x28a)]?_0x5b3ca4(0x249):'');}__name(describeBundle,'describeBundle');var UPLOAD_ERROR_CODES=[_0x213977(0x18f),_0x213977(0x26e),'malformed','id-mismatch',_0x213977(0x25f),_0x213977(0x28f),_0x213977(0x1af)];function parseBundleUploadResponse(_0x309550){const _0x5e34eb={_0x53a841:0x218,_0x342707:0x273,_0x2df39b:0x21e,_0x37d12e:0x1b0,_0x532407:0x198},_0x427136=_0x213977;if(!isRecord(_0x309550))return null;if(isRecord(_0x309550['error'])){const {code:_0x350eb6,message:_0x2d387f}=_0x309550['error'];if(!UPLOAD_ERROR_CODES[_0x427136(_0x5e34eb._0x53a841)](_0x350eb6))return null;if(typeof _0x2d387f!=='string')return null;return{'error':{'code':_0x350eb6,'message':_0x2d387f}};}const {status:_0x672ccd,bundleId:_0x3291d7}=_0x309550;if(_0x672ccd!==_0x427136(_0x5e34eb._0x342707)&&_0x672ccd!==_0x427136(_0x5e34eb._0x2df39b))return null;if(typeof _0x3291d7!==_0x427136(0x272)||_0x3291d7[_0x427136(_0x5e34eb._0x37d12e)]===0x0)return null;const _0x20e78b=parseVariableGaps(_0x309550[_0x427136(_0x5e34eb._0x532407)]);return _0x20e78b===null?{'status':_0x672ccd,'bundleId':_0x3291d7}:{'status':_0x672ccd,'bundleId':_0x3291d7,'variableGaps':_0x20e78b};}__name(parseBundleUploadResponse,'parseBundleUploadResponse');function parseVariableGaps(_0x5c3cd7){const _0x4e3d78={_0x4ee6b3:0x272,_0x2a57d9:0x1d5},_0x160a55=_0x213977;if(!Array[_0x160a55(0x1d5)](_0x5c3cd7))return null;const _0x5d4e5a=[];for(const _0x42f952 of _0x5c3cd7){if(!isRecord(_0x42f952))continue;const {project:_0x2b17f4,environment:_0xf7a31e,missing:_0x52ad35}=_0x42f952;if(typeof _0x2b17f4!==_0x160a55(0x272)||typeof _0xf7a31e!==_0x160a55(_0x4e3d78._0x4ee6b3))continue;if(!Array[_0x160a55(_0x4e3d78._0x2a57d9)](_0x52ad35))continue;const _0x48c512=_0x52ad35['filter'](_0x168a42=>typeof _0x168a42===_0x160a55(0x272));if(_0x48c512[_0x160a55(0x1b0)]>0x0)_0x5d4e5a['push']({'project':_0x2b17f4,'environment':_0xf7a31e,'missing':_0x48c512});}return _0x5d4e5a[_0x160a55(0x1b0)]>0x0?_0x5d4e5a:null;}__name(parseVariableGaps,_0x213977(0x180));var WORKSPACE_SCHEMA_VERSION=0x1,WORKSPACE_FILE=_0x213977(0x172);function stringList(_0x29aefd){const _0x23c5aa={_0x3fd135:0x1d5},_0x5080d4=_0x213977;if(!Array[_0x5080d4(_0x23c5aa._0x3fd135)](_0x29aefd))return null;if(_0x29aefd['some'](_0x25dbbf=>typeof _0x25dbbf!=='string'))return null;return _0x29aefd;}__name(stringList,_0x213977(0x23e));function parseBundle(_0x483090){const _0x5b5d9d={_0x12af29:0x1b0,_0x3fcd06:0x272,_0x16aeac:0x26b,_0x50e8e1:0x184,_0x174d78:0x272},_0x59f42c=_0x213977;if(!isRecord(_0x483090))return null;const {bundleId:_0x339da9,label:_0x217c8c,branch:_0x2048ca,sha:_0x4cb796,dirty:_0x360e82,author:_0x96f600,createdAt:_0x3d8934,webVersion:_0x5dc05e}=_0x483090;if(typeof _0x339da9!=='string'||_0x339da9[_0x59f42c(_0x5b5d9d._0x12af29)]===0x0)return null;if(typeof _0x217c8c!==_0x59f42c(0x272)||typeof _0x5dc05e!==_0x59f42c(_0x5b5d9d._0x3fcd06))return null;if(typeof _0x360e82!=='boolean')return null;if(typeof _0x3d8934!==_0x59f42c(_0x5b5d9d._0x16aeac)||!Number[_0x59f42c(_0x5b5d9d._0x50e8e1)](_0x3d8934))return null;for(const _0x4213bd of[_0x2048ca,_0x4cb796,_0x96f600]){if(_0x4213bd!==void 0x0&&typeof _0x4213bd!==_0x59f42c(_0x5b5d9d._0x3fcd06))return null;}return{'bundleId':_0x339da9,'label':_0x217c8c,'dirty':_0x360e82,'createdAt':_0x3d8934,'webVersion':_0x5dc05e,...typeof _0x2048ca==='string'?{'branch':_0x2048ca}:{},...typeof _0x4cb796===_0x59f42c(_0x5b5d9d._0x3fcd06)?{'sha':_0x4cb796}:{},...typeof _0x96f600===_0x59f42c(_0x5b5d9d._0x174d78)?{'author':_0x96f600}:{}};}__name(parseBundle,'parseBundle');function parseWorkspaceFile(_0x3c4cd0){const _0x3d467f={_0x42cbf1:0x1de,_0x21387d:0x272,_0x13f81c:0x272},_0x11a509=_0x213977;if(!isRecord(_0x3c4cd0))return null;if(_0x3c4cd0[_0x11a509(_0x3d467f._0x42cbf1)]!==WORKSPACE_SCHEMA_VERSION)return null;const {workspace:_0x5f2ca4,environment:_0x3b8cd6,allowSwitch:_0x5079b3,currentBundleId:_0x33dbcf,switchedBy:_0xcd53f3,switchedAt:_0xbe873b,bundles:_0x4ba9bf,variables:_0x1d36b0,secrets:_0x2fa699,switchPath:_0x4959cb}=_0x3c4cd0;if(typeof _0x5f2ca4!==_0x11a509(0x272)||typeof _0x3b8cd6!=='string')return null;if(typeof _0x5079b3!=='boolean')return null;if(!Array[_0x11a509(0x1d5)](_0x4ba9bf))return null;const _0x30be41=[];for(const _0x52f10f of _0x4ba9bf){const _0x52b9ea=parseBundle(_0x52f10f);if(!_0x52b9ea)return null;_0x30be41['push'](_0x52b9ea);}const _0x5cf0e5=stringList(_0x1d36b0),_0x12302e=stringList(_0x2fa699);if(!_0x5cf0e5||!_0x12302e)return null;for(const _0x1ceb50 of[_0x33dbcf,_0xcd53f3,_0x4959cb]){if(_0x1ceb50!==void 0x0&&typeof _0x1ceb50!==_0x11a509(_0x3d467f._0x21387d))return null;}if(_0xbe873b!==void 0x0&&typeof _0xbe873b!==_0x11a509(0x26b))return null;return{'schemaVersion':WORKSPACE_SCHEMA_VERSION,'workspace':_0x5f2ca4,'environment':_0x3b8cd6,'allowSwitch':_0x5079b3,'bundles':_0x30be41,'variables':_0x5cf0e5,'secrets':_0x12302e,...typeof _0x33dbcf===_0x11a509(0x272)?{'currentBundleId':_0x33dbcf}:{},...typeof _0xcd53f3==='string'?{'switchedBy':_0xcd53f3}:{},...typeof _0xbe873b===_0x11a509(0x26b)?{'switchedAt':_0xbe873b}:{},...typeof _0x4959cb===_0x11a509(_0x3d467f._0x13f81c)?{'switchPath':_0x4959cb}:{}};}__name(parseWorkspaceFile,_0x213977(0x24f));function _0x1666(_0x52b6dd,_0x182cd2){_0x52b6dd=_0x52b6dd-0x16b;const _0x411258=_0x4112();let _0x1666de=_0x411258[_0x52b6dd];if(_0x1666['lqQmgP']===undefined){var _0x2dd7a9=function(_0x242414){const _0x3392db='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x7a72db='',_0x519155='';for(let _0xe77c60=0x0,_0x364c0d,_0x148984,_0x23ce0b=0x0;_0x148984=_0x242414['charAt'](_0x23ce0b++);~_0x148984&&(_0x364c0d=_0xe77c60%0x4?_0x364c0d*0x40+_0x148984:_0x148984,_0xe77c60++%0x4)?_0x7a72db+=String['fromCharCode'](0xff&_0x364c0d>>(-0x2*_0xe77c60&0x6)):0x0){_0x148984=_0x3392db['indexOf'](_0x148984);}for(let _0xbf09a9=0x0,_0x2d370e=_0x7a72db['length'];_0xbf09a9<_0x2d370e;_0xbf09a9++){_0x519155+='%'+('00'+_0x7a72db['charCodeAt'](_0xbf09a9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x519155);};_0x1666['QfKXhD']=_0x2dd7a9,_0x1666['QvakRK']={},_0x1666['lqQmgP']=!![];}const _0x501f1c=_0x411258[0x0],_0xcc928=_0x52b6dd+_0x501f1c,_0x304d4e=_0x1666['QvakRK'][_0xcc928];return!_0x304d4e?(_0x1666de=_0x1666['QfKXhD'](_0x1666de),_0x1666['QvakRK'][_0xcc928]=_0x1666de):_0x1666de=_0x304d4e,_0x1666de;}function scheduleTarget(_0x19f237){const _0x4295d6={_0x196809:0x1a9,_0x550087:0x1a9},_0x43db35=_0x213977;return _0x19f237[_0x43db35(_0x4295d6._0x196809)]!==void 0x0?{'kind':_0x43db35(_0x4295d6._0x550087),'name':_0x19f237[_0x43db35(0x1a9)]}:{'kind':_0x43db35(0x262),'name':_0x19f237['scenario']};}__name(scheduleTarget,_0x213977(0x287));function parseScheduleEntry(_0xc26b5){const _0x36327c={_0x211fa3:0x272,_0x20b521:0x1b0,_0x13bab7:0x1b0,_0x18db30:0x26b,_0x11c3cf:0x254},_0x3c92b7=_0x213977;if(!isRecord(_0xc26b5))return null;const {collection:_0x1b15a0,scenario:_0x218046,cron:_0x31acbf,env:_0x128b43,prepare:_0x4035b5,workers:_0x6a98e,source:_0x2d894c}=_0xc26b5,_0xea9582=typeof _0x1b15a0===_0x3c92b7(_0x36327c._0x211fa3)&&_0x1b15a0[_0x3c92b7(_0x36327c._0x20b521)]>0x0?_0x218046===void 0x0?{'collection':_0x1b15a0}:null:typeof _0x218046===_0x3c92b7(_0x36327c._0x211fa3)&&_0x218046[_0x3c92b7(_0x36327c._0x13bab7)]>0x0&&_0x1b15a0===void 0x0?{'scenario':_0x218046}:null;if(_0xea9582===null)return null;if(typeof _0x31acbf!=='string'||_0x31acbf['trim']()[_0x3c92b7(0x1b0)]===0x0)return null;if(_0x128b43!==void 0x0&&typeof _0x128b43!==_0x3c92b7(0x272))return null;if(_0x4035b5!==void 0x0&&typeof _0x4035b5!==_0x3c92b7(0x272))return null;const _0x55777b='collection'in _0xea9582&&typeof _0x6a98e===_0x3c92b7(_0x36327c._0x18db30)&&Number[_0x3c92b7(0x1d0)](_0x6a98e)&&_0x6a98e>=0x1?_0x6a98e:void 0x0,_0x530e1c=_0x2d894c===_0x3c92b7(_0x36327c._0x11c3cf)||_0x2d894c===_0x3c92b7(0x1e0)?_0x2d894c:void 0x0;return{..._0xea9582,'cron':_0x31acbf,..._0x128b43!==void 0x0?{'env':_0x128b43}:{},..._0x4035b5!==void 0x0?{'prepare':_0x4035b5}:{},..._0x55777b!==void 0x0?{'workers':_0x55777b}:{},..._0x530e1c!==void 0x0?{'source':_0x530e1c}:{}};}__name(parseScheduleEntry,'parseScheduleEntry');function parseSchedulesDoc(_0x478add){const _0xfc5623={_0x5a3741:0x274,_0x5c15f4:0x283,_0x1114f3:0x1e9,_0x67eef2:0x243},_0x302921=_0x213977;if(_0x478add===null||_0x478add===void 0x0)return{'entries':[]};if(!isRecord(_0x478add))return{'error':_0x302921(0x24d)};const _0x43c7b4=_0x478add['schedules']??[];if(!Array['isArray'](_0x43c7b4))return{'error':'`schedules:`\x20must\x20be\x20an\x20array'};const _0x2df6fc=[],_0xae3d60=new Set();for(const [_0x4251b6,_0x3e4ce9]of _0x43c7b4[_0x302921(_0xfc5623._0x5a3741)]()){const _0x15e644=parseScheduleEntry(_0x3e4ce9);if(!_0x15e644)return{'error':_0x302921(0x297)+_0x4251b6+']\x20is\x20not\x20a\x20valid\x20entry\x20—\x20it\x20needs\x20exactly\x20one\x20of\x20`collection:`\x20/\x20`scenario:`\x20plus\x20a\x20`cron:`\x20string'};const _0x387ced=scheduleTarget(_0x15e644),_0x37280c=_0x387ced[_0x302921(_0xfc5623._0x5c15f4)]+':'+_0x387ced[_0x302921(_0xfc5623._0x1114f3)];if(_0xae3d60[_0x302921(_0xfc5623._0x67eef2)](_0x37280c))return{'error':'schedules['+_0x4251b6+_0x302921(0x28e)+_0x387ced['kind']+'\x20\x22'+_0x387ced['name']+_0x302921(0x1e1)};_0xae3d60[_0x302921(0x263)](_0x37280c),_0x2df6fc[_0x302921(0x1e5)](_0x15e644);}return{'entries':_0x2df6fc};}__name(parseSchedulesDoc,_0x213977(0x213));function mergeSchedules(_0x3b5b58,_0x391f93){const _0x53d2af={_0x169e0e:0x1b4,_0x3d5bb9:0x16f},_0xa90228={_0x6ea9ef:0x243},_0x398a2b=_0x213977,_0x20ed6b=new Set(_0x391f93[_0x398a2b(0x16f)](_0x1e3e45=>{const _0x57af8e=scheduleTarget(_0x1e3e45);return _0x57af8e['kind']+':'+_0x57af8e['name'];})),_0x579415=_0x3b5b58[_0x398a2b(_0x53d2af._0x169e0e)](_0x2603a4=>{const _0x30f9b8=_0x398a2b,_0x2715f8=scheduleTarget(_0x2603a4);return!_0x20ed6b[_0x30f9b8(_0xa90228._0x6ea9ef)](_0x2715f8[_0x30f9b8(0x283)]+':'+_0x2715f8['name']);});return[..._0x579415[_0x398a2b(0x16f)](_0x6b7a5=>({..._0x6b7a5,'source':_0x398a2b(0x254)})),..._0x391f93[_0x398a2b(_0x53d2af._0x3d5bb9)](_0x3dcc87=>({..._0x3dcc87,'source':_0x398a2b(0x1e0)}))];}__name(mergeSchedules,_0x213977(0x252));function canonicalScheduleSet(_0x1b85cb){const _0x44489a={_0x222144:0x1e9,_0x4d8611:0x283},_0x57cc5e={_0x576ec1:0x283,_0x5b9c5d:0x1e9,_0xe970f4:0x1fe,_0x1703a1:0x1d8,_0x3b472e:0x1fb},_0x451d1b=_0x213977,_0x1d38f1=_0x1b85cb[_0x451d1b(0x16f)](_0x3476a9=>{const _0x7b550=_0x451d1b,_0x4eadf5=scheduleTarget(_0x3476a9);return{'kind':_0x4eadf5[_0x7b550(_0x57cc5e._0x576ec1)],'name':_0x4eadf5[_0x7b550(_0x57cc5e._0x5b9c5d)],'cron':_0x3476a9[_0x7b550(_0x57cc5e._0xe970f4)],..._0x3476a9['env']!==void 0x0?{'env':_0x3476a9[_0x7b550(_0x57cc5e._0x1703a1)]}:{},..._0x3476a9[_0x7b550(0x1fb)]!==void 0x0?{'prepare':_0x3476a9[_0x7b550(_0x57cc5e._0x3b472e)]}:{},..._0x3476a9[_0x7b550(0x1ea)]!==void 0x0?{'workers':_0x3476a9[_0x7b550(0x1ea)]}:{}};})[_0x451d1b(0x25c)]((_0x251bb5,_0x478162)=>{const _0x155b52=_0x451d1b,_0x1f035e=_0x251bb5[_0x155b52(0x283)]+':'+_0x251bb5[_0x155b52(_0x44489a._0x222144)],_0x1b3d55=_0x478162[_0x155b52(_0x44489a._0x4d8611)]+':'+_0x478162[_0x155b52(_0x44489a._0x222144)];return _0x1f035e<_0x1b3d55?-0x1:_0x1f035e>_0x1b3d55?0x1:0x0;});return JSON['stringify'](_0x1d38f1);}__name(canonicalScheduleSet,_0x213977(0x183));function parseSchedulesJson(_0x1570ae){const _0x40c431={_0x209f2f:0x24a,_0x25daf2:0x1d5},_0x272d08=_0x213977;let _0x1fb39b;try{_0x1fb39b=JSON[_0x272d08(_0x40c431._0x209f2f)](_0x1570ae);}catch{return null;}if(!Array[_0x272d08(_0x40c431._0x25daf2)](_0x1fb39b))return null;const _0x5627f7=[];for(const _0x354a87 of _0x1fb39b){const _0x6b87d=parseScheduleEntry(_0x354a87);if(_0x6b87d)_0x5627f7['push'](_0x6b87d);}return _0x5627f7;}__name(parseSchedulesJson,_0x213977(0x22d));var FREQ_FIELDS={'m5':{'minutes':![],'hours':![],'days':![]},'m15':{'minutes':![],'hours':![],'days':![]},'h1':{'minutes':!![],'hours':![],'days':![]},'h2':{'minutes':!![],'hours':![],'days':![]},'h4':{'minutes':!![],'hours':![],'days':![]},'h6':{'minutes':!![],'hours':![],'days':![]},'h12':{'minutes':!![],'hours':![],'days':![]},'daily':{'minutes':!![],'hours':!![],'days':![]},'weekly':{'minutes':!![],'hours':!![],'days':!![]}},HOUR_STEP={'h2':0x2,'h4':0x4,'h6':0x6,'h12':0xc};function cronFromSpec(_0x3a070e){const _0x3dd4a3={_0xb07703:0x196,_0x3f2b6d:0x21c,_0xfc4f59:0x1d6,_0x1e6d81:0x258},_0x5ae977=_0x213977,_0xb5b4=list(_0x3a070e[_0x5ae977(_0x3dd4a3._0xb07703)]);switch(_0x3a070e[_0x5ae977(0x1b2)]){case'm5':return _0x5ae977(0x201);case'm15':return _0x5ae977(_0x3dd4a3._0x3f2b6d);case'h1':return _0xb5b4+'\x20*\x20*\x20*\x20*';case'h2':case'h4':case'h6':case'h12':return _0xb5b4+'\x20*/'+HOUR_STEP[_0x3a070e['freq']]+_0x5ae977(0x1d6);case'daily':return _0xb5b4+'\x20'+list(_0x3a070e['hours'])+_0x5ae977(_0x3dd4a3._0xfc4f59);case'weekly':return _0xb5b4+'\x20'+list(_0x3a070e[_0x5ae977(0x20d)])+_0x5ae977(0x248)+list(_0x3a070e[_0x5ae977(_0x3dd4a3._0x1e6d81)]);}}__name(cronFromSpec,_0x213977(0x16b));function specFromCron(_0xc830dd){const _0x128b15={_0x1f5863:0x18c,_0x38de27:0x19e},_0x3fd63a=_0x213977,_0x4908c6=_0xc830dd['trim']()[_0x3fd63a(_0x128b15._0x1f5863)](/\s+/);if(_0x4908c6[_0x3fd63a(0x1b0)]!==0x5)return null;const [_0x9d5942,_0x2b26a5,_0x33bc59,_0x3eb79d,_0x1be6d9]=_0x4908c6;if(_0x33bc59!=='*'||_0x3eb79d!=='*')return null;if(_0x2b26a5==='*'&&_0x1be6d9==='*'){if(_0x9d5942===_0x3fd63a(0x203))return spec('m5');if(_0x9d5942===_0x3fd63a(_0x128b15._0x38de27))return spec(_0x3fd63a(0x1ba));const _0x2f0f9e=numbers(_0x9d5942);return _0x2f0f9e&&spec('h1',_0x2f0f9e);}const _0x263452=numbers(_0x9d5942);if(!_0x263452)return null;const _0x4d39b4=/^\*\/(\d+)$/[_0x3fd63a(0x293)](_0x2b26a5);if(_0x4d39b4&&_0x1be6d9==='*'){const _0x42a7e7=Object['keys'](HOUR_STEP)[_0x3fd63a(0x197)](_0x2101a2=>HOUR_STEP[_0x2101a2]===Number(_0x4d39b4[0x1]));return _0x42a7e7?spec(_0x42a7e7,_0x263452):null;}const _0x43e777=numbers(_0x2b26a5);if(!_0x43e777)return null;if(_0x1be6d9==='*')return spec(_0x3fd63a(0x223),_0x263452,_0x43e777);const _0x3ecfa6=numbers(_0x1be6d9);return _0x3ecfa6&&spec(_0x3fd63a(0x206),_0x263452,_0x43e777,_0x3ecfa6);}__name(specFromCron,_0x213977(0x237));function describeCron(_0x312b1e){const _0x47830c=specFromCron(_0x312b1e);return _0x47830c?describeSpec(_0x47830c):_0x312b1e;}__name(describeCron,_0x213977(0x266));function describeSpec(_0x3679a4){const _0x3c6829={_0x565be5:0x28b,_0x270ecf:0x190,_0xb6c9eb:0x27d,_0x1be3c3:0x223,_0x1af36a:0x242,_0x4367a0:0x16f,_0x5dd387:0x178},_0x17dee7=_0x213977;switch(_0x3679a4['freq']){case'm5':return _0x17dee7(_0x3c6829._0x565be5);case'm15':return _0x17dee7(0x27c);case'h1':return _0x17dee7(_0x3c6829._0x270ecf)+atMinutes(_0x3679a4[_0x17dee7(0x196)]);case'h2':case'h4':case'h6':case _0x17dee7(_0x3c6829._0xb6c9eb):return'every\x20'+HOUR_STEP[_0x3679a4['freq']]+'h'+atMinutes(_0x3679a4[_0x17dee7(0x196)]);case _0x17dee7(_0x3c6829._0x1be3c3):return _0x17dee7(_0x3c6829._0x1af36a)+times(_0x3679a4);case _0x17dee7(0x206):return _0x3679a4[_0x17dee7(0x258)][_0x17dee7(_0x3c6829._0x4367a0)](_0x2c75ea=>DAY_SHORT[_0x2c75ea]??String(_0x2c75ea))[_0x17dee7(_0x3c6829._0x5dd387)](',\x20')+_0x17dee7(0x298)+times(_0x3679a4);}}__name(describeSpec,'describeSpec');function nextTickFromSpec(_0x180f9e,_0x193d67){const _0x40048f={_0x6c2550:0x1a0},_0x19989c=_0x213977,_0x21c2a3=new Date(_0x193d67);_0x21c2a3['setSeconds'](0x0,0x0);for(let _0x31fab6=0x0;_0x31fab6<0x8*0x18*0x3c;_0x31fab6++){_0x21c2a3[_0x19989c(_0x40048f._0x6c2550)](_0x21c2a3[_0x19989c(0x1f3)]()+0x1);if(specMatches(_0x180f9e,_0x21c2a3))return _0x21c2a3[_0x19989c(0x1d1)]();}return _0x21c2a3[_0x19989c(0x1d1)]();}__name(nextTickFromSpec,'nextTickFromSpec');function specMatches(_0x4af7f4,_0xbbe4e0){const _0x463ec3={_0x3e4f42:0x1b2,_0x10d833:0x20d,_0x2c92c0:0x218,_0x6b7854:0x20d},_0x71d909=_0x213977,_0xaad971=_0xbbe4e0['getMinutes'](),_0x5b53fc=_0xbbe4e0[_0x71d909(0x16c)]();switch(_0x4af7f4['freq']){case'm5':return _0xaad971%0x5===0x0;case _0x71d909(0x1ba):return _0xaad971%0xf===0x0;case'h1':return _0x4af7f4[_0x71d909(0x196)][_0x71d909(0x218)](_0xaad971);case'h2':case'h4':case'h6':case'h12':return _0x4af7f4[_0x71d909(0x196)][_0x71d909(0x218)](_0xaad971)&&_0x5b53fc%(HOUR_STEP[_0x4af7f4[_0x71d909(_0x463ec3._0x3e4f42)]]??0x1)===0x0;case _0x71d909(0x223):return _0x4af7f4['minutes'][_0x71d909(0x218)](_0xaad971)&&_0x4af7f4[_0x71d909(_0x463ec3._0x10d833)][_0x71d909(0x218)](_0x5b53fc);case _0x71d909(0x206):return _0x4af7f4['minutes'][_0x71d909(_0x463ec3._0x2c92c0)](_0xaad971)&&_0x4af7f4[_0x71d909(_0x463ec3._0x6b7854)][_0x71d909(_0x463ec3._0x2c92c0)](_0x5b53fc)&&_0x4af7f4['days']['includes'](_0xbbe4e0['getDay']());}}__name(specMatches,_0x213977(0x1f5));function formatNextTick(_0x1ef535,_0x144c40){const _0x485e60={_0x454f74:0x16c,_0x53ab4e:0x1c4},_0x15f988=_0x213977,_0x71bf05=new Date(_0x1ef535),_0xe3be10=new Date(_0x144c40),_0x18c937=pad(_0x71bf05[_0x15f988(_0x485e60._0x454f74)]())+':'+pad(_0x71bf05[_0x15f988(0x1f3)]()),_0x531dc0=Math[_0x15f988(0x256)]((startOfDay(_0x71bf05)-startOfDay(_0xe3be10))/(0x18*0x3c*0x3c*0x3e8));if(_0x531dc0===0x0)return _0x15f988(0x231)+_0x18c937;if(_0x531dc0===0x1)return'tomorrow\x20'+_0x18c937;return DAY_SHORT[_0x71bf05[_0x15f988(_0x485e60._0x53ab4e)]()]+'\x20'+_0x18c937;}__name(formatNextTick,_0x213977(0x21b));function startOfDay(_0x389c65){const _0x4ce9b9=_0x213977,_0x2be8a6=new Date(_0x389c65);return _0x2be8a6[_0x4ce9b9(0x181)](0x0,0x0,0x0,0x0),_0x2be8a6['getTime']();}__name(startOfDay,_0x213977(0x1ec));var DAY_SHORT=['Sun',_0x213977(0x27a),_0x213977(0x259),'Wed',_0x213977(0x26c),'Fri',_0x213977(0x22b)],WEEK_CHIP_ORDER=[0x1,0x2,0x3,0x4,0x5,0x6,0x0];function spec(_0x536b45,_0x20c6b7=[0x0],_0x94fae0=[0x3],_0x50ebcf=[0x1]){return{'freq':_0x536b45,'minutes':_0x20c6b7,'hours':_0x94fae0,'days':_0x50ebcf};}__name(spec,'spec');function list(_0x28f732){const _0x98b880={_0x2bdb63:0x178},_0x1b0334=_0x213977;return[..._0x28f732]['sort']((_0x2ddc90,_0x3856c1)=>_0x2ddc90-_0x3856c1)[_0x1b0334(_0x98b880._0x2bdb63)](',');}__name(list,_0x213977(0x236));function numbers(_0x1686b7){const _0x2a87d9={_0x356024:0x1e4},_0x1d6691=_0x213977;if(!/^\d+(,\d+)*$/[_0x1d6691(_0x2a87d9._0x356024)](_0x1686b7))return null;return _0x1686b7['split'](',')[_0x1d6691(0x16f)](Number);}__name(numbers,_0x213977(0x267));var pad=__name(_0x2a32ff=>String(_0x2a32ff)[_0x213977(0x179)](0x2,'0'),_0x213977(0x241));function atMinutes(_0x18f65f){const _0x313cd5={_0x21b9c2:0x298,_0x4b3f3b:0x178},_0x5f5523=_0x213977;if(_0x18f65f['length']===0x1&&_0x18f65f[0x0]===0x0)return'';return _0x5f5523(_0x313cd5._0x21b9c2)+[..._0x18f65f][_0x5f5523(0x25c)]((_0x21477b,_0x6da08a)=>_0x21477b-_0x6da08a)[_0x5f5523(0x16f)](_0x1fc1d7=>':'+pad(_0x1fc1d7))[_0x5f5523(_0x313cd5._0x4b3f3b)](',\x20');}__name(atMinutes,'atMinutes');function times(_0x2ff806){const _0x156764={_0x2a11b6:0x20d,_0x109018:0x25c},_0x1eaaba=_0x213977,_0x5d1102=[..._0x2ff806[_0x1eaaba(_0x156764._0x2a11b6)]][_0x1eaaba(_0x156764._0x109018)]((_0x50199d,_0x381bb2)=>_0x50199d-_0x381bb2)[_0x1eaaba(0x204)](_0x82c876=>[..._0x2ff806[_0x1eaaba(0x196)]]['sort']((_0x54987d,_0x3eebc1)=>_0x54987d-_0x3eebc1)[_0x1eaaba(0x16f)](_0xace782=>pad(_0x82c876)+':'+pad(_0xace782))),_0x577044=_0x5d1102['slice'](0x0,0x4),_0x58096a=_0x5d1102['length']-_0x577044['length'];return _0x577044[_0x1eaaba(0x178)](',\x20')+(_0x58096a>0x0?'\x20+'+_0x58096a:'');}__name(times,'times');var BLOBS_DIR=_0x213977(0x1ff),GENERATION_SEP='~',HASH_RE=/^[0-9a-f]{8,}$/,InvalidBlobHashError=class extends Error{static{__name(this,'InvalidBlobHashError');}constructor(_0x1a1128){const _0x3dd0b2={_0x1f8a50:0x1f2},_0xad0c4a=_0x213977;super(_0xad0c4a(0x26d)+_0x1a1128),this['name']=_0xad0c4a(_0x3dd0b2._0x1f8a50);}};function blobPathFor(_0x2705fd,_0xdd0cd2,_0x1035cb,_0x4a2d62=0x0){return _0x2705fd+'/'+blobRelPathFor(_0xdd0cd2,_0x1035cb,_0x4a2d62);}__name(blobPathFor,_0x213977(0x225));function blobRelSegmentsFor(_0x2117b2,_0x4c8e62,_0x5d6f6f=0x0){const _0x4e22fd={_0x30546b:0x1e4,_0x17a085:0x1da},_0x6f8be8=_0x213977;if(!HASH_RE[_0x6f8be8(_0x4e22fd._0x30546b)](_0x2117b2))throw new InvalidBlobHashError(_0x2117b2);const _0x50e8c5=_0x5d6f6f>0x0?''+GENERATION_SEP+_0x5d6f6f:'';return[BLOBS_DIR,_0x2117b2[_0x6f8be8(_0x4e22fd._0x17a085)](0x0,0x2),_0x2117b2[_0x6f8be8(_0x4e22fd._0x17a085)](0x2,0x4),''+_0x2117b2+_0x50e8c5+'.'+_0x4c8e62];}__name(blobRelSegmentsFor,_0x213977(0x18b));function _0x4112(){const _0xe98ed2=['AxnbCNjHEq','icOGkIaQ','y29TCgXLDgvK','zw52','yxbWlxnLCNzLCJPLCNjVCG','C2XPy2u','vu5pvevtvf9kvurhrv9srvrssuvt','vw5WBgfJzwfIBgvsDw5jzevYCM9Y','C3bSAxrmAw5LCW','C2nOzw1HvMvYC2LVBG','refuqujbu0vFvvjm','zMLSzq','iIdIGjqGB25LihnJAgvKDwXLihbLCIb0yxjNzxq','lNzPzxDLCI5SB2nR','vvrd','DgvZDa','ChvZAa','C2HH','lMPZB25S','C3rKzxjYlMXVzW','BMfTzq','D29YA2vYCW','vu5pvevtvf9erujvr19esvi','C3rHCNrpzKrHEq','yMXVyNnsB290rM9Y','BwfSzM9YBwvK','AxnfEhrLCM5HBfzHCK5HBwu','yNjHBMnO','DgvZDerPCKzVCG','sw52ywXPzejSB2jiyxnOrxjYB3i','z2v0twLUDxrLCW','C3rHCNrZv2L0Aa','C3bLy01HDgnOzxm','iokaLcbWAwnRigeGzgLMzMvYzw50ig5HBwuGB3iGzwrPDcb0AguGzxHPC3rPBMCGDMfSDwuU','zw52tMfTzxngCM9TrgLYtgLZDgLUzW','BxvZDcbUB3qGyMuGzw1WDhK','mtjKr2vkug8','vu5pvevtvf9kvurhrv9usu1ft1vux01t','ChjLCgfYzq','BxvZDcbIzsbHihn0CMLUzW','vu5pvevtvf9rvuvvrv9mruftrq','y3jVBG','x2jSB2jZ','vu5pvevtvf9erujvr19ive1mx01bwf9cwvrfuW','kI81icOGkIaQicO','zhvYyxrPB25nCW','kI81','zMXHDe1HCa','ig11C3qGyMuGvvbqrvjFu05bs0uGkguUzY4Gqvbqx0jbu0vFvvjmksbZBYbHihnJzw5HCMLVignHBIbYzwzLCMvUy2uGAxqGyNKGBMfTzs4','D2vLA2X5','zNjLzxPL','C291CMnL','zMLUzeLUzgv4','vu5pvevtvf9tte9xx01p','AxnszwnVCMq','CNvUBMvY','Ag91CNm','vu5pvevtvf9kvurhrv9dtefvrevFqKLo','ywn0AxzLrw52tMfTzq','zhvWBgLJyxrL','y3j5ChrV','iYaTls0G','CgfYC2vty2HLzhvSzxneB2m','ChjVAMvJDfj1BKrPCKzVCG','CNvUC0rPCKzVCG','zxjYB3i','uNvUBMvYtM90q29UzMLNDxjLzevYCM9Y','Aw5JBhvKzxm','vu5pvevtvf9erujvr19quKvwsuvxx0jzvevt','lNzPzxDLCI5SB2C','zM9YBwf0tMv4DfrPy2S','kI8XnsaQicOGkIaQ','zM9SzfnJzw5HCMLVuNvU','zxHPC3rZ','zw52rMLSzuzVCG','Dg9mB3DLCKnHC2u','Dw5RBM93BI1IDw5KBgu','lMrLyNvN','zgfPBhK','y2XP','yMXVyLbHDgHgB3i','C2vJCMv0CW','vu5pvevtvf9cvu5etevFsuq','l2HLywX0Aa','x3nJzw5HCMLVCW','zgvZy3jPyMvuAwnRzxrdAq','u2f0','iI4G','CgfYC2vty2HLzhvSzxnkC29U','CMvXDwLYzvj1BKrPCKzVCG','ChjVDMLKzxi','lY5Kzwj1z2DLCG','Dg9KyxKG','DMfSAwrHDgvtzwDTzw50tMfTzq','CMvNzxG','C3rHCNrLzef0','Dw5VDgvZDc8UC2vJCMv0CW','BgLZDa','C3bLy0zYB21dCM9U','y29TBwfUzhmUANnVBMW','vu5pvevtvf9kvurhrv9vuKW','C3rHDhvZ','C2vYAwfSAxPLrw52vMfSDwu','lNf1zxvL','tK9Fq09mt1i','C3rYAw5NtgLZDa','yMXVyLjLBfbHDgHgB3i','yxbW','CgfK','zgfPBhKGyxqG','AgfZ','C2vJCMv0C0nVBNrLBNq','vu5pvevtvf9tq0HfrfvmrvnFrKLor0vsufjjtLq','yNvUzgXLlMPZB24','ic0Tlq','icOGkIa','icH3AxaP','CgfYC2u','lMPZB24','vu5pvevtvf9dqunirv9esvi','zxHWzwn0zwqGysbTyxbWAw5NihDPDgGGysbGC2nOzwr1BgvZoMaGyxjYyxK','AxnbC3nPz25Tzw50tgLUzq','CgfYC2vxB3jRC3bHy2vgAwXL','zw52tgf5zxjgAwXLC0zVCG','Axntzwn0Aw9UrgL2AwrLCG','BwvYz2vty2HLzhvSzxm','yxj0AwzHy3rZuM9VDezYB20','y29UzMLN','C2vJCMv0C0zPBgvgB3i','CM91BMq','C2vJCMv0','zgf5CW','vhvL','x2rHEs5QC29UBa','ztjL','C29YDa','ufiGiW','CgfYC2vuAwnRzxrdAq','BwLUlxzLCNnPB24','lNnLy3jLDhm','B2jQzwn0','C2nLBMfYAw8','ywrK','CgfYC2vdAvj1BLjLCxvLC3q','igLZigfSC28GC2v0igLUihvUB3rLC3qVlMvUDIdIGjqGDgHLihnLy3jLDcb2ywX1zsbUB3CGC2HHzg93CYbPDc4','zgvZy3jPyMvdCM9U','BNvTyMvYCW','CgLK','vu5pvevtvf9erujvr19nqvHFqLLurvm','vu5pvevtvf9kvurhrv9nt0rfta','BNvTyMvY','vgH1','yMXVyIbOyxnOig11C3qGyMuGBg93zxjJyxnLigHLEcWGz290oIa','Dg9VlwXHCMDL','x2HLBhbLCNm','AxngywLSAw5Nu3rHDhvZ','yxbWlxnLCNzLCJPYzxvZzwq','C3rYAw5N','y3jLyxrLza','zw50CMLLCW','lMvUDG','igfSCMvHzhKGzxHPC3rZigLUia','ywjVCNrLza','CNvUswqGy2fYCMLLCYbUBYb0Aw1LC3rHBxaSignHBM5VDcbWBgfJzsbPDcbPBIbHihnOyxjKoIa','Aw5KzxHpzG','tw9U','vu5pvevtvf9orvrxt1jl','zxzLCNKGmtuGBwLU','AdeY','ntm4mdmYsuzvzwjY','vu5pvevtvf9eruzbvuXux05bvKLhqvrjt05FveLnru9vvf9nuW','vw5ZDxbWB3j0zwrsDw5lAw5KrxjYB3i','vu5pvevtvf9kvurhrv9mt0DFtevwruW','uNvUBMvY','A2LUza','yM9VBgvHBG','BxvZDcbUB3qGyMuGiI4Iig9YiciUlIi','x2XHDgvZDc5QC29U','C2nOzwr1BgvuyxjNzxq','CgfYC2vhAxrjBMzV','zxHWzwn0lwzHAwW','zgLYDhK','zxzLCNKGnsbTAw4','mtjKsg54s2m','vu5pvevtvf9kvurhrv9wt1rf','xsbYzxbLyxrZia','C2nVCguTBwLZBwf0y2G','AxnszwDLEeXPDgvYywW','CMvZzxj2zwrvBMrLCNnJB3jL','mJG3mZGWmu5iugnjvq','zxHLyW','AxnrDwv1zurPCK5HBwu','BxvZDcbUB3qGy29UDgfPBIbCic8GoIaQid8GiIa8id4GFcbVCIbJB250CM9SignOyxjHy3rLCNm','z2v0uMfUzg9TvMfSDwvZ','C2nOzwr1BgvZwW','igf0ia','vu5pvevtvf9rvuvvrv9hte9cquXFreLs','CMfUAW','AxnsDw5ZrgLYtMfTzq','CMvWBgfJzq','AxnsDw5UzxjdB25MAwDlzxK','y3jVBKzYB21tCgvJ','z2v0sg91CNm','C2nLBMfYAw9szwzgCM9TrMLSzu5HBwu','CMfUzg9T','BwfW','C2fUAxrPEMvsDw5jzfnLz21LBNq','C291CMnLCY5QC29U','lNDVCMTZCgfJzs5QC29U','C2HHCMreAxjgB3i','vu5pvevtvf9dt05tt0Xf','rK9sq0vFq09mt1i','C3rKB3v0lMXVzW','Bgf5zxjZrM9Y','AM9PBG','CgfKu3rHCNq','AxnbBM5VDgf0Aw9UtgLUzq','zMXVB3i','nJi3nJGWDLrWANfN','mtq1mJi2ngX2wLLJrG','Aw50zxjHy3rPDMu','zw52q29UDgvUDa','CgfYC2vwyxjPywjSzuDHChm','C2v0sg91CNm','C29Tzq','y2fUB25Py2fSu2nOzwr1Bgvtzxq','AxngAw5PDgu','lM11Dgv4','vu5pvevtvf9mt0nbteu','z2v0vvrdrNvSBfLLyxi','C2vJCMv0C0XHEwvYrMLSzxngB3i','igLZigfSC28GC2v0igLUihvUB3rLC3qVlNnLy3jLDhmG4OcuihrOzsbZzwnYzxqGDMfSDwuGC2HHzg93CYb0AgLZig9Uzs4','vu5pvevtvf9erujvrW','yMXVyLjLBfnLz21LBNrZrM9Y','C3bSAxq','mZC3nJa0mgH5BuDuBW','zw52s2v5CW','Dw5HDxrOB3jPEMvK','Ag91CMX5','CgfYC2vdAvj1BLjLC3bVBNnL','vu5pvevtvf9kvurhrv9ut0TftG','Ag9ZDa','CNvUswrtDgfYDgvKqxq','uNvUBMvYqwrHChrLCK5VDezVDw5KrxjYB3i','BwLUDxrLCW','zMLUza','DMfYAwfIBgvhyxbZ','CxvLDwvK','vu5pvevtvf9erujvr19lruvqx0nbteXt','zMfPBfn0CMvHAW','yxv0Ag9YAw5N','DgvTCgXHDgu','kI8Xnq','vu5pvevtvf9iruferuq','C2v0twLUDxrLCW','vu5pvevtvf9kvurhrv9quKvbtujmrq','zgvMAw5LuhjVCgvYDhK','CgXHBKfKzfzHCMLHyMXL','Dw5VDgvZDc8Uzw52','vu5pvevtvf9kvurhrv9quK9wsurfuG','vu5pvevtvf9qt1bvuf9huKfdrv9nuW','ChjVAMvJDfj1BNnsB290','CgfYC2vdAvbYB3zPzgvY','y29SBgvJDgLVBG','zw5KC1DPDgG','mJeZotKXnwLWqK11va','C2HHCMrqyxrOrM9YvgLTzxn0yw1W','vu5pvevtvf9kvurhrv9dquXmx1rjtuvpvvrFtvm','CMvTB3zLrw52vMfY','C3rVCMfNzq','BgvUz3rO','z2L0','zNjLCq','CgfYC2vbChbtzxj2zxjfDMvUDa','zMLSDgvY','DMLLD2vY','DgLJA2v0CW','otqWmJy4n0vtBw1MDG','y3jLyxrLzef0','AgvHCNrIzwf0','Bte1','CNvUrgLYrM9Y','vu5pvevtvf9kvurhrv9nt0rf','vu5pvevtvf9kvurhrv9ts0Lqx1bsruzmsuDiva','z2L0BgfI','y2fUBM90igXVywqGCNvUBMvYigfKyxb0zxiGiG','Dg9tDhjPBMC','BwfPBNrLBMfUy2u','vu5pvevtvf9kvurhrv9bq0nfu1nFve9lru4','BM93','z2v0rgf5','AxnbC3nPz25Tzw50t2y','CMvJzw50','Aw52ywXPzc1Uyw1L','CMvNzxHmAxrLCMfS','zMfPBgvK','yNvUzgXLswq','yxnZAwDUBwvUDevUDhjPzxm','DhjPBq','zgvSzxrLu2HHzg93v2fYBMLUzW','BwnW','CgfYC2vrDwv1zvrPy2TLDa','AxnjBNrLz2vY','z2v0vgLTzq','DMfSAwrHDgvgC1nHzMvoyw1L','z2v0vvrdrgf0zq','CNvUBMLUzW'];_0x4112=function(){return _0xe98ed2;};return _0x4112();}function blobRelPathFor(_0xf0338f,_0x5b61a9,_0x5b807c=0x0){return blobRelSegmentsFor(_0xf0338f,_0x5b61a9,_0x5b807c)['join']('/');}__name(blobRelPathFor,_0x213977(0x23f));function blobsRootFor(_0x312fb8){return _0x312fb8+'/'+BLOBS_DIR;}__name(blobsRootFor,_0x213977(0x1ed));var FS_UNSAFE_NAME_RE=/[\\/:*?"<>|\x00-\x1f]/;function validateFsSafeName(_0x5bd7bb,_0x1724b4){const _0x11949d={_0x4c69db:0x272,_0xdbe5db:0x1cc,_0x2628ed:0x291,_0x1b1281:0x1e4},_0x82aa95=_0x213977;if(typeof _0x5bd7bb!==_0x82aa95(_0x11949d._0x4c69db))return _0x82aa95(0x1fc);const _0x126085=_0x5bd7bb[_0x82aa95(_0x11949d._0xdbe5db)]();if(_0x126085[_0x82aa95(0x1b0)]===0x0)return _0x82aa95(0x1f8);if(_0x126085==='.'||_0x126085==='..')return _0x82aa95(0x285);if(_0x126085['startsWith']('.'))return'must\x20not\x20start\x20with\x20\x27.\x27';if(_0x1724b4?.[_0x82aa95(_0x11949d._0x2628ed)]&&_0x126085[_0x82aa95(0x1f4)]('_'))return'must\x20not\x20start\x20with\x20\x27_\x27\x20(reserved)';if(FS_UNSAFE_NAME_RE[_0x82aa95(_0x11949d._0x1b1281)](_0x126085))return _0x82aa95(0x295);return null;}__name(validateFsSafeName,_0x213977(0x1d2));var COLLECTION_NAME_FORBIDDEN_RE=FS_UNSAFE_NAME_RE;function validateCollectionName(_0x4dbe37){return validateFsSafeName(_0x4dbe37);}__name(validateCollectionName,'validateCollectionName');var RUN_MANIFEST_FILE='manifest.json',RUN_SOURCES_FILE=_0x213977(0x171),UnsupportedRunKindError=class extends Error{static{__name(this,'UnsupportedRunKindError');}constructor(_0x2bb172,_0x3eb57a){const _0x109aab=_0x213977;super('runner\x20\x22'+_0x3eb57a+'\x22\x20does\x20not\x20support\x20run\x20kind\x20\x22'+_0x2bb172+'\x22'),this[_0x109aab(0x1e9)]=_0x109aab(0x280);}},RunnerAdapterNotFoundError=class extends Error{static{__name(this,_0x213977(0x195));}constructor(_0x46ec42,_0x4a2088){const _0x1bf430={_0x161418:0x22c,_0x37d8cd:0x195},_0x4fa57f=_0x213977;super(_0x4fa57f(0x1bf)+_0x46ec42+_0x4fa57f(_0x1bf430._0x161418)+_0x4a2088),this[_0x4fa57f(0x1e9)]=_0x4fa57f(_0x1bf430._0x37d8cd);}},RunnerNotConfiguredError=class extends Error{static{__name(this,_0x213977(0x217));}constructor(_0x148c62){const _0x61b13a={_0x7f23eb:0x217},_0x2ffab7=_0x213977;super(_0x148c62),this['name']=_0x2ffab7(_0x61b13a._0x7f23eb);}},EXPECT_FAIL_ANNOTATION=_0x213977(0x289),ANNOTATION_RE=/^\s*\/\/\s*@([a-z0-9-]+)\s*$/;function isAnnotationLine(_0x495ae2){const _0x34eae2={_0x46432d:0x1e4},_0x14527=_0x213977;return ANNOTATION_RE[_0x14527(_0x34eae2._0x46432d)](_0x495ae2);}__name(isAnnotationLine,_0x213977(0x17a));function parseScenarioAnnotations(_0x16debd){const _0x24ef19={_0x19de45:0x18c,_0x2a8b8a:0x243},_0x49f073=_0x213977,_0x530fe1=new Set();for(const _0x58f111 of _0x16debd[_0x49f073(_0x24ef19._0x19de45)](/\r?\n/)){const _0x4cfde0=_0x58f111['trim']();if(_0x4cfde0==='')continue;if(!_0x4cfde0['startsWith']('//'))break;const _0x3ebb9a=_0x4cfde0['match'](ANNOTATION_RE);if(_0x3ebb9a)_0x530fe1[_0x49f073(0x263)](_0x3ebb9a[0x1]);}return{'expectFail':_0x530fe1[_0x49f073(_0x24ef19._0x2a8b8a)](EXPECT_FAIL_ANNOTATION)};}__name(parseScenarioAnnotations,'parseScenarioAnnotations');var SEGMENT_NAME_FORBIDDEN_RE=FS_UNSAFE_NAME_RE;function validateSegmentName(_0x504212){return validateFsSafeName(_0x504212,{'reservedUnderscore':!![]});}__name(validateSegmentName,_0x213977(0x232));var TERMINAL_WS_EVENT='terminal',RUNNER_CONFIG_KEYS=new Set(['UNOTEST_BROWSER',_0x213977(0x19f),_0x213977(0x20a),'UNOTEST_DEFAULT_TIMEOUT_MS',_0x213977(0x27f),_0x213977(0x1a6),_0x213977(0x186),'UNOTEST_TIMEZONE','UNOTEST_LOG_LEVEL',_0x213977(0x18a),_0x213977(0x1eb),_0x213977(0x269),_0x213977(0x219),_0x213977(0x200),_0x213977(0x19a),_0x213977(0x27b),_0x213977(0x174),_0x213977(0x24c),_0x213977(0x23d),_0x213977(0x175),_0x213977(0x1df)]);function isRunnerConfigKey(_0x1059b4){const _0x20998b=_0x213977;return RUNNER_CONFIG_KEYS[_0x20998b(0x243)](_0x1059b4);}__name(isRunnerConfigKey,_0x213977(0x29d));function categorizeVariable(_0x453cef){const _0x41df63={_0x5a84a4:0x226},_0x2f36ca=_0x213977;if(_0x453cef[_0x2f36ca(0x208)]===_0x2f36ca(_0x41df63._0x5a84a4))return _0x2f36ca(0x257);return isRunnerConfigKey(_0x453cef['name'])?'runner':_0x2f36ca(0x240);}__name(categorizeVariable,'categorizeVariable');function isExternalVarName(_0x10ebff){const _0x5f263b={_0x3fbeac:0x1e4},_0xc8dc5b=_0x213977;return/^[A-Z][A-Z0-9_]*$/[_0xc8dc5b(_0x5f263b._0x3fbeac)](_0x10ebff);}__name(isExternalVarName,_0x213977(0x1ef));var ENV_KEY_RE=/^[A-Za-z_][A-Za-z0-9_]*$/;function*assignmentEntries(_0x5af273){const _0x4dbc8d={_0x43803e:0x1f4,_0x5bf941:0x279,_0x2e6d15:0x1da},_0x5c16a9=_0x213977;for(const _0x5492ea of _0x5af273['split'](/\r?\n/)){const _0x128387=_0x5492ea[_0x5c16a9(0x1cc)]();if(_0x128387===''||_0x128387[_0x5c16a9(_0x4dbc8d._0x43803e)]('#'))continue;const _0x1a8f42=_0x128387[_0x5c16a9(_0x4dbc8d._0x5bf941)]('=');if(_0x1a8f42<=0x0)continue;const _0x149945=_0x128387[_0x5c16a9(_0x4dbc8d._0x2e6d15)](0x0,_0x1a8f42)['trim']();if(!ENV_KEY_RE[_0x5c16a9(0x1e4)](_0x149945))continue;yield[_0x149945,_0x128387[_0x5c16a9(0x1da)](_0x1a8f42+0x1)['trim']()];}}__name(assignmentEntries,_0x213977(0x1cb));function parseEnvContent(_0x5c390f){const _0x10b6c5={_0x357e43:0x1b0,_0xcf45b4:0x1b0},_0x134a34=_0x213977,_0x1ac3e5={};for(const [_0x4b5042,_0x2f08a2]of assignmentEntries(_0x5c390f)){let _0x24ca02=_0x2f08a2;if(_0x24ca02[_0x134a34(_0x10b6c5._0x357e43)]>=0x2){const _0x5de090=_0x24ca02[0x0],_0x1c6816=_0x24ca02[_0x24ca02[_0x134a34(_0x10b6c5._0xcf45b4)]-0x1];(_0x5de090==='\x22'||_0x5de090==='\x27')&&_0x5de090===_0x1c6816&&(_0x24ca02=_0x24ca02['slice'](0x1,-0x1));}_0x1ac3e5[_0x4b5042]=_0x24ca02;}return _0x1ac3e5;}__name(parseEnvContent,'parseEnvContent');function serializeEnvValue(_0x13570f){const _0x52d1ea=_0x213977;if(_0x13570f==='')return'';if(/[\s#"'=\\]|^[`]/['test'](_0x13570f)||/[\n\r]/['test'](_0x13570f)){const _0x30976c=_0x13570f['replace'](/\\/g,'\x5c\x5c')['replace'](/"/g,'\x5c\x22')['replace'](/\n/g,'\x5cn')[_0x52d1ea(0x29c)](/\r/g,'\x5cr');return'\x22'+_0x30976c+'\x22';}return _0x13570f;}__name(serializeEnvValue,_0x213977(0x23b));function envKeys(_0x3f8c1f){const _0x4fbfdc=new Set();for(const [_0x5f273b]of assignmentEntries(_0x3f8c1f))_0x4fbfdc['add'](_0x5f273b);return _0x4fbfdc;}__name(envKeys,_0x213977(0x18e));function isSectionDivider(_0x644c95){const _0x3c22dd={_0x2584ff:0x1cc},_0x1342ea=_0x213977,_0x3d04c1=_0x644c95[_0x1342ea(_0x3c22dd._0x2584ff)]();return _0x3d04c1[_0x1342ea(0x1f4)]('#')&&/---/[_0x1342ea(0x1e4)](_0x3d04c1);}__name(isSectionDivider,_0x213977(0x251));function isAssignmentLine(_0x208b26){const _0x13f91e={_0x51092b:0x1f4,_0x2b8463:0x1cc},_0x4b46ec=_0x213977,_0x51744e=_0x208b26['trim']();if(_0x51744e===''||_0x51744e[_0x4b46ec(_0x13f91e._0x51092b)]('#'))return![];const _0x5707bb=_0x51744e[_0x4b46ec(0x279)]('=');return _0x5707bb>0x0&&ENV_KEY_RE[_0x4b46ec(0x1e4)](_0x51744e[_0x4b46ec(0x1da)](0x0,_0x5707bb)[_0x4b46ec(_0x13f91e._0x2b8463)]());}__name(isAssignmentLine,_0x213977(0x24e));function isAssignmentOf(_0x4b63a2,_0xcc60e7){const _0x22ffea={_0x4ecfc3:0x1cc,_0x37526a:0x1cc},_0x269fce=_0x213977,_0x34b063=_0x4b63a2[_0x269fce(_0x22ffea._0x4ecfc3)]();if(_0x34b063===''||_0x34b063[_0x269fce(0x1f4)]('#'))return![];const _0x749710=_0x34b063[_0x269fce(0x279)]('=');if(_0x749710<=0x0)return![];return _0x34b063[_0x269fce(0x1da)](0x0,_0x749710)[_0x269fce(_0x22ffea._0x37526a)]()===_0xcc60e7;}__name(isAssignmentOf,_0x213977(0x1c5));function splitLines(_0x1af126){const _0x978003={_0x29bf1c:0x1aa,_0x23e85c:0x1da},_0x12d0be=_0x213977,_0x35692d=_0x1af126[_0x12d0be(_0x978003._0x29bf1c)]('\x0a'),_0x34490b=_0x35692d?_0x1af126[_0x12d0be(_0x978003._0x23e85c)](0x0,-0x1):_0x1af126;return{'lines':_0x34490b===''?[]:_0x34490b['split']('\x0a'),'trailingNewline':_0x35692d};}__name(splitLines,_0x213977(0x1dd));function joinLines(_0x5052db,_0x592983){const _0x51efae=_0x5052db['join']('\x0a');return _0x592983||_0x51efae===''?_0x51efae+'\x0a':_0x51efae;}__name(joinLines,'joinLines');function insertEnvVar(_0x41093e,_0x381320,_0x90c42,_0x130cc6){const _0x34ce1e={_0x4e298b:0x209,_0x590fb8:0x1b0,_0x2d218d:0x212,_0x4f5403:0x247},_0x182c9=_0x213977,_0x12eb8f=_0x381320+'='+serializeEnvValue(_0x90c42),{lines:_0x6465d4,trailingNewline:_0x5c26ca}=splitLines(_0x41093e);if(_0x130cc6){const _0x538a2b=new RegExp('\x5cb'+_0x130cc6[_0x182c9(0x220)]()+'\x5cb'),_0x3ef5a0=_0x6465d4[_0x182c9(_0x34ce1e._0x4e298b)](_0x570b5a=>isSectionDivider(_0x570b5a)&&_0x538a2b[_0x182c9(0x1e4)](_0x570b5a[_0x182c9(0x220)]()));if(_0x3ef5a0!==-0x1){let _0x5d51a7=_0x6465d4['length'];for(let _0x4a7bd9=_0x3ef5a0+0x1;_0x4a7bd9<_0x6465d4[_0x182c9(_0x34ce1e._0x590fb8)];_0x4a7bd9++){if(isSectionDivider(_0x6465d4[_0x4a7bd9])){_0x5d51a7=_0x4a7bd9;break;}}let _0x55c2f7=-0x1,_0x356668=-0x1;for(let _0xa84ea0=_0x3ef5a0+0x1;_0xa84ea0<_0x5d51a7;_0xa84ea0++){if(_0x6465d4[_0xa84ea0][_0x182c9(0x1cc)]()!=='')_0x356668=_0xa84ea0;if(isAssignmentLine(_0x6465d4[_0xa84ea0]))_0x55c2f7=_0xa84ea0;}const _0xd9665b=_0x55c2f7>=0x0?_0x55c2f7:_0x356668,_0x2ee9bb=_0xd9665b>=0x0?_0xd9665b+0x1:_0x3ef5a0+0x1;return _0x6465d4['splice'](_0x2ee9bb,0x0,_0x12eb8f),joinLines(_0x6465d4,_0x5c26ca||_0x6465d4[_0x182c9(_0x34ce1e._0x590fb8)]>0x0);}if(_0x6465d4[_0x182c9(0x1b0)]>0x0)_0x6465d4['push']('');return _0x6465d4[_0x182c9(0x1e5)](_0x182c9(_0x34ce1e._0x2d218d)+_0x130cc6+_0x182c9(_0x34ce1e._0x4f5403),_0x12eb8f),joinLines(_0x6465d4,!![]);}return _0x6465d4[_0x182c9(0x1e5)](_0x12eb8f),joinLines(_0x6465d4,!![]);}__name(insertEnvVar,'insertEnvVar');function removeEnvVar(_0x2d0ed2,_0x483674){const _0x3ddb75={_0x2f19ae:0x1b0},_0x1934bb=_0x213977,{lines:_0x224c00,trailingNewline:_0x5d44df}=splitLines(_0x2d0ed2),_0x599d8=_0x224c00[_0x1934bb(0x1b4)](_0x181f18=>!isAssignmentOf(_0x181f18,_0x483674)),_0x51487d=_0x599d8[_0x1934bb(_0x3ddb75._0x2f19ae)]!==_0x224c00[_0x1934bb(0x1b0)];return{'content':joinLines(_0x599d8,_0x5d44df),'removed':_0x51487d};}__name(removeEnvVar,_0x213977(0x1ae));var SECTION_BY_KIND={'app':'App','runner':_0x213977(0x282),'secret':void 0x0};function planAddVariable(_0x818a6b){const _0x391e82={_0xd373fb:0x243,_0x3c30ac:0x1d8,_0x1cd6f1:0x210,_0x22b8c2:0x1f6},_0x4ddb83=_0x213977,{name:_0x57b04f,kind:_0x3540d4}=_0x818a6b;if(_0x3540d4===_0x4ddb83(0x20c)){if(!isRunnerConfigKey(_0x57b04f))return{'ok':![],'code':'unknown-runner-key','message':_0x57b04f+'\x20is\x20not\x20a\x20known\x20runner\x20setting\x20—\x20choose\x20one\x20from\x20the\x20runner-config\x20list.'};}else{if(!isExternalVarName(_0x57b04f))return{'ok':![],'code':_0x4ddb83(0x1c7),'message':_0x57b04f+_0x4ddb83(0x205)};}const _0x4eb275=envKeys(_0x818a6b[_0x4ddb83(0x17f)])[_0x4ddb83(0x243)](_0x57b04f),_0x1eb189=envKeys(_0x818a6b[_0x4ddb83(0x244)])[_0x4ddb83(_0x391e82._0xd373fb)](_0x57b04f),_0x3d36bc=_0x3540d4===_0x4ddb83(0x257)?_0x4ddb83(0x226):_0x4ddb83(_0x391e82._0x3c30ac),_0x144a5f=_0x3d36bc===_0x4ddb83(0x226)?_0x1eb189:_0x4eb275,_0x1b941e=_0x3d36bc==='secrets'?'unotest/.secrets':_0x4ddb83(0x1a4);if(_0x144a5f)return{'ok':![],'code':_0x4ddb83(_0x391e82._0x1cd6f1),'message':_0x57b04f+_0x4ddb83(0x276)+_0x1b941e+_0x4ddb83(_0x391e82._0x22b8c2)};const _0x3093e0=[];return _0x3540d4==='secret'&&_0x4eb275&&_0x3093e0['push'](_0x57b04f+_0x4ddb83(0x265)),_0x3540d4!=='secret'&&_0x1eb189&&_0x3093e0[_0x4ddb83(0x1e5)](_0x57b04f+_0x4ddb83(0x189)),{'ok':!![],'target':_0x3d36bc,'sectionLabel':SECTION_BY_KIND[_0x3540d4],'warnings':_0x3093e0};}__name(planAddVariable,_0x213977(0x1a3));function deleteShadowWarning(_0x3bd041,_0x2a8103,_0x291e5f){if(_0x291e5f!==void 0x0&&_0x291e5f!==_0x2a8103)return[_0x3bd041+'\x20is\x20also\x20set\x20in\x20your\x20shell\x20environment\x20—\x20it\x20will\x20keep\x20resolving\x20from\x20there\x20(the\x20environment\x20wins\x20over\x20the\x20file).'];return[];}__name(deleteShadowWarning,_0x213977(0x1cd));var TERMINAL_RUNTIME_STATES=[_0x213977(0x1d7),_0x213977(0x1c9),_0x213977(0x277)];function isTerminalRuntimeState(_0x57d069){const _0x41de16=_0x213977;return TERMINAL_RUNTIME_STATES[_0x41de16(0x218)](_0x57d069);}__name(isTerminalRuntimeState,'isTerminalRuntimeState');var JUDGE_ROUTES={'judge':'/judge','health':_0x213977(0x228)},JUDGE_ENV={'mode':_0x213977(0x1bc),'url':_0x213977(0x239),'token':_0x213977(0x192),'requestTimeoutMs':_0x213977(0x1fa),'preamble':_0x213977(0x1a1),'provider':_0x213977(0x1a5),'model':_0x213977(0x26a),'callTimeoutMs':_0x213977(0x1ad),'retries':_0x213977(0x1db),'vote':_0x213977(0x28d),'accessToken':_0x213977(0x1c2),'claudeBin':_0x213977(0x20e),'host':'UNOTEST_JUDGE_HOST','port':'UNOTEST_JUDGE_PORT','logLevel':_0x213977(0x281),'skipPreflight':_0x213977(0x1bd)};export{ARTIFACTS_ROOT_ENV,BLOBS_DIR,BOX_TOKEN_ENV,BOX_URL_ENV,BUNDLE_ID_ENV,BUNDLE_MANIFEST_FILE,BUNDLE_SCHEMA_VERSION,BUNDLE_UPLOAD_PATH,CI_RUN_PATH,COLLECTIONS_SUBDIR,COLLECTION_NAME_FORBIDDEN_RE,COMMANDS_FILE,DAY_INDEX_FILE,DAY_SHORT,E2E_SUBDIR,ENV_FILE,EXPECT_FAIL_ANNOTATION,FREQ_FIELDS,HEARTBEAT_FILE,HELPERS_SUBDIR,InvalidBlobHashError,JUDGE_ENV,JUDGE_ROUTES,LOCK_FILE,LOG_FILE,PICKER_SNAPSHOT_FILE,QUEUE_DISABLED_ENV,QUEUE_GLOBAL_DIR_ENV,QUEUE_GLOBAL_SLOTS_ENV,QUEUE_LEASE_ENV,QUEUE_MUTEX_FILE,QUEUE_PRIORITIES,QUEUE_RUNNING_DIR,QUEUE_SCHEMA_VERSION,QUEUE_SLOTS_DIR,QUEUE_SUBDIR,QUEUE_TICKETS_DIR,RUNNER_CONFIG_KEYS,RUNS_SUBDIR,RUNTIME_FILE,RUN_INDEX_SCHEMA_VERSION,RUN_MANIFEST_FILE,RUN_SOURCES_FILE,RunnerAdapterNotFoundError,RunnerNotConfiguredError,SCENARIOS_INDEX_DIR,SCENARIOS_LATEST_FILE,SCENARIO_RECENT_WINDOW,SCHEDULES_FILE,SCHEDULES_FINGERPRINT_ENV,SECRETS_FILE,SEGMENT_NAME_FORBIDDEN_RE,SNAPSHOTS_SUBDIR,STDERR_FILE,STDOUT_FILE,STEPS_FILE,TERMINAL_RUNTIME_STATES,TERMINAL_WS_EVENT,UNOTEST_DIR,UnplaceableRunIdError,UnsupportedRunKindError,WEEK_CHIP_ORDER,WORKSPACE_FILE,WORKSPACE_SCHEMA_VERSION,activeEnvName,artifactsRootFrom,blobPathFor,blobRelPathFor,blobRelSegmentsFor,blobsRootFor,canonicalScheduleSet,categorizeVariable,compareQueueTicketNames,cronFromSpec,debugDirFor,debuggerFileFor,deleteShadowWarning,describeBundle,describeCron,describeSpec,describeTicketCi,envFileFor,envKeys,envLayerFilesFor,envNamesFromDirListing,foldScenarioRun,formatNextTick,insertEnvVar,isAnnotationLine,isExternalVarName,isFailingStatus,isQueueDirName,isRecord,isRegexLiteral,isRunnerConfigKey,isRunsDirName,isTerminalRuntimeState,makeQueueTicketName,makeRunId,mergeSchedules,nextTickFromSpec,parseAppServerEvent,parseBundleManifest,parseBundleUploadResponse,parseCiProvider,parseCiRunRequest,parseCiRunResponse,parseEnvContent,parseQueueTicket,parseQueueTicketName,parseScenarioAnnotations,parseScheduleEntry,parseSchedulesDoc,parseSchedulesJson,parseWorkspaceFile,planAddVariable,projectQueueRoot,projectRunDirFor,projectRunsRoot,queueDirFor,queuePriorityFromRank,queuePriorityRank,regexLiteral,removeEnvVar,requireRunDirFor,runDirFor,runIdStartedAt,runsDirFor,sanitizeRunIdSegment,scenarioIndexFileName,scenarioRefFromFileName,scheduleTarget,secretsFileFor,secretsLayerFilesFor,serializeEnvValue,shardDaysDescending,shardDirFor,shardPathForRunId,shardPathForTimestamp,specFromCron,testDirFor,validateCollectionName,validateSegmentName};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unotest/protocol",
3
- "version": "0.26.0",
3
+ "version": "0.27.0",
4
4
  "description": "Cross-runner protocol for the @unotest ecosystem: shared TypeScript types, path constants, the IRunnerAdapter contract that lets @unotest/viewer drive @unotest/web, @unotest/mobile (and future runners) through the same surface. Pure types + pure functions only — zero runtime deps, browser-safe.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {