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,167 @@
1
+ #!/bin/bash
2
+ #
3
+ # Copyright (c) 2011-2015 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.
22
+
23
+ #
24
+ # findTool(desc, commandList)
25
+ #
26
+ # Searches commandLine for the first command in the PATH and returns it.
27
+ # Prints an error and aborts the script if no match is found.
28
+ #
29
+ FINDTOOL_OUT=""
30
+ function findTool {
31
+ DESC=$1
32
+ OPTIONS=$2
33
+ for CMD in ${OPTIONS}; do
34
+ if (which $CMD &>/dev/null) then
35
+ echo "Found $DESC: $CMD"
36
+ FINDTOOL_OUT="$CMD"
37
+ return
38
+ fi
39
+ done
40
+ echo "Error: could not find $DESC. One of these should be in your PATH:"
41
+ for CMD in ${OPTIONS}; do
42
+ echo " * $CMD"
43
+ done
44
+ exit 1
45
+ }
46
+
47
+ IS_CYGWIN=0
48
+ IS_MSYS1=0
49
+ IS_MSYS2=0
50
+
51
+ # Link parts of the Cygwin binary statically to aid in redistribution? The
52
+ # binary still links dynamically against the main DLL. The MinGW binaries are
53
+ # also statically linked and therefore depend only on Windows DLLs. I started
54
+ # linking the Cygwin/MSYS binary statically, because G++ 4.7 changed the
55
+ # Windows C++ ABI.
56
+ UNIX_LDFLAGS_STATIC='-static -static-libgcc -static-libstdc++'
57
+
58
+ # Detect the environment -- Cygwin or MSYS.
59
+ case $(uname -s) in
60
+ CYGWIN*)
61
+ echo 'uname -s identifies a Cygwin environment.'
62
+ IS_CYGWIN=1
63
+ case $(uname -m) in
64
+ i686)
65
+ echo 'uname -m identifies an i686 environment.'
66
+ UNIX_CXX=i686-pc-cygwin-g++
67
+ MINGW_CXX=i686-w64-mingw32-g++
68
+ ;;
69
+ x86_64)
70
+ echo 'uname -m identifies an x86_64 environment.'
71
+ UNIX_CXX=x86_64-pc-cygwin-g++
72
+ MINGW_CXX=x86_64-w64-mingw32-g++
73
+ ;;
74
+ *)
75
+ echo 'Error: uname -m did not match either i686 or x86_64.'
76
+ exit 1
77
+ ;;
78
+ esac
79
+ ;;
80
+ MSYS*|MINGW*)
81
+ # MSYS2 notes:
82
+ # - MSYS2 offers two shortcuts to open an environment:
83
+ # - MinGW-w64 Win32 Shell. This env reports a `uname -s` of
84
+ # MINGW32_NT-6.1 on 32-bit Win7. The MinGW-w64 compiler
85
+ # (i686-w64-mingw32-g++.exe) is in the PATH.
86
+ # - MSYS2 Shell. `uname -s` instead reports MSYS_NT-6.1.
87
+ # The i686-w64-mingw32-g++ compiler is not in the PATH.
88
+ # - MSYS2 appears to use MinGW-w64, not the older mingw.org.
89
+ # MSYS notes:
90
+ # - `uname -s` is always MINGW32_NT-6.1 on Win7.
91
+ echo 'uname -s identifies an MSYS/MSYS2 environment.'
92
+ case $(uname -m) in
93
+ i686)
94
+ echo 'uname -m identifies an i686 environment.'
95
+ UNIX_CXX=i686-pc-msys-g++
96
+ if echo "$(uname -r)" | grep '^1[.]' > /dev/null; then
97
+ # The MSYS-targeting compiler for the original 32-bit-only
98
+ # MSYS does not recognize the -static-libstdc++ flag, and
99
+ # it does not work with -static, because it tries to link
100
+ # statically with the core MSYS library and fails.
101
+ #
102
+ # Distinguish between the two using the major version
103
+ # number of `uname -r`:
104
+ #
105
+ # MSYS uname -r: 1.0.18(0.48/3/2)
106
+ # MSYS2 uname -r: 2.0.0(0.284/5/3)
107
+ #
108
+ # This is suboptimal because MSYS2 is not actually the
109
+ # second version of MSYS--it's a brand-new fork of Cygwin.
110
+ #
111
+ IS_MSYS1=1
112
+ UNIX_LDFLAGS_STATIC=
113
+ MINGW_CXX=mingw32-g++
114
+ else
115
+ IS_MSYS2=1
116
+ MINGW_CXX=i686-w64-mingw32-g++.exe
117
+ fi
118
+ ;;
119
+ x86_64)
120
+ echo 'uname -m identifies an x86_64 environment.'
121
+ IS_MSYS2=1
122
+ UNIX_CXX=x86_64-pc-msys-g++
123
+ MINGW_CXX=x86_64-w64-mingw32-g++
124
+ ;;
125
+ *)
126
+ echo 'Error: uname -m did not match either i686 or x86_64.'
127
+ exit 1
128
+ ;;
129
+ esac
130
+ ;;
131
+ *)
132
+ echo 'Error: uname -s did not match either CYGWIN* or MINGW*.'
133
+ exit 1
134
+ ;;
135
+ esac
136
+
137
+ # Search the PATH and pick the first match.
138
+ findTool "Cygwin/MSYS G++ compiler" "$UNIX_CXX"
139
+ UNIX_CXX=$FINDTOOL_OUT
140
+ findTool "MinGW G++ compiler" "$MINGW_CXX"
141
+ MINGW_CXX=$FINDTOOL_OUT
142
+
143
+ # Write config files.
144
+ echo Writing config.mk
145
+ echo UNIX_CXX=$UNIX_CXX > config.mk
146
+ echo UNIX_LDFLAGS_STATIC=$UNIX_LDFLAGS_STATIC >> config.mk
147
+ echo MINGW_CXX=$MINGW_CXX >> config.mk
148
+
149
+ if test $IS_MSYS1 = 1; then
150
+ echo UNIX_CXXFLAGS += -DWINPTY_TARGET_MSYS1 >> config.mk
151
+ # The MSYS1 MinGW compiler has a bug that prevents inclusion of algorithm
152
+ # and math.h in normal C++11 mode. The workaround is to enable the gnu++11
153
+ # mode instead. The bug was fixed on 2015-07-31, but as of 2016-02-26, the
154
+ # fix apparently hasn't been released. See
155
+ # http://ehc.ac/p/mingw/bugs/2250/.
156
+ echo MINGW_ENABLE_CXX11_FLAG := -std=gnu++11 >> config.mk
157
+ fi
158
+
159
+ if test -d .git -a -f .git/HEAD -a -f .git/index && git rev-parse HEAD >&/dev/null; then
160
+ echo "Commit info: git"
161
+ echo 'COMMIT_HASH = $(shell git rev-parse HEAD)' >> config.mk
162
+ echo 'COMMIT_HASH_DEP := config.mk .git/HEAD .git/index' >> config.mk
163
+ else
164
+ echo "Commit info: none"
165
+ echo 'COMMIT_HASH := none' >> config.mk
166
+ echo 'COMMIT_HASH_DEP := config.mk' >> config.mk
167
+ fi
@@ -0,0 +1,90 @@
1
+ #include <windows.h>
2
+ #include <cassert>
3
+
4
+ #include "TestUtil.cc"
5
+
6
+ void dumpInfoToTrace() {
7
+ CONSOLE_SCREEN_BUFFER_INFO info;
8
+ assert(GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info));
9
+ trace("win=(%d,%d,%d,%d)",
10
+ (int)info.srWindow.Left,
11
+ (int)info.srWindow.Top,
12
+ (int)info.srWindow.Right,
13
+ (int)info.srWindow.Bottom);
14
+ trace("buf=(%d,%d)",
15
+ (int)info.dwSize.X,
16
+ (int)info.dwSize.Y);
17
+ trace("cur=(%d,%d)",
18
+ (int)info.dwCursorPosition.X,
19
+ (int)info.dwCursorPosition.Y);
20
+ }
21
+
22
+ int main(int argc, char *argv[]) {
23
+ if (argc == 1) {
24
+ startChildProcess(L"CHILD");
25
+ return 0;
26
+ }
27
+
28
+ setWindowPos(0, 0, 1, 1);
29
+
30
+ if (false) {
31
+ // Reducing the buffer height can move the window up.
32
+ setBufferSize(80, 25);
33
+ setWindowPos(0, 20, 80, 5);
34
+ Sleep(2000);
35
+ setBufferSize(80, 10);
36
+ }
37
+
38
+ if (false) {
39
+ // Reducing the buffer height moves the window up and the buffer
40
+ // contents up too.
41
+ setBufferSize(80, 25);
42
+ setWindowPos(0, 20, 80, 5);
43
+ setCursorPos(0, 20);
44
+ printf("TEST1\nTEST2\nTEST3\nTEST4\n");
45
+ fflush(stdout);
46
+ Sleep(2000);
47
+ setBufferSize(80, 10);
48
+ }
49
+
50
+ if (false) {
51
+ // Reducing the buffer width can move the window left.
52
+ setBufferSize(80, 25);
53
+ setWindowPos(40, 0, 40, 25);
54
+ Sleep(2000);
55
+ setBufferSize(60, 25);
56
+ }
57
+
58
+ if (false) {
59
+ // Sometimes the buffer contents are shifted up; sometimes they're
60
+ // shifted down. It seems to depend on the cursor position?
61
+
62
+ // setBufferSize(80, 25);
63
+ // setWindowPos(0, 20, 80, 5);
64
+ // setCursorPos(0, 20);
65
+ // printf("TESTa\nTESTb\nTESTc\nTESTd\nTESTe");
66
+ // fflush(stdout);
67
+ // setCursorPos(0, 0);
68
+ // printf("TEST1\nTEST2\nTEST3\nTEST4\nTEST5");
69
+ // fflush(stdout);
70
+ // setCursorPos(0, 24);
71
+ // Sleep(5000);
72
+ // setBufferSize(80, 24);
73
+
74
+ setBufferSize(80, 20);
75
+ setWindowPos(0, 10, 80, 10);
76
+ setCursorPos(0, 18);
77
+
78
+ printf("TEST1\nTEST2");
79
+ fflush(stdout);
80
+ setCursorPos(0, 18);
81
+
82
+ Sleep(2000);
83
+ setBufferSize(80, 18);
84
+ }
85
+
86
+ dumpInfoToTrace();
87
+ Sleep(30000);
88
+
89
+ return 0;
90
+ }
@@ -0,0 +1,53 @@
1
+ // A test program for CreateConsoleScreenBuffer / SetConsoleActiveScreenBuffer
2
+ //
3
+
4
+ #include <windows.h>
5
+ #include <stdio.h>
6
+ #include <conio.h>
7
+ #include <io.h>
8
+ #include <cassert>
9
+
10
+ #include "TestUtil.cc"
11
+
12
+ int main()
13
+ {
14
+ HANDLE origBuffer = GetStdHandle(STD_OUTPUT_HANDLE);
15
+ HANDLE childBuffer = CreateConsoleScreenBuffer(
16
+ GENERIC_READ | GENERIC_WRITE,
17
+ FILE_SHARE_READ | FILE_SHARE_WRITE,
18
+ NULL, CONSOLE_TEXTMODE_BUFFER, NULL);
19
+
20
+ SetConsoleActiveScreenBuffer(childBuffer);
21
+
22
+ while (true) {
23
+ char buf[1024];
24
+ CONSOLE_SCREEN_BUFFER_INFO info;
25
+
26
+ assert(GetConsoleScreenBufferInfo(origBuffer, &info));
27
+ trace("child.size=(%d,%d)", (int)info.dwSize.X, (int)info.dwSize.Y);
28
+ trace("child.cursor=(%d,%d)", (int)info.dwCursorPosition.X, (int)info.dwCursorPosition.Y);
29
+ trace("child.window=(%d,%d,%d,%d)",
30
+ (int)info.srWindow.Left, (int)info.srWindow.Top,
31
+ (int)info.srWindow.Right, (int)info.srWindow.Bottom);
32
+ trace("child.maxSize=(%d,%d)", (int)info.dwMaximumWindowSize.X, (int)info.dwMaximumWindowSize.Y);
33
+
34
+ int ch = getch();
35
+ sprintf(buf, "%02x\n", ch);
36
+ DWORD actual = 0;
37
+ WriteFile(childBuffer, buf, strlen(buf), &actual, NULL);
38
+ if (ch == 0x1b/*ESC*/ || ch == 0x03/*CTRL-C*/)
39
+ break;
40
+
41
+ if (ch == 'b') {
42
+ setBufferSize(origBuffer, 40, 25);
43
+ } else if (ch == 'w') {
44
+ setWindowPos(origBuffer, 1, 1, 38, 23);
45
+ } else if (ch == 'c') {
46
+ setCursorPos(origBuffer, 10, 10);
47
+ }
48
+ }
49
+
50
+ SetConsoleActiveScreenBuffer(origBuffer);
51
+
52
+ return 0;
53
+ }
@@ -0,0 +1,72 @@
1
+ /*
2
+ * Demonstrates that console clearing sets each cell's character to SP, not
3
+ * NUL, and it sets the attribute of each cell to the current text attribute.
4
+ *
5
+ * This confirms the MSDN instruction in the "Clearing the Screen" article.
6
+ * https://msdn.microsoft.com/en-us/library/windows/desktop/ms682022(v=vs.85).aspx
7
+ * It advises using GetConsoleScreenBufferInfo to get the current text
8
+ * attribute, then FillConsoleOutputCharacter and FillConsoleOutputAttribute to
9
+ * write to the console buffer.
10
+ */
11
+
12
+ #include <windows.h>
13
+
14
+ #include <cassert>
15
+ #include <cstdio>
16
+ #include <cstdlib>
17
+
18
+ #include "TestUtil.cc"
19
+
20
+ int main(int argc, char *argv[]) {
21
+ if (argc == 1) {
22
+ startChildProcess(L"CHILD");
23
+ return 0;
24
+ }
25
+
26
+ const HANDLE conout = GetStdHandle(STD_OUTPUT_HANDLE);
27
+
28
+ SetConsoleTextAttribute(conout, 0x24);
29
+ system("cls");
30
+
31
+ setWindowPos(0, 0, 1, 1);
32
+ setBufferSize(80, 25);
33
+ setWindowPos(0, 0, 80, 25);
34
+
35
+ CHAR_INFO buf;
36
+ COORD bufSize = { 1, 1 };
37
+ COORD bufCoord = { 0, 0 };
38
+ SMALL_RECT rect = { 5, 5, 5, 5 };
39
+ BOOL ret;
40
+ DWORD actual;
41
+ COORD writeCoord = { 5, 5 };
42
+
43
+ // After cls, each cell's character is a space, and its attributes are the
44
+ // default text attributes.
45
+ ret = ReadConsoleOutputW(conout, &buf, bufSize, bufCoord, &rect);
46
+ assert(ret && buf.Char.UnicodeChar == L' ' && buf.Attributes == 0x24);
47
+
48
+ // Nevertheless, it is possible to change a cell to NUL.
49
+ ret = FillConsoleOutputCharacterW(conout, L'\0', 1, writeCoord, &actual);
50
+ assert(ret && actual == 1);
51
+ ret = ReadConsoleOutputW(conout, &buf, bufSize, bufCoord, &rect);
52
+ assert(ret && buf.Char.UnicodeChar == L'\0' && buf.Attributes == 0x24);
53
+
54
+ // As well as a 0 attribute. (As one would expect, the cell is
55
+ // black-on-black.)
56
+ ret = FillConsoleOutputAttribute(conout, 0, 1, writeCoord, &actual);
57
+ assert(ret && actual == 1);
58
+ ret = ReadConsoleOutputW(conout, &buf, bufSize, bufCoord, &rect);
59
+ assert(ret && buf.Char.UnicodeChar == L'\0' && buf.Attributes == 0);
60
+ ret = FillConsoleOutputCharacterW(conout, L'X', 1, writeCoord, &actual);
61
+ assert(ret && actual == 1);
62
+ ret = ReadConsoleOutputW(conout, &buf, bufSize, bufCoord, &rect);
63
+ assert(ret && buf.Char.UnicodeChar == L'X' && buf.Attributes == 0);
64
+
65
+ // The 'X' is invisible.
66
+ countDown(3);
67
+
68
+ ret = FillConsoleOutputAttribute(conout, 0x42, 1, writeCoord, &actual);
69
+ assert(ret && actual == 1);
70
+
71
+ countDown(5);
72
+ }
@@ -0,0 +1,117 @@
1
+ #include <windows.h>
2
+
3
+ #include <errno.h>
4
+ #include <stdio.h>
5
+ #include <stdlib.h>
6
+
7
+ #include <string>
8
+ #include <vector>
9
+
10
+ static HANDLE getConin() {
11
+ HANDLE conin = GetStdHandle(STD_INPUT_HANDLE);
12
+ if (conin == INVALID_HANDLE_VALUE) {
13
+ fprintf(stderr, "error: cannot get stdin\n");
14
+ exit(1);
15
+ }
16
+ return conin;
17
+ }
18
+
19
+ static DWORD getConsoleMode() {
20
+ DWORD mode = 0;
21
+ if (!GetConsoleMode(getConin(), &mode)) {
22
+ fprintf(stderr, "error: GetConsoleMode failed (is stdin a console?)\n");
23
+ exit(1);
24
+ }
25
+ return mode;
26
+ }
27
+
28
+ static void setConsoleMode(DWORD mode) {
29
+ if (!SetConsoleMode(getConin(), mode)) {
30
+ fprintf(stderr, "error: SetConsoleMode failed (is stdin a console?)\n");
31
+ exit(1);
32
+ }
33
+ }
34
+
35
+ static long parseInt(const std::string &s) {
36
+ errno = 0;
37
+ char *endptr = nullptr;
38
+ long result = strtol(s.c_str(), &endptr, 0);
39
+ if (errno != 0 || !endptr || *endptr != '\0') {
40
+ fprintf(stderr, "error: could not parse integral argument '%s'\n", s.c_str());
41
+ exit(1);
42
+ }
43
+ return result;
44
+ }
45
+
46
+ static void usage() {
47
+ printf("Usage: ConinMode [verb] [options]\n");
48
+ printf("Verbs:\n");
49
+ printf(" [info] Dumps info about mode flags.\n");
50
+ printf(" get Prints the mode DWORD.\n");
51
+ printf(" set VALUE Sets the mode to VALUE, which can be decimal, hex, or octal.\n");
52
+ printf(" set VALUE MASK\n");
53
+ printf(" Same as `set VALUE`, but only alters the bits in MASK.\n");
54
+ exit(1);
55
+ }
56
+
57
+ struct {
58
+ const char *name;
59
+ DWORD value;
60
+ } kInputFlags[] = {
61
+ "ENABLE_PROCESSED_INPUT", ENABLE_PROCESSED_INPUT, // 0x0001
62
+ "ENABLE_LINE_INPUT", ENABLE_LINE_INPUT, // 0x0002
63
+ "ENABLE_ECHO_INPUT", ENABLE_ECHO_INPUT, // 0x0004
64
+ "ENABLE_WINDOW_INPUT", ENABLE_WINDOW_INPUT, // 0x0008
65
+ "ENABLE_MOUSE_INPUT", ENABLE_MOUSE_INPUT, // 0x0010
66
+ "ENABLE_INSERT_MODE", ENABLE_INSERT_MODE, // 0x0020
67
+ "ENABLE_QUICK_EDIT_MODE", ENABLE_QUICK_EDIT_MODE, // 0x0040
68
+ "ENABLE_EXTENDED_FLAGS", ENABLE_EXTENDED_FLAGS, // 0x0080
69
+ "ENABLE_VIRTUAL_TERMINAL_INPUT", 0x0200/*ENABLE_VIRTUAL_TERMINAL_INPUT*/, // 0x0200
70
+ };
71
+
72
+ int main(int argc, char *argv[]) {
73
+ std::vector<std::string> args;
74
+ for (size_t i = 1; i < argc; ++i) {
75
+ args.push_back(argv[i]);
76
+ }
77
+
78
+ if (args.empty() || args.size() == 1 && args[0] == "info") {
79
+ DWORD mode = getConsoleMode();
80
+ printf("mode: 0x%lx\n", mode);
81
+ for (const auto &flag : kInputFlags) {
82
+ printf("%-29s 0x%04lx %s\n", flag.name, flag.value, flag.value & mode ? "ON" : "off");
83
+ mode &= ~flag.value;
84
+ }
85
+ for (int i = 0; i < 32; ++i) {
86
+ if (mode & (1u << i)) {
87
+ printf("Unrecognized flag: %04x\n", (1u << i));
88
+ }
89
+ }
90
+ return 0;
91
+ }
92
+
93
+ const auto verb = args[0];
94
+
95
+ if (verb == "set") {
96
+ if (args.size() == 2) {
97
+ const DWORD newMode = parseInt(args[1]);
98
+ setConsoleMode(newMode);
99
+ } else if (args.size() == 3) {
100
+ const DWORD mode = parseInt(args[1]);
101
+ const DWORD mask = parseInt(args[2]);
102
+ const int newMode = (getConsoleMode() & ~mask) | (mode & mask);
103
+ setConsoleMode(newMode);
104
+ } else {
105
+ usage();
106
+ }
107
+ } else if (verb == "get") {
108
+ if (args.size() != 1) {
109
+ usage();
110
+ }
111
+ printf("0x%lx\n", getConsoleMode());
112
+ } else {
113
+ usage();
114
+ }
115
+
116
+ return 0;
117
+ }
@@ -0,0 +1,116 @@
1
+ #
2
+ # PowerShell script for controlling the console QuickEdit and InsertMode flags.
3
+ #
4
+ # Turn QuickEdit off to interact with mouse-driven console programs.
5
+ #
6
+ # Usage:
7
+ #
8
+ # powershell .\ConinMode.ps1 [Options]
9
+ #
10
+ # Options:
11
+ # -QuickEdit [on/off]
12
+ # -InsertMode [on/off]
13
+ # -Mode [integer]
14
+ #
15
+
16
+ param (
17
+ [ValidateSet("on", "off")][string] $QuickEdit,
18
+ [ValidateSet("on", "off")][string] $InsertMode,
19
+ [int] $Mode
20
+ )
21
+
22
+ $signature = @'
23
+ [DllImport("kernel32.dll", SetLastError = true)]
24
+ public static extern IntPtr GetStdHandle(int nStdHandle);
25
+
26
+ [DllImport("kernel32.dll", SetLastError = true)]
27
+ public static extern uint GetConsoleMode(
28
+ IntPtr hConsoleHandle,
29
+ out uint lpMode);
30
+
31
+ [DllImport("kernel32.dll", SetLastError = true)]
32
+ public static extern uint SetConsoleMode(
33
+ IntPtr hConsoleHandle,
34
+ uint dwMode);
35
+
36
+ public const int STD_INPUT_HANDLE = -10;
37
+ public const int ENABLE_INSERT_MODE = 0x0020;
38
+ public const int ENABLE_QUICK_EDIT_MODE = 0x0040;
39
+ public const int ENABLE_EXTENDED_FLAGS = 0x0080;
40
+ '@
41
+
42
+ $WinAPI = Add-Type -MemberDefinition $signature `
43
+ -Name WinAPI -Namespace ConinModeScript `
44
+ -PassThru
45
+
46
+ function GetConIn {
47
+ $ret = $WinAPI::GetStdHandle($WinAPI::STD_INPUT_HANDLE)
48
+ if ($ret -eq -1) {
49
+ throw "error: cannot get stdin"
50
+ }
51
+ return $ret
52
+ }
53
+
54
+ function GetConsoleMode {
55
+ $conin = GetConIn
56
+ $mode = 0
57
+ $ret = $WinAPI::GetConsoleMode($conin, [ref]$mode)
58
+ if ($ret -eq 0) {
59
+ throw "GetConsoleMode failed (is stdin a console?)"
60
+ }
61
+ return $mode
62
+ }
63
+
64
+ function SetConsoleMode($mode) {
65
+ $conin = GetConIn
66
+ $ret = $WinAPI::SetConsoleMode($conin, $mode)
67
+ if ($ret -eq 0) {
68
+ throw "SetConsoleMode failed (is stdin a console?)"
69
+ }
70
+ }
71
+
72
+ $oldMode = GetConsoleMode
73
+ $newMode = $oldMode
74
+ $doingSomething = $false
75
+
76
+ if ($PSBoundParameters.ContainsKey("Mode")) {
77
+ $newMode = $Mode
78
+ $doingSomething = $true
79
+ }
80
+
81
+ if ($QuickEdit + $InsertMode -ne "") {
82
+ if (!($newMode -band $WinAPI::ENABLE_EXTENDED_FLAGS)) {
83
+ # We can't enable an extended flag without overwriting the existing
84
+ # QuickEdit/InsertMode flags. AFAICT, there is no way to query their
85
+ # existing values, so at least we can choose sensible defaults.
86
+ $newMode = $newMode -bor $WinAPI::ENABLE_EXTENDED_FLAGS
87
+ $newMode = $newMode -bor $WinAPI::ENABLE_QUICK_EDIT_MODE
88
+ $newMode = $newMode -bor $WinAPI::ENABLE_INSERT_MODE
89
+ $doingSomething = $true
90
+ }
91
+ }
92
+
93
+ if ($QuickEdit -eq "on") {
94
+ $newMode = $newMode -bor $WinAPI::ENABLE_QUICK_EDIT_MODE
95
+ $doingSomething = $true
96
+ } elseif ($QuickEdit -eq "off") {
97
+ $newMode = $newMode -band (-bnot $WinAPI::ENABLE_QUICK_EDIT_MODE)
98
+ $doingSomething = $true
99
+ }
100
+
101
+ if ($InsertMode -eq "on") {
102
+ $newMode = $newMode -bor $WinAPI::ENABLE_INSERT_MODE
103
+ $doingSomething = $true
104
+ } elseif ($InsertMode -eq "off") {
105
+ $newMode = $newMode -band (-bnot $WinAPI::ENABLE_INSERT_MODE)
106
+ $doingSomething = $true
107
+ }
108
+
109
+ if ($doingSomething) {
110
+ echo "old mode: $oldMode"
111
+ SetConsoleMode $newMode
112
+ $newMode = GetConsoleMode
113
+ echo "new mode: $newMode"
114
+ } else {
115
+ echo "mode: $oldMode"
116
+ }