@unotest/protocol 0.5.0 → 0.6.1
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 +18 -0
- package/dist/index.d.ts +19 -3
- package/dist/index.js +1 -1
- package/package.json +10 -15
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@unotest/protocol` are documented in this file.
|
|
4
4
|
|
|
5
|
+
## [0.6.1] - 2026-06-03
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- `RunSources` type and the `RUN_SOURCES_FILE` (`sources.json`) constant —
|
|
10
|
+
a per-run snapshot of the executed scenario sources (entry plus every
|
|
11
|
+
loaded helper), so consumers render a run against the code that actually
|
|
12
|
+
ran rather than the current on-disk file.
|
|
13
|
+
- `file` field on `StepStartedEvent` and `PausedEvent` — a
|
|
14
|
+
project-root-relative posix path that keys into the run's `sources.json`.
|
|
15
|
+
|
|
16
|
+
### Changed (BREAKING)
|
|
17
|
+
|
|
18
|
+
- `StepStartedEvent` no longer carries the inline `text` of the statement.
|
|
19
|
+
The executed source is now referenced via `file` + `sources.json` and
|
|
20
|
+
sliced by `line`. Consumers that read `StepStartedEvent.text` must
|
|
21
|
+
resolve the line from the source snapshot instead.
|
|
22
|
+
|
|
5
23
|
## [0.5.0] - 2026-05-29
|
|
6
24
|
|
|
7
25
|
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
|
|
1
|
+
function _0x1887(_0x2cb5ad,_0x429d4d){_0x2cb5ad=_0x2cb5ad-0x1dc;var _0x2ac173=_0x2ac1();var _0x18874f=_0x2ac173[_0x2cb5ad];if(_0x1887['EXgHHP']===undefined){var _0x2c27d5=function(_0x220185){var _0x5b9488='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1f8dab='',_0x42193b='';for(var _0x64b3cd=0x0,_0x282daf,_0x213524,_0x2474ed=0x0;_0x213524=_0x220185['charAt'](_0x2474ed++);~_0x213524&&(_0x282daf=_0x64b3cd%0x4?_0x282daf*0x40+_0x213524:_0x213524,_0x64b3cd++%0x4)?_0x1f8dab+=String['fromCharCode'](0xff&_0x282daf>>(-0x2*_0x64b3cd&0x6)):0x0){_0x213524=_0x5b9488['indexOf'](_0x213524);}for(var _0x2561e2=0x0,_0xb5a077=_0x1f8dab['length'];_0x2561e2<_0xb5a077;_0x2561e2++){_0x42193b+='%'+('00'+_0x1f8dab['charCodeAt'](_0x2561e2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x42193b);};_0x1887['AXoITv']=_0x2c27d5,_0x1887['Jzqgws']={},_0x1887['EXgHHP']=!![];}var _0x4074a9=_0x2ac173[0x0],_0x5d94d9=_0x2cb5ad+_0x4074a9,_0x4c9999=_0x1887['Jzqgws'][_0x5d94d9];return!_0x4c9999?(_0x18874f=_0x1887['AXoITv'](_0x18874f),_0x1887['Jzqgws'][_0x5d94d9]=_0x18874f):_0x18874f=_0x4c9999,_0x18874f;}var _0x4a026d=_0x1887;(function(_0x2094ee,_0x13b5cc){var _0xa97acb={_0x56a80d:0x1dc,_0x5de229:0x1fb},_0x306235=_0x1887,_0x415929=_0x2094ee();while(!![]){try{var _0xd6d326=parseInt(_0x306235(0x1e3))/0x1+parseInt(_0x306235(0x201))/0x2*(-parseInt(_0x306235(0x1e4))/0x3)+parseInt(_0x306235(_0xa97acb._0x56a80d))/0x4*(-parseInt(_0x306235(_0xa97acb._0x5de229))/0x5)+parseInt(_0x306235(0x1eb))/0x6+-parseInt(_0x306235(0x1fa))/0x7+parseInt(_0x306235(0x1e9))/0x8+-parseInt(_0x306235(0x1f3))/0x9;if(_0xd6d326===_0x13b5cc)break;else _0x415929['push'](_0x415929['shift']());}catch(_0x36c216){_0x415929['push'](_0x415929['shift']());}}}(_0x2ac1,0x709df));var __defProp=Object[_0x4a026d(0x1dd)],__name=(_0x1f8dab,_0x42193b)=>__defProp(_0x1f8dab,_0x4a026d(0x206),{'value':_0x42193b,'configurable':!![]}),UNOTEST_DIR=_0x4a026d(0x208),E2E_SUBDIR=_0x4a026d(0x1ff),HELPERS_SUBDIR=_0x4a026d(0x1de),COLLECTIONS_SUBDIR='_collections',RUNS_SUBDIR=_0x4a026d(0x20d),LOCK_FILE=_0x4a026d(0x1f6),LOG_FILE=_0x4a026d(0x1fd),STEPS_FILE=_0x4a026d(0x1f5),HEARTBEAT_FILE=_0x4a026d(0x1e6),STDOUT_FILE=_0x4a026d(0x1f7),STDERR_FILE=_0x4a026d(0x1ee),COMMANDS_FILE=_0x4a026d(0x210),RUNTIME_FILE=_0x4a026d(0x1ec),DEBUGGER_FILE='unotest/.debugger.json',ENV_FILE=_0x4a026d(0x200);function isRegexLiteral(_0x64b3cd){var _0x4dd2f7={_0x56a093:0x204,_0x770518:0x1f2,_0x4c2bf8:0x211},_0x27f4ec=_0x4a026d;return typeof _0x64b3cd===_0x27f4ec(0x1f4)&&_0x64b3cd!==null&&_0x64b3cd[_0x27f4ec(_0x4dd2f7._0x56a093)]===_0x27f4ec(0x1e1)&&typeof _0x64b3cd[_0x27f4ec(_0x4dd2f7._0x770518)]===_0x27f4ec(0x211)&&typeof _0x64b3cd['flags']===_0x27f4ec(_0x4dd2f7._0x4c2bf8);}__name(isRegexLiteral,_0x4a026d(0x1fe));function regexLiteral(_0x282daf,_0x213524=''){var _0xde6f51=_0x4a026d;return{'kind':_0xde6f51(0x1e1),'source':_0x282daf,'flags':_0x213524};}__name(regexLiteral,_0x4a026d(0x20e));var RAND_BYTES=0x3;function makeRunId(_0x2474ed){var _0x23a9bd={_0x36a3a5:0x1f0,_0x14a69d:0x209},_0x1dbdf2=_0x4a026d;const _0x2561e2=sanitizeRunIdSegment(_0x2474ed),_0xb5a077=Date['now']()[_0x1dbdf2(_0x23a9bd._0x36a3a5)](0x24),_0x5657df=new Uint8Array(RAND_BYTES);globalThis[_0x1dbdf2(_0x23a9bd._0x14a69d)]['getRandomValues'](_0x5657df);let _0x3d5499='';for(let _0x14d974=0x0;_0x14d974<_0x5657df['length'];_0x14d974++){_0x3d5499+=_0x5657df[_0x14d974][_0x1dbdf2(0x1f0)](0x10)['padStart'](0x2,'0');}return _0x2561e2+'-'+_0xb5a077+'-'+_0x3d5499;}__name(makeRunId,_0x4a026d(0x20b));function sanitizeRunIdSegment(_0x20f2f9){var _0x574446={_0x282d2d:0x1ed,_0x1216fd:0x1ed,_0x3f9cf3:0x1ed},_0x410e04=_0x4a026d;const _0x91278f=_0x20f2f9[_0x410e04(_0x574446._0x282d2d)](/[^a-zA-Z0-9_-]+/g,'-')[_0x410e04(_0x574446._0x1216fd)](/-+/g,'-')[_0x410e04(_0x574446._0x3f9cf3)](/^-|-$/g,'');return _0x91278f[_0x410e04(0x1e7)]>0x0?_0x91278f:_0x410e04(0x205);}__name(sanitizeRunIdSegment,'sanitizeRunIdSegment');var COLLECTION_NAME_FORBIDDEN_RE=/[\\/:*?"<>|\x00-\x1f]/;function validateCollectionName(_0x4b8eba){var _0x4135a4={_0x1546b5:0x211,_0x3183b4:0x1ea,_0x3e9162:0x1e7,_0x3a96de:0x1f8,_0x496df0:0x1e2,_0x257faa:0x20f},_0x4160ba=_0x4a026d;if(typeof _0x4b8eba!==_0x4160ba(_0x4135a4._0x1546b5))return _0x4160ba(_0x4135a4._0x3183b4);const _0x14cd3d=_0x4b8eba[_0x4160ba(0x1df)]();if(_0x14cd3d[_0x4160ba(_0x4135a4._0x3e9162)]===0x0)return _0x4160ba(_0x4135a4._0x3a96de);if(_0x14cd3d==='.'||_0x14cd3d==='..')return _0x4160ba(_0x4135a4._0x496df0);if(_0x14cd3d['startsWith']('.'))return _0x4160ba(0x20a);if(COLLECTION_NAME_FORBIDDEN_RE[_0x4160ba(0x1e8)](_0x14cd3d))return _0x4160ba(_0x4135a4._0x257faa);return null;}__name(validateCollectionName,_0x4a026d(0x1f9));var RUN_MANIFEST_FILE=_0x4a026d(0x1fc),RUN_SOURCES_FILE=_0x4a026d(0x202),UnsupportedRunKindError=class extends Error{static{__name(this,_0x4a026d(0x203));}constructor(_0x229a02,_0x4c8d73){var _0x3565e1={_0x3b2d63:0x1ef,_0x2c0aec:0x1f1,_0x3079ae:0x206},_0x1870a1=_0x4a026d;super(_0x1870a1(_0x3565e1._0x3b2d63)+_0x4c8d73+_0x1870a1(_0x3565e1._0x2c0aec)+_0x229a02+'\x22'),this[_0x1870a1(_0x3565e1._0x3079ae)]=_0x1870a1(0x203);}},RunnerAdapterNotFoundError=class extends Error{static{__name(this,_0x4a026d(0x20c));}constructor(_0x4539db,_0x30cc85){var _0x4814cf={_0x1ded1b:0x1e5,_0x50b716:0x206},_0x804684=_0x4a026d;super('cannot\x20load\x20runner\x20adapter\x20\x22'+_0x4539db+_0x804684(_0x4814cf._0x1ded1b)+_0x30cc85),this[_0x804684(_0x4814cf._0x50b716)]=_0x804684(0x20c);}},RunnerNotConfiguredError=class extends Error{static{__name(this,_0x4a026d(0x1e0));}constructor(_0x450ceb){var _0x26e1ce={_0x3895ba:0x206},_0x47759c=_0x4a026d;super(_0x450ceb),this[_0x47759c(_0x26e1ce._0x3895ba)]=_0x47759c(0x1e0);}},TERMINAL_WS_EVENT=_0x4a026d(0x207);function _0x2ac1(){var _0x3d08f0=['nMvmDK5wva','iI4G','AgvHCNrIzwf0','BgvUz3rO','DgvZDa','mZGWmJC3nKDntMHSDa','BxvZDcbIzsbHihn0CMLUzW','nde2mty5mgDdB0PcqG','CNvUDgLTzs5QC29U','CMvWBgfJzq','C3rKzxjYlMXVzW','CNvUBMvYici','Dg9tDhjPBMC','iIbKB2vZig5VDcbZDxbWB3j0ihj1BIbRAw5Kici','C291CMnL','ntCWmtC2mwryEuHorq','B2jQzwn0','C3rLChmUANnVBMW','lNzPzxDLCI5SB2nR','C3rKB3v0lMXVzW','BxvZDcbUB3qGyMuGzw1WDhK','DMfSAwrHDgvdB2XSzwn0Aw9UtMfTzq','mtu3mJGZsNfOEfbb','ndi5otvpD0fqCMq','BwfUAwzLC3qUANnVBG','lNzPzxDLCI5SB2C','AxnszwDLEeXPDgvYywW','ztjL','Dw5VDgvZDc8Uzw52','mtm3odC2tePluwHP','C291CMnLCY5QC29U','vw5ZDxbWB3j0zwrsDw5lAw5KrxjYB3i','A2LUza','CNvU','BMfTzq','DgvYBwLUywW','Dw5VDgvZDa','y3j5ChrV','BxvZDcbUB3qGC3rHCNqGD2L0AcaNlIC','BwfRzvj1BKLK','uNvUBMvYqwrHChrLCK5VDezVDw5KrxjYB3i','lNj1BNm','CMvNzxHmAxrLCMfS','BxvZDcbUB3qGy29UDgfPBIbCic8GoIaQid8GiIa8id4GFcbVCIbJB250CM9SignOyxjHy3rLCNm','y29TBwfUzhmUANnVBMW','C3rYAw5N','mtu2te1py25j','zgvMAw5LuhjVCgvYDhK','x2HLBhbLCNm','DhjPBq','uNvUBMvYtM90q29UzMLNDxjLzevYCM9Y','CMvNzxG','BxvZDcbUB3qGyMuGiI4Iig9YiciUlIi','ndiXntuYwujeAgTN'];_0x2ac1=function(){return _0x3d08f0;};return _0x2ac1();}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.
|
|
3
|
+
"version": "0.6.1",
|
|
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
|
-
"
|
|
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
|
+
}
|