@unotest/protocol 0.5.0 → 0.6.2

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
@@ -2,6 +2,29 @@
2
2
 
3
3
  All notable changes to `@unotest/protocol` are documented in this file.
4
4
 
5
+ ## [0.6.2] - 2026-06-05
6
+
7
+ Maintenance release: version bump to keep the `@unotest` ecosystem in
8
+ lockstep. No functional or API changes since 0.6.1.
9
+
10
+ ## [0.6.1] - 2026-06-03
11
+
12
+ ### Added
13
+
14
+ - `RunSources` type and the `RUN_SOURCES_FILE` (`sources.json`) constant —
15
+ a per-run snapshot of the executed scenario sources (entry plus every
16
+ loaded helper), so consumers render a run against the code that actually
17
+ ran rather than the current on-disk file.
18
+ - `file` field on `StepStartedEvent` and `PausedEvent` — a
19
+ project-root-relative posix path that keys into the run's `sources.json`.
20
+
21
+ ### Changed (BREAKING)
22
+
23
+ - `StepStartedEvent` no longer carries the inline `text` of the statement.
24
+ The executed source is now referenced via `file` + `sources.json` and
25
+ sliced by `line`. Consumers that read `StepStartedEvent.text` must
26
+ resolve the line from the source snapshot instead.
27
+
5
28
  ## [0.5.0] - 2026-05-29
6
29
 
7
30
  Initial release. Shared protocol types and contracts for the `@unotest`
package/dist/index.d.ts CHANGED
@@ -169,6 +169,17 @@ interface RunManifest {
169
169
  startedAt: number;
170
170
  }
171
171
 
172
+ /** Snapshot file holding entry + every helper source that was loaded. */
173
+ declare const RUN_SOURCES_FILE = "sources.json";
174
+ interface RunSources {
175
+ /** Project-root-relative posix path of the entry scenario file,
176
+ * e.g. `unotest/e2e/foo.test.js`. Also a key in `files`. */
177
+ entry: string;
178
+ /** Project-root-relative posix path → full source text. Includes the
179
+ * entry file and every helper file pulled in by the loader. */
180
+ files: Record<string, string>;
181
+ }
182
+
172
183
  /** The argv/env builder for a specific runner CLI. Pure functions —
173
184
  * no spawning, no fs access. The viewer owns the actual subprocess
174
185
  * lifecycle; the adapter merely tells it WHAT to spawn. */
@@ -333,12 +344,14 @@ interface RunStartedEvent extends RunArtifactBase {
333
344
  }
334
345
  interface StepStartedEvent extends RunArtifactBase {
335
346
  kind: "step:started";
347
+ /** Project-root-relative posix path of the file this step lives in
348
+ * (entry or a helper). Matches a key in the run's `sources.json`.
349
+ * The viewer slices the source text by `line` from the snapshot. */
350
+ file: string;
336
351
  /** Line number of the DSL call in the source file (1-indexed). */
337
352
  line: number;
338
353
  /** Column number (0-indexed). */
339
354
  col: number;
340
- /** Source text of the statement (e.g. `goto("https://…")`). */
341
- text: string;
342
355
  }
