@mittwald/cli 1.0.0-alpha.46 → 1.0.0-alpha.47

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 (491) hide show
  1. package/README.md +214 -154
  2. package/bin/run.js +1 -1
  3. package/dist/commands/app/copy.d.ts +1 -1
  4. package/dist/commands/app/copy.js +2 -2
  5. package/dist/commands/app/create/node.d.ts +4 -4
  6. package/dist/commands/app/create/node.js +2 -2
  7. package/dist/commands/app/create/php.d.ts +4 -4
  8. package/dist/commands/app/create/php.js +2 -2
  9. package/dist/commands/app/create/python.d.ts +4 -4
  10. package/dist/commands/app/create/python.js +2 -2
  11. package/dist/commands/app/create/static.d.ts +4 -4
  12. package/dist/commands/app/create/static.js +2 -2
  13. package/dist/commands/app/dependency/list.d.ts +3 -4
  14. package/dist/commands/app/dependency/list.js +2 -5
  15. package/dist/commands/app/dependency/update.d.ts +1 -1
  16. package/dist/commands/app/dependency/update.js +2 -2
  17. package/dist/commands/app/dependency/versions.d.ts +3 -4
  18. package/dist/commands/app/dependency/versions.js +2 -5
  19. package/dist/commands/app/download.d.ts +3 -2
  20. package/dist/commands/app/download.js +15 -31
  21. package/dist/commands/app/get.d.ts +1 -1
  22. package/dist/commands/app/get.js +4 -4
  23. package/dist/commands/app/install/contao.d.ts +3 -3
  24. package/dist/commands/app/install/contao.js +2 -3
  25. package/dist/commands/app/install/drupal.d.ts +4 -4
  26. package/dist/commands/app/install/drupal.js +2 -3
  27. package/dist/commands/app/install/grav.d.ts +3 -3
  28. package/dist/commands/app/install/grav.js +2 -3
  29. package/dist/commands/app/install/joomla.d.ts +3 -3
  30. package/dist/commands/app/install/joomla.js +2 -3
  31. package/dist/commands/app/install/matomo.d.ts +3 -3
  32. package/dist/commands/app/install/matomo.js +2 -3
  33. package/dist/commands/app/install/moodle.d.ts +4 -4
  34. package/dist/commands/app/install/moodle.js +2 -3
  35. package/dist/commands/app/install/neos.d.ts +4 -4
  36. package/dist/commands/app/install/neos.js +2 -3
  37. package/dist/commands/app/install/nextcloud.d.ts +3 -3
  38. package/dist/commands/app/install/nextcloud.js +2 -3
  39. package/dist/commands/app/install/prestashop.d.ts +4 -4
  40. package/dist/commands/app/install/prestashop.js +2 -3
  41. package/dist/commands/app/install/shopware5.d.ts +3 -3
  42. package/dist/commands/app/install/shopware5.js +2 -3
  43. package/dist/commands/app/install/shopware6.d.ts +4 -4
  44. package/dist/commands/app/install/shopware6.js +2 -3
  45. package/dist/commands/app/install/typo3.d.ts +4 -4
  46. package/dist/commands/app/install/typo3.js +2 -3
  47. package/dist/commands/app/install/wordpress.d.ts +4 -4
  48. package/dist/commands/app/install/wordpress.js +2 -3
  49. package/dist/commands/app/list-upgrade-candidates.d.ts +2 -2
  50. package/dist/commands/app/list-upgrade-candidates.js +4 -4
  51. package/dist/commands/app/list.d.ts +3 -3
  52. package/dist/commands/app/list.js +4 -4
  53. package/dist/commands/app/ssh.d.ts +1 -1
  54. package/dist/commands/app/ssh.js +6 -6
  55. package/dist/commands/app/uninstall.d.ts +1 -1
  56. package/dist/commands/app/uninstall.js +2 -2
  57. package/dist/commands/app/upgrade.d.ts +3 -2
  58. package/dist/commands/app/upgrade.js +9 -11
  59. package/dist/commands/app/upload.d.ts +3 -2
  60. package/dist/commands/app/upload.js +15 -28
  61. package/dist/commands/app/versions.d.ts +2 -2
  62. package/dist/commands/app/versions.js +10 -19
  63. package/dist/commands/backup/create.d.ts +3 -3
  64. package/dist/commands/backup/create.js +6 -7
  65. package/dist/commands/backup/delete.d.ts +2 -2
  66. package/dist/commands/backup/delete.js +4 -9
  67. package/dist/commands/backup/download.d.ts +3 -3
  68. package/dist/commands/backup/download.js +20 -25
  69. package/dist/commands/backup/get.d.ts +2 -2
  70. package/dist/commands/backup/get.js +9 -12
  71. package/dist/commands/backup/list.d.ts +2 -4
  72. package/dist/commands/backup/list.js +8 -11
  73. package/dist/commands/backup/schedule/list.d.ts +2 -4
  74. package/dist/commands/backup/schedule/list.js +2 -5
  75. package/dist/commands/context/get.d.ts +1 -1
  76. package/dist/commands/context/get.js +2 -2
  77. package/dist/commands/context/reset.d.ts +1 -1
  78. package/dist/commands/context/reset.js +2 -2
  79. package/dist/commands/context/set.d.ts +1 -1
  80. package/dist/commands/context/set.js +6 -11
  81. package/dist/commands/conversation/categories.d.ts +2 -4
  82. package/dist/commands/conversation/categories.js +3 -6
  83. package/dist/commands/conversation/close.d.ts +3 -3
  84. package/dist/commands/conversation/close.js +6 -10
  85. package/dist/commands/conversation/create.d.ts +1 -1
  86. package/dist/commands/conversation/create.js +2 -2
  87. package/dist/commands/conversation/list.d.ts +2 -4
  88. package/dist/commands/conversation/list.js +2 -5
  89. package/dist/commands/conversation/reply.d.ts +3 -3
  90. package/dist/commands/conversation/reply.js +9 -14
  91. package/dist/commands/conversation/show.d.ts +3 -3
  92. package/dist/commands/conversation/show.js +8 -14
  93. package/dist/commands/conversation/show2.d.ts +1 -1
  94. package/dist/commands/conversation/show2.js +1 -1
  95. package/dist/commands/cronjob/create.d.ts +3 -1
  96. package/dist/commands/cronjob/create.js +10 -4
  97. package/dist/commands/cronjob/delete.d.ts +1 -1
  98. package/dist/commands/cronjob/delete.js +2 -2
  99. package/dist/commands/cronjob/execute.d.ts +1 -1
  100. package/dist/commands/cronjob/execute.js +1 -1
  101. package/dist/commands/cronjob/execution/abort.d.ts +1 -1
  102. package/dist/commands/cronjob/execution/abort.js +2 -2
  103. package/dist/commands/cronjob/execution/get.d.ts +1 -1
  104. package/dist/commands/cronjob/execution/get.js +1 -1
  105. package/dist/commands/cronjob/execution/list.d.ts +2 -4
  106. package/dist/commands/cronjob/execution/list.js +5 -7
  107. package/dist/commands/cronjob/execution/logs.d.ts +1 -1
  108. package/dist/commands/cronjob/execution/logs.js +2 -2
  109. package/dist/commands/cronjob/get.d.ts +2 -2
  110. package/dist/commands/cronjob/get.js +3 -3
  111. package/dist/commands/cronjob/list.d.ts +2 -4
  112. package/dist/commands/cronjob/list.js +3 -6
  113. package/dist/commands/database/mysql/charsets.d.ts +3 -4
  114. package/dist/commands/database/mysql/charsets.js +2 -5
  115. package/dist/commands/database/mysql/create.d.ts +2 -2
  116. package/dist/commands/database/mysql/create.js +5 -5
  117. package/dist/commands/database/mysql/delete.d.ts +1 -2
  118. package/dist/commands/database/mysql/delete.js +3 -7
  119. package/dist/commands/database/mysql/dump.d.ts +1 -1
  120. package/dist/commands/database/mysql/dump.js +6 -6
  121. package/dist/commands/database/mysql/get.d.ts +1 -1
  122. package/dist/commands/database/mysql/get.js +2 -2
  123. package/dist/commands/database/mysql/import.d.ts +1 -1
  124. package/dist/commands/database/mysql/import.js +6 -6
  125. package/dist/commands/database/mysql/list.d.ts +2 -4
  126. package/dist/commands/database/mysql/list.js +2 -5
  127. package/dist/commands/database/mysql/phpmyadmin.d.ts +1 -1
  128. package/dist/commands/database/mysql/phpmyadmin.js +2 -2
  129. package/dist/commands/database/mysql/port-forward.d.ts +1 -1
  130. package/dist/commands/database/mysql/port-forward.js +6 -6
  131. package/dist/commands/database/mysql/shell.d.ts +1 -1
  132. package/dist/commands/database/mysql/shell.js +6 -6
  133. package/dist/commands/database/mysql/user/delete.d.ts +1 -1
  134. package/dist/commands/database/mysql/user/delete.js +2 -2
  135. package/dist/commands/database/mysql/user/get.d.ts +1 -1
  136. package/dist/commands/database/mysql/user/get.js +1 -1
  137. package/dist/commands/database/mysql/user/list.d.ts +2 -4
  138. package/dist/commands/database/mysql/user/list.js +1 -4
  139. package/dist/commands/database/mysql/versions.d.ts +2 -4
  140. package/dist/commands/database/mysql/versions.js +1 -4
  141. package/dist/commands/database/redis/create.d.ts +1 -1
  142. package/dist/commands/database/redis/create.js +2 -2
  143. package/dist/commands/database/redis/get.d.ts +1 -1
  144. package/dist/commands/database/redis/get.js +1 -1
  145. package/dist/commands/database/redis/list.d.ts +2 -4
  146. package/dist/commands/database/redis/list.js +2 -5
  147. package/dist/commands/database/redis/shell.d.ts +1 -1
  148. package/dist/commands/database/redis/shell.js +6 -6
  149. package/dist/commands/database/redis/versions.d.ts +2 -4
  150. package/dist/commands/database/redis/versions.js +2 -5
  151. package/dist/commands/ddev/init.d.ts +1 -1
  152. package/dist/commands/ddev/init.js +3 -3
  153. package/dist/commands/ddev/render-config.d.ts +1 -1
  154. package/dist/commands/ddev/render-config.js +2 -2
  155. package/dist/commands/domain/dnszone/get.d.ts +1 -1
  156. package/dist/commands/domain/dnszone/get.js +3 -3
  157. package/dist/commands/domain/dnszone/list.d.ts +2 -4
  158. package/dist/commands/domain/dnszone/list.js +3 -6
  159. package/dist/commands/domain/dnszone/update.d.ts +1 -1
  160. package/dist/commands/domain/dnszone/update.js +3 -3
  161. package/dist/commands/domain/get.d.ts +1 -1
  162. package/dist/commands/domain/get.js +3 -3
  163. package/dist/commands/domain/list.d.ts +2 -4
  164. package/dist/commands/domain/list.js +2 -5
  165. package/dist/commands/domain/virtualhost/create.d.ts +1 -1
  166. package/dist/commands/domain/virtualhost/create.js +2 -2
  167. package/dist/commands/domain/virtualhost/delete.d.ts +1 -1
  168. package/dist/commands/domain/virtualhost/delete.js +1 -1
  169. package/dist/commands/domain/virtualhost/get.d.ts +1 -1
  170. package/dist/commands/domain/virtualhost/get.js +2 -2
  171. package/dist/commands/domain/virtualhost/list.d.ts +2 -4
  172. package/dist/commands/domain/virtualhost/list.js +2 -5
  173. package/dist/commands/login/reset.d.ts +1 -1
  174. package/dist/commands/login/reset.js +2 -2
  175. package/dist/commands/login/status.d.ts +1 -1
  176. package/dist/commands/login/status.js +1 -1
  177. package/dist/commands/login/token.d.ts +1 -1
  178. package/dist/commands/login/token.js +2 -2
  179. package/dist/commands/mail/address/create.d.ts +3 -2
  180. package/dist/commands/mail/address/create.js +6 -5
  181. package/dist/commands/mail/address/delete.d.ts +1 -1
  182. package/dist/commands/mail/address/delete.js +1 -1
  183. package/dist/commands/mail/address/get.d.ts +1 -1
  184. package/dist/commands/mail/address/get.js +1 -1
  185. package/dist/commands/mail/address/list.d.ts +2 -4
  186. package/dist/commands/mail/address/list.js +6 -9
  187. package/dist/commands/mail/address/update.d.ts +1 -1
  188. package/dist/commands/mail/address/update.js +2 -2
  189. package/dist/commands/mail/deliverybox/get.d.ts +1 -1
  190. package/dist/commands/mail/deliverybox/get.js +1 -1
  191. package/dist/commands/mail/deliverybox/list.d.ts +2 -4
  192. package/dist/commands/mail/deliverybox/list.js +3 -6
  193. package/dist/commands/org/delete.d.ts +1 -1
  194. package/dist/commands/org/delete.js +2 -2
  195. package/dist/commands/org/get.d.ts +1 -1
  196. package/dist/commands/org/get.js +3 -3
  197. package/dist/commands/org/invite/list-own.d.ts +3 -3
  198. package/dist/commands/org/invite/list-own.js +2 -2
  199. package/dist/commands/org/invite/list.d.ts +3 -6
  200. package/dist/commands/org/invite/list.js +10 -12
  201. package/dist/commands/org/invite/revoke.d.ts +1 -1
  202. package/dist/commands/org/invite/revoke.js +1 -1
  203. package/dist/commands/org/invite.d.ts +2 -2
  204. package/dist/commands/org/invite.js +5 -5
  205. package/dist/commands/org/list.d.ts +2 -4
  206. package/dist/commands/org/list.js +1 -4
  207. package/dist/commands/org/membership/list-own.d.ts +3 -3
  208. package/dist/commands/org/membership/list-own.js +6 -7
  209. package/dist/commands/org/membership/list.d.ts +3 -3
  210. package/dist/commands/org/membership/list.js +7 -8
  211. package/dist/commands/org/membership/revoke.d.ts +1 -1
  212. package/dist/commands/org/membership/revoke.js +1 -1
  213. package/dist/commands/project/create.d.ts +2 -2
  214. package/dist/commands/project/create.js +3 -3
  215. package/dist/commands/project/delete.d.ts +1 -1
  216. package/dist/commands/project/delete.js +3 -3
  217. package/dist/commands/project/filesystem/usage.d.ts +1 -1
  218. package/dist/commands/project/filesystem/usage.js +16 -11
  219. package/dist/commands/project/get.d.ts +2 -2
  220. package/dist/commands/project/get.js +6 -6
  221. package/dist/commands/project/invite/get.d.ts +1 -1
  222. package/dist/commands/project/invite/get.js +1 -1
  223. package/dist/commands/project/invite/list-own.d.ts +2 -4
  224. package/dist/commands/project/invite/list-own.js +2 -5
  225. package/dist/commands/project/invite/list.d.ts +2 -4
  226. package/dist/commands/project/invite/list.js +13 -16
  227. package/dist/commands/project/list.d.ts +3 -6
  228. package/dist/commands/project/list.js +1 -4
  229. package/dist/commands/project/membership/get-own.d.ts +1 -1
  230. package/dist/commands/project/membership/get-own.js +2 -2
  231. package/dist/commands/project/membership/get.d.ts +1 -1
  232. package/dist/commands/project/membership/get.js +1 -1
  233. package/dist/commands/project/membership/list-own.d.ts +2 -4
  234. package/dist/commands/project/membership/list-own.js +10 -15
  235. package/dist/commands/project/membership/list.d.ts +3 -3
  236. package/dist/commands/project/membership/list.js +3 -3
  237. package/dist/commands/project/ssh.d.ts +1 -1
  238. package/dist/commands/project/ssh.js +5 -5
  239. package/dist/commands/project/update.d.ts +1 -1
  240. package/dist/commands/project/update.js +2 -2
  241. package/dist/commands/server/get.d.ts +1 -1
  242. package/dist/commands/server/get.js +2 -2
  243. package/dist/commands/server/list.d.ts +2 -4
  244. package/dist/commands/server/list.js +1 -4
  245. package/dist/commands/sftp-user/delete.d.ts +1 -1
  246. package/dist/commands/sftp-user/delete.js +2 -2
  247. package/dist/commands/sftp-user/list.d.ts +2 -5
  248. package/dist/commands/sftp-user/list.js +2 -5
  249. package/dist/commands/ssh-user/delete.d.ts +1 -1
  250. package/dist/commands/ssh-user/delete.js +2 -2
  251. package/dist/commands/ssh-user/list.d.ts +2 -5
  252. package/dist/commands/ssh-user/list.js +2 -5
  253. package/dist/commands/user/api-token/create.d.ts +3 -4
  254. package/dist/commands/user/api-token/create.js +14 -25
  255. package/dist/commands/user/api-token/get.d.ts +1 -1
  256. package/dist/commands/user/api-token/get.js +1 -1
  257. package/dist/commands/user/api-token/list.d.ts +2 -4
  258. package/dist/commands/user/api-token/list.js +10 -13
  259. package/dist/commands/user/api-token/revoke.d.ts +1 -1
  260. package/dist/commands/user/api-token/revoke.js +1 -1
  261. package/dist/commands/user/get.d.ts +1 -1
  262. package/dist/commands/user/get.js +1 -1
  263. package/dist/commands/user/session/get.d.ts +1 -1
  264. package/dist/commands/user/session/get.js +1 -1
  265. package/dist/commands/user/session/list.d.ts +2 -4
  266. package/dist/commands/user/session/list.js +10 -12
  267. package/dist/commands/user/ssh-key/create.d.ts +2 -2
  268. package/dist/commands/user/ssh-key/create.js +5 -5
  269. package/dist/commands/user/ssh-key/delete.d.ts +1 -1
  270. package/dist/commands/user/ssh-key/delete.js +1 -1
  271. package/dist/commands/user/ssh-key/get.d.ts +1 -1
  272. package/dist/commands/user/ssh-key/get.js +1 -1
  273. package/dist/commands/user/ssh-key/import.d.ts +2 -2
  274. package/dist/commands/user/ssh-key/import.js +5 -5
  275. package/dist/commands/user/ssh-key/list.d.ts +3 -3
  276. package/dist/commands/user/ssh-key/list.js +3 -3
  277. package/dist/lib/apiutil/SuccessfulResponse.d.ts +19 -0
  278. package/dist/lib/auth/token.js +1 -1
  279. package/dist/{BaseCommand.js → lib/basecommands/BaseCommand.js} +4 -4
  280. package/dist/{types.d.ts → lib/basecommands/CommandFlags.d.ts} +2 -4
  281. package/dist/{DeleteBaseCommand.d.ts → lib/basecommands/DeleteBaseCommand.d.ts} +1 -1
  282. package/dist/{DeleteBaseCommand.js → lib/basecommands/DeleteBaseCommand.js} +3 -3
  283. package/dist/{rendering/react → lib/basecommands}/ExecRenderBaseCommand.d.ts +2 -2
  284. package/dist/{rendering/react → lib/basecommands}/ExecRenderBaseCommand.js +2 -2
  285. package/dist/{ExtendedBaseCommand.d.ts → lib/basecommands/ExtendedBaseCommand.d.ts} +2 -2
  286. package/dist/{ExtendedBaseCommand.js → lib/basecommands/ExtendedBaseCommand.js} +3 -3
  287. package/dist/{GetBaseCommand.d.ts → lib/basecommands/GetBaseCommand.d.ts} +1 -1
  288. package/dist/{GetBaseCommand.js → lib/basecommands/GetBaseCommand.js} +1 -1
  289. package/dist/{ListBaseCommand.d.ts → lib/basecommands/ListBaseCommand.d.ts} +5 -3
  290. package/dist/{ListBaseCommand.js → lib/basecommands/ListBaseCommand.js} +10 -3
  291. package/dist/{rendering/react → lib/basecommands}/RenderBaseCommand.d.ts +3 -3
  292. package/dist/{rendering/react → lib/basecommands}/RenderBaseCommand.js +6 -6
  293. package/dist/lib/{context.d.ts → context/Context.d.ts} +11 -14
  294. package/dist/lib/{context.js → context/Context.js} +12 -5
  295. package/dist/lib/context/ContextProvider.d.ts +6 -0
  296. package/dist/lib/{context_ddev.d.ts → context/DDEVContextProvider.d.ts} +3 -2
  297. package/dist/lib/{context_ddev.js → context/DDEVContextProvider.js} +2 -2
  298. package/dist/lib/context/FlagSet.d.ts +20 -0
  299. package/dist/lib/{context_flags.d.ts → context/FlagSetBuilder.d.ts} +23 -9
  300. package/dist/lib/context/FlagSetBuilder.js +148 -0
  301. package/dist/lib/context/TerraformContextProvider.d.ts +7 -0
  302. package/dist/lib/{context_terraform.js → context/TerraformContextProvider.js} +2 -2
  303. package/dist/lib/{context_user.d.ts → context/UserContextProvider.d.ts} +4 -2
  304. package/dist/lib/{context_user.js → context/UserContextProvider.js} +4 -6
  305. package/dist/lib/context/WritableContextProvider.d.ts +14 -0
  306. package/dist/lib/context/WritableContextProvider.js +1 -0
  307. package/dist/lib/ddev/config_loader.js +1 -1
  308. package/dist/lib/ddev/init_assert.js +2 -2
  309. package/dist/lib/error/UnexpectedShortIDPassedError.js +1 -1
  310. package/dist/lib/{handleError.d.ts → error/handleError.d.ts} +2 -3
  311. package/dist/lib/{handleError.js → error/handleError.js} +4 -6
  312. package/dist/lib/flags/expireFlags.d.ts +7 -0
  313. package/dist/lib/flags/expireFlags.js +18 -0
  314. package/dist/lib/{app → resources/app}/Installer.d.ts +5 -3
  315. package/dist/lib/{app → resources/app}/Installer.js +4 -4
  316. package/dist/lib/{app → resources/app}/custom_installation.js +3 -3
  317. package/dist/lib/{app → resources/app}/flags.d.ts +7 -7
  318. package/dist/lib/{app → resources/app}/flags.js +18 -12
  319. package/dist/lib/{app → resources/app}/hooks.js +1 -1
  320. package/dist/lib/{app → resources/app}/install.d.ts +1 -1
  321. package/dist/lib/resources/app/sync.d.ts +15 -0
  322. package/dist/lib/resources/app/sync.js +55 -0
  323. package/dist/lib/resources/app/upgrade.d.ts +1 -0
  324. package/dist/lib/resources/app/upgrade.js +1 -0
  325. package/dist/lib/{app → resources/app}/versions.d.ts +1 -1
  326. package/dist/lib/{app → resources/app}/versions.js +1 -1
  327. package/dist/lib/{app → resources/app}/wait.d.ts +3 -2
  328. package/dist/lib/{app → resources/app}/wait.js +3 -3
  329. package/dist/lib/resources/backup/flags.d.ts +1 -0
  330. package/dist/lib/resources/backup/flags.js +4 -0
  331. package/dist/lib/resources/conversation/flags.d.ts +2 -0
  332. package/dist/lib/resources/conversation/flags.js +12 -0
  333. package/dist/lib/{database → resources/database}/common.d.ts +1 -1
  334. package/dist/lib/{database → resources/database}/mysql/connect.d.ts +1 -1
  335. package/dist/lib/{database → resources/database}/mysql/temp_user.d.ts +1 -1
  336. package/dist/lib/{database → resources/database}/mysql/temp_user.js +1 -1
  337. package/dist/lib/{database → resources/database}/redis/connect.d.ts +1 -1
  338. package/dist/lib/{database → resources/database}/redis/flags.js +2 -2
  339. package/dist/lib/resources/domain/dnszone/flags.d.ts +1 -0
  340. package/dist/lib/{domain → resources/domain}/dnszone/flags.js +2 -2
  341. package/dist/lib/resources/domain/flags.d.ts +1 -0
  342. package/dist/lib/{domain → resources/domain}/flags.js +2 -2
  343. package/dist/lib/resources/mail/flags.d.ts +1 -0
  344. package/dist/lib/{mail → resources/mail}/flags.js +2 -2
  345. package/dist/lib/resources/org/flags.d.ts +2 -0
  346. package/dist/lib/resources/org/flags.js +10 -0
  347. package/dist/lib/{project → resources/project}/flags.d.ts +4 -3
  348. package/dist/lib/{project → resources/project}/flags.js +15 -8
  349. package/dist/lib/{project → resources/project}/hooks.js +1 -1
  350. package/dist/lib/{project → resources/project}/ingress.js +2 -4
  351. package/dist/lib/{projectbackup → resources/projectbackup}/hooks.js +1 -1
  352. package/dist/lib/resources/server/flags.d.ts +2 -0
  353. package/dist/lib/resources/server/flags.js +10 -0
  354. package/dist/lib/resources/ssh/types.js +1 -0
  355. package/dist/lib/units/ByteQuantity.d.ts +23 -0
  356. package/dist/lib/units/ByteQuantity.js +49 -0
  357. package/dist/lib/units/Duration.d.ts +23 -0
  358. package/dist/lib/units/Duration.js +57 -0
  359. package/dist/lib/util/fs/hasBinaryInPath.d.ts +9 -0
  360. package/dist/lib/{hasbin.js → util/fs/hasBinaryInPath.js} +9 -1
  361. package/dist/lib/util/fs/isNotFound.d.ts +8 -0
  362. package/dist/lib/util/fs/isNotFound.js +10 -0
  363. package/dist/lib/util/fs/pathExists.d.ts +7 -0
  364. package/dist/lib/{fsutil.js → util/fs/pathExists.js} +7 -3
  365. package/dist/lib/util/maybe.d.ts +12 -0
  366. package/dist/lib/util/maybe.js +17 -0
  367. package/dist/lib/util/mergeObjects.d.ts +7 -0
  368. package/dist/lib/{mergeObjects.js → util/mergeObjects.js} +8 -2
  369. package/dist/lib/util/password/generatePassword.d.ts +9 -0
  370. package/dist/lib/util/password/generatePassword.js +12 -0
  371. package/dist/lib/util/password/generatePasswordWithSpecialChars.d.ts +9 -0
  372. package/dist/lib/{password.js → util/password/generatePasswordWithSpecialChars.js} +9 -5
  373. package/dist/lib/wait.d.ts +5 -2
  374. package/dist/lib/wait.js +10 -9
  375. package/dist/rendering/formatter/GetFormatter.d.ts +11 -0
  376. package/dist/rendering/formatter/GetFormatter.js +20 -0
  377. package/dist/rendering/formatter/ListDateColumnFormatter.d.ts +24 -0
  378. package/dist/rendering/formatter/ListDateColumnFormatter.js +28 -0
  379. package/dist/{Formatter.d.ts → rendering/formatter/ListFormatter.d.ts} +2 -12
  380. package/dist/{Formatter.js → rendering/formatter/ListFormatter.js} +1 -19
  381. package/dist/rendering/formatter/printHeader.d.ts +7 -0
  382. package/dist/rendering/formatter/printHeader.js +12 -0
  383. package/dist/rendering/formatter/printKeyValues.d.ts +7 -0
  384. package/dist/{lib/viewhelpers/tui.js → rendering/formatter/printKeyValues.js} +6 -5
  385. package/dist/rendering/lib/getTerminalWidth.d.ts +7 -1
  386. package/dist/rendering/lib/getTerminalWidth.js +9 -2
  387. package/dist/rendering/process/components/ProcessError.js +1 -1
  388. package/dist/rendering/process/process_exec.js +3 -0
  389. package/dist/rendering/react/ComponentPrinter.d.ts +1 -1
  390. package/dist/rendering/react/components/AppInstallation/AppInstallationDetails.js +8 -10
  391. package/dist/rendering/react/components/AppInstallation/AppSystemSoftware.js +1 -1
  392. package/dist/rendering/react/components/ByteFormat.d.ts +9 -1
  393. package/dist/rendering/react/components/ByteFormat.js +9 -10
  394. package/dist/rendering/react/components/CronJob/CronJobDetails.js +2 -2
  395. package/dist/rendering/react/components/DnsZone/DnsZoneRecordsA.js +1 -1
  396. package/dist/rendering/react/components/DnsZone/DnsZoneRecordsAAAA.js +1 -1
  397. package/dist/rendering/react/components/DnsZone/DnsZoneRecordsMX.js +1 -1
  398. package/dist/rendering/react/components/DnsZone/DnsZoneRecordsSRV.js +1 -1
  399. package/dist/rendering/react/components/DnsZone/DnsZoneRecordsTXT.js +1 -1
  400. package/dist/rendering/react/components/FormattedDate.js +1 -1
  401. package/dist/rendering/react/components/OptionalValue.d.ts +13 -0
  402. package/dist/rendering/react/components/OptionalValue.js +16 -0
  403. package/dist/rendering/react/components/ProjectBackup/ProjectBackupDetails.js +2 -2
  404. package/dist/rendering/react/components/Table/CellData.js +1 -1
  405. package/dist/rendering/react/components/WithoutLineBreaks.js +1 -1
  406. package/dist/rendering/setup/FlagSupportedSetup.js +1 -1
  407. package/dist/{lib/viewhelpers/date.d.ts → rendering/textformat/formatDate.d.ts} +0 -1
  408. package/dist/{lib/viewhelpers/date.js → rendering/textformat/formatDate.js} +8 -15
  409. package/dist/rendering/textformat/removeLineBreaks.d.ts +6 -0
  410. package/dist/rendering/textformat/removeLineBreaks.js +8 -0
  411. package/package.json +5 -5
  412. package/dist/Flags.d.ts +0 -1
  413. package/dist/Flags.js +0 -1
  414. package/dist/lib/bytes.d.ts +0 -1
  415. package/dist/lib/bytes.js +0 -16
  416. package/dist/lib/context_flags.js +0 -88
  417. package/dist/lib/context_terraform.d.ts +0 -6
  418. package/dist/lib/domain/dnszone/flags.d.ts +0 -1
  419. package/dist/lib/domain/flags.d.ts +0 -1
  420. package/dist/lib/expires.d.ts +0 -11
  421. package/dist/lib/expires.js +0 -31
  422. package/dist/lib/fsutil.d.ts +0 -2
  423. package/dist/lib/hasbin.d.ts +0 -1
  424. package/dist/lib/mail/flags.d.ts +0 -1
  425. package/dist/lib/mergeObjects.d.ts +0 -1
  426. package/dist/lib/notify.d.ts +0 -2
  427. package/dist/lib/notify.js +0 -5
  428. package/dist/lib/org/flags.d.ts +0 -1
  429. package/dist/lib/org/flags.js +0 -3
  430. package/dist/lib/password.d.ts +0 -2
  431. package/dist/lib/server/flags.d.ts +0 -1
  432. package/dist/lib/server/flags.js +0 -3
  433. package/dist/lib/viewhelpers/list_column_date.d.ts +0 -14
  434. package/dist/lib/viewhelpers/list_column_date.js +0 -21
  435. package/dist/lib/viewhelpers/removeLineBreaks.d.ts +0 -1
  436. package/dist/lib/viewhelpers/removeLineBreaks.js +0 -1
  437. package/dist/lib/viewhelpers/size.d.ts +0 -2
  438. package/dist/lib/viewhelpers/size.js +0 -4
  439. package/dist/lib/viewhelpers/tui.d.ts +0 -2
  440. package/dist/normalize_id.d.ts +0 -7
  441. package/dist/normalize_id.js +0 -34
  442. /package/dist/lib/{app/upgrade.d.ts → apiutil/SuccessfulResponse.js} +0 -0
  443. /package/dist/lib/{api_consistency.d.ts → apiutil/api_consistency.d.ts} +0 -0
  444. /package/dist/lib/{api_consistency.js → apiutil/api_consistency.js} +0 -0
  445. /package/dist/lib/{api_logging.d.ts → apiutil/api_logging.d.ts} +0 -0
  446. /package/dist/lib/{api_logging.js → apiutil/api_logging.js} +0 -0
  447. /package/dist/lib/{api_retry.d.ts → apiutil/api_retry.d.ts} +0 -0
  448. /package/dist/lib/{api_retry.js → apiutil/api_retry.js} +0 -0
  449. /package/dist/lib/{assert_success.d.ts → apiutil/assert_success.d.ts} +0 -0
  450. /package/dist/lib/{assert_success.js → apiutil/assert_success.js} +0 -0
  451. /package/dist/{BaseCommand.d.ts → lib/basecommands/BaseCommand.d.ts} +0 -0
  452. /package/dist/lib/{app/upgrade.js → basecommands/CommandFlags.js} +0 -0
  453. /package/dist/lib/{ssh/types.js → context/ContextProvider.js} +0 -0
  454. /package/dist/{types.js → lib/context/FlagSet.js} +0 -0
  455. /package/dist/lib/{app → resources/app}/custom_installation.d.ts +0 -0
  456. /package/dist/lib/{app → resources/app}/hooks.d.ts +0 -0
  457. /package/dist/lib/{app → resources/app}/install.js +0 -0
  458. /package/dist/lib/{app → resources/app}/uuid.d.ts +0 -0
  459. /package/dist/lib/{app → resources/app}/uuid.js +0 -0
  460. /package/dist/lib/{conversation → resources/conversation}/message_input.d.ts +0 -0
  461. /package/dist/lib/{conversation → resources/conversation}/message_input.js +0 -0
  462. /package/dist/lib/{database → resources/database}/common.js +0 -0
  463. /package/dist/lib/{database → resources/database}/mysql/connect.js +0 -0
  464. /package/dist/lib/{database → resources/database}/mysql/flags.d.ts +0 -0
  465. /package/dist/lib/{database → resources/database}/mysql/flags.js +0 -0
  466. /package/dist/lib/{database → resources/database}/redis/connect.js +0 -0
  467. /package/dist/lib/{database → resources/database}/redis/flags.d.ts +0 -0
  468. /package/dist/lib/{domain → resources/domain}/dnszone/records.d.ts +0 -0
  469. /package/dist/lib/{domain → resources/domain}/dnszone/records.js +0 -0
  470. /package/dist/lib/{project → resources/project}/hooks.d.ts +0 -0
  471. /package/dist/lib/{project → resources/project}/ingress.d.ts +0 -0
  472. /package/dist/lib/{project → resources/project}/shortId.d.ts +0 -0
  473. /package/dist/lib/{project → resources/project}/shortId.js +0 -0
  474. /package/dist/lib/{projectbackup → resources/projectbackup}/hooks.d.ts +0 -0
  475. /package/dist/lib/{ssh → resources/ssh}/appinstall.d.ts +0 -0
  476. /package/dist/lib/{ssh → resources/ssh}/appinstall.js +0 -0
  477. /package/dist/lib/{ssh → resources/ssh}/connection.d.ts +0 -0
  478. /package/dist/lib/{ssh → resources/ssh}/connection.js +0 -0
  479. /package/dist/lib/{ssh → resources/ssh}/doc.d.ts +0 -0
  480. /package/dist/lib/{ssh → resources/ssh}/doc.js +0 -0
  481. /package/dist/lib/{ssh → resources/ssh}/exec.d.ts +0 -0
  482. /package/dist/lib/{ssh → resources/ssh}/exec.js +0 -0
  483. /package/dist/lib/{ssh → resources/ssh}/flags.d.ts +0 -0
  484. /package/dist/lib/{ssh → resources/ssh}/flags.js +0 -0
  485. /package/dist/lib/{ssh → resources/ssh}/project.d.ts +0 -0
  486. /package/dist/lib/{ssh → resources/ssh}/project.js +0 -0
  487. /package/dist/lib/{ssh → resources/ssh}/types.d.ts +0 -0
  488. /package/dist/lib/{language.d.ts → util/language/articleForWord.d.ts} +0 -0
  489. /package/dist/lib/{language.js → util/language/articleForWord.js} +0 -0
  490. /package/dist/{Printer.d.ts → rendering/Printer.d.ts} +0 -0
  491. /package/dist/{Printer.js → rendering/Printer.js} +0 -0
