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, reality_server_addr: null, reality_server_port: null, reality_private_key: null, reality_public_key: null, reality_short_id: null, ratio: 1, } as any; default: return {} as any; } }