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

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,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.insertImport = void 0;
4
+ function insertImport(fileContent, content) {
5
+ const lines = fileContent.split("\n");
6
+ const index = lines.findIndex((line) => {
7
+ if (line.startsWith("#!")) {
8
+ return false;
9
+ }
10
+ return !line.startsWith("import ");
11
+ });
12
+ lines[index] = content + "\n" + lines[index];
13
+ return lines.join("\n");
14
+ }
15
+ exports.insertImport = insertImport;
16
+ //# sourceMappingURL=insertImport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insertImport.js","sourceRoot":"","sources":["../../../../src/utils/renderer/insertImport.ts"],"names":[],"mappings":";;;AAAA,SAAgB,YAAY,CAAC,WAAmB,EAAE,OAAe;IAC/D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEtC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;QACrC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO,KAAK,CAAC;SACd;QACD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAE7C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAbD,oCAaC","sourcesContent":["export function insertImport(fileContent: string, content: string) {\n const lines = fileContent.split(\"\\n\");\n\n const index = lines.findIndex((line) => {\n if (line.startsWith(\"#!\")) {\n return false;\n }\n return !line.startsWith(\"import \");\n });\n\n lines[index] = content + \"\\n\" + lines[index];\n\n return lines.join(\"\\n\");\n}\n"]}
@@ -0,0 +1,94 @@
1
+ var CliCore_1;
2
+ import { __decorate, __metadata } from "tslib";
3
+ import { createContainer, Inject, InjectorService, Module } from "@tsed/di";
4
+ import chalk from "chalk";
5
+ import { Command } from "commander";
6
+ import { join, resolve } from "path";
7
+ import updateNotifier from "update-notifier";
8
+ import { CliConfiguration } from "./services/CliConfiguration.js";
9
+ import { CliPackageJson } from "./services/CliPackageJson.js";
10
+ import { CliService } from "./services/CliService.js";
11
+ import { ProjectPackageJson } from "./services/ProjectPackageJson.js";
12
+ import { createInjector } from "./utils/createInjector.js";
13
+ import { loadPlugins } from "./utils/loadPlugins.js";
14
+ import { CliError } from "./domains/CliError.js";
15
+ import semver from "semver";
16
+ function isHelpManual(argv) {
17
+ return argv.includes("-h") || argv.includes("--help");
18
+ }
19
+ let CliCore = CliCore_1 = class CliCore {
20
+ static checkNodeVersion(wanted, id) {
21
+ if (!semver.satisfies(process.version, wanted)) {
22
+ console.log(chalk.red("You are using Node " +
23
+ process.version +
24
+ ", but this version of " +
25
+ id +
26
+ " requires Node " +
27
+ wanted +
28
+ ".\nPlease upgrade your Node version."));
29
+ process.exit(1);
30
+ }
31
+ return this;
32
+ }
33
+ static async bootstrap(settings, module = CliCore_1) {
34
+ const injector = this.createInjector(settings);
35
+ settings.plugins && (await loadPlugins(injector));
36
+ await this.loadInjector(injector, module);
37
+ await injector.emit("$onReady");
38
+ const cli = injector.get(CliCore_1);
39
+ try {
40
+ await cli.cliService.parseArgs(injector.settings.get("argv"));
41
+ }
42
+ catch (er) {
43
+ throw new CliError({ origin: er, cli });
44
+ }
45
+ return cli;
46
+ }
47
+ static async loadInjector(injector, module = CliCore_1) {
48
+ await injector.emit("$beforeInit");
49
+ const container = createContainer();
50
+ await injector.load(container, module);
51
+ await injector.emit("$afterInit");
52
+ injector.settings.set("loaded", true);
53
+ }
54
+ static updateNotifier(pkg) {
55
+ updateNotifier({ pkg, updateCheckInterval: 0 }).notify();
56
+ return this;
57
+ }
58
+ static createInjector(settings) {
59
+ const argv = settings.argv || process.argv;
60
+ return createInjector({
61
+ ...settings,
62
+ name: settings.name || "tsed",
63
+ argv,
64
+ project: {
65
+ rootDir: this.getProjectRoot(argv),
66
+ srcDir: "src",
67
+ scriptsDir: "scripts",
68
+ ...(settings.project || {})
69
+ }
70
+ });
71
+ }
72
+ static getProjectRoot(argv) {
73
+ if (!isHelpManual(argv)) {
74
+ const projectRoot = new Command().option("-r, --root-dir <path>", "Project root directory").allowUnknownOption(true).parse(argv).opts().rootDir || "";
75
+ return resolve(join(process.cwd(), projectRoot));
76
+ }
77
+ return process.cwd();
78
+ }
79
+ };
80
+ __decorate([
81
+ Inject(),
82
+ __metadata("design:type", InjectorService)
83
+ ], CliCore.prototype, "injector", void 0);
84
+ __decorate([
85
+ Inject(),
86
+ __metadata("design:type", CliService)
87
+ ], CliCore.prototype, "cliService", void 0);
88
+ CliCore = CliCore_1 = __decorate([
89
+ Module({
90
+ imports: [CliPackageJson, ProjectPackageJson, CliService, CliConfiguration]
91
+ })
92
+ ], CliCore);
93
+ export { CliCore };
94
+ //# 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,7 @@
1
+ import { useDecorators, StoreSet } from "@tsed/core";
2
+ import { CommandStoreKeys } from "../domains/CommandStoreKeys.js";
3
+ import { registerCommand } from "../registries/CommandRegistry.js";
4
+ export function Command(options) {
5
+ return useDecorators(registerCommand, StoreSet(CommandStoreKeys.COMMAND, options));
6
+ }
7
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/decorators/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,QAAQ,EAAC,MAAM,YAAY,CAAC;AACnD,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAE9D,MAAM,UAAU,OAAO,CAAC,OAA0B;IAChD,OAAO,aAAa,CAAC,eAAe,EAAE,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAQ,CAAC;AAC5F,CAAC","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,6 @@
1
+ export * from "./command.js";
2
+ export * from "./onAdd.js";
3
+ export * from "./onExec.js";
4
+ export * from "./onPostInstall.js";
5
+ export * from "./onPrompt.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC","sourcesContent":["export * from \"./command\";\nexport * from \"./onAdd\";\nexport * from \"./onExec\";\nexport * from \"./onPostInstall\";\nexport * from \"./onPrompt\";\n"]}
@@ -0,0 +1,9 @@
1
+ import { StoreMerge } from "@tsed/core";
2
+ export function On(hookName, name) {
3
+ return (target, propertyKey) => {
4
+ StoreMerge(hookName, {
5
+ [name]: [propertyKey]
6
+ })(target);
7
+ };
8
+ }
9
+ //# sourceMappingURL=on.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"on.js","sourceRoot":"","sources":["../../../src/decorators/on.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AAEtC,MAAM,UAAU,EAAE,CAAC,QAAgB,EAAE,IAAY;IAC/C,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC7B,UAAU,CAAC,QAAQ,EAAE;YACnB,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;SACtB,CAAC,CAAC,MAAM,CAAC,CAAC;IACb,CAAC,CAAC;AACJ,CAAC","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,6 @@
1
+ import { CommandStoreKeys } from "../domains/CommandStoreKeys.js";
2
+ import { On } from "./on.js";
3
+ export function OnAdd(cliPlugin) {
4
+ return On(CommandStoreKeys.ADD, cliPlugin);
5
+ }
6
+ //# sourceMappingURL=onAdd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onAdd.js","sourceRoot":"","sources":["../../../src/decorators/onAdd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAC,EAAE,EAAC,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,KAAK,CAAC,SAAiB;IACrC,OAAO,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC","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,6 @@
1
+ import { CommandStoreKeys } from "../domains/CommandStoreKeys.js";
2
+ import { On } from "./on.js";
3
+ export function OnExec(cmdName) {
4
+ return On(CommandStoreKeys.EXEC_HOOKS, cmdName);
5
+ }
6
+ //# sourceMappingURL=onExec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onExec.js","sourceRoot":"","sources":["../../../src/decorators/onExec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAC,EAAE,EAAC,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,MAAM,CAAC,OAAe;IACpC,OAAO,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC","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,6 @@
1
+ import { CommandStoreKeys } from "../domains/CommandStoreKeys.js";
2
+ import { On } from "./on.js";
3
+ export function OnPostInstall(cmdName) {
4
+ return On(CommandStoreKeys.POST_INSTALL_HOOKS, cmdName);
5
+ }
6
+ //# sourceMappingURL=onPostInstall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onPostInstall.js","sourceRoot":"","sources":["../../../src/decorators/onPostInstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAC,EAAE,EAAC,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,EAAE,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC","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,6 @@
1
+ import { CommandStoreKeys } from "../domains/CommandStoreKeys.js";
2
+ import { On } from "./on.js";
3
+ export function OnPrompt(cmdName) {
4
+ return On(CommandStoreKeys.PROMPT_HOOKS, cmdName);
5
+ }
6
+ //# sourceMappingURL=onPrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onPrompt.js","sourceRoot":"","sources":["../../../src/decorators/onPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAC,EAAE,EAAC,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC","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,10 @@
1
+ export class CliError extends Error {
2
+ constructor({ cli, origin }) {
3
+ super(origin.message);
4
+ this.name = "CLI_ERROR";
5
+ this.cli = cli;
6
+ this.origin = origin;
7
+ this.stack = origin.stack;
8
+ }
9
+ }
10
+ //# sourceMappingURL=CliError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliError.js","sourceRoot":"","sources":["../../../src/domains/CliError.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,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","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,9 @@
1
+ export var CommandStoreKeys;
2
+ (function (CommandStoreKeys) {
3
+ CommandStoreKeys["COMMAND"] = "command";
4
+ CommandStoreKeys["ADD"] = "$onAdd";
5
+ CommandStoreKeys["EXEC_HOOKS"] = "$onExec";
6
+ CommandStoreKeys["POST_INSTALL_HOOKS"] = "$onPostInstall";
7
+ CommandStoreKeys["PROMPT_HOOKS"] = "$onPrompt";
8
+ })(CommandStoreKeys || (CommandStoreKeys = {}));
9
+ //# sourceMappingURL=CommandStoreKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandStoreKeys.js","sourceRoot":"","sources":["../../../src/domains/CommandStoreKeys.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,uCAAmB,CAAA;IACnB,kCAAc,CAAA;IACd,0CAAsB,CAAA;IACtB,yDAAqC,CAAA;IACrC,8CAA0B,CAAA;AAC5B,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,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,12 @@
1
+ import Inquirer from "inquirer";
2
+ export * from "@tsed/core";
3
+ export * from "@tsed/logger";
4
+ export { Inject, registerProvider, Injectable, Constant, Value, Configuration, LocalsContainer, Module, Opts, UseOpts, OverrideProvider, InjectorService, Container, DITest } from "@tsed/di";
5
+ export * from "./interfaces.js";
6
+ export * from "./decorators.js";
7
+ export * from "./services.js";
8
+ export * from "./utils.js";
9
+ export * from "./CliCore.js";
10
+ export { Inquirer };
11
+ import "./utils/patchCommander.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,KAAK,EACL,aAAa,EACb,eAAe,EAGf,MAAM,EACN,IAAI,EACJ,OAAO,EACP,gBAAgB,EAChB,eAAe,EAGf,SAAS,EACT,MAAM,EACP,MAAM,UAAU,CAAC;AAClB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAC,QAAQ,EAAC,CAAC;AAElB,OAAO,wBAAwB,CAAC","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,2 @@
1
+ export {};
2
+ //# 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,2 @@
1
+ export {};
2
+ //# 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,2 @@
1
+ export {};
2
+ //# 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,2 @@
1
+ export {};
2
+ //# 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,2 @@
1
+ export {};
2
+ //# 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,7 @@
1
+ export var PackageManager;
2
+ (function (PackageManager) {
3
+ PackageManager["YARN"] = "yarn";
4
+ PackageManager["NPM"] = "npm";
5
+ PackageManager["PNPM"] = "pnpm";
6
+ })(PackageManager || (PackageManager = {}));
7
+ //# sourceMappingURL=ProjectPreferences.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectPreferences.js","sourceRoot":"","sources":["../../../src/interfaces/ProjectPreferences.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,6BAAW,CAAA;IACX,+BAAa,CAAA;AACf,CAAC,EAJW,cAAc,KAAd,cAAc,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,2 @@
1
+ export {};
2
+ //# 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,8 @@
1
+ export * from "./CommandProvider.js";
2
+ export * from "./CommandParameters.js";
3
+ export * from "./CommandMetadata.js";
4
+ export * from "./CliDefaultOptions.js";
5
+ export * from "./ProjectPreferences.js";
6
+ export * from "./PackageJson.js";
7
+ export * from "./Tasks.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC","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": "module"
3
+ }
@@ -0,0 +1,10 @@
1
+ import { GlobalProviders, Provider } from "@tsed/di";
2
+ export const PROVIDER_TYPE_COMMAND = "command";
3
+ /**
4
+ *
5
+ * @type {Registry<Provider<any>, IProvider<any>>}
6
+ */
7
+ // tslint:disable-next-line: variable-name
8
+ export const CommandRegistry = GlobalProviders.createRegistry(PROVIDER_TYPE_COMMAND, Provider);
9
+ export const registerCommand = GlobalProviders.createRegisterFn(PROVIDER_TYPE_COMMAND);
10
+ //# sourceMappingURL=CommandRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandRegistry.js","sourceRoot":"","sources":["../../../src/registries/CommandRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,QAAQ,EAAC,MAAM,UAAU,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAC/C;;;GAGG;AACH,0CAA0C;AAC1C,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC,cAAc,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;AAE/F,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC,gBAAgB,CAAC,qBAAqB,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,18 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { DIConfiguration, Injectable } from "@tsed/di";
3
+ let CliConfiguration = class CliConfiguration extends DIConfiguration {
4
+ constructor() {
5
+ super({
6
+ project: {
7
+ root: process.cwd(),
8
+ srcDir: "src"
9
+ }
10
+ });
11
+ }
12
+ };
13
+ CliConfiguration = __decorate([
14
+ Injectable(),
15
+ __metadata("design:paramtypes", [])
16
+ ], CliConfiguration);
17
+ export { CliConfiguration };
18
+ //# sourceMappingURL=CliConfiguration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliConfiguration.js","sourceRoot":"","sources":["../../../src/services/CliConfiguration.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAGrD,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,eAAe;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,UAAU,EAAE;;GACA,gBAAgB,CAS5B;SATY,gBAAgB","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,80 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Inject, Injectable } from "@tsed/di";
3
+ import { snakeCase } from "change-case";
4
+ import { CliYaml } from "./CliYaml.js";
5
+ import { setValue } from "@tsed/core";
6
+ let CliDockerComposeYaml = class CliDockerComposeYaml {
7
+ async read() {
8
+ return this.cliYaml.read("docker-compose.yml");
9
+ }
10
+ async write(obj) {
11
+ return this.cliYaml.write("docker-compose.yml", obj);
12
+ }
13
+ async addDatabaseService(name, database) {
14
+ const dockerCompose = await this.read();
15
+ if (dockerCompose) {
16
+ let value;
17
+ switch (database) {
18
+ case "mysql":
19
+ case "mariadb":
20
+ value = {
21
+ image: database === "mysql" ? "mysql:8.0.28-oracle" : "mariadb:10.7.3",
22
+ ports: ["3306:3306"],
23
+ environment: {
24
+ MYSQL_ROOT_PASSWORD: "admin",
25
+ MYSQL_USER: "test",
26
+ MYSQL_PASSWORD: "test",
27
+ MYSQL_DATABASE: "test"
28
+ }
29
+ };
30
+ break;
31
+ case "postgres":
32
+ value = {
33
+ image: "postgres:9.6.1",
34
+ ports: ["5432:5432"],
35
+ environment: {
36
+ POSTGRES_USER: "test",
37
+ POSTGRES_PASSWORD: "test",
38
+ POSTGRES_DB: "test"
39
+ }
40
+ };
41
+ break;
42
+ case "cockroachdb":
43
+ value = {
44
+ image: "cockroachdb/cockroach:v2.1.4",
45
+ command: "start --insecure",
46
+ ports: ["26257:26257"]
47
+ };
48
+ break;
49
+ case "mssql":
50
+ value = {
51
+ image: "mcr.microsoft.com/mssql/server:2017-latest",
52
+ command: "start --insecure",
53
+ ports: ["1433:1433"],
54
+ environment: {
55
+ SA_PASSWORD: "Admin12345",
56
+ ACCEPT_EULA: "Y"
57
+ }
58
+ };
59
+ break;
60
+ case "mongodb":
61
+ value = {
62
+ image: "mongo:4.1",
63
+ ports: ["27017:27017"]
64
+ };
65
+ break;
66
+ }
67
+ setValue(dockerCompose, `services.${snakeCase(name)}`, value);
68
+ await this.write(dockerCompose);
69
+ }
70
+ }
71
+ };
72
+ __decorate([
73
+ Inject(),
74
+ __metadata("design:type", CliYaml)
75
+ ], CliDockerComposeYaml.prototype, "cliYaml", void 0);
76
+ CliDockerComposeYaml = __decorate([
77
+ Injectable()
78
+ ], CliDockerComposeYaml);
79
+ export { CliDockerComposeYaml };
80
+ //# sourceMappingURL=CliDockerComposeYaml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliDockerComposeYaml.js","sourceRoot":"","sources":["../../../src/services/CliDockerComposeYaml.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;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,QAAQ,CAAC,aAAa,EAAE,YAAY,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SACjC;IACH,CAAC;CACF,CAAA;AArEC;IADC,MAAM,EAAE;8BACU,OAAO;qDAAC;AAFhB,oBAAoB;IADhC,UAAU,EAAE;GACA,oBAAoB,CAuEhC;SAvEY,oBAAoB","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,42 @@
1
+ import { __decorate } from "tslib";
2
+ import { Injectable } from "@tsed/di";
3
+ import execa from "execa";
4
+ import { filter, merge } from "rxjs/operators";
5
+ import "any-observable/register/rxjs-all";
6
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
7
+ // @ts-ignore
8
+ import streamToObservable from "@samverschueren/stream-to-observable";
9
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
10
+ // @ts-ignore
11
+ import split from "split";
12
+ let CliExeca = class CliExeca {
13
+ constructor() {
14
+ this.raw = execa;
15
+ }
16
+ /**
17
+ *
18
+ * @param cmd
19
+ * @param args
20
+ * @param opts
21
+ */
22
+ run(cmd, args, opts) {
23
+ const cp = this.raw(cmd, args, opts);
24
+ const stdout = streamToObservable(cp.stdout.pipe(split()), { await: cp });
25
+ const stderr = streamToObservable(cp.stderr.pipe(split()), { await: cp });
26
+ return stdout.pipe(merge(stderr)).pipe(filter(Boolean));
27
+ }
28
+ runSync(cmd, args, opts) {
29
+ return this.raw.sync(cmd, args, opts);
30
+ }
31
+ async getAsync(cmd, args, opts) {
32
+ return (await this.raw(cmd, args, opts)).stdout;
33
+ }
34
+ get(cmd, args, opts) {
35
+ return this.raw.sync(cmd, args, opts).stdout;
36
+ }
37
+ };
38
+ CliExeca = __decorate([
39
+ Injectable()
40
+ ], CliExeca);
41
+ export { CliExeca };
42
+ //# sourceMappingURL=CliExeca.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliExeca.js","sourceRoot":"","sources":["../../../src/services/CliExeca.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,kCAAkC,CAAC;AAC1C,6DAA6D;AAC7D,aAAa;AACb,OAAO,kBAAkB,MAAM,sCAAsC,CAAC;AACtE,6DAA6D;AAC7D,aAAa;AACb,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,IAAa,QAAQ,GAArB,MAAa,QAAQ;IAArB;QACW,QAAG,GAAG,KAAK,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,kBAAkB,CAAC,EAAE,CAAC,MAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC,MAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC;QAEzE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,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,UAAU,EAAE;GACA,QAAQ,CA4BpB;SA5BY,QAAQ","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"]}
@@ -0,0 +1,52 @@
1
+ import { __decorate } from "tslib";
2
+ import { Injectable } from "@tsed/di";
3
+ import Fs from "fs-extra";
4
+ import { join } from "path";
5
+ import { normalizePath } from "../utils/normalizePath.js";
6
+ let CliFs = class CliFs {
7
+ constructor() {
8
+ this.raw = Fs;
9
+ }
10
+ exists(path) {
11
+ return this.raw.existsSync(path);
12
+ }
13
+ join(...args) {
14
+ return normalizePath(join(...args));
15
+ }
16
+ async readFile(file, encoding) {
17
+ return this.raw.readFile(file, encoding);
18
+ }
19
+ writeFileSync(path, data, options) {
20
+ return this.raw.writeFileSync(path, data, options);
21
+ }
22
+ writeFile(file, data, options) {
23
+ return this.raw.writeFile(file, data, options);
24
+ }
25
+ ensureDir(path, options) {
26
+ return this.raw.ensureDir(path, options);
27
+ }
28
+ ensureDirSync(path, options) {
29
+ return this.raw.ensureDirSync(path, options);
30
+ }
31
+ findUpFile(root, file) {
32
+ return [join(root, file), join(root, "..", file), join(root, "..", "..", file), join(root, "..", "..", "..", file)].find((path) => this.exists(path));
33
+ }
34
+ async importModule(mod, root = process.cwd()) {
35
+ try {
36
+ if (process.env.NODE_ENV === "development") {
37
+ return await import(mod);
38
+ }
39
+ }
40
+ catch (er) { }
41
+ const path = this.findUpFile(root, join("node_modules", mod));
42
+ if (path) {
43
+ return import(path);
44
+ }
45
+ return import(mod);
46
+ }
47
+ };
48
+ CliFs = __decorate([
49
+ Injectable()
50
+ ], CliFs);
51
+ export { CliFs };
52
+ //# sourceMappingURL=CliFs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CliFs.js","sourceRoot":"","sources":["../../../src/services/CliFs.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,MAAM,UAAU,CAAC;AAE1B,OAAO,EAAC,IAAI,EAAC,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAGrD,IAAa,KAAK,GAAlB,MAAa,KAAK;IAAlB;QACE,QAAG,GAAG,EAAE,CAAC;IAmDX,CAAC;IAjDC,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,GAAG,IAAc;QACpB,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAA8B,EAAE,QAAc;QAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAQ,CAAC;IAClD,CAAC;IAED,aAAa,CAAC,IAAuB,EAAE,IAAS,EAAE,OAA0B;QAC1E,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,IAA8B,EAAE,IAAS,EAAE,OAAmC;QACtF,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAc,CAAC,CAAC;IACxD,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,OAAgC;QACtD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,IAAY,EAAE,OAAgC;QAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,IAAY;QACnC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAChI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAClB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,OAAe,OAAO,CAAC,GAAG,EAAE;QAC1D,IAAI;YACF,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE;gBAC1C,OAAO,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;aAC1B;SACF;QAAC,OAAO,EAAE,EAAE,GAAE;QAEf,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC;QAE9D,IAAI,IAAI,EAAE;YACR,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;SACrB;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;CACF,CAAA;AApDY,KAAK;IADjB,UAAU,EAAE;GACA,KAAK,CAoDjB;SApDY,KAAK","sourcesContent":["import {Injectable} from \"@tsed/di\";\nimport {PathLike, WriteFileOptions} from \"fs\";\nimport Fs from \"fs-extra\";\nimport {EnsureOptions} from \"fs-extra\";\nimport {join} from \"path\";\nimport {normalizePath} from \"../utils/normalizePath\";\n\n@Injectable()\nexport class CliFs {\n raw = Fs;\n\n exists(path: string) {\n return this.raw.existsSync(path);\n }\n\n join(...args: string[]) {\n return normalizePath(join(...args));\n }\n\n async readFile(file: string | Buffer | number, encoding?: any): Promise<string> {\n return this.raw.readFile(file, encoding) as any;\n }\n\n writeFileSync(path: PathLike | number, data: any, options?: WriteFileOptions) {\n return this.raw.writeFileSync(path, data, options);\n }\n\n writeFile(file: string | Buffer | number, data: any, options?: WriteFileOptions | string) {\n return this.raw.writeFile(file, data, options as any);\n }\n\n ensureDir(path: string, options?: EnsureOptions | number) {\n return this.raw.ensureDir(path, options);\n }\n\n ensureDirSync(path: string, options?: EnsureOptions | number): void {\n return this.raw.ensureDirSync(path, options);\n }\n\n findUpFile(root: string, file: string) {\n return [join(root, file), join(root, \"..\", file), join(root, \"..\", \"..\", file), join(root, \"..\", \"..\", \"..\", file)].find((path) =>\n this.exists(path)\n );\n }\n\n async importModule(mod: string, root: string = process.cwd()) {\n try {\n if (process.env.NODE_ENV === \"development\") {\n return await import(mod);\n }\n } catch (er) {}\n\n const path = this.findUpFile(root, join(\"node_modules\", mod));\n\n if (path) {\n return import(path);\n }\n\n return import(mod);\n }\n}\n"]}