@@ -1,4 +1,4 @@
1
- import { DeleteBaseCommand } from "../../DeleteBaseCommand.js";
1
+ import { DeleteBaseCommand } from "../../lib/basecommands/DeleteBaseCommand.js";
2
2
  export declare class Delete extends DeleteBaseCommand<typeof Delete> {
3
3
  static description: string;
4
4
  static resourceName: string;
@@ -7,7 +7,7 @@ export declare class Delete extends DeleteBaseCommand<typeof Delete> {
7
7
  quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
8
8
  };
9
9
  static args: {
10
- "backup-id": import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
10
+ "backup-id": import("@oclif/core/lib/interfaces/parser.js").Arg<string>;
11
11
  };
12
12
  static aliases: string[];
13
13
  static deprecateAliases: boolean;
@@ -1,20 +1,15 @@
1
- import { DeleteBaseCommand } from "../../DeleteBaseCommand.js";
1
+ import { DeleteBaseCommand } from "../../lib/basecommands/DeleteBaseCommand.js";
2
2
  import { assertStatus } from "@mittwald/api-client-commons";
3
- import { Args } from "@oclif/core";
3
+ import { backupArgs, withBackupId } from "../../lib/resources/backup/flags.js";
4
4
  export class Delete extends DeleteBaseCommand {
5
5
  static description = "Delete a backup";
6
6
  static resourceName = "backup";
7
7
  static flags = { ...DeleteBaseCommand.baseFlags };
8
- static args = {
9
- "backup-id": Args.string({
10
- required: true,
11
- description: "The ID of the Backup to show.",
12
- }),
13
- };
8
+ static args = { ...backupArgs };
14
9
  static aliases = ["project:backup:delete"];
15
10
  static deprecateAliases = true;
16
11
  async deleteResource() {
17
- const projectBackupId = this.args["backup-id"];
12
+ const projectBackupId = await withBackupId(this.apiClient, Delete, this.flags, this.args, this.config);
18
13
  const response = await this.apiClient.backup.deleteProjectBackup({
19
14
  projectBackupId,
20
15
  });
@@ -1,4 +1,4 @@
1
- import { ExecRenderBaseCommand } from "../../rendering/react/ExecRenderBaseCommand.js";
1
+ import { ExecRenderBaseCommand } from "../../lib/basecommands/ExecRenderBaseCommand.js";
2
2
  import { ReactNode } from "react";
3
3
  import { ProcessRenderer } from "../../rendering/process/process.js";
4
4
  import { AxiosResponseHeaders, RawAxiosResponseHeaders } from "@mittwald/api-client-commons";
@@ -8,11 +8,11 @@ type Result = {
8
8
  export declare class Download extends ExecRenderBaseCommand<typeof Download, Result> {
9
9
  static description: string;
10
10
  static args: {
11
- "backup-id": import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
11
+ "backup-id": import("@oclif/core/lib/interfaces/parser.js").Arg<string>;
12
12
  };
13
13
  static flags: {
14
14
  output: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
15
- format: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
15
+ format: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<"tar" | "zip", import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
16
16
  password: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
17
17
  "generate-password": import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
18
18
  "prompt-password": import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { ExecRenderBaseCommand } from "../../rendering/react/ExecRenderBaseCommand.js";
3
- import { Args, Flags } from "@oclif/core";
2
+ import { ExecRenderBaseCommand } from "../../lib/basecommands/ExecRenderBaseCommand.js";
3
+ import { Flags } from "@oclif/core";
4
4
  import { makeProcessRenderer, processFlags, } from "../../rendering/process/process_flags.js";
5
5
  import crypto from "crypto";
6
6
  import { Text } from "ink";
@@ -9,26 +9,23 @@ import { assertStatus, } from "@mittwald/api-client-commons";
9
9
  import { waitUntil } from "../../lib/wait.js";
10
10
  import axios from "axios";
11
11
  import * as fs from "fs";
12
- import { formatBytes } from "../../lib/viewhelpers/size.js";
13
12
  import { Success } from "../../rendering/react/components/Success.js";
13
+ import ByteQuantity from "../../lib/units/ByteQuantity.js";
14
+ import Duration from "../../lib/units/Duration.js";
15
+ import { backupArgs, withBackupId } from "../../lib/resources/backup/flags.js";
14
16
  export class Download extends ExecRenderBaseCommand {
15
17
  static description = "Download a backup to your local disk";
16
- static args = {
17
- "backup-id": Args.string({
18
- required: true,
19
- description: "the ID of the Backup to download.",
20
- }),
21
- };
18
+ static args = { ...backupArgs };
22
19
  static flags = {
23
20
  ...processFlags,
24
21
  output: Flags.string({
25
22
  description: "the file to write the backup to; if omitted, the filename will be determined by the server.",
26
23
  }),
27
- format: Flags.string({
24
+ format: Flags.custom({
28
25
  description: "the file format to download the backup in.",
29
26
  options: ["tar", "zip"],
30
27
  default: "tar",
31
- }),
28
+ })(),
32
29
  password: Flags.string({
33
30
  summary: "the password to encrypt the backup with.",
34
31
  description: `\
@@ -71,7 +68,7 @@ export class Download extends ExecRenderBaseCommand {
71
68
  }
72
69
  async exec() {
73
70
  const p = makeProcessRenderer(this.flags, "Downloading backup");
74
- const projectBackupId = this.args["backup-id"];
71
+ const projectBackupId = await withBackupId(this.apiClient, Download, this.flags, this.args, this.config);
75
72
  const { format } = this.flags;
76
73
  const password = await this.getPassword(p);
77
74
  const backup = await p.runStep("fetching backup", async () => {
@@ -89,7 +86,7 @@ export class Download extends ExecRenderBaseCommand {
89
86
  const r = await this.apiClient.backup.createProjectBackupExport({
90
87
  projectBackupId,
91
88
  data: {
92
- format: format,
89
+ format,
93
90
  password,
94
91
  },
95
92
  });
@@ -106,7 +103,7 @@ export class Download extends ExecRenderBaseCommand {
106
103
  return r.data.export;
107
104
  }
108
105
  return null;
109
- }, 3600);
106
+ }, Duration.fromString("1h"));
110
107
  });
111
108
  if (!backupExport.downloadURL) {
112
109
  throw new Error("backup download is not ready");
@@ -122,23 +119,21 @@ export class Download extends ExecRenderBaseCommand {
122
119
  }
123
120
  const downloadStep = p.addStep("downloading backup");
124
121
  const resp = await axios(backupExport.downloadURL, reqConfig);
125
- const size = parseInt(resp.headers["content-length"] || "0", 10);
126
- let downloaded = 0;
122
+ const size = ByteQuantity.fromBytes(parseInt(resp.headers["content-length"] || "0", 10));
123
+ let downloaded = ByteQuantity.fromBytes(0);
127
124
  const outputFilename = this.getFilename(resp.headers);
128
125
  const outputStream = fs.createWriteStream(outputFilename, {
129
126
  flags: this.flags.resume ? "a" : undefined,
130
127
  });
128
+ const byteFormattingOpts = {
129
+ maximumFractionDigits: 2,
130
+ minimumFractionDigits: 2,
131
+ };
131
132
  resp.data.on("data", (chunk) => {
132
- downloaded += chunk.length;
133
- downloadStep.progress(formatBytes(downloaded, {
134
- minimumFractionDigits: 2,
135
- maximumFractionDigits: 2,
136
- }) +
133
+ downloaded = downloaded.add(ByteQuantity.fromBytes(chunk.length));
134
+ downloadStep.progress(downloaded.format(byteFormattingOpts) +
137
135
  " of " +
138
- formatBytes(size, {
139
- minimumFractionDigits: 2,
140
- maximumFractionDigits: 2,
141
- }));
136
+ size.format(byteFormattingOpts));
142
137
  outputStream.write(chunk);
143
138
  });
144
139
  await new Promise((res) => {
@@ -1,9 +1,9 @@
1
- import { RenderBaseCommand } from "../../rendering/react/RenderBaseCommand.js";
1
+ import { RenderBaseCommand } from "../../lib/basecommands/RenderBaseCommand.js";
2
2
  import { ReactNode } from "react";
3
3
  export default class Get extends RenderBaseCommand<typeof Get> {
4
4
  static description: string;
5
5
  static args: {
6
- "backup-id": import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
6
+ "backup-id": import("@oclif/core/lib/interfaces/parser.js").Arg<string>;
7
7
  };
8
8
  static flags: {
9
9
  [x: string]: import("@oclif/core/lib/interfaces/parser.js").Flag<any>;
@@ -1,26 +1,23 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { RenderBaseCommand } from "../../rendering/react/RenderBaseCommand.js";
3
- import { useProjectBackup } from "../../lib/projectbackup/hooks.js";
4
- import { Args } from "@oclif/core";
2
+ import { RenderBaseCommand } from "../../lib/basecommands/RenderBaseCommand.js";
3
+ import { useProjectBackup } from "../../lib/resources/projectbackup/hooks.js";
5
4
  import { ProjectBackupDetails } from "../../rendering/react/components/ProjectBackup/ProjectBackupDetails.js";
6
5
  import { RenderJson } from "../../rendering/react/json/RenderJson.js";
7
- import { GetBaseCommand } from "../../GetBaseCommand.js";
6
+ import { GetBaseCommand } from "../../lib/basecommands/GetBaseCommand.js";
8
7
  import { Box } from "ink";
8
+ import { backupArgs, withBackupId } from "../../lib/resources/backup/flags.js";
9
+ import { usePromise } from "@mittwald/react-use-promise";
9
10
  export default class Get extends RenderBaseCommand {
10
- static description = "show details of a backup.";
11
- static args = {
12
- "backup-id": Args.string({
13
- required: true,
14
- description: "The ID of the Backup to show.",
15
- }),
16
- };
11
+ static description = "Show details of a backup.";
12
+ static args = { ...backupArgs };
17
13
  static flags = {
18
14
  ...GetBaseCommand.baseFlags,
19
15
  };
20
16
  static aliases = ["project:backup:get"];
21
17
  static deprecateAliases = true;
22
18
  render() {
23
- const projectBackup = useProjectBackup(this.args["backup-id"]);
19
+ const backupId = usePromise(() => withBackupId(this.apiClient, Get, this.flags, this.args, this.config), []);
20
+ const projectBackup = useProjectBackup(backupId);
24
21
  if (this.flags.output === "json") {
25
22
  return _jsx(RenderJson, { name: "projectBackup", data: projectBackup });
26
23
  }
@@ -1,8 +1,7 @@
1
1
  import { Response, Simplify } from "@mittwald/api-client-commons";
2
2
  import type { MittwaldAPIV2 } from "@mittwald/api-client";
3
- import { SuccessfulResponse } from "../../types.js";
4
- import { ListBaseCommand } from "../../ListBaseCommand.js";
5
- import { ListColumns } from "../../Formatter.js";
3
+ import { ListBaseCommand } from "../../lib/basecommands/ListBaseCommand.js";
4
+ import { ListColumns } from "../../rendering/formatter/ListFormatter.js";
6
5
  type BackupProjectBackup = MittwaldAPIV2.Components.Schemas.BackupProjectBackup;
7
6
  type ListResponse = Response<BackupProjectBackup[]>;
8
7
  type ListItem = Simplify<BackupProjectBackup>;
@@ -36,7 +35,6 @@ export declare class List extends ListBaseCommand<typeof List, ListItem, ListRes
36
35
  };
37
36
  static aliases: string[];
38
37
  static deprecateAliases: boolean;
39
- protected mapData(data: SuccessfulResponse<ListResponse, 200>["data"]): ListItem[] | Promise<ListItem[]>;
40
38
  getData(): Promise<ListResponse>;
41
39
  protected getColumns(data: ListItem[]): ListColumns<ListItem>;
42
40
  }
@@ -1,7 +1,6 @@
1
- import { ListBaseCommand } from "../../ListBaseCommand.js";
2
- import { projectFlags } from "../../lib/project/flags.js";
3
- import { optionalDateRenderer } from "../../lib/viewhelpers/date.js";
4
- import { makeDateRendererForFlags } from "../../lib/viewhelpers/list_column_date.js";
1
+ import { ListBaseCommand } from "../../lib/basecommands/ListBaseCommand.js";
2
+ import { projectFlags } from "../../lib/resources/project/flags.js";
3
+ import ListDateColumnFormatter from "../../rendering/formatter/ListDateColumnFormatter.js";
5
4
  export class List extends ListBaseCommand {
6
5
  static description = "List Backups for a given Project.";
7
6
  static args = {};
@@ -11,9 +10,6 @@ export class List extends ListBaseCommand {
11
10
  };
12
11
  static aliases = ["project:backup:list"];
13
12
  static deprecateAliases = true;
14
- mapData(data) {
15
- return data;
16
- }
17
13
  async getData() {
18
14
  const projectId = await this.withProjectId(List);
19
15
  return await this.apiClient.backup.listProjectBackups({
@@ -22,15 +18,16 @@ export class List extends ListBaseCommand {
22
18
  }
23
19
  getColumns(data) {
24
20
  const { id, createdAt } = super.getColumns(data);
25
- const dateRenderer = optionalDateRenderer(makeDateRendererForFlags(this.flags));
21
+ const dateColumnBuilder = new ListDateColumnFormatter(this.flags);
26
22
  return {
27
23
  id,
28
24
  status: {},
29
25
  createdAt,
30
- expiresIn: {
26
+ expiresIn: dateColumnBuilder.buildColumn({
31
27
  header: "Expires in",
32
- get: (r) => dateRenderer(r.expiresAt),
33
- },
28
+ column: "expiresAt",
29
+ fallback: "never",
30
+ }),
34
31
  };
35
32
  }
36
33
  }
@@ -1,8 +1,7 @@
1
1
  import { Simplify } from "@mittwald/api-client-commons";
2
2
  import { MittwaldAPIV2, MittwaldAPIV2Client } from "@mittwald/api-client";
3
- import { SuccessfulResponse } from "../../../types.js";
4
- import { ListColumns } from "../../../Formatter.js";
5
- import { ListBaseCommand } from "../../../ListBaseCommand.js";
3
+ import { ListColumns } from "../../../rendering/formatter/ListFormatter.js";
4
+ import { ListBaseCommand } from "../../../lib/basecommands/ListBaseCommand.js";
6
5
  type BackupProjectBackupSchedule = MittwaldAPIV2.Components.Schemas.BackupProjectBackupSchedule;
7
6
  type ResponseItem = Simplify<BackupProjectBackupSchedule>;
8
7
  type Response = Awaited<ReturnType<MittwaldAPIV2Client["backup"]["listProjectBackupSchedules"]>>;
@@ -37,7 +36,6 @@ export declare class List extends ListBaseCommand<typeof List, ResponseItem, Res
37
36
  static aliases: string[];
38
37
  static deprecateAliases: boolean;
39
38
  getData(): Promise<Response>;
40
- protected mapData(data: SuccessfulResponse<Response, 200>["data"]): MittwaldAPIV2.Components.Schemas.BackupProjectBackupSchedule[];
41
39
  protected getColumns(data: ResponseItem[]): ListColumns<ResponseItem>;
42
40
  }
43
41
  export {};
@@ -1,5 +1,5 @@
1
- import { ListBaseCommand } from "../../../ListBaseCommand.js";
2
- import { projectFlags, withProjectId } from "../../../lib/project/flags.js";
1
+ import { ListBaseCommand } from "../../../lib/basecommands/ListBaseCommand.js";
2
+ import { projectFlags, withProjectId, } from "../../../lib/resources/project/flags.js";
3
3
  export class List extends ListBaseCommand {
4
4
  static description = "List backup schedules belonging to a given project.";
5
5
  static args = {};
@@ -15,9 +15,6 @@ export class List extends ListBaseCommand {
15
15
  projectId,
16
16
  });
17
17
  }
18
- mapData(data) {
19
- return data;
20
- }
21
18
  getColumns(data) {
22
19
  const { id, createdAt } = super.getColumns(data);
23
20
  return {
@@ -1,4 +1,4 @@
1
- import { RenderBaseCommand } from "../../rendering/react/RenderBaseCommand.js";
1
+ import { RenderBaseCommand } from "../../lib/basecommands/RenderBaseCommand.js";
2
2
  import { ReactNode } from "react";
3
3
  export declare class Get extends RenderBaseCommand<typeof Get> {
4
4
  static summary: string;
@@ -1,6 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { RenderBaseCommand } from "../../rendering/react/RenderBaseCommand.js";
3
- import { Context, } from "../../lib/context.js";
2
+ import { RenderBaseCommand } from "../../lib/basecommands/RenderBaseCommand.js";
4
3
  import { SingleResult } from "../../rendering/react/components/SingleResult.js";
5
4
  import { Value } from "../../rendering/react/components/Value.js";
6
5
  import { usePromise } from "@mittwald/react-use-promise";
@@ -10,6 +9,7 @@ import { Set } from "./set.js";
10
9
  import { RenderJson } from "../../rendering/react/json/RenderJson.js";
11
10
  import { useRenderContext } from "../../rendering/react/context.js";
12
11
  import { LocalFilename } from "../../rendering/react/components/LocalFilename.js";
12
+ import Context from "../../lib/context/Context.js";
13
13
  const ContextSourceValue = ({ source }) => {
14
14
  switch (source.type) {
15
15
  case "user":
@@ -1,4 +1,4 @@
1
- import { BaseCommand } from "../../BaseCommand.js";
1
+ import { BaseCommand } from "../../lib/basecommands/BaseCommand.js";
2
2
  export declare class Reset extends BaseCommand {
3
3
  static summary: string;
4
4
  static description: string;
@@ -1,5 +1,5 @@
1
- import { Context } from "../../lib/context.js";
2
- import { BaseCommand } from "../../BaseCommand.js";
1
+ import Context from "../../lib/context/Context.js";
2
+ import { BaseCommand } from "../../lib/basecommands/BaseCommand.js";
3
3
  export class Reset extends BaseCommand {
4
4
  static summary = "Reset context values";
5
5
  static description = "This command resets any values for common parameters that you've previously set with 'context set'.";
@@ -1,4 +1,4 @@
1
- import { BaseCommand } from "../../BaseCommand.js";
1
+ import { BaseCommand } from "../../lib/basecommands/BaseCommand.js";
2
2
  export declare class Set extends BaseCommand {
3
3
  static summary: string;
4
4
  static description: string;
@@ -1,7 +1,6 @@
1
1
  import { Flags } from "@oclif/core";
2
- import { Context } from "../../lib/context.js";
3
- import { BaseCommand } from "../../BaseCommand.js";
4
- import { normalizeAppInstallationId, normalizeCustomerId, normalizeProjectId, normalizeServerId, } from "../../normalize_id.js";
2
+ import Context from "../../lib/context/Context.js";
3
+ import { BaseCommand } from "../../lib/basecommands/BaseCommand.js";
5
4
  export class Set extends BaseCommand {
6
5
  static summary = "Set context values for the current project, org or server";
7
6
  static description = "The context allows you to persistently set values for common parameters, like --project-id or --server-id, so you don't have to specify them on every command.";
@@ -24,23 +23,19 @@ export class Set extends BaseCommand {
24
23
  const { flags } = await this.parse(Set);
25
24
  const ctx = new Context(this.apiClient, this.config);
26
25
  if (flags["project-id"]) {
27
- const projectId = await normalizeProjectId(this.apiClient, flags["project-id"]);
28
- await ctx.setProjectId(projectId);
26
+ const projectId = await ctx.setProjectId(flags["project-id"]);
29
27
  this.log(`Set project ID to ${projectId}`);
30
28
  }
31
29
  if (flags["server-id"]) {
32
- const serverId = await normalizeServerId(this.apiClient, flags["server-id"]);
33
- await ctx.setServerId(serverId);
30
+ const serverId = await ctx.setServerId(flags["server-id"]);
34
31
  this.log(`Set server ID to ${serverId}`);
35
32
  }
36
33
  if (flags["org-id"]) {
37
- const orgId = await normalizeCustomerId(this.apiClient, flags["org-id"]);
38
- await ctx.setOrgId(orgId);
34
+ const orgId = await ctx.setOrgId(flags["org-id"]);
39
35
  this.log(`Set organization ID to ${orgId}`);
40
36
  }
41
37
  if (flags["installation-id"]) {
42
- const installationId = await normalizeAppInstallationId(this.apiClient, flags["installation-id"]);
43
- await ctx.setAppInstallationId(installationId);
38
+ const installationId = await ctx.setAppInstallationId(flags["installation-id"]);
44
39
  this.log(`Set installation ID to ${installationId}`);
45
40
  }
46
41
  }
@@ -1,8 +1,7 @@
1
1
  import { Simplify } from "@mittwald/api-client-commons";
2
2
  import { MittwaldAPIV2, MittwaldAPIV2Client } from "@mittwald/api-client";
3
- import { SuccessfulResponse } from "../../types.js";
4
- import { ListColumns } from "../../Formatter.js";
5
- import { ListBaseCommand } from "../../ListBaseCommand.js";
3
+ import { ListColumns } from "../../rendering/formatter/ListFormatter.js";
4
+ import { ListBaseCommand } from "../../lib/basecommands/ListBaseCommand.js";
6
5
  type ResponseItem = Simplify<MittwaldAPIV2.Paths.V2ConversationCategories.Get.Responses.$200.Content.ApplicationJson[number]>;
7
6
  type Response = Awaited<ReturnType<MittwaldAPIV2Client["conversation"]["listCategories"]>>;
8
7
  export default class Categories extends ListBaseCommand<typeof Categories, ResponseItem, Response> {
@@ -33,7 +32,6 @@ export default class Categories extends ListBaseCommand<typeof Categories, Respo
33
32
  "no-relative-dates": import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
34
33
  };
35
34
  getData(): Promise<Response>;
36
- protected mapData(data: SuccessfulResponse<Response, 200>["data"]): MittwaldAPIV2.Components.Schemas.ConversationCategory[];
37
35
  protected getColumns(): ListColumns<ResponseItem>;
38
36
  }
39
37
  export {};
@@ -1,15 +1,12 @@
1
- import { ListBaseCommand } from "../../ListBaseCommand.js";
1
+ import { ListBaseCommand } from "../../lib/basecommands/ListBaseCommand.js";
2
2
  export default class Categories extends ListBaseCommand {
3
3
  static description = "Get all conversation categories.";
4
4
  static args = {};
5
5
  static flags = {
6
6
  ...ListBaseCommand.baseFlags,
7
7
  };
8
- async getData() {
9
- return await this.apiClient.conversation.listCategories();
10
- }
11
- mapData(data) {
12
- return data;
8
+ getData() {
9
+ return this.apiClient.conversation.listCategories();
13
10
  }
14
11
  getColumns() {
15
12
  return {
@@ -1,8 +1,8 @@
1
- import { BaseCommand } from "../../BaseCommand.js";
2
- export default class Close extends BaseCommand {
1
+ import { ExtendedBaseCommand } from "../../lib/basecommands/ExtendedBaseCommand.js";
2
+ export default class Close extends ExtendedBaseCommand<typeof Close> {
3
3
  static description: string;
4
4
  static args: {
5
- id: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
5
+ "conversation-id": import("@oclif/core/lib/interfaces/parser.js").Arg<string>;
6
6
  };
7
7
  run(): Promise<void>;
8
8
  }
@@ -1,18 +1,14 @@
1
- import { BaseCommand } from "../../BaseCommand.js";
2
- import { Args, ux } from "@oclif/core";
3
- import { normalizeConversationId } from "../../normalize_id.js";
1
+ import { ux } from "@oclif/core";
4
2
  import { assertStatus } from "@mittwald/api-client-commons";
5
- export default class Close extends BaseCommand {
3
+ import { conversationArgs, withConversationId, } from "../../lib/resources/conversation/flags.js";
4
+ import { ExtendedBaseCommand } from "../../lib/basecommands/ExtendedBaseCommand.js";
5
+ export default class Close extends ExtendedBaseCommand {
6
6
  static description = "Close a conversation";
7
7
  static args = {
8
- id: Args.string({
9
- required: true,
10
- description: "ID of the conversation to show",
11
- }),
8
+ ...conversationArgs,
12
9
  };
13
10
  async run() {
14
- const { args } = await this.parse(Close);
15
- const conversationId = await normalizeConversationId(this.apiClient, args.id);
11
+ const conversationId = await withConversationId(this.apiClient, Close, this.flags, this.args, this.config);
16
12
  ux.action.start(`closing conversation ${conversationId}`);
17
13
  const response = await this.apiClient.conversation.setConversationStatus({
18
14
  conversationId,
@@ -1,4 +1,4 @@
1
- import { BaseCommand } from "../../BaseCommand.js";
1
+ import { BaseCommand } from "../../lib/basecommands/BaseCommand.js";
2
2
  export default class Create extends BaseCommand {
3
3
  static description: string;
4
4
  static flags: {
@@ -1,7 +1,7 @@
1
- import { BaseCommand } from "../../BaseCommand.js";
1
+ import { BaseCommand } from "../../lib/basecommands/BaseCommand.js";
2
2
  import { Flags, ux } from "@oclif/core";
3
3
  import { assertStatus } from "@mittwald/api-client-commons";
4
- import { messageFlags, retrieveMessage, } from "../../lib/conversation/message_input.js";
4
+ import { messageFlags, retrieveMessage, } from "../../lib/resources/conversation/message_input.js";
5
5
  export default class Create extends BaseCommand {
6
6
  static description = "Create a new conversation";
7
7
  static flags = {
@@ -1,8 +1,7 @@
1
1
  import { Simplify } from "@mittwald/api-client-commons";
2
2
  import { MittwaldAPIV2, MittwaldAPIV2Client } from "@mittwald/api-client";
3
- import { SuccessfulResponse } from "../../types.js";
4
- import { ListColumns } from "../../Formatter.js";
5
- import { ListBaseCommand } from "../../ListBaseCommand.js";
3
+ import { ListColumns } from "../../rendering/formatter/ListFormatter.js";
4
+ import { ListBaseCommand } from "../../lib/basecommands/ListBaseCommand.js";
6
5
  type ResponseItem = Simplify<MittwaldAPIV2.Paths.V2Conversations.Get.Responses.$200.Content.ApplicationJson[number]>;
7
6
  type Response = Awaited<ReturnType<MittwaldAPIV2Client["conversation"]["listConversations"]>>;
8
7
  export default class List extends ListBaseCommand<typeof List, ResponseItem, Response> {
@@ -33,7 +32,6 @@ export default class List extends ListBaseCommand<typeof List, ResponseItem, Res
33
32
  "no-relative-dates": import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
34
33
  };
35
34
  getData(): Promise<Response>;
36
- protected mapData(data: SuccessfulResponse<Response, 200>["data"]): MittwaldAPIV2.Components.Schemas.ConversationConversation[];
37
35
  protected getColumns(): ListColumns<ResponseItem>;
38
36
  }
39
37
  export {};
@@ -1,5 +1,5 @@
1
- import { formatRelativeDate } from "../../lib/viewhelpers/date.js";
2
- import { ListBaseCommand } from "../../ListBaseCommand.js";
1
+ import { formatRelativeDate } from "../../rendering/textformat/formatDate.js";
2
+ import { ListBaseCommand } from "../../lib/basecommands/ListBaseCommand.js";
3
3
  export default class List extends ListBaseCommand {
4
4
  static description = "Get all conversations the authenticated user has created or has access to.";
5
5
  static args = {};
@@ -9,9 +9,6 @@ export default class List extends ListBaseCommand {
9
9
  async getData() {
10
10
  return await this.apiClient.conversation.listConversations();
11
11
  }
12
- mapData(data) {
13
- return data;
14
- }
15
12
  getColumns() {
16
13
  return {
17
14
  conversationId: {
@@ -1,8 +1,8 @@
1
- import { BaseCommand } from "../../BaseCommand.js";
2
- export default class Reply extends BaseCommand {
1
+ import { ExtendedBaseCommand } from "../../lib/basecommands/ExtendedBaseCommand.js";
2
+ export default class Reply extends ExtendedBaseCommand<typeof Reply> {
3
3
  static description: string;
4
4
  static args: {
5
- id: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
5
+ "conversation-id": import("@oclif/core/lib/interfaces/parser.js").Arg<string>;
6
6
  };
7
7
  static flags: {
8
8
  message: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
@@ -1,24 +1,19 @@
1
- import { BaseCommand } from "../../BaseCommand.js";
2
- import { Args, ux } from "@oclif/core";
3
- import { normalizeConversationId } from "../../normalize_id.js";
1
+ import { BaseCommand } from "../../lib/basecommands/BaseCommand.js";
4
2
  import { assertStatus } from "@mittwald/api-client-commons";
5
- import { messageFlags, retrieveMessage, } from "../../lib/conversation/message_input.js";
6
- export default class Reply extends BaseCommand {
3
+ import { messageFlags, retrieveMessage, } from "../../lib/resources/conversation/message_input.js";
4
+ import { conversationArgs, withConversationId, } from "../../lib/resources/conversation/flags.js";
5
+ import { ExtendedBaseCommand } from "../../lib/basecommands/ExtendedBaseCommand.js";
6
+ import { ux } from "@oclif/core";
7
+ export default class Reply extends ExtendedBaseCommand {
7
8
  static description = "Reply to a conversation";
8
- static args = {
9
- id: Args.string({
10
- required: true,
11
- description: "ID of the conversation to show",
12
- }),
13
- };
9
+ static args = { ...conversationArgs };
14
10
  static flags = {
15
11
  ...BaseCommand.baseFlags,
16
12
  ...messageFlags,
17
13
  };
18
14
  async run() {
19
- const { args, flags } = await this.parse(Reply);
20
- const conversationId = await normalizeConversationId(this.apiClient, args.id);
21
- const messageContent = await retrieveMessage(flags);
15
+ const conversationId = await withConversationId(this.apiClient, Reply, this.flags, this.args, this.config);
16
+ const messageContent = await retrieveMessage(this.flags);
22
17
  ux.action.start(`replying to ${conversationId}`);
23
18
  const response = await this.apiClient.conversation.createMessage({
24
19
  conversationId,
@@ -1,8 +1,8 @@
1
- import { BaseCommand } from "../../BaseCommand.js";
2
- export default class Show extends BaseCommand {
1
+ import { ExtendedBaseCommand } from "../../lib/basecommands/ExtendedBaseCommand.js";
2
+ export default class Show extends ExtendedBaseCommand<typeof Show> {
3
3
  static description: string;
4
4
  static args: {
5
- id: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
5
+ "conversation-id": import("@oclif/core/lib/interfaces/parser.js").Arg<string>;
6
6
  };
7
7
  run(): Promise<void>;
8
8
  private loadConversationWithMessages;