@mittwald/cli 1.0.0-alpha.7 → 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
@@ -0,0 +1,7 @@
1
+ import { FC } from "react";
2
+ export declare const IDAndShortID: FC<{
3
+ object: {
4
+ id: string;
5
+ shortId: string;
6
+ };
7
+ }>;
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Value } from "./Value.js";
3
+ import { Box, Text } from "ink";
4
+ export const IDAndShortID = ({ object, }) => {
5
+ return (_jsxs(Box, { flexDirection: "row", children: [_jsx(Value, { children: object.shortId }), _jsx(Text, { children: " / " }), _jsx(Value, { children: object.id })] }));
6
+ };
@@ -0,0 +1,7 @@
1
+ import { FC } from "react";
2
+ interface Props {
3
+ json: unknown;
4
+ inline?: boolean;
5
+ }
6
+ export declare const JSONView: FC<Props>;
7
+ export {};
@@ -0,0 +1,3 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Text } from "ink";
3
+ export const JSONView = (props) => props.json === undefined ? null : (_jsx(Text, { children: JSON.stringify(props.json, undefined, props.inline ? undefined : 2) }));
@@ -0,0 +1,3 @@
1
+ import { PropsWithChildren } from "react";
2
+ export type ListItemProps = PropsWithChildren;
3
+ export declare function ListItem({ children }: ListItemProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ export function ListItem({ children }) {
4
+ return (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: 2, marginRight: 1, children: _jsx(Text, { children: "\u2022" }) }), _jsx(Box, { children: children })] }));
5
+ }
@@ -0,0 +1,10 @@
1
+ import { FC, PropsWithChildren } from "react";
2
+ type NoteProps = PropsWithChildren<{
3
+ title?: string;
4
+ color?: string;
5
+ marginY?: number;
6
+ raw?: boolean;
7
+ }>;
8
+ export declare const noteColor = "#407FF8";
9
+ export declare const Note: FC<NoteProps>;
10
+ export {};
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ export const noteColor = "#407FF8";
4
+ export const Note = (props) => {
5
+ const { title = "Note", color = noteColor, marginY = 0, raw = false } = props;
6
+ const contents = raw ? (props.children) : (_jsx(Text, { wrap: "wrap", color: color, children: props.children }));
7
+ return (_jsxs(Box, { width: 80, borderStyle: "round", borderColor: color, flexDirection: "column", paddingX: 2, marginY: marginY, children: [_jsx(Text, { bold: true, underline: true, color: color, children: title.toUpperCase() }), contents] }));
8
+ };
@@ -0,0 +1,6 @@
1
+ import { FC } from "react";
2
+ interface Props {
3
+ enabled: boolean;
4
+ }
5
+ export declare const ProjectEnabled: FC<Props>;
6
+ export {};
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Text } from "ink";
3
+ export const ProjectEnabled = (props) => {
4
+ const { enabled } = props;
5
+ if (enabled) {
6
+ return _jsx(Text, { color: "green", children: "enabled" });
7
+ }
8
+ return _jsx(Text, { color: "red", children: "disabled" });
9
+ };
@@ -0,0 +1,7 @@
1
+ import { FC } from "react";
2
+ import { MittwaldAPIV2 } from "@mittwald/api-client";
3
+ interface Props {
4
+ readiness: MittwaldAPIV2.Components.Schemas.ProjectProjectReadinessStatus;
5
+ }
6
+ export declare const ProjectReadiness: FC<Props>;
7
+ export {};
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Text } from "ink";
3
+ import { Value } from "./Value.js";
4
+ export const ProjectReadiness = (props) => {
5
+ const { readiness } = props;
6
+ switch (readiness) {
7
+ case "ready":
8
+ return _jsx(Text, { color: "green", children: "ready \uD83D\uDE80" });
9
+ case "creating":
10
+ return _jsx(Text, { color: "blue", children: "creating \uD83C\uDFD7" });
11
+ case "unready":
12
+ return _jsx(Text, { color: "red", children: "unready \uD83D\uDC80" });
13
+ default:
14
+ return _jsx(Value, { notSet: true });
15
+ }
16
+ };
@@ -0,0 +1,7 @@
1
+ import { FC } from "react";
2
+ import { MittwaldAPIV2 } from "@mittwald/api-client";
3
+ interface Props {
4
+ project: MittwaldAPIV2.Components.Schemas.ProjectProject | MittwaldAPIV2.Paths.V2Projects.Get.Responses.$200.Content.ApplicationJson[number];
5
+ }
6
+ export declare const ProjectStatus: FC<Props>;
7
+ export {};
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Text } from "ink";
3
+ import { ProjectEnabled } from "./ProjectEnabled.js";
4
+ import { ProjectReadiness } from "./ProjectReadiness.js";
5
+ export const ProjectStatus = (props) => {
6
+ const { project } = props;
7
+ return (_jsxs(Text, { children: [_jsx(ProjectEnabled, { enabled: project.enabled }), _jsx(Text, { children: " / " }), _jsx(ProjectReadiness, { readiness: project.readiness })] }));
8
+ };
@@ -0,0 +1,6 @@
1
+ import { ComponentType, FC } from "react";
2
+ interface Props {
3
+ render: ComponentType;
4
+ }
5
+ export declare const Render: FC<Props>;
6
+ export {};
@@ -0,0 +1,5 @@
1
+ import { createElement } from "react";
2
+ export const Render = (props) => {
3
+ const { render } = props;
4
+ return createElement(render);
5
+ };
@@ -0,0 +1,10 @@
1
+ import { ReactNode } from "react";
2
+ export interface SingleResultProps {
3
+ title: ReactNode;
4
+ rows: Record<string, ReactNode>;
5
+ }
6
+ export interface SingleResultTableProps {
7
+ rows: Record<string, ReactNode>;
8
+ }
9
+ export declare function SingleResultTable({ rows }: SingleResultTableProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function SingleResult({ title, rows }: SingleResultProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Header } from "./Header.js";
3
+ import { Box, Text } from "ink";
4
+ export function SingleResultTable({ rows }) {
5
+ const maxColumnWidth = Object.keys(rows)
6
+ .map((r) => r.length)
7
+ .reduce((a, b) => Math.max(a, b), 0);
8
+ const renderedRows = Object.keys(rows).map((key, idx) => {
9
+ return (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { width: maxColumnWidth + 3, children: _jsx(Text, { children: key }) }), _jsx(Box, { children: rows[key] })] }, idx));
10
+ });
11
+ return _jsx(Box, { flexDirection: "column", children: renderedRows });
12
+ }
13
+ export function SingleResult({ title, rows }) {
14
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { marginY: 1, children: _jsx(Header, { title: title }) }), _jsx(SingleResultTable, { rows: rows })] }));
15
+ }
@@ -0,0 +1,9 @@
1
+ import React, { FC } from "react";
2
+ interface Props {
3
+ title?: string;
4
+ children?: React.ReactNode;
5
+ color?: string;
6
+ width?: number;
7
+ }
8
+ export declare const Success: FC<Props>;
9
+ export {};
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ export const Success = (props) => {
4
+ const { title = "Success", color = "#00B785", width = 80 } = props;
5
+ return (_jsxs(Box, { width: width, borderStyle: "round", borderColor: color, flexDirection: "column", paddingX: 2, children: [_jsx(Text, { bold: true, underline: true, color: color, children: title.toUpperCase() }), _jsx(Text, { wrap: "wrap", color: color, children: props.children })] }));
6
+ };
@@ -0,0 +1,7 @@
1
+ import * as Model from "./model/index.js";
2
+ import { FC } from "react";
3
+ interface Props {
4
+ cell: Model.Cell;
5
+ }
6
+ export declare const BodyCell: FC<Props>;
7
+ export {};
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { CellLayout } from "./CellLayout.js";
3
+ import { CellData } from "./CellData.js";
4
+ export const BodyCell = (props) => {
5
+ const { cell } = props;
6
+ return (_jsx(CellLayout, { col: cell.column, children: _jsx(CellData, { data: cell.getData() }) }));
7
+ };
@@ -0,0 +1,7 @@
1
+ import { FC } from "react";
2
+ import * as Model from "./model/index.js";
3
+ interface Props {
4
+ row: Model.Row;
5
+ }
6
+ export declare const BodyRow: FC<Props>;
7
+ export {};
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { BodyCell } from "./BodyCell.js";
3
+ import { RowLayout } from "./RowLayout.js";
4
+ export const BodyRow = (props) => {
5
+ const { row } = props;
6
+ return (_jsx(RowLayout, { children: row.table.columns.map((col) => (_jsx(BodyCell, { cell: row.getCell(col.name) }, col.name.value))) }));
7
+ };
@@ -0,0 +1,7 @@
1
+ import { FC } from "react";
2
+ import * as Model from "./model/index.js";
3
+ interface Props {
4
+ table: Model.Table;
5
+ }
6
+ export declare const BodyRows: FC<Props>;
7
+ export {};
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { BodyRow } from "./BodyRow.js";
3
+ export const BodyRows = (props) => {
4
+ const { table } = props;
5
+ return (_jsx(_Fragment, { children: table.rows.map((row) => (_jsx(BodyRow, { row: row }, row.index))) }));
6
+ };
@@ -0,0 +1,6 @@
1
+ import { FC } from "react";
2
+ interface Props {
3
+ data: unknown;
4
+ }
5
+ export declare const CellData: FC<Props>;
6
+ export {};
@@ -0,0 +1,32 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { isValidElement } from "react";
3
+ import { FormattedDate } from "../FormattedDate.js";
4
+ import { JSONView } from "../JSONView.js";
5
+ import { parseDate } from "../../../../lib/viewhelpers/date.js";
6
+ import { Value } from "../Value.js";
7
+ export const CellData = (props) => {
8
+ const { data } = props;
9
+ if (data === null || data === undefined) {
10
+ return _jsx(Value, { notSet: true });
11
+ }
12
+ if (isValidElement(data)) {
13
+ return data;
14
+ }
15
+ if (data instanceof Date) {
16
+ return _jsx(FormattedDate, { date: data, display: "relative" });
17
+ }
18
+ if (typeof data === "string") {
19
+ const date = parseDate(data);
20
+ if (date) {
21
+ return _jsx(FormattedDate, { display: "relative", date: data });
22
+ }
23
+ return data;
24
+ }
25
+ if (typeof data === "object") {
26
+ return _jsx(JSONView, { inline: true, json: data });
27
+ }
28
+ if (typeof data === "boolean") {
29
+ return data ? "yes" : "no";
30
+ }
31
+ return "";
32
+ };
@@ -0,0 +1,8 @@
1
+ import * as Model from "./model/index.js";
2
+ import { Box } from "ink";
3
+ import { ComponentProps, FC, PropsWithChildren } from "react";
4
+ interface Props extends ComponentProps<typeof Box> {
5
+ col: Model.Column;
6
+ }
7
+ export declare const CellLayout: FC<PropsWithChildren<Props>>;
8
+ export {};
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box, Text } from "ink";
3
+ import { MeasureChildren } from "../../measure/MeasureChildren.js";
4
+ import { WithoutLineBreaks } from "../WithoutLineBreaks.js";
5
+ import { useTableContext } from "./context.js";
6
+ export const CellLayout = (props) => {
7
+ const { col, children, ...boxProps } = props;
8
+ const { setup } = useTableContext();
9
+ const { noTruncate } = setup;
10
+ const width = col.useWidth();
11
+ const minWidth = col.options.minWidth;
12
+ if (!col.options.isVisible) {
13
+ return null;
14
+ }
15
+ const wrap = noTruncate ? "wrap" : "truncate";
16
+ return (_jsx(Box, { width: width, minWidth: minWidth, ...boxProps, children: _jsx(MeasureChildren, { onDimensionChange: (dim) => col.onCellMeasured(dim), children: _jsx(Text, { wrap: wrap, children: _jsx(WithoutLineBreaks, { children: children }) }) }) }));
17
+ };
@@ -0,0 +1,7 @@
1
+ import * as Model from "./model/index.js";
2
+ import { FC } from "react";
3
+ interface Props {
4
+ col: Model.Column;
5
+ }
6
+ export declare const HeaderCell: FC<Props>;
7
+ export {};
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Text } from "ink";
3
+ import { CellLayout } from "./CellLayout.js";
4
+ export const HeaderCell = (props) => {
5
+ const { col } = props;
6
+ return (_jsx(CellLayout, { col: col, borderStyle: "single", borderTop: false, borderLeft: false, borderRight: false, children: _jsx(Text, { bold: true, children: col.options.header ?? col.name.humanizedName }) }));
7
+ };
@@ -0,0 +1,8 @@
1
+ import * as Model from "./model/index.js";
2
+ import { Box } from "ink";
3
+ import { ComponentProps, FC } from "react";
4
+ interface Props extends ComponentProps<typeof Box> {
5
+ table: Model.Table;
6
+ }
7
+ export declare const HeaderRow: FC<Props>;
8
+ export {};
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { RowLayout } from "./RowLayout.js";
3
+ import { HeaderCell } from "./HeaderCell.js";
4
+ export const HeaderRow = (props) => {
5
+ const { table, ...boxProps } = props;
6
+ return (_jsx(RowLayout, { ...boxProps, children: table.columns.map((col) => (_jsx(HeaderCell, { col: col }, col.name.value))) }));
7
+ };
@@ -0,0 +1,5 @@
1
+ import { ComponentProps, FC, PropsWithChildren } from "react";
2
+ import { Box } from "ink";
3
+ type Props = PropsWithChildren<ComponentProps<typeof Box>>;
4
+ export declare const RowLayout: FC<Props>;
5
+ export {};
@@ -0,0 +1,3 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box } from "ink";
3
+ export const RowLayout = (props) => (_jsx(Box, { flexDirection: "row", gap: 1, ...props }));
@@ -0,0 +1,10 @@
1
+ import { TableColumnsInput } from "./model/index.js";
2
+ import { ReactNode } from "react";
3
+ import { TableRenderSetupOutput } from "../../../setup/TableRenderSetup.js";
4
+ interface Props<TData> {
5
+ data: TData[];
6
+ setup: TableRenderSetupOutput;
7
+ columns?: TableColumnsInput<TData>;
8
+ }
9
+ export declare function Table<TData>(props: Props<TData>): ReactNode;
10
+ export {};
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as Model from "./model/index.js";
3
+ import { useRef } from "react";
4
+ import { Box } from "ink";
5
+ import { useRenderContext } from "../../context.js";
6
+ import { RenderJson } from "../../json/RenderJson.js";
7
+ import { MeasureContextProvider } from "../../measure/MeasureContextProvider.js";
8
+ import { HeaderRow } from "./HeaderRow.js";
9
+ import { BodyRows } from "./BodyRows.js";
10
+ import { buildTableContext, TableContextProvider } from "./context.js";
11
+ export function Table(props) {
12
+ const { data, columns, setup } = props;
13
+ const { renderAsJson } = useRenderContext();
14
+ if (renderAsJson) {
15
+ return _jsx(RenderJson, { name: "data", data: data });
16
+ }
17
+ const table = useRef(new Model.Table(data, setup, columns)).current;
18
+ return (_jsx(TableContextProvider, { value: buildTableContext({
19
+ setup,
20
+ }), children: _jsx(MeasureContextProvider, { children: _jsxs(Box, { flexDirection: "column", children: [_jsx(HeaderRow, { marginBottom: 1, table: table }), _jsx(BodyRows, { table: table })] }) }) }));
21
+ }
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { TableRenderSetupOutput } from "../../../setup/TableRenderSetup.js";
3
+ interface TableContext {
4
+ setup: TableRenderSetupOutput;
5
+ }
6
+ export declare const buildTableContext: (ctx?: Partial<TableContext>) => TableContext;
7
+ export declare const useTableContext: () => TableContext;
8
+ export declare const TableContextProvider: import("react").Provider<TableContext>;
9
+ export {};
@@ -0,0 +1,7 @@
1
+ import { createContext, useContext } from "react";
2
+ export const buildTableContext = (ctx = {}) => ({
3
+ ...ctx,
4
+ });
5
+ const context = createContext(buildTableContext());
6
+ export const useTableContext = () => useContext(context);
7
+ export const TableContextProvider = context.Provider;
@@ -0,0 +1 @@
1
+ export { Table } from "./Table.js";
@@ -0,0 +1 @@
1
+ export { Table } from "./Table.js";
@@ -0,0 +1,19 @@
1
+ import { Row } from "./Row.js";
2
+ import { Column } from "./Column.js";
3
+ import { ColumnName } from "./ColumnName.js";
4
+ export type TableCellMapper<T> = (data: T) => string;
5
+ export interface CellDataObject<T> {
6
+ name: string;
7
+ data: T;
8
+ mapper?: TableCellMapper<T>;
9
+ }
10
+ export declare class Cell<T = unknown> {
11
+ readonly name: ColumnName;
12
+ private readonly data;
13
+ readonly row: Row;
14
+ private constructor();
15
+ static fromObject<T>(row: Row, object: CellDataObject<T>): Cell<T>;
16
+ static empty(row: Row, name: string): Cell<undefined>;
17
+ get column(): Column;
18
+ getData(): unknown;
19
+ }
@@ -0,0 +1,24 @@
1
+ import { ColumnName } from "./ColumnName.js";
2
+ export class Cell {
3
+ name;
4
+ data;
5
+ row;
6
+ constructor(row, name, data) {
7
+ this.row = row;
8
+ this.name = new ColumnName(name);
9
+ this.data = data;
10
+ }
11
+ static fromObject(row, object) {
12
+ return new Cell(row, object.name, object.data);
13
+ }
14
+ static empty(row, name) {
15
+ return new Cell(row, name, undefined);
16
+ }
17
+ get column() {
18
+ return this.row.table.getColumn(this.name);
19
+ }
20
+ getData() {
21
+ const renderer = this.column.options.cellRenderer;
22
+ return renderer ? renderer(this.row.data) : this.data;
23
+ }
24
+ }
@@ -0,0 +1,16 @@
1
+ import { ObservableValue } from "../../../lib/observable-value/ObservableValue.js";
2
+ import { Table } from "./Table.js";
3
+ import { Dimension } from "../../../measure/context.js";
4
+ import { ColumnOptions, ColumnOptionsInput } from "./ColumnOptions.js";
5
+ import { ColumnName } from "./ColumnName.js";
6
+ export declare class Column {
7
+ readonly table: Table;
8
+ readonly name: ColumnName;
9
+ readonly options: ColumnOptions;
10
+ readonly maxCellWidth: ObservableValue<number>;
11
+ private readonly proportionalWidth;
12
+ constructor(table: Table, name: string, optionsInput?: ColumnOptionsInput<any>);
13
+ private updateProportionalWidth;
14
+ onCellMeasured(dimension: Dimension): void;
15
+ useWidth(): string;
16
+ }
@@ -0,0 +1,35 @@
1
+ import { ObservableValue } from "../../../lib/observable-value/ObservableValue.js";
2
+ import { ColumnOptions } from "./ColumnOptions.js";
3
+ import { ColumnName } from "./ColumnName.js";
4
+ import { useWatchObservableValue } from "../../../lib/observable-value/useWatchObservableValue.js";
5
+ import { getTerminalWidth } from "../../../../lib/getTerminalWidth.js";
6
+ export class Column {
7
+ table;
8
+ name;
9
+ options;
10
+ maxCellWidth = new ObservableValue(0);
11
+ proportionalWidth = new ObservableValue("0%");
12
+ constructor(table, name, optionsInput) {
13
+ this.table = table;
14
+ this.name = new ColumnName(name);
15
+ this.table.overallWidth.observe((width) => this.updateProportionalWidth(width));
16
+ this.options = new ColumnOptions(this, optionsInput);
17
+ }
18
+ updateProportionalWidth(overallWidth) {
19
+ const thisWidth = this.maxCellWidth.value;
20
+ const quotient = thisWidth / overallWidth;
21
+ const percentage = Math.round(quotient * 100);
22
+ this.proportionalWidth.updateValue(`${percentage}%`);
23
+ }
24
+ onCellMeasured(dimension) {
25
+ const termWidth = getTerminalWidth();
26
+ const boundary = Math.round(termWidth / 2);
27
+ const boundedWidth = Math.min(dimension.width, boundary);
28
+ if (this.maxCellWidth.value < boundedWidth) {
29
+ this.maxCellWidth.updateValue(boundedWidth);
30
+ }
31
+ }
32
+ useWidth() {
33
+ return useWatchObservableValue(this.proportionalWidth);
34
+ }
35
+ }
@@ -0,0 +1,7 @@
1
+ export declare class ColumnName {
2
+ readonly value: string;
3
+ constructor(value: string);
4
+ matches(name: string | ColumnName): boolean;
5
+ get humanizedName(): string;
6
+ static getNameValue(name: string | ColumnName): string;
7
+ }
@@ -0,0 +1,17 @@
1
+ import humanizeString from "humanize-string";
2
+ export class ColumnName {
3
+ value;
4
+ constructor(value) {
5
+ this.value = value;
6
+ }
7
+ matches(name) {
8
+ return (this.value.toLowerCase().trim() ===
9
+ ColumnName.getNameValue(name).toLowerCase().trim());
10
+ }
11
+ get humanizedName() {
12
+ return humanizeString(this.value);
13
+ }
14
+ static getNameValue(name) {
15
+ return name instanceof ColumnName ? name.value : name;
16
+ }
17
+ }
@@ -0,0 +1,25 @@
1
+ import { Column } from "./Column.js";
2
+ import { ReactNode } from "react";
3
+ type CellRenderer<TData = unknown> = (data: TData) => ReactNode;
4
+ export interface ColumnOptionsInput<TData = unknown> {
5
+ isVisible?: boolean;
6
+ isUuid?: boolean;
7
+ minWidth?: number;
8
+ header?: ReactNode;
9
+ extended?: boolean;
10
+ render?: CellRenderer<TData>;
11
+ }
12
+ export declare class ColumnOptions {
13
+ private static absoluteMinWidth;
14
+ readonly column: Column;
15
+ readonly input?: ColumnOptionsInput;
16
+ readonly minWidth: number;
17
+ readonly header?: ReactNode;
18
+ readonly isVisible: boolean;
19
+ readonly isExtended: boolean;
20
+ readonly cellRenderer?: CellRenderer;
21
+ constructor(column: Column, input?: ColumnOptionsInput);
22
+ private calculateMinWidth;
23
+ private getIsVisible;
24
+ }
25
+ export {};
@@ -0,0 +1,41 @@
1
+ import { getTerminalWidth } from "../../../../lib/getTerminalWidth.js";
2
+ export class ColumnOptions {
3
+ static absoluteMinWidth = 5;
4
+ column;
5
+ input;
6
+ minWidth;
7
+ header;
8
+ isVisible;
9
+ isExtended;
10
+ cellRenderer;
11
+ constructor(column, input) {
12
+ this.column = column;
13
+ this.input = input;
14
+ this.minWidth = this.calculateMinWidth();
15
+ this.header = input?.header;
16
+ this.isExtended = input?.extended ?? false;
17
+ this.isVisible = this.getIsVisible();
18
+ this.cellRenderer = input?.render;
19
+ }
20
+ calculateMinWidth() {
21
+ if (this.input?.minWidth) {
22
+ return this.input.minWidth;
23
+ }
24
+ if (this.input?.isUuid) {
25
+ return 36;
26
+ }
27
+ const termWidth = getTerminalWidth();
28
+ const relativeMinWidth = Math.round(termWidth / 20);
29
+ return Math.max(ColumnOptions.absoluteMinWidth, relativeMinWidth);
30
+ }
31
+ getIsVisible() {
32
+ if (this.input === undefined) {
33
+ return false;
34
+ }
35
+ const { extended: extendTableOption, visibleColumns } = this.column.table.tableOptions ?? {};
36
+ const fulfillsExtended = !this.isExtended || extendTableOption === true;
37
+ const isHidden = !!visibleColumns &&
38
+ !visibleColumns.some((name) => this.column.name.matches(name));
39
+ return !isHidden && fulfillsExtended;
40
+ }
41
+ }
@@ -0,0 +1,14 @@
1
+ import { Cell } from "./Cell.js";
2
+ import { Table } from "./Table.js";
3
+ import { ColumnName } from "./ColumnName.js";
4
+ export declare class Row<T = unknown> {
5
+ readonly table: Table<T>;
6
+ readonly cells: Cell[];
7
+ readonly data: T;
8
+ readonly index: number;
9
+ private constructor();
10
+ static fromObject<T>(table: Table<T>, index: number, dataItem: T): Row<T>;
11
+ private buildCells;
12
+ getCell(name: string | ColumnName): Cell;
13
+ collectColumnNamesFromCells(): ColumnName[];
14
+ }