@pristine-ts/cli 2.0.7 → 2.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 (289) hide show
  1. package/dist/lib/cjs/bin.js +0 -0
  2. package/dist/lib/cjs/bootstrap/app-module-cache.js +71 -0
  3. package/dist/lib/cjs/bootstrap/app-module-cache.js.map +1 -0
  4. package/dist/lib/cjs/bootstrap/app-module-discoverer.js +119 -0
  5. package/dist/lib/cjs/bootstrap/app-module-discoverer.js.map +1 -0
  6. package/dist/lib/cjs/bootstrap/app-module-discovery-candidate.js +21 -0
  7. package/dist/lib/cjs/bootstrap/app-module-discovery-candidate.js.map +1 -0
  8. package/dist/lib/cjs/bootstrap/app-module-discovery-reason.enum.js +15 -0
  9. package/dist/lib/cjs/bootstrap/app-module-discovery-reason.enum.js.map +1 -0
  10. package/dist/lib/cjs/bootstrap/app-module-prompt.js +78 -0
  11. package/dist/lib/cjs/bootstrap/app-module-prompt.js.map +1 -0
  12. package/dist/lib/cjs/bootstrap/build-staleness-prompt.js +12 -13
  13. package/dist/lib/cjs/bootstrap/build-staleness-prompt.js.map +1 -1
  14. package/dist/lib/cjs/bootstrap/init-prompt.js +16 -47
  15. package/dist/lib/cjs/bootstrap/init-prompt.js.map +1 -1
  16. package/dist/lib/cjs/cli.configuration-keys.js +24 -0
  17. package/dist/lib/cjs/cli.configuration-keys.js.map +1 -0
  18. package/dist/lib/cjs/cli.js +23 -10
  19. package/dist/lib/cjs/cli.js.map +1 -1
  20. package/dist/lib/cjs/cli.module.js +29 -1
  21. package/dist/lib/cjs/cli.module.js.map +1 -1
  22. package/dist/lib/cjs/commands/commands.js +6 -0
  23. package/dist/lib/cjs/commands/commands.js.map +1 -1
  24. package/dist/lib/cjs/commands/config-init.command.js +133 -0
  25. package/dist/lib/cjs/commands/config-init.command.js.map +1 -0
  26. package/dist/lib/cjs/commands/logs-alias.command.js +49 -0
  27. package/dist/lib/cjs/commands/logs-alias.command.js.map +1 -0
  28. package/dist/lib/cjs/commands/logs.command-options.js +72 -0
  29. package/dist/lib/cjs/commands/logs.command-options.js.map +1 -0
  30. package/dist/lib/cjs/commands/logs.command.js +102 -0
  31. package/dist/lib/cjs/commands/logs.command.js.map +1 -0
  32. package/dist/lib/cjs/commands/requests-alias.command.js +49 -0
  33. package/dist/lib/cjs/commands/requests-alias.command.js.map +1 -0
  34. package/dist/lib/cjs/commands/requests.command-options.js +26 -0
  35. package/dist/lib/cjs/commands/requests.command-options.js.map +1 -0
  36. package/dist/lib/cjs/commands/requests.command.js +88 -0
  37. package/dist/lib/cjs/commands/requests.command.js.map +1 -0
  38. package/dist/lib/cjs/commands/trace-alias.command.js +49 -0
  39. package/dist/lib/cjs/commands/trace-alias.command.js.map +1 -0
  40. package/dist/lib/cjs/commands/trace.command-options.js +59 -0
  41. package/dist/lib/cjs/commands/trace.command-options.js.map +1 -0
  42. package/dist/lib/cjs/commands/trace.command.js +84 -0
  43. package/dist/lib/cjs/commands/trace.command.js.map +1 -0
  44. package/dist/lib/cjs/config/config-loader.js +34 -13
  45. package/dist/lib/cjs/config/config-loader.js.map +1 -1
  46. package/dist/lib/cjs/decorators/command-parameter.decorator.js +40 -0
  47. package/dist/lib/cjs/decorators/command-parameter.decorator.js.map +1 -0
  48. package/dist/lib/cjs/decorators/decorators.js +18 -0
  49. package/dist/lib/cjs/decorators/decorators.js.map +1 -0
  50. package/dist/lib/cjs/enums/cli-decorator-metadata-keyname.enum.js +14 -0
  51. package/dist/lib/cjs/enums/cli-decorator-metadata-keyname.enum.js.map +1 -0
  52. package/dist/lib/cjs/enums/enums.js +19 -0
  53. package/dist/lib/cjs/enums/enums.js.map +1 -0
  54. package/dist/lib/cjs/enums/exit-code.enum.js +9 -0
  55. package/dist/lib/cjs/enums/exit-code.enum.js.map +1 -0
  56. package/dist/lib/cjs/enums/terminal-key-name.enum.js +21 -0
  57. package/dist/lib/cjs/enums/terminal-key-name.enum.js.map +1 -0
  58. package/dist/lib/cjs/errors/cli-error-code.enum.js +11 -1
  59. package/dist/lib/cjs/errors/cli-error-code.enum.js.map +1 -1
  60. package/dist/lib/cjs/errors/errors.js +1 -0
  61. package/dist/lib/cjs/errors/errors.js.map +1 -1
  62. package/dist/lib/cjs/errors/prompt-cancelled.error.js +25 -0
  63. package/dist/lib/cjs/errors/prompt-cancelled.error.js.map +1 -0
  64. package/dist/lib/cjs/event-handlers/cli.event-handler.js +21 -65
  65. package/dist/lib/cjs/event-handlers/cli.event-handler.js.map +1 -1
  66. package/dist/lib/cjs/event-handlers/event-handlers.js +1 -0
  67. package/dist/lib/cjs/event-handlers/event-handlers.js.map +1 -1
  68. package/dist/lib/cjs/event-handlers/repl-start.event-handler.js +280 -0
  69. package/dist/lib/cjs/event-handlers/repl-start.event-handler.js.map +1 -0
  70. package/dist/lib/cjs/event-payloads/event-payloads.js +1 -0
  71. package/dist/lib/cjs/event-payloads/event-payloads.js.map +1 -1
  72. package/dist/lib/cjs/event-payloads/start-repl.event-payload.js +19 -0
  73. package/dist/lib/cjs/event-payloads/start-repl.event-payload.js.map +1 -0
  74. package/dist/lib/cjs/interfaces/interfaces.js +1 -0
  75. package/dist/lib/cjs/interfaces/interfaces.js.map +1 -1
  76. package/dist/lib/cjs/interfaces/terminal-key.interface.js +3 -0
  77. package/dist/lib/cjs/interfaces/terminal-key.interface.js.map +1 -0
  78. package/dist/lib/cjs/managers/cli-prompt.manager.js +181 -15
  79. package/dist/lib/cjs/managers/cli-prompt.manager.js.map +1 -1
  80. package/dist/lib/cjs/managers/console.manager.js +277 -0
  81. package/dist/lib/cjs/managers/console.manager.js.map +1 -0
  82. package/dist/lib/cjs/managers/managers.js +1 -0
  83. package/dist/lib/cjs/managers/managers.js.map +1 -1
  84. package/dist/lib/cjs/managers/repl-session.js +251 -0
  85. package/dist/lib/cjs/managers/repl-session.js.map +1 -0
  86. package/dist/lib/cjs/managers/terminal-key-reader.manager.js +99 -0
  87. package/dist/lib/cjs/managers/terminal-key-reader.manager.js.map +1 -0
  88. package/dist/lib/cjs/mappers/command-event.mapper.js +48 -8
  89. package/dist/lib/cjs/mappers/command-event.mapper.js.map +1 -1
  90. package/dist/lib/cjs/mappers/mappers.js +1 -0
  91. package/dist/lib/cjs/mappers/mappers.js.map +1 -1
  92. package/dist/lib/cjs/mappers/repl-start-event.mapper.js +80 -0
  93. package/dist/lib/cjs/mappers/repl-start-event.mapper.js.map +1 -0
  94. package/dist/lib/cjs/options/command-parameter.options.js +3 -0
  95. package/dist/lib/cjs/options/command-parameter.options.js.map +1 -0
  96. package/dist/lib/cjs/options/options.js +1 -0
  97. package/dist/lib/cjs/options/options.js.map +1 -1
  98. package/dist/lib/cjs/services/command-argument-resolver.js +62 -0
  99. package/dist/lib/cjs/services/command-argument-resolver.js.map +1 -0
  100. package/dist/lib/cjs/services/command-options-resolver.js +114 -0
  101. package/dist/lib/cjs/services/command-options-resolver.js.map +1 -0
  102. package/dist/lib/cjs/services/command-parameter-prompter.js +311 -0
  103. package/dist/lib/cjs/services/command-parameter-prompter.js.map +1 -0
  104. package/dist/lib/cjs/services/services.js +20 -0
  105. package/dist/lib/cjs/services/services.js.map +1 -0
  106. package/dist/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  107. package/dist/lib/cjs/types/start-repl-event-response.type.js +13 -0
  108. package/dist/lib/cjs/types/start-repl-event-response.type.js.map +1 -0
  109. package/dist/lib/cjs/types/types.js +1 -0
  110. package/dist/lib/cjs/types/types.js.map +1 -1
  111. package/dist/lib/cjs/utils/boolean-answer-parser.js +25 -0
  112. package/dist/lib/cjs/utils/boolean-answer-parser.js.map +1 -0
  113. package/dist/lib/cjs/utils/pristine-argv.js +87 -0
  114. package/dist/lib/cjs/utils/pristine-argv.js.map +1 -0
  115. package/dist/lib/cjs/utils/terminal-key-decoder.js +71 -0
  116. package/dist/lib/cjs/utils/terminal-key-decoder.js.map +1 -0
  117. package/dist/lib/esm/bootstrap/app-module-cache.js +65 -0
  118. package/dist/lib/esm/bootstrap/app-module-cache.js.map +1 -0
  119. package/dist/lib/esm/bootstrap/app-module-discoverer.js +113 -0
  120. package/dist/lib/esm/bootstrap/app-module-discoverer.js.map +1 -0
  121. package/dist/lib/esm/bootstrap/app-module-discovery-candidate.js +17 -0
  122. package/dist/lib/esm/bootstrap/app-module-discovery-candidate.js.map +1 -0
  123. package/dist/lib/esm/bootstrap/app-module-discovery-reason.enum.js +12 -0
  124. package/dist/lib/esm/bootstrap/app-module-discovery-reason.enum.js.map +1 -0
  125. package/dist/lib/esm/bootstrap/app-module-prompt.js +75 -0
  126. package/dist/lib/esm/bootstrap/app-module-prompt.js.map +1 -0
  127. package/dist/lib/esm/bootstrap/build-staleness-prompt.js +12 -13
  128. package/dist/lib/esm/bootstrap/build-staleness-prompt.js.map +1 -1
  129. package/dist/lib/esm/bootstrap/init-prompt.js +16 -47
  130. package/dist/lib/esm/bootstrap/init-prompt.js.map +1 -1
  131. package/dist/lib/esm/cli.configuration-keys.js +21 -0
  132. package/dist/lib/esm/cli.configuration-keys.js.map +1 -0
  133. package/dist/lib/esm/cli.js +23 -10
  134. package/dist/lib/esm/cli.js.map +1 -1
  135. package/dist/lib/esm/cli.module.js +29 -1
  136. package/dist/lib/esm/cli.module.js.map +1 -1
  137. package/dist/lib/esm/commands/commands.js +6 -0
  138. package/dist/lib/esm/commands/commands.js.map +1 -1
  139. package/dist/lib/esm/commands/config-init.command.js +127 -0
  140. package/dist/lib/esm/commands/config-init.command.js.map +1 -0
  141. package/dist/lib/esm/commands/logs-alias.command.js +46 -0
  142. package/dist/lib/esm/commands/logs-alias.command.js.map +1 -0
  143. package/dist/lib/esm/commands/logs.command-options.js +68 -0
  144. package/dist/lib/esm/commands/logs.command-options.js.map +1 -0
  145. package/dist/lib/esm/commands/logs.command.js +99 -0
  146. package/dist/lib/esm/commands/logs.command.js.map +1 -0
  147. package/dist/lib/esm/commands/requests-alias.command.js +46 -0
  148. package/dist/lib/esm/commands/requests-alias.command.js.map +1 -0
  149. package/dist/lib/esm/commands/requests.command-options.js +22 -0
  150. package/dist/lib/esm/commands/requests.command-options.js.map +1 -0
  151. package/dist/lib/esm/commands/requests.command.js +85 -0
  152. package/dist/lib/esm/commands/requests.command.js.map +1 -0
  153. package/dist/lib/esm/commands/trace-alias.command.js +46 -0
  154. package/dist/lib/esm/commands/trace-alias.command.js.map +1 -0
  155. package/dist/lib/esm/commands/trace.command-options.js +55 -0
  156. package/dist/lib/esm/commands/trace.command-options.js.map +1 -0
  157. package/dist/lib/esm/commands/trace.command.js +81 -0
  158. package/dist/lib/esm/commands/trace.command.js.map +1 -0
  159. package/dist/lib/esm/config/config-loader.js +34 -13
  160. package/dist/lib/esm/config/config-loader.js.map +1 -1
  161. package/dist/lib/esm/decorators/command-parameter.decorator.js +36 -0
  162. package/dist/lib/esm/decorators/command-parameter.decorator.js.map +1 -0
  163. package/dist/lib/esm/decorators/decorators.js +2 -0
  164. package/dist/lib/esm/decorators/decorators.js.map +1 -0
  165. package/dist/lib/esm/enums/cli-decorator-metadata-keyname.enum.js +11 -0
  166. package/dist/lib/esm/enums/cli-decorator-metadata-keyname.enum.js.map +1 -0
  167. package/dist/lib/esm/enums/enums.js +3 -0
  168. package/dist/lib/esm/enums/enums.js.map +1 -0
  169. package/dist/lib/esm/enums/exit-code.enum.js +6 -0
  170. package/dist/lib/esm/enums/exit-code.enum.js.map +1 -0
  171. package/dist/lib/esm/enums/terminal-key-name.enum.js +18 -0
  172. package/dist/lib/esm/enums/terminal-key-name.enum.js.map +1 -0
  173. package/dist/lib/esm/errors/cli-error-code.enum.js +11 -1
  174. package/dist/lib/esm/errors/cli-error-code.enum.js.map +1 -1
  175. package/dist/lib/esm/errors/errors.js +1 -0
  176. package/dist/lib/esm/errors/errors.js.map +1 -1
  177. package/dist/lib/esm/errors/prompt-cancelled.error.js +21 -0
  178. package/dist/lib/esm/errors/prompt-cancelled.error.js.map +1 -0
  179. package/dist/lib/esm/event-handlers/cli.event-handler.js +22 -66
  180. package/dist/lib/esm/event-handlers/cli.event-handler.js.map +1 -1
  181. package/dist/lib/esm/event-handlers/event-handlers.js +1 -0
  182. package/dist/lib/esm/event-handlers/event-handlers.js.map +1 -1
  183. package/dist/lib/esm/event-handlers/repl-start.event-handler.js +244 -0
  184. package/dist/lib/esm/event-handlers/repl-start.event-handler.js.map +1 -0
  185. package/dist/lib/esm/event-payloads/event-payloads.js +1 -0
  186. package/dist/lib/esm/event-payloads/event-payloads.js.map +1 -1
  187. package/dist/lib/esm/event-payloads/start-repl.event-payload.js +15 -0
  188. package/dist/lib/esm/event-payloads/start-repl.event-payload.js.map +1 -0
  189. package/dist/lib/esm/interfaces/interfaces.js +1 -0
  190. package/dist/lib/esm/interfaces/interfaces.js.map +1 -1
  191. package/dist/lib/esm/interfaces/terminal-key.interface.js +2 -0
  192. package/dist/lib/esm/interfaces/terminal-key.interface.js.map +1 -0
  193. package/dist/lib/esm/managers/cli-prompt.manager.js +182 -16
  194. package/dist/lib/esm/managers/cli-prompt.manager.js.map +1 -1
  195. package/dist/lib/esm/managers/console.manager.js +241 -0
  196. package/dist/lib/esm/managers/console.manager.js.map +1 -0
  197. package/dist/lib/esm/managers/managers.js +1 -0
  198. package/dist/lib/esm/managers/managers.js.map +1 -1
  199. package/dist/lib/esm/managers/repl-session.js +215 -0
  200. package/dist/lib/esm/managers/repl-session.js.map +1 -0
  201. package/dist/lib/esm/managers/terminal-key-reader.manager.js +96 -0
  202. package/dist/lib/esm/managers/terminal-key-reader.manager.js.map +1 -0
  203. package/dist/lib/esm/mappers/command-event.mapper.js +49 -9
  204. package/dist/lib/esm/mappers/command-event.mapper.js.map +1 -1
  205. package/dist/lib/esm/mappers/mappers.js +1 -0
  206. package/dist/lib/esm/mappers/mappers.js.map +1 -1
  207. package/dist/lib/esm/mappers/repl-start-event.mapper.js +77 -0
  208. package/dist/lib/esm/mappers/repl-start-event.mapper.js.map +1 -0
  209. package/dist/lib/esm/options/command-parameter.options.js +2 -0
  210. package/dist/lib/esm/options/command-parameter.options.js.map +1 -0
  211. package/dist/lib/esm/options/options.js +1 -0
  212. package/dist/lib/esm/options/options.js.map +1 -1
  213. package/dist/lib/esm/services/command-argument-resolver.js +59 -0
  214. package/dist/lib/esm/services/command-argument-resolver.js.map +1 -0
  215. package/dist/lib/esm/services/command-options-resolver.js +111 -0
  216. package/dist/lib/esm/services/command-options-resolver.js.map +1 -0
  217. package/dist/lib/esm/services/command-parameter-prompter.js +308 -0
  218. package/dist/lib/esm/services/command-parameter-prompter.js.map +1 -0
  219. package/dist/lib/esm/services/services.js +4 -0
  220. package/dist/lib/esm/services/services.js.map +1 -0
  221. package/dist/lib/esm/tsconfig.tsbuildinfo +1 -1
  222. package/dist/lib/esm/types/start-repl-event-response.type.js +9 -0
  223. package/dist/lib/esm/types/start-repl-event-response.type.js.map +1 -0
  224. package/dist/lib/esm/types/types.js +1 -0
  225. package/dist/lib/esm/types/types.js.map +1 -1
  226. package/dist/lib/esm/utils/boolean-answer-parser.js +21 -0
  227. package/dist/lib/esm/utils/boolean-answer-parser.js.map +1 -0
  228. package/dist/lib/esm/utils/pristine-argv.js +50 -0
  229. package/dist/lib/esm/utils/pristine-argv.js.map +1 -0
  230. package/dist/lib/esm/utils/terminal-key-decoder.js +67 -0
  231. package/dist/lib/esm/utils/terminal-key-decoder.js.map +1 -0
  232. package/dist/types/bootstrap/app-module-cache.d.ts +15 -0
  233. package/dist/types/bootstrap/app-module-discoverer.d.ts +30 -0
  234. package/dist/types/bootstrap/app-module-discovery-candidate.d.ts +18 -0
  235. package/dist/types/bootstrap/app-module-discovery-reason.enum.d.ts +10 -0
  236. package/dist/types/bootstrap/app-module-prompt.d.ts +20 -0
  237. package/dist/types/bootstrap/build-staleness-prompt.d.ts +3 -3
  238. package/dist/types/bootstrap/init-prompt.d.ts +5 -5
  239. package/dist/types/cli.configuration-keys.d.ts +32 -0
  240. package/dist/types/cli.d.ts +8 -4
  241. package/dist/types/cli.module.d.ts +4 -0
  242. package/dist/types/commands/commands.d.ts +6 -0
  243. package/dist/types/commands/config-init.command.d.ts +18 -0
  244. package/dist/types/commands/logs-alias.command.d.ts +14 -0
  245. package/dist/types/commands/logs.command-options.d.ts +38 -0
  246. package/dist/types/commands/logs.command.d.ts +31 -0
  247. package/dist/types/commands/requests-alias.command.d.ts +14 -0
  248. package/dist/types/commands/requests.command-options.d.ts +8 -0
  249. package/dist/types/commands/requests.command.d.ts +25 -0
  250. package/dist/types/commands/trace-alias.command.d.ts +14 -0
  251. package/dist/types/commands/trace.command-options.d.ts +31 -0
  252. package/dist/types/commands/trace.command.d.ts +21 -0
  253. package/dist/types/config/config-loader.d.ts +15 -3
  254. package/dist/types/decorators/command-parameter.decorator.d.ts +30 -0
  255. package/dist/types/decorators/decorators.d.ts +1 -0
  256. package/dist/types/enums/cli-decorator-metadata-keyname.enum.d.ts +9 -0
  257. package/dist/types/enums/enums.d.ts +2 -0
  258. package/dist/types/enums/exit-code.enum.d.ts +4 -0
  259. package/dist/types/enums/terminal-key-name.enum.d.ts +16 -0
  260. package/dist/types/errors/cli-error-code.enum.d.ts +12 -2
  261. package/dist/types/errors/errors.d.ts +1 -0
  262. package/dist/types/errors/prompt-cancelled.error.d.ts +13 -0
  263. package/dist/types/event-handlers/cli.event-handler.d.ts +16 -13
  264. package/dist/types/event-handlers/event-handlers.d.ts +1 -0
  265. package/dist/types/event-handlers/repl-start.event-handler.d.ts +70 -0
  266. package/dist/types/event-payloads/event-payloads.d.ts +1 -0
  267. package/dist/types/event-payloads/start-repl.event-payload.d.ts +13 -0
  268. package/dist/types/interfaces/interfaces.d.ts +1 -0
  269. package/dist/types/interfaces/terminal-key.interface.d.ts +11 -0
  270. package/dist/types/managers/cli-prompt.manager.d.ts +63 -6
  271. package/dist/types/managers/console.manager.d.ts +93 -0
  272. package/dist/types/managers/managers.d.ts +1 -0
  273. package/dist/types/managers/repl-session.d.ts +62 -0
  274. package/dist/types/managers/terminal-key-reader.manager.d.ts +31 -0
  275. package/dist/types/mappers/command-event.mapper.d.ts +10 -1
  276. package/dist/types/mappers/mappers.d.ts +1 -0
  277. package/dist/types/mappers/repl-start-event.mapper.d.ts +28 -0
  278. package/dist/types/options/command-parameter.options.d.ts +29 -0
  279. package/dist/types/options/options.d.ts +1 -0
  280. package/dist/types/services/command-argument-resolver.d.ts +24 -0
  281. package/dist/types/services/command-options-resolver.d.ts +35 -0
  282. package/dist/types/services/command-parameter-prompter.d.ts +113 -0
  283. package/dist/types/services/services.d.ts +3 -0
  284. package/dist/types/types/start-repl-event-response.type.d.ts +10 -0
  285. package/dist/types/types/types.d.ts +1 -0
  286. package/dist/types/utils/boolean-answer-parser.d.ts +11 -0
  287. package/dist/types/utils/pristine-argv.d.ts +33 -0
  288. package/dist/types/utils/terminal-key-decoder.d.ts +28 -0
  289. package/package.json +16 -12
