@remnawave/xtls-sdk 0.12.4 → 0.13.0

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 (36) hide show
  1. package/build/src/router/interfaces/index.d.ts +0 -1
  2. package/build/src/router/interfaces/index.d.ts.map +1 -1
  3. package/build/src/router/interfaces/index.js +0 -1
  4. package/build/src/router/models/index.d.ts +0 -1
  5. package/build/src/router/models/index.d.ts.map +1 -1
  6. package/build/src/router/models/index.js +0 -1
  7. package/build/src/router/router.service.d.ts +2 -12
  8. package/build/src/router/router.service.d.ts.map +1 -1
  9. package/build/src/router/router.service.js +1 -57
  10. package/build/src/stats/stats.service.d.ts.map +1 -1
  11. package/build/src/stats/stats.service.js +10 -8
  12. package/build/src/xray-protos/app/proxyman/config.d.ts +3 -1
  13. package/build/src/xray-protos/app/proxyman/config.d.ts.map +1 -1
  14. package/build/src/xray-protos/app/proxyman/config.js +27 -6
  15. package/build/src/xray-protos/common/geodata/geodat.d.ts +111 -0
  16. package/build/src/xray-protos/common/geodata/geodat.d.ts.map +1 -0
  17. package/build/src/xray-protos/common/geodata/geodat.js +1027 -0
  18. package/build/src/xray-protos/proxy/freedom/config.d.ts +7 -0
  19. package/build/src/xray-protos/proxy/freedom/config.d.ts.map +1 -1
  20. package/build/src/xray-protos/proxy/freedom/config.js +80 -1
  21. package/build/src/xray-protos/proxy/tun/config.d.ts +4 -0
  22. package/build/src/xray-protos/proxy/tun/config.d.ts.map +1 -1
  23. package/build/src/xray-protos/proxy/tun/config.js +80 -3
  24. package/package.json +3 -4
  25. package/build/src/router/interfaces/add-source-ip-rule.interface.d.ts +0 -7
  26. package/build/src/router/interfaces/add-source-ip-rule.interface.d.ts.map +0 -1
  27. package/build/src/router/interfaces/add-source-ip-rule.interface.js +0 -2
  28. package/build/src/router/models/add-source-ip-rule/add-source-ip-rule.response.model.d.ts +0 -5
  29. package/build/src/router/models/add-source-ip-rule/add-source-ip-rule.response.model.d.ts.map +0 -1
  30. package/build/src/router/models/add-source-ip-rule/add-source-ip-rule.response.model.js +0 -9
  31. package/build/src/router/models/add-source-ip-rule/index.d.ts +0 -2
  32. package/build/src/router/models/add-source-ip-rule/index.d.ts.map +0 -1
  33. package/build/src/router/models/add-source-ip-rule/index.js +0 -17
  34. package/build/src/xray-protos/app/router/config.d.ts +0 -193
  35. package/build/src/xray-protos/app/router/config.d.ts.map +0 -1
  36. package/build/src/xray-protos/app/router/config.js +0 -1797
@@ -1,4 +1,5 @@
1
1
  import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
+ import { IPRule } from "../../common/geodata/geodat";
2
3
  import { ServerEndpoint } from "../../common/protocol/server_spec";
3
4
  import { DomainStrategy } from "../../transport/internet/config";
4
5
  export declare const protobufPackage = "xray.proxy.freedom";
@@ -26,6 +27,10 @@ export interface Noise {
26
27
  packet: Uint8Array;
27
28
  applyTo: string;
28
29
  }
