@lemoncat7/dsh-ssh 1.6.0 → 1.8.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/ARCHITECTURE.md +9 -0
- package/README.md +18 -2
- package/docs/dialog-consistency.md +26 -0
- package/docs/releases/1.7.0.md +11 -0
- package/docs/releases/1.8.0.md +13 -0
- package/lib/activity-panel.d.ts.map +1 -1
- package/lib/activity-panel.js +14 -8
- package/lib/activity-panel.js.map +1 -1
- package/lib/adaptive-workspace.d.ts.map +1 -1
- package/lib/adaptive-workspace.js +5 -2
- package/lib/adaptive-workspace.js.map +1 -1
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +17 -1
- package/lib/api.js.map +1 -1
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +320 -188
- package/lib/client.js.map +4 -4
- package/lib/commands-panel.d.ts.map +1 -1
- package/lib/commands-panel.js +28 -11
- package/lib/commands-panel.js.map +1 -1
- package/lib/confirmation-dialog.d.ts +12 -0
- package/lib/confirmation-dialog.d.ts.map +1 -0
- package/lib/confirmation-dialog.js +41 -0
- package/lib/confirmation-dialog.js.map +1 -0
- package/lib/connector.d.ts.map +1 -1
- package/lib/connector.js +6 -4
- package/lib/connector.js.map +1 -1
- package/lib/docked-panel-compat.d.ts +1 -1
- package/lib/docked-panel-compat.d.ts.map +1 -1
- package/lib/docked-panel-compat.js +3 -2
- package/lib/docked-panel-compat.js.map +1 -1
- package/lib/domain.d.ts +8 -0
- package/lib/domain.d.ts.map +1 -1
- package/lib/domain.js.map +1 -1
- package/lib/file-entry-delete-dialog.d.ts.map +1 -1
- package/lib/file-entry-delete-dialog.js +5 -2
- package/lib/file-entry-delete-dialog.js.map +1 -1
- package/lib/file-transfer-workspace.d.ts.map +1 -1
- package/lib/file-transfer-workspace.js +48 -30
- package/lib/file-transfer-workspace.js.map +1 -1
- package/lib/ftp-profile-editor.d.ts.map +1 -1
- package/lib/ftp-profile-editor.js +19 -12
- package/lib/ftp-profile-editor.js.map +1 -1
- package/lib/gist-sync.d.ts +4 -2
- package/lib/gist-sync.d.ts.map +1 -1
- package/lib/gist-sync.js +49 -12
- package/lib/gist-sync.js.map +1 -1
- package/lib/group-proxy-editor.d.ts +10 -0
- package/lib/group-proxy-editor.d.ts.map +1 -0
- package/lib/group-proxy-editor.js +33 -0
- package/lib/group-proxy-editor.js.map +1 -0
- package/lib/group-proxy.d.ts +7 -0
- package/lib/group-proxy.d.ts.map +1 -0
- package/lib/group-proxy.js +29 -0
- package/lib/group-proxy.js.map +1 -0
- package/lib/html-file-preview.d.ts.map +1 -1
- package/lib/html-file-preview.js +4 -1
- package/lib/html-file-preview.js.map +1 -1
- package/lib/i18n.d.ts +17 -0
- package/lib/i18n.d.ts.map +1 -0
- package/lib/i18n.js +36 -0
- package/lib/i18n.js.map +1 -0
- package/lib/locales/messages.d.ts +2726 -0
- package/lib/locales/messages.d.ts.map +1 -0
- package/lib/locales/messages.js +2689 -0
- package/lib/locales/messages.js.map +1 -0
- package/lib/markdown-preview-editor.d.ts.map +1 -1
- package/lib/markdown-preview-editor.js +7 -1
- package/lib/markdown-preview-editor.js.map +1 -1
- package/lib/native-directory-button.d.ts.map +1 -1
- package/lib/native-directory-button.js +6 -3
- package/lib/native-directory-button.js.map +1 -1
- package/lib/preview-refresh-control.d.ts.map +1 -1
- package/lib/preview-refresh-control.js +4 -1
- package/lib/preview-refresh-control.js.map +1 -1
- package/lib/profile-editor.d.ts.map +1 -1
- package/lib/profile-editor.js +14 -8
- package/lib/profile-editor.js.map +1 -1
- package/lib/project-session-dialog.d.ts.map +1 -1
- package/lib/project-session-dialog.js +7 -4
- package/lib/project-session-dialog.js.map +1 -1
- package/lib/remote-path-input.d.ts.map +1 -1
- package/lib/remote-path-input.js +10 -7
- package/lib/remote-path-input.js.map +1 -1
- package/lib/remote-workspace-tree.d.ts +1 -0
- package/lib/remote-workspace-tree.d.ts.map +1 -1
- package/lib/remote-workspace-tree.js +19 -21
- package/lib/remote-workspace-tree.js.map +1 -1
- package/lib/resizable-split.d.ts.map +1 -1
- package/lib/resizable-split.js +4 -1
- package/lib/resizable-split.js.map +1 -1
- package/lib/sftp-client.d.ts +2 -1
- package/lib/sftp-client.d.ts.map +1 -1
- package/lib/sftp-client.js +55 -31
- package/lib/sftp-client.js.map +1 -1
- package/lib/ssh-locale-binding.d.ts +9 -0
- package/lib/ssh-locale-binding.d.ts.map +1 -0
- package/lib/ssh-locale-binding.js +29 -0
- package/lib/ssh-locale-binding.js.map +1 -0
- package/lib/store.d.ts +4 -0
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +13 -0
- package/lib/store.js.map +1 -1
- package/lib/terminal-bootstrap-echo.d.ts +15 -0
- package/lib/terminal-bootstrap-echo.d.ts.map +1 -0
- package/lib/terminal-bootstrap-echo.js +62 -0
- package/lib/terminal-bootstrap-echo.js.map +1 -0
- package/lib/terminal-directory.d.ts +3 -0
- package/lib/terminal-directory.d.ts.map +1 -0
- package/lib/terminal-directory.js +28 -0
- package/lib/terminal-directory.js.map +1 -0
- package/lib/terminal-session.d.ts +2 -1
- package/lib/terminal-session.d.ts.map +1 -1
- package/lib/terminal-session.js +22 -7
- package/lib/terminal-session.js.map +1 -1
- package/lib/terminal-shell-integration.d.ts +6 -0
- package/lib/terminal-shell-integration.d.ts.map +1 -0
- package/lib/terminal-shell-integration.js +53 -0
- package/lib/terminal-shell-integration.js.map +1 -0
- package/lib/terminal-workspace.d.ts +2 -1
- package/lib/terminal-workspace.d.ts.map +1 -1
- package/lib/terminal-workspace.js +10 -5
- package/lib/terminal-workspace.js.map +1 -1
- package/lib/terminal.d.ts +4 -0
- package/lib/terminal.d.ts.map +1 -1
- package/lib/terminal.js +31 -1
- package/lib/terminal.js.map +1 -1
- package/lib/ui-components.d.ts +3 -1
- package/lib/ui-components.d.ts.map +1 -1
- package/lib/ui-components.js +19 -10
- package/lib/ui-components.js.map +1 -1
- package/lib/use-file-preview.d.ts.map +1 -1
- package/lib/use-file-preview.js +2 -1
- package/lib/use-file-preview.js.map +1 -1
- package/lib/use-markdown-draft.d.ts.map +1 -1
- package/lib/use-markdown-draft.js +6 -5
- package/lib/use-markdown-draft.js.map +1 -1
- package/lib/use-ssh-locale.d.ts +4 -0
- package/lib/use-ssh-locale.d.ts.map +1 -0
- package/lib/use-ssh-locale.js +7 -0
- package/lib/use-ssh-locale.js.map +1 -0
- package/lib/use-workspace-refresh.d.ts +3 -0
- package/lib/use-workspace-refresh.d.ts.map +1 -0
- package/lib/use-workspace-refresh.js +44 -0
- package/lib/use-workspace-refresh.js.map +1 -0
- package/lib/workspace-refresh.d.ts +14 -0
- package/lib/workspace-refresh.d.ts.map +1 -0
- package/lib/workspace-refresh.js +36 -0
- package/lib/workspace-refresh.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useSshLocale } from './use-ssh-locale.js';
|
|
3
|
+
import { t } from './i18n.js';
|
|
2
4
|
import { useMemo, useState } from 'react';
|
|
3
|
-
import { IconChevronLeftOutline14, IconDataOutline16, IconPlusOutline16, IconTrashOutline16,
|
|
5
|
+
import { IconChevronLeftOutline14, IconDataOutline16, IconPlusOutline16, IconTrashOutline16, } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
4
6
|
import { api } from './client-api.js';
|
|
5
7
|
import { Dialog, Field, SuggestionInput, errorMessage } from './ui-components.js';
|
|
6
8
|
export function FtpConnectionsDialog({ profiles, vaultEntries, proxyEntries, onClose, onChanged }) {
|
|
9
|
+
useSshLocale();
|
|
7
10
|
const [editing, setEditing] = useState();
|
|
8
11
|
const [deleting, setDeleting] = useState();
|
|
9
12
|
const [error, setError] = useState();
|
|
@@ -22,18 +25,22 @@ export function FtpConnectionsDialog({ profiles, vaultEntries, proxyEntries, onC
|
|
|
22
25
|
setError(errorMessage(reason));
|
|
23
26
|
}
|
|
24
27
|
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
if (deleting !== undefined)
|
|
29
|
+
return _jsx(DeleteConnection, { profile: deleting, error: error, onBack: () => setDeleting(undefined), onDelete: () => remove(deleting) }, deleting.id);
|
|
30
|
+
return _jsx(Dialog, { className: "dsh-ssh-ftp-manager-dialog", title: t("file-transfer-workspace.fileConnections"), subtitle: t("ftp-profile-editor.manageFtpAndFtpsSftpReusesExistingSshHosts"), onClose: onClose, children: _jsxs("div", { className: `dsh-ssh-ftp-manager${detailOpen ? ' has-detail' : ''}`, children: [_jsxs("aside", { className: "dsh-ssh-ftp-manager-list", children: [_jsxs("header", { children: [_jsxs("span", { children: [_jsx("strong", { children: "FTP / FTPS" }), _jsxs("small", { children: [profiles.length, " ", t("client.connections")] })] }), _jsxs("button", { type: "button", className: "dsh-ssh-primary-button", onClick: create, children: [_jsx(IconPlusOutline16, { size: 15 }), t("ftp-profile-editor.new")] })] }), profiles.length === 0 ? _jsxs("div", { className: "dsh-ssh-ftp-list-empty", children: [_jsx("span", { children: _jsx(IconDataOutline16, { size: 20 }) }), _jsx("strong", { children: t("ftp-profile-editor.noStandaloneFileConnectionsYet") }), _jsx("p", { children: t("ftp-profile-editor.sftpAppearsInTheFilePaneSConnectionList") }), _jsx("button", { type: "button", className: "dsh-ssh-secondary-button", onClick: create, children: t("ftp-profile-editor.newFtpsConnection") })] }) : _jsx("div", { className: "dsh-ssh-ftp-profile-list", role: "list", children: profiles.map(profile => {
|
|
31
|
+
const active = editing !== 'new' && editing?.id === profile.id;
|
|
32
|
+
return _jsxs("article", { role: "listitem", "data-ssh-interactive": "choice", "aria-selected": active, className: active ? 'is-active' : '', children: [_jsxs("button", { type: "button", className: "dsh-ssh-ftp-profile-main", onClick: () => select(profile), children: [_jsx("span", { className: `dsh-ssh-protocol-badge is-${profile.protocol}`, children: protocolLabel(profile.protocol) }), _jsxs("span", { children: [_jsx("strong", { title: profile.name, children: profile.name }), _jsxs("small", { title: `${profile.username}@${profile.host}:${profile.port}`, children: [profile.username, "@", profile.host, ":", profile.port] })] }), _jsx("i", { className: (profile.authMode === 'anonymous' || profile.credential.configured) ? 'is-ready' : 'is-missing', children: profile.authMode === 'anonymous' ? t("ftp-profile-editor.anonymous") : profile.credential.configured ? t("client.available") : t("ftp-profile-editor.missingPassword") })] }), _jsx("button", { type: "button", className: "dsh-ssh-icon-button is-danger", "aria-label": t("client.delete2", [profile.name]), onClick: () => confirmDelete(profile), children: _jsx(IconTrashOutline16, { size: 15 }) })] }, profile.id);
|
|
33
|
+
}) })] }), _jsx("main", { className: "dsh-ssh-ftp-manager-detail", children: editing !== undefined ? _jsx(FtpProfileEditor, { value: editing === 'new' ? undefined : editing, profiles: profiles, vaultEntries: vaultEntries, proxyEntries: proxyEntries, onBack: () => setEditing(undefined), onSaved: () => { setEditing(undefined); onChanged(); } }, editing === 'new' ? 'new' : editing.id)
|
|
34
|
+
: _jsxs("div", { className: "dsh-ssh-ftp-manager-overview", children: [_jsx("span", { children: _jsx(IconDataOutline16, { size: 22 }) }), _jsx("h3", { children: t("ftp-profile-editor.selectAConnectionToEdit") }), _jsx("p", { children: t("ftp-profile-editor.theFilePaneCombinesFtpFtpsAndSftpFrom") }), _jsxs("dl", { children: [_jsxs("div", { children: [_jsx("dt", { children: "FTPS" }), _jsx("dd", { children: t("ftp-profile-editor.encryptsControlAndFileDataCertificatesStrictlyValidatedBy") })] }), _jsxs("div", { children: [_jsx("dt", { children: "FTP" }), _jsx("dd", { children: t("ftp-profile-editor.compatibleWithLegacyServersButCredentialsAndFileContent") })] }), _jsxs("div", { children: [_jsx("dt", { children: "SFTP" }), _jsx("dd", { children: t("ftp-profile-editor.managedBySshHostsNoNeedToConfigureIt") })] })] })] }) })] }) });
|
|
31
35
|
}
|
|
32
36
|
function DeleteConnection({ profile, error, onBack, onDelete }) {
|
|
37
|
+
useSshLocale();
|
|
33
38
|
const [deleting, setDeleting] = useState(false);
|
|
34
|
-
return _jsxs(
|
|
39
|
+
return _jsxs(Dialog, { variant: "confirmation", dismissible: !deleting, title: t('client.delete2', [profile.name]), subtitle: t("ftp-profile-editor.thisRemovesTheFtpFtpsConnectionAndItsSeparately"), onClose: () => { if (!deleting)
|
|
40
|
+
onBack(); }, children: [_jsxs("p", { className: "dsh-ssh-confirmation-target", children: [profile.username, "@", profile.host, ":", profile.port] }), error && _jsx("p", { className: "dsh-ssh-inline-error", role: "alert", children: error }), _jsxs("div", { className: "dsh-ssh-dialog-actions", children: [_jsx("button", { type: "button", className: "dsh-ssh-secondary-button", onClick: onBack, disabled: deleting, children: t("client.cancel") }), _jsx("button", { type: "button", className: "dsh-ssh-danger-button", disabled: deleting, onClick: () => { setDeleting(true); void onDelete().finally(() => setDeleting(false)); }, children: deleting ? t("file-entry-delete-dialog.deleting") : t("ftp-profile-editor.deleteConnection") })] })] });
|
|
35
41
|
}
|
|
36
42
|
function FtpProfileEditor({ value, profiles, vaultEntries, proxyEntries, onBack, onSaved }) {
|
|
43
|
+
const sshLocale = useSshLocale();
|
|
37
44
|
const passwordEntries = vaultEntries.filter(entry => entry.authType === 'password');
|
|
38
45
|
const [form, setForm] = useState({
|
|
39
46
|
authMode: value?.authMode ?? 'password',
|
|
@@ -75,7 +82,7 @@ function FtpProfileEditor({ value, profiles, vaultEntries, proxyEntries, onBack,
|
|
|
75
82
|
setTestResult(undefined);
|
|
76
83
|
try {
|
|
77
84
|
await api('/ftp-profiles/test-draft', { method: 'POST', body: JSON.stringify({ ...payload(), ...(value === undefined ? {} : { profileId: value.id }) }) });
|
|
78
|
-
setTestResult(
|
|
85
|
+
setTestResult(t("ftp-profile-editor.connectedInitialDirectoryIsReadable"));
|
|
79
86
|
}
|
|
80
87
|
catch (reason) {
|
|
81
88
|
setError(errorMessage(reason));
|
|
@@ -85,9 +92,9 @@ function FtpProfileEditor({ value, profiles, vaultEntries, proxyEntries, onBack,
|
|
|
85
92
|
}
|
|
86
93
|
};
|
|
87
94
|
const protocolChanged = (protocol) => setForm(current => ({ ...current, protocol, port: current.port === '21' || current.port === '990' ? String(protocol === 'ftps-implicit' ? 990 : 21) : current.port }));
|
|
88
|
-
const groupOptions = useMemo(() => profiles.flatMap(item => item.group === undefined ? [] : [item.group]), [profiles]);
|
|
89
|
-
const tagOptions = useMemo(() => profiles.flatMap(item => item.tags), [profiles]);
|
|
90
|
-
return _jsxs("form", { className: "dsh-ssh-ftp-editor-form", onSubmit: event => { void submit(event); }, children: [_jsxs("header", { className: "dsh-ssh-ftp-editor-heading", children: [_jsxs("button", { type: "button", className: "dsh-ssh-ftp-detail-back", onClick: onBack, children: [_jsx(IconChevronLeftOutline14, { size: 14 }), "
|
|
95
|
+
const groupOptions = useMemo(() => profiles.flatMap(item => item.group === undefined ? [] : [item.group]), [profiles, sshLocale]);
|
|
96
|
+
const tagOptions = useMemo(() => profiles.flatMap(item => item.tags), [profiles, sshLocale]);
|
|
97
|
+
return _jsxs("form", { className: "dsh-ssh-ftp-editor-form", onSubmit: event => { void submit(event); }, children: [_jsxs("header", { className: "dsh-ssh-ftp-editor-heading", children: [_jsxs("button", { type: "button", className: "dsh-ssh-ftp-detail-back", onClick: onBack, children: [_jsx(IconChevronLeftOutline14, { size: 14 }), t("file-transfer-workspace.backToConnectionList")] }), _jsxs("span", { children: [_jsx("strong", { children: value === undefined ? t("ftp-profile-editor.newFileConnection") : value.name }), _jsx("small", { children: value === undefined ? t("ftp-profile-editor.enterServerAndAuthenticationDetails") : t("ftp-profile-editor.afterEditsTestBeforeSaving") })] })] }), _jsxs("div", { className: "dsh-ssh-ftp-editor-scroll", children: [_jsxs("section", { className: "dsh-ssh-ftp-editor-section", children: [_jsxs("div", { className: "dsh-ssh-form-section-heading", children: [_jsx("strong", { children: t("ftp-profile-editor.connectionType") }), _jsx("small", { children: t("ftp-profile-editor.preferFtpsChooseFtpOnlyWhenTheServerLacks") })] }), _jsx("div", { className: "dsh-ssh-ftp-protocol-options", role: "radiogroup", "aria-label": t("ftp-profile-editor.connectionProtocol"), children: [['ftps-explicit', 'FTPS', t("ftp-profile-editor.explicitTlsRecommended")], ['ftps-implicit', 'FTPS-I', t("ftp-profile-editor.implicitTls")], ['ftp', 'FTP', t("ftp-profile-editor.unencrypted")]].map(option => _jsxs("button", { type: "button", "data-ssh-interactive": "choice", role: "radio", "aria-checked": form.protocol === option[0], className: form.protocol === option[0] ? 'is-active' : '', onClick: () => protocolChanged(option[0]), children: [_jsx("span", { className: `dsh-ssh-protocol-badge is-${option[0]}`, children: option[1] }), _jsxs("span", { children: [_jsx("strong", { children: option[1] }), _jsx("small", { children: option[2] })] })] }, option[0])) }), form.protocol === 'ftp' && _jsx("p", { className: "dsh-ssh-form-warning", children: t("ftp-profile-editor.plainFtpSendsYourAccountPasswordAndFileContent") })] }), _jsxs("section", { className: "dsh-ssh-ftp-editor-section", children: [_jsxs("div", { className: "dsh-ssh-form-section-heading", children: [_jsx("strong", { children: t("ftp-profile-editor.server") }), _jsx("small", { children: t("ftp-profile-editor.theNameAppearsInTheConnectionListGroupsAnd") })] }), _jsxs("div", { className: "dsh-ssh-form-grid", children: [_jsx(Field, { label: t("ftp-profile-editor.connectionName"), children: _jsx("input", { autoFocus: value === undefined, required: true, maxLength: 80, value: form.name, onChange: event => setForm({ ...form, name: event.target.value }) }) }), _jsx(Field, { label: t("ftp-profile-editor.groupOptional"), children: _jsx(SuggestionInput, { ariaLabel: t("ftp-profile-editor.ftpGroups"), maxLength: 64, options: groupOptions, placeholder: t("ftp-profile-editor.selectAnExistingGroupOrEnterANewOne"), value: form.group, onChange: group => setForm(current => ({ ...current, group })) }) })] }), _jsxs("div", { className: "dsh-ssh-form-grid is-host", children: [_jsx(Field, { label: t("ftp-profile-editor.serverAddress"), children: _jsx("input", { required: true, maxLength: 253, spellCheck: false, value: form.host, onChange: event => setForm({ ...form, host: event.target.value }) }) }), _jsx(Field, { label: t("ftp-profile-editor.port"), children: _jsx("input", { required: true, type: "number", min: "1", max: "65535", value: form.port, onChange: event => setForm({ ...form, port: event.target.value }) }) })] }), _jsx(Field, { label: t("ftp-profile-editor.tagsOptional"), hint: t("ftp-profile-editor.pickExistingTagsOrTypeNewOnesSeparateMultiple"), children: _jsx(SuggestionInput, { ariaLabel: t("ftp-profile-editor.ftpTags"), multiple: true, options: tagOptions, placeholder: t("ftp-profile-editor.selectOrEnterTags"), value: form.tags, onChange: tags => setForm(current => ({ ...current, tags })) }) })] }), _jsxs("section", { className: "dsh-ssh-ftp-editor-section", children: [_jsxs("div", { className: "dsh-ssh-form-section-heading", children: [_jsx("strong", { children: t("ftp-profile-editor.authentication") }), _jsx("small", { children: t("ftp-profile-editor.thePasswordIsWrittenOnlyToTheDshCredential") })] }), _jsx(Field, { label: t("ftp-profile-editor.signInMethod"), children: _jsxs("select", { value: form.authMode, onChange: event => { setForm({ ...form, authMode: event.target.value }); setTestResult(undefined); }, children: [_jsx("option", { value: "password", children: t("ftp-profile-editor.usernameAndPassword") }), _jsx("option", { value: "anonymous", children: t("ftp-profile-editor.anonymous") })] }) }), form.authMode === 'anonymous' ? _jsx("p", { children: t("ftp-profile-editor.signInAsAnonymousWithoutEnteringCredentialsTheServer") }) : _jsxs(_Fragment, { children: [_jsxs("div", { className: "dsh-ssh-form-grid", children: [_jsx(Field, { label: t("client.username"), children: _jsx("input", { required: true, maxLength: 128, autoComplete: "username", value: form.username, onChange: event => setForm({ ...form, username: event.target.value }) }) }), _jsx(Field, { label: t("ftp-profile-editor.credentialSource"), children: _jsxs("select", { value: form.credentialId, onChange: event => setForm({ ...form, credentialId: event.target.value }), children: [_jsx("option", { value: "", children: t("ftp-profile-editor.saveThePasswordWithThisConnectionOnly") }), passwordEntries.map(entry => _jsxs("option", { value: entry.id, children: [entry.name, " \u00B7 ", entry.username] }, entry.id))] }) })] }), !form.credentialId && _jsx(Field, { label: t("client.password"), hint: value?.credential.configured && value.credential.source === 'profile' ? t("client.savedLeaveBlankToKeepUnchanged") : t("ftp-profile-editor.notEchoedAfterSaving"), children: _jsx("input", { required: value === undefined || value.credential.source !== 'profile' || !value.credential.configured, type: "password", autoComplete: "new-password", value: form.password, onChange: event => setForm({ ...form, password: event.target.value }) }) })] })] }), _jsxs("section", { className: "dsh-ssh-ftp-editor-section", children: [_jsxs("div", { className: "dsh-ssh-form-section-heading", children: [_jsx("strong", { children: t("ftp-profile-editor.pathAndNetwork") }), _jsx("small", { children: t("ftp-profile-editor.proxyReusesTheSshPluginSProxyLibraryControl") })] }), _jsxs("div", { className: "dsh-ssh-form-grid", children: [_jsx(Field, { label: t("ftp-profile-editor.initialDirectory"), children: _jsx("input", { required: true, maxLength: 4096, spellCheck: false, value: form.initialPath, onChange: event => setForm({ ...form, initialPath: event.target.value }) }) }), _jsx(Field, { label: t("ftp-profile-editor.connectionProxy"), children: _jsxs("select", { value: form.proxyId, onChange: event => setForm({ ...form, proxyId: event.target.value }), children: [_jsx("option", { value: "", children: t("client.direct") }), proxyEntries.map(entry => _jsxs("option", { value: entry.id, children: [entry.name, " \u00B7 ", entry.proxyType.toUpperCase()] }, entry.id))] }) })] }), _jsxs("details", { className: "dsh-ssh-form-advanced", children: [_jsx("summary", { children: t("ftp-profile-editor.advancedConnectionSettings") }), _jsxs("div", { className: "dsh-ssh-form-grid", children: [_jsx(Field, { label: t("ftp-profile-editor.connectionTimeoutMs"), children: _jsx("input", { required: true, type: "number", min: "1000", max: "120000", step: "1000", value: form.connectTimeoutMs, onChange: event => setForm({ ...form, connectTimeoutMs: event.target.value }) }) }), _jsx(Field, { label: t("ftp-profile-editor.tlsServerName"), hint: t("ftp-profile-editor.fillInWhenTheCertificateNameDiffersFromThe"), children: _jsx("input", { maxLength: 253, spellCheck: false, value: form.tlsServerName, onChange: event => setForm({ ...form, tlsServerName: event.target.value }) }) })] })] })] }), testResult && _jsx("p", { className: "dsh-ssh-inline-success", role: "status", children: testResult }), error && _jsx("p", { className: "dsh-ssh-inline-error", role: "alert", children: error })] }), _jsxs("footer", { className: "dsh-ssh-ftp-editor-actions", children: [_jsx("button", { type: "button", className: "dsh-ssh-secondary-button", onClick: () => { void test(); }, disabled: testing || saving, children: testing ? t("ftp-profile-editor.testing") : t("client.testConnection") }), _jsx("span", {}), _jsx("button", { type: "button", className: "dsh-ssh-secondary-button", onClick: onBack, disabled: saving || testing, children: t("client.cancel") }), _jsx("button", { type: "submit", className: "dsh-ssh-primary-button", disabled: saving || testing, children: saving ? t("client.saving") : t("ftp-profile-editor.saveConnection") })] })] });
|
|
91
98
|
}
|
|
92
99
|
function protocolLabel(protocol) { return protocol === 'ftp' ? 'FTP' : protocol === 'ftps-explicit' ? 'FTPS' : 'FTPS-I'; }
|
|
93
100
|
//# sourceMappingURL=ftp-profile-editor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ftp-profile-editor.js","sourceRoot":"","sources":["../src/ftp-profile-editor.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ftp-profile-editor.js","sourceRoot":"","sources":["../src/ftp-profile-editor.tsx"],"names":[],"mappings":"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"}
|
package/lib/gist-sync.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { type CredentialProvider } from '@deepseek-ai/dsh-credentials';
|
|
2
|
-
import { type CredentialEntry, type FtpProfile, type ProxyEntry, type RemoteProject, type SshProfile, type SshCredentialPayload, type SshState } from './domain.js';
|
|
2
|
+
import { type CredentialEntry, type FtpProfile, type ProxyEntry, type RemoteProject, type SshProfile, type SshCredentialPayload, type SshState, type SavedCommand, type GroupProxy } from './domain.js';
|
|
3
3
|
import { SshCredentialVault } from './credentials.js';
|
|
4
4
|
import { type GitHubDeviceFlowStart, type GitHubDeviceFlowStatus } from './github-device-auth.js';
|
|
5
5
|
import { SshStore } from './store.js';
|
|
6
|
-
declare const COLLECTION_NAMES: readonly ["profiles", "ftpProfiles", "remoteProjects", "credentialEntries", "proxyEntries"];
|
|
6
|
+
declare const COLLECTION_NAMES: readonly ["profiles", "ftpProfiles", "remoteProjects", "credentialEntries", "proxyEntries", "commands", "groupProxies"];
|
|
7
7
|
export type GistSyncStrategy = 'smart' | 'local-first' | 'cloud-first';
|
|
8
8
|
type CollectionName = typeof COLLECTION_NAMES[number];
|
|
9
9
|
type SecretScope = 'ssh-profile' | 'ftp-profile' | 'vault-entry' | 'proxy-entry';
|
|
@@ -38,6 +38,8 @@ export interface PortableSshSnapshot {
|
|
|
38
38
|
remoteProjects: RemoteProject[];
|
|
39
39
|
credentialEntries: CredentialEntry[];
|
|
40
40
|
proxyEntries: ProxyEntry[];
|
|
41
|
+
commands?: SavedCommand[];
|
|
42
|
+
groupProxies?: GroupProxy[];
|
|
41
43
|
};
|
|
42
44
|
tombstones: Record<CollectionName, Record<string, number>>;
|
|
43
45
|
secrets: EncryptedSecretRecord[];
|
package/lib/gist-sync.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gist-sync.d.ts","sourceRoot":"","sources":["../src/gist-sync.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,kBAAkB,EAAoB,MAAM,8BAA8B,CAAA;AACvG,OAAO,EAML,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"gist-sync.d.ts","sourceRoot":"","sources":["../src/gist-sync.ts"],"names":[],"mappings":"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"}
|
package/lib/gist-sync.js
CHANGED
|
@@ -5,13 +5,15 @@ import { credentialKey } from '@deepseek-ai/dsh-credentials';
|
|
|
5
5
|
import { normalizeCredentialEntryDraft, normalizeFtpProfileDraft, normalizeProfileDraft, normalizeProxyEntryDraft, normalizeRemoteProjectDraft, } from './domain.js';
|
|
6
6
|
import { GitHubDeviceAuthService } from './github-device-auth.js';
|
|
7
7
|
import { createGitHubHttpTransport } from './github-http.js';
|
|
8
|
+
import { commandDraft } from './commands.js';
|
|
9
|
+
import { parseGroupProxy } from './group-proxy.js';
|
|
8
10
|
const MAIN_FILE = 'dsh-ssh.config.json';
|
|
9
11
|
const BACKUP_PREFIX = 'dsh-ssh.backup.';
|
|
10
12
|
const MAX_GIST_BYTES = 1_048_576;
|
|
11
13
|
const AUTO_SYNC_DELAY_MS = 3_000;
|
|
12
14
|
const AUTO_PULL_INTERVAL_MS = 5 * 60_000;
|
|
13
15
|
const GIST_CREDENTIAL_SCOPE = 'dsh-ssh-gist-sync';
|
|
14
|
-
const COLLECTION_NAMES = ['profiles', 'ftpProfiles', 'remoteProjects', 'credentialEntries', 'proxyEntries'];
|
|
16
|
+
const COLLECTION_NAMES = ['profiles', 'ftpProfiles', 'remoteProjects', 'credentialEntries', 'proxyEntries', 'commands', 'groupProxies'];
|
|
15
17
|
export class GitHubApiError extends Error {
|
|
16
18
|
status;
|
|
17
19
|
detail;
|
|
@@ -329,6 +331,15 @@ export class GistSyncService {
|
|
|
329
331
|
return this.view();
|
|
330
332
|
}
|
|
331
333
|
const remote = parsePortableSnapshot(content);
|
|
334
|
+
const missingCollections = ['commands', 'groupProxies'].filter(name => remote.collections[name] === undefined);
|
|
335
|
+
const legacyRemote = missingCollections.length ? structuredClone(remote) : undefined;
|
|
336
|
+
for (const name of missingCollections) {
|
|
337
|
+
// Missing means an old client/backup, not an explicit deletion.
|
|
338
|
+
;
|
|
339
|
+
remote.collections[name] = structuredClone(local.collections[name] ?? []);
|
|
340
|
+
remote.tombstones[name] = { ...local.tombstones[name] };
|
|
341
|
+
}
|
|
342
|
+
assertPortableReferences(remote.collections);
|
|
332
343
|
const remoteDigest = snapshotDigest(remote);
|
|
333
344
|
const isFreshEmptyDevice = this.metadata.lastSyncedDigest === undefined
|
|
334
345
|
&& !snapshotHasPortableData(local)
|
|
@@ -337,19 +348,23 @@ export class GistSyncService {
|
|
|
337
348
|
? 'remote'
|
|
338
349
|
: resolveSyncDecision(localDigest, remoteDigest, this.metadata.lastSyncedDigest, this.metadata.settings.strategy);
|
|
339
350
|
if (decision === 'unchanged') {
|
|
351
|
+
if (legacyRemote)
|
|
352
|
+
gist = await this.writeMain(client, gist, remote, legacyRemote);
|
|
340
353
|
this.complete(remote, remoteDigest, 'unchanged', gist.version, generation);
|
|
341
354
|
}
|
|
342
355
|
else if (decision === 'remote') {
|
|
343
356
|
if (localDigest !== remoteDigest)
|
|
344
357
|
gist = await this.writeBackup(client, gist, local);
|
|
358
|
+
if (legacyRemote)
|
|
359
|
+
gist = await this.writeMain(client, gist, remote, legacyRemote);
|
|
345
360
|
await this.apply(remote, passphrase);
|
|
346
361
|
this.complete(remote, remoteDigest, 'downloaded', gist.version, generation);
|
|
347
362
|
}
|
|
348
363
|
else {
|
|
349
364
|
const result = decision === 'merge' ? mergePortableSnapshots(local, remote, this.metadata.deviceId) : local;
|
|
350
365
|
const resultDigest = snapshotDigest(result);
|
|
351
|
-
if (remoteDigest !== resultDigest) {
|
|
352
|
-
gist = await this.writeMain(client, gist, result, remote);
|
|
366
|
+
if (legacyRemote || remoteDigest !== resultDigest) {
|
|
367
|
+
gist = await this.writeMain(client, gist, result, legacyRemote ?? remote);
|
|
353
368
|
}
|
|
354
369
|
if (localDigest !== resultDigest)
|
|
355
370
|
await this.apply(result, passphrase);
|
|
@@ -449,11 +464,17 @@ export class GistSyncService {
|
|
|
449
464
|
state.remoteProjects = structuredClone(snapshot.collections.remoteProjects);
|
|
450
465
|
state.credentialEntries = structuredClone(snapshot.collections.credentialEntries);
|
|
451
466
|
state.proxyEntries = structuredClone(snapshot.collections.proxyEntries);
|
|
467
|
+
if (snapshot.collections.commands !== undefined)
|
|
468
|
+
state.commands = structuredClone(snapshot.collections.commands);
|
|
469
|
+
if (snapshot.collections.groupProxies !== undefined)
|
|
470
|
+
state.groupProxies = structuredClone(snapshot.collections.groupProxies);
|
|
452
471
|
});
|
|
453
472
|
await this.replaceSecrets(previous, snapshot, secrets);
|
|
454
473
|
}
|
|
455
474
|
finally {
|
|
456
475
|
this.applying = false;
|
|
476
|
+
// Credential replacement may finish after a UI reader sees the durable collections.
|
|
477
|
+
this.store.markWorkspaceChanged();
|
|
457
478
|
}
|
|
458
479
|
}
|
|
459
480
|
async replaceSecrets(previous, snapshot, secrets) {
|
|
@@ -504,14 +525,14 @@ export class GistSyncService {
|
|
|
504
525
|
let changed = false;
|
|
505
526
|
const now = Date.now();
|
|
506
527
|
for (const name of COLLECTION_NAMES) {
|
|
507
|
-
const previousIds = new Set(previous[name].map(item => item.id));
|
|
508
|
-
const nextIds = new Set(next[name].map(item => item.id));
|
|
528
|
+
const previousIds = new Set((previous[name] ?? []).map(item => item.id));
|
|
529
|
+
const nextIds = new Set((next[name] ?? []).map(item => item.id));
|
|
509
530
|
for (const id of previousIds)
|
|
510
531
|
if (!nextIds.has(id)) {
|
|
511
532
|
this.metadata.tombstones[name][id] = now;
|
|
512
533
|
changed = true;
|
|
513
534
|
}
|
|
514
|
-
if (!changed && snapshotCollectionDigest(previous[name]) !== snapshotCollectionDigest(next[name]))
|
|
535
|
+
if (!changed && snapshotCollectionDigest(previous[name] ?? []) !== snapshotCollectionDigest(next[name] ?? []))
|
|
515
536
|
changed = true;
|
|
516
537
|
}
|
|
517
538
|
if (!changed)
|
|
@@ -566,6 +587,8 @@ export function createPortableSnapshot(state, deviceId, tombstones = emptyTombst
|
|
|
566
587
|
remoteProjects: sortItems(state.remoteProjects),
|
|
567
588
|
credentialEntries: sortItems(state.credentialEntries),
|
|
568
589
|
proxyEntries: sortItems(state.proxyEntries),
|
|
590
|
+
commands: sortItems(state.commands ?? []),
|
|
591
|
+
groupProxies: sortItems(state.groupProxies ?? []),
|
|
569
592
|
},
|
|
570
593
|
tombstones: cloneTombstones(tombstones),
|
|
571
594
|
secrets: [],
|
|
@@ -608,6 +631,8 @@ export function parsePortableSnapshot(content) {
|
|
|
608
631
|
remoteProjects: array(collections.remoteProjects, 'remoteProjects').map(parseRemoteProject),
|
|
609
632
|
credentialEntries: array(collections.credentialEntries, 'credentialEntries').map(parseCredentialEntry),
|
|
610
633
|
proxyEntries: array(collections.proxyEntries, 'proxyEntries').map(parseProxyEntry),
|
|
634
|
+
...(collections.commands === undefined ? {} : { commands: array(collections.commands, 'commands').map(parseSavedCommand) }),
|
|
635
|
+
...(collections.groupProxies === undefined ? {} : { groupProxies: array(collections.groupProxies, 'groupProxies').map(parseGroupProxy) }),
|
|
611
636
|
},
|
|
612
637
|
tombstones: parseTombstones(input.tombstones),
|
|
613
638
|
secrets: input.secrets === undefined ? [] : array(input.secrets, 'secrets').map(parseEncryptedSecretRecord).sort((a, b) => secretKey(a.scope, a.id).localeCompare(secretKey(b.scope, b.id))),
|
|
@@ -620,10 +645,10 @@ export function mergePortableSnapshots(local, remote, deviceId, now = Date.now()
|
|
|
620
645
|
const tombstones = emptyTombstones();
|
|
621
646
|
const collections = {};
|
|
622
647
|
for (const name of COLLECTION_NAMES) {
|
|
623
|
-
const localItems = new Map(local.collections[name].map(item => [item.id, item]));
|
|
624
|
-
const remoteItems = new Map(remote.collections[name].map(item => [item.id, item]));
|
|
648
|
+
const localItems = new Map((local.collections[name] ?? []).map(item => [item.id, item]));
|
|
649
|
+
const remoteItems = new Map((remote.collections[name] ?? []).map(item => [item.id, item]));
|
|
625
650
|
const deleted = { ...local.tombstones[name] };
|
|
626
|
-
for (const [id, deletedAt] of Object.entries(remote.tombstones[name]))
|
|
651
|
+
for (const [id, deletedAt] of Object.entries(remote.tombstones[name] ?? {}))
|
|
627
652
|
deleted[id] = Math.max(deleted[id] ?? 0, deletedAt);
|
|
628
653
|
tombstones[name] = deleted;
|
|
629
654
|
const ids = new Set([...localItems.keys(), ...remoteItems.keys(), ...Object.keys(deleted)]);
|
|
@@ -639,8 +664,11 @@ export function mergePortableSnapshots(local, remote, deviceId, now = Date.now()
|
|
|
639
664
|
collections[name] = sortItems(merged);
|
|
640
665
|
}
|
|
641
666
|
const result = { schemaVersion: 1, exportedAt: now, sourceDeviceId: deviceId, collections, tombstones, secrets: [] };
|
|
667
|
+
if ((collections.commands?.length ?? 0) > 500)
|
|
668
|
+
throw new Error('合并后常用命令超过 500 条,请先整理后重试');
|
|
642
669
|
result.secrets = mergeSecretRecords(local.secrets, remote.secrets, result);
|
|
643
670
|
repairReferences(result, now);
|
|
671
|
+
assertPortableReferences(result.collections);
|
|
644
672
|
result.secrets = result.secrets.filter(record => secretOwnerExists(record, result.collections));
|
|
645
673
|
return result;
|
|
646
674
|
}
|
|
@@ -680,7 +708,7 @@ function normalizeSettings(value) {
|
|
|
680
708
|
}
|
|
681
709
|
function defaultSettings() { return { autoSync: false, strategy: 'smart', backupRetention: 5 }; }
|
|
682
710
|
function emptyTombstones() {
|
|
683
|
-
return { profiles: {}, ftpProfiles: {}, remoteProjects: {}, credentialEntries: {}, proxyEntries: {} };
|
|
711
|
+
return { profiles: {}, ftpProfiles: {}, remoteProjects: {}, credentialEntries: {}, proxyEntries: {}, commands: {}, groupProxies: {} };
|
|
684
712
|
}
|
|
685
713
|
function cloneTombstones(value) {
|
|
686
714
|
return Object.fromEntries(COLLECTION_NAMES.map(name => [name, { ...value[name] }]));
|
|
@@ -825,6 +853,10 @@ function parseProxyEntry(value) {
|
|
|
825
853
|
const draft = normalizeProxyEntryDraft(input);
|
|
826
854
|
return { id: text(input.id, 'proxy.id', 1, 100), ...draft, createdAt: timestamp(input.createdAt, 'createdAt'), updatedAt: timestamp(input.updatedAt, 'updatedAt') };
|
|
827
855
|
}
|
|
856
|
+
function parseSavedCommand(value) {
|
|
857
|
+
const input = asRecord(value, 'saved command');
|
|
858
|
+
return { ...commandDraft(input), id: text(input.id, 'command.id', 1, 100), createdAt: timestamp(input.createdAt, 'createdAt'), updatedAt: timestamp(input.updatedAt, 'updatedAt') };
|
|
859
|
+
}
|
|
828
860
|
function parseEncryptedSecretRecord(value) {
|
|
829
861
|
const input = asRecord(value, 'encrypted secret');
|
|
830
862
|
const scope = input.scope;
|
|
@@ -953,8 +985,10 @@ function parseTombstones(value) {
|
|
|
953
985
|
return result;
|
|
954
986
|
}
|
|
955
987
|
function assertUniqueIds(snapshot) {
|
|
988
|
+
if ((snapshot.collections.commands?.length ?? 0) > 500)
|
|
989
|
+
throw new Error('Gist 常用命令超过 500 条');
|
|
956
990
|
for (const name of COLLECTION_NAMES) {
|
|
957
|
-
const ids = snapshot.collections[name].map(item => item.id);
|
|
991
|
+
const ids = (snapshot.collections[name] ?? []).map(item => item.id);
|
|
958
992
|
if (new Set(ids).size !== ids.length)
|
|
959
993
|
throw new Error(`Gist 配置包含重复的 ${name} ID`);
|
|
960
994
|
}
|
|
@@ -968,6 +1002,9 @@ function assertPortableReferences(collections) {
|
|
|
968
1002
|
const profiles = new Set(collections.profiles.map(item => item.id));
|
|
969
1003
|
const credentials = new Set(collections.credentialEntries.map(item => item.id));
|
|
970
1004
|
const proxies = new Set(collections.proxyEntries.map(item => item.id));
|
|
1005
|
+
for (const group of collections.groupProxies ?? [])
|
|
1006
|
+
if (group.proxyId !== undefined && !proxies.has(group.proxyId))
|
|
1007
|
+
throw new Error(`分组 ${group.name} 引用了缺失的代理,请先处理代理引用后重试同步`);
|
|
971
1008
|
for (const profile of collections.profiles) {
|
|
972
1009
|
if (profile.credentialId !== undefined && !credentials.has(profile.credentialId))
|
|
973
1010
|
throw new Error(`主机 ${profile.name} 引用了缺失的凭据条目`);
|
|
@@ -1020,7 +1057,7 @@ function sortItems(items) { return structuredClone(items).sort((a, b) => a.id.lo
|
|
|
1020
1057
|
function uniqueIds(...groups) { return [...new Set(groups.flatMap(group => group.map(item => item.id)))]; }
|
|
1021
1058
|
function snapshotCollectionDigest(items) { return createHash('sha256').update(stableJson(sortItems(items))).digest('hex'); }
|
|
1022
1059
|
function snapshotHasPortableData(snapshot) {
|
|
1023
|
-
return COLLECTION_NAMES.some(name => snapshot.collections[name]
|
|
1060
|
+
return COLLECTION_NAMES.some(name => (snapshot.collections[name]?.length ?? 0) > 0 || Object.keys(snapshot.tombstones[name] ?? {}).length > 0)
|
|
1024
1061
|
|| snapshot.secrets.length > 0;
|
|
1025
1062
|
}
|
|
1026
1063
|
function stableJson(value) { return JSON.stringify(stableValue(value)); }
|