node-pty 1.2.0-beta.6 → 1.2.0-beta.8

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.
Files changed (262) hide show
  1. package/README.md +3 -5
  2. package/binding.gyp +20 -38
  3. package/lib/windowsPtyAgent.js +32 -95
  4. package/lib/windowsTerminal.js +1 -1
  5. package/package.json +6 -5
  6. package/prebuilds/darwin-arm64/pty.node +0 -0
  7. package/prebuilds/darwin-arm64/spawn-helper +0 -0
  8. package/prebuilds/darwin-x64/pty.node +0 -0
  9. package/prebuilds/darwin-x64/spawn-helper +0 -0
  10. package/prebuilds/win32-arm64/conpty.node +0 -0
  11. package/prebuilds/win32-arm64/conpty.pdb +0 -0
  12. package/prebuilds/win32-arm64/conpty_console_list.node +0 -0
  13. package/prebuilds/win32-arm64/conpty_console_list.pdb +0 -0
  14. package/prebuilds/win32-x64/conpty.node +0 -0
  15. package/prebuilds/win32-x64/conpty.pdb +0 -0
  16. package/prebuilds/win32-x64/conpty_console_list.node +0 -0
  17. package/prebuilds/win32-x64/conpty_console_list.pdb +0 -0
  18. package/scripts/post-install.js +1 -5
  19. package/src/win/conpty.cc +1 -2
  20. package/typings/node-pty.d.ts +9 -8
  21. package/deps/.editorconfig +0 -2
  22. package/deps/winpty/.drone.yml +0 -17
  23. package/deps/winpty/.gitattributes +0 -19
  24. package/deps/winpty/LICENSE +0 -21
  25. package/deps/winpty/Makefile +0 -166
  26. package/deps/winpty/README.md +0 -151
  27. package/deps/winpty/RELEASES.md +0 -280
  28. package/deps/winpty/VERSION.txt +0 -1
  29. package/deps/winpty/configure +0 -167
  30. package/deps/winpty/misc/BufferResizeTests.cc +0 -90
  31. package/deps/winpty/misc/ChangeScreenBuffer.cc +0 -53
  32. package/deps/winpty/misc/ClearConsole.cc +0 -72
  33. package/deps/winpty/misc/ConinMode.cc +0 -117
  34. package/deps/winpty/misc/ConinMode.ps1 +0 -116
  35. package/deps/winpty/misc/ConoutMode.cc +0 -113
  36. package/deps/winpty/misc/DebugClient.py +0 -42
  37. package/deps/winpty/misc/DebugServer.py +0 -63
  38. package/deps/winpty/misc/DumpLines.py +0 -5
  39. package/deps/winpty/misc/EnableExtendedFlags.txt +0 -46
  40. package/deps/winpty/misc/Font-Report-June2016/CP437-Consolas.txt +0 -528
  41. package/deps/winpty/misc/Font-Report-June2016/CP437-Lucida.txt +0 -633
  42. package/deps/winpty/misc/Font-Report-June2016/CP932.txt +0 -630
  43. package/deps/winpty/misc/Font-Report-June2016/CP936.txt +0 -630
  44. package/deps/winpty/misc/Font-Report-June2016/CP949.txt +0 -630
  45. package/deps/winpty/misc/Font-Report-June2016/CP950.txt +0 -630
  46. package/deps/winpty/misc/Font-Report-June2016/MinimumWindowWidths.txt +0 -16
  47. package/deps/winpty/misc/Font-Report-June2016/Results.txt +0 -4
  48. package/deps/winpty/misc/Font-Report-June2016/Windows10SetFontBugginess.txt +0 -144
  49. package/deps/winpty/misc/FontSurvey.cc +0 -100
  50. package/deps/winpty/misc/FormatChar.h +0 -21
  51. package/deps/winpty/misc/FreezePerfTest.cc +0 -62
  52. package/deps/winpty/misc/GetCh.cc +0 -20
  53. package/deps/winpty/misc/GetConsolePos.cc +0 -41
  54. package/deps/winpty/misc/GetFont.cc +0 -261
  55. package/deps/winpty/misc/IdentifyConsoleWindow.ps1 +0 -51
  56. package/deps/winpty/misc/IsNewConsole.cc +0 -87
  57. package/deps/winpty/misc/MouseInputNotes.txt +0 -90
  58. package/deps/winpty/misc/MoveConsoleWindow.cc +0 -34
  59. package/deps/winpty/misc/Notes.txt +0 -219
  60. package/deps/winpty/misc/OSVersion.cc +0 -27
  61. package/deps/winpty/misc/ScreenBufferFreezeInactive.cc +0 -101
  62. package/deps/winpty/misc/ScreenBufferTest.cc +0 -671
  63. package/deps/winpty/misc/ScreenBufferTest2.cc +0 -151
  64. package/deps/winpty/misc/SelectAllTest.cc +0 -45
  65. package/deps/winpty/misc/SetBufferSize.cc +0 -32
  66. package/deps/winpty/misc/SetCursorPos.cc +0 -10
  67. package/deps/winpty/misc/SetFont.cc +0 -145
  68. package/deps/winpty/misc/SetWindowRect.cc +0 -36
  69. package/deps/winpty/misc/ShowArgv.cc +0 -12
  70. package/deps/winpty/misc/ShowConsoleInput.cc +0 -40
  71. package/deps/winpty/misc/Spew.py +0 -5
  72. package/deps/winpty/misc/TestUtil.cc +0 -172
  73. package/deps/winpty/misc/UnicodeDoubleWidthTest.cc +0 -102
  74. package/deps/winpty/misc/UnicodeWideTest1.cc +0 -246
  75. package/deps/winpty/misc/UnicodeWideTest2.cc +0 -130
  76. package/deps/winpty/misc/UnixEcho.cc +0 -89
  77. package/deps/winpty/misc/Utf16Echo.cc +0 -46
  78. package/deps/winpty/misc/VeryLargeRead.cc +0 -122
  79. package/deps/winpty/misc/VkEscapeTest.cc +0 -56
  80. package/deps/winpty/misc/Win10ResizeWhileFrozen.cc +0 -52
  81. package/deps/winpty/misc/Win10WrapTest1.cc +0 -57
  82. package/deps/winpty/misc/Win10WrapTest2.cc +0 -30
  83. package/deps/winpty/misc/Win32Echo1.cc +0 -26
  84. package/deps/winpty/misc/Win32Echo2.cc +0 -19
  85. package/deps/winpty/misc/Win32Test1.cc +0 -46
  86. package/deps/winpty/misc/Win32Test2.cc +0 -70
  87. package/deps/winpty/misc/Win32Test3.cc +0 -78
  88. package/deps/winpty/misc/Win32Write1.cc +0 -44
  89. package/deps/winpty/misc/WindowsBugCrashReader.cc +0 -27
  90. package/deps/winpty/misc/WriteConsole.cc +0 -106
  91. package/deps/winpty/misc/build32.sh +0 -9
  92. package/deps/winpty/misc/build64.sh +0 -9
  93. package/deps/winpty/misc/color-test.sh +0 -212
  94. package/deps/winpty/misc/font-notes.txt +0 -300
  95. package/deps/winpty/misc/winbug-15048.cc +0 -201
  96. package/deps/winpty/ship/build-pty4j-libpty.bat +0 -36
  97. package/deps/winpty/ship/common_ship.py +0 -53
  98. package/deps/winpty/ship/make_msvc_package.py +0 -165
  99. package/deps/winpty/ship/ship.py +0 -108
  100. package/deps/winpty/src/agent/Agent.cc +0 -613
  101. package/deps/winpty/src/agent/Agent.h +0 -103
  102. package/deps/winpty/src/agent/AgentCreateDesktop.cc +0 -84
  103. package/deps/winpty/src/agent/AgentCreateDesktop.h +0 -28
  104. package/deps/winpty/src/agent/ConsoleFont.cc +0 -632
  105. package/deps/winpty/src/agent/ConsoleFont.h +0 -28
  106. package/deps/winpty/src/agent/ConsoleInput.cc +0 -852
  107. package/deps/winpty/src/agent/ConsoleInput.h +0 -109
  108. package/deps/winpty/src/agent/ConsoleInputReencoding.cc +0 -121
  109. package/deps/winpty/src/agent/ConsoleInputReencoding.h +0 -36
  110. package/deps/winpty/src/agent/ConsoleLine.cc +0 -152
  111. package/deps/winpty/src/agent/ConsoleLine.h +0 -41
  112. package/deps/winpty/src/agent/Coord.h +0 -87
  113. package/deps/winpty/src/agent/DebugShowInput.cc +0 -239
  114. package/deps/winpty/src/agent/DebugShowInput.h +0 -32
  115. package/deps/winpty/src/agent/DefaultInputMap.cc +0 -422
  116. package/deps/winpty/src/agent/DefaultInputMap.h +0 -28
  117. package/deps/winpty/src/agent/DsrSender.h +0 -30
  118. package/deps/winpty/src/agent/EventLoop.cc +0 -99
  119. package/deps/winpty/src/agent/EventLoop.h +0 -47
  120. package/deps/winpty/src/agent/InputMap.cc +0 -246
  121. package/deps/winpty/src/agent/InputMap.h +0 -114
  122. package/deps/winpty/src/agent/LargeConsoleRead.cc +0 -71
  123. package/deps/winpty/src/agent/LargeConsoleRead.h +0 -68
  124. package/deps/winpty/src/agent/NamedPipe.cc +0 -378
  125. package/deps/winpty/src/agent/NamedPipe.h +0 -125
  126. package/deps/winpty/src/agent/Scraper.cc +0 -699
  127. package/deps/winpty/src/agent/Scraper.h +0 -103
  128. package/deps/winpty/src/agent/SimplePool.h +0 -75
  129. package/deps/winpty/src/agent/SmallRect.h +0 -143
  130. package/deps/winpty/src/agent/Terminal.cc +0 -535
  131. package/deps/winpty/src/agent/Terminal.h +0 -69
  132. package/deps/winpty/src/agent/UnicodeEncoding.h +0 -157
  133. package/deps/winpty/src/agent/UnicodeEncodingTest.cc +0 -189
  134. package/deps/winpty/src/agent/Win32Console.cc +0 -107
  135. package/deps/winpty/src/agent/Win32Console.h +0 -67
  136. package/deps/winpty/src/agent/Win32ConsoleBuffer.cc +0 -193
  137. package/deps/winpty/src/agent/Win32ConsoleBuffer.h +0 -99
  138. package/deps/winpty/src/agent/main.cc +0 -114
  139. package/deps/winpty/src/agent/subdir.mk +0 -61
  140. package/deps/winpty/src/configurations.gypi +0 -60
  141. package/deps/winpty/src/debugserver/DebugServer.cc +0 -117
  142. package/deps/winpty/src/debugserver/subdir.mk +0 -41
  143. package/deps/winpty/src/include/winpty.h +0 -242
  144. package/deps/winpty/src/include/winpty_constants.h +0 -131
  145. package/deps/winpty/src/libwinpty/AgentLocation.cc +0 -75
  146. package/deps/winpty/src/libwinpty/AgentLocation.h +0 -28
  147. package/deps/winpty/src/libwinpty/LibWinptyException.h +0 -54
  148. package/deps/winpty/src/libwinpty/WinptyInternal.h +0 -72
  149. package/deps/winpty/src/libwinpty/subdir.mk +0 -46
  150. package/deps/winpty/src/libwinpty/winpty.cc +0 -970
  151. package/deps/winpty/src/shared/AgentMsg.h +0 -38
  152. package/deps/winpty/src/shared/BackgroundDesktop.cc +0 -122
  153. package/deps/winpty/src/shared/BackgroundDesktop.h +0 -73
  154. package/deps/winpty/src/shared/Buffer.cc +0 -103
  155. package/deps/winpty/src/shared/Buffer.h +0 -102
  156. package/deps/winpty/src/shared/DebugClient.cc +0 -187
  157. package/deps/winpty/src/shared/DebugClient.h +0 -38
  158. package/deps/winpty/src/shared/GenRandom.cc +0 -138
  159. package/deps/winpty/src/shared/GenRandom.h +0 -55
  160. package/deps/winpty/src/shared/GetCommitHash.bat +0 -13
  161. package/deps/winpty/src/shared/Mutex.h +0 -54
  162. package/deps/winpty/src/shared/OsModule.h +0 -63
  163. package/deps/winpty/src/shared/OwnedHandle.cc +0 -36
  164. package/deps/winpty/src/shared/OwnedHandle.h +0 -45
  165. package/deps/winpty/src/shared/PrecompiledHeader.h +0 -43
  166. package/deps/winpty/src/shared/StringBuilder.h +0 -227
  167. package/deps/winpty/src/shared/StringBuilderTest.cc +0 -114
  168. package/deps/winpty/src/shared/StringUtil.cc +0 -55
  169. package/deps/winpty/src/shared/StringUtil.h +0 -80
  170. package/deps/winpty/src/shared/TimeMeasurement.h +0 -63
  171. package/deps/winpty/src/shared/UnixCtrlChars.h +0 -45
  172. package/deps/winpty/src/shared/UpdateGenVersion.bat +0 -20
  173. package/deps/winpty/src/shared/WindowsSecurity.cc +0 -460
  174. package/deps/winpty/src/shared/WindowsSecurity.h +0 -104
  175. package/deps/winpty/src/shared/WindowsVersion.cc +0 -252
  176. package/deps/winpty/src/shared/WindowsVersion.h +0 -29
  177. package/deps/winpty/src/shared/WinptyAssert.cc +0 -55
  178. package/deps/winpty/src/shared/WinptyAssert.h +0 -64
  179. package/deps/winpty/src/shared/WinptyException.cc +0 -57
  180. package/deps/winpty/src/shared/WinptyException.h +0 -43
  181. package/deps/winpty/src/shared/WinptyVersion.cc +0 -42
  182. package/deps/winpty/src/shared/WinptyVersion.h +0 -27
  183. package/deps/winpty/src/shared/winpty_snprintf.h +0 -99
  184. package/deps/winpty/src/subdir.mk +0 -5
  185. package/deps/winpty/src/tests/subdir.mk +0 -28
  186. package/deps/winpty/src/tests/trivial_test.cc +0 -158
  187. package/deps/winpty/src/unix-adapter/InputHandler.cc +0 -114
  188. package/deps/winpty/src/unix-adapter/InputHandler.h +0 -56
  189. package/deps/winpty/src/unix-adapter/OutputHandler.cc +0 -80
  190. package/deps/winpty/src/unix-adapter/OutputHandler.h +0 -53
  191. package/deps/winpty/src/unix-adapter/Util.cc +0 -86
  192. package/deps/winpty/src/unix-adapter/Util.h +0 -31
  193. package/deps/winpty/src/unix-adapter/WakeupFd.cc +0 -70
  194. package/deps/winpty/src/unix-adapter/WakeupFd.h +0 -42
  195. package/deps/winpty/src/unix-adapter/main.cc +0 -729
  196. package/deps/winpty/src/unix-adapter/subdir.mk +0 -41
  197. package/deps/winpty/src/winpty.gyp +0 -236
  198. package/deps/winpty/vcbuild.bat +0 -83
  199. package/lib/conpty_console_list_agent.js.map +0 -1
  200. package/lib/eventEmitter2.js.map +0 -1
  201. package/lib/eventEmitter2.test.js +0 -30
  202. package/lib/eventEmitter2.test.js.map +0 -1
  203. package/lib/index.js.map +0 -1
  204. package/lib/interfaces.js.map +0 -1
  205. package/lib/shared/conout.js.map +0 -1
  206. package/lib/terminal.js.map +0 -1
  207. package/lib/terminal.test.js +0 -139
  208. package/lib/terminal.test.js.map +0 -1
  209. package/lib/testUtils.test.js +0 -28
  210. package/lib/testUtils.test.js.map +0 -1
  211. package/lib/types.js.map +0 -1
  212. package/lib/unixTerminal.js.map +0 -1
  213. package/lib/unixTerminal.test.js +0 -381
  214. package/lib/unixTerminal.test.js.map +0 -1
  215. package/lib/utils.js.map +0 -1
  216. package/lib/windowsConoutConnection.js.map +0 -1
  217. package/lib/windowsPtyAgent.js.map +0 -1
  218. package/lib/windowsPtyAgent.test.js +0 -90
  219. package/lib/windowsPtyAgent.test.js.map +0 -1
  220. package/lib/windowsTerminal.js.map +0 -1
  221. package/lib/windowsTerminal.test.js +0 -219
  222. package/lib/windowsTerminal.test.js.map +0 -1
  223. package/lib/worker/conoutSocketWorker.js.map +0 -1
  224. package/prebuilds/win32-arm64/pty.node +0 -0
  225. package/prebuilds/win32-arm64/pty.pdb +0 -0
  226. package/prebuilds/win32-arm64/winpty-agent.exe +0 -0
  227. package/prebuilds/win32-arm64/winpty-agent.pdb +0 -0
  228. package/prebuilds/win32-arm64/winpty.dll +0 -0
  229. package/prebuilds/win32-arm64/winpty.pdb +0 -0
  230. package/prebuilds/win32-x64/pty.node +0 -0
  231. package/prebuilds/win32-x64/pty.pdb +0 -0
  232. package/prebuilds/win32-x64/winpty-agent.exe +0 -0
  233. package/prebuilds/win32-x64/winpty-agent.pdb +0 -0
  234. package/prebuilds/win32-x64/winpty.dll +0 -0
  235. package/prebuilds/win32-x64/winpty.pdb +0 -0
  236. package/scripts/gen-compile-commands.js +0 -8
  237. package/scripts/increment-version.js +0 -54
  238. package/scripts/linux/checksums.txt +0 -2
  239. package/scripts/linux/install-sysroot.js +0 -158
  240. package/scripts/linux/verify-glibc-requirements.sh +0 -36
  241. package/src/conpty_console_list_agent.ts +0 -15
  242. package/src/eventEmitter2.test.ts +0 -30
  243. package/src/eventEmitter2.ts +0 -48
  244. package/src/index.ts +0 -52
  245. package/src/interfaces.ts +0 -130
  246. package/src/native.d.ts +0 -54
  247. package/src/shared/conout.ts +0 -15
  248. package/src/terminal.test.ts +0 -119
  249. package/src/terminal.ts +0 -211
  250. package/src/testUtils.test.ts +0 -23
  251. package/src/tsconfig.json +0 -22
  252. package/src/types.ts +0 -15
  253. package/src/unixTerminal.test.ts +0 -398
  254. package/src/unixTerminal.ts +0 -388
  255. package/src/utils.ts +0 -29
  256. package/src/win/winpty.cc +0 -333
  257. package/src/windowsConoutConnection.ts +0 -82
  258. package/src/windowsPtyAgent.test.ts +0 -94
  259. package/src/windowsPtyAgent.ts +0 -321
  260. package/src/windowsTerminal.test.ts +0 -229
  261. package/src/windowsTerminal.ts +0 -203
  262. package/src/worker/conoutSocketWorker.ts +0 -22
