@mittwald/cli 1.0.0-alpha.8 → 1.0.0-alpha.9

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 (263) hide show
  1. package/README.md +129 -117
  2. package/dist/esm/BaseCommand.d.ts +1 -1
  3. package/dist/esm/DeleteBaseCommand.d.ts +6 -9
  4. package/dist/esm/DeleteBaseCommand.js +27 -21
  5. package/dist/esm/ExtendedBaseCommand.d.ts +1 -1
  6. package/dist/esm/Formatter.d.ts +5 -2
  7. package/dist/esm/Formatter.js +7 -2
  8. package/dist/esm/GetBaseCommand.d.ts +1 -1
  9. package/dist/esm/Helpers.d.ts +1 -0
  10. package/dist/esm/Helpers.js +7 -1
  11. package/dist/esm/ListBaseCommand.d.ts +1 -1
  12. package/dist/esm/ListBaseCommand.js +2 -2
  13. package/dist/esm/Printer.d.ts +6 -7
  14. package/dist/esm/Printer.js +3 -3
  15. package/dist/esm/Translator.d.ts +1 -0
  16. package/dist/esm/Translator.js +12 -1
  17. package/dist/esm/commands/app/delete.d.ts +1 -1
  18. package/dist/esm/commands/app/delete.js +1 -1
  19. package/dist/esm/commands/app/dependency/listSystemsoftwareversions.d.ts +1 -1
  20. package/dist/esm/commands/app/install/wordpress.d.ts +1 -2
  21. package/dist/esm/commands/app/install/wordpress.js +5 -9
  22. package/dist/esm/commands/app/list.d.ts +1 -1
  23. package/dist/esm/commands/app/versions.d.ts +1 -1
  24. package/dist/esm/commands/context/get.d.ts +10 -0
  25. package/dist/esm/commands/context/get.js +39 -0
  26. package/dist/esm/commands/context/set.d.ts +11 -0
  27. package/dist/esm/commands/context/set.js +37 -0
  28. package/dist/esm/commands/conversation/close.d.ts +1 -1
  29. package/dist/esm/commands/conversation/create.d.ts +1 -1
  30. package/dist/esm/commands/conversation/list.js +2 -2
  31. package/dist/esm/commands/conversation/reply.d.ts +1 -1
  32. package/dist/esm/commands/conversation/show.d.ts +1 -1
  33. package/dist/esm/commands/conversation/show.js +7 -7
  34. package/dist/esm/commands/conversation/show2.js +6 -3
  35. package/dist/esm/commands/domain/list.d.ts +12 -4
  36. package/dist/esm/commands/domain/list.js +16 -2
  37. package/dist/esm/commands/domain/virtualhost/list.js +10 -7
  38. package/dist/esm/commands/login/reset.d.ts +12 -0
  39. package/dist/esm/commands/login/reset.js +39 -0
  40. package/dist/esm/commands/login/status.d.ts +1 -1
  41. package/dist/esm/commands/login/token.d.ts +2 -1
  42. package/dist/esm/commands/login/token.js +1 -0
  43. package/dist/esm/commands/mail/address/create.d.ts +12 -4
  44. package/dist/esm/commands/mail/address/create.js +35 -26
  45. package/dist/esm/commands/mail/address/delete.d.ts +1 -0
  46. package/dist/esm/commands/mail/address/list.d.ts +11 -3
  47. package/dist/esm/commands/mail/address/list.js +23 -7
  48. package/dist/esm/commands/mail/deliverybox/list.d.ts +1 -1
  49. package/dist/esm/commands/mail/deliverybox/list.js +2 -2
  50. package/dist/esm/commands/org/list.js +1 -1
  51. package/dist/esm/commands/project/backup/list.d.ts +12 -5
  52. package/dist/esm/commands/project/backup/list.js +17 -9
  53. package/dist/esm/commands/project/create.d.ts +12 -4
  54. package/dist/esm/commands/project/create.js +32 -26
  55. package/dist/esm/commands/project/cronjob/execution/get.d.ts +15 -2
  56. package/dist/esm/commands/project/cronjob/execution/get.js +26 -5
  57. package/dist/esm/commands/project/cronjob/execution/list.d.ts +11 -4
  58. package/dist/esm/commands/project/cronjob/execution/list.js +27 -7
  59. package/dist/esm/commands/project/cronjob/execution/logs.d.ts +15 -0
  60. package/dist/esm/commands/project/cronjob/execution/logs.js +74 -0
  61. package/dist/esm/commands/project/cronjob/list.d.ts +12 -4
  62. package/dist/esm/commands/project/cronjob/list.js +24 -5
  63. package/dist/esm/commands/project/delete.d.ts +2 -1
  64. package/dist/esm/commands/project/delete.js +5 -11
  65. package/dist/esm/commands/project/filesystem/usage.d.ts +13 -3
  66. package/dist/esm/commands/project/filesystem/usage.js +51 -9
  67. package/dist/esm/commands/project/get.d.ts +13 -3
  68. package/dist/esm/commands/project/get.js +76 -9
  69. package/dist/esm/commands/project/invite/list-own.js +2 -2
  70. package/dist/esm/commands/project/invite/list.d.ts +1 -1
  71. package/dist/esm/commands/project/invite/list.js +2 -2
  72. package/dist/esm/commands/project/{list2.d.ts → list-react.d.ts} +3 -1
  73. package/dist/esm/commands/project/list-react.js +42 -0
  74. package/dist/esm/commands/project/membership/list-own.js +2 -2
  75. package/dist/esm/commands/project/membership/list.d.ts +1 -1
  76. package/dist/esm/commands/project/membership/list.js +2 -2
  77. package/dist/esm/commands/project/ssh.d.ts +2 -2
  78. package/dist/esm/commands/project/ssh.js +3 -8
  79. package/dist/esm/commands/project/update.d.ts +2 -2
  80. package/dist/esm/commands/project/update.js +6 -9
  81. package/dist/esm/commands/user/api-token/create.d.ts +9 -3
  82. package/dist/esm/commands/user/api-token/create.js +33 -15
  83. package/dist/esm/commands/user/api-token/list.js +4 -2
  84. package/dist/esm/commands/user/api-token/revoke.d.ts +8 -3
  85. package/dist/esm/commands/user/api-token/revoke.js +6 -6
  86. package/dist/esm/commands/user/session/list.js +4 -2
  87. package/dist/esm/commands/user/ssh-key/create.d.ts +6 -3
  88. package/dist/esm/commands/user/ssh-key/create.js +35 -18
  89. package/dist/esm/commands/user/ssh-key/delete.d.ts +5 -4
  90. package/dist/esm/commands/user/ssh-key/delete.js +7 -26
  91. package/dist/esm/lib/bytes.d.ts +1 -0
  92. package/dist/esm/lib/bytes.js +16 -0
  93. package/dist/esm/lib/context.d.ts +16 -0
  94. package/dist/esm/lib/context.js +42 -0
  95. package/dist/esm/lib/context_flags.d.ts +18 -0
  96. package/dist/esm/lib/context_flags.js +42 -0
  97. package/dist/esm/lib/project/flags.d.ts +5 -0
  98. package/dist/esm/lib/project/flags.js +3 -0
  99. package/dist/esm/lib/server/flags.d.ts +5 -0
  100. package/dist/esm/lib/server/flags.js +3 -0
  101. package/dist/esm/lib/viewhelpers/date.d.ts +2 -1
  102. package/dist/esm/lib/viewhelpers/date.js +9 -2
  103. package/dist/esm/lib/viewhelpers/removeLineBreaks.d.ts +1 -0
  104. package/dist/esm/lib/viewhelpers/removeLineBreaks.js +1 -0
  105. package/dist/esm/rendering/lib/getTerminalWidth.d.ts +1 -0
  106. package/dist/esm/rendering/lib/getTerminalWidth.js +2 -0
  107. package/dist/esm/rendering/react/ComponentPrinter.d.ts +7 -0
  108. package/dist/esm/rendering/react/ComponentPrinter.js +13 -0
  109. package/dist/esm/rendering/react/ExecRenderBaseCommand.d.ts +8 -0
  110. package/dist/esm/rendering/react/ExecRenderBaseCommand.js +15 -0
  111. package/dist/esm/rendering/react/RenderBaseCommand.d.ts +12 -0
  112. package/dist/esm/rendering/react/RenderBaseCommand.js +36 -4
  113. package/dist/esm/rendering/react/components/ByteFormat.d.ts +4 -0
  114. package/dist/esm/rendering/react/components/ByteFormat.js +12 -0
  115. package/dist/esm/rendering/react/components/{ConversationMessage.js → Conversation/ConversationMessage.js} +1 -1
  116. package/dist/esm/rendering/react/components/Conversation/ConversationMessages.d.ts +8 -0
  117. package/dist/esm/rendering/react/components/Conversation/ConversationMessages.js +13 -0
  118. package/dist/esm/rendering/react/components/{ConversationMeta.js → Conversation/ConversationMeta.js} +7 -3
  119. package/dist/esm/rendering/react/components/CreatedAt.d.ts +8 -0
  120. package/dist/esm/rendering/react/components/CreatedAt.js +10 -0
  121. package/dist/esm/rendering/react/components/Filename.d.ts +4 -0
  122. package/dist/esm/rendering/react/components/Filename.js +5 -0
  123. package/dist/esm/rendering/react/components/FormattedDate.d.ts +7 -0
  124. package/dist/esm/rendering/react/components/FormattedDate.js +18 -0
  125. package/dist/esm/rendering/react/components/Header.d.ts +2 -2
  126. package/dist/esm/rendering/react/components/IDAndShortID.d.ts +7 -0
  127. package/dist/esm/rendering/react/components/IDAndShortID.js +6 -0
  128. package/dist/esm/rendering/react/components/JSONView.d.ts +7 -0
  129. package/dist/esm/rendering/react/components/JSONView.js +3 -0
  130. package/dist/esm/rendering/react/components/ListItem.d.ts +3 -0
  131. package/dist/esm/rendering/react/components/ListItem.js +5 -0
  132. package/dist/esm/rendering/react/components/Note.d.ts +10 -0
  133. package/dist/esm/rendering/react/components/Note.js +8 -0
  134. package/dist/esm/rendering/react/components/ProjectEnabled.d.ts +6 -0
  135. package/dist/esm/rendering/react/components/ProjectEnabled.js +9 -0
  136. package/dist/esm/rendering/react/components/ProjectReadiness.d.ts +7 -0
  137. package/dist/esm/rendering/react/components/ProjectReadiness.js +16 -0
  138. package/dist/esm/rendering/react/components/ProjectStatus.d.ts +7 -0
  139. package/dist/esm/rendering/react/components/ProjectStatus.js +8 -0
  140. package/dist/esm/rendering/react/components/Render.d.ts +6 -0
  141. package/dist/esm/rendering/react/components/Render.js +5 -0
  142. package/dist/esm/rendering/react/components/SingleResult.d.ts +10 -0
  143. package/dist/esm/rendering/react/components/SingleResult.js +15 -0
  144. package/dist/esm/rendering/react/components/Success.d.ts +9 -0
  145. package/dist/esm/rendering/react/components/Success.js +6 -0
  146. package/dist/esm/rendering/react/components/Table/BodyCell.d.ts +7 -0
  147. package/dist/esm/rendering/react/components/Table/BodyCell.js +7 -0
  148. package/dist/esm/rendering/react/components/Table/BodyRow.d.ts +7 -0
  149. package/dist/esm/rendering/react/components/Table/BodyRow.js +7 -0
  150. package/dist/esm/rendering/react/components/Table/BodyRows.d.ts +7 -0
  151. package/dist/esm/rendering/react/components/Table/BodyRows.js +6 -0
  152. package/dist/esm/rendering/react/components/Table/CellData.d.ts +6 -0
  153. package/dist/esm/rendering/react/components/Table/CellData.js +32 -0
  154. package/dist/esm/rendering/react/components/Table/CellLayout.d.ts +8 -0
  155. package/dist/esm/rendering/react/components/Table/CellLayout.js +17 -0
  156. package/dist/esm/rendering/react/components/Table/HeaderCell.d.ts +7 -0
  157. package/dist/esm/rendering/react/components/Table/HeaderCell.js +7 -0
  158. package/dist/esm/rendering/react/components/Table/HeaderRow.d.ts +8 -0
  159. package/dist/esm/rendering/react/components/Table/HeaderRow.js +7 -0
  160. package/dist/esm/rendering/react/components/Table/RowLayout.d.ts +5 -0
  161. package/dist/esm/rendering/react/components/Table/RowLayout.js +3 -0
  162. package/dist/esm/rendering/react/components/Table/Table.d.ts +10 -0
  163. package/dist/esm/rendering/react/components/Table/Table.js +21 -0
  164. package/dist/esm/rendering/react/components/Table/context.d.ts +9 -0
  165. package/dist/esm/rendering/react/components/Table/context.js +7 -0
  166. package/dist/esm/rendering/react/components/Table/index.d.ts +1 -0
  167. package/dist/esm/rendering/react/components/Table/index.js +1 -0
  168. package/dist/esm/rendering/react/components/Table/model/Cell.d.ts +19 -0
  169. package/dist/esm/rendering/react/components/Table/model/Cell.js +24 -0
  170. package/dist/esm/rendering/react/components/Table/model/Column.d.ts +16 -0
  171. package/dist/esm/rendering/react/components/Table/model/Column.js +35 -0
  172. package/dist/esm/rendering/react/components/Table/model/ColumnName.d.ts +7 -0
  173. package/dist/esm/rendering/react/components/Table/model/ColumnName.js +17 -0
  174. package/dist/esm/rendering/react/components/Table/model/ColumnOptions.d.ts +25 -0
  175. package/dist/esm/rendering/react/components/Table/model/ColumnOptions.js +41 -0
  176. package/dist/esm/rendering/react/components/Table/model/Row.d.ts +14 -0
  177. package/dist/esm/rendering/react/components/Table/model/Row.js +37 -0
  178. package/dist/esm/rendering/react/components/Table/model/Table.d.ts +19 -0
  179. package/dist/esm/rendering/react/components/Table/model/Table.js +48 -0
  180. package/dist/esm/rendering/react/components/Table/model/index.d.ts +5 -0
  181. package/dist/esm/rendering/react/components/Table/model/index.js +5 -0
  182. package/dist/esm/rendering/react/components/Value.d.ts +5 -0
  183. package/dist/esm/rendering/react/components/Value.js +8 -0
  184. package/dist/esm/rendering/react/components/WithoutLineBreaks.d.ts +2 -0
  185. package/dist/esm/rendering/react/components/WithoutLineBreaks.js +7 -0
  186. package/dist/esm/rendering/react/context.d.ts +3 -2
  187. package/dist/esm/rendering/react/context.js +4 -1
  188. package/dist/esm/rendering/react/json/JsonCollectionProvider.d.ts +2 -0
  189. package/dist/esm/rendering/react/json/JsonCollectionProvider.js +10 -0
  190. package/dist/esm/rendering/react/json/JsonRenderer.d.ts +2 -0
  191. package/dist/esm/rendering/react/json/JsonRenderer.js +14 -0
  192. package/dist/esm/rendering/react/json/RenderJson.d.ts +7 -0
  193. package/dist/esm/rendering/react/json/RenderJson.js +19 -0
  194. package/dist/esm/rendering/react/json/context.d.ts +5 -0
  195. package/dist/esm/rendering/react/json/context.js +4 -0
  196. package/dist/esm/rendering/react/json/lib/unpackJsonData.d.ts +1 -0
  197. package/dist/esm/rendering/react/json/lib/unpackJsonData.js +5 -0
  198. package/dist/esm/rendering/react/lib/observable-value/ObservableValue.d.ts +10 -0
  199. package/dist/esm/rendering/react/lib/observable-value/ObservableValue.js +25 -0
  200. package/dist/esm/rendering/react/lib/observable-value/types.d.ts +2 -0
  201. package/dist/esm/rendering/react/lib/observable-value/types.js +1 -0
  202. package/dist/esm/rendering/react/lib/observable-value/useWatchObservableValue.d.ts +2 -0
  203. package/dist/esm/rendering/react/lib/observable-value/useWatchObservableValue.js +9 -0
  204. package/dist/esm/rendering/react/measure/MeasureChildren.d.ts +8 -0
  205. package/dist/esm/rendering/react/measure/MeasureChildren.js +19 -0
  206. package/dist/esm/rendering/react/measure/MeasureContextProvider.d.ts +2 -0
  207. package/dist/esm/rendering/react/measure/MeasureContextProvider.js +10 -0
  208. package/dist/esm/rendering/react/measure/MeasureRenderer.d.ts +2 -0
  209. package/dist/esm/rendering/react/measure/MeasureRenderer.js +22 -0
  210. package/dist/esm/rendering/react/measure/context.d.ts +18 -0
  211. package/dist/esm/rendering/react/measure/context.js +48 -0
  212. package/dist/esm/rendering/react/process.d.ts +42 -0
  213. package/dist/esm/rendering/react/process.js +24 -0
  214. package/dist/esm/rendering/react/process_fancy.d.ts +28 -0
  215. package/dist/esm/rendering/react/process_fancy.js +213 -0
  216. package/dist/esm/rendering/react/process_flags.d.ts +9 -0
  217. package/dist/esm/rendering/react/process_flags.js +15 -0
  218. package/dist/esm/rendering/react/process_quiet.d.ts +12 -0
  219. package/dist/esm/rendering/react/process_quiet.js +29 -0
  220. package/dist/esm/rendering/setup/FlagSupportedSetup.d.ts +2 -0
  221. package/dist/esm/rendering/setup/TableRenderSetup.d.ts +10 -12
  222. package/dist/esm/rendering/setup/TableRenderSetup.js +19 -6
  223. package/dist/esm/rendering/setup/usePromiseSetup.d.ts +4 -3
  224. package/package.json +52 -21
  225. package/.deps/client.tgz +0 -0
  226. package/.deps/commons.tgz +0 -0
  227. package/dist/esm/commands/project/filesystem/directories.d.ts +0 -3
  228. package/dist/esm/commands/project/filesystem/directories.js +0 -6
  229. package/dist/esm/commands/project/filesystem/file-content.d.ts +0 -3
  230. package/dist/esm/commands/project/filesystem/file-content.js +0 -6
  231. package/dist/esm/commands/project/filesystem/files.d.ts +0 -16
  232. package/dist/esm/commands/project/filesystem/files.js +0 -25
  233. package/dist/esm/commands/project/list1.d.ts +0 -7
  234. package/dist/esm/commands/project/list1.js +0 -18
  235. package/dist/esm/commands/project/list2.js +0 -26
  236. package/dist/esm/generated/cronjob/listCronjobs.d.ts +0 -13
  237. package/dist/esm/generated/cronjob/listCronjobs.js +0 -24
  238. package/dist/esm/generated/cronjob/listExecutions.d.ts +0 -13
  239. package/dist/esm/generated/cronjob/listExecutions.js +0 -24
  240. package/dist/esm/generated/domain/ingressListAccessible.d.ts +0 -13
  241. package/dist/esm/generated/domain/ingressListAccessible.js +0 -17
  242. package/dist/esm/generated/domain/ingressListForProject.d.ts +0 -13
  243. package/dist/esm/generated/domain/ingressListForProject.js +0 -24
  244. package/dist/esm/generated/domain/listDomains.d.ts +0 -13
  245. package/dist/esm/generated/domain/listDomains.js +0 -24
  246. package/dist/esm/generated/projectFileSystem/getDirectories.d.ts +0 -14
  247. package/dist/esm/generated/projectFileSystem/getDirectories.js +0 -24
  248. package/dist/esm/generated/projectFileSystem/getDiskUsage.d.ts +0 -14
  249. package/dist/esm/generated/projectFileSystem/getDiskUsage.js +0 -24
  250. package/dist/esm/generated/projectFileSystem/getFileContent.d.ts +0 -14
  251. package/dist/esm/generated/projectFileSystem/getFileContent.js +0 -24
  252. package/dist/esm/generated/projectFileSystem/getJwt.d.ts +0 -14
  253. package/dist/esm/generated/projectFileSystem/getJwt.js +0 -24
  254. package/dist/esm/generated/projectFileSystem/listFiles.d.ts +0 -13
  255. package/dist/esm/generated/projectFileSystem/listFiles.js +0 -24
  256. package/dist/esm/rendering/oclif/components/table.d.ts +0 -11
  257. package/dist/esm/rendering/oclif/components/table.js +0 -49
  258. package/dist/esm/rendering/react/components/Table.d.ts +0 -7
  259. package/dist/esm/rendering/react/components/Table.js +0 -4
  260. /package/dist/esm/rendering/react/components/{ConversationMessage.d.ts → Conversation/ConversationMessage.d.ts} +0 -0
  261. /package/dist/esm/rendering/react/components/{ConversationMeta.d.ts → Conversation/ConversationMeta.d.ts} +0 -0
  262. /package/dist/esm/rendering/react/components/{ConversationStatusUpdate.d.ts → Conversation/ConversationStatusUpdate.d.ts} +0 -0
  263. /package/dist/esm/rendering/react/components/{ConversationStatusUpdate.js → Conversation/ConversationStatusUpdate.js} +0 -0