343
356
  interface StepOkEvent extends RunArtifactBase {
344
357
  kind: "step:ok";
@@ -396,6 +409,9 @@ interface RunFinishedEvent extends RunArtifactBase {
396
409
  interface PausedEvent extends RunArtifactBase {
397
410
  kind: "paused";
398
411
  reason: "breakpoint" | "step" | "failure";
412
+ /** Project-root-relative posix path of the file the pause point lives
413
+ * in (entry or a helper). Matches a key in the run's `sources.json`. */
414
+ file: string;
399
415
  line: number;
400
416
  col: number;
401
417
  /** Inline snapshot of the runtime state at the pause point. `vars` is
@@ -663,4 +679,4 @@ interface RuntimeStateFile {
663
679
  updatedAt: number;
664
680
  }
665
681
 
666
- export { type BreakpointEntry, type BreakpointsFile, COLLECTIONS_SUBDIR, COLLECTION_NAME_FORBIDDEN_RE, COMMANDS_FILE, type CollectionMeta, type CollectionRunArtifact, type CollectionRunFinishedEvent, type CollectionRunRequest, type CollectionRunStartedEvent, type CollectionRunTab, type CollectionScenarioFinishedEvent, type CollectionScenarioStartedEvent, type CollectionTab, DEBUGGER_FILE, type DbgCommand, type DbgCommandAbort, type DbgCommandClearBp, type DbgCommandContinue, type DbgCommandKind, type DbgCommandPause, type DbgCommandSetBp, type DbgCommandStep, E2E_SUBDIR, ENV_FILE, 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 IRunnerAdapter, LOCK_FILE, LOG_FILE, type LockFile, type LogLineMessage, type Matcher, type PausedEvent, RUNS_SUBDIR, RUNTIME_FILE, RUN_MANIFEST_FILE, type RegexLiteral, type ResumedEvent, type RunArtifact, type RunFinishedEvent, type RunId, type RunKind, type RunManifest, type RunMeta, type RunOutcome, type RunRequest, type RunStartedEvent, type RunStatus, RunnerAdapterNotFoundError, RunnerNotConfiguredError, type RuntimeState, type RuntimeStateFile, STDERR_FILE, STDOUT_FILE, STEPS_FILE, type ScenarioMeta, type ScenarioRunRequest, type ScenarioRunTab, type ScenarioTab, type ScreenshotEvent, type StepFailEvent, type StepOkEvent, type StepStartedEvent, 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, UNOTEST_DIR, UnsupportedRunKindError, type WsMessage, type WsMessageKind, isRegexLiteral, makeRunId, regexLiteral, sanitizeRunIdSegment, validateCollectionName };
682
+ export { type BreakpointEntry, type BreakpointsFile, COLLECTIONS_SUBDIR, COLLECTION_NAME_FORBIDDEN_RE, COMMANDS_FILE, type CollectionMeta, type CollectionRunArtifact, type CollectionRunFinishedEvent, type CollectionRunRequest, type CollectionRunStartedEvent, type CollectionRunTab, type CollectionScenarioFinishedEvent, type CollectionScenarioStartedEvent, type CollectionTab, DEBUGGER_FILE, type DbgCommand, type DbgCommandAbort, type DbgCommandClearBp, type DbgCommandContinue, type DbgCommandKind, type DbgCommandPause, type DbgCommandSetBp, type DbgCommandStep, E2E_SUBDIR, ENV_FILE, 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 IRunnerAdapter, LOCK_FILE, LOG_FILE, type LockFile, type LogLineMessage, type Matcher, type PausedEvent, RUNS_SUBDIR, RUNTIME_FILE, RUN_MANIFEST_FILE, RUN_SOURCES_FILE, type RegexLiteral, type ResumedEvent, type RunArtifact, type RunFinishedEvent, type RunId, type RunKind, type RunManifest, type RunMeta, type RunOutcome, type RunRequest, type RunSources, type RunStartedEvent, type RunStatus, RunnerAdapterNotFoundError, RunnerNotConfiguredError, type RuntimeState, type RuntimeStateFile, STDERR_FILE, STDOUT_FILE, STEPS_FILE, type ScenarioMeta, type ScenarioRunRequest, type ScenarioRunTab, type ScenarioTab, type ScreenshotEvent, type StepFailEvent, type StepOkEvent, type StepStartedEvent, 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, UNOTEST_DIR, UnsupportedRunKindError, type WsMessage, type WsMessageKind, isRegexLiteral, makeRunId, regexLiteral, sanitizeRunIdSegment, validateCollectionName };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var _0x4525cf=_0x4e04;(function(_0x5d6d49,_0x1dfb67){var _0x2c662e={_0x34fbd2:0x174},_0x10ba75=_0x4e04,_0x32a0df=_0x5d6d49();while(!![]){try{var _0x2391dd=-parseInt(_0x10ba75(0x178))/0x1*(parseInt(_0x10ba75(0x192))/0x2)+-parseInt(_0x10ba75(0x183))/0x3+parseInt(_0x10ba75(0x176))/0x4*(parseInt(_0x10ba75(0x193))/0x5)+parseInt(_0x10ba75(0x17a))/0x6+-parseInt(_0x10ba75(0x18e))/0x7+parseInt(_0x10ba75(0x180))/0x8+parseInt(_0x10ba75(_0x2c662e._0x34fbd2))/0x9;if(_0x2391dd===_0x1dfb67)break;else _0x32a0df['push'](_0x32a0df['shift']());}catch(_0x347c47){_0x32a0df['push'](_0x32a0df['shift']());}}}(_0x1828,0xcefba));var __defProp=Object[_0x4525cf(0x17e)],__name=(_0x1dec4e,_0x3c2462)=>__defProp(_0x1dec4e,_0x4525cf(0x189),{'value':_0x3c2462,'configurable':!![]}),UNOTEST_DIR=_0x4525cf(0x17f),E2E_SUBDIR=_0x4525cf(0x19d),HELPERS_SUBDIR=_0x4525cf(0x19a),COLLECTIONS_SUBDIR='_collections',RUNS_SUBDIR=_0x4525cf(0x195),LOCK_FILE=_0x4525cf(0x186),LOG_FILE=_0x4525cf(0x17b),STEPS_FILE=_0x4525cf(0x191),HEARTBEAT_FILE='heartbeat',STDOUT_FILE=_0x4525cf(0x19c),STDERR_FILE=_0x4525cf(0x175),COMMANDS_FILE='commands.jsonl',RUNTIME_FILE='runtime.json',DEBUGGER_FILE=_0x4525cf(0x1a1),ENV_FILE=_0x4525cf(0x199);function isRegexLiteral(_0xa7c839){var _0x20ac3a={_0x44f337:0x18d,_0x2eaa9d:0x19f,_0x3e8409:0x196},_0x59e1c8=_0x4525cf;return typeof _0xa7c839==='object'&&_0xa7c839!==null&&_0xa7c839[_0x59e1c8(_0x20ac3a._0x44f337)]===_0x59e1c8(0x194)&&typeof _0xa7c839[_0x59e1c8(_0x20ac3a._0x2eaa9d)]===_0x59e1c8(0x187)&&typeof _0xa7c839[_0x59e1c8(_0x20ac3a._0x3e8409)]===_0x59e1c8(0x187);}__name(isRegexLiteral,'isRegexLiteral');function regexLiteral(_0x1f5378,_0x274fdd=''){return{'kind':'regex','source':_0x1f5378,'flags':_0x274fdd};}function _0x1828(){var _0x10562d=['y2fUBM90igXVywqGCNvUBMvYigfKyxb0zxiGiG','BgvUz3rO','zgvMAw5LuhjVCgvYDhK','Dw5VDgvZDa','oteXnZeZnKjNAfrpEa','DgvYBwLUywW','uNvUBMvYtM90q29UzMLNDxjLzevYCM9Y','ndm3mdqZzfvyuhj4','DhjPBq','BxvZDcbUB3qGyMuGiI4Iig9YiciUlIi','lNzPzxDLCI5SB2nR','C3rYAw5N','BxvZDcbUB3qGyMuGzw1WDhK','BMfTzq','BwfUAwzLC3qUANnVBG','iI4G','BwfRzvj1BKLK','A2LUza','mte3mJGZmZjSrwrjz0i','CNvU','CMvWBgfJzq','C3rLChmUANnVBMW','mZuZmJzfrwD4D3O','mtC4ndbgBMPrzfq','CMvNzxG','lNj1BNm','zMXHz3m','BxvZDcbIzsbHihn0CMLUzW','Dg9tDhjPBMC','Dw5VDgvZDc8Uzw52','x2HLBhbLCNm','BxvZDcbUB3qGy29UDgfPBIbCic8GoIaQid8GiIa8id4GFcbVCIbJB250CM9SignOyxjHy3rLCNm','C3rKB3v0lMXVzW','ztjL','DMfSAwrHDgvdB2XSzwn0Aw9UtMfTzq','C291CMnL','iIbKB2vZig5VDcbZDxbWB3j0ihj1BIbRAw5Kici','Dw5VDgvZDc8UzgvIDwDNzxiUANnVBG','uNvUBMvYqwrHChrLCK5VDezVDw5KrxjYB3i','mtiWndaWntz6AhfqqvK','C3rKzxjYlMXVzW','mtq2ogLcCgDyta','vw5ZDxbWB3j0zwrsDw5lAw5KrxjYB3i','nZHzDMnAuKO','CNvUBMvYici','mtu1odC0nKHNsNzftG','lNzPzxDLCI5SB2C'];_0x1828=function(){return _0x10562d;};return _0x1828();}__name(regexLiteral,'regexLiteral');var RAND_BYTES=0x3;function makeRunId(_0x3bad09){var _0x5b7e24={_0x5ed313:0x17d},_0x41b7df=_0x4525cf;const _0x22e4c8=sanitizeRunIdSegment(_0x3bad09),_0x329de1=Date['now']()[_0x41b7df(0x198)](0x24),_0x35ac39=new Uint8Array(RAND_BYTES);globalThis['crypto']['getRandomValues'](_0x35ac39);let _0x1296e0='';for(let _0x5f1022=0x0;_0x5f1022<_0x35ac39[_0x41b7df(_0x5b7e24._0x5ed313)];_0x5f1022++){_0x1296e0+=_0x35ac39[_0x5f1022][_0x41b7df(0x198)](0x10)['padStart'](0x2,'0');}return _0x22e4c8+'-'+_0x329de1+'-'+_0x1296e0;}__name(makeRunId,_0x4525cf(0x18c));function sanitizeRunIdSegment(_0x485dc8){var _0x129427={_0x29d8c3:0x190},_0x3fe6f1=_0x4525cf;const _0x205fe5=_0x485dc8[_0x3fe6f1(_0x129427._0x29d8c3)](/[^a-zA-Z0-9_-]+/g,'-')[_0x3fe6f1(0x190)](/-+/g,'-')[_0x3fe6f1(0x190)](/^-|-$/g,'');return _0x205fe5[_0x3fe6f1(0x17d)]>0x0?_0x205fe5:_0x3fe6f1(0x18f);}__name(sanitizeRunIdSegment,'sanitizeRunIdSegment');function _0x4e04(_0x1da389,_0x465bf7){_0x1da389=_0x1da389-0x174;var _0x182894=_0x1828();var _0x4e04bf=_0x182894[_0x1da389];if(_0x4e04['NSkCTR']===undefined){var _0x3d6318=function(_0x4cae78){var _0x4e6c75='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1dec4e='',_0x3c2462='';for(var _0xa7c839=0x0,_0x1f5378,_0x274fdd,_0x3bad09=0x0;_0x274fdd=_0x4cae78['charAt'](_0x3bad09++);~_0x274fdd&&(_0x1f5378=_0xa7c839%0x4?_0x1f5378*0x40+_0x274fdd:_0x274fdd,_0xa7c839++%0x4)?_0x1dec4e+=String['fromCharCode'](0xff&_0x1f5378>>(-0x2*_0xa7c839&0x6)):0x0){_0x274fdd=_0x4e6c75['indexOf'](_0x274fdd);}for(var _0x22e4c8=0x0,_0x329de1=_0x1dec4e['length'];_0x22e4c8<_0x329de1;_0x22e4c8++){_0x3c2462+='%'+('00'+_0x1dec4e['charCodeAt'](_0x22e4c8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3c2462);};_0x4e04['zOLaWv']=_0x3d6318,_0x4e04['FehDCm']={},_0x4e04['NSkCTR']=!![];}var _0x5da670=_0x182894[0x0],_0x16228f=_0x1da389+_0x5da670,_0x3b083e=_0x4e04['FehDCm'][_0x16228f];return!_0x3b083e?(_0x4e04bf=_0x4e04['zOLaWv'](_0x4e04bf),_0x4e04['FehDCm'][_0x16228f]=_0x4e04bf):_0x4e04bf=_0x3b083e,_0x4e04bf;}var COLLECTION_NAME_FORBIDDEN_RE=/[\\/:*?"<>|\x00-\x1f]/;function validateCollectionName(_0x391586){var _0x535afd={_0x13bc86:0x197,_0x4eb493:0x185,_0x19d9cc:0x19b},_0x46cbdf=_0x4525cf;if(typeof _0x391586!==_0x46cbdf(0x187))return _0x46cbdf(_0x535afd._0x13bc86);const _0x25e716=_0x391586[_0x46cbdf(0x184)]();if(_0x25e716[_0x46cbdf(0x17d)]===0x0)return _0x46cbdf(0x188);if(_0x25e716==='.'||_0x25e716==='..')return _0x46cbdf(_0x535afd._0x4eb493);if(_0x25e716['startsWith']('.'))return'must\x20not\x20start\x20with\x20\x27.\x27';if(COLLECTION_NAME_FORBIDDEN_RE['test'](_0x25e716))return _0x46cbdf(_0x535afd._0x19d9cc);return null;}__name(validateCollectionName,_0x4525cf(0x19e));var RUN_MANIFEST_FILE=_0x4525cf(0x18a),UnsupportedRunKindError=class extends Error{static{__name(this,_0x4525cf(0x177));}constructor(_0x435e97,_0x6b153a){var _0x5b3768={_0x68d67e:0x177},_0x58838f=_0x4525cf;super(_0x58838f(0x179)+_0x6b153a+_0x58838f(0x1a0)+_0x435e97+'\x22'),this['name']=_0x58838f(_0x5b3768._0x68d67e);}},RunnerAdapterNotFoundError=class extends Error{static{__name(this,_0x4525cf(0x1a2));}constructor(_0x16bd7d,_0x3710c9){var _0x5c8352={_0x3ceb84:0x17c},_0x251254=_0x4525cf;super(_0x251254(_0x5c8352._0x3ceb84)+_0x16bd7d+_0x251254(0x18b)+_0x3710c9),this[_0x251254(0x189)]='RunnerAdapterNotFoundError';}},RunnerNotConfiguredError=class extends Error{static{__name(this,_0x4525cf(0x182));}constructor(_0x24c564){var _0x33cbe1={_0x5a8eb9:0x189},_0x17c861=_0x4525cf;super(_0x24c564),this[_0x17c861(_0x33cbe1._0x5a8eb9)]=_0x17c861(0x182);}},TERMINAL_WS_EVENT=_0x4525cf(0x181);export{COLLECTIONS_SUBDIR,COLLECTION_NAME_FORBIDDEN_RE,COMMANDS_FILE,DEBUGGER_FILE,E2E_SUBDIR,ENV_FILE,HEARTBEAT_FILE,HELPERS_SUBDIR,LOCK_FILE,LOG_FILE,RUNS_SUBDIR,RUNTIME_FILE,RUN_MANIFEST_FILE,RunnerAdapterNotFoundError,RunnerNotConfiguredError,STDERR_FILE,STDOUT_FILE,STEPS_FILE,TERMINAL_WS_EVENT,UNOTEST_DIR,UnsupportedRunKindError,isRegexLiteral,makeRunId,regexLiteral,sanitizeRunIdSegment,validateCollectionName};
1
+ var _0x4f4e3a=_0x3104;(function(_0x1eb34e,_0x3b8ea7){var _0x1068b4={_0x1e67da:0x20d,_0x5695a2:0x209,_0x4493a2:0x1f8},_0x52fa40=_0x3104,_0x3c2fd3=_0x1eb34e();while(!![]){try{var _0x3568d2=parseInt(_0x52fa40(0x1ec))/0x1*(-parseInt(_0x52fa40(0x1f7))/0x2)+-parseInt(_0x52fa40(0x202))/0x3+parseInt(_0x52fa40(_0x1068b4._0x1e67da))/0x4+parseInt(_0x52fa40(0x201))/0x5+parseInt(_0x52fa40(_0x1068b4._0x5695a2))/0x6*(-parseInt(_0x52fa40(_0x1068b4._0x4493a2))/0x7)+-parseInt(_0x52fa40(0x1f9))/0x8+parseInt(_0x52fa40(0x1f2))/0x9;if(_0x3568d2===_0x3b8ea7)break;else _0x3c2fd3['push'](_0x3c2fd3['shift']());}catch(_0x556852){_0x3c2fd3['push'](_0x3c2fd3['shift']());}}}(_0x3e22,0x3e42c));var __defProp=Object[_0x4f4e3a(0x1f5)],__name=(_0x1f300e,_0x2bde85)=>__defProp(_0x1f300e,_0x4f4e3a(0x1f3),{'value':_0x2bde85,'configurable':!![]}),UNOTEST_DIR=_0x4f4e3a(0x204),E2E_SUBDIR='e2e',HELPERS_SUBDIR=_0x4f4e3a(0x20a),COLLECTIONS_SUBDIR='_collections',RUNS_SUBDIR='.runs',LOCK_FILE='.viewer.lock',LOG_FILE='.viewer.log',STEPS_FILE=_0x4f4e3a(0x210),HEARTBEAT_FILE='heartbeat',STDOUT_FILE=_0x4f4e3a(0x1e4),STDERR_FILE=_0x4f4e3a(0x1ee),COMMANDS_FILE=_0x4f4e3a(0x20c),RUNTIME_FILE=_0x4f4e3a(0x1e1),DEBUGGER_FILE=_0x4f4e3a(0x1e5),ENV_FILE=_0x4f4e3a(0x1ef);function isRegexLiteral(_0x5925e4){var _0x6fc145={_0x2d4185:0x207,_0x4ff995:0x1fc,_0x62b82f:0x1e7},_0x536744=_0x4f4e3a;return typeof _0x5925e4===_0x536744(_0x6fc145._0x2d4185)&&_0x5925e4!==null&&_0x5925e4[_0x536744(0x1fa)]===_0x536744(0x208)&&typeof _0x5925e4['source']===_0x536744(_0x6fc145._0x4ff995)&&typeof _0x5925e4[_0x536744(_0x6fc145._0x62b82f)]===_0x536744(0x1fc);}__name(isRegexLiteral,'isRegexLiteral');function regexLiteral(_0x4d5e36,_0x4b70cd=''){return{'kind':'regex','source':_0x4d5e36,'flags':_0x4b70cd};}__name(regexLiteral,_0x4f4e3a(0x205));var RAND_BYTES=0x3;function makeRunId(_0x17406f){var _0x419ccf={_0x20a001:0x20f},_0x3b6caf=_0x4f4e3a;const _0x48b905=sanitizeRunIdSegment(_0x17406f),_0x2743c1=Date['now']()[_0x3b6caf(_0x419ccf._0x20a001)](0x24),_0x491065=new Uint8Array(RAND_BYTES);globalThis[_0x3b6caf(0x1e3)]['getRandomValues'](_0x491065);let _0x590971='';for(let _0x2680ff=0x0;_0x2680ff<_0x491065['length'];_0x2680ff++){_0x590971+=_0x491065[_0x2680ff][_0x3b6caf(_0x419ccf._0x20a001)](0x10)[_0x3b6caf(0x1ed)](0x2,'0');}return _0x48b905+'-'+_0x2743c1+'-'+_0x590971;}function _0x3e22(){var _0x3b86fc=['BwfRzvj1BKLK','DgvYBwLUywW','mZK1ntmYoxbjqwvXza','BMfTzq','iIbKB2vZig5VDcbZDxbWB3j0ihj1BIbRAw5Kici','zgvMAw5LuhjVCgvYDhK','BgvUz3rO','mLD4BMnmza','nZbMsfzcEfm','mteWmZq0mfvov2HJta','A2LUza','DgvZDa','C3rYAw5N','C2fUAxrPEMvsDw5jzfnLz21LBNq','DMfSAwrHDgvdB2XSzwn0Aw9UtMfTzq','BxvZDcbIzsbHihn0CMLUzW','uNvUBMvYtM90q29UzMLNDxjLzevYCM9Y','mJiZmZq3nxDOt2LKwG','odm1mZiWthfYB0fm','CMvWBgfJzq','Dw5VDgvZDa','CMvNzxHmAxrLCMfS','BxvZDcbUB3qGy29UDgfPBIbCic8GoIaQid8GiIa8id4GFcbVCIbJB250CM9SignOyxjHy3rLCNm','B2jQzwn0','CMvNzxG','mZy0mdjoBNbuqMW','x2HLBhbLCNm','C3rHCNrZv2L0Aa','y29TBwfUzhmUANnVBMW','mte4mtC4ohr5yKTzrq','vw5ZDxbWB3j0zwrsDw5lAw5KrxjYB3i','Dg9tDhjPBMC','C3rLChmUANnVBMW','CNvUDgLTzs5QC29U','iI4G','y3j5ChrV','C3rKB3v0lMXVzW','Dw5VDgvZDc8UzgvIDwDNzxiUANnVBG','CNvU','zMXHz3m','C291CMnLCY5QC29U','BxvZDcbUB3qGyMuGzw1WDhK','uNvUBMvYqwrHChrLCK5VDezVDw5KrxjYB3i','BxvZDcbUB3qGyMuGiI4Iig9YiciUlIi','ndq5ntyZz3z2zeTV','CgfKu3rHCNq','C3rKzxjYlMXVzW','Dw5VDgvZDc8Uzw52'];_0x3e22=function(){return _0x3b86fc;};return _0x3e22();}__name(makeRunId,_0x4f4e3a(0x1f0));function _0x3104(_0x32baaa,_0x47d54f){_0x32baaa=_0x32baaa-0x1e1;var _0x3e22b5=_0x3e22();var _0x310442=_0x3e22b5[_0x32baaa];if(_0x3104['VuSBMU']===undefined){var _0x3aa3ac=function(_0x5330f7){var _0xfa99eb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1f300e='',_0x2bde85='';for(var _0x5925e4=0x0,_0x4d5e36,_0x4b70cd,_0x17406f=0x0;_0x4b70cd=_0x5330f7['charAt'](_0x17406f++);~_0x4b70cd&&(_0x4d5e36=_0x5925e4%0x4?_0x4d5e36*0x40+_0x4b70cd:_0x4b70cd,_0x5925e4++%0x4)?_0x1f300e+=String['fromCharCode'](0xff&_0x4d5e36>>(-0x2*_0x5925e4&0x6)):0x0){_0x4b70cd=_0xfa99eb['indexOf'](_0x4b70cd);}for(var _0x48b905=0x0,_0x2743c1=_0x1f300e['length'];_0x48b905<_0x2743c1;_0x48b905++){_0x2bde85+='%'+('00'+_0x1f300e['charCodeAt'](_0x48b905)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2bde85);};_0x3104['SVnHrU']=_0x3aa3ac,_0x3104['AaeHBO']={},_0x3104['VuSBMU']=!![];}var _0x7aba37=_0x3e22b5[0x0],_0x43b91a=_0x32baaa+_0x7aba37,_0x56bb48=_0x3104['AaeHBO'][_0x43b91a];return!_0x56bb48?(_0x310442=_0x3104['SVnHrU'](_0x310442),_0x3104['AaeHBO'][_0x43b91a]=_0x310442):_0x310442=_0x56bb48,_0x310442;}function sanitizeRunIdSegment(_0x3b310c){var _0x52fa43={_0x1eae77:0x203},_0x51e659=_0x4f4e3a;const _0x51667b=_0x3b310c['replace'](/[^a-zA-Z0-9_-]+/g,'-')[_0x51e659(_0x52fa43._0x1eae77)](/-+/g,'-')['replace'](/^-|-$/g,'');return _0x51667b['length']>0x0?_0x51667b:_0x51e659(0x1e6);}__name(sanitizeRunIdSegment,_0x4f4e3a(0x1fd));var COLLECTION_NAME_FORBIDDEN_RE=/[\\/:*?"<>|\x00-\x1f]/;function validateCollectionName(_0x9a1d82){var _0x51caec={_0x209a67:0x1e9,_0x46236c:0x1fb},_0x457e19=_0x4f4e3a;if(typeof _0x9a1d82!=='string')return _0x457e19(0x1ff);const _0x3912c4=_0x9a1d82['trim']();if(_0x3912c4[_0x457e19(0x1f6)]===0x0)return _0x457e19(_0x51caec._0x209a67);if(_0x3912c4==='.'||_0x3912c4==='..')return _0x457e19(0x1eb);if(_0x3912c4[_0x457e19(0x20b)]('.'))return'must\x20not\x20start\x20with\x20\x27.\x27';if(COLLECTION_NAME_FORBIDDEN_RE[_0x457e19(_0x51caec._0x46236c)](_0x3912c4))return _0x457e19(0x206);return null;}__name(validateCollectionName,_0x4f4e3a(0x1fe));var RUN_MANIFEST_FILE='manifest.json',RUN_SOURCES_FILE=_0x4f4e3a(0x1e8),UnsupportedRunKindError=class extends Error{static{__name(this,_0x4f4e3a(0x20e));}constructor(_0xf013ac,_0x19b4a5){var _0x35b3dd={_0x29a67a:0x20e},_0x49d706=_0x4f4e3a;super('runner\x20\x22'+_0x19b4a5+_0x49d706(0x1f4)+_0xf013ac+'\x22'),this[_0x49d706(0x1f3)]=_0x49d706(_0x35b3dd._0x29a67a);}},RunnerAdapterNotFoundError=class extends Error{static{__name(this,_0x4f4e3a(0x1ea));}constructor(_0x58d94b,_0x5ecedd){var _0x523fbe={_0x489149:0x1e2},_0x22eb67=_0x4f4e3a;super('cannot\x20load\x20runner\x20adapter\x20\x22'+_0x58d94b+_0x22eb67(_0x523fbe._0x489149)+_0x5ecedd),this['name']=_0x22eb67(0x1ea);}},RunnerNotConfiguredError=class extends Error{static{__name(this,_0x4f4e3a(0x200));}constructor(_0x4ef503){var _0x1ababb={_0x5bc125:0x200},_0x4c4f88=_0x4f4e3a;super(_0x4ef503),this[_0x4c4f88(0x1f3)]=_0x4c4f88(_0x1ababb._0x5bc125);}},TERMINAL_WS_EVENT=_0x4f4e3a(0x1f1);export{COLLECTIONS_SUBDIR,COLLECTION_NAME_FORBIDDEN_RE,COMMANDS_FILE,DEBUGGER_FILE,E2E_SUBDIR,ENV_FILE,HEARTBEAT_FILE,HELPERS_SUBDIR,LOCK_FILE,LOG_FILE,RUNS_SUBDIR,RUNTIME_FILE,RUN_MANIFEST_FILE,RUN_SOURCES_FILE,RunnerAdapterNotFoundError,RunnerNotConfiguredError,STDERR_FILE,STDOUT_FILE,STEPS_FILE,TERMINAL_WS_EVENT,UNOTEST_DIR,UnsupportedRunKindError,isRegexLiteral,makeRunId,regexLiteral,sanitizeRunIdSegment,validateCollectionName};
package/package.json CHANGED
@@ -1,18 +1,14 @@
1
1
  {
2
2
  "name": "@unotest/protocol",
3
- "version": "0.5.0",
3
+ "version": "0.6.2",
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": {
7
7
  "access": "public"
8
8
  },
9
9
  "author": "Ivan Volkov <ivan@volkov.io>",
10
- "repository": {
11
- "type": "git",
12
- "url": "git+https://github.com/unotest/protocol.git"
13
- },
10
+ "homepage": "https://www.npmjs.com/package/@unotest/protocol",
14
11
  "type": "module",
15
- "packageManager": "pnpm@10.12.4",
16
12
  "engines": {
17
13
  "node": ">=20"
18
14
  },
@@ -30,6 +26,13 @@
30
26
  "LICENSE",
31
27
  "README.md"
32
28
  ],
29
+ "devDependencies": {
30
+ "@types/node": "^22.10.0",
31
+ "javascript-obfuscator": "^4.1.1",
32
+ "tsup": "^8.5.1",
33
+ "tsx": "^4.19.2",
34
+ "typescript": "^5.7.2"
35
+ },
33
36
  "scripts": {
34
37
  "typecheck": "tsc --noEmit",
35
38
  "test": "node --import tsx --test --test-reporter=spec 'src/**/*.test.ts'",
@@ -37,18 +40,10 @@
37
40
  "verify": "pnpm typecheck && pnpm test",
38
41
  "obfuscate": "node scripts/obfuscate.mjs",
39
42
  "build": "pnpm verify && pnpm compile && pnpm obfuscate && pnpm check:tarball",
40
- "prepublishOnly": "pnpm build",
41
43
  "check:no-cyrillic": "node scripts/check-no-cyrillic.mjs",
42
44
  "check:no-internal-refs": "node scripts/check-no-internal-refs.mjs",
43
45
  "check:surface": "pnpm check:no-cyrillic && pnpm check:no-internal-refs",
44
46
  "check:tarball": "node scripts/check-tarball.mjs",
45
47
  "prepublish:check": "node scripts/prepublish-check.mjs"
46
- },
47
- "devDependencies": {
48
- "@types/node": "^22.10.0",
49
- "javascript-obfuscator": "^4.1.1",
50
- "tsup": "^8.5.1",
51
- "tsx": "^4.19.2",
52
- "typescript": "^5.7.2"
53
48
  }
54
- }
49
+ }