@pristine-ts/cli 2.0.6 → 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 (342) 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-runner.js +1 -1
  13. package/dist/lib/cjs/bootstrap/build-staleness-prompt.js +12 -13
  14. package/dist/lib/cjs/bootstrap/build-staleness-prompt.js.map +1 -1
  15. package/dist/lib/cjs/bootstrap/init-prompt.js +16 -47
  16. package/dist/lib/cjs/bootstrap/init-prompt.js.map +1 -1
  17. package/dist/lib/cjs/cli.configuration-keys.js +24 -0
  18. package/dist/lib/cjs/cli.configuration-keys.js.map +1 -0
  19. package/dist/lib/cjs/cli.js +23 -10
  20. package/dist/lib/cjs/cli.js.map +1 -1
  21. package/dist/lib/cjs/cli.module.js +41 -8
  22. package/dist/lib/cjs/cli.module.js.map +1 -1
  23. package/dist/lib/cjs/commands/build.command.js +15 -14
  24. package/dist/lib/cjs/commands/build.command.js.map +1 -1
  25. package/dist/lib/cjs/commands/commands.js +6 -0
  26. package/dist/lib/cjs/commands/commands.js.map +1 -1
  27. package/dist/lib/cjs/commands/config-init.command.js +133 -0
  28. package/dist/lib/cjs/commands/config-init.command.js.map +1 -0
  29. package/dist/lib/cjs/commands/config-print.command.js +16 -11
  30. package/dist/lib/cjs/commands/config-print.command.js.map +1 -1
  31. package/dist/lib/cjs/commands/help.command.js +17 -17
  32. package/dist/lib/cjs/commands/help.command.js.map +1 -1
  33. package/dist/lib/cjs/commands/info.command.js +26 -21
  34. package/dist/lib/cjs/commands/info.command.js.map +1 -1
  35. package/dist/lib/cjs/commands/init.command.js +22 -21
  36. package/dist/lib/cjs/commands/init.command.js.map +1 -1
  37. package/dist/lib/cjs/commands/list.command.js +6 -6
  38. package/dist/lib/cjs/commands/list.command.js.map +1 -1
  39. package/dist/lib/cjs/commands/logs-alias.command.js +49 -0
  40. package/dist/lib/cjs/commands/logs-alias.command.js.map +1 -0
  41. package/dist/lib/cjs/commands/logs.command-options.js +72 -0
  42. package/dist/lib/cjs/commands/logs.command-options.js.map +1 -0
  43. package/dist/lib/cjs/commands/logs.command.js +102 -0
  44. package/dist/lib/cjs/commands/logs.command.js.map +1 -0
  45. package/dist/lib/cjs/commands/requests-alias.command.js +49 -0
  46. package/dist/lib/cjs/commands/requests-alias.command.js.map +1 -0
  47. package/dist/lib/cjs/commands/requests.command-options.js +26 -0
  48. package/dist/lib/cjs/commands/requests.command-options.js.map +1 -0
  49. package/dist/lib/cjs/commands/requests.command.js +88 -0
  50. package/dist/lib/cjs/commands/requests.command.js.map +1 -0
  51. package/dist/lib/cjs/commands/start.command.js +12 -13
  52. package/dist/lib/cjs/commands/start.command.js.map +1 -1
  53. package/dist/lib/cjs/commands/trace-alias.command.js +49 -0
  54. package/dist/lib/cjs/commands/trace-alias.command.js.map +1 -0
  55. package/dist/lib/cjs/commands/trace.command-options.js +59 -0
  56. package/dist/lib/cjs/commands/trace.command-options.js.map +1 -0
  57. package/dist/lib/cjs/commands/trace.command.js +84 -0
  58. package/dist/lib/cjs/commands/trace.command.js.map +1 -0
  59. package/dist/lib/cjs/config/config-loader.js +34 -13
  60. package/dist/lib/cjs/config/config-loader.js.map +1 -1
  61. package/dist/lib/cjs/decorators/command-parameter.decorator.js +40 -0
  62. package/dist/lib/cjs/decorators/command-parameter.decorator.js.map +1 -0
  63. package/dist/lib/cjs/decorators/decorators.js +18 -0
  64. package/dist/lib/cjs/decorators/decorators.js.map +1 -0
  65. package/dist/lib/cjs/enums/cli-decorator-metadata-keyname.enum.js +14 -0
  66. package/dist/lib/cjs/enums/cli-decorator-metadata-keyname.enum.js.map +1 -0
  67. package/dist/lib/cjs/enums/enums.js +19 -0
  68. package/dist/lib/cjs/enums/enums.js.map +1 -0
  69. package/dist/lib/cjs/enums/exit-code.enum.js +9 -0
  70. package/dist/lib/cjs/enums/exit-code.enum.js.map +1 -0
  71. package/dist/lib/cjs/enums/terminal-key-name.enum.js +21 -0
  72. package/dist/lib/cjs/enums/terminal-key-name.enum.js.map +1 -0
  73. package/dist/lib/cjs/errors/cli-error-code.enum.js +11 -1
  74. package/dist/lib/cjs/errors/cli-error-code.enum.js.map +1 -1
  75. package/dist/lib/cjs/errors/errors.js +1 -0
  76. package/dist/lib/cjs/errors/errors.js.map +1 -1
  77. package/dist/lib/cjs/errors/prompt-cancelled.error.js +25 -0
  78. package/dist/lib/cjs/errors/prompt-cancelled.error.js.map +1 -0
  79. package/dist/lib/cjs/event-handlers/cli.event-handler.js +28 -70
  80. package/dist/lib/cjs/event-handlers/cli.event-handler.js.map +1 -1
  81. package/dist/lib/cjs/event-handlers/event-handlers.js +1 -0
  82. package/dist/lib/cjs/event-handlers/event-handlers.js.map +1 -1
  83. package/dist/lib/cjs/event-handlers/repl-start.event-handler.js +280 -0
  84. package/dist/lib/cjs/event-handlers/repl-start.event-handler.js.map +1 -0
  85. package/dist/lib/cjs/event-payloads/event-payloads.js +1 -0
  86. package/dist/lib/cjs/event-payloads/event-payloads.js.map +1 -1
  87. package/dist/lib/cjs/event-payloads/start-repl.event-payload.js +19 -0
  88. package/dist/lib/cjs/event-payloads/start-repl.event-payload.js.map +1 -0
  89. package/dist/lib/cjs/interfaces/interfaces.js +1 -0
  90. package/dist/lib/cjs/interfaces/interfaces.js.map +1 -1
  91. package/dist/lib/cjs/interfaces/terminal-key.interface.js +3 -0
  92. package/dist/lib/cjs/interfaces/terminal-key.interface.js.map +1 -0
  93. package/dist/lib/cjs/managers/cli-output.manager.js +45 -0
  94. package/dist/lib/cjs/managers/cli-output.manager.js.map +1 -0
  95. package/dist/lib/cjs/managers/cli-progress-bar.manager.js +49 -0
  96. package/dist/lib/cjs/managers/cli-progress-bar.manager.js.map +1 -0
  97. package/dist/lib/cjs/managers/cli-prompt.manager.js +265 -0
  98. package/dist/lib/cjs/managers/cli-prompt.manager.js.map +1 -0
  99. package/dist/lib/cjs/managers/cli-spinner.manager.js +93 -0
  100. package/dist/lib/cjs/managers/cli-spinner.manager.js.map +1 -0
  101. package/dist/lib/cjs/managers/managers.js +5 -1
  102. package/dist/lib/cjs/managers/managers.js.map +1 -1
  103. package/dist/lib/cjs/managers/repl-session.js +251 -0
  104. package/dist/lib/cjs/managers/repl-session.js.map +1 -0
  105. package/dist/lib/cjs/managers/shell.manager.js +25 -20
  106. package/dist/lib/cjs/managers/shell.manager.js.map +1 -1
  107. package/dist/lib/cjs/managers/terminal-key-reader.manager.js +99 -0
  108. package/dist/lib/cjs/managers/terminal-key-reader.manager.js.map +1 -0
  109. package/dist/lib/cjs/mappers/command-event.mapper.js +48 -8
  110. package/dist/lib/cjs/mappers/command-event.mapper.js.map +1 -1
  111. package/dist/lib/cjs/mappers/mappers.js +1 -0
  112. package/dist/lib/cjs/mappers/mappers.js.map +1 -1
  113. package/dist/lib/cjs/mappers/repl-start-event.mapper.js +80 -0
  114. package/dist/lib/cjs/mappers/repl-start-event.mapper.js.map +1 -0
  115. package/dist/lib/cjs/options/command-parameter.options.js +3 -0
  116. package/dist/lib/cjs/options/command-parameter.options.js.map +1 -0
  117. package/dist/lib/cjs/options/options.js +1 -0
  118. package/dist/lib/cjs/options/options.js.map +1 -1
  119. package/dist/lib/cjs/services/command-argument-resolver.js +62 -0
  120. package/dist/lib/cjs/services/command-argument-resolver.js.map +1 -0
  121. package/dist/lib/cjs/services/command-options-resolver.js +114 -0
  122. package/dist/lib/cjs/services/command-options-resolver.js.map +1 -0
  123. package/dist/lib/cjs/services/command-parameter-prompter.js +311 -0
  124. package/dist/lib/cjs/services/command-parameter-prompter.js.map +1 -0
  125. package/dist/lib/cjs/services/services.js +20 -0
  126. package/dist/lib/cjs/services/services.js.map +1 -0
  127. package/dist/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  128. package/dist/lib/cjs/types/start-repl-event-response.type.js +13 -0
  129. package/dist/lib/cjs/types/start-repl-event-response.type.js.map +1 -0
  130. package/dist/lib/cjs/types/types.js +1 -0
  131. package/dist/lib/cjs/types/types.js.map +1 -1
  132. package/dist/lib/cjs/utils/boolean-answer-parser.js +25 -0
  133. package/dist/lib/cjs/utils/boolean-answer-parser.js.map +1 -0
  134. package/dist/lib/cjs/utils/pristine-argv.js +87 -0
  135. package/dist/lib/cjs/utils/pristine-argv.js.map +1 -0
  136. package/dist/lib/cjs/utils/terminal-key-decoder.js +71 -0
  137. package/dist/lib/cjs/utils/terminal-key-decoder.js.map +1 -0
  138. package/dist/lib/esm/bootstrap/app-module-cache.js +65 -0
  139. package/dist/lib/esm/bootstrap/app-module-cache.js.map +1 -0
  140. package/dist/lib/esm/bootstrap/app-module-discoverer.js +113 -0
  141. package/dist/lib/esm/bootstrap/app-module-discoverer.js.map +1 -0
  142. package/dist/lib/esm/bootstrap/app-module-discovery-candidate.js +17 -0
  143. package/dist/lib/esm/bootstrap/app-module-discovery-candidate.js.map +1 -0
  144. package/dist/lib/esm/bootstrap/app-module-discovery-reason.enum.js +12 -0
  145. package/dist/lib/esm/bootstrap/app-module-discovery-reason.enum.js.map +1 -0
  146. package/dist/lib/esm/bootstrap/app-module-prompt.js +75 -0
  147. package/dist/lib/esm/bootstrap/app-module-prompt.js.map +1 -0
  148. package/dist/lib/esm/bootstrap/build-runner.js +1 -1
  149. package/dist/lib/esm/bootstrap/build-staleness-prompt.js +12 -13
  150. package/dist/lib/esm/bootstrap/build-staleness-prompt.js.map +1 -1
  151. package/dist/lib/esm/bootstrap/init-prompt.js +16 -47
  152. package/dist/lib/esm/bootstrap/init-prompt.js.map +1 -1
  153. package/dist/lib/esm/cli.configuration-keys.js +21 -0
  154. package/dist/lib/esm/cli.configuration-keys.js.map +1 -0
  155. package/dist/lib/esm/cli.js +23 -10
  156. package/dist/lib/esm/cli.js.map +1 -1
  157. package/dist/lib/esm/cli.module.js +41 -8
  158. package/dist/lib/esm/cli.module.js.map +1 -1
  159. package/dist/lib/esm/commands/build.command.js +16 -15
  160. package/dist/lib/esm/commands/build.command.js.map +1 -1
  161. package/dist/lib/esm/commands/commands.js +6 -0
  162. package/dist/lib/esm/commands/commands.js.map +1 -1
  163. package/dist/lib/esm/commands/config-init.command.js +127 -0
  164. package/dist/lib/esm/commands/config-init.command.js.map +1 -0
  165. package/dist/lib/esm/commands/config-print.command.js +16 -11
  166. package/dist/lib/esm/commands/config-print.command.js.map +1 -1
  167. package/dist/lib/esm/commands/help.command.js +17 -17
  168. package/dist/lib/esm/commands/help.command.js.map +1 -1
  169. package/dist/lib/esm/commands/info.command.js +27 -22
  170. package/dist/lib/esm/commands/info.command.js.map +1 -1
  171. package/dist/lib/esm/commands/init.command.js +23 -22
  172. package/dist/lib/esm/commands/init.command.js.map +1 -1
  173. package/dist/lib/esm/commands/list.command.js +6 -6
  174. package/dist/lib/esm/commands/list.command.js.map +1 -1
  175. package/dist/lib/esm/commands/logs-alias.command.js +46 -0
  176. package/dist/lib/esm/commands/logs-alias.command.js.map +1 -0
  177. package/dist/lib/esm/commands/logs.command-options.js +68 -0
  178. package/dist/lib/esm/commands/logs.command-options.js.map +1 -0
  179. package/dist/lib/esm/commands/logs.command.js +99 -0
  180. package/dist/lib/esm/commands/logs.command.js.map +1 -0
  181. package/dist/lib/esm/commands/requests-alias.command.js +46 -0
  182. package/dist/lib/esm/commands/requests-alias.command.js.map +1 -0
  183. package/dist/lib/esm/commands/requests.command-options.js +22 -0
  184. package/dist/lib/esm/commands/requests.command-options.js.map +1 -0
  185. package/dist/lib/esm/commands/requests.command.js +85 -0
  186. package/dist/lib/esm/commands/requests.command.js.map +1 -0
  187. package/dist/lib/esm/commands/start.command.js +13 -14
  188. package/dist/lib/esm/commands/start.command.js.map +1 -1
  189. package/dist/lib/esm/commands/trace-alias.command.js +46 -0
  190. package/dist/lib/esm/commands/trace-alias.command.js.map +1 -0
  191. package/dist/lib/esm/commands/trace.command-options.js +55 -0
  192. package/dist/lib/esm/commands/trace.command-options.js.map +1 -0
  193. package/dist/lib/esm/commands/trace.command.js +81 -0
  194. package/dist/lib/esm/commands/trace.command.js.map +1 -0
  195. package/dist/lib/esm/config/config-loader.js +34 -13
  196. package/dist/lib/esm/config/config-loader.js.map +1 -1
  197. package/dist/lib/esm/decorators/command-parameter.decorator.js +36 -0
  198. package/dist/lib/esm/decorators/command-parameter.decorator.js.map +1 -0
  199. package/dist/lib/esm/decorators/decorators.js +2 -0
  200. package/dist/lib/esm/decorators/decorators.js.map +1 -0
  201. package/dist/lib/esm/enums/cli-decorator-metadata-keyname.enum.js +11 -0
  202. package/dist/lib/esm/enums/cli-decorator-metadata-keyname.enum.js.map +1 -0
  203. package/dist/lib/esm/enums/enums.js +3 -0
  204. package/dist/lib/esm/enums/enums.js.map +1 -0
  205. package/dist/lib/esm/enums/exit-code.enum.js +6 -0
  206. package/dist/lib/esm/enums/exit-code.enum.js.map +1 -0
  207. package/dist/lib/esm/enums/terminal-key-name.enum.js +18 -0
  208. package/dist/lib/esm/enums/terminal-key-name.enum.js.map +1 -0
  209. package/dist/lib/esm/errors/cli-error-code.enum.js +11 -1
  210. package/dist/lib/esm/errors/cli-error-code.enum.js.map +1 -1
  211. package/dist/lib/esm/errors/errors.js +1 -0
  212. package/dist/lib/esm/errors/errors.js.map +1 -1
  213. package/dist/lib/esm/errors/prompt-cancelled.error.js +21 -0
  214. package/dist/lib/esm/errors/prompt-cancelled.error.js.map +1 -0
  215. package/dist/lib/esm/event-handlers/cli.event-handler.js +29 -71
  216. package/dist/lib/esm/event-handlers/cli.event-handler.js.map +1 -1
  217. package/dist/lib/esm/event-handlers/event-handlers.js +1 -0
  218. package/dist/lib/esm/event-handlers/event-handlers.js.map +1 -1
  219. package/dist/lib/esm/event-handlers/repl-start.event-handler.js +244 -0
  220. package/dist/lib/esm/event-handlers/repl-start.event-handler.js.map +1 -0
  221. package/dist/lib/esm/event-payloads/event-payloads.js +1 -0
  222. package/dist/lib/esm/event-payloads/event-payloads.js.map +1 -1
  223. package/dist/lib/esm/event-payloads/start-repl.event-payload.js +15 -0
  224. package/dist/lib/esm/event-payloads/start-repl.event-payload.js.map +1 -0
  225. package/dist/lib/esm/interfaces/interfaces.js +1 -0
  226. package/dist/lib/esm/interfaces/interfaces.js.map +1 -1
  227. package/dist/lib/esm/interfaces/terminal-key.interface.js +2 -0
  228. package/dist/lib/esm/interfaces/terminal-key.interface.js.map +1 -0
  229. package/dist/lib/esm/managers/cli-output.manager.js +42 -0
  230. package/dist/lib/esm/managers/cli-output.manager.js.map +1 -0
  231. package/dist/lib/esm/managers/cli-progress-bar.manager.js +46 -0
  232. package/dist/lib/esm/managers/cli-progress-bar.manager.js.map +1 -0
  233. package/dist/lib/esm/managers/cli-prompt.manager.js +229 -0
  234. package/dist/lib/esm/managers/cli-prompt.manager.js.map +1 -0
  235. package/dist/lib/esm/managers/cli-spinner.manager.js +90 -0
  236. package/dist/lib/esm/managers/cli-spinner.manager.js.map +1 -0
  237. package/dist/lib/esm/managers/managers.js +5 -1
  238. package/dist/lib/esm/managers/managers.js.map +1 -1
  239. package/dist/lib/esm/managers/repl-session.js +215 -0
  240. package/dist/lib/esm/managers/repl-session.js.map +1 -0
  241. package/dist/lib/esm/managers/shell.manager.js +26 -21
  242. package/dist/lib/esm/managers/shell.manager.js.map +1 -1
  243. package/dist/lib/esm/managers/terminal-key-reader.manager.js +96 -0
  244. package/dist/lib/esm/managers/terminal-key-reader.manager.js.map +1 -0
  245. package/dist/lib/esm/mappers/command-event.mapper.js +49 -9
  246. package/dist/lib/esm/mappers/command-event.mapper.js.map +1 -1
  247. package/dist/lib/esm/mappers/mappers.js +1 -0
  248. package/dist/lib/esm/mappers/mappers.js.map +1 -1
  249. package/dist/lib/esm/mappers/repl-start-event.mapper.js +77 -0
  250. package/dist/lib/esm/mappers/repl-start-event.mapper.js.map +1 -0
  251. package/dist/lib/esm/options/command-parameter.options.js +2 -0
  252. package/dist/lib/esm/options/command-parameter.options.js.map +1 -0
  253. package/dist/lib/esm/options/options.js +1 -0
  254. package/dist/lib/esm/options/options.js.map +1 -1
  255. package/dist/lib/esm/services/command-argument-resolver.js +59 -0
  256. package/dist/lib/esm/services/command-argument-resolver.js.map +1 -0
  257. package/dist/lib/esm/services/command-options-resolver.js +111 -0
  258. package/dist/lib/esm/services/command-options-resolver.js.map +1 -0
  259. package/dist/lib/esm/services/command-parameter-prompter.js +308 -0
  260. package/dist/lib/esm/services/command-parameter-prompter.js.map +1 -0
  261. package/dist/lib/esm/services/services.js +4 -0
  262. package/dist/lib/esm/services/services.js.map +1 -0
  263. package/dist/lib/esm/tsconfig.tsbuildinfo +1 -1
  264. package/dist/lib/esm/types/start-repl-event-response.type.js +9 -0
  265. package/dist/lib/esm/types/start-repl-event-response.type.js.map +1 -0
  266. package/dist/lib/esm/types/types.js +1 -0
  267. package/dist/lib/esm/types/types.js.map +1 -1
  268. package/dist/lib/esm/utils/boolean-answer-parser.js +21 -0
  269. package/dist/lib/esm/utils/boolean-answer-parser.js.map +1 -0
  270. package/dist/lib/esm/utils/pristine-argv.js +50 -0
  271. package/dist/lib/esm/utils/pristine-argv.js.map +1 -0
  272. package/dist/lib/esm/utils/terminal-key-decoder.js +67 -0
  273. package/dist/lib/esm/utils/terminal-key-decoder.js.map +1 -0
  274. package/dist/types/bootstrap/app-module-cache.d.ts +15 -0
  275. package/dist/types/bootstrap/app-module-discoverer.d.ts +30 -0
  276. package/dist/types/bootstrap/app-module-discovery-candidate.d.ts +18 -0
  277. package/dist/types/bootstrap/app-module-discovery-reason.enum.d.ts +10 -0
  278. package/dist/types/bootstrap/app-module-prompt.d.ts +20 -0
  279. package/dist/types/bootstrap/build-runner.d.ts +1 -1
  280. package/dist/types/bootstrap/build-staleness-prompt.d.ts +3 -3
  281. package/dist/types/bootstrap/init-prompt.d.ts +5 -5
  282. package/dist/types/cli.configuration-keys.d.ts +32 -0
  283. package/dist/types/cli.d.ts +8 -4
  284. package/dist/types/cli.module.d.ts +4 -0
  285. package/dist/types/commands/build.command.d.ts +3 -3
  286. package/dist/types/commands/commands.d.ts +6 -0
  287. package/dist/types/commands/config-init.command.d.ts +18 -0
  288. package/dist/types/commands/config-print.command.d.ts +8 -3
  289. package/dist/types/commands/help.command.d.ts +3 -3
  290. package/dist/types/commands/info.command.d.ts +5 -3
  291. package/dist/types/commands/init.command.d.ts +3 -3
  292. package/dist/types/commands/list.command.d.ts +3 -3
  293. package/dist/types/commands/logs-alias.command.d.ts +14 -0
  294. package/dist/types/commands/logs.command-options.d.ts +38 -0
  295. package/dist/types/commands/logs.command.d.ts +31 -0
  296. package/dist/types/commands/requests-alias.command.d.ts +14 -0
  297. package/dist/types/commands/requests.command-options.d.ts +8 -0
  298. package/dist/types/commands/requests.command.d.ts +25 -0
  299. package/dist/types/commands/start.command.d.ts +3 -3
  300. package/dist/types/commands/trace-alias.command.d.ts +14 -0
  301. package/dist/types/commands/trace.command-options.d.ts +31 -0
  302. package/dist/types/commands/trace.command.d.ts +21 -0
  303. package/dist/types/config/config-loader.d.ts +15 -3
  304. package/dist/types/decorators/command-parameter.decorator.d.ts +30 -0
  305. package/dist/types/decorators/decorators.d.ts +1 -0
  306. package/dist/types/enums/cli-decorator-metadata-keyname.enum.d.ts +9 -0
  307. package/dist/types/enums/enums.d.ts +2 -0
  308. package/dist/types/enums/exit-code.enum.d.ts +4 -0
  309. package/dist/types/enums/terminal-key-name.enum.d.ts +16 -0
  310. package/dist/types/errors/cli-error-code.enum.d.ts +12 -2
  311. package/dist/types/errors/errors.d.ts +1 -0
  312. package/dist/types/errors/prompt-cancelled.error.d.ts +13 -0
  313. package/dist/types/event-handlers/cli.event-handler.d.ts +16 -15
  314. package/dist/types/event-handlers/event-handlers.d.ts +1 -0
  315. package/dist/types/event-handlers/repl-start.event-handler.d.ts +70 -0
  316. package/dist/types/event-payloads/event-payloads.d.ts +1 -0
  317. package/dist/types/event-payloads/start-repl.event-payload.d.ts +13 -0
  318. package/dist/types/interfaces/interfaces.d.ts +1 -0
  319. package/dist/types/interfaces/terminal-key.interface.d.ts +11 -0
  320. package/dist/types/managers/cli-output.manager.d.ts +21 -0
  321. package/dist/types/managers/cli-progress-bar.manager.d.ts +17 -0
  322. package/dist/types/managers/cli-prompt.manager.d.ts +79 -0
  323. package/dist/types/managers/cli-spinner.manager.d.ts +34 -0
  324. package/dist/types/managers/managers.d.ts +5 -1
  325. package/dist/types/managers/repl-session.d.ts +62 -0
  326. package/dist/types/managers/shell.manager.d.ts +3 -3
  327. package/dist/types/managers/terminal-key-reader.manager.d.ts +31 -0
  328. package/dist/types/mappers/command-event.mapper.d.ts +10 -1
  329. package/dist/types/mappers/mappers.d.ts +1 -0
  330. package/dist/types/mappers/repl-start-event.mapper.d.ts +28 -0
  331. package/dist/types/options/command-parameter.options.d.ts +29 -0
  332. package/dist/types/options/options.d.ts +1 -0
  333. package/dist/types/services/command-argument-resolver.d.ts +24 -0
  334. package/dist/types/services/command-options-resolver.d.ts +35 -0
  335. package/dist/types/services/command-parameter-prompter.d.ts +113 -0
  336. package/dist/types/services/services.d.ts +3 -0
  337. package/dist/types/types/start-repl-event-response.type.d.ts +10 -0
  338. package/dist/types/types/types.d.ts +1 -0
  339. package/dist/types/utils/boolean-answer-parser.d.ts +11 -0
  340. package/dist/types/utils/pristine-argv.d.ts +33 -0
  341. package/dist/types/utils/terminal-key-decoder.d.ts +28 -0
  342. package/package.json +16 -12