@@ -38,6 +38,9 @@ var __importStar = (this && this.__importStar) || (function () {
38
38
  return result;
39
39
  };
40
40
  })();
41
+ var __metadata = (this && this.__metadata) || function (k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ };
41
44
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
42
45
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
43
46
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -47,6 +50,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
47
50
  step((generator = generator.apply(thisArg, _arguments || [])).next());
48
51
  });
49
52
  };
53
+ var CliPrompt_1;
50
54
  Object.defineProperty(exports, "__esModule", { value: true });
51
55
  exports.CliPrompt = void 0;
52
56
  const tsyringe_1 = require("tsyringe");
@@ -56,11 +60,24 @@ const readline = __importStar(require("node:readline/promises"));
56
60
  const node_readline_1 = require("node:readline");
57
61
  const node_process_1 = require("node:process");
58
62
  const console_readline_options_1 = require("../options/console-readline.options");
63
+ const terminal_key_reader_manager_1 = require("./terminal-key-reader.manager");
64
+ const terminal_key_name_enum_1 = require("../enums/terminal-key-name.enum");
65
+ const boolean_answer_parser_1 = require("../utils/boolean-answer-parser");
66
+ const prompt_cancelled_error_1 = require("../errors/prompt-cancelled.error");
59
67
  /**
60
- * Interactive stdin reader for CLI commands. Wraps Node's `readline/promises` and offers
61
- * a single `readLine` method with optional masking after input is received.
68
+ * Interactive terminal prompts for CLI commands, implemented entirely on Node's `readline`
69
+ * and raw-mode stdin no third-party prompt library. Line-based prompts (`readLine`,
70
+ * `input`, `confirm`) go through `readline/promises`; the keystroke-level prompts (`select`
71
+ * arrow menu, masked `readSecret`) go through {@link TerminalKeyReader}.
72
+ *
73
+ * `Ctrl+C` rejects with {@link PromptCancelledError} across all of them — the line prompts
74
+ * via a `readline` SIGINT handler, the raw-mode prompts via the key reader — so callers get
75
+ * one consistent cancellation signal.
62
76
  */
