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

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,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const Argument = require("./Argument.cjs");
4
+ const Option = require("./Option.cjs");
5
+ const InputParser = require("./InputParser.cjs");
6
+ const UsageFormatter = require("./UsageFormatter.cjs");
7
+ var __defProp = Object.defineProperty;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
10
+ class CommandConfiguration {
11
+ constructor() {
12
+ __publicField(this, "descriptionValue", "");
13
+ __publicField(this, "arguments", []);
14
+ __publicField(this, "options", []);
15
+ }
16
+ description(description) {
17
+ this.descriptionValue = description;
18
+ }
19
+ argument(name) {
20
+ const options = { name, optional: false, variadic: false };
21
+ this.arguments.push(options);
22
+ return new Argument.ArgumentConfiguration(options);
23
+ }
24
+ option(name) {
25
+ const option = { name, required: false, mode: Option.OptionMode.VALUE_NONE, deprecated: false };
26
+ this.options.push(option);
27
+ return new Option.OptionConfiguration(option);
28
+ }
29
+ validate() {
30
+ for (let argument of this.arguments) {
31
+ }
32
+ }
33
+ getDescription() {
34
+ return this.descriptionValue;
35
+ }
36
+ createParser() {
37
+ return new InputParser.InputParser(this.arguments, this.options);
38
+ }
39
+ getUsage(args = {}) {
40
+ return UsageFormatter.UsageFormatter.format(this.arguments, this.options, args);
41
+ }
42
+ }
43
+ exports.CommandConfiguration = CommandConfiguration;
44
+ //# sourceMappingURL=CommandConfiguration.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandConfiguration.cjs","sources":["../../../../../packages/cli-common/src/application/CommandConfiguration.ts"],"sourcesContent":["import { Argument, ArgumentConfiguration } from './Argument'\nimport { Option, OptionConfiguration, OptionMode } from './Option'\nimport { InputParser } from './InputParser'\nimport { UsageFormat, UsageFormatter } from './UsageFormatter'\nimport { Arguments, Options } from './Input'\n\nexport class CommandConfiguration<Args extends Arguments, TOptions extends Options> {\n\tprivate descriptionValue: string = ''\n\n\tprivate arguments: Argument[] = []\n\tprivate options: Option[] = []\n\n\tpublic description(description: string) {\n\t\tthis.descriptionValue = description\n\t}\n\n\tpublic argument(name: Extract<keyof Args, string>): ArgumentConfiguration {\n\t\tconst options = { name, optional: false, variadic: false }\n\t\tthis.arguments.push(options)\n\t\treturn new ArgumentConfiguration(options)\n\t}\n\n\tpublic option(name: Extract<keyof TOptions, string>): OptionConfiguration {\n\t\tconst option: Option = { name, required: false, mode: OptionMode.VALUE_NONE, deprecated: false }\n\t\tthis.options.push(option)\n\t\treturn new OptionConfiguration(option)\n\t}\n\n\tpublic validate() {\n\t\tlet hasVariadic = false\n\t\tlet hasOptional = false\n\t\tfor (let argument of this.arguments) {\n\t\t\tif (hasOptional && !argument.optional) {\n\t\t\t\tthrow new InvalidConfigurationError(`Required argument ${argument.name} cannot follow an optional `)\n\t\t\t}\n\t\t\tif (hasVariadic) {\n\t\t\t\tthrow new InvalidConfigurationError(`A variadic argument must be the last`)\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic getDescription(): string {\n\t\treturn this.descriptionValue\n\t}\n\n\tpublic createParser(): InputParser {\n\t\treturn new InputParser(this.arguments, this.options)\n\t}\n\n\tpublic getUsage(args: { format?: UsageFormat; indent?: string } = {}): string {\n\t\treturn UsageFormatter.format(this.arguments, this.options, args)\n\t}\n}\n\nexport class InvalidConfigurationError extends Error {}\n"],"names":["ArgumentConfiguration","OptionMode","OptionConfiguration","InputParser","UsageFormatter"],"mappings":";;;;;;;;;AAMO,MAAM,qBAAuE;AAAA,EAA7E,cAAA;AACN,kBAAA,MAAQ,oBAA2B,EAAA;AAEnC,kBAAA,MAAQ,aAAwB,CAAA,CAAC;AACjC,kBAAA,MAAQ,WAAoB,CAAA,CAAC;AAAA,EAAA;AAAA,EAEtB,YAAY,aAAqB;AACvC,SAAK,mBAAmB;AAAA,EACzB;AAAA,EAEO,SAAS,MAA0D;AACzE,UAAM,UAAU,EAAE,MAAM,UAAU,OAAO,UAAU;AAC9C,SAAA,UAAU,KAAK,OAAO;AACpB,WAAA,IAAIA,SAAAA,sBAAsB,OAAO;AAAA,EACzC;AAAA,EAEO,OAAO,MAA4D;AACnE,UAAA,SAAiB,EAAE,MAAM,UAAU,OAAO,MAAMC,OAAAA,WAAW,YAAY,YAAY;AACpF,SAAA,QAAQ,KAAK,MAAM;AACjB,WAAA,IAAIC,OAAAA,oBAAoB,MAAM;AAAA,EACtC;AAAA,EAEO,WAAW;AAGR,aAAA,YAAY,KAAK,WAAW;AAAA,IAOrC;AAAA,EACD;AAAA,EAEO,iBAAyB;AAC/B,WAAO,KAAK;AAAA,EACb;AAAA,EAEO,eAA4B;AAClC,WAAO,IAAIC,YAAA,YAAY,KAAK,WAAW,KAAK,OAAO;AAAA,EACpD;AAAA,EAEO,SAAS,OAAkD,IAAY;AAC7E,WAAOC,eAAAA,eAAe,OAAO,KAAK,WAAW,KAAK,SAAS,IAAI;AAAA,EAChE;AACD;;"}
@@ -0,0 +1,44 @@
1
+ import { ArgumentConfiguration } from "./Argument.js";
2
+ import { OptionMode, OptionConfiguration } from "./Option.js";
3
+ import { InputParser } from "./InputParser.js";
4
+ import { UsageFormatter } from "./UsageFormatter.js";
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, typeof key !== "symbol" ? key + "" : key, value);
8
+ class CommandConfiguration {
9
+ constructor() {
10
+ __publicField(this, "descriptionValue", "");
11
+ __publicField(this, "arguments", []);
12
+ __publicField(this, "options", []);
13
+ }
14
+ description(description) {
15
+ this.descriptionValue = description;
16
+ }
17
+ argument(name) {
18
+ const options = { name, optional: false, variadic: false };
19
+ this.arguments.push(options);
20
+ return new ArgumentConfiguration(options);
21
+ }
22
+ option(name) {
23
+ const option = { name, required: false, mode: OptionMode.VALUE_NONE, deprecated: false };
24
+ this.options.push(option);
25
+ return new OptionConfiguration(option);
26
+ }
27
+ validate() {
28
+ for (let argument of this.arguments) {
29
+ }
30
+ }
31
+ getDescription() {
32
+ return this.descriptionValue;
33
+ }
34
+ createParser() {
35
+ return new InputParser(this.arguments, this.options);
36
+ }
37
+ getUsage(args = {}) {
38
+ return UsageFormatter.format(this.arguments, this.options, args);
39
+ }
40
+ }
41
+ export {
42
+ CommandConfiguration
43
+ };
44
+ //# sourceMappingURL=CommandConfiguration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandConfiguration.js","sources":["../../../../../packages/cli-common/src/application/CommandConfiguration.ts"],"sourcesContent":["import { Argument, ArgumentConfiguration } from './Argument'\nimport { Option, OptionConfiguration, OptionMode } from './Option'\nimport { InputParser } from './InputParser'\nimport { UsageFormat, UsageFormatter } from './UsageFormatter'\nimport { Arguments, Options } from './Input'\n\nexport class CommandConfiguration<Args extends Arguments, TOptions extends Options> {\n\tprivate descriptionValue: string = ''\n\n\tprivate arguments: Argument[] = []\n\tprivate options: Option[] = []\n\n\tpublic description(description: string) {\n\t\tthis.descriptionValue = description\n\t}\n\n\tpublic argument(name: Extract<keyof Args, string>): ArgumentConfiguration {\n\t\tconst options = { name, optional: false, variadic: false }\n\t\tthis.arguments.push(options)\n\t\treturn new ArgumentConfiguration(options)\n\t}\n\n\tpublic option(name: Extract<keyof TOptions, string>): OptionConfiguration {\n\t\tconst option: Option = { name, required: false, mode: OptionMode.VALUE_NONE, deprecated: false }\n\t\tthis.options.push(option)\n\t\treturn new OptionConfiguration(option)\n\t}\n\n\tpublic validate() {\n\t\tlet hasVariadic = false\n\t\tlet hasOptional = false\n\t\tfor (let argument of this.arguments) {\n\t\t\tif (hasOptional && !argument.optional) {\n\t\t\t\tthrow new InvalidConfigurationError(`Required argument ${argument.name} cannot follow an optional `)\n\t\t\t}\n\t\t\tif (hasVariadic) {\n\t\t\t\tthrow new InvalidConfigurationError(`A variadic argument must be the last`)\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic getDescription(): string {\n\t\treturn this.descriptionValue\n\t}\n\n\tpublic createParser(): InputParser {\n\t\treturn new InputParser(this.arguments, this.options)\n\t}\n\n\tpublic getUsage(args: { format?: UsageFormat; indent?: string } = {}): string {\n\t\treturn UsageFormatter.format(this.arguments, this.options, args)\n\t}\n}\n\nexport class InvalidConfigurationError extends Error {}\n"],"names":[],"mappings":";;;;;;;AAMO,MAAM,qBAAuE;AAAA,EAA7E,cAAA;AACN,kBAAA,MAAQ,oBAA2B,EAAA;AAEnC,kBAAA,MAAQ,aAAwB,CAAA,CAAC;AACjC,kBAAA,MAAQ,WAAoB,CAAA,CAAC;AAAA,EAAA;AAAA,EAEtB,YAAY,aAAqB;AACvC,SAAK,mBAAmB;AAAA,EACzB;AAAA,EAEO,SAAS,MAA0D;AACzE,UAAM,UAAU,EAAE,MAAM,UAAU,OAAO,UAAU;AAC9C,SAAA,UAAU,KAAK,OAAO;AACpB,WAAA,IAAI,sBAAsB,OAAO;AAAA,EACzC;AAAA,EAEO,OAAO,MAA4D;AACnE,UAAA,SAAiB,EAAE,MAAM,UAAU,OAAO,MAAM,WAAW,YAAY,YAAY;AACpF,SAAA,QAAQ,KAAK,MAAM;AACjB,WAAA,IAAI,oBAAoB,MAAM;AAAA,EACtC;AAAA,EAEO,WAAW;AAGR,aAAA,YAAY,KAAK,WAAW;AAAA,IAOrC;AAAA,EACD;AAAA,EAEO,iBAAyB;AAC/B,WAAO,KAAK;AAAA,EACb;AAAA,EAEO,eAA4B;AAClC,WAAO,IAAI,YAAY,KAAK,WAAW,KAAK,OAAO;AAAA,EACpD;AAAA,EAEO,SAAS,OAAkD,IAAY;AAC7E,WAAO,eAAe,OAAO,KAAK,WAAW,KAAK,SAAS,IAAI;AAAA,EAChE;AACD;"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const chalk = require("chalk");
4
+ class CommandManager {
5
+ constructor(commands) {
6
+ this.commands = commands;
7
+ }
8
+ createCommand(name) {
9
+ const fullName = this.findCommand(name);
10
+ const factory = this.commands[fullName];
11
+ const originalCommand = Object.entries(this.commands).find(([, it]) => it === factory);
12
+ if (!originalCommand) {
13
+ throw new Error("impl error");
14
+ }
15
+ if (originalCommand[0] !== fullName) {
16
+ console.warn(chalk.yellow(`Command name "${fullName}" is deprecated, use "${originalCommand[0]}" instead.`));
17
+ }
18
+ return [fullName, factory()];
19
+ }
20
+ findCommand(name) {
21
+ if (this.commands[name]) {
22
+ return name;
23
+ }
24
+ const pattern = new RegExp("^" + name.replace(/:/g, "\\w*\\:"));
25
+ const matchedCommands = Object.keys(this.commands).filter((it) => it.match(pattern));
26
+ if (matchedCommands.length === 1) {
27
+ return matchedCommands[0];
28
+ }
29
+ if (matchedCommands.length === 0) {
30
+ throw `Command ${name} not found.`;
31
+ }
32
+ throw `Command ${name} is ambiguous. Did you mean one of these?
33
+ - ` + matchedCommands.join("\n - ") + "\n";
34
+ }
35
+ }
36
+ exports.CommandManager = CommandManager;
37
+ //# sourceMappingURL=CommandManager.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandManager.cjs","sources":["../../../../../packages/cli-common/src/application/CommandManager.ts"],"sourcesContent":["import { Command } from './Command'\nimport chalk from 'chalk'\n\nexport type CommandFactoryList = { [command: string]: () => Command<any, any> }\n\nexport class CommandManager {\n\tconstructor(public readonly commands: CommandFactoryList) {}\n\n\tpublic createCommand(name: string): [string, Command<any, any>] {\n\t\tconst fullName = this.findCommand(name)\n\t\tconst factory = this.commands[fullName]\n\t\tconst originalCommand = Object.entries(this.commands).find(([, it]) => it === factory)\n\t\tif (!originalCommand) {\n\t\t\tthrow new Error('impl error')\n\t\t}\n\t\tif (originalCommand[0] !== fullName) {\n\t\t\tconsole.warn(chalk.yellow(`Command name \"${fullName}\" is deprecated, use \"${originalCommand[0]}\" instead.`))\n\t\t}\n\t\treturn [fullName, factory()]\n\t}\n\n\tprivate findCommand(name: string): string {\n\t\tif (this.commands[name]) {\n\t\t\treturn name\n\t\t}\n\t\tconst pattern = new RegExp('^' + name.replace(/:/g, '\\\\w*\\\\:'))\n\t\tconst matchedCommands = Object.keys(this.commands).filter(it => it.match(pattern))\n\t\tif (matchedCommands.length === 1) {\n\t\t\treturn matchedCommands[0]\n\t\t}\n\t\tif (matchedCommands.length === 0) {\n\t\t\tthrow `Command ${name} not found.`\n\t\t}\n\t\tthrow `Command ${name} is ambiguous. Did you mean one of these?\\n - ` + matchedCommands.join('\\n - ') + '\\n'\n\t}\n}\n"],"names":[],"mappings":";;;AAKO,MAAM,eAAe;AAAA,EAC3B,YAA4B,UAA8B;AAA9B,SAAA,WAAA;AAAA,EAA+B;AAAA,EAEpD,cAAc,MAA2C;AACzD,UAAA,WAAW,KAAK,YAAY,IAAI;AAChC,UAAA,UAAU,KAAK,SAAS,QAAQ;AACtC,UAAM,kBAAkB,OAAO,QAAQ,KAAK,QAAQ,EAAE,KAAK,CAAC,CAAA,EAAG,EAAE,MAAM,OAAO,OAAO;AACrF,QAAI,CAAC,iBAAiB;AACf,YAAA,IAAI,MAAM,YAAY;AAAA,IAC7B;AACI,QAAA,gBAAgB,CAAC,MAAM,UAAU;AAC5B,cAAA,KAAK,MAAM,OAAO,iBAAiB,QAAQ,yBAAyB,gBAAgB,CAAC,CAAC,YAAY,CAAC;AAAA,IAC5G;AACO,WAAA,CAAC,UAAU,QAAA,CAAS;AAAA,EAC5B;AAAA,EAEQ,YAAY,MAAsB;AACrC,QAAA,KAAK,SAAS,IAAI,GAAG;AACjB,aAAA;AAAA,IACR;AACM,UAAA,UAAU,IAAI,OAAO,MAAM,KAAK,QAAQ,MAAM,SAAS,CAAC;AACxD,UAAA,kBAAkB,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,CAAM,OAAA,GAAG,MAAM,OAAO,CAAC;AAC7E,QAAA,gBAAgB,WAAW,GAAG;AACjC,aAAO,gBAAgB,CAAC;AAAA,IACzB;AACI,QAAA,gBAAgB,WAAW,GAAG;AACjC,YAAM,WAAW,IAAI;AAAA,IACtB;AACA,UAAM,WAAW,IAAI;AAAA,OAAmD,gBAAgB,KAAK,OAAO,IAAI;AAAA,EACzG;AACD;;"}
@@ -0,0 +1,37 @@
1
+ import chalk from "chalk";
2
+ class CommandManager {
3
+ constructor(commands) {
4
+ this.commands = commands;
5
+ }
6
+ createCommand(name) {
7
+ const fullName = this.findCommand(name);
8
+ const factory = this.commands[fullName];
9
+ const originalCommand = Object.entries(this.commands).find(([, it]) => it === factory);
10
+ if (!originalCommand) {
11
+ throw new Error("impl error");
12
+ }
13
+ if (originalCommand[0] !== fullName) {
14
+ console.warn(chalk.yellow(`Command name "${fullName}" is deprecated, use "${originalCommand[0]}" instead.`));
15
+ }
16
+ return [fullName, factory()];
17
+ }
18
+ findCommand(name) {
19
+ if (this.commands[name]) {
20
+ return name;
21
+ }
22
+ const pattern = new RegExp("^" + name.replace(/:/g, "\\w*\\:"));
23
+ const matchedCommands = Object.keys(this.commands).filter((it) => it.match(pattern));
24
+ if (matchedCommands.length === 1) {
25
+ return matchedCommands[0];
26
+ }
27
+ if (matchedCommands.length === 0) {
28
+ throw `Command ${name} not found.`;
29
+ }
30
+ throw `Command ${name} is ambiguous. Did you mean one of these?
31
+ - ` + matchedCommands.join("\n - ") + "\n";
32
+ }
33
+ }
34
+ export {
35
+ CommandManager
36
+ };
37
+ //# sourceMappingURL=CommandManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandManager.js","sources":["../../../../../packages/cli-common/src/application/CommandManager.ts"],"sourcesContent":["import { Command } from './Command'\nimport chalk from 'chalk'\n\nexport type CommandFactoryList = { [command: string]: () => Command<any, any> }\n\nexport class CommandManager {\n\tconstructor(public readonly commands: CommandFactoryList) {}\n\n\tpublic createCommand(name: string): [string, Command<any, any>] {\n\t\tconst fullName = this.findCommand(name)\n\t\tconst factory = this.commands[fullName]\n\t\tconst originalCommand = Object.entries(this.commands).find(([, it]) => it === factory)\n\t\tif (!originalCommand) {\n\t\t\tthrow new Error('impl error')\n\t\t}\n\t\tif (originalCommand[0] !== fullName) {\n\t\t\tconsole.warn(chalk.yellow(`Command name \"${fullName}\" is deprecated, use \"${originalCommand[0]}\" instead.`))\n\t\t}\n\t\treturn [fullName, factory()]\n\t}\n\n\tprivate findCommand(name: string): string {\n\t\tif (this.commands[name]) {\n\t\t\treturn name\n\t\t}\n\t\tconst pattern = new RegExp('^' + name.replace(/:/g, '\\\\w*\\\\:'))\n\t\tconst matchedCommands = Object.keys(this.commands).filter(it => it.match(pattern))\n\t\tif (matchedCommands.length === 1) {\n\t\t\treturn matchedCommands[0]\n\t\t}\n\t\tif (matchedCommands.length === 0) {\n\t\t\tthrow `Command ${name} not found.`\n\t\t}\n\t\tthrow `Command ${name} is ambiguous. Did you mean one of these?\\n - ` + matchedCommands.join('\\n - ') + '\\n'\n\t}\n}\n"],"names":[],"mappings":";AAKO,MAAM,eAAe;AAAA,EAC3B,YAA4B,UAA8B;AAA9B,SAAA,WAAA;AAAA,EAA+B;AAAA,EAEpD,cAAc,MAA2C;AACzD,UAAA,WAAW,KAAK,YAAY,IAAI;AAChC,UAAA,UAAU,KAAK,SAAS,QAAQ;AACtC,UAAM,kBAAkB,OAAO,QAAQ,KAAK,QAAQ,EAAE,KAAK,CAAC,CAAA,EAAG,EAAE,MAAM,OAAO,OAAO;AACrF,QAAI,CAAC,iBAAiB;AACf,YAAA,IAAI,MAAM,YAAY;AAAA,IAC7B;AACI,QAAA,gBAAgB,CAAC,MAAM,UAAU;AAC5B,cAAA,KAAK,MAAM,OAAO,iBAAiB,QAAQ,yBAAyB,gBAAgB,CAAC,CAAC,YAAY,CAAC;AAAA,IAC5G;AACO,WAAA,CAAC,UAAU,QAAA,CAAS;AAAA,EAC5B;AAAA,EAEQ,YAAY,MAAsB;AACrC,QAAA,KAAK,SAAS,IAAI,GAAG;AACjB,aAAA;AAAA,IACR;AACM,UAAA,UAAU,IAAI,OAAO,MAAM,KAAK,QAAQ,MAAM,SAAS,CAAC;AACxD,UAAA,kBAAkB,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,CAAM,OAAA,GAAG,MAAM,OAAO,CAAC;AAC7E,QAAA,gBAAgB,WAAW,GAAG;AACjC,aAAO,gBAAgB,CAAC;AAAA,IACzB;AACI,QAAA,gBAAgB,WAAW,GAAG;AACjC,YAAM,WAAW,IAAI;AAAA,IACtB;AACA,UAAM,WAAW,IAAI;AAAA,OAAmD,gBAAgB,KAAK,OAAO,IAAI;AAAA,EACzG;AACD;"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ class Input {
4
+ constructor(args, options) {
5
+ this.args = args;
6
+ this.options = options;
7
+ }
8
+ getOption(name) {
9
+ return this.options[name];
10
+ }
11
+ getArgument(name) {
12
+ return this.args[name];
13
+ }
14
+ }
15
+ exports.Input = Input;
16
+ //# sourceMappingURL=Input.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.cjs","sources":["../../../../../packages/cli-common/src/application/Input.ts"],"sourcesContent":["export type Arguments = Record<string, string | string[] | undefined>\nexport type Options = Record<string, string | boolean | string[] | undefined>\n\nexport class Input<Args extends Arguments = Arguments, Opts extends Options = Options> {\n\tconstructor(private readonly args: Args, private readonly options: Opts) {}\n\n\tgetOption<Name extends keyof Opts>(name: Name): Opts[Name] {\n\t\treturn this.options[name]\n\t}\n\n\tgetArgument<Name extends keyof Args>(name: Name): Args[Name] {\n\t\treturn this.args[name]\n\t}\n}\n"],"names":[],"mappings":";;AAGO,MAAM,MAA0E;AAAA,EACtF,YAA6B,MAA6B,SAAe;AAA5C,SAAA,OAAA;AAA6B,SAAA,UAAA;AAAA,EAAgB;AAAA,EAE1E,UAAmC,MAAwB;AACnD,WAAA,KAAK,QAAQ,IAAI;AAAA,EACzB;AAAA,EAEA,YAAqC,MAAwB;AACrD,WAAA,KAAK,KAAK,IAAI;AAAA,EACtB;AACD;;"}
@@ -0,0 +1,16 @@
1
+ class Input {
2
+ constructor(args, options) {
3
+ this.args = args;
4
+ this.options = options;
5
+ }
6
+ getOption(name) {
7
+ return this.options[name];
8
+ }
9
+ getArgument(name) {
10
+ return this.args[name];
11
+ }
12
+ }
13
+ export {
14
+ Input
15
+ };
16
+ //# sourceMappingURL=Input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.js","sources":["../../../../../packages/cli-common/src/application/Input.ts"],"sourcesContent":["export type Arguments = Record<string, string | string[] | undefined>\nexport type Options = Record<string, string | boolean | string[] | undefined>\n\nexport class Input<Args extends Arguments = Arguments, Opts extends Options = Options> {\n\tconstructor(private readonly args: Args, private readonly options: Opts) {}\n\n\tgetOption<Name extends keyof Opts>(name: Name): Opts[Name] {\n\t\treturn this.options[name]\n\t}\n\n\tgetArgument<Name extends keyof Args>(name: Name): Args[Name] {\n\t\treturn this.args[name]\n\t}\n}\n"],"names":[],"mappings":"AAGO,MAAM,MAA0E;AAAA,EACtF,YAA6B,MAA6B,SAAe;AAA5C,SAAA,OAAA;AAA6B,SAAA,UAAA;AAAA,EAAgB;AAAA,EAE1E,UAAmC,MAAwB;AACnD,WAAA,KAAK,QAAQ,IAAI;AAAA,EACzB;AAAA,EAEA,YAAqC,MAAwB;AACrD,WAAA,KAAK,KAAK,IAAI;AAAA,EACtB;AACD;"}
@@ -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;"}