30
+ export interface IPRules {
31
+ $type: "xray.proxy.freedom.IPRules";
32
+ rules: IPRule[];
33
+ }
29
34
  export interface Config {
30
35
  $type: "xray.proxy.freedom.Config";
31
36
  domainStrategy: DomainStrategy;
@@ -34,10 +39,12 @@ export interface Config {
34
39
  fragment: Fragment | undefined;
35
40
  proxyProtocol: number;
36
41
  noises: Noise[];
42
+ ipsBlocked?: IPRules | undefined;
37
43
  }
38
44
  export declare const DestinationOverride: MessageFns<DestinationOverride, "xray.proxy.freedom.DestinationOverride">;
39
45
  export declare const Fragment: MessageFns<Fragment, "xray.proxy.freedom.Fragment">;
40
46
  export declare const Noise: MessageFns<Noise, "xray.proxy.freedom.Noise">;
47
+ export declare const IPRules: MessageFns<IPRules, "xray.proxy.freedom.IPRules">;
41
48
  export declare const Config: MessageFns<Config, "xray.proxy.freedom.Config">;
42
49
  type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
43
50
  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/proxy/freedom/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/xray-protos/proxy/freedom/config.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,10 @@
5
5
  // protoc v6.33.4
6
6
  // source: proxy/freedom/config.proto
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.Config = exports.Noise = exports.Fragment = exports.DestinationOverride = exports.protobufPackage = void 0;
8
+ exports.Config = exports.IPRules = exports.Noise = exports.Fragment = exports.DestinationOverride = exports.protobufPackage = void 0;
9
9
  /* eslint-disable */
10
10
  const wire_1 = require("@bufbuild/protobuf/wire");
11
+ const geodat_1 = require("../../common/geodata/geodat");
11
12
  const server_spec_1 = require("../../common/protocol/server_spec");
12
13
  const config_1 = require("../../transport/internet/config");
13
14
  const typeRegistry_1 = require("../../typeRegistry");
@@ -432,6 +433,62 @@ exports.Noise = {
432
433
  },
433
434
  };
434
435
  typeRegistry_1.messageTypeRegistry.set(exports.Noise.$type, exports.Noise);
