整理代码结构
This commit is contained in:
+1
-1
@@ -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';
|
||||||
@@ -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,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,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();
|
||||||
|
|||||||
Reference in New Issue
Block a user