@tdk-landscape/tdk-cli-core 1.3.164 → 1.3.166
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/cli/dist/commands/ui.js +7 -5
- package/cli/dist-bundle/{chunk-YMRWNOQJ.js → chunk-KLSPOMLZ.js} +70 -70
- package/cli/dist-bundle/cli.js +306 -302
- package/cli/dist-bundle/{cold-preflight-AHCNQLEX.js → cold-preflight-V23FQZA6.js} +1 -1
- package/cli/dist-bundle/devtools-ZUHXW33W.js +5 -0
- package/cli/package.json +2 -2
- package/package.json +2 -2
- package/cli/dist-bundle/devtools-VJJFMAIJ.js +0 -11
package/cli/dist/commands/ui.js
CHANGED
|
@@ -80,6 +80,7 @@ export const TUIApp = ({ animated = true }) => {
|
|
|
80
80
|
const theme = useTUITheme();
|
|
81
81
|
const { exit } = useApp();
|
|
82
82
|
const { stdout } = useStdout();
|
|
83
|
+
const ttyStdout = stdout;
|
|
83
84
|
const { stdin, setRawMode } = useStdin();
|
|
84
85
|
const [activeTab, setActiveTab] = useState("overview");
|
|
85
86
|
const [selectedStack, setSelectedStack] = useState(null);
|
|
@@ -89,8 +90,8 @@ export const TUIApp = ({ animated = true }) => {
|
|
|
89
90
|
const [showHelp, setShowHelp] = useState(false);
|
|
90
91
|
const [searchQuery, setSearchQuery] = useState("");
|
|
91
92
|
const [isSearching, setIsSearching] = useState(false);
|
|
92
|
-
const [terminalWidth, setTerminalWidth] = useState(
|
|
93
|
-
const [terminalRows, setTerminalRows] = useState(
|
|
93
|
+
const [terminalWidth, setTerminalWidth] = useState(ttyStdout.columns || 120);
|
|
94
|
+
const [terminalRows, setTerminalRows] = useState(ttyStdout.rows || 24);
|
|
94
95
|
const [selectedFile, setSelectedFile] = useState(null);
|
|
95
96
|
const [mouseEnabled, setMouseEnabled] = useState(true);
|
|
96
97
|
const [listTop, setListTop] = useState(null);
|
|
@@ -387,8 +388,9 @@ export const TUIApp = ({ animated = true }) => {
|
|
|
387
388
|
handleSelect,
|
|
388
389
|
]);
|
|
389
390
|
const handleResize = useCallback(() => {
|
|
390
|
-
|
|
391
|
-
|
|
391
|
+
const tty = stdout;
|
|
392
|
+
setTerminalWidth(tty.columns || 120);
|
|
393
|
+
setTerminalRows(tty.rows || 24);
|
|
392
394
|
}, [stdout]);
|
|
393
395
|
useEffect(() => {
|
|
394
396
|
stdout.on("resize", handleResize);
|
|
@@ -567,7 +569,7 @@ export const TUIApp = ({ animated = true }) => {
|
|
|
567
569
|
return _jsx(ErrorScreen, { error: error, onRetry: refresh });
|
|
568
570
|
}
|
|
569
571
|
const header = (_jsxs(_Fragment, { children: [_jsx(TUIHeader, { projectRoot: projectRoot, resourceCount: services.length, terminalWidth: terminalWidth, version: getPackageVersion() }), _jsx(Box, { paddingX: 1, children: _jsx(Text, { color: theme.muted, children: (theme.ascii ? "-" : "\u2500").repeat(getTerminalRuleWidth(terminalWidth)) }) })] }));
|
|
570
|
-
return (_jsxs(Box, { flexDirection: "column", height:
|
|
572
|
+
return (_jsxs(Box, { flexDirection: "column", height: ttyStdout.rows || 24, children: [header, isSearching && (_jsxs(Box, { paddingX: 1, height: 1, children: [_jsxs(Text, { color: theme.warning, children: ["Search: ", searchQuery, "_"] }), searchStatus && (_jsx(Text, { color: theme.muted, dimColor: theme.dimMuted, children: ` ${searchStatus.summary}` }))] })), searchStatus?.emptyMessage && (_jsx(Box, { paddingX: 1, height: 1, children: _jsx(Text, { color: theme.muted, children: searchStatus.emptyMessage }) })), !isSearching && message && (_jsx(Box, { paddingX: 1, height: 1, children: _jsxs(Text, { color: theme.accent, children: [theme.bannerStart, " ", message, " ", theme.bannerEnd] }) })), !isSearching && !message && showTooltips && !showHelp && (_jsx(Box, { paddingX: 1, height: 1, children: _jsx(Text, { color: theme.muted, dimColor: theme.dimMuted, children: createHelpHint(activeTab, selectedStack, selectedService, showEnabledOnly, theme.ascii) }) })), showHelp && (_jsx(Box, { paddingX: 1, flexGrow: 1, children: _jsx(HelpPanel, { onClose: () => setShowHelp(false) }) })), !showHelp && (_jsxs(_Fragment, { children: [_jsx(Box, { marginTop: 1, children: _jsx(TabBar, { activeTab: activeTab, onTabChange: setActiveTab, terminalWidth: terminalWidth }) }), _jsxs(Box, { flexDirection: "row", paddingX: 1, flexGrow: 1, children: [_jsxs(Box, { flexDirection: "column", flexGrow: 1, width: mainPanelWidth, children: [activeTab === "overview" &&
|
|
571
573
|
(services.length === 0 ? (_jsx(EmptyState, { message: message })) : (_jsxs(_Fragment, { children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, color: theme.muted, children: "Stacks" }) }), _jsx(Box, { marginTop: 1, flexGrow: 1, children: _jsx(ResourceSelectInput, { items: items, onSelect: handleSelect, highlightedIndex: highlightedIndex, isActive: !isSearching, maxVisibleItems: pageSize, width: mainPanelWidth, onLayout: handleListLayout }) })] }))), activeTab === "resources" && (_jsxs(_Fragment, { children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, color: theme.muted, children: sectionTitle(theme, "Resources") }) }), selectedStackData ? (_jsxs(_Fragment, { children: [_jsxs(Text, { color: theme.muted, children: ["Stack: ", selectedStackData.stack.name] }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(ResourceTable, { resources: selectedStackData.metadata.resources, maxWidth: terminalWidth - (showSidebar ? 50 : 10) }), _jsx(ServiceIssues, { resources: selectedStackData.metadata.resources })] })] })) : (_jsxs(_Fragment, { children: [_jsx(Text, { color: theme.muted, children: "Select a stack to view resources" }), _jsx(Box, { marginTop: 1, children: _jsx(ResourceSelectInput, { items: items, onSelect: handleSelect, highlightedIndex: highlightedIndex, isActive: !isSearching, maxVisibleItems: pageSize, width: mainPanelWidth, onLayout: handleListLayout }) })] }))] })), activeTab === "files" && (_jsxs(_Fragment, { children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, color: theme.muted, children: sectionTitle(theme, "Autogenerated Files") }) }), selectedServiceData ? (_jsxs(_Fragment, { children: [_jsxs(Text, { color: theme.muted, children: ["Service: ", selectedServiceData.service.name] }), _jsx(Box, { marginTop: 1, children: _jsx(FileTree, { nodes: fileTreeNodes, selectedPath: selectedFile || undefined }) })] })) : (_jsxs(_Fragment, { children: [_jsx(Text, { color: theme.muted, children: "Select a service to view files" }), _jsx(Box, { marginTop: 1, children: _jsx(ResourceSelectInput, { items: items, onSelect: handleSelect, highlightedIndex: highlightedIndex, isActive: !isSearching, maxVisibleItems: pageSize, width: mainPanelWidth, onLayout: handleListLayout }) })] }))] })), activeTab === "events" && (_jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { bold: true, color: theme.muted, children: sectionTitle(theme, "Event Timeline") }) }), (eventLoadState === "idle" || eventLoadState === "loading") && (_jsx(Text, { color: theme.muted, children: "Loading Tilt events..." })), eventLoadState === "unavailable" && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: theme.warning, children: "Tilt is not running or its UI is unreachable." }), _jsx(Text, { color: theme.muted, children: "Start the stack with tdk up, then press [r] to retry." })] })), eventLoadState === "error" && (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: theme.error, children: "Could not load Tilt events." }), _jsx(Text, { color: theme.muted, children: formatEventDetails(eventLoadError ?? "Unknown Tilt error", mainPanelWidth) }), _jsx(Text, { color: theme.muted, children: "Press [r] to retry." })] })), eventLoadState === "ready" && (_jsxs(_Fragment, { children: [eventSnapshot && eventSnapshot.resources.length > 0 && (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { bold: true, color: theme.muted, children: "Current resources" }), eventSnapshot.resources.slice(0, 12).map((resource) => (_jsxs(Text, { color: theme.accent, children: [resource.name, ": ", formatResourceStatus(resource)] }, resource.name))), eventSnapshot.resources.length > 12 && (_jsx(Text, { color: theme.muted, children: "Showing first 12 resources" }))] })), _jsx(Text, { bold: true, color: theme.muted, children: "Recent events" }), eventSnapshot && eventSnapshot.events.length > 20 && (_jsx(Text, { color: theme.muted, children: "Showing first 20 events" })), eventSnapshot?.events.length ? (_jsx(Box, { flexDirection: "column", marginTop: 1, children: eventSnapshot.events.slice(0, 20).map((event) => (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Text, { color: event.kind === "failed"
|
|
572
574
|
? theme.error
|
|
573
575
|
: event.kind === "warning"
|