@calltelemetry/cli 0.2.5 → 0.3.0
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/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +16 -41
- package/dist/commands/update.js.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/bundle.d.ts +16 -1
- package/dist/lib/bundle.d.ts.map +1 -1
- package/dist/lib/bundle.js +64 -14
- package/dist/lib/bundle.js.map +1 -1
- package/dist/lib/rpc-scripts.d.ts +2 -0
- package/dist/lib/rpc-scripts.d.ts.map +1 -0
- package/dist/lib/rpc-scripts.js +55 -0
- package/dist/lib/rpc-scripts.js.map +1 -0
- package/dist/lib/update.d.ts +13 -0
- package/dist/lib/update.d.ts.map +1 -0
- package/dist/lib/update.js +67 -0
- package/dist/lib/update.js.map +1 -0
- package/dist/ui/components/Section.d.ts.map +1 -1
- package/dist/ui/components/Section.js +4 -2
- package/dist/ui/components/Section.js.map +1 -1
- package/dist/ui/hooks/useComposeLogs.d.ts.map +1 -1
- package/dist/ui/hooks/useComposeLogs.js +8 -2
- package/dist/ui/hooks/useComposeLogs.js.map +1 -1
- package/dist/ui/hooks/usePolling.d.ts.map +1 -1
- package/dist/ui/hooks/usePolling.js +6 -0
- package/dist/ui/hooks/usePolling.js.map +1 -1
- package/dist/ui/utils/serviceDisplay.d.ts +5 -0
- package/dist/ui/utils/serviceDisplay.d.ts.map +1 -0
- package/dist/ui/utils/serviceDisplay.js +43 -0
- package/dist/ui/utils/serviceDisplay.js.map +1 -0
- package/dist/ui/views/DbTablesView.d.ts.map +1 -1
- package/dist/ui/views/DbTablesView.js +3 -2
- package/dist/ui/views/DbTablesView.js.map +1 -1
- package/dist/ui/views/DiagNetworkView.d.ts.map +1 -1
- package/dist/ui/views/DiagNetworkView.js +0 -16
- package/dist/ui/views/DiagNetworkView.js.map +1 -1
- package/dist/ui/views/DockerNetworkView.d.ts.map +1 -1
- package/dist/ui/views/DockerNetworkView.js +21 -3
- package/dist/ui/views/DockerNetworkView.js.map +1 -1
- package/dist/ui/views/DockerPruneView.d.ts.map +1 -1
- package/dist/ui/views/DockerPruneView.js +12 -5
- package/dist/ui/views/DockerPruneView.js.map +1 -1
- package/dist/ui/views/MainMenu.d.ts.map +1 -1
- package/dist/ui/views/MainMenu.js +59 -63
- package/dist/ui/views/MainMenu.js.map +1 -1
- package/dist/ui/views/MigrateRollbackView.d.ts.map +1 -1
- package/dist/ui/views/MigrateRollbackView.js +15 -4
- package/dist/ui/views/MigrateRollbackView.js.map +1 -1
- package/dist/ui/views/MigrateRunView.d.ts.map +1 -1
- package/dist/ui/views/MigrateRunView.js +15 -4
- package/dist/ui/views/MigrateRunView.js.map +1 -1
- package/dist/ui/views/MigrateStatusView.d.ts.map +1 -1
- package/dist/ui/views/MigrateStatusView.js +1 -54
- package/dist/ui/views/MigrateStatusView.js.map +1 -1
- package/dist/ui/views/MigrateWatchView.d.ts.map +1 -1
- package/dist/ui/views/MigrateWatchView.js +1 -54
- package/dist/ui/views/MigrateWatchView.js.map +1 -1
- package/dist/ui/views/ServicesView.d.ts.map +1 -1
- package/dist/ui/views/ServicesView.js +6 -53
- package/dist/ui/views/ServicesView.js.map +1 -1
- package/dist/ui/views/UpdateView.d.ts +6 -0
- package/dist/ui/views/UpdateView.d.ts.map +1 -0
- package/dist/ui/views/UpdateView.js +302 -0
- package/dist/ui/views/UpdateView.js.map +1 -0
- package/dist/utils/version.d.ts +7 -0
- package/dist/utils/version.d.ts.map +1 -1
- package/dist/utils/version.js +66 -9
- package/dist/utils/version.js.map +1 -1
- package/package.json +1 -1
|
@@ -46,7 +46,10 @@ export function useComposeLogs(service, tail = 200) {
|
|
|
46
46
|
const parts = buffer.split('\n');
|
|
47
47
|
buffer = parts.pop();
|
|
48
48
|
if (parts.length > 0) {
|
|
49
|
-
setLines(prev =>
|
|
49
|
+
setLines(prev => {
|
|
50
|
+
const next = [...prev, ...parts];
|
|
51
|
+
return next.length > 5000 ? next.slice(-5000) : next;
|
|
52
|
+
});
|
|
50
53
|
}
|
|
51
54
|
});
|
|
52
55
|
// Also capture stderr (compose sometimes writes there)
|
|
@@ -55,7 +58,10 @@ export function useComposeLogs(service, tail = 200) {
|
|
|
55
58
|
const parts = buffer.split('\n');
|
|
56
59
|
buffer = parts.pop();
|
|
57
60
|
if (parts.length > 0) {
|
|
58
|
-
setLines(prev =>
|
|
61
|
+
setLines(prev => {
|
|
62
|
+
const next = [...prev, ...parts];
|
|
63
|
+
return next.length > 5000 ? next.slice(-5000) : next;
|
|
64
|
+
});
|
|
59
65
|
}
|
|
60
66
|
});
|
|
61
67
|
proc.then(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useComposeLogs.js","sourceRoot":"","sources":["../../../src/ui/hooks/useComposeLogs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,KAAK,EAAsB,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,UAAU,cAAc,CAC5B,OAAsB,EACtB,IAAI,GAAG,GAAG;IAOV,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,CAAuB,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;IAC7B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAEvB,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACnC,IAAI,EAAE,CAAC;QACP,IAAI,CAAC,UAAU,CAAC,OAAO;YAAE,OAAO;QAEhC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACb,YAAY,CAAC,IAAI,CAAC,CAAC;QAEnB,MAAM,UAAU,GAAG,MAAM,oBAAoB,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAExC,IAAI,IAAmB,CAAC;QACxB,IAAI,UAAU,KAAK,gBAAgB,EAAE,CAAC;YACpC,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE;gBACvF,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE;gBACpF,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QAEvB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;YACtB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"useComposeLogs.js","sourceRoot":"","sources":["../../../src/ui/hooks/useComposeLogs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePolling.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/usePolling.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,CAAC,EAC1B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,EAAE,MAAM,EAClB,SAAS,UAAO,GACf;IACD,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,
|
|
1
|
+
{"version":3,"file":"usePolling.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/usePolling.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,CAAC,EAC1B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,EAAE,MAAM,EAClB,SAAS,UAAO,GACf;IACD,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAqDA"}
|
|
@@ -5,13 +5,19 @@ export function usePolling(fn, intervalMs, autoStart = true) {
|
|
|
5
5
|
const [isPolling, setIsPolling] = useState(false);
|
|
6
6
|
const timerRef = useRef(null);
|
|
7
7
|
const fnRef = useRef(fn);
|
|
8
|
+
const inFlightRef = useRef(false);
|
|
8
9
|
fnRef.current = fn;
|
|
9
10
|
const poll = useCallback(() => {
|
|
11
|
+
if (inFlightRef.current)
|
|
12
|
+
return;
|
|
13
|
+
inFlightRef.current = true;
|
|
10
14
|
fnRef.current().then((result) => {
|
|
11
15
|
setData(result);
|
|
12
16
|
setError(undefined);
|
|
13
17
|
}, (err) => {
|
|
14
18
|
setError(err instanceof Error ? err : new Error(String(err)));
|
|
19
|
+
}).finally(() => {
|
|
20
|
+
inFlightRef.current = false;
|
|
15
21
|
});
|
|
16
22
|
}, []);
|
|
17
23
|
const stop = useCallback(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePolling.js","sourceRoot":"","sources":["../../../src/ui/hooks/usePolling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjE,MAAM,UAAU,UAAU,CACxB,EAAoB,EACpB,UAAkB,EAClB,SAAS,GAAG,IAAI;IAQhB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,EAAiB,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAqB,CAAC;IACxD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,MAAM,CAAwC,IAAI,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACzB,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;IAEnB,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAClB,CAAC,MAAM,EAAE,EAAE;YACT,OAAO,CAAC,MAAM,CAAC,CAAC;YAChB,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;YACN,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC,CACF,CAAC;
|
|
1
|
+
{"version":3,"file":"usePolling.js","sourceRoot":"","sources":["../../../src/ui/hooks/usePolling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjE,MAAM,UAAU,UAAU,CACxB,EAAoB,EACpB,UAAkB,EAClB,SAAS,GAAG,IAAI;IAQhB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,EAAiB,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAqB,CAAC;IACxD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,MAAM,CAAwC,IAAI,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACzB,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;IAEnB,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,IAAI,WAAW,CAAC,OAAO;YAAE,OAAO;QAChC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAClB,CAAC,MAAM,EAAE,EAAE;YACT,OAAO,CAAC,MAAM,CAAC,CAAC;YAChB,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;YACN,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC,CACF,CAAC,OAAO,CAAC,GAAG,EAAE;YACb,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC9B,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,IAAI,EAAE,CAAC;QACP,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,EAAE,CAAC;QACP,QAAQ,CAAC,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,EAAE,CAAC;QACV,CAAC;QACD,OAAO,GAAG,EAAE;YACV,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC9B,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAChC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAEvB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function healthIcon(health: string, state: string): string;
|
|
2
|
+
export declare function healthColor(health: string, state: string): string;
|
|
3
|
+
export declare function extractVersion(image: string): string;
|
|
4
|
+
export declare function extractUptime(status: string): string;
|
|
5
|
+
//# sourceMappingURL=serviceDisplay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serviceDisplay.d.ts","sourceRoot":"","sources":["../../../src/ui/utils/serviceDisplay.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAOhE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAOjE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQpD"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export function healthIcon(health, state) {
|
|
2
|
+
if (state === 'exited' || state === 'dead')
|
|
3
|
+
return '●';
|
|
4
|
+
if (health === 'healthy')
|
|
5
|
+
return '●';
|
|
6
|
+
if (health === 'unhealthy')
|
|
7
|
+
return '●';
|
|
8
|
+
if (health === 'starting')
|
|
9
|
+
return '●';
|
|
10
|
+
if (state === 'running')
|
|
11
|
+
return '●';
|
|
12
|
+
return '○';
|
|
13
|
+
}
|
|
14
|
+
export function healthColor(health, state) {
|
|
15
|
+
if (state === 'exited' || state === 'dead')
|
|
16
|
+
return 'red';
|
|
17
|
+
if (health === 'healthy')
|
|
18
|
+
return 'green';
|
|
19
|
+
if (health === 'unhealthy')
|
|
20
|
+
return 'red';
|
|
21
|
+
if (health === 'starting')
|
|
22
|
+
return 'yellow';
|
|
23
|
+
if (state === 'running')
|
|
24
|
+
return 'green';
|
|
25
|
+
return 'gray';
|
|
26
|
+
}
|
|
27
|
+
export function extractVersion(image) {
|
|
28
|
+
if (!image)
|
|
29
|
+
return '';
|
|
30
|
+
return image.includes(':') ? image.split(':').pop() : image;
|
|
31
|
+
}
|
|
32
|
+
export function extractUptime(status) {
|
|
33
|
+
if (!status)
|
|
34
|
+
return '';
|
|
35
|
+
const m = status.match(/Up\s+(?:About\s+)?(\d+)\s*(second|minute|hour|day|week|month)/i);
|
|
36
|
+
if (!m) {
|
|
37
|
+
if (status.toLowerCase().startsWith('exited'))
|
|
38
|
+
return 'exited';
|
|
39
|
+
return status.replace(/\s*\(.*\)/, '').trim();
|
|
40
|
+
}
|
|
41
|
+
return `${m[1]}${m[2].charAt(0)}`;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=serviceDisplay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serviceDisplay.js","sourceRoot":"","sources":["../../../src/ui/utils/serviceDisplay.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,KAAa;IACtD,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,GAAG,CAAC;IACvD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACrC,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,GAAG,CAAC;IACvC,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO,GAAG,CAAC;IACtC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACpC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,KAAa;IACvD,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACzD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IACzC,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAC;IAC3C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IACxC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACzF,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC;QAC/D,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AACrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbTablesView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/DbTablesView.tsx"],"names":[],"mappings":"AAOA,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"DbTablesView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/DbTablesView.tsx"],"names":[],"mappings":"AAOA,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,iBAAiB,2CAiD/D"}
|
|
@@ -8,8 +8,9 @@ import { useAsyncTask, useFinish } from '../hooks/index.js';
|
|
|
8
8
|
export function DbTablesView({ name, onBack }) {
|
|
9
9
|
const finish = useFinish(onBack);
|
|
10
10
|
const tablesTask = useAsyncTask(async () => {
|
|
11
|
-
const
|
|
12
|
-
|
|
11
|
+
const safeName = name ? name.replace(/'/g, "''") : '';
|
|
12
|
+
const whereClause = safeName
|
|
13
|
+
? `AND c.relname LIKE '%${safeName}%'`
|
|
13
14
|
: '';
|
|
14
15
|
const query = `SELECT table_name, row_count, pg_size_pretty(total_bytes) AS total_size, pg_size_pretty(index_bytes) AS index_size, pg_size_pretty(table_bytes) AS table_size FROM (SELECT c.relname AS table_name, c.reltuples::BIGINT AS row_count, pg_total_relation_size(c.oid) AS total_bytes, pg_indexes_size(c.oid) AS index_bytes, pg_relation_size(c.oid) AS table_bytes FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = 'public' AND c.relkind = 'r' ${whereClause}) t ORDER BY total_bytes DESC;`;
|
|
15
16
|
const result = await composeExec('db', ['psql', '-U', DB_USER, '-d', DB_NAME, '-c', query], { env: PG_ENV, pipe: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbTablesView.js","sourceRoot":"","sources":["../../../src/ui/views/DbTablesView.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAO5D,MAAM,UAAU,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAqB;IAC9D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAEjC,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,IAAI,EAAE;QACzC,MAAM,
|
|
1
|
+
{"version":3,"file":"DbTablesView.js","sourceRoot":"","sources":["../../../src/ui/views/DbTablesView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiagNetworkView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/DiagNetworkView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DiagNetworkView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/DiagNetworkView.tsx"],"names":[],"mappings":"AAiCA,UAAU,oBAAoB;IAC5B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,2CA4O/D"}
|
|
@@ -10,22 +10,6 @@ function netmaskToCidr(netmask) {
|
|
|
10
10
|
.split('.')
|
|
11
11
|
.reduce((bits, octet) => bits + (Number(octet) >>> 0).toString(2).replace(/0/g, '').length, 0);
|
|
12
12
|
}
|
|
13
|
-
// Section 5/6: Ping section component
|
|
14
|
-
function PingSection({ title, target, startWhen }) {
|
|
15
|
-
const args = useMemo(() => getPingArgs(target), [target]);
|
|
16
|
-
const { lines, isRunning, start } = useStreamingProcess('ping', args);
|
|
17
|
-
const [started, setStarted] = useState(false);
|
|
18
|
-
useEffect(() => {
|
|
19
|
-
if (startWhen && !started) {
|
|
20
|
-
setStarted(true);
|
|
21
|
-
start();
|
|
22
|
-
}
|
|
23
|
-
}, [startWhen, started, start]);
|
|
24
|
-
if (!startWhen && !started) {
|
|
25
|
-
return (_jsx(Section, { title: title, children: _jsx(Spinner, { label: "Waiting..." }) }));
|
|
26
|
-
}
|
|
27
|
-
return (_jsxs(Section, { title: title, children: [isRunning && lines.length === 0 && _jsx(Spinner, { label: "Pinging..." }), lines.length > 0 && _jsx(ShellOutput, { content: lines.join('\n') }), isRunning && lines.length > 0 && _jsx(Spinner, { label: "Pinging..." })] }));
|
|
28
|
-
}
|
|
29
13
|
export function DiagNetworkView({ onBack }) {
|
|
30
14
|
const finish = useFinish(onBack);
|
|
31
15
|
// Section 1: System Info (synchronous)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiagNetworkView.js","sourceRoot":"","sources":["../../../src/ui/views/DiagNetworkView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,iBAAiB,GAIlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,EACX,OAAO,GACR,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnE,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,OAAO;SACX,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACnG,CAAC;AAED,sCAAsC;AACtC,SAAS,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAyD;IACtG,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACtE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAEhC,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,CACL,KAAC,OAAO,IAAC,KAAK,EAAE,KAAK,YACnB,KAAC,OAAO,IAAC,KAAK,EAAC,YAAY,GAAG,GACtB,CACX,CAAC;IACJ,CAAC;IAED,OAAO,CACL,MAAC,OAAO,IAAC,KAAK,EAAE,KAAK,aAClB,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAC,OAAO,IAAC,KAAK,EAAC,YAAY,GAAG,EACjE,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAC,WAAW,IAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAI,EAC9D,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAC,OAAO,IAAC,KAAK,EAAC,YAAY,GAAG,IACxD,CACX,CAAC;AACJ,CAAC;AAMD,MAAM,UAAU,eAAe,CAAC,EAAE,MAAM,EAAwB;IAC9D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAEjC,uCAAuC;IACvC,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;IAExC,8CAA8C;IAC9C,MAAM,MAAM,GAAG,uBAAuB,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC;IAE7C,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACtC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;YACrC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,EAAE;YAClC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;SAC7B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,qCAAqC;IACrC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAA4B,SAAS,CAAC,CAAC;IAE7E,oCAAoC;IACpC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAA0B,SAAS,CAAC,CAAC;IAEjF,wCAAwC;IACxC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAA+B,SAAS,CAAC,CAAC;IAExF,sCAAsC;IACtC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAqD,SAAS,CAAC,CAAC;IAE9G,4BAA4B;IAC5B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,wBAAwB;IACxB,SAAS,CAAC,GAAG,EAAE;QACb,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,qBAAqB;IACrB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACvF,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,kBAAkB;IAClB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,GAAG,UAAU,SAAS,CAAC;QACvC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,kBAAkB;IAClB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAuB;YAChC,CAAC,IAAI,EAAE,KAAK,CAAC;YACb,CAAC,IAAI,EAAE,YAAY,CAAC;YACpB,CAAC,IAAI,EAAE,MAAM,CAAC;YACd,CAAC,IAAI,EAAE,eAAe,CAAC;SACxB,CAAC;QACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAC1B,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CACnE,CACF,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,mDAAmD;IACnD,MAAM,YAAY,GAAG,OAAO,KAAK,SAAS,CAAC;IAE3C,2CAA2C;IAC3C,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,uCAAuC;IACvC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,aAAa,GACjB,CAAC,OAAO,KAAK,IAAI,IAAI,eAAe,CAAC,IAAI,gBAAgB,CAAC;QAE5D,IACE,YAAY;YACZ,UAAU,KAAK,SAAS;YACxB,WAAW,KAAK,SAAS;YACzB,WAAW,KAAK,SAAS;YACzB,aAAa;YACb,CAAC,OAAO,EACR,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,sCAAsC;gBACtC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC9C,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAE9H,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,MAAM,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;YAAE,MAAM,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,QAAQ,IAAC,KAAK,EAAC,mBAAmB,EAAC,OAAO,EAAC,iBAAiB,aAE3D,KAAC,OAAO,IAAC,KAAK,EAAC,aAAa,YAC1B,KAAC,QAAQ,IAAC,KAAK,EAAE;wBACf,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE;wBACvC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE;wBAC7C,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,WAAW,EAAE;qBAC7C,GAAI,GACG,EAGV,KAAC,OAAO,IAAC,KAAK,EAAC,oBAAoB,YACjC,KAAC,SAAS,IACR,OAAO,EAAE;wBACP,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;wBACzC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;wBACzC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;wBAC5C,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;wBAC/C,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;qBACxC,EACD,IAAI,EAAE,SAAS,GACf,GACM,EAGV,MAAC,OAAO,IAAC,KAAK,EAAC,iBAAiB,aAC7B,CAAC,YAAY,IAAI,KAAC,OAAO,IAAC,KAAK,EAAC,sBAAsB,GAAG,EACzD,YAAY,IAAI,OAAO,IAAI,CAC1B,KAAC,UAAU,IAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAE,YAAY,OAAO,EAAE,GAAI,CACzD,EACA,YAAY,IAAI,CAAC,OAAO,IAAI,CAC3B,KAAC,UAAU,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,kCAAkC,GAAG,CACtE,IACO,EAGV,MAAC,OAAO,IAAC,KAAK,EAAC,gBAAgB,aAC5B,CAAC,UAAU,IAAI,KAAC,OAAO,IAAC,KAAK,EAAC,kBAAkB,GAAG,EACnD,UAAU,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;wBAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC9C,OAAO,CACL,KAAC,UAAU,IAET,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAC1B,KAAK,EAAE,EAAE;gCACP,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,OAAO,IAAI,EAAE;gCAC7B,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,KAAK,IAAI,cAAc,EAAE,EAEzD,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,IAAI,IAN3B,CAAC,CAON,CACH,CAAC;oBACJ,CAAC,CAAC,IACM,EAGT,OAAO,KAAK,IAAI,IAAI,CACnB,KAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,IAAI,EAAE,EACtB,SAAS,EAAE,YAAY,IAAI,OAAO,KAAK,IAAI,EAC3C,MAAM,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,GACtC,CACH,EACA,OAAO,KAAK,IAAI,IAAI,YAAY,IAAI,CACnC,KAAC,OAAO,IAAC,KAAK,EAAC,cAAc,YAC3B,KAAC,UAAU,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,+BAA+B,GAAG,GAC1D,CACX,EAGD,KAAC,mBAAmB,IAClB,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,GACvC,EAGF,MAAC,OAAO,IAAC,KAAK,EAAC,oBAAoB,aAChC,CAAC,WAAW,IAAI,KAAC,OAAO,IAAC,KAAK,EAAC,mBAAmB,GAAG,EACrD,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,GAAG,GAAG,IAAI,CAC9E,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,UAAU,IAAC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAE,WAAW,CAAC,GAAG,GAAI,EAClD,KAAC,QAAQ,IAAC,KAAK,EAAE;oCACf,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;oCACpD,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,UAAU,IAAI,EAAE;oCACxD,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oCAClF,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iCAC5F,GAAI,IACD,CACP,EACA,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,CACjF,KAAC,UAAU,IACT,MAAM,EAAC,MAAM,EACb,KAAK,EAAE,GAAG,WAAW,CAAC,GAAG,OAAO,WAAW,CAAC,KAAK,IAAI,QAAQ,WAAW,CAAC,MAAM,EAAE,EAAE,GACnF,CACH,IACO,EAGV,MAAC,OAAO,IAAC,KAAK,EAAC,kBAAkB,aAC9B,CAAC,WAAW,IAAI,KAAC,OAAO,IAAC,KAAK,EAAC,mBAAmB,GAAG,EACrD,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;wBAC3C,MAAM,OAAO,GAAG,aAAa,KAAK,CAAC,IAAI,EAAE,CAAC;wBAC1C,OAAO,CACL,KAAC,UAAU,IAET,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAClC,KAAK,EAAE,GAAG,OAAO,KAAK,KAAK,CAAC,KAAK,GAAG,EACpC,MAAM,EAAE,KAAK,CAAC,IAAI;gCAChB,CAAC,CAAC,SAAS,KAAK,CAAC,UAAU,KAAK;gCAChC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,QAAQ,IALtB,CAAC,CAON,CACH,CAAC;oBACJ,CAAC,CAAC,IACM,EAGT,OAAO,IAAI,CACV,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,YAC/B,KAAC,IAAI,IAAC,IAAI,QAAC,QAAQ,kBAAE,sCAAsC,GAAQ,GAC/D,CACP,EACA,MAAM,IAAI,OAAO,IAAI,CACpB,KAAC,GAAG,IAAC,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,YAChC,KAAC,IAAI,IAAC,QAAQ,yCAA0B,GACpC,CACP,IACQ,CACZ,CAAC;AACJ,CAAC;AAED,gDAAgD;AAChD,SAAS,kBAAkB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAA+D;IACrH,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAEzC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,IAAI,CAAC,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACpD,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3C,OAAO,CACL,MAAC,OAAO,IAAC,KAAK,EAAE,iBAAiB,OAAO,GAAG,aACxC,CAAC,OAAO,IAAI,KAAC,OAAO,IAAC,KAAK,EAAC,YAAY,GAAG,EAC1C,OAAO,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAC,OAAO,IAAC,KAAK,EAAC,YAAY,GAAG,EAC5E,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAC,WAAW,IAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAI,EAC9D,OAAO,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAC,OAAO,IAAC,KAAK,EAAC,YAAY,GAAG,EAC1E,OAAO,IAAI,CAAC,SAAS,IAAI,QAAQ,KAAK,CAAC,IAAI,CAC1C,KAAC,UAAU,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,qBAAqB,GAAG,CACzD,IACO,CACX,CAAC;AACJ,CAAC;AAED,iDAAiD;AACjD,SAAS,mBAAmB,CAAC,EAAE,SAAS,EAAE,MAAM,EAA8C;IAC5F,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAEhC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,IAAI,CAAC,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACpD,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3C,OAAO,CACL,MAAC,OAAO,IAAC,KAAK,EAAC,4BAA4B,aACxC,CAAC,OAAO,IAAI,KAAC,OAAO,IAAC,KAAK,EAAC,YAAY,GAAG,EAC1C,OAAO,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAC,OAAO,IAAC,KAAK,EAAC,YAAY,GAAG,EAC5E,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAC,WAAW,IAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAI,EAC9D,OAAO,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAC,OAAO,IAAC,KAAK,EAAC,YAAY,GAAG,EAC1E,OAAO,IAAI,CAAC,SAAS,IAAI,QAAQ,KAAK,CAAC,IAAI,CAC1C,KAAC,UAAU,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,sBAAsB,GAAG,CAC1D,IACO,CACX,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"DiagNetworkView.js","sourceRoot":"","sources":["../../../src/ui/views/DiagNetworkView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DockerNetworkView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/DockerNetworkView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DockerNetworkView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/DockerNetworkView.tsx"],"names":[],"mappings":"AAyBA,UAAU,sBAAsB;IAC9B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,sBAAsB,2CAsFnE"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useEffect } from 'react';
|
|
3
3
|
import { Box, Text, useInput } from 'ink';
|
|
4
4
|
import { execa } from 'execa';
|
|
5
|
-
import { AppShell, Section,
|
|
5
|
+
import { AppShell, Section, SubSection, KeyValue, DataTable, Spinner, StatusLine } from '../components/index.js';
|
|
6
6
|
import { useAsyncTask, useFinish } from '../hooks/index.js';
|
|
7
7
|
export function DockerNetworkView({ onBack }) {
|
|
8
8
|
const finish = useFinish(onBack);
|
|
@@ -17,7 +17,8 @@ export function DockerNetworkView({ onBack }) {
|
|
|
17
17
|
const { stdout } = await execa('docker', [
|
|
18
18
|
'network', 'inspect', ...ids,
|
|
19
19
|
], { stdout: 'pipe', stderr: 'pipe' });
|
|
20
|
-
|
|
20
|
+
const networks = JSON.parse(stdout);
|
|
21
|
+
return networks;
|
|
21
22
|
});
|
|
22
23
|
const networkDone = networkTask.status === 'done' || networkTask.status === 'error';
|
|
23
24
|
useEffect(() => {
|
|
@@ -29,6 +30,23 @@ export function DockerNetworkView({ onBack }) {
|
|
|
29
30
|
if (onBack && networkDone && (input === 'q' || key.escape))
|
|
30
31
|
finish();
|
|
31
32
|
});
|
|
32
|
-
return (_jsxs(AppShell, { command: "ct docker network", children: [_jsxs(Section, { title: "Docker Network Configuration", children: [networkTask.status === 'pending' && _jsx(Spinner, { label: "Inspecting networks..." }), networkTask.status === 'error' && (_jsx(StatusLine, { status: "fail", label: "Network 'ct' not found" })), networkTask.status === 'done' && networkTask.data === null && (_jsx(StatusLine, { status: "fail", label: "Network 'ct' not found" })), networkTask.status === 'done' && networkTask.data &&
|
|
33
|
+
return (_jsxs(AppShell, { command: "ct docker network", children: [_jsxs(Section, { title: "Docker Network Configuration", children: [networkTask.status === 'pending' && _jsx(Spinner, { label: "Inspecting networks..." }), networkTask.status === 'error' && (_jsx(StatusLine, { status: "fail", label: "Network 'ct' not found" })), networkTask.status === 'done' && networkTask.data === null && (_jsx(StatusLine, { status: "fail", label: "Network 'ct' not found" })), networkTask.status === 'done' && networkTask.data && networkTask.data.map((net, idx) => {
|
|
34
|
+
const ipamConfig = net.IPAM?.Config?.[0];
|
|
35
|
+
const containers = net.Containers
|
|
36
|
+
? Object.values(net.Containers).map((c) => ({
|
|
37
|
+
name: c.Name ?? 'unknown',
|
|
38
|
+
ipv4: (c.IPv4Address ?? '').replace(/\/\d+$/, ''),
|
|
39
|
+
}))
|
|
40
|
+
: [];
|
|
41
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(KeyValue, { items: [
|
|
42
|
+
{ key: 'Name', value: net.Name ?? 'unknown' },
|
|
43
|
+
{ key: 'Driver', value: net.Driver ?? 'unknown' },
|
|
44
|
+
{ key: 'Subnet', value: ipamConfig?.Subnet ?? 'N/A' },
|
|
45
|
+
{ key: 'Gateway', value: ipamConfig?.Gateway ?? 'N/A' },
|
|
46
|
+
] }), containers.length > 0 ? (_jsx(SubSection, { title: "Connected Containers", children: _jsx(DataTable, { columns: [
|
|
47
|
+
{ key: 'name', label: 'Container' },
|
|
48
|
+
{ key: 'ipv4', label: 'IPv4 Address' },
|
|
49
|
+
], rows: containers.map(c => ({ name: c.name, ipv4: c.ipv4 })) }) })) : (_jsx(SubSection, { title: "Connected Containers", children: _jsx(Text, { dimColor: true, children: " No containers connected" }) }))] }, idx));
|
|
50
|
+
})] }), onBack && networkDone && (_jsx(Box, { paddingLeft: 2, paddingTop: 1, children: _jsx(Text, { dimColor: true, children: "Press q to go back" }) }))] }));
|
|
33
51
|
}
|
|
34
52
|
//# sourceMappingURL=DockerNetworkView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DockerNetworkView.js","sourceRoot":"","sources":["../../../src/ui/views/DockerNetworkView.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"DockerNetworkView.js","sourceRoot":"","sources":["../../../src/ui/views/DockerNetworkView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DockerPruneView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/DockerPruneView.tsx"],"names":[],"mappings":"AA6CA,UAAU,oBAAoB;IAC5B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"DockerPruneView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/DockerPruneView.tsx"],"names":[],"mappings":"AA6CA,UAAU,oBAAoB;IAC5B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,2CAqD/D"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect } from 'react';
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
3
|
import { Box, Text, useInput } from 'ink';
|
|
4
4
|
import { execa } from 'execa';
|
|
5
|
-
import { AppShell, Section, StepList, Divider, StatusLine } from '../components/index.js';
|
|
5
|
+
import { AppShell, Section, StepList, Divider, StatusLine, Confirm } from '../components/index.js';
|
|
6
6
|
import { useStepRunner, useFinish } from '../hooks/index.js';
|
|
7
7
|
const steps = [
|
|
8
8
|
{
|
|
@@ -43,19 +43,26 @@ const steps = [
|
|
|
43
43
|
];
|
|
44
44
|
export function DockerPruneView({ onBack }) {
|
|
45
45
|
const finish = useFinish(onBack);
|
|
46
|
+
const [confirmed, setConfirmed] = useState(false);
|
|
46
47
|
const { states, isDone, run } = useStepRunner(steps);
|
|
47
48
|
useEffect(() => {
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
if (confirmed)
|
|
50
|
+
run();
|
|
51
|
+
}, [confirmed, run]);
|
|
50
52
|
useEffect(() => {
|
|
51
53
|
if (isDone && !onBack) {
|
|
52
54
|
finish();
|
|
53
55
|
}
|
|
54
56
|
}, [isDone, onBack, finish]);
|
|
55
57
|
useInput((input, key) => {
|
|
58
|
+
if (!confirmed && (input === 'n' || input === 'q' || key.escape))
|
|
59
|
+
finish();
|
|
56
60
|
if (onBack && isDone && (input === 'q' || key.escape))
|
|
57
61
|
finish();
|
|
58
62
|
});
|
|
59
|
-
return (_jsxs(AppShell, { command: "ct docker prune", children: [
|
|
63
|
+
return (_jsxs(AppShell, { command: "ct docker prune", children: [!confirmed && (_jsxs(Section, { title: "Docker Cleanup", children: [_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { children: "This will remove:" }), _jsx(Text, { children: " - Stopped containers" }), _jsx(Text, { children: " - Unused networks" }), _jsx(Text, { children: " - Unused volumes" }), _jsx(Text, { children: " - Unused images (older than 24h)" }), _jsx(Text, { children: " - Dangling images" })] }), _jsx(Confirm, { message: "Proceed with Docker cleanup?", onConfirm: (yes) => { if (yes)
|
|
64
|
+
setConfirmed(true);
|
|
65
|
+
else
|
|
66
|
+
finish(); } })] })), confirmed && (_jsx(Section, { title: "Docker Cleanup", children: _jsx(StepList, { steps: states }) })), isDone && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Divider, {}), _jsx(StatusLine, { status: "ok", label: "Docker cleanup complete" })] })), onBack && isDone && (_jsx(Box, { paddingLeft: 2, paddingTop: 1, children: _jsx(Text, { dimColor: true, children: "Press q to go back" }) }))] }));
|
|
60
67
|
}
|
|
61
68
|
//# sourceMappingURL=DockerPruneView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DockerPruneView.js","sourceRoot":"","sources":["../../../src/ui/views/DockerPruneView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DockerPruneView.js","sourceRoot":"","sources":["../../../src/ui/views/DockerPruneView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainMenu.d.ts","sourceRoot":"","sources":["../../../src/ui/views/MainMenu.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MainMenu.d.ts","sourceRoot":"","sources":["../../../src/ui/views/MainMenu.tsx"],"names":[],"mappings":"AA0MA,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,aAAa,2CAmSxE"}
|
|
@@ -3,7 +3,8 @@ import { useState, useCallback, useEffect } from 'react';
|
|
|
3
3
|
import { Box, Text, useInput } from 'ink';
|
|
4
4
|
import { AppShell, Spinner } from '../components/index.js';
|
|
5
5
|
import { usePolling } from '../hooks/index.js';
|
|
6
|
-
import { getServiceList, startService, stopService, restartService, } from '../../lib/services.js';
|
|
6
|
+
import { getServiceList, startService, stopService, restartService, startAllServices, stopAllServices, } from '../../lib/services.js';
|
|
7
|
+
import { healthIcon, healthColor, extractVersion, extractUptime } from '../utils/serviceDisplay.js';
|
|
7
8
|
// View imports
|
|
8
9
|
import { StatusView } from './StatusView.js';
|
|
9
10
|
import { DbStatusView } from './DbStatusView.js';
|
|
@@ -33,51 +34,7 @@ import { JtapiTroubleshootView } from './JtapiTroubleshootView.js';
|
|
|
33
34
|
import { OfflineListView } from './OfflineListView.js';
|
|
34
35
|
import { ServicesView } from './ServicesView.js';
|
|
35
36
|
import { ServiceLogsView } from './ServiceLogsView.js';
|
|
36
|
-
|
|
37
|
-
/* Health / display helpers */
|
|
38
|
-
/* ------------------------------------------------------------------ */
|
|
39
|
-
function healthIcon(health, state) {
|
|
40
|
-
if (state === 'exited' || state === 'dead')
|
|
41
|
-
return '●';
|
|
42
|
-
if (health === 'healthy')
|
|
43
|
-
return '●';
|
|
44
|
-
if (health === 'unhealthy')
|
|
45
|
-
return '●';
|
|
46
|
-
if (health === 'starting')
|
|
47
|
-
return '●';
|
|
48
|
-
if (state === 'running')
|
|
49
|
-
return '●';
|
|
50
|
-
return '○';
|
|
51
|
-
}
|
|
52
|
-
function healthColor(health, state) {
|
|
53
|
-
if (state === 'exited' || state === 'dead')
|
|
54
|
-
return 'red';
|
|
55
|
-
if (health === 'healthy')
|
|
56
|
-
return 'green';
|
|
57
|
-
if (health === 'unhealthy')
|
|
58
|
-
return 'red';
|
|
59
|
-
if (health === 'starting')
|
|
60
|
-
return 'yellow';
|
|
61
|
-
if (state === 'running')
|
|
62
|
-
return 'green';
|
|
63
|
-
return 'gray';
|
|
64
|
-
}
|
|
65
|
-
function extractVersion(image) {
|
|
66
|
-
if (!image)
|
|
67
|
-
return '';
|
|
68
|
-
return image.includes(':') ? image.split(':').pop() : image;
|
|
69
|
-
}
|
|
70
|
-
function extractUptime(status) {
|
|
71
|
-
if (!status)
|
|
72
|
-
return '';
|
|
73
|
-
const m = status.match(/Up\s+(?:About\s+)?(\d+)\s*(second|minute|hour|day|week|month)/i);
|
|
74
|
-
if (!m) {
|
|
75
|
-
if (status.toLowerCase().startsWith('exited'))
|
|
76
|
-
return 'exited';
|
|
77
|
-
return status.replace(/\s*\(.*\)/, '').trim();
|
|
78
|
-
}
|
|
79
|
-
return `${m[1]}${m[2].charAt(0)}`;
|
|
80
|
-
}
|
|
37
|
+
import { UpdateView } from './UpdateView.js';
|
|
81
38
|
/* ------------------------------------------------------------------ */
|
|
82
39
|
/* Menu definition */
|
|
83
40
|
/* ------------------------------------------------------------------ */
|
|
@@ -216,6 +173,7 @@ const VIEW_MAP = {
|
|
|
216
173
|
'jtapi troubleshoot': (onBack) => _jsx(JtapiTroubleshootView, { onBack: onBack }),
|
|
217
174
|
'offline list': (onBack) => _jsx(OfflineListView, { onBack: onBack }),
|
|
218
175
|
'services': (onBack) => _jsx(ServicesView, { onBack: onBack }),
|
|
176
|
+
'update': (onBack) => _jsx(UpdateView, { onBack: onBack }),
|
|
219
177
|
};
|
|
220
178
|
/* ------------------------------------------------------------------ */
|
|
221
179
|
/* Main component */
|
|
@@ -234,6 +192,7 @@ export function MainMenu({ version, onCliCommand, onExit }) {
|
|
|
234
192
|
const [menuCursor, setMenuCursor] = useState(0);
|
|
235
193
|
const [menuStack, setMenuStack] = useState([]);
|
|
236
194
|
const [actionLabel, setActionLabel] = useState('');
|
|
195
|
+
const [actionError, setActionError] = useState(null);
|
|
237
196
|
const [logsService, setLogsService] = useState(null);
|
|
238
197
|
const { data: services, stop: stopPolling, start: startPolling } = usePolling(getServiceList, 5000, false);
|
|
239
198
|
// Control polling based on phase — only poll when on home screen
|
|
@@ -253,10 +212,13 @@ export function MainMenu({ version, onCliCommand, onExit }) {
|
|
|
253
212
|
const executeAction = useCallback(async (label, fn) => {
|
|
254
213
|
setPhase('action');
|
|
255
214
|
setActionLabel(label);
|
|
215
|
+
setActionError(null);
|
|
256
216
|
try {
|
|
257
217
|
await fn();
|
|
258
218
|
}
|
|
259
|
-
catch {
|
|
219
|
+
catch (err) {
|
|
220
|
+
setActionError(err instanceof Error ? err.message : String(err));
|
|
221
|
+
}
|
|
260
222
|
setPhase('home');
|
|
261
223
|
}, []);
|
|
262
224
|
// Build menu display items
|
|
@@ -277,7 +239,14 @@ export function MainMenu({ version, onCliCommand, onExit }) {
|
|
|
277
239
|
if (zone === 'services') {
|
|
278
240
|
const count = serviceList.length;
|
|
279
241
|
if (key.upArrow) {
|
|
280
|
-
|
|
242
|
+
if (serviceCursor > 0) {
|
|
243
|
+
setServiceCursor(prev => prev - 1);
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
// Wrap to bottom of menu
|
|
247
|
+
setZone('menu');
|
|
248
|
+
setMenuCursor(menuDisplayItems.length - 1);
|
|
249
|
+
}
|
|
281
250
|
}
|
|
282
251
|
else if (key.downArrow) {
|
|
283
252
|
if (serviceCursor < count - 1) {
|
|
@@ -304,6 +273,12 @@ export function MainMenu({ version, onCliCommand, onExit }) {
|
|
|
304
273
|
if (svc)
|
|
305
274
|
executeAction(`Restarting ${svc.service}...`, () => restartService(svc.service).then(() => { }));
|
|
306
275
|
}
|
|
276
|
+
else if (input === 'a') {
|
|
277
|
+
executeAction('Starting all services...', () => startAllServices().then(() => { }));
|
|
278
|
+
}
|
|
279
|
+
else if (input === 'X') {
|
|
280
|
+
executeAction('Stopping all services...', () => stopAllServices().then(() => { }));
|
|
281
|
+
}
|
|
307
282
|
else if (input === 'l' || key.return) {
|
|
308
283
|
const svc = serviceList[serviceCursor];
|
|
309
284
|
if (svc) {
|
|
@@ -312,7 +287,9 @@ export function MainMenu({ version, onCliCommand, onExit }) {
|
|
|
312
287
|
}
|
|
313
288
|
}
|
|
314
289
|
else if (input === 'q' || key.escape) {
|
|
315
|
-
|
|
290
|
+
// Drop back to menu zone
|
|
291
|
+
setZone('menu');
|
|
292
|
+
setMenuCursor(0);
|
|
316
293
|
}
|
|
317
294
|
}
|
|
318
295
|
else {
|
|
@@ -328,7 +305,14 @@ export function MainMenu({ version, onCliCommand, onExit }) {
|
|
|
328
305
|
}
|
|
329
306
|
}
|
|
330
307
|
else if (key.downArrow) {
|
|
331
|
-
|
|
308
|
+
if (menuCursor < menuDisplayItems.length - 1) {
|
|
309
|
+
setMenuCursor(prev => prev + 1);
|
|
310
|
+
}
|
|
311
|
+
else if (serviceList.length > 0) {
|
|
312
|
+
// Wrap to top of services
|
|
313
|
+
setZone('services');
|
|
314
|
+
setServiceCursor(0);
|
|
315
|
+
}
|
|
332
316
|
}
|
|
333
317
|
else if (key.return) {
|
|
334
318
|
const selected = menuDisplayItems[menuCursor];
|
|
@@ -338,7 +322,19 @@ export function MainMenu({ version, onCliCommand, onExit }) {
|
|
|
338
322
|
setMenuStack(prev => prev.slice(0, -1));
|
|
339
323
|
setMenuCursor(0);
|
|
340
324
|
}
|
|
341
|
-
else if (selected.item?.children && selected.item.children.length
|
|
325
|
+
else if (selected.item?.children && selected.item.children.length === 1) {
|
|
326
|
+
// Single child — skip submenu, go directly to the child's view
|
|
327
|
+
const child = selected.item.children[0];
|
|
328
|
+
const cmd = child.value;
|
|
329
|
+
if (VIEW_MAP[cmd]) {
|
|
330
|
+
setActiveView(cmd);
|
|
331
|
+
setPhase('view');
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
onCliCommand(cmd);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
else if (selected.item?.children && selected.item.children.length > 1) {
|
|
342
338
|
setMenuStack(prev => [...prev, selected.item.children]);
|
|
343
339
|
setMenuCursor(0);
|
|
344
340
|
}
|
|
@@ -393,17 +389,17 @@ export function MainMenu({ version, onCliCommand, onExit }) {
|
|
|
393
389
|
const healthyCount = serviceList.filter(s => s.health === 'healthy').length;
|
|
394
390
|
const stoppedCount = serviceList.filter(s => s.state === 'exited' || s.state === 'dead').length;
|
|
395
391
|
const inServiceZone = zone === 'services' && serviceList.length > 0;
|
|
396
|
-
return (_jsxs(
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
392
|
+
return (_jsxs(AppShell, { title: `CallTelemetry CLI v${version}`, children: [_jsx(Box, { paddingLeft: 1, marginBottom: 1, children: _jsx(Text, { color: "cyan", children: LOGO }) }), !services && (_jsx(Box, { paddingLeft: 2, marginBottom: 1, children: _jsx(Spinner, { label: "Loading services..." }) })), serviceList.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Box, { paddingLeft: 2, marginBottom: 1, children: _jsxs(Text, { children: [_jsx(Text, { bold: true, children: serviceList.length }), _jsx(Text, { children: " containers" }), runningCount > 0 && _jsxs(Text, { color: "green", children: [" \u2014 ", runningCount, " running"] }), healthyCount > 0 && _jsxs(Text, { color: "green", children: [" (", healthyCount, " healthy)"] }), stoppedCount > 0 && _jsxs(Text, { color: "red", children: [" \u2014 ", stoppedCount, " stopped"] })] }) }), _jsxs(Box, { paddingLeft: 2, children: [_jsx(Text, { dimColor: true, bold: true, children: ' '.padEnd(3) }), _jsx(Text, { dimColor: true, bold: true, children: 'Service'.padEnd(svcWidth) }), _jsx(Text, { dimColor: true, bold: true, children: 'Version'.padEnd(verWidth) }), _jsx(Text, { dimColor: true, bold: true, children: 'Uptime' })] }), serviceList.map((svc, i) => {
|
|
393
|
+
const isActive = zone === 'services' && i === serviceCursor;
|
|
394
|
+
const icon = healthIcon(svc.health, svc.state);
|
|
395
|
+
const color = healthColor(svc.health, svc.state);
|
|
396
|
+
return (_jsxs(Box, { paddingLeft: 2, children: [_jsx(Text, { color: isActive ? 'cyan' : color, children: isActive ? ' ❯ ' : ` ${icon} ` }), _jsx(Text, { color: isActive ? 'cyan' : undefined, bold: isActive, children: svc.service.padEnd(svcWidth) }), _jsx(Text, { color: isActive ? 'cyan' : undefined, dimColor: !isActive, children: extractVersion(svc.image).padEnd(verWidth) }), _jsx(Text, { color: isActive ? 'cyan' : undefined, dimColor: !isActive, children: extractUptime(svc.status) })] }, svc.service));
|
|
397
|
+
}), _jsx(Box, { paddingLeft: 2, paddingTop: 1, children: _jsx(Text, { dimColor: true, children: '─'.repeat(60) }) })] })), actionError && (_jsx(Box, { paddingLeft: 2, children: _jsxs(Text, { color: "red", children: ["Error: ", actionError] }) })), _jsx(Box, { flexDirection: "column", paddingLeft: 2, paddingTop: serviceList.length > 0 ? 0 : 1, children: menuDisplayItems.map((entry, i) => {
|
|
398
|
+
const isActive = zone === 'menu' && i === menuCursor;
|
|
399
|
+
const prefix = isActive ? '❯' : ' ';
|
|
400
|
+
return (_jsxs(Box, { children: [_jsx(Text, { color: isActive ? 'cyan' : undefined, bold: isActive, children: `${prefix} ${entry.label.padEnd(16)}` }), _jsx(Text, { dimColor: true, children: entry.description })] }, `menu-${i}`));
|
|
401
|
+
}) }), _jsx(Box, { paddingLeft: 2, paddingTop: 1, children: _jsx(Text, { dimColor: true, children: inServiceZone
|
|
402
|
+
? '↑↓ Navigate Enter/l Logs s Start x Stop r Restart a Start All X Stop All q/Esc Menu'
|
|
403
|
+
: '↑↓ Navigate Enter Select q Quit' }) })] }));
|
|
408
404
|
}
|
|
409
405
|
//# sourceMappingURL=MainMenu.js.map
|