package/README.md CHANGED
@@ -9,7 +9,9 @@ This is useful for:
9
9
  - Writing a terminal emulator (eg. via [xterm.js](https://github.com/sourcelair/xterm.js)).
10
10
  - Getting certain programs to *think* you're a terminal, such as when you need a program to send you control sequences.
11
11
 
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.
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+.
13
+
14
+ > **Note:** Support for the `winpty` library has been removed. Windows 10 version 1809 (build 18309) or later is now required.
13
15
 
14
16
  ## API
15
17
 
@@ -150,10 +152,6 @@ By default `PAUSE` and `RESUME` are XON/XOFF control codes (as shown above). To
150
152
 
151
153
  This happens when PowerShell is launched with no `SystemRoot` environment variable present.
152
154
 
153
- ### ConnectNamedPipe failed: Windows error 232
154
-
155
- This error can occur due to anti-virus software intercepting winpty from creating a pty. To workaround this you can exclude this file from your anti-virus scanning `node-pty\build\Release\winpty-agent.exe`
156
-
157
155
  ## pty.js
158
156
 
159
157
  This project is forked from [chjj/pty.js](https://github.com/chjj/pty.js) with the primary goals being to provide better support for later Node.js versions and Windows.
package/binding.gyp CHANGED
@@ -9,24 +9,26 @@
9
9
  'SpectreMitigation': 'Spectre'
10
10
  },
11
11
  'msvs_settings': {
12
- 'VCCLCompilerTool': {
13
- 'AdditionalOptions': [
14
- '/guard:cf',
15
- '/sdl',
16
- '/W3',
17
- '/we4146',
18
- '/we4244',
19
- '/we4267',
20
- '/ZH:SHA_256'
21
- ]
22
- },
23
- 'VCLinkerTool': {
24
- 'AdditionalOptions': [
25
- '/DYNAMICBASE',
26
- '/guard:cf'
27
- ]
28
- }
12
+ 'VCCLCompilerTool': {
13
+ 'AdditionalOptions': [
14
+ '/guard:cf',
15
+ '/sdl',
16
+ '/W3',
17
+ '/we4146',
18
+ '/we4244',
19
+ '/we4267',
20
+ '/ZH:SHA_256'
21
+ ]
29
22
  },
23
+ 'VCLinkerTool': {
24
+ 'AdditionalOptions': [
25
+ '/DYNAMICBASE',
26
+ '/guard:cf'
27
+ ]
28
+ }
29
+ },
30
+ }, {
31
+ 'cflags': ['-O2', '-fstack-protector-strong'],
30
32
  }],
