@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
@@ -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,18 +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
27
  import { CliModuleKeyname } from "../cli.module.keyname";
29
- import { plainToInstance } from "class-transformer";
28
+ import { CommandArgumentResolver } from "../services/command-argument-resolver";
30
29
  let CliEventHandler = class CliEventHandler {
31
- constructor(logHandler, validator, commands) {
30
+ constructor(logHandler, commandArgumentResolver, commands) {
32
31
  this.logHandler = logHandler;
33
- this.validator = validator;
32
+ this.commandArgumentResolver = commandArgumentResolver;
34
33
  this.commands = commands;
35
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
+ */
36
45
  handle(event) {
37
46
  return __awaiter(this, void 0, void 0, function* () {
38
47
  var _a;
@@ -40,76 +49,23 @@ let CliEventHandler = class CliEventHandler {
40
49
  if (command === undefined) {
41
50
  // Throws a UsageError (exit 64, `EX_USAGE`). The bin's `.catch` will route it
42
51
  // through `CliErrorReporter.report` which prints a clean one-line stderr and
43
- // exits with the right code — no `process.exit` in this method any longer.
52
+ // exits with the right code.
44
53
  throw new CommandNotFoundError(event.payload.name);
45
54
  }
46
55
  const args = yield this.resolveArgs(command, (_a = event.payload.arguments) !== null && _a !== void 0 ? _a : {});
47
56
  const exitCode = yield command.run(args);
48
57
  this.logExitStatus(event.payload.name, exitCode);
49
- process.exit(exitCode);
58
+ return new CommandEventResponse(event, exitCode);
50
59
  });
51
60
  }
52
61
  /**
53
- * Maps `rawArgs` (the parsed argv shape produced by `CommandEventMapper`) into a typed
54
- * instance of `command.optionsType`, then runs `class-validator` against the instance.
55
- *
56
- * For commands that opt out of typed options (`optionsType === null`), passes the raw
57
- * args through unchanged — the legacy escape hatch for commands that want to handle
58
- * argv parsing themselves.
59
- *
60
- * Throws `UsageError` for mapping failures and `ValidationError` for class-validator
61
- * failures. Both carry structured `details` so `CliErrorReporter` can render them as
62
- * 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.
63
65
  */
64
66
  resolveArgs(command, rawArgs) {
65
67
  return __awaiter(this, void 0, void 0, function* () {
66
- if (command.optionsType === null) {
67
- return rawArgs;
68
- }
69
- let mapped;
70
- try {
71
- // class-transformer's plainToInstance is what produces a real instance of the
72
- // options class (with the prototype, decorator metadata, and class-validator hooks
73
- // intact). DataMapper.autoMap would return a plain object instead, which causes
74
- // class-validator to silently report no errors because it can't find decorator
75
- // metadata on a non-instance — exactly the bug this rewrite fixes.
76
- mapped = plainToInstance(command.optionsType, rawArgs);
77
- }
78
- catch (cause) {
79
- throw new UsageError(`Failed to map CLI arguments to '${command.optionsType.name}': ${cause.message}`, {
80
- code: CliErrorCode.ArgumentMappingFailed,
81
- cause: cause,
82
- details: { targetType: command.optionsType.name },
83
- });
84
- }
85
- const validationErrors = yield this.validator.validate(mapped);
86
- if (validationErrors.length === 0) {
87
- return mapped;
88
- }
89
- // Reshape the class-validator output into structured `details` the reporter can
90
- // render line-by-line. Keeps the throw single-pass and the reporter format-agnostic.
91
- const failures = {};
92
- for (const error of validationErrors) {
93
- const messages = [];
94
- for (const constraintKey in error.constraints) {
95
- // `@pristine-ts/class-validator` stores constraints as `{keyname, message}` objects
96
- // rather than the plain strings vanilla class-validator uses. Extract the message
97
- // when present, falling back to JSON for unknown shapes so we never print
98
- // `[object Object]`.
99
- const constraint = error.constraints[constraintKey];
100
- const message = typeof constraint === "string"
101
- ? constraint
102
- : (constraint && typeof constraint === "object" && typeof constraint.message === "string")
103
- ? constraint.message
104
- : JSON.stringify(constraint);
105
- messages.push(`[${constraintKey}] ${message}`);
106
- }
107
- failures[error.property] = messages;
108
- }
109
- throw new ValidationError("Argument validation failed", {
110
- code: CliErrorCode.ArgumentValidationFailed,
111
- details: failures,
112
- });
68
+ return this.commandArgumentResolver.resolve(command, rawArgs);
113
69
  });
114
70
  }
115
71
  supports(event) {
@@ -131,7 +87,7 @@ CliEventHandler = __decorate([
131
87
  injectable(),
132
88
  __param(0, inject("LogHandlerInterface")),
133
89
  __param(2, injectAll(ServiceDefinitionTagEnum.Command)),
134
- __metadata("design:paramtypes", [Object, Validator, Array])
90
+ __metadata("design:paramtypes", [Object, CommandArgumentResolver, Array])
135
91
  ], CliEventHandler);
136
92
  export { CliEventHandler };
137
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":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAC,MAAM,UAAU,CAAC;AAEvD,OAAO,EAAC,mBAAmB,EAAC,MAAM,yCAAyC,CAAC;AAI5E,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AACvH,OAAO,EAAC,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAC,oBAAoB,EAAC,MAAM,mCAAmC,CAAC;AAEvE,OAAO,EAAC,SAAS,EAAC,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAK3C,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YACkD,UAA+B,EAC9D,SAAoB,EACyB,QAAiC;QAF/C,eAAU,GAAV,UAAU,CAAqB;QAC9D,cAAS,GAAT,SAAS,CAAW;QACyB,aAAQ,GAAR,QAAQ,CAAyB;IACjG,CAAC;IAEK,MAAM,CAAC,KAAmB;;;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACvE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,8EAA8E;gBAC9E,6EAA6E;gBAC7E,2EAA2E;gBAC3E,MAAM,IAAI,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrD,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAA,KAAK,CAAC,OAAO,CAAC,SAAS,mCAAI,EAAE,CAAC,CAAC;YAC5E,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;KAAA;IAED;;;;;;;;;;;OAWG;IACG,WAAW,CAAC,OAA8B,EAAE,OAAY;;YAC5D,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;gBACjC,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,IAAI,MAAW,CAAC;YAChB,IAAI,CAAC;gBACH,8EAA8E;gBAC9E,mFAAmF;gBACnF,gFAAgF;gBAChF,+EAA+E;gBAC/E,mEAAmE;gBACnE,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,UAAU,CAClB,mCAAmC,OAAO,CAAC,WAAW,CAAC,IAAI,MAAO,KAAe,CAAC,OAAO,EAAE,EAC3F;oBACE,IAAI,EAAE,YAAY,CAAC,qBAAqB;oBACxC,KAAK,EAAE,KAAc;oBACrB,OAAO,EAAE,EAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,EAAC;iBAChD,CACF,CAAC;YACJ,CAAC;YAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC/D,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,gFAAgF;YAChF,qFAAqF;YACrF,MAAM,QAAQ,GAA6B,EAAE,CAAC;YAC9C,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAa,EAAE,CAAC;gBAC9B,KAAK,MAAM,aAAa,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;oBAC9C,oFAAoF;oBACpF,kFAAkF;oBAClF,0EAA0E;oBAC1E,qBAAqB;oBACrB,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;oBACpD,MAAM,OAAO,GAAG,OAAO,UAAU,KAAK,QAAQ;wBAC5C,CAAC,CAAC,UAAU;wBACZ,CAAC,CAAC,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,OAAQ,UAAkB,CAAC,OAAO,KAAK,QAAQ,CAAC;4BACjG,CAAC,CAAE,UAAkB,CAAC,OAAO;4BAC7B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;oBACjC,QAAQ,CAAC,IAAI,CAAC,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC,CAAC;gBACjD,CAAC;gBACD,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;YACtC,CAAC;YACD,MAAM,IAAI,eAAe,CAAC,4BAA4B,EAAE;gBACtD,IAAI,EAAE,YAAY,CAAC,wBAAwB;gBAC3C,OAAO,EAAE,QAAQ;aAClB,CAAC,CAAC;QACL,CAAC;KAAA;IAED,QAAQ,CAAC,KAAiB;QACxB,OAAO,KAAK,CAAC,OAAO,YAAY,mBAAmB,CAAC;IACtD,CAAC;IAEO,aAAa,CAAC,WAAmB,EAAE,QAA2B;QACpE,MAAM,MAAM,GAAG,QAAQ,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QACnE,IAAI,QAAQ,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,WAAW,UAAU,EAAE,EAAC,UAAU,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAC,EAAC,CAAC,CAAC;QACzG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,WAAW,UAAU,EAAE,EAAC,UAAU,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAC,EAAC,CAAC,CAAC;QAC1G,CAAC;IACH,CAAC;CACF,CAAA;AArGY,eAAe;IAH3B,GAAG,CAAC,wBAAwB,CAAC,YAAY,CAAC;IAC1C,YAAY,CAAC,gBAAgB,CAAC;IAC9B,UAAU,EAAE;IAGR,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;IAE7B,WAAA,SAAS,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;6CADhB,SAAS;GAH5B,eAAe,CAqG3B"}
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"}
@@ -0,0 +1,244 @@
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 __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var ReplStartEventHandler_1;
23
+ import * as readline from "node:readline";
24
+ import { inject, injectable } from "tsyringe";
25
+ import { ExecutionContextKeynameEnum, Kernel } from "@pristine-ts/core";
26
+ import { ExitCode, moduleScoped, ServiceDefinitionTagEnum, tag } from "@pristine-ts/common";
27
+ import { TraceStore } from "@pristine-ts/observability";
28
+ import { CliOutput } from "../managers/cli-output.manager";
29
+ import { CliModuleKeyname } from "../cli.module.keyname";
30
+ import { StartReplEventPayload } from "../event-payloads/start-repl.event-payload";
31
+ import { StartReplEventResponse } from "../types/start-repl-event-response.type";
32
+ /**
33
+ * The interactive `pristine` console, modelled as a long-running event handler. Launched
34
+ * when the bin is invoked with no command (or `pristine repl`) — `ReplStartEventMapper`
35
+ * produces a `StartReplEventPayload` and this handler runs the readline loop for the rest
36
+ * of the process lifetime.
37
+ *
38
+ * **Why an event handler.** The REPL is the same shape as `pristine start` (or any
39
+ * long-running command): an EventHandler whose `handle()` doesn't return until the
40
+ * session ends. This gives the CLI bootstrap a uniform shape — `cli.ts` just calls
41
+ * `kernel.handle(argv, {keyname: Cli})` regardless of whether the user invoked a one-shot
42
+ * command or wants the interactive console. There is no driver/handler asymmetry left in
43
+ * the bootstrap; the mapping layer routes argv to the right payload.
44
+ *
45
+ * **Per-line dispatch.** Each typed line is re-entered through `kernel.handle(...,
46
+ * {keyname: Cli})` — using `Kernel` (the proper re-entry seam — it owns trace lifecycle,
47
+ * child container creation, the works). The `Kernel` is `registerInstance`-d into its
48
+ * own container by `Cli.bootstrap()`, so this handler injects it via DI like any other
49
+ * service.
50
+ *
51
+ * Plus the session verbs `/help`, `/clear`, `/exit` handled in-process (they're not
52
+ * commands — they don't re-enter the kernel). Tab-completion is driven by the live
53
+ * command registry and by recent trace ids for `/trace` / `/logs`.
54
+ */
55
+ let ReplStartEventHandler = ReplStartEventHandler_1 = class ReplStartEventHandler {
56
+ constructor(kernel, container, cliOutput, traceStore) {
57
+ this.kernel = kernel;
58
+ this.container = container;
59
+ this.cliOutput = cliOutput;
60
+ this.traceStore = traceStore;
61
+ this.commands = [];
62
+ }
63
+ supports(event) {
64
+ return event.payload instanceof StartReplEventPayload;
65
+ }
66
+ /**
67
+ * Runs the read-eval-print loop until `/exit` or EOF (Ctrl-D). Resolves with the exit
68
+ * code wrapped in a `StartReplEventResponse`; the mapper surfaces that to `Cli.bootstrap`.
69
+ */
70
+ handle(event) {
71
+ return __awaiter(this, void 0, void 0, function* () {
72
+ this.commands = this.resolveCommands();
73
+ this.printBanner();
74
+ const rl = readline.createInterface({
75
+ input: process.stdin,
76
+ output: process.stdout,
77
+ prompt: ReplStartEventHandler_1.PROMPT,
78
+ completer: (line) => this.complete(line),
79
+ });
80
+ const exitCode = yield new Promise((resolve) => {
81
+ rl.prompt();
82
+ rl.on("line", (line) => {
83
+ const trimmed = line.trim();
84
+ if (trimmed.length === 0) {
85
+ rl.prompt();
86
+ return;
87
+ }
88
+ // Pause input while a command runs so its own SIGINT handling (e.g. `logs -f`)
89
+ // owns Ctrl-C, and so a second line can't interleave mid-dispatch.
90
+ rl.pause();
91
+ void this.handleLine(trimmed).then((shouldExit) => {
92
+ if (shouldExit) {
93
+ rl.close();
94
+ return;
95
+ }
96
+ rl.resume();
97
+ rl.prompt();
98
+ });
99
+ });
100
+ // Ctrl-C at an idle prompt clears the line rather than killing the session.
101
+ rl.on("SIGINT", () => {
102
+ this.cliOutput.writeLine("(type /exit to quit)");
103
+ rl.prompt();
104
+ });
105
+ rl.on("close", () => {
106
+ void this.shutdown().then(() => resolve(ExitCode.Success));
107
+ });
108
+ });
109
+ return new StartReplEventResponse(event, exitCode);
110
+ });
111
+ }
112
+ /**
113
+ * Handles one input line. Returns true when the session should end.
114
+ */
115
+ handleLine(input) {
116
+ return __awaiter(this, void 0, void 0, function* () {
117
+ const withoutSlash = input.startsWith("/") ? input.slice(1) : input;
118
+ const tokens = withoutSlash.split(/\s+/).filter(token => token.length > 0);
119
+ const name = tokens[0];
120
+ const rest = tokens.slice(1);
121
+ if (name === "exit" || name === "quit") {
122
+ return true;
123
+ }
124
+ if (name === "clear") {
125
+ console.clear();
126
+ return false;
127
+ }
128
+ if (name === "help") {
129
+ this.printHelp();
130
+ return false;
131
+ }
132
+ try {
133
+ // Re-enter the kernel with a synthetic argv under the `Cli` keyname — parsing and
134
+ // dispatch are identical to a one-shot invocation. The `"pristine"` token is the
135
+ // bin marker `PristineArgv` scans for; everything after it is treated as user
136
+ // args. `CliEventHandler` returns the exit code instead of calling `process.exit`,
137
+ // so the loop survives. An unknown command throws `CommandNotFoundError`, caught
138
+ // below.
139
+ yield this.kernel.handle(["node", "pristine", name, ...rest], { keyname: ExecutionContextKeynameEnum.Cli, context: null });
140
+ }
141
+ catch (error) {
142
+ try {
143
+ // Stringification + writeLine are wrapped together — `error.message`/`String(error)`
144
+ // can throw on pathological inputs, and a throw here would kill the REPL session.
145
+ this.cliOutput.writeLine(`Error: ${error instanceof Error ? error.message : String(error)}`);
146
+ }
147
+ catch (_a) {
148
+ // Drop the error rather than crashing the session.
149
+ }
150
+ }
151
+ return false;
152
+ });
153
+ }
154
+ /**
155
+ * Readline completer. Completes `/`-prefixed command names and session verbs; for
156
+ * `/trace` and `/logs` it completes the trailing token with recent trace ids.
157
+ */
158
+ complete(line) {
159
+ const traceIdMatch = /^\/(trace|logs)\s+(\S*)$/.exec(line);
160
+ if (traceIdMatch !== null) {
161
+ const partial = traceIdMatch[2];
162
+ const hits = this.traceStore.recentTraceIds(ReplStartEventHandler_1.TRACE_ID_COMPLETION_LIMIT)
163
+ .filter(id => id.startsWith(partial));
164
+ return [hits, partial];
165
+ }
166
+ const candidates = [
167
+ ...this.commands.map(command => `/${command.name}`),
168
+ ...ReplStartEventHandler_1.SESSION_VERBS,
169
+ ];
170
+ const hits = candidates.filter(candidate => candidate.startsWith(line));
171
+ return [hits.length > 0 ? hits : candidates, line];
172
+ }
173
+ printBanner() {
174
+ this.cliOutput.writeLine("Pristine — interactive console");
175
+ this.cliOutput.writeLine("Type /help for commands, /exit to quit.");
176
+ this.cliOutput.writeLine("");
177
+ }
178
+ printHelp() {
179
+ var _a;
180
+ this.cliOutput.writeLine("Session:");
181
+ this.cliOutput.writeLine(" /help show this message");
182
+ this.cliOutput.writeLine(" /clear clear the screen");
183
+ this.cliOutput.writeLine(" /exit leave the console");
184
+ this.cliOutput.writeLine("");
185
+ this.cliOutput.writeLine("Commands (also runnable as `pristine <name>`):");
186
+ const sorted = [...this.commands].sort((a, b) => a.name.localeCompare(b.name));
187
+ const longest = sorted.reduce((max, command) => Math.max(max, command.name.length), 0);
188
+ for (const command of sorted) {
189
+ const padded = `/${command.name}`.padEnd(longest + 3, " ");
190
+ this.cliOutput.writeLine(` ${padded}${(_a = command.description) !== null && _a !== void 0 ? _a : ""}`);
191
+ }
192
+ }
193
+ shutdown() {
194
+ return __awaiter(this, void 0, void 0, function* () {
195
+ try {
196
+ yield this.kernel.stop();
197
+ }
198
+ catch (_a) {
199
+ // Best-effort — we're leaving the process anyway.
200
+ }
201
+ });
202
+ }
203
+ /**
204
+ * Enumerates every registered command. Resolved from the per-event child container the
205
+ * kernel handed this handler when it dispatched the REPL-start event — same container
206
+ * `HelpCommand`/`ListCommand` themselves use, so commands that depend on
207
+ * `CurrentChildContainer` resolve cleanly.
208
+ *
209
+ * `resolveAll`, justified: framework REPL infrastructure at session start — enumerating
210
+ * every `Command`-tagged service is a container-introspection operation with no
211
+ * constructor seam.
212
+ */
213
+ resolveCommands() {
214
+ try {
215
+ return this.container.resolveAll(ServiceDefinitionTagEnum.Command);
216
+ }
217
+ catch (error) {
218
+ try {
219
+ // Stringification + stderr.write are wrapped together — `error.message`/`String(error)`
220
+ // can throw on pathological inputs, and a throw here would bubble out and kill REPL
221
+ // startup.
222
+ process.stderr.write(`[repl] could not load commands: ${error instanceof Error ? error.message : String(error)}\n`);
223
+ }
224
+ catch (_a) {
225
+ // Drop the report rather than crashing startup; the empty completer is still usable.
226
+ }
227
+ return [];
228
+ }
229
+ }
230
+ };
231
+ ReplStartEventHandler.PROMPT = "pristine ❯ ";
232
+ ReplStartEventHandler.SESSION_VERBS = ["/help", "/clear", "/exit"];
233
+ ReplStartEventHandler.TRACE_ID_COMPLETION_LIMIT = 25;
234
+ ReplStartEventHandler = ReplStartEventHandler_1 = __decorate([
235
+ tag(ServiceDefinitionTagEnum.EventHandler),
236
+ moduleScoped(CliModuleKeyname),
237
+ injectable(),
238
+ __param(0, inject(Kernel)),
239
+ __param(1, inject(ServiceDefinitionTagEnum.CurrentChildContainer)),
240
+ __metadata("design:paramtypes", [Kernel, Object, CliOutput,
241
+ TraceStore])
242
+ ], ReplStartEventHandler);
243
+ export { ReplStartEventHandler };
244
+ //# sourceMappingURL=repl-start.event-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repl-start.event-handler.js","sourceRoot":"","sources":["../../../../src/event-handlers/repl-start.event-handler.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export * from "./command.event-payload";
2
+ export * from "./start-repl.event-payload";
2
3
  //# sourceMappingURL=event-payloads.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-payloads.js","sourceRoot":"","sources":["../../../../src/event-payloads/event-payloads.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"event-payloads.js","sourceRoot":"","sources":["../../../../src/event-payloads/event-payloads.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Payload that signals "launch the interactive REPL." Produced by `ReplStartEventMapper`
3
+ * for argv shapes with no command (`pristine`) or with the explicit `repl` command
4
+ * (`pristine repl`). Consumed by `ReplStartEventHandler` which runs the readline loop
5
+ * for the rest of the process lifetime.
6
+ *
7
+ * The payload carries the `scriptPath` (argv[1]) for parity with `CommandEventPayload`
8
+ * and for diagnostics; the REPL itself reads its input from stdin, not from the payload.
9
+ */
10
+ export class StartReplEventPayload {
11
+ constructor(scriptPath) {
12
+ this.scriptPath = scriptPath;
13
+ }
14
+ }
15
+ //# sourceMappingURL=start-repl.event-payload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-repl.event-payload.js","sourceRoot":"","sources":["../../../../src/event-payloads/start-repl.event-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,OAAO,qBAAqB;IAChC,YAAmB,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;IACrC,CAAC;CACF"}
@@ -1,2 +1,3 @@
1
1
  export * from "./command.interface";
2
+ export * from "./terminal-key.interface";
2
3
  //# sourceMappingURL=interfaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/interfaces/interfaces.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/interfaces/interfaces.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=terminal-key.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-key.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/terminal-key.interface.ts"],"names":[],"mappings":""}