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/src/index.ts DELETED
@@ -1,52 +0,0 @@
1
- /**
2
- * Copyright (c) 2012-2015, Christopher Jeffrey, Peter Sunde (MIT License)
3
- * Copyright (c) 2016, Daniel Imms (MIT License).
4
- * Copyright (c) 2018, Microsoft Corporation (MIT License).
5
- */
6
-
7
- import { ITerminal, IPtyOpenOptions, IPtyForkOptions, IWindowsPtyForkOptions } from './interfaces';
8
- import { ArgvOrCommandLine } from './types';
9
- import { loadNativeModule } from './utils';
10
-
11
- let terminalCtor: any;
12
- if (process.platform === 'win32') {
13
- terminalCtor = require('./windowsTerminal').WindowsTerminal;
14
- } else {
15
- terminalCtor = require('./unixTerminal').UnixTerminal;
16
- }
17
-
18
- /**
19
- * Forks a process as a pseudoterminal.
20
- * @param file The file to launch.
21
- * @param args The file's arguments as argv (string[]) or in a pre-escaped
22
- * CommandLine format (string). Note that the CommandLine option is only
23
- * available on Windows and is expected to be escaped properly.
24
- * @param options The options of the terminal.
25
- * @throws When the file passed to spawn with does not exists.
26
- * @see CommandLineToArgvW https://msdn.microsoft.com/en-us/library/windows/desktop/bb776391(v=vs.85).aspx
27
- * @see Parsing C++ Comamnd-Line Arguments https://msdn.microsoft.com/en-us/library/17w5ykft.aspx
28
- * @see GetCommandLine https://msdn.microsoft.com/en-us/library/windows/desktop/ms683156.aspx
29
- */
30
- export function spawn(file?: string, args?: ArgvOrCommandLine, opt?: IPtyForkOptions | IWindowsPtyForkOptions): ITerminal {
31
- return new terminalCtor(file, args, opt);
32
- }
33
-
34
- /** @deprecated */
35
- export function fork(file?: string, args?: ArgvOrCommandLine, opt?: IPtyForkOptions | IWindowsPtyForkOptions): ITerminal {
36
- return new terminalCtor(file, args, opt);
37
- }
38
-
39
- /** @deprecated */
40
- export function createTerminal(file?: string, args?: ArgvOrCommandLine, opt?: IPtyForkOptions | IWindowsPtyForkOptions): ITerminal {
41
- return new terminalCtor(file, args, opt);
42
- }
43
-
44
- export function open(options: IPtyOpenOptions): ITerminal {
45
- return terminalCtor.open(options);
46
- }
47
-
48
- /**
49
- * Expose the native API when not Windows, note that this is not public API and
50
- * could be removed at any time.
51
- */
52
- export const native = (process.platform !== 'win32' ? loadNativeModule('pty').module : null);
package/src/interfaces.ts DELETED
@@ -1,130 +0,0 @@
1
- /**
2
- * Copyright (c) 2016, Daniel Imms (MIT License).
3
- * Copyright (c) 2018, Microsoft Corporation (MIT License).
4
- */
5
-
6
- export interface IProcessEnv {
7
- [key: string]: string | undefined;
8
- }
9
-
10
- export interface ITerminal {
11
- /**
12
- * Gets the name of the process.
13
- */
14
- process: string;
15
-
16
- /**
17
- * Gets the process ID.
18
- */
19
- pid: number;
20
-
21
- /**
22
- * Writes data to the socket.
23
- * @param data The data to write.
24
- */
25
- write(data: string | Buffer): void;
26
-
27
- /**
28
- * Resize the pty.
29
- * @param cols The number of columns.
30
- * @param rows The number of rows.
31
- */
32
- resize(cols: number, rows: number): void;
33
-
34
- /**
35
- * Clears the pty's internal representation of its buffer. This is a no-op
36
- * unless on Windows/ConPTY.
37
- */
38
- clear(): void;
39
-
40
- /**
41
- * Close, kill and destroy the socket.
42
- */
43
- destroy(): void;
44
-
45
- /**
46
- * Kill the pty.
47
- * @param signal The signal to send, by default this is SIGHUP. This is not
48
- * supported on Windows.
49
- */
50
- kill(signal?: string): void;
51
-
52
- /**
53
- * Set the pty socket encoding.
54
- */
55
- setEncoding(encoding: string | null): void;
56
-
57
- /**
58
- * Resume the pty socket.
59
- */
60
- resume(): void;
61
-
62
- /**
63
- * Pause the pty socket.
64
- */
65
- pause(): void;
66
-
67
- /**
68
- * Alias for ITerminal.on(eventName, listener).
69
- */
70
- addListener(eventName: string, listener: (...args: any[]) => any): void;
71
-
72
- /**
73
- * Adds the listener function to the end of the listeners array for the event
74
- * named eventName.
75
- * @param eventName The event name.
76
- * @param listener The callback function
77
- */
78
- on(eventName: string, listener: (...args: any[]) => any): void;
79
-
80
- /**
81
- * Returns a copy of the array of listeners for the event named eventName.
82
- */
83
- listeners(eventName: string): Function[];
84
-
85
- /**
86
- * Removes the specified listener from the listener array for the event named
87
- * eventName.
88
- */
89
- removeListener(eventName: string, listener: (...args: any[]) => any): void;
90
-
91
- /**
92
- * Removes all listeners, or those of the specified eventName.
93
- */
94
- removeAllListeners(eventName: string): void;
95
-
96
- /**
97
- * Adds a one time listener function for the event named eventName. The next
98
- * time eventName is triggered, this listener is removed and then invoked.
99
- */
100
- once(eventName: string, listener: (...args: any[]) => any): void;
101
- }
102
-
103
- interface IBasePtyForkOptions {
104
- name?: string;
105
- cols?: number;
106
- rows?: number;
107
- cwd?: string;
108
- env?: IProcessEnv;
109
- encoding?: string | null;
110
- handleFlowControl?: boolean;
111
- flowControlPause?: string;
112
- flowControlResume?: string;
113
- }
114
-
115
- export interface IPtyForkOptions extends IBasePtyForkOptions {
116
- uid?: number;
117
- gid?: number;
118
- }
119
-
120
- export interface IWindowsPtyForkOptions extends IBasePtyForkOptions {
121
- useConpty?: boolean;
122
- useConptyDll?: boolean;
123
- conptyInheritCursor?: boolean;
124
- }
125
-
126
- export interface IPtyOpenOptions {
127
- cols?: number;
128
- rows?: number;
129
- encoding?: string | null;
130
- }
package/src/native.d.ts DELETED
@@ -1,54 +0,0 @@
1
- /**
2
- * Copyright (c) 2018, Microsoft Corporation (MIT License).
3
- */
4
-
5
- interface IConptyNative {
6
- startProcess(file: string, cols: number, rows: number, debug: boolean, pipeName: string, conptyInheritCursor: boolean, useConptyDll: boolean): IConptyProcess;
7
- connect(ptyId: number, commandLine: string, cwd: string, env: string[], useConptyDll: boolean, onExitCallback: (exitCode: number) => void): { pid: number };
8
- resize(ptyId: number, cols: number, rows: number, useConptyDll: boolean): void;
9
- clear(ptyId: number, useConptyDll: boolean): void;
10
- kill(ptyId: number, useConptyDll: boolean): void;
11
- }
12
-
13
- interface IWinptyNative {
14
- startProcess(file: string, commandLine: string, env: string[], cwd: string, cols: number, rows: number, debug: boolean): IWinptyProcess;
15
- resize(pid: number, cols: number, rows: number): void;
16
- kill(pid: number, innerPid: number): void;
17
- getProcessList(pid: number): number[];
18
- getExitCode(innerPid: number): number;
19
- }
20
-
21
- interface IUnixNative {
22
- fork(file: string, args: string[], parsedEnv: string[], cwd: string, cols: number, rows: number, uid: number, gid: number, useUtf8: boolean, helperPath: string, onExitCallback: (code: number, signal: number) => void): IUnixProcess;
23
- open(cols: number, rows: number): IUnixOpenProcess;
24
- process(fd: number, pty?: string): string;
25
- resize(fd: number, cols: number, rows: number): void;
26
- }
27
-
28
- interface IConptyProcess {
29
- pty: number;
30
- fd: number;
31
- conin: string;
32
- conout: string;
33
- }
34
-
35
- interface IWinptyProcess {
36
- pty: number;
37
- fd: number;
38
- conin: string;
39
- conout: string;
40
- pid: number;
41
- innerPid: number;
42
- }
43
-
44
- interface IUnixProcess {
45
- fd: number;
46
- pid: number;
47
- pty: string;
48
- }
49
-
50
- interface IUnixOpenProcess {
51
- master: number;
52
- slave: number;
53
- pty: string;
54
- }
@@ -1,15 +0,0 @@
1
- /**
2
- * Copyright (c) 2020, Microsoft Corporation (MIT License).
3
- */
4
-
5
- export interface IWorkerData {
6
- conoutPipeName: string;
7
- }
8
-
9
- export const enum ConoutWorkerMessage {
10
- READY = 1
11
- }
12
-
13
- export function getWorkerPipeName(conoutPipeName: string): string {
14
- return `${conoutPipeName}-worker`;
15
- }
@@ -1,119 +0,0 @@
1
- /**
2
- * Copyright (c) 2017, Daniel Imms (MIT License).
3
- * Copyright (c) 2018, Microsoft Corporation (MIT License).
4
- */
5
-
6
- import * as assert from 'assert';
7
- import { WindowsTerminal } from './windowsTerminal';
8
- import { UnixTerminal } from './unixTerminal';
9
- import { Terminal } from './terminal';
10
- import { Socket } from 'net';
11
-
12
- const terminalConstructor = (process.platform === 'win32') ? WindowsTerminal : UnixTerminal;
13
- const SHELL = (process.platform === 'win32') ? 'cmd.exe' : '/bin/bash';
14
-
15
- let terminalCtor: WindowsTerminal | UnixTerminal;
16
- if (process.platform === 'win32') {
17
- terminalCtor = require('./windowsTerminal');
18
- } else {
19
- terminalCtor = require('./unixTerminal');
20
- }
21
-
22
- class TestTerminal extends Terminal {
23
- public checkType<T>(name: string, value: T, type: string, allowArray: boolean = false): void {
24
- this._checkType(name, value, type, allowArray);
25
- }
26
- protected _write(data: string | Buffer): void {
27
- throw new Error('Method not implemented.');
28
- }
29
- public resize(cols: number, rows: number): void {
30
- throw new Error('Method not implemented.');
31
- }
32
- public clear(): void {
33
- throw new Error('Method not implemented.');
34
- }
35
- public destroy(): void {
36
- throw new Error('Method not implemented.');
37
- }
38
- public kill(signal?: string): void {
39
- throw new Error('Method not implemented.');
40
- }
41
- public get process(): string {
42
- throw new Error('Method not implemented.');
43
- }
44
- public get master(): Socket {
45
- throw new Error('Method not implemented.');
46
- }
47
- public get slave(): Socket {
48
- throw new Error('Method not implemented.');
49
- }
50
- }
51
-
52
- describe('Terminal', () => {
53
- describe('constructor', () => {
54
- it('should do basic type checks', () => {
55
- assert.throws(
56
- () => new (<any>terminalCtor)('a', 'b', { 'name': {} }),
57
- 'name must be a string (not a object)'
58
- );
59
- });
60
- });
61
-
62
- describe('checkType', () => {
63
- it('should throw for the wrong type', () => {
64
- const t = new TestTerminal();
65
- assert.doesNotThrow(() => t.checkType('foo', 'test', 'string'));
66
- assert.doesNotThrow(() => t.checkType('foo', 1, 'number'));
67
- assert.doesNotThrow(() => t.checkType('foo', {}, 'object'));
68
-
69
- assert.throws(() => t.checkType('foo', 'test', 'number'));
70
- assert.throws(() => t.checkType('foo', 1, 'object'));
71
- assert.throws(() => t.checkType('foo', {}, 'string'));
72
- });
73
- it('should throw for wrong types within arrays', () => {
74
- const t = new TestTerminal();
75
- assert.doesNotThrow(() => t.checkType('foo', ['test'], 'string', true));
76
- assert.doesNotThrow(() => t.checkType('foo', [1], 'number', true));
77
- assert.doesNotThrow(() => t.checkType('foo', [{}], 'object', true));
78
-
79
- assert.throws(() => t.checkType('foo', ['test'], 'number', true));
80
- assert.throws(() => t.checkType('foo', [1], 'object', true));
81
- assert.throws(() => t.checkType('foo', [{}], 'string', true));
82
- });
83
- });
84
-
85
- describe('automatic flow control', () => {
86
- it('should respect ctor flow control options', () => {
87
- const pty = new terminalConstructor(SHELL, [], {handleFlowControl: true, flowControlPause: 'abc', flowControlResume: '123'});
88
- assert.equal(pty.handleFlowControl, true);
89
- assert.equal((pty as any)._flowControlPause, 'abc');
90
- assert.equal((pty as any)._flowControlResume, '123');
91
- });
92
- // TODO: I don't think this test ever worked due to pollUntil being used incorrectly
93
- // it('should do flow control automatically', async function(): Promise<void> {
94
- // // Flow control doesn't work on Windows
95
- // if (process.platform === 'win32') {
96
- // return;
97
- // }
98
-
99
- // this.timeout(10000);
100
- // const pty = new terminalConstructor(SHELL, [], {handleFlowControl: true, flowControlPause: 'PAUSE', flowControlResume: 'RESUME'});
101
- // let read: string = '';
102
- // pty.on('data', data => read += data);
103
- // pty.on('pause', () => read += 'paused');
104
- // pty.on('resume', () => read += 'resumed');
105
- // pty.write('1');
106
- // pty.write('PAUSE');
107
- // pty.write('2');
108
- // pty.write('RESUME');
109
- // pty.write('3');
110
- // await pollUntil(() => {
111
- // return stripEscapeSequences(read).endsWith('1pausedresumed23');
112
- // }, 100, 10);
113
- // });
114
- });
115
- });
116
-
117
- function stripEscapeSequences(data: string): string {
118
- return data.replace(/\u001b\[0K/, '');
119
- }
package/src/terminal.ts DELETED
@@ -1,211 +0,0 @@
1
- /**
2
- * Copyright (c) 2012-2015, Christopher Jeffrey (MIT License)
3
- * Copyright (c) 2016, Daniel Imms (MIT License).
4
- * Copyright (c) 2018, Microsoft Corporation (MIT License).
5
- */
6
-
7
- import { Socket } from 'net';
8
- import { EventEmitter } from 'events';
9
- import { ITerminal, IPtyForkOptions, IProcessEnv } from './interfaces';
10
- import { EventEmitter2, IEvent } from './eventEmitter2';
11
- import { IExitEvent } from './types';
12
-
13
- export const DEFAULT_COLS: number = 80;
14
- export const DEFAULT_ROWS: number = 24;
15
-
16
- /**
17
- * Default messages to indicate PAUSE/RESUME for automatic flow control.
18
- * To avoid conflicts with rebound XON/XOFF control codes (such as on-my-zsh),
19
- * the sequences can be customized in `IPtyForkOptions`.
20
- */
21
- const FLOW_CONTROL_PAUSE = '\x13'; // defaults to XOFF
22
- const FLOW_CONTROL_RESUME = '\x11'; // defaults to XON
23
-
24
- export abstract class Terminal implements ITerminal {
25
- protected _socket!: Socket; // HACK: This is unsafe
26
- protected _pid: number = 0;
27
- protected _fd: number = 0;
28
- protected _pty: any;
29
-
30
- protected _file!: string; // HACK: This is unsafe
31
- protected _name!: string; // HACK: This is unsafe
32
- protected _cols: number = 0;
33
- protected _rows: number = 0;
34
-
35
- protected _readable: boolean = false;
36
- protected _writable: boolean = false;
37
-
38
- protected _internalee: EventEmitter;
39
- private _flowControlPause: string;
40
- private _flowControlResume: string;
41
- public handleFlowControl: boolean;
42
-
43
- private _onData = new EventEmitter2<string>();
44
- public get onData(): IEvent<string> { return this._onData.event; }
45
- private _onExit = new EventEmitter2<IExitEvent>();
46
- public get onExit(): IEvent<IExitEvent> { return this._onExit.event; }
47
-
48
- public get pid(): number { return this._pid; }
49
- public get cols(): number { return this._cols; }
50
- public get rows(): number { return this._rows; }
51
-
52
- constructor(opt?: IPtyForkOptions) {
53
- // for 'close'
54
- this._internalee = new EventEmitter();
55
-
56
- // setup flow control handling
57
- this.handleFlowControl = !!(opt?.handleFlowControl);
58
- this._flowControlPause = opt?.flowControlPause || FLOW_CONTROL_PAUSE;
59
- this._flowControlResume = opt?.flowControlResume || FLOW_CONTROL_RESUME;
60
-
61
- if (!opt) {
62
- return;
63
- }
64
-
65
- // Do basic type checks here in case node-pty is being used within JavaScript. If the wrong
66
- // types go through to the C++ side it can lead to hard to diagnose exceptions.
67
- this._checkType('name', opt.name ? opt.name : undefined, 'string');
68
- this._checkType('cols', opt.cols ? opt.cols : undefined, 'number');
69
- this._checkType('rows', opt.rows ? opt.rows : undefined, 'number');
70
- this._checkType('cwd', opt.cwd ? opt.cwd : undefined, 'string');
71
- this._checkType('env', opt.env ? opt.env : undefined, 'object');
72
- this._checkType('uid', opt.uid ? opt.uid : undefined, 'number');
73
- this._checkType('gid', opt.gid ? opt.gid : undefined, 'number');
74
- this._checkType('encoding', opt.encoding ? opt.encoding : undefined, 'string');
75
- }
76
-
77
- protected abstract _write(data: string | Buffer): void;
78
-
79
- public write(data: string | Buffer): void {
80
- if (this.handleFlowControl) {
81
- // PAUSE/RESUME messages are not forwarded to the pty
82
- if (data === this._flowControlPause) {
83
- this.pause();
84
- return;
85
- }
86
- if (data === this._flowControlResume) {
87
- this.resume();
88
- return;
89
- }
90
- }
91
- // everything else goes to the real pty
92
- this._write(data);
93
- }
94
-
95
- protected _forwardEvents(): void {
96
- this.on('data', e => this._onData.fire(e));
97
- this.on('exit', (exitCode, signal) => this._onExit.fire({ exitCode, signal }));
98
- }
99
-
100
- protected _checkType<T>(name: string, value: T | undefined, type: string, allowArray: boolean = false): void {
101
- if (value === undefined) {
102
- return;
103
- }
104
- if (allowArray) {
105
- if (Array.isArray(value)) {
106
- value.forEach((v, i) => {
107
- if (typeof v !== type) {
108
- throw new Error(`${name}[${i}] must be a ${type} (not a ${typeof v[i]})`);
109
- }
110
- });
111
- return;
112
- }
113
- }
114
- if (typeof value !== type) {
115
- throw new Error(`${name} must be a ${type} (not a ${typeof value})`);
116
- }
117
- }
118
-
119
- /** See net.Socket.end */
120
- public end(data: string): void {
121
- this._socket.end(data);
122
- }
123
-
124
- /** See stream.Readable.pipe */
125
- public pipe(dest: any, options: any): any {
126
- return this._socket.pipe(dest, options);
127
- }
128
-
129
- /** See net.Socket.pause */
130
- public pause(): Socket {
131
- return this._socket.pause();
132
- }
133
-
134
- /** See net.Socket.resume */
135
- public resume(): Socket {
136
- return this._socket.resume();
137
- }
138
-
139
- /** See net.Socket.setEncoding */
140
- public setEncoding(encoding: string | null): void {
141
- if ((this._socket as any)._decoder) {
142
- delete (this._socket as any)._decoder;
143
- }
144
- if (encoding) {
145
- this._socket.setEncoding(encoding);
146
- }
147
- }
148
-
149
- public addListener(eventName: string, listener: (...args: any[]) => any): void { this.on(eventName, listener); }
150
- public on(eventName: string, listener: (...args: any[]) => any): void {
151
- if (eventName === 'close') {
152
- this._internalee.on('close', listener);
153
- return;
154
- }
155
- this._socket.on(eventName, listener);
156
- }
157
-
158
- public emit(eventName: string, ...args: any[]): any {
159
- if (eventName === 'close') {
160
- return this._internalee.emit.apply(this._internalee, arguments as any);
161
- }
162
- return this._socket.emit.apply(this._socket, arguments as any);
163
- }
164
-
165
- public listeners(eventName: string): Function[] {
166
- return this._socket.listeners(eventName);
167
- }
168
-
169
- public removeListener(eventName: string, listener: (...args: any[]) => any): void {
170
- this._socket.removeListener(eventName, listener);
171
- }
172
-
173
- public removeAllListeners(eventName: string): void {
174
- this._socket.removeAllListeners(eventName);
175
- }
176
-
177
- public once(eventName: string, listener: (...args: any[]) => any): void {
178
- this._socket.once(eventName, listener);
179
- }
180
-
181
- public abstract resize(cols: number, rows: number): void;
182
- public abstract clear(): void;
183
- public abstract destroy(): void;
184
- public abstract kill(signal?: string): void;
185
-
186
- public abstract get process(): string;
187
- public abstract get master(): Socket| undefined;
188
- public abstract get slave(): Socket | undefined;
189
-
190
- protected _close(): void {
191
- this._socket.readable = false;
192
- this.write = () => {};
193
- this.end = () => {};
194
- this._writable = false;
195
- this._readable = false;
196
- }
197
-
198
- protected _parseEnv(env: IProcessEnv): string[] {
199
- const keys = Object.keys(env || {});
200
- const pairs = [];
201
-
202
- for (let i = 0; i < keys.length; i++) {
203
- if (keys[i] === undefined) {
204
- continue;
205
- }
206
- pairs.push(keys[i] + '=' + env[keys[i]]);
207
- }
208
-
209
- return pairs;
210
- }
211
- }
@@ -1,23 +0,0 @@
1
- /**
2
- * Copyright (c) 2019, Microsoft Corporation (MIT License).
3
- */
4
-
5
- export function pollUntil(cb: () => boolean, timeout: number, interval: number): Promise<void> {
6
- return new Promise<void>((resolve, reject) => {
7
- const intervalId = setInterval(() => {
8
- if (cb()) {
9
- clearInterval(intervalId);
10
- clearTimeout(timeoutId);
11
- resolve();
12
- }
13
- }, interval);
14
- const timeoutId = setTimeout(() => {
15
- clearInterval(intervalId);
16
- if (cb()) {
17
- resolve();
18
- } else {
19
- reject();
20
- }
21
- }, timeout);
22
- });
23
- }
package/src/tsconfig.json DELETED
@@ -1,22 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "module": "commonjs",
4
- "target": "es5",
5
- "rootDir": ".",
6
- "outDir": "../lib",
7
- "sourceMap": true,
8
- "lib": [
9
- "es2015"
10
- ],
11
- "strict": true
12
- },
13
- "exclude": [
14
- "node_modules",
15
- "scripts",
16
- "index.js",
17
- "demo.js",
18
- "lib",
19
- "test",
20
- "examples"
21
- ]
22
- }
package/src/types.ts DELETED
@@ -1,15 +0,0 @@
1
- /**
2
- * Copyright (c) 2017, Daniel Imms (MIT License).
3
- * Copyright (c) 2018, Microsoft Corporation (MIT License).
4
- */
5
-
6
- export type ArgvOrCommandLine = string[] | string;
7
-
8
- export interface IExitEvent {
9
- exitCode: number;
10
- signal: number | undefined;
11
- }
12
-
13
- export interface IDisposable {
14
- dispose(): void;
15
- }