63
- let CliPrompt = class CliPrompt {
77
+ let CliPrompt = CliPrompt_1 = class CliPrompt {
78
+ constructor(terminalKeyReader) {
79
+ this.terminalKeyReader = terminalKeyReader;
80
+ }
64
81
  /**
65
82
  * Reads a string from stdin synchronously. Returns whatever `process.stdin.read()`
66
83
  * gives back (which may be `null` when no data is buffered).
@@ -71,29 +88,178 @@ let CliPrompt = class CliPrompt {
71
88
  /**
72
89
  * Reads a line from stdin after displaying a prompt. When
73
90
  * `options.showCharactersOnTyping` is false, the answered line is cleared and replaced
74
- * with a masked echo so the typed value isn't left visible on screen.
91
+ * with a masked echo so the typed value isn't left visible on screen (a post-input clear,
92
+ * not true keystroke suppression — use {@link readSecret} for real masking).
75
93
  *
76
- * Note: this is not a true keystroke-suppressing password input — Node's stock
77
- * `readline` does not support that without raw-mode handling. The current behavior is
78
- * a post-input clear, sufficient for most CLI prompts.
94
+ * `Ctrl+C` rejects with {@link PromptCancelledError}: registering a `SIGINT` listener on
95
+ * the readline interface overrides Node's default interrupt handling, turning it into a
96
+ * clean rejection rather than a hung promise.
79
97
  */
80
98
  readLine(question_1) {
81
99
  return __awaiter(this, arguments, void 0, function* (question, options = new console_readline_options_1.ConsoleReadlineOptions()) {
82
100
  const rl = readline.createInterface({ input: node_process_1.stdin, output: node_process_1.stdout });
83
- const answer = yield rl.question(question);
84
- if (!options.showCharactersOnTyping) {
85
- (0, node_readline_1.moveCursor)(node_process_1.stdout, 0, -1);
86
- (0, node_readline_1.clearLine)(node_process_1.stdout, 0);
87
- process.stdout.write(`${question} [******]\n`);
101
+ try {
102
+ const answer = yield new Promise((resolve, reject) => {
103
+ rl.on("SIGINT", () => reject(new prompt_cancelled_error_1.PromptCancelledError()));
104
+ rl.question(question).then(resolve, reject);
105
+ });
106
+ if (!options.showCharactersOnTyping) {
107
+ (0, node_readline_1.moveCursor)(node_process_1.stdout, 0, -1);
108
+ (0, node_readline_1.clearLine)(node_process_1.stdout, 0);
109
+ process.stdout.write(`${question} [******]\n`);
110
+ }
111
+ return answer;
112
+ }
113
+ finally {
114
+ rl.close();
115
+ }
116
+ });
117
+ }
118
+ /**
119
+ * Asks a free-text question, optionally with a default. The default is shown as a hint and
120
+ * returned verbatim when the user submits an empty line. The answer is trimmed.
121
+ */
122
+ input(message, defaultValue) {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ const suffix = defaultValue !== undefined && defaultValue !== ""
125
+ ? ` ${CliPrompt_1.DIM}(${defaultValue})${CliPrompt_1.RESET}`
126
+ : "";
127
+ const answer = (yield this.readLine(`${message}${suffix} `)).trim();
128
+ if (answer.length === 0 && defaultValue !== undefined) {
129
+ return defaultValue;
88
130
  }
89
- rl.close();
90
131
  return answer;
91
132
  });
92
133
  }
134
+ /**
135
+ * Asks a yes/no question. An empty answer takes the default; anything `BooleanAnswerParser`
136
+ * understands (`y`/`yes`/`true`/`1`, `n`/`no`/`false`/`0`) is accepted; anything else is
137
+ * re-asked. The default is shown capitalized in the `(Y/n)` / `(y/N)` hint.
138
+ */
139
+ confirm(message_1) {
140
+ return __awaiter(this, arguments, void 0, function* (message, defaultValue = true) {
141
+ const hint = defaultValue ? "(Y/n)" : "(y/N)";
142
+ for (;;) {
143
+ const raw = (yield this.readLine(`${message} ${hint} `)).trim();
144
+ if (raw.length === 0) {
145
+ return defaultValue;
146
+ }
147
+ const parsed = boolean_answer_parser_1.BooleanAnswerParser.parse(raw);
148
+ if (parsed !== undefined) {
149
+ return parsed;
150
+ }
151
+ process.stdout.write("Please answer yes (y) or no (n).\n");
152
+ }
153
+ });
154
+ }
155
+ /**
156
+ * Presents an arrow-key menu and returns the chosen choice's `value`. `↑`/`↓` move the
157
+ * highlight (wrapping at the ends), `Enter` selects, `Ctrl+C` cancels. When `defaultValue`
158
+ * matches a choice, the menu starts on it. The cursor is hidden while the menu is active
159
+ * and restored afterward.
160
+ */
161
+ select(message, choices, defaultValue) {
162
+ return __awaiter(this, void 0, void 0, function* () {
163
+ if (choices.length === 0) {
164
+ throw new Error("CliPrompt.select requires at least one choice.");
165
+ }
166
+ const defaultIndex = choices.findIndex((choice) => choice.value === defaultValue);
167
+ let active = defaultIndex >= 0 ? defaultIndex : 0;
168
+ process.stdout.write(CliPrompt_1.HIDE_CURSOR);
169
+ process.stdout.write(`${CliPrompt_1.CYAN}?${CliPrompt_1.RESET} ${message}\n`);
170
+ this.renderChoices(choices, active);
171
+ try {
172
+ return yield this.terminalKeyReader.read((key, resolve) => {
173
+ if (key.name === terminal_key_name_enum_1.TerminalKeyName.Up) {
174
+ active = (active - 1 + choices.length) % choices.length;
175
+ this.repaintChoices(choices, active);
176
+ }
177
+ else if (key.name === terminal_key_name_enum_1.TerminalKeyName.Down) {
178
+ active = (active + 1) % choices.length;
179
+ this.repaintChoices(choices, active);
180
+ }
181
+ else if (key.name === terminal_key_name_enum_1.TerminalKeyName.Enter) {
182
+ resolve(choices[active].value);
183
+ }
184
+ });
185
+ }
186
+ finally {
187
+ process.stdout.write(CliPrompt_1.SHOW_CURSOR);
188
+ }
189
+ });
190
+ }
191
+ /**
192
+ * Reads a secret (password, token, …) from stdin with the typed characters masked as `*`.
193
+ * Real keystroke suppression via raw mode (unlike {@link readLine}'s post-input clear):
194
+ * each character echoes a `*`, `Backspace` erases one, `Enter` submits, `Ctrl+C` cancels.
195
+ * The value is returned untrimmed — a secret may legitimately contain surrounding
196
+ * whitespace.
197
+ */
198
+ readSecret(question) {
199
+ return __awaiter(this, void 0, void 0, function* () {
200
+ process.stdout.write(question);
201
+ let value = "";
202
+ try {
203
+ yield this.terminalKeyReader.read((key, resolve) => {
204
+ if (key.name === terminal_key_name_enum_1.TerminalKeyName.Enter) {
205
+ resolve(undefined);
206
+ }
207
+ else if (key.name === terminal_key_name_enum_1.TerminalKeyName.Backspace) {
208
+ if (value.length > 0) {
209
+ value = value.slice(0, -1);
210
+ process.stdout.write("\b \b");
211
+ }
212
+ }
213
+ else if (key.name === terminal_key_name_enum_1.TerminalKeyName.Character) {
214
+ value += key.sequence;
215
+ process.stdout.write("*");
216
+ }
217
+ });
218
+ }
219
+ finally {
220
+ process.stdout.write("\n");
221
+ }
222
+ return value;
223
+ });
224
+ }
225
+ /**
226
+ * Writes the choice rows, highlighting the active one with a colored pointer. Each row is
227
+ * cleared before it's written so a repaint never leaves a longer previous label behind.
228
+ * @private
229
+ */
230
+ renderChoices(choices, active) {
231
+ choices.forEach((choice, index) => {
232
+ (0, node_readline_1.clearLine)(process.stdout, 0);
233
+ (0, node_readline_1.cursorTo)(process.stdout, 0);
234
+ if (index === active) {
235
+ process.stdout.write(`${CliPrompt_1.CYAN}${CliPrompt_1.POINTER} ${choice.name}${CliPrompt_1.RESET}\n`);
236
+ }
237
+ else {
238
+ process.stdout.write(` ${choice.name}\n`);
239
+ }
240
+ });
241
+ }
242
+ /**
243
+ * Moves the cursor back up over the previously-rendered choice rows and rewrites them, so
244
+ * the menu updates in place as the selection moves.
245
+ * @private
246
+ */
247
+ repaintChoices(choices, active) {
248
+ (0, node_readline_1.moveCursor)(process.stdout, 0, -choices.length);
249
+ this.renderChoices(choices, active);
250
+ }
93
251
  };
