@localzet/xtls-sdk
Version:
TypeScript SDK for XRAY/AURA Core
604 lines (603 loc) • 22.4 kB
JavaScript
"use strict";
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions:
// protoc-gen-ts_proto v2.2.7
// protoc v5.28.3
// source: proxy/freedom/config.proto
Object.defineProperty(exports, "__esModule", { value: true });
exports.Config = exports.Noise = exports.Fragment = exports.DestinationOverride = exports.Config_DomainStrategy = exports.protobufPackage = void 0;
exports.config_DomainStrategyFromJSON = config_DomainStrategyFromJSON;
exports.config_DomainStrategyToJSON = config_DomainStrategyToJSON;
/* eslint-disable */
const wire_1 = require("@bufbuild/protobuf/wire");
const server_spec_1 = require("../../common/protocol/server_spec");
const typeRegistry_1 = require("../../typeRegistry");
exports.protobufPackage = 'xray.proxy.freedom';
var Config_DomainStrategy;
(function (Config_DomainStrategy) {
Config_DomainStrategy[Config_DomainStrategy["AS_IS"] = 0] = "AS_IS";
Config_DomainStrategy[Config_DomainStrategy["USE_IP"] = 1] = "USE_IP";
Config_DomainStrategy[Config_DomainStrategy["USE_IP4"] = 2] = "USE_IP4";
Config_DomainStrategy[Config_DomainStrategy["USE_IP6"] = 3] = "USE_IP6";
Config_DomainStrategy[Config_DomainStrategy["USE_IP46"] = 4] = "USE_IP46";
Config_DomainStrategy[Config_DomainStrategy["USE_IP64"] = 5] = "USE_IP64";
Config_DomainStrategy[Config_DomainStrategy["FORCE_IP"] = 6] = "FORCE_IP";
Config_DomainStrategy[Config_DomainStrategy["FORCE_IP4"] = 7] = "FORCE_IP4";
Config_DomainStrategy[Config_DomainStrategy["FORCE_IP6"] = 8] = "FORCE_IP6";
Config_DomainStrategy[Config_DomainStrategy["FORCE_IP46"] = 9] = "FORCE_IP46";
Config_DomainStrategy[Config_DomainStrategy["FORCE_IP64"] = 10] = "FORCE_IP64";
Config_DomainStrategy[Config_DomainStrategy["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(Config_DomainStrategy || (exports.Config_DomainStrategy = Config_DomainStrategy = {}));
function config_DomainStrategyFromJSON(object) {
switch (object) {
case 0:
case 'AS_IS':
return Config_DomainStrategy.AS_IS;
case 1:
case 'USE_IP':
return Config_DomainStrategy.USE_IP;
case 2:
case 'USE_IP4':
return Config_DomainStrategy.USE_IP4;
case 3:
case 'USE_IP6':
return Config_DomainStrategy.USE_IP6;
case 4:
case 'USE_IP46':
return Config_DomainStrategy.USE_IP46;
case 5:
case 'USE_IP64':
return Config_DomainStrategy.USE_IP64;
case 6:
case 'FORCE_IP':
return Config_DomainStrategy.FORCE_IP;
case 7:
case 'FORCE_IP4':
return Config_DomainStrategy.FORCE_IP4;
case 8:
case 'FORCE_IP6':
return Config_DomainStrategy.FORCE_IP6;
case 9:
case 'FORCE_IP46':
return Config_DomainStrategy.FORCE_IP46;
case 10:
case 'FORCE_IP64':
return Config_DomainStrategy.FORCE_IP64;
case -1:
case 'UNRECOGNIZED':
default:
return Config_DomainStrategy.UNRECOGNIZED;
}
}
function config_DomainStrategyToJSON(object) {
switch (object) {
case Config_DomainStrategy.AS_IS:
return 'AS_IS';
case Config_DomainStrategy.USE_IP:
return 'USE_IP';
case Config_DomainStrategy.USE_IP4:
return 'USE_IP4';
case Config_DomainStrategy.USE_IP6:
return 'USE_IP6';
case Config_DomainStrategy.USE_IP46:
return 'USE_IP46';
case Config_DomainStrategy.USE_IP64:
return 'USE_IP64';
case Config_DomainStrategy.FORCE_IP:
return 'FORCE_IP';
case Config_DomainStrategy.FORCE_IP4:
return 'FORCE_IP4';
case Config_DomainStrategy.FORCE_IP6:
return 'FORCE_IP6';
case Config_DomainStrategy.FORCE_IP46:
return 'FORCE_IP46';
case Config_DomainStrategy.FORCE_IP64:
return 'FORCE_IP64';
case Config_DomainStrategy.UNRECOGNIZED:
default:
return 'UNRECOGNIZED';
}
}
function createBaseDestinationOverride() {
return { $type: 'xray.proxy.freedom.DestinationOverride', server: undefined };
}
exports.DestinationOverride = {
$type: 'xray.proxy.freedom.DestinationOverride',
encode(message, writer = new wire_1.BinaryWriter()) {
if (message.server !== undefined) {
server_spec_1.ServerEndpoint.encode(message.server, writer.uint32(10).fork()).join();
}
return writer;
},
decode(input, length) {
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseDestinationOverride();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.server = server_spec_1.ServerEndpoint.decode(reader, reader.uint32());
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
$type: exports.DestinationOverride.$type,
server: isSet(object.server) ? server_spec_1.ServerEndpoint.fromJSON(object.server) : undefined,
};
},
toJSON(message) {
const obj = {};
if (message.server !== undefined) {
obj.server = server_spec_1.ServerEndpoint.toJSON(message.server);
}
return obj;
},
create(base) {
return exports.DestinationOverride.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseDestinationOverride();
message.server = (object.server !== undefined && object.server !== null)
? server_spec_1.ServerEndpoint.fromPartial(object.server)
: undefined;
return message;
},
};
typeRegistry_1.messageTypeRegistry.set(exports.DestinationOverride.$type, exports.DestinationOverride);
function createBaseFragment() {
return {
$type: 'xray.proxy.freedom.Fragment',
packetsFrom: 0,
packetsTo: 0,
lengthMin: 0,
lengthMax: 0,
intervalMin: 0,
intervalMax: 0,
};
}
exports.Fragment = {
$type: 'xray.proxy.freedom.Fragment',
encode(message, writer = new wire_1.BinaryWriter()) {
if (message.packetsFrom !== 0) {
writer.uint32(8).uint64(message.packetsFrom);
}
if (message.packetsTo !== 0) {
writer.uint32(16).uint64(message.packetsTo);
}
if (message.lengthMin !== 0) {
writer.uint32(24).uint64(message.lengthMin);
}
if (message.lengthMax !== 0) {
writer.uint32(32).uint64(message.lengthMax);
}
if (message.intervalMin !== 0) {
writer.uint32(40).uint64(message.intervalMin);
}
if (message.intervalMax !== 0) {
writer.uint32(48).uint64(message.intervalMax);
}
return writer;
},
decode(input, length) {
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseFragment();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
break;
}
message.packetsFrom = longToNumber(reader.uint64());
continue;
}
case 2: {
if (tag !== 16) {
break;
}
message.packetsTo = longToNumber(reader.uint64());
continue;
}
case 3: {
if (tag !== 24) {
break;
}
message.lengthMin = longToNumber(reader.uint64());
continue;
}
case 4: {
if (tag !== 32) {
break;
}
message.lengthMax = longToNumber(reader.uint64());
continue;
}
case 5: {
if (tag !== 40) {
break;
}
message.intervalMin = longToNumber(reader.uint64());
continue;
}
case 6: {
if (tag !== 48) {
break;
}
message.intervalMax = longToNumber(reader.uint64());
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
$type: exports.Fragment.$type,
packetsFrom: isSet(object.packetsFrom) ? globalThis.Number(object.packetsFrom) : 0,
packetsTo: isSet(object.packetsTo) ? globalThis.Number(object.packetsTo) : 0,
lengthMin: isSet(object.lengthMin) ? globalThis.Number(object.lengthMin) : 0,
lengthMax: isSet(object.lengthMax) ? globalThis.Number(object.lengthMax) : 0,
intervalMin: isSet(object.intervalMin) ? globalThis.Number(object.intervalMin) : 0,
intervalMax: isSet(object.intervalMax) ? globalThis.Number(object.intervalMax) : 0,
};
},
toJSON(message) {
const obj = {};
if (message.packetsFrom !== 0) {
obj.packetsFrom = Math.round(message.packetsFrom);
}
if (message.packetsTo !== 0) {
obj.packetsTo = Math.round(message.packetsTo);
}
if (message.lengthMin !== 0) {
obj.lengthMin = Math.round(message.lengthMin);
}
if (message.lengthMax !== 0) {
obj.lengthMax = Math.round(message.lengthMax);
}
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.Fragment.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseFragment();
message.packetsFrom = object.packetsFrom ?? 0;
message.packetsTo = object.packetsTo ?? 0;
message.lengthMin = object.lengthMin ?? 0;
message.lengthMax = object.lengthMax ?? 0;
message.intervalMin = object.intervalMin ?? 0;
message.intervalMax = object.intervalMax ?? 0;
return message;
},
};
typeRegistry_1.messageTypeRegistry.set(exports.Fragment.$type, exports.Fragment);
function createBaseNoise() {
return {
$type: 'xray.proxy.freedom.Noise',
lengthMin: 0,
lengthMax: 0,
delayMin: 0,
delayMax: 0,
packet: new Uint8Array(0),
};
}
exports.Noise = {
$type: 'xray.proxy.freedom.Noise',
encode(message, writer = new wire_1.BinaryWriter()) {
if (message.lengthMin !== 0) {
writer.uint32(8).uint64(message.lengthMin);
}
if (message.lengthMax !== 0) {
writer.uint32(16).uint64(message.lengthMax);
}
if (message.delayMin !== 0) {
writer.uint32(24).uint64(message.delayMin);
}
if (message.delayMax !== 0) {
writer.uint32(32).uint64(message.delayMax);
}
if (message.packet.length !== 0) {
writer.uint32(42).bytes(message.packet);
}
return writer;
},
decode(input, length) {
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseNoise();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
break;
}
message.lengthMin = longToNumber(reader.uint64());
continue;
}
case 2: {
if (tag !== 16) {
break;
}
message.lengthMax = longToNumber(reader.uint64());
continue;
}
case 3: {
if (tag !== 24) {
break;
}
message.delayMin = longToNumber(reader.uint64());
continue;
}
case 4: {
if (tag !== 32) {
break;
}
message.delayMax = longToNumber(reader.uint64());
continue;
}
case 5: {
if (tag !== 42) {
break;
}
message.packet = reader.bytes();
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
$type: exports.Noise.$type,
lengthMin: isSet(object.lengthMin) ? globalThis.Number(object.lengthMin) : 0,
lengthMax: isSet(object.lengthMax) ? globalThis.Number(object.lengthMax) : 0,
delayMin: isSet(object.delayMin) ? globalThis.Number(object.delayMin) : 0,
delayMax: isSet(object.delayMax) ? globalThis.Number(object.delayMax) : 0,
packet: isSet(object.packet) ? bytesFromBase64(object.packet) : new Uint8Array(0),
};
},
toJSON(message) {
const obj = {};
if (message.lengthMin !== 0) {
obj.lengthMin = Math.round(message.lengthMin);
}
if (message.lengthMax !== 0) {
obj.lengthMax = Math.round(message.lengthMax);
}
if (message.delayMin !== 0) {
obj.delayMin = Math.round(message.delayMin);
}
if (message.delayMax !== 0) {
obj.delayMax = Math.round(message.delayMax);
}
if (message.packet.length !== 0) {
obj.packet = base64FromBytes(message.packet);
}
return obj;
},
create(base) {
return exports.Noise.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseNoise();
message.lengthMin = object.lengthMin ?? 0;
message.lengthMax = object.lengthMax ?? 0;
message.delayMin = object.delayMin ?? 0;
message.delayMax = object.delayMax ?? 0;
message.packet = object.packet ?? new Uint8Array(0);
return message;
},
};
typeRegistry_1.messageTypeRegistry.set(exports.Noise.$type, exports.Noise);
function createBaseConfig() {
return {
$type: 'xray.proxy.freedom.Config',
domainStrategy: 0,
destinationOverride: undefined,
userLevel: 0,
fragment: undefined,
proxyProtocol: 0,
noises: [],
};
}
exports.Config = {
$type: 'xray.proxy.freedom.Config',
encode(message, writer = new wire_1.BinaryWriter()) {
if (message.domainStrategy !== 0) {
writer.uint32(8).int32(message.domainStrategy);
}
if (message.destinationOverride !== undefined) {
exports.DestinationOverride.encode(message.destinationOverride, writer.uint32(26).fork()).join();
}
if (message.userLevel !== 0) {
writer.uint32(32).uint32(message.userLevel);
}
if (message.fragment !== undefined) {
exports.Fragment.encode(message.fragment, writer.uint32(42).fork()).join();
}
if (message.proxyProtocol !== 0) {
writer.uint32(48).uint32(message.proxyProtocol);
}
for (const v of message.noises) {
exports.Noise.encode(v, writer.uint32(58).fork()).join();
}
return writer;
},
decode(input, length) {
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseConfig();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
break;
}
message.domainStrategy = reader.int32();
continue;
}
case 3: {
if (tag !== 26) {
break;
}
message.destinationOverride = exports.DestinationOverride.decode(reader, reader.uint32());
continue;
}
case 4: {
if (tag !== 32) {
break;
}
message.userLevel = reader.uint32();
continue;
}
case 5: {
if (tag !== 42) {
break;
}
message.fragment = exports.Fragment.decode(reader, reader.uint32());
continue;
}
case 6: {
if (tag !== 48) {
break;
}
message.proxyProtocol = reader.uint32();
continue;
}
case 7: {
if (tag !== 58) {
break;
}
message.noises.push(exports.Noise.decode(reader, reader.uint32()));
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
$type: exports.Config.$type,
domainStrategy: isSet(object.domainStrategy) ? config_DomainStrategyFromJSON(object.domainStrategy) : 0,
destinationOverride: isSet(object.destinationOverride)
? exports.DestinationOverride.fromJSON(object.destinationOverride)
: undefined,
userLevel: isSet(object.userLevel) ? globalThis.Number(object.userLevel) : 0,
fragment: isSet(object.fragment) ? exports.Fragment.fromJSON(object.fragment) : undefined,
proxyProtocol: isSet(object.proxyProtocol) ? globalThis.Number(object.proxyProtocol) : 0,
noises: globalThis.Array.isArray(object?.noises) ? object.noises.map((e) => exports.Noise.fromJSON(e)) : [],
};
},
toJSON(message) {
const obj = {};
if (message.domainStrategy !== 0) {
obj.domainStrategy = config_DomainStrategyToJSON(message.domainStrategy);
}
if (message.destinationOverride !== undefined) {
obj.destinationOverride = exports.DestinationOverride.toJSON(message.destinationOverride);
}
if (message.userLevel !== 0) {
obj.userLevel = Math.round(message.userLevel);
}
if (message.fragment !== undefined) {
obj.fragment = exports.Fragment.toJSON(message.fragment);
}
if (message.proxyProtocol !== 0) {
obj.proxyProtocol = Math.round(message.proxyProtocol);
}
if (message.noises?.length) {
obj.noises = message.noises.map((e) => exports.Noise.toJSON(e));
}
return obj;
},
create(base) {
return exports.Config.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseConfig();
message.domainStrategy = object.domainStrategy ?? 0;
message.destinationOverride = (object.destinationOverride !== undefined && object.destinationOverride !== null)
? exports.DestinationOverride.fromPartial(object.destinationOverride)
: undefined;
message.userLevel = object.userLevel ?? 0;
message.fragment = (object.fragment !== undefined && object.fragment !== null)
? exports.Fragment.fromPartial(object.fragment)
: undefined;
message.proxyProtocol = object.proxyProtocol ?? 0;
message.noises = object.noises?.map((e) => exports.Noise.fromPartial(e)) || [];
return message;
},
};
typeRegistry_1.messageTypeRegistry.set(exports.Config.$type, exports.Config);
function bytesFromBase64(b64) {
if (globalThis.Buffer) {
return Uint8Array.from(globalThis.Buffer.from(b64, 'base64'));
}
else {
const bin = globalThis.atob(b64);
const arr = new Uint8Array(bin.length);
for (let i = 0; i < bin.length; ++i) {
arr[i] = bin.charCodeAt(i);
}
return arr;
}
}
function base64FromBytes(arr) {
if (globalThis.Buffer) {
return globalThis.Buffer.from(arr).toString('base64');
}
else {
const bin = [];
arr.forEach((byte) => {
bin.push(globalThis.String.fromCharCode(byte));
});
return globalThis.btoa(bin.join(''));
}
}
function longToNumber(int64) {
const num = globalThis.Number(int64.toString());
if (num > globalThis.Number.MAX_SAFE_INTEGER) {
throw new globalThis.Error('Value is larger than Number.MAX_SAFE_INTEGER');
}
if (num < globalThis.Number.MIN_SAFE_INTEGER) {
throw new globalThis.Error('Value is smaller than Number.MIN_SAFE_INTEGER');
}
return num;
}
function isSet(value) {
return value !== null && value !== undefined;
}