@unotest/protocol 0.16.0 → 0.18.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,65 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.18.0] - 2026-08-23
4
+
5
+ ### Minor Changes
6
+
7
+ - 44f5d6c: Editor typings for scenarios — `.js` files stop looking like broken
8
+ JavaScript in VS Code / WebStorm: autocomplete, hover docs, signature
9
+ help and locator-chain resolution, without turning on a second
10
+ type-checker (`checkJs` stays off; diagnostics remain the DSL
11
+ validator's job).
12
+
13
+ - New shipped file `types/unotest-dsl.d.ts` — ambient declarations for
14
+ every DSL function, generated from the same contracts the validator
15
+ uses (`buildDslVocab()`), so it can never drift from the installed
16
+ version.
17
+ - New CLI command `unotest-web types` — creates `unotest/jsconfig.json`
18
+ if missing and regenerates the `.unotest/types/env.d.ts` cache
19
+ (variable NAMES from `unotest/.env` / `.secrets`; values never leave
20
+ those files).
21
+ - `init` scaffolds the jsconfig + env cache; `scaffoldWorkspace()` now
22
+ includes the jsconfig too.
23
+ - Upgrade path is automatic: `lint` and `e2e` create a missing
24
+ `unotest/jsconfig.json` on the fly (one announcement line) and
25
+ silently refresh the env cache. Skipped under CI. No action needed
26
+ after upgrading — run any test or `unotest-web lint` once and the
27
+ editor comes alive. If you keep a custom `unotest/jsconfig.json`, it
28
+ is never overwritten (re-run `init --force` to reset it).
29
+ - `@unotest/protocol`: additive optional fields on the DSL vocab —
30
+ `DslVocabArg.enumValues` (literal members behind `kind: "enum"`) and
31
+ `DslVocabEntry.variadic`.
32
+
33
+ - 9726552: Go-to-definition for project helpers in the viewer's editor: Ctrl/⌘-click
34
+ (or F12) on a `flow_*` call opens the `_helpers/` file in its tab with
35
+ the declaration line highlighted and scrolled into view. Ctrl-hover shows
36
+ a preview of the helper body. Platform functions (`click`, `goto`) have
37
+ no jump target and produce no console errors. `@unotest/protocol`:
38
+ additive optional `DslVocabEntry.source` (project-relative path + 1-based
39
+ line/column of the declaration).
40
+
41
+ ### Patch Changes
42
+
43
+ - 5ab7bd5: `screenshot()` appears in the DSL vocab (completion, hover, signature
44
+ help, generated editor typings). It always had a validator contract, but
45
+ its diagnostics contract group was missing from the vocab builder, so
46
+ every vocab consumer silently lacked it. A parity test now pins the vocab
47
+ to the contract registry, so a future contract group cannot be forgotten
48
+ again. `@unotest/protocol`: new `DslVocabCategory` value `"diagnostic"`.
49
+
50
+ ## [0.17.0] - 2026-08-20
51
+
52
+ ### Patch Changes
53
+
54
+ - 01fa3c7: Run-id: случайный суффикс расширен с 6 до 12 hex-символов.
55
+
56
+ 24 бита давали ~3% шанс коллизии на тысяче id в одной миллисекунде — это
57
+ падало в тестах и означало бы два прогона в одном каталоге. С 48 битами
58
+ тот же случай — порядка 1e-9.
59
+
60
+ Формат остаётся `<name>-<base36-ts>-<hex>`, меняется только длина
61
+ последнего сегмента; ничего его не разбирает.
62
+
3
63
  ## [0.16.0] - 2026-08-19
4
64
 
5
65
  ## [0.15.0] - 2026-08-17
package/dist/index.d.ts CHANGED
@@ -658,7 +658,7 @@ interface DslDiagnostic {
658
658
  * ordering. `keyword` covers DSL control-flow / block words (`step`,
659
659
  * `if`, `for`, …); `helper` covers project-defined `flow_*` / mock
660
660
  * helpers surfaced from the workspace. */
661
- type DslVocabCategory = "action" | "assertion" | "selector" | "chain" | "navigation" | "read" | "wait" | "state" | "storage" | "multi-context" | "sandbox" | "escape-hatch" | "keyword" | "helper";
661
+ type DslVocabCategory = "action" | "assertion" | "selector" | "chain" | "navigation" | "read" | "wait" | "state" | "storage" | "multi-context" | "sandbox" | "diagnostic" | "escape-hatch" | "keyword" | "helper";
662
662
  /** One declared argument of a vocab entry — feeds signature help and
663
663
  * the snippet placeholders in `insertText`. `kind` is the validator's
664
664
  * arg-kind string (`"locatorLike"`, `"stringLike"`, `"number"`,
@@ -667,6 +667,10 @@ interface DslVocabArg {
667
667
  label: string;
668
668
  kind: string;
669
669
  required: boolean;
670
+ /** Literal members when `kind` is `"enum"` — the label alone loses
671
+ * them, and consumers (typings generator, completion) need the
672
+ * actual values. */
673
+ enumValues?: readonly string[];
670
674
  }
671
675
  /** A single autocomplete-able item: a vocab function, a DSL keyword, or
672
676
  * a project helper. Serializable — crosses the REST boundary verbatim
@@ -675,6 +679,9 @@ interface DslVocabEntry {
675
679
  name: string;
676
680
  category: DslVocabCategory;
677
681
  args: DslVocabArg[];
682
+ /** True when the signature accepts extra positional args after the
683
+ * declared ones (`shell(cmd, ...args)`, `dbQuery(sql, ...params)`). */
684
+ variadic?: boolean;
678
685
  /** Return-kind string (`"void"`, `"string"`, `"locator"`, …). */
679
686
  returns: string;
680
687
  /** Snippet body with `${n:label}` placeholders, e.g.
@@ -692,6 +699,15 @@ interface DslVocabEntry {
692
699
  * other than `"none"` produces a locator (so it fits a `locator`
693
700
  * argument slot). Absent for keywords / helpers that have no contract. */
694
701
  locatorCapability?: "none" | "locator" | "chainableLocator";
702
+ /** Where the entry is defined in the USER's project — set for project
703
+ * helpers (`flow_*` in `_helpers/`), absent for platform functions,
704
+ * which have no source on disk there. Feeds go-to-definition.
705
+ * `path` is project-relative posix; `line`/`column` are 1-based. */
706
+ source?: {
707
+ path: string;
708
+ line: number;
709
+ column: number;
710
+ };
695
711
  }
