vibeman 0.0.13 → 0.0.16

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 (320) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +4 -0
  3. package/dist/api.js +1155 -300
  4. package/dist/commit.txt +1 -1
  5. package/dist/index.js +127 -48
  6. package/dist/node_modules/node-pty/LICENSE +69 -0
  7. package/dist/node_modules/node-pty/README.md +165 -0
  8. package/dist/node_modules/node-pty/binding.gyp +111 -0
  9. package/dist/node_modules/node-pty/deps/.editorconfig +2 -0
  10. package/dist/node_modules/node-pty/deps/winpty/.drone.yml +17 -0
  11. package/dist/node_modules/node-pty/deps/winpty/.gitattributes +19 -0
  12. package/dist/node_modules/node-pty/deps/winpty/LICENSE +21 -0
  13. package/dist/node_modules/node-pty/deps/winpty/Makefile +166 -0
  14. package/dist/node_modules/node-pty/deps/winpty/README.md +151 -0
  15. package/dist/node_modules/node-pty/deps/winpty/RELEASES.md +280 -0
  16. package/dist/node_modules/node-pty/deps/winpty/VERSION.txt +1 -0
  17. package/dist/node_modules/node-pty/deps/winpty/configure +167 -0
  18. package/dist/node_modules/node-pty/deps/winpty/misc/BufferResizeTests.cc +90 -0
  19. package/dist/node_modules/node-pty/deps/winpty/misc/ChangeScreenBuffer.cc +53 -0
  20. package/dist/node_modules/node-pty/deps/winpty/misc/ClearConsole.cc +72 -0
  21. package/dist/node_modules/node-pty/deps/winpty/misc/ConinMode.cc +117 -0
  22. package/dist/node_modules/node-pty/deps/winpty/misc/ConinMode.ps1 +116 -0
  23. package/dist/node_modules/node-pty/deps/winpty/misc/ConoutMode.cc +113 -0
  24. package/dist/node_modules/node-pty/deps/winpty/misc/DebugClient.py +42 -0
  25. package/dist/node_modules/node-pty/deps/winpty/misc/DebugServer.py +63 -0
  26. package/dist/node_modules/node-pty/deps/winpty/misc/DumpLines.py +5 -0
  27. package/dist/node_modules/node-pty/deps/winpty/misc/EnableExtendedFlags.txt +46 -0
  28. package/dist/node_modules/node-pty/deps/winpty/misc/Font-Report-June2016/CP437-Consolas.txt +528 -0
  29. package/dist/node_modules/node-pty/deps/winpty/misc/Font-Report-June2016/CP437-Lucida.txt +633 -0
  30. package/dist/node_modules/node-pty/deps/winpty/misc/Font-Report-June2016/CP932.txt +630 -0
  31. package/dist/node_modules/node-pty/deps/winpty/misc/Font-Report-June2016/CP936.txt +630 -0
  32. package/dist/node_modules/node-pty/deps/winpty/misc/Font-Report-June2016/CP949.txt +630 -0
  33. package/dist/node_modules/node-pty/deps/winpty/misc/Font-Report-June2016/CP950.txt +630 -0
  34. package/dist/node_modules/node-pty/deps/winpty/misc/Font-Report-June2016/MinimumWindowWidths.txt +16 -0
  35. package/dist/node_modules/node-pty/deps/winpty/misc/Font-Report-June2016/Results.txt +4 -0
  36. package/dist/node_modules/node-pty/deps/winpty/misc/Font-Report-June2016/Windows10SetFontBugginess.txt +144 -0
  37. package/dist/node_modules/node-pty/deps/winpty/misc/FontSurvey.cc +100 -0
  38. package/dist/node_modules/node-pty/deps/winpty/misc/FormatChar.h +21 -0
  39. package/dist/node_modules/node-pty/deps/winpty/misc/FreezePerfTest.cc +62 -0
  40. package/dist/node_modules/node-pty/deps/winpty/misc/GetCh.cc +20 -0
  41. package/dist/node_modules/node-pty/deps/winpty/misc/GetConsolePos.cc +41 -0
  42. package/dist/node_modules/node-pty/deps/winpty/misc/GetFont.cc +261 -0
  43. package/dist/node_modules/node-pty/deps/winpty/misc/IdentifyConsoleWindow.ps1 +51 -0
  44. package/dist/node_modules/node-pty/deps/winpty/misc/IsNewConsole.cc +87 -0
  45. package/dist/node_modules/node-pty/deps/winpty/misc/MouseInputNotes.txt +90 -0
  46. package/dist/node_modules/node-pty/deps/winpty/misc/MoveConsoleWindow.cc +34 -0
  47. package/dist/node_modules/node-pty/deps/winpty/misc/Notes.txt +219 -0
  48. package/dist/node_modules/node-pty/deps/winpty/misc/OSVersion.cc +27 -0
  49. package/dist/node_modules/node-pty/deps/winpty/misc/ScreenBufferFreezeInactive.cc +101 -0
  50. package/dist/node_modules/node-pty/deps/winpty/misc/ScreenBufferTest.cc +671 -0
  51. package/dist/node_modules/node-pty/deps/winpty/misc/ScreenBufferTest2.cc +151 -0
  52. package/dist/node_modules/node-pty/deps/winpty/misc/SelectAllTest.cc +45 -0
  53. package/dist/node_modules/node-pty/deps/winpty/misc/SetBufferSize.cc +32 -0
  54. package/dist/node_modules/node-pty/deps/winpty/misc/SetCursorPos.cc +10 -0
  55. package/dist/node_modules/node-pty/deps/winpty/misc/SetFont.cc +145 -0
  56. package/dist/node_modules/node-pty/deps/winpty/misc/SetWindowRect.cc +36 -0
  57. package/dist/node_modules/node-pty/deps/winpty/misc/ShowArgv.cc +12 -0
  58. package/dist/node_modules/node-pty/deps/winpty/misc/ShowConsoleInput.cc +40 -0
  59. package/dist/node_modules/node-pty/deps/winpty/misc/Spew.py +5 -0
  60. package/dist/node_modules/node-pty/deps/winpty/misc/TestUtil.cc +172 -0
  61. package/dist/node_modules/node-pty/deps/winpty/misc/UnicodeDoubleWidthTest.cc +102 -0
  62. package/dist/node_modules/node-pty/deps/winpty/misc/UnicodeWideTest1.cc +246 -0
  63. package/dist/node_modules/node-pty/deps/winpty/misc/UnicodeWideTest2.cc +130 -0
  64. package/dist/node_modules/node-pty/deps/winpty/misc/UnixEcho.cc +89 -0
  65. package/dist/node_modules/node-pty/deps/winpty/misc/Utf16Echo.cc +46 -0
  66. package/dist/node_modules/node-pty/deps/winpty/misc/VeryLargeRead.cc +122 -0
  67. package/dist/node_modules/node-pty/deps/winpty/misc/VkEscapeTest.cc +56 -0
  68. package/dist/node_modules/node-pty/deps/winpty/misc/Win10ResizeWhileFrozen.cc +52 -0
  69. package/dist/node_modules/node-pty/deps/winpty/misc/Win10WrapTest1.cc +57 -0
  70. package/dist/node_modules/node-pty/deps/winpty/misc/Win10WrapTest2.cc +30 -0
  71. package/dist/node_modules/node-pty/deps/winpty/misc/Win32Echo1.cc +26 -0
  72. package/dist/node_modules/node-pty/deps/winpty/misc/Win32Echo2.cc +19 -0
  73. package/dist/node_modules/node-pty/deps/winpty/misc/Win32Test1.cc +46 -0
  74. package/dist/node_modules/node-pty/deps/winpty/misc/Win32Test2.cc +70 -0
  75. package/dist/node_modules/node-pty/deps/winpty/misc/Win32Test3.cc +78 -0
  76. package/dist/node_modules/node-pty/deps/winpty/misc/Win32Write1.cc +44 -0
  77. package/dist/node_modules/node-pty/deps/winpty/misc/WindowsBugCrashReader.cc +27 -0
  78. package/dist/node_modules/node-pty/deps/winpty/misc/WriteConsole.cc +106 -0
  79. package/dist/node_modules/node-pty/deps/winpty/misc/build32.sh +9 -0
  80. package/dist/node_modules/node-pty/deps/winpty/misc/build64.sh +9 -0
  81. package/dist/node_modules/node-pty/deps/winpty/misc/color-test.sh +212 -0
  82. package/dist/node_modules/node-pty/deps/winpty/misc/font-notes.txt +300 -0
  83. package/dist/node_modules/node-pty/deps/winpty/misc/winbug-15048.cc +201 -0
  84. package/dist/node_modules/node-pty/deps/winpty/ship/build-pty4j-libpty.bat +36 -0
  85. package/dist/node_modules/node-pty/deps/winpty/ship/common_ship.py +53 -0
  86. package/dist/node_modules/node-pty/deps/winpty/ship/make_msvc_package.py +165 -0
  87. package/dist/node_modules/node-pty/deps/winpty/ship/ship.py +108 -0
  88. package/dist/node_modules/node-pty/deps/winpty/src/agent/Agent.cc +613 -0
  89. package/dist/node_modules/node-pty/deps/winpty/src/agent/Agent.h +103 -0
  90. package/dist/node_modules/node-pty/deps/winpty/src/agent/AgentCreateDesktop.cc +84 -0
  91. package/dist/node_modules/node-pty/deps/winpty/src/agent/AgentCreateDesktop.h +28 -0
  92. package/dist/node_modules/node-pty/deps/winpty/src/agent/ConsoleFont.cc +632 -0
  93. package/dist/node_modules/node-pty/deps/winpty/src/agent/ConsoleFont.h +28 -0
  94. package/dist/node_modules/node-pty/deps/winpty/src/agent/ConsoleInput.cc +852 -0
  95. package/dist/node_modules/node-pty/deps/winpty/src/agent/ConsoleInput.h +109 -0
  96. package/dist/node_modules/node-pty/deps/winpty/src/agent/ConsoleInputReencoding.cc +121 -0
  97. package/dist/node_modules/node-pty/deps/winpty/src/agent/ConsoleInputReencoding.h +36 -0
  98. package/dist/node_modules/node-pty/deps/winpty/src/agent/ConsoleLine.cc +152 -0
  99. package/dist/node_modules/node-pty/deps/winpty/src/agent/ConsoleLine.h +41 -0
  100. package/dist/node_modules/node-pty/deps/winpty/src/agent/Coord.h +87 -0
  101. package/dist/node_modules/node-pty/deps/winpty/src/agent/DebugShowInput.cc +239 -0
  102. package/dist/node_modules/node-pty/deps/winpty/src/agent/DebugShowInput.h +32 -0
  103. package/dist/node_modules/node-pty/deps/winpty/src/agent/DefaultInputMap.cc +422 -0
  104. package/dist/node_modules/node-pty/deps/winpty/src/agent/DefaultInputMap.h +28 -0
  105. package/dist/node_modules/node-pty/deps/winpty/src/agent/DsrSender.h +30 -0
  106. package/dist/node_modules/node-pty/deps/winpty/src/agent/EventLoop.cc +99 -0
  107. package/dist/node_modules/node-pty/deps/winpty/src/agent/EventLoop.h +47 -0
  108. package/dist/node_modules/node-pty/deps/winpty/src/agent/InputMap.cc +246 -0
  109. package/dist/node_modules/node-pty/deps/winpty/src/agent/InputMap.h +114 -0
  110. package/dist/node_modules/node-pty/deps/winpty/src/agent/LargeConsoleRead.cc +71 -0
  111. package/dist/node_modules/node-pty/deps/winpty/src/agent/LargeConsoleRead.h +68 -0
  112. package/dist/node_modules/node-pty/deps/winpty/src/agent/NamedPipe.cc +378 -0
  113. package/dist/node_modules/node-pty/deps/winpty/src/agent/NamedPipe.h +125 -0
  114. package/dist/node_modules/node-pty/deps/winpty/src/agent/Scraper.cc +699 -0
  115. package/dist/node_modules/node-pty/deps/winpty/src/agent/Scraper.h +103 -0
  116. package/dist/node_modules/node-pty/deps/winpty/src/agent/SimplePool.h +75 -0
  117. package/dist/node_modules/node-pty/deps/winpty/src/agent/SmallRect.h +143 -0
  118. package/dist/node_modules/node-pty/deps/winpty/src/agent/Terminal.cc +535 -0
  119. package/dist/node_modules/node-pty/deps/winpty/src/agent/Terminal.h +69 -0
  120. package/dist/node_modules/node-pty/deps/winpty/src/agent/UnicodeEncoding.h +157 -0
  121. package/dist/node_modules/node-pty/deps/winpty/src/agent/UnicodeEncodingTest.cc +189 -0
  122. package/dist/node_modules/node-pty/deps/winpty/src/agent/Win32Console.cc +107 -0
  123. package/dist/node_modules/node-pty/deps/winpty/src/agent/Win32Console.h +67 -0
  124. package/dist/node_modules/node-pty/deps/winpty/src/agent/Win32ConsoleBuffer.cc +193 -0
  125. package/dist/node_modules/node-pty/deps/winpty/src/agent/Win32ConsoleBuffer.h +99 -0
  126. package/dist/node_modules/node-pty/deps/winpty/src/agent/main.cc +114 -0
  127. package/dist/node_modules/node-pty/deps/winpty/src/agent/subdir.mk +61 -0
  128. package/dist/node_modules/node-pty/deps/winpty/src/configurations.gypi +60 -0
  129. package/dist/node_modules/node-pty/deps/winpty/src/debugserver/DebugServer.cc +117 -0
  130. package/dist/node_modules/node-pty/deps/winpty/src/debugserver/subdir.mk +41 -0
  131. package/dist/node_modules/node-pty/deps/winpty/src/include/winpty.h +242 -0
  132. package/dist/node_modules/node-pty/deps/winpty/src/include/winpty_constants.h +131 -0
  133. package/dist/node_modules/node-pty/deps/winpty/src/libwinpty/AgentLocation.cc +75 -0
  134. package/dist/node_modules/node-pty/deps/winpty/src/libwinpty/AgentLocation.h +28 -0
  135. package/dist/node_modules/node-pty/deps/winpty/src/libwinpty/LibWinptyException.h +54 -0
  136. package/dist/node_modules/node-pty/deps/winpty/src/libwinpty/WinptyInternal.h +72 -0
  137. package/dist/node_modules/node-pty/deps/winpty/src/libwinpty/subdir.mk +46 -0
  138. package/dist/node_modules/node-pty/deps/winpty/src/libwinpty/winpty.cc +970 -0
  139. package/dist/node_modules/node-pty/deps/winpty/src/shared/AgentMsg.h +38 -0
  140. package/dist/node_modules/node-pty/deps/winpty/src/shared/BackgroundDesktop.cc +122 -0
  141. package/dist/node_modules/node-pty/deps/winpty/src/shared/BackgroundDesktop.h +73 -0
  142. package/dist/node_modules/node-pty/deps/winpty/src/shared/Buffer.cc +103 -0
  143. package/dist/node_modules/node-pty/deps/winpty/src/shared/Buffer.h +102 -0
  144. package/dist/node_modules/node-pty/deps/winpty/src/shared/DebugClient.cc +187 -0
  145. package/dist/node_modules/node-pty/deps/winpty/src/shared/DebugClient.h +38 -0
  146. package/dist/node_modules/node-pty/deps/winpty/src/shared/GenRandom.cc +138 -0
  147. package/dist/node_modules/node-pty/deps/winpty/src/shared/GenRandom.h +55 -0
  148. package/dist/node_modules/node-pty/deps/winpty/src/shared/GetCommitHash.bat +13 -0
  149. package/dist/node_modules/node-pty/deps/winpty/src/shared/Mutex.h +54 -0
  150. package/dist/node_modules/node-pty/deps/winpty/src/shared/OsModule.h +63 -0
  151. package/dist/node_modules/node-pty/deps/winpty/src/shared/OwnedHandle.cc +36 -0
  152. package/dist/node_modules/node-pty/deps/winpty/src/shared/OwnedHandle.h +45 -0
  153. package/dist/node_modules/node-pty/deps/winpty/src/shared/PrecompiledHeader.h +43 -0
  154. package/dist/node_modules/node-pty/deps/winpty/src/shared/StringBuilder.h +227 -0
  155. package/dist/node_modules/node-pty/deps/winpty/src/shared/StringBuilderTest.cc +114 -0
  156. package/dist/node_modules/node-pty/deps/winpty/src/shared/StringUtil.cc +55 -0
  157. package/dist/node_modules/node-pty/deps/winpty/src/shared/StringUtil.h +80 -0
  158. package/dist/node_modules/node-pty/deps/winpty/src/shared/TimeMeasurement.h +63 -0
  159. package/dist/node_modules/node-pty/deps/winpty/src/shared/UnixCtrlChars.h +45 -0
  160. package/dist/node_modules/node-pty/deps/winpty/src/shared/UpdateGenVersion.bat +20 -0
  161. package/dist/node_modules/node-pty/deps/winpty/src/shared/WindowsSecurity.cc +460 -0
  162. package/dist/node_modules/node-pty/deps/winpty/src/shared/WindowsSecurity.h +104 -0
  163. package/dist/node_modules/node-pty/deps/winpty/src/shared/WindowsVersion.cc +252 -0
  164. package/dist/node_modules/node-pty/deps/winpty/src/shared/WindowsVersion.h +29 -0
  165. package/dist/node_modules/node-pty/deps/winpty/src/shared/WinptyAssert.cc +55 -0
  166. package/dist/node_modules/node-pty/deps/winpty/src/shared/WinptyAssert.h +64 -0
  167. package/dist/node_modules/node-pty/deps/winpty/src/shared/WinptyException.cc +57 -0
  168. package/dist/node_modules/node-pty/deps/winpty/src/shared/WinptyException.h +43 -0
  169. package/dist/node_modules/node-pty/deps/winpty/src/shared/WinptyVersion.cc +42 -0
  170. package/dist/node_modules/node-pty/deps/winpty/src/shared/WinptyVersion.h +27 -0
  171. package/dist/node_modules/node-pty/deps/winpty/src/shared/winpty_snprintf.h +99 -0
  172. package/dist/node_modules/node-pty/deps/winpty/src/subdir.mk +5 -0
  173. package/dist/node_modules/node-pty/deps/winpty/src/tests/subdir.mk +28 -0
  174. package/dist/node_modules/node-pty/deps/winpty/src/tests/trivial_test.cc +158 -0
  175. package/dist/node_modules/node-pty/deps/winpty/src/unix-adapter/InputHandler.cc +114 -0
  176. package/dist/node_modules/node-pty/deps/winpty/src/unix-adapter/InputHandler.h +56 -0
  177. package/dist/node_modules/node-pty/deps/winpty/src/unix-adapter/OutputHandler.cc +80 -0
  178. package/dist/node_modules/node-pty/deps/winpty/src/unix-adapter/OutputHandler.h +53 -0
  179. package/dist/node_modules/node-pty/deps/winpty/src/unix-adapter/Util.cc +86 -0
  180. package/dist/node_modules/node-pty/deps/winpty/src/unix-adapter/Util.h +31 -0
  181. package/dist/node_modules/node-pty/deps/winpty/src/unix-adapter/WakeupFd.cc +70 -0
  182. package/dist/node_modules/node-pty/deps/winpty/src/unix-adapter/WakeupFd.h +42 -0
  183. package/dist/node_modules/node-pty/deps/winpty/src/unix-adapter/main.cc +729 -0
  184. package/dist/node_modules/node-pty/deps/winpty/src/unix-adapter/subdir.mk +41 -0
  185. package/dist/node_modules/node-pty/deps/winpty/src/winpty.gyp +234 -0
  186. package/dist/node_modules/node-pty/deps/winpty/vcbuild.bat +83 -0
  187. package/dist/node_modules/node-pty/lib/conpty_console_list_agent.js +16 -0
  188. package/dist/node_modules/node-pty/lib/conpty_console_list_agent.js.map +1 -0
  189. package/dist/node_modules/node-pty/lib/eventEmitter2.js +47 -0
  190. package/dist/node_modules/node-pty/lib/eventEmitter2.js.map +1 -0
  191. package/dist/node_modules/node-pty/lib/eventEmitter2.test.js +30 -0
  192. package/dist/node_modules/node-pty/lib/eventEmitter2.test.js.map +1 -0
  193. package/dist/node_modules/node-pty/lib/index.js +52 -0
  194. package/dist/node_modules/node-pty/lib/index.js.map +1 -0
  195. package/dist/node_modules/node-pty/lib/interfaces.js +7 -0
  196. package/dist/node_modules/node-pty/lib/interfaces.js.map +1 -0
  197. package/dist/node_modules/node-pty/lib/shared/conout.js +11 -0
  198. package/dist/node_modules/node-pty/lib/shared/conout.js.map +1 -0
  199. package/dist/node_modules/node-pty/lib/terminal.js +190 -0
  200. package/dist/node_modules/node-pty/lib/terminal.js.map +1 -0
  201. package/dist/node_modules/node-pty/lib/terminal.test.js +139 -0
  202. package/dist/node_modules/node-pty/lib/terminal.test.js.map +1 -0
  203. package/dist/node_modules/node-pty/lib/testUtils.test.js +28 -0
  204. package/dist/node_modules/node-pty/lib/testUtils.test.js.map +1 -0
  205. package/dist/node_modules/node-pty/lib/types.js +7 -0
  206. package/dist/node_modules/node-pty/lib/types.js.map +1 -0
  207. package/dist/node_modules/node-pty/lib/unixTerminal.js +346 -0
  208. package/dist/node_modules/node-pty/lib/unixTerminal.js.map +1 -0
  209. package/dist/node_modules/node-pty/lib/unixTerminal.test.js +351 -0
  210. package/dist/node_modules/node-pty/lib/unixTerminal.test.js.map +1 -0
  211. package/dist/node_modules/node-pty/lib/utils.js +39 -0
  212. package/dist/node_modules/node-pty/lib/utils.js.map +1 -0
  213. package/dist/node_modules/node-pty/lib/windowsConoutConnection.js +125 -0
  214. package/dist/node_modules/node-pty/lib/windowsConoutConnection.js.map +1 -0
  215. package/dist/node_modules/node-pty/lib/windowsPtyAgent.js +320 -0
  216. package/dist/node_modules/node-pty/lib/windowsPtyAgent.js.map +1 -0
  217. package/dist/node_modules/node-pty/lib/windowsPtyAgent.test.js +90 -0
  218. package/dist/node_modules/node-pty/lib/windowsPtyAgent.test.js.map +1 -0
  219. package/dist/node_modules/node-pty/lib/windowsTerminal.js +199 -0
  220. package/dist/node_modules/node-pty/lib/windowsTerminal.js.map +1 -0
  221. package/dist/node_modules/node-pty/lib/windowsTerminal.test.js +219 -0
  222. package/dist/node_modules/node-pty/lib/windowsTerminal.test.js.map +1 -0
  223. package/dist/node_modules/node-pty/lib/worker/conoutSocketWorker.js +22 -0
  224. package/dist/node_modules/node-pty/lib/worker/conoutSocketWorker.js.map +1 -0
  225. package/dist/node_modules/node-pty/package.json +64 -0
  226. package/dist/node_modules/node-pty/prebuilds/darwin-arm64/pty.node +0 -0
  227. package/dist/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper +0 -0
  228. package/dist/node_modules/node-pty/prebuilds/darwin-x64/pty.node +0 -0
  229. package/dist/node_modules/node-pty/prebuilds/darwin-x64/spawn-helper +0 -0
  230. package/dist/node_modules/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
  231. package/dist/node_modules/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
  232. package/dist/node_modules/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
  233. package/dist/node_modules/node-pty/prebuilds/win32-arm64/conpty.pdb +0 -0
  234. package/dist/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
  235. package/dist/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.pdb +0 -0
  236. package/dist/node_modules/node-pty/prebuilds/win32-arm64/pty.node +0 -0
  237. package/dist/node_modules/node-pty/prebuilds/win32-arm64/pty.pdb +0 -0
  238. package/dist/node_modules/node-pty/prebuilds/win32-arm64/winpty-agent.exe +0 -0
  239. package/dist/node_modules/node-pty/prebuilds/win32-arm64/winpty-agent.pdb +0 -0
  240. package/dist/node_modules/node-pty/prebuilds/win32-arm64/winpty.dll +0 -0
  241. package/dist/node_modules/node-pty/prebuilds/win32-arm64/winpty.pdb +0 -0
  242. package/dist/node_modules/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
  243. package/dist/node_modules/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
  244. package/dist/node_modules/node-pty/prebuilds/win32-x64/conpty.node +0 -0
  245. package/dist/node_modules/node-pty/prebuilds/win32-x64/conpty.pdb +0 -0
  246. package/dist/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
  247. package/dist/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.pdb +0 -0
  248. package/dist/node_modules/node-pty/prebuilds/win32-x64/pty.node +0 -0
  249. package/dist/node_modules/node-pty/prebuilds/win32-x64/pty.pdb +0 -0
  250. package/dist/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.exe +0 -0
  251. package/dist/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.pdb +0 -0
  252. package/dist/node_modules/node-pty/prebuilds/win32-x64/winpty.dll +0 -0
  253. package/dist/node_modules/node-pty/prebuilds/win32-x64/winpty.pdb +0 -0
  254. package/dist/node_modules/node-pty/scripts/gen-compile-commands.js +8 -0
  255. package/dist/node_modules/node-pty/scripts/increment-version.js +54 -0
  256. package/dist/node_modules/node-pty/scripts/post-install.js +80 -0
  257. package/dist/node_modules/node-pty/scripts/prebuild.js +34 -0
  258. package/dist/node_modules/node-pty/src/conpty_console_list_agent.ts +15 -0
  259. package/dist/node_modules/node-pty/src/eventEmitter2.test.ts +30 -0
  260. package/dist/node_modules/node-pty/src/eventEmitter2.ts +48 -0
  261. package/dist/node_modules/node-pty/src/index.ts +52 -0
  262. package/dist/node_modules/node-pty/src/interfaces.ts +130 -0
  263. package/dist/node_modules/node-pty/src/native.d.ts +54 -0
  264. package/dist/node_modules/node-pty/src/shared/conout.ts +15 -0
  265. package/dist/node_modules/node-pty/src/terminal.test.ts +119 -0
  266. package/dist/node_modules/node-pty/src/terminal.ts +211 -0
  267. package/dist/node_modules/node-pty/src/testUtils.test.ts +23 -0
  268. package/dist/node_modules/node-pty/src/tsconfig.json +22 -0
  269. package/dist/node_modules/node-pty/src/types.ts +15 -0
  270. package/dist/node_modules/node-pty/src/unix/pty.cc +799 -0
  271. package/dist/node_modules/node-pty/src/unix/spawn-helper.cc +23 -0
  272. package/dist/node_modules/node-pty/src/unixTerminal.test.ts +367 -0
  273. package/dist/node_modules/node-pty/src/unixTerminal.ts +388 -0
  274. package/dist/node_modules/node-pty/src/utils.ts +29 -0
  275. package/dist/node_modules/node-pty/src/win/conpty.cc +583 -0
  276. package/dist/node_modules/node-pty/src/win/conpty.h +41 -0
  277. package/dist/node_modules/node-pty/src/win/conpty_console_list.cc +44 -0
  278. package/dist/node_modules/node-pty/src/win/path_util.cc +95 -0
  279. package/dist/node_modules/node-pty/src/win/path_util.h +26 -0
  280. package/dist/node_modules/node-pty/src/win/winpty.cc +333 -0
  281. package/dist/node_modules/node-pty/src/windowsConoutConnection.ts +82 -0
  282. package/dist/node_modules/node-pty/src/windowsPtyAgent.test.ts +94 -0
  283. package/dist/node_modules/node-pty/src/windowsPtyAgent.ts +321 -0
  284. package/dist/node_modules/node-pty/src/windowsTerminal.test.ts +229 -0
  285. package/dist/node_modules/node-pty/src/windowsTerminal.ts +203 -0
  286. package/dist/node_modules/node-pty/src/worker/conoutSocketWorker.ts +22 -0
  287. package/dist/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-arm64/OpenConsole.exe +0 -0
  288. package/dist/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-arm64/conpty.dll +0 -0
  289. package/dist/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-x64/OpenConsole.exe +0 -0
  290. package/dist/node_modules/node-pty/third_party/conpty/1.23.251008001/win10-x64/conpty.dll +0 -0
  291. package/dist/node_modules/node-pty/typings/node-pty.d.ts +211 -0
  292. package/dist/scripts/lib/test-fixtures.mjs +1 -1
  293. package/dist/ui/assets/{index-CWcSlUCR.js → index-B49cVd68.js} +1 -1
  294. package/dist/ui/assets/{index-BrOS5hPg.js → index-B77m9jwg.js} +1 -1
  295. package/dist/ui/assets/{index-DWT6BjYW.js → index-C61bzN1F.js} +1 -1
  296. package/dist/ui/assets/index-CEeUnKFj.js +1101 -0
  297. package/dist/ui/assets/{index-Btdv65e_.js → index-CHinfK5y.js} +1 -1
  298. package/dist/ui/assets/{index-DkFfIHJr.js → index-CdwIPvvC.js} +1 -1
  299. package/dist/ui/assets/{index-C-AZWfRD.js → index-CkMEKMtG.js} +1 -1
  300. package/dist/ui/assets/{index-B-SoOQ3F.js → index-Cl5D1lr0.js} +1 -1
  301. package/dist/ui/assets/{index-q7X3WW0-.js → index-CnWjvgnt.js} +1 -1
  302. package/dist/ui/assets/{index-B_lr0R8Z.js → index-CpEU6Vxs.js} +1 -1
  303. package/dist/ui/assets/{index-CBQN5qXY.js → index-D6YdKIji.js} +1 -1
  304. package/dist/ui/assets/{index-BK62XAzY.js → index-DARaaYLg.js} +1 -1
  305. package/dist/ui/assets/{index-D3gXfrX-.js → index-DErcnUD0.js} +1 -1
  306. package/dist/ui/assets/{index-D1F9nIOz.js → index-DJxs2IHl.js} +1 -1
  307. package/dist/ui/assets/{index-AacKgcwz.js → index-DKTHpT6c.js} +1 -1
  308. package/dist/ui/assets/{index-CXV7fZxu.js → index-DPgndyQt.js} +1 -1
  309. package/dist/ui/assets/{index-BvHGNf4Y.js → index-DRYG0hWl.js} +1 -1
  310. package/dist/ui/assets/{index-BCRvuZjU.js → index-D_--wkOk.js} +1 -1
  311. package/dist/ui/assets/{index-o8f2ilDp.js → index-Db2EhJOX.js} +1 -1
  312. package/dist/ui/assets/index-DcDF1o3A.css +1 -0
  313. package/dist/ui/assets/{index-BnaWildZ.js → index-Dck1mk1E.js} +1 -1
  314. package/dist/ui/assets/{index-Dhu8BZu7.js → index-b2CKrEE6.js} +1 -1
  315. package/dist/ui/assets/{index-cS068OSU.js → index-mhz4dktY.js} +1 -1
  316. package/dist/ui/assets/{index-CuieGJbi.js → index-ssu5S1KA.js} +1 -1
  317. package/dist/ui/index.html +2 -2
  318. package/package.json +6 -3
  319. package/dist/ui/assets/index-C8FDQRxy.js +0 -1095
  320. package/dist/ui/assets/index-D_uhpUwJ.css +0 -1
