UNPKG

@remnawave/xtls-sdk

Version:

A Typescript SDK for XRAY (XTLS) Core GRPC Api

1,299 lines (1,298 loc) 66.8 kB
"use strict"; // Code generated by protoc-gen-ts_proto. DO NOT EDIT. // versions: // protoc-gen-ts_proto v2.11.2 // protoc v6.33.4 // source: transport/internet/config.proto Object.defineProperty(exports, "__esModule", { value: true }); exports.HappyEyeballsConfig = exports.SocketConfig = exports.CustomSockopt = exports.ProxyConfig = exports.QuicParams = exports.UdpHop = exports.StreamConfig = exports.TransportConfig = exports.SocketConfig_TProxyMode = exports.AddressPortStrategy = exports.DomainStrategy = exports.protobufPackage = void 0; exports.domainStrategyFromJSON = domainStrategyFromJSON; exports.domainStrategyToJSON = domainStrategyToJSON; exports.addressPortStrategyFromJSON = addressPortStrategyFromJSON; exports.addressPortStrategyToJSON = addressPortStrategyToJSON; exports.socketConfig_TProxyModeFromJSON = socketConfig_TProxyModeFromJSON; exports.socketConfig_TProxyModeToJSON = socketConfig_TProxyModeToJSON; /* eslint-disable */ const wire_1 = require("@bufbuild/protobuf/wire"); const address_1 = require("../../common/net/address"); const typed_message_1 = require("../../common/serial/typed_message"); const typeRegistry_1 = require("../../typeRegistry"); exports.protobufPackage = "xray.transport.internet"; var DomainStrategy; (function (DomainStrategy) { DomainStrategy[DomainStrategy["AS_IS"] = 0] = "AS_IS"; DomainStrategy[DomainStrategy["USE_IP"] = 1] = "USE_IP"; DomainStrategy[DomainStrategy["USE_IP4"] = 2] = "USE_IP4"; DomainStrategy[DomainStrategy["USE_IP6"] = 3] = "USE_IP6"; DomainStrategy[DomainStrategy["USE_IP46"] = 4] = "USE_IP46"; DomainStrategy[DomainStrategy["USE_IP64"] = 5] = "USE_IP64"; DomainStrategy[DomainStrategy["FORCE_IP"] = 6] = "FORCE_IP"; DomainStrategy[DomainStrategy["FORCE_IP4"] = 7] = "FORCE_IP4"; DomainStrategy[DomainStrategy["FORCE_IP6"] = 8] = "FORCE_IP6"; DomainStrategy[DomainStrategy["FORCE_IP46"] = 9] = "FORCE_IP46"; DomainStrategy[DomainStrategy["FORCE_IP64"] = 10] = "FORCE_IP64"; DomainStrategy[DomainStrategy["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; })(DomainStrategy || (exports.DomainStrategy = DomainStrategy = {})); function domainStrategyFromJSON(object) { switch (object) { case 0: case "AS_IS": return DomainStrategy.AS_IS; case 1: case "USE_IP": return DomainStrategy.USE_IP; case 2: case "USE_IP4": return DomainStrategy.USE_IP4; case 3: case "USE_IP6": return DomainStrategy.USE_IP6; case 4: case "USE_IP46": return DomainStrategy.USE_IP46; case 5: case "USE_IP64": return DomainStrategy.USE_IP64; case 6: case "FORCE_IP": return DomainStrategy.FORCE_IP; case 7: case "FORCE_IP4": return DomainStrategy.FORCE_IP4; case 8: case "FORCE_IP6": return DomainStrategy.FORCE_IP6; case 9: case "FORCE_IP46": return DomainStrategy.FORCE_IP46; case 10: case "FORCE_IP64": return DomainStrategy.FORCE_IP64; case -1: case "UNRECOGNIZED": default: return DomainStrategy.UNRECOGNIZED; } } function domainStrategyToJSON(object) { switch (object) { case DomainStrategy.AS_IS: return "AS_IS"; case DomainStrategy.USE_IP: return "USE_IP"; case DomainStrategy.USE_IP4: return "USE_IP4"; case DomainStrategy.USE_IP6: return "USE_IP6"; case DomainStrategy.USE_IP46: return "USE_IP46"; case DomainStrategy.USE_IP64: return "USE_IP64"; case DomainStrategy.FORCE_IP: return "FORCE_IP"; case DomainStrategy.FORCE_IP4: return "FORCE_IP4"; case DomainStrategy.FORCE_IP6: return "FORCE_IP6"; case DomainStrategy.FORCE_IP46: return "FORCE_IP46"; case DomainStrategy.FORCE_IP64: return "FORCE_IP64"; case DomainStrategy.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } var AddressPortStrategy; (function (AddressPortStrategy) { AddressPortStrategy[AddressPortStrategy["None"] = 0] = "None"; AddressPortStrategy[AddressPortStrategy["SrvPortOnly"] = 1] = "SrvPortOnly"; AddressPortStrategy[AddressPortStrategy["SrvAddressOnly"] = 2] = "SrvAddressOnly"; AddressPortStrategy[AddressPortStrategy["SrvPortAndAddress"] = 3] = "SrvPortAndAddress"; AddressPortStrategy[AddressPortStrategy["TxtPortOnly"] = 4] = "TxtPortOnly"; AddressPortStrategy[AddressPortStrategy["TxtAddressOnly"] = 5] = "TxtAddressOnly"; AddressPortStrategy[AddressPortStrategy["TxtPortAndAddress"] = 6] = "TxtPortAndAddress"; AddressPortStrategy[AddressPortStrategy["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; })(AddressPortStrategy || (exports.AddressPortStrategy = AddressPortStrategy = {})); function addressPortStrategyFromJSON(object) { switch (object) { case 0: case "None": return AddressPortStrategy.None; case 1: case "SrvPortOnly": return AddressPortStrategy.SrvPortOnly; case 2: case "SrvAddressOnly": return AddressPortStrategy.SrvAddressOnly; case 3: case "SrvPortAndAddress": return AddressPortStrategy.SrvPortAndAddress; case 4: case "TxtPortOnly": return AddressPortStrategy.TxtPortOnly; case 5: case "TxtAddressOnly": return AddressPortStrategy.TxtAddressOnly; case 6: case "TxtPortAndAddress": return AddressPortStrategy.TxtPortAndAddress; case -1: case "UNRECOGNIZED": default: return AddressPortStrategy.UNRECOGNIZED; } } function addressPortStrategyToJSON(object) { switch (object) { case AddressPortStrategy.None: return "None"; case AddressPortStrategy.SrvPortOnly: return "SrvPortOnly"; case AddressPortStrategy.SrvAddressOnly: return "SrvAddressOnly"; case AddressPortStrategy.SrvPortAndAddress: return "SrvPortAndAddress"; case AddressPortStrategy.TxtPortOnly: return "TxtPortOnly"; case AddressPortStrategy.TxtAddressOnly: return "TxtAddressOnly"; case AddressPortStrategy.TxtPortAndAddress: return "TxtPortAndAddress"; case AddressPortStrategy.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } var SocketConfig_TProxyMode; (function (SocketConfig_TProxyMode) { /** Off - TProxy is off. */ SocketConfig_TProxyMode[SocketConfig_TProxyMode["Off"] = 0] = "Off"; /** TProxy - TProxy mode. */ SocketConfig_TProxyMode[SocketConfig_TProxyMode["TProxy"] = 1] = "TProxy"; /** Redirect - Redirect mode. */ SocketConfig_TProxyMode[SocketConfig_TProxyMode["Redirect"] = 2] = "Redirect"; SocketConfig_TProxyMode[SocketConfig_TProxyMode["UNRECOGNIZED"] = -1] = "UNRECOGNIZED"; })(SocketConfig_TProxyMode || (exports.SocketConfig_TProxyMode = SocketConfig_TProxyMode = {})); function socketConfig_TProxyModeFromJSON(object) { switch (object) { case 0: case "Off": return SocketConfig_TProxyMode.Off; case 1: case "TProxy": return SocketConfig_TProxyMode.TProxy; case 2: case "Redirect": return SocketConfig_TProxyMode.Redirect; case -1: case "UNRECOGNIZED": default: return SocketConfig_TProxyMode.UNRECOGNIZED; } } function socketConfig_TProxyModeToJSON(object) { switch (object) { case SocketConfig_TProxyMode.Off: return "Off"; case SocketConfig_TProxyMode.TProxy: return "TProxy"; case SocketConfig_TProxyMode.Redirect: return "Redirect"; case SocketConfig_TProxyMode.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } function createBaseTransportConfig() { return { $type: "xray.transport.internet.TransportConfig", protocolName: "", settings: undefined }; } exports.TransportConfig = { $type: "xray.transport.internet.TransportConfig", encode(message, writer = new wire_1.BinaryWriter()) { if (message.protocolName !== "") { writer.uint32(26).string(message.protocolName); } if (message.settings !== undefined) { typed_message_1.TypedMessage.encode(message.settings, writer.uint32(18).fork()).join(); } return writer; }, decode(input, length) { const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input); const end = length === undefined ? reader.len : reader.pos + length; const message = createBaseTransportConfig(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 3: { if (tag !== 26) { break; } message.protocolName = reader.string(); continue; } case 2: { if (tag !== 18) { break; } message.settings = typed_message_1.TypedMessage.decode(reader, reader.uint32()); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { $type: exports.TransportConfig.$type, protocolName: isSet(object.protocolName) ? globalThis.String(object.protocolName) : isSet(object.protocol_name) ? globalThis.String(object.protocol_name) : "", settings: isSet(object.settings) ? typed_message_1.TypedMessage.fromJSON(object.settings) : undefined, }; }, toJSON(message) { const obj = {}; if (message.protocolName !== "") { obj.protocolName = message.protocolName; } if (message.settings !== undefined) { obj.settings = typed_message_1.TypedMessage.toJSON(message.settings); } return obj; }, create(base) { return exports.TransportConfig.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseTransportConfig(); message.protocolName = object.protocolName ?? ""; message.settings = (object.settings !== undefined && object.settings !== null) ? typed_message_1.TypedMessage.fromPartial(object.settings) : undefined; return message; }, }; typeRegistry_1.messageTypeRegistry.set(exports.TransportConfig.$type, exports.TransportConfig); function createBaseStreamConfig() { return { $type: "xray.transport.internet.StreamConfig", address: undefined, port: 0, protocolName: "", transportSettings: [], securityType: "", securitySettings: [], udpmasks: [], tcpmasks: [], quicParams: undefined, socketSettings: undefined, }; } exports.StreamConfig = { $type: "xray.transport.internet.StreamConfig", encode(message, writer = new wire_1.BinaryWriter()) { if (message.address !== undefined) { address_1.IPOrDomain.encode(message.address, writer.uint32(66).fork()).join(); } if (message.port !== 0) { writer.uint32(72).uint32(message.port); } if (message.protocolName !== "") { writer.uint32(42).string(message.protocolName); } for (const v of message.transportSettings) { exports.TransportConfig.encode(v, writer.uint32(18).fork()).join(); } if (message.securityType !== "") { writer.uint32(26).string(message.securityType); } for (const v of message.securitySettings) { typed_message_1.TypedMessage.encode(v, writer.uint32(34).fork()).join(); } for (const v of message.udpmasks) { typed_message_1.TypedMessage.encode(v, writer.uint32(82).fork()).join(); } for (const v of message.tcpmasks) { typed_message_1.TypedMessage.encode(v, writer.uint32(90).fork()).join(); } if (message.quicParams !== undefined) { exports.QuicParams.encode(message.quicParams, writer.uint32(98).fork()).join(); } if (message.socketSettings !== undefined) { exports.SocketConfig.encode(message.socketSettings, writer.uint32(50).fork()).join(); } return writer; }, decode(input, length) { const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input); const end = length === undefined ? reader.len : reader.pos + length; const message = createBaseStreamConfig(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 8: { if (tag !== 66) { break; } message.address = address_1.IPOrDomain.decode(reader, reader.uint32()); continue; } case 9: { if (tag !== 72) { break; } message.port = reader.uint32(); continue; } case 5: { if (tag !== 42) { break; } message.protocolName = reader.string(); continue; } case 2: { if (tag !== 18) { break; } message.transportSettings.push(exports.TransportConfig.decode(reader, reader.uint32())); continue; } case 3: { if (tag !== 26) { break; } message.securityType = reader.string(); continue; } case 4: { if (tag !== 34) { break; } message.securitySettings.push(typed_message_1.TypedMessage.decode(reader, reader.uint32())); continue; } case 10: { if (tag !== 82) { break; } message.udpmasks.push(typed_message_1.TypedMessage.decode(reader, reader.uint32())); continue; } case 11: { if (tag !== 90) { break; } message.tcpmasks.push(typed_message_1.TypedMessage.decode(reader, reader.uint32())); continue; } case 12: { if (tag !== 98) { break; } message.quicParams = exports.QuicParams.decode(reader, reader.uint32()); continue; } case 6: { if (tag !== 50) { break; } message.socketSettings = exports.SocketConfig.decode(reader, reader.uint32()); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { $type: exports.StreamConfig.$type, address: isSet(object.address) ? address_1.IPOrDomain.fromJSON(object.address) : undefined, port: isSet(object.port) ? globalThis.Number(object.port) : 0, protocolName: isSet(object.protocolName) ? globalThis.String(object.protocolName) : isSet(object.protocol_name) ? globalThis.String(object.protocol_name) : "", transportSettings: globalThis.Array.isArray(object?.transportSettings) ? object.transportSettings.map((e) => exports.TransportConfig.fromJSON(e)) : globalThis.Array.isArray(object?.transport_settings) ? object.transport_settings.map((e) => exports.TransportConfig.fromJSON(e)) : [], securityType: isSet(object.securityType) ? globalThis.String(object.securityType) : isSet(object.security_type) ? globalThis.String(object.security_type) : "", securitySettings: globalThis.Array.isArray(object?.securitySettings) ? object.securitySettings.map((e) => typed_message_1.TypedMessage.fromJSON(e)) : globalThis.Array.isArray(object?.security_settings) ? object.security_settings.map((e) => typed_message_1.TypedMessage.fromJSON(e)) : [], udpmasks: globalThis.Array.isArray(object?.udpmasks) ? object.udpmasks.map((e) => typed_message_1.TypedMessage.fromJSON(e)) : [], tcpmasks: globalThis.Array.isArray(object?.tcpmasks) ? object.tcpmasks.map((e) => typed_message_1.TypedMessage.fromJSON(e)) : [], quicParams: isSet(object.quicParams) ? exports.QuicParams.fromJSON(object.quicParams) : isSet(object.quic_params) ? exports.QuicParams.fromJSON(object.quic_params) : undefined, socketSettings: isSet(object.socketSettings) ? exports.SocketConfig.fromJSON(object.socketSettings) : isSet(object.socket_settings) ? exports.SocketConfig.fromJSON(object.socket_settings) : undefined, }; }, toJSON(message) { const obj = {}; if (message.address !== undefined) { obj.address = address_1.IPOrDomain.toJSON(message.address); } if (message.port !== 0) { obj.port = Math.round(message.port); } if (message.protocolName !== "") { obj.protocolName = message.protocolName; } if (message.transportSettings?.length) { obj.transportSettings = message.transportSettings.map((e) => exports.TransportConfig.toJSON(e)); } if (message.securityType !== "") { obj.securityType = message.securityType; } if (message.securitySettings?.length) { obj.securitySettings = message.securitySettings.map((e) => typed_message_1.TypedMessage.toJSON(e)); } if (message.udpmasks?.length) { obj.udpmasks = message.udpmasks.map((e) => typed_message_1.TypedMessage.toJSON(e)); } if (message.tcpmasks?.length) { obj.tcpmasks = message.tcpmasks.map((e) => typed_message_1.TypedMessage.toJSON(e)); } if (message.quicParams !== undefined) { obj.quicParams = exports.QuicParams.toJSON(message.quicParams); } if (message.socketSettings !== undefined) { obj.socketSettings = exports.SocketConfig.toJSON(message.socketSettings); } return obj; }, create(base) { return exports.StreamConfig.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseStreamConfig(); message.address = (object.address !== undefined && object.address !== null) ? address_1.IPOrDomain.fromPartial(object.address) : undefined; message.port = object.port ?? 0; message.protocolName = object.protocolName ?? ""; message.transportSettings = object.transportSettings?.map((e) => exports.TransportConfig.fromPartial(e)) || []; message.securityType = object.securityType ?? ""; message.securitySettings = object.securitySettings?.map((e) => typed_message_1.TypedMessage.fromPartial(e)) || []; message.udpmasks = object.udpmasks?.map((e) => typed_message_1.TypedMessage.fromPartial(e)) || []; message.tcpmasks = object.tcpmasks?.map((e) => typed_message_1.TypedMessage.fromPartial(e)) || []; message.quicParams = (object.quicParams !== undefined && object.quicParams !== null) ? exports.QuicParams.fromPartial(object.quicParams) : undefined; message.socketSettings = (object.socketSettings !== undefined && object.socketSettings !== null) ? exports.SocketConfig.fromPartial(object.socketSettings) : undefined; return message; }, }; typeRegistry_1.messageTypeRegistry.set(exports.StreamConfig.$type, exports.StreamConfig); function createBaseUdpHop() { return { $type: "xray.transport.internet.UdpHop", ports: [], intervalMin: 0, intervalMax: 0 }; } exports.UdpHop = { $type: "xray.transport.internet.UdpHop", encode(message, writer = new wire_1.BinaryWriter()) { writer.uint32(10).fork(); for (const v of message.ports) { writer.uint32(v); } writer.join(); if (message.intervalMin !== 0) { writer.uint32(16).int64(message.intervalMin); } if (message.intervalMax !== 0) { writer.uint32(24).int64(message.intervalMax); } return writer; }, decode(input, length) { const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input); const end = length === undefined ? reader.len : reader.pos + length; const message = createBaseUdpHop(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag === 8) { message.ports.push(reader.uint32()); continue; } if (tag === 10) { const end2 = reader.uint32() + reader.pos; while (reader.pos < end2) { message.ports.push(reader.uint32()); } continue; } break; } case 2: { if (tag !== 16) { break; } message.intervalMin = longToNumber(reader.int64()); continue; } case 3: { if (tag !== 24) { break; } message.intervalMax = longToNumber(reader.int64()); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { $type: exports.UdpHop.$type, ports: globalThis.Array.isArray(object?.ports) ? object.ports.map((e) => globalThis.Number(e)) : [], intervalMin: isSet(object.intervalMin) ? globalThis.Number(object.intervalMin) : isSet(object.interval_min) ? globalThis.Number(object.interval_min) : 0, intervalMax: isSet(object.intervalMax) ? globalThis.Number(object.intervalMax) : isSet(object.interval_max) ? globalThis.Number(object.interval_max) : 0, }; }, toJSON(message) { const obj = {}; if (message.ports?.length) { obj.ports = message.ports.map((e) => Math.round(e)); } if (message.intervalMin !== 0) { obj.intervalMin = Math.round(message.intervalMin); } if (message.intervalMax !== 0) { obj.intervalMax = Math.round(message.intervalMax); } return obj; }, create(base) { return exports.UdpHop.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseUdpHop(); message.ports = object.ports?.map((e) => e) || []; message.intervalMin = object.intervalMin ?? 0; message.intervalMax = object.intervalMax ?? 0; return message; }, }; typeRegistry_1.messageTypeRegistry.set(exports.UdpHop.$type, exports.UdpHop); function createBaseQuicParams() { return { $type: "xray.transport.internet.QuicParams", congestion: "", bbrProfile: "", brutalUp: 0, brutalDown: 0, udpHop: undefined, initStreamReceiveWindow: 0, maxStreamReceiveWindow: 0, initConnReceiveWindow: 0, maxConnReceiveWindow: 0, maxIdleTimeout: 0, keepAlivePeriod: 0, disablePathMtuDiscovery: false, maxIncomingStreams: 0, }; } exports.QuicParams = { $type: "xray.transport.internet.QuicParams", encode(message, writer = new wire_1.BinaryWriter()) { if (message.congestion !== "") { writer.uint32(10).string(message.congestion); } if (message.bbrProfile !== "") { writer.uint32(18).string(message.bbrProfile); } if (message.brutalUp !== 0) { writer.uint32(24).uint64(message.brutalUp); } if (message.brutalDown !== 0) { writer.uint32(32).uint64(message.brutalDown); } if (message.udpHop !== undefined) { exports.UdpHop.encode(message.udpHop, writer.uint32(42).fork()).join(); } if (message.initStreamReceiveWindow !== 0) { writer.uint32(48).uint64(message.initStreamReceiveWindow); } if (message.maxStreamReceiveWindow !== 0) { writer.uint32(56).uint64(message.maxStreamReceiveWindow); } if (message.initConnReceiveWindow !== 0) { writer.uint32(64).uint64(message.initConnReceiveWindow); } if (message.maxConnReceiveWindow !== 0) { writer.uint32(72).uint64(message.maxConnReceiveWindow); } if (message.maxIdleTimeout !== 0) { writer.uint32(80).int64(message.maxIdleTimeout); } if (message.keepAlivePeriod !== 0) { writer.uint32(88).int64(message.keepAlivePeriod); } if (message.disablePathMtuDiscovery !== false) { writer.uint32(96).bool(message.disablePathMtuDiscovery); } if (message.maxIncomingStreams !== 0) { writer.uint32(104).int64(message.maxIncomingStreams); } return writer; }, decode(input, length) { const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input); const end = length === undefined ? reader.len : reader.pos + length; const message = createBaseQuicParams(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 10) { break; } message.congestion = reader.string(); continue; } case 2: { if (tag !== 18) { break; } message.bbrProfile = reader.string(); continue; } case 3: { if (tag !== 24) { break; } message.brutalUp = longToNumber(reader.uint64()); continue; } case 4: { if (tag !== 32) { break; } message.brutalDown = longToNumber(reader.uint64()); continue; } case 5: { if (tag !== 42) { break; } message.udpHop = exports.UdpHop.decode(reader, reader.uint32()); continue; } case 6: { if (tag !== 48) { break; } message.initStreamReceiveWindow = longToNumber(reader.uint64()); continue; } case 7: { if (tag !== 56) { break; } message.maxStreamReceiveWindow = longToNumber(reader.uint64()); continue; } case 8: { if (tag !== 64) { break; } message.initConnReceiveWindow = longToNumber(reader.uint64()); continue; } case 9: { if (tag !== 72) { break; } message.maxConnReceiveWindow = longToNumber(reader.uint64()); continue; } case 10: { if (tag !== 80) { break; } message.maxIdleTimeout = longToNumber(reader.int64()); continue; } case 11: { if (tag !== 88) { break; } message.keepAlivePeriod = longToNumber(reader.int64()); continue; } case 12: { if (tag !== 96) { break; } message.disablePathMtuDiscovery = reader.bool(); continue; } case 13: { if (tag !== 104) { break; } message.maxIncomingStreams = longToNumber(reader.int64()); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { $type: exports.QuicParams.$type, congestion: isSet(object.congestion) ? globalThis.String(object.congestion) : "", bbrProfile: isSet(object.bbrProfile) ? globalThis.String(object.bbrProfile) : isSet(object.bbr_profile) ? globalThis.String(object.bbr_profile) : "", brutalUp: isSet(object.brutalUp) ? globalThis.Number(object.brutalUp) : isSet(object.brutal_up) ? globalThis.Number(object.brutal_up) : 0, brutalDown: isSet(object.brutalDown) ? globalThis.Number(object.brutalDown) : isSet(object.brutal_down) ? globalThis.Number(object.brutal_down) : 0, udpHop: isSet(object.udpHop) ? exports.UdpHop.fromJSON(object.udpHop) : isSet(object.udp_hop) ? exports.UdpHop.fromJSON(object.udp_hop) : undefined, initStreamReceiveWindow: isSet(object.initStreamReceiveWindow) ? globalThis.Number(object.initStreamReceiveWindow) : isSet(object.init_stream_receive_window) ? globalThis.Number(object.init_stream_receive_window) : 0, maxStreamReceiveWindow: isSet(object.maxStreamReceiveWindow) ? globalThis.Number(object.maxStreamReceiveWindow) : isSet(object.max_stream_receive_window) ? globalThis.Number(object.max_stream_receive_window) : 0, initConnReceiveWindow: isSet(object.initConnReceiveWindow) ? globalThis.Number(object.initConnReceiveWindow) : isSet(object.init_conn_receive_window) ? globalThis.Number(object.init_conn_receive_window) : 0, maxConnReceiveWindow: isSet(object.maxConnReceiveWindow) ? globalThis.Number(object.maxConnReceiveWindow) : isSet(object.max_conn_receive_window) ? globalThis.Number(object.max_conn_receive_window) : 0, maxIdleTimeout: isSet(object.maxIdleTimeout) ? globalThis.Number(object.maxIdleTimeout) : isSet(object.max_idle_timeout) ? globalThis.Number(object.max_idle_timeout) : 0, keepAlivePeriod: isSet(object.keepAlivePeriod) ? globalThis.Number(object.keepAlivePeriod) : isSet(object.keep_alive_period) ? globalThis.Number(object.keep_alive_period) : 0, disablePathMtuDiscovery: isSet(object.disablePathMtuDiscovery) ? globalThis.Boolean(object.disablePathMtuDiscovery) : isSet(object.disable_path_mtu_discovery) ? globalThis.Boolean(object.disable_path_mtu_discovery) : false, maxIncomingStreams: isSet(object.maxIncomingStreams) ? globalThis.Number(object.maxIncomingStreams) : isSet(object.max_incoming_streams) ? globalThis.Number(object.max_incoming_streams) : 0, }; }, toJSON(message) { const obj = {}; if (message.congestion !== "") { obj.congestion = message.congestion; } if (message.bbrProfile !== "") { obj.bbrProfile = message.bbrProfile; } if (message.brutalUp !== 0) { obj.brutalUp = Math.round(message.brutalUp); } if (message.brutalDown !== 0) { obj.brutalDown = Math.round(message.brutalDown); } if (message.udpHop !== undefined) { obj.udpHop = exports.UdpHop.toJSON(message.udpHop); } if (message.initStreamReceiveWindow !== 0) { obj.initStreamReceiveWindow = Math.round(message.initStreamReceiveWindow); } if (message.maxStreamReceiveWindow !== 0) { obj.maxStreamReceiveWindow = Math.round(message.maxStreamReceiveWindow); } if (message.initConnReceiveWindow !== 0) { obj.initConnReceiveWindow = Math.round(message.initConnReceiveWindow); } if (message.maxConnReceiveWindow !== 0) { obj.maxConnReceiveWindow = Math.round(message.maxConnReceiveWindow); } if (message.maxIdleTimeout !== 0) { obj.maxIdleTimeout = Math.round(message.maxIdleTimeout); } if (message.keepAlivePeriod !== 0) { obj.keepAlivePeriod = Math.round(message.keepAlivePeriod); } if (message.disablePathMtuDiscovery !== false) { obj.disablePathMtuDiscovery = message.disablePathMtuDiscovery; } if (message.maxIncomingStreams !== 0) { obj.maxIncomingStreams = Math.round(message.maxIncomingStreams); } return obj; }, create(base) { return exports.QuicParams.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseQuicParams(); message.congestion = object.congestion ?? ""; message.bbrProfile = object.bbrProfile ?? ""; message.brutalUp = object.brutalUp ?? 0; message.brutalDown = object.brutalDown ?? 0; message.udpHop = (object.udpHop !== undefined && object.udpHop !== null) ? exports.UdpHop.fromPartial(object.udpHop) : undefined; message.initStreamReceiveWindow = object.initStreamReceiveWindow ?? 0; message.maxStreamReceiveWindow = object.maxStreamReceiveWindow ?? 0; message.initConnReceiveWindow = object.initConnReceiveWindow ?? 0; message.maxConnReceiveWindow = object.maxConnReceiveWindow ?? 0; message.maxIdleTimeout = object.maxIdleTimeout ?? 0; message.keepAlivePeriod = object.keepAlivePeriod ?? 0; message.disablePathMtuDiscovery = object.disablePathMtuDiscovery ?? false; message.maxIncomingStreams = object.maxIncomingStreams ?? 0; return message; }, }; typeRegistry_1.messageTypeRegistry.set(exports.QuicParams.$type, exports.QuicParams); function createBaseProxyConfig() { return { $type: "xray.transport.internet.ProxyConfig", tag: "", transportLayerProxy: false }; } exports.ProxyConfig = { $type: "xray.transport.internet.ProxyConfig", encode(message, writer = new wire_1.BinaryWriter()) { if (message.tag !== "") { writer.uint32(10).string(message.tag); } if (message.transportLayerProxy !== false) { writer.uint32(16).bool(message.transportLayerProxy); } return writer; }, decode(input, length) { const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input); const end = length === undefined ? reader.len : reader.pos + length; const message = createBaseProxyConfig(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 10) { break; } message.tag = reader.string(); continue; } case 2: { if (tag !== 16) { break; } message.transportLayerProxy = reader.bool(); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { $type: exports.ProxyConfig.$type, tag: isSet(object.tag) ? globalThis.String(object.tag) : "", transportLayerProxy: isSet(object.transportLayerProxy) ? globalThis.Boolean(object.transportLayerProxy) : false, }; }, toJSON(message) { const obj = {}; if (message.tag !== "") { obj.tag = message.tag; } if (message.transportLayerProxy !== false) { obj.transportLayerProxy = message.transportLayerProxy; } return obj; }, create(base) { return exports.ProxyConfig.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseProxyConfig(); message.tag = object.tag ?? ""; message.transportLayerProxy = object.transportLayerProxy ?? false; return message; }, }; typeRegistry_1.messageTypeRegistry.set(exports.ProxyConfig.$type, exports.ProxyConfig); function createBaseCustomSockopt() { return { $type: "xray.transport.internet.CustomSockopt", system: "", network: "", level: "", opt: "", value: "", type: "", }; } exports.CustomSockopt = { $type: "xray.transport.internet.CustomSockopt", encode(message, writer = new wire_1.BinaryWriter()) { if (message.system !== "") { writer.uint32(10).string(message.system); } if (message.network !== "") { writer.uint32(18).string(message.network); } if (message.level !== "") { writer.uint32(26).string(message.level); } if (message.opt !== "") { writer.uint32(34).string(message.opt); } if (message.value !== "") { writer.uint32(42).string(message.value); } if (message.type !== "") { writer.uint32(50).string(message.type); } return writer; }, decode(input, length) { const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input); const end = length === undefined ? reader.len : reader.pos + length; const message = createBaseCustomSockopt(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 10) { break; } message.system = reader.string(); continue; } case 2: { if (tag !== 18) { break; } message.network = reader.string(); continue; } case 3: { if (tag !== 26) { break; } message.level = reader.string(); continue; } case 4: { if (tag !== 34) { break; } message.opt = reader.string(); continue; } case 5: { if (tag !== 42) { break; } message.value = reader.string(); continue; } case 6: { if (tag !== 50) { break; } message.type = reader.string(); continue; } } if ((tag & 7) === 4 || tag === 0) { break; } reader.skip(tag & 7); } return message; }, fromJSON(object) { return { $type: exports.CustomSockopt.$type, system: isSet(object.system) ? globalThis.String(object.system) : "", network: isSet(object.network) ? globalThis.String(object.network) : "", level: isSet(object.level) ? globalThis.String(object.level) : "", opt: isSet(object.opt) ? globalThis.String(object.opt) : "", value: isSet(object.value) ? globalThis.String(object.value) : "", type: isSet(object.type) ? globalThis.String(object.type) : "", }; }, toJSON(message) { const obj = {}; if (message.system !== "") { obj.system = message.system; } if (message.network !== "") { obj.network = message.network; } if (message.level !== "") { obj.level = message.level; } if (message.opt !== "") { obj.opt = message.opt; } if (message.value !== "") { obj.value = message.value; } if (message.type !== "") { obj.type = message.type; } return obj; }, create(base) { return exports.CustomSockopt.fromPartial(base ?? {}); }, fromPartial(object) { const message = createBaseCustomSockopt(); message.system = object.system ?? ""; message.network = object.network ?? ""; message.level = object.level ?? ""; message.opt = object.opt ?? ""; message.value = object.value ?? ""; message.type = object.type ?? ""; return message; }, }; typeRegistry_1.messageTypeRegistry.set(exports.CustomSockopt.$type, exports.CustomSockopt); function createBaseSocketConfig() { return { $type: "xray.transport.internet.SocketConfig", mark: 0, tfo: 0, tproxy: 0, receiveOriginalDestAddress: false, acceptProxyProtocol: false, domainStrategy: 0, dialerProxy: "", tcpKeepAliveInterval: 0, tcpKeepAliveIdle: 0, tcpCongestion: "", interface: "", v6only: false, tcpWindowClamp: 0, tcpUserTimeout: 0, tcpMaxSeg: 0, penetrate: false, tcpMptcp: false, customSockopt: [], addressPortStrategy: 0, happyEyeballs: undefined, trustedXForwardedFor: [], }; } exports.SocketConfig = { $type: "xray.transport.internet.SocketConfig", encode(message, writer = new wire_1.BinaryWriter()) { if (message.mark !== 0) { writer.uint32(8).int32(message.mark); } if (message.tfo !== 0) { writer.uint32(16).int32(message.tfo); } if (message.tproxy !== 0) { writer.uint32(24).int32(message.tproxy); } if (message.receiveOriginalDestAddress !== false) { writer.uint32(32).bool(message.receiveOriginalDestAddress); } if (message.acceptProxyProtocol !== false) { writer.uint32(56).bool(message.acceptProxyProtocol); } if (message.domainStrategy !== 0) { writer.uint32(64).int32(message.domainStrategy); } if (message.dialerProxy !== "") { writer.uint32(74).string(message.dialerProxy); } if (message.tcpKeepAliveInterval !== 0) { writer.uint32(80).int32(message.tcpKeepAliveInterval); } if (message.tcpKeepAliveIdle !== 0) { writer.uint32(88).int32(message.tcpKeepAliveIdle); } if (message.tcpCongestion !== "") { writer.uint32(98).string(message.tcpCongestion); } if (message.interface !== "") { writer.uint32(106).string(message.interface); } if (message.v6only !== false) { writer.uint32(112).bool(message.v6only); } if (message.tcpWindowClamp !== 0) { writer.uint32(120).int32(message.tcpWindowClamp); } if (message.tcpUserTimeout !== 0) { writer.uint32(128).int32(message.tcpUserTimeout); } if (message.tcpMaxSeg !== 0) { writer.uint32(136).int32(message.tcpMaxSeg); } if (message.penetrate !== false) { writer.uint32(144).bool(message.penetrate); } if (message.tcpMptcp !== false) { writer.uint32(152).bool(message.tcpMptcp); } for (const v of message.customSockopt) { exports.CustomSockopt.encode(v, writer.uint32(162).fork()).join(); } if (message.addressPortStrategy !== 0) { writer.uint32(168).int32(message.addressPortStrategy); } if (message.happyEyeballs !== undefined) { exports.HappyEyeballsConfig.encode(message.happyEyeballs, writer.uint32(178).fork()).join(); } for (const v of message.trustedXForwardedFor) { writer.uint32(186).string(v); } return writer; }, decode(input, length) { const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input); const end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSocketConfig(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: { if (tag !== 8) { break; } message.mark = reader.int32(); continue; } case 2: { if (tag !== 16) { break; } message.tfo = reader.int32(); continue; } case 3: { if (tag !== 24) { break; } message.tproxy = reader.int32(); continue; } case 4: { if (tag !== 32) { break; } message.receiveOriginalDestAddress = reader.bool(); continue; } case 7: { if (tag !== 56) { break; } message.acceptProxyProtocol = reader.bool(); continue; } case 8: { if (tag !== 64) { break; } message.domainStrategy = reader.int32(); continue; } case 9: { if (tag !== 74) { break; } message.dialerProxy = reader.string(); continue; } case 10: { if (tag !== 80) { break; } message.tcpKeepAliveInterval = reader.int32(); continue; } case 11: { if (tag !== 88) { break; } message.tcpKeepAliveIdle = reader.int32(); continue; }