@remnawave/xtls-sdk 0.0.81-dev.1.8.6 → 0.1.2

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.
Files changed (119) hide show
  1. package/LICENCE +661 -0
  2. package/build/index.d.ts +2 -0
  3. package/build/index.d.ts.map +1 -1
  4. package/build/index.js +2 -0
  5. package/build/src/common/errors/router/index.d.ts +2 -0
  6. package/build/src/common/errors/router/index.d.ts.map +1 -0
  7. package/build/src/common/errors/router/index.js +17 -0
  8. package/build/src/common/errors/router/router.errors.d.ts +15 -0
  9. package/build/src/common/errors/router/router.errors.d.ts.map +1 -0
  10. package/build/src/common/errors/router/router.errors.js +14 -0
  11. package/build/src/common/utils/decode-user/constants/account-types.d.ts +18 -0
  12. package/build/src/common/utils/decode-user/constants/account-types.d.ts.map +1 -1
  13. package/build/src/common/utils/decode-user/constants/account-types.js +28 -1
  14. package/build/src/common/utils/decode-user/types/decoded-user.type.d.ts +4 -0
  15. package/build/src/common/utils/decode-user/types/decoded-user.type.d.ts.map +1 -1
  16. package/build/src/handler/handler.service.d.ts +60 -2
  17. package/build/src/handler/handler.service.d.ts.map +1 -1
  18. package/build/src/handler/handler.service.js +207 -2
  19. package/build/src/handler/models/get-inbound-users/get-inbound-users.response.model.d.ts +7 -0
  20. package/build/src/handler/models/get-inbound-users/get-inbound-users.response.model.d.ts.map +1 -0
  21. package/build/src/handler/models/get-inbound-users/get-inbound-users.response.model.js +10 -0
  22. package/build/src/handler/models/get-inbound-users/index.d.ts +2 -0
  23. package/build/src/handler/models/get-inbound-users/index.d.ts.map +1 -0
  24. package/build/src/handler/models/get-inbound-users/index.js +17 -0
  25. package/build/src/handler/models/index.d.ts +1 -0
  26. package/build/src/handler/models/index.d.ts.map +1 -1
  27. package/build/src/handler/models/index.js +1 -0
  28. package/build/src/router/interfaces/add-source-ip-rule.interface.d.ts +8 -0
  29. package/build/src/router/interfaces/add-source-ip-rule.interface.d.ts.map +1 -0
  30. package/build/src/router/interfaces/add-source-ip-rule.interface.js +2 -0
  31. package/build/src/router/interfaces/index.d.ts +3 -0
  32. package/build/src/router/interfaces/index.d.ts.map +1 -0
  33. package/build/src/router/interfaces/index.js +18 -0
  34. package/build/src/router/interfaces/remove-rule-by-rule-tag.interface.d.ts +4 -0
  35. package/build/src/router/interfaces/remove-rule-by-rule-tag.interface.d.ts.map +1 -0
  36. package/build/src/router/interfaces/remove-rule-by-rule-tag.interface.js +2 -0
  37. package/build/src/router/models/add-source-ip-rule/add-source-ip-rule.response.model.d.ts +5 -0
  38. package/build/src/router/models/add-source-ip-rule/add-source-ip-rule.response.model.d.ts.map +1 -0
  39. package/build/src/router/models/add-source-ip-rule/add-source-ip-rule.response.model.js +9 -0
  40. package/build/src/router/models/add-source-ip-rule/index.d.ts +2 -0
  41. package/build/src/router/models/add-source-ip-rule/index.d.ts.map +1 -0
  42. package/build/src/router/models/add-source-ip-rule/index.js +17 -0
  43. package/build/src/router/models/index.d.ts +2 -0
  44. package/build/src/router/models/index.d.ts.map +1 -0
  45. package/build/src/router/models/index.js +17 -0
  46. package/build/src/router/models/remove-rule-by-rule-tag/index.d.ts +2 -0
  47. package/build/src/router/models/remove-rule-by-rule-tag/index.d.ts.map +1 -0
  48. package/build/src/router/models/remove-rule-by-rule-tag/index.js +17 -0
  49. package/build/src/router/models/remove-rule-by-rule-tag/remove-rule-by-rule-tag.response.model.d.ts +5 -0
  50. package/build/src/router/models/remove-rule-by-rule-tag/remove-rule-by-rule-tag.response.model.d.ts.map +1 -0
  51. package/build/src/router/models/remove-rule-by-rule-tag/remove-rule-by-rule-tag.response.model.js +9 -0
  52. package/build/src/router/router.service.d.ts +37 -0
  53. package/build/src/router/router.service.d.ts.map +1 -0
  54. package/build/src/router/router.service.js +96 -0
  55. package/build/src/stats/stats.service.d.ts +27 -1
  56. package/build/src/stats/stats.service.d.ts.map +1 -1
  57. package/build/src/stats/stats.service.js +53 -0
  58. package/build/src/xray-protos/app/commander/config.d.ts +2 -0
  59. package/build/src/xray-protos/app/commander/config.d.ts.map +1 -1
  60. package/build/src/xray-protos/app/commander/config.js +16 -1
  61. package/build/src/xray-protos/app/log/config.d.ts +1 -0
  62. package/build/src/xray-protos/app/log/config.d.ts.map +1 -1
  63. package/build/src/xray-protos/app/log/config.js +16 -0
  64. package/build/src/xray-protos/app/policy/config.d.ts +1 -0
  65. package/build/src/xray-protos/app/policy/config.d.ts.map +1 -1
  66. package/build/src/xray-protos/app/policy/config.js +16 -1
  67. package/build/src/xray-protos/app/proxyman/command/command.d.ts +36 -0
  68. package/build/src/xray-protos/app/proxyman/command/command.d.ts.map +1 -1
  69. package/build/src/xray-protos/app/proxyman/command/command.js +210 -1
  70. package/build/src/xray-protos/app/proxyman/config.d.ts +1 -14
  71. package/build/src/xray-protos/app/proxyman/config.d.ts.map +1 -1
  72. package/build/src/xray-protos/app/proxyman/config.js +19 -63
  73. package/build/src/xray-protos/app/router/command/command.d.ts +222 -0
  74. package/build/src/xray-protos/app/router/command/command.d.ts.map +1 -0
  75. package/build/src/xray-protos/app/router/command/command.js +1235 -0
  76. package/build/src/xray-protos/app/router/config.d.ts +176 -0
  77. package/build/src/xray-protos/app/router/config.d.ts.map +1 -0
  78. package/build/src/xray-protos/app/router/config.js +1484 -0
  79. package/build/src/xray-protos/app/stats/command/command.d.ts +10 -0
  80. package/build/src/xray-protos/app/stats/command/command.d.ts.map +1 -1
  81. package/build/src/xray-protos/app/stats/command/command.js +8 -0
  82. package/build/src/xray-protos/common/net/network.d.ts +0 -2
  83. package/build/src/xray-protos/common/net/network.d.ts.map +1 -1
  84. package/build/src/xray-protos/common/net/network.js +0 -7
  85. package/build/src/xray-protos/common/protocol/user.d.ts +1 -1
  86. package/build/src/xray-protos/core/config.d.ts +0 -9
  87. package/build/src/xray-protos/core/config.d.ts.map +1 -1
  88. package/build/src/xray-protos/core/config.js +1 -19
  89. package/build/src/xray-protos/proxy/dns/config.d.ts +1 -0
  90. package/build/src/xray-protos/proxy/dns/config.d.ts.map +1 -1
  91. package/build/src/xray-protos/proxy/dns/config.js +27 -1
  92. package/build/src/xray-protos/proxy/dokodemo/config.d.ts +1 -10
  93. package/build/src/xray-protos/proxy/dokodemo/config.d.ts.map +1 -1
  94. package/build/src/xray-protos/proxy/dokodemo/config.js +0 -34
  95. package/build/src/xray-protos/proxy/freedom/config.d.ts +11 -2
  96. package/build/src/xray-protos/proxy/freedom/config.d.ts.map +1 -1
  97. package/build/src/xray-protos/proxy/freedom/config.js +181 -17
  98. package/build/src/xray-protos/proxy/http/config.d.ts +0 -2
  99. package/build/src/xray-protos/proxy/http/config.d.ts.map +1 -1
  100. package/build/src/xray-protos/proxy/http/config.js +1 -16
  101. package/build/src/xray-protos/proxy/shadowsocks_2022/config.d.ts +4 -5
  102. package/build/src/xray-protos/proxy/shadowsocks_2022/config.d.ts.map +1 -1
  103. package/build/src/xray-protos/proxy/shadowsocks_2022/config.js +16 -48
  104. package/build/src/xray-protos/proxy/socks/config.d.ts +1 -12
  105. package/build/src/xray-protos/proxy/socks/config.d.ts.map +1 -1
  106. package/build/src/xray-protos/proxy/socks/config.js +3 -73
  107. package/build/src/xray-protos/proxy/wireguard/config.d.ts +1 -1
  108. package/build/src/xray-protos/proxy/wireguard/config.d.ts.map +1 -1
  109. package/build/src/xray-protos/proxy/wireguard/config.js +8 -8
  110. package/build/src/xray-protos/transport/internet/config.d.ts +15 -27
  111. package/build/src/xray-protos/transport/internet/config.d.ts.map +1 -1
  112. package/build/src/xray-protos/transport/internet/config.js +150 -84
  113. package/package.json +4 -25
  114. package/build/index-local.d.ts +0 -10
  115. package/build/index-local.d.ts.map +0 -1
  116. package/build/index-local.js +0 -21
  117. package/build/src/xray-protos/transport/global/config.d.ts +0 -29
  118. package/build/src/xray-protos/transport/global/config.d.ts.map +0 -1
  119. package/build/src/xray-protos/transport/global/config.js +0 -71
