@remnawave/xtls-sdk 0.0.7 → 0.0.81-dev.1.8.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index-local.d.ts +10 -0
- package/build/index-local.d.ts.map +1 -0
- package/build/index-local.js +21 -0
- package/build/index.d.ts +2 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +2 -0
- package/build/src/common/utils/decode-user/constants/account-types.d.ts +0 -18
- package/build/src/common/utils/decode-user/constants/account-types.d.ts.map +1 -1
- package/build/src/common/utils/decode-user/constants/account-types.js +1 -28
- package/build/src/common/utils/decode-user/types/decoded-user.type.d.ts +0 -4
- package/build/src/common/utils/decode-user/types/decoded-user.type.d.ts.map +1 -1
- package/build/src/handler/handler.service.d.ts +2 -60
- package/build/src/handler/handler.service.d.ts.map +1 -1
- package/build/src/handler/handler.service.js +2 -207
- package/build/src/handler/models/index.d.ts +0 -1
- package/build/src/handler/models/index.d.ts.map +1 -1
- package/build/src/handler/models/index.js +0 -1
- package/build/src/stats/stats.service.d.ts +1 -27
- package/build/src/stats/stats.service.d.ts.map +1 -1
- package/build/src/stats/stats.service.js +0 -53
- package/build/src/xray-protos/app/commander/config.d.ts +0 -2
- package/build/src/xray-protos/app/commander/config.d.ts.map +1 -1
- package/build/src/xray-protos/app/commander/config.js +1 -16
- package/build/src/xray-protos/app/log/config.d.ts +0 -1
- package/build/src/xray-protos/app/log/config.d.ts.map +1 -1
- package/build/src/xray-protos/app/log/config.js +0 -16
- package/build/src/xray-protos/app/policy/config.d.ts +0 -1
- package/build/src/xray-protos/app/policy/config.d.ts.map +1 -1
- package/build/src/xray-protos/app/policy/config.js +1 -16
- package/build/src/xray-protos/app/proxyman/command/command.d.ts +0 -36
- package/build/src/xray-protos/app/proxyman/command/command.d.ts.map +1 -1
- package/build/src/xray-protos/app/proxyman/command/command.js +1 -210
- package/build/src/xray-protos/app/proxyman/config.d.ts +14 -1
- package/build/src/xray-protos/app/proxyman/config.d.ts.map +1 -1
- package/build/src/xray-protos/app/proxyman/config.js +63 -19
- package/build/src/xray-protos/app/stats/command/command.d.ts +0 -10
- package/build/src/xray-protos/app/stats/command/command.d.ts.map +1 -1
- package/build/src/xray-protos/app/stats/command/command.js +0 -8
- package/build/src/xray-protos/common/net/network.d.ts +2 -0
- package/build/src/xray-protos/common/net/network.d.ts.map +1 -1
- package/build/src/xray-protos/common/net/network.js +7 -0
- package/build/src/xray-protos/common/protocol/user.d.ts +1 -1
- package/build/src/xray-protos/core/config.d.ts +9 -0
- package/build/src/xray-protos/core/config.d.ts.map +1 -1
- package/build/src/xray-protos/core/config.js +19 -1
- package/build/src/xray-protos/proxy/dns/config.d.ts +0 -1
- package/build/src/xray-protos/proxy/dns/config.d.ts.map +1 -1
- package/build/src/xray-protos/proxy/dns/config.js +1 -27
- package/build/src/xray-protos/proxy/dokodemo/config.d.ts +10 -1
- package/build/src/xray-protos/proxy/dokodemo/config.d.ts.map +1 -1
- package/build/src/xray-protos/proxy/dokodemo/config.js +34 -0
- package/build/src/xray-protos/proxy/freedom/config.d.ts +2 -11
- package/build/src/xray-protos/proxy/freedom/config.d.ts.map +1 -1
- package/build/src/xray-protos/proxy/freedom/config.js +17 -181
- package/build/src/xray-protos/proxy/http/config.d.ts +2 -0
- package/build/src/xray-protos/proxy/http/config.d.ts.map +1 -1
- package/build/src/xray-protos/proxy/http/config.js +16 -1
- package/build/src/xray-protos/proxy/shadowsocks_2022/config.d.ts +5 -4
- package/build/src/xray-protos/proxy/shadowsocks_2022/config.d.ts.map +1 -1
- package/build/src/xray-protos/proxy/shadowsocks_2022/config.js +48 -16
- package/build/src/xray-protos/proxy/socks/config.d.ts +12 -1
- package/build/src/xray-protos/proxy/socks/config.d.ts.map +1 -1
- package/build/src/xray-protos/proxy/socks/config.js +73 -3
- package/build/src/xray-protos/proxy/wireguard/config.d.ts +1 -1
- package/build/src/xray-protos/proxy/wireguard/config.d.ts.map +1 -1
- package/build/src/xray-protos/proxy/wireguard/config.js +8 -8
- package/build/src/xray-protos/transport/global/config.d.ts +29 -0
- package/build/src/xray-protos/transport/global/config.d.ts.map +1 -0
- package/build/src/xray-protos/transport/global/config.js +71 -0
- package/build/src/xray-protos/transport/internet/config.d.ts +27 -15
- package/build/src/xray-protos/transport/internet/config.d.ts.map +1 -1
- package/build/src/xray-protos/transport/internet/config.js +84 -150
- package/package.json +3 -3
- package/build/src/handler/models/get-inbound-users/get-inbound-users.response.model.d.ts +0 -7
- package/build/src/handler/models/get-inbound-users/get-inbound-users.response.model.d.ts.map +0 -1
- package/build/src/handler/models/get-inbound-users/get-inbound-users.response.model.js +0 -10
- package/build/src/handler/models/get-inbound-users/index.d.ts +0 -2
- package/build/src/handler/models/get-inbound-users/index.d.ts.map +0 -1
- package/build/src/handler/models/get-inbound-users/index.js +0 -17
|
@@ -5,9 +5,11 @@
|
|
|
5
5
|
// protoc v5.28.3
|
|
6
6
|
// source: proxy/socks/config.proto
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.ClientConfig = exports.ServerConfig_AccountsEntry = exports.ServerConfig = exports.Account = exports.AuthType = exports.protobufPackage = void 0;
|
|
8
|
+
exports.ClientConfig = exports.ServerConfig_AccountsEntry = exports.ServerConfig = exports.Account = exports.Version = exports.AuthType = exports.protobufPackage = void 0;
|
|
9
9
|
exports.authTypeFromJSON = authTypeFromJSON;
|
|
10
10
|
exports.authTypeToJSON = authTypeToJSON;
|
|
11
|
+
exports.versionFromJSON = versionFromJSON;
|
|
12
|
+
exports.versionToJSON = versionToJSON;
|
|
11
13
|
/* eslint-disable */
|
|
12
14
|
const wire_1 = require("@bufbuild/protobuf/wire");
|
|
13
15
|
const address_1 = require("../../common/net/address");
|
|
@@ -17,7 +19,7 @@ exports.protobufPackage = "xray.proxy.socks";
|
|
|
17
19
|
/** AuthType is the authentication type of Socks proxy. */
|
|
18
20
|
var AuthType;
|
|
19
21
|
(function (AuthType) {
|
|
20
|
-
/** NO_AUTH - NO_AUTH is for
|
|
22
|
+
/** NO_AUTH - NO_AUTH is for anounymous authentication. */
|
|
21
23
|
AuthType[AuthType["NO_AUTH"] = 0] = "NO_AUTH";
|
|
22
24
|
/** PASSWORD - PASSWORD is for username/password authentication. */
|
|
23
25
|
AuthType[AuthType["PASSWORD"] = 1] = "PASSWORD";
|
|
@@ -48,6 +50,43 @@ function authTypeToJSON(object) {
|
|
|
48
50
|
return "UNRECOGNIZED";
|
|
49
51
|
}
|
|
50
52
|
}
|
|
53
|
+
var Version;
|
|
54
|
+
(function (Version) {
|
|
55
|
+
Version[Version["SOCKS5"] = 0] = "SOCKS5";
|
|
56
|
+
Version[Version["SOCKS4"] = 1] = "SOCKS4";
|
|
57
|
+
Version[Version["SOCKS4A"] = 2] = "SOCKS4A";
|
|
58
|
+
Version[Version["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
|
|
59
|
+
})(Version || (exports.Version = Version = {}));
|
|
60
|
+
function versionFromJSON(object) {
|
|
61
|
+
switch (object) {
|
|
62
|
+
case 0:
|
|
63
|
+
case "SOCKS5":
|
|
64
|
+
return Version.SOCKS5;
|
|
65
|
+
case 1:
|
|
66
|
+
case "SOCKS4":
|
|
67
|
+
return Version.SOCKS4;
|
|
68
|
+
case 2:
|
|
69
|
+
case "SOCKS4A":
|
|
70
|
+
return Version.SOCKS4A;
|
|
71
|
+
case -1:
|
|
72
|
+
case "UNRECOGNIZED":
|
|
73
|
+
default:
|
|
74
|
+
return Version.UNRECOGNIZED;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function versionToJSON(object) {
|
|
78
|
+
switch (object) {
|
|
79
|
+
case Version.SOCKS5:
|
|
80
|
+
return "SOCKS5";
|
|
81
|
+
case Version.SOCKS4:
|
|
82
|
+
return "SOCKS4";
|
|
83
|
+
case Version.SOCKS4A:
|
|
84
|
+
return "SOCKS4A";
|
|
85
|
+
case Version.UNRECOGNIZED:
|
|
86
|
+
default:
|
|
87
|
+
return "UNRECOGNIZED";
|
|
88
|
+
}
|
|
89
|
+
}
|
|
51
90
|
function createBaseAccount() {
|
|
52
91
|
return { $type: "xray.proxy.socks.Account", username: "", password: "" };
|
|
53
92
|
}
|
|
@@ -126,6 +165,7 @@ function createBaseServerConfig() {
|
|
|
126
165
|
accounts: {},
|
|
127
166
|
address: undefined,
|
|
128
167
|
udpEnabled: false,
|
|
168
|
+
timeout: 0,
|
|
129
169
|
userLevel: 0,
|
|
130
170
|
};
|
|
131
171
|
}
|
|
@@ -148,6 +188,9 @@ exports.ServerConfig = {
|
|
|
148
188
|
if (message.udpEnabled !== false) {
|
|
149
189
|
writer.uint32(32).bool(message.udpEnabled);
|
|
150
190
|
}
|
|
191
|
+
if (message.timeout !== 0) {
|
|
192
|
+
writer.uint32(40).uint32(message.timeout);
|
|
193
|
+
}
|
|
151
194
|
if (message.userLevel !== 0) {
|
|
152
195
|
writer.uint32(48).uint32(message.userLevel);
|
|
153
196
|
}
|
|
@@ -191,6 +234,13 @@ exports.ServerConfig = {
|
|
|
191
234
|
message.udpEnabled = reader.bool();
|
|
192
235
|
continue;
|
|
193
236
|
}
|
|
237
|
+
case 5: {
|
|
238
|
+
if (tag !== 40) {
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
241
|
+
message.timeout = reader.uint32();
|
|
242
|
+
continue;
|
|
243
|
+
}
|
|
194
244
|
case 6: {
|
|
195
245
|
if (tag !== 48) {
|
|
196
246
|
break;
|
|
@@ -218,6 +268,7 @@ exports.ServerConfig = {
|
|
|
218
268
|
: {},
|
|
219
269
|
address: isSet(object.address) ? address_1.IPOrDomain.fromJSON(object.address) : undefined,
|
|
220
270
|
udpEnabled: isSet(object.udpEnabled) ? globalThis.Boolean(object.udpEnabled) : false,
|
|
271
|
+
timeout: isSet(object.timeout) ? globalThis.Number(object.timeout) : 0,
|
|
221
272
|
userLevel: isSet(object.userLevel) ? globalThis.Number(object.userLevel) : 0,
|
|
222
273
|
};
|
|
223
274
|
},
|
|
@@ -241,6 +292,9 @@ exports.ServerConfig = {
|
|
|
241
292
|
if (message.udpEnabled !== false) {
|
|
242
293
|
obj.udpEnabled = message.udpEnabled;
|
|
243
294
|
}
|
|
295
|
+
if (message.timeout !== 0) {
|
|
296
|
+
obj.timeout = Math.round(message.timeout);
|
|
297
|
+
}
|
|
244
298
|
if (message.userLevel !== 0) {
|
|
245
299
|
obj.userLevel = Math.round(message.userLevel);
|
|
246
300
|
}
|
|
@@ -262,6 +316,7 @@ exports.ServerConfig = {
|
|
|
262
316
|
? address_1.IPOrDomain.fromPartial(object.address)
|
|
263
317
|
: undefined;
|
|
264
318
|
message.udpEnabled = object.udpEnabled ?? false;
|
|
319
|
+
message.timeout = object.timeout ?? 0;
|
|
265
320
|
message.userLevel = object.userLevel ?? 0;
|
|
266
321
|
return message;
|
|
267
322
|
},
|
|
@@ -339,7 +394,7 @@ exports.ServerConfig_AccountsEntry = {
|
|
|
339
394
|
};
|
|
340
395
|
typeRegistry_1.messageTypeRegistry.set(exports.ServerConfig_AccountsEntry.$type, exports.ServerConfig_AccountsEntry);
|
|
341
396
|
function createBaseClientConfig() {
|
|
342
|
-
return { $type: "xray.proxy.socks.ClientConfig", server: [] };
|
|
397
|
+
return { $type: "xray.proxy.socks.ClientConfig", server: [], version: 0 };
|
|
343
398
|
}
|
|
344
399
|
exports.ClientConfig = {
|
|
345
400
|
$type: "xray.proxy.socks.ClientConfig",
|
|
@@ -347,6 +402,9 @@ exports.ClientConfig = {
|
|
|
347
402
|
for (const v of message.server) {
|
|
348
403
|
server_spec_1.ServerEndpoint.encode(v, writer.uint32(10).fork()).join();
|
|
349
404
|
}
|
|
405
|
+
if (message.version !== 0) {
|
|
406
|
+
writer.uint32(16).int32(message.version);
|
|
407
|
+
}
|
|
350
408
|
return writer;
|
|
351
409
|
},
|
|
352
410
|
decode(input, length) {
|
|
@@ -363,6 +421,13 @@ exports.ClientConfig = {
|
|
|
363
421
|
message.server.push(server_spec_1.ServerEndpoint.decode(reader, reader.uint32()));
|
|
364
422
|
continue;
|
|
365
423
|
}
|
|
424
|
+
case 2: {
|
|
425
|
+
if (tag !== 16) {
|
|
426
|
+
break;
|
|
427
|
+
}
|
|
428
|
+
message.version = reader.int32();
|
|
429
|
+
continue;
|
|
430
|
+
}
|
|
366
431
|
}
|
|
367
432
|
if ((tag & 7) === 4 || tag === 0) {
|
|
368
433
|
break;
|
|
@@ -375,6 +440,7 @@ exports.ClientConfig = {
|
|
|
375
440
|
return {
|
|
376
441
|
$type: exports.ClientConfig.$type,
|
|
377
442
|
server: globalThis.Array.isArray(object?.server) ? object.server.map((e) => server_spec_1.ServerEndpoint.fromJSON(e)) : [],
|
|
443
|
+
version: isSet(object.version) ? versionFromJSON(object.version) : 0,
|
|
378
444
|
};
|
|
379
445
|
},
|
|
380
446
|
toJSON(message) {
|
|
@@ -382,6 +448,9 @@ exports.ClientConfig = {
|
|
|
382
448
|
if (message.server?.length) {
|
|
383
449
|
obj.server = message.server.map((e) => server_spec_1.ServerEndpoint.toJSON(e));
|
|
384
450
|
}
|
|
451
|
+
if (message.version !== 0) {
|
|
452
|
+
obj.version = versionToJSON(message.version);
|
|
453
|
+
}
|
|
385
454
|
return obj;
|
|
386
455
|
},
|
|
387
456
|
create(base) {
|
|
@@ -390,6 +459,7 @@ exports.ClientConfig = {
|
|
|
390
459
|
fromPartial(object) {
|
|
391
460
|
const message = createBaseClientConfig();
|
|
392
461
|
message.server = object.server?.map((e) => server_spec_1.ServerEndpoint.fromPartial(e)) || [];
|
|
462
|
+
message.version = object.version ?? 0;
|
|
393
463
|
return message;
|
|
394
464
|
},
|
|
395
465
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/xray-protos/proxy/wireguard/config.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGrE,eAAO,MAAM,eAAe,yBAAyB,CAAC;AAEtD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,iCAAiC,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,mCAAmC,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,UAAU,CAAC;IACrB,cAAc,EAAE,2BAA2B,CAAC;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/xray-protos/proxy/wireguard/config.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGrE,eAAO,MAAM,eAAe,yBAAyB,CAAC;AAEtD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,iCAAiC,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,mCAAmC,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,UAAU,CAAC;IACrB,cAAc,EAAE,2BAA2B,CAAC;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,oBAAY,2BAA2B;IACrC,QAAQ,IAAI;IACZ,SAAS,IAAI;IACb,SAAS,IAAI;IACb,UAAU,IAAI;IACd,UAAU,IAAI;IACd,YAAY,KAAK;CAClB;AAED,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,GAAG,GAAG,2BAA2B,CAsB5F;AAED,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,2BAA2B,GAAG,MAAM,CAgB7F;AAaD,eAAO,MAAM,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,iCAAiC,CA2HhF,CAAC;AAmBF,eAAO,MAAM,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,mCAAmC,CAyLtF,CAAC;AA6BF,KAAK,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEpF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,CAAC,GAC9C,CAAC,SAAS,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACtE,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAChE,CAAC,SAAS,EAAE,GAAG;KAAG,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACvE,OAAO,CAAC,CAAC,CAAC,CAAC;AAMf,MAAM,WAAW,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM;IAC7C,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACxD,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAC7D,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IACzB,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;IAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACjC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACxC"}
|
|
@@ -197,7 +197,7 @@ function createBaseDeviceConfig() {
|
|
|
197
197
|
reserved: new Uint8Array(0),
|
|
198
198
|
domainStrategy: 0,
|
|
199
199
|
isClient: false,
|
|
200
|
-
|
|
200
|
+
kernelMode: false,
|
|
201
201
|
};
|
|
202
202
|
}
|
|
203
203
|
exports.DeviceConfig = {
|
|
@@ -227,8 +227,8 @@ exports.DeviceConfig = {
|
|
|
227
227
|
if (message.isClient !== false) {
|
|
228
228
|
writer.uint32(64).bool(message.isClient);
|
|
229
229
|
}
|
|
230
|
-
if (message.
|
|
231
|
-
writer.uint32(72).bool(message.
|
|
230
|
+
if (message.kernelMode !== false) {
|
|
231
|
+
writer.uint32(72).bool(message.kernelMode);
|
|
232
232
|
}
|
|
233
233
|
return writer;
|
|
234
234
|
},
|
|
@@ -299,7 +299,7 @@ exports.DeviceConfig = {
|
|
|
299
299
|
if (tag !== 72) {
|
|
300
300
|
break;
|
|
301
301
|
}
|
|
302
|
-
message.
|
|
302
|
+
message.kernelMode = reader.bool();
|
|
303
303
|
continue;
|
|
304
304
|
}
|
|
305
305
|
}
|
|
@@ -321,7 +321,7 @@ exports.DeviceConfig = {
|
|
|
321
321
|
reserved: isSet(object.reserved) ? bytesFromBase64(object.reserved) : new Uint8Array(0),
|
|
322
322
|
domainStrategy: isSet(object.domainStrategy) ? deviceConfig_DomainStrategyFromJSON(object.domainStrategy) : 0,
|
|
323
323
|
isClient: isSet(object.isClient) ? globalThis.Boolean(object.isClient) : false,
|
|
324
|
-
|
|
324
|
+
kernelMode: isSet(object.kernelMode) ? globalThis.Boolean(object.kernelMode) : false,
|
|
325
325
|
};
|
|
326
326
|
},
|
|
327
327
|
toJSON(message) {
|
|
@@ -350,8 +350,8 @@ exports.DeviceConfig = {
|
|
|
350
350
|
if (message.isClient !== false) {
|
|
351
351
|
obj.isClient = message.isClient;
|
|
352
352
|
}
|
|
353
|
-
if (message.
|
|
354
|
-
obj.
|
|
353
|
+
if (message.kernelMode !== false) {
|
|
354
|
+
obj.kernelMode = message.kernelMode;
|
|
355
355
|
}
|
|
356
356
|
return obj;
|
|
357
357
|
},
|
|
@@ -368,7 +368,7 @@ exports.DeviceConfig = {
|
|
|
368
368
|
message.reserved = object.reserved ?? new Uint8Array(0);
|
|
369
369
|
message.domainStrategy = object.domainStrategy ?? 0;
|
|
370
370
|
message.isClient = object.isClient ?? false;
|
|
371
|
-
message.
|
|
371
|
+
message.kernelMode = object.kernelMode ?? false;
|
|
372
372
|
return message;
|
|
373
373
|
},
|
|
374
374
|
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
|
2
|
+
import { TransportConfig } from "../internet/config";
|
|
3
|
+
export declare const protobufPackage = "xray.transport";
|
|
4
|
+
/**
|
|
5
|
+
* Global transport settings. This affects all type of connections that go
|
|
6
|
+
* through Xray. Deprecated. Use each settings in StreamConfig.
|
|
7
|
+
*
|
|
8
|
+
* @deprecated
|
|
9
|
+
*/
|
|
10
|
+
export interface Config {
|
|
11
|
+
$type: "xray.transport.Config";
|
|
12
|
+
transportSettings: TransportConfig[];
|
|
13
|
+
}
|
|
14
|
+
export declare const Config: MessageFns<Config, "xray.transport.Config">;
|
|
15
|
+
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
16
|
+
export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
|
|
17
|
+
[K in Exclude<keyof T, "$type">]?: DeepPartial<T[K]>;
|
|
18
|
+
} : Partial<T>;
|
|
19
|
+
export interface MessageFns<T, V extends string> {
|
|
20
|
+
readonly $type: V;
|
|
21
|
+
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
|
22
|
+
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
|
23
|
+
fromJSON(object: any): T;
|
|
24
|
+
toJSON(message: T): unknown;
|
|
25
|
+
create(base?: DeepPartial<T>): T;
|
|
26
|
+
fromPartial(object: DeepPartial<T>): T;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/xray-protos/transport/global/config.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,uBAAuB,CAAC;IAC/B,iBAAiB,EAAE,eAAe,EAAE,CAAC;CACtC;AAMD,eAAO,MAAM,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,uBAAuB,CA2D9D,CAAC;AAIF,KAAK,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEpF,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,CAAC,GAC9C,CAAC,SAAS,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACtE,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAChE,CAAC,SAAS,EAAE,GAAG;KAAG,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACvE,OAAO,CAAC,CAAC,CAAC,CAAC;AAEf,MAAM,WAAW,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM;IAC7C,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACxD,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAC7D,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IACzB,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;IAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACjC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACxC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
|
|
3
|
+
// versions:
|
|
4
|
+
// protoc-gen-ts_proto v2.2.7
|
|
5
|
+
// protoc v5.28.3
|
|
6
|
+
// source: transport/global/config.proto
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.Config = exports.protobufPackage = void 0;
|
|
9
|
+
/* eslint-disable */
|
|
10
|
+
const wire_1 = require("@bufbuild/protobuf/wire");
|
|
11
|
+
const typeRegistry_1 = require("../../typeRegistry");
|
|
12
|
+
const config_1 = require("../internet/config");
|
|
13
|
+
exports.protobufPackage = "xray.transport";
|
|
14
|
+
function createBaseConfig() {
|
|
15
|
+
return { $type: "xray.transport.Config", transportSettings: [] };
|
|
16
|
+
}
|
|
17
|
+
exports.Config = {
|
|
18
|
+
$type: "xray.transport.Config",
|
|
19
|
+
encode(message, writer = new wire_1.BinaryWriter()) {
|
|
20
|
+
for (const v of message.transportSettings) {
|
|
21
|
+
config_1.TransportConfig.encode(v, writer.uint32(10).fork()).join();
|
|
22
|
+
}
|
|
23
|
+
return writer;
|
|
24
|
+
},
|
|
25
|
+
decode(input, length) {
|
|
26
|
+
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
|
|
27
|
+
let end = length === undefined ? reader.len : reader.pos + length;
|
|
28
|
+
const message = createBaseConfig();
|
|
29
|
+
while (reader.pos < end) {
|
|
30
|
+
const tag = reader.uint32();
|
|
31
|
+
switch (tag >>> 3) {
|
|
32
|
+
case 1: {
|
|
33
|
+
if (tag !== 10) {
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
message.transportSettings.push(config_1.TransportConfig.decode(reader, reader.uint32()));
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if ((tag & 7) === 4 || tag === 0) {
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
reader.skip(tag & 7);
|
|
44
|
+
}
|
|
45
|
+
return message;
|
|
46
|
+
},
|
|
47
|
+
fromJSON(object) {
|
|
48
|
+
return {
|
|
49
|
+
$type: exports.Config.$type,
|
|
50
|
+
transportSettings: globalThis.Array.isArray(object?.transportSettings)
|
|
51
|
+
? object.transportSettings.map((e) => config_1.TransportConfig.fromJSON(e))
|
|
52
|
+
: [],
|
|
53
|
+
};
|
|
54
|
+
},
|
|
55
|
+
toJSON(message) {
|
|
56
|
+
const obj = {};
|
|
57
|
+
if (message.transportSettings?.length) {
|
|
58
|
+
obj.transportSettings = message.transportSettings.map((e) => config_1.TransportConfig.toJSON(e));
|
|
59
|
+
}
|
|
60
|
+
return obj;
|
|
61
|
+
},
|
|
62
|
+
create(base) {
|
|
63
|
+
return exports.Config.fromPartial(base ?? {});
|
|
64
|
+
},
|
|
65
|
+
fromPartial(object) {
|
|
66
|
+
const message = createBaseConfig();
|
|
67
|
+
message.transportSettings = object.transportSettings?.map((e) => config_1.TransportConfig.fromPartial(e)) || [];
|
|
68
|
+
return message;
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
typeRegistry_1.messageTypeRegistry.set(exports.Config.$type, exports.Config);
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
|
2
|
-
import { IPOrDomain } from "../../common/net/address";
|
|
3
2
|
import { TypedMessage } from "../../common/serial/typed_message";
|
|
4
3
|
export declare const protobufPackage = "xray.transport.internet";
|
|
4
|
+
export declare enum TransportProtocol {
|
|
5
|
+
TCP = 0,
|
|
6
|
+
UDP = 1,
|
|
7
|
+
MKCP = 2,
|
|
8
|
+
WebSocket = 3,
|
|
9
|
+
HTTP = 4,
|
|
10
|
+
DomainSocket = 5,
|
|
11
|
+
UNRECOGNIZED = -1
|
|
12
|
+
}
|
|
13
|
+
export declare function transportProtocolFromJSON(object: any): TransportProtocol;
|
|
14
|
+
export declare function transportProtocolToJSON(object: TransportProtocol): string;
|
|
5
15
|
export declare enum DomainStrategy {
|
|
6
16
|
AS_IS = 0,
|
|
7
17
|
USE_IP = 1,
|
|
@@ -20,21 +30,32 @@ export declare function domainStrategyFromJSON(object: any): DomainStrategy;
|
|
|
20
30
|
export declare function domainStrategyToJSON(object: DomainStrategy): string;
|
|
21
31
|
export interface TransportConfig {
|
|
22
32
|
$type: "xray.transport.internet.TransportConfig";
|
|
23
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Type of network that this settings supports.
|
|
35
|
+
* Deprecated. Use the string form below.
|
|
36
|
+
*
|
|
37
|
+
* @deprecated
|
|
38
|
+
*/
|
|
39
|
+
protocol: TransportProtocol;
|
|
40
|
+
/** Type of network that this settings supports. */
|
|
24
41
|
protocolName: string;
|
|
25
|
-
/** Specific
|
|
42
|
+
/** Specific settings. Must be of the transports. */
|
|
26
43
|
settings: TypedMessage | undefined;
|
|
27
44
|
}
|
|
28
45
|
export interface StreamConfig {
|
|
29
46
|
$type: "xray.transport.internet.StreamConfig";
|
|
30
|
-
|
|
31
|
-
|
|
47
|
+
/**
|
|
48
|
+
* Effective network. Deprecated. Use the string form below.
|
|
49
|
+
*
|
|
50
|
+
* @deprecated
|
|
51
|
+
*/
|
|
52
|
+
protocol: TransportProtocol;
|
|
32
53
|
/** Effective network. */
|
|
33
54
|
protocolName: string;
|
|
34
55
|
transportSettings: TransportConfig[];
|
|
35
56
|
/** Type of security. Must be a message name of the settings proto. */
|
|
36
57
|
securityType: string;
|
|
37
|
-
/**
|
|
58
|
+
/** Settings for transport security. For now the only choice is TLS. */
|
|
38
59
|
securitySettings: TypedMessage[];
|
|
39
60
|
socketSettings: SocketConfig | undefined;
|
|
40
61
|
}
|
|
@@ -43,13 +64,6 @@ export interface ProxyConfig {
|
|
|
43
64
|
tag: string;
|
|
44
65
|
transportLayerProxy: boolean;
|
|
45
66
|
}
|
|
46
|
-
export interface CustomSockopt {
|
|
47
|
-
$type: "xray.transport.internet.CustomSockopt";
|
|
48
|
-
level: string;
|
|
49
|
-
opt: string;
|
|
50
|
-
value: string;
|
|
51
|
-
type: string;
|
|
52
|
-
}
|
|
53
67
|
/** SocketConfig is options to be applied on network sockets. */
|
|
54
68
|
export interface SocketConfig {
|
|
55
69
|
$type: "xray.transport.internet.SocketConfig";
|
|
@@ -79,7 +93,6 @@ export interface SocketConfig {
|
|
|
79
93
|
tcpMaxSeg: number;
|
|
80
94
|
tcpNoDelay: boolean;
|
|
81
95
|
tcpMptcp: boolean;
|
|
82
|
-
customSockopt: CustomSockopt[];
|
|
83
96
|
}
|
|
84
97
|
export declare enum SocketConfig_TProxyMode {
|
|
85
98
|
/** Off - TProxy is off. */
|
|
@@ -95,7 +108,6 @@ export declare function socketConfig_TProxyModeToJSON(object: SocketConfig_TProx
|
|
|
95
108
|
export declare const TransportConfig: MessageFns<TransportConfig, "xray.transport.internet.TransportConfig">;
|
|
96
109
|
export declare const StreamConfig: MessageFns<StreamConfig, "xray.transport.internet.StreamConfig">;
|
|
97
110
|
export declare const ProxyConfig: MessageFns<ProxyConfig, "xray.transport.internet.ProxyConfig">;
|
|
98
|
-
export declare const CustomSockopt: MessageFns<CustomSockopt, "xray.transport.internet.CustomSockopt">;
|
|
99
111
|
export declare const SocketConfig: MessageFns<SocketConfig, "xray.transport.internet.SocketConfig">;
|
|
100
112
|
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
101
113
|
export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/xray-protos/transport/internet/config.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/xray-protos/transport/internet/config.ts"],"names":[],"mappings":"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"}
|