ssh-picker 0.1.2 → 0.2.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/README.md +26 -1
- package/dist/cli/index.js +134 -17
- package/dist/cli/index.js.map +1 -1
- package/dist/import-export/archive.d.ts +3 -2
- package/dist/import-export/archive.js +49 -9
- package/dist/import-export/archive.js.map +1 -1
- package/dist/import-export/hostImport.d.ts +7 -0
- package/dist/import-export/hostImport.js +176 -0
- package/dist/import-export/hostImport.js.map +1 -0
- package/dist/sftp/client.d.ts +12 -4
- package/dist/sftp/client.js +52 -23
- package/dist/sftp/client.js.map +1 -1
- package/dist/ssh/client.d.ts +3 -0
- package/dist/ssh/client.js +68 -15
- package/dist/ssh/client.js.map +1 -1
- package/dist/tui/App.d.ts +5 -1
- package/dist/tui/App.js +102 -14
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/screens/Dashboard.d.ts +18 -1
- package/dist/tui/screens/Dashboard.js +242 -13
- package/dist/tui/screens/Dashboard.js.map +1 -1
- package/dist/tui/screens/FileManager.d.ts +2 -1
- package/dist/tui/screens/FileManager.js +206 -36
- package/dist/tui/screens/FileManager.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useState } from 'react';
|
|
2
|
+
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
3
3
|
import { Box, Text, useApp, useInput } from 'ink';
|
|
4
4
|
import { cwd } from 'node:process';
|
|
5
5
|
import { dirname, join, posix } from 'node:path';
|
|
6
6
|
import { listLocalDirectory, SftpClient } from '../../sftp/client.js';
|
|
7
7
|
import { decryptServerCredentials } from '../../shared/credentials.js';
|
|
8
8
|
import { toFriendlyMessage } from '../../shared/errors.js';
|
|
9
|
-
export function FileManager({ server, vault, onBack }) {
|
|
9
|
+
export function FileManager({ server, vault, onBack, exitOnBack = false }) {
|
|
10
10
|
const { exit } = useApp();
|
|
11
11
|
const [pane, setPane] = useState('local');
|
|
12
12
|
const [localPath, setLocalPath] = useState(cwd());
|
|
@@ -18,63 +18,164 @@ export function FileManager({ server, vault, onBack }) {
|
|
|
18
18
|
const [status, setStatus] = useState('Connecting SFTP...');
|
|
19
19
|
const [client, setClient] = useState(null);
|
|
20
20
|
const [pendingTransfer, setPendingTransfer] = useState(null);
|
|
21
|
+
const [remoteLoading, setRemoteLoading] = useState(true);
|
|
22
|
+
const [searching, setSearching] = useState(false);
|
|
23
|
+
const [localQuery, setLocalQuery] = useState('');
|
|
24
|
+
const [remoteQuery, setRemoteQuery] = useState('');
|
|
25
|
+
const [spinner, setSpinner] = useState(0);
|
|
26
|
+
const [activeTransfer, setActiveTransfer] = useState(null);
|
|
27
|
+
const mounted = useRef(true);
|
|
28
|
+
const remoteRequest = useRef(0);
|
|
29
|
+
const localFiltered = useMemo(() => filterEntries(localEntries, localQuery), [localEntries, localQuery]);
|
|
30
|
+
const remoteFiltered = useMemo(() => filterEntries(remoteEntries, remoteQuery), [remoteEntries, remoteQuery]);
|
|
31
|
+
const activeQuery = pane === 'local' ? localQuery : remoteQuery;
|
|
32
|
+
const setActiveQuery = pane === 'local' ? setLocalQuery : setRemoteQuery;
|
|
33
|
+
const safeSetStatus = (message) => {
|
|
34
|
+
if (mounted.current)
|
|
35
|
+
setStatus(message);
|
|
36
|
+
};
|
|
37
|
+
const safeSetTransfer = (progress) => {
|
|
38
|
+
if (!mounted.current)
|
|
39
|
+
return;
|
|
40
|
+
setActiveTransfer((current) => ({ ...progress, startedAt: current?.startedAt ?? Date.now() }));
|
|
41
|
+
};
|
|
21
42
|
const refreshLocal = () => {
|
|
22
43
|
try {
|
|
23
44
|
setLocalEntries(listLocalDirectory(localPath));
|
|
24
45
|
}
|
|
25
46
|
catch (error) {
|
|
26
|
-
|
|
47
|
+
safeSetStatus(toFriendlyMessage(error));
|
|
27
48
|
}
|
|
28
49
|
};
|
|
29
|
-
const refreshRemote = async (activeClient = client) => {
|
|
30
|
-
if (!
|
|
50
|
+
const refreshRemote = async (activeClient = client, path = remotePath) => {
|
|
51
|
+
if (!mounted.current)
|
|
52
|
+
return;
|
|
53
|
+
if (!activeClient) {
|
|
54
|
+
setRemoteLoading(true);
|
|
55
|
+
safeSetStatus('Connecting SFTP...');
|
|
31
56
|
return;
|
|
57
|
+
}
|
|
58
|
+
const requestId = ++remoteRequest.current;
|
|
59
|
+
setRemoteLoading(true);
|
|
60
|
+
safeSetStatus(`Loading remote ${path}...`);
|
|
32
61
|
try {
|
|
33
|
-
|
|
34
|
-
|
|
62
|
+
const entries = await activeClient.listRemoteDirectory(path);
|
|
63
|
+
if (!mounted.current || requestId !== remoteRequest.current)
|
|
64
|
+
return;
|
|
65
|
+
setRemoteEntries(entries);
|
|
66
|
+
setRemoteSelected(0);
|
|
67
|
+
safeSetStatus('Ready');
|
|
35
68
|
}
|
|
36
69
|
catch (error) {
|
|
37
|
-
|
|
70
|
+
if (!mounted.current || requestId !== remoteRequest.current)
|
|
71
|
+
return;
|
|
72
|
+
setRemoteEntries([]);
|
|
73
|
+
safeSetStatus(toFriendlyMessage(error));
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
if (mounted.current && requestId === remoteRequest.current)
|
|
77
|
+
setRemoteLoading(false);
|
|
38
78
|
}
|
|
39
79
|
};
|
|
40
|
-
useEffect(() => {
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
return () => {
|
|
82
|
+
mounted.current = false;
|
|
83
|
+
remoteRequest.current++;
|
|
84
|
+
};
|
|
85
|
+
}, []);
|
|
86
|
+
useEffect(() => {
|
|
87
|
+
setLocalQuery('');
|
|
88
|
+
refreshLocal();
|
|
89
|
+
}, [localPath]);
|
|
41
90
|
useEffect(() => {
|
|
42
91
|
const next = new SftpClient();
|
|
43
92
|
next.connect({ server, credentials: decryptServerCredentials(server, vault) })
|
|
44
|
-
.then(() => {
|
|
45
|
-
.
|
|
46
|
-
|
|
47
|
-
|
|
93
|
+
.then(() => {
|
|
94
|
+
if (!mounted.current)
|
|
95
|
+
return;
|
|
96
|
+
setClient(next);
|
|
97
|
+
})
|
|
98
|
+
.catch((error) => {
|
|
99
|
+
if (!mounted.current)
|
|
100
|
+
return;
|
|
101
|
+
setRemoteLoading(false);
|
|
102
|
+
safeSetStatus(toFriendlyMessage(error));
|
|
103
|
+
});
|
|
104
|
+
return () => {
|
|
105
|
+
next.close();
|
|
106
|
+
};
|
|
48
107
|
}, []);
|
|
49
|
-
useEffect(() => {
|
|
108
|
+
useEffect(() => {
|
|
109
|
+
setRemoteQuery('');
|
|
110
|
+
void refreshRemote(client, remotePath);
|
|
111
|
+
}, [remotePath, client]);
|
|
112
|
+
useEffect(() => {
|
|
113
|
+
if (!remoteLoading && !activeTransfer)
|
|
114
|
+
return;
|
|
115
|
+
const timer = setInterval(() => setSpinner((value) => value + 1), 120);
|
|
116
|
+
return () => clearInterval(timer);
|
|
117
|
+
}, [remoteLoading, activeTransfer]);
|
|
50
118
|
useInput((input, key) => {
|
|
51
|
-
const entries = pane === 'local' ?
|
|
52
|
-
const selected = pane === 'local' ? localSelected : remoteSelected;
|
|
119
|
+
const entries = pane === 'local' ? localFiltered : remoteFiltered;
|
|
120
|
+
const selected = pane === 'local' ? Math.min(localSelected, Math.max(0, localFiltered.length - 1)) : Math.min(remoteSelected, Math.max(0, remoteFiltered.length - 1));
|
|
53
121
|
const setSelected = pane === 'local' ? setLocalSelected : setRemoteSelected;
|
|
54
122
|
const current = entries[selected];
|
|
55
123
|
if (pendingTransfer) {
|
|
56
124
|
if ((input === 'y' || input === 'Y') && client) {
|
|
57
125
|
const pending = pendingTransfer;
|
|
58
126
|
setPendingTransfer(null);
|
|
59
|
-
|
|
127
|
+
setActiveTransfer({ action: pending.action, path: pending.entry.path, bytesTransferred: 0, totalBytes: pending.entry.size, startedAt: Date.now() });
|
|
128
|
+
safeSetStatus(`${pending.action === 'upload' ? 'Uploading' : 'Downloading'} ${pending.entry.name}...`);
|
|
60
129
|
const task = pending.action === 'upload'
|
|
61
|
-
? client.uploadRecursive(pending.entry.path, pending.target, true).then(() => {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
130
|
+
? client.uploadRecursive(pending.entry.path, pending.target, true, safeSetTransfer).then(() => {
|
|
131
|
+
safeSetTransfer({ action: 'upload', path: pending.entry.path, bytesTransferred: pending.entry.size, totalBytes: pending.entry.size, done: true });
|
|
132
|
+
safeSetStatus('Upload complete');
|
|
133
|
+
void refreshRemote();
|
|
134
|
+
})
|
|
135
|
+
: (pending.entry.isDirectory ? client.downloadRecursive(pending.entry.path, pending.target, true, safeSetTransfer) : client.downloadFile(pending.entry.path, pending.target, true, safeSetTransfer))
|
|
136
|
+
.then(() => {
|
|
137
|
+
safeSetTransfer({ action: 'download', path: pending.entry.path, bytesTransferred: pending.entry.size, totalBytes: pending.entry.size, done: true });
|
|
138
|
+
safeSetStatus('Download complete');
|
|
139
|
+
refreshLocal();
|
|
140
|
+
});
|
|
141
|
+
task.catch((error) => safeSetStatus(toFriendlyMessage(error)));
|
|
65
142
|
}
|
|
66
143
|
else if (input === 'n' || input === 'N' || key.escape) {
|
|
67
144
|
setPendingTransfer(null);
|
|
68
|
-
|
|
145
|
+
safeSetStatus('Transfer cancelled');
|
|
69
146
|
}
|
|
70
147
|
return;
|
|
71
148
|
}
|
|
72
|
-
if (
|
|
73
|
-
|
|
149
|
+
if (searching) {
|
|
150
|
+
if (key.return || key.escape)
|
|
151
|
+
setSearching(false);
|
|
152
|
+
else if (key.backspace || key.delete)
|
|
153
|
+
setActiveQuery((value) => value.slice(0, -1));
|
|
154
|
+
else if (input)
|
|
155
|
+
setActiveQuery((value) => value + input);
|
|
156
|
+
setSelected(0);
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
if (key.tab) {
|
|
160
|
+
setPane((value) => {
|
|
161
|
+
const nextPane = value === 'local' ? 'remote' : 'local';
|
|
162
|
+
if (nextPane === 'remote' && !remoteLoading && remoteEntries.length === 0)
|
|
163
|
+
void refreshRemote();
|
|
164
|
+
return nextPane;
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
if (input === '/') {
|
|
168
|
+
setSearching(true);
|
|
169
|
+
setSelected(0);
|
|
170
|
+
}
|
|
74
171
|
if (key.upArrow)
|
|
75
172
|
setSelected((value) => Math.max(0, value - 1));
|
|
76
173
|
if (key.downArrow)
|
|
77
174
|
setSelected((value) => Math.min(Math.max(0, entries.length - 1), value + 1));
|
|
175
|
+
if (key.pageUp)
|
|
176
|
+
setSelected((value) => Math.max(0, value - 10));
|
|
177
|
+
if (key.pageDown)
|
|
178
|
+
setSelected((value) => Math.min(Math.max(0, entries.length - 1), value + 10));
|
|
78
179
|
if (key.return && current?.isDirectory) {
|
|
79
180
|
if (pane === 'local') {
|
|
80
181
|
setLocalPath(current.path);
|
|
@@ -85,36 +186,105 @@ export function FileManager({ server, vault, onBack }) {
|
|
|
85
186
|
setRemoteSelected(0);
|
|
86
187
|
}
|
|
87
188
|
}
|
|
88
|
-
if (key.backspace) {
|
|
189
|
+
if (key.backspace || key.delete || key.leftArrow) {
|
|
89
190
|
if (pane === 'local')
|
|
90
191
|
setLocalPath(dirname(localPath));
|
|
91
192
|
else
|
|
92
|
-
setRemotePath(
|
|
193
|
+
setRemotePath(parentRemotePath(remotePath));
|
|
93
194
|
}
|
|
94
195
|
if (input === 'r' || input === 'R') {
|
|
95
196
|
refreshLocal();
|
|
96
197
|
void refreshRemote();
|
|
97
198
|
}
|
|
98
|
-
if ((input === 'u' || input === 'U') && client &&
|
|
99
|
-
const entry =
|
|
199
|
+
if ((input === 'u' || input === 'U') && client && localFiltered[Math.min(localSelected, Math.max(0, localFiltered.length - 1))]) {
|
|
200
|
+
const entry = localFiltered[Math.min(localSelected, Math.max(0, localFiltered.length - 1))];
|
|
100
201
|
const target = remotePath.replace(/\/$/, '') + '/' + entry.name;
|
|
101
202
|
setPendingTransfer({ action: 'upload', entry, target });
|
|
102
|
-
|
|
203
|
+
safeSetStatus(`Upload ${entry.isDirectory ? 'folder' : 'file'} "${entry.name}" from local to ${target}? Press Y to confirm, N to cancel.`);
|
|
103
204
|
}
|
|
104
|
-
if ((input === 'd' || input === 'D') && client &&
|
|
105
|
-
const entry =
|
|
205
|
+
if ((input === 'd' || input === 'D') && client && remoteFiltered[Math.min(remoteSelected, Math.max(0, remoteFiltered.length - 1))]) {
|
|
206
|
+
const entry = remoteFiltered[Math.min(remoteSelected, Math.max(0, remoteFiltered.length - 1))];
|
|
106
207
|
const target = join(localPath, entry.name);
|
|
107
208
|
setPendingTransfer({ action: 'download', entry, target });
|
|
108
|
-
|
|
209
|
+
safeSetStatus(`Download ${entry.isDirectory ? 'folder' : 'file'} "${entry.name}" from remote to ${target}? Press Y to confirm, N to cancel.`);
|
|
109
210
|
}
|
|
110
211
|
if (input === 'q' || input === 'Q' || key.escape) {
|
|
111
212
|
onBack();
|
|
112
|
-
|
|
213
|
+
if (exitOnBack)
|
|
214
|
+
exit();
|
|
113
215
|
}
|
|
114
216
|
});
|
|
115
|
-
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", paddingX: 1, children: [_jsxs(Text, { bold: true, children: ["Files: ", server.name] }), _jsxs(Text, { children: ["Local: ", localPath] }), _jsxs(Text, { children: ["Remote: ", remotePath] }), _jsxs(Box, { marginTop: 1, children: [_jsx(PaneView, { title: "Local files", active: pane === 'local', entries:
|
|
217
|
+
return (_jsxs(Box, { flexDirection: "column", borderStyle: "round", paddingX: 1, children: [_jsxs(Box, { justifyContent: "space-between", children: [_jsxs(Text, { bold: true, color: "cyan", children: ["Files: ", server.name] }), _jsx(Text, { dimColor: true, children: pane === 'local' ? 'Local pane' : 'Remote pane' })] }), _jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "Local:" }), " ", localPath] }), _jsxs(Text, { children: [_jsx(Text, { dimColor: true, children: "Remote:" }), " ", remotePath] }), _jsxs(Box, { marginTop: 1, children: [_jsx(PaneView, { title: "Local files", role: "download target", active: pane === 'local', entries: localFiltered, selected: localSelected, query: localQuery }), _jsx(PaneView, { title: "Remote files", role: "server source", active: pane === 'remote', entries: remoteFiltered, selected: remoteSelected, query: remoteQuery, loading: remoteLoading, spinner: spinner })] }), activeTransfer ? _jsx(TransferView, { transfer: activeTransfer, spinner: spinner }) : null, _jsx(ActionBar, { pane: pane, searching: searching, pending: Boolean(pendingTransfer) }), _jsx(SearchBar, { pane: pane, searching: searching, query: activeQuery }), _jsx(Text, { color: status === 'Ready' ? 'green' : 'yellow', children: status })] }));
|
|
218
|
+
}
|
|
219
|
+
function PaneView({ title, role, active, entries, selected, query, loading = false, spinner = 0 }) {
|
|
220
|
+
const height = 15;
|
|
221
|
+
const visibleSelected = Math.min(selected, Math.max(0, entries.length - 1));
|
|
222
|
+
const start = Math.min(Math.max(0, visibleSelected - Math.floor(height / 2)), Math.max(0, entries.length - height));
|
|
223
|
+
const visibleEntries = entries.slice(start, start + height);
|
|
224
|
+
const range = entries.length === 0 ? '0/0' : `${start + 1}-${start + visibleEntries.length}/${entries.length}`;
|
|
225
|
+
return _jsxs(Box, { width: "50%", flexDirection: "column", borderStyle: "single", borderColor: active ? 'cyan' : 'gray', paddingX: 1, children: [_jsxs(Text, { bold: true, color: active ? 'cyan' : undefined, children: [title, " ", _jsxs(Text, { dimColor: true, children: [role, " ", range, query ? ` /${query}` : ''] })] }), loading ? _jsxs(Text, { color: "yellow", children: [spinnerFrame(spinner), " Loading remote..."] }) : null, !loading && entries.length === 0 ? _jsx(Text, { dimColor: true, children: "Empty" }) : null, !loading && visibleEntries.map((entry, index) => {
|
|
226
|
+
const absoluteIndex = start + index;
|
|
227
|
+
return (_jsxs(Text, { color: absoluteIndex === visibleSelected ? 'cyan' : undefined, children: [absoluteIndex === visibleSelected ? '› ' : ' ', entry.name, entry.isDirectory ? '/' : ''] }, entry.path));
|
|
228
|
+
})] });
|
|
229
|
+
}
|
|
230
|
+
function ActionBar({ pane, searching, pending }) {
|
|
231
|
+
if (pending)
|
|
232
|
+
return _jsx(Text, { dimColor: true, children: "Y confirm N cancel Esc cancel" });
|
|
233
|
+
if (searching)
|
|
234
|
+
return _jsx(Text, { dimColor: true, children: "Type to filter Backspace delete Enter apply Esc close search" });
|
|
235
|
+
return pane === 'remote'
|
|
236
|
+
? _jsx(Text, { dimColor: true, children: "Enter open D download / search remote Backspace/Left up Tab local R refresh Q back" })
|
|
237
|
+
: _jsx(Text, { dimColor: true, children: "Enter open U upload / search local Backspace/Left up Tab remote R refresh Q back" });
|
|
238
|
+
}
|
|
239
|
+
function SearchBar({ pane, searching, query }) {
|
|
240
|
+
const label = pane === 'remote' ? 'Search remote' : 'Search local';
|
|
241
|
+
if (searching)
|
|
242
|
+
return _jsxs(Text, { color: "cyan", children: [label, ": ", query, "\u2588 ", _jsx(Text, { dimColor: true, children: "Enter apply Esc close" })] });
|
|
243
|
+
return _jsxs(Text, { dimColor: true, children: [label, ": ", query ? `/${query}` : 'press /'] });
|
|
244
|
+
}
|
|
245
|
+
function TransferView({ transfer, spinner }) {
|
|
246
|
+
const total = transfer.totalBytes ?? 0;
|
|
247
|
+
const percent = total > 0 ? Math.min(100, Math.round((transfer.bytesTransferred / total) * 100)) : 0;
|
|
248
|
+
const label = transfer.action === 'upload' ? 'Uploading' : 'Downloading';
|
|
249
|
+
const color = transfer.done ? 'green' : 'yellow';
|
|
250
|
+
return _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { color: color, children: [transfer.done ? 'Done' : spinnerFrame(spinner), " ", label, ": ", basenameDisplay(transfer.path)] }), _jsxs(Text, { color: color, children: [progressBar(percent), " ", total > 0 ? `${percent}% ${formatBytes(transfer.bytesTransferred)} / ${formatBytes(total)}` : `${formatBytes(transfer.bytesTransferred)}`] })] });
|
|
251
|
+
}
|
|
252
|
+
function progressBar(percent) {
|
|
253
|
+
const width = 24;
|
|
254
|
+
const filled = Math.round((percent / 100) * width);
|
|
255
|
+
return `[${'#'.repeat(filled)}${'-'.repeat(width - filled)}]`;
|
|
256
|
+
}
|
|
257
|
+
function spinnerFrame(index) {
|
|
258
|
+
return ['-', '\\', '|', '/'][index % 4] ?? '-';
|
|
259
|
+
}
|
|
260
|
+
function formatBytes(bytes) {
|
|
261
|
+
if (bytes < 1024)
|
|
262
|
+
return `${bytes} B`;
|
|
263
|
+
const units = ['KB', 'MB', 'GB', 'TB'];
|
|
264
|
+
let value = bytes / 1024;
|
|
265
|
+
let unit = units[0];
|
|
266
|
+
for (let index = 1; value >= 1024 && index < units.length; index++) {
|
|
267
|
+
value /= 1024;
|
|
268
|
+
unit = units[index];
|
|
269
|
+
}
|
|
270
|
+
return `${value.toFixed(value >= 10 ? 1 : 2)} ${unit}`;
|
|
271
|
+
}
|
|
272
|
+
function basenameDisplay(path) {
|
|
273
|
+
const normalized = path.replace(/\\/g, '/');
|
|
274
|
+
return normalized.split('/').filter(Boolean).pop() ?? path;
|
|
275
|
+
}
|
|
276
|
+
function filterEntries(entries, query) {
|
|
277
|
+
const q = query.trim().toLowerCase();
|
|
278
|
+
if (!q)
|
|
279
|
+
return entries;
|
|
280
|
+
return entries.filter((entry) => entry.name.toLowerCase().includes(q));
|
|
116
281
|
}
|
|
117
|
-
function
|
|
118
|
-
|
|
282
|
+
function parentRemotePath(path) {
|
|
283
|
+
const trimmed = path.trim();
|
|
284
|
+
if (!trimmed || trimmed === '.' || trimmed === '/')
|
|
285
|
+
return trimmed.startsWith('/') ? '/' : '.';
|
|
286
|
+
const normalized = trimmed.replace(/\/+$/, '');
|
|
287
|
+
const parent = posix.dirname(normalized);
|
|
288
|
+
return normalized.startsWith('/') && parent === '.' ? '/' : parent;
|
|
119
289
|
}
|
|
120
290
|
//# sourceMappingURL=FileManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileManager.js","sourceRoot":"","sources":["../../../src/tui/screens/FileManager.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FileManager.js","sourceRoot":"","sources":["../../../src/tui/screens/FileManager.tsx"],"names":[],"mappings":"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"}
|