94
252
  exports.CliPrompt = CliPrompt;
95
- exports.CliPrompt = CliPrompt = __decorate([
253
+ // ANSI constants, matching the conventions used by CliSpinner / CliProgressBar.
254
+ CliPrompt.CYAN = "\x1b[36m";
255
+ CliPrompt.DIM = "\x1b[2m";
256
+ CliPrompt.RESET = "\x1b[0m";
257
+ CliPrompt.HIDE_CURSOR = "\x1B[?25l";
258
+ CliPrompt.SHOW_CURSOR = "\x1B[?25h";
259
+ CliPrompt.POINTER = "❯";
260
+ exports.CliPrompt = CliPrompt = CliPrompt_1 = __decorate([
96
261
  (0, tsyringe_1.injectable)(),
97
- (0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname)
262
+ (0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
263
+ __metadata("design:paramtypes", [terminal_key_reader_manager_1.TerminalKeyReader])
98
264
  ], CliPrompt);
99
265
  //# sourceMappingURL=cli-prompt.manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-prompt.manager.js","sourceRoot":"","sources":["../../../../src/managers/cli-prompt.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAoC;AACpC,gDAAiD;AACjD,8DAAuD;AACvD,iEAAmD;AACnD,iDAAoD;AACpD,+CAA8D;AAC9D,kFAA2E;AAE3E;;;GAGG;AAGI,IAAM,SAAS,GAAf,MAAM,SAAS;IAEpB;;;OAGG;IACH,IAAI;QACF,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,EAAY,CAAC;IACxC,CAAC;IAED;;;;;;;;OAQG;IACG,QAAQ;6DAAC,QAAgB,EAAE,UAAkC,IAAI,iDAAsB,EAAE;YAC7F,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAC,KAAK,EAAL,oBAAK,EAAE,MAAM,EAAN,qBAAM,EAAC,CAAC,CAAC;YAErD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAE3C,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;gBACpC,IAAA,0BAAU,EAAC,qBAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAA,yBAAS,EAAC,qBAAM,EAAE,CAAC,CAAC,CAAC;gBACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,aAAa,CAAC,CAAC;YACjD,CAAC;YAED,EAAE,CAAC,KAAK,EAAE,CAAC;YAEX,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;CACF,CAAA;AAlCY,8BAAS;oBAAT,SAAS;IAFrB,IAAA,qBAAU,GAAE;IACZ,IAAA,qBAAY,EAAC,qCAAgB,CAAC;GAClB,SAAS,CAkCrB"}
1
+ {"version":3,"file":"cli-prompt.manager.js","sourceRoot":"","sources":["../../../../src/managers/cli-prompt.manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,277 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
42
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
43
+ return new (P || (P = Promise))(function (resolve, reject) {
44
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
45
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
46
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
47
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
48
+ });
49
+ };
50
+ Object.defineProperty(exports, "__esModule", { value: true });
51
+ exports.ConsoleManager = void 0;
52
+ const tsyringe_1 = require("tsyringe");
53
+ const common_1 = require("@pristine-ts/common");
54
+ const cli_module_keyname_1 = require("../cli.module.keyname");
55
+ const readline = __importStar(require("node:readline/promises"));
56
+ const node_readline_1 = require("node:readline");
57
+ const node_process_1 = require("node:process");
58
+ const console_readline_options_1 = require("../options/console-readline.options");
59
+ /**
60
+ * ANSI Escape Codes for formatting
61
+ */
62
+ const Colors = {
63
+ Reset: "\x1b[0m",
64
+ Bright: "\x1b[1m",
65
+ Dim: "\x1b[2m",
66
+ Underscore: "\x1b[4m",
67
+ Blink: "\x1b[5m",
68
+ Reverse: "\x1b[7m",
69
+ Hidden: "\x1b[8m",
70
+ FgBlack: "\x1b[30m",
71
+ FgRed: "\x1b[31m",
72
+ FgGreen: "\x1b[32m",
73
+ FgYellow: "\x1b[33m",
74
+ FgBlue: "\x1b[34m",
75
+ FgMagenta: "\x1b[35m",
76
+ FgCyan: "\x1b[36m",
77
+ FgWhite: "\x1b[37m",
78
+ };
79
+ let ConsoleManager = class ConsoleManager {
80
+ constructor() {
81
+ this.spinnerInterval = null;
82
+ this.isSpinning = false;
83
+ }
84
+ /**
85
+ * Writes a message to stdout without a newline.
86
+ * @param message The message to write.
87
+ */
88
+ write(message) {
89
+ process.stdout.write(message);
90
+ }
91
+ /**
92
+ * Writes a message to stdout with a newline.
93
+ * @param message The message to write.
94
+ */
95
+ writeLine(message) {
96
+ this.write(message + "\n");
97
+ }
98
+ /**
99
+ * Writes a table to stdout.
100
+ * @param table The array of objects to display as a table.
101
+ */
102
+ writeTable(table) {
103
+ console.table(table);
104
+ }
105
+ /**
106
+ * Writes an error message in red with an 'Error:' prefix.
107
+ * @param message The error message to display.
108
+ */
109
+ writeError(message) {
110
+ this.writeLine(`${Colors.FgRed}✖ Error:${Colors.Reset} ${message}`);
111
+ }
112
+ /**
113
+ * Writes a success message in green with a 'Success:' prefix.
114
+ * @param message The success message to display.
115
+ */
116
+ writeSuccess(message) {
117
+ this.writeLine(`${Colors.FgGreen}✔ Success:${Colors.Reset} ${message}`);
118
+ }
119
+ /**
120
+ * Writes a warning message in yellow with a 'Warning:' prefix.
121
+ * @param message The warning message to display.
122
+ */
123
+ writeWarning(message) {
124
+ this.writeLine(`${Colors.FgYellow}⚠ Warning:${Colors.Reset} ${message}`);
125
+ }
126
+ /**
127
+ * Writes an info message in cyan with an 'Info:' prefix.
128
+ * @param message The info message to display.
129
+ */
130
+ writeInfo(message) {
131
+ this.writeLine(`${Colors.FgCyan}ℹ Info:${Colors.Reset} ${message}`);
132
+ }
133
+ /**
134
+ * Starts a loading spinner with a message.
135
+ *
136
+ * @param message The message to display next to the spinner.
137
+ * @remarks
138
+ * This method hides the cursor and continuously updates the current line.
139
+ * Avoid calling other write methods while the spinner is active as they may conflict with the spinner's line clearing.
140
+ */
141
+ startSpinner(message) {
142
+ if (this.isSpinning)
143
+ return;
144
+ this.isSpinning = true;
145
+ const frames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
146
+ let i = 0;
147
+ process.stdout.write('\x1B[?25l'); // Hide cursor
148
+ this.spinnerInterval = setInterval(() => {
149
+ (0, node_readline_1.clearLine)(process.stdout, 0);
150
+ (0, node_readline_1.cursorTo)(process.stdout, 0);
151
+ const frame = frames[i = (i + 1) % frames.length];
152
+ process.stdout.write(`${Colors.FgCyan}${frame}${Colors.Reset} ${message}`);
153
+ }, 80);
154
+ }
155
+ /**
156
+ * Stops the loading spinner and optionally prints a completion message.
157
+ *
158
+ * @param message Optional completion message to display.
159
+ * @param success Whether the operation was successful. Defaults to true.
160
+ * @remarks
161
+ * Stops the spinner, shows the cursor, and prints a final success or error message on the same line.
162
+ */
163
+ stopSpinner(message, success = true) {
164
+ if (!this.isSpinning)
165
+ return;
166
+ if (this.spinnerInterval) {
167
+ clearInterval(this.spinnerInterval);
168
+ this.spinnerInterval = null;
169
+ }
170
+ this.isSpinning = false;
171
+ (0, node_readline_1.clearLine)(process.stdout, 0);
172
+ (0, node_readline_1.cursorTo)(process.stdout, 0);
173
+ process.stdout.write('\x1B[?25h'); // Show cursor
174
+ if (message) {
175
+ if (success) {
176
+ this.writeSuccess(message);
177
+ }
178
+ else {
179
+ this.writeError(message);
180
+ }
181
+ }
182
+ }
183
+ /**
184
+ * Displays or updates a progress bar.
185
+ *
186
+ * @param current The current progress value.
187
+ * @param total The total value to reach (100%).
188
+ * @param message Optional message to display next to the bar.
189
+ * @param width The visual width of the progress bar in characters. Defaults to 30.
190
+ *
191
+ * @remarks
192
+ * This method clears the *current* line and writes the progress bar.
193
+ *
194
+ * **Important:** If you call `writeLine()` (or any other method that outputs a newline) between calls to `updateProgressBar()`,
195
+ * the next call to `updateProgressBar()` will start on the *new* line, leaving the previous progress bar state on the line above.
196
+ *
197
+ * **Example of creating artifacts:**
198
+ * ```typescript
199
+ * manager.updateProgressBar(10, 100); // Draws bar at line N
200
+ * manager.writeLine("Log message"); // Moves cursor to line N+1
201
+ * manager.updateProgressBar(20, 100); // Draws bar at line N+1 (Line N has the old bar)
202
+ * ```
203
+ */
204
+ updateProgressBar(current, total, message = '', width = 30) {
205
+ const percentage = Math.min(Math.max(current / total, 0), 1);
206
+ const filledWidth = Math.round(width * percentage);
207
+ const emptyWidth = width - filledWidth;
208
+ const filledBar = '█'.repeat(filledWidth);
209
+ const emptyBar = '░'.repeat(emptyWidth);
210
+ (0, node_readline_1.clearLine)(process.stdout, 0);
211
+ (0, node_readline_1.cursorTo)(process.stdout, 0);
212
+ process.stdout.write(`${Colors.FgCyan}[${filledBar}${emptyBar}]${Colors.Reset} ${Math.round(percentage * 100)}% ${message}`);
213
+ if (current >= total) {
214
+ this.writeLine(''); // New line on completion
215
+ }
216
+ }
217
+ /**
218
+ * Reads a string from stdin.
219
+ * @returns The raw string read from stdin.
220
+ */
221
+ read() {
222
+ return process.stdin.read();
223
+ }
224
+ /**
225
+ * Reads a line from stdin with a prompt.
226
+ *
227
+ * @param question The prompt text to display.
228
+ * @param options Configuration options for the input (e.g., masking characters).
229
+ * @returns A promise resolving to the user's input string.
230
+ */
231
+ readLine(question_1) {
232
+ return __awaiter(this, arguments, void 0, function* (question, options = new console_readline_options_1.ConsoleReadlineOptions()) {
233
+ const rl = readline.createInterface({ input: node_process_1.stdin, output: node_process_1.stdout });
234
+ // If we want to hide characters (e.g. for password), we need to handle output manually-ish,
235
+ // but readline.question prints the prompt and then echoes input.
236
+ // A simple hack for passwords with standard readline is tricky without a dedicated library.
237
+ // However, we can use the 'mute' approach or simple overwriting if we accept some limitations.
238
+ // For now, adhering to the basic 'question' promise but supporting the 'showCharactersOnTyping' flag logic.
239
+ let queryPromise;
240
+ if (!options.showCharactersOnTyping) {
241
+ // Simple implementation: Ask question, but when user types, we can't easily intercept 'echo' with just createInterface
242
+ // unless we use a custom input stream or 'muted-stdout' pattern.
243
+ // Given constraint of no external libraries, we will use a basic workaround:
244
+ // We will output the question, set stdin to raw mode if possible (for true hiding)
245
+ // OR just use the moveCursor trick the previous code had, although that is flaky.
246
+ //
247
+ // Let's rely on the previous implementation's logic:
248
+ // The previous code did `moveCursor(output, 0, -1)` AFTER the answer was received.
249
+ // This clears the line AFTER typing. It doesn't hide it WHILE typing.
250
+ // Real password masking is complex in Node without libs.
251
+ // We will stick to the previous logic but ensure it's robust.
252
+ queryPromise = rl.question(question);
253
+ }
254
+ else {
255
+ queryPromise = rl.question(question);
256
+ }
257
+ const answer = yield queryPromise;
258
+ if (!options.showCharactersOnTyping) {
259
+ // Move up one line and clear it to hide the password typed
260
+ (0, node_readline_1.moveCursor)(node_process_1.stdout, 0, -1);
261
+ (0, node_readline_1.clearLine)(node_process_1.stdout, 0);
262
+ // We might want to re-print the question without the answer?
263
+ // Or just leave it cleared. The previous code just moved cursor.
264
+ // Let's just print a confirmation.
265
+ this.writeLine(`${question} [******]`);
266
+ }
267
+ rl.close();
268
+ return answer;
269
+ });
270
+ }
271
+ };
272
+ exports.ConsoleManager = ConsoleManager;
273
+ exports.ConsoleManager = ConsoleManager = __decorate([
274
+ (0, tsyringe_1.injectable)(),
275
+ (0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname)
276
+ ], ConsoleManager);
277
+ //# sourceMappingURL=console.manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console.manager.js","sourceRoot":"","sources":["../../../../src/managers/console.manager.ts"],"names":[],"mappings":"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"}
@@ -18,5 +18,6 @@ __exportStar(require("./cli-output.manager"), exports);
18
18
  __exportStar(require("./cli-progress-bar.manager"), exports);
19
19
  __exportStar(require("./cli-prompt.manager"), exports);
20
20
  __exportStar(require("./cli-spinner.manager"), exports);
21
+ __exportStar(require("./terminal-key-reader.manager"), exports);
21
22
  __exportStar(require("./shell.manager"), exports);
22
23
  //# sourceMappingURL=managers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"managers.js","sourceRoot":"","sources":["../../../../src/managers/managers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,6DAA2C;AAC3C,uDAAqC;AACrC,wDAAsC;AACtC,kDAAgC"}
1
+ {"version":3,"file":"managers.js","sourceRoot":"","sources":["../../../../src/managers/managers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,6DAA2C;AAC3C,uDAAqC;AACrC,wDAAsC;AACtC,gEAA8C;AAC9C,kDAAgC"}