@@ -5,11 +5,9 @@
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.Version = exports.AuthType = exports.protobufPackage = void 0;
8
+ exports.ClientConfig = exports.ServerConfig_AccountsEntry = exports.ServerConfig = exports.Account = exports.AuthType = exports.protobufPackage = void 0;
9
9
  exports.authTypeFromJSON = authTypeFromJSON;
10
10
  exports.authTypeToJSON = authTypeToJSON;
11
- exports.versionFromJSON = versionFromJSON;
12
- exports.versionToJSON = versionToJSON;
13
11
  /* eslint-disable */
14
12
  const wire_1 = require("@bufbuild/protobuf/wire");
15
13
  const address_1 = require("../../common/net/address");
@@ -19,7 +17,7 @@ exports.protobufPackage = "xray.proxy.socks";
19
17
  /** AuthType is the authentication type of Socks proxy. */
20
18
  var AuthType;
21
19
  (function (AuthType) {
22
- /** NO_AUTH - NO_AUTH is for anounymous authentication. */
20
+ /** NO_AUTH - NO_AUTH is for anonymous authentication. */
23
21
  AuthType[AuthType["NO_AUTH"] = 0] = "NO_AUTH";
24
22
  /** PASSWORD - PASSWORD is for username/password authentication. */
25
23
  AuthType[AuthType["PASSWORD"] = 1] = "PASSWORD";
@@ -50,43 +48,6 @@ function authTypeToJSON(object) {
50
48
  return "UNRECOGNIZED";
51
49
  }
52
50
  }
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
- }
90
51
  function createBaseAccount() {
91
52
  return { $type: "xray.proxy.socks.Account", username: "", password: "" };
92
53
  }