436
+ function createBaseIPRules() {
437
+ return { $type: "xray.proxy.freedom.IPRules", rules: [] };
438
+ }
439
+ exports.IPRules = {
440
+ $type: "xray.proxy.freedom.IPRules",
441
+ encode(message, writer = new wire_1.BinaryWriter()) {
442
+ for (const v of message.rules) {
443
+ geodat_1.IPRule.encode(v, writer.uint32(10).fork()).join();
444
+ }
445
+ return writer;
446
+ },
447
+ decode(input, length) {
448
+ const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
449
+ const end = length === undefined ? reader.len : reader.pos + length;
450
+ const message = createBaseIPRules();
451
+ while (reader.pos < end) {
452
+ const tag = reader.uint32();
453
+ switch (tag >>> 3) {
454
+ case 1: {
455
+ if (tag !== 10) {
456
+ break;
457
+ }
458
+ message.rules.push(geodat_1.IPRule.decode(reader, reader.uint32()));
459
+ continue;
460
+ }
461
+ }
462
+ if ((tag & 7) === 4 || tag === 0) {
463
+ break;
464
+ }
465
+ reader.skip(tag & 7);
466
+ }
467
+ return message;
468
+ },
469
+ fromJSON(object) {
470
+ return {
471
+ $type: exports.IPRules.$type,
472
+ rules: globalThis.Array.isArray(object?.rules) ? object.rules.map((e) => geodat_1.IPRule.fromJSON(e)) : [],
473
+ };
474
+ },
475
+ toJSON(message) {
476
+ const obj = {};
477
+ if (message.rules?.length) {
478
+ obj.rules = message.rules.map((e) => geodat_1.IPRule.toJSON(e));
479
+ }
480
+ return obj;
481
+ },
482
+ create(base) {
483
+ return exports.IPRules.fromPartial(base ?? {});
484
+ },
485
+ fromPartial(object) {
486
+ const message = createBaseIPRules();
487
+ message.rules = object.rules?.map((e) => geodat_1.IPRule.fromPartial(e)) || [];
488
+ return message;
489
+ },
490
+ };
491
+ typeRegistry_1.messageTypeRegistry.set(exports.IPRules.$type, exports.IPRules);
435
492
  function createBaseConfig() {
436
493
  return {
437
494
  $type: "xray.proxy.freedom.Config",
@@ -441,6 +498,7 @@ function createBaseConfig() {
441
498
  fragment: undefined,
442
499
  proxyProtocol: 0,
443
500
  noises: [],
501
+ ipsBlocked: undefined,
444
502
  };
445
503
  }
446
504
  exports.Config = {
@@ -464,6 +522,9 @@ exports.Config = {
464
522
  for (const v of message.noises) {
465
523
  exports.Noise.encode(v, writer.uint32(58).fork()).join();
466
524
  }
525
+ if (message.ipsBlocked !== undefined) {
526
+ exports.IPRules.encode(message.ipsBlocked, writer.uint32(66).fork()).join();
527
+ }
467
528
  return writer;
468
529
  },
469
530
  decode(input, length) {
@@ -515,6 +576,13 @@ exports.Config = {
515
576
  message.noises.push(exports.Noise.decode(reader, reader.uint32()));
516
577
  continue;
517
578
  }
579
+ case 8: {
580
+ if (tag !== 66) {
581
+ break;
582
+ }
583
+ message.ipsBlocked = exports.IPRules.decode(reader, reader.uint32());
584
+ continue;
585
+ }
518
586
  }
519
587
  if ((tag & 7) === 4 || tag === 0) {
520
588
  break;
@@ -548,6 +616,11 @@ exports.Config = {
548
616
  ? globalThis.Number(object.proxy_protocol)
549
617
  : 0,
550
618
  noises: globalThis.Array.isArray(object?.noises) ? object.noises.map((e) => exports.Noise.fromJSON(e)) : [],
619
+ ipsBlocked: isSet(object.ipsBlocked)
620
+ ? exports.IPRules.fromJSON(object.ipsBlocked)
621
+ : isSet(object.ips_blocked)
622
+ ? exports.IPRules.fromJSON(object.ips_blocked)
623
+ : undefined,
551
624
  };
552
625
  },
553
626
  toJSON(message) {
@@ -570,6 +643,9 @@ exports.Config = {
570
643
  if (message.noises?.length) {
571
644
  obj.noises = message.noises.map((e) => exports.Noise.toJSON(e));
572
645
  }
646
+ if (message.ipsBlocked !== undefined) {
647
+ obj.ipsBlocked = exports.IPRules.toJSON(message.ipsBlocked);
648
+ }
573
649
  return obj;
574
650
  },
575
651
  create(base) {
@@ -587,6 +663,9 @@ exports.Config = {
587
663
  : undefined;
588
664
  message.proxyProtocol = object.proxyProtocol ?? 0;
589
665
  message.noises = object.noises?.map((e) => exports.Noise.fromPartial(e)) || [];
666
+ message.ipsBlocked = (object.ipsBlocked !== undefined && object.ipsBlocked !== null)
667
+ ? exports.IPRules.fromPartial(object.ipsBlocked)
668
+ : undefined;
590
669
  return message;
591
670
  },
592
671
  };
@@ -4,7 +4,11 @@ export interface Config {
4
4
  $type: "xray.proxy.tun.Config";
5
5
  name: string;
6
6
  MTU: number;
7
+ gateway: string[];
8
+ DNS: string[];
7
9
  userLevel: number;
10
+ autoSystemRoutingTable: string[];
11
+ autoOutboundsInterface: string;
8
12
  }
9
13
  export declare const Config: MessageFns<Config, "xray.proxy.tun.Config">;
10
14
  type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/xray-protos/proxy/tun/config.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGrE,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAEhD,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,uBAAuB,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,eAAO,MAAM,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,uBAAuB,CA6F9D,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;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/tun/config.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGrE,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAEhD,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,uBAAuB,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAeD,eAAO,MAAM,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,uBAAuB,CAqK9D,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;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"}
@@ -11,7 +11,16 @@ const wire_1 = require("@bufbuild/protobuf/wire");
11
11
  const typeRegistry_1 = require("../../typeRegistry");
12
12
  exports.protobufPackage = "xray.proxy.tun";
13
13
  function createBaseConfig() {
14
- return { $type: "xray.proxy.tun.Config", name: "", MTU: 0, userLevel: 0 };
14
+ return {
15
+ $type: "xray.proxy.tun.Config",
16
+ name: "",
17
+ MTU: 0,
18
+ gateway: [],
19
+ DNS: [],
20
+ userLevel: 0,
21
+ autoSystemRoutingTable: [],
22
+ autoOutboundsInterface: "",
23
+ };
15
24
  }
16
25
  exports.Config = {
17
26
  $type: "xray.proxy.tun.Config",
@@ -22,8 +31,20 @@ exports.Config = {
22
31
  if (message.MTU !== 0) {
23
32
  writer.uint32(16).uint32(message.MTU);
24
33
  }
34
+ for (const v of message.gateway) {
35
+ writer.uint32(26).string(v);
36
+ }
37
+ for (const v of message.DNS) {
38
+ writer.uint32(34).string(v);
39
+ }
25
40
  if (message.userLevel !== 0) {
26
- writer.uint32(24).uint32(message.userLevel);
41
+ writer.uint32(40).uint32(message.userLevel);
42
+ }
43
+ for (const v of message.autoSystemRoutingTable) {
44
+ writer.uint32(50).string(v);
45
+ }
46
+ if (message.autoOutboundsInterface !== "") {
47
+ writer.uint32(58).string(message.autoOutboundsInterface);
27
48
  }
28
49
  return writer;
29
50
  },
@@ -49,12 +70,40 @@ exports.Config = {
49
70
  continue;
50
71
  }
51
72
  case 3: {
52
- if (tag !== 24) {
73
+ if (tag !== 26) {
74
+ break;
75
+ }
76
+ message.gateway.push(reader.string());
77
+ continue;
78
+ }
79
+ case 4: {
80
+ if (tag !== 34) {
81
+ break;
82
+ }
83
+ message.DNS.push(reader.string());
84
+ continue;
85
+ }
86
+ case 5: {
87
+ if (tag !== 40) {
53
88
  break;
54
89
  }
55
90
  message.userLevel = reader.uint32();
56
91
  continue;
57
92
  }
93
+ case 6: {
94
+ if (tag !== 50) {
95
+ break;
96
+ }
97
+ message.autoSystemRoutingTable.push(reader.string());
98
+ continue;
99
+ }
100
+ case 7: {
101
+ if (tag !== 58) {
102
+ break;
103
+ }
104
+ message.autoOutboundsInterface = reader.string();
105
+ continue;
106
+ }
58
107
  }
59
108
  if ((tag & 7) === 4 || tag === 0) {
60
109
  break;
@@ -68,11 +117,23 @@ exports.Config = {
68
117
  $type: exports.Config.$type,
69
118
  name: isSet(object.name) ? globalThis.String(object.name) : "",
70
119
  MTU: isSet(object.MTU) ? globalThis.Number(object.MTU) : 0,
120
+ gateway: globalThis.Array.isArray(object?.gateway) ? object.gateway.map((e) => globalThis.String(e)) : [],
121
+ DNS: globalThis.Array.isArray(object?.DNS) ? object.DNS.map((e) => globalThis.String(e)) : [],
71
122
  userLevel: isSet(object.userLevel)
72
123
  ? globalThis.Number(object.userLevel)
73
124
  : isSet(object.user_level)
74
125
  ? globalThis.Number(object.user_level)
75
126
  : 0,
127
+ autoSystemRoutingTable: globalThis.Array.isArray(object?.autoSystemRoutingTable)
128
+ ? object.autoSystemRoutingTable.map((e) => globalThis.String(e))
129
+ : globalThis.Array.isArray(object?.auto_system_routing_table)
130
+ ? object.auto_system_routing_table.map((e) => globalThis.String(e))
131
+ : [],
132
+ autoOutboundsInterface: isSet(object.autoOutboundsInterface)
133
+ ? globalThis.String(object.autoOutboundsInterface)
134
+ : isSet(object.auto_outbounds_interface)
135
+ ? globalThis.String(object.auto_outbounds_interface)
136
+ : "",
76
137
  };
77
138
  },
78
139
  toJSON(message) {
@@ -83,9 +144,21 @@ exports.Config = {
83
144
  if (message.MTU !== 0) {
84
145
  obj.MTU = Math.round(message.MTU);
85
146
  }
147
+ if (message.gateway?.length) {
148
+ obj.gateway = message.gateway;
149
+ }
150
+ if (message.DNS?.length) {
151
+ obj.DNS = message.DNS;
152
+ }
86
153
  if (message.userLevel !== 0) {
87
154
  obj.userLevel = Math.round(message.userLevel);
88
155
  }
156
+ if (message.autoSystemRoutingTable?.length) {
157
+ obj.autoSystemRoutingTable = message.autoSystemRoutingTable;
158
+ }
159
+ if (message.autoOutboundsInterface !== "") {
160
+ obj.autoOutboundsInterface = message.autoOutboundsInterface;
161
+ }
89
162
  return obj;
90
163
  },
91
164
  create(base) {
@@ -95,7 +168,11 @@ exports.Config = {
95
168
  const message = createBaseConfig();
96
169
  message.name = object.name ?? "";
97
170
  message.MTU = object.MTU ?? 0;
171
+ message.gateway = object.gateway?.map((e) => e) || [];
172
+ message.DNS = object.DNS?.map((e) => e) || [];
98
173
  message.userLevel = object.userLevel ?? 0;
174
+ message.autoSystemRoutingTable = object.autoSystemRoutingTable?.map((e) => e) || [];
175
+ message.autoOutboundsInterface = object.autoOutboundsInterface ?? "";
99
176
  return message;
100
177
  },
101
178
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnawave/xtls-sdk",
3
- "version": "0.12.4",
3
+ "version": "0.13.0",
4
4
  "description": "A Typescript SDK for XRAY (XTLS) Core GRPC Api",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -38,10 +38,9 @@
38
38
  "vless"
39
39
  ],
40
40
  "dependencies": {
41
- "ipaddr.js": "2.3.0",
42
41
  "long": "^5.3.2",
43
- "nice-grpc": "^2.1.14",
44
- "protobufjs": "^8.0.0",
42
+ "nice-grpc": "^2.1.15",
43
+ "protobufjs": "^8.0.1",
45
44
  "@bufbuild/protobuf": "^2.11.0"
46
45
  },
47
46
  "devDependencies": {
@@ -1,7 +0,0 @@
1
- export interface IAddSourceIpRule {
2
- ruleTag: string;
3
- ip: string;
4
- outbound: string;
5
- append: boolean;
6
- }
7
- //# sourceMappingURL=add-source-ip-rule.interface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-source-ip-rule.interface.d.ts","sourceRoot":"","sources":["../../../../src/router/interfaces/add-source-ip-rule.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACnB"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +0,0 @@
1
- export declare class AddSourceIpRuleResponseModel {
2
- isAdded: boolean;
3
- constructor(isAdded: boolean);
4
- }
5
- //# sourceMappingURL=add-source-ip-rule.response.model.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-source-ip-rule.response.model.d.ts","sourceRoot":"","sources":["../../../../../src/router/models/add-source-ip-rule/add-source-ip-rule.response.model.ts"],"names":[],"mappings":"AAAA,qBAAa,4BAA4B;IAC9B,OAAO,EAAE,OAAO,CAAC;gBACZ,OAAO,EAAE,OAAO;CAG/B"}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AddSourceIpRuleResponseModel = void 0;
4
- class AddSourceIpRuleResponseModel {
5
- constructor(isAdded) {
6
- this.isAdded = isAdded;
7
- }
8
- }
9
- exports.AddSourceIpRuleResponseModel = AddSourceIpRuleResponseModel;
@@ -1,2 +0,0 @@
1
- export * from './add-source-ip-rule.response.model';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/router/models/add-source-ip-rule/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./add-source-ip-rule.response.model"), exports);
@@ -1,193 +0,0 @@
1
- import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
- import { Network } from "../../common/net/network";
3
- import { PortList } from "../../common/net/port";
4
- import { TypedMessage } from "../../common/serial/typed_message";
5
- export declare const protobufPackage = "xray.app.router";
6
- /** Domain for routing decision. */
7
- export interface Domain {
8
- $type: "xray.app.router.Domain";
9
- /** Domain matching type. */
10
- type: Domain_Type;
11
- /** Domain value. */
12
- value: string;
13
- /** Attributes of this domain. May be used for filtering. */
14
- attribute: Domain_Attribute[];
15
- }
16
- /** Type of domain value. */
17
- export declare enum Domain_Type {
18
- /** Plain - The value is used as is. */
19
- Plain = 0,
20
- /** Regex - The value is used as a regular expression. */
21
- Regex = 1,
22
- /** Domain - The value is a root domain. */
23
- Domain = 2,
24
- /** Full - The value is a domain. */
25
- Full = 3,
26
- UNRECOGNIZED = -1
27
- }
28
- export declare function domain_TypeFromJSON(object: any): Domain_Type;
29
- export declare function domain_TypeToJSON(object: Domain_Type): string;
30
- export interface Domain_Attribute {
31
- $type: "xray.app.router.Domain.Attribute";
32
- key: string;
33
- boolValue?: boolean | undefined;
34
- intValue?: number | undefined;
35
- }
36
- /** IP for routing decision, in CIDR form. */
37
- export interface CIDR {
38
- $type: "xray.app.router.CIDR";
39
- /** IP address, should be either 4 or 16 bytes. */
40
- ip: Uint8Array;
41
- /** Number of leading ones in the network mask. */
42
- prefix: number;
43
- }
44
- export interface GeoIP {
45
- $type: "xray.app.router.GeoIP";
46
- countryCode: string;
47
- cidr: CIDR[];
48
- reverseMatch: boolean;
49
- }
50
- export interface GeoIPList {
51
- $type: "xray.app.router.GeoIPList";
52
- entry: GeoIP[];
53
- }
54
- export interface GeoSite {
55
- $type: "xray.app.router.GeoSite";
56
- countryCode: string;
57
- domain: Domain[];
58
- }
59
- export interface GeoSiteList {
60
- $type: "xray.app.router.GeoSiteList";
61
- entry: GeoSite[];
62
- }
63
- export interface RoutingRule {
64
- $type: "xray.app.router.RoutingRule";
65
- /** Tag of outbound that this rule is pointing to. */
66
- tag?: string | undefined;
67
- /** Tag of routing balancer. */
68
- balancingTag?: string | undefined;
69
- ruleTag: string;
70
- /** List of domains for target domain matching. */
71
- domain: Domain[];
72
- /**
73
- * List of GeoIPs for target IP address matching. If this entry exists, the
74
- * cidr above will have no effect. GeoIP fields with the same country code are
75
- * supposed to contain exactly same content. They will be merged during
76
- * runtime. For customized GeoIPs, please leave country code empty.
77
- */
78
- geoip: GeoIP[];
79
- /** List of ports. */
80
- portList: PortList | undefined;
81
- /** List of networks for matching. */
82
- networks: Network[];
83
- /**
84
- * List of GeoIPs for source IP address matching. If this entry exists, the
85
- * source_cidr above will have no effect.
86
- */
87
- sourceGeoip: GeoIP[];
88
- /** List of ports for source port matching. */
89
- sourcePortList: PortList | undefined;
90
- userEmail: string[];
91
- inboundTag: string[];
92
- protocol: string[];
93
- attributes: {
94
- [key: string]: string;
95
- };
96
- localGeoip: GeoIP[];
97
- localPortList: PortList | undefined;
98
- vlessRouteList: PortList | undefined;
99
- process: string[];
100
- webhook: WebhookConfig | undefined;
101
- }
102
- export interface RoutingRule_AttributesEntry {
103
- $type: "xray.app.router.RoutingRule.AttributesEntry";
104
- key: string;
105
- value: string;
106
- }
107
- export interface WebhookConfig {
108
- $type: "xray.app.router.WebhookConfig";
109
- url: string;
110
- deduplication: number;
111
- headers: {
112
- [key: string]: string;
113
- };
114
- }
115
- export interface WebhookConfig_HeadersEntry {
116
- $type: "xray.app.router.WebhookConfig.HeadersEntry";
117
- key: string;
118
- value: string;
119
- }
120
- export interface BalancingRule {
121
- $type: "xray.app.router.BalancingRule";
122
- tag: string;
123
- outboundSelector: string[];
124
- strategy: string;
125
- strategySettings: TypedMessage | undefined;
126
- fallbackTag: string;
127
- }
128
- export interface StrategyWeight {
129
- $type: "xray.app.router.StrategyWeight";
130
- regexp: boolean;
131
- match: string;
132
- value: number;
133
- }
134
- export interface StrategyLeastLoadConfig {
135
- $type: "xray.app.router.StrategyLeastLoadConfig";
136
- /** weight settings */
137
- costs: StrategyWeight[];
138
- /** RTT baselines for selecting, int64 values of time.Duration */
139
- baselines: number[];
140
- /** expected nodes count to select */
141
- expected: number;
142
- /** max acceptable rtt, filter away high delay nodes. default 0 */
143
- maxRTT: number;
144
- /** acceptable failure rate */
145
- tolerance: number;
146
- }
147
- export interface Config {
148
- $type: "xray.app.router.Config";
149
- domainStrategy: Config_DomainStrategy;
150
- rule: RoutingRule[];
151
- balancingRule: BalancingRule[];
152
- }
153
- export declare enum Config_DomainStrategy {
154
- /** AsIs - Use domain as is. */
155
- AsIs = 0,
156
- /** IpIfNonMatch - Resolve to IP if the domain doesn't match any rules. */
157
- IpIfNonMatch = 2,
158
- /** IpOnDemand - Resolve to IP if any rule requires IP matching. */
159
- IpOnDemand = 3,
160
- UNRECOGNIZED = -1
161
- }
162
- export declare function config_DomainStrategyFromJSON(object: any): Config_DomainStrategy;
163
- export declare function config_DomainStrategyToJSON(object: Config_DomainStrategy): string;
164
- export declare const Domain: MessageFns<Domain, "xray.app.router.Domain">;
165
- export declare const Domain_Attribute: MessageFns<Domain_Attribute, "xray.app.router.Domain.Attribute">;
166
- export declare const CIDR: MessageFns<CIDR, "xray.app.router.CIDR">;
167
- export declare const GeoIP: MessageFns<GeoIP, "xray.app.router.GeoIP">;
168
- export declare const GeoIPList: MessageFns<GeoIPList, "xray.app.router.GeoIPList">;
169
- export declare const GeoSite: MessageFns<GeoSite, "xray.app.router.GeoSite">;
170
- export declare const GeoSiteList: MessageFns<GeoSiteList, "xray.app.router.GeoSiteList">;
171
- export declare const RoutingRule: MessageFns<RoutingRule, "xray.app.router.RoutingRule">;
172
- export declare const RoutingRule_AttributesEntry: MessageFns<RoutingRule_AttributesEntry, "xray.app.router.RoutingRule.AttributesEntry">;
173
- export declare const WebhookConfig: MessageFns<WebhookConfig, "xray.app.router.WebhookConfig">;
174
- export declare const WebhookConfig_HeadersEntry: MessageFns<WebhookConfig_HeadersEntry, "xray.app.router.WebhookConfig.HeadersEntry">;
175
- export declare const BalancingRule: MessageFns<BalancingRule, "xray.app.router.BalancingRule">;
176
- export declare const StrategyWeight: MessageFns<StrategyWeight, "xray.app.router.StrategyWeight">;
177
- export declare const StrategyLeastLoadConfig: MessageFns<StrategyLeastLoadConfig, "xray.app.router.StrategyLeastLoadConfig">;
178
- export declare const Config: MessageFns<Config, "xray.app.router.Config">;
179
- type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
180
- 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 {} ? {
181
- [K in Exclude<keyof T, "$type">]?: DeepPartial<T[K]>;
182
- } : Partial<T>;
183
- export interface MessageFns<T, V extends string> {
184
- readonly $type: V;
185
- encode(message: T, writer?: BinaryWriter): BinaryWriter;
186
- decode(input: BinaryReader | Uint8Array, length?: number): T;
187
- fromJSON(object: any): T;
188
- toJSON(message: T): unknown;
189
- create(base?: DeepPartial<T>): T;
190
- fromPartial(object: DeepPartial<T>): T;
191
- }
192
- export {};
193
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/xray-protos/app/router/config.ts"],"names":[],"mappings":"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"}