diff options
| author | mhsanaei <ho3ein.sanaei@gmail.com> | 2024-08-06 18:06:39 +0300 |
|---|---|---|
| committer | mhsanaei <ho3ein.sanaei@gmail.com> | 2024-08-06 18:10:42 +0300 |
| commit | b8c3555b09d716d877b69b477a7f390e8acbc9af (patch) | |
| tree | 4d51a0e5b7acd4de6ffbbac2ac526f4064e23d70 | |
| parent | 2d2b30daf1d3b3bc06b1acbf879b1c650054a92b (diff) | |
improve randomShortId , format document
| -rw-r--r-- | web/assets/js/model/outbound.js | 284 | ||||
| -rw-r--r-- | web/assets/js/model/setting.js | 2 | ||||
| -rw-r--r-- | web/assets/js/model/xray.js | 541 | ||||
| -rw-r--r-- | web/assets/js/util/utils.js | 20 |
4 files changed, 468 insertions, 379 deletions
diff --git a/web/assets/js/model/outbound.js b/web/assets/js/model/outbound.js index bcd35478..1ca6cee4 100644 --- a/web/assets/js/model/outbound.js +++ b/web/assets/js/model/outbound.js @@ -72,10 +72,12 @@ const WireguardDomainStrategy = [ Object.freeze(Protocols); Object.freeze(SSMethods); Object.freeze(TLS_FLOW_CONTROL); +Object.freeze(UTLS_FINGERPRINT); Object.freeze(ALPN_OPTION); Object.freeze(OutboundDomainStrategies); Object.freeze(WireguardDomainStrategy); + class CommonClass { static toJsonArray(arr) { @@ -90,30 +92,30 @@ class CommonClass { return this; } - toString(format=true) { + toString(format = true) { return format ? JSON.stringify(this.toJson(), null, 2) : JSON.stringify(this.toJson()); } } class TcpStreamSettings extends CommonClass { - constructor(type='none', host, path) { + constructor(type = 'none', host, path) { super(); this.type = type; this.host = host; this.path = path; } - static fromJson(json={}) { + static fromJson(json = {}) { let header = json.header; if (!header) return new TcpStreamSettings(); - if(header.type == 'http' && header.request){ + if (header.type == 'http' && header.request) { return new TcpStreamSettings( header.type, header.request.headers.Host.join(','), header.request.path.join(','), ); } - return new TcpStreamSettings(header.type,'',''); + return new TcpStreamSettings(header.type, '', ''); } toJson() { @@ -132,15 +134,17 @@ class TcpStreamSettings extends CommonClass { } class KcpStreamSettings extends CommonClass { - constructor(mtu=1350, tti=20, - uplinkCapacity=5, - downlinkCapacity=20, - congestion=false, - readBufferSize=2, - writeBufferSize=2, - type='none', - seed='', - ) { + constructor( + mtu = 1350, + tti = 50, + uplinkCapacity = 5, + downlinkCapacity = 20, + congestion = false, + readBufferSize = 2, + writeBufferSize = 2, + type = 'none', + seed = '', + ) { super(); this.mtu = mtu; this.tti = tti; @@ -153,7 +157,7 @@ class KcpStreamSettings extends CommonClass { this.seed = seed; } - static fromJson(json={}) { + static fromJson(json = {}) { return new KcpStreamSettings( json.mtu, json.tti, @@ -185,13 +189,13 @@ class KcpStreamSettings extends CommonClass { } class WsStreamSettings extends CommonClass { - constructor(path='/', host='') { + constructor(path = '/', host = '') { super(); this.path = path; this.host = host; } - static fromJson(json={}) { + static fromJson(json = {}) { return new WsStreamSettings( json.path, json.host, @@ -207,13 +211,13 @@ class WsStreamSettings extends CommonClass { } class HttpStreamSettings extends CommonClass { - constructor(path='/', host='') { + constructor(path = '/', host = '') { super(); this.path = path; this.host = host; } - static fromJson(json={}) { + static fromJson(json = {}) { return new HttpStreamSettings( json.path, json.host ? json.host.join(',') : '', @@ -229,15 +233,18 @@ class HttpStreamSettings extends CommonClass { } class QuicStreamSettings extends CommonClass { - constructor(security='none', - key='', type='none') { + constructor( + security = 'none', + key = '', + type = 'none' + ) { super(); this.security = security; this.key = key; this.type = type; } - static fromJson(json={}) { + static fromJson(json = {}) { return new QuicStreamSettings( json.security, json.key, @@ -257,15 +264,19 @@ class QuicStreamSettings extends CommonClass { } class GrpcStreamSettings extends CommonClass { - constructor(serviceName="", authority="", multiMode=false) { + constructor( + serviceName = "", + authority = "", + multiMode = false + ) { super(); this.serviceName = serviceName; this.authority = authority; this.multiMode = multiMode; } - static fromJson(json={}) { - return new GrpcStreamSettings(json.serviceName, json.authority, json.multiMode ); + static fromJson(json = {}) { + return new GrpcStreamSettings(json.serviceName, json.authority, json.multiMode); } toJson() { @@ -278,13 +289,13 @@ class GrpcStreamSettings extends CommonClass { } class HttpUpgradeStreamSettings extends CommonClass { - constructor(path='/', host='') { + constructor(path = '/', host = '') { super(); this.path = path; this.host = host; } - static fromJson(json={}) { + static fromJson(json = {}) { return new HttpUpgradeStreamSettings( json.path, json.host, @@ -300,13 +311,13 @@ class HttpUpgradeStreamSettings extends CommonClass { } class SplitHTTPStreamSettings extends CommonClass { - constructor(path='/', host='') { + constructor(path = '/', host = '') { super(); this.path = path; this.host = host; } - static fromJson(json={}) { + static fromJson(json = {}) { return new SplitHTTPStreamSettings( json.path, json.host, @@ -322,10 +333,12 @@ class SplitHTTPStreamSettings extends CommonClass { } class TlsStreamSettings extends CommonClass { - constructor(serverName='', - alpn=[], - fingerprint = '', - allowInsecure = false) { + constructor( + serverName = '', + alpn = [], + fingerprint = '', + allowInsecure = false + ) { super(); this.serverName = serverName; this.alpn = alpn; @@ -333,7 +346,7 @@ class TlsStreamSettings extends CommonClass { this.allowInsecure = allowInsecure; } - static fromJson(json={}) { + static fromJson(json = {}) { return new TlsStreamSettings( json.serverName, json.alpn, @@ -353,7 +366,13 @@ class TlsStreamSettings extends CommonClass { } class RealityStreamSettings extends CommonClass { - constructor(publicKey = '', fingerprint = '', serverName = '', shortId = '', spiderX = '/') { + constructor( + publicKey = '', + fingerprint = '', + serverName = '', + shortId = '', + spiderX = '/' + ) { super(); this.publicKey = publicKey; this.fingerprint = fingerprint; @@ -381,7 +400,13 @@ class RealityStreamSettings extends CommonClass { } }; class SockoptStreamSettings extends CommonClass { - constructor(dialerProxy = "", tcpFastOpen = false, tcpKeepAliveInterval = 0, tcpMptcp = false, tcpNoDelay = false) { + constructor( + dialerProxy = "", + tcpFastOpen = false, + tcpKeepAliveInterval = 0, + tcpMptcp = false, + tcpNoDelay = false + ) { super(); this.dialerProxy = dialerProxy; this.tcpFastOpen = tcpFastOpen; @@ -413,20 +438,21 @@ class SockoptStreamSettings extends CommonClass { } class StreamSettings extends CommonClass { - constructor(network='tcp', - security='none', - tlsSettings=new TlsStreamSettings(), - realitySettings = new RealityStreamSettings(), - tcpSettings=new TcpStreamSettings(), - kcpSettings=new KcpStreamSettings(), - wsSettings=new WsStreamSettings(), - httpSettings=new HttpStreamSettings(), - quicSettings=new QuicStreamSettings(), - grpcSettings=new GrpcStreamSettings(), - httpupgradeSettings=new HttpUpgradeStreamSettings(), - splithttpSettings=new SplitHTTPStreamSettings(), - sockopt = undefined, - ) { + constructor( + network = 'tcp', + security = 'none', + tlsSettings = new TlsStreamSettings(), + realitySettings = new RealityStreamSettings(), + tcpSettings = new TcpStreamSettings(), + kcpSettings = new KcpStreamSettings(), + wsSettings = new WsStreamSettings(), + httpSettings = new HttpStreamSettings(), + quicSettings = new QuicStreamSettings(), + grpcSettings = new GrpcStreamSettings(), + httpupgradeSettings = new HttpUpgradeStreamSettings(), + splithttpSettings = new SplitHTTPStreamSettings(), + sockopt = undefined, + ) { super(); this.network = network; this.security = security; @@ -442,7 +468,7 @@ class StreamSettings extends CommonClass { this.splithttp = splithttpSettings; this.sockopt = sockopt; } - + get isTls() { return this.security === 'tls'; } @@ -459,7 +485,7 @@ class StreamSettings extends CommonClass { this.sockopt = value ? new SockoptStreamSettings() : undefined; } - static fromJson(json={}) { + static fromJson(json = {}) { return new StreamSettings( json.network, json.security, @@ -528,9 +554,9 @@ class Mux extends CommonClass { class Outbound extends CommonClass { constructor( - tag='', - protocol=Protocols.VMess, - settings=null, + tag = '', + protocol = Protocols.VMess, + settings = null, streamSettings = new StreamSettings(), sendThrough, mux = new Mux(), @@ -556,7 +582,7 @@ class Outbound extends CommonClass { canEnableTls() { if (![Protocols.VMess, Protocols.VLESS, Protocols.Trojan, Protocols.Shadowsocks].includes(this.protocol)) return false; - return ["tcp", "ws", "http", "quic", "grpc", "httpupgrade" , "splithttp"].includes(this.stream.network); + return ["tcp", "ws", "http", "quic", "grpc", "httpupgrade", "splithttp"].includes(this.stream.network); } //this is used for xtls-rprx-vision @@ -577,7 +603,7 @@ class Outbound extends CommonClass { } canEnableMux() { - if (this.settings.flow && this.settings.flow != ''){ + if (this.settings.flow && this.settings.flow != '') { this.mux.enabled = false; return false; } @@ -608,7 +634,7 @@ class Outbound extends CommonClass { return [Protocols.Socks, Protocols.HTTP].includes(this.protocol); } - static fromJson(json={}) { + static fromJson(json = {}) { return new Outbound( json.tag, json.protocol, @@ -639,8 +665,8 @@ class Outbound extends CommonClass { static fromLink(link) { data = link.split('://'); - if(data.length !=2) return null; - switch(data[0].toLowerCase()){ + if (data.length != 2) return null; + switch (data[0].toLowerCase()) { case Protocols.VMess: return this.fromVmessLink(JSON.parse(Base64.decode(data[1]))); case Protocols.VLESS: @@ -652,7 +678,7 @@ class Outbound extends CommonClass { } } - static fromVmessLink(json={}){ + static fromVmessLink(json = {}) { let stream = new StreamSettings(json.net, json.tls); let network = json.net; @@ -666,7 +692,7 @@ class Outbound extends CommonClass { stream.type = json.type; stream.seed = json.path; } else if (network === 'ws') { - stream.ws = new WsStreamSettings(json.path,json.host); + stream.ws = new WsStreamSettings(json.path, json.host); } else if (network === 'http' || network == 'h2') { stream.network = 'http' stream.http = new HttpStreamSettings( @@ -680,12 +706,12 @@ class Outbound extends CommonClass { } else if (network === 'grpc') { stream.grpc = new GrpcStreamSettings(json.path, json.authority, json.type == 'multi'); } else if (network === 'httpupgrade') { - stream.httpupgrade = new HttpUpgradeStreamSettings(json.path,json.host); + stream.httpupgrade = new HttpUpgradeStreamSettings(json.path, json.host); } else if (network === 'splithttp') { - stream.splithttp = new SplitHTTPStreamSettings(json.path,json.host); + stream.splithttp = new SplitHTTPStreamSettings(json.path, json.host); } - if(json.tls && json.tls == 'tls'){ + if (json.tls && json.tls == 'tls') { stream.tls = new TlsStreamSettings( json.sni, json.alpn ? json.alpn.split(',') : [], @@ -698,7 +724,7 @@ class Outbound extends CommonClass { return new Outbound(json.ps, Protocols.VMess, new Outbound.VmessSettings(json.add, port, json.id), stream); } - static fromParamLink(link){ + static fromParamLink(link) { const url = new URL(link); let type = url.searchParams.get('type') ?? 'tcp'; let security = url.searchParams.get('security') ?? 'none'; @@ -715,9 +741,9 @@ class Outbound extends CommonClass { stream.kcp.type = headerType ?? 'none'; stream.kcp.seed = path; } else if (type === 'ws') { - stream.ws = new WsStreamSettings(path,host); + stream.ws = new WsStreamSettings(path, host); } else if (type === 'http' || type == 'h2') { - stream.http = new HttpStreamSettings(path,host); + stream.http = new HttpStreamSettings(path, host); } else if (type === 'quic') { stream.quic = new QuicStreamSettings( url.searchParams.get('quicSecurity') ?? 'none', @@ -729,25 +755,25 @@ class Outbound extends CommonClass { url.searchParams.get('authority') ?? '', url.searchParams.get('mode') == 'multi'); } else if (type === 'httpupgrade') { - stream.httpupgrade = new HttpUpgradeStreamSettings(path,host); + stream.httpupgrade = new HttpUpgradeStreamSettings(path, host); } else if (type === 'splithttp') { - stream.splithttp = new SplitHTTPStreamSettings(path,host); + stream.splithttp = new SplitHTTPStreamSettings(path, host); } - if(security == 'tls'){ - let fp=url.searchParams.get('fp') ?? 'none'; - let alpn=url.searchParams.get('alpn'); - let allowInsecure=url.searchParams.get('allowInsecure'); - let sni=url.searchParams.get('sni') ?? ''; + if (security == 'tls') { + let fp = url.searchParams.get('fp') ?? 'none'; + let alpn = url.searchParams.get('alpn'); + let allowInsecure = url.searchParams.get('allowInsecure'); + let sni = url.searchParams.get('sni') ?? ''; stream.tls = new TlsStreamSettings(sni, alpn ? alpn.split(',') : [], fp, allowInsecure == 1); } - if(security == 'reality'){ - let pbk=url.searchParams.get('pbk'); - let fp=url.searchParams.get('fp'); - let sni=url.searchParams.get('sni') ?? ''; - let sid=url.searchParams.get('sid') ?? ''; - let spx=url.searchParams.get('spx') ?? ''; + if (security == 'reality') { + let pbk = url.searchParams.get('pbk'); + let fp = url.searchParams.get('fp'); + let sni = url.searchParams.get('sni') ?? ''; + let sid = url.searchParams.get('sid') ?? ''; + let spx = url.searchParams.get('spx') ?? ''; stream.reality = new RealityStreamSettings(pbk, fp, sni, sid, spx); } @@ -755,14 +781,14 @@ class Outbound extends CommonClass { const match = link.match(regex); if (!match) return null; - let [, protocol, userData, address, port, ] = match; + let [, protocol, userData, address, port,] = match; port *= 1; - if(protocol == 'ss') { + if (protocol == 'ss') { protocol = 'shadowsocks'; userData = atob(userData).split(':'); } var settings; - switch(protocol){ + switch (protocol) { case Protocols.VLESS: settings = new Outbound.VLESSSettings(address, port, userData, url.searchParams.get('flow') ?? ''); break; @@ -770,7 +796,7 @@ class Outbound extends CommonClass { settings = new Outbound.TrojanSettings(address, port, userData); break; case Protocols.Shadowsocks: - let method = userData.splice(0,1)[0]; + let method = userData.splice(0, 1)[0]; settings = new Outbound.ShadowsocksSettings(address, port, userData.join(":"), method, true); break; default: @@ -826,13 +852,13 @@ Outbound.Settings = class extends CommonClass { } }; Outbound.FreedomSettings = class extends CommonClass { - constructor(domainStrategy='', fragment={}) { + constructor(domainStrategy = '', fragment = {}) { super(); this.domainStrategy = domainStrategy; this.fragment = fragment; } - static fromJson(json={}) { + static fromJson(json = {}) { return new Outbound.FreedomSettings( json.domainStrategy, json.fragment ? Outbound.FreedomSettings.Fragment.fromJson(json.fragment) : undefined, @@ -847,14 +873,14 @@ Outbound.FreedomSettings = class extends CommonClass { } }; Outbound.FreedomSettings.Fragment = class extends CommonClass { - constructor(packets='1-3',length='',interval=''){ + constructor(packets = '1-3', length = '', interval = '') { super(); this.packets = packets; this.length = length; this.interval = interval; } - static fromJson(json={}) { + static fromJson(json = {}) { return new Outbound.FreedomSettings.Fragment( json.packets, json.length, @@ -868,7 +894,7 @@ Outbound.BlackholeSettings = class extends CommonClass { this.type = type; } - static fromJson(json={}) { + static fromJson(json = {}) { return new Outbound.BlackholeSettings( json.response ? json.response.type : undefined, ); @@ -876,19 +902,19 @@ Outbound.BlackholeSettings = class extends CommonClass { toJson() { return { - response: ObjectUtil.isEmpty(this.type) ? undefined : {type: this.type}, + response: ObjectUtil.isEmpty(this.type) ? undefined : { type: this.type }, }; } }; Outbound.DNSSettings = class extends CommonClass { - constructor(network='udp', address='1.1.1.1', port=53) { + constructor(network = 'udp', address = '1.1.1.1', port = 53) { super(); this.network = network; this.address = address; this.port = port; } - static fromJson(json={}){ + static fromJson(json = {}) { return new Outbound.DNSSettings( json.network, json.address, @@ -904,8 +930,8 @@ Outbound.VmessSettings = class extends CommonClass { this.id = id; } - static fromJson(json={}) { - if(ObjectUtil.isArrEmpty(json.vnext)) return new Outbound.VmessSettings(); + static fromJson(json = {}) { + if (ObjectUtil.isArrEmpty(json.vnext)) return new Outbound.VmessSettings(); return new Outbound.VmessSettings( json.vnext[0].address, json.vnext[0].port, @@ -918,13 +944,13 @@ Outbound.VmessSettings = class extends CommonClass { vnext: [{ address: this.address, port: this.port, - users: [{id: this.id}], + users: [{ id: this.id }], }], }; } }; Outbound.VLESSSettings = class extends CommonClass { - constructor(address, port, id, flow, encryption='none') { + constructor(address, port, id, flow, encryption = 'none') { super(); this.address = address; this.port = port; @@ -933,8 +959,8 @@ Outbound.VLESSSettings = class extends CommonClass { this.encryption = encryption } - static fromJson(json={}) { - if(ObjectUtil.isArrEmpty(json.vnext)) return new Outbound.VLESSSettings(); + static fromJson(json = {}) { + if (ObjectUtil.isArrEmpty(json.vnext)) return new Outbound.VLESSSettings(); return new Outbound.VLESSSettings( json.vnext[0].address, json.vnext[0].port, @@ -949,7 +975,7 @@ Outbound.VLESSSettings = class extends CommonClass { vnext: [{ address: this.address, port: this.port, - users: [{id: this.id, flow: this.flow, encryption: 'none',}], + users: [{ id: this.id, flow: this.flow, encryption: 'none', }], }], }; } @@ -962,8 +988,8 @@ Outbound.TrojanSettings = class extends CommonClass { this.password = password; } - static fromJson(json={}) { - if(ObjectUtil.isArrEmpty(json.servers)) return new Outbound.TrojanSettings(); + static fromJson(json = {}) { + if (ObjectUtil.isArrEmpty(json.servers)) return new Outbound.TrojanSettings(); return new Outbound.TrojanSettings( json.servers[0].address, json.servers[0].port, @@ -992,9 +1018,9 @@ Outbound.ShadowsocksSettings = class extends CommonClass { this.UoTVersion = UoTVersion; } - static fromJson(json={}) { + static fromJson(json = {}) { let servers = json.servers; - if(ObjectUtil.isArrEmpty(servers)) servers=[{}]; + if (ObjectUtil.isArrEmpty(servers)) servers = [{}]; return new Outbound.ShadowsocksSettings( servers[0].address, servers[0].port, @@ -1028,9 +1054,9 @@ Outbound.SocksSettings = class extends CommonClass { this.pass = pass; } - static fromJson(json={}) { + static fromJson(json = {}) { let servers = json.servers; - if(ObjectUtil.isArrEmpty(servers)) servers=[{users: [{}]}]; + if (ObjectUtil.isArrEmpty(servers)) servers = [{ users: [{}] }]; return new Outbound.SocksSettings( servers[0].address, servers[0].port, @@ -1044,7 +1070,7 @@ Outbound.SocksSettings = class extends CommonClass { servers: [{ address: this.address, port: this.port, - users: ObjectUtil.isEmpty(this.user) ? [] : [{user: this.user, pass: this.pass}], + users: ObjectUtil.isEmpty(this.user) ? [] : [{ user: this.user, pass: this.pass }], }], }; } @@ -1058,9 +1084,9 @@ Outbound.HttpSettings = class extends CommonClass { this.pass = pass; } - static fromJson(json={}) { + static fromJson(json = {}) { let servers = json.servers; - if(ObjectUtil.isArrEmpty(servers)) servers=[{users: [{}]}]; + if (ObjectUtil.isArrEmpty(servers)) servers = [{ users: [{}] }]; return new Outbound.HttpSettings( servers[0].address, servers[0].port, @@ -1074,7 +1100,7 @@ Outbound.HttpSettings = class extends CommonClass { servers: [{ address: this.address, port: this.port, - users: ObjectUtil.isEmpty(this.user) ? [] : [{user: this.user, pass: this.pass}], + users: ObjectUtil.isEmpty(this.user) ? [] : [{ user: this.user, pass: this.pass }], }], }; } @@ -1082,17 +1108,23 @@ Outbound.HttpSettings = class extends CommonClass { Outbound.WireguardSettings = class extends CommonClass { constructor( - mtu=1420, secretKey='', - address=[''], workers=2, domainStrategy='', reserved='', - peers=[new Outbound.WireguardSettings.Peer()], kernelMode=false) { + mtu = 1420, + secretKey = '', + address = [''], + workers = 2, + domainStrategy = '', + reserved = '', + peers = [new Outbound.WireguardSettings.Peer()], + kernelMode = false + ) { super(); this.mtu = mtu; this.secretKey = secretKey; - this.pubKey = secretKey.length>0 ? Wireguard.generateKeypair(secretKey).publicKey : ''; - this.address = address instanceof Array ? address.join(',') : address; + this.pubKey = secretKey.length > 0 ? Wireguard.generateKeypair(secretKey).publicKey : ''; + this.address = Array.isArray(address) ? address.join(',') : address; this.workers = workers; this.domainStrategy = domainStrategy; - this.reserved = reserved instanceof Array ? reserved.join(',') : reserved; + this.reserved = Array.isArray(reserved) ? reserved.join(',') : reserved; this.peers = peers; this.kernelMode = kernelMode; } @@ -1105,7 +1137,7 @@ Outbound.WireguardSettings = class extends CommonClass { this.peers.splice(index, 1); } - static fromJson(json={}){ + static fromJson(json = {}) { return new Outbound.WireguardSettings( json.mtu, json.secretKey, @@ -1120,10 +1152,10 @@ Outbound.WireguardSettings = class extends CommonClass { toJson() { return { - mtu: this.mtu?? undefined, + mtu: this.mtu ?? undefined, secretKey: this.secretKey, address: this.address ? this.address.split(",") : [], - workers: this.workers?? undefined, + workers: this.workers ?? undefined, domainStrategy: WireguardDomainStrategy.includes(this.domainStrategy) ? this.domainStrategy : undefined, reserved: this.reserved ? this.reserved.split(",").map(Number) : undefined, peers: Outbound.WireguardSettings.Peer.toJsonArray(this.peers), @@ -1133,7 +1165,13 @@ Outbound.WireguardSettings = class extends CommonClass { }; Outbound.WireguardSettings.Peer = class extends CommonClass { - constructor(publicKey='', psk='', allowedIPs=['0.0.0.0/0','::/0'], endpoint='', keepAlive=0) { + constructor( + publicKey = '', + psk = '', + allowedIPs = ['0.0.0.0/0', '::/0'], + endpoint = '', + keepAlive = 0 + ) { super(); this.publicKey = publicKey; this.psk = psk; @@ -1142,7 +1180,7 @@ Outbound.WireguardSettings.Peer = class extends CommonClass { this.keepAlive = keepAlive; } - static fromJson(json={}){ + static fromJson(json = {}) { return new Outbound.WireguardSettings.Peer( json.publicKey, json.preSharedKey, @@ -1155,10 +1193,10 @@ Outbound.WireguardSettings.Peer = class extends CommonClass { toJson() { return { publicKey: this.publicKey, - preSharedKey: this.psk.length>0 ? this.psk : undefined, + preSharedKey: this.psk.length > 0 ? this.psk : undefined, allowedIPs: this.allowedIPs ? this.allowedIPs : undefined, endpoint: this.endpoint, - keepAlive: this.keepAlive?? undefined, + keepAlive: this.keepAlive ?? undefined, }; } };
\ No newline at end of file diff --git a/web/assets/js/model/setting.js b/web/assets/js/model/setting.js index cd46ab34..9f745ae8 100644 --- a/web/assets/js/model/setting.js +++ b/web/assets/js/model/setting.js @@ -26,7 +26,7 @@ class AllSetting { this.secretEnable = false; this.subEnable = false; this.subListen = ""; - this.subPort = "2096"; + this.subPort = 2096; this.subPath = "/sub/"; this.subJsonPath = "/json/"; this.subDomain = ""; diff --git a/web/assets/js/model/xray.js b/web/assets/js/model/xray.js index 5c3f3010..d239160b 100644 --- a/web/assets/js/model/xray.js +++ b/web/assets/js/model/xray.js @@ -78,9 +78,9 @@ const ALPN_OPTION = { }; const SNIFFING_OPTION = { - HTTP: "http", - TLS: "tls", - QUIC: "quic", + HTTP: "http", + TLS: "tls", + QUIC: "quic", FAKEDNS: "fakedns" }; @@ -103,6 +103,7 @@ const DOMAIN_STRATEGY_OPTION = { FORCE_IPV4V6: "ForceIPv4v6", FORCE_IPV4: "ForceIPv4", }; + const TCP_CONGESTION_OPTION = { BBR: "bbr", CUBIC: "cubic", @@ -136,7 +137,7 @@ class XrayCommonClass { return this; } - toString(format=true) { + toString(format = true) { return format ? JSON.stringify(this.toJson(), null, 2) : JSON.stringify(this.toJson()); } @@ -145,7 +146,7 @@ class XrayCommonClass { if (v2Headers) { Object.keys(v2Headers).forEach(key => { let values = v2Headers[key]; - if (typeof(values) === 'string') { + if (typeof (values) === 'string') { newHeaders.push({ name: key, value: values }); } else { for (let i = 0; i < values.length; ++i) { @@ -157,7 +158,7 @@ class XrayCommonClass { return newHeaders; } - static toV2Headers(headers, arr=true) { + static toV2Headers(headers, arr = true) { let v2Headers = {}; for (let i = 0; i < headers.length; ++i) { let name = headers[i].name; @@ -180,11 +181,12 @@ class XrayCommonClass { } class TcpStreamSettings extends XrayCommonClass { - constructor(acceptProxyProtocol=false, - type='none', - request=new TcpStreamSettings.TcpRequest(), - response=new TcpStreamSettings.TcpResponse(), - ) { + constructor( + acceptProxyProtocol = false, + type = 'none', + request = new TcpStreamSettings.TcpRequest(), + response = new TcpStreamSettings.TcpResponse(), + ) { super(); this.acceptProxyProtocol = acceptProxyProtocol; this.type = type; @@ -192,7 +194,7 @@ class TcpStreamSettings extends XrayCommonClass { this.response = response; } - static fromJson(json={}) { + static fromJson(json = {}) { let header = json.header; if (!header) { header = {}; @@ -217,10 +219,11 @@ class TcpStreamSettings extends XrayCommonClass { } TcpStreamSettings.TcpRequest = class extends XrayCommonClass { - constructor(version='1.1', - method='GET', - path=['/'], - headers=[], + constructor( + version = '1.1', + method = 'GET', + path = ['/'], + headers = [], ) { super(); this.version = version; @@ -245,7 +248,7 @@ TcpStreamSettings.TcpRequest = class extends XrayCommonClass { this.headers.splice(index, 1); } - static fromJson(json={}) { + static fromJson(json = {}) { return new TcpStreamSettings.TcpRequest( json.version, json.method, @@ -265,10 +268,11 @@ TcpStreamSettings.TcpRequest = class extends XrayCommonClass { }; TcpStreamSettings.TcpResponse = class extends XrayCommonClass { - constructor(version='1.1', - status='200', - reason='OK', - headers=[], + constructor( + version = '1.1', + status = '200', + reason = 'OK', + headers = [], ) { super(); this.version = version; @@ -285,7 +289,7 @@ TcpStreamSettings.TcpResponse = class extends XrayCommonClass { this.headers.splice(index, 1); } - static fromJson(json={}) { + static fromJson(json = {}) { return new TcpStreamSettings.TcpResponse( json.version, json.status, @@ -305,15 +309,17 @@ TcpStreamSettings.TcpResponse = class extends XrayCommonClass { }; class KcpStreamSettings extends XrayCommonClass { - constructor(mtu=1350, tti=20, - uplinkCapacity=5, - downlinkCapacity=20, - congestion=false, - readBufferSize=2, - writeBufferSize=2, - type='none', - seed=RandomUtil.randomSeq(10), - ) { + constructor( + mtu = 1350, + tti = 50, + uplinkCapacity = 5, + downlinkCapacity = 20, + congestion = false, + readBufferSize = 2, + writeBufferSize = 2, + type = 'none', + seed = RandomUtil.randomSeq(10), + ) { super(); this.mtu = mtu; this.tti = tti; @@ -326,7 +332,7 @@ class KcpStreamSettings extends XrayCommonClass { this.seed = seed; } - static fromJson(json={}) { + static fromJson(json = {}) { return new KcpStreamSettings( json.mtu, json.tti, @@ -358,7 +364,12 @@ class KcpStreamSettings extends XrayCommonClass { } class WsStreamSettings extends XrayCommonClass { - constructor(acceptProxyProtocol=false, path='/', host='', headers=[]) { + constructor( + acceptProxyProtocol = false, + path = '/', + host = '', + headers = [] + ) { super(); this.acceptProxyProtocol = acceptProxyProtocol; this.path = path; @@ -374,7 +385,7 @@ class WsStreamSettings extends XrayCommonClass { this.headers.splice(index, 1); } - static fromJson(json={}) { + static fromJson(json = {}) { return new WsStreamSettings( json.acceptProxyProtocol, json.path, @@ -395,9 +406,9 @@ class WsStreamSettings extends XrayCommonClass { class HttpStreamSettings extends XrayCommonClass { constructor( - path='/', - host=[''], - ) { + path = '/', + host = [''], + ) { super(); this.path = path; this.host = host.length === 0 ? [''] : host; @@ -411,7 +422,7 @@ class HttpStreamSettings extends XrayCommonClass { this.host.splice(index, 1); } - static fromJson(json={}) { + static fromJson(json = {}) { return new HttpStreamSettings(json.path, json.host); } @@ -430,15 +441,18 @@ class HttpStreamSettings extends XrayCommonClass { } class QuicStreamSettings extends XrayCommonClass { - constructor(security='none', - key=RandomUtil.randomSeq(10), type='none') { + constructor( + security = 'none', + key = RandomUtil.randomSeq(10), + type = 'none' + ) { super(); this.security = security; this.key = key; this.type = type; } - static fromJson(json={}) { + static fromJson(json = {}) { return new QuicStreamSettings( json.security, json.key, @@ -459,22 +473,22 @@ class QuicStreamSettings extends XrayCommonClass { contacts: admin@thfree.ru |