@@ -165,7 +126,6 @@ function createBaseServerConfig() {
165
126
  accounts: {},
166
127
  address: undefined,
167
128
  udpEnabled: false,
168
- timeout: 0,
169
129
  userLevel: 0,
170
130
  };
171
131
  }
@@ -188,9 +148,6 @@ exports.ServerConfig = {
188
148
  if (message.udpEnabled !== false) {
189
149
  writer.uint32(32).bool(message.udpEnabled);
190
150
  }
191
- if (message.timeout !== 0) {
192
- writer.uint32(40).uint32(message.timeout);
193
- }
194
151
  if (message.userLevel !== 0) {
195
152
  writer.uint32(48).uint32(message.userLevel);
196
153
  }
@@ -234,13 +191,6 @@ exports.ServerConfig = {
234
191
  message.udpEnabled = reader.bool();
235
192
  continue;
236
193
  }
237
- case 5: {
238
- if (tag !== 40) {
239
- break;
240
- }
241
- message.timeout = reader.uint32();
242
- continue;
243
- }
244
194
  case 6: {
245
195
  if (tag !== 48) {
246
196
  break;
@@ -268,7 +218,6 @@ exports.ServerConfig = {
268
218
  : {},
269
219
  address: isSet(object.address) ? address_1.IPOrDomain.fromJSON(object.address) : undefined,
270
220
  udpEnabled: isSet(object.udpEnabled) ? globalThis.Boolean(object.udpEnabled) : false,
271
- timeout: isSet(object.timeout) ? globalThis.Number(object.timeout) : 0,
272
221
  userLevel: isSet(object.userLevel) ? globalThis.Number(object.userLevel) : 0,
273
222
  };
274
223
  },
@@ -292,9 +241,6 @@ exports.ServerConfig = {
292
241
  if (message.udpEnabled !== false) {
293
242
  obj.udpEnabled = message.udpEnabled;
294
243
  }
295
- if (message.timeout !== 0) {
296
- obj.timeout = Math.round(message.timeout);
297
- }
298
244
  if (message.userLevel !== 0) {
299
245
  obj.userLevel = Math.round(message.userLevel);
300
246
  }
@@ -316,7 +262,6 @@ exports.ServerConfig = {
316
262
  ? address_1.IPOrDomain.fromPartial(object.address)
317
263
  : undefined;
318
264
  message.udpEnabled = object.udpEnabled ?? false;
319
- message.timeout = object.timeout ?? 0;
320
265
  message.userLevel = object.userLevel ?? 0;
321
266
  return message;
322
267
  },
@@ -394,7 +339,7 @@ exports.ServerConfig_AccountsEntry = {
394
339
  };
395
340
  typeRegistry_1.messageTypeRegistry.set(exports.ServerConfig_AccountsEntry.$type, exports.ServerConfig_AccountsEntry);
396
341
  function createBaseClientConfig() {
397
- return { $type: "xray.proxy.socks.ClientConfig", server: [], version: 0 };
342
+ return { $type: "xray.proxy.socks.ClientConfig", server: [] };
398
343
  }
399
344
  exports.ClientConfig = {
400
345
  $type: "xray.proxy.socks.ClientConfig",
@@ -402,9 +347,6 @@ exports.ClientConfig = {
402
347
  for (const v of message.server) {
403
348
  server_spec_1.ServerEndpoint.encode(v, writer.uint32(10).fork()).join();
404
349
  }
405
- if (message.version !== 0) {
406
- writer.uint32(16).int32(message.version);
407
- }
408
350
  return writer;
409
351
  },
410
352
  decode(input, length) {
@@ -421,13 +363,6 @@ exports.ClientConfig = {
421
363
  message.server.push(server_spec_1.ServerEndpoint.decode(reader, reader.uint32()));
422
364
  continue;
423
365
  }
424
- case 2: {
425
- if (tag !== 16) {
426
- break;
427
- }
428
- message.version = reader.int32();
429
- continue;
430
- }
431
366
  }
432
367
  if ((tag & 7) === 4 || tag === 0) {
433
368
  break;
@@ -440,7 +375,6 @@ exports.ClientConfig = {
440
375
  return {
441
376
  $type: exports.ClientConfig.$type,
442
377
  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,
444
378
  };
445
379
  },
446
380
  toJSON(message) {
@@ -448,9 +382,6 @@ exports.ClientConfig = {
448
382
  if (message.server?.length) {
449
383
  obj.server = message.server.map((e) => server_spec_1.ServerEndpoint.toJSON(e));
450
384
  }
451
- if (message.version !== 0) {
452
- obj.version = versionToJSON(message.version);
453
- }
454
385
  return obj;
455
386
  },
456
387
  create(base) {
@@ -459,7 +390,6 @@ exports.ClientConfig = {
459
390
  fromPartial(object) {
460
391
  const message = createBaseClientConfig();
461
392
  message.server = object.server?.map((e) => server_spec_1.ServerEndpoint.fromPartial(e)) || [];
462
- message.version = object.version ?? 0;
463
393
  return message;
464
394
  },
465
395
  };
@@ -18,7 +18,7 @@ export interface DeviceConfig {
18
18
  reserved: Uint8Array;
19
19
  domainStrategy: DeviceConfig_DomainStrategy;
20
20
  isClient: boolean;
21
- kernelMode: boolean;
21
+ noKernelTun: boolean;
22
22
  }
23
23
  export declare enum DeviceConfig_DomainStrategy {
24
24
  FORCE_IP = 0,
@@ -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,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"}
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,WAAW,EAAE,OAAO,CAAC;CACtB;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
- kernelMode: false,
200
+ noKernelTun: 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.kernelMode !== false) {
231
- writer.uint32(72).bool(message.kernelMode);
230
+ if (message.noKernelTun !== false) {
231
+ writer.uint32(72).bool(message.noKernelTun);
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.kernelMode = reader.bool();
302
+ message.noKernelTun = 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
- kernelMode: isSet(object.kernelMode) ? globalThis.Boolean(object.kernelMode) : false,
324
+ noKernelTun: isSet(object.noKernelTun) ? globalThis.Boolean(object.noKernelTun) : 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.kernelMode !== false) {
354
- obj.kernelMode = message.kernelMode;
353
+ if (message.noKernelTun !== false) {
354
+ obj.noKernelTun = message.noKernelTun;
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.kernelMode = object.kernelMode ?? false;
371
+ message.noKernelTun = object.noKernelTun ?? false;
372
372
  return message;
373
373
  },
374
374
  };
@@ -1,17 +1,7 @@
1
1
  import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
+ import { IPOrDomain } from "../../common/net/address";
2
3
  import { TypedMessage } from "../../common/serial/typed_message";
3
4
  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;
15
5
  export declare enum DomainStrategy {
16
6
  AS_IS = 0,
17
7
  USE_IP = 1,
@@ -30,32 +20,21 @@ export declare function domainStrategyFromJSON(object: any): DomainStrategy;
30
20
  export declare function domainStrategyToJSON(object: DomainStrategy): string;
31
21
  export interface TransportConfig {
32
22
  $type: "xray.transport.internet.TransportConfig";
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. */
23
+ /** Transport protocol name. */
41
24
  protocolName: string;
42
- /** Specific settings. Must be of the transports. */
25
+ /** Specific transport protocol settings. */
43
26
  settings: TypedMessage | undefined;
44
27
  }
45
28
  export interface StreamConfig {
46
29
  $type: "xray.transport.internet.StreamConfig";
47
- /**
48
- * Effective network. Deprecated. Use the string form below.
49
- *
50
- * @deprecated
51
- */
52
- protocol: TransportProtocol;
30
+ address: IPOrDomain | undefined;
31
+ port: number;
53
32
  /** Effective network. */
54
33
  protocolName: string;
55
34
  transportSettings: TransportConfig[];
56
35
  /** Type of security. Must be a message name of the settings proto. */
57
36
  securityType: string;
58
- /** Settings for transport security. For now the only choice is TLS. */
37
+ /** Transport security settings. They can be either TLS or REALITY. */
59
38
  securitySettings: TypedMessage[];
60
39
  socketSettings: SocketConfig | undefined;
61
40
  }
@@ -64,6 +43,13 @@ export interface ProxyConfig {
64
43
  tag: string;
65
44
  transportLayerProxy: boolean;
66
45
  }
46
+ export interface CustomSockopt {
47
+ $type: "xray.transport.internet.CustomSockopt";
48
+ level: string;
49
+ opt: string;
50
+ value: string;
51
+ type: string;
52
+ }
67
53
  /** SocketConfig is options to be applied on network sockets. */
68
54
  export interface SocketConfig {
69
55
  $type: "xray.transport.internet.SocketConfig";
@@ -93,6 +79,7 @@ export interface SocketConfig {
93
79
  tcpMaxSeg: number;
94
80
  tcpNoDelay: boolean;
95
81
  tcpMptcp: boolean;
82
+ customSockopt: CustomSockopt[];
96
83
  }
97
84
  export declare enum SocketConfig_TProxyMode {
98
85
  /** Off - TProxy is off. */
@@ -108,6 +95,7 @@ export declare function socketConfig_TProxyModeToJSON(object: SocketConfig_TProx
108
95
  export declare const TransportConfig: MessageFns<TransportConfig, "xray.transport.internet.TransportConfig">;
109
96
  export declare const StreamConfig: MessageFns<StreamConfig, "xray.transport.internet.StreamConfig">;
110
97
  export declare const ProxyConfig: MessageFns<ProxyConfig, "xray.transport.internet.ProxyConfig">;
98
+ export declare const CustomSockopt: MessageFns<CustomSockopt, "xray.transport.internet.CustomSockopt">;
111
99
  export declare const SocketConfig: MessageFns<SocketConfig, "xray.transport.internet.SocketConfig">;
112
100
  type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
113
101
  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":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/xray-protos/transport/internet/config.ts"],"names":[],"mappings":"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"}