@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 +23 -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,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
|
|
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.
|
|
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
|
-
"
|
|
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
|
+
}
|