- 新增 `shared/` 目录,统一管理前后端共享的类型定义与工具函数,消除重复代码 - 重构 IPC 数据传输,使用 `toIpcSafeSnapshot` 确保序列化安全 - 新增系统托盘独立窗口 (`/tray` 路由) 与主窗口关闭行为设置,提升用户体验 - 优化 Sing-box 配置校验错误提示,增强可读性 - 修复订阅更新无新节点时的提示逻辑 - 更新项目依赖与构建配置,支持共享层路径别名 (`@shared`) - 补充单元测试,完善国际化词条
89 lines
2.0 KiB
TypeScript
89 lines
2.0 KiB
TypeScript
// ============================
|
|
// 设置相关类型
|
|
// ============================
|
|
|
|
/** 节点检测方式 */
|
|
export type CheckMethod = 'ping' | 'tcp' | 'http'
|
|
|
|
/** DNS 模式 */
|
|
export type DnsMode = 'secure' | 'system'
|
|
|
|
/** 加速网络模式 */
|
|
export type AccelNetworkMode = 'tun' | 'system_proxy'
|
|
|
|
/** 网络调优预设 */
|
|
export type NetworkProfile = 'stable' | 'aggressive'
|
|
|
|
/** UDP 偏好模式 */
|
|
export type UdpMode = 'auto' | 'prefer_udp' | 'prefer_tcp'
|
|
|
|
/** TUN 栈模式 */
|
|
export type TunStackMode = 'system' | 'mixed'
|
|
|
|
/** VLESS 包编码覆盖 */
|
|
export type VlessPacketEncodingOverride = 'off' | 'xudp'
|
|
|
|
/** 会话级网络调优选项 */
|
|
export interface SessionNetworkTuningOptions {
|
|
enabled: boolean
|
|
profile: NetworkProfile
|
|
udpMode: UdpMode
|
|
tunMtu: number
|
|
tunStack: TunStackMode
|
|
strictRoute: boolean
|
|
vlessPacketEncodingOverride: VlessPacketEncodingOverride
|
|
highLossHintOnly: boolean
|
|
}
|
|
|
|
// ============================
|
|
// 外观相关类型
|
|
// ============================
|
|
|
|
/** 主题模式 */
|
|
export type Theme = 'light' | 'dark' | 'auto'
|
|
|
|
/** 主题色 */
|
|
export type ThemeColor = 'green' | 'blue' | 'purple' | 'orange' | 'red'
|
|
|
|
// ============================
|
|
// 延迟记录类型
|
|
// ============================
|
|
|
|
/** 节点延迟测试记录 */
|
|
export interface LatencyRecord {
|
|
id?: number
|
|
nodeKey: string
|
|
server: string
|
|
port: number
|
|
method: 'ping' | 'tcp' | 'http'
|
|
latency: number
|
|
loss: number
|
|
timestamp: number
|
|
gameId?: string
|
|
accelerationSeconds?: number
|
|
sessionLossRate?: number
|
|
}
|
|
|
|
/** 延迟测试上下文 */
|
|
export interface CheckRecordContext {
|
|
recordLatency?: boolean
|
|
gameId?: string
|
|
accelerationSeconds?: number
|
|
sessionLossRate?: number
|
|
}
|
|
|
|
// ============================
|
|
// 日志类型
|
|
// ============================
|
|
|
|
/** 前端日志级别 */
|
|
export type FrontendLogLevel = 'debug' | 'info' | 'warn' | 'error'
|
|
|
|
/** 前端日志载荷 */
|
|
export type FrontendLogPayload = {
|
|
level: FrontendLogLevel
|
|
source: string
|
|
message: string
|
|
detail?: string
|
|
}
|