node-pty 1.1.0-beta30 → 1.1.0-beta32
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/deps/winpty/src/winpty.gyp +29 -1
- package/lib/windowsConoutConnection.js +9 -2
- package/lib/windowsConoutConnection.js.map +1 -1
- package/lib/windowsPtyAgent.js +1 -1
- package/lib/windowsPtyAgent.js.map +1 -1
- package/lib/worker/conoutSocketWorker.js +10 -13
- package/lib/worker/conoutSocketWorker.js.map +1 -1
- package/package.json +1 -1
- package/src/win/conpty.cc +5 -3
- package/src/windowsConoutConnection.ts +9 -2
- package/src/windowsPtyAgent.ts +1 -1
- package/src/worker/conoutSocketWorker.ts +12 -15
- package/third_party/conpty/1.22.250314001/win10-arm64/OpenConsole.exe +0 -0
- package/third_party/conpty/1.22.250314001/win10-arm64/conpty.dll +0 -0
- package/third_party/conpty/1.22.250314001/win10-x64/OpenConsole.exe +0 -0
- package/third_party/conpty/1.22.250314001/win10-x64/conpty.dll +0 -0
- package/scripts/publish.js +0 -65
- package/third_party/conpty/1.22.250204002/win10-arm64/OpenConsole.exe +0 -0
- package/third_party/conpty/1.22.250204002/win10-arm64/conpty.dll +0 -0
- package/third_party/conpty/1.22.250204002/win10-x64/OpenConsole.exe +0 -0
- package/third_party/conpty/1.22.250204002/win10-x64/conpty.dll +0 -0
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
# Add the 'src/gen' directory to the include path and force gyp to
|
|
24
24
|
# run the script (re)generating the version header.
|
|
25
25
|
'<!(cmd /c "cd shared && UpdateGenVersion.bat <(WINPTY_COMMIT_HASH)")',
|
|
26
|
-
]
|
|
26
|
+
]
|
|
27
27
|
},
|
|
28
28
|
'targets' : [
|
|
29
29
|
{
|
|
@@ -40,12 +40,26 @@
|
|
|
40
40
|
'-lshell32',
|
|
41
41
|
'-luser32',
|
|
42
42
|
],
|
|
43
|
+
'msvs_configuration_attributes': {
|
|
44
|
+
'SpectreMitigation': 'Spectre'
|
|
45
|
+
},
|
|
43
46
|
'msvs_settings': {
|
|
44
47
|
# Specify this setting here to override a setting from somewhere
|
|
45
48
|
# else, such as node's common.gypi.
|
|
46
49
|
'VCCLCompilerTool': {
|
|
47
50
|
'ExceptionHandling': '1', # /EHsc
|
|
51
|
+
'AdditionalOptions': [
|
|
52
|
+
'/guard:cf',
|
|
53
|
+
'/w34244',
|
|
54
|
+
'/w34267',
|
|
55
|
+
'/ZH:SHA_256'
|
|
56
|
+
]
|
|
48
57
|
},
|
|
58
|
+
'VCLinkerTool': {
|
|
59
|
+
'AdditionalOptions': [
|
|
60
|
+
'/guard:cf'
|
|
61
|
+
]
|
|
62
|
+
}
|
|
49
63
|
},
|
|
50
64
|
'sources' : [
|
|
51
65
|
'agent/Agent.h',
|
|
@@ -128,12 +142,26 @@
|
|
|
128
142
|
'-ladvapi32',
|
|
129
143
|
'-luser32',
|
|
130
144
|
],
|
|
145
|
+
'msvs_configuration_attributes': {
|
|
146
|
+
'SpectreMitigation': 'Spectre'
|
|
147
|
+
},
|
|
131
148
|
'msvs_settings': {
|
|
132
149
|
# Specify this setting here to override a setting from somewhere
|
|
133
150
|
# else, such as node's common.gypi.
|
|
134
151
|
'VCCLCompilerTool': {
|
|
135
152
|
'ExceptionHandling': '1', # /EHsc
|
|
153
|
+
'AdditionalOptions': [
|
|
154
|
+
'/guard:cf',
|
|
155
|
+
'/w34244',
|
|
156
|
+
'/w34267',
|
|
157
|
+
'/ZH:SHA_256'
|
|
158
|
+
]
|
|
136
159
|
},
|
|
160
|
+
'VCLinkerTool': {
|
|
161
|
+
'AdditionalOptions': [
|
|
162
|
+
'/guard:cf'
|
|
163
|
+
]
|
|
164
|
+
}
|
|
137
165
|
},
|
|
138
166
|
'sources' : [
|
|
139
167
|
'include/winpty.h',
|
|
@@ -63,12 +63,15 @@ var FLUSH_DATA_INTERVAL = 1000;
|
|
|
63
63
|
* - https://docs.microsoft.com/en-us/windows/console/closepseudoconsole
|
|
64
64
|
*/
|
|
65
65
|
var ConoutConnection = /** @class */ (function () {
|
|
66
|
-
function ConoutConnection(_conoutPipeName) {
|
|
66
|
+
function ConoutConnection(_conoutPipeName, _useConptyDll) {
|
|
67
67
|
var _this = this;
|
|
68
68
|
this._conoutPipeName = _conoutPipeName;
|
|
69
|
+
this._useConptyDll = _useConptyDll;
|
|
69
70
|
this._isDisposed = false;
|
|
70
71
|
this._onReady = new eventEmitter2_1.EventEmitter2();
|
|
71
|
-
var workerData = {
|
|
72
|
+
var workerData = {
|
|
73
|
+
conoutPipeName: _conoutPipeName
|
|
74
|
+
};
|
|
72
75
|
var scriptPath = __dirname.replace('node_modules.asar', 'node_modules.asar.unpacked');
|
|
73
76
|
this._worker = new worker_threads_1.Worker(path_1.join(scriptPath, 'worker/conoutSocketWorker.js'), { workerData: workerData });
|
|
74
77
|
this._worker.on('message', function (message) {
|
|
@@ -87,6 +90,10 @@ var ConoutConnection = /** @class */ (function () {
|
|
|
87
90
|
configurable: true
|
|
88
91
|
});
|
|
89
92
|
ConoutConnection.prototype.dispose = function () {
|
|
93
|
+
if (!this._useConptyDll && this._isDisposed) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
this._isDisposed = true;
|
|
90
97
|
// Drain all data from the socket before closing
|
|
91
98
|
this._drainDataAndClose();
|
|
92
99
|
};
|
|
@@ -1 +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;
|
|
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,EACvB,aAAsB;QAFhC,iBAkBC;QAjBS,oBAAe,GAAf,eAAe,CAAQ;QACvB,kBAAa,GAAb,aAAa,CAAS;QAPxB,gBAAW,GAAY,KAAK,CAAC;QAE7B,aAAQ,GAAG,IAAI,6BAAa,EAAQ,CAAC;QAO3C,IAAM,UAAU,GAAgB;YAC9B,cAAc,EAAE,eAAe;SAChC,CAAC;QACF,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;IApBD,sBAAW,qCAAO;aAAlB,cAAqC,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;;;OAAA;IAsBlE,kCAAO,GAAP;QACE,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,EAAE;YAC3C,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,AAnDD,IAmDC;AAnDY,4CAAgB"}
|
package/lib/windowsPtyAgent.js
CHANGED
|
@@ -94,7 +94,7 @@ var WindowsPtyAgent = /** @class */ (function () {
|
|
|
94
94
|
this._outSocket = new net_1.Socket();
|
|
95
95
|
this._outSocket.setEncoding('utf8');
|
|
96
96
|
// The conout socket must be ready out on another thread to avoid deadlocks
|
|
97
|
-
this._conoutSocketWorker = new windowsConoutConnection_1.ConoutConnection(term.conout);
|
|
97
|
+
this._conoutSocketWorker = new windowsConoutConnection_1.ConoutConnection(term.conout, this._useConptyDll);
|
|
98
98
|
this._conoutSocketWorker.onReady(function () {
|
|
99
99
|
_this._conoutSocketWorker.connectSocket(_this._outSocket);
|
|
100
100
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"windowsPtyAgent.js","sourceRoot":"","sources":["../src/windowsPtyAgent.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"windowsPtyAgent.js","sourceRoot":"","sources":["../src/windowsPtyAgent.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,uBAAyB;AACzB,uBAAyB;AACzB,2BAA6B;AAC7B,+CAAqC;AACrC,2BAA6B;AAE7B,qEAA6D;AAE7D,IAAI,YAA2B,CAAC;AAChC,IAAI,YAA2B,CAAC;AAEhC;;;;GAIG;AACH,IAAM,mBAAmB,GAAG,IAAI,CAAC;AAEjC;;;GAGG;AACH;IAmBE,yBACE,IAAY,EACZ,IAAuB,EACvB,GAAa,EACb,GAAW,EACX,IAAY,EACZ,IAAY,EACZ,KAAc,EACN,UAA+B,EAC/B,aAA8B,EACtC,mBAAoC;QAVtC,iBA6FC;QApFS,8BAAA,EAAA,qBAA8B;QACtC,oCAAA,EAAA,2BAAoC;QAF5B,eAAU,GAAV,UAAU,CAAqB;QAC/B,kBAAa,GAAb,aAAa,CAAiB;QAzBhC,SAAI,GAAW,CAAC,CAAC;QACjB,cAAS,GAAW,CAAC,CAAC;QA2B5B,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;YAC7D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,sBAAsB,EAAE,IAAI,KAAK,CAAC;SAC1D;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,YAAY,EAAE;gBACjB,IAAI;oBACF,YAAY,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;iBACxD;gBAAC,OAAO,UAAU,EAAE;oBACnB,IAAI;wBACF,YAAY,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;qBACtD;oBAAC,OAAO,UAAU,EAAE;wBACnB,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;wBACxC,qFAAqF;wBACrF,MAAM,UAAU,CAAC;qBAClB;iBACF;aACF;SACF;aAAM;YACL,IAAI,CAAC,YAAY,EAAE;gBACjB,IAAI;oBACF,YAAY,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;iBACrD;gBAAC,OAAO,UAAU,EAAE;oBACnB,IAAI;wBACF,YAAY,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;qBACnD;oBAAC,OAAO,UAAU,EAAE;wBACnB,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;wBACxC,qFAAqF;wBACrF,MAAM,UAAU,CAAC;qBAClB;iBACF;aACF;SACF;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;QAEhE,2BAA2B;QAC3B,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAExB,uBAAuB;QACvB,IAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAElD,oBAAoB;QACpB,IAAI,IAAqC,CAAC;QAC1C,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,GAAI,IAAI,CAAC,UAA4B,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE,mBAAmB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SACpJ;aAAM;YACL,IAAI,GAAI,IAAI,CAAC,UAA4B,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACvG,IAAI,CAAC,IAAI,GAAI,IAAuB,CAAC,GAAG,CAAC;YACzC,IAAI,CAAC,SAAS,GAAI,IAAuB,CAAC,QAAQ,CAAC;SACpD;QAED,4BAA4B;QAC5B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;QAEnB,0EAA0E;QAC1E,oBAAoB;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;QAErB,uEAAuE;QACvE,IAAI,CAAC,UAAU,GAAG,IAAI,YAAM,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,2EAA2E;QAC3E,IAAI,CAAC,mBAAmB,GAAG,IAAI,0CAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACjF,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;YAC/B,KAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,KAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE;YAC5B,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,IAAM,UAAU,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,IAAI,YAAM,CAAC;YAC1B,EAAE,EAAE,UAAU;YACd,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAM,OAAO,GAAI,IAAI,CAAC,UAA4B,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAvB,CAAuB,CAAC,CAAC;YAC/I,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;SAC9B;IACH,CAAC;IAnGD,sBAAW,qCAAQ;aAAnB,cAAgC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;;;OAAA;IACxD,sBAAW,sCAAS;aAApB,cAAiC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;;;OAAA;IAC1D,sBAAW,+BAAE;aAAb,cAAuB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;;;OAAA;IACzC,sBAAW,qCAAQ;aAAnB,cAAgC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;;;OAAA;IACxD,sBAAW,gCAAG;aAAd,cAA2B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;;OAAA;IAiGvC,gCAAM,GAAb,UAAc,IAAY,EAAE,IAAY;QACtC,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;gBAChC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;aAChE;YACA,IAAI,CAAC,UAA4B,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACrF,OAAO;SACR;QACA,IAAI,CAAC,UAA4B,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;IAEM,+BAAK,GAAZ;QACE,IAAI,IAAI,CAAC,UAAU,EAAE;YAClB,IAAI,CAAC,UAA4B,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SACzE;IACH,CAAC;IAEM,8BAAI,GAAX;QAAA,iBA0CC;QAzCC,uEAAuE;QACvE,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACvB,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAChC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,UAAA,kBAAkB;oBACnD,kBAAkB,CAAC,OAAO,CAAC,UAAC,GAAW;wBACrC,IAAI;4BACF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yBACnB;wBAAC,OAAO,CAAC,EAAE;4BACV,uDAAuD;yBACxD;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACF,IAAI,CAAC,UAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBACvE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;aACpC;iBAAM;gBACL,6DAA6D;gBAC7D,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,UAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBACvE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE;oBACzB,KAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;gBACrC,CAAC,CAAC,CAAC;aACJ;SACF;aAAM;YACL,6EAA6E;YAC7E,+DAA+D;YAC/D,2EAA2E;YAC3E,yEAAyE;YACzE,kDAAkD;YAClD,2BAA2B;YAC3B,IAAM,WAAW,GAAc,IAAI,CAAC,UAA4B,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1F,IAAI,CAAC,UAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACnE,WAAW,CAAC,OAAO,CAAC,UAAA,GAAG;gBACrB,IAAI;oBACF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACnB;gBAAC,OAAO,CAAC,EAAE;oBACV,uDAAuD;iBACxD;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAEO,gDAAsB,GAA9B;QAAA,iBAaC;QAZC,OAAO,IAAI,OAAO,CAAW,UAAA,OAAO;YAClC,IAAM,KAAK,GAAG,oBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,2BAA2B,CAAC,EAAE,CAAE,KAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAE,CAAC,CAAC;YACrG,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,UAAA,OAAO;gBACzB,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,IAAM,OAAO,GAAG,UAAU,CAAC;gBACzB,qDAAqD;gBACrD,KAAK,CAAC,IAAI,EAAE,CAAC;gBACb,OAAO,CAAC,CAAE,KAAI,CAAC,SAAS,CAAE,CAAC,CAAC;YAC9B,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sBAAW,qCAAQ;aAAnB;YACE,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,OAAO,IAAI,CAAC,SAAS,CAAC;aACvB;YACD,IAAM,cAAc,GAAI,IAAI,CAAC,UAA4B,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtF,OAAO,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC;QAC5D,CAAC;;;OAAA;IAEO,gDAAsB,GAA9B;QACE,IAAM,SAAS,GAAG,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,IAAI,WAAW,GAAW,CAAC,CAAC;QAC5B,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YACvC,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SACtC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,2CAAiB,GAAzB;QACE,OAAO,YAAU,IAAI,CAAC,MAAM,EAAE,GAAG,QAAU,CAAC;IAC9C,CAAC;IAED;;OAEG;IACK,yCAAe,GAAvB,UAAwB,QAAgB;QAAxC,iBAMC;QALC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,cAAM,OAAA,KAAI,CAAC,oBAAoB,EAAE,EAA3B,CAA2B,CAAC,CAAC;SAC/D;IACH,CAAC;IAEO,8CAAoB,GAA5B;QAAA,iBAQC;QAPC,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,OAAO;SACR;QACD,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,eAAe,EAAE,EAAtB,CAAsB,EAAE,mBAAmB,CAAC,CAAC;IACrF,CAAC;IAEO,yCAAe,GAAvB;QACE,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,OAAO;SACR;QACD,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IACH,sBAAC;AAAD,CAAC,AAhPD,IAgPC;AAhPY,0CAAe;AAkP5B,gFAAgF;AAChF,8EAA8E;AAC9E,kBAAkB;AAClB,SAAgB,iBAAiB,CAAC,IAAY,EAAE,IAAuB;IACrE,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;QACvB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,IAAI,CAAC;SACb;QACD,OAAU,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,SAAI,IAAM,CAAC;KACjD;IACD,IAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;QACzD,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,MAAM,IAAI,GAAG,CAAC;SACf;QACD,IAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,qEAAqE;QACrE,IAAM,yBAAyB,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACvF,IAAM,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACjF,IAAM,KAAK,GACT,GAAG,KAAK,EAAE;YACV,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACxB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzB,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;oBACjB,CAAC,yBAAyB,IAAI,oBAAoB,CAAC,CAAC,CAAC;QACvD,IAAI,KAAK,EAAE;YACT,MAAM,IAAI,IAAI,CAAC;SAChB;QACD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,KAAK,IAAI,EAAE;gBACd,OAAO,EAAE,CAAC;aACX;iBAAM,IAAI,CAAC,KAAK,GAAG,EAAE;gBACpB,MAAM,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5C,MAAM,IAAI,GAAG,CAAC;gBACd,OAAO,GAAG,CAAC,CAAC;aACb;iBAAM;gBACL,MAAM,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACpC,OAAO,GAAG,CAAC,CAAC;gBACZ,MAAM,IAAI,CAAC,CAAC;aACb;SACF;QACD,IAAI,KAAK,EAAE;YACT,MAAM,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;YACxC,MAAM,IAAI,IAAI,CAAC;SAChB;aAAM;YACL,MAAM,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SACrC;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAlDD,8CAkDC;AAED,SAAS,aAAa,CAAC,IAAuB;IAC5C,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,KAAa;IAC7C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,IAAI,IAAI,CAAC;KAChB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,GAAG,CAAC,IAAa,EAAE,IAAa;IACvC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -5,21 +5,18 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
var worker_threads_1 = require("worker_threads");
|
|
7
7
|
var net_1 = require("net");
|
|
8
|
-
var fs = require("fs");
|
|
9
8
|
var conout_1 = require("../shared/conout");
|
|
10
9
|
var conoutPipeName = worker_threads_1.workerData.conoutPipeName;
|
|
11
|
-
var
|
|
12
|
-
var conoutSocket = new net_1.Socket({
|
|
13
|
-
fd: outSocketFD,
|
|
14
|
-
readable: true
|
|
15
|
-
});
|
|
10
|
+
var conoutSocket = new net_1.Socket();
|
|
16
11
|
conoutSocket.setEncoding('utf8');
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
conoutSocket.connect(conoutPipeName, function () {
|
|
13
|
+
var server = net_1.createServer(function (workerSocket) {
|
|
14
|
+
conoutSocket.pipe(workerSocket);
|
|
15
|
+
});
|
|
16
|
+
server.listen(conout_1.getWorkerPipeName(conoutPipeName));
|
|
17
|
+
if (!worker_threads_1.parentPort) {
|
|
18
|
+
throw new Error('worker_threads parentPort is null');
|
|
19
|
+
}
|
|
20
|
+
worker_threads_1.parentPort.postMessage(1 /* READY */);
|
|
19
21
|
});
|
|
20
|
-
server.listen(conout_1.getWorkerPipeName(conoutPipeName));
|
|
21
|
-
if (!worker_threads_1.parentPort) {
|
|
22
|
-
throw new Error('worker_threads parentPort is null');
|
|
23
|
-
}
|
|
24
|
-
worker_threads_1.parentPort.postMessage(1 /* READY */);
|
|
25
22
|
//# sourceMappingURL=conoutSocketWorker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conoutSocketWorker.js","sourceRoot":"","sources":["../../src/worker/conoutSocketWorker.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,iDAAwD;AACxD,2BAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"conoutSocketWorker.js","sourceRoot":"","sources":["../../src/worker/conoutSocketWorker.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,iDAAwD;AACxD,2BAA2C;AAC3C,2CAAuF;AAE/E,IAAA,cAAc,GAAM,2BAA0B,eAAhC,CAAiC;AAEvD,IAAM,YAAY,GAAG,IAAI,YAAM,EAAE,CAAC;AAClC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE;IACnC,IAAM,MAAM,GAAG,kBAAY,CAAC,UAAA,YAAY;QACtC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,0BAAiB,CAAC,cAAc,CAAC,CAAC,CAAC;IACjD,IAAI,CAAC,2BAAU,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;KACtD;IACD,2BAAU,CAAC,WAAW,eAA2B,CAAC;AACpD,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
package/src/win/conpty.cc
CHANGED
|
@@ -153,8 +153,8 @@ bool createDataServerPipe(bool write,
|
|
|
153
153
|
/*dwOpenMode=*/winOpenMode,
|
|
154
154
|
/*dwPipeMode=*/PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT,
|
|
155
155
|
/*nMaxInstances=*/1,
|
|
156
|
-
/*nOutBufferSize=*/
|
|
157
|
-
/*nInBufferSize=*/
|
|
156
|
+
/*nOutBufferSize=*/128 * 1024,
|
|
157
|
+
/*nInBufferSize=*/128 * 1024,
|
|
158
158
|
/*nDefaultTimeOut=*/30000,
|
|
159
159
|
&sa);
|
|
160
160
|
|
|
@@ -559,7 +559,9 @@ static Napi::Value PtyKill(const Napi::CallbackInfo& info) {
|
|
|
559
559
|
pfnClosePseudoConsole(handle->hpc);
|
|
560
560
|
}
|
|
561
561
|
}
|
|
562
|
-
|
|
562
|
+
if (useConptyDll) {
|
|
563
|
+
TerminateProcess(handle->hShell, 1);
|
|
564
|
+
}
|
|
563
565
|
}
|
|
564
566
|
|
|
565
567
|
return env.Undefined();
|
|
@@ -37,9 +37,12 @@ export class ConoutConnection implements IDisposable {
|
|
|
37
37
|
public get onReady(): IEvent<void> { return this._onReady.event; }
|
|
38
38
|
|
|
39
39
|
constructor(
|
|
40
|
-
private _conoutPipeName: string
|
|
40
|
+
private _conoutPipeName: string,
|
|
41
|
+
private _useConptyDll: boolean
|
|
41
42
|
) {
|
|
42
|
-
const workerData: IWorkerData = {
|
|
43
|
+
const workerData: IWorkerData = {
|
|
44
|
+
conoutPipeName: _conoutPipeName
|
|
45
|
+
};
|
|
43
46
|
const scriptPath = __dirname.replace('node_modules.asar', 'node_modules.asar.unpacked');
|
|
44
47
|
this._worker = new Worker(join(scriptPath, 'worker/conoutSocketWorker.js'), { workerData });
|
|
45
48
|
this._worker.on('message', (message: ConoutWorkerMessage) => {
|
|
@@ -54,6 +57,10 @@ export class ConoutConnection implements IDisposable {
|
|
|
54
57
|
}
|
|
55
58
|
|
|
56
59
|
dispose(): void {
|
|
60
|
+
if (!this._useConptyDll && this._isDisposed) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
this._isDisposed = true;
|
|
57
64
|
// Drain all data from the socket before closing
|
|
58
65
|
this._drainDataAndClose();
|
|
59
66
|
}
|
package/src/windowsPtyAgent.ts
CHANGED
|
@@ -118,7 +118,7 @@ export class WindowsPtyAgent {
|
|
|
118
118
|
this._outSocket = new Socket();
|
|
119
119
|
this._outSocket.setEncoding('utf8');
|
|
120
120
|
// The conout socket must be ready out on another thread to avoid deadlocks
|
|
121
|
-
this._conoutSocketWorker = new ConoutConnection(term.conout);
|
|
121
|
+
this._conoutSocketWorker = new ConoutConnection(term.conout, this._useConptyDll);
|
|
122
122
|
this._conoutSocketWorker.onReady(() => {
|
|
123
123
|
this._conoutSocketWorker.connectSocket(this._outSocket);
|
|
124
124
|
});
|
|
@@ -4,22 +4,19 @@
|
|
|
4
4
|
|
|
5
5
|
import { parentPort, workerData } from 'worker_threads';
|
|
6
6
|
import { Socket, createServer } from 'net';
|
|
7
|
-
import * as fs from 'fs';
|
|
8
7
|
import { ConoutWorkerMessage, IWorkerData, getWorkerPipeName } from '../shared/conout';
|
|
9
8
|
|
|
10
|
-
const conoutPipeName = (workerData as IWorkerData)
|
|
11
|
-
|
|
12
|
-
const conoutSocket = new Socket(
|
|
13
|
-
fd: outSocketFD,
|
|
14
|
-
readable: true
|
|
15
|
-
});
|
|
9
|
+
const { conoutPipeName } = (workerData as IWorkerData);
|
|
10
|
+
|
|
11
|
+
const conoutSocket = new Socket();
|
|
16
12
|
conoutSocket.setEncoding('utf8');
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
conoutSocket.connect(conoutPipeName, () => {
|
|
14
|
+
const server = createServer(workerSocket => {
|
|
15
|
+
conoutSocket.pipe(workerSocket);
|
|
16
|
+
});
|
|
17
|
+
server.listen(getWorkerPipeName(conoutPipeName));
|
|
18
|
+
if (!parentPort) {
|
|
19
|
+
throw new Error('worker_threads parentPort is null');
|
|
20
|
+
}
|
|
21
|
+
parentPort.postMessage(ConoutWorkerMessage.READY);
|
|
19
22
|
});
|
|
20
|
-
server.listen(getWorkerPipeName(conoutPipeName));
|
|
21
|
-
|
|
22
|
-
if (!parentPort) {
|
|
23
|
-
throw new Error('worker_threads parentPort is null');
|
|
24
|
-
}
|
|
25
|
-
parentPort.postMessage(ConoutWorkerMessage.READY);
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/scripts/publish.js
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2019, Microsoft Corporation (MIT License).
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
const cp = require('child_process');
|
|
6
|
-
const fs = require('fs');
|
|
7
|
-
const path = require('path');
|
|
8
|
-
const packageJson = require('../package.json');
|
|
9
|
-
|
|
10
|
-
// Setup auth
|
|
11
|
-
fs.writeFileSync(`${process.env['HOME']}/.npmrc`, `//registry.npmjs.org/:_authToken=${process.env['NPM_AUTH_TOKEN']}`);
|
|
12
|
-
|
|
13
|
-
// Determine if this is a stable or beta release
|
|
14
|
-
const publishedVersions = getPublishedVersions();
|
|
15
|
-
const isStableRelease = !publishedVersions.includes(packageJson.version);
|
|
16
|
-
|
|
17
|
-
// Get the next version
|
|
18
|
-
const nextVersion = isStableRelease ? packageJson.version : getNextBetaVersion();
|
|
19
|
-
console.log(`Setting version to ${nextVersion}`);
|
|
20
|
-
|
|
21
|
-
// Set the version in package.json
|
|
22
|
-
const packageJsonFile = path.resolve(__dirname, '..', 'package.json');
|
|
23
|
-
packageJson.version = nextVersion;
|
|
24
|
-
fs.writeFileSync(packageJsonFile, JSON.stringify(packageJson, null, 2));
|
|
25
|
-
|
|
26
|
-
// Publish
|
|
27
|
-
const args = ['publish'];
|
|
28
|
-
if (!isStableRelease) {
|
|
29
|
-
args.push('--tag', 'beta');
|
|
30
|
-
}
|
|
31
|
-
const result = cp.spawn('npm', args, { stdio: 'inherit' });
|
|
32
|
-
result.on('exit', code => process.exit(code));
|
|
33
|
-
|
|
34
|
-
function getNextBetaVersion() {
|
|
35
|
-
if (!/^[0-9]+\.[0-9]+\.[0-9]+$/.exec(packageJson.version)) {
|
|
36
|
-
console.error('The package.json version must be of the form x.y.z');
|
|
37
|
-
process.exit(1);
|
|
38
|
-
}
|
|
39
|
-
const tag = 'beta';
|
|
40
|
-
const stableVersion = packageJson.version.split('.');
|
|
41
|
-
const nextStableVersion = `${stableVersion[0]}.${parseInt(stableVersion[1]) + 1}.0`;
|
|
42
|
-
const publishedVersions = getPublishedVersions(nextStableVersion, tag);
|
|
43
|
-
if (publishedVersions.length === 0) {
|
|
44
|
-
return `${nextStableVersion}-${tag}1`;
|
|
45
|
-
}
|
|
46
|
-
const latestPublishedVersion = publishedVersions.sort((a, b) => {
|
|
47
|
-
const aVersion = parseInt(a.substr(a.search(/[0-9]+$/)));
|
|
48
|
-
const bVersion = parseInt(b.substr(b.search(/[0-9]+$/)));
|
|
49
|
-
return aVersion > bVersion ? -1 : 1;
|
|
50
|
-
})[0];
|
|
51
|
-
const latestTagVersion = parseInt(latestPublishedVersion.substr(latestPublishedVersion.search(/[0-9]+$/)), 10);
|
|
52
|
-
return `${nextStableVersion}-${tag}${latestTagVersion + 1}`;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function getPublishedVersions(version, tag) {
|
|
56
|
-
const isWin32 = process.platform === 'win32';
|
|
57
|
-
const versionsProcess = isWin32 ?
|
|
58
|
-
cp.spawnSync('npm.cmd', ['view', packageJson.name, 'versions', '--json'], { shell: true }) :
|
|
59
|
-
cp.spawnSync('npm', ['view', packageJson.name, 'versions', '--json']);
|
|
60
|
-
const versionsJson = JSON.parse(versionsProcess.stdout);
|
|
61
|
-
if (tag) {
|
|
62
|
-
return versionsJson.filter(v => !v.search(new RegExp(`${version}-${tag}[0-9]+`)));
|
|
63
|
-
}
|
|
64
|
-
return versionsJson;
|
|
65
|
-
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|