@stanleysun233/oneproxy-cli 1.0.8 → 1.0.10
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/dist/install/native-hint.d.ts +4 -0
- package/dist/install/native-hint.js +56 -0
- package/dist/install/native-hint.js.map +1 -0
- package/dist/tui/capability.d.ts +1 -0
- package/dist/tui/capability.js +11 -0
- package/dist/tui/capability.js.map +1 -1
- package/dist/tui/output-filter.d.ts +8 -0
- package/dist/tui/output-filter.js +100 -0
- package/dist/tui/output-filter.js.map +1 -0
- package/dist/tui/runtime.js +58 -3
- package/dist/tui/runtime.js.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { spawnSync } from 'node:child_process';
|
|
2
|
+
import { fileURLToPath } from 'node:url';
|
|
3
|
+
const nativeTools = ['make', 'g++', 'python3'];
|
|
4
|
+
export function missingNativeBuildTools() {
|
|
5
|
+
return nativeTools.filter((tool) => !commandExists(tool));
|
|
6
|
+
}
|
|
7
|
+
export function nativeBuildToolsHint(missing) {
|
|
8
|
+
const list = missing.join(', ');
|
|
9
|
+
return [
|
|
10
|
+
`OneProxy TUI native dependency is not ready. Missing build tools: ${list}.`,
|
|
11
|
+
'',
|
|
12
|
+
'Install the complete native build toolchain, then reinstall OneProxy CLI:',
|
|
13
|
+
'',
|
|
14
|
+
' Ubuntu/Debian:',
|
|
15
|
+
' sudo apt update',
|
|
16
|
+
' sudo apt install -y build-essential python3',
|
|
17
|
+
'',
|
|
18
|
+
' RHEL/CentOS/Fedora:',
|
|
19
|
+
' sudo dnf groupinstall -y "Development Tools"',
|
|
20
|
+
' sudo dnf install -y python3',
|
|
21
|
+
'',
|
|
22
|
+
' Alpine:',
|
|
23
|
+
' sudo apk add --no-cache build-base python3',
|
|
24
|
+
'',
|
|
25
|
+
'Then run:',
|
|
26
|
+
' npm install -g @stanleysun233/oneproxy-cli'
|
|
27
|
+
].join('\n');
|
|
28
|
+
}
|
|
29
|
+
export async function nodePtyReady() {
|
|
30
|
+
try {
|
|
31
|
+
const dynamicImport = new Function('specifier', 'return import(specifier)');
|
|
32
|
+
await dynamicImport('node-pty');
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export async function printNativeDependencyHint() {
|
|
40
|
+
if (await nodePtyReady()) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const missing = missingNativeBuildTools();
|
|
44
|
+
if (missing.length === 0) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
process.stderr.write(`\n${nativeBuildToolsHint(missing)}\n\n`);
|
|
48
|
+
}
|
|
49
|
+
function commandExists(command) {
|
|
50
|
+
const result = spawnSync('sh', ['-c', `command -v ${command}`], { stdio: 'ignore' });
|
|
51
|
+
return result.status === 0;
|
|
52
|
+
}
|
|
53
|
+
if (process.argv[1] && fileURLToPath(import.meta.url) === process.argv[1]) {
|
|
54
|
+
void printNativeDependencyHint();
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=native-hint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-hint.js","sourceRoot":"","sources":["../../src/install/native-hint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAE/C,MAAM,UAAU,uBAAuB;IACrC,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAiB;IACpD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO;QACL,qEAAqE,IAAI,GAAG;QAC5E,EAAE;QACF,2EAA2E;QAC3E,EAAE;QACF,kBAAkB;QAClB,qBAAqB;QACrB,iDAAiD;QACjD,EAAE;QACF,uBAAuB;QACvB,kDAAkD;QAClD,iCAAiC;QACjC,EAAE;QACF,WAAW;QACX,gDAAgD;QAChD,EAAE;QACF,WAAW;QACX,gDAAgD;KACjD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAA4C,CAAC;QACvH,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB;IAC7C,IAAI,MAAM,YAAY,EAAE,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,uBAAuB,EAAE,CAAC;IAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,cAAc,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrF,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,KAAK,yBAAyB,EAAE,CAAC;AACnC,CAAC"}
|
package/dist/tui/capability.d.ts
CHANGED
|
@@ -46,3 +46,4 @@ export declare const minimumTuiRows = 10;
|
|
|
46
46
|
export declare function detectTuiCapability(input: TuiCapabilityInput): TuiCapabilityResult;
|
|
47
47
|
export declare function detectTuiCapability(input: TuiCapabilityProbeInput): TuiCapabilityProbeResult;
|
|
48
48
|
export declare function currentTuiCapabilityInput(requested: boolean, interactive: boolean, json: boolean, ptyAvailable: boolean): TuiCapabilityInput;
|
|
49
|
+
export declare function tuiFallbackMessage(reason?: TuiUnavailableReason): string;
|
package/dist/tui/capability.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { footerRowsForTerminal as footerRowsForTerminalHeight } from "./footer.js";
|
|
2
|
+
import { missingNativeBuildTools, nativeBuildToolsHint } from "../install/native-hint.js";
|
|
2
3
|
export const tuiUnavailableWarning = '! TUI failed to start; falling back to standard terminal mode.';
|
|
3
4
|
export const minimumTuiRows = 10;
|
|
4
5
|
const supportedPlatforms = new Set(['darwin', 'linux']);
|
|
@@ -83,4 +84,14 @@ export function currentTuiCapabilityInput(requested, interactive, json, ptyAvail
|
|
|
83
84
|
ptyAvailable
|
|
84
85
|
};
|
|
85
86
|
}
|
|
87
|
+
export function tuiFallbackMessage(reason) {
|
|
88
|
+
if (reason !== 'pty_unavailable') {
|
|
89
|
+
return tuiUnavailableWarning;
|
|
90
|
+
}
|
|
91
|
+
const missing = missingNativeBuildTools();
|
|
92
|
+
if (missing.length === 0) {
|
|
93
|
+
return tuiUnavailableWarning;
|
|
94
|
+
}
|
|
95
|
+
return `${tuiUnavailableWarning}\n\n${nativeBuildToolsHint(missing)}`;
|
|
96
|
+
}
|
|
86
97
|
//# sourceMappingURL=capability.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability.js","sourceRoot":"","sources":["../../src/tui/capability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,IAAI,2BAA2B,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"capability.js","sourceRoot":"","sources":["../../src/tui/capability.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare class ChildOutputFilter {
|
|
2
|
+
private pending;
|
|
3
|
+
write(data: string, mainRows: number): string;
|
|
4
|
+
clear(): void;
|
|
5
|
+
}
|
|
6
|
+
export declare function constrainTuiChildOutput(data: string, mainRows: number): string;
|
|
7
|
+
export declare function isTuiControlOutput(data: string): boolean;
|
|
8
|
+
export declare function scrollRegionSequence(bottom: number, top?: number): string;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
export class ChildOutputFilter {
|
|
2
|
+
pending = '';
|
|
3
|
+
write(data, mainRows) {
|
|
4
|
+
const [ready, pending] = splitPendingEscape(`${this.pending}${data}`);
|
|
5
|
+
this.pending = pending;
|
|
6
|
+
return constrainTuiChildOutput(ready, mainRows);
|
|
7
|
+
}
|
|
8
|
+
clear() {
|
|
9
|
+
this.pending = '';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export function constrainTuiChildOutput(data, mainRows) {
|
|
13
|
+
return data
|
|
14
|
+
.replace(/\u001bc/g, () => `${clearMainRowsSequence(mainRows)}${scrollRegionSequence(mainRows)}`)
|
|
15
|
+
.replace(/\u001b\[!p/g, () => scrollRegionSequence(mainRows))
|
|
16
|
+
.replace(/\u001b\[([0-9;]*)J/g, (_match, params) => constrainEraseDisplay(params, mainRows))
|
|
17
|
+
.replace(/\u001b\[([0-9;]*)r/g, (_match, params) => constrainScrollRegion(params, mainRows))
|
|
18
|
+
.replace(/\u001b\[\?([0-9;]+)([hl])/g, (_match, params, mode) => constrainPrivateMode(params, mode, mainRows))
|
|
19
|
+
.replace(/\u001b\[([0-9;]*)([Hf])/g, (_match, params, mode) => constrainCursorPosition(params, mode, mainRows))
|
|
20
|
+
.replace(/\u001b\[([0-9]*)d/g, (_match, params) => constrainVerticalPosition(params, mainRows));
|
|
21
|
+
}
|
|
22
|
+
export function isTuiControlOutput(data) {
|
|
23
|
+
return /\u001bc|\u001b\[(?:![p]|[0-9;]*[JrHfd]|\?[0-9;]+[hl])/.test(data);
|
|
24
|
+
}
|
|
25
|
+
export function scrollRegionSequence(bottom, top = 1) {
|
|
26
|
+
return `\u001b[${top};${bottom}r`;
|
|
27
|
+
}
|
|
28
|
+
function constrainEraseDisplay(params, mainRows) {
|
|
29
|
+
return clearMainRowsSequence(mainRows);
|
|
30
|
+
}
|
|
31
|
+
function constrainScrollRegion(params, mainRows) {
|
|
32
|
+
const [rawTop = '', rawBottom = ''] = params.split(';');
|
|
33
|
+
const top = clampScrollRegionValue(rawTop, 1, mainRows);
|
|
34
|
+
const bottom = clampScrollRegionValue(rawBottom, mainRows, mainRows);
|
|
35
|
+
return scrollRegionSequence(Math.max(top, bottom), Math.min(top, bottom));
|
|
36
|
+
}
|
|
37
|
+
function constrainCursorPosition(params, mode, mainRows) {
|
|
38
|
+
const [rawRow = '', rawColumn = ''] = params.split(';');
|
|
39
|
+
return `\u001b[${clampScrollRegionValue(rawRow, 1, mainRows)};${cursorColumn(rawColumn)}${mode}`;
|
|
40
|
+
}
|
|
41
|
+
function constrainVerticalPosition(params, mainRows) {
|
|
42
|
+
return `\u001b[${clampScrollRegionValue(params, 1, mainRows)}d`;
|
|
43
|
+
}
|
|
44
|
+
function constrainPrivateMode(params, mode, mainRows) {
|
|
45
|
+
const sequence = privateModeSequence(params, mode);
|
|
46
|
+
return params.split(';').some((value) => value === '47' || value === '1047' || value === '1049')
|
|
47
|
+
? `${sequence}${scrollRegionSequence(mainRows)}`
|
|
48
|
+
: sequence;
|
|
49
|
+
}
|
|
50
|
+
function clampScrollRegionValue(value, fallback, mainRows) {
|
|
51
|
+
const parsed = Number.parseInt(value, 10);
|
|
52
|
+
if (!Number.isFinite(parsed) || parsed < 1) {
|
|
53
|
+
return fallback;
|
|
54
|
+
}
|
|
55
|
+
return Math.min(parsed, mainRows);
|
|
56
|
+
}
|
|
57
|
+
function cursorColumn(value) {
|
|
58
|
+
const parsed = Number.parseInt(value, 10);
|
|
59
|
+
if (!Number.isFinite(parsed) || parsed < 1) {
|
|
60
|
+
return 1;
|
|
61
|
+
}
|
|
62
|
+
return parsed;
|
|
63
|
+
}
|
|
64
|
+
function privateModeSequence(params, mode) {
|
|
65
|
+
return `\u001b[?${params}${mode}`;
|
|
66
|
+
}
|
|
67
|
+
function clearMainRowsSequence(mainRows) {
|
|
68
|
+
let output = '\u001b7';
|
|
69
|
+
for (let row = 1; row <= mainRows; row += 1) {
|
|
70
|
+
output += `\u001b[${row};1H\u001b[2K`;
|
|
71
|
+
}
|
|
72
|
+
return `${output}\u001b8`;
|
|
73
|
+
}
|
|
74
|
+
function splitPendingEscape(data) {
|
|
75
|
+
const index = data.lastIndexOf('\u001b');
|
|
76
|
+
if (index === -1) {
|
|
77
|
+
return [data, ''];
|
|
78
|
+
}
|
|
79
|
+
const suffix = data.slice(index);
|
|
80
|
+
if (isCompleteEscape(suffix)) {
|
|
81
|
+
return [data, ''];
|
|
82
|
+
}
|
|
83
|
+
return [data.slice(0, index), suffix];
|
|
84
|
+
}
|
|
85
|
+
function isCompleteEscape(sequence) {
|
|
86
|
+
if (sequence.length === 1) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
if (sequence[1] !== '[') {
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
for (let index = 2; index < sequence.length; index += 1) {
|
|
93
|
+
const code = sequence.charCodeAt(index);
|
|
94
|
+
if (code >= 0x40 && code <= 0x7e) {
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=output-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-filter.js","sourceRoot":"","sources":["../../src/tui/output-filter.ts"],"names":[],"mappings":"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"}
|
package/dist/tui/runtime.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { currentTuiCapabilityInput, detectTuiCapability, tuiUnavailableWarning } from "./capability.js";
|
|
1
|
+
import { currentTuiCapabilityInput, detectTuiCapability, tuiFallbackMessage, tuiUnavailableWarning } from "./capability.js";
|
|
2
2
|
import { planFooter, renderFooterLines, visibleWidth } from "./footer.js";
|
|
3
|
+
import { ChildOutputFilter, isTuiControlOutput, scrollRegionSequence } from "./output-filter.js";
|
|
3
4
|
import { isNodePtyAvailable, loadPtyAdapter } from "./pty.js";
|
|
4
5
|
export async function runTuiRuntime(options) {
|
|
5
6
|
const ptyAvailable = Boolean(options.ptyAdapter) || await isNodePtyAvailable();
|
|
6
7
|
const capability = detectTuiCapability(currentTuiCapabilityInput(options.requested, options.interactive ?? true, options.json ?? false, ptyAvailable));
|
|
7
8
|
if (!capability.enabled) {
|
|
8
9
|
if (capability.warn) {
|
|
9
|
-
process.stderr.write(`${
|
|
10
|
+
process.stderr.write(`${tuiFallbackMessage(capability.reason)}\n`);
|
|
10
11
|
}
|
|
11
12
|
return { ran: false };
|
|
12
13
|
}
|
|
@@ -56,6 +57,9 @@ export function runTuiSession(options) {
|
|
|
56
57
|
class ActiveTuiRuntime {
|
|
57
58
|
child = null;
|
|
58
59
|
footerRows = 0;
|
|
60
|
+
redrawTimer = null;
|
|
61
|
+
redrawInterval = null;
|
|
62
|
+
outputFilter = new ChildOutputFilter();
|
|
59
63
|
options;
|
|
60
64
|
ptyAdapter;
|
|
61
65
|
stdin;
|
|
@@ -79,13 +83,19 @@ class ActiveTuiRuntime {
|
|
|
79
83
|
this.wireOutput();
|
|
80
84
|
this.wireInput();
|
|
81
85
|
this.wireResize();
|
|
86
|
+
this.applyScrollRegion();
|
|
87
|
+
this.startFooterMaintenance();
|
|
82
88
|
const exit = this.waitForExit();
|
|
83
89
|
await this.redrawFooter();
|
|
84
90
|
return await exit;
|
|
85
91
|
}
|
|
86
92
|
wireOutput() {
|
|
87
93
|
this.child?.onData((data) => {
|
|
88
|
-
this.
|
|
94
|
+
const output = this.constrainChildOutput(data);
|
|
95
|
+
if (output) {
|
|
96
|
+
this.stdout.write(output);
|
|
97
|
+
}
|
|
98
|
+
this.scheduleFooterRedraw(shouldRedrawFooterImmediately(data) || shouldRedrawFooterImmediately(output) ? 0 : 16);
|
|
89
99
|
});
|
|
90
100
|
}
|
|
91
101
|
wireInput() {
|
|
@@ -117,8 +127,37 @@ class ActiveTuiRuntime {
|
|
|
117
127
|
const plan = planFooter(this.stdout.columns ?? 80, this.stdout.rows ?? 24);
|
|
118
128
|
this.footerRows = plan.rows;
|
|
119
129
|
this.child?.resize(plan.childColumns, plan.childRows);
|
|
130
|
+
this.applyScrollRegion();
|
|
120
131
|
void this.redrawFooter();
|
|
121
132
|
};
|
|
133
|
+
scheduleFooterRedraw(delayMs) {
|
|
134
|
+
if (this.redrawTimer) {
|
|
135
|
+
if (delayMs > 0) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
clearTimeout(this.redrawTimer);
|
|
139
|
+
}
|
|
140
|
+
this.redrawTimer = setTimeout(() => {
|
|
141
|
+
this.redrawTimer = null;
|
|
142
|
+
void this.redrawFooter();
|
|
143
|
+
}, delayMs);
|
|
144
|
+
}
|
|
145
|
+
applyScrollRegion() {
|
|
146
|
+
this.stdout.write(scrollRegionSequence(this.mainRows()));
|
|
147
|
+
}
|
|
148
|
+
mainRows() {
|
|
149
|
+
const rows = this.stdout.rows ?? 24;
|
|
150
|
+
return Math.max(1, rows - this.footerRows);
|
|
151
|
+
}
|
|
152
|
+
constrainChildOutput(data) {
|
|
153
|
+
return this.outputFilter.write(data, this.mainRows());
|
|
154
|
+
}
|
|
155
|
+
startFooterMaintenance() {
|
|
156
|
+
this.redrawInterval = setInterval(() => {
|
|
157
|
+
void this.redrawFooter();
|
|
158
|
+
}, 250);
|
|
159
|
+
this.redrawInterval.unref();
|
|
160
|
+
}
|
|
122
161
|
async redrawFooter() {
|
|
123
162
|
const rows = this.stdout.rows ?? 24;
|
|
124
163
|
const columns = this.stdout.columns ?? 80;
|
|
@@ -133,11 +172,21 @@ class ActiveTuiRuntime {
|
|
|
133
172
|
return typeof this.options.snapshot === 'function' ? await this.options.snapshot() : this.options.snapshot;
|
|
134
173
|
}
|
|
135
174
|
cleanup() {
|
|
175
|
+
if (this.redrawTimer) {
|
|
176
|
+
clearTimeout(this.redrawTimer);
|
|
177
|
+
this.redrawTimer = null;
|
|
178
|
+
}
|
|
179
|
+
if (this.redrawInterval) {
|
|
180
|
+
clearInterval(this.redrawInterval);
|
|
181
|
+
this.redrawInterval = null;
|
|
182
|
+
}
|
|
136
183
|
this.stdout.off('resize', this.resize);
|
|
137
184
|
this.stdin.off('data', this.forwardInput);
|
|
185
|
+
this.outputFilter.clear();
|
|
138
186
|
if (this.stdin.isTTY && this.stdin.setRawMode) {
|
|
139
187
|
this.stdin.setRawMode(false);
|
|
140
188
|
}
|
|
189
|
+
resetScrollRegion(this.stdout);
|
|
141
190
|
clearFooter(this.stdout, this.footerRows);
|
|
142
191
|
}
|
|
143
192
|
}
|
|
@@ -162,6 +211,12 @@ function clearFooter(stdout, rows) {
|
|
|
162
211
|
}
|
|
163
212
|
stdout.write('\u001b8');
|
|
164
213
|
}
|
|
214
|
+
function resetScrollRegion(stdout) {
|
|
215
|
+
stdout.write('\u001b[r');
|
|
216
|
+
}
|
|
217
|
+
function shouldRedrawFooterImmediately(data) {
|
|
218
|
+
return isTuiControlOutput(data);
|
|
219
|
+
}
|
|
165
220
|
function colorEnabled(stdout) {
|
|
166
221
|
return Boolean(stdout.isTTY && !process.env.NO_COLOR && process.env.TERM !== 'dumb');
|
|
167
222
|
}
|
package/dist/tui/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/tui/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/tui/runtime.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stanleysun233/oneproxy-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"description": "OneProxy CLI session proxy client",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -15,9 +15,10 @@
|
|
|
15
15
|
},
|
|
16
16
|
"scripts": {
|
|
17
17
|
"build": "tsc -p tsconfig.json",
|
|
18
|
-
"check": "tsc -p tsconfig.json --noEmit"
|
|
18
|
+
"check": "tsc -p tsconfig.json --noEmit",
|
|
19
|
+
"postinstall": "node dist/install/native-hint.js"
|
|
19
20
|
},
|
|
20
|
-
"
|
|
21
|
+
"optionalDependencies": {
|
|
21
22
|
"node-pty": "^1.1.0"
|
|
22
23
|
},
|
|
23
24
|
"devDependencies": {
|