From 27fa1caa1ff7ee650f28d6fa1ed3539e59eac841 Mon Sep 17 00:00:00 2001 From: Baobhan Sith <80159437+Heavrnl@users.noreply.github.com> Date: Sun, 1 Jun 2025 15:35:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/backend/src/appearance/appearance.controller.ts | 2 +- .../src/{services => appearance}/appearance.service.ts | 0 packages/backend/src/{services => audit}/audit.service.ts | 0 packages/backend/src/auth/auth.controller.ts | 2 +- .../backend/src/{services => auth}/captcha.service.ts | 0 .../src/{services => auth}/ip-blacklist.service.ts | 0 .../command-history.service.ts | 0 .../src/{services => connections}/connection.service.ts | 6 +++--- .../backend/src/connections/connections.controller.ts | 2 +- packages/backend/src/docker/docker.controller.ts | 2 +- .../backend/src/{services => docker}/docker.service.ts | 0 .../src/favorite-paths/favorite-paths.controller.ts | 4 ++-- .../favorite-paths.service.ts | 0 packages/backend/src/index.ts | 2 +- .../notification.dispatcher.service.ts | 0 .../notification.processor.service.ts | 0 .../{services => notifications}/notification.service.ts | 0 .../senders/email.sender.service.ts | 0 .../senders/telegram.sender.service.ts | 0 .../senders/webhook.sender.service.ts | 0 .../backend/src/{services => passkey}/passkey.service.ts | 2 +- .../backend/src/{services => proxies}/proxy.service.ts | 0 .../quick-command-tags/quick-command-tag.controller.ts | 2 +- .../quick-command-tag.service.ts | 0 .../quick-commands.service.ts | 0 packages/backend/src/settings/settings.controller.ts | 8 ++++---- .../src/{services => settings}/settings.service.ts | 0 packages/backend/src/{services => sftp}/sftp.service.ts | 0 .../src/{services => ssh-suspend}/ssh-suspend.service.ts | 0 .../temporary-log-storage.service.ts | 0 .../backend/src/{services => ssh_keys}/ssh_key.service.ts | 0 packages/backend/src/{services => tags}/tag.service.ts | 0 .../terminal-theme.service.ts | 0 packages/backend/src/transfers/transfers.service.ts | 2 +- packages/backend/src/websocket.ts | 2 +- packages/backend/src/websocket/connection.ts | 4 ++-- packages/backend/src/websocket/handlers/ssh.handler.ts | 2 +- packages/backend/src/websocket/state.ts | 4 ++-- packages/backend/src/websocket/utils.ts | 2 +- 39 files changed, 24 insertions(+), 24 deletions(-) rename packages/backend/src/{services => appearance}/appearance.service.ts (100%) rename packages/backend/src/{services => audit}/audit.service.ts (100%) rename packages/backend/src/{services => auth}/captcha.service.ts (100%) rename packages/backend/src/{services => auth}/ip-blacklist.service.ts (100%) rename packages/backend/src/{services => command-history}/command-history.service.ts (100%) rename packages/backend/src/{services => connections}/connection.service.ts (99%) rename packages/backend/src/{services => docker}/docker.service.ts (100%) rename packages/backend/src/{services => favorite-paths}/favorite-paths.service.ts (100%) rename packages/backend/src/{services => notifications}/notification.dispatcher.service.ts (100%) rename packages/backend/src/{services => notifications}/notification.processor.service.ts (100%) rename packages/backend/src/{services => notifications}/notification.service.ts (100%) rename packages/backend/src/{services => notifications}/senders/email.sender.service.ts (100%) rename packages/backend/src/{services => notifications}/senders/telegram.sender.service.ts (100%) rename packages/backend/src/{services => notifications}/senders/webhook.sender.service.ts (100%) rename packages/backend/src/{services => passkey}/passkey.service.ts (99%) rename packages/backend/src/{services => proxies}/proxy.service.ts (100%) rename packages/backend/src/{services => quick-command-tags}/quick-command-tag.service.ts (100%) rename packages/backend/src/{services => quick-commands}/quick-commands.service.ts (100%) rename packages/backend/src/{services => settings}/settings.service.ts (100%) rename packages/backend/src/{services => sftp}/sftp.service.ts (100%) rename packages/backend/src/{services => ssh-suspend}/ssh-suspend.service.ts (100%) rename packages/backend/src/{services => ssh-suspend}/temporary-log-storage.service.ts (100%) rename packages/backend/src/{services => ssh_keys}/ssh_key.service.ts (100%) rename packages/backend/src/{services => tags}/tag.service.ts (100%) rename packages/backend/src/{services => terminal-themes}/terminal-theme.service.ts (100%) diff --git a/packages/backend/src/appearance/appearance.controller.ts b/packages/backend/src/appearance/appearance.controller.ts index 1833c2e..5a0132b 100644 --- a/packages/backend/src/appearance/appearance.controller.ts +++ b/packages/backend/src/appearance/appearance.controller.ts @@ -1,5 +1,5 @@ import { Request, Response } from 'express'; -import * as appearanceService from '../services/appearance.service'; +import * as appearanceService from './appearance.service'; import { UpdateAppearanceDto } from '../types/appearance.types'; import multer from 'multer'; import path from 'path'; diff --git a/packages/backend/src/services/appearance.service.ts b/packages/backend/src/appearance/appearance.service.ts similarity index 100% rename from packages/backend/src/services/appearance.service.ts rename to packages/backend/src/appearance/appearance.service.ts diff --git a/packages/backend/src/services/audit.service.ts b/packages/backend/src/audit/audit.service.ts similarity index 100% rename from packages/backend/src/services/audit.service.ts rename to packages/backend/src/audit/audit.service.ts diff --git a/packages/backend/src/auth/auth.controller.ts b/packages/backend/src/auth/auth.controller.ts index ec497a5..d13dcde 100644 --- a/packages/backend/src/auth/auth.controller.ts +++ b/packages/backend/src/auth/auth.controller.ts @@ -8,7 +8,7 @@ import { AuditLogService } from '../services/audit.service'; import { ipBlacklistService } from '../services/ip-blacklist.service'; import { captchaService } from '../services/captcha.service'; import { settingsService } from '../services/settings.service'; -import { passkeyService } from '../services/passkey.service'; // +++ Passkey Service +import { passkeyService } from '../passkey/passkey.service'; // +++ Passkey Service import { passkeyRepository } from '../passkey/passkey.repository'; // +++ Passkey Repository import { userRepository } from '../user/user.repository'; // For passkey auth success diff --git a/packages/backend/src/services/captcha.service.ts b/packages/backend/src/auth/captcha.service.ts similarity index 100% rename from packages/backend/src/services/captcha.service.ts rename to packages/backend/src/auth/captcha.service.ts diff --git a/packages/backend/src/services/ip-blacklist.service.ts b/packages/backend/src/auth/ip-blacklist.service.ts similarity index 100% rename from packages/backend/src/services/ip-blacklist.service.ts rename to packages/backend/src/auth/ip-blacklist.service.ts diff --git a/packages/backend/src/services/command-history.service.ts b/packages/backend/src/command-history/command-history.service.ts similarity index 100% rename from packages/backend/src/services/command-history.service.ts rename to packages/backend/src/command-history/command-history.service.ts diff --git a/packages/backend/src/services/connection.service.ts b/packages/backend/src/connections/connection.service.ts similarity index 99% rename from packages/backend/src/services/connection.service.ts rename to packages/backend/src/connections/connection.service.ts index c766490..9b25ef5 100644 --- a/packages/backend/src/services/connection.service.ts +++ b/packages/backend/src/connections/connection.service.ts @@ -1,7 +1,7 @@ -import * as ConnectionRepository from '../connections/connection.repository'; +import * as ConnectionRepository from './connection.repository'; import { encrypt, decrypt } from '../utils/crypto'; -import { AuditLogService } from './audit.service'; -import * as SshKeyService from './ssh_key.service'; +import { AuditLogService } from '../audit/audit.service'; +import * as SshKeyService from '../ssh_keys/ssh_key.service'; import { ConnectionBase, ConnectionWithTags, diff --git a/packages/backend/src/connections/connections.controller.ts b/packages/backend/src/connections/connections.controller.ts index ad271eb..86f1d30 100644 --- a/packages/backend/src/connections/connections.controller.ts +++ b/packages/backend/src/connections/connections.controller.ts @@ -1,5 +1,5 @@ import { Request, Response } from 'express'; -import * as ConnectionService from '../services/connection.service'; +import * as ConnectionService from './connection.service'; import * as SshService from '../services/ssh.service'; import * as GuacamoleService from '../services/guacamole.service'; import * as ImportExportService from '../services/import-export.service'; diff --git a/packages/backend/src/docker/docker.controller.ts b/packages/backend/src/docker/docker.controller.ts index 88c0ba7..379db28 100644 --- a/packages/backend/src/docker/docker.controller.ts +++ b/packages/backend/src/docker/docker.controller.ts @@ -1,5 +1,5 @@ import { Request, Response, NextFunction } from 'express'; -import { DockerService, DockerCommand } from '../services/docker.service'; +import { DockerService, DockerCommand } from './docker.service'; // 由于没有 typedi,我们将手动实例化服务或通过其他方式获取实例 // 简单起见,这里直接 new 一个实例。在实际项目中,可能需要更复杂的实例管理。 diff --git a/packages/backend/src/services/docker.service.ts b/packages/backend/src/docker/docker.service.ts similarity index 100% rename from packages/backend/src/services/docker.service.ts rename to packages/backend/src/docker/docker.service.ts diff --git a/packages/backend/src/favorite-paths/favorite-paths.controller.ts b/packages/backend/src/favorite-paths/favorite-paths.controller.ts index 2b1f69a..bfbc8b7 100644 --- a/packages/backend/src/favorite-paths/favorite-paths.controller.ts +++ b/packages/backend/src/favorite-paths/favorite-paths.controller.ts @@ -1,6 +1,6 @@ import { Request, Response } from 'express'; -import * as FavoritePathsService from '../services/favorite-paths.service'; -import { FavoritePathSortBy } from '../services/favorite-paths.service'; +import * as FavoritePathsService from '../favorite-paths/favorite-paths.service'; +import { FavoritePathSortBy } from '../favorite-paths/favorite-paths.service'; /** * 处理添加新收藏路径的请求 diff --git a/packages/backend/src/services/favorite-paths.service.ts b/packages/backend/src/favorite-paths/favorite-paths.service.ts similarity index 100% rename from packages/backend/src/services/favorite-paths.service.ts rename to packages/backend/src/favorite-paths/favorite-paths.service.ts diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts index 2414c16..e8f1a7c 100644 --- a/packages/backend/src/index.ts +++ b/packages/backend/src/index.ts @@ -62,7 +62,7 @@ import { ipWhitelistMiddleware } from './auth/ipWhitelist.middleware'; import './services/event.service'; import './services/notification.processor.service'; -import './services/notification.dispatcher.service'; +import './notifications/notification.dispatcher.service'; diff --git a/packages/backend/src/services/notification.dispatcher.service.ts b/packages/backend/src/notifications/notification.dispatcher.service.ts similarity index 100% rename from packages/backend/src/services/notification.dispatcher.service.ts rename to packages/backend/src/notifications/notification.dispatcher.service.ts diff --git a/packages/backend/src/services/notification.processor.service.ts b/packages/backend/src/notifications/notification.processor.service.ts similarity index 100% rename from packages/backend/src/services/notification.processor.service.ts rename to packages/backend/src/notifications/notification.processor.service.ts diff --git a/packages/backend/src/services/notification.service.ts b/packages/backend/src/notifications/notification.service.ts similarity index 100% rename from packages/backend/src/services/notification.service.ts rename to packages/backend/src/notifications/notification.service.ts diff --git a/packages/backend/src/services/senders/email.sender.service.ts b/packages/backend/src/notifications/senders/email.sender.service.ts similarity index 100% rename from packages/backend/src/services/senders/email.sender.service.ts rename to packages/backend/src/notifications/senders/email.sender.service.ts diff --git a/packages/backend/src/services/senders/telegram.sender.service.ts b/packages/backend/src/notifications/senders/telegram.sender.service.ts similarity index 100% rename from packages/backend/src/services/senders/telegram.sender.service.ts rename to packages/backend/src/notifications/senders/telegram.sender.service.ts diff --git a/packages/backend/src/services/senders/webhook.sender.service.ts b/packages/backend/src/notifications/senders/webhook.sender.service.ts similarity index 100% rename from packages/backend/src/services/senders/webhook.sender.service.ts rename to packages/backend/src/notifications/senders/webhook.sender.service.ts diff --git a/packages/backend/src/services/passkey.service.ts b/packages/backend/src/passkey/passkey.service.ts similarity index 99% rename from packages/backend/src/services/passkey.service.ts rename to packages/backend/src/passkey/passkey.service.ts index fe0467f..b7c6833 100644 --- a/packages/backend/src/services/passkey.service.ts +++ b/packages/backend/src/passkey/passkey.service.ts @@ -18,7 +18,7 @@ import type { // and for verification.authenticationInfo is AuthenticationInfo. // We will rely on TypeScript's inference from the VerifiedRegistrationResponse/VerifiedAuthenticationResponse types. } from '@simplewebauthn/server'; -import { passkeyRepository, Passkey, NewPasskey } from '../passkey/passkey.repository'; +import { passkeyRepository, Passkey, NewPasskey } from './passkey.repository'; import { userRepository, User } from '../user/user.repository'; import { config } from '../config/app.config'; diff --git a/packages/backend/src/services/proxy.service.ts b/packages/backend/src/proxies/proxy.service.ts similarity index 100% rename from packages/backend/src/services/proxy.service.ts rename to packages/backend/src/proxies/proxy.service.ts diff --git a/packages/backend/src/quick-command-tags/quick-command-tag.controller.ts b/packages/backend/src/quick-command-tags/quick-command-tag.controller.ts index d9ee415..268ab84 100644 --- a/packages/backend/src/quick-command-tags/quick-command-tag.controller.ts +++ b/packages/backend/src/quick-command-tags/quick-command-tag.controller.ts @@ -1,5 +1,5 @@ import { Request, Response } from 'express'; -import * as QuickCommandTagService from '../services/quick-command-tag.service'; +import * as QuickCommandTagService from './quick-command-tag.service'; /** * 处理获取所有快捷指令标签的请求 diff --git a/packages/backend/src/services/quick-command-tag.service.ts b/packages/backend/src/quick-command-tags/quick-command-tag.service.ts similarity index 100% rename from packages/backend/src/services/quick-command-tag.service.ts rename to packages/backend/src/quick-command-tags/quick-command-tag.service.ts diff --git a/packages/backend/src/services/quick-commands.service.ts b/packages/backend/src/quick-commands/quick-commands.service.ts similarity index 100% rename from packages/backend/src/services/quick-commands.service.ts rename to packages/backend/src/quick-commands/quick-commands.service.ts diff --git a/packages/backend/src/settings/settings.controller.ts b/packages/backend/src/settings/settings.controller.ts index 158c8de..85fa85f 100644 --- a/packages/backend/src/settings/settings.controller.ts +++ b/packages/backend/src/settings/settings.controller.ts @@ -1,8 +1,8 @@ import { Request, Response } from 'express'; -import { settingsService } from '../services/settings.service'; -import { AuditLogService } from '../services/audit.service'; -import { NotificationService } from '../services/notification.service'; -import { ipBlacklistService } from '../services/ip-blacklist.service'; +import { settingsService } from './settings.service'; +import { AuditLogService } from '../audit/audit.service'; +import { NotificationService } from '../notifications/notification.service'; +import { ipBlacklistService } from '../auth/ip-blacklist.service'; import { exportConnectionsAsEncryptedZip } from '../services/import-export.service'; import { UpdateSidebarConfigDto, UpdateCaptchaSettingsDto, CaptchaSettings } from '../types/settings.types'; import { AppearanceSettings, UpdateAppearanceDto } from '../types/appearance.types'; diff --git a/packages/backend/src/services/settings.service.ts b/packages/backend/src/settings/settings.service.ts similarity index 100% rename from packages/backend/src/services/settings.service.ts rename to packages/backend/src/settings/settings.service.ts diff --git a/packages/backend/src/services/sftp.service.ts b/packages/backend/src/sftp/sftp.service.ts similarity index 100% rename from packages/backend/src/services/sftp.service.ts rename to packages/backend/src/sftp/sftp.service.ts diff --git a/packages/backend/src/services/ssh-suspend.service.ts b/packages/backend/src/ssh-suspend/ssh-suspend.service.ts similarity index 100% rename from packages/backend/src/services/ssh-suspend.service.ts rename to packages/backend/src/ssh-suspend/ssh-suspend.service.ts diff --git a/packages/backend/src/services/temporary-log-storage.service.ts b/packages/backend/src/ssh-suspend/temporary-log-storage.service.ts similarity index 100% rename from packages/backend/src/services/temporary-log-storage.service.ts rename to packages/backend/src/ssh-suspend/temporary-log-storage.service.ts diff --git a/packages/backend/src/services/ssh_key.service.ts b/packages/backend/src/ssh_keys/ssh_key.service.ts similarity index 100% rename from packages/backend/src/services/ssh_key.service.ts rename to packages/backend/src/ssh_keys/ssh_key.service.ts diff --git a/packages/backend/src/services/tag.service.ts b/packages/backend/src/tags/tag.service.ts similarity index 100% rename from packages/backend/src/services/tag.service.ts rename to packages/backend/src/tags/tag.service.ts diff --git a/packages/backend/src/services/terminal-theme.service.ts b/packages/backend/src/terminal-themes/terminal-theme.service.ts similarity index 100% rename from packages/backend/src/services/terminal-theme.service.ts rename to packages/backend/src/terminal-themes/terminal-theme.service.ts diff --git a/packages/backend/src/transfers/transfers.service.ts b/packages/backend/src/transfers/transfers.service.ts index c471f01..e1c87a9 100644 --- a/packages/backend/src/transfers/transfers.service.ts +++ b/packages/backend/src/transfers/transfers.service.ts @@ -3,7 +3,7 @@ import * as crypto from 'crypto'; import { v4 as uuidv4 } from 'uuid'; import { Client, ConnectConfig, SFTPWrapper } from 'ssh2'; import { InitiateTransferPayload, TransferTask, TransferSubTask } from './transfers.types'; -import { getConnectionWithDecryptedCredentials } from '../services/connection.service'; +import { getConnectionWithDecryptedCredentials } from '../connections/connection.service'; import type { ConnectionWithTags, DecryptedConnectionCredentials } from '../types/connection.types'; diff --git a/packages/backend/src/websocket.ts b/packages/backend/src/websocket.ts index e462f31..5b43d30 100644 --- a/packages/backend/src/websocket.ts +++ b/packages/backend/src/websocket.ts @@ -6,7 +6,7 @@ import { initializeUpgradeHandler } from './websocket/upgrade'; import { initializeConnectionHandler } from './websocket/connection'; import { clientStates } from './websocket/state'; import { sshSuspendService } from './services/ssh-suspend.service'; -import { SftpService } from './services/sftp.service'; +import { SftpService } from './sftp/sftp.service'; import { cleanupClientConnection } from './websocket/utils'; diff --git a/packages/backend/src/websocket/connection.ts b/packages/backend/src/websocket/connection.ts index 232bf7a..e31f2a9 100644 --- a/packages/backend/src/websocket/connection.ts +++ b/packages/backend/src/websocket/connection.ts @@ -23,10 +23,10 @@ import { ClientState } from './types'; import { SshSuspendService } from '../services/ssh-suspend.service'; -import { SftpService } from '../services/sftp.service'; +import { SftpService } from '../sftp/sftp.service'; import { cleanupClientConnection } from './utils'; import { clientStates } from './state'; -import { temporaryLogStorageService } from '../services/temporary-log-storage.service'; +import { temporaryLogStorageService } from '../ssh-suspend/temporary-log-storage.service'; // Handlers import { handleRdpProxyConnection } from './handlers/rdp.handler'; diff --git a/packages/backend/src/websocket/handlers/ssh.handler.ts b/packages/backend/src/websocket/handlers/ssh.handler.ts index a8affd4..24cf873 100644 --- a/packages/backend/src/websocket/handlers/ssh.handler.ts +++ b/packages/backend/src/websocket/handlers/ssh.handler.ts @@ -4,7 +4,7 @@ import { AuthenticatedWebSocket, ClientState } from '../types'; import { clientStates, sftpService, statusMonitorService, auditLogService, notificationService } from '../state'; import * as SshService from '../../services/ssh.service'; import { cleanupClientConnection } from '../utils'; -import { temporaryLogStorageService } from '../../services/temporary-log-storage.service'; +import { temporaryLogStorageService } from '../../ssh-suspend/temporary-log-storage.service'; import { startDockerStatusPolling } from './docker.handler'; import WebSocket from 'ws'; diff --git a/packages/backend/src/websocket/state.ts b/packages/backend/src/websocket/state.ts index fabe056..8a68410 100644 --- a/packages/backend/src/websocket/state.ts +++ b/packages/backend/src/websocket/state.ts @@ -1,9 +1,9 @@ import { ClientState } from './types'; -import { SftpService } from '../services/sftp.service'; +import { SftpService } from '../sftp/sftp.service'; import { StatusMonitorService } from '../services/status-monitor.service'; import { AuditLogService } from '../services/audit.service'; import { NotificationService } from '../services/notification.service'; -import { DockerService } from '../services/docker.service'; +import { DockerService } from '../docker/docker.service'; import { settingsService } from '../services/settings.service'; // 添加导入 // 存储所有活动客户端的状态 (key: sessionId) diff --git a/packages/backend/src/websocket/utils.ts b/packages/backend/src/websocket/utils.ts index 19d10f9..09696a6 100644 --- a/packages/backend/src/websocket/utils.ts +++ b/packages/backend/src/websocket/utils.ts @@ -1,5 +1,5 @@ import { PortInfo, ClientState } from './types'; -import { SftpService } from '../services/sftp.service'; +import { SftpService } from '../sftp/sftp.service'; import { StatusMonitorService } from '../services/status-monitor.service'; import { clientStates, sftpService, statusMonitorService } from './state'; import { sshSuspendService } from '../services/ssh-suspend.service';