@lvce-editor/pty-host 7.1.0 → 8.1.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/dist/ptyHostMain.js +354 -256
- package/package.json +2 -2
package/dist/ptyHostMain.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
1
2
|
import { fileURLToPath } from 'node:url';
|
|
2
3
|
import { Console } from 'node:console';
|
|
3
4
|
import { createWriteStream, readFileSync } from 'node:fs';
|
|
4
5
|
import { tmpdir } from 'node:os';
|
|
5
|
-
import { Buffer } from 'node:buffer';
|
|
6
|
+
import { Buffer as Buffer$1 } from 'node:buffer';
|
|
6
7
|
|
|
7
8
|
class CommandNotFoundError extends Error {
|
|
8
9
|
constructor(command) {
|
|
@@ -25,62 +26,6 @@ const execute = (command, ...args) => {
|
|
|
25
26
|
return fn(...args);
|
|
26
27
|
};
|
|
27
28
|
|
|
28
|
-
const normalizeLine = line => {
|
|
29
|
-
if (line.startsWith('Error: ')) {
|
|
30
|
-
return line.slice('Error: '.length);
|
|
31
|
-
}
|
|
32
|
-
if (line.startsWith('VError: ')) {
|
|
33
|
-
return line.slice('VError: '.length);
|
|
34
|
-
}
|
|
35
|
-
return line;
|
|
36
|
-
};
|
|
37
|
-
const getCombinedMessage = (error, message) => {
|
|
38
|
-
const stringifiedError = normalizeLine(`${error}`);
|
|
39
|
-
if (message) {
|
|
40
|
-
return `${message}: ${stringifiedError}`;
|
|
41
|
-
}
|
|
42
|
-
return stringifiedError;
|
|
43
|
-
};
|
|
44
|
-
const NewLine$4 = '\n';
|
|
45
|
-
const getNewLineIndex$2 = (string, startIndex = undefined) => {
|
|
46
|
-
return string.indexOf(NewLine$4, startIndex);
|
|
47
|
-
};
|
|
48
|
-
const mergeStacks = (parent, child) => {
|
|
49
|
-
if (!child) {
|
|
50
|
-
return parent;
|
|
51
|
-
}
|
|
52
|
-
const parentNewLineIndex = getNewLineIndex$2(parent);
|
|
53
|
-
const childNewLineIndex = getNewLineIndex$2(child);
|
|
54
|
-
if (childNewLineIndex === -1) {
|
|
55
|
-
return parent;
|
|
56
|
-
}
|
|
57
|
-
const parentFirstLine = parent.slice(0, parentNewLineIndex);
|
|
58
|
-
const childRest = child.slice(childNewLineIndex);
|
|
59
|
-
const childFirstLine = normalizeLine(child.slice(0, childNewLineIndex));
|
|
60
|
-
if (parentFirstLine.includes(childFirstLine)) {
|
|
61
|
-
return parentFirstLine + childRest;
|
|
62
|
-
}
|
|
63
|
-
return child;
|
|
64
|
-
};
|
|
65
|
-
class VError extends Error {
|
|
66
|
-
constructor(error, message) {
|
|
67
|
-
const combinedMessage = getCombinedMessage(error, message);
|
|
68
|
-
super(combinedMessage);
|
|
69
|
-
this.name = 'VError';
|
|
70
|
-
if (error instanceof Error) {
|
|
71
|
-
this.stack = mergeStacks(this.stack, error.stack);
|
|
72
|
-
}
|
|
73
|
-
if (error.codeFrame) {
|
|
74
|
-
// @ts-ignore
|
|
75
|
-
this.codeFrame = error.codeFrame;
|
|
76
|
-
}
|
|
77
|
-
if (error.code) {
|
|
78
|
-
// @ts-ignore
|
|
79
|
-
this.code = error.code;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
29
|
class AssertionError extends Error {
|
|
85
30
|
constructor(message) {
|
|
86
31
|
super(message);
|
|
@@ -142,6 +87,147 @@ const string = value => {
|
|
|
142
87
|
}
|
|
143
88
|
};
|
|
144
89
|
|
|
90
|
+
const serializeError = error => {
|
|
91
|
+
if (error && typeof error === 'object') {
|
|
92
|
+
return {
|
|
93
|
+
errorCode: 'code' in error && typeof error.code === 'string' ? error.code : undefined,
|
|
94
|
+
errorMessage: 'message' in error && typeof error.message === 'string' ? error.message : 'Unknown error',
|
|
95
|
+
errorStack: 'stack' in error && typeof error.stack === 'string' ? error.stack : undefined
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
if (typeof error === 'string') {
|
|
99
|
+
return {
|
|
100
|
+
errorCode: undefined,
|
|
101
|
+
errorMessage: error,
|
|
102
|
+
errorStack: undefined
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
errorCode: undefined,
|
|
107
|
+
errorMessage: 'Unknown error',
|
|
108
|
+
errorStack: undefined
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
const toPath$1 = pathOrUri => {
|
|
113
|
+
if (pathOrUri.startsWith('file://')) {
|
|
114
|
+
return fileURLToPath(pathOrUri);
|
|
115
|
+
}
|
|
116
|
+
return pathOrUri;
|
|
117
|
+
};
|
|
118
|
+
const toString = chunks => {
|
|
119
|
+
return Buffer.concat(chunks).toString();
|
|
120
|
+
};
|
|
121
|
+
const executeShellCommand = async ({
|
|
122
|
+
args,
|
|
123
|
+
cwd,
|
|
124
|
+
toSpawn
|
|
125
|
+
}) => {
|
|
126
|
+
array(args);
|
|
127
|
+
string(cwd);
|
|
128
|
+
string(toSpawn);
|
|
129
|
+
try {
|
|
130
|
+
const {
|
|
131
|
+
promise,
|
|
132
|
+
resolve
|
|
133
|
+
} = Promise.withResolvers();
|
|
134
|
+
const childProcess = spawn(toSpawn, args, {
|
|
135
|
+
cwd: toPath$1(cwd)
|
|
136
|
+
});
|
|
137
|
+
const stdoutChunks = [];
|
|
138
|
+
const stderrChunks = [];
|
|
139
|
+
const handleStdoutData = chunk => {
|
|
140
|
+
stdoutChunks.push(chunk);
|
|
141
|
+
};
|
|
142
|
+
const handleStderrData = chunk => {
|
|
143
|
+
stderrChunks.push(chunk);
|
|
144
|
+
};
|
|
145
|
+
const cleanup = () => {
|
|
146
|
+
childProcess.stdout.off('data', handleStdoutData);
|
|
147
|
+
childProcess.stderr.off('data', handleStderrData);
|
|
148
|
+
childProcess.off('error', handleError);
|
|
149
|
+
childProcess.off('close', handleClose);
|
|
150
|
+
};
|
|
151
|
+
const resolveWithCleanup = result => {
|
|
152
|
+
cleanup();
|
|
153
|
+
resolve(result);
|
|
154
|
+
};
|
|
155
|
+
const handleError = error => {
|
|
156
|
+
resolveWithCleanup(serializeError(error));
|
|
157
|
+
};
|
|
158
|
+
const handleClose = exitCode => {
|
|
159
|
+
resolveWithCleanup({
|
|
160
|
+
exitCode,
|
|
161
|
+
stderr: toString(stderrChunks),
|
|
162
|
+
stdout: toString(stdoutChunks)
|
|
163
|
+
});
|
|
164
|
+
};
|
|
165
|
+
childProcess.stdout.on('data', handleStdoutData);
|
|
166
|
+
childProcess.stderr.on('data', handleStderrData);
|
|
167
|
+
childProcess.on('error', handleError);
|
|
168
|
+
childProcess.on('close', handleClose);
|
|
169
|
+
return await promise;
|
|
170
|
+
} catch (error) {
|
|
171
|
+
return serializeError(error);
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
const normalizeLine = line => {
|
|
176
|
+
if (line.startsWith('Error: ')) {
|
|
177
|
+
return line.slice('Error: '.length);
|
|
178
|
+
}
|
|
179
|
+
if (line.startsWith('VError: ')) {
|
|
180
|
+
return line.slice('VError: '.length);
|
|
181
|
+
}
|
|
182
|
+
return line;
|
|
183
|
+
};
|
|
184
|
+
const getCombinedMessage = (error, message) => {
|
|
185
|
+
const stringifiedError = normalizeLine(`${error}`);
|
|
186
|
+
if (message) {
|
|
187
|
+
return `${message}: ${stringifiedError}`;
|
|
188
|
+
}
|
|
189
|
+
return stringifiedError;
|
|
190
|
+
};
|
|
191
|
+
const NewLine$4 = '\n';
|
|
192
|
+
const getNewLineIndex$2 = (string, startIndex = undefined) => {
|
|
193
|
+
return string.indexOf(NewLine$4, startIndex);
|
|
194
|
+
};
|
|
195
|
+
const mergeStacks = (parent, child) => {
|
|
196
|
+
if (!child) {
|
|
197
|
+
return parent;
|
|
198
|
+
}
|
|
199
|
+
const parentNewLineIndex = getNewLineIndex$2(parent);
|
|
200
|
+
const childNewLineIndex = getNewLineIndex$2(child);
|
|
201
|
+
if (childNewLineIndex === -1) {
|
|
202
|
+
return parent;
|
|
203
|
+
}
|
|
204
|
+
const parentFirstLine = parent.slice(0, parentNewLineIndex);
|
|
205
|
+
const childRest = child.slice(childNewLineIndex);
|
|
206
|
+
const childFirstLine = normalizeLine(child.slice(0, childNewLineIndex));
|
|
207
|
+
if (parentFirstLine.includes(childFirstLine)) {
|
|
208
|
+
return parentFirstLine + childRest;
|
|
209
|
+
}
|
|
210
|
+
return child;
|
|
211
|
+
};
|
|
212
|
+
class VError extends Error {
|
|
213
|
+
constructor(error, message) {
|
|
214
|
+
const combinedMessage = getCombinedMessage(error, message);
|
|
215
|
+
super(combinedMessage);
|
|
216
|
+
this.name = 'VError';
|
|
217
|
+
if (error instanceof Error) {
|
|
218
|
+
this.stack = mergeStacks(this.stack, error.stack);
|
|
219
|
+
}
|
|
220
|
+
if (error.codeFrame) {
|
|
221
|
+
// @ts-ignore
|
|
222
|
+
this.codeFrame = error.codeFrame;
|
|
223
|
+
}
|
|
224
|
+
if (error.code) {
|
|
225
|
+
// @ts-ignore
|
|
226
|
+
this.code = error.code;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
145
231
|
const isMessagePort = value => {
|
|
146
232
|
return value && value instanceof MessagePort;
|
|
147
233
|
};
|
|
@@ -319,8 +405,8 @@ const getModuleNotFoundError = stderr => {
|
|
|
319
405
|
const messageIndex = lines.findIndex(isModuleNotFoundMessage);
|
|
320
406
|
const message = lines[messageIndex];
|
|
321
407
|
return {
|
|
322
|
-
|
|
323
|
-
|
|
408
|
+
code: ERR_MODULE_NOT_FOUND$1,
|
|
409
|
+
message
|
|
324
410
|
};
|
|
325
411
|
};
|
|
326
412
|
const isModuleNotFoundError = stderr => {
|
|
@@ -343,14 +429,14 @@ const isUnhelpfulNativeModuleError = stderr => {
|
|
|
343
429
|
const getNativeModuleErrorMessage = stderr => {
|
|
344
430
|
const message = getMessageCodeBlock(stderr);
|
|
345
431
|
return {
|
|
346
|
-
|
|
347
|
-
|
|
432
|
+
code: E_INCOMPATIBLE_NATIVE_MODULE,
|
|
433
|
+
message: `Incompatible native node module: ${message}`
|
|
348
434
|
};
|
|
349
435
|
};
|
|
350
436
|
const getModuleSyntaxError = () => {
|
|
351
437
|
return {
|
|
352
|
-
|
|
353
|
-
|
|
438
|
+
code: E_MODULES_NOT_SUPPORTED_IN_ELECTRON,
|
|
439
|
+
message: `ES Modules are not supported in electron`
|
|
354
440
|
};
|
|
355
441
|
};
|
|
356
442
|
const getHelpfulChildProcessError = (stdout, stderr) => {
|
|
@@ -369,8 +455,8 @@ const getHelpfulChildProcessError = (stdout, stderr) => {
|
|
|
369
455
|
rest
|
|
370
456
|
} = getDetails$1(lines);
|
|
371
457
|
return {
|
|
372
|
-
message: actualMessage,
|
|
373
458
|
code: '',
|
|
459
|
+
message: actualMessage,
|
|
374
460
|
stack: rest
|
|
375
461
|
};
|
|
376
462
|
};
|
|
@@ -380,8 +466,8 @@ class IpcError extends VError {
|
|
|
380
466
|
if (stdout || stderr) {
|
|
381
467
|
// @ts-ignore
|
|
382
468
|
const {
|
|
383
|
-
message,
|
|
384
469
|
code,
|
|
470
|
+
message,
|
|
385
471
|
stack
|
|
386
472
|
} = getHelpfulChildProcessError(stdout, stderr);
|
|
387
473
|
const cause = new Error(message);
|
|
@@ -577,8 +663,8 @@ const removeListener = (emitter, type, callback) => {
|
|
|
577
663
|
};
|
|
578
664
|
const getFirstEvent = (eventEmitter, eventMap) => {
|
|
579
665
|
const {
|
|
580
|
-
|
|
581
|
-
|
|
666
|
+
promise,
|
|
667
|
+
resolve
|
|
582
668
|
} = Promise.withResolvers();
|
|
583
669
|
const listenerMap = Object.create(null);
|
|
584
670
|
const cleanup = value => {
|
|
@@ -590,8 +676,8 @@ const getFirstEvent = (eventEmitter, eventMap) => {
|
|
|
590
676
|
for (const [event, type] of Object.entries(eventMap)) {
|
|
591
677
|
const listener = event => {
|
|
592
678
|
cleanup({
|
|
593
|
-
|
|
594
|
-
|
|
679
|
+
event,
|
|
680
|
+
type
|
|
595
681
|
});
|
|
596
682
|
};
|
|
597
683
|
addListener(eventEmitter, event, listener);
|
|
@@ -607,28 +693,28 @@ const getFirstWebSocketEvent = async webSocket => {
|
|
|
607
693
|
WebSocket
|
|
608
694
|
} = await import('ws');
|
|
609
695
|
switch (webSocket.readyState) {
|
|
610
|
-
case WebSocket.
|
|
696
|
+
case WebSocket.CLOSED:
|
|
611
697
|
return {
|
|
612
|
-
|
|
613
|
-
|
|
698
|
+
event: undefined,
|
|
699
|
+
type: Close
|
|
614
700
|
};
|
|
615
|
-
case WebSocket.
|
|
701
|
+
case WebSocket.OPEN:
|
|
616
702
|
return {
|
|
617
|
-
|
|
618
|
-
|
|
703
|
+
event: undefined,
|
|
704
|
+
type: Open
|
|
619
705
|
};
|
|
620
706
|
}
|
|
621
707
|
// @ts-ignore
|
|
622
708
|
const {
|
|
623
|
-
|
|
624
|
-
|
|
709
|
+
event,
|
|
710
|
+
type
|
|
625
711
|
} = await getFirstEvent(webSocket, {
|
|
626
|
-
|
|
627
|
-
|
|
712
|
+
close: Close,
|
|
713
|
+
open: Open
|
|
628
714
|
});
|
|
629
715
|
return {
|
|
630
|
-
|
|
631
|
-
|
|
716
|
+
event,
|
|
717
|
+
type
|
|
632
718
|
};
|
|
633
719
|
};
|
|
634
720
|
|
|
@@ -658,8 +744,8 @@ const handleUpgrade$1 = async (...args) => {
|
|
|
658
744
|
return module.handleUpgrade(...args);
|
|
659
745
|
};
|
|
660
746
|
const listen$1$1 = async ({
|
|
661
|
-
|
|
662
|
-
|
|
747
|
+
handle,
|
|
748
|
+
request
|
|
663
749
|
}) => {
|
|
664
750
|
if (!request) {
|
|
665
751
|
throw new IpcError('request must be defined');
|
|
@@ -679,14 +765,19 @@ const signal$4 = webSocket => {
|
|
|
679
765
|
};
|
|
680
766
|
const wrap$9 = webSocket => {
|
|
681
767
|
return {
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
768
|
+
dispose() {
|
|
769
|
+
this.webSocket.close();
|
|
770
|
+
},
|
|
771
|
+
// @ts-ignore
|
|
772
|
+
off(event, listener) {
|
|
773
|
+
this.webSocket.off(event, listener);
|
|
774
|
+
},
|
|
687
775
|
// @ts-ignore
|
|
688
776
|
on(event, listener) {
|
|
689
777
|
switch (event) {
|
|
778
|
+
case 'close':
|
|
779
|
+
webSocket.on('close', listener);
|
|
780
|
+
break;
|
|
690
781
|
case 'message':
|
|
691
782
|
// @ts-ignore
|
|
692
783
|
const wrappedListener = message => {
|
|
@@ -699,28 +790,23 @@ const wrap$9 = webSocket => {
|
|
|
699
790
|
};
|
|
700
791
|
webSocket.on('message', wrappedListener);
|
|
701
792
|
break;
|
|
702
|
-
case 'close':
|
|
703
|
-
webSocket.on('close', listener);
|
|
704
|
-
break;
|
|
705
793
|
default:
|
|
706
794
|
throw new Error('unknown event listener type');
|
|
707
795
|
}
|
|
708
796
|
},
|
|
709
797
|
// @ts-ignore
|
|
710
|
-
off(event, listener) {
|
|
711
|
-
this.webSocket.off(event, listener);
|
|
712
|
-
},
|
|
713
|
-
// @ts-ignore
|
|
714
798
|
send(message) {
|
|
715
799
|
const stringifiedMessage = serialize(message);
|
|
716
800
|
this.webSocket.send(stringifiedMessage);
|
|
717
801
|
},
|
|
718
|
-
dispose() {
|
|
719
|
-
this.webSocket.close();
|
|
720
|
-
},
|
|
721
802
|
start() {
|
|
722
803
|
throw new Error('start method is deprecated');
|
|
723
|
-
}
|
|
804
|
+
},
|
|
805
|
+
webSocket,
|
|
806
|
+
/**
|
|
807
|
+
* @type {any}
|
|
808
|
+
*/
|
|
809
|
+
wrappedListener: undefined
|
|
724
810
|
};
|
|
725
811
|
};
|
|
726
812
|
const IpcChildWithWebSocket = {
|
|
@@ -730,56 +816,14 @@ const IpcChildWithWebSocket = {
|
|
|
730
816
|
wrap: wrap$9
|
|
731
817
|
};
|
|
732
818
|
|
|
733
|
-
const Two = '2.0';
|
|
734
|
-
const create$4 = (method, params) => {
|
|
735
|
-
return {
|
|
736
|
-
jsonrpc: Two,
|
|
737
|
-
method,
|
|
738
|
-
params
|
|
739
|
-
};
|
|
740
|
-
};
|
|
819
|
+
const Two$1 = '2.0';
|
|
741
820
|
const callbacks = Object.create(null);
|
|
742
|
-
const set$1 = (id, fn) => {
|
|
743
|
-
callbacks[id] = fn;
|
|
744
|
-
};
|
|
745
821
|
const get$1 = id => {
|
|
746
822
|
return callbacks[id];
|
|
747
823
|
};
|
|
748
824
|
const remove$1 = id => {
|
|
749
825
|
delete callbacks[id];
|
|
750
826
|
};
|
|
751
|
-
let id = 0;
|
|
752
|
-
const create$3 = () => {
|
|
753
|
-
return ++id;
|
|
754
|
-
};
|
|
755
|
-
const registerPromise = () => {
|
|
756
|
-
const id = create$3();
|
|
757
|
-
const {
|
|
758
|
-
resolve,
|
|
759
|
-
promise
|
|
760
|
-
} = Promise.withResolvers();
|
|
761
|
-
set$1(id, resolve);
|
|
762
|
-
return {
|
|
763
|
-
id,
|
|
764
|
-
promise
|
|
765
|
-
};
|
|
766
|
-
};
|
|
767
|
-
const create$2 = (method, params) => {
|
|
768
|
-
const {
|
|
769
|
-
id,
|
|
770
|
-
promise
|
|
771
|
-
} = registerPromise();
|
|
772
|
-
const message = {
|
|
773
|
-
jsonrpc: Two,
|
|
774
|
-
method,
|
|
775
|
-
params,
|
|
776
|
-
id
|
|
777
|
-
};
|
|
778
|
-
return {
|
|
779
|
-
message,
|
|
780
|
-
promise
|
|
781
|
-
};
|
|
782
|
-
};
|
|
783
827
|
class JsonRpcError extends Error {
|
|
784
828
|
constructor(message) {
|
|
785
829
|
super(message);
|
|
@@ -796,12 +840,12 @@ const getErrorConstructor = (message, type) => {
|
|
|
796
840
|
switch (type) {
|
|
797
841
|
case DomException:
|
|
798
842
|
return DOMException;
|
|
799
|
-
case TypeError$1:
|
|
800
|
-
return TypeError;
|
|
801
|
-
case SyntaxError$1:
|
|
802
|
-
return SyntaxError;
|
|
803
843
|
case ReferenceError$1:
|
|
804
844
|
return ReferenceError;
|
|
845
|
+
case SyntaxError$1:
|
|
846
|
+
return SyntaxError;
|
|
847
|
+
case TypeError$1:
|
|
848
|
+
return TypeError;
|
|
805
849
|
default:
|
|
806
850
|
return Error;
|
|
807
851
|
}
|
|
@@ -957,27 +1001,27 @@ const getErrorProperty = (error, prettyError) => {
|
|
|
957
1001
|
if (error && error.code === E_COMMAND_NOT_FOUND) {
|
|
958
1002
|
return {
|
|
959
1003
|
code: MethodNotFound,
|
|
960
|
-
|
|
961
|
-
|
|
1004
|
+
data: error.stack,
|
|
1005
|
+
message: error.message
|
|
962
1006
|
};
|
|
963
1007
|
}
|
|
964
1008
|
return {
|
|
965
1009
|
code: Custom,
|
|
966
|
-
message: prettyError.message,
|
|
967
1010
|
data: {
|
|
968
|
-
stack: getStack(prettyError),
|
|
969
|
-
codeFrame: prettyError.codeFrame,
|
|
970
|
-
type: getErrorType(prettyError),
|
|
971
1011
|
code: prettyError.code,
|
|
972
|
-
|
|
973
|
-
|
|
1012
|
+
codeFrame: prettyError.codeFrame,
|
|
1013
|
+
name: prettyError.name,
|
|
1014
|
+
stack: getStack(prettyError),
|
|
1015
|
+
type: getErrorType(prettyError)
|
|
1016
|
+
},
|
|
1017
|
+
message: prettyError.message
|
|
974
1018
|
};
|
|
975
1019
|
};
|
|
976
1020
|
const create$1$1 = (id, error) => {
|
|
977
1021
|
return {
|
|
978
|
-
|
|
1022
|
+
error,
|
|
979
1023
|
id,
|
|
980
|
-
|
|
1024
|
+
jsonrpc: Two$1
|
|
981
1025
|
};
|
|
982
1026
|
};
|
|
983
1027
|
const getErrorResponse = (id, error, preparePrettyError, logError) => {
|
|
@@ -986,27 +1030,27 @@ const getErrorResponse = (id, error, preparePrettyError, logError) => {
|
|
|
986
1030
|
const errorProperty = getErrorProperty(error, prettyError);
|
|
987
1031
|
return create$1$1(id, errorProperty);
|
|
988
1032
|
};
|
|
989
|
-
const create$
|
|
1033
|
+
const create$9 = (message, result) => {
|
|
990
1034
|
return {
|
|
991
|
-
jsonrpc: Two,
|
|
992
1035
|
id: message.id,
|
|
1036
|
+
jsonrpc: Two$1,
|
|
993
1037
|
result: result ?? null
|
|
994
1038
|
};
|
|
995
1039
|
};
|
|
996
1040
|
const getSuccessResponse = (message, result) => {
|
|
997
1041
|
const resultProperty = result ?? null;
|
|
998
|
-
return create$
|
|
1042
|
+
return create$9(message, resultProperty);
|
|
999
1043
|
};
|
|
1000
1044
|
const getErrorResponseSimple = (id, error) => {
|
|
1001
1045
|
return {
|
|
1002
|
-
jsonrpc: Two,
|
|
1003
|
-
id,
|
|
1004
1046
|
error: {
|
|
1005
1047
|
code: Custom,
|
|
1048
|
+
data: error,
|
|
1006
1049
|
// @ts-ignore
|
|
1007
|
-
message: error.message
|
|
1008
|
-
|
|
1009
|
-
|
|
1050
|
+
message: error.message
|
|
1051
|
+
},
|
|
1052
|
+
id,
|
|
1053
|
+
jsonrpc: Two$1
|
|
1010
1054
|
};
|
|
1011
1055
|
};
|
|
1012
1056
|
const getResponse = async (message, ipc, execute, preparePrettyError, logError, requiresSocket) => {
|
|
@@ -1036,35 +1080,35 @@ const normalizeParams = args => {
|
|
|
1036
1080
|
if (args.length === 1) {
|
|
1037
1081
|
const options = args[0];
|
|
1038
1082
|
return {
|
|
1083
|
+
execute: options.execute,
|
|
1039
1084
|
ipc: options.ipc,
|
|
1085
|
+
logError: options.logError || defaultLogError,
|
|
1040
1086
|
message: options.message,
|
|
1041
|
-
execute: options.execute,
|
|
1042
|
-
resolve: options.resolve || defaultResolve,
|
|
1043
1087
|
preparePrettyError: options.preparePrettyError || defaultPreparePrettyError,
|
|
1044
|
-
|
|
1045
|
-
|
|
1088
|
+
requiresSocket: options.requiresSocket || defaultRequiresSocket,
|
|
1089
|
+
resolve: options.resolve || defaultResolve
|
|
1046
1090
|
};
|
|
1047
1091
|
}
|
|
1048
1092
|
return {
|
|
1093
|
+
execute: args[2],
|
|
1049
1094
|
ipc: args[0],
|
|
1095
|
+
logError: args[5],
|
|
1050
1096
|
message: args[1],
|
|
1051
|
-
execute: args[2],
|
|
1052
|
-
resolve: args[3],
|
|
1053
1097
|
preparePrettyError: args[4],
|
|
1054
|
-
|
|
1055
|
-
|
|
1098
|
+
requiresSocket: args[6],
|
|
1099
|
+
resolve: args[3]
|
|
1056
1100
|
};
|
|
1057
1101
|
};
|
|
1058
1102
|
const handleJsonRpcMessage = async (...args) => {
|
|
1059
1103
|
const options = normalizeParams(args);
|
|
1060
1104
|
const {
|
|
1061
|
-
message,
|
|
1062
|
-
ipc,
|
|
1063
1105
|
execute,
|
|
1064
|
-
|
|
1065
|
-
preparePrettyError,
|
|
1106
|
+
ipc,
|
|
1066
1107
|
logError,
|
|
1067
|
-
|
|
1108
|
+
message,
|
|
1109
|
+
preparePrettyError,
|
|
1110
|
+
requiresSocket,
|
|
1111
|
+
resolve
|
|
1068
1112
|
} = options;
|
|
1069
1113
|
if ('id' in message) {
|
|
1070
1114
|
if ('method' in message) {
|
|
@@ -1086,11 +1130,51 @@ const handleJsonRpcMessage = async (...args) => {
|
|
|
1086
1130
|
}
|
|
1087
1131
|
throw new JsonRpcError('unexpected message');
|
|
1088
1132
|
};
|
|
1089
|
-
|
|
1133
|
+
|
|
1134
|
+
const Two = '2.0';
|
|
1135
|
+
|
|
1136
|
+
const create$8 = (method, params) => {
|
|
1137
|
+
return {
|
|
1138
|
+
jsonrpc: Two,
|
|
1139
|
+
method,
|
|
1140
|
+
params
|
|
1141
|
+
};
|
|
1142
|
+
};
|
|
1143
|
+
|
|
1144
|
+
const create$7 = (id, method, params) => {
|
|
1145
|
+
const message = {
|
|
1146
|
+
id,
|
|
1147
|
+
jsonrpc: Two,
|
|
1148
|
+
method,
|
|
1149
|
+
params
|
|
1150
|
+
};
|
|
1151
|
+
return message;
|
|
1152
|
+
};
|
|
1153
|
+
|
|
1154
|
+
let id = 0;
|
|
1155
|
+
const create$6 = () => {
|
|
1156
|
+
return ++id;
|
|
1157
|
+
};
|
|
1158
|
+
|
|
1159
|
+
const registerPromise = map => {
|
|
1160
|
+
const id = create$6();
|
|
1090
1161
|
const {
|
|
1091
|
-
|
|
1162
|
+
promise,
|
|
1163
|
+
resolve
|
|
1164
|
+
} = Promise.withResolvers();
|
|
1165
|
+
map[id] = resolve;
|
|
1166
|
+
return {
|
|
1167
|
+
id,
|
|
1092
1168
|
promise
|
|
1093
|
-
}
|
|
1169
|
+
};
|
|
1170
|
+
};
|
|
1171
|
+
|
|
1172
|
+
const invokeHelper = async (callbacks, ipc, method, params, useSendAndTransfer) => {
|
|
1173
|
+
const {
|
|
1174
|
+
id,
|
|
1175
|
+
promise
|
|
1176
|
+
} = registerPromise(callbacks);
|
|
1177
|
+
const message = create$7(id, method, params);
|
|
1094
1178
|
if (useSendAndTransfer && ipc.sendAndTransfer) {
|
|
1095
1179
|
ipc.sendAndTransfer(message);
|
|
1096
1180
|
} else {
|
|
@@ -1099,39 +1183,40 @@ const invokeHelper = async (ipc, method, params, useSendAndTransfer) => {
|
|
|
1099
1183
|
const responseMessage = await promise;
|
|
1100
1184
|
return unwrapJsonRpcResult(responseMessage);
|
|
1101
1185
|
};
|
|
1102
|
-
const send = (transport, method, ...params) => {
|
|
1103
|
-
const message = create$4(method, params);
|
|
1104
|
-
transport.send(message);
|
|
1105
|
-
};
|
|
1106
|
-
const invoke = (ipc, method, ...params) => {
|
|
1107
|
-
return invokeHelper(ipc, method, params, false);
|
|
1108
|
-
};
|
|
1109
|
-
const invokeAndTransfer = (ipc, method, ...params) => {
|
|
1110
|
-
return invokeHelper(ipc, method, params, true);
|
|
1111
|
-
};
|
|
1112
|
-
|
|
1113
1186
|
const createRpc = ipc => {
|
|
1187
|
+
const callbacks = Object.create(null);
|
|
1188
|
+
ipc._resolve = (id, response) => {
|
|
1189
|
+
const fn = callbacks[id];
|
|
1190
|
+
if (!fn) {
|
|
1191
|
+
console.warn(`callback ${id} may already be disposed`);
|
|
1192
|
+
return;
|
|
1193
|
+
}
|
|
1194
|
+
fn(response);
|
|
1195
|
+
delete callbacks[id];
|
|
1196
|
+
};
|
|
1114
1197
|
const rpc = {
|
|
1198
|
+
async dispose() {
|
|
1199
|
+
await ipc?.dispose();
|
|
1200
|
+
},
|
|
1201
|
+
invoke(method, ...params) {
|
|
1202
|
+
return invokeHelper(callbacks, ipc, method, params, false);
|
|
1203
|
+
},
|
|
1204
|
+
invokeAndTransfer(method, ...params) {
|
|
1205
|
+
return invokeHelper(callbacks, ipc, method, params, true);
|
|
1206
|
+
},
|
|
1115
1207
|
// @ts-ignore
|
|
1116
1208
|
ipc,
|
|
1117
1209
|
/**
|
|
1118
1210
|
* @deprecated
|
|
1119
1211
|
*/
|
|
1120
1212
|
send(method, ...params) {
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
invoke(method, ...params) {
|
|
1124
|
-
return invoke(ipc, method, ...params);
|
|
1125
|
-
},
|
|
1126
|
-
invokeAndTransfer(method, ...params) {
|
|
1127
|
-
return invokeAndTransfer(ipc, method, ...params);
|
|
1128
|
-
},
|
|
1129
|
-
async dispose() {
|
|
1130
|
-
await ipc?.dispose();
|
|
1213
|
+
const message = create$8(method, params);
|
|
1214
|
+
ipc.send(message);
|
|
1131
1215
|
}
|
|
1132
1216
|
};
|
|
1133
1217
|
return rpc;
|
|
1134
1218
|
};
|
|
1219
|
+
|
|
1135
1220
|
const requiresSocket$1 = () => {
|
|
1136
1221
|
return false;
|
|
1137
1222
|
};
|
|
@@ -1144,8 +1229,9 @@ const logError = () => {
|
|
|
1144
1229
|
const handleMessage = event => {
|
|
1145
1230
|
const actualRequiresSocket = event?.target?.requiresSocket || requiresSocket$1;
|
|
1146
1231
|
const actualExecute = event?.target?.execute || execute;
|
|
1147
|
-
return handleJsonRpcMessage(event.target, event.data, actualExecute,
|
|
1232
|
+
return handleJsonRpcMessage(event.target, event.data, actualExecute, event.target._resolve, preparePrettyError, logError, actualRequiresSocket);
|
|
1148
1233
|
};
|
|
1234
|
+
|
|
1149
1235
|
const handleIpc = ipc => {
|
|
1150
1236
|
if ('addEventListener' in ipc) {
|
|
1151
1237
|
ipc.addEventListener('message', handleMessage);
|
|
@@ -1154,6 +1240,7 @@ const handleIpc = ipc => {
|
|
|
1154
1240
|
ipc.on('message', handleMessage);
|
|
1155
1241
|
}
|
|
1156
1242
|
};
|
|
1243
|
+
|
|
1157
1244
|
const listen$2 = async (module, options) => {
|
|
1158
1245
|
const rawIpc = await module.listen(options);
|
|
1159
1246
|
if (module.signal) {
|
|
@@ -1162,7 +1249,8 @@ const listen$2 = async (module, options) => {
|
|
|
1162
1249
|
const ipc = module.wrap(rawIpc);
|
|
1163
1250
|
return ipc;
|
|
1164
1251
|
};
|
|
1165
|
-
|
|
1252
|
+
|
|
1253
|
+
const create$5 = async ({
|
|
1166
1254
|
commandMap,
|
|
1167
1255
|
messagePort,
|
|
1168
1256
|
requiresSocket
|
|
@@ -1179,11 +1267,13 @@ const create$k = async ({
|
|
|
1179
1267
|
const rpc = createRpc(ipc);
|
|
1180
1268
|
return rpc;
|
|
1181
1269
|
};
|
|
1270
|
+
|
|
1182
1271
|
const ElectronMessagePortRpcClient = {
|
|
1183
1272
|
__proto__: null,
|
|
1184
|
-
create: create$
|
|
1273
|
+
create: create$5
|
|
1185
1274
|
};
|
|
1186
|
-
|
|
1275
|
+
|
|
1276
|
+
const create$4 = async ({
|
|
1187
1277
|
commandMap
|
|
1188
1278
|
}) => {
|
|
1189
1279
|
// TODO create a commandMap per rpc instance
|
|
@@ -1193,11 +1283,13 @@ const create$j = async ({
|
|
|
1193
1283
|
const rpc = createRpc(ipc);
|
|
1194
1284
|
return rpc;
|
|
1195
1285
|
};
|
|
1286
|
+
|
|
1196
1287
|
const ElectronUtilityProcessRpcClient = {
|
|
1197
1288
|
__proto__: null,
|
|
1198
|
-
create: create$
|
|
1289
|
+
create: create$4
|
|
1199
1290
|
};
|
|
1200
|
-
|
|
1291
|
+
|
|
1292
|
+
const create$3 = async ({
|
|
1201
1293
|
commandMap
|
|
1202
1294
|
}) => {
|
|
1203
1295
|
// TODO create a commandMap per rpc instance
|
|
@@ -1207,21 +1299,23 @@ const create$a = async ({
|
|
|
1207
1299
|
const rpc = createRpc(ipc);
|
|
1208
1300
|
return rpc;
|
|
1209
1301
|
};
|
|
1302
|
+
|
|
1210
1303
|
const NodeForkedProcessRpcClient = {
|
|
1211
1304
|
__proto__: null,
|
|
1212
|
-
create: create$
|
|
1305
|
+
create: create$3
|
|
1213
1306
|
};
|
|
1214
|
-
|
|
1307
|
+
|
|
1308
|
+
const create$2 = async ({
|
|
1215
1309
|
commandMap,
|
|
1216
|
-
request,
|
|
1217
1310
|
handle,
|
|
1311
|
+
request,
|
|
1218
1312
|
requiresSocket
|
|
1219
1313
|
}) => {
|
|
1220
1314
|
// TODO create a commandMap per rpc instance
|
|
1221
1315
|
register(commandMap);
|
|
1222
1316
|
const ipc = await listen$2(IpcChildWithWebSocket, {
|
|
1223
|
-
|
|
1224
|
-
|
|
1317
|
+
handle,
|
|
1318
|
+
request
|
|
1225
1319
|
});
|
|
1226
1320
|
if (requiresSocket) {
|
|
1227
1321
|
ipc.requiresSocket = requiresSocket;
|
|
@@ -1230,9 +1324,10 @@ const create$8 = async ({
|
|
|
1230
1324
|
const rpc = createRpc(ipc);
|
|
1231
1325
|
return rpc;
|
|
1232
1326
|
};
|
|
1327
|
+
|
|
1233
1328
|
const NodeWebSocketRpcClient = {
|
|
1234
1329
|
__proto__: null,
|
|
1235
|
-
create: create$
|
|
1330
|
+
create: create$2
|
|
1236
1331
|
};
|
|
1237
1332
|
|
|
1238
1333
|
const METHODS_THAT_REQUIRE_SOCKET = new Set(['Terminal.create']);
|
|
@@ -1242,7 +1337,7 @@ const requiresSocket = method => {
|
|
|
1242
1337
|
|
|
1243
1338
|
const handleElectronMessagePort = async messagePort => {
|
|
1244
1339
|
object(messagePort);
|
|
1245
|
-
await
|
|
1340
|
+
await create$5({
|
|
1246
1341
|
commandMap: {},
|
|
1247
1342
|
messagePort,
|
|
1248
1343
|
requiresSocket: requiresSocket
|
|
@@ -1309,7 +1404,7 @@ const handleNodeMessagePort = async messagePort => {
|
|
|
1309
1404
|
const handleWebSocket = async (handle, request) => {
|
|
1310
1405
|
object(handle);
|
|
1311
1406
|
object(request);
|
|
1312
|
-
await
|
|
1407
|
+
await create$2({
|
|
1313
1408
|
commandMap: {},
|
|
1314
1409
|
handle,
|
|
1315
1410
|
request,
|
|
@@ -1459,6 +1554,7 @@ const HandleElectronMessagePort = 'HandleElectronMessagePort.handleElectronMessa
|
|
|
1459
1554
|
const HandleNodeMessagePort = 'HandleNodeMessagePort.handleNodeMessagePort';
|
|
1460
1555
|
const HandleWebSocket = 'HandleWebSocket.handleWebSocket';
|
|
1461
1556
|
const TerminalCreate = 'Terminal.create';
|
|
1557
|
+
const TerminalExecuteShellCommand = 'Terminal.executeShellCommand';
|
|
1462
1558
|
const TerminalResize = 'Terminal.resize';
|
|
1463
1559
|
const TerminalWrite = 'Terminal.write';
|
|
1464
1560
|
const TerminalDispose = 'Terminal.dispose';
|
|
@@ -1469,6 +1565,7 @@ const commandMap = {
|
|
|
1469
1565
|
[HandleWebSocket]: handleWebSocket,
|
|
1470
1566
|
[TerminalCreate]: create,
|
|
1471
1567
|
[TerminalDispose]: dispose,
|
|
1568
|
+
[TerminalExecuteShellCommand]: executeShellCommand,
|
|
1472
1569
|
[TerminalResize]: resize,
|
|
1473
1570
|
[TerminalWrite]: write
|
|
1474
1571
|
};
|
|
@@ -1672,13 +1769,13 @@ function requireIdentifier () {
|
|
|
1672
1769
|
identifier.isIdentifierChar = isIdentifierChar;
|
|
1673
1770
|
identifier.isIdentifierName = isIdentifierName;
|
|
1674
1771
|
identifier.isIdentifierStart = isIdentifierStart;
|
|
1675
|
-
let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\
|
|
1676
|
-
let nonASCIIidentifierChars = "\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\
|
|
1772
|
+
let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088f\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5c\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
|
|
1773
|
+
let nonASCIIidentifierChars = "\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1add\u1ae0-\u1aeb\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65";
|
|
1677
1774
|
const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
|
|
1678
1775
|
const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
|
|
1679
1776
|
nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
|
|
1680
|
-
const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25,
|
|
1681
|
-
const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1,
|
|
1777
|
+
const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 7, 25, 39, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489];
|
|
1778
|
+
const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 78, 5, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
|
|
1682
1779
|
function isInAstralSet(code, set) {
|
|
1683
1780
|
let pos = 0x10000;
|
|
1684
1781
|
for (let i = 0, length = set.length; i < length; i += 2) {
|
|
@@ -1883,39 +1980,39 @@ function requireLib () {
|
|
|
1883
1980
|
const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/;
|
|
1884
1981
|
const BRACKET = /^[()[\]{}]$/;
|
|
1885
1982
|
let tokenize;
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
}
|
|
1893
|
-
if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) === "</")) {
|
|
1894
|
-
return "jsxIdentifier";
|
|
1895
|
-
}
|
|
1896
|
-
if (token.value[0] !== token.value[0].toLowerCase()) {
|
|
1897
|
-
return "capitalized";
|
|
1898
|
-
}
|
|
1983
|
+
const JSX_TAG = /^[a-z][\w-]*$/i;
|
|
1984
|
+
const getTokenType = function (token, offset, text) {
|
|
1985
|
+
if (token.type === "name") {
|
|
1986
|
+
const tokenValue = token.value;
|
|
1987
|
+
if (helperValidatorIdentifier.isKeyword(tokenValue) || helperValidatorIdentifier.isStrictReservedWord(tokenValue, true) || sometimesKeywords.has(tokenValue)) {
|
|
1988
|
+
return "keyword";
|
|
1899
1989
|
}
|
|
1900
|
-
if (
|
|
1901
|
-
return "
|
|
1990
|
+
if (JSX_TAG.test(tokenValue) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) === "</")) {
|
|
1991
|
+
return "jsxIdentifier";
|
|
1902
1992
|
}
|
|
1903
|
-
|
|
1904
|
-
|
|
1993
|
+
const firstChar = String.fromCodePoint(tokenValue.codePointAt(0));
|
|
1994
|
+
if (firstChar !== firstChar.toLowerCase()) {
|
|
1995
|
+
return "capitalized";
|
|
1905
1996
|
}
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1997
|
+
}
|
|
1998
|
+
if (token.type === "punctuator" && BRACKET.test(token.value)) {
|
|
1999
|
+
return "bracket";
|
|
2000
|
+
}
|
|
2001
|
+
if (token.type === "invalid" && (token.value === "@" || token.value === "#")) {
|
|
2002
|
+
return "punctuator";
|
|
2003
|
+
}
|
|
2004
|
+
return token.type;
|
|
2005
|
+
};
|
|
2006
|
+
tokenize = function* (text) {
|
|
2007
|
+
let match;
|
|
2008
|
+
while (match = jsTokens.default.exec(text)) {
|
|
2009
|
+
const token = jsTokens.matchToToken(match);
|
|
2010
|
+
yield {
|
|
2011
|
+
type: getTokenType(token, match.index, text),
|
|
2012
|
+
value: token.value
|
|
2013
|
+
};
|
|
2014
|
+
}
|
|
2015
|
+
};
|
|
1919
2016
|
function highlight(text) {
|
|
1920
2017
|
if (text === "") return "";
|
|
1921
2018
|
const defs = getDefs(true);
|
|
@@ -1934,7 +2031,7 @@ function requireLib () {
|
|
|
1934
2031
|
}
|
|
1935
2032
|
let deprecationWarningShown = false;
|
|
1936
2033
|
const NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
|
|
1937
|
-
function getMarkerLines(loc, source, opts) {
|
|
2034
|
+
function getMarkerLines(loc, source, opts, startLineBaseZero) {
|
|
1938
2035
|
const startLoc = Object.assign({
|
|
1939
2036
|
column: 0,
|
|
1940
2037
|
line: -1
|
|
@@ -1944,9 +2041,9 @@ function requireLib () {
|
|
|
1944
2041
|
linesAbove = 2,
|
|
1945
2042
|
linesBelow = 3
|
|
1946
2043
|
} = opts || {};
|
|
1947
|
-
const startLine = startLoc.line;
|
|
2044
|
+
const startLine = startLoc.line - startLineBaseZero;
|
|
1948
2045
|
const startColumn = startLoc.column;
|
|
1949
|
-
const endLine = endLoc.line;
|
|
2046
|
+
const endLine = endLoc.line - startLineBaseZero;
|
|
1950
2047
|
const endColumn = endLoc.column;
|
|
1951
2048
|
let start = Math.max(startLine - (linesAbove + 1), 0);
|
|
1952
2049
|
let end = Math.min(source.length, endLine + linesBelow);
|
|
@@ -1992,19 +2089,20 @@ function requireLib () {
|
|
|
1992
2089
|
}
|
|
1993
2090
|
function codeFrameColumns(rawLines, loc, opts = {}) {
|
|
1994
2091
|
const shouldHighlight = opts.forceColor || isColorSupported() && opts.highlightCode;
|
|
2092
|
+
const startLineBaseZero = (opts.startLine || 1) - 1;
|
|
1995
2093
|
const defs = getDefs(shouldHighlight);
|
|
1996
2094
|
const lines = rawLines.split(NEWLINE);
|
|
1997
2095
|
const {
|
|
1998
2096
|
start,
|
|
1999
2097
|
end,
|
|
2000
2098
|
markerLines
|
|
2001
|
-
} = getMarkerLines(loc, lines, opts);
|
|
2099
|
+
} = getMarkerLines(loc, lines, opts, startLineBaseZero);
|
|
2002
2100
|
const hasColumns = loc.start && typeof loc.start.column === "number";
|
|
2003
|
-
const numberMaxWidth = String(end).length;
|
|
2101
|
+
const numberMaxWidth = String(end + startLineBaseZero).length;
|
|
2004
2102
|
const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines;
|
|
2005
2103
|
let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => {
|
|
2006
2104
|
const number = start + 1 + index;
|
|
2007
|
-
const paddedNumber = ` ${number}`.slice(-numberMaxWidth);
|
|
2105
|
+
const paddedNumber = ` ${number + startLineBaseZero}`.slice(-numberMaxWidth);
|
|
2008
2106
|
const gutter = ` ${paddedNumber} |`;
|
|
2009
2107
|
const hasMarker = markerLines[number];
|
|
2010
2108
|
const lastMarkerLine = !markerLines[number + 1];
|
|
@@ -2321,7 +2419,7 @@ const doSocketUpgrade = (webSocketServer, request, socket) => {
|
|
|
2321
2419
|
promise,
|
|
2322
2420
|
resolve
|
|
2323
2421
|
} = Promise.withResolvers();
|
|
2324
|
-
webSocketServer.handleUpgrade(request, socket, Buffer.alloc(0), resolve);
|
|
2422
|
+
webSocketServer.handleUpgrade(request, socket, Buffer$1.alloc(0), resolve);
|
|
2325
2423
|
return promise;
|
|
2326
2424
|
};
|
|
2327
2425
|
const handleUpgrade = async (request, socket) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lvce-editor/pty-host",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.1.0",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"lvce-editor",
|
|
6
6
|
"pty-host"
|
|
@@ -16,6 +16,6 @@
|
|
|
16
16
|
"bin": "bin/ptyHost.js",
|
|
17
17
|
"dependencies": {},
|
|
18
18
|
"optionalDependencies": {
|
|
19
|
-
"node-pty": "
|
|
19
|
+
"node-pty": "1.1.0-beta34"
|
|
20
20
|
}
|
|
21
21
|
}
|