31
33
  ],
32
34
  },
@@ -48,26 +50,6 @@
48
50
  'sources' : [
49
51
  'src/win/conpty_console_list.cc'
50
52
  ],
51
- },
52
- {
53
- 'target_name': 'pty',
54
- 'include_dirs' : [
55
- '<!(node -p "require(\'node-addon-api\').include_dir")',
56
- 'deps/winpty/src/include',
57
- ],
58
- # Disabled due to winpty
59
- 'msvs_disabled_warnings': [ 4506, 4530 ],
60
- 'dependencies' : [
61
- 'deps/winpty/src/winpty.gyp:winpty-agent',
62
- 'deps/winpty/src/winpty.gyp:winpty',
63
- ],
64
- 'sources' : [
65
- 'src/win/winpty.cc',
66
- 'src/win/path_util.cc'
67
- ],
68
- 'libraries': [
69
- '-lshlwapi'
70
- ],
71
53
  }
72
54
  ]
73
55
  }, { # OS!="win"
@@ -80,7 +62,7 @@
80
62
  'libraries': [
81
63
  '-lutil'
82
64
  ],
83
- 'cflags': ['-Wall', '-O2'],
65
+ 'cflags': ['-Wall'],
84
66
  'ldflags': [],
85
67
  'conditions': [
86
68
  # http://www.gnu.org/software/gnulib/manual/html_node/forkpty.html
@@ -7,14 +7,12 @@
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.argsToCommandLine = exports.WindowsPtyAgent = void 0;
9
9
  var fs = require("fs");
10
- var os = require("os");
11
10
  var path = require("path");
12
11
  var child_process_1 = require("child_process");
13
12
  var net_1 = require("net");
14
13
  var windowsConoutConnection_1 = require("./windowsConoutConnection");
15
14
  var utils_1 = require("./utils");
16
15
  var conptyNative;
17
- var winptyNative;
18
16
  /**
19
17
  * The amount of time to wait for additional data after the conpty shell process has exited before
20
18
  * shutting down the socket. The timer will be reset if a new data event comes in after the timer
@@ -22,46 +20,25 @@ var winptyNative;
22
20
  */
23
21
  var FLUSH_DATA_INTERVAL = 1000;
24
22
  /**
25
- * This agent sits between the WindowsTerminal class and provides a common interface for both conpty
26
- * and winpty.
23
+ * This agent sits between the WindowsTerminal class and provides an interface for conpty.
27
24
  */
28
25
  var WindowsPtyAgent = /** @class */ (function () {
29
- function WindowsPtyAgent(file, args, env, cwd, cols, rows, debug, _useConpty, _useConptyDll, conptyInheritCursor) {
26
+ function WindowsPtyAgent(file, args, env, cwd, cols, rows, debug, _useConptyDll, conptyInheritCursor) {
30
27
  var _this = this;
31
28
  if (_useConptyDll === void 0) { _useConptyDll = false; }
32
29
  if (conptyInheritCursor === void 0) { conptyInheritCursor = false; }
33
- this._useConpty = _useConpty;
34
30
  this._useConptyDll = _useConptyDll;
35
- this._pid = 0;
36
31
  this._innerPid = 0;
37
- if (this._useConpty === undefined || this._useConpty === true) {
38
- this._useConpty = this._getWindowsBuildNumber() >= 18309;
32
+ if (!conptyNative) {
33
+ conptyNative = utils_1.loadNativeModule('conpty').module;
39
34
  }
40
- if (this._useConpty) {
41
- if (!conptyNative) {
42
- conptyNative = utils_1.loadNativeModule('conpty').module;
43
- }
44
- }
45
- else {
46
- if (!winptyNative) {
47
- winptyNative = utils_1.loadNativeModule('pty').module;
48
- }
49
- }
50
- this._ptyNative = this._useConpty ? conptyNative : winptyNative;
35
+ this._ptyNative = conptyNative;
51
36
  // Sanitize input variable.
52
37
  cwd = path.resolve(cwd);
53
38
  // Compose command line
54
39
  var commandLine = argsToCommandLine(file, args);
55
40
  // Open pty session.
56
- var term;
57
- if (this._useConpty) {
58
- term = this._ptyNative.startProcess(file, cols, rows, debug, this._generatePipeName(), conptyInheritCursor, this._useConptyDll);
59
- }
60
- else {
61
- term = this._ptyNative.startProcess(file, commandLine, env, cwd, cols, rows, debug);
62
- this._pid = term.pid;
63
- this._innerPid = term.innerPid;
64
- }
41
+ var term = conptyNative.startProcess(file, cols, rows, debug, this._generatePipeName(), conptyInheritCursor, this._useConptyDll);
65
42
  // Not available on windows.
66
43
  this._fd = term.fd;
67
44
  // Generated incremental number that has no real purpose besides using it
@@ -85,10 +62,8 @@ var WindowsPtyAgent = /** @class */ (function () {
85
62
  writable: true
86
63
  });
87
64
  this._inSocket.setEncoding('utf8');
88
- if (this._useConpty) {
89
- var connect = this._ptyNative.connect(this._pty, commandLine, cwd, env, this._useConptyDll, function (c) { return _this._$onProcessExit(c); });
90
- this._innerPid = connect.pid;
91
- }
65
+ var connect = conptyNative.connect(this._pty, commandLine, cwd, env, this._useConptyDll, function (c) { return _this._$onProcessExit(c); });
66
+ this._innerPid = connect.pid;
92
67
  }
93
68
  Object.defineProperty(WindowsPtyAgent.prototype, "inSocket", {
94
69
  get: function () { return this._inSocket; },
@@ -116,65 +91,39 @@ var WindowsPtyAgent = /** @class */ (function () {
116
91
  configurable: true
117
92
  });
118
93
  WindowsPtyAgent.prototype.resize = function (cols, rows) {
119
- if (this._useConpty) {
120
- if (this._exitCode !== undefined) {
121
- throw new Error('Cannot resize a pty that has already exited');
122
- }
123
- this._ptyNative.resize(this._pty, cols, rows, this._useConptyDll);
124
- return;
94
+ if (this._exitCode !== undefined) {
95
+ throw new Error('Cannot resize a pty that has already exited');
125
96
  }
126
- this._ptyNative.resize(this._pid, cols, rows);
97
+ this._ptyNative.resize(this._pty, cols, rows, this._useConptyDll);
127
98
  };
128
99
  WindowsPtyAgent.prototype.clear = function () {
129
- if (this._useConpty) {
130
- this._ptyNative.clear(this._pty, this._useConptyDll);
131
- }
100
+ this._ptyNative.clear(this._pty, this._useConptyDll);
132
101
  };
133
102
  WindowsPtyAgent.prototype.kill = function () {
134
103
  var _this = this;
135
104
  // Tell the agent to kill the pty, this releases handles to the process
136
- if (this._useConpty) {
137
- if (!this._useConptyDll) {
138
- this._inSocket.readable = false;
139
- this._outSocket.readable = false;
140
- this._getConsoleProcessList().then(function (consoleProcessList) {
141
- consoleProcessList.forEach(function (pid) {
142
- try {
143
- process.kill(pid);
144
- }
145
- catch (e) {
146
- // Ignore if process cannot be found (kill ESRCH error)
147
- }
148
- });
149
- });
150
- this._ptyNative.kill(this._pty, this._useConptyDll);
151
- this._conoutSocketWorker.dispose();
152
- }
153
- else {
154
- // Close the input write handle to signal the end of session.
155
- this._inSocket.destroy();
156
- this._ptyNative.kill(this._pty, this._useConptyDll);
157
- this._outSocket.on('data', function () {
158
- _this._conoutSocketWorker.dispose();
105
+ if (!this._useConptyDll) {
106
+ this._inSocket.readable = false;
107
+ this._outSocket.readable = false;
108
+ this._getConsoleProcessList().then(function (consoleProcessList) {
109
+ consoleProcessList.forEach(function (pid) {
110
+ try {
111
+ process.kill(pid);
112
+ }
113
+ catch (e) {
114
+ // Ignore if process cannot be found (kill ESRCH error)
115
+ }
159
116
  });
160
- }
117
+ });
118
+ this._ptyNative.kill(this._pty, this._useConptyDll);
119
+ this._conoutSocketWorker.dispose();
161
120
  }
162
121
  else {
163
- // Because pty.kill closes the handle, it will kill most processes by itself.
164
- // Process IDs can be reused as soon as all handles to them are
165
- // dropped, so we want to immediately kill the entire console process list.
166
- // If we do not force kill all processes here, node servers in particular
167
- // seem to become detached and remain running (see
168
- // Microsoft/vscode#26807).
169
- var processList = this._ptyNative.getProcessList(this._pid);
170
- this._ptyNative.kill(this._pid, this._innerPid);
171
- processList.forEach(function (pid) {
172
- try {
173
- process.kill(pid);
174
- }
175
- catch (e) {
176
- // Ignore if process cannot be found (kill ESRCH error)
177
- }
122
+ // Close the input write handle to signal the end of session.
123
+ this._inSocket.destroy();
124
+ this._ptyNative.kill(this._pty, this._useConptyDll);
125
+ this._outSocket.on('data', function () {
126
+ _this._conoutSocketWorker.dispose();
178
127
  });
179
128
  }
180
129
  };
@@ -195,23 +144,11 @@ var WindowsPtyAgent = /** @class */ (function () {
195
144
  };
196
145
  Object.defineProperty(WindowsPtyAgent.prototype, "exitCode", {
197
146
  get: function () {
198
- if (this._useConpty) {
199
- return this._exitCode;
200
- }
201
- var winptyExitCode = this._ptyNative.getExitCode(this._innerPid);
202
- return winptyExitCode === -1 ? undefined : winptyExitCode;
147
+ return this._exitCode;
203
148
  },
204
149
  enumerable: false,
205
150
  configurable: true
206
151
  });
207
- WindowsPtyAgent.prototype._getWindowsBuildNumber = function () {
208
- var osVersion = (/(\d+)\.(\d+)\.(\d+)/g).exec(os.release());
209
- var buildNumber = 0;
210
- if (osVersion && osVersion.length === 4) {
211
- buildNumber = parseInt(osVersion[3]);
212
- }
213
- return buildNumber;
214
- };
215
152
  WindowsPtyAgent.prototype._generatePipeName = function () {
216
153
  return "conpty-" + Math.random() * 10000000;
217
154
  };
@@ -48,7 +48,7 @@ var WindowsTerminal = /** @class */ (function (_super) {
48
48
  // Functions that need to run after `ready` event is emitted.
49
49
  _this._deferreds = [];
50
50
  // Create new termal.
51
- _this._agent = new windowsPtyAgent_1.WindowsPtyAgent(file, args, parsedEnv, cwd, _this._cols, _this._rows, false, opt.useConpty, opt.useConptyDll, opt.conptyInheritCursor);
51
+ _this._agent = new windowsPtyAgent_1.WindowsPtyAgent(file, args, parsedEnv, cwd, _this._cols, _this._rows, false, opt.useConptyDll, opt.conptyInheritCursor);
52
52
  _this._socket = _this._agent.outSocket;
53
53
  // Not available until `ready` event emitted.
54
54
  _this._pid = _this._agent.innerPid;
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "author": {
5
5
  "name": "Microsoft Corporation"
6
6
  },
7
- "version": "1.2.0-beta.6",
7
+ "version": "1.2.0-beta.8",
8
8
  "license": "MIT",
9
9
  "main": "./lib/index.js",
10
10
  "types": "./typings/node-pty.d.ts",
@@ -14,10 +14,11 @@
14
14
  },
15
15
  "files": [
16
16
  "binding.gyp",
17
- "lib/",
18
- "scripts/",
19
- "src/",
20
- "deps/",
17
+ "lib/**/*.js",
18
+ "!lib/**/*.test.js",
19
+ "scripts/post-install.js",
20
+ "scripts/prebuild.js",
21
+ "src/**/*.{cc,h}",
21
22
  "prebuilds/",
22
23
  "third_party/",
23
24
  "typings/"
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -12,11 +12,7 @@ const BUILD_FILES = [
12
12
  path.join(RELEASE_DIR, 'conpty_console_list.pdb'),
13
13
  path.join(RELEASE_DIR, 'pty.node'),
14
14
  path.join(RELEASE_DIR, 'pty.pdb'),
15
- path.join(RELEASE_DIR, 'spawn-helper'),
16
- path.join(RELEASE_DIR, 'winpty-agent.exe'),
17
- path.join(RELEASE_DIR, 'winpty-agent.pdb'),
18
- path.join(RELEASE_DIR, 'winpty.dll'),
19
- path.join(RELEASE_DIR, 'winpty.pdb')
15
+ path.join(RELEASE_DIR, 'spawn-helper')
20
16
  ];
21
17
  const CONPTY_DIR = path.join(__dirname, '../third_party/conpty');
22
18
  const CONPTY_SUPPORTED_ARCH = ['x64', 'arm64'];
package/src/win/conpty.cc CHANGED
@@ -230,7 +230,6 @@ HRESULT CreateNamedPipesAndPseudoConsole(const Napi::CallbackInfo& info,
230
230
  {
231
231
  // Failed to find CreatePseudoConsole in kernel32. This is likely because
232
232
  // the user is not running a build of Windows that supports that API.
233
- // We should fall back to winpty in this case.
234
233
  return HRESULT_FROM_WIN32(GetLastError());
235
234
  }
236
235
  } else {
@@ -238,7 +237,7 @@ HRESULT CreateNamedPipesAndPseudoConsole(const Napi::CallbackInfo& info,
238
237
  }
239
238
 
240
239
  // Failed to find kernel32. This is realy unlikely - honestly no idea how
241
- // this is even possible to hit. But if it does happen, fall back to winpty.
240
+ // this is even possible to hit.
242
241
  return HRESULT_FROM_WIN32(GetLastError());
243
242
  }
244
243
 
@@ -86,13 +86,14 @@ declare module 'node-pty' {
86
86
  }
87
87
 
88
88
  export interface IWindowsPtyForkOptions extends IBasePtyForkOptions {
89
- /**
90
- * Whether to use the ConPTY system on Windows. When this is not set, ConPTY will be used when
91
- * the Windows build number is >= 18309 (instead of winpty). Note that ConPTY is available from
92
- * build 17134 but is too unstable to enable by default.
93
- *
94
- * This setting does nothing on non-Windows.
95
- */
89
+ /**
90
+ * Whether to use the ConPTY system on Windows. When this is not set, ConPTY will be used when
91
+ * the Windows build number is >= 18309 (instead of winpty). Note that ConPTY is available from
92
+ * build 17134 but is too unstable to enable by default.
93
+ *
94
+ * @deprecated This option is ignored and will be removed in a future version.
95
+ * https://github.com/microsoft/node-pty/issues/871
96
+ */
96
97
  useConpty?: boolean;
97
98
 
98
99
  /**
@@ -111,7 +112,7 @@ declare module 'node-pty' {
111
112
  }
112
113
 
113
114
  /**
114
- * An interface representing a pseudoterminal, on Windows this is emulated via the winpty library.
115
+ * An interface representing a pseudoterminal.
115
116
  */
116
117
  export interface IPty {
117
118
  /**
@@ -1,2 +0,0 @@
1
- # Have editor config ignore this directory
2
- root = true
@@ -1,17 +0,0 @@
1
- # Build configure for https://www.tea-ci.org (fork of Drone CI with Msys2 support)
2
- build:
3
- image: teaci/msys$$arch
4
- pull: true
5
- shell: msys$$arch
6
- commands:
7
- - pacman -S --needed --noconfirm --noprogressbar mingw-w64-cross-gcc mingw-w64-cross-crt-git
8
- - ./configure
9
- - make
10
- - make tests
11
- - build/trivial_test.exe
12
- - mintty --log - --exec build/winpty.exe cmd /c ver | grep Windows
13
-
14
- matrix:
15
- arch:
16
- - 64
17
- - 32
@@ -1,19 +0,0 @@
1
- * text=auto
2
- *.bat text eol=crlf
3
- *.c text
4
- *.cc text
5
- *.gyp text
6
- *.gypi text
7
- *.h text
8
- *.ps1 text eol=crlf
9
- *.rst text
10
- *.sh text
11
- *.txt text
12
- .gitignore text
13
- .gitattributes text
14
- Makefile text
15
- configure text
16
-
17
- *.sh eol=lf
18
- configure eol=lf
19
- VERSION.txt eol=lf
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2011-2016 Ryan Prichard
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to
7
- deal in the Software without restriction, including without limitation the
8
- rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
9
- sell copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21
- IN THE SOFTWARE.
@@ -1,166 +0,0 @@
1
- # Copyright (c) 2011-2015 Ryan Prichard
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the "Software"), to
5
- # deal in the Software without restriction, including without limitation the
6
- # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7
- # sell copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in
11
- # all copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18
- # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19
- # IN THE SOFTWARE.
20
-
21
- # Use make -n to see the actual command-lines make would run.
22
-
23
- # The default "make install" prefix is /usr/local. Pass PREFIX=<path> on the
24
- # command-line to override the default.
25
-
26
- .SECONDEXPANSION :
27
-
28
- .PHONY : default
29
- default : all
30
-
31
- PREFIX := /usr/local
32
- UNIX_ADAPTER_EXE := winpty.exe
33
- MINGW_ENABLE_CXX11_FLAG := -std=c++11
34
- USE_PCH := 1
35
-
36
- COMMON_CXXFLAGS :=
37
- UNIX_CXXFLAGS :=
38
- MINGW_CXXFLAGS :=
39
- MINGW_LDFLAGS :=
40
- UNIX_LDFLAGS :=
41
-
42
- # Include config.mk but complain if it hasn't been created yet.
43
- ifeq "$(wildcard config.mk)" ""
44
- $(error config.mk does not exist. Please run ./configure)
45
- endif
46
- include config.mk
47
-
48
- COMMON_CXXFLAGS += \
49
- -MMD -Wall \
50
- -DUNICODE \
51
- -D_UNICODE \
52
- -D_WIN32_WINNT=0x0501 \
53
- -Ibuild/gen
54
-
55
- UNIX_CXXFLAGS += \
56
- $(COMMON_CXXFLAGS)
57
-
58
- MINGW_CXXFLAGS += \
59
- $(COMMON_CXXFLAGS) \
60
- -O2 \
61
- $(MINGW_ENABLE_CXX11_FLAG)
62
-
63
- MINGW_LDFLAGS += -static -static-libgcc -static-libstdc++
64
- UNIX_LDFLAGS += $(UNIX_LDFLAGS_STATIC)
65
-
66
- ifeq "$(USE_PCH)" "1"
67
- MINGW_CXXFLAGS += -include build/mingw/PrecompiledHeader.h
68
- PCH_DEP := build/mingw/PrecompiledHeader.h.gch
69
- else
70
- PCH_DEP :=
71
- endif
72
-
73
- build/gen/GenVersion.h : VERSION.txt $(COMMIT_HASH_DEP) | $$(@D)/.mkdir
74
- $(info Updating build/gen/GenVersion.h)
75
- @echo "const char GenVersion_Version[] = \"$(shell cat VERSION.txt | tr -d '\r\n')\";" > build/gen/GenVersion.h
76
- @echo "const char GenVersion_Commit[] = \"$(COMMIT_HASH)\";" >> build/gen/GenVersion.h
77
-
78
- build/mingw/PrecompiledHeader.h : src/shared/PrecompiledHeader.h | $$(@D)/.mkdir
79
- $(info Copying $< to $@)
80
- @cp $< $@
81
-
82
- build/mingw/PrecompiledHeader.h.gch : build/mingw/PrecompiledHeader.h | $$(@D)/.mkdir
83
- $(info Compiling $<)
84
- @$(MINGW_CXX) $(MINGW_CXXFLAGS) -c -o $@ $<
85
-
86
- -include build/mingw/PrecompiledHeader.h.d
87
-
88
- define def_unix_target
89
- build/$1/%.o : src/%.cc | $$$$(@D)/.mkdir
90
- $$(info Compiling $$<)
91
- @$$(UNIX_CXX) $$(UNIX_CXXFLAGS) $2 -I src/include -c -o $$@ $$<
92
- endef
93
-
94
- define def_mingw_target
95
- build/$1/%.o : src/%.cc $$(PCH_DEP) | $$$$(@D)/.mkdir
96
- $$(info Compiling $$<)
97
- @$$(MINGW_CXX) $$(MINGW_CXXFLAGS) $2 -I src/include -c -o $$@ $$<
98
- endef
99
-
100
- include src/subdir.mk
101
-
102
- .PHONY : all
103
- all : $(ALL_TARGETS)
104
-
105
- .PHONY : tests
106
- tests : $(TEST_PROGRAMS)
107
-
108
- .PHONY : install-bin
109
- install-bin : all
110
- mkdir -p $(PREFIX)/bin
111
- install -m 755 -p -s build/$(UNIX_ADAPTER_EXE) $(PREFIX)/bin
112
- install -m 755 -p -s build/winpty.dll $(PREFIX)/bin
113
- install -m 755 -p -s build/winpty-agent.exe $(PREFIX)/bin
114
-
115
- .PHONY : install-debugserver
116
- install-debugserver : all
117
- mkdir -p $(PREFIX)/bin
118
- install -m 755 -p -s build/winpty-debugserver.exe $(PREFIX)/bin
119
-
120
- .PHONY : install-lib
121
- install-lib : all
122
- mkdir -p $(PREFIX)/lib
123
- install -m 644 -p build/winpty.lib $(PREFIX)/lib
124
-
125
- .PHONY : install-doc
126
- install-doc :
127
- mkdir -p $(PREFIX)/share/doc/winpty
128
- install -m 644 -p LICENSE $(PREFIX)/share/doc/winpty
129
- install -m 644 -p README.md $(PREFIX)/share/doc/winpty
130
- install -m 644 -p RELEASES.md $(PREFIX)/share/doc/winpty
131
-
132
- .PHONY : install-include
133
- install-include :
134
- mkdir -p $(PREFIX)/include/winpty
135
- install -m 644 -p src/include/winpty.h $(PREFIX)/include/winpty
136
- install -m 644 -p src/include/winpty_constants.h $(PREFIX)/include/winpty
137
-
138
- .PHONY : install
139
- install : \
140
- install-bin \
141
- install-debugserver \
142
- install-lib \
143
- install-doc \
144
- install-include
145
-
146
- .PHONY : clean
147
- clean :
148
- rm -fr build
149
-
150
- .PHONY : clean-msvc
151
- clean-msvc :
152
- rm -fr src/Default src/Release src/.vs src/gen
153
- rm -f src/*.vcxproj src/*.vcxproj.filters src/*.sln src/*.sdf
154
-
155
- .PHONY : distclean
156
- distclean : clean
157
- rm -f config.mk
158
-
159
- .PRECIOUS : %.mkdir
160
- %.mkdir :
161
- $(info Creating directory $(dir $@))
162
- @mkdir -p $(dir $@)
163
- @touch $@
164
-
165
- src/%.h :
166
- @echo "Missing header file $@ (stale dependency file?)"