@contember/cli-common 1.4.0-rc.8 → 2.0.0-alpha.8

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 (352) hide show
  1. package/dist/development/index.cjs +28 -0
  2. package/dist/development/index.cjs.map +1 -0
  3. package/dist/development/index.js +28 -0
  4. package/dist/development/index.js.map +1 -0
  5. package/dist/development/src/application/Application.cjs +82 -0
  6. package/dist/development/src/application/Application.cjs.map +1 -0
  7. package/dist/development/src/application/Application.js +82 -0
  8. package/dist/development/src/application/Application.js.map +1 -0
  9. package/dist/development/src/application/Argument.cjs +25 -0
  10. package/dist/development/src/application/Argument.cjs.map +1 -0
  11. package/dist/development/src/application/Argument.js +25 -0
  12. package/dist/development/src/application/Argument.js.map +1 -0
  13. package/dist/development/src/application/Command.cjs +28 -0
  14. package/dist/development/src/application/Command.cjs.map +1 -0
  15. package/dist/development/src/application/Command.js +28 -0
  16. package/dist/development/src/application/Command.js.map +1 -0
  17. package/dist/development/src/application/CommandConfiguration.cjs +44 -0
  18. package/dist/development/src/application/CommandConfiguration.cjs.map +1 -0
  19. package/dist/development/src/application/CommandConfiguration.js +44 -0
  20. package/dist/development/src/application/CommandConfiguration.js.map +1 -0
  21. package/dist/development/src/application/CommandManager.cjs +37 -0
  22. package/dist/development/src/application/CommandManager.cjs.map +1 -0
  23. package/dist/development/src/application/CommandManager.js +37 -0
  24. package/dist/development/src/application/CommandManager.js.map +1 -0
  25. package/dist/development/src/application/Input.cjs +16 -0
  26. package/dist/development/src/application/Input.cjs.map +1 -0
  27. package/dist/development/src/application/Input.js +16 -0
  28. package/dist/development/src/application/Input.js.map +1 -0
  29. package/dist/development/src/application/InputParser.cjs +117 -0
  30. package/dist/development/src/application/InputParser.cjs.map +1 -0
  31. package/dist/development/src/application/InputParser.js +117 -0
  32. package/dist/development/src/application/InputParser.js.map +1 -0
  33. package/dist/development/src/application/Option.cjs +49 -0
  34. package/dist/development/src/application/Option.cjs.map +1 -0
  35. package/dist/development/src/application/Option.js +49 -0
  36. package/dist/development/src/application/Option.js.map +1 -0
  37. package/dist/development/src/application/UsageFormatter.cjs +61 -0
  38. package/dist/development/src/application/UsageFormatter.cjs.map +1 -0
  39. package/dist/development/src/application/UsageFormatter.js +61 -0
  40. package/dist/development/src/application/UsageFormatter.js.map +1 -0
  41. package/dist/development/src/application/assertNever.cjs +7 -0
  42. package/dist/development/src/application/assertNever.cjs.map +1 -0
  43. package/dist/development/src/application/assertNever.js +7 -0
  44. package/dist/development/src/application/assertNever.js.map +1 -0
  45. package/dist/development/src/npm/CommandRunner.cjs +59 -0
  46. package/dist/development/src/npm/CommandRunner.cjs.map +1 -0
  47. package/dist/development/src/npm/CommandRunner.js +59 -0
  48. package/dist/development/src/npm/CommandRunner.js.map +1 -0
  49. package/dist/development/src/npm/Package.cjs +11 -0
  50. package/dist/development/src/npm/Package.cjs.map +1 -0
  51. package/dist/development/src/npm/Package.js +11 -0
  52. package/dist/development/src/npm/Package.js.map +1 -0
  53. package/dist/development/src/npm/PackageWorkspace.cjs +79 -0
  54. package/dist/development/src/npm/PackageWorkspace.cjs.map +1 -0
  55. package/dist/development/src/npm/PackageWorkspace.js +79 -0
  56. package/dist/development/src/npm/PackageWorkspace.js.map +1 -0
  57. package/dist/development/src/npm/PackageWorkspaceResolver.cjs +48 -0
  58. package/dist/development/src/npm/PackageWorkspaceResolver.cjs.map +1 -0
  59. package/dist/development/src/npm/PackageWorkspaceResolver.js +48 -0
  60. package/dist/development/src/npm/PackageWorkspaceResolver.js.map +1 -0
  61. package/dist/development/src/npm/packageManagers/Npm.cjs +34 -0
  62. package/dist/development/src/npm/packageManagers/Npm.cjs.map +1 -0
  63. package/dist/development/src/npm/packageManagers/Npm.js +34 -0
  64. package/dist/development/src/npm/packageManagers/Npm.js.map +1 -0
  65. package/dist/development/src/npm/packageManagers/PackageManagerHelpers.cjs +32 -0
  66. package/dist/development/src/npm/packageManagers/PackageManagerHelpers.cjs.map +1 -0
  67. package/dist/development/src/npm/packageManagers/PackageManagerHelpers.js +32 -0
  68. package/dist/development/src/npm/packageManagers/PackageManagerHelpers.js.map +1 -0
  69. package/dist/development/src/npm/packageManagers/Pnpm.cjs +39 -0
  70. package/dist/development/src/npm/packageManagers/Pnpm.cjs.map +1 -0
  71. package/dist/development/src/npm/packageManagers/Pnpm.js +39 -0
  72. package/dist/development/src/npm/packageManagers/Pnpm.js.map +1 -0
  73. package/dist/development/src/npm/packageManagers/Yarn.cjs +34 -0
  74. package/dist/development/src/npm/packageManagers/Yarn.cjs.map +1 -0
  75. package/dist/development/src/npm/packageManagers/Yarn.js +34 -0
  76. package/dist/development/src/npm/packageManagers/Yarn.js.map +1 -0
  77. package/dist/development/src/npm/packageManagers/YarnClassic.cjs +35 -0
  78. package/dist/development/src/npm/packageManagers/YarnClassic.cjs.map +1 -0
  79. package/dist/development/src/npm/packageManagers/YarnClassic.js +35 -0
  80. package/dist/development/src/npm/packageManagers/YarnClassic.js.map +1 -0
  81. package/dist/production/index.cjs +28 -0
  82. package/dist/production/index.cjs.map +1 -0
  83. package/dist/production/index.js +28 -0
  84. package/dist/production/index.js.map +1 -0
  85. package/dist/production/src/application/Application.cjs +82 -0
  86. package/dist/production/src/application/Application.cjs.map +1 -0
  87. package/dist/production/src/application/Application.js +82 -0
  88. package/dist/production/src/application/Application.js.map +1 -0
  89. package/dist/production/src/application/Argument.cjs +25 -0
  90. package/dist/production/src/application/Argument.cjs.map +1 -0
  91. package/dist/production/src/application/Argument.js +25 -0
  92. package/dist/production/src/application/Argument.js.map +1 -0
  93. package/dist/production/src/application/Command.cjs +28 -0
  94. package/dist/production/src/application/Command.cjs.map +1 -0
  95. package/dist/production/src/application/Command.js +28 -0
  96. package/dist/production/src/application/Command.js.map +1 -0
  97. package/dist/production/src/application/CommandConfiguration.cjs +44 -0
  98. package/dist/production/src/application/CommandConfiguration.cjs.map +1 -0
  99. package/dist/production/src/application/CommandConfiguration.js +44 -0
  100. package/dist/production/src/application/CommandConfiguration.js.map +1 -0
  101. package/dist/production/src/application/CommandManager.cjs +37 -0
  102. package/dist/production/src/application/CommandManager.cjs.map +1 -0
  103. package/dist/production/src/application/CommandManager.js +37 -0
  104. package/dist/production/src/application/CommandManager.js.map +1 -0
  105. package/dist/production/src/application/Input.cjs +16 -0
  106. package/dist/production/src/application/Input.cjs.map +1 -0
  107. package/dist/production/src/application/Input.js +16 -0
  108. package/dist/production/src/application/Input.js.map +1 -0
  109. package/dist/production/src/application/InputParser.cjs +117 -0
  110. package/dist/production/src/application/InputParser.cjs.map +1 -0
  111. package/dist/production/src/application/InputParser.js +117 -0
  112. package/dist/production/src/application/InputParser.js.map +1 -0
  113. package/dist/production/src/application/Option.cjs +49 -0
  114. package/dist/production/src/application/Option.cjs.map +1 -0
  115. package/dist/production/src/application/Option.js +49 -0
  116. package/dist/production/src/application/Option.js.map +1 -0
  117. package/dist/production/src/application/UsageFormatter.cjs +61 -0
  118. package/dist/production/src/application/UsageFormatter.cjs.map +1 -0
  119. package/dist/production/src/application/UsageFormatter.js +61 -0
  120. package/dist/production/src/application/UsageFormatter.js.map +1 -0
  121. package/dist/production/src/application/assertNever.cjs +7 -0
  122. package/dist/production/src/application/assertNever.cjs.map +1 -0
  123. package/dist/production/src/application/assertNever.js +7 -0
  124. package/dist/production/src/application/assertNever.js.map +1 -0
  125. package/dist/production/src/npm/CommandRunner.cjs +59 -0
  126. package/dist/production/src/npm/CommandRunner.cjs.map +1 -0
  127. package/dist/production/src/npm/CommandRunner.js +59 -0
  128. package/dist/production/src/npm/CommandRunner.js.map +1 -0
  129. package/dist/production/src/npm/Package.cjs +11 -0
  130. package/dist/production/src/npm/Package.cjs.map +1 -0
  131. package/dist/production/src/npm/Package.js +11 -0
  132. package/dist/production/src/npm/Package.js.map +1 -0
  133. package/dist/production/src/npm/PackageWorkspace.cjs +79 -0
  134. package/dist/production/src/npm/PackageWorkspace.cjs.map +1 -0
  135. package/dist/production/src/npm/PackageWorkspace.js +79 -0
  136. package/dist/production/src/npm/PackageWorkspace.js.map +1 -0
  137. package/dist/production/src/npm/PackageWorkspaceResolver.cjs +48 -0
  138. package/dist/production/src/npm/PackageWorkspaceResolver.cjs.map +1 -0
  139. package/dist/production/src/npm/PackageWorkspaceResolver.js +48 -0
  140. package/dist/production/src/npm/PackageWorkspaceResolver.js.map +1 -0
  141. package/dist/production/src/npm/packageManagers/Npm.cjs +34 -0
  142. package/dist/production/src/npm/packageManagers/Npm.cjs.map +1 -0
  143. package/dist/production/src/npm/packageManagers/Npm.js +34 -0
  144. package/dist/production/src/npm/packageManagers/Npm.js.map +1 -0
  145. package/dist/production/src/npm/packageManagers/PackageManagerHelpers.cjs +32 -0
  146. package/dist/production/src/npm/packageManagers/PackageManagerHelpers.cjs.map +1 -0
  147. package/dist/production/src/npm/packageManagers/PackageManagerHelpers.js +32 -0
  148. package/dist/production/src/npm/packageManagers/PackageManagerHelpers.js.map +1 -0
  149. package/dist/production/src/npm/packageManagers/Pnpm.cjs +39 -0
  150. package/dist/production/src/npm/packageManagers/Pnpm.cjs.map +1 -0
  151. package/dist/production/src/npm/packageManagers/Pnpm.js +39 -0
  152. package/dist/production/src/npm/packageManagers/Pnpm.js.map +1 -0
  153. package/dist/production/src/npm/packageManagers/Yarn.cjs +34 -0
  154. package/dist/production/src/npm/packageManagers/Yarn.cjs.map +1 -0
  155. package/dist/production/src/npm/packageManagers/Yarn.js +34 -0
  156. package/dist/production/src/npm/packageManagers/Yarn.js.map +1 -0
  157. package/dist/production/src/npm/packageManagers/YarnClassic.cjs +35 -0
  158. package/dist/production/src/npm/packageManagers/YarnClassic.cjs.map +1 -0
  159. package/dist/production/src/npm/packageManagers/YarnClassic.js +35 -0
  160. package/dist/production/src/npm/packageManagers/YarnClassic.js.map +1 -0
  161. package/dist/{src → types}/application/index.d.ts +0 -1
  162. package/dist/{src → types}/application/index.d.ts.map +1 -1
  163. package/dist/types/index.d.ts +4 -0
  164. package/dist/types/index.d.ts.map +1 -0
  165. package/dist/{src/utils/commands.d.ts → types/npm/CommandRunner.d.ts} +11 -10
  166. package/dist/types/npm/CommandRunner.d.ts.map +1 -0
  167. package/dist/types/npm/FileSystem.d.ts +7 -0
  168. package/dist/types/npm/FileSystem.d.ts.map +1 -0
  169. package/dist/{src → types}/npm/PackageWorkspace.d.ts +3 -10
  170. package/dist/types/npm/PackageWorkspace.d.ts.map +1 -0
  171. package/dist/types/npm/PackageWorkspaceResolver.d.ts +13 -0
  172. package/dist/types/npm/PackageWorkspaceResolver.d.ts.map +1 -0
  173. package/dist/types/npm/index.d.ts +8 -0
  174. package/dist/types/npm/index.d.ts.map +1 -0
  175. package/dist/{src → types}/npm/packageManagers/Npm.d.ts +5 -3
  176. package/dist/types/npm/packageManagers/Npm.d.ts.map +1 -0
  177. package/dist/{src → types}/npm/packageManagers/PackageManagerHelpers.d.ts +3 -3
  178. package/dist/types/npm/packageManagers/PackageManagerHelpers.d.ts.map +1 -0
  179. package/dist/{src → types}/npm/packageManagers/Pnpm.d.ts +5 -3
  180. package/dist/types/npm/packageManagers/Pnpm.d.ts.map +1 -0
  181. package/dist/{src → types}/npm/packageManagers/Yarn.d.ts +5 -3
  182. package/dist/types/npm/packageManagers/Yarn.d.ts.map +1 -0
  183. package/dist/{src → types}/npm/packageManagers/YarnClassic.d.ts +5 -3
  184. package/dist/types/npm/packageManagers/YarnClassic.d.ts.map +1 -0
  185. package/dist/types/tsconfig.tsbuildinfo +1 -0
  186. package/package.json +22 -12
  187. package/src/application/index.ts +0 -1
  188. package/src/index.ts +2 -2
  189. package/src/npm/CommandRunner.ts +69 -0
  190. package/src/npm/FileSystem.ts +7 -0
  191. package/src/npm/PackageWorkspace.ts +4 -48
  192. package/src/npm/PackageWorkspaceResolver.ts +60 -0
  193. package/src/npm/index.ts +6 -0
  194. package/src/npm/packageManagers/Npm.ts +7 -6
  195. package/src/npm/packageManagers/PackageManagerHelpers.ts +10 -6
  196. package/src/npm/packageManagers/Pnpm.ts +11 -7
  197. package/src/npm/packageManagers/Yarn.ts +7 -6
  198. package/src/npm/packageManagers/YarnClassic.ts +7 -6
  199. package/src/tsconfig.json +1 -1
  200. package/tsconfig.settings.json +1 -1
  201. package/dist/src/application/Application.js +0 -89
  202. package/dist/src/application/Application.js.map +0 -1
  203. package/dist/src/application/Argument.js +0 -26
  204. package/dist/src/application/Argument.js.map +0 -1
  205. package/dist/src/application/Command.js +0 -23
  206. package/dist/src/application/Command.js.map +0 -1
  207. package/dist/src/application/CommandConfiguration.js +0 -53
  208. package/dist/src/application/CommandConfiguration.js.map +0 -1
  209. package/dist/src/application/CommandManager.js +0 -40
  210. package/dist/src/application/CommandManager.js.map +0 -1
  211. package/dist/src/application/Input.js +0 -17
  212. package/dist/src/application/Input.js.map +0 -1
  213. package/dist/src/application/InputParser.js +0 -127
  214. package/dist/src/application/InputParser.js.map +0 -1
  215. package/dist/src/application/Option.js +0 -49
  216. package/dist/src/application/Option.js.map +0 -1
  217. package/dist/src/application/UsageFormatter.js +0 -64
  218. package/dist/src/application/UsageFormatter.js.map +0 -1
  219. package/dist/src/application/assertNever.js +0 -8
  220. package/dist/src/application/assertNever.js.map +0 -1
  221. package/dist/src/application/env.d.ts +0 -8
  222. package/dist/src/application/env.d.ts.map +0 -1
  223. package/dist/src/application/env.js +0 -14
  224. package/dist/src/application/env.js.map +0 -1
  225. package/dist/src/application/index.js +0 -28
  226. package/dist/src/application/index.js.map +0 -1
  227. package/dist/src/index.d.ts +0 -4
  228. package/dist/src/index.d.ts.map +0 -1
  229. package/dist/src/index.js +0 -26
  230. package/dist/src/index.js.map +0 -1
  231. package/dist/src/npm/FsManager.d.ts +0 -9
  232. package/dist/src/npm/FsManager.d.ts.map +0 -1
  233. package/dist/src/npm/FsManager.js +0 -41
  234. package/dist/src/npm/FsManager.js.map +0 -1
  235. package/dist/src/npm/Package.js +0 -12
  236. package/dist/src/npm/Package.js.map +0 -1
  237. package/dist/src/npm/PackageJson.js +0 -3
  238. package/dist/src/npm/PackageJson.js.map +0 -1
  239. package/dist/src/npm/PackageWorkspace.d.ts.map +0 -1
  240. package/dist/src/npm/PackageWorkspace.js +0 -124
  241. package/dist/src/npm/PackageWorkspace.js.map +0 -1
  242. package/dist/src/npm/index.d.ts +0 -2
  243. package/dist/src/npm/index.d.ts.map +0 -1
  244. package/dist/src/npm/index.js +0 -18
  245. package/dist/src/npm/index.js.map +0 -1
  246. package/dist/src/npm/packageManagers/Npm.d.ts.map +0 -1
  247. package/dist/src/npm/packageManagers/Npm.js +0 -35
  248. package/dist/src/npm/packageManagers/Npm.js.map +0 -1
  249. package/dist/src/npm/packageManagers/PackageManager.js +0 -3
  250. package/dist/src/npm/packageManagers/PackageManager.js.map +0 -1
  251. package/dist/src/npm/packageManagers/PackageManagerHelpers.d.ts.map +0 -1
  252. package/dist/src/npm/packageManagers/PackageManagerHelpers.js +0 -30
  253. package/dist/src/npm/packageManagers/PackageManagerHelpers.js.map +0 -1
  254. package/dist/src/npm/packageManagers/Pnpm.d.ts.map +0 -1
  255. package/dist/src/npm/packageManagers/Pnpm.js +0 -37
  256. package/dist/src/npm/packageManagers/Pnpm.js.map +0 -1
  257. package/dist/src/npm/packageManagers/Yarn.d.ts.map +0 -1
  258. package/dist/src/npm/packageManagers/Yarn.js +0 -36
  259. package/dist/src/npm/packageManagers/Yarn.js.map +0 -1
  260. package/dist/src/npm/packageManagers/YarnClassic.d.ts.map +0 -1
  261. package/dist/src/npm/packageManagers/YarnClassic.js +0 -36
  262. package/dist/src/npm/packageManagers/YarnClassic.js.map +0 -1
  263. package/dist/src/pathUtils.d.ts +0 -3
  264. package/dist/src/pathUtils.d.ts.map +0 -1
  265. package/dist/src/pathUtils.js +0 -7
  266. package/dist/src/pathUtils.js.map +0 -1
  267. package/dist/src/tsconfig.tsbuildinfo +0 -1
  268. package/dist/src/utils/PathMapping.d.ts +0 -5
  269. package/dist/src/utils/PathMapping.d.ts.map +0 -1
  270. package/dist/src/utils/PathMapping.js +0 -35
  271. package/dist/src/utils/PathMapping.js.map +0 -1
  272. package/dist/src/utils/Project.d.ts +0 -12
  273. package/dist/src/utils/Project.d.ts.map +0 -1
  274. package/dist/src/utils/Project.js +0 -51
  275. package/dist/src/utils/Project.js.map +0 -1
  276. package/dist/src/utils/ProjectManager.d.ts +0 -16
  277. package/dist/src/utils/ProjectManager.d.ts.map +0 -1
  278. package/dist/src/utils/ProjectManager.js +0 -71
  279. package/dist/src/utils/ProjectManager.js.map +0 -1
  280. package/dist/src/utils/Workspace.d.ts +0 -24
  281. package/dist/src/utils/Workspace.d.ts.map +0 -1
  282. package/dist/src/utils/Workspace.js +0 -59
  283. package/dist/src/utils/Workspace.js.map +0 -1
  284. package/dist/src/utils/commands.d.ts.map +0 -1
  285. package/dist/src/utils/commands.js +0 -57
  286. package/dist/src/utils/commands.js.map +0 -1
  287. package/dist/src/utils/fs.d.ts +0 -5
  288. package/dist/src/utils/fs.d.ts.map +0 -1
  289. package/dist/src/utils/fs.js +0 -73
  290. package/dist/src/utils/fs.js.map +0 -1
  291. package/dist/src/utils/index.d.ts +0 -6
  292. package/dist/src/utils/index.d.ts.map +0 -1
  293. package/dist/src/utils/index.js +0 -22
  294. package/dist/src/utils/index.js.map +0 -1
  295. package/dist/src/utils/json.d.ts +0 -7
  296. package/dist/src/utils/json.d.ts.map +0 -1
  297. package/dist/src/utils/json.js +0 -3
  298. package/dist/src/utils/json.js.map +0 -1
  299. package/dist/src/utils/tuple.d.ts +0 -2
  300. package/dist/src/utils/tuple.d.ts.map +0 -1
  301. package/dist/src/utils/tuple.js +0 -6
  302. package/dist/src/utils/tuple.js.map +0 -1
  303. package/dist/src/utils/version.d.ts +0 -2
  304. package/dist/src/utils/version.d.ts.map +0 -1
  305. package/dist/src/utils/version.js +0 -11
  306. package/dist/src/utils/version.js.map +0 -1
  307. package/dist/src/utils/yaml.d.ts +0 -3
  308. package/dist/src/utils/yaml.d.ts.map +0 -1
  309. package/dist/src/utils/yaml.js +0 -14
  310. package/dist/src/utils/yaml.js.map +0 -1
  311. package/src/application/.eslintrc.js +0 -5
  312. package/src/application/env.ts +0 -14
  313. package/src/npm/FsManager.ts +0 -38
  314. package/src/pathUtils.ts +0 -4
  315. package/src/utils/PathMapping.ts +0 -38
  316. package/src/utils/Project.ts +0 -28
  317. package/src/utils/ProjectManager.ts +0 -76
  318. package/src/utils/Workspace.ts +0 -72
  319. package/src/utils/commands.ts +0 -65
  320. package/src/utils/fs.ts +0 -43
  321. package/src/utils/index.ts +0 -5
  322. package/src/utils/json.ts +0 -4
  323. package/src/utils/tuple.ts +0 -1
  324. package/src/utils/version.ts +0 -7
  325. package/src/utils/yaml.ts +0 -9
  326. /package/dist/{src → types}/application/Application.d.ts +0 -0
  327. /package/dist/{src → types}/application/Application.d.ts.map +0 -0
  328. /package/dist/{src → types}/application/Argument.d.ts +0 -0
  329. /package/dist/{src → types}/application/Argument.d.ts.map +0 -0
  330. /package/dist/{src → types}/application/Command.d.ts +0 -0
  331. /package/dist/{src → types}/application/Command.d.ts.map +0 -0
  332. /package/dist/{src → types}/application/CommandConfiguration.d.ts +0 -0
  333. /package/dist/{src → types}/application/CommandConfiguration.d.ts.map +0 -0
  334. /package/dist/{src → types}/application/CommandManager.d.ts +0 -0
  335. /package/dist/{src → types}/application/CommandManager.d.ts.map +0 -0
  336. /package/dist/{src → types}/application/Input.d.ts +0 -0
  337. /package/dist/{src → types}/application/Input.d.ts.map +0 -0
  338. /package/dist/{src → types}/application/InputParser.d.ts +0 -0
  339. /package/dist/{src → types}/application/InputParser.d.ts.map +0 -0
  340. /package/dist/{src → types}/application/Option.d.ts +0 -0
  341. /package/dist/{src → types}/application/Option.d.ts.map +0 -0
  342. /package/dist/{src → types}/application/UsageFormatter.d.ts +0 -0
  343. /package/dist/{src → types}/application/UsageFormatter.d.ts.map +0 -0
  344. /package/dist/{src → types}/application/assertNever.d.ts +0 -0
  345. /package/dist/{src → types}/application/assertNever.d.ts.map +0 -0
  346. /package/dist/{src → types}/npm/Package.d.ts +0 -0
  347. /package/dist/{src → types}/npm/Package.d.ts.map +0 -0
  348. /package/dist/{src → types}/npm/PackageJson.d.ts +0 -0
  349. /package/dist/{src → types}/npm/PackageJson.d.ts.map +0 -0
  350. /package/dist/{src → types}/npm/packageManagers/PackageManager.d.ts +0 -0
  351. /package/dist/{src → types}/npm/packageManagers/PackageManager.d.ts.map +0 -0
  352. /package/src/{.eslintrc.js → .eslintrc.cjs} +0 -0
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const Option = require("./Option.cjs");
4
+ const Input = require("./Input.cjs");
5
+ class InputParser {
6
+ constructor(_arguments, options) {
7
+ this._arguments = _arguments;
8
+ this.options = options;
9
+ }
10
+ parse(args) {
11
+ args = args.reduce((acc, arg) => [...acc, ...arg.startsWith("-") ? arg.split("=", 2) : [arg]], []);
12
+ let options = {};
13
+ let argumentValues = {};
14
+ let i = 0;
15
+ let argumentNumber = 0;
16
+ const variadicArg = this._arguments[this._arguments.length - 1]?.variadic ? this._arguments[this._arguments.length - 1] : void 0;
17
+ for (; i < args.length; i++) {
18
+ const value = this.tryParseValue(args[i]);
19
+ if (value === void 0) {
20
+ break;
21
+ }
22
+ const argument = this._arguments[argumentNumber] || variadicArg;
23
+ if (!argument) {
24
+ throw new InvalidInputError(`Unresolved argument for value "${value}"`);
25
+ }
26
+ if (argument.validator && !argument.validator(value)) {
27
+ throw new InvalidInputError(`Invalid value "${value}" for argument ${argument.name}`);
28
+ }
29
+ if (argument.variadic) {
30
+ argumentValues[argument.name] = argumentValues[argument.name] || [];
31
+ argumentValues[argument.name].push(value);
32
+ } else {
33
+ argumentValues[argument.name] = value;
34
+ }
35
+ argumentNumber++;
36
+ }
37
+ for (; argumentNumber < this._arguments.length; argumentNumber++) {
38
+ if (!this._arguments[argumentNumber].optional) {
39
+ throw new InvalidInputError(`Argument ${this._arguments[argumentNumber].name} is required`);
40
+ } else {
41
+ argumentValues[this._arguments[argumentNumber].name] = void 0;
42
+ }
43
+ }
44
+ for (; i < args.length; i++) {
45
+ let option;
46
+ if (args[i].startsWith("--")) {
47
+ option = this.options.find((it) => it.name === args[i].slice(2));
48
+ if (!option) {
49
+ throw new InvalidInputError(`Undefined option ${args[i]}`);
50
+ }
51
+ } else if (args[i].startsWith("-")) {
52
+ option = this.options.find((it) => it.shortcut === args[i].slice(1));
53
+ if (!option) {
54
+ throw new InvalidInputError(`Undefined option ${args[i]}`);
55
+ }
56
+ }
57
+ if (!option) {
58
+ throw new InvalidInputError(`Unexpected value "${args[i]}"`);
59
+ }
60
+ if (option) {
61
+ if (option.deprecated) {
62
+ console.warn(`Option ${option.name} is deprecated.`);
63
+ }
64
+ if (option.mode === Option.OptionMode.VALUE_NONE) {
65
+ options[option.name] = true;
66
+ continue;
67
+ }
68
+ const value = this.tryParseValue(args[i + 1]);
69
+ if (value !== void 0) {
70
+ i++;
71
+ }
72
+ if (option.mode === Option.OptionMode.VALUE_ARRAY) {
73
+ if (value === void 0) {
74
+ throw new InvalidInputError(`Undefined value for option --${option.name}`);
75
+ }
76
+ options[option.name] = options[option.name] || [];
77
+ options[option.name].push(value);
78
+ } else if (option.mode === Option.OptionMode.VALUE_REQUIRED) {
79
+ if (value === void 0) {
80
+ throw new InvalidInputError(`Undefined value for option --${option.name}`);
81
+ }
82
+ options[option.name] = value;
83
+ } else if (option.mode === Option.OptionMode.VALUE_OPTIONAL) {
84
+ options[option.name] = value === void 0 ? true : value;
85
+ }
86
+ }
87
+ }
88
+ for (let option of this.options) {
89
+ if (options[option.name] !== void 0) {
90
+ continue;
91
+ }
92
+ if (option.required) {
93
+ throw new InvalidInputError(`Option --${option.name} is required`);
94
+ } else {
95
+ options[option.name] = void 0;
96
+ }
97
+ }
98
+ return new Input.Input(argumentValues, options);
99
+ }
100
+ tryParseValue(arg) {
101
+ if (arg === void 0) {
102
+ return void 0;
103
+ }
104
+ if (arg.startsWith("-")) {
105
+ return void 0;
106
+ }
107
+ if (arg.startsWith("\\-")) {
108
+ return "-" + arg.slice(1);
109
+ }
110
+ return arg;
111
+ }
112
+ }
113
+ class InvalidInputError extends Error {
114
+ }
115
+ exports.InputParser = InputParser;
116
+ exports.InvalidInputError = InvalidInputError;
117
+ //# sourceMappingURL=InputParser.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputParser.cjs","sources":["../../../../../packages/cli-common/src/application/InputParser.ts"],"sourcesContent":["import { Argument } from './Argument'\nimport { Option, OptionMode } from './Option'\nimport { Arguments, Input, Options } from './Input'\n\nexport class InputParser {\n\tconstructor(private _arguments: Argument[], private options: Option[]) {}\n\n\tparse<Args extends Arguments, Opts extends Options>(args: string[]): Input<Args, Opts> {\n\t\targs = args.reduce<string[]>((acc, arg) => [...acc, ...(arg.startsWith('-') ? arg.split('=', 2) : [arg])], [])\n\t\tlet options: Options = {}\n\t\tlet argumentValues: Arguments = {}\n\n\t\tlet i = 0\n\t\tlet argumentNumber = 0\n\t\tconst variadicArg = this._arguments[this._arguments.length - 1]?.variadic\n\t\t\t? this._arguments[this._arguments.length - 1]\n\t\t\t: undefined\n\t\tfor (; i < args.length; i++) {\n\t\t\tconst value = this.tryParseValue(args[i])\n\t\t\tif (value === undefined) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tconst argument = this._arguments[argumentNumber] || variadicArg\n\t\t\tif (!argument) {\n\t\t\t\tthrow new InvalidInputError(`Unresolved argument for value \"${value}\"`)\n\t\t\t}\n\t\t\tif (argument.validator && !argument.validator(value)) {\n\t\t\t\tthrow new InvalidInputError(`Invalid value \"${value}\" for argument ${argument.name}`)\n\t\t\t}\n\t\t\tif (argument.variadic) {\n\t\t\t\targumentValues[argument.name] = argumentValues[argument.name] || []\n\t\t\t\t;(argumentValues[argument.name] as Array<string>).push(value)\n\t\t\t} else {\n\t\t\t\targumentValues[argument.name] = value\n\t\t\t}\n\t\t\targumentNumber++\n\t\t}\n\t\tfor (; argumentNumber < this._arguments.length; argumentNumber++) {\n\t\t\tif (!this._arguments[argumentNumber].optional) {\n\t\t\t\tthrow new InvalidInputError(`Argument ${this._arguments[argumentNumber].name} is required`)\n\t\t\t} else {\n\t\t\t\targumentValues[this._arguments[argumentNumber].name] = undefined\n\t\t\t}\n\t\t}\n\n\t\tfor (; i < args.length; i++) {\n\t\t\tlet option: Option | undefined\n\t\t\tif (args[i].startsWith('--')) {\n\t\t\t\toption = this.options.find(it => it.name === args[i].slice(2))\n\t\t\t\tif (!option) {\n\t\t\t\t\tthrow new InvalidInputError(`Undefined option ${args[i]}`)\n\t\t\t\t}\n\t\t\t} else if (args[i].startsWith('-')) {\n\t\t\t\toption = this.options.find(it => it.shortcut === args[i].slice(1))\n\t\t\t\tif (!option) {\n\t\t\t\t\tthrow new InvalidInputError(`Undefined option ${args[i]}`)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!option) {\n\t\t\t\tthrow new InvalidInputError(`Unexpected value \"${args[i]}\"`)\n\t\t\t}\n\t\t\tif (option) {\n\t\t\t\tif (option.deprecated) {\n\t\t\t\t\tconsole.warn(`Option ${option.name} is deprecated.`)\n\t\t\t\t}\n\t\t\t\tif (option.mode === OptionMode.VALUE_NONE) {\n\t\t\t\t\toptions[option.name] = true\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst value = this.tryParseValue(args[i + 1])\n\t\t\t\tif (value !== undefined) {\n\t\t\t\t\ti++\n\t\t\t\t}\n\t\t\t\tif (option.mode === OptionMode.VALUE_ARRAY) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tthrow new InvalidInputError(`Undefined value for option --${option.name}`)\n\t\t\t\t\t}\n\t\t\t\t\toptions[option.name] = options[option.name] || []\n\t\t\t\t\t;(options[option.name] as Array<string>).push(value)\n\t\t\t\t} else if (option.mode === OptionMode.VALUE_REQUIRED) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tthrow new InvalidInputError(`Undefined value for option --${option.name}`)\n\t\t\t\t\t}\n\t\t\t\t\toptions[option.name] = value\n\t\t\t\t} else if (option.mode === OptionMode.VALUE_OPTIONAL) {\n\t\t\t\t\toptions[option.name] = value === undefined ? true : value\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (let option of this.options) {\n\t\t\tif (options[option.name] !== undefined) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (option.required) {\n\t\t\t\tthrow new InvalidInputError(`Option --${option.name} is required`)\n\t\t\t} else {\n\t\t\t\toptions[option.name] = undefined\n\t\t\t}\n\t\t}\n\n\t\treturn new Input<Args, Opts>(argumentValues as Args, options as Opts)\n\t}\n\n\tprivate tryParseValue(arg: string | undefined): string | undefined {\n\t\tif (arg === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (arg.startsWith('-')) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (arg.startsWith('\\\\-')) {\n\t\t\treturn '-' + arg.slice(1)\n\t\t}\n\t\treturn arg\n\t}\n}\n\nexport class InvalidInputError extends Error {}\n"],"names":["OptionMode","Input"],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ import { OptionMode } from "./Option.js";
2
+ import { Input } from "./Input.js";
3
+ class InputParser {
4
+ constructor(_arguments, options) {
5
+ this._arguments = _arguments;
6
+ this.options = options;
7
+ }
8
+ parse(args) {
9
+ args = args.reduce((acc, arg) => [...acc, ...arg.startsWith("-") ? arg.split("=", 2) : [arg]], []);
10
+ let options = {};
11
+ let argumentValues = {};
12
+ let i = 0;
13
+ let argumentNumber = 0;
14
+ const variadicArg = this._arguments[this._arguments.length - 1]?.variadic ? this._arguments[this._arguments.length - 1] : void 0;
15
+ for (; i < args.length; i++) {
16
+ const value = this.tryParseValue(args[i]);
17
+ if (value === void 0) {
18
+ break;
19
+ }
20
+ const argument = this._arguments[argumentNumber] || variadicArg;
21
+ if (!argument) {
22
+ throw new InvalidInputError(`Unresolved argument for value "${value}"`);
23
+ }
24
+ if (argument.validator && !argument.validator(value)) {
25
+ throw new InvalidInputError(`Invalid value "${value}" for argument ${argument.name}`);
26
+ }
27
+ if (argument.variadic) {
28
+ argumentValues[argument.name] = argumentValues[argument.name] || [];
29
+ argumentValues[argument.name].push(value);
30
+ } else {
31
+ argumentValues[argument.name] = value;
32
+ }
33
+ argumentNumber++;
34
+ }
35
+ for (; argumentNumber < this._arguments.length; argumentNumber++) {
36
+ if (!this._arguments[argumentNumber].optional) {
37
+ throw new InvalidInputError(`Argument ${this._arguments[argumentNumber].name} is required`);
38
+ } else {
39
+ argumentValues[this._arguments[argumentNumber].name] = void 0;
40
+ }
41
+ }
42
+ for (; i < args.length; i++) {
43
+ let option;
44
+ if (args[i].startsWith("--")) {
45
+ option = this.options.find((it) => it.name === args[i].slice(2));
46
+ if (!option) {
47
+ throw new InvalidInputError(`Undefined option ${args[i]}`);
48
+ }
49
+ } else if (args[i].startsWith("-")) {
50
+ option = this.options.find((it) => it.shortcut === args[i].slice(1));
51
+ if (!option) {
52
+ throw new InvalidInputError(`Undefined option ${args[i]}`);
53
+ }
54
+ }
55
+ if (!option) {
56
+ throw new InvalidInputError(`Unexpected value "${args[i]}"`);
57
+ }
58
+ if (option) {
59
+ if (option.deprecated) {
60
+ console.warn(`Option ${option.name} is deprecated.`);
61
+ }
62
+ if (option.mode === OptionMode.VALUE_NONE) {
63
+ options[option.name] = true;
64
+ continue;
65
+ }
66
+ const value = this.tryParseValue(args[i + 1]);
67
+ if (value !== void 0) {
68
+ i++;
69
+ }
70
+ if (option.mode === OptionMode.VALUE_ARRAY) {
71
+ if (value === void 0) {
72
+ throw new InvalidInputError(`Undefined value for option --${option.name}`);
73
+ }
74
+ options[option.name] = options[option.name] || [];
75
+ options[option.name].push(value);
76
+ } else if (option.mode === OptionMode.VALUE_REQUIRED) {
77
+ if (value === void 0) {
78
+ throw new InvalidInputError(`Undefined value for option --${option.name}`);
79
+ }
80
+ options[option.name] = value;
81
+ } else if (option.mode === OptionMode.VALUE_OPTIONAL) {
82
+ options[option.name] = value === void 0 ? true : value;
83
+ }
84
+ }
85
+ }
86
+ for (let option of this.options) {
87
+ if (options[option.name] !== void 0) {
88
+ continue;
89
+ }
90
+ if (option.required) {
91
+ throw new InvalidInputError(`Option --${option.name} is required`);
92
+ } else {
93
+ options[option.name] = void 0;
94
+ }
95
+ }
96
+ return new Input(argumentValues, options);
97
+ }
98
+ tryParseValue(arg) {
99
+ if (arg === void 0) {
100
+ return void 0;
101
+ }
102
+ if (arg.startsWith("-")) {
103
+ return void 0;
104
+ }
105
+ if (arg.startsWith("\\-")) {
106
+ return "-" + arg.slice(1);
107
+ }
108
+ return arg;
109
+ }
110
+ }
111
+ class InvalidInputError extends Error {
112
+ }
113
+ export {
114
+ InputParser,
115
+ InvalidInputError
116
+ };
117
+ //# sourceMappingURL=InputParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputParser.js","sources":["../../../../../packages/cli-common/src/application/InputParser.ts"],"sourcesContent":["import { Argument } from './Argument'\nimport { Option, OptionMode } from './Option'\nimport { Arguments, Input, Options } from './Input'\n\nexport class InputParser {\n\tconstructor(private _arguments: Argument[], private options: Option[]) {}\n\n\tparse<Args extends Arguments, Opts extends Options>(args: string[]): Input<Args, Opts> {\n\t\targs = args.reduce<string[]>((acc, arg) => [...acc, ...(arg.startsWith('-') ? arg.split('=', 2) : [arg])], [])\n\t\tlet options: Options = {}\n\t\tlet argumentValues: Arguments = {}\n\n\t\tlet i = 0\n\t\tlet argumentNumber = 0\n\t\tconst variadicArg = this._arguments[this._arguments.length - 1]?.variadic\n\t\t\t? this._arguments[this._arguments.length - 1]\n\t\t\t: undefined\n\t\tfor (; i < args.length; i++) {\n\t\t\tconst value = this.tryParseValue(args[i])\n\t\t\tif (value === undefined) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tconst argument = this._arguments[argumentNumber] || variadicArg\n\t\t\tif (!argument) {\n\t\t\t\tthrow new InvalidInputError(`Unresolved argument for value \"${value}\"`)\n\t\t\t}\n\t\t\tif (argument.validator && !argument.validator(value)) {\n\t\t\t\tthrow new InvalidInputError(`Invalid value \"${value}\" for argument ${argument.name}`)\n\t\t\t}\n\t\t\tif (argument.variadic) {\n\t\t\t\targumentValues[argument.name] = argumentValues[argument.name] || []\n\t\t\t\t;(argumentValues[argument.name] as Array<string>).push(value)\n\t\t\t} else {\n\t\t\t\targumentValues[argument.name] = value\n\t\t\t}\n\t\t\targumentNumber++\n\t\t}\n\t\tfor (; argumentNumber < this._arguments.length; argumentNumber++) {\n\t\t\tif (!this._arguments[argumentNumber].optional) {\n\t\t\t\tthrow new InvalidInputError(`Argument ${this._arguments[argumentNumber].name} is required`)\n\t\t\t} else {\n\t\t\t\targumentValues[this._arguments[argumentNumber].name] = undefined\n\t\t\t}\n\t\t}\n\n\t\tfor (; i < args.length; i++) {\n\t\t\tlet option: Option | undefined\n\t\t\tif (args[i].startsWith('--')) {\n\t\t\t\toption = this.options.find(it => it.name === args[i].slice(2))\n\t\t\t\tif (!option) {\n\t\t\t\t\tthrow new InvalidInputError(`Undefined option ${args[i]}`)\n\t\t\t\t}\n\t\t\t} else if (args[i].startsWith('-')) {\n\t\t\t\toption = this.options.find(it => it.shortcut === args[i].slice(1))\n\t\t\t\tif (!option) {\n\t\t\t\t\tthrow new InvalidInputError(`Undefined option ${args[i]}`)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!option) {\n\t\t\t\tthrow new InvalidInputError(`Unexpected value \"${args[i]}\"`)\n\t\t\t}\n\t\t\tif (option) {\n\t\t\t\tif (option.deprecated) {\n\t\t\t\t\tconsole.warn(`Option ${option.name} is deprecated.`)\n\t\t\t\t}\n\t\t\t\tif (option.mode === OptionMode.VALUE_NONE) {\n\t\t\t\t\toptions[option.name] = true\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst value = this.tryParseValue(args[i + 1])\n\t\t\t\tif (value !== undefined) {\n\t\t\t\t\ti++\n\t\t\t\t}\n\t\t\t\tif (option.mode === OptionMode.VALUE_ARRAY) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tthrow new InvalidInputError(`Undefined value for option --${option.name}`)\n\t\t\t\t\t}\n\t\t\t\t\toptions[option.name] = options[option.name] || []\n\t\t\t\t\t;(options[option.name] as Array<string>).push(value)\n\t\t\t\t} else if (option.mode === OptionMode.VALUE_REQUIRED) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tthrow new InvalidInputError(`Undefined value for option --${option.name}`)\n\t\t\t\t\t}\n\t\t\t\t\toptions[option.name] = value\n\t\t\t\t} else if (option.mode === OptionMode.VALUE_OPTIONAL) {\n\t\t\t\t\toptions[option.name] = value === undefined ? true : value\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (let option of this.options) {\n\t\t\tif (options[option.name] !== undefined) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (option.required) {\n\t\t\t\tthrow new InvalidInputError(`Option --${option.name} is required`)\n\t\t\t} else {\n\t\t\t\toptions[option.name] = undefined\n\t\t\t}\n\t\t}\n\n\t\treturn new Input<Args, Opts>(argumentValues as Args, options as Opts)\n\t}\n\n\tprivate tryParseValue(arg: string | undefined): string | undefined {\n\t\tif (arg === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (arg.startsWith('-')) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (arg.startsWith('\\\\-')) {\n\t\t\treturn '-' + arg.slice(1)\n\t\t}\n\t\treturn arg\n\t}\n}\n\nexport class InvalidInputError extends Error {}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ var OptionMode = /* @__PURE__ */ ((OptionMode2) => {
4
+ OptionMode2["VALUE_NONE"] = "value_none";
5
+ OptionMode2["VALUE_OPTIONAL"] = "value_optional";
6
+ OptionMode2["VALUE_REQUIRED"] = "value_required";
7
+ OptionMode2["VALUE_ARRAY"] = "value_array";
8
+ return OptionMode2;
9
+ })(OptionMode || {});
10
+ class OptionConfiguration {
11
+ constructor(option) {
12
+ this.option = option;
13
+ }
14
+ shortcut(shortcut) {
15
+ this.option.shortcut = shortcut;
16
+ return this;
17
+ }
18
+ description(description) {
19
+ this.option.description = description;
20
+ return this;
21
+ }
22
+ required(required = true) {
23
+ this.option.required = required;
24
+ return this;
25
+ }
26
+ valueRequired() {
27
+ this.option.mode = "value_required";
28
+ return this;
29
+ }
30
+ valueNone() {
31
+ this.option.mode = "value_none";
32
+ return this;
33
+ }
34
+ valueOptional() {
35
+ this.option.mode = "value_optional";
36
+ return this;
37
+ }
38
+ valueArray() {
39
+ this.option.mode = "value_array";
40
+ return this;
41
+ }
42
+ deprecated() {
43
+ this.option.deprecated = true;
44
+ return this;
45
+ }
46
+ }
47
+ exports.OptionConfiguration = OptionConfiguration;
48
+ exports.OptionMode = OptionMode;
49
+ //# sourceMappingURL=Option.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Option.cjs","sources":["../../../../../packages/cli-common/src/application/Option.ts"],"sourcesContent":["export type Option = {\n\tname: string\n\tdescription?: string\n\tshortcut?: string\n\trequired: boolean\n\tdeprecated: boolean\n\tmode: OptionMode\n}\n\nexport enum OptionMode {\n\tVALUE_NONE = 'value_none',\n\tVALUE_OPTIONAL = 'value_optional',\n\tVALUE_REQUIRED = 'value_required',\n\tVALUE_ARRAY = 'value_array',\n}\n\nexport class OptionConfiguration {\n\tconstructor(private readonly option: Option) {}\n\n\tpublic shortcut(shortcut: string) {\n\t\tthis.option.shortcut = shortcut\n\t\treturn this\n\t}\n\n\tpublic description(description: string) {\n\t\tthis.option.description = description\n\t\treturn this\n\t}\n\n\tpublic required(required: boolean = true) {\n\t\tthis.option.required = required\n\t\treturn this\n\t}\n\n\tpublic valueRequired() {\n\t\tthis.option.mode = OptionMode.VALUE_REQUIRED\n\t\treturn this\n\t}\n\n\tpublic valueNone() {\n\t\tthis.option.mode = OptionMode.VALUE_NONE\n\t\treturn this\n\t}\n\n\tpublic valueOptional() {\n\t\tthis.option.mode = OptionMode.VALUE_OPTIONAL\n\t\treturn this\n\t}\n\n\tpublic valueArray() {\n\t\tthis.option.mode = OptionMode.VALUE_ARRAY\n\t\treturn this\n\t}\n\n\tpublic deprecated() {\n\t\tthis.option.deprecated = true\n\t\treturn this\n\t}\n}\n"],"names":["OptionMode"],"mappings":";;AASY,IAAA,+BAAAA,gBAAL;AACNA,cAAA,YAAa,IAAA;AACbA,cAAA,gBAAiB,IAAA;AACjBA,cAAA,gBAAiB,IAAA;AACjBA,cAAA,aAAc,IAAA;AAJHA,SAAAA;AAAA,GAAA,cAAA,CAAA,CAAA;AAOL,MAAM,oBAAoB;AAAA,EAChC,YAA6B,QAAgB;AAAhB,SAAA,SAAA;AAAA,EAAiB;AAAA,EAEvC,SAAS,UAAkB;AACjC,SAAK,OAAO,WAAW;AAChB,WAAA;AAAA,EACR;AAAA,EAEO,YAAY,aAAqB;AACvC,SAAK,OAAO,cAAc;AACnB,WAAA;AAAA,EACR;AAAA,EAEO,SAAS,WAAoB,MAAM;AACzC,SAAK,OAAO,WAAW;AAChB,WAAA;AAAA,EACR;AAAA,EAEO,gBAAgB;AACtB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EACR;AAAA,EAEO,YAAY;AAClB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EACR;AAAA,EAEO,gBAAgB;AACtB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EACR;AAAA,EAEO,aAAa;AACnB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EACR;AAAA,EAEO,aAAa;AACnB,SAAK,OAAO,aAAa;AAClB,WAAA;AAAA,EACR;AACD;;;"}
@@ -0,0 +1,49 @@
1
+ var OptionMode = /* @__PURE__ */ ((OptionMode2) => {
2
+ OptionMode2["VALUE_NONE"] = "value_none";
3
+ OptionMode2["VALUE_OPTIONAL"] = "value_optional";
4
+ OptionMode2["VALUE_REQUIRED"] = "value_required";
5
+ OptionMode2["VALUE_ARRAY"] = "value_array";
6
+ return OptionMode2;
7
+ })(OptionMode || {});
8
+ class OptionConfiguration {
9
+ constructor(option) {
10
+ this.option = option;
11
+ }
12
+ shortcut(shortcut) {
13
+ this.option.shortcut = shortcut;
14
+ return this;
15
+ }
16
+ description(description) {
17
+ this.option.description = description;
18
+ return this;
19
+ }
20
+ required(required = true) {
21
+ this.option.required = required;
22
+ return this;
23
+ }
24
+ valueRequired() {
25
+ this.option.mode = "value_required";
26
+ return this;
27
+ }
28
+ valueNone() {
29
+ this.option.mode = "value_none";
30
+ return this;
31
+ }
32
+ valueOptional() {
33
+ this.option.mode = "value_optional";
34
+ return this;
35
+ }
36
+ valueArray() {
37
+ this.option.mode = "value_array";
38
+ return this;
39
+ }
40
+ deprecated() {
41
+ this.option.deprecated = true;
42
+ return this;
43
+ }
44
+ }
45
+ export {
46
+ OptionConfiguration,
47
+ OptionMode
48
+ };
49
+ //# sourceMappingURL=Option.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Option.js","sources":["../../../../../packages/cli-common/src/application/Option.ts"],"sourcesContent":["export type Option = {\n\tname: string\n\tdescription?: string\n\tshortcut?: string\n\trequired: boolean\n\tdeprecated: boolean\n\tmode: OptionMode\n}\n\nexport enum OptionMode {\n\tVALUE_NONE = 'value_none',\n\tVALUE_OPTIONAL = 'value_optional',\n\tVALUE_REQUIRED = 'value_required',\n\tVALUE_ARRAY = 'value_array',\n}\n\nexport class OptionConfiguration {\n\tconstructor(private readonly option: Option) {}\n\n\tpublic shortcut(shortcut: string) {\n\t\tthis.option.shortcut = shortcut\n\t\treturn this\n\t}\n\n\tpublic description(description: string) {\n\t\tthis.option.description = description\n\t\treturn this\n\t}\n\n\tpublic required(required: boolean = true) {\n\t\tthis.option.required = required\n\t\treturn this\n\t}\n\n\tpublic valueRequired() {\n\t\tthis.option.mode = OptionMode.VALUE_REQUIRED\n\t\treturn this\n\t}\n\n\tpublic valueNone() {\n\t\tthis.option.mode = OptionMode.VALUE_NONE\n\t\treturn this\n\t}\n\n\tpublic valueOptional() {\n\t\tthis.option.mode = OptionMode.VALUE_OPTIONAL\n\t\treturn this\n\t}\n\n\tpublic valueArray() {\n\t\tthis.option.mode = OptionMode.VALUE_ARRAY\n\t\treturn this\n\t}\n\n\tpublic deprecated() {\n\t\tthis.option.deprecated = true\n\t\treturn this\n\t}\n}\n"],"names":["OptionMode"],"mappings":"AASY,IAAA,+BAAAA,gBAAL;AACNA,cAAA,YAAa,IAAA;AACbA,cAAA,gBAAiB,IAAA;AACjBA,cAAA,gBAAiB,IAAA;AACjBA,cAAA,aAAc,IAAA;AAJHA,SAAAA;AAAA,GAAA,cAAA,CAAA,CAAA;AAOL,MAAM,oBAAoB;AAAA,EAChC,YAA6B,QAAgB;AAAhB,SAAA,SAAA;AAAA,EAAiB;AAAA,EAEvC,SAAS,UAAkB;AACjC,SAAK,OAAO,WAAW;AAChB,WAAA;AAAA,EACR;AAAA,EAEO,YAAY,aAAqB;AACvC,SAAK,OAAO,cAAc;AACnB,WAAA;AAAA,EACR;AAAA,EAEO,SAAS,WAAoB,MAAM;AACzC,SAAK,OAAO,WAAW;AAChB,WAAA;AAAA,EACR;AAAA,EAEO,gBAAgB;AACtB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EACR;AAAA,EAEO,YAAY;AAClB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EACR;AAAA,EAEO,gBAAgB;AACtB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EACR;AAAA,EAEO,aAAa;AACnB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EACR;AAAA,EAEO,aAAa;AACnB,SAAK,OAAO,aAAa;AAClB,WAAA;AAAA,EACR;AACD;"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const Option = require("./Option.cjs");
4
+ const assertNever = require("./assertNever.cjs");
5
+ class UsageFormatter {
6
+ static format(args, options, { format, indent }) {
7
+ let parts = [];
8
+ format ?? (format = "short");
9
+ indent ?? (indent = " ");
10
+ const isShort = format === "short";
11
+ for (let arg of args) {
12
+ const name = arg.name;
13
+ const argDescription = !isShort && arg.description ? ` (${arg.description})` : "";
14
+ if (arg.variadic) {
15
+ parts.push(`[...${name}${argDescription}]`);
16
+ } else if (arg.optional) {
17
+ parts.push(`[${name}${argDescription}]`);
18
+ } else {
19
+ parts.push(`<${name}${argDescription}>`);
20
+ }
21
+ }
22
+ for (let opt of options) {
23
+ if (opt.deprecated) {
24
+ continue;
25
+ }
26
+ const name = `--${opt.name}` + (!isShort && opt.shortcut ? `|-${opt.shortcut}` : "");
27
+ let valueDescription;
28
+ switch (opt.mode) {
29
+ case Option.OptionMode.VALUE_ARRAY:
30
+ case Option.OptionMode.VALUE_REQUIRED:
31
+ valueDescription = " <value>";
32
+ break;
33
+ case Option.OptionMode.VALUE_OPTIONAL:
34
+ valueDescription = " [value]";
35
+ break;
36
+ case Option.OptionMode.VALUE_NONE:
37
+ valueDescription = "";
38
+ break;
39
+ default:
40
+ assertNever.assertNever(opt.mode);
41
+ }
42
+ let optionDescription = `${name}${valueDescription}`;
43
+ if (opt.mode === Option.OptionMode.VALUE_ARRAY) {
44
+ optionDescription = `${optionDescription} [... ${optionDescription}]`;
45
+ }
46
+ if (!isShort && opt.description) {
47
+ optionDescription += ` (${opt.description})`;
48
+ }
49
+ if (!opt.required) {
50
+ optionDescription = `[${optionDescription}]`;
51
+ }
52
+ parts.push(optionDescription);
53
+ }
54
+ if (format === "multiline") {
55
+ return parts.map((it) => `${indent}${it}`).join("\n");
56
+ }
57
+ return parts.join(" ");
58
+ }
59
+ }
60
+ exports.UsageFormatter = UsageFormatter;
61
+ //# sourceMappingURL=UsageFormatter.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UsageFormatter.cjs","sources":["../../../../../packages/cli-common/src/application/UsageFormatter.ts"],"sourcesContent":["import { Argument } from './Argument'\nimport { Option, OptionMode } from './Option'\nimport { assertNever } from './assertNever'\n\nexport type UsageFormat = 'line' | 'short' | 'multiline'\nexport type UsageFormatOptions = { format?: UsageFormat; indent?: string }\n\nexport class UsageFormatter {\n\tpublic static format(args: Argument[], options: Option[], { format, indent }: UsageFormatOptions): string {\n\t\tlet parts = []\n\t\tformat ??= 'short'\n\t\tindent ??= ' '\n\t\tconst isShort = format === 'short'\n\t\tfor (let arg of args) {\n\t\t\tconst name = arg.name\n\t\t\tconst argDescription = !isShort && arg.description ? ` (${arg.description})` : ''\n\t\t\tif (arg.variadic) {\n\t\t\t\tparts.push(`[...${name}${argDescription}]`)\n\t\t\t} else if (arg.optional) {\n\t\t\t\tparts.push(`[${name}${argDescription}]`)\n\t\t\t} else {\n\t\t\t\tparts.push(`<${name}${argDescription}>`)\n\t\t\t}\n\t\t}\n\t\tfor (let opt of options) {\n\t\t\tif (opt.deprecated) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst name = `--${opt.name}` + (!isShort && opt.shortcut ? `|-${opt.shortcut}` : '')\n\t\t\tlet valueDescription\n\t\t\tswitch (opt.mode) {\n\t\t\t\tcase OptionMode.VALUE_ARRAY:\n\t\t\t\tcase OptionMode.VALUE_REQUIRED:\n\t\t\t\t\tvalueDescription = ' <value>'\n\t\t\t\t\tbreak\n\t\t\t\tcase OptionMode.VALUE_OPTIONAL:\n\t\t\t\t\tvalueDescription = ' [value]'\n\t\t\t\t\tbreak\n\t\t\t\tcase OptionMode.VALUE_NONE:\n\t\t\t\t\tvalueDescription = ''\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tassertNever(opt.mode)\n\t\t\t}\n\t\t\tlet optionDescription = `${name}${valueDescription}`\n\t\t\tif (opt.mode === OptionMode.VALUE_ARRAY) {\n\t\t\t\toptionDescription = `${optionDescription} [... ${optionDescription}]`\n\t\t\t}\n\t\t\tif (!isShort && opt.description) {\n\t\t\t\toptionDescription += ` (${opt.description})`\n\t\t\t}\n\t\t\tif (!opt.required) {\n\t\t\t\toptionDescription = `[${optionDescription}]`\n\t\t\t}\n\t\t\tparts.push(optionDescription)\n\t\t}\n\t\tif (format === 'multiline') {\n\t\t\treturn parts.map(it => `${indent}${it}`).join('\\n')\n\t\t}\n\t\treturn parts.join(' ')\n\t}\n}\n"],"names":["OptionMode","assertNever"],"mappings":";;;;AAOO,MAAM,eAAe;AAAA,EAC3B,OAAc,OAAO,MAAkB,SAAmB,EAAE,QAAQ,UAAsC;AACzG,QAAI,QAAQ,CAAA;AACD,eAAA,SAAA;AACA,eAAA,SAAA;AACX,UAAM,UAAU,WAAW;AAC3B,aAAS,OAAO,MAAM;AACrB,YAAM,OAAO,IAAI;AACX,YAAA,iBAAiB,CAAC,WAAW,IAAI,cAAc,KAAK,IAAI,WAAW,MAAM;AAC/E,UAAI,IAAI,UAAU;AACjB,cAAM,KAAK,OAAO,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA,WAChC,IAAI,UAAU;AACxB,cAAM,KAAK,IAAI,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA,OACjC;AACN,cAAM,KAAK,IAAI,IAAI,GAAG,cAAc,GAAG;AAAA,MACxC;AAAA,IACD;AACA,aAAS,OAAO,SAAS;AACxB,UAAI,IAAI,YAAY;AACnB;AAAA,MACD;AACA,YAAM,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,WAAW,KAAK,IAAI,QAAQ,KAAK;AAC7E,UAAA;AACJ,cAAQ,IAAI,MAAM;AAAA,QACjB,KAAKA,OAAAA,WAAW;AAAA,QAChB,KAAKA,OAAW,WAAA;AACI,6BAAA;AACnB;AAAA,QACD,KAAKA,OAAW,WAAA;AACI,6BAAA;AACnB;AAAA,QACD,KAAKA,OAAW,WAAA;AACI,6BAAA;AACnB;AAAA,QACD;AACCC,kCAAY,IAAI,IAAI;AAAA,MACtB;AACA,UAAI,oBAAoB,GAAG,IAAI,GAAG,gBAAgB;AAC9C,UAAA,IAAI,SAASD,OAAA,WAAW,aAAa;AACpB,4BAAA,GAAG,iBAAiB,SAAS,iBAAiB;AAAA,MACnE;AACI,UAAA,CAAC,WAAW,IAAI,aAAa;AACX,6BAAA,KAAK,IAAI,WAAW;AAAA,MAC1C;AACI,UAAA,CAAC,IAAI,UAAU;AAClB,4BAAoB,IAAI,iBAAiB;AAAA,MAC1C;AACA,YAAM,KAAK,iBAAiB;AAAA,IAC7B;AACA,QAAI,WAAW,aAAa;AACpB,aAAA,MAAM,IAAI,CAAA,OAAM,GAAG,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,IAAI;AAAA,IACnD;AACO,WAAA,MAAM,KAAK,GAAG;AAAA,EACtB;AACD;;"}
@@ -0,0 +1,61 @@
1
+ import { OptionMode } from "./Option.js";
2
+ import { assertNever } from "./assertNever.js";
3
+ class UsageFormatter {
4
+ static format(args, options, { format, indent }) {
5
+ let parts = [];
6
+ format ?? (format = "short");
7
+ indent ?? (indent = " ");
8
+ const isShort = format === "short";
9
+ for (let arg of args) {
10
+ const name = arg.name;
11
+ const argDescription = !isShort && arg.description ? ` (${arg.description})` : "";
12
+ if (arg.variadic) {
13
+ parts.push(`[...${name}${argDescription}]`);
14
+ } else if (arg.optional) {
15
+ parts.push(`[${name}${argDescription}]`);
16
+ } else {
17
+ parts.push(`<${name}${argDescription}>`);
18
+ }
19
+ }
20
+ for (let opt of options) {
21
+ if (opt.deprecated) {
22
+ continue;
23
+ }
24
+ const name = `--${opt.name}` + (!isShort && opt.shortcut ? `|-${opt.shortcut}` : "");
25
+ let valueDescription;
26
+ switch (opt.mode) {
27
+ case OptionMode.VALUE_ARRAY:
28
+ case OptionMode.VALUE_REQUIRED:
29
+ valueDescription = " <value>";
30
+ break;
31
+ case OptionMode.VALUE_OPTIONAL:
32
+ valueDescription = " [value]";
33
+ break;
34
+ case OptionMode.VALUE_NONE:
35
+ valueDescription = "";
36
+ break;
37
+ default:
38
+ assertNever(opt.mode);
39
+ }
40
+ let optionDescription = `${name}${valueDescription}`;
41
+ if (opt.mode === OptionMode.VALUE_ARRAY) {
42
+ optionDescription = `${optionDescription} [... ${optionDescription}]`;
43
+ }
44
+ if (!isShort && opt.description) {
45
+ optionDescription += ` (${opt.description})`;
46
+ }
47
+ if (!opt.required) {
48
+ optionDescription = `[${optionDescription}]`;
49
+ }
50
+ parts.push(optionDescription);
51
+ }
52
+ if (format === "multiline") {
53
+ return parts.map((it) => `${indent}${it}`).join("\n");
54
+ }
55
+ return parts.join(" ");
56
+ }
57
+ }
58
+ export {
59
+ UsageFormatter
60
+ };
61
+ //# sourceMappingURL=UsageFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UsageFormatter.js","sources":["../../../../../packages/cli-common/src/application/UsageFormatter.ts"],"sourcesContent":["import { Argument } from './Argument'\nimport { Option, OptionMode } from './Option'\nimport { assertNever } from './assertNever'\n\nexport type UsageFormat = 'line' | 'short' | 'multiline'\nexport type UsageFormatOptions = { format?: UsageFormat; indent?: string }\n\nexport class UsageFormatter {\n\tpublic static format(args: Argument[], options: Option[], { format, indent }: UsageFormatOptions): string {\n\t\tlet parts = []\n\t\tformat ??= 'short'\n\t\tindent ??= ' '\n\t\tconst isShort = format === 'short'\n\t\tfor (let arg of args) {\n\t\t\tconst name = arg.name\n\t\t\tconst argDescription = !isShort && arg.description ? ` (${arg.description})` : ''\n\t\t\tif (arg.variadic) {\n\t\t\t\tparts.push(`[...${name}${argDescription}]`)\n\t\t\t} else if (arg.optional) {\n\t\t\t\tparts.push(`[${name}${argDescription}]`)\n\t\t\t} else {\n\t\t\t\tparts.push(`<${name}${argDescription}>`)\n\t\t\t}\n\t\t}\n\t\tfor (let opt of options) {\n\t\t\tif (opt.deprecated) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst name = `--${opt.name}` + (!isShort && opt.shortcut ? `|-${opt.shortcut}` : '')\n\t\t\tlet valueDescription\n\t\t\tswitch (opt.mode) {\n\t\t\t\tcase OptionMode.VALUE_ARRAY:\n\t\t\t\tcase OptionMode.VALUE_REQUIRED:\n\t\t\t\t\tvalueDescription = ' <value>'\n\t\t\t\t\tbreak\n\t\t\t\tcase OptionMode.VALUE_OPTIONAL:\n\t\t\t\t\tvalueDescription = ' [value]'\n\t\t\t\t\tbreak\n\t\t\t\tcase OptionMode.VALUE_NONE:\n\t\t\t\t\tvalueDescription = ''\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tassertNever(opt.mode)\n\t\t\t}\n\t\t\tlet optionDescription = `${name}${valueDescription}`\n\t\t\tif (opt.mode === OptionMode.VALUE_ARRAY) {\n\t\t\t\toptionDescription = `${optionDescription} [... ${optionDescription}]`\n\t\t\t}\n\t\t\tif (!isShort && opt.description) {\n\t\t\t\toptionDescription += ` (${opt.description})`\n\t\t\t}\n\t\t\tif (!opt.required) {\n\t\t\t\toptionDescription = `[${optionDescription}]`\n\t\t\t}\n\t\t\tparts.push(optionDescription)\n\t\t}\n\t\tif (format === 'multiline') {\n\t\t\treturn parts.map(it => `${indent}${it}`).join('\\n')\n\t\t}\n\t\treturn parts.join(' ')\n\t}\n}\n"],"names":[],"mappings":";;AAOO,MAAM,eAAe;AAAA,EAC3B,OAAc,OAAO,MAAkB,SAAmB,EAAE,QAAQ,UAAsC;AACzG,QAAI,QAAQ,CAAA;AACD,eAAA,SAAA;AACA,eAAA,SAAA;AACX,UAAM,UAAU,WAAW;AAC3B,aAAS,OAAO,MAAM;AACrB,YAAM,OAAO,IAAI;AACX,YAAA,iBAAiB,CAAC,WAAW,IAAI,cAAc,KAAK,IAAI,WAAW,MAAM;AAC/E,UAAI,IAAI,UAAU;AACjB,cAAM,KAAK,OAAO,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA,WAChC,IAAI,UAAU;AACxB,cAAM,KAAK,IAAI,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA,OACjC;AACN,cAAM,KAAK,IAAI,IAAI,GAAG,cAAc,GAAG;AAAA,MACxC;AAAA,IACD;AACA,aAAS,OAAO,SAAS;AACxB,UAAI,IAAI,YAAY;AACnB;AAAA,MACD;AACA,YAAM,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,WAAW,KAAK,IAAI,QAAQ,KAAK;AAC7E,UAAA;AACJ,cAAQ,IAAI,MAAM;AAAA,QACjB,KAAK,WAAW;AAAA,QAChB,KAAK,WAAW;AACI,6BAAA;AACnB;AAAA,QACD,KAAK,WAAW;AACI,6BAAA;AACnB;AAAA,QACD,KAAK,WAAW;AACI,6BAAA;AACnB;AAAA,QACD;AACC,sBAAY,IAAI,IAAI;AAAA,MACtB;AACA,UAAI,oBAAoB,GAAG,IAAI,GAAG,gBAAgB;AAC9C,UAAA,IAAI,SAAS,WAAW,aAAa;AACpB,4BAAA,GAAG,iBAAiB,SAAS,iBAAiB;AAAA,MACnE;AACI,UAAA,CAAC,WAAW,IAAI,aAAa;AACX,6BAAA,KAAK,IAAI,WAAW;AAAA,MAC1C;AACI,UAAA,CAAC,IAAI,UAAU;AAClB,4BAAoB,IAAI,iBAAiB;AAAA,MAC1C;AACA,YAAM,KAAK,iBAAiB;AAAA,IAC7B;AACA,QAAI,WAAW,aAAa;AACpB,aAAA,MAAM,IAAI,CAAA,OAAM,GAAG,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,IAAI;AAAA,IACnD;AACO,WAAA,MAAM,KAAK,GAAG;AAAA,EACtB;AACD;"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function assertNever(_) {
4
+ throw new Error();
5
+ }
6
+ exports.assertNever = assertNever;
7
+ //# sourceMappingURL=assertNever.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertNever.cjs","sources":["../../../../../packages/cli-common/src/application/assertNever.ts"],"sourcesContent":["export function assertNever(_: never): never {\n\tthrow new Error()\n}\n"],"names":[],"mappings":";;AAAO,SAAS,YAAY,GAAiB;AAC5C,QAAM,IAAI,MAAM;AACjB;;"}
@@ -0,0 +1,7 @@
1
+ function assertNever(_) {
2
+ throw new Error();
3
+ }
4
+ export {
5
+ assertNever
6
+ };
7
+ //# sourceMappingURL=assertNever.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertNever.js","sources":["../../../../../packages/cli-common/src/application/assertNever.ts"],"sourcesContent":["export function assertNever(_: never): never {\n\tthrow new Error()\n}\n"],"names":[],"mappings":"AAAO,SAAS,YAAY,GAAiB;AAC5C,QAAM,IAAI,MAAM;AACjB;"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const node_child_process = require("node:child_process");
4
+ const chalk = require("chalk");
5
+ var __defProp = Object.defineProperty;
6
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
+ var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
8
+ class CommandRunner {
9
+ constructor() {
10
+ __publicField(this, "runCommand", (command, args, options) => {
11
+ const args2 = args.filter((it) => it !== void 0);
12
+ if (!process.env.DISABLE_COMMAND_PRINTING) {
13
+ console.error(chalk.gray(`$ ${command} ${args2.map((it) => `'${it.replace(/'/g, `'\\''`)}'`).join(" ")}`));
14
+ }
15
+ const child = node_child_process.spawn(command, args2, {
16
+ cwd: options.cwd,
17
+ env: { ...process.env, ...options.env || {} },
18
+ detached: options.detached
19
+ });
20
+ if (options.stdin) {
21
+ options.stdin.pipe(child.stdin);
22
+ }
23
+ let stdout = "";
24
+ let stderr = "";
25
+ child.stdout.on("data", (chunk) => {
26
+ stdout += chunk.toString();
27
+ });
28
+ child.stderr.on("data", (chunk) => {
29
+ stderr += chunk.toString();
30
+ });
31
+ if (options.stdout) {
32
+ child.stdout.pipe(options.stdout);
33
+ }
34
+ if (options.stderr) {
35
+ child.stderr.pipe(options.stderr);
36
+ }
37
+ const output = new Promise((resolve, reject) => {
38
+ child.on("exit", (exitCode) => {
39
+ if (exitCode === 0) {
40
+ resolve(stdout);
41
+ } else {
42
+ reject(new ChildProcessError(exitCode, stderr));
43
+ }
44
+ });
45
+ });
46
+ return { output, child };
47
+ });
48
+ }
49
+ }
50
+ class ChildProcessError extends Error {
51
+ constructor(exitCode, stderr) {
52
+ super(`Command has failed(${exitCode}): ${stderr} `);
53
+ this.exitCode = exitCode;
54
+ this.stderr = stderr;
55
+ }
56
+ }
57
+ exports.ChildProcessError = ChildProcessError;
58
+ exports.CommandRunner = CommandRunner;
59
+ //# sourceMappingURL=CommandRunner.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandRunner.cjs","sources":["../../../../../packages/cli-common/src/npm/CommandRunner.ts"],"sourcesContent":["import { ChildProcessWithoutNullStreams, spawn } from 'node:child_process'\nimport { Readable, Writable } from 'node:stream'\nimport chalk from 'chalk'\n\nexport type RunningCommand = { child: ChildProcessWithoutNullStreams; output: Promise<string> }\n\nexport class CommandRunner {\n\trunCommand = (\n\t\tcommand: string,\n\t\targs: (string | undefined)[],\n\t\toptions: {\n\t\t\tcwd: string\n\t\t\tstdin?: Readable\n\t\t\tstdout?: Writable\n\t\t\tstderr?: Writable\n\t\t\tenv?: NodeJS.ProcessEnv\n\t\t\tdetached?: boolean\n\t\t},\n\t): RunningCommand => {\n\t\tconst args2 = args.filter((it): it is string => it !== undefined)\n\t\tif (!process.env.DISABLE_COMMAND_PRINTING) {\n\t\t\tconsole.error(chalk.gray(`$ ${command} ${args2.map(it => `'${it.replace(/'/g, `'\\\\''`)}'`).join(' ')}`))\n\t\t}\n\t\tconst child = spawn(command, args2, {\n\t\t\tcwd: options.cwd,\n\t\t\tenv: { ...process.env, ...(options.env || {}) },\n\t\t\tdetached: options.detached,\n\t\t})\n\t\tif (options.stdin) {\n\t\t\toptions.stdin.pipe(child.stdin)\n\t\t}\n\n\t\tlet stdout = ''\n\t\tlet stderr = ''\n\n\t\tchild.stdout.on('data', (chunk): void => {\n\t\t\tstdout += chunk.toString()\n\t\t})\n\n\t\tchild.stderr.on('data', (chunk): void => {\n\t\t\tstderr += chunk.toString()\n\t\t})\n\t\tif (options.stdout) {\n\t\t\tchild.stdout.pipe(options.stdout)\n\t\t}\n\t\tif (options.stderr) {\n\t\t\tchild.stderr.pipe(options.stderr)\n\t\t}\n\n\t\tconst output = new Promise<string>((resolve, reject) => {\n\t\t\tchild.on('exit', (exitCode): void => {\n\t\t\t\tif (exitCode === 0) {\n\t\t\t\t\tresolve(stdout)\n\t\t\t\t} else {\n\t\t\t\t\treject(new ChildProcessError(exitCode, stderr))\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\n\t\treturn { output, child }\n\t}\n}\n\n\nexport class ChildProcessError extends Error {\n\tconstructor(public readonly exitCode: number | null, public readonly stderr: string) {\n\t\tsuper(`Command has failed(${exitCode}): ${stderr} `)\n\t}\n}\n"],"names":["spawn"],"mappings":";;;;;;;AAMO,MAAM,cAAc;AAAA,EAApB,cAAA;AACO,kBAAA,MAAA,cAAA,CACZ,SACA,MACA,YAQoB;AACpB,YAAM,QAAQ,KAAK,OAAO,CAAC,OAAqB,OAAO,MAAS;AAC5D,UAAA,CAAC,QAAQ,IAAI,0BAA0B;AAClC,gBAAA,MAAM,MAAM,KAAK,KAAK,OAAO,IAAI,MAAM,IAAI,CAAM,OAAA,IAAI,GAAG,QAAQ,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;AAAA,MACxG;AACM,YAAA,QAAQA,mBAAAA,MAAM,SAAS,OAAO;AAAA,QACnC,KAAK,QAAQ;AAAA,QACb,KAAK,EAAE,GAAG,QAAQ,KAAK,GAAI,QAAQ,OAAO,GAAI;AAAA,QAC9C,UAAU,QAAQ;AAAA,MAAA,CAClB;AACD,UAAI,QAAQ,OAAO;AACV,gBAAA,MAAM,KAAK,MAAM,KAAK;AAAA,MAC/B;AAEA,UAAI,SAAS;AACb,UAAI,SAAS;AAEb,YAAM,OAAO,GAAG,QAAQ,CAAC,UAAgB;AACxC,kBAAU,MAAM;MAAS,CACzB;AAED,YAAM,OAAO,GAAG,QAAQ,CAAC,UAAgB;AACxC,kBAAU,MAAM;MAAS,CACzB;AACD,UAAI,QAAQ,QAAQ;AACb,cAAA,OAAO,KAAK,QAAQ,MAAM;AAAA,MACjC;AACA,UAAI,QAAQ,QAAQ;AACb,cAAA,OAAO,KAAK,QAAQ,MAAM;AAAA,MACjC;AAEA,YAAM,SAAS,IAAI,QAAgB,CAAC,SAAS,WAAW;AACjD,cAAA,GAAG,QAAQ,CAAC,aAAmB;AACpC,cAAI,aAAa,GAAG;AACnB,oBAAQ,MAAM;AAAA,UAAA,OACR;AACN,mBAAO,IAAI,kBAAkB,UAAU,MAAM,CAAC;AAAA,UAC/C;AAAA,QAAA,CACA;AAAA,MAAA,CACD;AAEM,aAAA,EAAE,QAAQ;IAAM,CACxB;AAAA,EAAA;AACD;AAGO,MAAM,0BAA0B,MAAM;AAAA,EAC5C,YAA4B,UAAyC,QAAgB;AACpF,UAAM,sBAAsB,QAAQ,MAAM,MAAM,GAAG;AADxB,SAAA,WAAA;AAAyC,SAAA,SAAA;AAAA,EAErE;AACD;;;"}