feat: add GUI support for AnyTLS/Mieru/Sudoku and AnyTLS URI parsing

This commit is contained in:
Slinetrac
2025-12-30 15:15:55 +08:00
parent c80c659180
commit 772b87e733
5 changed files with 167 additions and 5 deletions
+74 -1
View File
@@ -429,6 +429,16 @@ type CipherType =
| "aez-384"
| "deoxys-ii-256-128"
| "rc4-md5";
type MieruTransport = "TCP" | "UDP";
type MieruMultiplexing =
| "MULTIPLEXING_OFF"
| "MULTIPLEXING_LOW"
| "MULTIPLEXING_MIDDLE"
| "MULTIPLEXING_HIGH";
type SudokuAeadMethod = "chacha20-poly1305" | "aes-128-gcm" | "none";
type SudokuTableType = "prefer_ascii" | "prefer_entropy";
type SudokuHttpMaskMode = "legacy" | "stream" | "poll" | "auto";
type SudokuHttpMaskStrategy = "random" | "post" | "websocket";
// base
interface IProxyBaseConfig {
tfo?: boolean;
@@ -513,6 +523,29 @@ interface IProxyTrojanConfig extends IProxyBaseConfig {
};
"client-fingerprint"?: ClientFingerprint;
}
// anytls
interface IProxyAnyTLSConfig extends IProxyBaseConfig {
name: string;
type: "anytls";
server?: string;
port?: number;
password?: string;
alpn?: string[];
sni?: string;
"client-fingerprint"?: ClientFingerprint;
"skip-cert-verify"?: boolean;
fingerprint?: string;
certificate?: string;
"private-key"?: string;
"ech-opts"?: {
enable?: boolean;
config?: string;
};
udp?: boolean;
"idle-session-check-interval"?: number;
"idle-session-timeout"?: number;
"min-idle-session"?: number;
}
// tuic
interface IProxyTuicConfig extends IProxyBaseConfig {
name: string;
@@ -546,6 +579,20 @@ interface IProxyTuicConfig extends IProxyBaseConfig {
"udp-over-stream"?: boolean;
"udp-over-stream-version"?: number;
}
// mieru
interface IProxyMieruConfig extends IProxyBaseConfig {
name: string;
type: "mieru";
server?: string;
port?: number;
"port-range"?: string;
transport?: MieruTransport;
udp?: boolean;
username?: string;
password?: string;
multiplexing?: MieruMultiplexing;
"handshake-mode"?: string;
}
// vless
interface IProxyVlessConfig extends IProxyBaseConfig {
name: string;
@@ -714,6 +761,26 @@ interface IProxyShadowsocksConfig extends IProxyBaseConfig {
"client-fingerprint"?: ClientFingerprint;
smux?: boolean;
}
// sudoku
interface IProxySudokuConfig extends IProxyBaseConfig {
name: string;
type: "sudoku";
server?: string;
port?: number;
key?: string;
"aead-method"?: SudokuAeadMethod;
"padding-min"?: number;
"padding-max"?: number;
"table-type"?: SudokuTableType;
"enable-pure-downlink"?: boolean;
"http-mask"?: boolean;
"http-mask-mode"?: SudokuHttpMaskMode;
"http-mask-tls"?: boolean;
"http-mask-host"?: string;
"http-mask-strategy"?: SudokuHttpMaskStrategy;
"custom-table"?: string;
"custom-tables"?: string[];
}
// shadowsocksR
interface IProxyshadowsocksRConfig extends IProxyBaseConfig {
name: string;
@@ -765,13 +832,16 @@ interface IProxyConfig
IProxySocks5Config,
IProxySshConfig,
IProxyTrojanConfig,
IProxyAnyTLSConfig,
IProxyTuicConfig,
IProxyMieruConfig,
IProxyVlessConfig,
IProxyVmessConfig,
IProxyWireguardConfig,
IProxyHysteriaConfig,
IProxyHysteria2Config,
IProxyShadowsocksConfig,
IProxySudokuConfig,
IProxyshadowsocksRConfig,
IProxySmuxConfig,
IProxySnellConfig {
@@ -783,6 +853,7 @@ interface IProxyConfig
| "snell"
| "http"
| "trojan"
| "anytls"
| "hysteria"
| "hysteria2"
| "tuic"
@@ -790,7 +861,9 @@ interface IProxyConfig
| "ssh"
| "socks5"
| "vmess"
| "vless";
| "vless"
| "mieru"
| "sudoku";
}
interface IVergeConfig {