@tsed/cli-core 3.20.16 → 3.21.0-rc.1

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 (298) hide show
  1. package/lib/cjs/CliCore.js +97 -0
  2. package/lib/cjs/CliCore.js.map +1 -0
  3. package/lib/cjs/decorators/command.js +11 -0
  4. package/lib/cjs/decorators/command.js.map +1 -0
  5. package/lib/cjs/decorators/index.js +9 -0
  6. package/lib/cjs/decorators/index.js.map +1 -0
  7. package/lib/cjs/decorators/on.js +13 -0
  8. package/lib/cjs/decorators/on.js.map +1 -0
  9. package/lib/cjs/decorators/onAdd.js +10 -0
  10. package/lib/cjs/decorators/onAdd.js.map +1 -0
  11. package/lib/cjs/decorators/onExec.js +10 -0
  12. package/lib/cjs/decorators/onExec.js.map +1 -0
  13. package/lib/cjs/decorators/onPostInstall.js +10 -0
  14. package/lib/cjs/decorators/onPostInstall.js.map +1 -0
  15. package/lib/cjs/decorators/onPrompt.js +10 -0
  16. package/lib/cjs/decorators/onPrompt.js.map +1 -0
  17. package/lib/cjs/domains/CliError.js +14 -0
  18. package/lib/cjs/domains/CliError.js.map +1 -0
  19. package/lib/cjs/domains/CommandStoreKeys.js +12 -0
  20. package/lib/cjs/domains/CommandStoreKeys.js.map +1 -0
  21. package/lib/cjs/index.js +30 -0
  22. package/lib/cjs/index.js.map +1 -0
  23. package/lib/cjs/interfaces/CliDefaultOptions.js +3 -0
  24. package/lib/cjs/interfaces/CliDefaultOptions.js.map +1 -0
  25. package/lib/cjs/interfaces/CommandMetadata.js +3 -0
  26. package/lib/cjs/interfaces/CommandMetadata.js.map +1 -0
  27. package/lib/cjs/interfaces/CommandParameters.js +3 -0
  28. package/lib/cjs/interfaces/CommandParameters.js.map +1 -0
  29. package/lib/cjs/interfaces/CommandProvider.js +3 -0
  30. package/lib/cjs/interfaces/CommandProvider.js.map +1 -0
  31. package/lib/cjs/interfaces/PackageJson.js +3 -0
  32. package/lib/cjs/interfaces/PackageJson.js.map +1 -0
  33. package/lib/cjs/interfaces/ProjectPreferences.js +10 -0
  34. package/lib/cjs/interfaces/ProjectPreferences.js.map +1 -0
  35. package/lib/cjs/interfaces/Tasks.js +3 -0
  36. package/lib/cjs/interfaces/Tasks.js.map +1 -0
  37. package/lib/cjs/interfaces/index.js +11 -0
  38. package/lib/cjs/interfaces/index.js.map +1 -0
  39. package/lib/cjs/package.json +3 -0
  40. package/lib/cjs/registries/CommandRegistry.js +13 -0
  41. package/lib/cjs/registries/CommandRegistry.js.map +1 -0
  42. package/lib/cjs/services/CliConfiguration.js +21 -0
  43. package/lib/cjs/services/CliConfiguration.js.map +1 -0
  44. package/lib/cjs/services/CliDockerComposeYaml.js +83 -0
  45. package/lib/cjs/services/CliDockerComposeYaml.js.map +1 -0
  46. package/lib/cjs/services/CliExeca.js +45 -0
  47. package/lib/cjs/services/CliExeca.js.map +1 -0
  48. package/lib/cjs/services/CliFs.js +55 -0
  49. package/lib/cjs/services/CliFs.js.map +1 -0
  50. package/lib/cjs/services/CliHooks.js +34 -0
  51. package/lib/cjs/services/CliHooks.js.map +1 -0
  52. package/lib/cjs/services/CliHttpClient.js +107 -0
  53. package/lib/cjs/services/CliHttpClient.js.map +1 -0
  54. package/lib/cjs/services/CliHttpLogClient.js +83 -0
  55. package/lib/cjs/services/CliHttpLogClient.js.map +1 -0
  56. package/lib/cjs/services/CliPackageJson.js +16 -0
  57. package/lib/cjs/services/CliPackageJson.js.map +1 -0
  58. package/lib/cjs/services/CliPlugins.js +78 -0
  59. package/lib/cjs/services/CliPlugins.js.map +1 -0
  60. package/lib/cjs/services/CliProxyAgent.js +87 -0
  61. package/lib/cjs/services/CliProxyAgent.js.map +1 -0
  62. package/lib/cjs/services/CliRunScript.js +31 -0
  63. package/lib/cjs/services/CliRunScript.js.map +1 -0
  64. package/lib/cjs/services/CliService.js +271 -0
  65. package/lib/cjs/services/CliService.js.map +1 -0
  66. package/lib/cjs/services/CliYaml.js +37 -0
  67. package/lib/cjs/services/CliYaml.js.map +1 -0
  68. package/lib/cjs/services/NpmRegistryClient.js +121 -0
  69. package/lib/cjs/services/NpmRegistryClient.js.map +1 -0
  70. package/lib/cjs/services/ProjectPackageJson.js +420 -0
  71. package/lib/cjs/services/ProjectPackageJson.js.map +1 -0
  72. package/lib/cjs/services/Renderer.js +154 -0
  73. package/lib/cjs/services/Renderer.js.map +1 -0
  74. package/lib/cjs/services/index.js +17 -0
  75. package/lib/cjs/services/index.js.map +1 -0
  76. package/lib/cjs/utils/createInjector.js +35 -0
  77. package/lib/cjs/utils/createInjector.js.map +1 -0
  78. package/lib/cjs/utils/createTasksRunner.js +75 -0
  79. package/lib/cjs/utils/createTasksRunner.js.map +1 -0
  80. package/lib/cjs/utils/getCommandMetadata.js +19 -0
  81. package/lib/cjs/utils/getCommandMetadata.js.map +1 -0
  82. package/lib/cjs/utils/getPackageJson.js +38 -0
  83. package/lib/cjs/utils/getPackageJson.js.map +1 -0
  84. package/lib/cjs/utils/hbs/array.js +522 -0
  85. package/lib/cjs/utils/hbs/array.js.map +1 -0
  86. package/lib/cjs/utils/hbs/collection.js +66 -0
  87. package/lib/cjs/utils/hbs/collection.js.map +1 -0
  88. package/lib/cjs/utils/hbs/comparison.js +437 -0
  89. package/lib/cjs/utils/hbs/comparison.js.map +1 -0
  90. package/lib/cjs/utils/hbs/index.js +15 -0
  91. package/lib/cjs/utils/hbs/index.js.map +1 -0
  92. package/lib/cjs/utils/hbs/object.js +245 -0
  93. package/lib/cjs/utils/hbs/object.js.map +1 -0
  94. package/lib/cjs/utils/hbs/switch.js +14 -0
  95. package/lib/cjs/utils/hbs/switch.js.map +1 -0
  96. package/lib/cjs/utils/index.js +14 -0
  97. package/lib/cjs/utils/index.js.map +1 -0
  98. package/lib/cjs/utils/isValidVersion.js +11 -0
  99. package/lib/cjs/utils/isValidVersion.js.map +1 -0
  100. package/lib/cjs/utils/loadPlugins.js +47 -0
  101. package/lib/cjs/utils/loadPlugins.js.map +1 -0
  102. package/lib/cjs/utils/logToCurl.js +19 -0
  103. package/lib/cjs/utils/logToCurl.js.map +1 -0
  104. package/lib/cjs/utils/mapCommanderArgs.js +40 -0
  105. package/lib/cjs/utils/mapCommanderArgs.js.map +1 -0
  106. package/lib/cjs/utils/mapCommanderOptions.js +16 -0
  107. package/lib/cjs/utils/mapCommanderOptions.js.map +1 -0
  108. package/lib/cjs/utils/normalizePath.js +19 -0
  109. package/lib/cjs/utils/normalizePath.js.map +1 -0
  110. package/lib/cjs/utils/parseOption.js +27 -0
  111. package/lib/cjs/utils/parseOption.js.map +1 -0
  112. package/lib/cjs/utils/patchCommander.js +58 -0
  113. package/lib/cjs/utils/patchCommander.js.map +1 -0
  114. package/lib/cjs/utils/renderer/insertAfter.js +17 -0
  115. package/lib/cjs/utils/renderer/insertAfter.js.map +1 -0
  116. package/lib/cjs/utils/renderer/insertImport.js +16 -0
  117. package/lib/cjs/utils/renderer/insertImport.js.map +1 -0
  118. package/lib/esm/CliCore.js +94 -0
  119. package/lib/esm/CliCore.js.map +1 -0
  120. package/lib/esm/decorators/command.js +7 -0
  121. package/lib/esm/decorators/command.js.map +1 -0
  122. package/lib/esm/decorators/index.js +6 -0
  123. package/lib/esm/decorators/index.js.map +1 -0
  124. package/lib/esm/decorators/on.js +9 -0
  125. package/lib/esm/decorators/on.js.map +1 -0
  126. package/lib/esm/decorators/onAdd.js +6 -0
  127. package/lib/esm/decorators/onAdd.js.map +1 -0
  128. package/lib/esm/decorators/onExec.js +6 -0
  129. package/lib/esm/decorators/onExec.js.map +1 -0
  130. package/lib/esm/decorators/onPostInstall.js +6 -0
  131. package/lib/esm/decorators/onPostInstall.js.map +1 -0
  132. package/lib/esm/decorators/onPrompt.js +6 -0
  133. package/lib/esm/decorators/onPrompt.js.map +1 -0
  134. package/lib/esm/domains/CliError.js +10 -0
  135. package/lib/esm/domains/CliError.js.map +1 -0
  136. package/lib/esm/domains/CommandStoreKeys.js +9 -0
  137. package/lib/esm/domains/CommandStoreKeys.js.map +1 -0
  138. package/lib/esm/index.js +12 -0
  139. package/lib/esm/index.js.map +1 -0
  140. package/lib/esm/interfaces/CliDefaultOptions.js +2 -0
  141. package/lib/esm/interfaces/CliDefaultOptions.js.map +1 -0
  142. package/lib/esm/interfaces/CommandMetadata.js +2 -0
  143. package/lib/esm/interfaces/CommandMetadata.js.map +1 -0
  144. package/lib/esm/interfaces/CommandParameters.js +2 -0
  145. package/lib/esm/interfaces/CommandParameters.js.map +1 -0
  146. package/lib/esm/interfaces/CommandProvider.js +2 -0
  147. package/lib/esm/interfaces/CommandProvider.js.map +1 -0
  148. package/lib/esm/interfaces/PackageJson.js +2 -0
  149. package/lib/esm/interfaces/PackageJson.js.map +1 -0
  150. package/lib/esm/interfaces/ProjectPreferences.js +7 -0
  151. package/lib/esm/interfaces/ProjectPreferences.js.map +1 -0
  152. package/lib/esm/interfaces/Tasks.js +2 -0
  153. package/lib/esm/interfaces/Tasks.js.map +1 -0
  154. package/lib/esm/interfaces/index.js +8 -0
  155. package/lib/esm/interfaces/index.js.map +1 -0
  156. package/lib/esm/package.json +3 -0
  157. package/lib/esm/registries/CommandRegistry.js +10 -0
  158. package/lib/esm/registries/CommandRegistry.js.map +1 -0
  159. package/lib/esm/services/CliConfiguration.js +18 -0
  160. package/lib/esm/services/CliConfiguration.js.map +1 -0
  161. package/lib/esm/services/CliDockerComposeYaml.js +80 -0
  162. package/lib/esm/services/CliDockerComposeYaml.js.map +1 -0
  163. package/lib/esm/services/CliExeca.js +42 -0
  164. package/lib/esm/services/CliExeca.js.map +1 -0
  165. package/lib/esm/services/CliFs.js +52 -0
  166. package/lib/esm/services/CliFs.js.map +1 -0
  167. package/lib/esm/services/CliHooks.js +31 -0
  168. package/lib/esm/services/CliHooks.js.map +1 -0
  169. package/lib/esm/services/CliHttpClient.js +104 -0
  170. package/lib/esm/services/CliHttpClient.js.map +1 -0
  171. package/lib/esm/services/CliHttpLogClient.js +80 -0
  172. package/lib/esm/services/CliHttpLogClient.js.map +1 -0
  173. package/lib/esm/services/CliPackageJson.js +12 -0
  174. package/lib/esm/services/CliPackageJson.js.map +1 -0
  175. package/lib/esm/services/CliPlugins.js +75 -0
  176. package/lib/esm/services/CliPlugins.js.map +1 -0
  177. package/lib/esm/services/CliProxyAgent.js +84 -0
  178. package/lib/esm/services/CliProxyAgent.js.map +1 -0
  179. package/lib/esm/services/CliRunScript.js +28 -0
  180. package/lib/esm/services/CliRunScript.js.map +1 -0
  181. package/lib/esm/services/CliService.js +268 -0
  182. package/lib/esm/services/CliService.js.map +1 -0
  183. package/lib/esm/services/CliYaml.js +34 -0
  184. package/lib/esm/services/CliYaml.js.map +1 -0
  185. package/lib/esm/services/NpmRegistryClient.js +117 -0
  186. package/lib/esm/services/NpmRegistryClient.js.map +1 -0
  187. package/lib/esm/services/ProjectPackageJson.js +417 -0
  188. package/lib/esm/services/ProjectPackageJson.js.map +1 -0
  189. package/lib/esm/services/Renderer.js +150 -0
  190. package/lib/esm/services/Renderer.js.map +1 -0
  191. package/lib/esm/services/index.js +14 -0
  192. package/lib/esm/services/index.js.map +1 -0
  193. package/lib/esm/utils/createInjector.js +30 -0
  194. package/lib/esm/utils/createInjector.js.map +1 -0
  195. package/lib/esm/utils/createTasksRunner.js +69 -0
  196. package/lib/esm/utils/createTasksRunner.js.map +1 -0
  197. package/lib/esm/utils/getCommandMetadata.js +15 -0
  198. package/lib/esm/utils/getCommandMetadata.js.map +1 -0
  199. package/lib/esm/utils/getPackageJson.js +33 -0
  200. package/lib/esm/utils/getPackageJson.js.map +1 -0
  201. package/lib/esm/utils/hbs/array.js +518 -0
  202. package/lib/esm/utils/hbs/array.js.map +1 -0
  203. package/lib/esm/utils/hbs/collection.js +62 -0
  204. package/lib/esm/utils/hbs/collection.js.map +1 -0
  205. package/lib/esm/utils/hbs/comparison.js +433 -0
  206. package/lib/esm/utils/hbs/comparison.js.map +1 -0
  207. package/lib/esm/utils/hbs/index.js +12 -0
  208. package/lib/esm/utils/hbs/index.js.map +1 -0
  209. package/lib/esm/utils/hbs/object.js +241 -0
  210. package/lib/esm/utils/hbs/object.js.map +1 -0
  211. package/lib/esm/utils/hbs/switch.js +11 -0
  212. package/lib/esm/utils/hbs/switch.js.map +1 -0
  213. package/lib/esm/utils/index.js +11 -0
  214. package/lib/esm/utils/index.js.map +1 -0
  215. package/lib/esm/utils/isValidVersion.js +6 -0
  216. package/lib/esm/utils/isValidVersion.js.map +1 -0
  217. package/lib/esm/utils/loadPlugins.js +42 -0
  218. package/lib/esm/utils/loadPlugins.js.map +1 -0
  219. package/lib/esm/utils/logToCurl.js +14 -0
  220. package/lib/esm/utils/logToCurl.js.map +1 -0
  221. package/lib/esm/utils/mapCommanderArgs.js +36 -0
  222. package/lib/esm/utils/mapCommanderArgs.js.map +1 -0
  223. package/lib/esm/utils/mapCommanderOptions.js +12 -0
  224. package/lib/esm/utils/mapCommanderOptions.js.map +1 -0
  225. package/lib/esm/utils/normalizePath.js +14 -0
  226. package/lib/esm/utils/normalizePath.js.map +1 -0
  227. package/lib/esm/utils/parseOption.js +23 -0
  228. package/lib/esm/utils/parseOption.js.map +1 -0
  229. package/lib/esm/utils/patchCommander.js +55 -0
  230. package/lib/esm/utils/patchCommander.js.map +1 -0
  231. package/lib/esm/utils/renderer/insertAfter.js +13 -0
  232. package/lib/esm/utils/renderer/insertAfter.js.map +1 -0
  233. package/lib/esm/utils/renderer/insertImport.js +12 -0
  234. package/lib/esm/utils/renderer/insertImport.js.map +1 -0
  235. package/lib/{CliCore.d.ts → types/CliCore.d.ts} +0 -0
  236. package/lib/{decorators → types/decorators}/command.d.ts +0 -0
  237. package/lib/{decorators → types/decorators}/index.d.ts +0 -0
  238. package/lib/{decorators → types/decorators}/on.d.ts +0 -0
  239. package/lib/{decorators → types/decorators}/onAdd.d.ts +0 -0
  240. package/lib/{decorators → types/decorators}/onExec.d.ts +0 -0
  241. package/lib/{decorators → types/decorators}/onPostInstall.d.ts +0 -0
  242. package/lib/{decorators → types/decorators}/onPrompt.d.ts +0 -0
  243. package/lib/{domains → types/domains}/CliError.d.ts +0 -0
  244. package/lib/{domains → types/domains}/CommandStoreKeys.d.ts +0 -0
  245. package/lib/{index.d.ts → types/index.d.ts} +0 -0
  246. package/lib/{interfaces → types/interfaces}/CliDefaultOptions.d.ts +0 -0
  247. package/lib/{interfaces → types/interfaces}/CommandMetadata.d.ts +0 -0
  248. package/lib/{interfaces → types/interfaces}/CommandParameters.d.ts +0 -0
  249. package/lib/{interfaces → types/interfaces}/CommandProvider.d.ts +0 -0
  250. package/lib/{interfaces → types/interfaces}/PackageJson.d.ts +0 -0
  251. package/lib/{interfaces → types/interfaces}/ProjectPreferences.d.ts +0 -0
  252. package/lib/{interfaces → types/interfaces}/Tasks.d.ts +0 -0
  253. package/lib/{interfaces → types/interfaces}/index.d.ts +0 -0
  254. package/lib/{registries → types/registries}/CommandRegistry.d.ts +0 -0
  255. package/lib/{services → types/services}/CliConfiguration.d.ts +0 -0
  256. package/lib/{services → types/services}/CliDockerComposeYaml.d.ts +0 -0
  257. package/lib/{services → types/services}/CliExeca.d.ts +1 -0
  258. package/lib/{services → types/services}/CliFs.d.ts +1 -0
  259. package/lib/{services → types/services}/CliHooks.d.ts +0 -0
  260. package/lib/{services → types/services}/CliHttpClient.d.ts +0 -0
  261. package/lib/{services → types/services}/CliHttpLogClient.d.ts +0 -0
  262. package/lib/{services → types/services}/CliPackageJson.d.ts +0 -0
  263. package/lib/{services → types/services}/CliPlugins.d.ts +0 -0
  264. package/lib/{services → types/services}/CliProxyAgent.d.ts +0 -0
  265. package/lib/{services → types/services}/CliRunScript.d.ts +0 -0
  266. package/lib/{services → types/services}/CliService.d.ts +0 -0
  267. package/lib/{services → types/services}/CliYaml.d.ts +0 -0
  268. package/lib/{services → types/services}/NpmRegistryClient.d.ts +0 -0
  269. package/lib/{services → types/services}/ProjectPackageJson.d.ts +0 -0
  270. package/lib/{services → types/services}/Renderer.d.ts +0 -0
  271. package/lib/{services → types/services}/index.d.ts +0 -0
  272. package/lib/{utils → types/utils}/createInjector.d.ts +0 -0
  273. package/lib/{utils → types/utils}/createTasksRunner.d.ts +0 -0
  274. package/lib/{utils → types/utils}/getCommandMetadata.d.ts +0 -0
  275. package/lib/{utils → types/utils}/getPackageJson.d.ts +0 -0
  276. package/lib/{utils → types/utils}/hbs/array.d.ts +0 -0
  277. package/lib/{utils → types/utils}/hbs/collection.d.ts +0 -0
  278. package/lib/{utils → types/utils}/hbs/comparison.d.ts +0 -0
  279. package/lib/{utils → types/utils}/hbs/index.d.ts +0 -0
  280. package/lib/{utils → types/utils}/hbs/object.d.ts +0 -0
  281. package/lib/{utils → types/utils}/hbs/switch.d.ts +0 -0
  282. package/lib/{utils → types/utils}/index.d.ts +0 -0
  283. package/lib/{utils → types/utils}/isValidVersion.d.ts +0 -0
  284. package/lib/{utils → types/utils}/loadPlugins.d.ts +0 -0
  285. package/lib/{utils → types/utils}/logToCurl.d.ts +0 -0
  286. package/lib/{utils → types/utils}/mapCommanderArgs.d.ts +0 -0
  287. package/lib/{utils → types/utils}/mapCommanderOptions.d.ts +0 -0
  288. package/lib/{utils → types/utils}/normalizePath.d.ts +0 -0
  289. package/lib/{utils → types/utils}/parseOption.d.ts +0 -0
  290. package/lib/{utils → types/utils}/patchCommander.d.ts +0 -0
  291. package/lib/{utils → types/utils}/renderer/insertAfter.d.ts +0 -0
  292. package/lib/{utils → types/utils}/renderer/insertImport.d.ts +0 -0
  293. package/package.json +19 -9
  294. package/tsconfig.compile.esm.json +12 -0
  295. package/lib/index.js +0 -3992
  296. package/lib/index.js.map +0 -1
  297. package/lib/index.modern.js +0 -3832
  298. package/lib/index.modern.js.map +0 -1
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var CliCore_1;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.CliCore = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const di_1 = require("@tsed/di");
7
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
+ const commander_1 = require("commander");
9
+ const path_1 = require("path");
10
+ const update_notifier_1 = tslib_1.__importDefault(require("update-notifier"));
11
+ const CliConfiguration_1 = require("./services/CliConfiguration");
12
+ const CliPackageJson_1 = require("./services/CliPackageJson");
13
+ const CliService_1 = require("./services/CliService");
14
+ const ProjectPackageJson_1 = require("./services/ProjectPackageJson");
15
+ const createInjector_1 = require("./utils/createInjector");
16
+ const loadPlugins_1 = require("./utils/loadPlugins");
17
+ const CliError_1 = require("./domains/CliError");
18
+ const semver_1 = tslib_1.__importDefault(require("semver"));
19
+ function isHelpManual(argv) {
20
+ return argv.includes("-h") || argv.includes("--help");
21
+ }
22
+ let CliCore = CliCore_1 = class CliCore {
23
+ static checkNodeVersion(wanted, id) {
24
+ if (!semver_1.default.satisfies(process.version, wanted)) {
25
+ console.log(chalk_1.default.red("You are using Node " +
26
+ process.version +
27
+ ", but this version of " +
28
+ id +
29
+ " requires Node " +
30
+ wanted +
31
+ ".\nPlease upgrade your Node version."));
32
+ process.exit(1);
33
+ }
34
+ return this;
35
+ }
36
+ static async bootstrap(settings, module = CliCore_1) {
37
+ const injector = this.createInjector(settings);
38
+ settings.plugins && (await (0, loadPlugins_1.loadPlugins)(injector));
39
+ await this.loadInjector(injector, module);
40
+ await injector.emit("$onReady");
41
+ const cli = injector.get(CliCore_1);
42
+ try {
43
+ await cli.cliService.parseArgs(injector.settings.get("argv"));
44
+ }
45
+ catch (er) {
46
+ throw new CliError_1.CliError({ origin: er, cli });
47
+ }
48
+ return cli;
49
+ }
50
+ static async loadInjector(injector, module = CliCore_1) {
51
+ await injector.emit("$beforeInit");
52
+ const container = (0, di_1.createContainer)();
53
+ await injector.load(container, module);
54
+ await injector.emit("$afterInit");
55
+ injector.settings.set("loaded", true);
56
+ }
57
+ static updateNotifier(pkg) {
58
+ (0, update_notifier_1.default)({ pkg, updateCheckInterval: 0 }).notify();
59
+ return this;
60
+ }
61
+ static createInjector(settings) {
62
+ const argv = settings.argv || process.argv;
63
+ return (0, createInjector_1.createInjector)({
64
+ ...settings,
65
+ name: settings.name || "tsed",
66
+ argv,
67
+ project: {
68
+ rootDir: this.getProjectRoot(argv),
69
+ srcDir: "src",
70
+ scriptsDir: "scripts",
71
+ ...(settings.project || {})
72
+ }
73
+ });
74
+ }
75
+ static getProjectRoot(argv) {
76
+ if (!isHelpManual(argv)) {
77
+ const projectRoot = new commander_1.Command().option("-r, --root-dir <path>", "Project root directory").allowUnknownOption(true).parse(argv).opts().rootDir || "";
78
+ return (0, path_1.resolve)((0, path_1.join)(process.cwd(), projectRoot));
79
+ }
80
+ return process.cwd();
81
+ }
82
+ };
83
+ tslib_1.__decorate([
84
+ (0, di_1.Inject)(),
85
+ tslib_1.__metadata("design:type", di_1.InjectorService)
86
+ ], CliCore.prototype, "injector", void 0);
87
+ tslib_1.__decorate([
88
+ (0, di_1.Inject)(),
89
+ tslib_1.__metadata("design:type", CliService_1.CliService)
90
+ ], CliCore.prototype, "cliService", void 0);
91
+ CliCore = CliCore_1 = tslib_1.__decorate([
92
+ (0, di_1.Module)({
93
+ imports: [CliPackageJson_1.CliPackageJson, ProjectPackageJson_1.ProjectPackageJson, CliService_1.CliService, CliConfiguration_1.CliConfiguration]
94
+ })
95
+ ], CliCore);
96
+ exports.CliCore = CliCore;
97
+ //# sourceMappingURL=CliCore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliCore.js","sourceRoot":"","sources":["../../src/CliCore.ts"],"names":[],"mappings":"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","sourcesContent":["import {createContainer, Inject, InjectorService, Module} from \"@tsed/di\";\nimport {Type} from \"@tsed/core\";\nimport chalk from \"chalk\";\nimport {Command} from \"commander\";\nimport {join, resolve} from \"path\";\nimport updateNotifier from \"update-notifier\";\nimport {CliConfiguration} from \"./services/CliConfiguration\";\nimport {CliPackageJson} from \"./services/CliPackageJson\";\nimport {CliService} from \"./services/CliService\";\nimport {ProjectPackageJson} from \"./services/ProjectPackageJson\";\nimport {createInjector} from \"./utils/createInjector\";\nimport {loadPlugins} from \"./utils/loadPlugins\";\nimport {CliError} from \"./domains/CliError\";\nimport semver from \"semver\";\n\nfunction isHelpManual(argv: string[]) {\n return argv.includes(\"-h\") || argv.includes(\"--help\");\n}\n\n@Module({\n imports: [CliPackageJson, ProjectPackageJson, CliService, CliConfiguration]\n})\nexport class CliCore {\n @Inject()\n injector: InjectorService;\n\n @Inject()\n cliService: CliService;\n\n static checkNodeVersion(wanted: string, id: string) {\n if (!semver.satisfies(process.version, wanted)) {\n console.log(\n chalk.red(\n \"You are using Node \" +\n process.version +\n \", but this version of \" +\n id +\n \" requires Node \" +\n wanted +\n \".\\nPlease upgrade your Node version.\"\n )\n );\n process.exit(1);\n }\n\n return this;\n }\n\n static async bootstrap(settings: Partial<TsED.Configuration>, module: Type = CliCore): Promise<CliCore> {\n const injector = this.createInjector(settings);\n\n settings.plugins && (await loadPlugins(injector));\n\n await this.loadInjector(injector, module);\n\n await injector.emit(\"$onReady\");\n\n const cli = injector.get<CliCore>(CliCore)!;\n\n try {\n await cli.cliService.parseArgs(injector.settings.get(\"argv\")!);\n } catch (er) {\n throw new CliError({origin: er, cli});\n }\n\n return cli;\n }\n\n static async loadInjector(injector: InjectorService, module: Type = CliCore) {\n await injector.emit(\"$beforeInit\");\n\n const container = createContainer();\n\n await injector.load(container, module);\n\n await injector.emit(\"$afterInit\");\n\n injector.settings.set(\"loaded\", true);\n }\n\n static updateNotifier(pkg: any) {\n updateNotifier({pkg, updateCheckInterval: 0}).notify();\n return this;\n }\n\n protected static createInjector(settings: Partial<TsED.Configuration>) {\n const argv = settings.argv || process.argv;\n\n return createInjector({\n ...settings,\n name: settings.name || \"tsed\",\n argv,\n project: {\n rootDir: this.getProjectRoot(argv),\n srcDir: \"src\",\n scriptsDir: \"scripts\",\n ...(settings.project || {})\n }\n });\n }\n\n protected static getProjectRoot(argv: string[]) {\n if (!isHelpManual(argv)) {\n const projectRoot =\n new Command().option(\"-r, --root-dir <path>\", \"Project root directory\").allowUnknownOption(true).parse(argv).opts().rootDir || \"\";\n\n return resolve(join(process.cwd(), projectRoot));\n }\n\n return process.cwd();\n }\n}\n"]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Command = void 0;
4
+ const core_1 = require("@tsed/core");
5
+ const CommandStoreKeys_1 = require("../domains/CommandStoreKeys");
6
+ const CommandRegistry_1 = require("../registries/CommandRegistry");
7
+ function Command(options) {
8
+ return (0, core_1.useDecorators)(CommandRegistry_1.registerCommand, (0, core_1.StoreSet)(CommandStoreKeys_1.CommandStoreKeys.COMMAND, options));
9
+ }
10
+ exports.Command = Command;
11
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/decorators/command.ts"],"names":[],"mappings":";;;AAAA,qCAAmD;AACnD,kEAA6D;AAE7D,mEAA8D;AAE9D,SAAgB,OAAO,CAAC,OAA0B;IAChD,OAAO,IAAA,oBAAa,EAAC,iCAAe,EAAE,IAAA,eAAQ,EAAC,mCAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAQ,CAAC;AAC5F,CAAC;AAFD,0BAEC","sourcesContent":["import {useDecorators, StoreSet} from \"@tsed/core\";\nimport {CommandStoreKeys} from \"../domains/CommandStoreKeys\";\nimport {CommandParameters} from \"../interfaces/CommandParameters\";\nimport {registerCommand} from \"../registries/CommandRegistry\";\n\nexport function Command(options: CommandParameters): ClassDecorator {\n return useDecorators(registerCommand, StoreSet(CommandStoreKeys.COMMAND, options)) as any;\n}\n"]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./command"), exports);
5
+ tslib_1.__exportStar(require("./onAdd"), exports);
6
+ tslib_1.__exportStar(require("./onExec"), exports);
7
+ tslib_1.__exportStar(require("./onPostInstall"), exports);
8
+ tslib_1.__exportStar(require("./onPrompt"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,kDAAwB;AACxB,mDAAyB;AACzB,0DAAgC;AAChC,qDAA2B","sourcesContent":["export * from \"./command\";\nexport * from \"./onAdd\";\nexport * from \"./onExec\";\nexport * from \"./onPostInstall\";\nexport * from \"./onPrompt\";\n"]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.On = void 0;
4
+ const core_1 = require("@tsed/core");
5
+ function On(hookName, name) {
6
+ return (target, propertyKey) => {
7
+ (0, core_1.StoreMerge)(hookName, {
8
+ [name]: [propertyKey]
9
+ })(target);
10
+ };
11
+ }
12
+ exports.On = On;
13
+ //# sourceMappingURL=on.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"on.js","sourceRoot":"","sources":["../../../src/decorators/on.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AAEtC,SAAgB,EAAE,CAAC,QAAgB,EAAE,IAAY;IAC/C,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC7B,IAAA,iBAAU,EAAC,QAAQ,EAAE;YACnB,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;SACtB,CAAC,CAAC,MAAM,CAAC,CAAC;IACb,CAAC,CAAC;AACJ,CAAC;AAND,gBAMC","sourcesContent":["import {StoreMerge} from \"@tsed/core\";\n\nexport function On(hookName: string, name: string): MethodDecorator {\n return (target, propertyKey) => {\n StoreMerge(hookName, {\n [name]: [propertyKey]\n })(target);\n };\n}\n"]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OnAdd = void 0;
4
+ const CommandStoreKeys_1 = require("../domains/CommandStoreKeys");
5
+ const on_1 = require("./on");
6
+ function OnAdd(cliPlugin) {
7
+ return (0, on_1.On)(CommandStoreKeys_1.CommandStoreKeys.ADD, cliPlugin);
8
+ }
9
+ exports.OnAdd = OnAdd;
10
+ //# sourceMappingURL=onAdd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onAdd.js","sourceRoot":"","sources":["../../../src/decorators/onAdd.ts"],"names":[],"mappings":";;;AAAA,kEAA6D;AAC7D,6BAAwB;AAExB,SAAgB,KAAK,CAAC,SAAiB;IACrC,OAAO,IAAA,OAAE,EAAC,mCAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC;AAFD,sBAEC","sourcesContent":["import {CommandStoreKeys} from \"../domains/CommandStoreKeys\";\nimport {On} from \"./on\";\n\nexport function OnAdd(cliPlugin: string): MethodDecorator {\n return On(CommandStoreKeys.ADD, cliPlugin);\n}\n"]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OnExec = void 0;
4
+ const CommandStoreKeys_1 = require("../domains/CommandStoreKeys");
5
+ const on_1 = require("./on");
6
+ function OnExec(cmdName) {
7
+ return (0, on_1.On)(CommandStoreKeys_1.CommandStoreKeys.EXEC_HOOKS, cmdName);
8
+ }
9
+ exports.OnExec = OnExec;
10
+ //# sourceMappingURL=onExec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onExec.js","sourceRoot":"","sources":["../../../src/decorators/onExec.ts"],"names":[],"mappings":";;;AAAA,kEAA6D;AAC7D,6BAAwB;AAExB,SAAgB,MAAM,CAAC,OAAe;IACpC,OAAO,IAAA,OAAE,EAAC,mCAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAFD,wBAEC","sourcesContent":["import {CommandStoreKeys} from \"../domains/CommandStoreKeys\";\nimport {On} from \"./on\";\n\nexport function OnExec(cmdName: string): MethodDecorator {\n return On(CommandStoreKeys.EXEC_HOOKS, cmdName);\n}\n"]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OnPostInstall = void 0;
4
+ const CommandStoreKeys_1 = require("../domains/CommandStoreKeys");
5
+ const on_1 = require("./on");
6
+ function OnPostInstall(cmdName) {
7
+ return (0, on_1.On)(CommandStoreKeys_1.CommandStoreKeys.POST_INSTALL_HOOKS, cmdName);
8
+ }
9
+ exports.OnPostInstall = OnPostInstall;
10
+ //# sourceMappingURL=onPostInstall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onPostInstall.js","sourceRoot":"","sources":["../../../src/decorators/onPostInstall.ts"],"names":[],"mappings":";;;AAAA,kEAA6D;AAC7D,6BAAwB;AAExB,SAAgB,aAAa,CAAC,OAAe;IAC3C,OAAO,IAAA,OAAE,EAAC,mCAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAFD,sCAEC","sourcesContent":["import {CommandStoreKeys} from \"../domains/CommandStoreKeys\";\nimport {On} from \"./on\";\n\nexport function OnPostInstall(cmdName: string): MethodDecorator {\n return On(CommandStoreKeys.POST_INSTALL_HOOKS, cmdName);\n}\n"]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OnPrompt = void 0;
4
+ const CommandStoreKeys_1 = require("../domains/CommandStoreKeys");
5
+ const on_1 = require("./on");
6
+ function OnPrompt(cmdName) {
7
+ return (0, on_1.On)(CommandStoreKeys_1.CommandStoreKeys.PROMPT_HOOKS, cmdName);
8
+ }
9
+ exports.OnPrompt = OnPrompt;
10
+ //# sourceMappingURL=onPrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onPrompt.js","sourceRoot":"","sources":["../../../src/decorators/onPrompt.ts"],"names":[],"mappings":";;;AAAA,kEAA6D;AAC7D,6BAAwB;AAExB,SAAgB,QAAQ,CAAC,OAAe;IACtC,OAAO,IAAA,OAAE,EAAC,mCAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAFD,4BAEC","sourcesContent":["import {CommandStoreKeys} from \"../domains/CommandStoreKeys\";\nimport {On} from \"./on\";\n\nexport function OnPrompt(cmdName: string): MethodDecorator {\n return On(CommandStoreKeys.PROMPT_HOOKS, cmdName);\n}\n"]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CliError = void 0;
4
+ class CliError extends Error {
5
+ constructor({ cli, origin }) {
6
+ super(origin.message);
7
+ this.name = "CLI_ERROR";
8
+ this.cli = cli;
9
+ this.origin = origin;
10
+ this.stack = origin.stack;
11
+ }
12
+ }
13
+ exports.CliError = CliError;
14
+ //# sourceMappingURL=CliError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliError.js","sourceRoot":"","sources":["../../../src/domains/CliError.ts"],"names":[],"mappings":";;;AAEA,MAAa,QAAS,SAAQ,KAAK;IAMjC,YAAY,EAAC,GAAG,EAAE,MAAM,EAAgC;QACtD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QANxB,SAAI,GAAG,WAAW,CAAC;QAOjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC5B,CAAC;CACF;AAZD,4BAYC","sourcesContent":["import type {CliCore} from \"../CliCore\";\n\nexport class CliError extends Error {\n name = \"CLI_ERROR\";\n\n readonly cli: CliCore;\n readonly origin: Error;\n\n constructor({cli, origin}: {cli: CliCore; origin: Error}) {\n super(origin.message);\n this.cli = cli;\n this.origin = origin;\n this.stack = origin.stack;\n }\n}\n"]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommandStoreKeys = void 0;
4
+ var CommandStoreKeys;
5
+ (function (CommandStoreKeys) {
6
+ CommandStoreKeys["COMMAND"] = "command";
7
+ CommandStoreKeys["ADD"] = "$onAdd";
8
+ CommandStoreKeys["EXEC_HOOKS"] = "$onExec";
9
+ CommandStoreKeys["POST_INSTALL_HOOKS"] = "$onPostInstall";
10
+ CommandStoreKeys["PROMPT_HOOKS"] = "$onPrompt";
11
+ })(CommandStoreKeys = exports.CommandStoreKeys || (exports.CommandStoreKeys = {}));
12
+ //# sourceMappingURL=CommandStoreKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandStoreKeys.js","sourceRoot":"","sources":["../../../src/domains/CommandStoreKeys.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,uCAAmB,CAAA;IACnB,kCAAc,CAAA;IACd,0CAAsB,CAAA;IACtB,yDAAqC,CAAA;IACrC,8CAA0B,CAAA;AAC5B,CAAC,EANW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAM3B","sourcesContent":["export enum CommandStoreKeys {\n COMMAND = \"command\",\n ADD = \"$onAdd\",\n EXEC_HOOKS = \"$onExec\",\n POST_INSTALL_HOOKS = \"$onPostInstall\",\n PROMPT_HOOKS = \"$onPrompt\"\n}\n"]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Inquirer = exports.DITest = exports.Container = exports.InjectorService = exports.OverrideProvider = exports.UseOpts = exports.Opts = exports.Module = exports.LocalsContainer = exports.Configuration = exports.Value = exports.Constant = exports.Injectable = exports.registerProvider = exports.Inject = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
6
+ exports.Inquirer = inquirer_1.default;
7
+ tslib_1.__exportStar(require("@tsed/core"), exports);
8
+ tslib_1.__exportStar(require("@tsed/logger"), exports);
9
+ var di_1 = require("@tsed/di");
10
+ Object.defineProperty(exports, "Inject", { enumerable: true, get: function () { return di_1.Inject; } });
11
+ Object.defineProperty(exports, "registerProvider", { enumerable: true, get: function () { return di_1.registerProvider; } });
12
+ Object.defineProperty(exports, "Injectable", { enumerable: true, get: function () { return di_1.Injectable; } });
13
+ Object.defineProperty(exports, "Constant", { enumerable: true, get: function () { return di_1.Constant; } });
14
+ Object.defineProperty(exports, "Value", { enumerable: true, get: function () { return di_1.Value; } });
15
+ Object.defineProperty(exports, "Configuration", { enumerable: true, get: function () { return di_1.Configuration; } });
16
+ Object.defineProperty(exports, "LocalsContainer", { enumerable: true, get: function () { return di_1.LocalsContainer; } });
17
+ Object.defineProperty(exports, "Module", { enumerable: true, get: function () { return di_1.Module; } });
18
+ Object.defineProperty(exports, "Opts", { enumerable: true, get: function () { return di_1.Opts; } });
19
+ Object.defineProperty(exports, "UseOpts", { enumerable: true, get: function () { return di_1.UseOpts; } });
20
+ Object.defineProperty(exports, "OverrideProvider", { enumerable: true, get: function () { return di_1.OverrideProvider; } });
21
+ Object.defineProperty(exports, "InjectorService", { enumerable: true, get: function () { return di_1.InjectorService; } });
22
+ Object.defineProperty(exports, "Container", { enumerable: true, get: function () { return di_1.Container; } });
23
+ Object.defineProperty(exports, "DITest", { enumerable: true, get: function () { return di_1.DITest; } });
24
+ tslib_1.__exportStar(require("./interfaces"), exports);
25
+ tslib_1.__exportStar(require("./decorators"), exports);
26
+ tslib_1.__exportStar(require("./services"), exports);
27
+ tslib_1.__exportStar(require("./utils"), exports);
28
+ tslib_1.__exportStar(require("./CliCore"), exports);
29
+ require("./utils/patchCommander");
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,gEAAgC;AA4BxB,mBA5BD,kBAAQ,CA4BC;AA3BhB,qDAA2B;AAC3B,uDAA6B;AAC7B,+BAmBkB;AAlBhB,4FAAA,MAAM,OAAA;AACN,sGAAA,gBAAgB,OAAA;AAChB,gGAAA,UAAU,OAAA;AACV,8FAAA,QAAQ,OAAA;AACR,2FAAA,KAAK,OAAA;AACL,mGAAA,aAAa,OAAA;AACb,qGAAA,eAAe,OAAA;AAGf,4FAAA,MAAM,OAAA;AACN,0FAAA,IAAI,OAAA;AACJ,6FAAA,OAAO,OAAA;AACP,sGAAA,gBAAgB,OAAA;AAChB,qGAAA,eAAe,OAAA;AAGf,+FAAA,SAAS,OAAA;AACT,4FAAA,MAAM,OAAA;AAER,uDAA6B;AAC7B,uDAA6B;AAC7B,qDAA2B;AAC3B,kDAAwB;AACxB,oDAA0B;AAG1B,kCAAgC","sourcesContent":["import Inquirer from \"inquirer\";\nexport * from \"@tsed/core\";\nexport * from \"@tsed/logger\";\nexport {\n Inject,\n registerProvider,\n Injectable,\n Constant,\n Value,\n Configuration,\n LocalsContainer,\n TokenProvider,\n InvokeOptions,\n Module,\n Opts,\n UseOpts,\n OverrideProvider,\n InjectorService,\n OnDestroy,\n OnInit,\n Container,\n DITest\n} from \"@tsed/di\";\nexport * from \"./interfaces\";\nexport * from \"./decorators\";\nexport * from \"./services\";\nexport * from \"./utils\";\nexport * from \"./CliCore\";\nexport {Inquirer};\n\nimport \"./utils/patchCommander\";\n"]}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=CliDefaultOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliDefaultOptions.js","sourceRoot":"","sources":["../../../src/interfaces/CliDefaultOptions.ts"],"names":[],"mappings":"","sourcesContent":["export interface CliDefaultOptions {\n verbose: boolean;\n rawArgs: string[];\n}\n"]}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=CommandMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandMetadata.js","sourceRoot":"","sources":["../../../src/interfaces/CommandMetadata.ts"],"names":[],"mappings":"","sourcesContent":["import {CommandArg, CommandOptions} from \"./CommandParameters\";\n\nexport interface CommandMetadata {\n /**\n * name commands\n */\n name: string;\n\n alias?: string;\n /**\n * CommandProvider description\n */\n description: string;\n /**\n * CommandProvider arguments\n */\n args: {\n [key: string]: CommandArg;\n };\n /**\n * CommandProvider options\n */\n options: {\n [key: string]: CommandOptions;\n };\n\n allowUnknownOption?: boolean;\n}\n"]}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=CommandParameters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandParameters.js","sourceRoot":"","sources":["../../../src/interfaces/CommandParameters.ts"],"names":[],"mappings":"","sourcesContent":["import {Type} from \"@tsed/core\";\n\nexport interface CommandArg {\n /**\n * Description of the argument\n */\n description: string;\n /**\n * Use type to parse the option (String, Number, Boolean, Array)\n */\n type?: Type<any>;\n /**\n * Use item type to parse items\n */\n itemType?: Type<any>;\n /**\n * Default value\n */\n defaultValue?: string | number | boolean | any;\n /**\n * Define a require option\n */\n required?: boolean;\n}\n\nexport interface CommandOptions {\n /**\n * Description of the commander.option()\n */\n description: string;\n /**\n * Use type to parse the option (String, Number, Boolean, Array)\n */\n type?: Type<any>;\n /**\n * Use item type to parse items\n */\n itemType?: Type<any>;\n /**\n * Default value\n */\n defaultValue?: string | number | boolean | any;\n /**\n * Define a require option\n */\n required?: boolean;\n /**\n * Use a custom Parser\n * @param value\n */\n customParser?: (value: any) => any;\n}\n\nexport interface CommandParameters {\n /**\n * name commands\n */\n name: string;\n /**\n * CommandProvider description\n */\n description: string;\n /**\n * CommandProvider arguments\n */\n args?: {\n [key: string]: CommandArg;\n };\n /**\n * CommandProvider options\n */\n options?: {\n [key: string]: CommandOptions;\n };\n\n allowUnknownOption?: boolean;\n\n [key: string]: any;\n}\n"]}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=CommandProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandProvider.js","sourceRoot":"","sources":["../../../src/interfaces/CommandProvider.ts"],"names":[],"mappings":"","sourcesContent":["import Inquirer from \"inquirer\";\nimport {Tasks} from \"./Tasks\";\n\nexport type QuestionOptions<T = any> = Inquirer.QuestionCollection<T>;\n\nexport interface CommandProvider<Ctx = any> {\n /**\n * Run a function before the main prompt. Useful for pre-loading data from the file system\n * @param initialOptions\n */\n $beforePrompt?(initialOptions: Partial<Ctx>): Partial<Ctx>;\n\n /**\n * Hook to create the main prompt for the command\n * See https://github.com/enquirer/enquirer for more detail on question configuration.\n * @param initialOptions\n */\n $prompt?<T = any>(initialOptions: Partial<Ctx>): QuestionOptions<T> | Promise<QuestionOptions<T>>;\n\n /**\n * Hook to map options\n * @param ctx\n */\n $mapContext?(ctx: Partial<Ctx>): Ctx;\n\n /**\n * Run something before the exec hook\n * @param ctx\n */\n $beforeExec?(ctx: Ctx): Promise<any>;\n\n /**\n * Run a command\n * @param ctx\n */\n $exec(ctx: Ctx): Tasks | Promise<Tasks> | any | Promise<any>;\n\n /**\n * Run commands after the npm/yarn install\n * @param ctx\n */\n $postInstall?(ctx: Ctx): Tasks | Promise<Tasks> | any | Promise<any>;\n}\n"]}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=PackageJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackageJson.js","sourceRoot":"","sources":["../../../src/interfaces/PackageJson.ts"],"names":[],"mappings":"","sourcesContent":["export interface PackageJson {\n name: string;\n version: string;\n description: string;\n scripts: {[key: string]: string};\n dependencies: {[key: string]: string};\n devDependencies: {[key: string]: string};\n\n [key: string]: any;\n}\n\nexport interface PackageInfo {\n _id: string;\n _rev: string;\n name: string;\n \"dist-tags\": {\n [key: string]: string;\n };\n versions: {\n [key: string]: PackageJson;\n };\n time: {\n [key: string]: string;\n };\n maintainers: {email: string; name: string}[];\n description: string;\n homepage: string;\n keywords: string[];\n repository: {\n type: string;\n url: string;\n };\n author: {\n name: string;\n };\n bugs: {\n url: string;\n };\n license: string;\n readme: string;\n}\n"]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PackageManager = void 0;
4
+ var PackageManager;
5
+ (function (PackageManager) {
6
+ PackageManager["YARN"] = "yarn";
7
+ PackageManager["NPM"] = "npm";
8
+ PackageManager["PNPM"] = "pnpm";
9
+ })(PackageManager = exports.PackageManager || (exports.PackageManager = {}));
10
+ //# sourceMappingURL=ProjectPreferences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectPreferences.js","sourceRoot":"","sources":["../../../src/interfaces/ProjectPreferences.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,6BAAW,CAAA;IACX,+BAAa,CAAA;AACf,CAAC,EAJW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAIzB","sourcesContent":["export enum PackageManager {\n YARN = \"yarn\",\n NPM = \"npm\",\n PNPM = \"pnpm\"\n}\n\ndeclare global {\n namespace TsED {\n interface ProjectPreferences {\n packageManager: PackageManager;\n }\n }\n}\n\nexport interface ProjectPreferences extends TsED.ProjectPreferences, Record<string, any> {}\n"]}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Tasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tasks.js","sourceRoot":"","sources":["../../../src/interfaces/Tasks.ts"],"names":[],"mappings":"","sourcesContent":["import {ListrContext, ListrOptions, ListrTask} from \"listr2\";\n\nexport interface TaskOptions<Ctx = ListrContext> extends ListrOptions<Ctx> {\n concurrent?: boolean | number;\n verbose?: boolean;\n}\n\nexport type Task = ListrTask<any, any>;\nexport type Tasks = Task[];\n"]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./CommandProvider"), exports);
5
+ tslib_1.__exportStar(require("./CommandParameters"), exports);
6
+ tslib_1.__exportStar(require("./CommandMetadata"), exports);
7
+ tslib_1.__exportStar(require("./CliDefaultOptions"), exports);
8
+ tslib_1.__exportStar(require("./ProjectPreferences"), exports);
9
+ tslib_1.__exportStar(require("./PackageJson"), exports);
10
+ tslib_1.__exportStar(require("./Tasks"), exports);
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":";;;AAIA,4DAAkC;AAClC,8DAAoC;AACpC,4DAAkC;AAClC,8DAAoC;AACpC,+DAAqC;AACrC,wDAA8B;AAC9B,kDAAwB","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {CommandProvider} from \"./CommandProvider\";\nimport {PackageJson} from \"./PackageJson\";\n\nexport * from \"./CommandProvider\";\nexport * from \"./CommandParameters\";\nexport * from \"./CommandMetadata\";\nexport * from \"./CliDefaultOptions\";\nexport * from \"./ProjectPreferences\";\nexport * from \"./PackageJson\";\nexport * from \"./Tasks\";\n\ndeclare global {\n namespace TsED {\n interface Configuration {\n /**\n * Load given commands\n */\n commands: Type<CommandProvider>[];\n /**\n * Init Cli with defined argv\n */\n argv?: string[];\n /**\n * The CLI name\n */\n name: string;\n /**\n * The CLI package.json\n */\n pkg?: PackageJson;\n /**\n *\n */\n templateDir?: string;\n /**\n *\n * @param pkg\n */\n defaultProjectPreferences?: (pkg?: any) => Record<string, any>;\n /**\n * Project initial settings.\n */\n project: {\n rootDir?: string;\n srcDir?: string;\n scriptsDir?: string;\n reinstallAfterRun?: boolean;\n };\n /**\n * Enable plugins loading\n */\n plugins: boolean;\n }\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerCommand = exports.CommandRegistry = exports.PROVIDER_TYPE_COMMAND = void 0;
4
+ const di_1 = require("@tsed/di");
5
+ exports.PROVIDER_TYPE_COMMAND = "command";
6
+ /**
7
+ *
8
+ * @type {Registry<Provider<any>, IProvider<any>>}
9
+ */
10
+ // tslint:disable-next-line: variable-name
11
+ exports.CommandRegistry = di_1.GlobalProviders.createRegistry(exports.PROVIDER_TYPE_COMMAND, di_1.Provider);
12
+ exports.registerCommand = di_1.GlobalProviders.createRegisterFn(exports.PROVIDER_TYPE_COMMAND);
13
+ //# sourceMappingURL=CommandRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandRegistry.js","sourceRoot":"","sources":["../../../src/registries/CommandRegistry.ts"],"names":[],"mappings":";;;AAAA,iCAAmD;AAEtC,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAC/C;;;GAGG;AACH,0CAA0C;AAC7B,QAAA,eAAe,GAAG,oBAAe,CAAC,cAAc,CAAC,6BAAqB,EAAE,aAAQ,CAAC,CAAC;AAElF,QAAA,eAAe,GAAG,oBAAe,CAAC,gBAAgB,CAAC,6BAAqB,CAAC,CAAC","sourcesContent":["import {GlobalProviders, Provider} from \"@tsed/di\";\n\nexport const PROVIDER_TYPE_COMMAND = \"command\";\n/**\n *\n * @type {Registry<Provider<any>, IProvider<any>>}\n */\n// tslint:disable-next-line: variable-name\nexport const CommandRegistry = GlobalProviders.createRegistry(PROVIDER_TYPE_COMMAND, Provider);\n\nexport const registerCommand = GlobalProviders.createRegisterFn(PROVIDER_TYPE_COMMAND);\n"]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CliConfiguration = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const di_1 = require("@tsed/di");
6
+ let CliConfiguration = class CliConfiguration extends di_1.DIConfiguration {
7
+ constructor() {
8
+ super({
9
+ project: {
10
+ root: process.cwd(),
11
+ srcDir: "src"
12
+ }
13
+ });
14
+ }
15
+ };
16
+ CliConfiguration = tslib_1.__decorate([
17
+ (0, di_1.Injectable)(),
18
+ tslib_1.__metadata("design:paramtypes", [])
19
+ ], CliConfiguration);
20
+ exports.CliConfiguration = CliConfiguration;
21
+ //# sourceMappingURL=CliConfiguration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliConfiguration.js","sourceRoot":"","sources":["../../../src/services/CliConfiguration.ts"],"names":[],"mappings":";;;;AAAA,iCAAqD;AAGrD,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,oBAAe;IACnD;QACE,KAAK,CAAC;YACJ,OAAO,EAAE;gBACP,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;gBACnB,MAAM,EAAE,KAAK;aACd;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AATY,gBAAgB;IAD5B,IAAA,eAAU,GAAE;;GACA,gBAAgB,CAS5B;AATY,4CAAgB","sourcesContent":["import {DIConfiguration, Injectable} from \"@tsed/di\";\n\n@Injectable()\nexport class CliConfiguration extends DIConfiguration {\n constructor() {\n super({\n project: {\n root: process.cwd(),\n srcDir: \"src\"\n }\n });\n }\n}\n"]}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CliDockerComposeYaml = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const di_1 = require("@tsed/di");
6
+ const change_case_1 = require("change-case");
7
+ const CliYaml_1 = require("./CliYaml");
8
+ const core_1 = require("@tsed/core");
9
+ let CliDockerComposeYaml = class CliDockerComposeYaml {
10
+ async read() {
11
+ return this.cliYaml.read("docker-compose.yml");
12
+ }
13
+ async write(obj) {
14
+ return this.cliYaml.write("docker-compose.yml", obj);
15
+ }
16
+ async addDatabaseService(name, database) {
17
+ const dockerCompose = await this.read();
18
+ if (dockerCompose) {
19
+ let value;
20
+ switch (database) {
21
+ case "mysql":
22
+ case "mariadb":
23
+ value = {
24
+ image: database === "mysql" ? "mysql:8.0.28-oracle" : "mariadb:10.7.3",
25
+ ports: ["3306:3306"],
26
+ environment: {
27
+ MYSQL_ROOT_PASSWORD: "admin",
28
+ MYSQL_USER: "test",
29
+ MYSQL_PASSWORD: "test",
30
+ MYSQL_DATABASE: "test"
31
+ }
32
+ };
33
+ break;
34
+ case "postgres":
35
+ value = {
36
+ image: "postgres:9.6.1",
37
+ ports: ["5432:5432"],
38
+ environment: {
39
+ POSTGRES_USER: "test",
40
+ POSTGRES_PASSWORD: "test",
41
+ POSTGRES_DB: "test"
42
+ }
43
+ };
44
+ break;
45
+ case "cockroachdb":
46
+ value = {
47
+ image: "cockroachdb/cockroach:v2.1.4",
48
+ command: "start --insecure",
49
+ ports: ["26257:26257"]
50
+ };
51
+ break;
52
+ case "mssql":
53
+ value = {
54
+ image: "mcr.microsoft.com/mssql/server:2017-latest",
55
+ command: "start --insecure",
56
+ ports: ["1433:1433"],
57
+ environment: {
58
+ SA_PASSWORD: "Admin12345",
59
+ ACCEPT_EULA: "Y"
60
+ }
61
+ };
62
+ break;
63
+ case "mongodb":
64
+ value = {
65
+ image: "mongo:4.1",
66
+ ports: ["27017:27017"]
67
+ };
68
+ break;
69
+ }
70
+ (0, core_1.setValue)(dockerCompose, `services.${(0, change_case_1.snakeCase)(name)}`, value);
71
+ await this.write(dockerCompose);
72
+ }
73
+ }
74
+ };
75
+ tslib_1.__decorate([
76
+ (0, di_1.Inject)(),
77
+ tslib_1.__metadata("design:type", CliYaml_1.CliYaml)
78
+ ], CliDockerComposeYaml.prototype, "cliYaml", void 0);
79
+ CliDockerComposeYaml = tslib_1.__decorate([
80
+ (0, di_1.Injectable)()
81
+ ], CliDockerComposeYaml);
82
+ exports.CliDockerComposeYaml = CliDockerComposeYaml;
83
+ //# sourceMappingURL=CliDockerComposeYaml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliDockerComposeYaml.js","sourceRoot":"","sources":["../../../src/services/CliDockerComposeYaml.ts"],"names":[],"mappings":";;;;AAAA,iCAA4C;AAC5C,6CAAsC;AACtC,uCAAkC;AAClC,qCAAoC;AAGpC,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;IAI/B,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAQ;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAY,EAAE,QAAgB;QACrD,MAAM,aAAa,GAAQ,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,aAAa,EAAE;YACjB,IAAI,KAAU,CAAC;YACf,QAAQ,QAAQ,EAAE;gBAChB,KAAK,OAAO,CAAC;gBACb,KAAK,SAAS;oBACZ,KAAK,GAAG;wBACN,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,gBAAgB;wBACtE,KAAK,EAAE,CAAC,WAAW,CAAC;wBACpB,WAAW,EAAE;4BACX,mBAAmB,EAAE,OAAO;4BAC5B,UAAU,EAAE,MAAM;4BAClB,cAAc,EAAE,MAAM;4BACtB,cAAc,EAAE,MAAM;yBACvB;qBACF,CAAC;oBACF,MAAM;gBACR,KAAK,UAAU;oBACb,KAAK,GAAG;wBACN,KAAK,EAAE,gBAAgB;wBACvB,KAAK,EAAE,CAAC,WAAW,CAAC;wBACpB,WAAW,EAAE;4BACX,aAAa,EAAE,MAAM;4BACrB,iBAAiB,EAAE,MAAM;4BACzB,WAAW,EAAE,MAAM;yBACpB;qBACF,CAAC;oBACF,MAAM;gBACR,KAAK,aAAa;oBAChB,KAAK,GAAG;wBACN,KAAK,EAAE,8BAA8B;wBACrC,OAAO,EAAE,kBAAkB;wBAC3B,KAAK,EAAE,CAAC,aAAa,CAAC;qBACvB,CAAC;oBACF,MAAM;gBACR,KAAK,OAAO;oBACV,KAAK,GAAG;wBACN,KAAK,EAAE,4CAA4C;wBACnD,OAAO,EAAE,kBAAkB;wBAC3B,KAAK,EAAE,CAAC,WAAW,CAAC;wBACpB,WAAW,EAAE;4BACX,WAAW,EAAE,YAAY;4BACzB,WAAW,EAAE,GAAG;yBACjB;qBACF,CAAC;oBACF,MAAM;gBACR,KAAK,SAAS;oBACZ,KAAK,GAAG;wBACN,KAAK,EAAE,WAAW;wBAClB,KAAK,EAAE,CAAC,aAAa,CAAC;qBACvB,CAAC;oBACF,MAAM;aACT;YAED,IAAA,eAAQ,EAAC,aAAa,EAAE,YAAY,IAAA,uBAAS,EAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SACjC;IACH,CAAC;CACF,CAAA;AArEC;IADC,IAAA,WAAM,GAAE;sCACU,iBAAO;qDAAC;AAFhB,oBAAoB;IADhC,IAAA,eAAU,GAAE;GACA,oBAAoB,CAuEhC;AAvEY,oDAAoB","sourcesContent":["import {Inject, Injectable} from \"@tsed/di\";\nimport {snakeCase} from \"change-case\";\nimport {CliYaml} from \"./CliYaml\";\nimport {setValue} from \"@tsed/core\";\n\n@Injectable()\nexport class CliDockerComposeYaml {\n @Inject()\n protected cliYaml: CliYaml;\n\n async read() {\n return this.cliYaml.read(\"docker-compose.yml\");\n }\n\n async write(obj: any) {\n return this.cliYaml.write(\"docker-compose.yml\", obj);\n }\n\n async addDatabaseService(name: string, database: string) {\n const dockerCompose: any = await this.read();\n if (dockerCompose) {\n let value: any;\n switch (database) {\n case \"mysql\":\n case \"mariadb\":\n value = {\n image: database === \"mysql\" ? \"mysql:8.0.28-oracle\" : \"mariadb:10.7.3\",\n ports: [\"3306:3306\"],\n environment: {\n MYSQL_ROOT_PASSWORD: \"admin\",\n MYSQL_USER: \"test\",\n MYSQL_PASSWORD: \"test\",\n MYSQL_DATABASE: \"test\"\n }\n };\n break;\n case \"postgres\":\n value = {\n image: \"postgres:9.6.1\",\n ports: [\"5432:5432\"],\n environment: {\n POSTGRES_USER: \"test\",\n POSTGRES_PASSWORD: \"test\",\n POSTGRES_DB: \"test\"\n }\n };\n break;\n case \"cockroachdb\":\n value = {\n image: \"cockroachdb/cockroach:v2.1.4\",\n command: \"start --insecure\",\n ports: [\"26257:26257\"]\n };\n break;\n case \"mssql\":\n value = {\n image: \"mcr.microsoft.com/mssql/server:2017-latest\",\n command: \"start --insecure\",\n ports: [\"1433:1433\"],\n environment: {\n SA_PASSWORD: \"Admin12345\",\n ACCEPT_EULA: \"Y\"\n }\n };\n break;\n case \"mongodb\":\n value = {\n image: \"mongo:4.1\",\n ports: [\"27017:27017\"]\n };\n break;\n }\n\n setValue(dockerCompose, `services.${snakeCase(name)}`, value);\n await this.write(dockerCompose);\n }\n }\n}\n"]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CliExeca = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const di_1 = require("@tsed/di");
6
+ const execa_1 = tslib_1.__importDefault(require("execa"));
7
+ const operators_1 = require("rxjs/operators");
8
+ require("any-observable/register/rxjs-all");
9
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
10
+ // @ts-ignore
11
+ const stream_to_observable_1 = tslib_1.__importDefault(require("@samverschueren/stream-to-observable"));
12
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
13
+ // @ts-ignore
14
+ const split_1 = tslib_1.__importDefault(require("split"));
15
+ let CliExeca = class CliExeca {
16
+ constructor() {
17
+ this.raw = execa_1.default;
18
+ }
19
+ /**
20
+ *
21
+ * @param cmd
22
+ * @param args
23
+ * @param opts
24
+ */
25
+ run(cmd, args, opts) {
26
+ const cp = this.raw(cmd, args, opts);
27
+ const stdout = (0, stream_to_observable_1.default)(cp.stdout.pipe((0, split_1.default)()), { await: cp });
28
+ const stderr = (0, stream_to_observable_1.default)(cp.stderr.pipe((0, split_1.default)()), { await: cp });
29
+ return stdout.pipe((0, operators_1.merge)(stderr)).pipe((0, operators_1.filter)(Boolean));
30
+ }
31
+ runSync(cmd, args, opts) {
32
+ return this.raw.sync(cmd, args, opts);
33
+ }
34
+ async getAsync(cmd, args, opts) {
35
+ return (await this.raw(cmd, args, opts)).stdout;
36
+ }
37
+ get(cmd, args, opts) {
38
+ return this.raw.sync(cmd, args, opts).stdout;
39
+ }
40
+ };
41
+ CliExeca = tslib_1.__decorate([
42
+ (0, di_1.Injectable)()
43
+ ], CliExeca);
44
+ exports.CliExeca = CliExeca;
45
+ //# sourceMappingURL=CliExeca.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliExeca.js","sourceRoot":"","sources":["../../../src/services/CliExeca.ts"],"names":[],"mappings":";;;;AAAA,iCAAoC;AACpC,0DAA0B;AAC1B,8CAA6C;AAC7C,4CAA0C;AAC1C,6DAA6D;AAC7D,aAAa;AACb,wGAAsE;AACtE,6DAA6D;AAC7D,aAAa;AACb,0DAA0B;AAG1B,IAAa,QAAQ,GAArB,MAAa,QAAQ;IAArB;QACW,QAAG,GAAG,eAAK,CAAC;IA2BvB,CAAC;IAzBC;;;;;OAKG;IACH,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,IAAoB;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,IAAA,8BAAkB,EAAC,EAAE,CAAC,MAAO,CAAC,IAAI,CAAC,IAAA,eAAK,GAAE,CAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,IAAA,8BAAkB,EAAC,EAAE,CAAC,MAAO,CAAC,IAAI,CAAC,IAAA,eAAK,GAAE,CAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC;QAEzE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAA,iBAAK,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,kBAAM,EAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,IAAc,EAAE,IAAwB;QAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,IAAc,EAAE,IAAwB;QAClE,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAClD,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,IAAwB;QACvD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC;IAC/C,CAAC;CACF,CAAA;AA5BY,QAAQ;IADpB,IAAA,eAAU,GAAE;GACA,QAAQ,CA4BpB;AA5BY,4BAAQ","sourcesContent":["import {Injectable} from \"@tsed/di\";\nimport execa from \"execa\";\nimport {filter, merge} from \"rxjs/operators\";\nimport \"any-observable/register/rxjs-all\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport streamToObservable from \"@samverschueren/stream-to-observable\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport split from \"split\";\n\n@Injectable()\nexport class CliExeca {\n readonly raw = execa;\n\n /**\n *\n * @param cmd\n * @param args\n * @param opts\n */\n run(cmd: string, args: string[], opts?: execa.Options) {\n const cp = this.raw(cmd, args, opts);\n const stdout = streamToObservable(cp.stdout!.pipe(split()), {await: cp});\n const stderr = streamToObservable(cp.stderr!.pipe(split()), {await: cp});\n\n return stdout.pipe(merge(stderr)).pipe(filter(Boolean));\n }\n\n runSync(cmd: string, args: string[], opts?: execa.SyncOptions) {\n return this.raw.sync(cmd, args, opts);\n }\n\n async getAsync(cmd: string, args: string[], opts?: execa.SyncOptions) {\n return (await this.raw(cmd, args, opts)).stdout;\n }\n\n get(cmd: string, args: string[], opts?: execa.SyncOptions) {\n return this.raw.sync(cmd, args, opts).stdout;\n }\n}\n"]}