@@ -0,0 +1,81 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
11
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
12
+ return new (P || (P = Promise))(function (resolve, reject) {
13
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
14
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
15
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
16
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
17
+ });
18
+ };
19
+ import { moduleScoped, ServiceDefinitionTagEnum, tag, ExitCode } from "@pristine-ts/common";
20
+ import { injectable } from "tsyringe";
21
+ import { TraceStore } from "@pristine-ts/observability";
22
+ import { traceRenderer } from "@pristine-ts/telemetry";
23
+ import { CliOutput } from "../managers/cli-output.manager";
24
+ import { CliModuleKeyname } from "../cli.module.keyname";
25
+ import { TraceCommandOptions } from "./trace.command-options";
26
+ /**
27
+ * Renders the span tree of one captured trace. Look it up by any of event/trace/request
28
+ * id — `pristine trace <id>` tries all three, or use the explicit `--event-id`,
29
+ * `--trace-id`, `--request-id` flags.
30
+ *
31
+ * `--format tree|flat|json` controls the rendering (defaults to `tree`).
32
+ */
33
+ let TraceCommand = class TraceCommand {
34
+ constructor(cliOutput, traceStore) {
35
+ this.cliOutput = cliOutput;
36
+ this.traceStore = traceStore;
37
+ this.optionsType = TraceCommandOptions;
38
+ this.name = "p:trace";
39
+ this.description = "Render the span tree of a captured trace by event/trace/request id.";
40
+ }
41
+ run(args) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ var _a;
44
+ const lookupId = args.lookupId;
45
+ if (lookupId === undefined) {
46
+ this.cliOutput.writeLine("Usage: pristine trace <id> [--format tree|flat|json]");
47
+ this.cliOutput.writeLine(" pristine trace --event-id <id> | --trace-id <id> | --request-id <id>");
48
+ return ExitCode.Error;
49
+ }
50
+ const format = (_a = args.format) !== null && _a !== void 0 ? _a : "tree";
51
+ if (format === "json") {
52
+ const serialized = this.traceStore.findSerialized(lookupId);
53
+ if (serialized === undefined) {
54
+ this.cliOutput.writeLine(`No trace found matching '${lookupId}'.`);
55
+ return ExitCode.Error;
56
+ }
57
+ this.cliOutput.writeLine(JSON.stringify(serialized.trace, null, 2));
58
+ return ExitCode.Success;
59
+ }
60
+ const found = this.traceStore.find(lookupId);
61
+ if (found === undefined) {
62
+ this.cliOutput.writeLine(`No trace found matching '${lookupId}'.`);
63
+ return ExitCode.Error;
64
+ }
65
+ const rendered = format === "flat"
66
+ ? traceRenderer.renderFlat(found.trace)
67
+ : traceRenderer.renderTree(found.trace);
68
+ this.cliOutput.writeLine(rendered);
69
+ return ExitCode.Success;
70
+ });
71
+ }
72
+ };
73
+ TraceCommand = __decorate([
74
+ tag(ServiceDefinitionTagEnum.Command),
75
+ moduleScoped(CliModuleKeyname),
76
+ injectable(),
77
+ __metadata("design:paramtypes", [CliOutput,
78
+ TraceStore])
79
+ ], TraceCommand);
80
+ export { TraceCommand };
81
+ //# sourceMappingURL=trace.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.command.js","sourceRoot":"","sources":["../../../../src/commands/trace.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAE,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAC,SAAS,EAAC,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAE5D;;;;;;GAMG;AAII,IAAM,YAAY,GAAlB,MAAM,YAAY;IAKvB,YACmB,SAAoB,EACpB,UAAsB;QADtB,cAAS,GAAT,SAAS,CAAW;QACpB,eAAU,GAAV,UAAU,CAAY;QANzC,gBAAW,GAAG,mBAAmB,CAAC;QAClC,SAAI,GAAG,SAAS,CAAC;QACjB,gBAAW,GAAG,qEAAqE,CAAC;IAMpF,CAAC;IAEK,GAAG,CAAC,IAAyB;;;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,sDAAsD,CAAC,CAAC;gBACjF,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,6EAA6E,CAAC,CAAC;gBACxG,OAAO,QAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;YAED,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,MAAM,CAAC;YAErC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAC5D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC7B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,4BAA4B,QAAQ,IAAI,CAAC,CAAC;oBACnE,OAAO,QAAQ,CAAC,KAAK,CAAC;gBACxB,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpE,OAAO,QAAQ,CAAC,OAAO,CAAC;YAC1B,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,4BAA4B,QAAQ,IAAI,CAAC,CAAC;gBACnE,OAAO,QAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,MAAM;gBAChC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;gBACvC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAEnC,OAAO,QAAQ,CAAC,OAAO,CAAC;QAC1B,CAAC;KAAA;CACF,CAAA;AA5CY,YAAY;IAHxB,GAAG,CAAC,wBAAwB,CAAC,OAAO,CAAC;IACrC,YAAY,CAAC,gBAAgB,CAAC;IAC9B,UAAU,EAAE;qCAOmB,SAAS;QACR,UAAU;GAP9B,YAAY,CA4CxB"}
@@ -25,7 +25,8 @@ import { DynamicImporter } from "../bootstrap/dynamic-importer";
25
25
  /**
26
26
  * Loads `pristine.config.ts` (preferred) or `pristine.config.js` (escape hatch for
27
27
  * pure-JS projects). Walks up from `process.cwd()` looking for the file, then loads it
28
- * through `jiti` (for `.ts`) or Node's dynamic `import()` (for `.js`).
28
+ * through Node's native dynamic `import()`: TypeScript type-stripping (Node >= 22.18)
29
+ * handles `.ts`, while `.js` loads directly.
29
30
  *
30
31
  * Returns a `ResolvedPristineConfig` carrying the file path (when found) and per-field
31
32
  * provenance, which `pristine p:config:print` uses to render an annotated dump.
@@ -94,26 +95,23 @@ let ConfigLoader = class ConfigLoader {
94
95
  }
95
96
  }
96
97
  /**
97
- * Loads a config file from `absolutePath`. `.ts` goes through `jiti`; `.js` uses Node's
98
- * native dynamic `import()`. Extracts the default export, falling back to a named
98
+ * Loads a config file from `absolutePath` via Node's native dynamic `import()`. A `.ts`
99
+ * config is handled by Node's built-in TypeScript type-stripping (Node >= 22.18); a `.js`
100
+ * config loads directly. Extracts the default export, falling back to a named
99
101
  * `pristineConfig` export for users who prefer not to use `export default`.
100
102
  * @private
101
103
  */
