@unotest/protocol 0.24.0 → 0.25.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 +117 -0
- package/dist/index.d.ts +35 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,122 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.25.0] - 2026-08-29
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 70f2e11: Judge: provider edge cases, a startup preflight, and logs.
|
|
8
|
+
|
|
9
|
+
**Vertex `GOOGLE_CLOUD_LOCATION=global` could not work.** The endpoint was
|
|
10
|
+
built as `https://<location>-aiplatform.googleapis.com`, so `global` asked
|
|
11
|
+
`global-aiplatform.googleapis.com` — not a Vertex host. Google's edge
|
|
12
|
+
answered 404 with an HTML page, which arrived as "model not found". The
|
|
13
|
+
global endpoint has no region prefix; it is now special-cased. `global` is
|
|
14
|
+
the default in Google's own docs, so this was the first thing a Vertex user
|
|
15
|
+
hit. A model id containing a slash
|
|
16
|
+
(`publishers/anthropic/models/claude-haiku-4-5`) is now passed through
|
|
17
|
+
instead of being forced under `publishers/google`, and a pasted
|
|
18
|
+
`models/gemini-2.5-flash` no longer doubles the prefix on the Gemini API.
|
|
19
|
+
|
|
20
|
+
**Backend replies are classified instead of lumped together.**
|
|
21
|
+
|
|
22
|
+
- `401`/`403` → `config` with the variable to fix (`OPENAI_API_KEY`, ADC,
|
|
23
|
+
an expired `UNOTEST_JUDGE_ACCESS_TOKEN`), no longer indistinguishable
|
|
24
|
+
from a model fault.
|
|
25
|
+
- `429` and `5xx` → retried transparently with a short backoff that
|
|
26
|
+
honours `Retry-After`. A single rate limit used to kill a whole scenario.
|
|
27
|
+
The retry policy is a decorator over `JudgeProvider`, not a loop inside
|
|
28
|
+
the HTTP helper, so it covers every provider — `claude` spawns a process
|
|
29
|
+
and therefore had no re-send at all. A `claude` usage limit is
|
|
30
|
+
deliberately still reported rather than retried: the window is seconds,
|
|
31
|
+
the limit is not.
|
|
32
|
+
- A non-JSON error body says the endpoint is wrong rather than quoting an
|
|
33
|
+
HTML page back as the backend's opinion of the model. The body is kept
|
|
34
|
+
for `debug` logging.
|
|
35
|
+
- OpenAI `finish_reason: length` and Anthropic `stop_reason: max_tokens`
|
|
36
|
+
are named as token-limit truncation instead of surfacing as "did not
|
|
37
|
+
reply with the requested JSON verdict".
|
|
38
|
+
- The verdict parser accepts `"PASS"` and a JSON object embedded in prose —
|
|
39
|
+
providers without a JSON mode do both.
|
|
40
|
+
|
|
41
|
+
**`UNOTEST_JUDGE_VOTE=N` no longer fails on one bad ballot.** The N calls
|
|
42
|
+
ran under `Promise.all`, so voting — the reliability feature — tripled the
|
|
43
|
+
chance that one transient error killed the request. Errored ballots are now
|
|
44
|
+
dropped as long as a majority of the N calls still voted; a tie among the
|
|
45
|
+
survivors re-raises the failure rather than picking a side.
|
|
46
|
+
|
|
47
|
+
**The service checks its credentials before it says "listening".** Each
|
|
48
|
+
provider exposes a free probe (an ADC token exchange, `GET /models`,
|
|
49
|
+
`claude --version`) — no model call, no cost. A failing probe prints the
|
|
50
|
+
reason and exits non-zero (`UNOTEST_JUDGE_SKIP_PREFLIGHT=1` waives it), and
|
|
51
|
+
`npx @unotest/judge --check` runs just the probe for start scripts.
|
|
52
|
+
`GET /health` reports the same thing instead of an unconditional
|
|
53
|
+
`{"ok":true}`: `503` + `{"ok":false,"code":"config","error":"..."}`, cached
|
|
54
|
+
for a few seconds. The waiver covers the startup gate only — a service
|
|
55
|
+
started under it still answers `/health` from a real probe, and `--check`
|
|
56
|
+
still answers honestly, because the operator who reaches for the flag is
|
|
57
|
+
precisely the one whose credentials are dead. A static
|
|
58
|
+
`UNOTEST_JUDGE_ACCESS_TOKEN` is validated too, against Google's free
|
|
59
|
+
`tokeninfo`: those tokens live about an hour and refresh themselves never,
|
|
60
|
+
so "valid at startup" is a different question from "valid now".
|
|
61
|
+
|
|
62
|
+
ADC that expires on a daily reauth policy is a normal morning state, not a
|
|
63
|
+
one-off misconfiguration — it should not cost a five-minute run to
|
|
64
|
+
discover.
|
|
65
|
+
|
|
66
|
+
**New: `UNOTEST_JUDGE_LOG_LEVEL`** (falls back to the `UNOTEST_LOG_LEVEL`
|
|
67
|
+
`@unotest/web` already reads). At the default `info`, one line per judged
|
|
68
|
+
request — verdict, attempts, model, latency — with errors on stderr; a run
|
|
69
|
+
of 21 assertions with `VOTE=3` is 63 billed model calls that previously
|
|
70
|
+
left no trace. At `debug`, per call: the effective prompt (rubric
|
|
71
|
+
**including** any `UNOTEST_JUDGE_PREAMBLE`), each ballot with its
|
|
72
|
+
reasoning, and the raw provider reply. **The judged text is application
|
|
73
|
+
content** — debug writes it to stdout verbatim, which is why it is opt-in
|
|
74
|
+
and never the default.
|
|
75
|
+
|
|
76
|
+
An oversized request body now returns `413` with a reason; the socket used
|
|
77
|
+
to be destroyed while the client was still writing, so the client saw
|
|
78
|
+
`socket hang up`.
|
|
79
|
+
|
|
80
|
+
**`@unotest/web`:** the `judge:verdict` run artifact records `preamble`
|
|
81
|
+
beside `rubric` when one is set. The model saw the concatenation, but only
|
|
82
|
+
the split says which half came from the scenario and which from the
|
|
83
|
+
environment — without it, "a red step is explainable without a re-run" held
|
|
84
|
+
only for whoever also knew the env file. A judge request that outlives
|
|
85
|
+
`UNOTEST_JUDGE_TIMEOUT_MS` now says so, and names the service-side
|
|
86
|
+
`UNOTEST_JUDGE_CALL_TIMEOUT_MS` it may be racing.
|
|
87
|
+
|
|
88
|
+
The Claude CLI provider also stopped leaking a timer: the per-call budget
|
|
89
|
+
is now our own timer, cleared on every exit path. `child_process.spawn`'s
|
|
90
|
+
`timeout` option does not clear itself when the spawn fails, so a missing
|
|
91
|
+
binary held the event loop for the whole budget — 15s for a `--version`
|
|
92
|
+
probe, 120s for a verdict.
|
|
93
|
+
|
|
94
|
+
**Breaking (0.x minor):** `@unotest/judge` no longer exports `ExecFileFn` /
|
|
95
|
+
`ExecFileResult`; the Claude CLI provider takes `runImpl: RunProcess`
|
|
96
|
+
instead of `execImpl`, because the prompt moved from `argv` to stdin — a
|
|
97
|
+
long judged text used to overflow `ARG_MAX` and fail as a bare `E2BIG`.
|
|
98
|
+
|
|
99
|
+
- adb9d72: Viewer: a pinned Home tab, a multi-row tab strip, and live tiles on the
|
|
100
|
+
overview field.
|
|
101
|
+
|
|
102
|
+
- **Home tab.** The project-health overview used to render only when no
|
|
103
|
+
tab was open, so it disappeared exactly while you were working. It is
|
|
104
|
+
now a pinned first tab: always present, never closable, and what
|
|
105
|
+
"Close All" leaves you on.
|
|
106
|
+
- **Multi-row tabs.** The strip wraps instead of scrolling sideways —
|
|
107
|
+
every open tab is visible at once, up to three rows, then it scrolls.
|
|
108
|
+
Tabs are pills now: the active one is filled like a selected tree row,
|
|
109
|
+
inactive ones are plain text until hovered. Middle-click closes a tab,
|
|
110
|
+
the `⋮` button opens the same actions as a right-click, and the strip
|
|
111
|
+
is a proper `tablist` for screen readers.
|
|
112
|
+
- **Live tiles.** A scenario that is running right now breathes on the
|
|
113
|
+
overview field — the tile fades in and out under a warm ring (a still
|
|
114
|
+
ring when paused, since nothing is moving). Status colour, tile order
|
|
115
|
+
and the counters/filters stay exactly as they were until the run
|
|
116
|
+
finishes.
|
|
117
|
+
|
|
118
|
+
`@unotest/protocol` gains the `overview` tab kind in the `TabKind` union.
|
|
119
|
+
|
|
3
120
|
## [0.24.0] - 2026-08-26
|
|
4
121
|
|
|
5
122
|
### Minor Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -426,7 +426,15 @@ interface ScreenshotEvent extends RunArtifactBase {
|
|
|
426
426
|
* at emit time, like unbound `screenshot` events. */
|
|
427
427
|
interface JudgeVerdictEvent extends RunArtifactBase {
|
|
428
428
|
kind: "judge:verdict";
|
|
429
|
+
/** The scenario's own rubric, as written in the test. */
|
|
429
430
|
rubric: string;
|
|
431
|
+
/** Project-wide judging context prepended to every rubric
|
|
432
|
+
* (UNOTEST_JUDGE_PREAMBLE), when one is set. Recorded next to the rubric
|
|
433
|
+
* rather than glued to it: what the model saw is the concatenation, but
|
|
434
|
+
* only this split says which half came from the scenario and which from
|
|
435
|
+
* the environment. Absent on runs with no preamble (and on runs recorded
|
|
436
|
+
* before 0.25.0). */
|
|
437
|
+
preamble?: string;
|
|
430
438
|
/** The judged text (the resolved element's rendered text). */
|
|
431
439
|
text: string;
|
|
432
440
|
verdict: "pass" | "fail";
|
|
@@ -1469,6 +1477,12 @@ type WsMessage = FsScenariosChangedMessage | FsHelpersChangedMessage | FsCollect
|
|
|
1469
1477
|
* registries (`Record<WsMessageKind, Handler>`). */
|
|
1470
1478
|
type WsMessageKind = WsMessage["kind"];
|
|
1471
1479
|
|
|
1480
|
+
/** The pinned Overview ("Home") tab — project health, always open and
|
|
1481
|
+
* never closable. Carries no target: there is exactly one of it, so the
|
|
1482
|
+
* `kind` alone is its identity. */
|
|
1483
|
+
interface OverviewTab {
|
|
1484
|
+
kind: "overview";
|
|
1485
|
+
}
|
|
1472
1486
|
/** Open scenario source (read-only view). Keyed by project-relative path. */
|
|
1473
1487
|
interface ScenarioTab {
|
|
1474
1488
|
kind: "scenario";
|
|
@@ -1503,7 +1517,7 @@ interface SnapshotTab {
|
|
|
1503
1517
|
snapshotId: string;
|
|
1504
1518
|
}
|
|
1505
1519
|
/** Discriminated union of every open-tab shape the frontend supports. */
|
|
1506
|
-
type TabKind = ScenarioTab | HelperTab | CollectionTab | ScenarioRunTab | CollectionRunTab | SnapshotTab;
|
|
1520
|
+
type TabKind = OverviewTab | ScenarioTab | HelperTab | CollectionTab | ScenarioRunTab | CollectionRunTab | SnapshotTab;
|
|
1507
1521
|
/** All tab `kind` literals — useful for switch-completeness checks. */
|
|
1508
1522
|
type TabKindName = TabKind["kind"];
|
|
1509
1523
|
|
|
@@ -1635,6 +1649,17 @@ interface JudgeErrorResponse {
|
|
|
1635
1649
|
* the message says what to run. */
|
|
1636
1650
|
code?: "unauthorized" | "bad-request" | "provider-error" | "config" | "internal";
|
|
1637
1651
|
}
|
|
1652
|
+
/** `GET /health` — whether the service can actually judge, not merely
|
|
1653
|
+
* whether it is listening. A judge whose credentials are dead answers
|
|
1654
|
+
* `ok: false` with the same message (and `code`) a verdict call would
|
|
1655
|
+
* fail with, so a runner can preflight it instead of spending a scenario
|
|
1656
|
+
* to find out. */
|
|
1657
|
+
interface JudgeHealthResponse {
|
|
1658
|
+
ok: boolean;
|
|
1659
|
+
/** Present when `ok` is false — same taxonomy as JudgeErrorResponse. */
|
|
1660
|
+
code?: JudgeErrorResponse["code"];
|
|
1661
|
+
error?: string;
|
|
1662
|
+
}
|
|
1638
1663
|
declare const JUDGE_ROUTES: {
|
|
1639
1664
|
readonly judge: "/judge";
|
|
1640
1665
|
readonly health: "/health";
|
|
@@ -1670,6 +1695,14 @@ declare const JUDGE_ENV: {
|
|
|
1670
1695
|
/** judge: bind address. */
|
|
1671
1696
|
readonly host: "UNOTEST_JUDGE_HOST";
|
|
1672
1697
|
readonly port: "UNOTEST_JUDGE_PORT";
|
|
1698
|
+
/** judge: silent | error | warn | info | debug. Falls back to the
|
|
1699
|
+
* UNOTEST_LOG_LEVEL @unotest/web already reads, so one variable can
|
|
1700
|
+
* cover both halves of a run. */
|
|
1701
|
+
readonly logLevel: "UNOTEST_JUDGE_LOG_LEVEL";
|
|
1702
|
+
/** judge: skip the startup credential probe. Escape hatch for a closed
|
|
1703
|
+
* network where the free probe endpoint is unreachable but the model
|
|
1704
|
+
* endpoint is not. */
|
|
1705
|
+
readonly skipPreflight: "UNOTEST_JUDGE_SKIP_PREFLIGHT";
|
|
1673
1706
|
};
|
|
1674
1707
|
|
|
1675
|
-
export { type AddVariablePlan, type AddVariablePlanInput, type AppPathPickerSpec, type AppServerEvent, type AuthoringRunRequest, BLOBS_DIR, type BreakpointEntry, type BreakpointsFile, COLLECTIONS_SUBDIR, COLLECTION_NAME_FORBIDDEN_RE, COMMANDS_FILE, type CheckSeverity, 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 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 IRunnerAdapter, InvalidBlobHashError, JUDGE_ENV, JUDGE_ROUTES, type JudgeErrorResponse, type JudgeRequest, type JudgeVerdict, type JudgeVerdictEvent, LOCK_FILE, LOG_FILE, type LaunchSpec, type LocatorPickedEvent, type LockFile, type LogLineMessage, type Matcher, PICKER_SNAPSHOT_FILE, type PausedEvent, type PickerMode, type ProbeMatch, type ProbePinned, type ProbeResult, type ProbeResultEvent, 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 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 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, type WheelChangedEvent, type WsMessage, type WsMessageKind, activeEnvName, blobPathFor, blobRelPathFor, blobRelSegmentsFor, blobsRootFor, categorizeVariable, debugDirFor, debuggerFileFor, deleteShadowWarning, envFileFor, envKeys, envLayerFilesFor, envNamesFromDirListing, foldScenarioRun, insertEnvVar, isAnnotationLine, isExternalVarName, isFailingStatus, isRegexLiteral, isRunnerConfigKey, isRunsDirName, isTerminalRuntimeState, makeRunId, parseAppServerEvent, parseEnvContent, parseScenarioAnnotations, planAddVariable, projectRunDirFor, projectRunsRoot, regexLiteral, removeEnvVar, requireRunDirFor, runDirFor, runIdStartedAt, runsDirFor, sanitizeRunIdSegment, scenarioIndexFileName, scenarioRefFromFileName, secretsFileFor, secretsLayerFilesFor, serializeEnvValue, shardDaysDescending, shardDirFor, shardPathForRunId, shardPathForTimestamp, testDirFor, validateCollectionName, validateSegmentName };
|
|
1708
|
+
export { type AddVariablePlan, type AddVariablePlanInput, type AppPathPickerSpec, type AppServerEvent, type AuthoringRunRequest, BLOBS_DIR, type BreakpointEntry, type BreakpointsFile, COLLECTIONS_SUBDIR, COLLECTION_NAME_FORBIDDEN_RE, COMMANDS_FILE, type CheckSeverity, 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 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 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 PausedEvent, type PickerMode, type ProbeMatch, type ProbePinned, type ProbeResult, type ProbeResultEvent, 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 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 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, type WheelChangedEvent, type WsMessage, type WsMessageKind, activeEnvName, blobPathFor, blobRelPathFor, blobRelSegmentsFor, blobsRootFor, categorizeVariable, debugDirFor, debuggerFileFor, deleteShadowWarning, envFileFor, envKeys, envLayerFilesFor, envNamesFromDirListing, foldScenarioRun, insertEnvVar, isAnnotationLine, isExternalVarName, isFailingStatus, isRegexLiteral, isRunnerConfigKey, isRunsDirName, isTerminalRuntimeState, makeRunId, parseAppServerEvent, parseEnvContent, parseScenarioAnnotations, planAddVariable, projectRunDirFor, projectRunsRoot, regexLiteral, removeEnvVar, requireRunDirFor, runDirFor, runIdStartedAt, runsDirFor, sanitizeRunIdSegment, scenarioIndexFileName, scenarioRefFromFileName, secretsFileFor, secretsLayerFilesFor, serializeEnvValue, shardDaysDescending, shardDirFor, shardPathForRunId, shardPathForTimestamp, testDirFor, validateCollectionName, validateSegmentName };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x116ffa=_0x200a;(function(_0x27d94b,_0x35e3c4){const _0x3b833b={_0x50921b:0x22d,_0x3e1358:0x1ee,_0x475ede:0x1f9,_0x3e45ae:0x198,_0xa50cb2:0x1c1},_0x41b16b=_0x200a,_0x4bb2f7=_0x27d94b();while(!![]){try{const _0x21bd0a=-parseInt(_0x41b16b(_0x3b833b._0x50921b))/0x1*(parseInt(_0x41b16b(0x205))/0x2)+parseInt(_0x41b16b(0x256))/0x3*(-parseInt(_0x41b16b(0x215))/0x4)+parseInt(_0x41b16b(0x192))/0x5+-parseInt(_0x41b16b(_0x3b833b._0x3e1358))/0x6*(-parseInt(_0x41b16b(0x1b1))/0x7)+-parseInt(_0x41b16b(_0x3b833b._0x475ede))/0x8+parseInt(_0x41b16b(0x1c5))/0x9+-parseInt(_0x41b16b(_0x3b833b._0x3e45ae))/0xa*(-parseInt(_0x41b16b(_0x3b833b._0xa50cb2))/0xb);if(_0x21bd0a===_0x35e3c4)break;else _0x4bb2f7['push'](_0x4bb2f7['shift']());}catch(_0x58da1c){_0x4bb2f7['push'](_0x4bb2f7['shift']());}}}(_0x3720,0x26e1e));var __defProp=Object['defineProperty'],__name=(_0x2fdceb,_0x5693e4)=>__defProp(_0x2fdceb,'name',{'value':_0x5693e4,'configurable':!![]});function parseAppServerEvent(_0x4b2a3a){const _0x47d636={_0x5171bc:0x1e8,_0x596675:0x201},_0x3ec199=_0x200a,_0x423c72=_0x4b2a3a[_0x3ec199(0x204)]();if(!_0x423c72[_0x3ec199(0x1a1)]('{'))return null;try{const _0x3a522f=JSON[_0x3ec199(_0x47d636._0x5171bc)](_0x423c72);if(_0x3a522f[_0x3ec199(_0x47d636._0x596675)]===_0x3ec199(0x24b)||_0x3a522f[_0x3ec199(0x201)]===_0x3ec199(0x1fe)||_0x3a522f[_0x3ec199(_0x47d636._0x596675)]===_0x3ec199(0x219))return _0x3a522f;return null;}catch{return null;}}__name(parseAppServerEvent,'parseAppServerEvent');var UNOTEST_DIR=_0x116ffa(0x1ac),E2E_SUBDIR=_0x116ffa(0x221),HELPERS_SUBDIR=_0x116ffa(0x19a),COLLECTIONS_SUBDIR='_collections',RUNS_SUBDIR=_0x116ffa(0x193),SNAPSHOTS_SUBDIR='.snapshots';function testDirFor(_0x106fc4){return''+E2E_SUBDIR+_0x106fc4;}__name(testDirFor,_0x116ffa(0x230));function runsDirFor(_0x2974be,_0x162c18){return''+RUNS_SUBDIR+_0x2974be+(_0x162c18?'.'+_0x162c18:'');}__name(runsDirFor,'runsDirFor');function isRunsDirName(_0x145273){const _0x5afd98=_0x116ffa;return _0x145273===RUNS_SUBDIR||_0x145273['startsWith'](RUNS_SUBDIR+'-')||_0x145273[_0x5afd98(0x1a1)](RUNS_SUBDIR+'.');}__name(isRunsDirName,'isRunsDirName');function debugDirFor(_0xcf836c){return'.debug'+_0xcf836c;}__name(debugDirFor,'debugDirFor');function debuggerFileFor(_0x16de6e){const _0x4cbdc4={_0xf4522a:0x253},_0x1c5387=_0x116ffa;return UNOTEST_DIR+_0x1c5387(_0x4cbdc4._0xf4522a)+_0x16de6e+_0x1c5387(0x1dd);}__name(debuggerFileFor,_0x116ffa(0x220));var LOCK_FILE=_0x116ffa(0x254),LOG_FILE=_0x116ffa(0x1b5),STEPS_FILE=_0x116ffa(0x1b8),HEARTBEAT_FILE='heartbeat',DAY_INDEX_FILE=_0x116ffa(0x21d),SCENARIOS_INDEX_DIR=_0x116ffa(0x21f),SCENARIOS_LATEST_FILE=_0x116ffa(0x23b),STDOUT_FILE=_0x116ffa(0x1c9),STDERR_FILE=_0x116ffa(0x1fb),COMMANDS_FILE=_0x116ffa(0x1f8),RUNTIME_FILE=_0x116ffa(0x1ce),PICKER_SNAPSHOT_FILE=_0x116ffa(0x1db),ENV_FILE=_0x116ffa(0x1d0),SECRETS_FILE=_0x116ffa(0x21b);function envFileFor(_0x5bd1e4,_0x2e743d){return''+ENV_FILE+_0x5bd1e4+(_0x2e743d?'.'+_0x2e743d:'');}__name(envFileFor,_0x116ffa(0x24d));function secretsFileFor(_0x136521,_0x41fd37){return''+SECRETS_FILE+_0x136521+(_0x41fd37?'.'+_0x41fd37:'');}__name(secretsFileFor,'secretsFileFor');function envLayerFilesFor(_0x5ac52a,_0x14db69){return layersFor(ENV_FILE,_0x5ac52a,_0x14db69);}__name(envLayerFilesFor,_0x116ffa(0x1d9));function secretsLayerFilesFor(_0x47592e,_0x490ee8){return layersFor(SECRETS_FILE,_0x47592e,_0x490ee8);}__name(secretsLayerFilesFor,'secretsLayerFilesFor');function layersFor(_0x29c4c0,_0x5f02fb,_0x45116d){const _0xfdf440={_0x464695:0x233,_0x50a7da:0x233},_0x26c25a=_0x116ffa,_0x6d0fe7=[_0x29c4c0];if(_0x5f02fb)_0x6d0fe7[_0x26c25a(_0xfdf440._0x464695)](''+_0x29c4c0+_0x5f02fb);if(_0x45116d){_0x6d0fe7['push'](_0x29c4c0+'.'+_0x45116d);if(_0x5f02fb)_0x6d0fe7[_0x26c25a(_0xfdf440._0x50a7da)](''+_0x29c4c0+_0x5f02fb+'.'+_0x45116d);}return _0x6d0fe7;}__name(layersFor,_0x116ffa(0x255));function activeEnvName(_0x43df25){const _0x42b4b7={_0x469696:0x218},_0x2350f5=_0x116ffa,_0x5bf6fa=_0x43df25[_0x2350f5(_0x42b4b7._0x469696)]?.[_0x2350f5(0x204)]();return _0x5bf6fa?_0x5bf6fa:void 0x0;}__name(activeEnvName,_0x116ffa(0x1a0));var RESERVED_ENV_NAMES=new Set([_0x116ffa(0x19e),_0x116ffa(0x1e3),_0x116ffa(0x1e0)]);function envNamesFromDirListing(_0x955c6d,_0x5f5207){const _0x325dd7={_0xf8fcb6:0x1ad,_0x4a620f:0x22b,_0x1cdba3:0x227},_0x1b40f8=_0x116ffa,_0x3eed55=['.env',_0x1b40f8(_0x325dd7._0xf8fcb6)][_0x1b40f8(0x1be)](_0x2e2d63=>_0x5f5207?[_0x2e2d63,''+_0x2e2d63+_0x5f5207]:[_0x2e2d63]),_0xabae84=new Set();for(const _0x298448 of _0x955c6d){for(const _0x22ddfa of _0x3eed55){const _0x32028e=_0x22ddfa+'.';if(!_0x298448[_0x1b40f8(0x1a1)](_0x32028e))continue;const _0x43c6f5=_0x298448[_0x1b40f8(0x1d4)](_0x32028e[_0x1b40f8(_0x325dd7._0x4a620f)]);if(!_0x43c6f5||_0x43c6f5['includes']('/'))continue;if(RESERVED_ENV_NAMES[_0x1b40f8(0x20f)](_0x43c6f5))continue;_0xabae84['add'](_0x43c6f5);}}return[..._0xabae84][_0x1b40f8(_0x325dd7._0x1cdba3)]();}__name(envNamesFromDirListing,_0x116ffa(0x252));function isRegexLiteral(_0x3b302f){const _0xade919={_0xb288f:0x1cf,_0x83ae3a:0x201,_0x33be99:0x1a7,_0x259f1d:0x1a3,_0x4fd395:0x1ae,_0x363e30:0x20d,_0x365b33:0x1ae},_0x1154c1=_0x116ffa;return typeof _0x3b302f===_0x1154c1(_0xade919._0xb288f)&&_0x3b302f!==null&&_0x3b302f[_0x1154c1(_0xade919._0x83ae3a)]===_0x1154c1(_0xade919._0x33be99)&&typeof _0x3b302f[_0x1154c1(_0xade919._0x259f1d)]===_0x1154c1(_0xade919._0x4fd395)&&typeof _0x3b302f[_0x1154c1(_0xade919._0x363e30)]===_0x1154c1(_0xade919._0x365b33);}__name(isRegexLiteral,_0x116ffa(0x206));function regexLiteral(_0x1787b3,_0x2d4b37=''){const _0xacd23={_0x465b79:0x1a7},_0x4c7b5=_0x116ffa;return{'kind':_0x4c7b5(_0xacd23._0x465b79),'source':_0x1787b3,'flags':_0x2d4b37};}__name(regexLiteral,_0x116ffa(0x1d5));var RAND_BYTES=0x6;function makeRunId(_0x40f8d5){const _0x14a3d0={_0x23ecdc:0x1c2,_0x198ad8:0x1c4,_0x5ea264:0x22e,_0x9cc54:0x257},_0x28117a=_0x116ffa,_0x215022=sanitizeRunIdSegment(_0x40f8d5),_0x4d2521=Date[_0x28117a(_0x14a3d0._0x23ecdc)]()[_0x28117a(_0x14a3d0._0x198ad8)](0x24),_0x1a457a=new Uint8Array(RAND_BYTES);globalThis[_0x28117a(_0x14a3d0._0x5ea264)]['getRandomValues'](_0x1a457a);let _0x2fe692='';for(let _0x3c838b=0x0;_0x3c838b<_0x1a457a[_0x28117a(0x22b)];_0x3c838b++){_0x2fe692+=_0x1a457a[_0x3c838b]['toString'](0x10)[_0x28117a(_0x14a3d0._0x9cc54)](0x2,'0');}return _0x215022+'-'+_0x4d2521+'-'+_0x2fe692;}__name(makeRunId,_0x116ffa(0x1b3));function sanitizeRunIdSegment(_0x39dd64){const _0x410dea={_0x4e9038:0x199,_0x2e3dbb:0x1fa},_0x1e9796=_0x116ffa,_0x24eb05=_0x39dd64[_0x1e9796(0x199)](/[^a-zA-Z0-9_-]+/g,'-')[_0x1e9796(0x199)](/-+/g,'-')[_0x1e9796(_0x410dea._0x4e9038)](/^-|-$/g,'');return _0x24eb05[_0x1e9796(0x22b)]>0x0?_0x24eb05:_0x1e9796(_0x410dea._0x2e3dbb);}__name(sanitizeRunIdSegment,_0x116ffa(0x23f));var RANDOM_SUFFIX_RE=/^[0-9a-f]{6,}$/,MIN_PLAUSIBLE_MS=Date[_0x116ffa(0x236)](0x7e4,0x0,0x1),MAX_PLAUSIBLE_MS=Date[_0x116ffa(0x236)](0x834,0x0,0x1);function runIdStartedAt(_0x56cc1b){const _0x4592e0={_0x1bb4f6:0x203,_0xd76748:0x22b,_0x3e0c90:0x1dc,_0x3eb56f:0x19c},_0x1845f9=_0x116ffa,_0x23cf06=_0x56cc1b[_0x1845f9(_0x4592e0._0x1bb4f6)]('-');if(_0x23cf06[_0x1845f9(0x22b)]<0x3)return null;const _0x418603=_0x23cf06[_0x23cf06[_0x1845f9(_0x4592e0._0xd76748)]-0x1];if(!RANDOM_SUFFIX_RE[_0x1845f9(_0x4592e0._0x3e0c90)](_0x418603))return null;const _0x241189=_0x23cf06[_0x23cf06['length']-0x2];if(!/^[0-9a-z]+$/[_0x1845f9(0x1dc)](_0x241189))return null;const _0x148cf3=parseInt(_0x241189,0x24);if(!Number[_0x1845f9(_0x4592e0._0x3eb56f)](_0x148cf3))return null;if(_0x148cf3<MIN_PLAUSIBLE_MS||_0x148cf3>=MAX_PLAUSIBLE_MS)return null;return _0x148cf3;}__name(runIdStartedAt,_0x116ffa(0x1bb));function shardPathForTimestamp(_0x560f6f){const _0x61263d={_0x36f5b6:0x216,_0x24f188:0x257,_0x203e7e:0x228},_0x5a5b54=_0x116ffa,_0x550c56=new Date(_0x560f6f),_0x4a8b4b=String(_0x550c56[_0x5a5b54(0x251)]())['padStart'](0x4,'0'),_0x1e1cf0=String(_0x550c56[_0x5a5b54(_0x61263d._0x36f5b6)]()+0x1)[_0x5a5b54(_0x61263d._0x24f188)](0x2,'0'),_0x1a6176=String(_0x550c56[_0x5a5b54(_0x61263d._0x203e7e)]())[_0x5a5b54(_0x61263d._0x24f188)](0x2,'0');return _0x4a8b4b+'/'+_0x1e1cf0+'/'+_0x1a6176;}__name(shardPathForTimestamp,_0x116ffa(0x239));function shardPathForRunId(_0x4053b1){const _0x883260=runIdStartedAt(_0x4053b1);return _0x883260===null?null:shardPathForTimestamp(_0x883260);}__name(shardPathForRunId,_0x116ffa(0x245));function runDirFor(_0x49437f,_0x37e309){const _0x1debde=shardPathForRunId(_0x37e309);return _0x1debde===null?null:_0x49437f+'/'+_0x1debde+'/'+_0x37e309;}__name(runDirFor,'runDirFor');var UnplaceableRunIdError=class extends Error{static{__name(this,_0x116ffa(0x1f3));}constructor(_0xda6e1d){const _0xd42bca={_0x5e0061:0x1ff},_0x1b7351=_0x116ffa;super(_0x1b7351(0x1e5)+_0xda6e1d),this[_0x1b7351(_0xd42bca._0x5e0061)]='UnplaceableRunIdError';}};function requireRunDirFor(_0x29d9c1,_0x5ec03e){const _0x477c86=runDirFor(_0x29d9c1,_0x5ec03e);if(_0x477c86===null)throw new UnplaceableRunIdError(_0x5ec03e);return _0x477c86;}__name(requireRunDirFor,_0x116ffa(0x208));function projectRunsRoot(_0x138d66='',_0x594e7e){return UNOTEST_DIR+'/'+runsDirFor(_0x138d66,_0x594e7e);}__name(projectRunsRoot,_0x116ffa(0x1f0));function projectRunDirFor(_0x3fa6ce,_0x2c3c21='',_0x12884f){return requireRunDirFor(projectRunsRoot(_0x2c3c21,_0x12884f),_0x3fa6ce);}__name(projectRunDirFor,_0x116ffa(0x1a8));function shardDirFor(_0x4db600,_0xf7fc93){return _0x4db600+'/'+shardPathForTimestamp(_0xf7fc93);}__name(shardDirFor,'shardDirFor');function*shardDaysDescending(_0x8e0f55,_0x329adf,_0x51e73d){const _0x526274={_0x21ff4:0x212},_0x4b75cb=_0x116ffa,_0x100b24=0x5265c00;let _0xfebec=Math[_0x4b75cb(_0x526274._0x21ff4)](_0x329adf/_0x100b24)*_0x100b24;for(let _0x406038=0x0;_0x406038<_0x51e73d;_0x406038++){yield shardDirFor(_0x8e0f55,_0xfebec),_0xfebec-=_0x100b24;}}__name(shardDaysDescending,_0x116ffa(0x1a9));var RUN_INDEX_SCHEMA_VERSION=0x2,SCENARIO_RECENT_WINDOW=0xc;function isFailingStatus(_0x43a40e){const _0x1a4329={_0x2b7f6d:0x19d},_0x8b7894=_0x116ffa;return _0x43a40e===_0x8b7894(_0x1a4329._0x2b7f6d)||_0x43a40e===_0x8b7894(0x22f);}__name(isFailingStatus,_0x116ffa(0x1e2));function foldScenarioRun(_0x47b580,_0x447118){const _0x4749f7={_0x691b5e:0x21a,_0x30e471:0x229,_0x7f13e6:0x217,_0xd545a5:0x1de,_0x242d6a:0x20a,_0x3ec600:0x229},_0x2e3005=_0x116ffa,_0x3ae930={'lastRunId':_0x447118[_0x2e3005(_0x4749f7._0x691b5e)],'lastStatus':_0x447118['status'],'lastAt':_0x447118[_0x2e3005(_0x4749f7._0x30e471)],'lastDurationMs':_0x447118[_0x2e3005(_0x4749f7._0x7f13e6)],'recent':[..._0x47b580?.[_0x2e3005(_0x4749f7._0xd545a5)]??[],_0x447118[_0x2e3005(_0x4749f7._0x242d6a)]][_0x2e3005(0x1d4)](-SCENARIO_RECENT_WINDOW)};if(!isFailingStatus(_0x447118[_0x2e3005(0x20a)]))return{..._0x3ae930,'failStreak':0x0,'failingSince':null};const _0x1c7a77=(_0x47b580?.[_0x2e3005(0x249)]??0x0)+0x1;return{..._0x3ae930,'failStreak':_0x1c7a77,'failingSince':_0x1c7a77===0x1?_0x447118[_0x2e3005(_0x4749f7._0x30e471)]:_0x47b580?.[_0x2e3005(0x1fd)]??_0x447118[_0x2e3005(_0x4749f7._0x3ec600)]};}__name(foldScenarioRun,_0x116ffa(0x225));function scenarioIndexFileName(_0x18e240){const _0x1373d9={_0x49f34c:0x1aa},_0x28bf9a=_0x116ffa;return encodeURIComponent(_0x18e240)+_0x28bf9a(_0x1373d9._0x49f34c);}__name(scenarioIndexFileName,_0x116ffa(0x23d));function scenarioRefFromFileName(_0x12d6d6){const _0x589e56={_0x3b04c3:0x1c3,_0x29da73:0x1aa,_0xa1861d:0x22b},_0xb7738c=_0x116ffa;if(!_0x12d6d6[_0xb7738c(_0x589e56._0x3b04c3)](_0xb7738c(0x1aa)))return null;try{return decodeURIComponent(_0x12d6d6['slice'](0x0,-_0xb7738c(_0x589e56._0x29da73)[_0xb7738c(_0x589e56._0xa1861d)]));}catch{return null;}}__name(scenarioRefFromFileName,_0x116ffa(0x1c7));var BLOBS_DIR=_0x116ffa(0x210),GENERATION_SEP='~',HASH_RE=/^[0-9a-f]{8,}$/,InvalidBlobHashError=class extends Error{static{__name(this,_0x116ffa(0x1bf));}constructor(_0x451f23){const _0x8983e5={_0x37ac3f:0x1e1,_0x2a3567:0x1bf},_0x31f7c5=_0x116ffa;super(_0x31f7c5(_0x8983e5._0x37ac3f)+_0x451f23),this[_0x31f7c5(0x1ff)]=_0x31f7c5(_0x8983e5._0x2a3567);}};function blobPathFor(_0x20ac1e,_0x176934,_0x3b6b8b,_0x579c4d=0x0){return _0x20ac1e+'/'+blobRelPathFor(_0x176934,_0x3b6b8b,_0x579c4d);}__name(blobPathFor,_0x116ffa(0x1f7));function blobRelSegmentsFor(_0x256a6c,_0x1fa868,_0x4082d6=0x0){const _0x1667ba={_0x3dcddd:0x1dc,_0x3054e9:0x1d4},_0x2d0cb9=_0x116ffa;if(!HASH_RE[_0x2d0cb9(_0x1667ba._0x3dcddd)](_0x256a6c))throw new InvalidBlobHashError(_0x256a6c);const _0x16fb42=_0x4082d6>0x0?''+GENERATION_SEP+_0x4082d6:'';return[BLOBS_DIR,_0x256a6c['slice'](0x0,0x2),_0x256a6c[_0x2d0cb9(_0x1667ba._0x3054e9)](0x2,0x4),''+_0x256a6c+_0x16fb42+'.'+_0x1fa868];}__name(blobRelSegmentsFor,_0x116ffa(0x224));function blobRelPathFor(_0x98dd8b,_0x30ecb5,_0x3dee9a=0x0){const _0x6aa748=_0x116ffa;return blobRelSegmentsFor(_0x98dd8b,_0x30ecb5,_0x3dee9a)[_0x6aa748(0x1fc)]('/');}__name(blobRelPathFor,_0x116ffa(0x235));function blobsRootFor(_0x52d308){return _0x52d308+'/'+BLOBS_DIR;}__name(blobsRootFor,'blobsRootFor');var FS_UNSAFE_NAME_RE=/[\\/:*?"<>|\x00-\x1f]/;function validateFsSafeName(_0x3a6953,_0x1bf7bc){const _0x11e8e3={_0x147c62:0x213,_0x36f100:0x1a1,_0x38c626:0x1dc,_0x538be5:0x190},_0x5812f7=_0x116ffa;if(typeof _0x3a6953!==_0x5812f7(0x1ae))return _0x5812f7(0x1b9);const _0x3753f8=_0x3a6953[_0x5812f7(0x204)]();if(_0x3753f8[_0x5812f7(0x22b)]===0x0)return _0x5812f7(_0x11e8e3._0x147c62);if(_0x3753f8==='.'||_0x3753f8==='..')return _0x5812f7(0x1c0);if(_0x3753f8['startsWith']('.'))return _0x5812f7(0x1bd);if(_0x1bf7bc?.['reservedUnderscore']&&_0x3753f8[_0x5812f7(_0x11e8e3._0x36f100)]('_'))return _0x5812f7(0x214);if(FS_UNSAFE_NAME_RE[_0x5812f7(_0x11e8e3._0x38c626)](_0x3753f8))return _0x5812f7(_0x11e8e3._0x538be5);return null;}__name(validateFsSafeName,'validateFsSafeName');var COLLECTION_NAME_FORBIDDEN_RE=FS_UNSAFE_NAME_RE;function validateCollectionName(_0xbf7997){return validateFsSafeName(_0xbf7997);}__name(validateCollectionName,_0x116ffa(0x211));var RUN_MANIFEST_FILE=_0x116ffa(0x1f4),RUN_SOURCES_FILE=_0x116ffa(0x23e),UnsupportedRunKindError=class extends Error{static{__name(this,'UnsupportedRunKindError');}constructor(_0x1326a7,_0x8f0dfe){const _0x8d00cb=_0x116ffa;super(_0x8d00cb(0x1b4)+_0x8f0dfe+'\x22\x20does\x20not\x20support\x20run\x20kind\x20\x22'+_0x1326a7+'\x22'),this[_0x8d00cb(0x1ff)]=_0x8d00cb(0x1ab);}},RunnerAdapterNotFoundError=class extends Error{static{__name(this,_0x116ffa(0x1c8));}constructor(_0x1df3b8,_0x4f1c2f){const _0x563bd0={_0x3619dc:0x1c8},_0x3db583=_0x116ffa;super(_0x3db583(0x1d2)+_0x1df3b8+'\x22.\x20'+_0x4f1c2f),this['name']=_0x3db583(_0x563bd0._0x3619dc);}},RunnerNotConfiguredError=class extends Error{static{__name(this,'RunnerNotConfiguredError');}constructor(_0x5b9213){const _0x4634f5=_0x116ffa;super(_0x5b9213),this['name']=_0x4634f5(0x24f);}},EXPECT_FAIL_ANNOTATION=_0x116ffa(0x24e),ANNOTATION_RE=/^\s*\/\/\s*@([a-z0-9-]+)\s*$/;function isAnnotationLine(_0x5c46d8){const _0x3983d1=_0x116ffa;return ANNOTATION_RE[_0x3983d1(0x1dc)](_0x5c46d8);}__name(isAnnotationLine,_0x116ffa(0x1da));function parseScenarioAnnotations(_0x462107){const _0x3d0db1={_0x416c76:0x203,_0x48b427:0x204,_0x1fa3b2:0x19b,_0x54b36b:0x1b7,_0x2f4303:0x20f},_0x541bd0=_0x116ffa,_0x57f215=new Set();for(const _0x3cbef5 of _0x462107[_0x541bd0(_0x3d0db1._0x416c76)](/\r?\n/)){const _0x4ef1b1=_0x3cbef5[_0x541bd0(_0x3d0db1._0x48b427)]();if(_0x4ef1b1==='')continue;if(!_0x4ef1b1['startsWith']('//'))break;const _0xf7b62d=_0x4ef1b1[_0x541bd0(_0x3d0db1._0x1fa3b2)](ANNOTATION_RE);if(_0xf7b62d)_0x57f215[_0x541bd0(_0x3d0db1._0x54b36b)](_0xf7b62d[0x1]);}return{'expectFail':_0x57f215[_0x541bd0(_0x3d0db1._0x2f4303)](EXPECT_FAIL_ANNOTATION)};}__name(parseScenarioAnnotations,_0x116ffa(0x1d3));var SEGMENT_NAME_FORBIDDEN_RE=FS_UNSAFE_NAME_RE;function validateSegmentName(_0x29442b){return validateFsSafeName(_0x29442b,{'reservedUnderscore':!![]});}__name(validateSegmentName,_0x116ffa(0x1bc));var TERMINAL_WS_EVENT=_0x116ffa(0x22a),RUNNER_CONFIG_KEYS=new Set([_0x116ffa(0x194),_0x116ffa(0x244),_0x116ffa(0x222),'UNOTEST_DEFAULT_TIMEOUT_MS',_0x116ffa(0x1ca),_0x116ffa(0x1af),_0x116ffa(0x21c),_0x116ffa(0x22c),_0x116ffa(0x238),_0x116ffa(0x1f6),_0x116ffa(0x24a),_0x116ffa(0x209),_0x116ffa(0x247),_0x116ffa(0x1ec),_0x116ffa(0x1cc),'UNOTEST_NETWORK',_0x116ffa(0x200),_0x116ffa(0x1a4),_0x116ffa(0x196),_0x116ffa(0x234),'DATABASE_URL']);function isRunnerConfigKey(_0x3251fb){return RUNNER_CONFIG_KEYS['has'](_0x3251fb);}__name(isRunnerConfigKey,_0x116ffa(0x20b));function categorizeVariable(_0x436e22){const _0x10574c={_0x36af99:0x1a5,_0x18105c:0x1df,_0x1941f8:0x1cd,_0x4f6b76:0x23c},_0x366658=_0x116ffa;if(_0x436e22[_0x366658(0x1a3)]===_0x366658(_0x10574c._0x36af99))return _0x366658(_0x10574c._0x18105c);return isRunnerConfigKey(_0x436e22[_0x366658(0x1ff)])?_0x366658(_0x10574c._0x1941f8):_0x366658(_0x10574c._0x4f6b76);}__name(categorizeVariable,_0x116ffa(0x232));function isExternalVarName(_0x497bd1){const _0xf21306=_0x116ffa;return/^[A-Z][A-Z0-9_]*$/[_0xf21306(0x1dc)](_0x497bd1);}__name(isExternalVarName,_0x116ffa(0x1c6));var ENV_KEY_RE=/^[A-Za-z_][A-Za-z0-9_]*$/;function*assignmentEntries(_0x5ce775){const _0x34aab4={_0x1f020e:0x204,_0x35d136:0x204},_0x1d3b6c=_0x116ffa;for(const _0x422ae3 of _0x5ce775['split'](/\r?\n/)){const _0x460768=_0x422ae3[_0x1d3b6c(_0x34aab4._0x1f020e)]();if(_0x460768===''||_0x460768['startsWith']('#'))continue;const _0xec2378=_0x460768[_0x1d3b6c(0x1d6)]('=');if(_0xec2378<=0x0)continue;const _0x2deb23=_0x460768[_0x1d3b6c(0x1d4)](0x0,_0xec2378)[_0x1d3b6c(_0x34aab4._0x35d136)]();if(!ENV_KEY_RE['test'](_0x2deb23))continue;yield[_0x2deb23,_0x460768['slice'](_0xec2378+0x1)[_0x1d3b6c(0x204)]()];}}__name(assignmentEntries,_0x116ffa(0x1f5));function parseEnvContent(_0x51693e){const _0x10d785={_0x57ef42:0x22b},_0x45bef5=_0x116ffa,_0x1d17ed={};for(const [_0x217904,_0x44afe4]of assignmentEntries(_0x51693e)){let _0x2c63df=_0x44afe4;if(_0x2c63df[_0x45bef5(_0x10d785._0x57ef42)]>=0x2){const _0x3686e3=_0x2c63df[0x0],_0x1138d3=_0x2c63df[_0x2c63df['length']-0x1];(_0x3686e3==='\x22'||_0x3686e3==='\x27')&&_0x3686e3===_0x1138d3&&(_0x2c63df=_0x2c63df['slice'](0x1,-0x1));}_0x1d17ed[_0x217904]=_0x2c63df;}return _0x1d17ed;}__name(parseEnvContent,_0x116ffa(0x197));function serializeEnvValue(_0xd741d5){const _0x2e786a={_0x5299fd:0x199},_0x2995ba=_0x116ffa;if(_0xd741d5==='')return'';if(/[\s#"'=\\]|^[`]/[_0x2995ba(0x1dc)](_0xd741d5)||/[\n\r]/[_0x2995ba(0x1dc)](_0xd741d5)){const _0x30198c=_0xd741d5[_0x2995ba(_0x2e786a._0x5299fd)](/\\/g,'\x5c\x5c')[_0x2995ba(0x199)](/"/g,'\x5c\x22')['replace'](/\n/g,'\x5cn')[_0x2995ba(_0x2e786a._0x5299fd)](/\r/g,'\x5cr');return'\x22'+_0x30198c+'\x22';}return _0xd741d5;}__name(serializeEnvValue,_0x116ffa(0x1b0));function envKeys(_0x296c6b){const _0x30b099=_0x116ffa,_0xc8708=new Set();for(const [_0xd5d4]of assignmentEntries(_0x296c6b))_0xc8708[_0x30b099(0x1b7)](_0xd5d4);return _0xc8708;}__name(envKeys,_0x116ffa(0x1ea));function _0x200a(_0x51d4d2,_0x3e5daa){_0x51d4d2=_0x51d4d2-0x190;const _0x372062=_0x3720();let _0x200a84=_0x372062[_0x51d4d2];if(_0x200a['MCMcFo']===undefined){var _0x52222a=function(_0xd14038){const _0x51a2e5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2fdceb='',_0x5693e4='';for(let _0x4b2a3a=0x0,_0x423c72,_0x3a522f,_0x106fc4=0x0;_0x3a522f=_0xd14038['charAt'](_0x106fc4++);~_0x3a522f&&(_0x423c72=_0x4b2a3a%0x4?_0x423c72*0x40+_0x3a522f:_0x3a522f,_0x4b2a3a++%0x4)?_0x2fdceb+=String['fromCharCode'](0xff&_0x423c72>>(-0x2*_0x4b2a3a&0x6)):0x0){_0x3a522f=_0x51a2e5['indexOf'](_0x3a522f);}for(let _0x2974be=0x0,_0x162c18=_0x2fdceb['length'];_0x2974be<_0x162c18;_0x2974be++){_0x5693e4+='%'+('00'+_0x2fdceb['charCodeAt'](_0x2974be)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5693e4);};_0x200a['byJvYc']=_0x52222a,_0x200a['TBToYo']={},_0x200a['MCMcFo']=!![];}const _0xeba26c=_0x372062[0x0],_0x74ad2=_0x51d4d2+_0xeba26c,_0x32e171=_0x200a['TBToYo'][_0x74ad2];return!_0x32e171?(_0x200a84=_0x200a['byJvYc'](_0x200a84),_0x200a['TBToYo'][_0x74ad2]=_0x200a84):_0x200a84=_0x32e171,_0x200a84;}function isSectionDivider(_0x42fdc8){const _0x4aa885={_0xe589b6:0x204,_0x548675:0x1dc},_0x29afed=_0x116ffa,_0xeeb1ed=_0x42fdc8[_0x29afed(_0x4aa885._0xe589b6)]();return _0xeeb1ed[_0x29afed(0x1a1)]('#')&&/---/[_0x29afed(_0x4aa885._0x548675)](_0xeeb1ed);}__name(isSectionDivider,_0x116ffa(0x1d7));function isAssignmentLine(_0x309764){const _0x107f2c={_0x4d5411:0x1d4,_0x214e1c:0x204},_0x445574=_0x116ffa,_0x39f315=_0x309764[_0x445574(0x204)]();if(_0x39f315===''||_0x39f315['startsWith']('#'))return![];const _0x122023=_0x39f315[_0x445574(0x1d6)]('=');return _0x122023>0x0&&ENV_KEY_RE[_0x445574(0x1dc)](_0x39f315[_0x445574(_0x107f2c._0x4d5411)](0x0,_0x122023)[_0x445574(_0x107f2c._0x214e1c)]());}__name(isAssignmentLine,_0x116ffa(0x1ba));function isAssignmentOf(_0x582f49,_0x4765f4){const _0x1a687c={_0x1b3e7f:0x204,_0x5cc4a8:0x1d6},_0x37b60d=_0x116ffa,_0x22c9b9=_0x582f49[_0x37b60d(_0x1a687c._0x1b3e7f)]();if(_0x22c9b9===''||_0x22c9b9['startsWith']('#'))return![];const _0x20c7ad=_0x22c9b9[_0x37b60d(_0x1a687c._0x5cc4a8)]('=');if(_0x20c7ad<=0x0)return![];return _0x22c9b9[_0x37b60d(0x1d4)](0x0,_0x20c7ad)[_0x37b60d(0x204)]()===_0x4765f4;}__name(isAssignmentOf,'isAssignmentOf');function splitLines(_0x6cf080){const _0x572b9e=_0x116ffa,_0x5a4908=_0x6cf080[_0x572b9e(0x1c3)]('\x0a'),_0x246548=_0x5a4908?_0x6cf080['slice'](0x0,-0x1):_0x6cf080;return{'lines':_0x246548===''?[]:_0x246548['split']('\x0a'),'trailingNewline':_0x5a4908};}__name(splitLines,_0x116ffa(0x250));function joinLines(_0x48997e,_0x40a33e){const _0x53f527={_0x1412f7:0x1fc},_0x1fa990=_0x116ffa,_0x36b9fd=_0x48997e[_0x1fa990(_0x53f527._0x1412f7)]('\x0a');return _0x40a33e||_0x36b9fd===''?_0x36b9fd+'\x0a':_0x36b9fd;}__name(joinLines,_0x116ffa(0x1d8));function _0x3720(){const _0x5c9c38=['vu5pvevtvf9kvurhrv9vuKW','AgfZ','x2jSB2jZ','DMfSAwrHDgvdB2XSzwn0Aw9UtMfTzq','zMXVB3i','BxvZDcbUB3qGyMuGzw1WDhK','BxvZDcbUB3qGC3rHCNqGD2L0AcaNxYCGkhjLC2vYDMvKkq','nhvdCvfWtq','z2v0vvrdtw9UDgG','zhvYyxrPB25nCW','vu5pvevtvf9ftLy','yxbWlxnLCNzLCJPLCNjVCG','CNvUswq','Dw5VDgvZDc8UC2vJCMv0CW','vu5pvevtvf9mt0nbteu','x2rHEs5QC29UBa','Dw5RBM93BI1YDw5UzxiTA2v5','x3nJzw5HCMLVCW','zgvIDwDNzxjgAwXLrM9Y','ztjL','vu5pvevtvf9tte9xx01p','vu5pvevtvf9kvurhrv9bq0nfu1nFve9lru4','yMXVyLjLBfnLz21LBNrZrM9Y','zM9SzfnJzw5HCMLVuNvU','Dg9mB3DLCKnHC2u','C29YDa','z2v0vvrdrgf0zq','C3rHCNrLzef0','DgvYBwLUywW','BgvUz3rO','vu5pvevtvf9usu1fwK9orq','mJq1nZa0D0TOzxfk','y3j5ChrV','Aw50zxjYDxb0zwq','DgvZDerPCKzVCG','iokaLcbWAwnRigeGzgLMzMvYzw50ig5HBwuGB3iGzwrPDcb0AguGzxHPC3rPBMCGDMfSDwuU','y2f0zwDVCML6zvzHCMLHyMXL','ChvZAa','rK9sq0vFq09mt1i','yMXVyLjLBfbHDgHgB3i','vvrd','y29TCgXLDgvK','vu5pvevtvf9mt0DFtevwruW','C2HHCMrqyxrOrM9YvgLTzxn0yw1W','Aw52ywXPzc1Uyw1L','x2XHDgvZDc5QC29U','yxbW','C2nLBMfYAw9jBMrLEezPBgvoyw1L','C291CMnLCY5QC29U','C2fUAxrPEMvsDw5jzfnLz21LBNq','vu5pvevtvf9kvurhrv9nt0rfta','Aw5Zzxj0rw52vMfY','uNvUBMvY','vu5pvevtvf9kvurhrv9ut0TftG','vu5pvevtvf9iruferuq','C2HHCMrqyxrOrM9YuNvUswq','zhvWBgLJyxrL','vu5pvevtvf9erujvr19quKvwsuvxx0jzvevt','ic0Tlq','zMfPBfn0CMvHAW','vu5pvevtvf9erujvr19esvi','yxbWlxnLCNzLCJPYzwfKEq','l2P1zgDL','zw52rMLSzuzVCG','zxHWzwn0lwzHAwW','uNvUBMvYtM90q29UzMLNDxjLzevYCM9Y','C3bSAxrmAw5LCW','z2v0vvrdrNvSBfLLyxi','zw52tMfTzxngCM9TrgLYtgLZDgLUzW','lY5Kzwj1z2DLCG','lNzPzxDLCI5SB2nR','Bgf5zxjZrM9Y','ntGWndC2whbUtLbg','CgfKu3rHCNq','BxvZDcbUB3qGy29UDgfPBIbCic8GoIaQid8GiIa8id4GFcbVCIbJB250CM9SignOyxjHy3rLCNm','zw52','mteXnZCWshjjA3fo','lNj1BNm','vu5pvevtvf9cuK9xu0vs','vu5pvevtvf9kvurhrv9qt1ju','tK9Fq09mt1i','CgfYC2vfBNzdB250zw50','mtbnDgLPvNi','CMvWBgfJzq','x2HLBhbLCNm','Bwf0y2G','AxngAw5PDgu','zMfPBgvK','zxHHBxbSzq','vu5pvevtvf9kvurhrv9srvrssuvt','ywn0AxzLrw52tMfTzq','C3rHCNrZv2L0Aa','AxnuzxjTAw5HBfj1BNrPBwvtDgf0zq','C291CMnL','vu5pvevtvf9dqunirv9esvi','C2vJCMv0CW','igLZigfSC28GC2v0igLUihvUB3rLC3qVlMvUDIdIGjqGDgHLihnLy3jLDcb2ywX1zsbUB3CGC2HHzg93CYbPDc4','CMvNzxG','ChjVAMvJDfj1BKrPCKzVCG','C2HHCMreyxLZrgvZy2vUzgLUzW','lMPZB25S','vw5ZDxbWB3j0zwrsDw5lAw5KrxjYB3i','Dw5VDgvZDa','lNnLy3jLDhm','C3rYAw5N','vu5pvevtvf9qt1bvuf9huKfdrv9nuW','C2vYAwfSAxPLrw52vMfSDwu','odyWm2ruu0j3sq','igLZigfSC28GC2v0igLUihLVDxiGC2HLBgWGzw52AxjVBM1LBNqG4OcuigL0ihDPBgWGA2vLCcbYzxnVBhzPBMCGzNjVBsb0AgvYzsaODgHLigvUDMLYB25Tzw50ihDPBNmGB3zLCIb0AguGzMLSzsKU','BwfRzvj1BKLK','CNvUBMvYici','lNzPzxDLCI5SB2C','vu5pvevtvf9kvurhrv9dtefvrevFqKLo','ywrK','C3rLChmUANnVBMW','BxvZDcbIzsbHihn0CMLUzW','AxnbC3nPz25Tzw50tgLUzq','CNvUswrtDgfYDgvKqxq','DMfSAwrHDgvtzwDTzw50tMfTzq','BxvZDcbUB3qGC3rHCNqGD2L0AcaNlIC','zMXHDe1HCa','sw52ywXPzejSB2jiyxnOrxjYB3i','BxvZDcbUB3qGyMuGiI4Iig9YiciUlIi','mZiZmZqZovfIB09Puq','BM93','zw5KC1DPDgG','Dg9tDhjPBMC','mJu5mdy4nKPxrLHktq','AxnfEhrLCM5HBfzHCK5HBwu','C2nLBMfYAw9szwzgCM9TrMLSzu5HBwu','uNvUBMvYqwrHChrLCK5VDezVDw5KrxjYB3i','C3rKB3v0lMXVzW','vu5pvevtvf9eruzbvuXux05bvKLhqvrjt05FveLnru9vvf9nuW','ywjVCNrLza','vu5pvevtvf9erujvr19lruvqx0nbteXt','CNvUBMvY','CNvUDgLTzs5QC29U','B2jQzwn0','Dw5VDgvZDc8Uzw52','ig11C3qGyMuGvvbqrvjFu05bs0uGkguUzY4Gqvbqx0jbu0vFvvjmksbZBYbHihnJzw5HCMLVignHBIbYzwzLCMvUy2uGAxqGyNKGBMfTzs4','y2fUBM90igXVywqGCNvUBMvYigfKyxb0zxiGiG','CgfYC2vty2vUyxjPB0fUBM90yxrPB25Z','C2XPy2u','CMvNzxHmAxrLCMfS','Aw5KzxHpzG','Axntzwn0Aw9UrgL2AwrLCG','AM9PBKXPBMvZ','zw52tgf5zxjgAwXLC0zVCG','AxnbBM5VDgf0Aw9UtgLUzq','CgLJA2vYlxnUyxbZAg90lNr4Da','DgvZDa','lMPZB24','CMvJzw50','C2vJCMv0','DgvTCgXHDgu','yMXVyIbOyxnOig11C3qGyMuGBg93zxjJyxnLigHLEcWGz290oIa','AxngywLSAw5Nu3rHDhvZ','C2fTCgXL','CMvTB3zLrw52vMfY','CNvUswqGy2fYCMLLCYbUBYb0Aw1LC3rHBxaSignHBM5VDcbWBgfJzsbPDcbPBIbHihnOyxjKoIa','igLZigfSC28GC2v0igLUihvUB3rLC3qVlNnLy3jLDhmG4OcuihrOzsbZzwnYzxqGDMfSDwuGC2HHzg93CYb0AgLZig9Uzs4','qxbW','CgfYC2u','iYaTls0G','zw52s2v5CW','igfSCMvHzhKGzxHPC3rZigLUia','vu5pvevtvf9erujvr19ive1mx01bwf9cwvrfuW','zgvSzxrLu2HHzg93v2fYBMLUzW','ntGYA1buALnd','CgXHBKfKzfzHCMLHyMXL','ChjVAMvJDfj1BNnsB290','vu5pvevtvf9kvurhrv9wt1rf','zw52q29UDgvUDa','vw5WBgfJzwfIBgvsDw5jzevYCM9Y','BwfUAwzLC3qUANnVBG','yxnZAwDUBwvUDevUDhjPzxm','vu5pvevtvf9erujvrW','yMXVyLbHDgHgB3i','y29TBwfUzhmUANnVBMW','otK5mJK2y3vfquDf','CNvU','C3rKzxjYlMXVzW','AM9PBG','zMfPBgLUz1nPBMnL','yxbWlxnLCNzLCJPYzxvZzwq','BMfTzq','vu5pvevtvf9dt05tt0Xf','A2LUza','vu5pvevtvf9kvurhrv9usu1ft1vux01t','C3bSAxq','DhjPBq','mMjytwXzyW','AxnszwDLEeXPDgvYywW','zMLUzeLUzgv4','CMvXDwLYzvj1BKrPCKzVCG','vu5pvevtvf9erujvr19nqvHFqLLurvm','C3rHDhvZ','AxnsDw5UzxjdB25MAwDlzxK','C3bSAwnL','zMXHz3m'];_0x3720=function(){return _0x5c9c38;};return _0x3720();}function insertEnvVar(_0x1c3ead,_0xd1d658,_0x5c73cb,_0x3ceb1e){const _0x56a147={_0x29629c:0x226,_0x360c04:0x22b,_0x33473d:0x20c,_0x31e69e:0x233,_0x5066dd:0x1e9},_0x1ff75b=_0x116ffa,_0x4837ca=_0xd1d658+'='+serializeEnvValue(_0x5c73cb),{lines:_0x17dcaa,trailingNewline:_0x1d0a69}=splitLines(_0x1c3ead);if(_0x3ceb1e){const _0x4f1014=new RegExp('\x5cb'+_0x3ceb1e[_0x1ff75b(_0x56a147._0x29629c)]()+'\x5cb'),_0x5e32a0=_0x17dcaa[_0x1ff75b(0x207)](_0x503de5=>isSectionDivider(_0x503de5)&&_0x4f1014['test'](_0x503de5['toLowerCase']()));if(_0x5e32a0!==-0x1){let _0x5cf14d=_0x17dcaa[_0x1ff75b(_0x56a147._0x360c04)];for(let _0x1020dc=_0x5e32a0+0x1;_0x1020dc<_0x17dcaa['length'];_0x1020dc++){if(isSectionDivider(_0x17dcaa[_0x1020dc])){_0x5cf14d=_0x1020dc;break;}}let _0x793ddb=-0x1,_0x571e43=-0x1;for(let _0x1bc535=_0x5e32a0+0x1;_0x1bc535<_0x5cf14d;_0x1bc535++){if(_0x17dcaa[_0x1bc535]['trim']()!=='')_0x571e43=_0x1bc535;if(isAssignmentLine(_0x17dcaa[_0x1bc535]))_0x793ddb=_0x1bc535;}const _0x13e63c=_0x793ddb>=0x0?_0x793ddb:_0x571e43,_0x1bce96=_0x13e63c>=0x0?_0x13e63c+0x1:_0x5e32a0+0x1;return _0x17dcaa[_0x1ff75b(_0x56a147._0x33473d)](_0x1bce96,0x0,_0x4837ca),joinLines(_0x17dcaa,_0x1d0a69||_0x17dcaa['length']>0x0);}if(_0x17dcaa[_0x1ff75b(_0x56a147._0x360c04)]>0x0)_0x17dcaa[_0x1ff75b(_0x56a147._0x31e69e)]('');return _0x17dcaa[_0x1ff75b(0x233)](_0x1ff75b(_0x56a147._0x5066dd)+_0x3ceb1e+_0x1ff75b(0x248),_0x4837ca),joinLines(_0x17dcaa,!![]);}return _0x17dcaa[_0x1ff75b(0x233)](_0x4837ca),joinLines(_0x17dcaa,!![]);}__name(insertEnvVar,_0x116ffa(0x241));function removeEnvVar(_0x53d48d,_0x3fbd87){const _0x170198={_0x4a5317:0x22b},_0x102fce=_0x116ffa,{lines:_0x5957d5,trailingNewline:_0x412e22}=splitLines(_0x53d48d),_0x5941c1=_0x5957d5['filter'](_0x212631=>!isAssignmentOf(_0x212631,_0x3fbd87)),_0x1a290d=_0x5941c1[_0x102fce(_0x170198._0x4a5317)]!==_0x5957d5['length'];return{'content':joinLines(_0x5941c1,_0x412e22),'removed':_0x1a290d};}__name(removeEnvVar,_0x116ffa(0x1e4));var SECTION_BY_KIND={'app':_0x116ffa(0x1e7),'runner':_0x116ffa(0x242),'secret':void 0x0};function planAddVariable(_0xd7896d){const _0x4d5793={_0x846756:0x1cd,_0x87a192:0x23a,_0x2a045e:0x1df,_0xcc073d:0x1a5,_0x3df0af:0x1a5,_0x5900fd:0x1eb,_0x58f6b2:0x1a6,_0x1ee364:0x1df},_0x596433=_0x116ffa,{name:_0x2b6413,kind:_0x774431}=_0xd7896d;if(_0x774431===_0x596433(_0x4d5793._0x846756)){if(!isRunnerConfigKey(_0x2b6413))return{'ok':![],'code':_0x596433(0x21e),'message':_0x2b6413+'\x20is\x20not\x20a\x20known\x20runner\x20setting\x20—\x20choose\x20one\x20from\x20the\x20runner-config\x20list.'};}else{if(!isExternalVarName(_0x2b6413))return{'ok':![],'code':_0x596433(_0x4d5793._0x87a192),'message':_0x2b6413+_0x596433(0x1d1)};}const _0x2fd184=envKeys(_0xd7896d[_0x596433(0x1f2)])['has'](_0x2b6413),_0x32bf83=envKeys(_0xd7896d['secretsContent'])[_0x596433(0x20f)](_0x2b6413),_0x6402d4=_0x774431===_0x596433(_0x4d5793._0x2a045e)?_0x596433(_0x4d5793._0xcc073d):_0x596433(0x191),_0x52e210=_0x6402d4===_0x596433(_0x4d5793._0x3df0af)?_0x32bf83:_0x2fd184,_0x2768d2=_0x6402d4===_0x596433(0x1a5)?'unotest/.secrets':_0x596433(0x1d0);if(_0x52e210)return{'ok':![],'code':_0x596433(0x246),'message':_0x2b6413+_0x596433(_0x4d5793._0x5900fd)+_0x2768d2+_0x596433(0x231)};const _0x5e04cf=[];return _0x774431===_0x596433(0x1df)&&_0x2fd184&&_0x5e04cf[_0x596433(0x233)](_0x2b6413+_0x596433(_0x4d5793._0x58f6b2)),_0x774431!==_0x596433(_0x4d5793._0x1ee364)&&_0x32bf83&&_0x5e04cf[_0x596433(0x233)](_0x2b6413+_0x596433(0x1e6)),{'ok':!![],'target':_0x6402d4,'sectionLabel':SECTION_BY_KIND[_0x774431],'warnings':_0x5e04cf};}__name(planAddVariable,_0x116ffa(0x1ef));function deleteShadowWarning(_0x14ad7d,_0x23b25c,_0x5c4f6e){const _0x5eaed5=_0x116ffa;if(_0x5c4f6e!==void 0x0&&_0x5c4f6e!==_0x23b25c)return[_0x14ad7d+_0x5eaed5(0x1b2)];return[];}__name(deleteShadowWarning,_0x116ffa(0x1ed));var TERMINAL_RUNTIME_STATES=[_0x116ffa(0x237),_0x116ffa(0x19d),_0x116ffa(0x1cb)];function isTerminalRuntimeState(_0x5ddc48){return TERMINAL_RUNTIME_STATES['includes'](_0x5ddc48);}__name(isTerminalRuntimeState,_0x116ffa(0x1a2));var JUDGE_ROUTES={'judge':_0x116ffa(0x24c),'health':'/health'},JUDGE_ENV={'mode':'UNOTEST_JUDGE_MODE','url':_0x116ffa(0x20e),'token':_0x116ffa(0x243),'requestTimeoutMs':_0x116ffa(0x202),'preamble':'UNOTEST_JUDGE_PREAMBLE','provider':'UNOTEST_JUDGE_PROVIDER','model':_0x116ffa(0x240),'callTimeoutMs':'UNOTEST_JUDGE_CALL_TIMEOUT_MS','retries':_0x116ffa(0x19f),'vote':_0x116ffa(0x1f1),'accessToken':_0x116ffa(0x223),'claudeBin':_0x116ffa(0x1b6),'host':'UNOTEST_JUDGE_HOST','port':_0x116ffa(0x195)};export{BLOBS_DIR,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,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,activeEnvName,blobPathFor,blobRelPathFor,blobRelSegmentsFor,blobsRootFor,categorizeVariable,debugDirFor,debuggerFileFor,deleteShadowWarning,envFileFor,envKeys,envLayerFilesFor,envNamesFromDirListing,foldScenarioRun,insertEnvVar,isAnnotationLine,isExternalVarName,isFailingStatus,isRegexLiteral,isRunnerConfigKey,isRunsDirName,isTerminalRuntimeState,makeRunId,parseAppServerEvent,parseEnvContent,parseScenarioAnnotations,planAddVariable,projectRunDirFor,projectRunsRoot,regexLiteral,removeEnvVar,requireRunDirFor,runDirFor,runIdStartedAt,runsDirFor,sanitizeRunIdSegment,scenarioIndexFileName,scenarioRefFromFileName,secretsFileFor,secretsLayerFilesFor,serializeEnvValue,shardDaysDescending,shardDirFor,shardPathForRunId,shardPathForTimestamp,testDirFor,validateCollectionName,validateSegmentName};
|
|
1
|
+
const _0x48998b=_0x3a78;(function(_0x4b5ee6,_0x37527c){const _0x1b2dee={_0x311c97:0x1eb,_0x16342b:0x229,_0x36f585:0x1ce,_0x5c7055:0x1f2,_0x3b7b07:0x206,_0x26d02d:0x18e,_0x56072a:0x1c8},_0x502c5a=_0x3a78,_0x2129ad=_0x4b5ee6();while(!![]){try{const _0x3a2d30=parseInt(_0x502c5a(0x1f4))/0x1*(parseInt(_0x502c5a(0x1da))/0x2)+parseInt(_0x502c5a(_0x1b2dee._0x311c97))/0x3*(-parseInt(_0x502c5a(_0x1b2dee._0x16342b))/0x4)+-parseInt(_0x502c5a(_0x1b2dee._0x36f585))/0x5*(-parseInt(_0x502c5a(0x1d8))/0x6)+-parseInt(_0x502c5a(0x190))/0x7*(-parseInt(_0x502c5a(_0x1b2dee._0x5c7055))/0x8)+parseInt(_0x502c5a(0x175))/0x9*(parseInt(_0x502c5a(_0x1b2dee._0x3b7b07))/0xa)+parseInt(_0x502c5a(_0x1b2dee._0x26d02d))/0xb*(parseInt(_0x502c5a(_0x1b2dee._0x56072a))/0xc)+-parseInt(_0x502c5a(0x1e7))/0xd*(parseInt(_0x502c5a(0x1a5))/0xe);if(_0x3a2d30===_0x37527c)break;else _0x2129ad['push'](_0x2129ad['shift']());}catch(_0x4b2b18){_0x2129ad['push'](_0x2129ad['shift']());}}}(_0x5be3,0xd6fe4));var __defProp=Object['defineProperty'],__name=(_0x5d24f8,_0x221ed9)=>__defProp(_0x5d24f8,_0x48998b(0x18b),{'value':_0x221ed9,'configurable':!![]});function parseAppServerEvent(_0x2dbd71){const _0x2ef7ed={_0xde2658:0x216,_0x15d8e4:0x17a,_0x3bfc85:0x204,_0x4fc71a:0x1fb,_0x2d34e7:0x17a,_0x144e1a:0x1c9},_0x2d504b=_0x48998b,_0x1dc19f=_0x2dbd71[_0x2d504b(0x17b)]();if(!_0x1dc19f[_0x2d504b(_0x2ef7ed._0xde2658)]('{'))return null;try{const _0x4a816d=JSON[_0x2d504b(0x20d)](_0x1dc19f);if(_0x4a816d[_0x2d504b(_0x2ef7ed._0x15d8e4)]===_0x2d504b(_0x2ef7ed._0x3bfc85)||_0x4a816d[_0x2d504b(_0x2ef7ed._0x15d8e4)]===_0x2d504b(_0x2ef7ed._0x4fc71a)||_0x4a816d[_0x2d504b(_0x2ef7ed._0x2d34e7)]===_0x2d504b(_0x2ef7ed._0x144e1a))return _0x4a816d;return null;}catch{return null;}}__name(parseAppServerEvent,'parseAppServerEvent');var UNOTEST_DIR=_0x48998b(0x186),E2E_SUBDIR=_0x48998b(0x1d4),HELPERS_SUBDIR=_0x48998b(0x210),COLLECTIONS_SUBDIR=_0x48998b(0x208),RUNS_SUBDIR=_0x48998b(0x18d),SNAPSHOTS_SUBDIR=_0x48998b(0x222);function testDirFor(_0x23a893){return''+E2E_SUBDIR+_0x23a893;}__name(testDirFor,_0x48998b(0x19b));function runsDirFor(_0x3d5309,_0x509b74){return''+RUNS_SUBDIR+_0x3d5309+(_0x509b74?'.'+_0x509b74:'');}__name(runsDirFor,_0x48998b(0x22d));function isRunsDirName(_0x50beb5){const _0x171f6d={_0x5a38e5:0x216},_0x5cb8ce=_0x48998b;return _0x50beb5===RUNS_SUBDIR||_0x50beb5[_0x5cb8ce(_0x171f6d._0x5a38e5)](RUNS_SUBDIR+'-')||_0x50beb5[_0x5cb8ce(0x216)](RUNS_SUBDIR+'.');}__name(isRunsDirName,'isRunsDirName');function debugDirFor(_0x391af7){return'.debug'+_0x391af7;}__name(debugDirFor,_0x48998b(0x1b6));function debuggerFileFor(_0x561a83){const _0x4a9d3b={_0x1970d6:0x213,_0x596d4b:0x1d9},_0x123268=_0x48998b;return UNOTEST_DIR+_0x123268(_0x4a9d3b._0x1970d6)+_0x561a83+_0x123268(_0x4a9d3b._0x596d4b);}__name(debuggerFileFor,'debuggerFileFor');var LOCK_FILE=_0x48998b(0x16d),LOG_FILE=_0x48998b(0x1b3),STEPS_FILE=_0x48998b(0x1ed),HEARTBEAT_FILE=_0x48998b(0x18a),DAY_INDEX_FILE=_0x48998b(0x1e6),SCENARIOS_INDEX_DIR=_0x48998b(0x1ea),SCENARIOS_LATEST_FILE=_0x48998b(0x1cf),STDOUT_FILE=_0x48998b(0x227),STDERR_FILE=_0x48998b(0x1bb),COMMANDS_FILE='commands.jsonl',RUNTIME_FILE=_0x48998b(0x1b8),PICKER_SNAPSHOT_FILE=_0x48998b(0x1cd),ENV_FILE='unotest/.env',SECRETS_FILE=_0x48998b(0x197);function envFileFor(_0xec4686,_0x4becbf){return''+ENV_FILE+_0xec4686+(_0x4becbf?'.'+_0x4becbf:'');}__name(envFileFor,_0x48998b(0x1e1));function secretsFileFor(_0x9da832,_0x48a63d){return''+SECRETS_FILE+_0x9da832+(_0x48a63d?'.'+_0x48a63d:'');}__name(secretsFileFor,_0x48998b(0x1b7));function envLayerFilesFor(_0x2d190c,_0x4e5b6e){return layersFor(ENV_FILE,_0x2d190c,_0x4e5b6e);}__name(envLayerFilesFor,_0x48998b(0x202));function secretsLayerFilesFor(_0x2d4093,_0x12f057){return layersFor(SECRETS_FILE,_0x2d4093,_0x12f057);}__name(secretsLayerFilesFor,_0x48998b(0x182));function layersFor(_0x356632,_0x405347,_0x40bc27){const _0x4befc0={_0x175955:0x1a6},_0x592b79=_0x48998b,_0xed3bad=[_0x356632];if(_0x405347)_0xed3bad['push'](''+_0x356632+_0x405347);if(_0x40bc27){_0xed3bad[_0x592b79(_0x4befc0._0x175955)](_0x356632+'.'+_0x40bc27);if(_0x405347)_0xed3bad[_0x592b79(_0x4befc0._0x175955)](''+_0x356632+_0x405347+'.'+_0x40bc27);}return _0xed3bad;}__name(layersFor,_0x48998b(0x1e2));function activeEnvName(_0x19273d){const _0x8e051e={_0x296c69:0x1d7},_0x32b468=_0x48998b,_0x114829=_0x19273d[_0x32b468(_0x8e051e._0x296c69)]?.[_0x32b468(0x17b)]();return _0x114829?_0x114829:void 0x0;}__name(activeEnvName,'activeEnvName');var RESERVED_ENV_NAMES=new Set(['example',_0x48998b(0x1b9),_0x48998b(0x1a7)]);function _0x3a78(_0x12d6b1,_0x6c5c09){_0x12d6b1=_0x12d6b1-0x16c;const _0x5be382=_0x5be3();let _0x3a7895=_0x5be382[_0x12d6b1];if(_0x3a78['kddBaa']===undefined){var _0x7d973a=function(_0x290a77){const _0x3a773f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5d24f8='',_0x221ed9='';for(let _0x2dbd71=0x0,_0x1dc19f,_0x4a816d,_0x23a893=0x0;_0x4a816d=_0x290a77['charAt'](_0x23a893++);~_0x4a816d&&(_0x1dc19f=_0x2dbd71%0x4?_0x1dc19f*0x40+_0x4a816d:_0x4a816d,_0x2dbd71++%0x4)?_0x5d24f8+=String['fromCharCode'](0xff&_0x1dc19f>>(-0x2*_0x2dbd71&0x6)):0x0){_0x4a816d=_0x3a773f['indexOf'](_0x4a816d);}for(let _0x3d5309=0x0,_0x509b74=_0x5d24f8['length'];_0x3d5309<_0x509b74;_0x3d5309++){_0x221ed9+='%'+('00'+_0x5d24f8['charCodeAt'](_0x3d5309)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x221ed9);};_0x3a78['RJrkXx']=_0x7d973a,_0x3a78['UfDpOr']={},_0x3a78['kddBaa']=!![];}const _0xbcc5ed=_0x5be382[0x0],_0x30c822=_0x12d6b1+_0xbcc5ed,_0x1f43de=_0x3a78['UfDpOr'][_0x30c822];return!_0x1f43de?(_0x3a7895=_0x3a78['RJrkXx'](_0x3a7895),_0x3a78['UfDpOr'][_0x30c822]=_0x3a7895):_0x3a7895=_0x1f43de,_0x3a7895;}function envNamesFromDirListing(_0x57b8e9,_0x5eb081){const _0xd6861a={_0x4926e1:0x177,_0x4f3fa5:0x170,_0x3948f9:0x228},_0x27dfec=_0x48998b,_0x165561=[_0x27dfec(0x212),_0x27dfec(0x1f8)][_0x27dfec(_0xd6861a._0x4926e1)](_0xbfe117=>_0x5eb081?[_0xbfe117,''+_0xbfe117+_0x5eb081]:[_0xbfe117]),_0x135a3d=new Set();for(const _0x386cfa of _0x57b8e9){for(const _0x4cc7df of _0x165561){const _0x609b39=_0x4cc7df+'.';if(!_0x386cfa[_0x27dfec(0x216)](_0x609b39))continue;const _0x5336a1=_0x386cfa[_0x27dfec(0x1cc)](_0x609b39['length']);if(!_0x5336a1||_0x5336a1['includes']('/'))continue;if(RESERVED_ENV_NAMES[_0x27dfec(_0xd6861a._0x4f3fa5)](_0x5336a1))continue;_0x135a3d['add'](_0x5336a1);}}return[..._0x135a3d][_0x27dfec(_0xd6861a._0x3948f9)]();}__name(envNamesFromDirListing,_0x48998b(0x16c));function isRegexLiteral(_0x332ef8){const _0x205561={_0x1990d5:0x17a,_0x526a56:0x1c1},_0x498fa6=_0x48998b;return typeof _0x332ef8===_0x498fa6(0x1a8)&&_0x332ef8!==null&&_0x332ef8[_0x498fa6(_0x205561._0x1990d5)]===_0x498fa6(0x22b)&&typeof _0x332ef8[_0x498fa6(0x1de)]===_0x498fa6(_0x205561._0x526a56)&&typeof _0x332ef8[_0x498fa6(0x218)]===_0x498fa6(_0x205561._0x526a56);}__name(isRegexLiteral,_0x48998b(0x224));function regexLiteral(_0x3d04b8,_0x43a3c0=''){return{'kind':'regex','source':_0x3d04b8,'flags':_0x43a3c0};}__name(regexLiteral,'regexLiteral');var RAND_BYTES=0x6;function makeRunId(_0x184f45){const _0x5a90a9={_0x1b8b66:0x1fd,_0x20af26:0x1ac,_0x50d376:0x1c3,_0x589fd8:0x214},_0x4e571a=_0x48998b,_0x5d9cd1=sanitizeRunIdSegment(_0x184f45),_0x5a0497=Date[_0x4e571a(_0x5a90a9._0x1b8b66)]()['toString'](0x24),_0x32f0d3=new Uint8Array(RAND_BYTES);globalThis[_0x4e571a(_0x5a90a9._0x20af26)][_0x4e571a(0x1b1)](_0x32f0d3);let _0x152bf3='';for(let _0x20eab5=0x0;_0x20eab5<_0x32f0d3[_0x4e571a(_0x5a90a9._0x50d376)];_0x20eab5++){_0x152bf3+=_0x32f0d3[_0x20eab5][_0x4e571a(_0x5a90a9._0x589fd8)](0x10)['padStart'](0x2,'0');}return _0x5d9cd1+'-'+_0x5a0497+'-'+_0x152bf3;}__name(makeRunId,_0x48998b(0x16e));function sanitizeRunIdSegment(_0x291701){const _0x34c6d3={_0x5367f6:0x19c},_0x343271=_0x48998b,_0x336689=_0x291701[_0x343271(_0x34c6d3._0x5367f6)](/[^a-zA-Z0-9_-]+/g,'-')['replace'](/-+/g,'-')[_0x343271(0x19c)](/^-|-$/g,'');return _0x336689[_0x343271(0x1c3)]>0x0?_0x336689:'run';}__name(sanitizeRunIdSegment,'sanitizeRunIdSegment');var RANDOM_SUFFIX_RE=/^[0-9a-f]{6,}$/,MIN_PLAUSIBLE_MS=Date[_0x48998b(0x1d0)](0x7e4,0x0,0x1),MAX_PLAUSIBLE_MS=Date[_0x48998b(0x1d0)](0x834,0x0,0x1);function runIdStartedAt(_0x1c4630){const _0x1db9b4={_0x19c9af:0x1c3,_0x212115:0x22e,_0x5947e9:0x1b0},_0x4dbb5f=_0x48998b,_0x5be9c7=_0x1c4630[_0x4dbb5f(0x223)]('-');if(_0x5be9c7[_0x4dbb5f(_0x1db9b4._0x19c9af)]<0x3)return null;const _0x39b0d0=_0x5be9c7[_0x5be9c7['length']-0x1];if(!RANDOM_SUFFIX_RE[_0x4dbb5f(_0x1db9b4._0x212115)](_0x39b0d0))return null;const _0x4009f9=_0x5be9c7[_0x5be9c7[_0x4dbb5f(0x1c3)]-0x2];if(!/^[0-9a-z]+$/[_0x4dbb5f(0x22e)](_0x4009f9))return null;const _0xd3d50a=parseInt(_0x4009f9,0x24);if(!Number[_0x4dbb5f(_0x1db9b4._0x5947e9)](_0xd3d50a))return null;if(_0xd3d50a<MIN_PLAUSIBLE_MS||_0xd3d50a>=MAX_PLAUSIBLE_MS)return null;return _0xd3d50a;}__name(runIdStartedAt,_0x48998b(0x187));function shardPathForTimestamp(_0x29a8ed){const _0x77dc14={_0x25ad13:0x22a,_0x140a12:0x174,_0x14d255:0x1f7,_0x5c1a7f:0x1f0},_0x1ef35d=_0x48998b,_0x392594=new Date(_0x29a8ed),_0x1d747b=String(_0x392594[_0x1ef35d(_0x77dc14._0x25ad13)]())[_0x1ef35d(0x1f0)](0x4,'0'),_0x27a25e=String(_0x392594[_0x1ef35d(_0x77dc14._0x140a12)]()+0x1)[_0x1ef35d(0x1f0)](0x2,'0'),_0x29ee7d=String(_0x392594[_0x1ef35d(_0x77dc14._0x14d255)]())[_0x1ef35d(_0x77dc14._0x5c1a7f)](0x2,'0');return _0x1d747b+'/'+_0x27a25e+'/'+_0x29ee7d;}__name(shardPathForTimestamp,'shardPathForTimestamp');function shardPathForRunId(_0x2403b5){const _0x46f7ac=runIdStartedAt(_0x2403b5);return _0x46f7ac===null?null:shardPathForTimestamp(_0x46f7ac);}__name(shardPathForRunId,_0x48998b(0x196));function runDirFor(_0x5a50ef,_0x57212a){const _0x2ce433=shardPathForRunId(_0x57212a);return _0x2ce433===null?null:_0x5a50ef+'/'+_0x2ce433+'/'+_0x57212a;}__name(runDirFor,_0x48998b(0x21d));var UnplaceableRunIdError=class extends Error{static{__name(this,_0x48998b(0x1af));}constructor(_0x37fae5){const _0x362ca7={_0x28e644:0x18b,_0xb989:0x1af},_0xebcc3f=_0x48998b;super(_0xebcc3f(0x1db)+_0x37fae5),this[_0xebcc3f(_0x362ca7._0x28e644)]=_0xebcc3f(_0x362ca7._0xb989);}};function requireRunDirFor(_0x42d11b,_0x49430a){const _0x25b51a=runDirFor(_0x42d11b,_0x49430a);if(_0x25b51a===null)throw new UnplaceableRunIdError(_0x49430a);return _0x25b51a;}__name(requireRunDirFor,_0x48998b(0x1d1));function projectRunsRoot(_0x22dfd0='',_0x214647){return UNOTEST_DIR+'/'+runsDirFor(_0x22dfd0,_0x214647);}__name(projectRunsRoot,_0x48998b(0x19e));function projectRunDirFor(_0x3bd41d,_0x13bb5c='',_0x374eed){return requireRunDirFor(projectRunsRoot(_0x13bb5c,_0x374eed),_0x3bd41d);}__name(projectRunDirFor,_0x48998b(0x1c7));function shardDirFor(_0x58f14c,_0x24ec5e){return _0x58f14c+'/'+shardPathForTimestamp(_0x24ec5e);}__name(shardDirFor,_0x48998b(0x215));function*shardDaysDescending(_0x160072,_0x11fde2,_0x52091d){const _0x177bc0={_0x2442d4:0x173},_0x1037de=_0x48998b,_0x402e96=0x5265c00;let _0x1943fa=Math[_0x1037de(_0x177bc0._0x2442d4)](_0x11fde2/_0x402e96)*_0x402e96;for(let _0xe58fe9=0x0;_0xe58fe9<_0x52091d;_0xe58fe9++){yield shardDirFor(_0x160072,_0x1943fa),_0x1943fa-=_0x402e96;}}__name(shardDaysDescending,_0x48998b(0x1ab));var RUN_INDEX_SCHEMA_VERSION=0x2,SCENARIO_RECENT_WINDOW=0xc;function isFailingStatus(_0x2e4c1f){const _0x41308f={_0x38a319:0x205},_0x38820f=_0x48998b;return _0x2e4c1f===_0x38820f(_0x41308f._0x38a319)||_0x2e4c1f==='interrupted';}__name(isFailingStatus,'isFailingStatus');function foldScenarioRun(_0x5ecc3c,_0x26919c){const _0x5256a2={_0x31516d:0x1cc,_0x19b4f2:0x17c,_0x2bec71:0x181},_0x150cc8=_0x48998b,_0x161e3a={'lastRunId':_0x26919c['runId'],'lastStatus':_0x26919c['status'],'lastAt':_0x26919c[_0x150cc8(0x181)],'lastDurationMs':_0x26919c[_0x150cc8(0x1d5)],'recent':[..._0x5ecc3c?.['recent']??[],_0x26919c[_0x150cc8(0x17c)]][_0x150cc8(_0x5256a2._0x31516d)](-SCENARIO_RECENT_WINDOW)};if(!isFailingStatus(_0x26919c[_0x150cc8(_0x5256a2._0x19b4f2)]))return{..._0x161e3a,'failStreak':0x0,'failingSince':null};const _0x507a51=(_0x5ecc3c?.[_0x150cc8(0x1dc)]??0x0)+0x1;return{..._0x161e3a,'failStreak':_0x507a51,'failingSince':_0x507a51===0x1?_0x26919c[_0x150cc8(_0x5256a2._0x2bec71)]:_0x5ecc3c?.['failingSince']??_0x26919c[_0x150cc8(0x181)]};}__name(foldScenarioRun,_0x48998b(0x1c5));function scenarioIndexFileName(_0x4f8c67){const _0x779deb={_0x53d457:0x19d},_0xe27d43=_0x48998b;return encodeURIComponent(_0x4f8c67)+_0xe27d43(_0x779deb._0x53d457);}__name(scenarioIndexFileName,_0x48998b(0x176));function scenarioRefFromFileName(_0x33343b){const _0x1a6ea4={_0x52c910:0x1cc,_0x4ee519:0x1c3},_0x28abf1=_0x48998b;if(!_0x33343b[_0x28abf1(0x1ae)](_0x28abf1(0x19d)))return null;try{return decodeURIComponent(_0x33343b[_0x28abf1(_0x1a6ea4._0x52c910)](0x0,-_0x28abf1(0x19d)[_0x28abf1(_0x1a6ea4._0x4ee519)]));}catch{return null;}}__name(scenarioRefFromFileName,'scenarioRefFromFileName');var BLOBS_DIR=_0x48998b(0x20b),GENERATION_SEP='~',HASH_RE=/^[0-9a-f]{8,}$/,InvalidBlobHashError=class extends Error{static{__name(this,'InvalidBlobHashError');}constructor(_0x9b1eb){const _0x4fb744={_0x33353e:0x1f6,_0x44e71c:0x18b},_0x18e272=_0x48998b;super(_0x18e272(_0x4fb744._0x33353e)+_0x9b1eb),this[_0x18e272(_0x4fb744._0x44e71c)]=_0x18e272(0x207);}};function blobPathFor(_0x2d5181,_0x3e4b18,_0x1baf9e,_0x34ae66=0x0){return _0x2d5181+'/'+blobRelPathFor(_0x3e4b18,_0x1baf9e,_0x34ae66);}__name(blobPathFor,_0x48998b(0x1f5));function blobRelSegmentsFor(_0x4f036b,_0x3330ab,_0x206dbd=0x0){const _0x58e8fe={_0x27739e:0x1cc},_0x44af99=_0x48998b;if(!HASH_RE[_0x44af99(0x22e)](_0x4f036b))throw new InvalidBlobHashError(_0x4f036b);const _0x94eb4d=_0x206dbd>0x0?''+GENERATION_SEP+_0x206dbd:'';return[BLOBS_DIR,_0x4f036b[_0x44af99(_0x58e8fe._0x27739e)](0x0,0x2),_0x4f036b['slice'](0x2,0x4),''+_0x4f036b+_0x94eb4d+'.'+_0x3330ab];}__name(blobRelSegmentsFor,_0x48998b(0x1ff));function blobRelPathFor(_0x2eceb6,_0x511947,_0x34c151=0x0){const _0x1bb93b=_0x48998b;return blobRelSegmentsFor(_0x2eceb6,_0x511947,_0x34c151)[_0x1bb93b(0x1cb)]('/');}__name(blobRelPathFor,_0x48998b(0x183));function _0x5be3(){const _0x2c9c6a=['BxvZDcbUB3qGy29UDgfPBIbCic8GoIaQid8GiIa8id4GFcbVCIbJB250CM9SignOyxjHy3rLCNm','C291CMnLCY5QC29U','AxnbBM5VDgf0Aw9UtgLUzq','DMfSAwrHDgvgC1nHzMvoyw1L','CNvUrgLYrM9Y','Dw5VDgvZDc8Uzw52','CgXHBKfKzfzHCMLHyMXL','vu5pvevtvf9erujvr19lruvqx0nbteXt','zMLUzeLUzgv4','lNnUyxbZAg90CW','C3bSAxq','AxnszwDLEeXPDgvYywW','C2vJCMv0','vu5pvevtvf9kvurhrv9mt0DFtevwruW','C3rKB3v0lMXVzW','C29YDa','mteYnhzxu1rmuW','z2v0vvrdrNvSBfLLyxi','CMvNzxG','iI4G','CNvUC0rPCKzVCG','DgvZDa','Dw5RBM93BI1YDw5UzxiTA2v5','iokaLcbWAwnRigeGzgLMzMvYzw50ig5HBwuGB3iGzwrPDcb0AguGzxHPC3rPBMCGDMfSDwuU','zw52s2v5CW','yMXVyNnsB290rM9Y','zw52tMfTzxngCM9TrgLYtgLZDgLUzW','lNzPzxDLCI5SB2nR','BwfRzvj1BKLK','zw52','AgfZ','vu5pvevtvf9kvurhrv9bq0nfu1nFve9lru4','vu5pvevtvf9eruzbvuXux1rjtuvpvvrFtvm','zMXVB3i','z2v0vvrdtw9UDgG','ntqYmda3CNvQsgDY','C2nLBMfYAw9jBMrLEezPBgvoyw1L','zMXHDe1HCa','zhvWBgLJyxrL','vu5pvevtvf9kvurhrv9nt0rfta','A2LUza','DhjPBq','C3rHDhvZ','tK9Fq09mt1i','rK9sq0vFq09mt1i','ywrK','AxnfEhrLCM5HBfzHCK5HBwu','C3rHCNrLzef0','C2vJCMv0C0XHEwvYrMLSzxngB3i','yMXVyLjLBfbHDgHgB3i','vu5pvevtvf9erujvr19nqvHFqLLurvm','vu5pvevtvf9kvurhrv9wt1rf','Dw5VDgvZDa','CNvUswrtDgfYDgvKqxq','AxnbC3nPz25Tzw50t2y','qxbW','AgvHCNrIzwf0','BMfTzq','CgfYC2vty2vUyxjPB0fUBM90yxrPB25Z','lNj1BNm','ntm0mZKXz2ffwfvQ','yxbW','n3r4BfzgvG','BxvZDcbIzsbHihn0CMLUzW','zMLSDgvY','y2fUBM90igXVywqGCNvUBMvYigfKyxb0zxiGiG','uNvUBMvYqwrHChrLCK5VDezVDw5KrxjYB3i','vu5pvevtvf9kvurhrv9qt1ju','C2HHCMrqyxrOrM9YuNvUswq','Dw5VDgvZDc8UC2vJCMv0CW','vu5pvevtvf9kvurhrv9it1nu','Dg9mB3DLCKnHC2u','AxnbC3nPz25Tzw50tgLUzq','DgvZDerPCKzVCG','CMvWBgfJzq','lMPZB25S','ChjVAMvJDfj1BNnsB290','CgfYC2vfBNzdB250zw50','C3bSAwnL','vu5pvevtvf9iruferuq','Aw5KzxHpzG','C2vJCMv0C0nVBNrLBNq','vu5pvevtvf9cuK9xu0vs','ntC0EgfeCwrk','ChvZAa','DgvTCgXHDgu','B2jQzwn0','vu5pvevtvf9erujvr19ive1mx01bwf9cwvrfuW','C2vYAwfSAxPLrw52vMfSDwu','C2HHCMreyxLZrgvZy2vUzgLUzW','y3j5ChrV','vu5pvevtvf9erujvr19quKvwsuvxx0jzvevt','zw5KC1DPDgG','vw5WBgfJzwfIBgvsDw5jzevYCM9Y','AxngAw5PDgu','z2v0uMfUzg9TvMfSDwvZ','AM9PBKXPBMvZ','lNzPzxDLCI5SB2C','C3bSAxrmAw5LCW','vu5pvevtvf9kvurhrv9usu1ft1vux01t','zgvIDwDeAxjgB3i','C2vJCMv0C0zPBgvgB3i','CNvUDgLTzs5QC29U','C2fTCgXL','vu5pvevtvf9usu1fwK9orq','C3rKzxjYlMXVzW','vw5ZDxbWB3j0zwrsDw5lAw5KrxjYB3i','Axntzwn0Aw9UrgL2AwrLCG','Aw5JBhvKzxm','vu5pvevtvf9erujvr19esvi','vu5pvevtvf9mt0DFtevwruW','C3rYAw5N','CMvTB3zLrw52vMfY','BgvUz3rO','BxvZDcbUB3qGC3rHCNqGD2L0AcaNxYCGkhjLC2vYDMvKkq','zM9SzfnJzw5HCMLVuNvU','vu5pvevtvf9qt1bvuf9huKfdrv9nuW','ChjVAMvJDfj1BKrPCKzVCG','mJa0rKvts0f0','yxbWlxnLCNzLCJPLCNjVCG','vu5pvevtvf9kvurhrv9quK9wsurfuG','AM9PBG','C2XPy2u','CgLJA2vYlxnUyxbZAg90lNr4Da','nJvVu0LvB3O','x2XHDgvZDc5QC29U','vvrd','CMvXDwLYzvj1BKrPCKzVCG','CNvUBMvYici','CNvUBMvY','ztjL','zhvYyxrPB25nCW','ig11C3qGyMuGvvbqrvjFu05bs0uGkguUzY4Gqvbqx0jbu0vFvvjmksbZBYbHihnJzw5HCMLVignHBIbYzwzLCMvUy2uGAxqGyNKGBMfTzs4','vu5pvevtvf9ftLy','mJaXnta0DK9KsM9s','lMPZB24','mtuWmdbfs1bMAvq','CNvUswqGy2fYCMLLCYbUBYb0Aw1LC3rHBxaSignHBM5VDcbWBgfJzsbPDcbPBIbHihnOyxjKoIa','zMfPBfn0CMvHAW','vu5pvevtvf9dt05tt0Xf','C291CMnL','igLZigfSC28GC2v0igLUihvUB3rLC3qVlMvUDIdIGjqGDgHLihnLy3jLDcb2ywX1zsbUB3CGC2HHzg93CYbPDc4','igfSCMvHzhKGzxHPC3rZigLUia','zw52rMLSzuzVCG','Bgf5zxjZrM9Y','ic0Tlq','BxvZDcbUB3qGyMuGiI4Iig9YiciUlIi','iYaTls0G','x2rHEs5QC29UBa','mti3nde2oxDVEg95Ca','igLZigfSC28GC2v0igLUihvUB3rLC3qVlNnLy3jLDhmG4OcuihrOzsbZzwnYzxqGDMfSDwuGC2HHzg93CYb0AgLZig9Uzs4','yxnZAwDUBwvUDevUDhjPzxm','x3nJzw5HCMLVCW','ntK5n0TczgfKAq','vu5pvevtvf9mt0nbteu','C3rLChmUANnVBMW','uNvUBMvYtM90q29UzMLNDxjLzevYCM9Y','refuqujbu0vFvvjm','CgfKu3rHCNq','igLZig5VDcbHigTUB3DUihj1BM5LCIbZzxr0Aw5NiokaLcbJAg9VC2uGB25LigzYB20GDgHLihj1BM5LCI1JB25MAwCGBgLZDc4','mta5mJa3nZzHAxztr3m','vu5pvevtvf9kvurhrv9vuKW','mty5z3vszw5w','yMXVyLbHDgHgB3i','yMXVyIbOyxnOig11C3qGyMuGBg93zxjJyxnLigHLEcWGz290oIa','z2v0vvrdrgf0zq','lNnLy3jLDhm','vu5pvevtvf9kvurhrv9ut0TftG','AxnsDw5UzxjdB25MAwDlzxK','yxbWlxnLCNzLCJPYzxvZzwq','igLZigfSC28GC2v0igLUihLVDxiGC2HLBgWGzw52AxjVBM1LBNqG4OcuigL0ihDPBgWGA2vLCcbYzxnVBhzPBMCGzNjVBsb0AgvYzsaODgHLigvUDMLYB25Tzw50ihDPBNmGB3zLCIb0AguGzMLSzsKU','BM93','vu5pvevtvf9kvurhrv9nt0rf','yMXVyLjLBfnLz21LBNrZrM9Y','Bwf0y2G','vu5pvevtvf9kvurhrv9dtefvrevFqKLo','zw52tgf5zxjgAwXLC0zVCG','uNvUBMvY','yxbWlxnLCNzLCJPYzwfKEq','zMfPBgvK','mJyWtfPLEKfJ','sw52ywXPzejSB2jiyxnOrxjYB3i','x2nVBgXLy3rPB25Z','vu5pvevtvf9kvurhrv9srvrssuvt','DgvYBwLUywW','x2jSB2jZ','zxHWzwn0lwzHAwW','CgfYC2u','y29TCgXLDgvK','vu5pvevtvf9eruzbvuXux05bvKLhqvrjt05FveLnru9vvf9nuW','x2HLBhbLCNm','C2vJCMv0CW','lMvUDG','lY5Kzwj1z2DLCG','Dg9tDhjPBMC','C2HHCMreAxjgB3i','C3rHCNrZv2L0Aa','DMfSAwrHDgvdB2XSzwn0Aw9UtMfTzq','zMXHz3m'];_0x5be3=function(){return _0x2c9c6a;};return _0x5be3();}function blobsRootFor(_0x2a5901){return _0x2a5901+'/'+BLOBS_DIR;}__name(blobsRootFor,_0x48998b(0x232));var FS_UNSAFE_NAME_RE=/[\\/:*?"<>|\x00-\x1f]/;function validateFsSafeName(_0x26bec8,_0x4f51aa){const _0x2f6bca={_0x3f18b6:0x191,_0x52b455:0x1e4,_0x89d5e0:0x216,_0x149651:0x1c4,_0x3630d2:0x219},_0x55763a=_0x48998b;if(typeof _0x26bec8!=='string')return _0x55763a(_0x2f6bca._0x3f18b6);const _0x39bbec=_0x26bec8['trim']();if(_0x39bbec['length']===0x0)return'must\x20not\x20be\x20empty';if(_0x39bbec==='.'||_0x39bbec==='..')return _0x55763a(_0x2f6bca._0x52b455);if(_0x39bbec[_0x55763a(_0x2f6bca._0x89d5e0)]('.'))return'must\x20not\x20start\x20with\x20\x27.\x27';if(_0x4f51aa?.['reservedUnderscore']&&_0x39bbec[_0x55763a(0x216)]('_'))return _0x55763a(_0x2f6bca._0x149651);if(FS_UNSAFE_NAME_RE[_0x55763a(0x22e)](_0x39bbec))return _0x55763a(_0x2f6bca._0x3630d2);return null;}__name(validateFsSafeName,_0x48998b(0x21c));var COLLECTION_NAME_FORBIDDEN_RE=FS_UNSAFE_NAME_RE;function validateCollectionName(_0x23ec74){return validateFsSafeName(_0x23ec74);}__name(validateCollectionName,_0x48998b(0x217));var RUN_MANIFEST_FILE='manifest.json',RUN_SOURCES_FILE=_0x48998b(0x21a),UnsupportedRunKindError=class extends Error{static{__name(this,_0x48998b(0x1bc));}constructor(_0x459af8,_0x33a823){const _0x4549a6=_0x48998b;super(_0x4549a6(0x1d2)+_0x33a823+'\x22\x20does\x20not\x20support\x20run\x20kind\x20\x22'+_0x459af8+'\x22'),this[_0x4549a6(0x18b)]=_0x4549a6(0x1bc);}},RunnerAdapterNotFoundError=class extends Error{static{__name(this,'RunnerAdapterNotFoundError');}constructor(_0x4d8af1,_0xe37a08){const _0x5290c9={_0x4f97a4:0x193,_0x2fe449:0x22c},_0x340af7=_0x48998b;super(_0x340af7(_0x5290c9._0x4f97a4)+_0x4d8af1+_0x340af7(_0x5290c9._0x2fe449)+_0xe37a08),this['name']=_0x340af7(0x194);}},RunnerNotConfiguredError=class extends Error{static{__name(this,'RunnerNotConfiguredError');}constructor(_0x3e2d3b){const _0x4b1b68={_0x117666:0x1ee},_0x5c9ad2=_0x48998b;super(_0x3e2d3b),this['name']=_0x5c9ad2(_0x4b1b68._0x117666);}},EXPECT_FAIL_ANNOTATION=_0x48998b(0x20c),ANNOTATION_RE=/^\s*\/\/\s*@([a-z0-9-]+)\s*$/;function isAnnotationLine(_0x3cd65f){return ANNOTATION_RE['test'](_0x3cd65f);}__name(isAnnotationLine,_0x48998b(0x21b));function parseScenarioAnnotations(_0x4877ce){const _0xa0fd42={_0x28377c:0x223,_0x5b6627:0x17b},_0x4aad92=_0x48998b,_0x42850d=new Set();for(const _0x1f37f4 of _0x4877ce[_0x4aad92(_0xa0fd42._0x28377c)](/\r?\n/)){const _0x54ae13=_0x1f37f4[_0x4aad92(_0xa0fd42._0x5b6627)]();if(_0x54ae13==='')continue;if(!_0x54ae13[_0x4aad92(0x216)]('//'))break;const _0x232015=_0x54ae13[_0x4aad92(0x200)](ANNOTATION_RE);if(_0x232015)_0x42850d['add'](_0x232015[0x1]);}return{'expectFail':_0x42850d[_0x4aad92(0x170)](EXPECT_FAIL_ANNOTATION)};}__name(parseScenarioAnnotations,_0x48998b(0x18c));var SEGMENT_NAME_FORBIDDEN_RE=FS_UNSAFE_NAME_RE;function validateSegmentName(_0xbf877f){return validateFsSafeName(_0xbf877f,{'reservedUnderscore':!![]});}__name(validateSegmentName,'validateSegmentName');var TERMINAL_WS_EVENT=_0x48998b(0x20a),RUNNER_CONFIG_KEYS=new Set([_0x48998b(0x1a4),_0x48998b(0x1a1),'UNOTEST_SLOW_MO',_0x48998b(0x172),_0x48998b(0x20f),_0x48998b(0x1c6),_0x48998b(0x1ec),_0x48998b(0x1ba),_0x48998b(0x1c0),'UNOTEST_DEBUG',_0x48998b(0x1bf),_0x48998b(0x184),_0x48998b(0x1ad),_0x48998b(0x1a9),_0x48998b(0x220),'UNOTEST_NETWORK',_0x48998b(0x1dd),'UNOTEST_CACHE_DIR',_0x48998b(0x17d),_0x48998b(0x17e),_0x48998b(0x1ef)]);function isRunnerConfigKey(_0x1c76e3){return RUNNER_CONFIG_KEYS['has'](_0x1c76e3);}__name(isRunnerConfigKey,_0x48998b(0x1fa));function categorizeVariable(_0xe5443f){const _0x92daf5={_0x40704c:0x211,_0x13b1f6:0x1d3},_0x1cb9f8=_0x48998b;if(_0xe5443f[_0x1cb9f8(0x1de)]===_0x1cb9f8(_0x92daf5._0x40704c))return _0x1cb9f8(0x225);return isRunnerConfigKey(_0xe5443f['name'])?_0x1cb9f8(_0x92daf5._0x13b1f6):_0x1cb9f8(0x18f);}__name(categorizeVariable,'categorizeVariable');function isExternalVarName(_0x40262e){const _0x587f6c=_0x48998b;return/^[A-Z][A-Z0-9_]*$/[_0x587f6c(0x22e)](_0x40262e);}__name(isExternalVarName,_0x48998b(0x180));var ENV_KEY_RE=/^[A-Za-z_][A-Za-z0-9_]*$/;function*assignmentEntries(_0x2a291c){const _0x58398b={_0x46f85a:0x223,_0x1c2523:0x1cc,_0x5cc1b1:0x17b},_0x102ac3=_0x48998b;for(const _0x255370 of _0x2a291c[_0x102ac3(_0x58398b._0x46f85a)](/\r?\n/)){const _0x3b499f=_0x255370[_0x102ac3(0x17b)]();if(_0x3b499f===''||_0x3b499f['startsWith']('#'))continue;const _0x3c5fe6=_0x3b499f[_0x102ac3(0x1a2)]('=');if(_0x3c5fe6<=0x0)continue;const _0x23aec0=_0x3b499f[_0x102ac3(_0x58398b._0x1c2523)](0x0,_0x3c5fe6)[_0x102ac3(_0x58398b._0x5cc1b1)]();if(!ENV_KEY_RE['test'](_0x23aec0))continue;yield[_0x23aec0,_0x3b499f[_0x102ac3(0x1cc)](_0x3c5fe6+0x1)['trim']()];}}__name(assignmentEntries,_0x48998b(0x1e9));function parseEnvContent(_0x69d830){const _0x323330={_0x36f340:0x1cc},_0x13dc4a=_0x48998b,_0x3f8351={};for(const [_0x1dcedc,_0x4a11b5]of assignmentEntries(_0x69d830)){let _0x3e57ec=_0x4a11b5;if(_0x3e57ec[_0x13dc4a(0x1c3)]>=0x2){const _0x4dca11=_0x3e57ec[0x0],_0x592c85=_0x3e57ec[_0x3e57ec[_0x13dc4a(0x1c3)]-0x1];(_0x4dca11==='\x22'||_0x4dca11==='\x27')&&_0x4dca11===_0x592c85&&(_0x3e57ec=_0x3e57ec[_0x13dc4a(_0x323330._0x36f340)](0x1,-0x1));}_0x3f8351[_0x1dcedc]=_0x3e57ec;}return _0x3f8351;}__name(parseEnvContent,_0x48998b(0x19f));function serializeEnvValue(_0x54fe01){const _0x5446c9={_0x1b90ec:0x22e},_0x10aaa6=_0x48998b;if(_0x54fe01==='')return'';if(/[\s#"'=\\]|^[`]/['test'](_0x54fe01)||/[\n\r]/[_0x10aaa6(_0x5446c9._0x1b90ec)](_0x54fe01)){const _0x1bdae0=_0x54fe01[_0x10aaa6(0x19c)](/\\/g,'\x5c\x5c')[_0x10aaa6(0x19c)](/"/g,'\x5c\x22')['replace'](/\n/g,'\x5cn')['replace'](/\r/g,'\x5cr');return'\x22'+_0x1bdae0+'\x22';}return _0x54fe01;}__name(serializeEnvValue,_0x48998b(0x1aa));function envKeys(_0x32db9a){const _0x59b0f0=_0x48998b,_0x187981=new Set();for(const [_0x5845fb]of assignmentEntries(_0x32db9a))_0x187981[_0x59b0f0(0x17f)](_0x5845fb);return _0x187981;}__name(envKeys,_0x48998b(0x231));function isSectionDivider(_0x4b9f9d){const _0x533ac3={_0x40c158:0x216},_0x1e26ac=_0x48998b,_0x5478cf=_0x4b9f9d[_0x1e26ac(0x17b)]();return _0x5478cf[_0x1e26ac(_0x533ac3._0x40c158)]('#')&&/---/['test'](_0x5478cf);}__name(isSectionDivider,_0x48998b(0x1bd));function isAssignmentLine(_0xdd1532){const _0x1d18a3={_0x20d083:0x17b,_0x58abc7:0x216,_0x451c30:0x1cc},_0x57e01b=_0x48998b,_0x3a3d62=_0xdd1532[_0x57e01b(_0x1d18a3._0x20d083)]();if(_0x3a3d62===''||_0x3a3d62[_0x57e01b(_0x1d18a3._0x58abc7)]('#'))return![];const _0x51c0e5=_0x3a3d62[_0x57e01b(0x1a2)]('=');return _0x51c0e5>0x0&&ENV_KEY_RE[_0x57e01b(0x22e)](_0x3a3d62[_0x57e01b(_0x1d18a3._0x451c30)](0x0,_0x51c0e5)[_0x57e01b(0x17b)]());}__name(isAssignmentLine,_0x48998b(0x19a));function isAssignmentOf(_0x563c9c,_0x2ff3a5){const _0x44fe68={_0x460ee5:0x17b,_0x1a5dc0:0x1a2,_0x47157a:0x1cc,_0x3c99c4:0x17b},_0x130216=_0x48998b,_0x41f6b6=_0x563c9c[_0x130216(_0x44fe68._0x460ee5)]();if(_0x41f6b6===''||_0x41f6b6['startsWith']('#'))return![];const _0x2d3c4a=_0x41f6b6[_0x130216(_0x44fe68._0x1a5dc0)]('=');if(_0x2d3c4a<=0x0)return![];return _0x41f6b6[_0x130216(_0x44fe68._0x47157a)](0x0,_0x2d3c4a)[_0x130216(_0x44fe68._0x3c99c4)]()===_0x2ff3a5;}__name(isAssignmentOf,_0x48998b(0x188));function splitLines(_0xcceac5){const _0x399916={_0x120b51:0x1ae},_0x2444ff=_0x48998b,_0x2b666d=_0xcceac5[_0x2444ff(_0x399916._0x120b51)]('\x0a'),_0x2b3cf9=_0x2b666d?_0xcceac5['slice'](0x0,-0x1):_0xcceac5;return{'lines':_0x2b3cf9===''?[]:_0x2b3cf9['split']('\x0a'),'trailingNewline':_0x2b666d};}__name(splitLines,_0x48998b(0x1b4));function joinLines(_0x20e25e,_0x10dacf){const _0x13b04b=_0x48998b,_0x8e431=_0x20e25e[_0x13b04b(0x1cb)]('\x0a');return _0x10dacf||_0x8e431===''?_0x8e431+'\x0a':_0x8e431;}__name(joinLines,_0x48998b(0x1b2));function insertEnvVar(_0x21dc23,_0x1fc789,_0x5b263d,_0x49b030){const _0x5c741a={_0x26b56d:0x199,_0x5358da:0x1c3,_0x193dfb:0x1a0,_0x2dac5f:0x1c3,_0x1c21b2:0x1a6,_0x49dc0b:0x1e5},_0x1e6b1b=_0x48998b,_0xb6be74=_0x1fc789+'='+serializeEnvValue(_0x5b263d),{lines:_0x36fd0c,trailingNewline:_0x4ddae2}=splitLines(_0x21dc23);if(_0x49b030){const _0x5f20b8=new RegExp('\x5cb'+_0x49b030[_0x1e6b1b(_0x5c741a._0x26b56d)]()+'\x5cb'),_0x251360=_0x36fd0c[_0x1e6b1b(0x221)](_0x17e153=>isSectionDivider(_0x17e153)&&_0x5f20b8[_0x1e6b1b(0x22e)](_0x17e153['toLowerCase']()));if(_0x251360!==-0x1){let _0x24be3a=_0x36fd0c[_0x1e6b1b(0x1c3)];for(let _0x230aef=_0x251360+0x1;_0x230aef<_0x36fd0c[_0x1e6b1b(_0x5c741a._0x5358da)];_0x230aef++){if(isSectionDivider(_0x36fd0c[_0x230aef])){_0x24be3a=_0x230aef;break;}}let _0x40b6b0=-0x1,_0x327fbd=-0x1;for(let _0x41a7a9=_0x251360+0x1;_0x41a7a9<_0x24be3a;_0x41a7a9++){if(_0x36fd0c[_0x41a7a9][_0x1e6b1b(0x17b)]()!=='')_0x327fbd=_0x41a7a9;if(isAssignmentLine(_0x36fd0c[_0x41a7a9]))_0x40b6b0=_0x41a7a9;}const _0x151a75=_0x40b6b0>=0x0?_0x40b6b0:_0x327fbd,_0x39262c=_0x151a75>=0x0?_0x151a75+0x1:_0x251360+0x1;return _0x36fd0c[_0x1e6b1b(_0x5c741a._0x193dfb)](_0x39262c,0x0,_0xb6be74),joinLines(_0x36fd0c,_0x4ddae2||_0x36fd0c['length']>0x0);}if(_0x36fd0c[_0x1e6b1b(_0x5c741a._0x2dac5f)]>0x0)_0x36fd0c[_0x1e6b1b(_0x5c741a._0x1c21b2)]('');return _0x36fd0c[_0x1e6b1b(0x1a6)](_0x1e6b1b(_0x5c741a._0x49dc0b)+_0x49b030+_0x1e6b1b(0x1e3),_0xb6be74),joinLines(_0x36fd0c,!![]);}return _0x36fd0c[_0x1e6b1b(_0x5c741a._0x1c21b2)](_0xb6be74),joinLines(_0x36fd0c,!![]);}__name(insertEnvVar,'insertEnvVar');function removeEnvVar(_0x23efb1,_0x98046a){const _0x43a7be={_0x2966ea:0x192,_0x5632ca:0x1c3},_0x202b33=_0x48998b,{lines:_0x206580,trailingNewline:_0x29c312}=splitLines(_0x23efb1),_0x3bf3c0=_0x206580[_0x202b33(_0x43a7be._0x2966ea)](_0x27d7ef=>!isAssignmentOf(_0x27d7ef,_0x98046a)),_0x1a09e6=_0x3bf3c0['length']!==_0x206580[_0x202b33(_0x43a7be._0x5632ca)];return{'content':joinLines(_0x3bf3c0,_0x29c312),'removed':_0x1a09e6};}__name(removeEnvVar,_0x48998b(0x1c2));var SECTION_BY_KIND={'app':_0x48998b(0x189),'runner':_0x48998b(0x203),'secret':void 0x0};function planAddVariable(_0x352b98){const _0x28bcac={_0xbf4246:0x170,_0x1ea2ac:0x211,_0x1211fb:0x211,_0x85737:0x197,_0x50dea5:0x21e,_0x2bc27f:0x1e0,_0x5d66b4:0x1a6},_0xe307d2=_0x48998b,{name:_0x360179,kind:_0x38dc99}=_0x352b98;if(_0x38dc99==='runner'){if(!isRunnerConfigKey(_0x360179))return{'ok':![],'code':_0xe307d2(0x22f),'message':_0x360179+_0xe307d2(0x1f1)};}else{if(!isExternalVarName(_0x360179))return{'ok':![],'code':'invalid-name','message':_0x360179+_0xe307d2(0x1d6)};}const _0x277d58=envKeys(_0x352b98['envContent'])['has'](_0x360179),_0x3b050e=envKeys(_0x352b98[_0xe307d2(0x1a3)])[_0xe307d2(_0x28bcac._0xbf4246)](_0x360179),_0x417950=_0x38dc99==='secret'?_0xe307d2(_0x28bcac._0x1ea2ac):_0xe307d2(0x16f),_0xa4582=_0x417950==='secrets'?_0x3b050e:_0x277d58,_0x465e50=_0x417950===_0xe307d2(_0x28bcac._0x1211fb)?_0xe307d2(_0x28bcac._0x85737):_0xe307d2(_0x28bcac._0x50dea5);if(_0xa4582)return{'ok':![],'code':_0xe307d2(0x178),'message':_0x360179+_0xe307d2(_0x28bcac._0x2bc27f)+_0x465e50+_0xe307d2(0x230)};const _0x2bb8cc=[];return _0x38dc99===_0xe307d2(0x225)&&_0x277d58&&_0x2bb8cc[_0xe307d2(_0x28bcac._0x5d66b4)](_0x360179+_0xe307d2(0x1df)),_0x38dc99!=='secret'&&_0x3b050e&&_0x2bb8cc[_0xe307d2(0x1a6)](_0x360179+_0xe307d2(0x1e8)),{'ok':!![],'target':_0x417950,'sectionLabel':SECTION_BY_KIND[_0x38dc99],'warnings':_0x2bb8cc};}__name(planAddVariable,_0x48998b(0x21f));function deleteShadowWarning(_0x4b8711,_0x2b0369,_0x3f639a){const _0x53aa5a={_0x41fa91:0x1fc},_0x507e61=_0x48998b;if(_0x3f639a!==void 0x0&&_0x3f639a!==_0x2b0369)return[_0x4b8711+_0x507e61(_0x53aa5a._0x41fa91)];return[];}__name(deleteShadowWarning,'deleteShadowWarning');var TERMINAL_RUNTIME_STATES=[_0x48998b(0x20e),_0x48998b(0x205),'aborted'];function isTerminalRuntimeState(_0x37ac1b){const _0x15d641=_0x48998b;return TERMINAL_RUNTIME_STATES[_0x15d641(0x1be)](_0x37ac1b);}__name(isTerminalRuntimeState,'isTerminalRuntimeState');var JUDGE_ROUTES={'judge':'/judge','health':'/health'},JUDGE_ENV={'mode':_0x48998b(0x1fe),'url':_0x48998b(0x1f3),'token':_0x48998b(0x1f9),'requestTimeoutMs':_0x48998b(0x1b5),'preamble':'UNOTEST_JUDGE_PREAMBLE','provider':_0x48998b(0x1ca),'model':_0x48998b(0x179),'callTimeoutMs':'UNOTEST_JUDGE_CALL_TIMEOUT_MS','retries':_0x48998b(0x209),'vote':_0x48998b(0x185),'accessToken':_0x48998b(0x171),'claudeBin':_0x48998b(0x201),'host':_0x48998b(0x198),'port':_0x48998b(0x195),'logLevel':_0x48998b(0x226),'skipPreflight':'UNOTEST_JUDGE_SKIP_PREFLIGHT'};export{BLOBS_DIR,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,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,activeEnvName,blobPathFor,blobRelPathFor,blobRelSegmentsFor,blobsRootFor,categorizeVariable,debugDirFor,debuggerFileFor,deleteShadowWarning,envFileFor,envKeys,envLayerFilesFor,envNamesFromDirListing,foldScenarioRun,insertEnvVar,isAnnotationLine,isExternalVarName,isFailingStatus,isRegexLiteral,isRunnerConfigKey,isRunsDirName,isTerminalRuntimeState,makeRunId,parseAppServerEvent,parseEnvContent,parseScenarioAnnotations,planAddVariable,projectRunDirFor,projectRunsRoot,regexLiteral,removeEnvVar,requireRunDirFor,runDirFor,runIdStartedAt,runsDirFor,sanitizeRunIdSegment,scenarioIndexFileName,scenarioRefFromFileName,secretsFileFor,secretsLayerFilesFor,serializeEnvValue,shardDaysDescending,shardDirFor,shardPathForRunId,shardPathForTimestamp,testDirFor,validateCollectionName,validateSegmentName};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unotest/protocol",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.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": {
|