整理代码结构

This commit is contained in:
Baobhan Sith
2025-06-01 15:31:06 +08:00
parent 3d16613194
commit 33422a215c
39 changed files with 37 additions and 37 deletions
@@ -1,7 +1,7 @@
import { getDbInstance, runDb, getDb, allDb } from '../database/connection'; import { getDbInstance, runDb, getDb, allDb } from '../database/connection';
import { AppearanceSettings, UpdateAppearanceDto } from '../types/appearance.types'; import { AppearanceSettings, UpdateAppearanceDto } from '../types/appearance.types';
import { defaultUiTheme } from '../config/default-themes'; import { defaultUiTheme } from '../config/default-themes';
import { findThemeById as findTerminalThemeById } from './terminal-theme.repository'; import { findThemeById as findTerminalThemeById } from '../terminal-themes/terminal-theme.repository';
import * as sqlite3 from 'sqlite3'; import * as sqlite3 from 'sqlite3';
const TABLE_NAME = 'appearance_settings'; const TABLE_NAME = 'appearance_settings';
+2 -2
View File
@@ -9,8 +9,8 @@ import { ipBlacklistService } from '../services/ip-blacklist.service';
import { captchaService } from '../services/captcha.service'; import { captchaService } from '../services/captcha.service';
import { settingsService } from '../services/settings.service'; import { settingsService } from '../services/settings.service';
import { passkeyService } from '../services/passkey.service'; // +++ Passkey Service import { passkeyService } from '../services/passkey.service'; // +++ Passkey Service
import { passkeyRepository } from '../repositories/passkey.repository'; // +++ Passkey Repository import { passkeyRepository } from '../passkey/passkey.repository'; // +++ Passkey Repository
import { userRepository } from '../repositories/user.repository'; // For passkey auth success import { userRepository } from '../user/user.repository'; // For passkey auth success
const notificationService = new NotificationService(); const notificationService = new NotificationService();
const auditLogService = new AuditLogService(); const auditLogService = new AuditLogService();
@@ -3,7 +3,7 @@ import * as ConnectionService from '../services/connection.service';
import * as SshService from '../services/ssh.service'; import * as SshService from '../services/ssh.service';
import * as GuacamoleService from '../services/guacamole.service'; import * as GuacamoleService from '../services/guacamole.service';
import * as ImportExportService from '../services/import-export.service'; import * as ImportExportService from '../services/import-export.service';
import * as ConnectionRepository from '../repositories/connection.repository'; import * as ConnectionRepository from './connection.repository';
@@ -1,8 +1,8 @@
import { Database } from 'sqlite3'; import { Database } from 'sqlite3';
import * as schemaSql from './schema'; import * as schemaSql from './schema';
import * as appearanceRepository from '../repositories/appearance.repository'; import * as appearanceRepository from '../appearance/appearance.repository';
import * as terminalThemeRepository from '../repositories/terminal-theme.repository'; import * as terminalThemeRepository from '../terminal-themes/terminal-theme.repository';
import * as settingsRepository from '../repositories/settings.repository'; import * as settingsRepository from '../settings/settings.repository';
import { presetTerminalThemes } from '../config/preset-themes-definition'; import { presetTerminalThemes } from '../config/preset-themes-definition';
import { runDb } from './connection'; import { runDb } from './connection';
@@ -1,5 +1,5 @@
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import { NotificationSettingsRepository } from '../repositories/notification.repository'; // Use repository import { NotificationSettingsRepository } from './notification.repository'; // Use repository
import { NotificationSetting, NotificationChannelType, NotificationChannelConfig, WebhookConfig, EmailConfig, TelegramConfig, NotificationEvent } from '../types/notification.types'; import { NotificationSetting, NotificationChannelType, NotificationChannelConfig, WebhookConfig, EmailConfig, TelegramConfig, NotificationEvent } from '../types/notification.types';
// import { AuditLogService } from '../services/audit.service'; // Keep for now if other parts use it - Removed as eventService is used // import { AuditLogService } from '../services/audit.service'; // Keep for now if other parts use it - Removed as eventService is used
import { AppEventType, default as eventService } from '../services/event.service'; // Import event service import { AppEventType, default as eventService } from '../services/event.service'; // Import event service
@@ -2,7 +2,7 @@ import fs from 'fs/promises'; // 使用 promises API
import path from 'path'; import path from 'path';
import * as appearanceRepository from '../repositories/appearance.repository'; import * as appearanceRepository from '../repositories/appearance.repository';
import { AppearanceSettings, UpdateAppearanceDto } from '../types/appearance.types'; import { AppearanceSettings, UpdateAppearanceDto } from '../types/appearance.types';
import * as terminalThemeRepository from '../repositories/terminal-theme.repository'; import * as terminalThemeRepository from '../terminal-themes/terminal-theme.repository';
import axios from 'axios'; import axios from 'axios';
import sanitize from 'sanitize-filename'; // 用于清理文件名 import sanitize from 'sanitize-filename'; // 用于清理文件名
@@ -1,4 +1,4 @@
import { AuditLogRepository } from '../repositories/audit.repository'; import { AuditLogRepository } from '../audit/audit.repository';
import { AuditLogActionType, AuditLogEntry } from '../types/audit.types'; import { AuditLogActionType, AuditLogEntry } from '../types/audit.types';
export class AuditLogService { export class AuditLogService {
@@ -1,5 +1,5 @@
import * as CommandHistoryRepository from '../repositories/command-history.repository'; import * as CommandHistoryRepository from '../command-history/command-history.repository';
import { CommandHistoryEntry } from '../repositories/command-history.repository'; import { CommandHistoryEntry } from '../command-history/command-history.repository';
/** /**
* *
@@ -1,4 +1,4 @@
import * as ConnectionRepository from '../repositories/connection.repository'; import * as ConnectionRepository from '../connections/connection.repository';
import { encrypt, decrypt } from '../utils/crypto'; import { encrypt, decrypt } from '../utils/crypto';
import { AuditLogService } from './audit.service'; import { AuditLogService } from './audit.service';
import * as SshKeyService from './ssh_key.service'; import * as SshKeyService from './ssh_key.service';
@@ -1,5 +1,5 @@
import * as FavoritePathsRepository from '../repositories/favorite-paths.repository'; import * as FavoritePathsRepository from '../favorite-paths/favorite-paths.repository';
import { FavoritePath } from '../repositories/favorite-paths.repository'; import { FavoritePath } from '../favorite-paths/favorite-paths.repository';
// 定义排序类型 // 定义排序类型
export type FavoritePathSortBy = 'name' | 'last_used_at'; export type FavoritePathSortBy = 'name' | 'last_used_at';
@@ -1,6 +1,6 @@
import * as ConnectionRepository from '../repositories/connection.repository'; import * as ConnectionRepository from '../connections/connection.repository';
import * as ProxyRepository from '../repositories/proxy.repository'; import * as ProxyRepository from '../proxies/proxy.repository';
import * as TagService from '../services/tag.service'; import * as TagService from '../services/tag.service';
import { getDbInstance, runDb, getDb as getDbRow, allDb } from '../database/connection'; import { getDbInstance, runDb, getDb as getDbRow, allDb } from '../database/connection';
import { decrypt, getEncryptionKeyBuffer as getCryptoKeyBuffer } from '../utils/crypto'; import { decrypt, getEncryptionKeyBuffer as getCryptoKeyBuffer } from '../utils/crypto';
@@ -1,5 +1,5 @@
import eventService, { AppEventType, AppEventPayload } from './event.service'; import eventService, { AppEventType, AppEventPayload } from './event.service';
import { NotificationSettingsRepository } from '../repositories/notification.repository'; import { NotificationSettingsRepository } from '../notifications/notification.repository';
import { NotificationSetting, NotificationEvent, NotificationChannelType, WebhookConfig, EmailConfig, TelegramConfig, NotificationChannelConfig } from '../types/notification.types'; import { NotificationSetting, NotificationEvent, NotificationChannelType, WebhookConfig, EmailConfig, TelegramConfig, NotificationChannelConfig } from '../types/notification.types';
import i18next, { i18nInitializationPromise } from '../i18n'; import i18next, { i18nInitializationPromise } from '../i18n';
import { EventEmitter } from 'events'; import { EventEmitter } from 'events';
@@ -1,5 +1,5 @@
import axios, { AxiosRequestConfig } from "axios"; import axios, { AxiosRequestConfig } from "axios";
import { NotificationSettingsRepository } from "../repositories/notification.repository"; import { NotificationSettingsRepository } from "../notifications/notification.repository";
import { import {
NotificationSetting, NotificationSetting,
NotificationEvent, NotificationEvent,
@@ -18,8 +18,8 @@ import type {
// and for verification.authenticationInfo is AuthenticationInfo. // and for verification.authenticationInfo is AuthenticationInfo.
// We will rely on TypeScript's inference from the VerifiedRegistrationResponse/VerifiedAuthenticationResponse types. // We will rely on TypeScript's inference from the VerifiedRegistrationResponse/VerifiedAuthenticationResponse types.
} from '@simplewebauthn/server'; } from '@simplewebauthn/server';
import { passkeyRepository, Passkey, NewPasskey } from '../repositories/passkey.repository'; import { passkeyRepository, Passkey, NewPasskey } from '../passkey/passkey.repository';
import { userRepository, User } from '../repositories/user.repository'; import { userRepository, User } from '../user/user.repository';
import { config } from '../config/app.config'; import { config } from '../config/app.config';
const RP_ID = config.rpId; const RP_ID = config.rpId;
@@ -1,5 +1,5 @@
import * as PathHistoryRepository from '../repositories/path-history.repository'; import * as PathHistoryRepository from '../path-history/path-history.repository';
import { PathHistoryEntry } from '../repositories/path-history.repository'; import { PathHistoryEntry } from '../path-history/path-history.repository';
/** /**
* *
@@ -1,4 +1,4 @@
import * as ProxyRepository from '../repositories/proxy.repository'; import * as ProxyRepository from '../proxies/proxy.repository';
import { encrypt, decrypt } from '../utils/crypto'; import { encrypt, decrypt } from '../utils/crypto';
export interface ProxyData extends ProxyRepository.ProxyData {} export interface ProxyData extends ProxyRepository.ProxyData {}
@@ -1,5 +1,5 @@
import * as QuickCommandTagRepository from '../repositories/quick-command-tag.repository'; import * as QuickCommandTagRepository from '../quick-command-tags/quick-command-tag.repository';
import { QuickCommandTag } from '../repositories/quick-command-tag.repository'; import { QuickCommandTag } from '../quick-command-tags/quick-command-tag.repository';
/** /**
* *
@@ -1,6 +1,6 @@
import * as QuickCommandsRepository from '../repositories/quick-commands.repository'; import * as QuickCommandsRepository from '../quick-commands/quick-commands.repository';
import { QuickCommandWithTags } from '../repositories/quick-commands.repository'; import { QuickCommandWithTags } from '../quick-commands/quick-commands.repository';
import * as QuickCommandTagRepository from '../repositories/quick-command-tag.repository'; import * as QuickCommandTagRepository from '../quick-command-tags/quick-command-tag.repository';
// 定义排序类型 // 定义排序类型
export type QuickCommandSortBy = 'name' | 'usage_count'; export type QuickCommandSortBy = 'name' | 'usage_count';
@@ -5,7 +5,7 @@ import {
setSidebarConfig as setSidebarConfigInRepo, setSidebarConfig as setSidebarConfigInRepo,
getCaptchaConfig as getCaptchaConfigFromRepo, getCaptchaConfig as getCaptchaConfigFromRepo,
setCaptchaConfig as setCaptchaConfigInRepo, setCaptchaConfig as setCaptchaConfigInRepo,
} from '../repositories/settings.repository'; } from '../settings/settings.repository';
import { import {
SidebarConfig, SidebarConfig,
PaneName, PaneName,
+2 -2
View File
@@ -2,8 +2,8 @@ import { Client, ClientChannel, ConnectConfig } from 'ssh2';
import { SocksClient, SocksClientOptions } from 'socks'; import { SocksClient, SocksClientOptions } from 'socks';
import http from 'http'; import http from 'http';
import net from 'net'; import net from 'net';
import * as ConnectionRepository from '../repositories/connection.repository'; import * as ConnectionRepository from '../connections/connection.repository';
import * as ProxyRepository from '../repositories/proxy.repository'; import * as ProxyRepository from '../proxies/proxy.repository';
import { decrypt } from '../utils/crypto'; import { decrypt } from '../utils/crypto';
import * as SshKeyService from './ssh_key.service'; import * as SshKeyService from './ssh_key.service';
@@ -1,6 +1,6 @@
import * as SshKeyRepository from '../repositories/ssh_key.repository'; import * as SshKeyRepository from '../ssh_keys/ssh_key.repository';
import { encrypt, decrypt } from '../utils/crypto'; import { encrypt, decrypt } from '../utils/crypto';
import { SshKeyDbRow, CreateSshKeyData, UpdateSshKeyData } from '../repositories/ssh_key.repository'; import { SshKeyDbRow, CreateSshKeyData, UpdateSshKeyData } from '../ssh_keys/ssh_key.repository';
// 定义 Service 层返回给 Controller 的基本密钥信息 (不含加密内容) // 定义 Service 层返回给 Controller 的基本密钥信息 (不含加密内容)
export interface SshKeyBasicInfo { export interface SshKeyBasicInfo {
+1 -1
View File
@@ -1,4 +1,4 @@
import * as TagRepository from '../repositories/tag.repository'; import * as TagRepository from '../tags/tag.repository';
// Re-export or define types // Re-export or define types
export interface TagData extends TagRepository.TagData {} export interface TagData extends TagRepository.TagData {}
@@ -1,4 +1,4 @@
import * as terminalThemeRepository from '../repositories/terminal-theme.repository'; import * as terminalThemeRepository from '../terminal-themes/terminal-theme.repository';
import { TerminalTheme, CreateTerminalThemeDto, UpdateTerminalThemeDto } from '../types/terminal-theme.types'; import { TerminalTheme, CreateTerminalThemeDto, UpdateTerminalThemeDto } from '../types/terminal-theme.types';
import type { ITheme } from 'xterm'; import type { ITheme } from 'xterm';
@@ -6,7 +6,7 @@ import { ipBlacklistService } from '../services/ip-blacklist.service';
import { exportConnectionsAsEncryptedZip } from '../services/import-export.service'; import { exportConnectionsAsEncryptedZip } from '../services/import-export.service';
import { UpdateSidebarConfigDto, UpdateCaptchaSettingsDto, CaptchaSettings } from '../types/settings.types'; import { UpdateSidebarConfigDto, UpdateCaptchaSettingsDto, CaptchaSettings } from '../types/settings.types';
import { AppearanceSettings, UpdateAppearanceDto } from '../types/appearance.types'; import { AppearanceSettings, UpdateAppearanceDto } from '../types/appearance.types';
import { getAppearanceSettings, updateAppearanceSettings as updateAppearanceSettingsInRepo } from '../repositories/appearance.repository'; import { getAppearanceSettings, updateAppearanceSettings as updateAppearanceSettingsInRepo } from '../appearance/appearance.repository';
import i18next from '../i18n'; import i18next from '../i18n';
const auditLogService = new AuditLogService(); const auditLogService = new AuditLogService();