@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.
- package/README.md +129 -117
- package/dist/esm/BaseCommand.d.ts +1 -1
- package/dist/esm/DeleteBaseCommand.d.ts +6 -9
- package/dist/esm/DeleteBaseCommand.js +27 -21
- package/dist/esm/ExtendedBaseCommand.d.ts +1 -1
- package/dist/esm/Formatter.d.ts +5 -2
- package/dist/esm/Formatter.js +7 -2
- package/dist/esm/GetBaseCommand.d.ts +1 -1
- package/dist/esm/Helpers.d.ts +1 -0
- package/dist/esm/Helpers.js +7 -1
- package/dist/esm/ListBaseCommand.d.ts +1 -1
- package/dist/esm/ListBaseCommand.js +2 -2
- package/dist/esm/Printer.d.ts +6 -7
- package/dist/esm/Printer.js +3 -3
- package/dist/esm/Translator.d.ts +1 -0
- package/dist/esm/Translator.js +12 -1
- package/dist/esm/commands/app/delete.d.ts +1 -1
- package/dist/esm/commands/app/delete.js +1 -1
- package/dist/esm/commands/app/dependency/listSystemsoftwareversions.d.ts +1 -1
- package/dist/esm/commands/app/install/wordpress.d.ts +1 -2
- package/dist/esm/commands/app/install/wordpress.js +5 -9
- package/dist/esm/commands/app/list.d.ts +1 -1
- package/dist/esm/commands/app/versions.d.ts +1 -1
- package/dist/esm/commands/context/get.d.ts +10 -0
- package/dist/esm/commands/context/get.js +39 -0
- package/dist/esm/commands/context/set.d.ts +11 -0
- package/dist/esm/commands/context/set.js +37 -0
- package/dist/esm/commands/conversation/close.d.ts +1 -1
- package/dist/esm/commands/conversation/create.d.ts +1 -1
- package/dist/esm/commands/conversation/list.js +2 -2
- package/dist/esm/commands/conversation/reply.d.ts +1 -1
- package/dist/esm/commands/conversation/show.d.ts +1 -1
- package/dist/esm/commands/conversation/show.js +7 -7
- package/dist/esm/commands/conversation/show2.js +6 -3
- package/dist/esm/commands/domain/list.d.ts +12 -4
- package/dist/esm/commands/domain/list.js +16 -2
- package/dist/esm/commands/domain/virtualhost/list.js +10 -7
- package/dist/esm/commands/login/reset.d.ts +12 -0
- package/dist/esm/commands/login/reset.js +39 -0
- package/dist/esm/commands/login/status.d.ts +1 -1
- package/dist/esm/commands/login/token.d.ts +2 -1
- package/dist/esm/commands/login/token.js +1 -0
- package/dist/esm/commands/mail/address/create.d.ts +12 -4
- package/dist/esm/commands/mail/address/create.js +35 -26
- package/dist/esm/commands/mail/address/delete.d.ts +1 -0
- package/dist/esm/commands/mail/address/list.d.ts +11 -3
- package/dist/esm/commands/mail/address/list.js +23 -7
- package/dist/esm/commands/mail/deliverybox/list.d.ts +1 -1
- package/dist/esm/commands/mail/deliverybox/list.js +2 -2
- package/dist/esm/commands/org/list.js +1 -1
- package/dist/esm/commands/project/backup/list.d.ts +12 -5
- package/dist/esm/commands/project/backup/list.js +17 -9
- package/dist/esm/commands/project/create.d.ts +12 -4
- package/dist/esm/commands/project/create.js +32 -26
- package/dist/esm/commands/project/cronjob/execution/get.d.ts +15 -2
- package/dist/esm/commands/project/cronjob/execution/get.js +26 -5
- package/dist/esm/commands/project/cronjob/execution/list.d.ts +11 -4
- package/dist/esm/commands/project/cronjob/execution/list.js +27 -7
- package/dist/esm/commands/project/cronjob/execution/logs.d.ts +15 -0
- package/dist/esm/commands/project/cronjob/execution/logs.js +74 -0
- package/dist/esm/commands/project/cronjob/list.d.ts +12 -4
- package/dist/esm/commands/project/cronjob/list.js +24 -5
- package/dist/esm/commands/project/delete.d.ts +2 -1
- package/dist/esm/commands/project/delete.js +5 -11
- package/dist/esm/commands/project/filesystem/usage.d.ts +13 -3
- package/dist/esm/commands/project/filesystem/usage.js +51 -9
- package/dist/esm/commands/project/get.d.ts +13 -3
- package/dist/esm/commands/project/get.js +76 -9
- package/dist/esm/commands/project/invite/list-own.js +2 -2
- package/dist/esm/commands/project/invite/list.d.ts +1 -1
- package/dist/esm/commands/project/invite/list.js +2 -2
- package/dist/esm/commands/project/{list2.d.ts → list-react.d.ts} +3 -1
- package/dist/esm/commands/project/list-react.js +42 -0
- package/dist/esm/commands/project/membership/list-own.js +2 -2
- package/dist/esm/commands/project/membership/list.d.ts +1 -1
- package/dist/esm/commands/project/membership/list.js +2 -2
- package/dist/esm/commands/project/ssh.d.ts +2 -2
- package/dist/esm/commands/project/ssh.js +3 -8
- package/dist/esm/commands/project/update.d.ts +2 -2
- package/dist/esm/commands/project/update.js +6 -9
- package/dist/esm/commands/user/api-token/create.d.ts +9 -3
- package/dist/esm/commands/user/api-token/create.js +33 -15
- package/dist/esm/commands/user/api-token/list.js +4 -2
- package/dist/esm/commands/user/api-token/revoke.d.ts +8 -3
- package/dist/esm/commands/user/api-token/revoke.js +6 -6
- package/dist/esm/commands/user/session/list.js +4 -2
- package/dist/esm/commands/user/ssh-key/create.d.ts +6 -3
- package/dist/esm/commands/user/ssh-key/create.js +35 -18
- package/dist/esm/commands/user/ssh-key/delete.d.ts +5 -4
- package/dist/esm/commands/user/ssh-key/delete.js +7 -26
- package/dist/esm/lib/bytes.d.ts +1 -0
- package/dist/esm/lib/bytes.js +16 -0
- package/dist/esm/lib/context.d.ts +16 -0
- package/dist/esm/lib/context.js +42 -0
- package/dist/esm/lib/context_flags.d.ts +18 -0
- package/dist/esm/lib/context_flags.js +42 -0
- package/dist/esm/lib/project/flags.d.ts +5 -0
- package/dist/esm/lib/project/flags.js +3 -0
- package/dist/esm/lib/server/flags.d.ts +5 -0
- package/dist/esm/lib/server/flags.js +3 -0
- package/dist/esm/lib/viewhelpers/date.d.ts +2 -1
- package/dist/esm/lib/viewhelpers/date.js +9 -2
- package/dist/esm/lib/viewhelpers/removeLineBreaks.d.ts +1 -0
- package/dist/esm/lib/viewhelpers/removeLineBreaks.js +1 -0
- package/dist/esm/rendering/lib/getTerminalWidth.d.ts +1 -0
- package/dist/esm/rendering/lib/getTerminalWidth.js +2 -0
- package/dist/esm/rendering/react/ComponentPrinter.d.ts +7 -0
- package/dist/esm/rendering/react/ComponentPrinter.js +13 -0
- package/dist/esm/rendering/react/ExecRenderBaseCommand.d.ts +8 -0
- package/dist/esm/rendering/react/ExecRenderBaseCommand.js +15 -0
- package/dist/esm/rendering/react/RenderBaseCommand.d.ts +12 -0
- package/dist/esm/rendering/react/RenderBaseCommand.js +36 -4
- package/dist/esm/rendering/react/components/ByteFormat.d.ts +4 -0
- package/dist/esm/rendering/react/components/ByteFormat.js +12 -0
- package/dist/esm/rendering/react/components/{ConversationMessage.js → Conversation/ConversationMessage.js} +1 -1
- package/dist/esm/rendering/react/components/Conversation/ConversationMessages.d.ts +8 -0
- package/dist/esm/rendering/react/components/Conversation/ConversationMessages.js +13 -0
- package/dist/esm/rendering/react/components/{ConversationMeta.js → Conversation/ConversationMeta.js} +7 -3
- package/dist/esm/rendering/react/components/CreatedAt.d.ts +8 -0
- package/dist/esm/rendering/react/components/CreatedAt.js +10 -0
- package/dist/esm/rendering/react/components/Filename.d.ts +4 -0
- package/dist/esm/rendering/react/components/Filename.js +5 -0
- package/dist/esm/rendering/react/components/FormattedDate.d.ts +7 -0
- package/dist/esm/rendering/react/components/FormattedDate.js +18 -0
- package/dist/esm/rendering/react/components/Header.d.ts +2 -2
- package/dist/esm/rendering/react/components/IDAndShortID.d.ts +7 -0
- package/dist/esm/rendering/react/components/IDAndShortID.js +6 -0
- package/dist/esm/rendering/react/components/JSONView.d.ts +7 -0
- package/dist/esm/rendering/react/components/JSONView.js +3 -0
- package/dist/esm/rendering/react/components/ListItem.d.ts +3 -0
- package/dist/esm/rendering/react/components/ListItem.js +5 -0
- package/dist/esm/rendering/react/components/Note.d.ts +10 -0
- package/dist/esm/rendering/react/components/Note.js +8 -0
- package/dist/esm/rendering/react/components/ProjectEnabled.d.ts +6 -0
- package/dist/esm/rendering/react/components/ProjectEnabled.js +9 -0
- package/dist/esm/rendering/react/components/ProjectReadiness.d.ts +7 -0
- package/dist/esm/rendering/react/components/ProjectReadiness.js +16 -0
- package/dist/esm/rendering/react/components/ProjectStatus.d.ts +7 -0
- package/dist/esm/rendering/react/components/ProjectStatus.js +8 -0
- package/dist/esm/rendering/react/components/Render.d.ts +6 -0
- package/dist/esm/rendering/react/components/Render.js +5 -0
- package/dist/esm/rendering/react/components/SingleResult.d.ts +10 -0
- package/dist/esm/rendering/react/components/SingleResult.js +15 -0
- package/dist/esm/rendering/react/components/Success.d.ts +9 -0
- package/dist/esm/rendering/react/components/Success.js +6 -0
- package/dist/esm/rendering/react/components/Table/BodyCell.d.ts +7 -0
- package/dist/esm/rendering/react/components/Table/BodyCell.js +7 -0
- package/dist/esm/rendering/react/components/Table/BodyRow.d.ts +7 -0
- package/dist/esm/rendering/react/components/Table/BodyRow.js +7 -0
- package/dist/esm/rendering/react/components/Table/BodyRows.d.ts +7 -0
- package/dist/esm/rendering/react/components/Table/BodyRows.js +6 -0
- package/dist/esm/rendering/react/components/Table/CellData.d.ts +6 -0
- package/dist/esm/rendering/react/components/Table/CellData.js +32 -0
- package/dist/esm/rendering/react/components/Table/CellLayout.d.ts +8 -0
- package/dist/esm/rendering/react/components/Table/CellLayout.js +17 -0
- package/dist/esm/rendering/react/components/Table/HeaderCell.d.ts +7 -0
- package/dist/esm/rendering/react/components/Table/HeaderCell.js +7 -0
- package/dist/esm/rendering/react/components/Table/HeaderRow.d.ts +8 -0
- package/dist/esm/rendering/react/components/Table/HeaderRow.js +7 -0
- package/dist/esm/rendering/react/components/Table/RowLayout.d.ts +5 -0
- package/dist/esm/rendering/react/components/Table/RowLayout.js +3 -0
- package/dist/esm/rendering/react/components/Table/Table.d.ts +10 -0
- package/dist/esm/rendering/react/components/Table/Table.js +21 -0
- package/dist/esm/rendering/react/components/Table/context.d.ts +9 -0
- package/dist/esm/rendering/react/components/Table/context.js +7 -0
- package/dist/esm/rendering/react/components/Table/index.d.ts +1 -0
- package/dist/esm/rendering/react/components/Table/index.js +1 -0
- package/dist/esm/rendering/react/components/Table/model/Cell.d.ts +19 -0
- package/dist/esm/rendering/react/components/Table/model/Cell.js +24 -0
- package/dist/esm/rendering/react/components/Table/model/Column.d.ts +16 -0
- package/dist/esm/rendering/react/components/Table/model/Column.js +35 -0
- package/dist/esm/rendering/react/components/Table/model/ColumnName.d.ts +7 -0
- package/dist/esm/rendering/react/components/Table/model/ColumnName.js +17 -0
- package/dist/esm/rendering/react/components/Table/model/ColumnOptions.d.ts +25 -0
- package/dist/esm/rendering/react/components/Table/model/ColumnOptions.js +41 -0
- package/dist/esm/rendering/react/components/Table/model/Row.d.ts +14 -0
- package/dist/esm/rendering/react/components/Table/model/Row.js +37 -0
- package/dist/esm/rendering/react/components/Table/model/Table.d.ts +19 -0
- package/dist/esm/rendering/react/components/Table/model/Table.js +48 -0
- package/dist/esm/rendering/react/components/Table/model/index.d.ts +5 -0
- package/dist/esm/rendering/react/components/Table/model/index.js +5 -0
- package/dist/esm/rendering/react/components/Value.d.ts +5 -0
- package/dist/esm/rendering/react/components/Value.js +8 -0
- package/dist/esm/rendering/react/components/WithoutLineBreaks.d.ts +2 -0
- package/dist/esm/rendering/react/components/WithoutLineBreaks.js +7 -0
- package/dist/esm/rendering/react/context.d.ts +3 -2
- package/dist/esm/rendering/react/context.js +4 -1
- package/dist/esm/rendering/react/json/JsonCollectionProvider.d.ts +2 -0
- package/dist/esm/rendering/react/json/JsonCollectionProvider.js +10 -0
- package/dist/esm/rendering/react/json/JsonRenderer.d.ts +2 -0
- package/dist/esm/rendering/react/json/JsonRenderer.js +14 -0
- package/dist/esm/rendering/react/json/RenderJson.d.ts +7 -0
- package/dist/esm/rendering/react/json/RenderJson.js +19 -0
- package/dist/esm/rendering/react/json/context.d.ts +5 -0
- package/dist/esm/rendering/react/json/context.js +4 -0
- package/dist/esm/rendering/react/json/lib/unpackJsonData.d.ts +1 -0
- package/dist/esm/rendering/react/json/lib/unpackJsonData.js +5 -0
- package/dist/esm/rendering/react/lib/observable-value/ObservableValue.d.ts +10 -0
- package/dist/esm/rendering/react/lib/observable-value/ObservableValue.js +25 -0
- package/dist/esm/rendering/react/lib/observable-value/types.d.ts +2 -0
- package/dist/esm/rendering/react/lib/observable-value/types.js +1 -0
- package/dist/esm/rendering/react/lib/observable-value/useWatchObservableValue.d.ts +2 -0
- package/dist/esm/rendering/react/lib/observable-value/useWatchObservableValue.js +9 -0
- package/dist/esm/rendering/react/measure/MeasureChildren.d.ts +8 -0
- package/dist/esm/rendering/react/measure/MeasureChildren.js +19 -0
- package/dist/esm/rendering/react/measure/MeasureContextProvider.d.ts +2 -0
- package/dist/esm/rendering/react/measure/MeasureContextProvider.js +10 -0
- package/dist/esm/rendering/react/measure/MeasureRenderer.d.ts +2 -0
- package/dist/esm/rendering/react/measure/MeasureRenderer.js +22 -0
- package/dist/esm/rendering/react/measure/context.d.ts +18 -0
- package/dist/esm/rendering/react/measure/context.js +48 -0
- package/dist/esm/rendering/react/process.d.ts +42 -0
- package/dist/esm/rendering/react/process.js +24 -0
- package/dist/esm/rendering/react/process_fancy.d.ts +28 -0
- package/dist/esm/rendering/react/process_fancy.js +213 -0
- package/dist/esm/rendering/react/process_flags.d.ts +9 -0
- package/dist/esm/rendering/react/process_flags.js +15 -0
- package/dist/esm/rendering/react/process_quiet.d.ts +12 -0
- package/dist/esm/rendering/react/process_quiet.js +29 -0
- package/dist/esm/rendering/setup/FlagSupportedSetup.d.ts +2 -0
- package/dist/esm/rendering/setup/TableRenderSetup.d.ts +10 -12
- package/dist/esm/rendering/setup/TableRenderSetup.js +19 -6
- package/dist/esm/rendering/setup/usePromiseSetup.d.ts +4 -3
- package/package.json +52 -21
- package/.deps/client.tgz +0 -0
- package/.deps/commons.tgz +0 -0
- package/dist/esm/commands/project/filesystem/directories.d.ts +0 -3
- package/dist/esm/commands/project/filesystem/directories.js +0 -6
- package/dist/esm/commands/project/filesystem/file-content.d.ts +0 -3
- package/dist/esm/commands/project/filesystem/file-content.js +0 -6
- package/dist/esm/commands/project/filesystem/files.d.ts +0 -16
- package/dist/esm/commands/project/filesystem/files.js +0 -25
- package/dist/esm/commands/project/list1.d.ts +0 -7
- package/dist/esm/commands/project/list1.js +0 -18
- package/dist/esm/commands/project/list2.js +0 -26
- package/dist/esm/generated/cronjob/listCronjobs.d.ts +0 -13
- package/dist/esm/generated/cronjob/listCronjobs.js +0 -24
- package/dist/esm/generated/cronjob/listExecutions.d.ts +0 -13
- package/dist/esm/generated/cronjob/listExecutions.js +0 -24
- package/dist/esm/generated/domain/ingressListAccessible.d.ts +0 -13
- package/dist/esm/generated/domain/ingressListAccessible.js +0 -17
- package/dist/esm/generated/domain/ingressListForProject.d.ts +0 -13
- package/dist/esm/generated/domain/ingressListForProject.js +0 -24
- package/dist/esm/generated/domain/listDomains.d.ts +0 -13
- package/dist/esm/generated/domain/listDomains.js +0 -24
- package/dist/esm/generated/projectFileSystem/getDirectories.d.ts +0 -14
- package/dist/esm/generated/projectFileSystem/getDirectories.js +0 -24
- package/dist/esm/generated/projectFileSystem/getDiskUsage.d.ts +0 -14
- package/dist/esm/generated/projectFileSystem/getDiskUsage.js +0 -24
- package/dist/esm/generated/projectFileSystem/getFileContent.d.ts +0 -14
- package/dist/esm/generated/projectFileSystem/getFileContent.js +0 -24
- package/dist/esm/generated/projectFileSystem/getJwt.d.ts +0 -14
- package/dist/esm/generated/projectFileSystem/getJwt.js +0 -24
- package/dist/esm/generated/projectFileSystem/listFiles.d.ts +0 -13
- package/dist/esm/generated/projectFileSystem/listFiles.js +0 -24
- package/dist/esm/rendering/oclif/components/table.d.ts +0 -11
- package/dist/esm/rendering/oclif/components/table.js +0 -49
- package/dist/esm/rendering/react/components/Table.d.ts +0 -7
- package/dist/esm/rendering/react/components/Table.js +0 -4
- /package/dist/esm/rendering/react/components/{ConversationMessage.d.ts → Conversation/ConversationMessage.d.ts} +0 -0
- /package/dist/esm/rendering/react/components/{ConversationMeta.d.ts → Conversation/ConversationMeta.d.ts} +0 -0
- /package/dist/esm/rendering/react/components/{ConversationStatusUpdate.d.ts → Conversation/ConversationStatusUpdate.d.ts} +0 -0
- /package/dist/esm/rendering/react/components/{ConversationStatusUpdate.js → Conversation/ConversationStatusUpdate.js} +0 -0
|
@@ -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,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,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,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,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,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 { 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 { 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,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,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 { 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,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,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,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
|
+
}
|