696
712
  /** Per-request file context for {@link IDslLanguageService.validate}.
697
713
  * The viewer owns workspace discovery, so it supplies the things the
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- const _0x3c7066=_0x25fa;(function(_0x48e64c,_0x5729c8){const _0x4d98c8={_0x22abbc:0xd4,_0x574cec:0x74,_0x58fdf8:0x8b,_0x304ca4:0xa8,_0x43e9c6:0x9b,_0x372535:0xd7},_0x4eb28f=_0x25fa,_0x104bb8=_0x48e64c();while(!![]){try{const _0x27cc9a=-parseInt(_0x4eb28f(_0x4d98c8._0x22abbc))/0x1+parseInt(_0x4eb28f(_0x4d98c8._0x574cec))/0x2*(parseInt(_0x4eb28f(_0x4d98c8._0x58fdf8))/0x3)+parseInt(_0x4eb28f(_0x4d98c8._0x304ca4))/0x4+-parseInt(_0x4eb28f(_0x4d98c8._0x43e9c6))/0x5+parseInt(_0x4eb28f(_0x4d98c8._0x372535))/0x6*(parseInt(_0x4eb28f(0xbd))/0x7)+-parseInt(_0x4eb28f(0xad))/0x8+parseInt(_0x4eb28f(0x7c))/0x9*(-parseInt(_0x4eb28f(0x71))/0xa);if(_0x27cc9a===_0x5729c8)break;else _0x104bb8['push'](_0x104bb8['shift']());}catch(_0x14f8f9){_0x104bb8['push'](_0x104bb8['shift']());}}}(_0x41b6,0xd57f8));var __defProp=Object[_0x3c7066(0x9f)],__name=(_0x56d79b,_0x56797c)=>__defProp(_0x56d79b,_0x3c7066(0xb1),{'value':_0x56797c,'configurable':!![]});function parseAppServerEvent(_0x3ce973){const _0x16c3fb={_0x3c744b:0xa0,_0x10f2dd:0x80,_0x57b723:0xcd},_0x4beafc=_0x3c7066,_0x4f971b=_0x3ce973['trim']();if(!_0x4f971b[_0x4beafc(0x84)]('{'))return null;try{const _0x246c9e=JSON[_0x4beafc(0x9c)](_0x4f971b);if(_0x246c9e['kind']===_0x4beafc(0x7f)||_0x246c9e[_0x4beafc(_0x16c3fb._0x3c744b)]===_0x4beafc(_0x16c3fb._0x10f2dd)||_0x246c9e[_0x4beafc(0xa0)]===_0x4beafc(_0x16c3fb._0x57b723))return _0x246c9e;return null;}catch{return null;}}__name(parseAppServerEvent,_0x3c7066(0xc4));var UNOTEST_DIR=_0x3c7066(0x81),E2E_SUBDIR='e2e',HELPERS_SUBDIR=_0x3c7066(0xb0),COLLECTIONS_SUBDIR=_0x3c7066(0xdf),RUNS_SUBDIR=_0x3c7066(0xd3),SNAPSHOTS_SUBDIR='.snapshots';function testDirFor(_0x2dd48d){return''+E2E_SUBDIR+_0x2dd48d;}__name(testDirFor,_0x3c7066(0xd5));function runsDirFor(_0x14172f){return''+RUNS_SUBDIR+_0x14172f;}__name(runsDirFor,_0x3c7066(0xe1));function debugDirFor(_0x7cd10c){const _0x513b13={_0xeb2b3:0xda},_0x2c46b5=_0x3c7066;return _0x2c46b5(_0x513b13._0xeb2b3)+_0x7cd10c;}__name(debugDirFor,_0x3c7066(0xce));function debuggerFileFor(_0x5c3935){return UNOTEST_DIR+'/.debugger'+_0x5c3935+'.json';}__name(debuggerFileFor,_0x3c7066(0xc3));var LOCK_FILE=_0x3c7066(0x7a),LOG_FILE=_0x3c7066(0x6a),STEPS_FILE=_0x3c7066(0x7e),HEARTBEAT_FILE=_0x3c7066(0x98),STDOUT_FILE='stdout.log',STDERR_FILE='stderr.log',COMMANDS_FILE=_0x3c7066(0x70),RUNTIME_FILE=_0x3c7066(0x8f),PICKER_SNAPSHOT_FILE=_0x3c7066(0xaf),ENV_FILE=_0x3c7066(0xdc),SECRETS_FILE=_0x3c7066(0x7b);function envFileFor(_0x2d49b9,_0x25ded1){return''+ENV_FILE+_0x2d49b9+(_0x25ded1?'.'+_0x25ded1:'');}__name(envFileFor,_0x3c7066(0xb3));function secretsFileFor(_0x47a8c4,_0x18eedb){return''+SECRETS_FILE+_0x47a8c4+(_0x18eedb?'.'+_0x18eedb:'');}__name(secretsFileFor,_0x3c7066(0x89));function envLayerFilesFor(_0x26606e,_0x22da52){return layersFor(ENV_FILE,_0x26606e,_0x22da52);}__name(envLayerFilesFor,_0x3c7066(0xde));function secretsLayerFilesFor(_0x51dd7e,_0x55af10){return layersFor(SECRETS_FILE,_0x51dd7e,_0x55af10);}__name(secretsLayerFilesFor,_0x3c7066(0xdd));function layersFor(_0x2809b6,_0x6c8daa,_0xc245ab){const _0x273e67=_0x3c7066,_0x10dfa6=[_0x2809b6];if(_0x6c8daa)_0x10dfa6['push'](''+_0x2809b6+_0x6c8daa);if(_0xc245ab){_0x10dfa6['push'](_0x2809b6+'.'+_0xc245ab);if(_0x6c8daa)_0x10dfa6[_0x273e67(0x8c)](''+_0x2809b6+_0x6c8daa+'.'+_0xc245ab);}return _0x10dfa6;}__name(layersFor,'layersFor');function activeEnvName(_0x4c2c1f){const _0x7b28fd=_0x3c7066,_0x4264d7=_0x4c2c1f[_0x7b28fd(0xa5)]?.[_0x7b28fd(0xb8)]();return _0x4264d7?_0x4264d7:void 0x0;}__name(activeEnvName,'activeEnvName');function isRegexLiteral(_0x1c34b9){const _0x148145={_0x336d1c:0xa7,_0x77e537:0x69,_0x3c5279:0xe0,_0x1220b2:0x79},_0x5eb96c=_0x3c7066;return typeof _0x1c34b9===_0x5eb96c(_0x148145._0x336d1c)&&_0x1c34b9!==null&&_0x1c34b9['kind']===_0x5eb96c(_0x148145._0x77e537)&&typeof _0x1c34b9[_0x5eb96c(_0x148145._0x3c5279)]===_0x5eb96c(_0x148145._0x1220b2)&&typeof _0x1c34b9['flags']===_0x5eb96c(0x79);}__name(isRegexLiteral,'isRegexLiteral');function regexLiteral(_0x5972e5,_0x419e33=''){return{'kind':'regex','source':_0x5972e5,'flags':_0x419e33};}__name(regexLiteral,_0x3c7066(0x93));var RAND_BYTES=0x3;function makeRunId(_0x30042a){const _0x11e974={_0x1a9950:0x9a,_0x428d0f:0xa2,_0x29672d:0x6f,_0x316bd8:0xc7},_0x244151=_0x3c7066,_0x1897cc=sanitizeRunIdSegment(_0x30042a),_0xabc856=Date[_0x244151(_0x11e974._0x1a9950)]()[_0x244151(_0x11e974._0x428d0f)](0x24),_0x4bf3d1=new Uint8Array(RAND_BYTES);globalThis['crypto'][_0x244151(_0x11e974._0x29672d)](_0x4bf3d1);let _0x5aa24f='';for(let _0xd3191b=0x0;_0xd3191b<_0x4bf3d1['length'];_0xd3191b++){_0x5aa24f+=_0x4bf3d1[_0xd3191b][_0x244151(0xa2)](0x10)[_0x244151(_0x11e974._0x316bd8)](0x2,'0');}return _0x1897cc+'-'+_0xabc856+'-'+_0x5aa24f;}__name(makeRunId,_0x3c7066(0x78));function sanitizeRunIdSegment(_0x2a9aa3){const _0xc88533=_0x3c7066,_0x2320ba=_0x2a9aa3[_0xc88533(0xd8)](/[^a-zA-Z0-9_-]+/g,'-')[_0xc88533(0xd8)](/-+/g,'-')['replace'](/^-|-$/g,'');return _0x2320ba[_0xc88533(0xb7)]>0x0?_0x2320ba:_0xc88533(0x6e);}__name(sanitizeRunIdSegment,'sanitizeRunIdSegment');var FS_UNSAFE_NAME_RE=/[\\/:*?"<>|\x00-\x1f]/;function validateFsSafeName(_0x2b8a31,_0x26a74b){const _0x3375d5={_0x1f9d6c:0xd1,_0x1e6536:0x84,_0x3bd21:0xa1,_0xde81c9:0x84,_0x5d9c0c:0xd9},_0x5b20d1=_0x3c7066;if(typeof _0x2b8a31!=='string')return'must\x20be\x20a\x20string';const _0x306ae0=_0x2b8a31[_0x5b20d1(0xb8)]();if(_0x306ae0['length']===0x0)return _0x5b20d1(_0x3375d5._0x1f9d6c);if(_0x306ae0==='.'||_0x306ae0==='..')return _0x5b20d1(0x8d);if(_0x306ae0[_0x5b20d1(_0x3375d5._0x1e6536)]('.'))return _0x5b20d1(0x94);if(_0x26a74b?.[_0x5b20d1(_0x3375d5._0x3bd21)]&&_0x306ae0[_0x5b20d1(_0x3375d5._0xde81c9)]('_'))return _0x5b20d1(0x68);if(FS_UNSAFE_NAME_RE[_0x5b20d1(0xba)](_0x306ae0))return _0x5b20d1(_0x3375d5._0x5d9c0c);return null;}__name(validateFsSafeName,'validateFsSafeName');var COLLECTION_NAME_FORBIDDEN_RE=FS_UNSAFE_NAME_RE;function validateCollectionName(_0x23ab56){return validateFsSafeName(_0x23ab56);}__name(validateCollectionName,'validateCollectionName');var RUN_MANIFEST_FILE=_0x3c7066(0xb4),RUN_SOURCES_FILE='sources.json',UnsupportedRunKindError=class extends Error{static{__name(this,_0x3c7066(0x9d));}constructor(_0x16d83e,_0x3921ac){const _0x5c1908={_0x3cbb06:0xbc,_0x447120:0xb1,_0x4e150b:0x9d},_0x211a08=_0x3c7066;super(_0x211a08(0xd0)+_0x3921ac+_0x211a08(_0x5c1908._0x3cbb06)+_0x16d83e+'\x22'),this[_0x211a08(_0x5c1908._0x447120)]=_0x211a08(_0x5c1908._0x4e150b);}},RunnerAdapterNotFoundError=class extends Error{static{__name(this,_0x3c7066(0x8a));}constructor(_0x3ab576,_0xfbecfe){const _0x26d254={_0x16a40c:0xb1},_0x4aed29=_0x3c7066;super(_0x4aed29(0x7d)+_0x3ab576+_0x4aed29(0x65)+_0xfbecfe),this[_0x4aed29(_0x26d254._0x16a40c)]=_0x4aed29(0x8a);}},RunnerNotConfiguredError=class extends Error{static{__name(this,_0x3c7066(0xa6));}constructor(_0x4915db){const _0x11c795={_0x54ce47:0xb1},_0x53a00f=_0x3c7066;super(_0x4915db),this[_0x53a00f(_0x11c795._0x54ce47)]=_0x53a00f(0xa6);}},SEGMENT_NAME_FORBIDDEN_RE=FS_UNSAFE_NAME_RE;function validateSegmentName(_0x56ccae){return validateFsSafeName(_0x56ccae,{'reservedUnderscore':!![]});}__name(validateSegmentName,_0x3c7066(0x99));var TERMINAL_WS_EVENT=_0x3c7066(0xae),RUNNER_CONFIG_KEYS=new Set([_0x3c7066(0xaa),_0x3c7066(0xcf),_0x3c7066(0x9e),_0x3c7066(0xac),'UNOTEST_DEFAULT_NAVIGATION_TIMEOUT_MS','UNOTEST_POPUP_GRACE_MS',_0x3c7066(0x73),_0x3c7066(0xdb),'UNOTEST_LOG_LEVEL',_0x3c7066(0x86),_0x3c7066(0xc6),'UNOTEST_DEBUG_MAX_BYTES',_0x3c7066(0xb9),_0x3c7066(0x88),_0x3c7066(0x90),_0x3c7066(0x66),_0x3c7066(0x87),'UNOTEST_CACHE_DIR','NO_COLOR',_0x3c7066(0x96),_0x3c7066(0x85)]);function isRunnerConfigKey(_0x41fba3){return RUNNER_CONFIG_KEYS['has'](_0x41fba3);}__name(isRunnerConfigKey,_0x3c7066(0xc2));function categorizeVariable(_0x59e453){const _0x2e2fa7={_0x590e96:0xe0,_0x374a80:0x67,_0x34c928:0xb6,_0x58e78d:0xb1,_0x28f561:0xcb},_0x38acaa=_0x3c7066;if(_0x59e453[_0x38acaa(_0x2e2fa7._0x590e96)]===_0x38acaa(_0x2e2fa7._0x374a80))return _0x38acaa(_0x2e2fa7._0x34c928);return isRunnerConfigKey(_0x59e453[_0x38acaa(_0x2e2fa7._0x58e78d)])?_0x38acaa(_0x2e2fa7._0x28f561):_0x38acaa(0xbe);}__name(categorizeVariable,_0x3c7066(0xa3));function isExternalVarName(_0x49dc1b){const _0x5aabff=_0x3c7066;return/^[A-Z][A-Z0-9_]*$/[_0x5aabff(0xba)](_0x49dc1b);}__name(isExternalVarName,'isExternalVarName');var ENV_KEY_RE=/^[A-Za-z_][A-Za-z0-9_]*$/;function*assignmentEntries(_0x36ec0b){const _0x50db7e={_0x285a9e:0xb8,_0x9bbcd1:0xbb,_0x9afa4e:0x72,_0x81a9b0:0x72},_0x4a9f8c=_0x3c7066;for(const _0x3202b7 of _0x36ec0b['split'](/\r?\n/)){const _0x18b12a=_0x3202b7[_0x4a9f8c(_0x50db7e._0x285a9e)]();if(_0x18b12a===''||_0x18b12a[_0x4a9f8c(0x84)]('#'))continue;const _0x2eccc6=_0x18b12a[_0x4a9f8c(_0x50db7e._0x9bbcd1)]('=');if(_0x2eccc6<=0x0)continue;const _0x3e28b4=_0x18b12a[_0x4a9f8c(_0x50db7e._0x9afa4e)](0x0,_0x2eccc6)[_0x4a9f8c(0xb8)]();if(!ENV_KEY_RE[_0x4a9f8c(0xba)](_0x3e28b4))continue;yield[_0x3e28b4,_0x18b12a[_0x4a9f8c(_0x50db7e._0x81a9b0)](_0x2eccc6+0x1)['trim']()];}}__name(assignmentEntries,_0x3c7066(0xc5));function parseEnvContent(_0x82231a){const _0x3fc8ac={_0x2ca1ea:0xb7},_0x57c151=_0x3c7066,_0x4b6d1b={};for(const [_0x471537,_0x2ead50]of assignmentEntries(_0x82231a)){let _0x5edc29=_0x2ead50;if(_0x5edc29[_0x57c151(_0x3fc8ac._0x2ca1ea)]>=0x2){const _0x30fa72=_0x5edc29[0x0],_0x407d5e=_0x5edc29[_0x5edc29['length']-0x1];(_0x30fa72==='\x22'||_0x30fa72==='\x27')&&_0x30fa72===_0x407d5e&&(_0x5edc29=_0x5edc29['slice'](0x1,-0x1));}_0x4b6d1b[_0x471537]=_0x5edc29;}return _0x4b6d1b;}__name(parseEnvContent,'parseEnvContent');function serializeEnvValue(_0x1e0c14){const _0x1ce250={_0x30c793:0xba,_0x8a4d57:0xba,_0x533802:0xd8},_0x225f44=_0x3c7066;if(_0x1e0c14==='')return'';if(/[\s#"'=\\]|^[`]/[_0x225f44(_0x1ce250._0x30c793)](_0x1e0c14)||/[\n\r]/[_0x225f44(_0x1ce250._0x8a4d57)](_0x1e0c14)){const _0xbe88e3=_0x1e0c14['replace'](/\\/g,'\x5c\x5c')[_0x225f44(_0x1ce250._0x533802)](/"/g,'\x5c\x22')['replace'](/\n/g,'\x5cn')[_0x225f44(0xd8)](/\r/g,'\x5cr');return'\x22'+_0xbe88e3+'\x22';}return _0x1e0c14;}__name(serializeEnvValue,_0x3c7066(0x77));function envKeys(_0x43b8e4){const _0x1b8480={_0x35bb5f:0xa9},_0x27c948=_0x3c7066,_0x56e47e=new Set();for(const [_0x9d1539]of assignmentEntries(_0x43b8e4))_0x56e47e[_0x27c948(_0x1b8480._0x35bb5f)](_0x9d1539);return _0x56e47e;}__name(envKeys,_0x3c7066(0x8e));function isSectionDivider(_0x1c3439){const _0x5b503c=_0x3c7066,_0xbf25da=_0x1c3439['trim']();return _0xbf25da[_0x5b503c(0x84)]('#')&&/---/[_0x5b503c(0xba)](_0xbf25da);}__name(isSectionDivider,_0x3c7066(0xd6));function isAssignmentLine(_0x57bf2e){const _0x4f9952={_0x456946:0x84,_0x4b81dd:0xba,_0x93e30b:0x72},_0x11c79f=_0x3c7066,_0x9d0b8d=_0x57bf2e[_0x11c79f(0xb8)]();if(_0x9d0b8d===''||_0x9d0b8d[_0x11c79f(_0x4f9952._0x456946)]('#'))return![];const _0x5dd140=_0x9d0b8d['indexOf']('=');return _0x5dd140>0x0&&ENV_KEY_RE[_0x11c79f(_0x4f9952._0x4b81dd)](_0x9d0b8d[_0x11c79f(_0x4f9952._0x93e30b)](0x0,_0x5dd140)['trim']());}__name(isAssignmentLine,'isAssignmentLine');function isAssignmentOf(_0x54aae9,_0x938987){const _0x12e60e=_0x3c7066,_0x1021fd=_0x54aae9['trim']();if(_0x1021fd===''||_0x1021fd[_0x12e60e(0x84)]('#'))return![];const _0x7de4ac=_0x1021fd[_0x12e60e(0xbb)]('=');if(_0x7de4ac<=0x0)return![];return _0x1021fd[_0x12e60e(0x72)](0x0,_0x7de4ac)['trim']()===_0x938987;}__name(isAssignmentOf,'isAssignmentOf');function splitLines(_0x1cbccb){const _0x46e2f0={_0x5a7e7a:0x76,_0x493cec:0x72,_0x5e2e9f:0xa4},_0x4755f9=_0x3c7066,_0x423b49=_0x1cbccb[_0x4755f9(_0x46e2f0._0x5a7e7a)]('\x0a'),_0x399856=_0x423b49?_0x1cbccb[_0x4755f9(_0x46e2f0._0x493cec)](0x0,-0x1):_0x1cbccb;return{'lines':_0x399856===''?[]:_0x399856[_0x4755f9(_0x46e2f0._0x5e2e9f)]('\x0a'),'trailingNewline':_0x423b49};}function _0x41b6(){const _0x40b28f=['C3bSAxrmAw5LCW','iI4G','vu5pvevtvf9orvrxt1jl','C2vJCMv0CW','BxvZDcbUB3qGC3rHCNqGD2L0AcaNxYCGkhjLC2vYDMvKkq','CMvNzxG','lNzPzxDLCI5SB2C','Dg9mB3DLCKnHC2u','zgvSzxrLu2HHzg93v2fYBMLUzW','igLZigfSC28GC2v0igLUihvUB3rLC3qVlNnLy3jLDhmG4OcuihrOzsbZzwnYzxqGDMfSDwuGC2HHzg93CYb0AgLZig9Uzs4','CNvU','z2v0uMfUzg9TvMfSDwvZ','y29TBwfUzhmUANnVBMW','ntC3otG1mefpwNnuza','C2XPy2u','vu5pvevtvf9mt0nbteu','mZeWodeWmKLhsNPPsW','AgfZ','zw5KC1DPDgG','C2vYAwfSAxPLrw52vMfSDwu','BwfRzvj1BKLK','C3rYAw5N','lNzPzxDLCI5SB2nR','Dw5VDgvZDc8UC2vJCMv0CW','mJDuweHftei','y2fUBM90igXVywqGCNvUBMvYigfKyxb0zxiGiG','C3rLChmUANnVBMW','yxbWlxnLCNzLCJPYzwfKEq','yxbWlxnLCNzLCJPYzxvZzwq','Dw5VDgvZDa','zMfPBgvK','AxnuzxjTAw5HBfj1BNrPBwvtDgf0zq','C3rHCNrZv2L0Aa','refuqujbu0vFvvjm','vu5pvevtvf9erujvrW','vu5pvevtvf9dt05tt0Xf','vu5pvevtvf9erujvr19ive1mx01bwf9cwvrfuW','C2vJCMv0C0zPBgvgB3i','uNvUBMvYqwrHChrLCK5VDezVDw5KrxjYB3i','m2PcBvfWDa','ChvZAa','BxvZDcbUB3qGyMuGiI4Iig9YiciUlIi','zw52s2v5CW','CNvUDgLTzs5QC29U','vu5pvevtvf9erujvr19lruvqx0nbteXt','qxbW','iYaTls0G','CMvNzxHmAxrLCMfS','BxvZDcbUB3qGC3rHCNqGD2L0AcaNlIC','C3bSAwnL','rK9sq0vFq09mt1i','Aw52ywXPzc1Uyw1L','AgvHCNrIzwf0','DMfSAwrHDgvtzwDTzw50tMfTzq','BM93','mtyWnZbpAKPVENi','CgfYC2u','vw5ZDxbWB3j0zwrsDw5lAw5KrxjYB3i','vu5pvevtvf9tte9xx01p','zgvMAw5LuhjVCgvYDhK','A2LUza','CMvZzxj2zwrvBMrLCNnJB3jL','Dg9tDhjPBMC','y2f0zwDVCML6zvzHCMLHyMXL','C3bSAxq','vu5pvevtvf9ftLy','uNvUBMvYtM90q29UzMLNDxjLzevYCM9Y','B2jQzwn0','mZiWndGYnffLDNnfqq','ywrK','vu5pvevtvf9cuK9xu0vs','ig11C3qGyMuGvvbqrvjFu05bs0uGkguUzY4Gqvbqx0jbu0vFvvjmksbZBYbHihnJzw5HCMLVignHBIbYzwzLCMvUy2uGAxqGyNKGBMfTzs4','vu5pvevtvf9eruzbvuXux1rjtuvpvvrFtvm','nZyWmJqWsMLQzMTX','DgvYBwLUywW','CgLJA2vYlxnUyxbZAg90lNr4Da','x2HLBhbLCNm','BMfTzq','zw52','zw52rMLSzuzVCG','BwfUAwzLC3qUANnVBG','C2vJCMv0C0nVBNrLBNq','C2vJCMv0','BgvUz3rO','DhjPBq','vu5pvevtvf9erujvr19quKvwsuvxx0jzvevt','DgvZDa','Aw5KzxHpzG','iIbKB2vZig5VDcbZDxbWB3j0ihj1BIbRAw5Kici','nteZmZGXneDJsK53tq','yxbW','uNvUBMvY','igLZigfSC28GC2v0igLUihvUB3rLC3qVlMvUDIdIGjqGDgHLihnLy3jLDcb2ywX1zsbUB3CGC2HHzg93CYbPDc4','AM9PBKXPBMvZ','AxnsDw5UzxjdB25MAwDlzxK','zgvIDwDNzxjgAwXLrM9Y','CgfYC2vbChbtzxj2zxjfDMvUDa','yxnZAwDUBwvUDevUDhjPzxm','vu5pvevtvf9erujvr19esvi','CgfKu3rHCNq','Dw5RBM93BI1YDw5UzxiTA2v5','igLZigfSC28GC2v0igLUihLVDxiGC2HLBgWGzw52AxjVBM1LBNqG4OcuigL0ihDPBgWGA2vLCcbYzxnVBhzPBMCGzNjVBsb0AgvYzsaODgHLigvUDMLYB25Tzw50ihDPBNmGB3zLCIb0AguGzMLSzsKU','igLZig5VDcbHigTUB3DUihj1BM5LCIbZzxr0Aw5NiokaLcbJAg9VC2uGB25LigzYB20GDgHLihj1BM5LCI1JB25MAwCGBgLZDc4','CNvUBMvY','ic0Tlq','yxbWlxnLCNzLCJPLCNjVCG','zgvIDwDeAxjgB3i','vu5pvevtvf9iruferuq','CNvUBMvYici','BxvZDcbUB3qGyMuGzw1WDhK','y29TCgXLDgvK','lNj1BNm','mZGXotCYzMzxwvbc','DgvZDerPCKzVCG','Axntzwn0Aw9UrgL2AwrLCG','nLj0C2nwwG','CMvWBgfJzq','BxvZDcbUB3qGy29UDgfPBIbCic8GoIaQid8GiIa8id4GFcbVCIbJB250CM9SignOyxjHy3rLCNm','lMrLyNvN','vu5pvevtvf9usu1fwK9orq','Dw5VDgvZDc8Uzw52','C2vJCMv0C0XHEwvYrMLSzxngB3i','zw52tgf5zxjgAwXLC0zVCG','x2nVBgXLy3rPB25Z','C291CMnL','CNvUC0rPCKzVCG'];_0x41b6=function(){return _0x40b28f;};return _0x41b6();}__name(splitLines,_0x3c7066(0x64));function joinLines(_0x2b72ee,_0x5534f9){const _0x1640cc=_0x2b72ee['join']('\x0a');return _0x5534f9||_0x1640cc===''?_0x1640cc+'\x0a':_0x1640cc;}__name(joinLines,_0x3c7066(0xc1));function insertEnvVar(_0x16ba7e,_0x5f4b26,_0x3b68c3,_0x1dfef7){const _0x5e16ab={_0x1e0c1e:0xb8,_0x43ed27:0x95},_0x33525c=_0x3c7066,_0x3682e8=_0x5f4b26+'='+serializeEnvValue(_0x3b68c3),{lines:_0x11e6f6,trailingNewline:_0x5a17a1}=splitLines(_0x16ba7e);if(_0x1dfef7){const _0xf83311=new RegExp('\x5cb'+_0x1dfef7[_0x33525c(0x6b)]()+'\x5cb'),_0x427bba=_0x11e6f6['findIndex'](_0x127a2f=>isSectionDivider(_0x127a2f)&&_0xf83311['test'](_0x127a2f[_0x33525c(0x6b)]()));if(_0x427bba!==-0x1){let _0x217793=_0x11e6f6[_0x33525c(0xb7)];for(let _0x2f9dc7=_0x427bba+0x1;_0x2f9dc7<_0x11e6f6[_0x33525c(0xb7)];_0x2f9dc7++){if(isSectionDivider(_0x11e6f6[_0x2f9dc7])){_0x217793=_0x2f9dc7;break;}}let _0x2c3c0b=-0x1,_0x54bafb=-0x1;for(let _0x6600b5=_0x427bba+0x1;_0x6600b5<_0x217793;_0x6600b5++){if(_0x11e6f6[_0x6600b5][_0x33525c(_0x5e16ab._0x1e0c1e)]()!=='')_0x54bafb=_0x6600b5;if(isAssignmentLine(_0x11e6f6[_0x6600b5]))_0x2c3c0b=_0x6600b5;}const _0xd2585b=_0x2c3c0b>=0x0?_0x2c3c0b:_0x54bafb,_0x48934f=_0xd2585b>=0x0?_0xd2585b+0x1:_0x427bba+0x1;return _0x11e6f6[_0x33525c(_0x5e16ab._0x43ed27)](_0x48934f,0x0,_0x3682e8),joinLines(_0x11e6f6,_0x5a17a1||_0x11e6f6['length']>0x0);}if(_0x11e6f6['length']>0x0)_0x11e6f6['push']('');return _0x11e6f6[_0x33525c(0x8c)](_0x33525c(0x92)+_0x1dfef7+_0x33525c(0xcc),_0x3682e8),joinLines(_0x11e6f6,!![]);}return _0x11e6f6['push'](_0x3682e8),joinLines(_0x11e6f6,!![]);}__name(insertEnvVar,'insertEnvVar');function removeEnvVar(_0x537fa7,_0x4b8cfd){const _0x1d889b={_0x3f2ff0:0xb7},_0x582fe2=_0x3c7066,{lines:_0x38983c,trailingNewline:_0x1a46fd}=splitLines(_0x537fa7),_0x3cb482=_0x38983c['filter'](_0x236395=>!isAssignmentOf(_0x236395,_0x4b8cfd)),_0x1cc4e7=_0x3cb482['length']!==_0x38983c[_0x582fe2(_0x1d889b._0x3f2ff0)];return{'content':joinLines(_0x3cb482,_0x1a46fd),'removed':_0x1cc4e7};}__name(removeEnvVar,'removeEnvVar');var SECTION_BY_KIND={'app':_0x3c7066(0x91),'runner':_0x3c7066(0xbf),'secret':void 0x0};function _0x25fa(_0x5b63bd,_0x3cb049){_0x5b63bd=_0x5b63bd-0x64;const _0x41b644=_0x41b6();let _0x25fa4d=_0x41b644[_0x5b63bd];if(_0x25fa['NANuum']===undefined){var _0x2e4c9a=function(_0x199424){const _0x1cc670='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x56d79b='',_0x56797c='';for(let _0x3ce973=0x0,_0x4f971b,_0x246c9e,_0x2dd48d=0x0;_0x246c9e=_0x199424['charAt'](_0x2dd48d++);~_0x246c9e&&(_0x4f971b=_0x3ce973%0x4?_0x4f971b*0x40+_0x246c9e:_0x246c9e,_0x3ce973++%0x4)?_0x56d79b+=String['fromCharCode'](0xff&_0x4f971b>>(-0x2*_0x3ce973&0x6)):0x0){_0x246c9e=_0x1cc670['indexOf'](_0x246c9e);}for(let _0x14172f=0x0,_0x7cd10c=_0x56d79b['length'];_0x14172f<_0x7cd10c;_0x14172f++){_0x56797c+='%'+('00'+_0x56d79b['charCodeAt'](_0x14172f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x56797c);};_0x25fa['AsAdxW']=_0x2e4c9a,_0x25fa['frTPVJ']={},_0x25fa['NANuum']=!![];}const _0x1fde21=_0x41b644[0x0],_0x24ba9f=_0x5b63bd+_0x1fde21,_0x335e27=_0x25fa['frTPVJ'][_0x24ba9f];return!_0x335e27?(_0x25fa4d=_0x25fa['AsAdxW'](_0x25fa4d),_0x25fa['frTPVJ'][_0x24ba9f]=_0x25fa4d):_0x25fa4d=_0x335e27,_0x25fa4d;}function planAddVariable(_0x48632a){const _0x18d8c1={_0x34a5ba:0x75,_0x86b829:0xb5,_0x22d97a:0xb6,_0x192afa:0xb2,_0x519564:0xdc,_0x196d4b:0x6d},_0x5cc82c=_0x3c7066,{name:_0x27cfb4,kind:_0x1753cd}=_0x48632a;if(_0x1753cd===_0x5cc82c(0xcb)){if(!isRunnerConfigKey(_0x27cfb4))return{'ok':![],'code':_0x5cc82c(0xc8),'message':_0x27cfb4+_0x5cc82c(0xca)};}else{if(!isExternalVarName(_0x27cfb4))return{'ok':![],'code':_0x5cc82c(0x97),'message':_0x27cfb4+_0x5cc82c(0xab)};}const _0x4eae0e=envKeys(_0x48632a['envContent'])[_0x5cc82c(_0x18d8c1._0x34a5ba)](_0x27cfb4),_0x33c23d=envKeys(_0x48632a[_0x5cc82c(_0x18d8c1._0x86b829)])[_0x5cc82c(0x75)](_0x27cfb4),_0x3faf45=_0x1753cd===_0x5cc82c(_0x18d8c1._0x22d97a)?_0x5cc82c(0x67):_0x5cc82c(_0x18d8c1._0x192afa),_0x2e8023=_0x3faf45===_0x5cc82c(0x67)?_0x33c23d:_0x4eae0e,_0x4324f6=_0x3faf45==='secrets'?'unotest/.secrets':_0x5cc82c(_0x18d8c1._0x519564);if(_0x2e8023)return{'ok':![],'code':'duplicate','message':_0x27cfb4+'\x20already\x20exists\x20in\x20'+_0x4324f6+'\x20—\x20pick\x20a\x20different\x20name\x20or\x20edit\x20the\x20existing\x20value.'};const _0x3512b2=[];return _0x1753cd==='secret'&&_0x4eae0e&&_0x3512b2[_0x5cc82c(0x8c)](_0x27cfb4+_0x5cc82c(0xc0)),_0x1753cd!=='secret'&&_0x33c23d&&_0x3512b2[_0x5cc82c(0x8c)](_0x27cfb4+_0x5cc82c(_0x18d8c1._0x196d4b)),{'ok':!![],'target':_0x3faf45,'sectionLabel':SECTION_BY_KIND[_0x1753cd],'warnings':_0x3512b2};}__name(planAddVariable,'planAddVariable');function deleteShadowWarning(_0x559c84,_0x41fcd9,_0x399a22){const _0x582391=_0x3c7066;if(_0x399a22!==void 0x0&&_0x399a22!==_0x41fcd9)return[_0x559c84+_0x582391(0xc9)];return[];}__name(deleteShadowWarning,_0x3c7066(0x6c));var TERMINAL_RUNTIME_STATES=[_0x3c7066(0xd2),_0x3c7066(0x82),'aborted'];function isTerminalRuntimeState(_0x1d6659){return TERMINAL_RUNTIME_STATES['includes'](_0x1d6659);}__name(isTerminalRuntimeState,_0x3c7066(0x83));export{COLLECTIONS_SUBDIR,COLLECTION_NAME_FORBIDDEN_RE,COMMANDS_FILE,E2E_SUBDIR,ENV_FILE,HEARTBEAT_FILE,HELPERS_SUBDIR,LOCK_FILE,LOG_FILE,PICKER_SNAPSHOT_FILE,RUNNER_CONFIG_KEYS,RUNS_SUBDIR,RUNTIME_FILE,RUN_MANIFEST_FILE,RUN_SOURCES_FILE,RunnerAdapterNotFoundError,RunnerNotConfiguredError,SECRETS_FILE,SEGMENT_NAME_FORBIDDEN_RE,SNAPSHOTS_SUBDIR,STDERR_FILE,STDOUT_FILE,STEPS_FILE,TERMINAL_RUNTIME_STATES,TERMINAL_WS_EVENT,UNOTEST_DIR,UnsupportedRunKindError,activeEnvName,categorizeVariable,debugDirFor,debuggerFileFor,deleteShadowWarning,envFileFor,envKeys,envLayerFilesFor,insertEnvVar,isExternalVarName,isRegexLiteral,isRunnerConfigKey,isTerminalRuntimeState,makeRunId,parseAppServerEvent,parseEnvContent,planAddVariable,regexLiteral,removeEnvVar,runsDirFor,sanitizeRunIdSegment,secretsFileFor,secretsLayerFilesFor,serializeEnvValue,testDirFor,validateCollectionName,validateSegmentName};
1
+ const _0x2c9187=_0xb60b;(function(_0x45788c,_0x969b90){const _0x17e439={_0x13c835:0x25f,_0x17f6f3:0x1f9,_0xaa5df9:0x1f8,_0x447ac1:0x216,_0x104bd5:0x203},_0xba33d6=_0xb60b,_0x1ab49f=_0x45788c();while(!![]){try{const _0x106db2=parseInt(_0xba33d6(_0x17e439._0x13c835))/0x1*(-parseInt(_0xba33d6(0x232))/0x2)+-parseInt(_0xba33d6(_0x17e439._0x17f6f3))/0x3*(-parseInt(_0xba33d6(0x23d))/0x4)+-parseInt(_0xba33d6(_0x17e439._0xaa5df9))/0x5+-parseInt(_0xba33d6(_0x17e439._0x447ac1))/0x6*(-parseInt(_0xba33d6(_0x17e439._0x104bd5))/0x7)+parseInt(_0xba33d6(0x206))/0x8+-parseInt(_0xba33d6(0x20b))/0x9+parseInt(_0xba33d6(0x208))/0xa;if(_0x106db2===_0x969b90)break;else _0x1ab49f['push'](_0x1ab49f['shift']());}catch(_0x3fd416){_0x1ab49f['push'](_0x1ab49f['shift']());}}}(_0x4eea,0xe84e9));var __defProp=Object[_0x2c9187(0x215)],__name=(_0x7e944b,_0x2c4df2)=>__defProp(_0x7e944b,'name',{'value':_0x2c4df2,'configurable':!![]});function parseAppServerEvent(_0x3551c4){const _0x495f53={_0x5d7637:0x25d,_0x51f484:0x24a,_0x290c47:0x200},_0x473240=_0x2c9187,_0x1b086b=_0x3551c4[_0x473240(0x25c)]();if(!_0x1b086b['startsWith']('{'))return null;try{const _0x484271=JSON[_0x473240(_0x495f53._0x5d7637)](_0x1b086b);if(_0x484271[_0x473240(_0x495f53._0x51f484)]==='app-server:ready'||_0x484271[_0x473240(_0x495f53._0x51f484)]===_0x473240(_0x495f53._0x290c47)||_0x484271[_0x473240(_0x495f53._0x51f484)]===_0x473240(0x246))return _0x484271;return null;}catch{return null;}}__name(parseAppServerEvent,_0x2c9187(0x24e));var UNOTEST_DIR='unotest',E2E_SUBDIR=_0x2c9187(0x201),HELPERS_SUBDIR=_0x2c9187(0x205),COLLECTIONS_SUBDIR=_0x2c9187(0x1df),RUNS_SUBDIR='.runs',SNAPSHOTS_SUBDIR=_0x2c9187(0x253);function testDirFor(_0x2831e7){return''+E2E_SUBDIR+_0x2831e7;}__name(testDirFor,'testDirFor');function runsDirFor(_0x2e667a){return''+RUNS_SUBDIR+_0x2e667a;}__name(runsDirFor,_0x2c9187(0x235));function debugDirFor(_0x162f9f){const _0x28aa15={_0x32f737:0x254},_0x1ee580=_0x2c9187;return _0x1ee580(_0x28aa15._0x32f737)+_0x162f9f;}__name(debugDirFor,_0x2c9187(0x202));function debuggerFileFor(_0x21db78){const _0xe4e8f2=_0x2c9187;return UNOTEST_DIR+_0xe4e8f2(0x23e)+_0x21db78+_0xe4e8f2(0x24d);}__name(debuggerFileFor,_0x2c9187(0x22c));var LOCK_FILE=_0x2c9187(0x248),LOG_FILE='.viewer.log',STEPS_FILE='steps.jsonl',HEARTBEAT_FILE=_0x2c9187(0x25b),STDOUT_FILE=_0x2c9187(0x25a),STDERR_FILE=_0x2c9187(0x204),COMMANDS_FILE=_0x2c9187(0x1f1),RUNTIME_FILE=_0x2c9187(0x24c),PICKER_SNAPSHOT_FILE='picker-snapshot.txt',ENV_FILE=_0x2c9187(0x220),SECRETS_FILE=_0x2c9187(0x23a);function envFileFor(_0x46e0b8,_0x59681e){return''+ENV_FILE+_0x46e0b8+(_0x59681e?'.'+_0x59681e:'');}__name(envFileFor,_0x2c9187(0x1e4));function secretsFileFor(_0x29268a,_0x525f34){return''+SECRETS_FILE+_0x29268a+(_0x525f34?'.'+_0x525f34:'');}__name(secretsFileFor,_0x2c9187(0x210));function envLayerFilesFor(_0x57b3dc,_0x6ab19c){return layersFor(ENV_FILE,_0x57b3dc,_0x6ab19c);}function _0xb60b(_0x3fa7cc,_0x56dcbd){_0x3fa7cc=_0x3fa7cc-0x1df;const _0x4eea1c=_0x4eea();let _0xb60b52=_0x4eea1c[_0x3fa7cc];if(_0xb60b['UJYHyy']===undefined){var _0x145265=function(_0x1c481d){const _0x1c8818='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x7e944b='',_0x2c4df2='';for(let _0x3551c4=0x0,_0x1b086b,_0x484271,_0x2831e7=0x0;_0x484271=_0x1c481d['charAt'](_0x2831e7++);~_0x484271&&(_0x1b086b=_0x3551c4%0x4?_0x1b086b*0x40+_0x484271:_0x484271,_0x3551c4++%0x4)?_0x7e944b+=String['fromCharCode'](0xff&_0x1b086b>>(-0x2*_0x3551c4&0x6)):0x0){_0x484271=_0x1c8818['indexOf'](_0x484271);}for(let _0x2e667a=0x0,_0x162f9f=_0x7e944b['length'];_0x2e667a<_0x162f9f;_0x2e667a++){_0x2c4df2+='%'+('00'+_0x7e944b['charCodeAt'](_0x2e667a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2c4df2);};_0xb60b['uxUNUt']=_0x145265,_0xb60b['KIFTTb']={},_0xb60b['UJYHyy']=!![];}const _0x530720=_0x4eea1c[0x0],_0x5303dd=_0x3fa7cc+_0x530720,_0x29d621=_0xb60b['KIFTTb'][_0x5303dd];return!_0x29d621?(_0xb60b52=_0xb60b['uxUNUt'](_0xb60b52),_0xb60b['KIFTTb'][_0x5303dd]=_0xb60b52):_0xb60b52=_0x29d621,_0xb60b52;}__name(envLayerFilesFor,_0x2c9187(0x1ef));function secretsLayerFilesFor(_0x7f5d37,_0x5223b2){return layersFor(SECRETS_FILE,_0x7f5d37,_0x5223b2);}__name(secretsLayerFilesFor,'secretsLayerFilesFor');function layersFor(_0x27b855,_0x3271fe,_0x1b58f0){const _0x120892={_0x3ca1b8:0x250,_0x40cb86:0x250},_0x4e0b0d=_0x2c9187,_0xcb11e6=[_0x27b855];if(_0x3271fe)_0xcb11e6['push'](''+_0x27b855+_0x3271fe);if(_0x1b58f0){_0xcb11e6[_0x4e0b0d(_0x120892._0x3ca1b8)](_0x27b855+'.'+_0x1b58f0);if(_0x3271fe)_0xcb11e6[_0x4e0b0d(_0x120892._0x40cb86)](''+_0x27b855+_0x3271fe+'.'+_0x1b58f0);}return _0xcb11e6;}__name(layersFor,_0x2c9187(0x23f));function activeEnvName(_0x2d33b4){const _0x3b31bb={_0x56036a:0x1fb},_0x5e8e79=_0x2c9187,_0x21cd2a=_0x2d33b4[_0x5e8e79(_0x3b31bb._0x56036a)]?.[_0x5e8e79(0x25c)]();return _0x21cd2a?_0x21cd2a:void 0x0;}__name(activeEnvName,_0x2c9187(0x20e));function isRegexLiteral(_0x1c8323){const _0x1168bc={_0x86240:0x240,_0x4de7b5:0x24a,_0x5f4c44:0x207},_0xc5d474=_0x2c9187;return typeof _0x1c8323===_0xc5d474(_0x1168bc._0x86240)&&_0x1c8323!==null&&_0x1c8323[_0xc5d474(_0x1168bc._0x4de7b5)]===_0xc5d474(0x225)&&typeof _0x1c8323['source']===_0xc5d474(_0x1168bc._0x5f4c44)&&typeof _0x1c8323[_0xc5d474(0x1e0)]===_0xc5d474(_0x1168bc._0x5f4c44);}__name(isRegexLiteral,'isRegexLiteral');function regexLiteral(_0x366c0f,_0x5f9a2=''){return{'kind':'regex','source':_0x366c0f,'flags':_0x5f9a2};}__name(regexLiteral,_0x2c9187(0x221));var RAND_BYTES=0x6;function makeRunId(_0x1a11d2){const _0x383f38={_0x49517f:0x20d,_0x33d003:0x1e2,_0x1a842d:0x1e8},_0x2ea645=_0x2c9187,_0x5407e=sanitizeRunIdSegment(_0x1a11d2),_0xd2da88=Date[_0x2ea645(_0x383f38._0x49517f)]()['toString'](0x24),_0x2c36b0=new Uint8Array(RAND_BYTES);globalThis[_0x2ea645(_0x383f38._0x33d003)][_0x2ea645(_0x383f38._0x1a842d)](_0x2c36b0);let _0x1a18bf='';for(let _0x59a3b8=0x0;_0x59a3b8<_0x2c36b0['length'];_0x59a3b8++){_0x1a18bf+=_0x2c36b0[_0x59a3b8]['toString'](0x10)[_0x2ea645(0x217)](0x2,'0');}return _0x5407e+'-'+_0xd2da88+'-'+_0x1a18bf;}__name(makeRunId,_0x2c9187(0x22f));function sanitizeRunIdSegment(_0x598614){const _0x930a67={_0x10e7d1:0x260,_0xcf5b0f:0x1f6},_0x331364=_0x2c9187,_0xf5b206=_0x598614[_0x331364(_0x930a67._0x10e7d1)](/[^a-zA-Z0-9_-]+/g,'-')[_0x331364(0x260)](/-+/g,'-')[_0x331364(_0x930a67._0x10e7d1)](/^-|-$/g,'');return _0xf5b206[_0x331364(_0x930a67._0xcf5b0f)]>0x0?_0xf5b206:_0x331364(0x1fa);}__name(sanitizeRunIdSegment,_0x2c9187(0x1e3));var FS_UNSAFE_NAME_RE=/[\\/:*?"<>|\x00-\x1f]/;function validateFsSafeName(_0x32aa53,_0x3a099e){const _0x43e2f0={_0x36bf03:0x207,_0x1cc1fe:0x209,_0x6999e:0x25c,_0x5e0a41:0x1ed,_0x473288:0x21c,_0x41e237:0x236,_0x111ebd:0x219},_0x45a3e2=_0x2c9187;if(typeof _0x32aa53!==_0x45a3e2(_0x43e2f0._0x36bf03))return _0x45a3e2(_0x43e2f0._0x1cc1fe);const _0x235950=_0x32aa53[_0x45a3e2(_0x43e2f0._0x6999e)]();if(_0x235950[_0x45a3e2(0x1f6)]===0x0)return _0x45a3e2(_0x43e2f0._0x5e0a41);if(_0x235950==='.'||_0x235950==='..')return'must\x20not\x20be\x20\x22.\x22\x20or\x20\x22..\x22';if(_0x235950['startsWith']('.'))return'must\x20not\x20start\x20with\x20\x27.\x27';if(_0x3a099e?.[_0x45a3e2(_0x43e2f0._0x473288)]&&_0x235950[_0x45a3e2(0x258)]('_'))return _0x45a3e2(0x1e7);if(FS_UNSAFE_NAME_RE[_0x45a3e2(_0x43e2f0._0x41e237)](_0x235950))return _0x45a3e2(_0x43e2f0._0x111ebd);return null;}__name(validateFsSafeName,_0x2c9187(0x251));var COLLECTION_NAME_FORBIDDEN_RE=FS_UNSAFE_NAME_RE;function validateCollectionName(_0x2c7074){return validateFsSafeName(_0x2c7074);}function _0x4eea(){const _0x30f3f6=['mJq2otiXEgPQreDW','CNvU','vu5pvevtvf9ftLy','zw52','AxnbC3nPz25Tzw50tgLUzq','vu5pvevtvf9erujvr19lruvqx0nbteXt','BMfTzq','yxbWlxnLCNzLCJPYzxvZzwq','ztjL','zgvIDwDeAxjgB3i','mtm0mZa5t1LPrMru','C3rKzxjYlMXVzW','x2HLBhbLCNm','mZa4ntq3mLj4r1rPBG','C3rYAw5N','mty5mJaYndbYuLHVvwC','BxvZDcbIzsbHihn0CMLUzW','rK9sq0vFq09mt1i','otKXote4ofLZzMj5DW','CNvUBMvYici','BM93','ywn0AxzLrw52tMfTzq','DMfSAwrHDgvdB2XSzwn0Aw9UtMfTzq','C2vJCMv0C0zPBgvgB3i','zw52q29UDgvUDa','Aw5KzxHpzG','y2fUBM90igXVywqGCNvUBMvYigfKyxb0zxiGiG','vu5pvevtvf9mt0DFtevwruW','zgvMAw5LuhjVCgvYDhK','mZeYuevfzvbK','CgfKu3rHCNq','Dw5RBM93BI1YDw5UzxiTA2v5','BxvZDcbUB3qGy29UDgfPBIbCic8GoIaQid8GiIa8id4GFcbVCIbJB250CM9SignOyxjHy3rLCNm','vu5pvevtvf9qt1bvuf9huKfdrv9nuW','CMvTB3zLrw52vMfY','CMvZzxj2zwrvBMrLCNnJB3jL','iokaLcbWAwnRigeGzgLMzMvYzw50ig5HBwuGB3iGzwrPDcb0AguGzxHPC3rPBMCGDMfSDwuU','C291CMnL','igLZig5VDcbHigTUB3DUihj1BM5LCIbZzxr0Aw5NiokaLcbJAg9VC2uGB25LigzYB20GDgHLihj1BM5LCI1JB25MAwCGBgLZDc4','Dw5VDgvZDc8Uzw52','CMvNzxHmAxrLCMfS','AxnsDw5UzxjdB25MAwDlzxK','y2f0zwDVCML6zvzHCMLHyMXL','iIbKB2vZig5VDcbZDxbWB3j0ihj1BIbRAw5Kici','CMvNzxG','igLZigfSC28GC2v0igLUihvUB3rLC3qVlNnLy3jLDhmG4OcuihrOzsbZzwnYzxqGDMfSDwuGC2HHzg93CYb0AgLZig9Uzs4','vw5ZDxbWB3j0zwrsDw5lAw5KrxjYB3i','zgvSzxrLu2HHzg93v2fYBMLUzW','C2vJCMv0C0nVBNrLBNq','vu5pvevtvf9erujvr19ive1mx01bwf9cwvrfuW','iI4G','zgvIDwDNzxjgAwXLrM9Y','Aw5Zzxj0rw52vMfY','zhvWBgLJyxrL','BwfRzvj1BKLK','BwfUAwzLC3qUANnVBG','zMfPBgvK','mtrTCfbVBvq','C3bSAxrmAw5LCW','igLZigfSC28GC2v0igLUihLVDxiGC2HLBgWGzw52AxjVBM1LBNqG4OcuigL0ihDPBgWGA2vLCcbYzxnVBhzPBMCGzNjVBsb0AgvYzsaODgHLigvUDMLYB25Tzw50ihDPBNmGB3zLCIb0AguGzMLSzsKU','CNvUC0rPCKzVCG','DgvZDa','zw52s2v5CW','CNvUBMvY','qxbW','Dw5VDgvZDc8UC2vJCMv0CW','vu5pvevtvf9dt05tt0Xf','C3bSAwnL','nfLsq1fZEG','lY5Kzwj1z2DLCG','Bgf5zxjZrM9Y','B2jQzwn0','vu5pvevtvf9iruferuq','Aw52ywXPzc1Uyw1L','uNvUBMvYqwrHChrLCK5VDezVDw5KrxjYB3i','zw5KC1DPDgG','AxnuzxjTAw5HBfj1BNrPBwvtDgf0zq','yxbWlxnLCNzLCJPLCNjVCG','C3bSAxq','lNzPzxDLCI5SB2nR','igfSCMvHzhKGzxHPC3rZigLUia','A2LUza','AgfZ','CNvUDgLTzs5QC29U','lMPZB24','CgfYC2vbChbtzxj2zxjfDMvUDa','C2vJCMv0CW','ChvZAa','DMfSAwrHDgvgC1nHzMvoyw1L','Aw5JBhvKzxm','lNnUyxbZAg90CW','lMrLyNvN','vu5pvevtvf9tte9xx01p','uNvUBMvY','uNvUBMvYtM90q29UzMLNDxjLzevYCM9Y','C3rHCNrZv2L0Aa','C2vJCMv0','C3rKB3v0lMXVzW','AgvHCNrIzwf0','DhjPBq','CgfYC2u','AM9PBKXPBMvZ','ote1otbgsgvHt1O','CMvWBgfJzq','x2nVBgXLy3rPB25Z','zMXHz3m','C291CMnLCY5QC29U','y3j5ChrV','C2fUAxrPEMvsDw5jzfnLz21LBNq','zw52rMLSzuzVCG','vu5pvevtvf9eruzbvuXux1rjtuvpvvrFtvm','Dg9mB3DLCKnHC2u','BxvZDcbUB3qGC3rHCNqGD2L0AcaNxYCGkhjLC2vYDMvKkq','z2v0uMfUzg9TvMfSDwvZ','DgvYBwLUywW','vu5pvevtvf9mt0nbteu','ic0Tlq','yxbW','BxvZDcbUB3qGyMuGzw1WDhK','ig11C3qGyMuGvvbqrvjFu05bs0uGkguUzY4Gqvbqx0jbu0vFvvjmksbZBYbHihnJzw5HCMLVignHBIbYzwzLCMvUy2uGAxqGyNKGBMfTzs4','zw52tgf5zxjgAwXLC0zVCG','y29TCgXLDgvK','y29TBwfUzhmUANnVBMW','vu5pvevtvf9erujvr19esvi','C2XPy2u','vu5pvevtvf9erujvrW','AM9PBG','BgvUz3rO','refuqujbu0vFvvjm','mJmXndC0meXjD2H4vG'];_0x4eea=function(){return _0x30f3f6;};return _0x4eea();}__name(validateCollectionName,_0x2c9187(0x20f));var RUN_MANIFEST_FILE=_0x2c9187(0x230),RUN_SOURCES_FILE=_0x2c9187(0x1e1),UnsupportedRunKindError=class extends Error{static{__name(this,'UnsupportedRunKindError');}constructor(_0x383af4,_0x1a65dc){const _0x960974={_0x1356a7:0x1ff},_0x49ccbf=_0x2c9187;super(_0x49ccbf(0x20c)+_0x1a65dc+_0x49ccbf(0x224)+_0x383af4+'\x22'),this[_0x49ccbf(_0x960974._0x1356a7)]=_0x49ccbf(0x227);}},RunnerAdapterNotFoundError=class extends Error{static{__name(this,_0x2c9187(0x243));}constructor(_0x293d4c,_0xe5748a){const _0x10e5b4={_0x3ac4b5:0x213,_0x6e5242:0x22b},_0x35cd7e=_0x2c9187;super(_0x35cd7e(_0x10e5b4._0x3ac4b5)+_0x293d4c+_0x35cd7e(_0x10e5b4._0x6e5242)+_0xe5748a),this[_0x35cd7e(0x1ff)]=_0x35cd7e(0x243);}},RunnerNotConfiguredError=class extends Error{static{__name(this,'RunnerNotConfiguredError');}constructor(_0x2c1764){const _0x32c907=_0x2c9187;super(_0x2c1764),this['name']=_0x32c907(0x257);}},SEGMENT_NAME_FORBIDDEN_RE=FS_UNSAFE_NAME_RE;function validateSegmentName(_0xf54f9c){return validateFsSafeName(_0xf54f9c,{'reservedUnderscore':!![]});}__name(validateSegmentName,'validateSegmentName');var TERMINAL_WS_EVENT=_0x2c9187(0x1e9),RUNNER_CONFIG_KEYS=new Set(['UNOTEST_BROWSER',_0x2c9187(0x241),_0x2c9187(0x255),_0x2c9187(0x1e5),'UNOTEST_DEFAULT_NAVIGATION_TIMEOUT_MS',_0x2c9187(0x21a),_0x2c9187(0x1ea),'UNOTEST_TIMEZONE',_0x2c9187(0x214),_0x2c9187(0x1f4),_0x2c9187(0x1f2),'UNOTEST_DEBUG_MAX_BYTES','UNOTEST_DEBUG_PREVIEW_BYTES',_0x2c9187(0x22a),_0x2c9187(0x1fe),'UNOTEST_NETWORK',_0x2c9187(0x23b),'UNOTEST_CACHE_DIR','NO_COLOR',_0x2c9187(0x20a),_0x2c9187(0x1f7)]);function isRunnerConfigKey(_0xf1f044){const _0x210f4a={_0x33898b:0x24b},_0x25fef4=_0x2c9187;return RUNNER_CONFIG_KEYS[_0x25fef4(_0x210f4a._0x33898b)](_0xf1f044);}__name(isRunnerConfigKey,_0x2c9187(0x222));function categorizeVariable(_0xc2ae14){const _0x3e9b50={_0x11a77e:0x21e,_0x50983d:0x259,_0x3327a0:0x238,_0x786ef3:0x1ec},_0x3ef31b=_0x2c9187;if(_0xc2ae14[_0x3ef31b(_0x3e9b50._0x11a77e)]==='secrets')return _0x3ef31b(_0x3e9b50._0x50983d);return isRunnerConfigKey(_0xc2ae14[_0x3ef31b(0x1ff)])?_0x3ef31b(_0x3e9b50._0x3327a0):_0x3ef31b(_0x3e9b50._0x786ef3);}__name(categorizeVariable,_0x2c9187(0x223));function isExternalVarName(_0x1d8f15){const _0x431000={_0x87da0a:0x236},_0x32b30e=_0x2c9187;return/^[A-Z][A-Z0-9_]*$/[_0x32b30e(_0x431000._0x87da0a)](_0x1d8f15);}__name(isExternalVarName,'isExternalVarName');var ENV_KEY_RE=/^[A-Za-z_][A-Za-z0-9_]*$/;function*assignmentEntries(_0x29cedf){const _0x19d719={_0x59a102:0x258,_0x106095:0x1f3,_0x376304:0x236,_0x191e32:0x1f3},_0x3874f1=_0x2c9187;for(const _0x508d86 of _0x29cedf['split'](/\r?\n/)){const _0x28835d=_0x508d86['trim']();if(_0x28835d===''||_0x28835d[_0x3874f1(_0x19d719._0x59a102)]('#'))continue;const _0x48f11d=_0x28835d['indexOf']('=');if(_0x48f11d<=0x0)continue;const _0x12c741=_0x28835d[_0x3874f1(_0x19d719._0x106095)](0x0,_0x48f11d)[_0x3874f1(0x25c)]();if(!ENV_KEY_RE[_0x3874f1(_0x19d719._0x376304)](_0x12c741))continue;yield[_0x12c741,_0x28835d[_0x3874f1(_0x19d719._0x191e32)](_0x48f11d+0x1)[_0x3874f1(0x25c)]()];}}__name(assignmentEntries,'assignmentEntries');function parseEnvContent(_0x49db91){const _0x5c911b={_0x11b55b:0x1f3},_0x3a4827=_0x2c9187,_0x583594={};for(const [_0x2b55fc,_0x587015]of assignmentEntries(_0x49db91)){let _0x50e647=_0x587015;if(_0x50e647[_0x3a4827(0x1f6)]>=0x2){const _0x53e761=_0x50e647[0x0],_0x3e18cb=_0x50e647[_0x50e647['length']-0x1];(_0x53e761==='\x22'||_0x53e761==='\x27')&&_0x53e761===_0x3e18cb&&(_0x50e647=_0x50e647[_0x3a4827(_0x5c911b._0x11b55b)](0x1,-0x1));}_0x583594[_0x2b55fc]=_0x50e647;}return _0x583594;}__name(parseEnvContent,'parseEnvContent');function serializeEnvValue(_0x3f0d95){const _0x501550={_0x556038:0x260,_0x3c445e:0x260},_0x4d93cd=_0x2c9187;if(_0x3f0d95==='')return'';if(/[\s#"'=\\]|^[`]/[_0x4d93cd(0x236)](_0x3f0d95)||/[\n\r]/[_0x4d93cd(0x236)](_0x3f0d95)){const _0x3d5fc7=_0x3f0d95[_0x4d93cd(_0x501550._0x556038)](/\\/g,'\x5c\x5c')[_0x4d93cd(0x260)](/"/g,'\x5c\x22')[_0x4d93cd(0x260)](/\n/g,'\x5cn')[_0x4d93cd(_0x501550._0x3c445e)](/\r/g,'\x5cr');return'\x22'+_0x3d5fc7+'\x22';}return _0x3f0d95;}__name(serializeEnvValue,'serializeEnvValue');function envKeys(_0x11c035){const _0x3b5d6e=new Set();for(const [_0x41b38d]of assignmentEntries(_0x11c035))_0x3b5d6e['add'](_0x41b38d);return _0x3b5d6e;}__name(envKeys,_0x2c9187(0x237));function isSectionDivider(_0x25c248){const _0x560743={_0x9489c8:0x25c,_0x138b20:0x258,_0x3cbbdd:0x236},_0x12737b=_0x2c9187,_0x2ddcb3=_0x25c248[_0x12737b(_0x560743._0x9489c8)]();return _0x2ddcb3[_0x12737b(_0x560743._0x138b20)]('#')&&/---/[_0x12737b(_0x560743._0x3cbbdd)](_0x2ddcb3);}__name(isSectionDivider,'isSectionDivider');function isAssignmentLine(_0x575538){const _0x307ed5={_0x59ba93:0x25c,_0x452ff3:0x258},_0x217f87=_0x2c9187,_0x1bfe12=_0x575538[_0x217f87(_0x307ed5._0x59ba93)]();if(_0x1bfe12===''||_0x1bfe12[_0x217f87(_0x307ed5._0x452ff3)]('#'))return![];const _0x5edafe=_0x1bfe12[_0x217f87(0x212)]('=');return _0x5edafe>0x0&&ENV_KEY_RE[_0x217f87(0x236)](_0x1bfe12['slice'](0x0,_0x5edafe)[_0x217f87(0x25c)]());}__name(isAssignmentLine,_0x2c9187(0x1fd));function isAssignmentOf(_0x58e959,_0x35c0d3){const _0x46ed07={_0x25cde7:0x25c},_0x2ae507=_0x2c9187,_0x4a783d=_0x58e959[_0x2ae507(0x25c)]();if(_0x4a783d===''||_0x4a783d['startsWith']('#'))return![];const _0x546c65=_0x4a783d[_0x2ae507(0x212)]('=');if(_0x546c65<=0x0)return![];return _0x4a783d['slice'](0x0,_0x546c65)[_0x2ae507(_0x46ed07._0x25cde7)]()===_0x35c0d3;}__name(isAssignmentOf,'isAssignmentOf');function splitLines(_0x36ee43){const _0xda5b58={_0x4c2d72:0x244},_0x176bde=_0x2c9187,_0x12375c=_0x36ee43[_0x176bde(_0xda5b58._0x4c2d72)]('\x0a'),_0x1a37af=_0x12375c?_0x36ee43['slice'](0x0,-0x1):_0x36ee43;return{'lines':_0x1a37af===''?[]:_0x1a37af[_0x176bde(0x247)]('\x0a'),'trailingNewline':_0x12375c};}__name(splitLines,_0x2c9187(0x233));function joinLines(_0x8bc3f,_0x131fb6){const _0x4af43e=_0x2c9187,_0x517956=_0x8bc3f[_0x4af43e(0x1f5)]('\x0a');return _0x131fb6||_0x517956===''?_0x517956+'\x0a':_0x517956;}__name(joinLines,_0x2c9187(0x25e));function insertEnvVar(_0x240ebe,_0x1c9ad0,_0x5aee52,_0x30002c){const _0x6ab622={_0x45c110:0x1f6,_0x1fa639:0x25c,_0x4a7784:0x23c,_0x588726:0x250,_0x5baf15:0x1eb,_0x1849ad:0x250},_0xa3609c=_0x2c9187,_0x523dff=_0x1c9ad0+'='+serializeEnvValue(_0x5aee52),{lines:_0x4cdf95,trailingNewline:_0xaa45c0}=splitLines(_0x240ebe);if(_0x30002c){const _0x2c50a6=new RegExp('\x5cb'+_0x30002c[_0xa3609c(0x1e6)]()+'\x5cb'),_0x5b884a=_0x4cdf95['findIndex'](_0xc527c1=>isSectionDivider(_0xc527c1)&&_0x2c50a6['test'](_0xc527c1[_0xa3609c(0x1e6)]()));if(_0x5b884a!==-0x1){let _0x149282=_0x4cdf95[_0xa3609c(0x1f6)];for(let _0xb26406=_0x5b884a+0x1;_0xb26406<_0x4cdf95[_0xa3609c(_0x6ab622._0x45c110)];_0xb26406++){if(isSectionDivider(_0x4cdf95[_0xb26406])){_0x149282=_0xb26406;break;}}let _0x71ca9b=-0x1,_0x4ad93d=-0x1;for(let _0x1b6da1=_0x5b884a+0x1;_0x1b6da1<_0x149282;_0x1b6da1++){if(_0x4cdf95[_0x1b6da1][_0xa3609c(_0x6ab622._0x1fa639)]()!=='')_0x4ad93d=_0x1b6da1;if(isAssignmentLine(_0x4cdf95[_0x1b6da1]))_0x71ca9b=_0x1b6da1;}const _0x38f3a8=_0x71ca9b>=0x0?_0x71ca9b:_0x4ad93d,_0x296021=_0x38f3a8>=0x0?_0x38f3a8+0x1:_0x5b884a+0x1;return _0x4cdf95[_0xa3609c(_0x6ab622._0x4a7784)](_0x296021,0x0,_0x523dff),joinLines(_0x4cdf95,_0xaa45c0||_0x4cdf95[_0xa3609c(0x1f6)]>0x0);}if(_0x4cdf95[_0xa3609c(0x1f6)]>0x0)_0x4cdf95[_0xa3609c(0x250)]('');return _0x4cdf95[_0xa3609c(_0x6ab622._0x588726)]('#\x20---\x20'+_0x30002c+_0xa3609c(_0x6ab622._0x5baf15),_0x523dff),joinLines(_0x4cdf95,!![]);}return _0x4cdf95[_0xa3609c(_0x6ab622._0x1849ad)](_0x523dff),joinLines(_0x4cdf95,!![]);}__name(insertEnvVar,_0x2c9187(0x22d));function removeEnvVar(_0x5c7b26,_0x1a657c){const _0x502ffa=_0x2c9187,{lines:_0x3dd9b5,trailingNewline:_0x3b4279}=splitLines(_0x5c7b26),_0x50e7c9=_0x3dd9b5['filter'](_0x4075e0=>!isAssignmentOf(_0x4075e0,_0x1a657c)),_0x54c8b3=_0x50e7c9[_0x502ffa(0x1f6)]!==_0x3dd9b5[_0x502ffa(0x1f6)];return{'content':joinLines(_0x50e7c9,_0x3b4279),'removed':_0x54c8b3};}__name(removeEnvVar,_0x2c9187(0x21b));var SECTION_BY_KIND={'app':_0x2c9187(0x239),'runner':_0x2c9187(0x256),'secret':void 0x0};function planAddVariable(_0x3903b4){const _0x4c3ac9={_0xee258f:0x21f,_0x3eb570:0x242,_0x1c4439:0x1ee,_0x522172:0x211,_0x36f8fa:0x1fc,_0x3cc94d:0x24f,_0x59bac0:0x22e,_0x57efe5:0x249,_0x47bbe1:0x21d,_0x112f79:0x250,_0x417fc2:0x226},_0x3f13fe=_0x2c9187,{name:_0x419d02,kind:_0x1974ec}=_0x3903b4;if(_0x1974ec===_0x3f13fe(0x238)){if(!isRunnerConfigKey(_0x419d02))return{'ok':![],'code':_0x3f13fe(0x218),'message':_0x419d02+_0x3f13fe(_0x4c3ac9._0xee258f)};}else{if(!isExternalVarName(_0x419d02))return{'ok':![],'code':_0x3f13fe(_0x4c3ac9._0x3eb570),'message':_0x419d02+_0x3f13fe(_0x4c3ac9._0x1c4439)};}const _0x39a048=envKeys(_0x3903b4[_0x3f13fe(_0x4c3ac9._0x522172)])[_0x3f13fe(0x24b)](_0x419d02),_0x476b4d=envKeys(_0x3903b4[_0x3f13fe(0x229)])['has'](_0x419d02),_0x5f3cfd=_0x1974ec==='secret'?'secrets':_0x3f13fe(_0x4c3ac9._0x36f8fa),_0x2bcc26=_0x5f3cfd===_0x3f13fe(_0x4c3ac9._0x3cc94d)?_0x476b4d:_0x39a048,_0x191fa9=_0x5f3cfd===_0x3f13fe(0x24f)?_0x3f13fe(0x23a):_0x3f13fe(0x220);if(_0x2bcc26)return{'ok':![],'code':_0x3f13fe(_0x4c3ac9._0x59bac0),'message':_0x419d02+_0x3f13fe(_0x4c3ac9._0x57efe5)+_0x191fa9+_0x3f13fe(_0x4c3ac9._0x47bbe1)};const _0x11d43e=[];return _0x1974ec===_0x3f13fe(0x259)&&_0x39a048&&_0x11d43e[_0x3f13fe(_0x4c3ac9._0x112f79)](_0x419d02+'\x20is\x20also\x20set\x20in\x20unotest/.env\x20—\x20the\x20secret\x20value\x20now\x20shadows\x20it.'),_0x1974ec!==_0x3f13fe(0x259)&&_0x476b4d&&_0x11d43e[_0x3f13fe(_0x4c3ac9._0x112f79)](_0x419d02+_0x3f13fe(_0x4c3ac9._0x417fc2)),{'ok':!![],'target':_0x5f3cfd,'sectionLabel':SECTION_BY_KIND[_0x1974ec],'warnings':_0x11d43e};}__name(planAddVariable,'planAddVariable');function deleteShadowWarning(_0x10b79e,_0x32a03e,_0x591010){const _0x401ec4={_0x36d7b7:0x234},_0x1721e4=_0x2c9187;if(_0x591010!==void 0x0&&_0x591010!==_0x32a03e)return[_0x10b79e+_0x1721e4(_0x401ec4._0x36d7b7)];return[];}__name(deleteShadowWarning,_0x2c9187(0x228));var TERMINAL_RUNTIME_STATES=[_0x2c9187(0x1f0),_0x2c9187(0x231),'aborted'];function isTerminalRuntimeState(_0x489e8f){const _0x268f1d=_0x2c9187;return TERMINAL_RUNTIME_STATES[_0x268f1d(0x252)](_0x489e8f);}__name(isTerminalRuntimeState,_0x2c9187(0x245));export{COLLECTIONS_SUBDIR,COLLECTION_NAME_FORBIDDEN_RE,COMMANDS_FILE,E2E_SUBDIR,ENV_FILE,HEARTBEAT_FILE,HELPERS_SUBDIR,LOCK_FILE,LOG_FILE,PICKER_SNAPSHOT_FILE,RUNNER_CONFIG_KEYS,RUNS_SUBDIR,RUNTIME_FILE,RUN_MANIFEST_FILE,RUN_SOURCES_FILE,RunnerAdapterNotFoundError,RunnerNotConfiguredError,SECRETS_FILE,SEGMENT_NAME_FORBIDDEN_RE,SNAPSHOTS_SUBDIR,STDERR_FILE,STDOUT_FILE,STEPS_FILE,TERMINAL_RUNTIME_STATES,TERMINAL_WS_EVENT,UNOTEST_DIR,UnsupportedRunKindError,activeEnvName,categorizeVariable,debugDirFor,debuggerFileFor,deleteShadowWarning,envFileFor,envKeys,envLayerFilesFor,insertEnvVar,isExternalVarName,isRegexLiteral,isRunnerConfigKey,isTerminalRuntimeState,makeRunId,parseAppServerEvent,parseEnvContent,planAddVariable,regexLiteral,removeEnvVar,runsDirFor,sanitizeRunIdSegment,secretsFileFor,secretsLayerFilesFor,serializeEnvValue,testDirFor,validateCollectionName,validateSegmentName};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unotest/protocol",
3
- "version": "0.16.0",
3
+ "version": "0.18.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": {