@lemoncat7/dsh-ssh 1.8.0 → 1.9.1

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.
Files changed (85) hide show
  1. package/ARCHITECTURE.md +13 -0
  2. package/README.md +1 -1
  3. package/docs/releases/1.9.0.md +15 -0
  4. package/docs/releases/1.9.1.md +11 -0
  5. package/lib/api.d.ts.map +1 -1
  6. package/lib/api.js +54 -12
  7. package/lib/api.js.map +1 -1
  8. package/lib/browser-transfers.d.ts +26 -0
  9. package/lib/browser-transfers.d.ts.map +1 -0
  10. package/lib/browser-transfers.js +72 -0
  11. package/lib/browser-transfers.js.map +1 -0
  12. package/lib/client-api.d.ts +8 -0
  13. package/lib/client-api.d.ts.map +1 -1
  14. package/lib/client-api.js +45 -8
  15. package/lib/client-api.js.map +1 -1
  16. package/lib/client-download.d.ts +22 -0
  17. package/lib/client-download.d.ts.map +1 -0
  18. package/lib/client-download.js +65 -0
  19. package/lib/client-download.js.map +1 -0
  20. package/lib/client.js +148 -144
  21. package/lib/client.js.map +4 -4
  22. package/lib/connector.d.ts +9 -1
  23. package/lib/connector.d.ts.map +1 -1
  24. package/lib/connector.js +9 -4
  25. package/lib/connector.js.map +1 -1
  26. package/lib/domain.d.ts +2 -0
  27. package/lib/domain.d.ts.map +1 -1
  28. package/lib/domain.js.map +1 -1
  29. package/lib/download-progress.d.ts +17 -0
  30. package/lib/download-progress.d.ts.map +1 -0
  31. package/lib/download-progress.js +68 -0
  32. package/lib/download-progress.js.map +1 -0
  33. package/lib/endpoint-upload.d.ts +10 -0
  34. package/lib/endpoint-upload.d.ts.map +1 -0
  35. package/lib/endpoint-upload.js +63 -0
  36. package/lib/endpoint-upload.js.map +1 -0
  37. package/lib/file-entry-sort.d.ts +1 -0
  38. package/lib/file-entry-sort.d.ts.map +1 -1
  39. package/lib/file-entry-sort.js +5 -8
  40. package/lib/file-entry-sort.js.map +1 -1
  41. package/lib/file-transfer-tools.d.ts.map +1 -1
  42. package/lib/file-transfer-tools.js +40 -7
  43. package/lib/file-transfer-tools.js.map +1 -1
  44. package/lib/file-transfer-workspace.d.ts.map +1 -1
  45. package/lib/file-transfer-workspace.js +69 -25
  46. package/lib/file-transfer-workspace.js.map +1 -1
  47. package/lib/ftp-adapter.d.ts.map +1 -1
  48. package/lib/ftp-adapter.js +12 -3
  49. package/lib/ftp-adapter.js.map +1 -1
  50. package/lib/ftp-list-date.d.ts +3 -0
  51. package/lib/ftp-list-date.d.ts.map +1 -0
  52. package/lib/ftp-list-date.js +20 -0
  53. package/lib/ftp-list-date.js.map +1 -0
  54. package/lib/ftp-listing-client.d.ts +7 -0
  55. package/lib/ftp-listing-client.d.ts.map +1 -0
  56. package/lib/ftp-listing-client.js +28 -0
  57. package/lib/ftp-listing-client.js.map +1 -0
  58. package/lib/locales/messages.d.ts +100 -0
  59. package/lib/locales/messages.d.ts.map +1 -1
  60. package/lib/locales/messages.js +25 -0
  61. package/lib/locales/messages.js.map +1 -1
  62. package/lib/profile-editor.d.ts.map +1 -1
  63. package/lib/profile-editor.js +9 -3
  64. package/lib/profile-editor.js.map +1 -1
  65. package/lib/remote-files.d.ts +1 -0
  66. package/lib/remote-files.d.ts.map +1 -1
  67. package/lib/remote-files.js.map +1 -1
  68. package/lib/session-access.d.ts +1 -0
  69. package/lib/session-access.d.ts.map +1 -1
  70. package/lib/session-access.js +1 -0
  71. package/lib/session-access.js.map +1 -1
  72. package/lib/session-file-upload.d.ts +22 -0
  73. package/lib/session-file-upload.d.ts.map +1 -0
  74. package/lib/session-file-upload.js +56 -0
  75. package/lib/session-file-upload.js.map +1 -0
  76. package/lib/sftp-client.d.ts.map +1 -1
  77. package/lib/sftp-client.js +6 -4
  78. package/lib/sftp-client.js.map +1 -1
  79. package/lib/store.js +2 -0
  80. package/lib/store.js.map +1 -1
  81. package/lib/transfer-task-list.d.ts +16 -0
  82. package/lib/transfer-task-list.d.ts.map +1 -0
  83. package/lib/transfer-task-list.js +35 -0
  84. package/lib/transfer-task-list.js.map +1 -0
  85. package/package.json +1 -1
@@ -102,7 +102,7 @@ export function ProfileEditor({ profile, profiles, vaultEntries, proxyEntries, o
102
102
  secrets: { password: form.password, privateKey: form.privateKey, passphrase: form.passphrase, proxyPassword: form.proxyPassword },
103
103
  };
104
104
  };
