整理代码结构

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 { AppearanceSettings, UpdateAppearanceDto } from '../types/appearance.types';
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';
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 { settingsService } from '../services/settings.service';
import { passkeyService } from '../services/passkey.service'; // +++ Passkey Service
import { passkeyRepository } from '../repositories/passkey.repository'; // +++ Passkey Repository
import { userRepository } from '../repositories/user.repository'; // For passkey auth success
import { passkeyRepository } from '../passkey/passkey.repository'; // +++ Passkey Repository
import { userRepository } from '../user/user.repository'; // For passkey auth success
const notificationService = new NotificationService();
const auditLogService = new AuditLogService();
@@ -3,7 +3,7 @@ import * as ConnectionService from '../services/connection.service';
import * as SshService from '../services/ssh.service';
import * as GuacamoleService from '../services/guacamole.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 * as schemaSql from './schema';
import * as appearanceRepository from '../repositories/appearance.repository';
import * as terminalThemeRepository from '../repositories/terminal-theme.repository';
import * as settingsRepository from '../repositories/settings.repository';
import * as appearanceRepository from '../appearance/appearance.repository';
import * as terminalThemeRepository from '../terminal-themes/terminal-theme.repository';
import * as settingsRepository from '../settings/settings.repository';
import { presetTerminalThemes } from '../config/preset-themes-definition';
import { runDb } from './connection';
@@ -1,5 +1,5 @@
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 { 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
@@ -2,7 +2,7 @@ import fs from 'fs/promises'; // 使用 promises API
import path from 'path';
import * as appearanceRepository from '../repositories/appearance.repository';
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 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';
export class AuditLogService {
@@ -1,5 +1,5 @@
import * as CommandHistoryRepository from '../repositories/command-history.repository';
import { CommandHistoryEntry } from '../repositories/command-history.repository';
import * as CommandHistoryRepository from '../command-history/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 { AuditLogService } from './audit.service';
import * as SshKeyService from './ssh_key.service';
@@ -1,5 +1,5 @@
import * as FavoritePathsRepository from '../repositories/favorite-paths.repository';
import { FavoritePath } from '../repositories/favorite-paths.repository';
import * as FavoritePathsRepository from '../favorite-paths/favorite-paths.repository';
import { FavoritePath } from '../favorite-paths/favorite-paths.repository';
// 定义排序类型
export type FavoritePathSortBy = 'name' | 'last_used_at';
@@ -1,6 +1,6 @@
import * as ConnectionRepository from '../repositories/connection.repository';
import * as ProxyRepository from '../repositories/proxy.repository';
import * as ConnectionRepository from '../connections/connection.repository';
import * as ProxyRepository from '../proxies/proxy.repository';
import * as TagService from '../services/tag.service';
import { getDbInstance, runDb, getDb as getDbRow, allDb } from '../database/connection';
import { decrypt, getEncryptionKeyBuffer as getCryptoKeyBuffer } from '../utils/crypto';
@@ -1,5 +1,5 @@
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 i18next, { i18nInitializationPromise } from '../i18n';
import { EventEmitter } from 'events';
@@ -1,5 +1,5 @@
import axios, { AxiosRequestConfig } from "axios";
import { NotificationSettingsRepository } from "../repositories/notification.repository";
import { NotificationSettingsRepository } from "../notifications/notification.repository";
import {
NotificationSetting,
NotificationEvent,
@@ -18,8 +18,8 @@ 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 '../repositories/passkey.repository';
import { userRepository, User } from '../repositories/user.repository';
import { passkeyRepository, Passkey, NewPasskey } from '../passkey/passkey.repository';
import { userRepository, User } from '../user/user.repository';
import { config } from '../config/app.config';
const RP_ID = config.rpId;
@@ -1,5 +1,5 @@
import * as PathHistoryRepository from '../repositories/path-history.repository';
import { PathHistoryEntry } from '../repositories/path-history.repository';
import * as PathHistoryRepository from '../path-history/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';
export interface ProxyData extends ProxyRepository.ProxyData {}
@@ -1,5 +1,5 @@
import * as QuickCommandTagRepository from '../repositories/quick-command-tag.repository';
import { QuickCommandTag } from '../repositories/quick-command-tag.repository';
import * as QuickCommandTagRepository from '../quick-command-tags/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 { QuickCommandWithTags } from '../repositories/quick-commands.repository';
import * as QuickCommandTagRepository from '../repositories/quick-command-tag.repository';
import * as QuickCommandsRepository from '../quick-commands/quick-commands.repository';
import { QuickCommandWithTags } from '../quick-commands/quick-commands.repository';
import * as QuickCommandTagRepository from '../quick-command-tags/quick-command-tag.repository';
// 定义排序类型
export type QuickCommandSortBy = 'name' | 'usage_count';
@@ -5,7 +5,7 @@ import {
setSidebarConfig as setSidebarConfigInRepo,
getCaptchaConfig as getCaptchaConfigFromRepo,
setCaptchaConfig as setCaptchaConfigInRepo,
} from '../repositories/settings.repository';
} from '../settings/settings.repository';
import {
SidebarConfig,
PaneName,
+2 -2
View File
@@ -2,8 +2,8 @@ import { Client, ClientChannel, ConnectConfig } from 'ssh2';
import { SocksClient, SocksClientOptions } from 'socks';
import http from 'http';
import net from 'net';
import * as ConnectionRepository from '../repositories/connection.repository';
import * as ProxyRepository from '../repositories/proxy.repository';
import * as ConnectionRepository from '../connections/connection.repository';
import * as ProxyRepository from '../proxies/proxy.repository';
import { decrypt } from '../utils/crypto';
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 { SshKeyDbRow, CreateSshKeyData, UpdateSshKeyData } from '../repositories/ssh_key.repository';
import { SshKeyDbRow, CreateSshKeyData, UpdateSshKeyData } from '../ssh_keys/ssh_key.repository';
// 定义 Service 层返回给 Controller 的基本密钥信息 (不含加密内容)
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
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 type { ITheme } from 'xterm';
@@ -6,7 +6,7 @@ import { ipBlacklistService } from '../services/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';
import { getAppearanceSettings, updateAppearanceSettings as updateAppearanceSettingsInRepo } from '../repositories/appearance.repository';
import { getAppearanceSettings, updateAppearanceSettings as updateAppearanceSettingsInRepo } from '../appearance/appearance.repository';
import i18next from '../i18n';
const auditLogService = new AuditLogService();