Temp
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -5,6 +5,7 @@ build/
|
|||||||
!**/src/test/**/build/
|
!**/src/test/**/build/
|
||||||
|
|
||||||
### IntelliJ IDEA ###
|
### IntelliJ IDEA ###
|
||||||
|
.idea/
|
||||||
.idea/modules.xml
|
.idea/modules.xml
|
||||||
.idea/jarRepositories.xml
|
.idea/jarRepositories.xml
|
||||||
.idea/compiler.xml
|
.idea/compiler.xml
|
||||||
|
|||||||
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -4,7 +4,7 @@
|
|||||||
<component name="FrameworkDetectionExcludesConfiguration">
|
<component name="FrameworkDetectionExcludesConfiguration">
|
||||||
<file type="web" url="file://$PROJECT_DIR$" />
|
<file type="web" url="file://$PROJECT_DIR$" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="azul-21" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="zulu-21" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
@@ -1,63 +1,111 @@
|
|||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class Clash(
|
data class Clash(
|
||||||
// Port
|
/*------------------------------------------- *General configuration* -------------------------------------------*/
|
||||||
val port: Int? = null,
|
// Allow LAN
|
||||||
val socksPort: Int? = null,
|
|
||||||
val mixedPort: Int? = null,
|
|
||||||
// LAN
|
|
||||||
val allowLan: Boolean? = null,
|
val allowLan: Boolean? = null,
|
||||||
val bindAddress: String? = null,
|
val bindAddress: String? = null,
|
||||||
val authentication: List<String>? = null,
|
|
||||||
val skipAuthPrefixes: List<String>? = null,
|
|
||||||
val lanAllowedIps: List<String>? = null,
|
val lanAllowedIps: List<String>? = null,
|
||||||
val lanDisallowedIps: List<String>? = null,
|
val lanDisallowedIps: List<String>? = null,
|
||||||
val findProcessMode: String? = null,
|
val authentication: List<String>? = null,
|
||||||
|
val skipAuthPrefixes: List<String>? = null,
|
||||||
|
|
||||||
|
// Operation Mode
|
||||||
val mode: String? = null,
|
val mode: String? = null,
|
||||||
// Geo
|
|
||||||
val geoxUrl: GeoXUrl? = null,
|
// Log Level
|
||||||
val geoAutoUpdate: Boolean? = null,
|
|
||||||
val geoUpdateInterval: Int? = null,
|
|
||||||
val logLevel: String? = null,
|
val logLevel: String? = null,
|
||||||
val ipv6: Boolean? = null,
|
|
||||||
val tls: TLS? = null,
|
// TCP Keep Alive Settings
|
||||||
// External Controller
|
val keepAliveInterval: Int? = null,
|
||||||
|
val keepAliveIdle: Int? = null,
|
||||||
|
val disableKeepAlive: Boolean? = null,
|
||||||
|
|
||||||
|
// Process Matching Mode
|
||||||
|
val findProcessMode: String? = null,
|
||||||
|
|
||||||
|
// External Control (API)
|
||||||
val externalController: String? = null,
|
val externalController: String? = null,
|
||||||
val externalControllerTls: String? = null,
|
val externalControllerTls: String? = null,
|
||||||
val externalControllerCors: ExternalControllerCors? = null,
|
val externalControllerCors: ExternalControllerCors? = null,
|
||||||
val externalControllerUnix: String? = null,
|
val externalControllerUnix: String? = null,
|
||||||
val externalControllerPipe: String? = null,
|
val externalControllerPipe: String? = null,
|
||||||
|
val secret: String? = null,
|
||||||
|
val externalDohServer: String? = null,
|
||||||
|
|
||||||
|
// External User Interface
|
||||||
val externalUi: String? = null,
|
val externalUi: String? = null,
|
||||||
val externalUiName: String? = null,
|
val externalUiName: String? = null,
|
||||||
val externalUiUrl: String? = null,
|
val externalUiUrl: String? = null,
|
||||||
val externalDohServer: String? = null,
|
|
||||||
val interfaceName: String? = null,
|
// Cache
|
||||||
val globalClientFingerprint: String? = null,
|
|
||||||
val experimental: Experimental? = null,
|
|
||||||
val unifiedDelay: Boolean? = null,
|
|
||||||
val hosts: List<String>? = null,
|
|
||||||
val profile: Profile? = null,
|
val profile: Profile? = null,
|
||||||
val tun: Tun? = null,
|
|
||||||
val sniffer: Sniffer? = null,
|
// Unified Delay
|
||||||
val tunnels: List<Tunnel>? = null,
|
val unifiedDelay: Boolean? = null,
|
||||||
|
|
||||||
|
// TCP Concurrency
|
||||||
|
val tcpConcurrent: Boolean? = null,
|
||||||
|
|
||||||
|
// Outbound Interface
|
||||||
|
val interfaceName: String? = null,
|
||||||
|
|
||||||
|
// Routing Mark
|
||||||
|
val routingMark: Int? = null,
|
||||||
|
|
||||||
|
// TLS
|
||||||
|
val tls: TLS? = null,
|
||||||
|
|
||||||
|
// GEO Data Configuration
|
||||||
|
val geoxUrl: GeoXUrl? = null,
|
||||||
|
val geoAutoUpdate: Boolean? = null,
|
||||||
|
val geoUpdateInterval: Int? = null,
|
||||||
|
|
||||||
|
// Global Client Fingerprint
|
||||||
|
val globalClientFingerprint: String? = null,
|
||||||
|
|
||||||
|
// Custom Global UA
|
||||||
|
val globalUa: String? = null,
|
||||||
|
|
||||||
|
// ETag Support
|
||||||
|
val etagSupport: Boolean? = null,
|
||||||
|
|
||||||
|
/*------------------------------------------------ *DNS* ------------------------------------------------*/
|
||||||
|
val hosts: List<String>? = null,
|
||||||
|
// TODO:
|
||||||
val dns: DNS? = null,
|
val dns: DNS? = null,
|
||||||
|
val sniffer: Sniffer? = null,
|
||||||
|
|
||||||
|
|
||||||
|
/*------------------------------------------------ *Inbounds* ------------------------------------------------*/
|
||||||
|
// Proxy Port
|
||||||
|
val port: Int? = null,
|
||||||
|
val socksPort: Int? = null,
|
||||||
|
val mixedPort: Int? = null,
|
||||||
|
val redirPort: Int? = null,
|
||||||
|
val tproxyPort: Int? = null,
|
||||||
|
val tun: Tun? = null,
|
||||||
|
val listeners: List<Listener>? = null,
|
||||||
|
|
||||||
|
// 未在文档中提到的属性
|
||||||
|
val experimental: Experimental? = null,
|
||||||
|
val tunnels: List<Tunnel>? = null,
|
||||||
val proxies: List<Proxy>? = null,
|
val proxies: List<Proxy>? = null,
|
||||||
val proxyGroups: List<ProxyGroup>? = null,
|
val proxyGroups: List<ProxyGroup>? = null,
|
||||||
val proxyProviders: Map<String, ProxyProvider>? = null,
|
val proxyProviders: Map<String, ProxyProvider>? = null,
|
||||||
val ruleProviders: Map<String, RuleProvider>? = null,
|
val ruleProviders: Map<String, RuleProvider>? = null,
|
||||||
val rules: List<String>? = null,
|
val rules: List<String>? = null,
|
||||||
val subRules: Map<String, List<String>>? = null,
|
val subRules: Map<String, List<String>>? = null,
|
||||||
val listeners: List<Listener>? = null
|
|
||||||
)
|
)
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class GeoXUrl(
|
data class GeoXUrl(
|
||||||
val geoip: String? = null,
|
val geoip: String? = null,
|
||||||
val geosite: String? = null,
|
val geosite: String? = null,
|
||||||
val mmdb: String? = null
|
val mmdb: String? = null,
|
||||||
|
val asn: String? = null
|
||||||
)
|
)
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
@@ -88,20 +136,23 @@ data class Profile(
|
|||||||
data class Tun(
|
data class Tun(
|
||||||
val enable: Boolean? = null,
|
val enable: Boolean? = null,
|
||||||
val stack: String? = null,
|
val stack: String? = null,
|
||||||
val dnsHijack: List<String>? = null,
|
|
||||||
val autoDetectInterface: Boolean? = null,
|
|
||||||
val autoRoute: Boolean? = null,
|
val autoRoute: Boolean? = null,
|
||||||
|
val autoRedirect: Boolean? = null,
|
||||||
|
val autoDetectInterface: Boolean? = null,
|
||||||
|
val dnsHijack: List<String>? = null,
|
||||||
|
val device: String? = null,
|
||||||
val mtu: Int? = null,
|
val mtu: Int? = null,
|
||||||
|
val strictRoute: Boolean? = null,
|
||||||
val gso: Boolean? = null,
|
val gso: Boolean? = null,
|
||||||
val gsoMaxSize: Int? = null,
|
val gsoMaxSize: Int? = null,
|
||||||
val autoRedirect: Boolean? = null,
|
val udpTimeout: Int? = null,
|
||||||
val strictRoute: Boolean? = null,
|
val iproute2TableIndex: Int? = null,
|
||||||
|
val iproute2RuleIndex: Int? = null,
|
||||||
|
val endpointIndependentNat: Boolean? = null,
|
||||||
val routeAddressSet: List<String>? = null,
|
val routeAddressSet: List<String>? = null,
|
||||||
val routeExcludeAddressSet: List<String>? = null,
|
val routeExcludeAddressSet: List<String>? = null,
|
||||||
val routeAddress: List<String>? = null,
|
val routeAddress: List<String>? = null,
|
||||||
val inet4RouteAddress: List<String>? = null,
|
val routeExcludeAddress: List<String>? = null,
|
||||||
val inet6RouteAddress: List<String>? = null,
|
|
||||||
val endpointIndependentNat: Boolean? = null,
|
|
||||||
val includeInterface: List<String>? = null,
|
val includeInterface: List<String>? = null,
|
||||||
val excludeInterface: List<String>? = null,
|
val excludeInterface: List<String>? = null,
|
||||||
val includeUid: List<Int>? = null,
|
val includeUid: List<Int>? = null,
|
||||||
@@ -110,20 +161,26 @@ data class Tun(
|
|||||||
val excludeUidRange: List<Pair<Int, Int>>? = null,
|
val excludeUidRange: List<Pair<Int, Int>>? = null,
|
||||||
val includeAndroidUser: List<Int>? = null,
|
val includeAndroidUser: List<Int>? = null,
|
||||||
val includePackage: List<String>? = null,
|
val includePackage: List<String>? = null,
|
||||||
val excludePackage: List<String>? = null
|
val excludePackage: List<String>? = null,
|
||||||
|
@Deprecated("") val inet4RouteAddress: List<String>? = null,
|
||||||
|
@Deprecated("") val inet6RouteAddress: List<String>? = null,
|
||||||
|
@Deprecated("") val inet4RouteExcludeAddress: List<String>? = null,
|
||||||
|
@Deprecated("") val inet6RouteExcludeAddress: List<String>? = null
|
||||||
)
|
)
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class Sniffer(
|
data class Sniffer(
|
||||||
val enable: Boolean? = null,
|
val enable: Boolean? = null,
|
||||||
|
val forceDnsMapping: Boolean? = null,
|
||||||
|
val parsePureIp: Boolean? = null,
|
||||||
val overrideDestination: Boolean? = null,
|
val overrideDestination: Boolean? = null,
|
||||||
val sniff: Sniff? = null,
|
val sniff: Sniff? = null,
|
||||||
val forceDomain: List<String>? = null,
|
val forceDomain: List<String>? = null,
|
||||||
|
val skipDomain: List<String>? = null,
|
||||||
val skipSrcAddress: List<String>? = null,
|
val skipSrcAddress: List<String>? = null,
|
||||||
val skipDstAddress: List<String>? = null,
|
val skipDstAddress: List<String>? = null,
|
||||||
val skipDomain: List<String>? = null,
|
@Deprecated("") val sniffing: List<String>? = null,
|
||||||
val sniffing: List<String>? = null,
|
@Deprecated("") val portWhitelist: List<String>? = null
|
||||||
val portWhitelist: List<String>? = null
|
|
||||||
)
|
)
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
@@ -204,173 +261,173 @@ data class FallbackFilter(
|
|||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
sealed class Proxy {
|
sealed class Proxy {
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class Socks5Proxy(
|
data class Socks5Proxy(
|
||||||
// val name: String? = null,
|
val name: String? = null,
|
||||||
// val server: String? = null,
|
val server: String? = null,
|
||||||
// val port: Int? = null,
|
val port: Int? = null,
|
||||||
// val username: String? = null,
|
val username: String? = null,
|
||||||
// val password: String? = null,
|
val password: String? = null,
|
||||||
// val tls: Boolean? = null,
|
val tls: Boolean? = null,
|
||||||
// val fingerprint: String? = null,
|
val fingerprint: String? = null,
|
||||||
// val skipCertVerify: Boolean? = null,
|
val skipCertVerify: Boolean? = null,
|
||||||
// val udp: Boolean? = null,
|
val udp: Boolean? = null,
|
||||||
// val ipVersion: String? = null
|
val ipVersion: String? = null
|
||||||
// ) : Proxy()
|
) : Proxy()
|
||||||
//
|
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class HttpProxy(
|
data class HttpProxy(
|
||||||
// val name: String? = null,
|
val name: String? = null,
|
||||||
// val server: String? = null,
|
val server: String? = null,
|
||||||
// val port: Int? = null,
|
val port: Int? = null,
|
||||||
// val username: String? = null,
|
val username: String? = null,
|
||||||
// val password: String? = null,
|
val password: String? = null,
|
||||||
// val tls: Boolean? = null,
|
val tls: Boolean? = null,
|
||||||
// val skipCertVerify: Boolean? = null,
|
val skipCertVerify: Boolean? = null,
|
||||||
// val sni: String? = null,
|
val sni: String? = null,
|
||||||
// val fingerprint: String? = null,
|
val fingerprint: String? = null,
|
||||||
// val ipVersion: String? = null
|
val ipVersion: String? = null
|
||||||
// ) : Proxy()
|
) : Proxy()
|
||||||
//
|
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class SnellProxy(
|
data class SnellProxy(
|
||||||
// val name: String? = null,
|
val name: String? = null,
|
||||||
// val server: String? = null,
|
val server: String? = null,
|
||||||
// val port: Int? = null,
|
val port: Int? = null,
|
||||||
// val psk: String? = null,
|
val psk: String? = null,
|
||||||
// val version: Int? = null,
|
val version: Int? = null,
|
||||||
// val obfsOpts: ObfsOpts? = null
|
val obfsOpts: ObfsOpts? = null
|
||||||
// ) : Proxy() {
|
) : Proxy() {
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class ObfsOpts(
|
data class ObfsOpts(
|
||||||
// val mode: String? = null,
|
val mode: String? = null,
|
||||||
// val host: String? = null
|
val host: String? = null
|
||||||
// )
|
)
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class ShadowsocksProxy(
|
data class ShadowsocksProxy(
|
||||||
// val name: String? = null,
|
val name: String? = null,
|
||||||
// val server: String? = null,
|
val server: String? = null,
|
||||||
// val port: Int? = null,
|
val port: Int? = null,
|
||||||
// val cipher: String? = null,
|
val cipher: String? = null,
|
||||||
// val password: String? = null,
|
val password: String? = null,
|
||||||
// val udp: Boolean? = null,
|
val udp: Boolean? = null,
|
||||||
// val ipVersion: String? = null,
|
val ipVersion: String? = null,
|
||||||
// val plugin: String? = null,
|
val plugin: String? = null,
|
||||||
// val pluginOpts: PluginOpts? = null
|
val pluginOpts: PluginOpts? = null
|
||||||
// ) : Proxy() {
|
) : Proxy() {
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class PluginOpts(
|
data class PluginOpts(
|
||||||
// val mode: String? = null,
|
val mode: String? = null,
|
||||||
// val host: String? = null,
|
val host: String? = null,
|
||||||
// val tls: Boolean? = null,
|
val tls: Boolean? = null,
|
||||||
// val skipCertVerify: Boolean? = null,
|
val skipCertVerify: Boolean? = null,
|
||||||
// val fingerprint: String? = null,
|
val fingerprint: String? = null,
|
||||||
// val path: String? = null,
|
val path: String? = null,
|
||||||
// val headers: Map<String, String>? = null,
|
val headers: Map<String, String>? = null,
|
||||||
// val clientFingerprint: String? = null,
|
val clientFingerprint: String? = null,
|
||||||
// val version: Int? = null,
|
val version: Int? = null,
|
||||||
// val password: String? = null,
|
val password: String? = null,
|
||||||
// val restlsScript: String? = null
|
val restlsScript: String? = null
|
||||||
// )
|
)
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class VmessProxy(
|
data class VmessProxy(
|
||||||
// val name: String? = null,
|
val name: String? = null,
|
||||||
// val server: String? = null,
|
val server: String? = null,
|
||||||
// val port: Int? = null,
|
val port: Int? = null,
|
||||||
// val uuid: String? = null,
|
val uuid: String? = null,
|
||||||
// val alterId: Int? = null,
|
val alterId: Int? = null,
|
||||||
// val cipher: String? = null,
|
val cipher: String? = null,
|
||||||
// val udp: Boolean? = null,
|
val udp: Boolean? = null,
|
||||||
// val tls: Boolean? = null,
|
val tls: Boolean? = null,
|
||||||
// val fingerprint: String? = null,
|
val fingerprint: String? = null,
|
||||||
// val skipCertVerify: Boolean? = null,
|
val skipCertVerify: Boolean? = null,
|
||||||
// val servername: String? = null,
|
val servername: String? = null,
|
||||||
// val network: String? = null,
|
val network: String? = null,
|
||||||
// val wsOpts: WsOpts? = null,
|
val wsOpts: WsOpts? = null,
|
||||||
// val h2Opts: H2Opts? = null,
|
val h2Opts: H2Opts? = null,
|
||||||
// val grpcOpts: GrpcOpts? = null
|
val grpcOpts: GrpcOpts? = null
|
||||||
// ) : Proxy() {
|
) : Proxy() {
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class WsOpts(
|
data class WsOpts(
|
||||||
// val path: String? = null,
|
val path: String? = null,
|
||||||
// val headers: Map<String, String>? = null
|
val headers: Map<String, String>? = null
|
||||||
// )
|
)
|
||||||
//
|
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class H2Opts(
|
data class H2Opts(
|
||||||
// val host: List<String>? = null,
|
val host: List<String>? = null,
|
||||||
// val path: String? = null
|
val path: String? = null
|
||||||
// )
|
)
|
||||||
//
|
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class GrpcOpts(
|
data class GrpcOpts(
|
||||||
// val grpcServiceName: String? = null
|
val grpcServiceName: String? = null
|
||||||
// )
|
)
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class VlessProxy(
|
data class VlessProxy(
|
||||||
// val name: String? = null,
|
val name: String? = null,
|
||||||
// val server: String? = null,
|
val server: String? = null,
|
||||||
// val port: Int? = null,
|
val port: Int? = null,
|
||||||
// val uuid: String? = null,
|
val uuid: String? = null,
|
||||||
// val network: String? = null,
|
val network: String? = null,
|
||||||
// val tls: Boolean? = null,
|
val tls: Boolean? = null,
|
||||||
// val udp: Boolean? = null,
|
val udp: Boolean? = null,
|
||||||
// val flow: String? = null,
|
val flow: String? = null,
|
||||||
// val clientFingerprint: String? = null,
|
val clientFingerprint: String? = null,
|
||||||
// val servername: String? = null,
|
val servername: String? = null,
|
||||||
// val realityOpts: RealityOpts? = null,
|
val realityOpts: RealityOpts? = null,
|
||||||
// val grpcOpts: GrpcOpts? = null,
|
val grpcOpts: GrpcOpts? = null,
|
||||||
// val wsOpts: WsOpts? = null
|
val wsOpts: WsOpts? = null
|
||||||
// ) : Proxy() {
|
) : Proxy() {
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class RealityOpts(
|
data class RealityOpts(
|
||||||
// val publicKey: String? = null,
|
val publicKey: String? = null,
|
||||||
// val shortId: String? = null
|
val shortId: String? = null
|
||||||
// )
|
)
|
||||||
//
|
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class GrpcOpts(
|
data class GrpcOpts(
|
||||||
// val grpcServiceName: String? = null
|
val grpcServiceName: String? = null
|
||||||
// )
|
)
|
||||||
//
|
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class WsOpts(
|
data class WsOpts(
|
||||||
// val path: String? = null,
|
val path: String? = null,
|
||||||
// val headers: Map<String, String>? = null
|
val headers: Map<String, String>? = null
|
||||||
// )
|
)
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class TrojanProxy(
|
data class TrojanProxy(
|
||||||
// val name: String? = null,
|
val name: String? = null,
|
||||||
// val server: String? = null,
|
val server: String? = null,
|
||||||
// val port: Int? = null,
|
val port: Int? = null,
|
||||||
// val password: String? = null,
|
val password: String? = null,
|
||||||
// val clientFingerprint: String? = null,
|
val clientFingerprint: String? = null,
|
||||||
// val udp: Boolean? = null,
|
val udp: Boolean? = null,
|
||||||
// val sni: String? = null,
|
val sni: String? = null,
|
||||||
// val skipCertVerify: Boolean? = null,
|
val skipCertVerify: Boolean? = null,
|
||||||
// val flow: String? = null,
|
val flow: String? = null,
|
||||||
// val grpcOpts: GrpcOpts? = null,
|
val grpcOpts: GrpcOpts? = null,
|
||||||
// val wsOpts: WsOpts? = null
|
val wsOpts: WsOpts? = null
|
||||||
// ) : Proxy() {
|
) : Proxy() {
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class GrpcOpts(
|
data class GrpcOpts(
|
||||||
// val grpcServiceName: String? = null
|
val grpcServiceName: String? = null
|
||||||
// )
|
)
|
||||||
//
|
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class WsOpts(
|
data class WsOpts(
|
||||||
// val path: String? = null,
|
val path: String? = null,
|
||||||
// val headers: Map<String, String>? = null
|
val headers: Map<String, String>? = null
|
||||||
// )
|
)
|
||||||
// }
|
}
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
@SerialName("hysteria2")
|
@SerialName("hysteria2")
|
||||||
@@ -388,80 +445,80 @@ sealed class Proxy {
|
|||||||
val fingerprint: String? = null
|
val fingerprint: String? = null
|
||||||
) : Proxy()
|
) : Proxy()
|
||||||
|
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class WireguardProxy(
|
data class WireguardProxy(
|
||||||
// val name: String? = null,
|
val name: String? = null,
|
||||||
// val server: String? = null,
|
val server: String? = null,
|
||||||
// val port: Int? = null,
|
val port: Int? = null,
|
||||||
// val ip: String? = null,
|
val ip: String? = null,
|
||||||
// val ipv6: String? = null,
|
val ipv6: String? = null,
|
||||||
// val publicKey: String? = null,
|
val publicKey: String? = null,
|
||||||
// val privateKey: String? = null,
|
val privateKey: String? = null,
|
||||||
// val udp: Boolean? = null,
|
val udp: Boolean? = null,
|
||||||
// val reserved: String? = null,
|
val reserved: String? = null,
|
||||||
// val peers: List<Peer>? = null
|
val peers: List<Peer>? = null
|
||||||
// ) : Proxy() {
|
) : Proxy() {
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class Peer(
|
data class Peer(
|
||||||
// val server: String? = null,
|
val server: String? = null,
|
||||||
// val port: Int? = null,
|
val port: Int? = null,
|
||||||
// val publicKey: String? = null,
|
val publicKey: String? = null,
|
||||||
// val allowedIps: List<String>? = null,
|
val allowedIps: List<String>? = null,
|
||||||
// val reserved: String? = null
|
val reserved: String? = null
|
||||||
// )
|
)
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class TuicProxy(
|
data class TuicProxy(
|
||||||
// val name: String? = null,
|
val name: String? = null,
|
||||||
// val server: String? = null,
|
val server: String? = null,
|
||||||
// val port: Int? = null,
|
val port: Int? = null,
|
||||||
// val token: String? = null,
|
val token: String? = null,
|
||||||
// val uuid: String? = null,
|
val uuid: String? = null,
|
||||||
// val password: String? = null,
|
val password: String? = null,
|
||||||
// val udpRelayMode: String? = null,
|
val udpRelayMode: String? = null,
|
||||||
// val congestionController: String? = null,
|
val congestionController: String? = null,
|
||||||
// val skipCertVerify: Boolean? = null,
|
val skipCertVerify: Boolean? = null,
|
||||||
// val sni: String? = null
|
val sni: String? = null
|
||||||
// ) : Proxy()
|
) : Proxy()
|
||||||
//
|
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class ShadowsocksRProxy(
|
data class ShadowsocksRProxy(
|
||||||
// val name: String? = null,
|
val name: String? = null,
|
||||||
// val server: String? = null,
|
val server: String? = null,
|
||||||
// val port: Int? = null,
|
val port: Int? = null,
|
||||||
// val cipher: String? = null,
|
val cipher: String? = null,
|
||||||
// val password: String? = null,
|
val password: String? = null,
|
||||||
// val obfs: String? = null,
|
val obfs: String? = null,
|
||||||
// val protocol: String? = null,
|
val protocol: String? = null,
|
||||||
// val udp: Boolean? = null
|
val udp: Boolean? = null
|
||||||
// ) : Proxy()
|
) : Proxy()
|
||||||
//
|
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class SSHProxy(
|
data class SSHProxy(
|
||||||
// val name: String? = null,
|
val name: String? = null,
|
||||||
// val server: String? = null,
|
val server: String? = null,
|
||||||
// val port: Int? = null,
|
val port: Int? = null,
|
||||||
// val username: String? = null,
|
val username: String? = null,
|
||||||
// val password: String? = null,
|
val password: String? = null,
|
||||||
// val privateKey: String? = null
|
val privateKey: String? = null
|
||||||
// ) : Proxy()
|
) : Proxy()
|
||||||
//
|
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class MieruProxy(
|
data class MieruProxy(
|
||||||
// val name: String? = null,
|
val name: String? = null,
|
||||||
// val server: String? = null,
|
val server: String? = null,
|
||||||
// val port: Int? = null,
|
val port: Int? = null,
|
||||||
// val transport: String? = null,
|
val transport: String? = null,
|
||||||
// val username: String? = null,
|
val username: String? = null,
|
||||||
// val password: String? = null,
|
val password: String? = null,
|
||||||
// val multiplexing: String? = null
|
val multiplexing: String? = null
|
||||||
// ) : Proxy()
|
) : Proxy()
|
||||||
//
|
|
||||||
// @Serializable
|
@Serializable
|
||||||
// data class DNSProxy(
|
data class DNSProxy(
|
||||||
// val name: String? = null
|
val name: String? = null
|
||||||
// ) : Proxy()
|
) : Proxy()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
@@ -648,6 +705,20 @@ data class Payload(
|
|||||||
@Serializable
|
@Serializable
|
||||||
sealed class Listener {
|
sealed class Listener {
|
||||||
@Serializable
|
@Serializable
|
||||||
|
@SerialName("http")
|
||||||
|
data class HttpListener(
|
||||||
|
val name: String? = null,
|
||||||
|
val port: Int? = null,
|
||||||
|
val listen: String? = null,
|
||||||
|
val rule: String? = null,
|
||||||
|
val proxy: String? = null,
|
||||||
|
val users: List<User>? = null,
|
||||||
|
val certificate: String? = null,
|
||||||
|
val privateKey: String? = null
|
||||||
|
) : Listener()
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
@SerialName("socks")
|
||||||
data class SocksListener(
|
data class SocksListener(
|
||||||
val name: String? = null,
|
val name: String? = null,
|
||||||
val port: Int? = null,
|
val port: Int? = null,
|
||||||
@@ -655,20 +726,13 @@ sealed class Listener {
|
|||||||
val rule: String? = null,
|
val rule: String? = null,
|
||||||
val proxy: String? = null,
|
val proxy: String? = null,
|
||||||
val udp: Boolean? = null,
|
val udp: Boolean? = null,
|
||||||
val users: List<User>? = null
|
val users: List<User>? = null,
|
||||||
) : Listener()
|
val certificate: String? = null,
|
||||||
|
val privateKey: String? = null
|
||||||
@Serializable
|
|
||||||
data class HttpListener(
|
|
||||||
val name: String? = null,
|
|
||||||
val port: Int? = null,
|
|
||||||
val listen: String? = null,
|
|
||||||
val rule: String? = null,
|
|
||||||
val proxy: String? = null,
|
|
||||||
val users: List<User>? = null
|
|
||||||
) : Listener()
|
) : Listener()
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
|
@SerialName("mixed")
|
||||||
data class MixedListener(
|
data class MixedListener(
|
||||||
val name: String? = null,
|
val name: String? = null,
|
||||||
val port: Int? = null,
|
val port: Int? = null,
|
||||||
@@ -676,10 +740,13 @@ sealed class Listener {
|
|||||||
val rule: String? = null,
|
val rule: String? = null,
|
||||||
val proxy: String? = null,
|
val proxy: String? = null,
|
||||||
val udp: Boolean? = null,
|
val udp: Boolean? = null,
|
||||||
val users: List<User>? = null
|
val users: List<User>? = null,
|
||||||
|
val certificate: String? = null,
|
||||||
|
val privateKey: String? = null
|
||||||
) : Listener()
|
) : Listener()
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
|
@SerialName("redir")
|
||||||
data class RedirListener(
|
data class RedirListener(
|
||||||
val name: String? = null,
|
val name: String? = null,
|
||||||
val port: Int? = null,
|
val port: Int? = null,
|
||||||
@@ -689,84 +756,18 @@ sealed class Listener {
|
|||||||
) : Listener()
|
) : Listener()
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
|
@SerialName("tproxy")
|
||||||
data class TProxyListener(
|
data class TProxyListener(
|
||||||
val name: String? = null,
|
val name: String? = null,
|
||||||
val port: Int? = null,
|
val port: Int? = null,
|
||||||
val listen: String? = null,
|
val listen: String? = null,
|
||||||
val rule: String? = null,
|
val rule: String? = null,
|
||||||
val proxy: String? = null,
|
val proxy: String? = null,
|
||||||
val udp: Boolean? = null
|
val udp: Boolean? = null,
|
||||||
) : Listener()
|
|
||||||
|
|
||||||
@Serializable
|
|
||||||
data class ShadowsocksListener(
|
|
||||||
val name: String? = null,
|
|
||||||
val port: Int? = null,
|
|
||||||
val listen: String? = null,
|
|
||||||
val rule: String? = null,
|
|
||||||
val proxy: String? = null,
|
|
||||||
val password: String? = null,
|
|
||||||
val cipher: String? = null
|
|
||||||
) : Listener()
|
|
||||||
|
|
||||||
@Serializable
|
|
||||||
data class VmessListener(
|
|
||||||
val name: String? = null,
|
|
||||||
val port: Int? = null,
|
|
||||||
val listen: String? = null,
|
|
||||||
val rule: String? = null,
|
|
||||||
val proxy: String? = null,
|
|
||||||
val users: List<VmessUser>? = null,
|
|
||||||
val wsPath: String? = null,
|
|
||||||
val certificate: String? = null,
|
|
||||||
val privateKey: String? = null,
|
|
||||||
val realityConfig: RealityConfig? = null
|
|
||||||
) : Listener()
|
|
||||||
|
|
||||||
@Serializable
|
|
||||||
data class TuicListener(
|
|
||||||
val name: String? = null,
|
|
||||||
val port: Int? = null,
|
|
||||||
val listen: String? = null,
|
|
||||||
val rule: String? = null,
|
|
||||||
val proxy: String? = null,
|
|
||||||
val token: List<String>? = null,
|
|
||||||
val users: Map<String, String>? = null,
|
|
||||||
val certificate: String? = null,
|
|
||||||
val privateKey: String? = null,
|
|
||||||
val congestionController: String? = null,
|
|
||||||
val maxIdleTime: Int? = null,
|
|
||||||
val authenticationTimeout: Int? = null,
|
|
||||||
val alpn: List<String>? = null,
|
|
||||||
val maxUdpRelayPacketSize: Int? = null
|
|
||||||
) : Listener()
|
|
||||||
|
|
||||||
@Serializable
|
|
||||||
data class TunnelListener(
|
|
||||||
val name: String? = null,
|
|
||||||
val port: Int? = null,
|
|
||||||
val listen: String? = null,
|
|
||||||
val rule: String? = null,
|
|
||||||
val proxy: String? = null,
|
|
||||||
val network: List<String>? = null,
|
|
||||||
val target: String? = null
|
|
||||||
) : Listener()
|
|
||||||
|
|
||||||
@Serializable
|
|
||||||
data class VlessListener(
|
|
||||||
val name: String? = null,
|
|
||||||
val port: Int? = null,
|
|
||||||
val listen: String? = null,
|
|
||||||
val rule: String? = null,
|
|
||||||
val proxy: String? = null,
|
|
||||||
val users: List<VlessUser>? = null,
|
|
||||||
val wsPath: String? = null,
|
|
||||||
val certificate: String? = null,
|
|
||||||
val privateKey: String? = null,
|
|
||||||
val realityConfig: RealityConfig? = null
|
|
||||||
) : Listener()
|
) : Listener()
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
|
@SerialName("tun")
|
||||||
data class TunListener(
|
data class TunListener(
|
||||||
val name: String? = null,
|
val name: String? = null,
|
||||||
val stack: String? = null,
|
val stack: String? = null,
|
||||||
@@ -790,6 +791,101 @@ sealed class Listener {
|
|||||||
val includePackage: List<String>? = null,
|
val includePackage: List<String>? = null,
|
||||||
val excludePackage: List<String>? = null
|
val excludePackage: List<String>? = null
|
||||||
) : Listener()
|
) : Listener()
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
@SerialName("shadowsocks")
|
||||||
|
data class ShadowsocksListener(
|
||||||
|
val name: String? = null,
|
||||||
|
val port: Int? = null,
|
||||||
|
val listen: String? = null,
|
||||||
|
val rule: String? = null,
|
||||||
|
val proxy: String? = null,
|
||||||
|
val password: String? = null,
|
||||||
|
val cipher: String? = null,
|
||||||
|
val udp: Boolean? = null
|
||||||
|
) : Listener()
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
@SerialName("vmess")
|
||||||
|
data class VmessListener(
|
||||||
|
val name: String? = null,
|
||||||
|
val port: Int? = null,
|
||||||
|
val listen: String? = null,
|
||||||
|
val rule: String? = null,
|
||||||
|
val proxy: String? = null,
|
||||||
|
val users: List<VmessUser>? = null,
|
||||||
|
val privateKey: String? = null,
|
||||||
|
val certificate: String? = null,
|
||||||
|
// Follows are from mihomo config yaml
|
||||||
|
val wsPath: String? = null,
|
||||||
|
val realityConfig: RealityConfig? = null
|
||||||
|
) : Listener()
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
@SerialName("tuic")
|
||||||
|
data class TuicListener(
|
||||||
|
val name: String? = null,
|
||||||
|
val port: Int? = null,
|
||||||
|
val listen: String? = null,
|
||||||
|
val rule: String? = null,
|
||||||
|
val proxy: String? = null,
|
||||||
|
val token: List<String>? = null,
|
||||||
|
val users: Map<String, String>? = null,
|
||||||
|
val certificate: String? = null,
|
||||||
|
val privateKey: String? = null,
|
||||||
|
val congestionController: String? = null,
|
||||||
|
val maxIdleTime: Int? = null,
|
||||||
|
val authenticationTimeout: Int? = null,
|
||||||
|
val alpn: List<String>? = null,
|
||||||
|
val maxUdpRelayPacketSize: Int? = null
|
||||||
|
) : Listener()
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
@SerialName("hysteria2")
|
||||||
|
data class Hysteria2Listener(
|
||||||
|
val name: String? = null,
|
||||||
|
val port: Int? = null,
|
||||||
|
val listen: String? = null,
|
||||||
|
val rule: String? = null,
|
||||||
|
val proxy: String? = null,
|
||||||
|
val users: Map<String, String>? = null,
|
||||||
|
val up: Int? = null,
|
||||||
|
val down: Int? = null,
|
||||||
|
val ignoreClientBandwidth: Boolean? = null,
|
||||||
|
val obfs: String? = null,
|
||||||
|
val obfsPassword: String? = null,
|
||||||
|
val masquerade: String? = null,
|
||||||
|
val alpn: List<String>? = null,
|
||||||
|
val certificate: String? = null,
|
||||||
|
val privateKey: String? = null,
|
||||||
|
) : Listener()
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
@SerialName("tunnel")
|
||||||
|
data class TunnelListener(
|
||||||
|
val name: String? = null,
|
||||||
|
val port: Int? = null,
|
||||||
|
val listen: String? = null,
|
||||||
|
val rule: String? = null,
|
||||||
|
val proxy: String? = null,
|
||||||
|
val network: List<String>? = null,
|
||||||
|
val target: String? = null
|
||||||
|
) : Listener()
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
@SerialName("vless")
|
||||||
|
data class VlessListener(
|
||||||
|
val name: String? = null,
|
||||||
|
val port: Int? = null,
|
||||||
|
val listen: String? = null,
|
||||||
|
val rule: String? = null,
|
||||||
|
val proxy: String? = null,
|
||||||
|
val users: List<VlessUser>? = null,
|
||||||
|
val wsPath: String? = null,
|
||||||
|
val certificate: String? = null,
|
||||||
|
val privateKey: String? = null,
|
||||||
|
val realityConfig: RealityConfig? = null
|
||||||
|
) : Listener()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
|
|||||||
Reference in New Issue
Block a user