105
- const testConnection = async (confirmedFingerprint) => {
105
+ const testConnection = async (confirmation) => {
106
106
  setEndpointTouched(true);
107
107
  if (duplicateProfile !== undefined) {
108
108
  hostInputRef.current?.focus();
@@ -113,6 +113,12 @@ export function ProfileEditor({ profile, profiles, vaultEntries, proxyEntries, o
113
113
  setTestState(undefined);
114
114
  setPendingFingerprint(undefined);
115
115
  try {
116
+ if (confirmation && confirmation.draft !== JSON.stringify(buildPayload()))
117
+ throw Error(t('host-key.retest'));
118
+ const isJump = confirmation?.profileId !== undefined && confirmation.profileId !== profile?.id && profiles.some(item => item.id === confirmation.profileId);
119
+ if (isJump)
120
+ await api(`/profiles/${encodeURIComponent(confirmation.profileId)}/confirm-host`, { method: 'POST', body: JSON.stringify({ fingerprint: confirmation.fingerprint, previousFingerprint: confirmation.previousFingerprint }) });
121
+ const confirmedFingerprint = isJump ? undefined : confirmation?.fingerprint;
116
122
  await api('/profiles/test-draft', { method: 'POST', body: JSON.stringify({ ...buildPayload(confirmedFingerprint), ...(profile === undefined ? {} : { profileId: profile.id }) }) });
117
123
  if (confirmedFingerprint !== undefined)
118
124
  setForm(current => ({ ...current, hostFingerprint: confirmedFingerprint }));
@@ -120,7 +126,7 @@ export function ProfileEditor({ profile, profiles, vaultEntries, proxyEntries, o
120
126
  }
121
127
  catch (reason) {
122
128
  if (reason instanceof ApiError && reason.body?.code === 'HOST_KEY_REQUIRED' && typeof reason.body.fingerprint === 'string')
123
- setPendingFingerprint(reason.body.fingerprint);
129
+ setPendingFingerprint({ fingerprint: reason.body.fingerprint, ...(typeof reason.body.previousFingerprint === 'string' ? { previousFingerprint: reason.body.previousFingerprint } : {}), ...(typeof reason.body.profileId === 'string' ? { profileId: reason.body.profileId } : {}), ...(typeof reason.body.profileName === 'string' ? { profileName: reason.body.profileName } : {}), draft: JSON.stringify(buildPayload()) });
124
130
  else if (reason instanceof ApiError && reason.body?.code === 'DUPLICATE_PROFILE_ENDPOINT') {
125
131
  setEndpointError(errorMessage(reason));
126
132
  hostInputRef.current?.focus();
@@ -157,7 +163,7 @@ export function ProfileEditor({ profile, profiles, vaultEntries, proxyEntries, o
157
163
  setSaving(false);
158
164
  }
159
165
  };
160
- return _jsx(Dialog, { title: profile === undefined ? t("profile-editor.newSshConnection") : t("client.edit2", [profile.name]), subtitle: t("profile-editor.credentialsAreNotShownAgainAfterSaving"), onClose: onClose, children: _jsxs("form", { className: "dsh-ssh-form", onSubmit: event => { void submit(event); }, children: [_jsxs("div", { className: "dsh-ssh-form-section", children: [_jsxs("div", { className: "dsh-ssh-form-section-heading", children: [_jsx("strong", { children: t("profile-editor.connectionInfo") }), _jsx("small", { children: t("profile-editor.hostAddressAndDisplay") })] }), _jsxs("div", { className: "dsh-ssh-form-grid", children: [_jsx(Field, { label: t("client.name"), children: _jsx("input", { required: true, maxLength: 80, placeholder: t("profile-editor.devServer"), ...field('name') }) }), _jsx(Field, { label: t("profile-editor.group"), children: _jsx(SuggestionInput, { ariaLabel: t("profile-editor.hostGroup"), 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: [_jsxs(Field, { label: t("client.host"), children: [_jsx("input", { ref: hostInputRef, required: true, "aria-invalid": endpointValidationMessage === undefined ? undefined : true, "aria-describedby": endpointValidationMessage === undefined ? undefined : endpointErrorId, placeholder: "server.example.com", spellCheck: false, ...field('host'), onBlur: () => setEndpointTouched(true) }), endpointValidationMessage && _jsx("small", { id: endpointErrorId, className: "dsh-ssh-field-error", role: "alert", children: endpointValidationMessage })] }), _jsx(Field, { label: t("ftp-profile-editor.port"), children: _jsx("input", { required: true, "aria-invalid": endpointValidationMessage === undefined ? undefined : true, "aria-describedby": endpointValidationMessage === undefined ? undefined : endpointErrorId, type: "number", inputMode: "numeric", min: "1", max: "65535", ...field('port'), onBlur: () => setEndpointTouched(true) }) })] }), _jsx(Field, { label: t("profile-editor.tags"), hint: t("ftp-profile-editor.pickExistingTagsOrTypeNewOnesSeparateMultiple"), children: _jsx(SuggestionInput, { ariaLabel: t("profile-editor.hostTags"), multiple: true, options: tagOptions, placeholder: t("ftp-profile-editor.selectOrEnterTags"), value: form.tags, onChange: tags => setForm(current => ({ ...current, tags })) }) })] }), _jsxs("div", { className: "dsh-ssh-form-section", children: [_jsxs("div", { className: "dsh-ssh-form-section-heading", children: [_jsx("strong", { children: t("ftp-profile-editor.authentication") }), _jsx("small", { children: t("profile-editor.chooseSharedCredentialsOrSaveSeparately") })] }), _jsx(Field, { label: t("ftp-profile-editor.credentialSource"), hint: t("profile-editor.useThisConnectionSOwnCredentialsOrReferenceA"), children: _jsxs("select", { ...field('credentialId'), children: [_jsx("option", { value: "", children: t("profile-editor.savedWithThisConnectionOnly") }), vaultEntries.map(entry => _jsxs("option", { value: entry.id, children: [entry.name, " \u00B7 ", entry.username] }, entry.id))] }) }), selectedCredential ? _jsxs("div", { className: "dsh-ssh-credential-reference", children: [_jsx("span", { children: _jsx(IconUserOutline16, { size: 16 }) }), _jsxs("span", { children: [_jsx("strong", { children: selectedCredential.name }), _jsxs("small", { children: [selectedCredential.username, " \u00B7 ", selectedCredential.authType === 'password' ? t("client.password") : t("client.privateKey")] })] }), _jsx("em", { children: selectedCredential.credential.configured ? t("profile-editor.ready") : t("client.missingCredentials") })] }) : _jsxs(_Fragment, { children: [_jsxs("div", { className: "dsh-ssh-form-grid", children: [_jsx(Field, { label: t("client.username"), children: _jsx("input", { required: true, autoComplete: "username", ...field('username') }) }), _jsx(Field, { label: t("client.authMethod"), children: _jsxs("select", { ...field('authType'), children: [_jsx("option", { value: "password", children: t("client.password") }), _jsx("option", { value: "private-key", children: t("client.privateKey") }), _jsx("option", { value: "agent", children: "SSH Agent" })] }) })] }), form.authType === 'password' && _jsx(Field, { label: t("client.password"), hint: profile?.credential.source === 'profile' && profile.credential.fields.includes('password') ? t("client.savedLeaveBlankToKeepUnchanged") : t("profile-editor.cannotBeReadBackAfterSaving"), children: _jsx("input", { required: profile === undefined, type: "password", autoComplete: "new-password", placeholder: profile?.credential.source === 'profile' && profile.credential.fields.includes('password') ? '••••••••' : '', ...field('password') }) }), form.authType === 'private-key' && _jsxs(_Fragment, { children: [_jsx(Field, { label: t("client.privateKey"), hint: profile?.credential.source === 'profile' && profile.credential.fields.includes('privateKey') ? t("client.savedLeaveBlankToKeepUnchanged") : t("profile-editor.pasteOpensshPemPrivateKey"), children: _jsx("textarea", { required: profile === undefined, rows: 5, spellCheck: false, ...field('privateKey') }) }), _jsx(Field, { label: t("client.keyPassphrase"), children: _jsx("input", { type: "password", autoComplete: "new-password", ...field('passphrase') }) })] })] })] }), _jsxs("div", { className: "dsh-ssh-form-section", children: [_jsxs("div", { className: "dsh-ssh-form-section-heading", children: [_jsx("strong", { children: t("profile-editor.connectionPath") }), _jsx("small", { children: t("profile-editor.directProxyOrJumpChain") })] }), _jsx(Field, { label: t("profile-editor.connectionMode"), children: _jsxs("select", { ...field('proxyType'), children: [_jsx("option", { value: "none", children: t("group-proxy.automatic") }), _jsx("option", { value: "saved", children: t("client.commonProxies") }), _jsx("option", { value: "http", children: t("profile-editor.customHttpConnect") }), _jsx("option", { value: "socks5", children: t("profile-editor.customSocks5") }), _jsx("option", { value: "jump", children: t("client.sshJumpHost") })] }) }), form.proxyType === 'saved' && _jsx(Field, { label: t("client.commonProxies"), hint: proxyEntries.length === 0 ? t("profile-editor.addAnHttpOrSocks5ProxyToTheProxy") : t("profile-editor.multipleHostsCanShareTheSameProxyConfiguration"), children: _jsxs("select", { required: true, ...field('proxyEntryId'), children: [_jsx("option", { value: "", children: t("profile-editor.selectProxy") }), proxyEntries.map(entry => _jsxs("option", { value: entry.id, children: [entry.name, " \u00B7 ", entry.proxyType === 'http' ? 'HTTP' : 'SOCKS5', " \u00B7 ", entry.host, ":", entry.port] }, entry.id))] }) }), (form.proxyType === 'http' || form.proxyType === 'socks5') && _jsxs(_Fragment, { children: [_jsxs("div", { className: "dsh-ssh-form-grid is-host", children: [_jsx(Field, { label: t("client.proxyHost"), children: _jsx("input", { required: true, spellCheck: false, ...field('proxyHost') }) }), _jsx(Field, { label: t("client.proxyPort"), children: _jsx("input", { required: true, type: "number", inputMode: "numeric", min: "1", max: "65535", ...field('proxyPort') }) })] }), _jsxs("div", { className: "dsh-ssh-form-grid", children: [_jsx(Field, { label: t("client.proxyUsername"), children: _jsx("input", { autoComplete: "username", ...field('proxyUsername') }) }), _jsx(Field, { label: t("client.proxyPassword"), children: _jsx("input", { type: "password", autoComplete: "new-password", ...field('proxyPassword') }) })] })] }), form.proxyType === 'jump' && _jsx(JumpChainEditor, { profiles: profiles.filter(item => item.id !== profile?.id), value: form.jumpProfileIds, onChange: jumpProfileIds => setForm(current => ({ ...current, jumpProfileIds })) })] }), pendingFingerprint && _jsxs("div", { className: "dsh-ssh-test-result is-warning", role: "alert", children: [_jsxs("span", { children: [_jsx("strong", { children: t("profile-editor.firstConnectionVerifyTheHostFingerprint") }), _jsx("code", { children: pendingFingerprint })] }), _jsx("button", { type: "button", className: "dsh-ssh-small-primary", disabled: testing, onClick: () => { void testConnection(pendingFingerprint); }, children: t("profile-editor.confirmAndRetry") })] }), testState === 'success' && _jsxs("p", { className: "dsh-ssh-test-result is-success", role: "status", children: [_jsx(IconCheckOutline14, { size: 14 }), t("profile-editor.connectionTestSucceeded")] }), 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 dsh-ssh-test-button", disabled: saving || testing, onClick: event => { if (event.currentTarget.form?.reportValidity())
166
+ return _jsx(Dialog, { title: profile === undefined ? t("profile-editor.newSshConnection") : t("client.edit2", [profile.name]), subtitle: t("profile-editor.credentialsAreNotShownAgainAfterSaving"), onClose: onClose, children: _jsxs("form", { className: "dsh-ssh-form", onSubmit: event => { void submit(event); }, children: [_jsxs("div", { className: "dsh-ssh-form-section", children: [_jsxs("div", { className: "dsh-ssh-form-section-heading", children: [_jsx("strong", { children: t("profile-editor.connectionInfo") }), _jsx("small", { children: t("profile-editor.hostAddressAndDisplay") })] }), _jsxs("div", { className: "dsh-ssh-form-grid", children: [_jsx(Field, { label: t("client.name"), children: _jsx("input", { required: true, maxLength: 80, placeholder: t("profile-editor.devServer"), ...field('name') }) }), _jsx(Field, { label: t("profile-editor.group"), children: _jsx(SuggestionInput, { ariaLabel: t("profile-editor.hostGroup"), 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: [_jsxs(Field, { label: t("client.host"), children: [_jsx("input", { ref: hostInputRef, required: true, "aria-invalid": endpointValidationMessage === undefined ? undefined : true, "aria-describedby": endpointValidationMessage === undefined ? undefined : endpointErrorId, placeholder: "server.example.com", spellCheck: false, ...field('host'), onBlur: () => setEndpointTouched(true) }), endpointValidationMessage && _jsx("small", { id: endpointErrorId, className: "dsh-ssh-field-error", role: "alert", children: endpointValidationMessage })] }), _jsx(Field, { label: t("ftp-profile-editor.port"), children: _jsx("input", { required: true, "aria-invalid": endpointValidationMessage === undefined ? undefined : true, "aria-describedby": endpointValidationMessage === undefined ? undefined : endpointErrorId, type: "number", inputMode: "numeric", min: "1", max: "65535", ...field('port'), onBlur: () => setEndpointTouched(true) }) })] }), _jsx(Field, { label: t("profile-editor.tags"), hint: t("ftp-profile-editor.pickExistingTagsOrTypeNewOnesSeparateMultiple"), children: _jsx(SuggestionInput, { ariaLabel: t("profile-editor.hostTags"), multiple: true, options: tagOptions, placeholder: t("ftp-profile-editor.selectOrEnterTags"), value: form.tags, onChange: tags => setForm(current => ({ ...current, tags })) }) })] }), _jsxs("div", { className: "dsh-ssh-form-section", children: [_jsxs("div", { className: "dsh-ssh-form-section-heading", children: [_jsx("strong", { children: t("ftp-profile-editor.authentication") }), _jsx("small", { children: t("profile-editor.chooseSharedCredentialsOrSaveSeparately") })] }), _jsx(Field, { label: t("ftp-profile-editor.credentialSource"), hint: t("profile-editor.useThisConnectionSOwnCredentialsOrReferenceA"), children: _jsxs("select", { ...field('credentialId'), children: [_jsx("option", { value: "", children: t("profile-editor.savedWithThisConnectionOnly") }), vaultEntries.map(entry => _jsxs("option", { value: entry.id, children: [entry.name, " \u00B7 ", entry.username] }, entry.id))] }) }), selectedCredential ? _jsxs("div", { className: "dsh-ssh-credential-reference", children: [_jsx("span", { children: _jsx(IconUserOutline16, { size: 16 }) }), _jsxs("span", { children: [_jsx("strong", { children: selectedCredential.name }), _jsxs("small", { children: [selectedCredential.username, " \u00B7 ", selectedCredential.authType === 'password' ? t("client.password") : t("client.privateKey")] })] }), _jsx("em", { children: selectedCredential.credential.configured ? t("profile-editor.ready") : t("client.missingCredentials") })] }) : _jsxs(_Fragment, { children: [_jsxs("div", { className: "dsh-ssh-form-grid", children: [_jsx(Field, { label: t("client.username"), children: _jsx("input", { required: true, autoComplete: "username", ...field('username') }) }), _jsx(Field, { label: t("client.authMethod"), children: _jsxs("select", { ...field('authType'), children: [_jsx("option", { value: "password", children: t("client.password") }), _jsx("option", { value: "private-key", children: t("client.privateKey") }), _jsx("option", { value: "agent", children: "SSH Agent" })] }) })] }), form.authType === 'password' && _jsx(Field, { label: t("client.password"), hint: profile?.credential.source === 'profile' && profile.credential.fields.includes('password') ? t("client.savedLeaveBlankToKeepUnchanged") : t("profile-editor.cannotBeReadBackAfterSaving"), children: _jsx("input", { required: profile === undefined, type: "password", autoComplete: "new-password", placeholder: profile?.credential.source === 'profile' && profile.credential.fields.includes('password') ? '••••••••' : '', ...field('password') }) }), form.authType === 'private-key' && _jsxs(_Fragment, { children: [_jsx(Field, { label: t("client.privateKey"), hint: profile?.credential.source === 'profile' && profile.credential.fields.includes('privateKey') ? t("client.savedLeaveBlankToKeepUnchanged") : t("profile-editor.pasteOpensshPemPrivateKey"), children: _jsx("textarea", { required: profile === undefined, rows: 5, spellCheck: false, ...field('privateKey') }) }), _jsx(Field, { label: t("client.keyPassphrase"), children: _jsx("input", { type: "password", autoComplete: "new-password", ...field('passphrase') }) })] })] })] }), _jsxs("div", { className: "dsh-ssh-form-section", children: [_jsxs("div", { className: "dsh-ssh-form-section-heading", children: [_jsx("strong", { children: t("profile-editor.connectionPath") }), _jsx("small", { children: t("profile-editor.directProxyOrJumpChain") })] }), _jsx(Field, { label: t("profile-editor.connectionMode"), children: _jsxs("select", { ...field('proxyType'), children: [_jsx("option", { value: "none", children: t("group-proxy.automatic") }), _jsx("option", { value: "saved", children: t("client.commonProxies") }), _jsx("option", { value: "http", children: t("profile-editor.customHttpConnect") }), _jsx("option", { value: "socks5", children: t("profile-editor.customSocks5") }), _jsx("option", { value: "jump", children: t("client.sshJumpHost") })] }) }), form.proxyType === 'saved' && _jsx(Field, { label: t("client.commonProxies"), hint: proxyEntries.length === 0 ? t("profile-editor.addAnHttpOrSocks5ProxyToTheProxy") : t("profile-editor.multipleHostsCanShareTheSameProxyConfiguration"), children: _jsxs("select", { required: true, ...field('proxyEntryId'), children: [_jsx("option", { value: "", children: t("profile-editor.selectProxy") }), proxyEntries.map(entry => _jsxs("option", { value: entry.id, children: [entry.name, " \u00B7 ", entry.proxyType === 'http' ? 'HTTP' : 'SOCKS5', " \u00B7 ", entry.host, ":", entry.port] }, entry.id))] }) }), (form.proxyType === 'http' || form.proxyType === 'socks5') && _jsxs(_Fragment, { children: [_jsxs("div", { className: "dsh-ssh-form-grid is-host", children: [_jsx(Field, { label: t("client.proxyHost"), children: _jsx("input", { required: true, spellCheck: false, ...field('proxyHost') }) }), _jsx(Field, { label: t("client.proxyPort"), children: _jsx("input", { required: true, type: "number", inputMode: "numeric", min: "1", max: "65535", ...field('proxyPort') }) })] }), _jsxs("div", { className: "dsh-ssh-form-grid", children: [_jsx(Field, { label: t("client.proxyUsername"), children: _jsx("input", { autoComplete: "username", ...field('proxyUsername') }) }), _jsx(Field, { label: t("client.proxyPassword"), children: _jsx("input", { type: "password", autoComplete: "new-password", ...field('proxyPassword') }) })] })] }), form.proxyType === 'jump' && _jsx(JumpChainEditor, { profiles: profiles.filter(item => item.id !== profile?.id), value: form.jumpProfileIds, onChange: jumpProfileIds => setForm(current => ({ ...current, jumpProfileIds })) })] }), pendingFingerprint && _jsxs("div", { className: "dsh-ssh-test-result is-warning", role: "alert", children: [_jsxs("span", { children: [_jsx("strong", { children: pendingFingerprint.previousFingerprint ? t('host-key.changed') : t("profile-editor.firstConnectionVerifyTheHostFingerprint") }), _jsx("span", { children: pendingFingerprint.profileName ?? form.name }), _jsx("span", { children: t('host-key.warning') }), pendingFingerprint.previousFingerprint && _jsxs(_Fragment, { children: [_jsx("span", { children: t('host-key.previous') }), _jsx("code", { children: pendingFingerprint.previousFingerprint })] }), _jsx("span", { children: t('host-key.current') }), _jsx("code", { children: pendingFingerprint.fingerprint }), _jsx("small", { children: t('host-key.saveHint') })] }), _jsx("button", { type: "button", className: "dsh-ssh-small-primary", disabled: testing, onClick: () => { void testConnection(pendingFingerprint); }, children: t('host-key.confirm') })] }), testState === 'success' && _jsxs("p", { className: "dsh-ssh-test-result is-success", role: "status", children: [_jsx(IconCheckOutline14, { size: 14 }), t("profile-editor.connectionTestSucceeded")] }), 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 dsh-ssh-test-button", disabled: saving || testing, onClick: event => { if (event.currentTarget.form?.reportValidity())
161
167
  void testConnection(); }, children: testing ? t("ftp-profile-editor.testing") : t("client.testConnection") }), _jsx("button", { type: "button", className: "dsh-ssh-secondary-button", "data-ssh-dialog-close": true, disabled: saving || testing, onClick: onClose, children: t("client.cancel") }), _jsx("button", { className: "dsh-ssh-primary-button", disabled: saving || testing, children: saving ? t("client.saving") : t("ftp-profile-editor.saveConnection") })] })] }) });
162
168
  }
163
169
  function JumpChainEditor({ profiles, value, onChange }) {
@@ -1 +1 @@
1
- {"version":3,"file":"profile-editor.js","sourceRoot":"","sources":["../src/profile-editor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile-editor.js","sourceRoot":"","sources":["../src/profile-editor.tsx"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ export interface RemoteFileEntry {
17
17
  navigable?: boolean;
18
18
  size: number;
19
19
  modifiedAt: number;
20
+ modifiedAtText?: string;
20
21
  }
21
22
  export interface RemoteDirectoryView {
22
23
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"remote-files.d.ts","sourceRoot":"","sources":["../src/remote-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-files.d.ts","sourceRoot":"","sources":["../src/remote-files.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAErD,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,KAAK,CAAA;AAC/C,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAA;AAEvE,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,kBAAkB,CAAA;IACxB,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,eAAe,GAAG,eAAe,CAAA;IAC5D,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,cAAc,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,EAAE,eAAe,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAA;IACrC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACtE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClF,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/F,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtF,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7E,KAAK,IAAI,IAAI,CAAA;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAAA;IACpD,SAAS,IAAI,kBAAkB,EAAE,CAAA;IACjC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;CAC5E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAA2B;AAEnG,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAOnG;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMzD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAA2D;AAC5G,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAA8C;AAExG,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAM/E"}
@@ -1 +1 @@
1
- {"version":3,"file":"remote-files.js","sourceRoot":"","sources":["../src/remote-files.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAkDzD,MAAM,UAAU,UAAU,CAAC,IAAwB,EAAE,EAAU,IAAY,OAAO,GAAG,IAAI,IAAI,EAAE,EAAE,CAAA,CAAC,CAAC;AAEnG,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACpC,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACtC,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;IACrC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC5E,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,SAAiB,EAAE,IAAY;IACxD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;AACpF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAA;IACxE,IAAI,UAAU,KAAK,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAA;IACrE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7C,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,GAAG,MAAM,GAAG,CAAA;IACnD,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa,IAAY,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAA,CAAC,CAAC;AAC5G,MAAM,UAAU,mBAAmB,CAAC,KAAa,IAAY,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,CAAA,CAAC,CAAC;AAExG,MAAM,UAAU,iBAAiB,CAAC,OAA0B;IAC1D,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAClC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,CAAC,CAAC,CAAA;QACtE,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,CAAC,CAAA;QACrE,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"remote-files.js","sourceRoot":"","sources":["../src/remote-files.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAmDzD,MAAM,UAAU,UAAU,CAAC,IAAwB,EAAE,EAAU,IAAY,OAAO,GAAG,IAAI,IAAI,EAAE,EAAE,CAAA,CAAC,CAAC;AAEnG,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACpC,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACtC,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;IACrC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC5E,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,SAAiB,EAAE,IAAY;IACxD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;AACpF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAA;IACxE,IAAI,UAAU,KAAK,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAA;IACrE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7C,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,GAAG,MAAM,GAAG,CAAA;IACnD,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa,IAAY,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAA,CAAC,CAAC;AAC5G,MAAM,UAAU,mBAAmB,CAAC,KAAa,IAAY,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,CAAA,CAAC,CAAC;AAExG,MAAM,UAAU,iBAAiB,CAAC,OAA0B;IAC1D,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAClC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,CAAC,CAAC,CAAA;QACtE,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,CAAC,CAAA;QACrE,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -12,6 +12,7 @@ export interface SessionAccessState {
12
12
  setFileEndpoints(endpointIds: string[]): void;
13
13
  setFilePermission(permission: InjectionView['filePermission']): void;
14
14
  setRequireFileApproval(value: boolean): void;
15
+ setLocalFileAccess(direction: 'upload' | 'download', value: boolean): void;
15
16
  replace(value: InjectionView): Promise<InjectionView>;
16
17
  refresh(): Promise<void>;
17
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-access.d.ts","sourceRoot":"","sources":["../src/session-access.ts"],"names":[],"mappings":"AACA,OAAO,EAAoC,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAItF,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAA;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IACvC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACvE,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,IAAI,CAAA;IAC5D,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC/C,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAC7C,iBAAiB,CAAC,UAAU,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAA;IACpE,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5C,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IACrD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAED,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,kBAAkB,CA6HvE;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAE5D"}
1
+ {"version":3,"file":"session-access.d.ts","sourceRoot":"","sources":["../src/session-access.ts"],"names":[],"mappings":"AACA,OAAO,EAAoC,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAItF,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAA;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IACvC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACvE,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,IAAI,CAAA;IAC5D,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC/C,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAC7C,iBAAiB,CAAC,UAAU,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAA;IACpE,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5C,kBAAkB,CAAC,SAAS,EAAE,QAAQ,GAAG,UAAU,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC1E,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IACrD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAED,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,kBAAkB,CA8HvE;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAE5D"}
@@ -146,6 +146,7 @@ export function useSessionAccess(sessionId) {
146
146
  setFileEndpoints: fileEndpointIds => update({ fileEndpointIds }),
147
147
  setFilePermission: filePermission => update({ filePermission }),
148
148
  setRequireFileApproval: requireFileApproval => update({ requireFileApproval }),
149
+ setLocalFileAccess: (direction, enabled) => update(direction === 'upload' ? { allowLocalUpload: enabled } : { allowLocalDownload: enabled }),
149
150
  replace,
150
151
  };
151
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-access.js","sourceRoot":"","sources":["../src/session-access.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-access.js","sourceRoot":"","sources":["../src/session-access.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { RemoteFileSystems } from './remote-file-systems.js';
2
+ export declare class SessionFileUploads {
3
+ private readonly files;
4
+ private readonly active;
5
+ private closed;
6
+ constructor(files: RemoteFileSystems);
7
+ upload(request: {
8
+ endpointId: string;
9
+ localPath: string;
10
+ sessionDirectory: string;
11
+ remoteDirectory: string;
12
+ remoteName?: string;
13
+ }, callerSignal: AbortSignal, assertAllowed: () => void): Promise<{
14
+ state: string;
15
+ endpointId: string;
16
+ localPath: string;
17
+ remotePath: string;
18
+ bytes: number;
19
+ }>;
20
+ close(): void;
21
+ }
22
+ //# sourceMappingURL=session-file-upload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-file-upload.d.ts","sourceRoot":"","sources":["../src/session-file-upload.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAGjE,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,MAAM,CAAQ;gBACO,KAAK,EAAE,iBAAiB;IAC/C,MAAM,CAAC,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,IAAI;;;;;;;IA2B7L,KAAK,IAAI,IAAI;CACd"}
@@ -0,0 +1,56 @@
1
+ import { constants } from 'node:fs';
2
+ import { open, realpath, stat as fileStat } from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { MAX_LOCAL_TRANSFER_BYTES, uploadEndpointFile } from './endpoint-upload.js';
5
+ export class SessionFileUploads {
6
+ files;
7
+ active = new Set();
8
+ closed = false;
9
+ constructor(files) {
10
+ this.files = files;
11
+ }
12
+ async upload(request, callerSignal, assertAllowed) {
13
+ if (this.closed || this.active.size >= 2)
14
+ throw new Error('上传服务不可用或已有两个上传,请稍后重试');
15
+ const relative = request.localPath;
16
+ if (!relative || /[\\\0\r\n]/.test(relative) || path.isAbsolute(relative) || path.win32.isAbsolute(relative) || relative.split('/').some(part => !part || part === '..' || part === '.'))
17
+ throw new Error('localPath 必须是会话目录内的相对文件路径');
18
+ if (!path.isAbsolute(request.sessionDirectory))
19
+ throw new Error('会话没有有效工作目录');
20
+ const controller = new AbortController();
21
+ const signal = AbortSignal.any([callerSignal, controller.signal, AbortSignal.timeout(300_000)]);
22
+ this.active.add(controller);
23
+ try {
24
+ signal.throwIfAborted();
25
+ assertAllowed();
26
+ const root = await realpath(request.sessionDirectory);
27
+ const filename = await realpath(path.resolve(root, relative));
28
+ const contained = path.relative(root, filename);
29
+ if (!contained || contained === '..' || contained.startsWith(`..${path.sep}`) || path.isAbsolute(contained))
30
+ throw new Error('上传文件必须位于当前会话目录内');
31
+ const original = await fileStat(filename);
32
+ const handle = await open(filename, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0) | constants.O_NONBLOCK);
33
+ try {
34
+ const stat = await handle.stat();
35
+ if (stat.dev !== original.dev || stat.ino !== original.ino)
36
+ throw new Error('上传文件在打开期间发生变化,请重试');
37
+ if (!stat.isFile() || stat.size > MAX_LOCAL_TRANSFER_BYTES)
38
+ throw new Error('只允许上传不超过 512 MiB 的普通文件');
39
+ if (await realpath(filename) !== filename || await realpath(request.sessionDirectory) !== root)
40
+ throw new Error('会话文件路径已变化');
41
+ const check = () => { signal.throwIfAborted(); assertAllowed(); };
42
+ const result = await uploadEndpointFile(this.files, request.endpointId, request.remoteDirectory, request.remoteName ?? path.basename(filename), handle.createReadStream({ autoClose: false }), signal, stat.size, check);
43
+ return { state: 'completed', endpointId: request.endpointId, localPath: filename, remotePath: result.path, bytes: result.size };
44
+ }
45
+ finally {
46
+ await handle.close();
47
+ }
48
+ }
49
+ finally {
50
+ this.active.delete(controller);
51
+ }
52
+ }
53
+ close() { this.closed = true; for (const controller of this.active)
54
+ controller.abort(new Error('上传服务已停止')); }
55
+ }
56
+ //# sourceMappingURL=session-file-upload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-file-upload.js","sourceRoot":"","sources":["../src/session-file-upload.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sftp-client.d.ts","sourceRoot":"","sources":["../src/sftp-client.tsx"],"names":[],"mappings":"AASA,OAAO,EAML,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAA0B,KAAK,aAAa,EAAE,KAAK,mBAAmB,EACjH,MAAM,iBAAiB,CAAA;AAWxB,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAyC7E,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CASvF;AAED,wBAAgB,mBAAmB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAqBlP;AAED,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,WAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAgB,EAAE,YAAY,EAAE,EAAE;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAgBxQ;AAuLD,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAwB,EAAE,EAAE;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,MAAM,IAAI,IAAI,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CA4Brc"}
1
+ {"version":3,"file":"sftp-client.d.ts","sourceRoot":"","sources":["../src/sftp-client.tsx"],"names":[],"mappings":"AAWA,OAAO,EAML,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAA0B,KAAK,aAAa,EAAE,KAAK,mBAAmB,EACjH,MAAM,iBAAiB,CAAA;AAWxB,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAyC7E,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CASvF;AAED,wBAAgB,mBAAmB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAqBlP;AAED,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,WAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAgB,EAAE,YAAY,EAAE,EAAE;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAgBxQ;AAwLD,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAwB,EAAE,EAAE;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,MAAM,IAAI,IAAI,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CA4Brc"}
@@ -1,5 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useSshLocale } from './use-ssh-locale.js';
3
+ import { trackDownloadClick } from './browser-transfers.js';
4
+ import { LocalTransferTasks } from './transfer-task-list.js';
3
5
  import { t } from './i18n.js';
4
6
  import { memo, useCallback, useEffect, useId, useMemo, useRef, useState } from 'react';
5
7
  import ReactMarkdown from 'react-markdown';
@@ -273,7 +275,7 @@ function SftpExplorer({ initialPath, followPath, followControl, nativeSessionId,
273
275
  await deletion.remove(directory.path, [deleteTarget.path]);
274
276
  await browse(directory.path, false);
275
277
  };
276
- const content = _jsxs("div", { className: `dsh-ssh-sftp${workspace || expanded ? ' is-workspace' : ''}${draggingFiles ? ' is-dragging-files' : ''}`, onDragEnter: handleDragEnter, onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, children: [header, mountedDirectories && mountedDirectories.length > 0 && _jsx("nav", { className: "dsh-ssh-mounted-directories", "aria-label": t("sftp-client.mountedDirectories"), children: mountedDirectories.map(project => _jsxs("button", { type: "button", "data-ssh-interactive": "choice", className: directory?.path === project.path ? 'is-active' : '', title: project.path, disabled: loading, onClick: () => { void browse(project.path, true); }, children: [_jsx(IconFolderClose16, { size: 14 }), _jsx("span", { children: project.name })] }, project.id)) }), openedFile ? _jsx(SftpFilePreview, { entry: openedFile, loadPreview: loadPreview, saveMarkdown: saveMarkdown, loadPathEntry: loadPathEntry, fileUrl: fileUrl, onBack: () => setOpenedFile(undefined), inDirectoryModal: expanded }, openedFile.path) : _jsxs(_Fragment, { children: [_jsxs("form", { className: `dsh-ssh-sftp-pathbar${uploadFile === undefined ? '' : ' has-upload'}${nativeSessionId === undefined ? '' : ' has-native-open'}${followControl ? ' has-follow' : ''}`, "aria-busy": loading, onSubmit: event => { void submit(event); }, children: [_jsx("button", { type: "button", "aria-label": t("sftp-client.goToParentDirectory"), title: t("sftp-client.goToParentDirectory"), disabled: directory?.parent == null || loading, onClick: () => { if (directory?.parent)
278
+ const content = _jsxs("div", { className: `dsh-ssh-sftp${workspace || expanded ? ' is-workspace' : ''}${draggingFiles ? ' is-dragging-files' : ''}`, onDragEnter: handleDragEnter, onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, children: [_jsx(LocalTransferTasks, {}), header, mountedDirectories && mountedDirectories.length > 0 && _jsx("nav", { className: "dsh-ssh-mounted-directories", "aria-label": t("sftp-client.mountedDirectories"), children: mountedDirectories.map(project => _jsxs("button", { type: "button", "data-ssh-interactive": "choice", className: directory?.path === project.path ? 'is-active' : '', title: project.path, disabled: loading, onClick: () => { void browse(project.path, true); }, children: [_jsx(IconFolderClose16, { size: 14 }), _jsx("span", { children: project.name })] }, project.id)) }), openedFile ? _jsx(SftpFilePreview, { entry: openedFile, loadPreview: loadPreview, saveMarkdown: saveMarkdown, loadPathEntry: loadPathEntry, fileUrl: fileUrl, onBack: () => setOpenedFile(undefined), inDirectoryModal: expanded }, openedFile.path) : _jsxs(_Fragment, { children: [_jsxs("form", { className: `dsh-ssh-sftp-pathbar${uploadFile === undefined ? '' : ' has-upload'}${nativeSessionId === undefined ? '' : ' has-native-open'}${followControl ? ' has-follow' : ''}`, "aria-busy": loading, onSubmit: event => { void submit(event); }, children: [_jsx("button", { type: "button", "aria-label": t("sftp-client.goToParentDirectory"), title: t("sftp-client.goToParentDirectory"), disabled: directory?.parent == null || loading, onClick: () => { if (directory?.parent)
277
279
  void browse(directory.parent, true); }, children: _jsx(IconChevronLeftOutline14, { size: 14 }) }), _jsx("input", { "aria-label": t("sftp-client.directoryOrFilePath"), title: t("sftp-client.enterADirectoryToBrowseOrAFileTo"), placeholder: t("sftp-client.directoryOrFilePathPressEnterToOpen"), value: path, readOnly: loading, "aria-invalid": Boolean(error), "aria-describedby": error ? errorId : undefined, spellCheck: false, onChange: event => { setPath(event.target.value); setError(undefined); }, onKeyDown: event => { if (event.key === 'Enter' && event.nativeEvent.isComposing)
278
280
  event.preventDefault(); } }), _jsx("button", { type: "button", "aria-label": t("file-transfer-workspace.refreshDirectory"), title: t("file-transfer-workspace.refreshDirectory"), disabled: loading, onClick: () => { void browse(directory?.path ?? path, false); }, children: _jsx(IconRefreshOutline16, { size: 15 }) }), followControl, _jsx("button", { type: "button", "aria-label": expanded ? t("sftp-client.closeDirectoryDialog") : t("sftp-client.expandDirectory"), title: expanded ? t("sftp-client.closeDirectoryDialog") : t("sftp-client.openDirectoryInADialog"), disabled: directory === undefined, onClick: () => setExpanded(value => !value), children: _jsx(IconFullscreenOutline16, { size: 16 }) }), nativeSessionId !== undefined && _jsx(NativeDirectoryButton, { sessionId: nativeSessionId, path: directory?.path, onMessage: setOperationMessage }), uploadFile !== undefined && _jsxs(_Fragment, { children: [_jsx("input", { ref: fileInputRef, className: "sr-only", type: "file", multiple: true, tabIndex: -1, onChange: event => { const files = Array.from(event.target.files ?? []); event.target.value = ''; if (files.length > 0)
279
281
  void uploadFiles(files); } }), _jsxs("button", { type: "button", className: "dsh-ssh-sftp-upload-button", disabled: directory === undefined || uploading !== undefined || pendingOverwrite !== undefined, onClick: () => fileInputRef.current?.click(), children: [_jsx(IconSendOutline14, { size: 14 }), uploading === undefined ? t("sftp-client.upload") : t("sftp-client.uploading")] })] })] }), pendingOverwrite !== undefined && _jsxs("div", { className: "dsh-ssh-upload-conflict", role: "alert", children: [_jsxs("span", { children: [_jsx("strong", { children: t("sftp-client.aFileWithTheSameNameExists") }), _jsx("small", { children: pendingOverwrite.file.name })] }), _jsxs("span", { children: [_jsx("button", { type: "button", onClick: () => { const pending = pendingOverwrite; setPendingOverwrite(undefined); void uploadFiles(pending.remaining, pending.directory); }, children: t("sftp-client.skip") }), _jsx("button", { type: "button", className: "is-primary", disabled: uploading !== undefined, onClick: () => { const pending = pendingOverwrite; void uploadFiles([pending.file, ...pending.remaining], pending.directory, true); }, children: t("sftp-client.overwriteAndUpload") })] })] }), operationMessage && _jsxs("div", { className: "dsh-ssh-sftp-operation-status", role: "status", children: [_jsx("span", { children: operationMessage }), _jsx("button", { type: "button", "aria-label": t("sftp-client.dismissNotice"), onClick: () => setOperationMessage(undefined), children: _jsx(IconCloseOutline16, { size: 14 }) })] }), error && _jsx("p", { id: errorId, className: "dsh-ssh-directory-error", role: "alert", children: error }), _jsxs("div", { className: "dsh-ssh-sftp-table dsh-ssh-scroll-surface", "aria-busy": loading, children: [_jsxs("div", { className: "dsh-ssh-sftp-columns", children: [_jsx("span", { children: t("client.name") }), _jsx("span", { children: t("file-transfer-workspace.size") }), _jsx("span", { children: t("file-transfer-workspace.modified") }), _jsx("span", { "aria-hidden": "true" })] }), loading && directory === undefined ? _jsx("p", { className: "dsh-ssh-sftp-state", children: t("sftp-client.readingRemoteDirectory") })
@@ -293,7 +295,7 @@ function SftpExplorer({ initialPath, followPath, followControl, nativeSessionId,
293
295
  void uploadFiles(files, entry.path);
294
296
  return;
295
297
  } const source = parseRemoteFilesDragPayload(event.dataTransfer.getData(REMOTE_FILES_DRAG_TYPE)); if (source !== undefined)
296
- void applyRemoteDrop(source, entry.path); }, children: [_jsxs(FileNameTooltip, { name: entry.name, children: [directoryEntry ? _jsx(IconFolderClose16, { size: 16 }) : _jsx(IconDataOutline16, { size: 16 }), _jsx("strong", { children: entry.name })] }), _jsx("small", { children: directoryEntry ? '-' : formatBytes(entry.size) }), _jsx("small", { children: formatFileTime(entry.modifiedAt) }), _jsxs("div", { className: "dsh-ssh-sftp-row-actions", children: [entry.kind === 'file' && _jsx("a", { className: "dsh-ssh-sftp-row-download dsh-ssh-context-action", draggable: false, href: fileUrl(entry.path), download: entry.name, "aria-label": t('sftp-client.downloadEntry', [entry.name]), title: t('sftp-client.downloadEntry', [entry.name]), onClick: event => event.stopPropagation(), children: _jsx(IconDownloadOutline16, { size: 14 }) }), deletion !== undefined && _jsx("button", { type: "button", className: "dsh-ssh-sftp-row-delete dsh-ssh-context-action", draggable: false, "aria-label": t("client.delete2", [entry.name]), title: t("client.delete2", [entry.name]), onClick: event => { event.stopPropagation(); setDeleteTarget(entry); }, children: _jsx(IconTrashOutline16, { size: 14 }) })] })] }, entry.path);
298
+ void applyRemoteDrop(source, entry.path); }, children: [_jsxs(FileNameTooltip, { name: entry.name, children: [directoryEntry ? _jsx(IconFolderClose16, { size: 16 }) : _jsx(IconDataOutline16, { size: 16 }), _jsx("strong", { children: entry.name })] }), _jsx("small", { children: directoryEntry ? '-' : formatBytes(entry.size) }), _jsx("small", { children: formatFileTime(entry.modifiedAt) }), _jsxs("div", { className: "dsh-ssh-sftp-row-actions", children: [entry.kind === 'file' && _jsx("a", { className: "dsh-ssh-sftp-row-download dsh-ssh-context-action", draggable: false, href: fileUrl(entry.path), download: entry.name, "aria-label": t('sftp-client.downloadEntry', [entry.name]), title: t('sftp-client.downloadEntry', [entry.name]), onClick: trackDownloadClick, children: _jsx(IconDownloadOutline16, { size: 14 }) }), deletion !== undefined && _jsx("button", { type: "button", className: "dsh-ssh-sftp-row-delete dsh-ssh-context-action", draggable: false, "aria-label": t("client.delete2", [entry.name]), title: t("client.delete2", [entry.name]), onClick: event => { event.stopPropagation(); setDeleteTarget(entry); }, children: _jsx(IconTrashOutline16, { size: 14 }) })] })] }, entry.path);
297
299
  })] })] }), draggingFiles && _jsx("div", { className: "dsh-ssh-sftp-dropzone", "aria-hidden": "true", children: _jsxs("span", { children: [_jsx("strong", { children: t("sftp-client.releaseToUpload") }), _jsxs("small", { children: [t("sftp-client.uploadTo"), " ", directory?.path ?? path] })] }) }), deleteTarget !== undefined && deletion !== undefined && _jsx(FileEntryDeleteDialog, { locationName: deletion.locationName, locationKind: deletion.locationKind, entries: [deleteTarget], onClose: () => setDeleteTarget(undefined), onDelete: removeEntry })] });
298
300
  return _jsxs(_Fragment, { children: [!expanded && content, _jsx(Modal, { open: expanded, onClose: () => setExpanded(false), title: t("sftp-client.browseDirectory"), headless: true, className: "dsh-ssh-preview-modal", children: _jsxs("section", { className: "dsh-ssh-preview-modal-shell", children: [_jsxs("header", { children: [_jsxs("span", { children: [_jsx("strong", { children: t("sftp-client.browseDirectory") }), _jsx("small", { title: directory?.path, children: directory?.path })] }), _jsx("span", { className: "dsh-ssh-file-preview-actions", children: _jsx("button", { type: "button", "aria-label": t("sftp-client.closeDirectoryDialog2"), onClick: () => setExpanded(false), children: _jsx(IconCloseOutline16, { size: 16 }) }) })] }), _jsx("div", { className: "dsh-ssh-directory-modal-body", children: expanded && content })] }) })] });
299
301
  }
@@ -328,7 +330,7 @@ export function SftpFilePreview({ entry, loadPreview, saveMarkdown, loadPathEntr
328
330
  }, [fileUrl, revision]);
329
331
  const controls = _jsxs(_Fragment, { children: [saveControls, _jsx(PreviewRefreshControl, { busy: busy || draft.saving, blocked: draft.dirty, automatic: locked, available: Boolean(preview && preview.kind !== 'pdf' && !draft.dirty && !draft.saving), onRefresh: () => void refresh(), onToggle: () => setLocked(value => !value) })] });
330
332
  const downloadUrl = fileUrl(entry.path);
331
- return _jsxs(_Fragment, { children: [_jsxs("section", { className: "dsh-ssh-file-preview", style: expanded ? { visibility: 'hidden' } : undefined, children: [_jsxs("header", { children: [_jsx("button", { type: "button", className: "dsh-ssh-icon-button", "aria-label": t("sftp-client.backToDirectory"), title: t("sftp-client.backToDirectory"), disabled: draft.saving, onClick: () => draft.dirty ? setConfirmAction('leave') : onBack(), children: _jsx(IconChevronLeftOutline14, { size: 14 }) }), _jsxs("span", { className: "dsh-ssh-file-preview-title", children: [_jsx("strong", { title: entry.name, children: entry.name }), _jsx("small", { children: formatBytes(preview?.size ?? entry.size) })] }), _jsxs("span", { className: "dsh-ssh-file-preview-actions", children: [controls, _jsx("a", { href: downloadUrl, "aria-label": t("sftp-client.downloadFile"), title: t("sftp-client.downloadFile"), children: _jsx(IconDownloadOutline16, { size: 16 }) }), !inDirectoryModal && _jsx("button", { type: "button", "aria-label": t("sftp-client.zoomPreview"), title: t("sftp-client.zoomPreview"), onClick: () => setExpanded(true), children: _jsx(IconFullscreenOutline16, { size: 16 }) })] })] }), readOnlyNote, (editableMarkdown || draft.dirty) && _jsxs("p", { className: "dsh-ssh-preview-edit-status", role: "status", children: [draft.message || (draft.dirty ? t("sftp-client.unsavedDraftKeptInThisBrowserTab") : locked ? t("sftp-client.autoRefreshReadOnly") : t("sftp-client.editDirectlyCtrlCmdSToSave")), draftActions] }), error && preview && _jsxs("p", { className: "dsh-ssh-preview-refresh-error", role: "status", children: [t("sftp-client.refreshFailedPreviousContentKept"), error] }), _jsx("div", { ref: inlineBody, className: "dsh-ssh-file-preview-body dsh-ssh-scroll-surface", children: _jsx(SftpPreviewContent, { markdownEditor: markdownEditor, entry: entry, preview: preview, error: preview ? undefined : error, fileUrl: previewUrl, downloadUrl: downloadUrl }) })] }), _jsx(Modal, { open: expanded, onClose: () => setExpanded(false), title: t("sftp-client.preview", [entry.name]), headless: true, className: "dsh-ssh-preview-modal", children: _jsxs("section", { className: "dsh-ssh-preview-modal-shell", children: [_jsxs("header", { children: [_jsxs("span", { children: [_jsx("strong", { title: entry.name, children: entry.name }), _jsx("small", { children: formatBytes(preview?.size ?? entry.size) })] }), _jsxs("span", { className: "dsh-ssh-file-preview-actions", children: [controls, _jsx("a", { href: downloadUrl, "aria-label": t("sftp-client.downloadFile"), title: t("sftp-client.downloadFile"), children: _jsx(IconDownloadOutline16, { size: 16 }) }), _jsx("button", { type: "button", "aria-label": t("sftp-client.closePreview"), title: t("sftp-client.closePreview"), onClick: () => setExpanded(false), children: _jsx(IconCloseOutline16, { size: 16 }) })] })] }), readOnlyNote, (editableMarkdown || draft.dirty) && _jsxs("p", { className: "dsh-ssh-preview-edit-status", role: "status", children: [draft.message || (draft.dirty ? t("sftp-client.unsavedDraftKeptInThisBrowserTab") : locked ? t("sftp-client.autoRefreshReadOnly") : t("sftp-client.editDirectlyCtrlCmdSToSave")), draftActions] }), error && preview && _jsxs("p", { className: "dsh-ssh-preview-refresh-error", role: "status", children: [t("sftp-client.refreshFailedPreviousContentKept"), error] }), _jsx("div", { ref: modalBody, className: "dsh-ssh-file-preview-body is-modal dsh-ssh-scroll-surface", children: _jsx(SftpPreviewContent, { markdownEditor: markdownEditor, entry: entry, preview: preview, error: preview ? undefined : error, fileUrl: previewUrl, downloadUrl: downloadUrl }) })] }) }), confirmDialog] });
333
+ return _jsxs(_Fragment, { children: [_jsxs("section", { className: "dsh-ssh-file-preview", style: expanded ? { visibility: 'hidden' } : undefined, children: [_jsxs("header", { children: [_jsx("button", { type: "button", className: "dsh-ssh-icon-button", "aria-label": t("sftp-client.backToDirectory"), title: t("sftp-client.backToDirectory"), disabled: draft.saving, onClick: () => draft.dirty ? setConfirmAction('leave') : onBack(), children: _jsx(IconChevronLeftOutline14, { size: 14 }) }), _jsxs("span", { className: "dsh-ssh-file-preview-title", children: [_jsx("strong", { title: entry.name, children: entry.name }), _jsx("small", { children: formatBytes(preview?.size ?? entry.size) })] }), _jsxs("span", { className: "dsh-ssh-file-preview-actions", children: [controls, _jsx("a", { onClick: trackDownloadClick, href: downloadUrl, "aria-label": t("sftp-client.downloadFile"), title: t("sftp-client.downloadFile"), children: _jsx(IconDownloadOutline16, { size: 16 }) }), !inDirectoryModal && _jsx("button", { type: "button", "aria-label": t("sftp-client.zoomPreview"), title: t("sftp-client.zoomPreview"), onClick: () => setExpanded(true), children: _jsx(IconFullscreenOutline16, { size: 16 }) })] })] }), readOnlyNote, (editableMarkdown || draft.dirty) && _jsxs("p", { className: "dsh-ssh-preview-edit-status", role: "status", children: [draft.message || (draft.dirty ? t("sftp-client.unsavedDraftKeptInThisBrowserTab") : locked ? t("sftp-client.autoRefreshReadOnly") : t("sftp-client.editDirectlyCtrlCmdSToSave")), draftActions] }), error && preview && _jsxs("p", { className: "dsh-ssh-preview-refresh-error", role: "status", children: [t("sftp-client.refreshFailedPreviousContentKept"), error] }), _jsx("div", { ref: inlineBody, className: "dsh-ssh-file-preview-body dsh-ssh-scroll-surface", children: _jsx(SftpPreviewContent, { markdownEditor: markdownEditor, entry: entry, preview: preview, error: preview ? undefined : error, fileUrl: previewUrl, downloadUrl: downloadUrl }) })] }), _jsx(Modal, { open: expanded, onClose: () => setExpanded(false), title: t("sftp-client.preview", [entry.name]), headless: true, className: "dsh-ssh-preview-modal", children: _jsxs("section", { className: "dsh-ssh-preview-modal-shell", children: [_jsxs("header", { children: [_jsxs("span", { children: [_jsx("strong", { title: entry.name, children: entry.name }), _jsx("small", { children: formatBytes(preview?.size ?? entry.size) })] }), _jsxs("span", { className: "dsh-ssh-file-preview-actions", children: [controls, _jsx("a", { onClick: trackDownloadClick, href: downloadUrl, "aria-label": t("sftp-client.downloadFile"), title: t("sftp-client.downloadFile"), children: _jsx(IconDownloadOutline16, { size: 16 }) }), _jsx("button", { type: "button", "aria-label": t("sftp-client.closePreview"), title: t("sftp-client.closePreview"), onClick: () => setExpanded(false), children: _jsx(IconCloseOutline16, { size: 16 }) })] })] }), readOnlyNote, (editableMarkdown || draft.dirty) && _jsxs("p", { className: "dsh-ssh-preview-edit-status", role: "status", children: [draft.message || (draft.dirty ? t("sftp-client.unsavedDraftKeptInThisBrowserTab") : locked ? t("sftp-client.autoRefreshReadOnly") : t("sftp-client.editDirectlyCtrlCmdSToSave")), draftActions] }), error && preview && _jsxs("p", { className: "dsh-ssh-preview-refresh-error", role: "status", children: [t("sftp-client.refreshFailedPreviousContentKept"), error] }), _jsx(LocalTransferTasks, {}), _jsx("div", { ref: modalBody, className: "dsh-ssh-file-preview-body is-modal dsh-ssh-scroll-surface", children: _jsx(SftpPreviewContent, { markdownEditor: markdownEditor, entry: entry, preview: preview, error: preview ? undefined : error, fileUrl: previewUrl, downloadUrl: downloadUrl }) })] }) }), confirmDialog] });
332
334
  }
333
335
  const SftpPreviewContent = memo(function SftpPreviewContent({ entry, preview, error, fileUrl, downloadUrl, markdownEditor }) {
334
336
  if (error)
@@ -347,7 +349,7 @@ const SftpPreviewContent = memo(function SftpPreviewContent({ entry, preview, er
347
349
  return _jsx("img", { src: fileUrl(entry.path, true), alt: entry.name });
348
350
  if (preview.kind === 'pdf')
349
351
  return _jsx("iframe", { src: fileUrl(entry.path, true), title: entry.name });
350
- return _jsxs("div", { className: "dsh-ssh-file-binary", children: [_jsx(IconDataOutline16, { size: 24 }), _jsx("strong", { children: t("sftp-client.thisFileCannotBePreviewedDirectly") }), _jsx("p", { children: preview.mimeType }), _jsxs("a", { href: downloadUrl, children: [_jsx(IconDownloadOutline16, { size: 16 }), t("sftp-client.downloadFile")] })] });
352
+ return _jsxs("div", { className: "dsh-ssh-file-binary", children: [_jsx(IconDataOutline16, { size: 24 }), _jsx("strong", { children: t("sftp-client.thisFileCannotBePreviewedDirectly") }), _jsx("p", { children: preview.mimeType }), _jsxs("a", { onClick: trackDownloadClick, href: downloadUrl, children: [_jsx(IconDownloadOutline16, { size: 16 }), t("sftp-client.downloadFile")] })] });
351
353
  });
352
354
  function formatBytes(value) {
353
355
  if (value < 1024)