193 lines
4.6 KiB
TypeScript
193 lines
4.6 KiB
TypeScript
import { XHTTP_MODES } from './constants';
|
|
import type { ProtocolType } from './types';
|
|
|
|
export function getProtocolDefaultConfig(proto: ProtocolType) {
|
|
switch (proto) {
|
|
case 'shadowsocks':
|
|
return {
|
|
type: 'shadowsocks',
|
|
enable: false,
|
|
port: null,
|
|
cipher: 'chacha20-ietf-poly1305',
|
|
server_key: null,
|
|
obfs: 'none',
|
|
obfs_host: null,
|
|
obfs_path: null,
|
|
sni: null,
|
|
allow_insecure: null,
|
|
cert_mode: 'none',
|
|
cert_dns_provider: null,
|
|
cert_dns_env: null,
|
|
ratio: 1,
|
|
} as any;
|
|
case 'vmess':
|
|
return {
|
|
type: 'vmess',
|
|
enable: false,
|
|
host: null,
|
|
port: null,
|
|
transport: 'tcp',
|
|
security: 'none',
|
|
path: null,
|
|
service_name: null,
|
|
sni: null,
|
|
allow_insecure: null,
|
|
fingerprint: 'chrome',
|
|
cert_mode: 'none',
|
|
cert_dns_provider: null,
|
|
cert_dns_env: null,
|
|
ratio: 1,
|
|
} as any;
|
|
case 'vless':
|
|
return {
|
|
type: 'vless',
|
|
enable: false,
|
|
host: null,
|
|
port: null,
|
|
transport: 'tcp',
|
|
security: 'none',
|
|
flow: 'none',
|
|
path: null,
|
|
service_name: null,
|
|
sni: null,
|
|
allow_insecure: null,
|
|
fingerprint: 'chrome',
|
|
reality_server_addr: null,
|
|
reality_server_port: null,
|
|
reality_private_key: null,
|
|
reality_public_key: null,
|
|
reality_short_id: null,
|
|
xhttp_mode: XHTTP_MODES[0], // 'auto'
|
|
xhttp_extra: null,
|
|
encryption: 'none',
|
|
encryption_mode: null,
|
|
encryption_rtt: null,
|
|
encryption_ticket: null,
|
|
encryption_server_padding: null,
|
|
encryption_private_key: null,
|
|
encryption_client_padding: null,
|
|
encryption_password: null,
|
|
cert_mode: 'none',
|
|
cert_dns_provider: null,
|
|
cert_dns_env: null,
|
|
ratio: 1,
|
|
} as any;
|
|
case 'trojan':
|
|
return {
|
|
type: 'trojan',
|
|
enable: false,
|
|
host: null,
|
|
port: null,
|
|
transport: 'tcp',
|
|
security: 'tls',
|
|
path: null,
|
|
service_name: null,
|
|
sni: null,
|
|
allow_insecure: null,
|
|
fingerprint: 'chrome',
|
|
cert_mode: 'none',
|
|
cert_dns_provider: null,
|
|
cert_dns_env: null,
|
|
ratio: 1,
|
|
} as any;
|
|
case 'hysteria':
|
|
return {
|
|
type: 'hysteria',
|
|
enable: false,
|
|
port: null,
|
|
hop_ports: null,
|
|
hop_interval: null,
|
|
obfs: 'none',
|
|
obfs_password: null,
|
|
security: 'tls',
|
|
up_mbps: null,
|
|
down_mbps: null,
|
|
sni: null,
|
|
allow_insecure: null,
|
|
fingerprint: 'chrome',
|
|
cert_mode: 'none',
|
|
cert_dns_provider: null,
|
|
cert_dns_env: null,
|
|
ratio: 1,
|
|
} as any;
|
|
case 'tuic':
|
|
return {
|
|
type: 'tuic',
|
|
enable: false,
|
|
port: null,
|
|
disable_sni: false,
|
|
reduce_rtt: false,
|
|
udp_relay_mode: 'native',
|
|
congestion_controller: 'bbr',
|
|
security: 'tls',
|
|
sni: null,
|
|
allow_insecure: false,
|
|
fingerprint: 'chrome',
|
|
cert_mode: 'none',
|
|
cert_dns_provider: null,
|
|
cert_dns_env: null,
|
|
ratio: 1,
|
|
} as any;
|
|
case 'socks':
|
|
return {
|
|
type: 'socks',
|
|
enable: false,
|
|
port: null,
|
|
ratio: 1,
|
|
} as any;
|
|
case 'naive':
|
|
return {
|
|
type: 'naive',
|
|
enable: false,
|
|
port: null,
|
|
security: 'none',
|
|
sni: null,
|
|
allow_insecure: null,
|
|
fingerprint: 'chrome',
|
|
cert_mode: 'none',
|
|
cert_dns_provider: null,
|
|
cert_dns_env: null,
|
|
ratio: 1,
|
|
} as any;
|
|
case 'http':
|
|
return {
|
|
type: 'http',
|
|
enable: false,
|
|
port: null,
|
|
security: 'none',
|
|
sni: null,
|
|
allow_insecure: null,
|
|
fingerprint: 'chrome',
|
|
cert_mode: 'none',
|
|
cert_dns_provider: null,
|
|
cert_dns_env: null,
|
|
ratio: 1,
|
|
} as any;
|
|
case 'mieru':
|
|
return {
|
|
type: 'mieru',
|
|
enable: false,
|
|
port: null,
|
|
multiplex: 'none',
|
|
transport: 'tcp',
|
|
} as any;
|
|
case 'anytls':
|
|
return {
|
|
type: 'anytls',
|
|
enable: false,
|
|
port: null,
|
|
security: 'tls',
|
|
padding_scheme: null,
|
|
sni: null,
|
|
allow_insecure: false,
|
|
fingerprint: 'chrome',
|
|
cert_mode: 'none',
|
|
cert_dns_provider: null,
|
|
cert_dns_env: null,
|
|
ratio: 1,
|
|
} as any;
|
|
default:
|
|
return {} as any;
|
|
}
|
|
}
|