package/README.md CHANGED
@@ -8,7 +8,11 @@
8
8
 
9
9
  > ⚠️ **EXPERIMENTAL -- STABILITY NOTICE**
10
10
  >
11
- > This project is **experimental**, and we do not offer any stability guarantees of any kind for the command structure, input flags and arguments and output formats. We welcome you to give this project a try and we're looking forward for any feedback on this project in this stage of development. However, please do not rely on any inputs or outputs of this project to remain stable.
11
+ > This project is **experimental**, and we do not offer any stability guarantees
12
+ > of any kind for the command structure, input flags and arguments and output
13
+ > formats. We welcome you to give this project a try and we're looking forward
14
+ > for any feedback on this project in this stage of development. However, please
15
+ > do not rely on any inputs or outputs of this project to remain stable.
12
16
 
13
17
  ## Synposis
14
18
 
@@ -16,11 +20,14 @@
16
20
 
17
21
  ## Installation and first steps
18
22
 
19
- Have a look at the [documentation](https://developer.mittwald.de/docs/v2/api/sdks/cli/) for installation instructions.
23
+ Have a look at the
24
+ [documentation](https://developer.mittwald.de/docs/v2/api/sdks/cli/) for
25
+ installation instructions.
20
26
 
21
27
  ## Usage
22
28
 
23
29
  <!-- usage -->
30
+
24
31
  ```sh-session
25
32
  $ npm install -g @mittwald/cli
26
33
  $ mw COMMAND
@@ -32,124 +39,126 @@ USAGE
32
39
  $ mw COMMAND
33
40
  ...
34
41
  ```
42
+
35
43
  <!-- usagestop -->
36
44
 
37
45
  ## Commands
38
46
 
39
47
  <!-- commands -->
40
- * [`mw app delete ID`](#mw-app-delete-id)
41
- * [`mw app dependency getSystemsoftware SYSTEMSOFTWAREID`](#mw-app-dependency-getsystemsoftware-systemsoftwareid)
42
- * [`mw app dependency getSystemsoftwareversion SYSTEMSOFTWAREVERSIONID`](#mw-app-dependency-getsystemsoftwareversion-systemsoftwareversionid)
43
- * [`mw app dependency listSystemsoftwares`](#mw-app-dependency-listsystemsoftwares)
44
- * [`mw app dependency listSystemsoftwareversions`](#mw-app-dependency-listsystemsoftwareversions)
45
- * [`mw app get APPINSTALLATIONID`](#mw-app-get-appinstallationid)
46
- * [`mw app install wordpress`](#mw-app-install-wordpress)
47
- * [`mw app list`](#mw-app-list)
48
- * [`mw app versions [APP]`](#mw-app-versions-app)
49
- * [`mw article get ARTICLEID`](#mw-article-get-articleid)
50
- * [`mw article list`](#mw-article-list)
51
- * [`mw contract getBaseItemOfContract`](#mw-contract-getbaseitemofcontract)
52
- * [`mw contract getDetailOfContract CONTRACTID`](#mw-contract-getdetailofcontract-contractid)
53
- * [`mw contract getDetailOfContractByDomain`](#mw-contract-getdetailofcontractbydomain)
54
- * [`mw contract getDetailOfContractByProject`](#mw-contract-getdetailofcontractbyproject)
55
- * [`mw contract getDetailOfContractByServer`](#mw-contract-getdetailofcontractbyserver)
56
- * [`mw contract getDetailOfContractItem CONTRACTITEMID`](#mw-contract-getdetailofcontractitem-contractitemid)
57
- * [`mw contract getNextTerminationDateForItem`](#mw-contract-getnextterminationdateforitem)
58
- * [`mw contract invoiceDetailOfInvoice INVOICEID`](#mw-contract-invoicedetailofinvoice-invoiceid)
59
- * [`mw contract invoiceGetDetailOfInvoiceSettings`](#mw-contract-invoicegetdetailofinvoicesettings)
60
- * [`mw contract invoiceListCustomerInvoices`](#mw-contract-invoicelistcustomerinvoices)
61
- * [`mw contract listContracts`](#mw-contract-listcontracts)
62
- * [`mw contract orderGetOrder ORDERID`](#mw-contract-ordergetorder-orderid)
63
- * [`mw contract orderListCustomerOrders`](#mw-contract-orderlistcustomerorders)
64
- * [`mw contract orderListProjectOrders`](#mw-contract-orderlistprojectorders)
65
- * [`mw conversation categories`](#mw-conversation-categories)
66
- * [`mw conversation close ID`](#mw-conversation-close-id)
67
- * [`mw conversation create`](#mw-conversation-create)
68
- * [`mw conversation list`](#mw-conversation-list)
69
- * [`mw conversation reply ID`](#mw-conversation-reply-id)
70
- * [`mw conversation show ID`](#mw-conversation-show-id)
71
- * [`mw conversation show2 CONVERSATIONID`](#mw-conversation-show2-conversationid)
72
- * [`mw database mysql charsets`](#mw-database-mysql-charsets)
73
- * [`mw database mysql get ID`](#mw-database-mysql-get-id)
74
- * [`mw database mysql list`](#mw-database-mysql-list)
75
- * [`mw database mysql user get ID`](#mw-database-mysql-user-get-id)
76
- * [`mw database mysql user getMysqlUserPhpMyAdminUrl`](#mw-database-mysql-user-getmysqluserphpmyadminurl)
77
- * [`mw database mysql user list`](#mw-database-mysql-user-list)
78
- * [`mw database mysql versions`](#mw-database-mysql-versions)
79
- * [`mw database redis get ID`](#mw-database-redis-get-id)
80
- * [`mw database redis list`](#mw-database-redis-list)
81
- * [`mw database redis versions`](#mw-database-redis-versions)
82
- * [`mw domain dnszone get ZONEID`](#mw-domain-dnszone-get-zoneid)
83
- * [`mw domain dnszone list`](#mw-domain-dnszone-list)
84
- * [`mw domain get DOMAINID`](#mw-domain-get-domainid)
85
- * [`mw domain get-handle DOMAINNAME`](#mw-domain-get-handle-domainname)
86
- * [`mw domain list`](#mw-domain-list)
87
- * [`mw domain ownership get DOMAINOWNERSHIPID`](#mw-domain-ownership-get-domainownershipid)
88
- * [`mw domain ownership list`](#mw-domain-ownership-list)
89
- * [`mw domain tld get TLD`](#mw-domain-tld-get-tld)
90
- * [`mw domain tld list`](#mw-domain-tld-list)
91
- * [`mw domain virtualhost get INGRESSID`](#mw-domain-virtualhost-get-ingressid)
92
- * [`mw domain virtualhost list`](#mw-domain-virtualhost-list)
93
- * [`mw help [COMMANDS]`](#mw-help-commands)
94
- * [`mw login status`](#mw-login-status)
95
- * [`mw login token`](#mw-login-token)
96
- * [`mw mail address create`](#mw-mail-address-create)
97
- * [`mw mail address delete ID`](#mw-mail-address-delete-id)
98
- * [`mw mail address get ID`](#mw-mail-address-get-id)
99
- * [`mw mail address list`](#mw-mail-address-list)
100
- * [`mw mail deliverybox get ID`](#mw-mail-deliverybox-get-id)
101
- * [`mw mail deliverybox list`](#mw-mail-deliverybox-list)
102
- * [`mw org can-order`](#mw-org-can-order)
103
- * [`mw org get CUSTOMERID`](#mw-org-get-customerid)
104
- * [`mw org invite get INVITEID`](#mw-org-invite-get-inviteid)
105
- * [`mw org invite list`](#mw-org-invite-list)
106
- * [`mw org invite list-own`](#mw-org-invite-list-own)
107
- * [`mw org list`](#mw-org-list)
108
- * [`mw org membership get MEMBERSHIPID`](#mw-org-membership-get-membershipid)
109
- * [`mw org membership list`](#mw-org-membership-list)
110
- * [`mw org membership list-own`](#mw-org-membership-list-own)
111
- * [`mw project backup get PROJECTBACKUPID`](#mw-project-backup-get-projectbackupid)
112
- * [`mw project backup list`](#mw-project-backup-list)
113
- * [`mw project backupschedule get PROJECTBACKUPSCHEDULEID`](#mw-project-backupschedule-get-projectbackupscheduleid)
114
- * [`mw project backupschedule list`](#mw-project-backupschedule-list)
115
- * [`mw project create`](#mw-project-create)
116
- * [`mw project cronjob execution get EXECUTIONID`](#mw-project-cronjob-execution-get-executionid)
117
- * [`mw project cronjob execution list`](#mw-project-cronjob-execution-list)
118
- * [`mw project cronjob get CRONJOBID`](#mw-project-cronjob-get-cronjobid)
119
- * [`mw project cronjob list`](#mw-project-cronjob-list)
120
- * [`mw project delete ID`](#mw-project-delete-id)
121
- * [`mw project filesystem directories`](#mw-project-filesystem-directories)
122
- * [`mw project filesystem file-content`](#mw-project-filesystem-file-content)
123
- * [`mw project filesystem files PROJECTID`](#mw-project-filesystem-files-projectid)
124
- * [`mw project filesystem usage`](#mw-project-filesystem-usage)
125
- * [`mw project get ID`](#mw-project-get-id)
126
- * [`mw project invite get INVITEID`](#mw-project-invite-get-inviteid)
127
- * [`mw project invite list`](#mw-project-invite-list)
128
- * [`mw project invite list-own`](#mw-project-invite-list-own)
129
- * [`mw project list`](#mw-project-list)
130
- * [`mw project list1`](#mw-project-list1)
131
- * [`mw project list2`](#mw-project-list2)
132
- * [`mw project membership get MEMBERSHIPID`](#mw-project-membership-get-membershipid)
133
- * [`mw project membership get-own`](#mw-project-membership-get-own)
134
- * [`mw project membership list`](#mw-project-membership-list)
135
- * [`mw project membership list-own`](#mw-project-membership-list-own)
136
- * [`mw project sftp-user list`](#mw-project-sftp-user-list)
137
- * [`mw project ssh ID`](#mw-project-ssh-id)
138
- * [`mw project ssh-user list`](#mw-project-ssh-user-list)
139
- * [`mw project update ID`](#mw-project-update-id)
140
- * [`mw server get SERVERID`](#mw-server-get-serverid)
141
- * [`mw server list`](#mw-server-list)
142
- * [`mw user api-token create`](#mw-user-api-token-create)
143
- * [`mw user api-token get APITOKENID`](#mw-user-api-token-get-apitokenid)
144
- * [`mw user api-token list`](#mw-user-api-token-list)
145
- * [`mw user api-token revoke ID`](#mw-user-api-token-revoke-id)
146
- * [`mw user get`](#mw-user-get)
147
- * [`mw user session get TOKENID`](#mw-user-session-get-tokenid)
148
- * [`mw user session list`](#mw-user-session-list)
149
- * [`mw user ssh-key create`](#mw-user-ssh-key-create)
150
- * [`mw user ssh-key delete ID`](#mw-user-ssh-key-delete-id)
151
- * [`mw user ssh-key get SSHKEYID`](#mw-user-ssh-key-get-sshkeyid)
152
- * [`mw user ssh-key list`](#mw-user-ssh-key-list)
48
+
49
+ - [`mw app delete ID`](#mw-app-delete-id)
50
+ - [`mw app dependency getSystemsoftware SYSTEMSOFTWAREID`](#mw-app-dependency-getsystemsoftware-systemsoftwareid)
51
+ - [`mw app dependency getSystemsoftwareversion SYSTEMSOFTWAREVERSIONID`](#mw-app-dependency-getsystemsoftwareversion-systemsoftwareversionid)
52
+ - [`mw app dependency listSystemsoftwares`](#mw-app-dependency-listsystemsoftwares)
53
+ - [`mw app dependency listSystemsoftwareversions`](#mw-app-dependency-listsystemsoftwareversions)
54
+ - [`mw app get APPINSTALLATIONID`](#mw-app-get-appinstallationid)
55
+ - [`mw app install wordpress`](#mw-app-install-wordpress)
56
+ - [`mw app list`](#mw-app-list)
57
+ - [`mw app versions [APP]`](#mw-app-versions-app)
58
+ - [`mw article get ARTICLEID`](#mw-article-get-articleid)
59
+ - [`mw article list`](#mw-article-list)
60
+ - [`mw contract getBaseItemOfContract`](#mw-contract-getbaseitemofcontract)
61
+ - [`mw contract getDetailOfContract CONTRACTID`](#mw-contract-getdetailofcontract-contractid)
62
+ - [`mw contract getDetailOfContractByDomain`](#mw-contract-getdetailofcontractbydomain)
63
+ - [`mw contract getDetailOfContractByProject`](#mw-contract-getdetailofcontractbyproject)
64
+ - [`mw contract getDetailOfContractByServer`](#mw-contract-getdetailofcontractbyserver)
65
+ - [`mw contract getDetailOfContractItem CONTRACTITEMID`](#mw-contract-getdetailofcontractitem-contractitemid)
66
+ - [`mw contract getNextTerminationDateForItem`](#mw-contract-getnextterminationdateforitem)
67
+ - [`mw contract invoiceDetailOfInvoice INVOICEID`](#mw-contract-invoicedetailofinvoice-invoiceid)
68
+ - [`mw contract invoiceGetDetailOfInvoiceSettings`](#mw-contract-invoicegetdetailofinvoicesettings)
69
+ - [`mw contract invoiceListCustomerInvoices`](#mw-contract-invoicelistcustomerinvoices)
70
+ - [`mw contract listContracts`](#mw-contract-listcontracts)
71
+ - [`mw contract orderGetOrder ORDERID`](#mw-contract-ordergetorder-orderid)
72
+ - [`mw contract orderListCustomerOrders`](#mw-contract-orderlistcustomerorders)
73
+ - [`mw contract orderListProjectOrders`](#mw-contract-orderlistprojectorders)
74
+ - [`mw conversation categories`](#mw-conversation-categories)
75
+ - [`mw conversation close ID`](#mw-conversation-close-id)
76
+ - [`mw conversation create`](#mw-conversation-create)
77
+ - [`mw conversation list`](#mw-conversation-list)
78
+ - [`mw conversation reply ID`](#mw-conversation-reply-id)
79
+ - [`mw conversation show ID`](#mw-conversation-show-id)
80
+ - [`mw conversation show2 CONVERSATIONID`](#mw-conversation-show2-conversationid)
81
+ - [`mw database mysql charsets`](#mw-database-mysql-charsets)
82
+ - [`mw database mysql get ID`](#mw-database-mysql-get-id)
83
+ - [`mw database mysql list`](#mw-database-mysql-list)
84
+ - [`mw database mysql user get ID`](#mw-database-mysql-user-get-id)
85
+ - [`mw database mysql user getMysqlUserPhpMyAdminUrl`](#mw-database-mysql-user-getmysqluserphpmyadminurl)
86
+ - [`mw database mysql user list`](#mw-database-mysql-user-list)
87
+ - [`mw database mysql versions`](#mw-database-mysql-versions)
88
+ - [`mw database redis get ID`](#mw-database-redis-get-id)
89
+ - [`mw database redis list`](#mw-database-redis-list)
90
+ - [`mw database redis versions`](#mw-database-redis-versions)
91
+ - [`mw domain dnszone get ZONEID`](#mw-domain-dnszone-get-zoneid)
92
+ - [`mw domain dnszone list`](#mw-domain-dnszone-list)
93
+ - [`mw domain get DOMAINID`](#mw-domain-get-domainid)
94
+ - [`mw domain get-handle DOMAINNAME`](#mw-domain-get-handle-domainname)
95
+ - [`mw domain list`](#mw-domain-list)
96
+ - [`mw domain ownership get DOMAINOWNERSHIPID`](#mw-domain-ownership-get-domainownershipid)
97
+ - [`mw domain ownership list`](#mw-domain-ownership-list)
98
+ - [`mw domain tld get TLD`](#mw-domain-tld-get-tld)
99
+ - [`mw domain tld list`](#mw-domain-tld-list)
100
+ - [`mw domain virtualhost get INGRESSID`](#mw-domain-virtualhost-get-ingressid)
101
+ - [`mw domain virtualhost list`](#mw-domain-virtualhost-list)
102
+ - [`mw help [COMMANDS]`](#mw-help-commands)
103
+ - [`mw login status`](#mw-login-status)
104
+ - [`mw login token`](#mw-login-token)
105
+ - [`mw mail address create`](#mw-mail-address-create)
106
+ - [`mw mail address delete ID`](#mw-mail-address-delete-id)
107
+ - [`mw mail address get ID`](#mw-mail-address-get-id)
108
+ - [`mw mail address list`](#mw-mail-address-list)
109
+ - [`mw mail deliverybox get ID`](#mw-mail-deliverybox-get-id)
110
+ - [`mw mail deliverybox list`](#mw-mail-deliverybox-list)
111
+ - [`mw org can-order`](#mw-org-can-order)
112
+ - [`mw org get CUSTOMERID`](#mw-org-get-customerid)
113
+ - [`mw org invite get INVITEID`](#mw-org-invite-get-inviteid)
114
+ - [`mw org invite list`](#mw-org-invite-list)
115
+ - [`mw org invite list-own`](#mw-org-invite-list-own)
116
+ - [`mw org list`](#mw-org-list)
117
+ - [`mw org membership get MEMBERSHIPID`](#mw-org-membership-get-membershipid)
118
+ - [`mw org membership list`](#mw-org-membership-list)
119
+ - [`mw org membership list-own`](#mw-org-membership-list-own)
120
+ - [`mw project backup get PROJECTBACKUPID`](#mw-project-backup-get-projectbackupid)
121
+ - [`mw project backup list`](#mw-project-backup-list)
122
+ - [`mw project backupschedule get PROJECTBACKUPSCHEDULEID`](#mw-project-backupschedule-get-projectbackupscheduleid)
123
+ - [`mw project backupschedule list`](#mw-project-backupschedule-list)
124
+ - [`mw project create`](#mw-project-create)
125
+ - [`mw project cronjob execution get EXECUTIONID`](#mw-project-cronjob-execution-get-executionid)
126
+ - [`mw project cronjob execution list`](#mw-project-cronjob-execution-list)
127
+ - [`mw project cronjob get CRONJOBID`](#mw-project-cronjob-get-cronjobid)
128
+ - [`mw project cronjob list`](#mw-project-cronjob-list)
129
+ - [`mw project delete ID`](#mw-project-delete-id)
130
+ - [`mw project filesystem directories`](#mw-project-filesystem-directories)
131
+ - [`mw project filesystem file-content`](#mw-project-filesystem-file-content)
132
+ - [`mw project filesystem files PROJECTID`](#mw-project-filesystem-files-projectid)
133
+ - [`mw project filesystem usage`](#mw-project-filesystem-usage)
134
+ - [`mw project get ID`](#mw-project-get-id)
135
+ - [`mw project invite get INVITEID`](#mw-project-invite-get-inviteid)
136
+ - [`mw project invite list`](#mw-project-invite-list)
137
+ - [`mw project invite list-own`](#mw-project-invite-list-own)
138
+ - [`mw project list`](#mw-project-list)
139
+ - [`mw project list1`](#mw-project-list1)
140
+ - [`mw project list2`](#mw-project-list2)
141
+ - [`mw project membership get MEMBERSHIPID`](#mw-project-membership-get-membershipid)
142
+ - [`mw project membership get-own`](#mw-project-membership-get-own)
143
+ - [`mw project membership list`](#mw-project-membership-list)
144
+ - [`mw project membership list-own`](#mw-project-membership-list-own)
145
+ - [`mw project sftp-user list`](#mw-project-sftp-user-list)
146
+ - [`mw project ssh ID`](#mw-project-ssh-id)
147
+ - [`mw project ssh-user list`](#mw-project-ssh-user-list)
148
+ - [`mw project update ID`](#mw-project-update-id)
149
+ - [`mw server get SERVERID`](#mw-server-get-serverid)
150
+ - [`mw server list`](#mw-server-list)
151
+ - [`mw user api-token create`](#mw-user-api-token-create)
152
+ - [`mw user api-token get APITOKENID`](#mw-user-api-token-get-apitokenid)
153
+ - [`mw user api-token list`](#mw-user-api-token-list)
154
+ - [`mw user api-token revoke ID`](#mw-user-api-token-revoke-id)
155
+ - [`mw user get`](#mw-user-get)
156
+ - [`mw user session get TOKENID`](#mw-user-session-get-tokenid)
157
+ - [`mw user session list`](#mw-user-session-list)
158
+ - [`mw user ssh-key create`](#mw-user-ssh-key-create)
159
+ - [`mw user ssh-key delete ID`](#mw-user-ssh-key-delete-id)
160
+ - [`mw user ssh-key get SSHKEYID`](#mw-user-ssh-key-get-sshkeyid)
161
+ - [`mw user ssh-key list`](#mw-user-ssh-key-list)
153
162
 
154
163
  ## `mw app delete ID`
155
164
 
@@ -802,7 +811,8 @@ FLAGS
802
811
 
803
812
  ## `mw database mysql charsets`
804
813
 
805
- List available MySQL character sets and collations, optionally filtered by a MySQLVersion.
814
+ List available MySQL character sets and collations, optionally filtered by a
815
+ MySQLVersion.
806
816
 
807
817
  ```
808
818
  USAGE
@@ -1270,7 +1280,8 @@ DESCRIPTION
1270
1280
  Display help for mw.
1271
1281
  ```
1272
1282
 
1273
- _See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v5.2.11/src/commands/help.ts)_
1283
+ _See code:
1284
+ [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v5.2.11/src/commands/help.ts)_
1274
1285
 
1275
1286
  ## `mw login status`
1276
1287
 
@@ -2454,4 +2465,5 @@ FLAGS
2454
2465
  DESCRIPTION
2455
2466
  Get your stored ssh keys
2456
2467
  ```
2468
+
2457
2469
  <!-- commandsstop -->
@@ -1,6 +1,6 @@
1
1
  import { Command } from "@oclif/core";
2
2
  import { MittwaldAPIV2Client } from "@mittwald/api-client";
3
- export declare abstract class BaseCommand<T extends typeof Command> extends Command {
3
+ export declare abstract class BaseCommand extends Command {
4
4
  protected authenticationRequired: boolean;
5
5
  protected apiClient: MittwaldAPIV2Client;
6
6
  init(): Promise<void>;
@@ -1,15 +1,12 @@
1
- import { Command, Interfaces } from "@oclif/core";
2
1
  import { BaseCommand } from "./BaseCommand.js";
3
- export type DeleteFlags<T extends typeof Command> = Interfaces.InferredFlags<(typeof DeleteBaseCommand)["baseFlags"] & T["flags"]>;
4
- export type DeleteArgs<T extends typeof Command> = Interfaces.InferredArgs<T["args"]>;
5
- export declare abstract class DeleteBaseCommand<T extends typeof Command> extends BaseCommand<T> {
2
+ import { ExecRenderBaseCommand } from "./rendering/react/ExecRenderBaseCommand.js";
3
+ export declare abstract class DeleteBaseCommand<T extends typeof BaseCommand> extends ExecRenderBaseCommand<T, void> {
6
4
  static resourceName: string;
7
5
  static baseFlags: {
8
- force: Interfaces.BooleanFlag<boolean>;
6
+ force: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
7
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
9
8
  };
10
- protected flags: DeleteFlags<T>;
11
- protected args: DeleteArgs<T>;
12
- init(): Promise<void>;
13
- run(): Promise<void>;
9
+ protected exec(): Promise<void>;
10
+ protected render(): null;
14
11
  protected abstract deleteResource(): Promise<void>;
15
12
  }
@@ -1,37 +1,43 @@
1
+ import { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
1
2
  import { Flags, ux } from "@oclif/core";
2
- import { BaseCommand } from "./BaseCommand.js";
3
- export class DeleteBaseCommand extends BaseCommand {
3
+ import { ExecRenderBaseCommand } from "./rendering/react/ExecRenderBaseCommand.js";
4
+ import { makeProcessRenderer, processFlags, } from "./rendering/react/process_flags.js";
5
+ import { Success } from "./rendering/react/components/Success.js";
6
+ import { Text } from "ink";
7
+ export class DeleteBaseCommand extends ExecRenderBaseCommand {
4
8
  static resourceName = "object";
5
9
  static baseFlags = {
10
+ ...processFlags,
6
11
  force: Flags.boolean({
12
+ char: "f",
7
13
  description: "Do not ask for confirmation",
8
14
  }),
9
15
  };
10
- flags;
11
- args;
12
- async init() {
13
- await super.init();
14
- const { args, flags } = await this.parse({
15
- flags: this.ctor.flags,
16
- baseFlags: super.ctor.baseFlags,
17
- args: this.ctor.args,
18
- strict: this.ctor.strict,
19
- });
20
- this.args = args;
21
- this.flags = flags;
22
- }
23
- async run() {
16
+ async exec() {
24
17
  const resourceName = this.ctor.resourceName;
18
+ const process = makeProcessRenderer(this.flags, `Deleting ${resourceName}`);
25
19
  if (!this.flags.force) {
26
- const confirmed = await ux.confirm(`Do you really want to delete this ${resourceName}?`);
20
+ const confirmed = await process.addConfirmation(_jsxs(Text, { children: ["confirm deletion of ", resourceName] }));
27
21
  if (!confirmed) {
28
- this.log("aborting");
22
+ process.addInfo(_jsxs(Text, { children: ["deletion of ", resourceName, " was cancelled"] }));
23
+ process.complete(_jsx(_Fragment, {}));
29
24
  ux.exit(1);
30
25
  return;
31
26
  }
32
27
  }
33
- ux.action.start(`deleting ${resourceName}`);
34
- await this.deleteResource();
35
- ux.action.stop();
28
+ const deletingStep = process.addStep(_jsxs(Text, { children: ["deleting ", resourceName] }));
29
+ try {
30
+ await this.deleteResource();
31
+ deletingStep.complete();
32
+ process.complete(_jsxs(Success, { children: ["The ", resourceName, " was successfully deleted. How sad. \uD83E\uDD7A"] }));
33
+ }
34
+ catch (err) {
35
+ deletingStep.error(err);
36
+ process.complete(_jsxs(Text, { children: ["Failed to delete ", resourceName] }));
37
+ ux.exit(1);
38
+ }
39
+ }
40
+ render() {
41
+ return null;
36
42
  }
37
43
  }
@@ -1,6 +1,6 @@
1
1
  import { BaseCommand } from "./BaseCommand.js";
2
2
  import { CommandArgs, CommandFlags } from "./types.js";
3
- export declare abstract class ExtendedBaseCommand<T extends typeof BaseCommand> extends BaseCommand<T> {
3
+ export declare abstract class ExtendedBaseCommand<T extends typeof BaseCommand> extends BaseCommand {
4
4
  protected flags: CommandFlags<T>;
5
5
  protected args: CommandArgs<T>;
6
6
  init(): Promise<void>;
@@ -1,13 +1,16 @@
1
1
  import { FlagInput } from "@oclif/core/lib/interfaces/parser.js";
2
2
  import { ux } from "@oclif/core";
3
+ import { Printer } from "./Printer.js";
3
4
  export interface GetOptions {
4
5
  outputFormat: string;
5
6
  }
6
7
  export type ListOptions = ux.Table.table.Options;
7
8
  export type ListColumns<TItem extends Record<string, unknown>> = ux.Table.table.Columns<TItem>;
8
- export declare class GetFormatter {
9
+ export declare class GetFormatter<T = unknown> {
9
10
  static get flags(): FlagInput;
10
- log(output: unknown, opts?: GetOptions): void;
11
+ private defaultPrinter;
12
+ constructor(defaultPrinter?: Printer<T>);
13
+ log(output: T, opts?: GetOptions): void;
11
14
  }
12
15
  export declare class ListFormatter {
13
16
  static get flags(): FlagInput;
@@ -1,16 +1,21 @@
1
1
  import { ux } from "@oclif/core";
2
- import { PrinterFactory } from "./Printer.js";
2
+ import { DefaultPrinter, PrinterFactory } from "./Printer.js";
3
3
  export class GetFormatter {
4
4
  static get flags() {
5
5
  return {
6
6
  output: {
7
7
  ...ux.table.flags().output,
8
8
  options: ["json", "yaml"],
9
+ char: "o",
9
10
  },
10
11
  };
11
12
  }
13
+ defaultPrinter = new DefaultPrinter();
14
+ constructor(defaultPrinter = new DefaultPrinter()) {
15
+ this.defaultPrinter = defaultPrinter;
16
+ }
12
17
  log(output, opts) {
13
- PrinterFactory.build(opts?.outputFormat).log(output);
18
+ PrinterFactory.build(opts?.outputFormat, this.defaultPrinter).log(output);
14
19
  }
15
20
  }
16
21
  export class ListFormatter {
@@ -4,7 +4,7 @@ import { GetFormatter } from "./Formatter.js";
4
4
  import { Response } from "@mittwald/api-client-commons";
5
5
  export type Flags<T extends typeof Command> = Interfaces.InferredFlags<(typeof GetBaseCommand)["baseFlags"] & T["flags"]>;
6
6
  export type Args<T extends typeof Command> = Interfaces.InferredArgs<T["args"]>;
7
- export declare abstract class GetBaseCommand<T extends typeof BaseCommand, TAPIResponse extends Response> extends BaseCommand<T> {
7
+ export declare abstract class GetBaseCommand<T extends typeof BaseCommand, TAPIResponse extends Response> extends BaseCommand {
8
8
  static baseFlags: {
9
9
  [x: string]: import("@oclif/core/lib/interfaces/parser.js").CompletableFlag<any>;
10
10
  };
@@ -2,4 +2,5 @@ import { MittwaldAPIV2Client } from "@mittwald/api-client";
2
2
  export declare function isUuid(id: string): boolean;
3
3
  export declare function isProjectShortId(id: string): boolean;
4
4
  export declare function normalizeProjectIdToUuid(apiClient: MittwaldAPIV2Client, uuidOrShortId: string): Promise<string>;
5
+ export declare function normalizeServerIdToUuid(apiClient: MittwaldAPIV2Client, uuidOrShortId: string): Promise<string>;
5
6
  export declare function normalizeConversationIdToUuid(apiClient: MittwaldAPIV2Client, uuidOrShortId: string): Promise<string>;
@@ -1,4 +1,4 @@
1
- import { getConversationUuidFromShortId, getProjectUuidFromShortId, } from "./Translator.js";
1
+ import { getConversationUuidFromShortId, getProjectUuidFromShortId, getServerUuidFromShortId, } from "./Translator.js";
2
2
  const uuidRegex = RegExp("^[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$");
3
3
  const projectShortIdRegex = RegExp("p-[0-9a-zA-Z]{6}");
4
4
  export function isUuid(id) {
@@ -16,6 +16,12 @@ export async function normalizeProjectIdToUuid(apiClient, uuidOrShortId) {
16
16
  }
17
17
  throw new Error(`Given ID ${uuidOrShortId} does not seem to be valid`);
18
18
  }
19
+ export async function normalizeServerIdToUuid(apiClient, uuidOrShortId) {
20
+ if (isUuid(uuidOrShortId)) {
21
+ return uuidOrShortId;
22
+ }
23
+ return await getServerUuidFromShortId(apiClient, uuidOrShortId);
24
+ }
19
25
  export async function normalizeConversationIdToUuid(apiClient, uuidOrShortId) {
20
26
  if (isUuid(uuidOrShortId)) {
21
27
  return uuidOrShortId;
@@ -5,7 +5,7 @@ import { Response } from "@mittwald/api-client-commons";
5
5
  import { SuccessfulResponse } from "./types.js";
6
6
  export type Flags<T extends typeof Command> = Interfaces.InferredFlags<(typeof ListBaseCommand)["baseFlags"] & T["flags"]>;
7
7
  export type Args<T extends typeof Command> = Interfaces.InferredArgs<T["args"]>;
8
- export declare abstract class ListBaseCommand<T extends typeof BaseCommand, TItem extends Record<string, unknown>, TAPIResponse extends Response> extends BaseCommand<T> {
8
+ export declare abstract class ListBaseCommand<T extends typeof BaseCommand, TItem extends Record<string, unknown>, TAPIResponse extends Response> extends BaseCommand {
9
9
  static baseFlags: {
10
10
  [x: string]: import("@oclif/core/lib/interfaces/parser.js").CompletableFlag<any>;
11
11
  };
@@ -1,7 +1,7 @@
1
1
  import { BaseCommand } from "./BaseCommand.js";
2
2
  import { ListFormatter } from "./Formatter.js";
3
3
  import { assertStatus } from "@mittwald/api-client-commons";
4
- import { formatDate } from "./lib/viewhelpers/date.js";
4
+ import { formatRelativeDate } from "./lib/viewhelpers/date.js";
5
5
  export class ListBaseCommand extends BaseCommand {
6
6
  static baseFlags = {
7
7
  ...ListFormatter.flags,
@@ -51,7 +51,7 @@ export class ListBaseCommand extends BaseCommand {
51
51
  ...columns,
52
52
  createdAt: {
53
53
  header: "Created at",
54
- get: (row) => formatDate(new Date(`${row.createdAt}`)),
54
+ get: (row) => formatRelativeDate(new Date(`${row.createdAt}`)),
55
55
  },
56
56
  };
57
57
  }
@@ -1,16 +1,15 @@
1
- interface Printer {
2
- log(content: unknown): void;
1
+ export interface Printer<T> {
2
+ log(content: T): void;
3
3
  }
4
4
  export declare class PrinterFactory {
5
- static build(outputFormat: string | undefined): Printer;
5
+ static build<T = unknown>(outputFormat: string | undefined, defaultPrinter?: Printer<T>): Printer<T>;
6
6
  }
7
- export declare class YamlPrinter implements Printer {
7
+ export declare class YamlPrinter implements Printer<unknown> {
8
8
  log(content: unknown): void;
9
9
  }
10
- export declare class JsonPrinter implements Printer {
10
+ export declare class JsonPrinter implements Printer<unknown> {
11
11
  log(content: unknown): void;
12
12
  }
13
- export declare class DefaultPrinter implements Printer {
13
+ export declare class DefaultPrinter implements Printer<unknown> {
14
14
  log(content: unknown): void;
15
15
  }
16
- export {};
@@ -1,14 +1,14 @@
1
1
  import * as yaml from "js-yaml";
2
- import { ux, stdout } from "@oclif/core";
2
+ import { stdout, ux } from "@oclif/core";
3
3
  export class PrinterFactory {
4
- static build(outputFormat) {
4
+ static build(outputFormat, defaultPrinter = new DefaultPrinter()) {
5
5
  switch (outputFormat) {
6
6
  case "yaml":
7
7
  return new YamlPrinter();
8
8
  case "json":
9
9
  return new JsonPrinter();
10
10
  default:
11
- return new DefaultPrinter();
11
+ return defaultPrinter;
12
12
  }
13
13
  }
14
14
  }
@@ -1,5 +1,6 @@
1
1
  import { MittwaldAPIV2Client } from "@mittwald/api-client";
2
2
  export declare function getProjectUuidFromShortId(apiClient: MittwaldAPIV2Client, shortId: string): Promise<string>;
3
+ export declare function getServerUuidFromShortId(apiClient: MittwaldAPIV2Client, shortId: string): Promise<string>;
3
4
  export declare function getConversationUuidFromShortId(apiClient: MittwaldAPIV2Client, shortId: string): Promise<string>;
4
5
  export declare function getAppNameFromUuid(apiClient: MittwaldAPIV2Client, uuid: string): Promise<string>;
5
6
  export declare function getAppVersionFromUuid(apiClient: MittwaldAPIV2Client, appId: string, appVersionId: string): Promise<string>;
@@ -1,5 +1,5 @@
1
1
  import { assertStatus } from "@mittwald/api-client-commons";
2
- import { isUuid, isProjectShortId } from "./Helpers.js";
2
+ import { isProjectShortId, isUuid } from "./Helpers.js";
3
3
  export async function getProjectUuidFromShortId(apiClient, shortId) {
4
4
  if (!isProjectShortId(shortId)) {
5
5
  throw new Error("Given ShortID not valid.");
@@ -14,6 +14,17 @@ export async function getProjectUuidFromShortId(apiClient, shortId) {
14
14
  }
15
15
  throw new Error("Access Denied.");
16
16
  }
17
+ export async function getServerUuidFromShortId(apiClient, shortId) {
18
+ const servers = await apiClient.project.listServers();
19
+ assertStatus(servers, 200);
20
+ const foundServer = servers.data.find((item) => {
21
+ return item.shortId === shortId;
22
+ });
23
+ if (foundServer) {
24
+ return foundServer.id;
25
+ }
26
+ throw new Error("Access Denied.");
27
+ }
17
28
  export async function getConversationUuidFromShortId(apiClient, shortId) {
18
29
  const conversations = await apiClient.conversation.listConversations();
19
30
  assertStatus(conversations, 200);
@@ -1,5 +1,5 @@
1
1
  import { BaseCommand } from "../../BaseCommand.js";
2
- export default class Delete extends BaseCommand<typeof Delete> {
2
+ export default class Delete extends BaseCommand {
3
3
  static description: string;
4
4
  static args: {
5
5
  id: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
@@ -1,4 +1,4 @@
1
- import { Flags, Args, ux } from "@oclif/core";
1
+ import { Args, Flags, ux } from "@oclif/core";
2
2
  import { BaseCommand } from "../../BaseCommand.js";
3
3
  import { assertStatus } from "@mittwald/api-client-commons";
4
4
  import { isUuid } from "../../Helpers.js";
@@ -1,4 +1,4 @@
1
- import { Simplify } from '@mittwald/api-client-commons';
1
+ import { Simplify } from "@mittwald/api-client-commons";
2
2
  import { MittwaldAPIV2 } from "@mittwald/api-client";
3
3
  import { SuccessfulResponse } from "../../../types.js";
4
4
  import { GeneratedAppListSystemsoftwareversions, Response } from "../../../generated/app/listSystemsoftwareversions.js";