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.
@@ -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
- setStatus(toFriendlyMessage(error));
47
+ safeSetStatus(toFriendlyMessage(error));
27
48
  }
28
49
  };
29
- const refreshRemote = async (activeClient = client) => {
30
- if (!activeClient)
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
- setRemoteEntries(await activeClient.listRemoteDirectory(remotePath));
34
- setStatus('Ready');
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
- setStatus(toFriendlyMessage(error));
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(() => { refreshLocal(); }, [localPath]);
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(() => { setClient(next); setStatus('Ready'); return next.listRemoteDirectory(remotePath); })
45
- .then(setRemoteEntries)
46
- .catch((error) => setStatus(toFriendlyMessage(error)));
47
- return () => next.close();
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(() => { void refreshRemote(); }, [remotePath, client]);
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' ? localEntries : remoteEntries;
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
- setStatus(`${pending.action === 'upload' ? 'Uploading' : 'Downloading'} ${pending.entry.name}...`);
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(() => { setStatus('Upload complete'); void refreshRemote(); })
62
- : (pending.entry.isDirectory ? client.downloadRecursive(pending.entry.path, pending.target, true) : client.downloadFile(pending.entry.path, pending.target, true))
63
- .then(() => { setStatus('Download complete'); refreshLocal(); });
64
- task.catch((error) => setStatus(toFriendlyMessage(error)));
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
- setStatus('Transfer cancelled');
145
+ safeSetStatus('Transfer cancelled');
69
146
  }
70
147
  return;
71
148
  }
72
- if (key.tab)
73
- setPane((value) => value === 'local' ? 'remote' : 'local');
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(posix.dirname(remotePath));
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 && localEntries[localSelected]) {
99
- const entry = localEntries[localSelected];
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
- setStatus(`Upload ${entry.name} to ${target}? Press Y to confirm overwrite, N to cancel.`);
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 && remoteEntries[remoteSelected]) {
105
- const entry = remoteEntries[remoteSelected];
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
- setStatus(`Download ${entry.name} to ${target}? Press Y to confirm overwrite, N to cancel.`);
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
- exit();
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: localEntries, selected: localSelected }), _jsx(PaneView, { title: "Remote files", active: pane === 'remote', entries: remoteEntries, selected: remoteSelected })] }), _jsx(Text, { dimColor: true, children: "Tab pane Enter open Backspace up U upload D download R refresh Q quit" }), _jsx(Text, { color: status === 'Ready' ? 'green' : 'yellow', children: status })] }));
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 PaneView({ title, active, entries, selected }) {
118
- return _jsxs(Box, { width: "50%", flexDirection: "column", borderStyle: active ? 'single' : undefined, paddingX: 1, children: [_jsx(Text, { bold: true, color: active ? 'cyan' : undefined, children: title }), entries.slice(0, 15).map((entry, index) => _jsxs(Text, { color: index === selected ? 'cyan' : undefined, children: [index === selected ? '› ' : ' ', entry.name, entry.isDirectory ? '/' : ''] }, entry.path))] });
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ssh-picker",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "SSHP - a portable encrypted SSH/SFTP picker for the terminal.",
5
5
  "type": "module",
6
6
  "license": "MIT",