102
104
  importConfigFile(absolutePath) {
103
105
  return __awaiter(this, void 0, void 0, function* () {
104
- var _a, _b, _c, _d;
105
- const ext = path.extname(absolutePath).toLowerCase();
106
+ var _a, _b;
106
107
  let loaded;
107
- if (ext === ".ts") {
108
- const jitiModule = yield this.dynamicImporter.import("jiti");
109
- const createJiti = (_b = (_a = jitiModule.default) !== null && _a !== void 0 ? _a : jitiModule.createJiti) !== null && _b !== void 0 ? _b : jitiModule;
110
- const jiti = createJiti(absolutePath, { interopDefault: true });
111
- loaded = jiti(absolutePath);
112
- }
113
- else {
108
+ try {
114
109
  loaded = yield this.dynamicImporter.import(`file://${absolutePath}`);
115
110
  }
116
- const config = (_d = (_c = loaded === null || loaded === void 0 ? void 0 : loaded.default) !== null && _c !== void 0 ? _c : loaded === null || loaded === void 0 ? void 0 : loaded.pristineConfig) !== null && _d !== void 0 ? _d : loaded;
111
+ catch (error) {
112
+ throw this.describeImportError(error, absolutePath);
113
+ }
114
+ const config = (_b = (_a = loaded === null || loaded === void 0 ? void 0 : loaded.default) !== null && _a !== void 0 ? _a : loaded === null || loaded === void 0 ? void 0 : loaded.pristineConfig) !== null && _b !== void 0 ? _b : loaded;
117
115
  if (!config || typeof config !== "object") {
118
116
  throw new Error(`[pristine] Config file at '${absolutePath}' did not export a valid configuration. ` +
119
117
  `Use \`export default defineConfig({ ... })\` or \`export const pristineConfig = { ... }\`.`);
@@ -121,6 +119,29 @@ let ConfigLoader = class ConfigLoader {
121
119
  return config;
122
120
  });
123
121
  }
122
+ /**
123
+ * Translates Node's low-level module-loading failures for a `.ts` config into an
124
+ * actionable error. Native type-stripping has two distinct failure modes worth telling
125
+ * apart: the running Node is too old (or has stripping disabled) to import `.ts` at all
126
+ * (`ERR_UNKNOWN_FILE_EXTENSION`), versus a config written with non-erasable TypeScript that
127
+ * stripping refuses (`ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX`). Any other error is passed through
128
+ * unchanged so genuine config bugs surface as-is.
129
+ * @private
130
+ */
131
+ describeImportError(error, absolutePath) {
132
+ var _a;
133
+ if ((error === null || error === void 0 ? void 0 : error.code) === "ERR_UNKNOWN_FILE_EXTENSION") {
134
+ return new Error(`[pristine] Loading '${absolutePath}' requires Node >= 22.18 (native TypeScript ` +
135
+ `type-stripping); you are running ${process.version}. Upgrade Node, or rename the ` +
136
+ `file to 'pristine.config.js'.`);
137
+ }
138
+ if ((error === null || error === void 0 ? void 0 : error.code) === "ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX") {
139
+ return new Error(`[pristine] '${absolutePath}' uses TypeScript that Node cannot type-strip (enum, ` +
140
+ `namespace, parameter properties, ...). Use only erasable TypeScript in your config, ` +
141
+ `or rename the file to 'pristine.config.js'.\nOriginal error: ${(_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : error}`);
142
+ }
143
+ return error instanceof Error ? error : new Error(String(error));
144
+ }
124
145
  };
125
146
  ConfigLoader = __decorate([
126
147
  injectable(),
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../../src/config/config-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../../src/config/config-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { PropertyMetadata } from "@pristine-ts/metadata";
2
+ import { CliDecoratorMetadataKeynameEnum } from "../enums/cli-decorator-metadata-keyname.enum";
3
+ /**
4
+ * Describes a command-line parameter on a command's options class. Stored as property
5
+ * metadata and read by the CLI while resolving a command's arguments — before the arguments
6
+ * are mapped onto the options instance and validated.
7
+ *
8
+ * Two behaviors flow from the options:
9
+ *
10
+ * - `flag` rebinds the property to a differently-named flag (the property name is the
11
+ * default), so the property and the flag no longer have to be spelled identically.
12
+ * - `question` makes the CLI ask for the value interactively when the flag is absent
13
+ * (subject to configuration and an interactive terminal). Omit it to never prompt.
14
+ *
15
+ * ```ts
16
+ * import {IsString, IsOptional} from "@pristine-ts/class-validator";
17
+ * import {commandParameter} from "@pristine-ts/cli";
18
+ *
19
+ * export class MigrateCommandOptions {
20
+ * @commandParameter({flag: "db-url", question: "What is the database URL?"})
21
+ * @IsString()
22
+ * databaseUrl?: string; // bound to --db-url; asked for when missing
23
+ *
24
+ * @commandParameter({flag: "dir"}) // bound to --dir; never asked for
25
+ * @IsOptional()
26
+ * @IsString()
27
+ * migrationsDirectory?: string;
28
+ * }
29
+ * ```
30
+ */
31
+ export const commandParameter = (options = {}) => {
32
+ return (target, propertyKey) => {
33
+ PropertyMetadata.defineMetadata(target, propertyKey, CliDecoratorMetadataKeynameEnum.CommandParameter, options);
34
+ };
35
+ };
36
+ //# sourceMappingURL=command-parameter.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-parameter.decorator.js","sourceRoot":"","sources":["../../../../src/decorators/command-parameter.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,+BAA+B,EAAC,MAAM,8CAA8C,CAAC;AAG7F;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,UAAmC,EAAE,EAAE,EAAE;IACxE,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,EAAE;QAC1C,gBAAgB,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,+BAA+B,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAClH,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./command-parameter.decorator";
2
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../src/decorators/decorators.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Metadata keynames written by `@pristine-ts/cli`'s own property/class decorators and read
3
+ * back when resolving a command's options. Namespaced under `cli:` so they never collide
4
+ * with the keys other Pristine decorators (validation, data-mapping, mysql, …) store on the
5
+ * same class.
6
+ */
7
+ export var CliDecoratorMetadataKeynameEnum;
8
+ (function (CliDecoratorMetadataKeynameEnum) {
9
+ CliDecoratorMetadataKeynameEnum["CommandParameter"] = "cli:command-parameter";
10
+ })(CliDecoratorMetadataKeynameEnum || (CliDecoratorMetadataKeynameEnum = {}));
11
+ //# sourceMappingURL=cli-decorator-metadata-keyname.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-decorator-metadata-keyname.enum.js","sourceRoot":"","sources":["../../../../src/enums/cli-decorator-metadata-keyname.enum.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAN,IAAY,+BAEX;AAFD,WAAY,+BAA+B;IACzC,6EAA0C,CAAA;AAC5C,CAAC,EAFW,+BAA+B,KAA/B,+BAA+B,QAE1C"}
@@ -0,0 +1,3 @@
1
+ export * from "./cli-decorator-metadata-keyname.enum";
2
+ export * from "./terminal-key-name.enum";
3
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../src/enums/enums.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC;AACtD,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,6 @@
1
+ export var ExitCodeEnum;
2
+ (function (ExitCodeEnum) {
3
+ ExitCodeEnum[ExitCodeEnum["Success"] = 0] = "Success";
4
+ ExitCodeEnum[ExitCodeEnum["Error"] = 1] = "Error";
5
+ })(ExitCodeEnum || (ExitCodeEnum = {}));
6
+ //# sourceMappingURL=exit-code.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-code.enum.js","sourceRoot":"","sources":["../../../../src/enums/exit-code.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,qDAAW,CAAA;IACX,iDAAS,CAAA;AACX,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The kinds of keypress the CLI's interactive prompts understand. `TerminalKeyDecoder`
3
+ * maps the raw bytes Node delivers from a raw-mode stdin onto one of these; every printable
4
+ * keystroke collapses to `Character` (with the literal character carried separately on
5
+ * {@link TerminalKey}). `Other` covers control/escape sequences the prompts don't act on
6
+ * (function keys, unhandled arrows) so callers can ignore them instead of echoing garbage.
7
+ */
8
+ export var TerminalKeyName;
9
+ (function (TerminalKeyName) {
10
+ TerminalKeyName["Up"] = "up";
11
+ TerminalKeyName["Down"] = "down";
12
+ TerminalKeyName["Enter"] = "enter";
13
+ TerminalKeyName["Backspace"] = "backspace";
14
+ TerminalKeyName["CtrlC"] = "ctrl-c";
15
+ TerminalKeyName["Character"] = "character";
16
+ TerminalKeyName["Other"] = "other";
17
+ })(TerminalKeyName || (TerminalKeyName = {}));
18
+ //# sourceMappingURL=terminal-key-name.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-key-name.enum.js","sourceRoot":"","sources":["../../../../src/enums/terminal-key-name.enum.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,eAQX;AARD,WAAY,eAAe;IACzB,4BAAS,CAAA;IACT,gCAAa,CAAA;IACb,kCAAe,CAAA;IACf,0CAAuB,CAAA;IACvB,mCAAgB,CAAA;IAChB,0CAAuB,CAAA;IACvB,kCAAe,CAAA;AACjB,CAAC,EARW,eAAe,KAAf,eAAe,QAQ1B"}
@@ -3,12 +3,22 @@
3
3
  * (typed `PristineErrorCode | string`, so any enum value is accepted).
4
4
  *
5
5
  * Codes here describe CLI-specific failures — command resolution, argument mapping,
6
- * and argument validation.
6
+ * argument validation, and command-parameter binding.
7
7
  */
8
8
  export var CliErrorCode;
9
9
  (function (CliErrorCode) {
10
10
  CliErrorCode["CommandNotFound"] = "COMMAND_NOT_FOUND";
11
11
  CliErrorCode["ArgumentMappingFailed"] = "ARGUMENT_MAPPING_FAILED";
12
12
  CliErrorCode["ArgumentValidationFailed"] = "ARGUMENT_VALIDATION_FAILED";
13
+ /**
14
+ * Two `@commandParameter` properties on the same options class resolve to the same flag.
15
+ * A programming error in the command's options definition, not bad user input.
16
+ */
17
+ CliErrorCode["CommandParameterFlagConflict"] = "COMMAND_PARAMETER_FLAG_CONFLICT";
18
+ /**
19
+ * The user cancelled an interactive prompt with `Ctrl+C`. Carried by
20
+ * `PromptCancelledError` — a clean, user-initiated cancellation, not a failure.
21
+ */
22
+ CliErrorCode["PromptCancelled"] = "PROMPT_CANCELLED";
13
23
  })(CliErrorCode || (CliErrorCode = {}));
14
24
  //# sourceMappingURL=cli-error-code.enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-error-code.enum.js","sourceRoot":"","sources":["../../../../src/errors/cli-error-code.enum.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,qDAA8C,CAAA;IAC9C,iEAAoD,CAAA;IACpD,uEAAuD,CAAA;AACzD,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB"}
1
+ {"version":3,"file":"cli-error-code.enum.js","sourceRoot":"","sources":["../../../../src/errors/cli-error-code.enum.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,YAgBX;AAhBD,WAAY,YAAY;IACtB,qDAA8C,CAAA;IAC9C,iEAAoD,CAAA;IACpD,uEAAuD,CAAA;IAEvD;;;OAGG;IACH,gFAAgE,CAAA;IAEhE;;;OAGG;IACH,oDAAoC,CAAA;AACtC,CAAC,EAhBW,YAAY,KAAZ,YAAY,QAgBvB"}
@@ -1,3 +1,4 @@
1
1
  export * from "./cli-error-code.enum";
2
2
  export * from "./command-not-found.error";
3
+ export * from "./prompt-cancelled.error";
3
4
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/errors/errors.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/errors/errors.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { PristineError, PristineErrorKind } from "@pristine-ts/common";
2
+ import { CliErrorCode } from "./cli-error-code.enum";
3
+ /**
4
+ * Thrown when the user cancels an interactive prompt with `Ctrl+C`. A clean, user-initiated
5
+ * cancellation — not a crash — so it carries `kind: UserError` (the `CliErrorReporter`
6
+ * renders the message verbatim instead of a stack dump) and exit code `130`, following the
7
+ * POSIX `128 + SIGINT(2)` convention so shell pipelines can detect the interrupt.
8
+ *
9
+ * Callers that treat cancellation as a normal branch (e.g. `BuildStalenessPrompt`) catch it
10
+ * via `instanceof`; everywhere else it propagates to the reporter for a tidy exit.
11
+ */
12
+ export class PromptCancelledError extends PristineError {
13
+ constructor() {
14
+ super("Prompt cancelled.", {
15
+ code: CliErrorCode.PromptCancelled,
16
+ exitCode: 130,
17
+ kind: PristineErrorKind.UserError,
18
+ });
19
+ }
20
+ }
21
+ //# sourceMappingURL=prompt-cancelled.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-cancelled.error.js","sourceRoot":"","sources":["../../../../src/errors/prompt-cancelled.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAEnD;;;;;;;;GAQG;AACH,MAAM,OAAO,oBAAqB,SAAQ,aAAa;IACrD;QACE,KAAK,CAAC,mBAAmB,EAAE;YACzB,IAAI,EAAE,YAAY,CAAC,eAAe;YAClC,QAAQ,EAAE,GAAG;YACb,IAAI,EAAE,iBAAiB,CAAC,SAAS;SAClC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -21,20 +21,27 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
21
21
  };
22
22
  import { inject, injectable, injectAll } from "tsyringe";
23
23
  import { CommandEventPayload } from "../event-payloads/command.event-payload";
24
- import { moduleScoped, ServiceDefinitionTagEnum, tag, UsageError, ValidationError, ExitCode } from "@pristine-ts/common";
25
- import { CliErrorCode } from "../errors/cli-error-code.enum";
24
+ import { CommandEventResponse } from "../types/command-event-response.type";
25
+ import { moduleScoped, ServiceDefinitionTagEnum, tag, ExitCode } from "@pristine-ts/common";
26
26
  import { CommandNotFoundError } from "../errors/command-not-found.error";
27
- import { Validator } from "@pristine-ts/class-validator";
28
- import { ConsoleManager } from "../managers/console.manager";
29
27
  import { CliModuleKeyname } from "../cli.module.keyname";
30
- import { plainToInstance } from "class-transformer";
28
+ import { CommandArgumentResolver } from "../services/command-argument-resolver";
31
29
  let CliEventHandler = class CliEventHandler {
32
- constructor(logHandler, validator, consoleManager, commands) {
30
+ constructor(logHandler, commandArgumentResolver, commands) {
33
31
  this.logHandler = logHandler;
34
- this.validator = validator;
35
- this.consoleManager = consoleManager;
32
+ this.commandArgumentResolver = commandArgumentResolver;
36
33
  this.commands = commands;
37
34
  }
35
+ /**
36
+ * Resolves and runs the command, then **returns** its exit code wrapped in a
37
+ * `CommandEventResponse` — it does not call `process.exit`.
38
+ *
39
+ * Process lifecycle is the bin's job: `kernel.handle` resolves with this exit code,
40
+ * `Cli.bootstrap` returns it, and `bin.ts` does the actual `process.exit`. Returning
41
+ * (rather than exiting) is also what lets the interactive REPL dispatch commands
42
+ * through this very handler — `kernel.handle(argv, {keyname: Cli})` per typed line —
43
+ * without the process dying after the first command.
44
+ */
38
45
  handle(event) {
39
46
  return __awaiter(this, void 0, void 0, function* () {
40
47
  var _a;
@@ -42,76 +49,23 @@ let CliEventHandler = class CliEventHandler {
42
49
  if (command === undefined) {
43
50
  // Throws a UsageError (exit 64, `EX_USAGE`). The bin's `.catch` will route it
44
51
  // through `CliErrorReporter.report` which prints a clean one-line stderr and
45
- // exits with the right code — no `process.exit` in this method any longer.
52
+ // exits with the right code.
46
53
  throw new CommandNotFoundError(event.payload.name);
47
54
  }
48
55
  const args = yield this.resolveArgs(command, (_a = event.payload.arguments) !== null && _a !== void 0 ? _a : {});
49
56
  const exitCode = yield command.run(args);
50
57
  this.logExitStatus(event.payload.name, exitCode);
51
- process.exit(exitCode);
58
+ return new CommandEventResponse(event, exitCode);
52
59
  });
53
60
  }
54
61
  /**
55
- * Maps `rawArgs` (the parsed argv shape produced by `CommandEventMapper`) into a typed
56
- * instance of `command.optionsType`, then runs `class-validator` against the instance.
57
- *
58
- * For commands that opt out of typed options (`optionsType === null`), passes the raw
59
- * args through unchanged — the legacy escape hatch for commands that want to handle
60
- * argv parsing themselves.
61
- *
62
- * Throws `UsageError` for mapping failures and `ValidationError` for class-validator
63
- * failures. Both carry structured `details` so `CliErrorReporter` can render them as
64
- * readable stderr lines without this method touching the console directly.
62
+ * Maps + validates a command's raw arguments. Delegates to the shared
63
+ * `CommandArgumentResolver`. Since the REPL dispatches through this same handler, the
64
+ * one-shot CLI and the REPL resolve arguments through identical logic.
65
65
  */
66
66
  resolveArgs(command, rawArgs) {
67
67
  return __awaiter(this, void 0, void 0, function* () {
68
- if (command.optionsType === null) {
69
- return rawArgs;
70
- }
71
- let mapped;
72
- try {
73
- // class-transformer's plainToInstance is what produces a real instance of the
74
- // options class (with the prototype, decorator metadata, and class-validator hooks
75
- // intact). DataMapper.autoMap would return a plain object instead, which causes
76
- // class-validator to silently report no errors because it can't find decorator
77
- // metadata on a non-instance — exactly the bug this rewrite fixes.
78
- mapped = plainToInstance(command.optionsType, rawArgs);
79
- }
80
- catch (cause) {
81
- throw new UsageError(`Failed to map CLI arguments to '${command.optionsType.name}': ${cause.message}`, {
82
- code: CliErrorCode.ArgumentMappingFailed,
83
- cause: cause,
84
- details: { targetType: command.optionsType.name },
85
- });
86
- }
87
- const validationErrors = yield this.validator.validate(mapped);
88
- if (validationErrors.length === 0) {
89
- return mapped;
90
- }
91
- // Reshape the class-validator output into structured `details` the reporter can
92
- // render line-by-line. Keeps the throw single-pass and the reporter format-agnostic.
93
- const failures = {};
94
- for (const error of validationErrors) {
95
- const messages = [];
96
- for (const constraintKey in error.constraints) {
97
- // `@pristine-ts/class-validator` stores constraints as `{keyname, message}` objects
98
- // rather than the plain strings vanilla class-validator uses. Extract the message
99
- // when present, falling back to JSON for unknown shapes so we never print
100
- // `[object Object]`.
101
- const constraint = error.constraints[constraintKey];
102
- const message = typeof constraint === "string"
103
- ? constraint
104
- : (constraint && typeof constraint === "object" && typeof constraint.message === "string")
105
- ? constraint.message
106
- : JSON.stringify(constraint);
107
- messages.push(`[${constraintKey}] ${message}`);
108
- }
109
- failures[error.property] = messages;
110
- }
111
- throw new ValidationError("Argument validation failed", {
112
- code: CliErrorCode.ArgumentValidationFailed,
113
- details: failures,
114
- });
68
+ return this.commandArgumentResolver.resolve(command, rawArgs);
115
69
  });
116
70
  }
117
71
  supports(event) {
@@ -119,7 +73,12 @@ let CliEventHandler = class CliEventHandler {
119
73
  }
120
74
  logExitStatus(commandName, exitCode) {
121
75
  const status = exitCode === ExitCode.Success ? "Success" : "Error";
122
- this.consoleManager.writeLine(`[status:'${status}', code:'${exitCode}'] - Command '${commandName}' exited.`);
76
+ if (exitCode === ExitCode.Success) {
77
+ this.logHandler.info(`Command '${commandName}' exited`, { highlights: { status, exitCode, commandName } });
78
+ }
79
+ else {
80
+ this.logHandler.error(`Command '${commandName}' exited`, { highlights: { status, exitCode, commandName } });
81
+ }
123
82
  }
124
83
  };
125
84
  CliEventHandler = __decorate([
@@ -127,9 +86,8 @@ CliEventHandler = __decorate([
127
86
  moduleScoped(CliModuleKeyname),
128
87
  injectable(),
129
88
  __param(0, inject("LogHandlerInterface")),
130
- __param(3, injectAll(ServiceDefinitionTagEnum.Command)),
131
- __metadata("design:paramtypes", [Object, Validator,
132
- ConsoleManager, Array])
89
+ __param(2, injectAll(ServiceDefinitionTagEnum.Command)),
90
+ __metadata("design:paramtypes", [Object, CommandArgumentResolver, Array])
133
91
  ], CliEventHandler);
134
92
  export { CliEventHandler };
135
93
  //# sourceMappingURL=cli.event-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.event-handler.js","sourceRoot":"","sources":["../../../../src/event-handlers/cli.event-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.event-handler.js","sourceRoot":"","sources":["../../../../src/event-handlers/cli.event-handler.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export * from "./cli.event-handler";
2
+ export * from "./repl-start.event-handler";
2
3
  //# sourceMappingURL=event-handlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-handlers.js","sourceRoot":"","sources":["../../../../src/event-handlers/event-handlers.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"event-handlers.js","sourceRoot":"","sources":["../../../../src/event-handlers/event-handlers.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC"}