node-pty 0.10.0-beta9 → 0.11.0-beta10
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/README.md +39 -27
- package/binding.gyp +0 -7
- package/deps/winpty/src/agent/ConsoleFont.cc +0 -66
- package/lib/eventEmitter2.js +2 -1
- package/lib/eventEmitter2.js.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/shared/conout.js +11 -0
- package/lib/shared/conout.js.map +1 -0
- package/lib/terminal.js +9 -6
- package/lib/terminal.js.map +1 -1
- package/lib/terminal.test.js +3 -3
- package/lib/testUtils.test.js +1 -0
- package/lib/testUtils.test.js.map +1 -1
- package/lib/unixTerminal.js +4 -3
- package/lib/unixTerminal.js.map +1 -1
- package/lib/utils.js +1 -0
- package/lib/utils.js.map +1 -1
- package/lib/windowsConoutConnection.js +122 -0
- package/lib/windowsConoutConnection.js.map +1 -0
- package/lib/windowsPtyAgent.js +23 -17
- package/lib/windowsPtyAgent.js.map +1 -1
- package/lib/windowsTerminal.js +4 -3
- package/lib/windowsTerminal.js.map +1 -1
- package/lib/windowsTerminal.test.js +9 -0
- package/lib/windowsTerminal.test.js.map +1 -1
- package/lib/worker/conoutSocketWorker.js +19 -0
- package/lib/worker/conoutSocketWorker.js.map +1 -0
- package/package.json +5 -5
- package/src/interfaces.ts +2 -15
- package/src/shared/conout.ts +15 -0
- package/src/terminal.ts +3 -1
- package/src/unixTerminal.ts +1 -1
- package/src/win/conpty.cc +28 -20
- package/src/win/path_util.cc +1 -1
- package/src/windowsConoutConnection.ts +79 -0
- package/src/windowsPtyAgent.ts +17 -12
- package/src/windowsTerminal.test.ts +10 -0
- package/src/worker/conoutSocketWorker.ts +18 -0
- package/typings/node-pty.d.ts +15 -5
package/README.md
CHANGED
|
@@ -11,27 +11,9 @@ This is useful for:
|
|
|
11
11
|
|
|
12
12
|
`node-pty` supports Linux, macOS and Windows. Windows support is possible by utilizing the [Windows conpty API](https://blogs.msdn.microsoft.com/commandline/2018/08/02/windows-command-line-introducing-the-windows-pseudo-console-conpty/) on Windows 1809+ and the [winpty](https://github.com/rprichard/winpty) library in older version.
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## API
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
- [Microsoft Visual Studio Code](https://code.visualstudio.com)
|
|
19
|
-
- [Hyper](https://hyper.is/)
|
|
20
|
-
- [Upterm](https://github.com/railsware/upterm)
|
|
21
|
-
- [Script Runner](https://github.com/ioquatix/script-runner) for Atom.
|
|
22
|
-
- [Theia](https://github.com/theia-ide/theia)
|
|
23
|
-
- [FreeMAN](https://github.com/matthew-matvei/freeman) file manager
|
|
24
|
-
- [terminus](https://atom.io/packages/terminus) - An Atom plugin for providing terminals inside your Atom workspace.
|
|
25
|
-
- [x-terminal](https://atom.io/packages/x-terminal) - Also an Atom plugin that provides terminals inside your Atom workspace.
|
|
26
|
-
- [Termination](https://atom.io/packages/termination) - Also an Atom plugin that provides terminals inside your Atom workspace.
|
|
27
|
-
- [atom-xterm](https://atom.io/packages/atom-xterm) - Also an Atom plugin that provides terminals inside your Atom workspace.
|
|
28
|
-
- [electerm](https://github.com/electerm/electerm) Terminal/SSH/SFTP client(Linux, macOS, Windows).
|
|
29
|
-
- [Extraterm](http://extraterm.org/)
|
|
30
|
-
- [Wetty](https://github.com/krishnasrinivas/wetty) Browser based Terminal over HTTP and HTTPS
|
|
31
|
-
- [nomad](https://github.com/lukebarnard1/nomad-term)
|
|
32
|
-
- [DockerStacks](https://github.com/sfx101/docker-stacks) Local LAMP/LEMP stack using Docker
|
|
33
|
-
|
|
34
|
-
Do you use node-pty in your application as well? Please open a [Pull Request](https://github.com/Tyriar/node-pty/pulls) to include it here. We would love to have it in our list.
|
|
16
|
+
The full API for node-pty is contained within the [TypeScript declaration file](https://github.com/microsoft/node-pty/blob/main/typings/node-pty.d.ts), use the branch/tag picker in GitHub (`w`) to navigate to the correct version of the API.
|
|
35
17
|
|
|
36
18
|
## Example Usage
|
|
37
19
|
|
|
@@ -58,6 +40,35 @@ ptyProcess.resize(100, 40);
|
|
|
58
40
|
ptyProcess.write('ls\r');
|
|
59
41
|
```
|
|
60
42
|
|
|
43
|
+
## Real-world Uses
|
|
44
|
+
|
|
45
|
+
`node-pty` powers many different terminal emulators, including:
|
|
46
|
+
|
|
47
|
+
- [Microsoft Visual Studio Code](https://code.visualstudio.com)
|
|
48
|
+
- [Hyper](https://hyper.is/)
|
|
49
|
+
- [Upterm](https://github.com/railsware/upterm)
|
|
50
|
+
- [Script Runner](https://github.com/ioquatix/script-runner) for Atom.
|
|
51
|
+
- [Theia](https://github.com/theia-ide/theia)
|
|
52
|
+
- [FreeMAN](https://github.com/matthew-matvei/freeman) file manager
|
|
53
|
+
- [terminus](https://atom.io/packages/terminus) - An Atom plugin for providing terminals inside your Atom workspace.
|
|
54
|
+
- [x-terminal](https://atom.io/packages/x-terminal) - Also an Atom plugin that provides terminals inside your Atom workspace.
|
|
55
|
+
- [Termination](https://atom.io/packages/termination) - Also an Atom plugin that provides terminals inside your Atom workspace.
|
|
56
|
+
- [atom-xterm](https://atom.io/packages/atom-xterm) - Also an Atom plugin that provides terminals inside your Atom workspace.
|
|
57
|
+
- [electerm](https://github.com/electerm/electerm) Terminal/SSH/SFTP client(Linux, macOS, Windows).
|
|
58
|
+
- [Extraterm](http://extraterm.org/)
|
|
59
|
+
- [Wetty](https://github.com/krishnasrinivas/wetty) Browser based Terminal over HTTP and HTTPS
|
|
60
|
+
- [nomad](https://github.com/lukebarnard1/nomad-term)
|
|
61
|
+
- [DockerStacks](https://github.com/sfx101/docker-stacks) Local LAMP/LEMP stack using Docker
|
|
62
|
+
- [TeleType](https://github.com/akshaykmr/TeleType): cli tool that allows you to share your terminal online conveniently. Show off mad cli-fu, help a colleague, teach, or troubleshoot.
|
|
63
|
+
- [mesos-term](https://github.com/criteo/mesos-term): A web terminal for Apache Mesos. It allows to execute commands within containers.
|
|
64
|
+
- [Commas](https://github.com/CyanSalt/commas): A hackable terminal and command runner.
|
|
65
|
+
- [ENiGMA½ BBS Software](https://github.com/NuSkooler/enigma-bbs): A modern BBS software with a nostalgic flair!
|
|
66
|
+
- [Tinkerun](https://github.com/tinkerun/tinkerun): A new way of running Tinker.
|
|
67
|
+
- [Tess](https://github.com/SquitchYT/Tess/): Hackable, simple and rapid terminal for the new era of technology 👍
|
|
68
|
+
- [NxShell](https://nxshell.github.io/): An easy to use new terminal for Windows/Linux/MacOS platform.
|
|
69
|
+
|
|
70
|
+
Do you use node-pty in your application as well? Please open a [Pull Request](https://github.com/Tyriar/node-pty/pulls) to include it here. We would love to have it in our list.
|
|
71
|
+
|
|
61
72
|
## Building
|
|
62
73
|
|
|
63
74
|
```bash
|
|
@@ -69,15 +80,17 @@ npm run build
|
|
|
69
80
|
|
|
70
81
|
## Dependencies
|
|
71
82
|
|
|
72
|
-
|
|
83
|
+
Node.JS 12+ or Electron 8+ is required to use `node-pty`.
|
|
73
84
|
|
|
74
|
-
|
|
85
|
+
### Linux (apt)
|
|
86
|
+
|
|
87
|
+
```sh
|
|
75
88
|
sudo apt install -y make python build-essential
|
|
76
89
|
```
|
|
77
90
|
|
|
78
|
-
|
|
91
|
+
### macOS
|
|
79
92
|
|
|
80
|
-
|
|
93
|
+
Xcode is needed to compile the sources, this can be installed from the App Store.
|
|
81
94
|
|
|
82
95
|
### Windows
|
|
83
96
|
|
|
@@ -90,7 +103,6 @@ npm install --global --production windows-build-tools
|
|
|
90
103
|
The following are also needed:
|
|
91
104
|
|
|
92
105
|
- [Windows SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk) - only the "Desktop C++ Apps" components are needed to be installed
|
|
93
|
-
- Node.JS 10+
|
|
94
106
|
|
|
95
107
|
## Debugging
|
|
96
108
|
|
|
@@ -115,9 +127,9 @@ const RESUME = '\x11'; // XON
|
|
|
115
127
|
const ptyProcess = pty.spawn(shell, [], {handleFlowControl: true});
|
|
116
128
|
|
|
117
129
|
// flow control in action
|
|
118
|
-
ptyProcess.write(PAUSE); // pty will block and pause the
|
|
130
|
+
ptyProcess.write(PAUSE); // pty will block and pause the child program
|
|
119
131
|
...
|
|
120
|
-
ptyProcess.write(RESUME); // pty will enter flow mode and resume the
|
|
132
|
+
ptyProcess.write(RESUME); // pty will enter flow mode and resume the child program
|
|
121
133
|
|
|
122
134
|
// temporarily disable/re-enable flow control
|
|
123
135
|
ptyProcess.handleFlowControl = false;
|
package/binding.gyp
CHANGED
|
@@ -317,28 +317,6 @@ private:
|
|
|
317
317
|
GetConsoleFontSize_t *m_GetConsoleFontSize;
|
|
318
318
|
};
|
|
319
319
|
|
|
320
|
-
class UndocumentedXPFontAPI : public XPFontAPI {
|
|
321
|
-
public:
|
|
322
|
-
UndocumentedXPFontAPI() : m_kernel32(L"kernel32.dll") {
|
|
323
|
-
GET_MODULE_PROC(m_kernel32, SetConsoleFont);
|
|
324
|
-
GET_MODULE_PROC(m_kernel32, GetNumberOfConsoleFonts);
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
bool valid() const {
|
|
328
|
-
return this->XPFontAPI::valid() &&
|
|
329
|
-
m_SetConsoleFont != NULL &&
|
|
330
|
-
m_GetNumberOfConsoleFonts != NULL;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
DEFINE_ACCESSOR(SetConsoleFont)
|
|
334
|
-
DEFINE_ACCESSOR(GetNumberOfConsoleFonts)
|
|
335
|
-
|
|
336
|
-
private:
|
|
337
|
-
OsModule m_kernel32;
|
|
338
|
-
SetConsoleFont_t *m_SetConsoleFont;
|
|
339
|
-
GetNumberOfConsoleFonts_t *m_GetNumberOfConsoleFonts;
|
|
340
|
-
};
|
|
341
|
-
|
|
342
320
|
class VistaFontAPI : public XPFontAPI {
|
|
343
321
|
public:
|
|
344
322
|
VistaFontAPI() : m_kernel32(L"kernel32.dll") {
|
|
@@ -628,41 +606,6 @@ struct FontSizeComparator {
|
|
|
628
606
|
}
|
|
629
607
|
};
|
|
630
608
|
|
|
631
|
-
static void setSmallFontXP(UndocumentedXPFontAPI &api, HANDLE conout) {
|
|
632
|
-
// Read the console font table and sort it from smallest to largest.
|
|
633
|
-
const DWORD fontCount = api.GetNumberOfConsoleFonts()();
|
|
634
|
-
trace("setSmallFontXP: number of console fonts: %u",
|
|
635
|
-
static_cast<unsigned>(fontCount));
|
|
636
|
-
std::vector<std::pair<DWORD, COORD> > table =
|
|
637
|
-
readFontTable(api, conout, fontCount);
|
|
638
|
-
std::sort(table.begin(), table.end(), FontSizeComparator());
|
|
639
|
-
for (size_t i = 0; i < table.size(); ++i) {
|
|
640
|
-
// Skip especially narrow fonts to permit narrower terminals.
|
|
641
|
-
if (table[i].second.X < 4) {
|
|
642
|
-
continue;
|
|
643
|
-
}
|
|
644
|
-
trace("setSmallFontXP: setting font to %u",
|
|
645
|
-
static_cast<unsigned>(table[i].first));
|
|
646
|
-
if (!api.SetConsoleFont()(conout, table[i].first)) {
|
|
647
|
-
trace("setSmallFontXP: SetConsoleFont call failed");
|
|
648
|
-
continue;
|
|
649
|
-
}
|
|
650
|
-
AGENT_CONSOLE_FONT_INFO info;
|
|
651
|
-
if (!api.GetCurrentConsoleFont()(conout, FALSE, &info)) {
|
|
652
|
-
trace("setSmallFontXP: GetCurrentConsoleFont call failed");
|
|
653
|
-
return;
|
|
654
|
-
}
|
|
655
|
-
if (info.nFont != table[i].first) {
|
|
656
|
-
trace("setSmallFontXP: font was not set");
|
|
657
|
-
dumpXPFont(api, conout, "setSmallFontXP: post-call font: ");
|
|
658
|
-
continue;
|
|
659
|
-
}
|
|
660
|
-
trace("setSmallFontXP: success");
|
|
661
|
-
return;
|
|
662
|
-
}
|
|
663
|
-
trace("setSmallFontXP: failure");
|
|
664
|
-
}
|
|
665
|
-
|
|
666
609
|
} // anonymous namespace
|
|
667
610
|
|
|
668
611
|
// A Windows console window can never be larger than the desktop window. To
|
|
@@ -684,15 +627,6 @@ void setSmallFont(HANDLE conout, int columns, bool isNewW10) {
|
|
|
684
627
|
dumpFontTable(conout, "new font table: ");
|
|
685
628
|
return;
|
|
686
629
|
}
|
|
687
|
-
UndocumentedXPFontAPI xp;
|
|
688
|
-
if (xp.valid()) {
|
|
689
|
-
dumpXPFont(xp, conout, "previous font: ");
|
|
690
|
-
dumpFontTable(conout, "previous font table: ");
|
|
691
|
-
setSmallFontXP(xp, conout);
|
|
692
|
-
dumpXPFont(xp, conout, "new font: ");
|
|
693
|
-
dumpFontTable(conout, "new font table: ");
|
|
694
|
-
return;
|
|
695
|
-
}
|
|
696
630
|
trace("setSmallFont: neither Vista nor XP APIs detected -- giving up");
|
|
697
631
|
dumpFontTable(conout, "font table: ");
|
|
698
632
|
}
|
package/lib/eventEmitter2.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright (c) 2019, Microsoft Corporation (MIT License).
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.EventEmitter2 = void 0;
|
|
6
7
|
var EventEmitter2 = /** @class */ (function () {
|
|
7
8
|
function EventEmitter2() {
|
|
8
9
|
this._listeners = [];
|
|
@@ -28,7 +29,7 @@ var EventEmitter2 = /** @class */ (function () {
|
|
|
28
29
|
}
|
|
29
30
|
return this._event;
|
|
30
31
|
},
|
|
31
|
-
enumerable:
|
|
32
|
+
enumerable: false,
|
|
32
33
|
configurable: true
|
|
33
34
|
});
|
|
34
35
|
EventEmitter2.prototype.fire = function (data) {
|
package/lib/eventEmitter2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventEmitter2.js","sourceRoot":"","sources":["../src/eventEmitter2.ts"],"names":[],"mappings":";AAAA;;GAEG
|
|
1
|
+
{"version":3,"file":"eventEmitter2.js","sourceRoot":"","sources":["../src/eventEmitter2.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAYH;IAAA;QACU,eAAU,GAAmB,EAAE,CAAC;IAgC1C,CAAC;IA7BC,sBAAW,gCAAK;aAAhB;YAAA,iBAkBC;YAjBC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,MAAM,GAAG,UAAC,QAAuB;oBACpC,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC/B,IAAM,UAAU,GAAG;wBACjB,OAAO,EAAE;4BACP,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCAC/C,IAAI,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;oCACnC,KAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oCAC7B,OAAO;iCACR;6BACF;wBACH,CAAC;qBACF,CAAC;oBACF,OAAO,UAAU,CAAC;gBACpB,CAAC,CAAC;aACH;YACD,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;;;OAAA;IAEM,4BAAI,GAAX,UAAY,IAAO;QACjB,IAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SAChC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SAChC;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,AAjCD,IAiCC;AAjCY,sCAAa"}
|
package/lib/index.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Copyright (c) 2018, Microsoft Corporation (MIT License).
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.native = exports.open = exports.createTerminal = exports.fork = exports.spawn = void 0;
|
|
8
9
|
var terminalCtor;
|
|
9
10
|
if (process.platform === 'win32') {
|
|
10
11
|
terminalCtor = require('./windowsTerminal').WindowsTerminal;
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAKH,IAAI,YAAiB,CAAC;AACtB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;IAChC,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,eAAe,CAAC;CAC7D;KAAM;IACL,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,YAAY,CAAC;CACvD;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,KAAK,CAAC,IAAa,EAAE,IAAwB,EAAE,GAA8C;IAC3G,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAFD,sBAEC;AAED,kBAAkB;AAClB,SAAgB,IAAI,CAAC,IAAa,EAAE,IAAwB,EAAE,GAA8C;IAC1G,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAFD,oBAEC;AAED,kBAAkB;AAClB,SAAgB,cAAc,CAAC,IAAa,EAAE,IAAwB,EAAE,GAA8C;IACpH,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAFD,wCAEC;AAED,SAAgB,IAAI,CAAC,OAAwB;IAC3C,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAFD,oBAEC;AAED;;;GAGG;AACU,QAAA,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) 2020, Microsoft Corporation (MIT License).
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getWorkerPipeName = void 0;
|
|
7
|
+
function getWorkerPipeName(conoutPipeName) {
|
|
8
|
+
return conoutPipeName + "-worker";
|
|
9
|
+
}
|
|
10
|
+
exports.getWorkerPipeName = getWorkerPipeName;
|
|
11
|
+
//# sourceMappingURL=conout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conout.js","sourceRoot":"","sources":["../../src/shared/conout.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAUH,SAAgB,iBAAiB,CAAC,cAAsB;IACtD,OAAU,cAAc,YAAS,CAAC;AACpC,CAAC;AAFD,8CAEC"}
|
package/lib/terminal.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Copyright (c) 2018, Microsoft Corporation (MIT License).
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.Terminal = exports.DEFAULT_ROWS = exports.DEFAULT_COLS = void 0;
|
|
8
9
|
var events_1 = require("events");
|
|
9
10
|
var eventEmitter2_1 = require("./eventEmitter2");
|
|
10
11
|
exports.DEFAULT_COLS = 80;
|
|
@@ -42,27 +43,27 @@ var Terminal = /** @class */ (function () {
|
|
|
42
43
|
}
|
|
43
44
|
Object.defineProperty(Terminal.prototype, "onData", {
|
|
44
45
|
get: function () { return this._onData.event; },
|
|
45
|
-
enumerable:
|
|
46
|
+
enumerable: false,
|
|
46
47
|
configurable: true
|
|
47
48
|
});
|
|
48
49
|
Object.defineProperty(Terminal.prototype, "onExit", {
|
|
49
50
|
get: function () { return this._onExit.event; },
|
|
50
|
-
enumerable:
|
|
51
|
+
enumerable: false,
|
|
51
52
|
configurable: true
|
|
52
53
|
});
|
|
53
54
|
Object.defineProperty(Terminal.prototype, "pid", {
|
|
54
55
|
get: function () { return this._pid; },
|
|
55
|
-
enumerable:
|
|
56
|
+
enumerable: false,
|
|
56
57
|
configurable: true
|
|
57
58
|
});
|
|
58
59
|
Object.defineProperty(Terminal.prototype, "cols", {
|
|
59
60
|
get: function () { return this._cols; },
|
|
60
|
-
enumerable:
|
|
61
|
+
enumerable: false,
|
|
61
62
|
configurable: true
|
|
62
63
|
});
|
|
63
64
|
Object.defineProperty(Terminal.prototype, "rows", {
|
|
64
65
|
get: function () { return this._rows; },
|
|
65
|
-
enumerable:
|
|
66
|
+
enumerable: false,
|
|
66
67
|
configurable: true
|
|
67
68
|
});
|
|
68
69
|
Terminal.prototype.write = function (data) {
|
|
@@ -160,7 +161,6 @@ var Terminal = /** @class */ (function () {
|
|
|
160
161
|
this._socket.once(eventName, listener);
|
|
161
162
|
};
|
|
162
163
|
Terminal.prototype._close = function () {
|
|
163
|
-
this._socket.writable = false;
|
|
164
164
|
this._socket.readable = false;
|
|
165
165
|
this.write = function () { };
|
|
166
166
|
this.end = function () { };
|
|
@@ -171,6 +171,9 @@ var Terminal = /** @class */ (function () {
|
|
|
171
171
|
var keys = Object.keys(env || {});
|
|
172
172
|
var pairs = [];
|
|
173
173
|
for (var i = 0; i < keys.length; i++) {
|
|
174
|
+
if (keys[i] === undefined) {
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
174
177
|
pairs.push(keys[i] + '=' + env[keys[i]]);
|
|
175
178
|
}
|
|
176
179
|
return pairs;
|
package/lib/terminal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.js","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":";AAAA;;;;GAIG
|
|
1
|
+
{"version":3,"file":"terminal.js","sourceRoot":"","sources":["../src/terminal.ts"],"names":[],"mappings":"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"}
|
package/lib/terminal.test.js
CHANGED
|
@@ -55,21 +55,21 @@ var TestTerminal = /** @class */ (function (_super) {
|
|
|
55
55
|
get: function () {
|
|
56
56
|
throw new Error('Method not implemented.');
|
|
57
57
|
},
|
|
58
|
-
enumerable:
|
|
58
|
+
enumerable: false,
|
|
59
59
|
configurable: true
|
|
60
60
|
});
|
|
61
61
|
Object.defineProperty(TestTerminal.prototype, "master", {
|
|
62
62
|
get: function () {
|
|
63
63
|
throw new Error('Method not implemented.');
|
|
64
64
|
},
|
|
65
|
-
enumerable:
|
|
65
|
+
enumerable: false,
|
|
66
66
|
configurable: true
|
|
67
67
|
});
|
|
68
68
|
Object.defineProperty(TestTerminal.prototype, "slave", {
|
|
69
69
|
get: function () {
|
|
70
70
|
throw new Error('Method not implemented.');
|
|
71
71
|
},
|
|
72
|
-
enumerable:
|
|
72
|
+
enumerable: false,
|
|
73
73
|
configurable: true
|
|
74
74
|
});
|
|
75
75
|
return TestTerminal;
|
package/lib/testUtils.test.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright (c) 2019, Microsoft Corporation (MIT License).
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.pollUntil = void 0;
|
|
6
7
|
function pollUntil(cb, timeout, interval) {
|
|
7
8
|
return new Promise(function (resolve, reject) {
|
|
8
9
|
var intervalId = setInterval(function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testUtils.test.js","sourceRoot":"","sources":["../src/testUtils.test.ts"],"names":[],"mappings":";AAAA;;GAEG
|
|
1
|
+
{"version":3,"file":"testUtils.test.js","sourceRoot":"","sources":["../src/testUtils.test.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,SAAgB,SAAS,CAAC,EAAiB,EAAE,OAAe,EAAE,QAAgB;IAC5E,OAAO,IAAI,OAAO,CAAO,UAAC,OAAO,EAAE,MAAM;QACvC,IAAM,UAAU,GAAG,WAAW,CAAC;YAC7B,IAAI,EAAE,EAAE,EAAE;gBACR,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC1B,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,OAAO,EAAE,CAAC;aACX;QACH,CAAC,EAAE,QAAQ,CAAC,CAAC;QACb,IAAM,SAAS,GAAG,UAAU,CAAC;YAC3B,aAAa,CAAC,UAAU,CAAC,CAAC;YAC1B,IAAI,EAAE,EAAE,EAAE;gBACR,OAAO,EAAE,CAAC;aACX;iBAAM;gBACL,MAAM,EAAE,CAAC;aACV;QACH,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAlBD,8BAkBC"}
|
package/lib/unixTerminal.js
CHANGED
|
@@ -13,6 +13,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
13
13
|
};
|
|
14
14
|
})();
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.UnixTerminal = void 0;
|
|
16
17
|
/**
|
|
17
18
|
* Copyright (c) 2012-2015, Christopher Jeffrey (MIT License)
|
|
18
19
|
* Copyright (c) 2016, Daniel Imms (MIT License).
|
|
@@ -145,12 +146,12 @@ var UnixTerminal = /** @class */ (function (_super) {
|
|
|
145
146
|
}
|
|
146
147
|
Object.defineProperty(UnixTerminal.prototype, "master", {
|
|
147
148
|
get: function () { return this._master; },
|
|
148
|
-
enumerable:
|
|
149
|
+
enumerable: false,
|
|
149
150
|
configurable: true
|
|
150
151
|
});
|
|
151
152
|
Object.defineProperty(UnixTerminal.prototype, "slave", {
|
|
152
153
|
get: function () { return this._slave; },
|
|
153
|
-
enumerable:
|
|
154
|
+
enumerable: false,
|
|
154
155
|
configurable: true
|
|
155
156
|
});
|
|
156
157
|
UnixTerminal.prototype._write = function (data) {
|
|
@@ -225,7 +226,7 @@ var UnixTerminal = /** @class */ (function (_super) {
|
|
|
225
226
|
get: function () {
|
|
226
227
|
return pty.process(this._fd, this._pty) || this._file;
|
|
227
228
|
},
|
|
228
|
-
enumerable:
|
|
229
|
+
enumerable: false,
|
|
229
230
|
configurable: true
|
|
230
231
|
});
|
|
231
232
|
/**
|
package/lib/unixTerminal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unixTerminal.js","sourceRoot":"","sources":["../src/unixTerminal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"unixTerminal.js","sourceRoot":"","sources":["../src/unixTerminal.ts"],"names":[],"mappings":"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"}
|
package/lib/utils.js
CHANGED
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,SAAgB,MAAM,CAAC,MAAW;IAAE,iBAAiB;SAAjB,UAAiB,EAAjB,qBAAiB,EAAjB,IAAiB;QAAjB,gCAAiB;;IACnD,OAAO,CAAC,OAAO,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,EAAzB,CAAyB,CAAC,EAA7D,CAA6D,CAAC,CAAC;IACzF,OAAO,MAAM,CAAC;AAChB,CAAC;AAHD,wBAGC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) 2020, Microsoft Corporation (MIT License).
|
|
4
|
+
*/
|
|
5
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
6
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
7
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
8
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
9
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
10
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
11
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
15
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
16
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
17
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
18
|
+
function step(op) {
|
|
19
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
20
|
+
while (_) try {
|
|
21
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
22
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
23
|
+
switch (op[0]) {
|
|
24
|
+
case 0: case 1: t = op; break;
|
|
25
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
26
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
27
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
28
|
+
default:
|
|
29
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
30
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
31
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
32
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
33
|
+
if (t[2]) _.ops.pop();
|
|
34
|
+
_.trys.pop(); continue;
|
|
35
|
+
}
|
|
36
|
+
op = body.call(thisArg, _);
|
|
37
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
38
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.ConoutConnection = void 0;
|
|
43
|
+
var worker_threads_1 = require("worker_threads");
|
|
44
|
+
var conout_1 = require("./shared/conout");
|
|
45
|
+
var path_1 = require("path");
|
|
46
|
+
var eventEmitter2_1 = require("./eventEmitter2");
|
|
47
|
+
/**
|
|
48
|
+
* The amount of time to wait for additional data after the conpty shell process has exited before
|
|
49
|
+
* shutting down the worker and sockets. The timer will be reset if a new data event comes in after
|
|
50
|
+
* the timer has started.
|
|
51
|
+
*/
|
|
52
|
+
var FLUSH_DATA_INTERVAL = 1000;
|
|
53
|
+
/**
|
|
54
|
+
* Connects to and manages the lifecycle of the conout socket. This socket must be drained on
|
|
55
|
+
* another thread in order to avoid deadlocks where Conpty waits for the out socket to drain
|
|
56
|
+
* when `ClosePseudoConsole` is called. This happens when data is being written to the terminal when
|
|
57
|
+
* the pty is closed.
|
|
58
|
+
*
|
|
59
|
+
* See also:
|
|
60
|
+
* - https://github.com/microsoft/node-pty/issues/375
|
|
61
|
+
* - https://github.com/microsoft/vscode/issues/76548
|
|
62
|
+
* - https://github.com/microsoft/terminal/issues/1810
|
|
63
|
+
* - https://docs.microsoft.com/en-us/windows/console/closepseudoconsole
|
|
64
|
+
*/
|
|
65
|
+
var ConoutConnection = /** @class */ (function () {
|
|
66
|
+
function ConoutConnection(_conoutPipeName) {
|
|
67
|
+
var _this = this;
|
|
68
|
+
this._conoutPipeName = _conoutPipeName;
|
|
69
|
+
this._isDisposed = false;
|
|
70
|
+
this._onReady = new eventEmitter2_1.EventEmitter2();
|
|
71
|
+
var workerData = { conoutPipeName: _conoutPipeName };
|
|
72
|
+
var scriptPath = __dirname.replace('node_modules.asar', 'node_modules.asar.unpacked');
|
|
73
|
+
this._worker = new worker_threads_1.Worker(path_1.join(scriptPath, 'worker/conoutSocketWorker.js'), { workerData: workerData });
|
|
74
|
+
this._worker.on('message', function (message) {
|
|
75
|
+
switch (message) {
|
|
76
|
+
case 1 /* READY */:
|
|
77
|
+
_this._onReady.fire();
|
|
78
|
+
return;
|
|
79
|
+
default:
|
|
80
|
+
console.warn('Unexpected ConoutWorkerMessage', message);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
Object.defineProperty(ConoutConnection.prototype, "onReady", {
|
|
85
|
+
get: function () { return this._onReady.event; },
|
|
86
|
+
enumerable: false,
|
|
87
|
+
configurable: true
|
|
88
|
+
});
|
|
89
|
+
ConoutConnection.prototype.dispose = function () {
|
|
90
|
+
if (this._isDisposed) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
this._isDisposed = true;
|
|
94
|
+
// Drain all data from the socket before closing
|
|
95
|
+
this._drainDataAndClose();
|
|
96
|
+
};
|
|
97
|
+
ConoutConnection.prototype.connectSocket = function (socket) {
|
|
98
|
+
socket.connect(conout_1.getWorkerPipeName(this._conoutPipeName));
|
|
99
|
+
};
|
|
100
|
+
ConoutConnection.prototype._drainDataAndClose = function () {
|
|
101
|
+
var _this = this;
|
|
102
|
+
if (this._drainTimeout) {
|
|
103
|
+
clearTimeout(this._drainTimeout);
|
|
104
|
+
}
|
|
105
|
+
this._drainTimeout = setTimeout(function () { return _this._destroySocket(); }, FLUSH_DATA_INTERVAL);
|
|
106
|
+
};
|
|
107
|
+
ConoutConnection.prototype._destroySocket = function () {
|
|
108
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
109
|
+
return __generator(this, function (_a) {
|
|
110
|
+
switch (_a.label) {
|
|
111
|
+
case 0: return [4 /*yield*/, this._worker.terminate()];
|
|
112
|
+
case 1:
|
|
113
|
+
_a.sent();
|
|
114
|
+
return [2 /*return*/];
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
return ConoutConnection;
|
|
120
|
+
}());
|
|
121
|
+
exports.ConoutConnection = ConoutConnection;
|
|
122
|
+
//# sourceMappingURL=windowsConoutConnection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"windowsConoutConnection.js","sourceRoot":"","sources":["../src/windowsConoutConnection.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iDAAwC;AAGxC,0CAAsF;AACtF,6BAA4B;AAC5B,iDAAwD;AAExD;;;;GAIG;AACH,IAAM,mBAAmB,GAAG,IAAI,CAAC;AAEjC;;;;;;;;;;;GAWG;AACH;IAQE,0BACU,eAAuB;QADjC,iBAeC;QAdS,oBAAe,GAAf,eAAe,CAAQ;QANzB,gBAAW,GAAY,KAAK,CAAC;QAE7B,aAAQ,GAAG,IAAI,6BAAa,EAAQ,CAAC;QAM3C,IAAM,UAAU,GAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;QACpE,IAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,4BAA4B,CAAC,CAAC;QACxF,IAAI,CAAC,OAAO,GAAG,IAAI,uBAAM,CAAC,WAAI,CAAC,UAAU,EAAE,8BAA8B,CAAC,EAAE,EAAE,UAAU,YAAA,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,UAAC,OAA4B;YACtD,QAAQ,OAAO,EAAE;gBACf;oBACE,KAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACrB,OAAO;gBACT;oBACE,OAAO,CAAC,IAAI,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC;aAC3D;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAjBD,sBAAW,qCAAO;aAAlB,cAAqC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;;;OAAA;IAmBlE,kCAAO,GAAP;QACE,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,OAAO;SACR;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,gDAAgD;QAChD,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,wCAAa,GAAb,UAAc,MAAc;QAC1B,MAAM,CAAC,OAAO,CAAC,0BAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEO,6CAAkB,GAA1B;QAAA,iBAKC;QAJC,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAClC;QACD,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,cAAM,OAAA,KAAI,CAAC,cAAc,EAAE,EAArB,CAAqB,EAAE,mBAAmB,CAAC,CAAC;IACpF,CAAC;IAEa,yCAAc,GAA5B;;;;4BACE,qBAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAA;;wBAA9B,SAA8B,CAAC;;;;;KAChC;IACH,uBAAC;AAAD,CAAC,AAhDD,IAgDC;AAhDY,4CAAgB"}
|