@@ -0,0 +1,320 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) 2012-2015, Christopher Jeffrey, Peter Sunde (MIT License)
4
+ * Copyright (c) 2016, Daniel Imms (MIT License).
5
+ * Copyright (c) 2018, Microsoft Corporation (MIT License).
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.argsToCommandLine = exports.WindowsPtyAgent = void 0;
9
+ var fs = require("fs");
10
+ var os = require("os");
11
+ var path = require("path");
12
+ var child_process_1 = require("child_process");
13
+ var net_1 = require("net");
14
+ var windowsConoutConnection_1 = require("./windowsConoutConnection");
15
+ var utils_1 = require("./utils");
16
+ var conptyNative;
17
+ var winptyNative;
18
+ /**
19
+ * The amount of time to wait for additional data after the conpty shell process has exited before
20
+ * shutting down the socket. The timer will be reset if a new data event comes in after the timer
21
+ * has started.
22
+ */
23
+ var FLUSH_DATA_INTERVAL = 1000;
24
+ /**
25
+ * This agent sits between the WindowsTerminal class and provides a common interface for both conpty
26
+ * and winpty.
27
+ */
28
+ var WindowsPtyAgent = /** @class */ (function () {
29
+ function WindowsPtyAgent(file, args, env, cwd, cols, rows, debug, _useConpty, _useConptyDll, conptyInheritCursor) {
30
+ var _this = this;
31
+ if (_useConptyDll === void 0) { _useConptyDll = false; }
32
+ if (conptyInheritCursor === void 0) { conptyInheritCursor = false; }
33
+ this._useConpty = _useConpty;
34
+ this._useConptyDll = _useConptyDll;
35
+ this._pid = 0;
36
+ this._innerPid = 0;
37
+ if (this._useConpty === undefined || this._useConpty === true) {
38
+ this._useConpty = this._getWindowsBuildNumber() >= 18309;
39
+ }
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;
51
+ // Sanitize input variable.
52
+ cwd = path.resolve(cwd);
53
+ // Compose command line
54
+ var commandLine = argsToCommandLine(file, args);
55
+ // 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
+ }
65
+ // Not available on windows.
66
+ this._fd = term.fd;
67
+ // Generated incremental number that has no real purpose besides using it
68
+ // as a terminal id.
69
+ this._pty = term.pty;
70
+ // Create terminal pipe IPC channel and forward to a local unix socket.
71
+ this._outSocket = new net_1.Socket();
72
+ this._outSocket.setEncoding('utf8');
73
+ // The conout socket must be ready out on another thread to avoid deadlocks
74
+ this._conoutSocketWorker = new windowsConoutConnection_1.ConoutConnection(term.conout, this._useConptyDll);
75
+ this._conoutSocketWorker.onReady(function () {
76
+ _this._conoutSocketWorker.connectSocket(_this._outSocket);
77
+ });
78
+ this._outSocket.on('connect', function () {
79
+ _this._outSocket.emit('ready_datapipe');
80
+ });
81
+ var inSocketFD = fs.openSync(term.conin, 'w');
82
+ this._inSocket = new net_1.Socket({
83
+ fd: inSocketFD,
84
+ readable: false,
85
+ writable: true
86
+ });
87
+ 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
+ }
92
+ }
93
+ Object.defineProperty(WindowsPtyAgent.prototype, "inSocket", {
94
+ get: function () { return this._inSocket; },
95
+ enumerable: false,
96
+ configurable: true
97
+ });
98
+ Object.defineProperty(WindowsPtyAgent.prototype, "outSocket", {
99
+ get: function () { return this._outSocket; },
100
+ enumerable: false,
101
+ configurable: true
102
+ });
103
+ Object.defineProperty(WindowsPtyAgent.prototype, "fd", {
104
+ get: function () { return this._fd; },
105
+ enumerable: false,
106
+ configurable: true
107
+ });
108
+ Object.defineProperty(WindowsPtyAgent.prototype, "innerPid", {
109
+ get: function () { return this._innerPid; },
110
+ enumerable: false,
111
+ configurable: true
112
+ });
113
+ Object.defineProperty(WindowsPtyAgent.prototype, "pty", {
114
+ get: function () { return this._pty; },
115
+ enumerable: false,
116
+ configurable: true
117
+ });
118
+ 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;
125
+ }
126
+ this._ptyNative.resize(this._pid, cols, rows);
127
+ };
128
+ WindowsPtyAgent.prototype.clear = function () {
129
+ if (this._useConpty) {
130
+ this._ptyNative.clear(this._pty, this._useConptyDll);
131
+ }
132
+ };
133
+ WindowsPtyAgent.prototype.kill = function () {
134
+ var _this = this;
135
+ // 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();
159
+ });
160
+ }
161
+ }
162
+ 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
+ }
178
+ });
179
+ }
180
+ };
181
+ WindowsPtyAgent.prototype._getConsoleProcessList = function () {
182
+ var _this = this;
183
+ return new Promise(function (resolve) {
184
+ var agent = child_process_1.fork(path.join(__dirname, 'conpty_console_list_agent'), [_this._innerPid.toString()]);
185
+ agent.on('message', function (message) {
186
+ clearTimeout(timeout);
187
+ resolve(message.consoleProcessList);
188
+ });
189
+ var timeout = setTimeout(function () {
190
+ // Something went wrong, just send back the shell PID
191
+ agent.kill();
192
+ resolve([_this._innerPid]);
193
+ }, 5000);
194
+ });
195
+ };
196
+ Object.defineProperty(WindowsPtyAgent.prototype, "exitCode", {
197
+ 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;
203
+ },
204
+ enumerable: false,
205
+ configurable: true
206
+ });
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
+ WindowsPtyAgent.prototype._generatePipeName = function () {
216
+ return "conpty-" + Math.random() * 10000000;
217
+ };
218
+ /**
219
+ * Triggered from the native side when a contpy process exits.
220
+ */
221
+ WindowsPtyAgent.prototype._$onProcessExit = function (exitCode) {
222
+ var _this = this;
223
+ this._exitCode = exitCode;
224
+ if (!this._useConptyDll) {
225
+ this._flushDataAndCleanUp();
226
+ this._outSocket.on('data', function () { return _this._flushDataAndCleanUp(); });
227
+ }
228
+ };
229
+ WindowsPtyAgent.prototype._flushDataAndCleanUp = function () {
230
+ var _this = this;
231
+ if (this._useConptyDll) {
232
+ return;
233
+ }
234
+ if (this._closeTimeout) {
235
+ clearTimeout(this._closeTimeout);
236
+ }
237
+ this._closeTimeout = setTimeout(function () { return _this._cleanUpProcess(); }, FLUSH_DATA_INTERVAL);
238
+ };
239
+ WindowsPtyAgent.prototype._cleanUpProcess = function () {
240
+ if (this._useConptyDll) {
241
+ return;
242
+ }
243
+ this._inSocket.readable = false;
244
+ this._outSocket.readable = false;
245
+ this._outSocket.destroy();
246
+ };
247
+ return WindowsPtyAgent;
248
+ }());
249
+ exports.WindowsPtyAgent = WindowsPtyAgent;
250
+ // Convert argc/argv into a Win32 command-line following the escaping convention
251
+ // documented on MSDN (e.g. see CommandLineToArgvW documentation). Copied from
252
+ // winpty project.
253
+ function argsToCommandLine(file, args) {
254
+ if (isCommandLine(args)) {
255
+ if (args.length === 0) {
256
+ return file;
257
+ }
258
+ return argsToCommandLine(file, []) + " " + args;
259
+ }
260
+ var argv = [file];
261
+ Array.prototype.push.apply(argv, args);
262
+ var result = '';
263
+ for (var argIndex = 0; argIndex < argv.length; argIndex++) {
264
+ if (argIndex > 0) {
265
+ result += ' ';
266
+ }
267
+ var arg = argv[argIndex];
268
+ // if it is empty or it contains whitespace and is not already quoted
269
+ var hasLopsidedEnclosingQuote = xOr((arg[0] !== '"'), (arg[arg.length - 1] !== '"'));
270
+ var hasNoEnclosingQuotes = ((arg[0] !== '"') && (arg[arg.length - 1] !== '"'));
271
+ var quote = arg === '' ||
272
+ (arg.indexOf(' ') !== -1 ||
273
+ arg.indexOf('\t') !== -1) &&
274
+ ((arg.length > 1) &&
275
+ (hasLopsidedEnclosingQuote || hasNoEnclosingQuotes));
276
+ if (quote) {
277
+ result += '\"';
278
+ }
279
+ var bsCount = 0;
280
+ for (var i = 0; i < arg.length; i++) {
281
+ var p = arg[i];
282
+ if (p === '\\') {
283
+ bsCount++;
284
+ }
285
+ else if (p === '"') {
286
+ result += repeatText('\\', bsCount * 2 + 1);
287
+ result += '"';
288
+ bsCount = 0;
289
+ }
290
+ else {
291
+ result += repeatText('\\', bsCount);
292
+ bsCount = 0;
293
+ result += p;
294
+ }
295
+ }
296
+ if (quote) {
297
+ result += repeatText('\\', bsCount * 2);
298
+ result += '\"';
299
+ }
300
+ else {
301
+ result += repeatText('\\', bsCount);
302
+ }
303
+ }
304
+ return result;
305
+ }
306
+ exports.argsToCommandLine = argsToCommandLine;
307
+ function isCommandLine(args) {
308
+ return typeof args === 'string';
309
+ }
310
+ function repeatText(text, count) {
311
+ var result = '';
312
+ for (var i = 0; i < count; i++) {
313
+ result += text;
314
+ }
315
+ return result;
316
+ }
317
+ function xOr(arg1, arg2) {
318
+ return ((arg1 && !arg2) || (!arg1 && arg2));
319
+ }
320
+ //# sourceMappingURL=windowsPtyAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windowsPtyAgent.js","sourceRoot":"","sources":["../src/windowsPtyAgent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) 2017, Daniel Imms (MIT License).
4
+ * Copyright (c) 2018, Microsoft Corporation (MIT License).
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ var assert = require("assert");
8
+ var windowsPtyAgent_1 = require("./windowsPtyAgent");
9
+ function check(file, args, expected) {
10
+ assert.equal(windowsPtyAgent_1.argsToCommandLine(file, args), expected);
11
+ }
12
+ if (process.platform === 'win32') {
13
+ describe('argsToCommandLine', function () {
14
+ describe('Plain strings', function () {
15
+ it('doesn\'t quote plain string', function () {
16
+ check('asdf', [], 'asdf');
17
+ });
18
+ it('doesn\'t escape backslashes', function () {
19
+ check('\\asdf\\qwer\\', [], '\\asdf\\qwer\\');
20
+ });
21
+ it('doesn\'t escape multiple backslashes', function () {
22
+ check('asdf\\\\qwer', [], 'asdf\\\\qwer');
23
+ });
24
+ it('adds backslashes before quotes', function () {
25
+ check('"asdf"qwer"', [], '\\"asdf\\"qwer\\"');
26
+ });
27
+ it('escapes backslashes before quotes', function () {
28
+ check('asdf\\"qwer', [], 'asdf\\\\\\"qwer');
29
+ });
30
+ });
31
+ describe('Quoted strings', function () {
32
+ it('quotes string with spaces', function () {
33
+ check('asdf qwer', [], '"asdf qwer"');
34
+ });
35
+ it('quotes empty string', function () {
36
+ check('', [], '""');
37
+ });
38
+ it('quotes string with tabs', function () {
39
+ check('asdf\tqwer', [], '"asdf\tqwer"');
40
+ });
41
+ it('escapes only the last backslash', function () {
42
+ check('\\asdf \\qwer\\', [], '"\\asdf \\qwer\\\\"');
43
+ });
44
+ it('doesn\'t escape multiple backslashes', function () {
45
+ check('asdf \\\\qwer', [], '"asdf \\\\qwer"');
46
+ });
47
+ it('escapes backslashes before quotes', function () {
48
+ check('asdf \\"qwer', [], '"asdf \\\\\\"qwer"');
49
+ });
50
+ it('escapes multiple backslashes at the end', function () {
51
+ check('asdf qwer\\\\', [], '"asdf qwer\\\\\\\\"');
52
+ });
53
+ });
54
+ describe('Multiple arguments', function () {
55
+ it('joins arguments with spaces', function () {
56
+ check('asdf', ['qwer zxcv', '', '"'], 'asdf "qwer zxcv" "" \\"');
57
+ });
58
+ it('array argument all in quotes', function () {
59
+ check('asdf', ['"surounded by quotes"'], 'asdf \\"surounded by quotes\\"');
60
+ });
61
+ it('array argument quotes in the middle', function () {
62
+ check('asdf', ['quotes "in the" middle'], 'asdf "quotes \\"in the\\" middle"');
63
+ });
64
+ it('array argument quotes near start', function () {
65
+ check('asdf', ['"quotes" near start'], 'asdf "\\"quotes\\" near start"');
66
+ });
67
+ it('array argument quotes near end', function () {
68
+ check('asdf', ['quotes "near end"'], 'asdf "quotes \\"near end\\""');
69
+ });
70
+ });
71
+ describe('Args as CommandLine', function () {
72
+ it('should handle empty string', function () {
73
+ check('file', '', 'file');
74
+ });
75
+ it('should not change args', function () {
76
+ check('file', 'foo bar baz', 'file foo bar baz');
77
+ check('file', 'foo \\ba"r \baz', 'file foo \\ba"r \baz');
78
+ });
79
+ });
80
+ describe('Real-world cases', function () {
81
+ it('quotes within quotes', function () {
82
+ check('cmd.exe', ['/c', 'powershell -noexit -command \'Set-location \"C:\\user\"\''], 'cmd.exe /c "powershell -noexit -command \'Set-location \\\"C:\\user\\"\'"');
83
+ });
84
+ it('space within quotes', function () {
85
+ check('cmd.exe', ['/k', '"C:\\Users\\alros\\Desktop\\test script.bat"'], 'cmd.exe /k \\"C:\\Users\\alros\\Desktop\\test script.bat\\"');
86
+ });
87
+ });
88
+ });
89
+ }
90
+ //# sourceMappingURL=windowsPtyAgent.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windowsPtyAgent.test.js","sourceRoot":"","sources":["../src/windowsPtyAgent.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) 2012-2015, Christopher Jeffrey, Peter Sunde (MIT License)
4
+ * Copyright (c) 2016, Daniel Imms (MIT License).
5
+ * Copyright (c) 2018, Microsoft Corporation (MIT License).
6
+ */
7
+ var __extends = (this && this.__extends) || (function () {
8
+ var extendStatics = function (d, b) {
9
+ extendStatics = Object.setPrototypeOf ||
10
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
11
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
12
+ return extendStatics(d, b);
13
+ };
14
+ return function (d, b) {
15
+ extendStatics(d, b);
16
+ function __() { this.constructor = d; }
17
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18
+ };
19
+ })();
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.WindowsTerminal = void 0;
22
+ var terminal_1 = require("./terminal");
23
+ var windowsPtyAgent_1 = require("./windowsPtyAgent");
24
+ var utils_1 = require("./utils");
25
+ var DEFAULT_FILE = 'cmd.exe';
26
+ var DEFAULT_NAME = 'Windows Shell';
27
+ var WindowsTerminal = /** @class */ (function (_super) {
28
+ __extends(WindowsTerminal, _super);
29
+ function WindowsTerminal(file, args, opt) {
30
+ var _this = _super.call(this, opt) || this;
31
+ _this._checkType('args', args, 'string', true);
32
+ // Initialize arguments
33
+ args = args || [];
34
+ file = file || DEFAULT_FILE;
35
+ opt = opt || {};
36
+ opt.env = opt.env || process.env;
37
+ if (opt.encoding) {
38
+ console.warn('Setting encoding on Windows is not supported');
39
+ }
40
+ var env = utils_1.assign({}, opt.env);
41
+ _this._cols = opt.cols || terminal_1.DEFAULT_COLS;
42
+ _this._rows = opt.rows || terminal_1.DEFAULT_ROWS;
43
+ var cwd = opt.cwd || process.cwd();
44
+ var name = opt.name || env.TERM || DEFAULT_NAME;
45
+ var parsedEnv = _this._parseEnv(env);
46
+ // If the terminal is ready
47
+ _this._isReady = false;
48
+ // Functions that need to run after `ready` event is emitted.
49
+ _this._deferreds = [];
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);
52
+ _this._socket = _this._agent.outSocket;
53
+ // Not available until `ready` event emitted.
54
+ _this._pid = _this._agent.innerPid;
55
+ _this._fd = _this._agent.fd;
56
+ _this._pty = _this._agent.pty;
57
+ // The forked windows terminal is not available until `ready` event is
58
+ // emitted.
59
+ _this._socket.on('ready_datapipe', function () {
60
+ // Run deferreds and set ready state once the first data event is received.
61
+ _this._socket.once('data', function () {
62
+ // Wait until the first data event is fired then we can run deferreds.
63
+ if (!_this._isReady) {
64
+ // Terminal is now ready and we can avoid having to defer method
65
+ // calls.
66
+ _this._isReady = true;
67
+ // Execute all deferred methods
68
+ _this._deferreds.forEach(function (fn) {
69
+ // NB! In order to ensure that `this` has all its references
70
+ // updated any variable that need to be available in `this` before
71
+ // the deferred is run has to be declared above this forEach
72
+ // statement.
73
+ fn.run();
74
+ });
75
+ // Reset
76
+ _this._deferreds = [];
77
+ }
78
+ });
79
+ // Shutdown if `error` event is emitted.
80
+ _this._socket.on('error', function (err) {
81
+ // Close terminal session.
82
+ _this._close();
83
+ // EIO, happens when someone closes our child process: the only process
84
+ // in the terminal.
85
+ // node < 0.6.14: errno 5
86
+ // node >= 0.6.14: read EIO
87
+ if (err.code) {
88
+ if (~err.code.indexOf('errno 5') || ~err.code.indexOf('EIO'))
89
+ return;
90
+ }
91
+ // Throw anything else.
92
+ if (_this.listeners('error').length < 2) {
93
+ throw err;
94
+ }
95
+ });
96
+ // Cleanup after the socket is closed.
97
+ _this._socket.on('close', function () {
98
+ _this.emit('exit', _this._agent.exitCode);
99
+ _this._close();
100
+ });
101
+ });
102
+ _this._file = file;
103
+ _this._name = name;
104
+ _this._readable = true;
105
+ _this._writable = true;
106
+ _this._forwardEvents();
107
+ return _this;
108
+ }
109
+ WindowsTerminal.prototype._write = function (data) {
110
+ this._defer(this._doWrite, data);
111
+ };
112
+ WindowsTerminal.prototype._doWrite = function (data) {
113
+ this._agent.inSocket.write(data);
114
+ };
115
+ /**
116
+ * openpty
117
+ */
118
+ WindowsTerminal.open = function (options) {
119
+ throw new Error('open() not supported on windows, use Fork() instead.');
120
+ };
121
+ /**
122
+ * TTY
123
+ */
124
+ WindowsTerminal.prototype.resize = function (cols, rows) {
125
+ var _this = this;
126
+ if (cols <= 0 || rows <= 0 || isNaN(cols) || isNaN(rows) || cols === Infinity || rows === Infinity) {
127
+ throw new Error('resizing must be done using positive cols and rows');
128
+ }
129
+ this._deferNoArgs(function () {
130
+ _this._agent.resize(cols, rows);
131
+ _this._cols = cols;
132
+ _this._rows = rows;
133
+ });
134
+ };
135
+ WindowsTerminal.prototype.clear = function () {
136
+ var _this = this;
137
+ this._deferNoArgs(function () {
138
+ _this._agent.clear();
139
+ });
140
+ };
141
+ WindowsTerminal.prototype.destroy = function () {
142
+ var _this = this;
143
+ this._deferNoArgs(function () {
144
+ _this.kill();
145
+ });
146
+ };
147
+ WindowsTerminal.prototype.kill = function (signal) {
148
+ var _this = this;
149
+ this._deferNoArgs(function () {
150
+ if (signal) {
151
+ throw new Error('Signals not supported on windows.');
152
+ }
153
+ _this._close();
154
+ _this._agent.kill();
155
+ });
156
+ };
157
+ WindowsTerminal.prototype._deferNoArgs = function (deferredFn) {
158
+ var _this = this;
159
+ // If the terminal is ready, execute.
160
+ if (this._isReady) {
161
+ deferredFn.call(this);
162
+ return;
163
+ }
164
+ // Queue until terminal is ready.
165
+ this._deferreds.push({
166
+ run: function () { return deferredFn.call(_this); }
167
+ });
168
+ };
169
+ WindowsTerminal.prototype._defer = function (deferredFn, arg) {
170
+ var _this = this;
171
+ // If the terminal is ready, execute.
172
+ if (this._isReady) {
173
+ deferredFn.call(this, arg);
174
+ return;
175
+ }
176
+ // Queue until terminal is ready.
177
+ this._deferreds.push({
178
+ run: function () { return deferredFn.call(_this, arg); }
179
+ });
180
+ };
181
+ Object.defineProperty(WindowsTerminal.prototype, "process", {
182
+ get: function () { return this._name; },
183
+ enumerable: false,
184
+ configurable: true
185
+ });
186
+ Object.defineProperty(WindowsTerminal.prototype, "master", {
187
+ get: function () { throw new Error('master is not supported on Windows'); },
188
+ enumerable: false,
189
+ configurable: true
190
+ });
191
+ Object.defineProperty(WindowsTerminal.prototype, "slave", {
192
+ get: function () { throw new Error('slave is not supported on Windows'); },
193
+ enumerable: false,
194
+ configurable: true
195
+ });
196
+ return WindowsTerminal;
197
+ }(terminal_1.Terminal));
198
+ exports.WindowsTerminal = WindowsTerminal;
199
+ //# sourceMappingURL=windowsTerminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windowsTerminal.js","sourceRoot":"","sources":["../src/windowsTerminal.ts"],"names":[],"mappings":"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"}