@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.
- package/build/src/router/interfaces/index.d.ts +0 -1
- package/build/src/router/interfaces/index.d.ts.map +1 -1
- package/build/src/router/interfaces/index.js +0 -1
- package/build/src/router/models/index.d.ts +0 -1
- package/build/src/router/models/index.d.ts.map +1 -1
- package/build/src/router/models/index.js +0 -1
- package/build/src/router/router.service.d.ts +2 -12
- package/build/src/router/router.service.d.ts.map +1 -1
- package/build/src/router/router.service.js +1 -57
- package/build/src/stats/stats.service.d.ts.map +1 -1
- package/build/src/stats/stats.service.js +10 -8
- package/build/src/xray-protos/app/proxyman/config.d.ts +3 -1
- package/build/src/xray-protos/app/proxyman/config.d.ts.map +1 -1
- package/build/src/xray-protos/app/proxyman/config.js +27 -6
- package/build/src/xray-protos/common/geodata/geodat.d.ts +111 -0
- package/build/src/xray-protos/common/geodata/geodat.d.ts.map +1 -0
- package/build/src/xray-protos/common/geodata/geodat.js +1027 -0
- package/build/src/xray-protos/proxy/freedom/config.d.ts +7 -0
- package/build/src/xray-protos/proxy/freedom/config.d.ts.map +1 -1
- package/build/src/xray-protos/proxy/freedom/config.js +80 -1
- package/build/src/xray-protos/proxy/tun/config.d.ts +4 -0
- package/build/src/xray-protos/proxy/tun/config.d.ts.map +1 -1
- package/build/src/xray-protos/proxy/tun/config.js +80 -3
- package/package.json +3 -4
- package/build/src/router/interfaces/add-source-ip-rule.interface.d.ts +0 -7
- package/build/src/router/interfaces/add-source-ip-rule.interface.d.ts.map +0 -1
- package/build/src/router/interfaces/add-source-ip-rule.interface.js +0 -2
- package/build/src/router/models/add-source-ip-rule/add-source-ip-rule.response.model.d.ts +0 -5
- package/build/src/router/models/add-source-ip-rule/add-source-ip-rule.response.model.d.ts.map +0 -1
- package/build/src/router/models/add-source-ip-rule/add-source-ip-rule.response.model.js +0 -9
- package/build/src/router/models/add-source-ip-rule/index.d.ts +0 -2
- package/build/src/router/models/add-source-ip-rule/index.d.ts.map +0 -1
- package/build/src/router/models/add-source-ip-rule/index.js +0 -17
- package/build/src/xray-protos/app/router/config.d.ts +0 -193
- package/build/src/xray-protos/app/router/config.d.ts.map +0 -1
- package/build/src/xray-protos/app/router/config.js +0 -1797
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/router/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/router/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC"}
|
|
@@ -14,5 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./add-source-ip-rule.interface"), exports);
|
|
18
17
|
__exportStar(require("./remove-rule-by-rule-tag.interface"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/router/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/router/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
|
|
@@ -14,5 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./add-source-ip-rule"), exports);
|
|
18
17
|
__exportStar(require("./remove-rule-by-rule-tag"), exports);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Channel } from 'nice-grpc';
|
|
2
2
|
import { RoutingServiceClient } from '../xray-protos/app/router/command/command';
|
|
3
|
-
import {
|
|
4
|
-
import { IAddSourceIpRule, IRemoveRuleByRuleTag } from './interfaces';
|
|
3
|
+
import { RemoveRuleByRuleTagResponseModel } from './models';
|
|
5
4
|
import { ISdkResponse } from '../common/types/sdk-response';
|
|
5
|
+
import { IRemoveRuleByRuleTag } from './interfaces';
|
|
6
6
|
/**
|
|
7
7
|
* Service for managing routing rules in XRAY/XTLS
|
|
8
8
|
* RoutingService is required (enable on XRay Config) to add/remove routing rules.
|
|
@@ -15,16 +15,6 @@ export declare class RouterService {
|
|
|
15
15
|
* @param channel - The gRPC channel to use for communication
|
|
16
16
|
*/
|
|
17
17
|
constructor(channel: Channel);
|
|
18
|
-
/**
|
|
19
|
-
* Adds a new routing rule based on source IP address
|
|
20
|
-
* @param dto - Data transfer object containing rule configuration
|
|
21
|
-
* @param dto.ruleTag - Unique identifier for the rule
|
|
22
|
-
* @param dto.outbound - Outbound tag to route matched traffic
|
|
23
|
-
* @param dto.ip - Source IP address to match
|
|
24
|
-
* @param dto.append - Whether to append the rule or replace existing rules
|
|
25
|
-
* @returns Promise resolving to response indicating success or failure
|
|
26
|
-
*/
|
|
27
|
-
addSrcIpRule(dto: IAddSourceIpRule): Promise<ISdkResponse<AddSourceIpRuleResponseModel>>;
|
|
28
18
|
/**
|
|
29
19
|
* Removes a routing rule by its tag
|
|
30
20
|
* @param dto - Data transfer object containing rule tag
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.service.d.ts","sourceRoot":"","sources":["../../../src/router/router.service.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"router.service.d.ts","sourceRoot":"","sources":["../../../src/router/router.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAgB,MAAM,WAAW,CAAC;AAElD,OAAO,EACH,oBAAoB,EAEvB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD;;;GAGG;AACH,qBAAa,aAAa;IAOV,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAE9C;;;OAGG;gBAC0B,OAAO,EAAE,OAAO;IAI7C;;;;;OAKG;IACU,mBAAmB,CAC5B,GAAG,EAAE,oBAAoB,GAC1B,OAAO,CAAC,YAAY,CAAC,gCAAgC,CAAC,CAAC;IAsB1D;;;OAGG;IACH,IAAW,SAAS,IAAI,oBAAoB,CAE3C;CACJ"}
|
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.RouterService = void 0;
|
|
7
4
|
const nice_grpc_1 = require("nice-grpc");
|
|
8
|
-
const ipaddr_js_1 = __importDefault(require("ipaddr.js"));
|
|
9
5
|
const command_1 = require("../xray-protos/app/router/command/command");
|
|
10
|
-
const create_typed_message_1 = __importDefault(require("../common/utils/create-typed-message/create-typed-message"));
|
|
11
|
-
const models_1 = require("./models");
|
|
12
|
-
const config_1 = require("../xray-protos/app/router/config");
|
|
13
6
|
const router_errors_1 = require("../common/errors/router/router.errors");
|
|
7
|
+
const models_1 = require("./models");
|
|
14
8
|
/**
|
|
15
9
|
* Service for managing routing rules in XRAY/XTLS
|
|
16
10
|
* RoutingService is required (enable on XRay Config) to add/remove routing rules.
|
|
@@ -24,56 +18,6 @@ class RouterService {
|
|
|
24
18
|
this.channel = channel;
|
|
25
19
|
this.client = (0, nice_grpc_1.createClient)(command_1.RoutingServiceDefinition, channel);
|
|
26
20
|
}
|
|
27
|
-
/**
|
|
28
|
-
* Adds a new routing rule based on source IP address
|
|
29
|
-
* @param dto - Data transfer object containing rule configuration
|
|
30
|
-
* @param dto.ruleTag - Unique identifier for the rule
|
|
31
|
-
* @param dto.outbound - Outbound tag to route matched traffic
|
|
32
|
-
* @param dto.ip - Source IP address to match
|
|
33
|
-
* @param dto.append - Whether to append the rule or replace existing rules
|
|
34
|
-
* @returns Promise resolving to response indicating success or failure
|
|
35
|
-
*/
|
|
36
|
-
async addSrcIpRule(dto) {
|
|
37
|
-
try {
|
|
38
|
-
const ip = ipaddr_js_1.default.parse(dto.ip);
|
|
39
|
-
const prefix = ip.kind() === 'ipv6' ? 128 : 32;
|
|
40
|
-
await this.client.addRule({
|
|
41
|
-
config: (0, create_typed_message_1.default)(config_1.Config, {
|
|
42
|
-
rule: [
|
|
43
|
-
{
|
|
44
|
-
ruleTag: dto.ruleTag,
|
|
45
|
-
tag: dto.outbound,
|
|
46
|
-
sourceGeoip: [
|
|
47
|
-
config_1.GeoIP.fromPartial({
|
|
48
|
-
cidr: [
|
|
49
|
-
config_1.CIDR.fromPartial({
|
|
50
|
-
ip: new Uint8Array(ip.toByteArray()),
|
|
51
|
-
prefix,
|
|
52
|
-
}),
|
|
53
|
-
],
|
|
54
|
-
}),
|
|
55
|
-
],
|
|
56
|
-
},
|
|
57
|
-
],
|
|
58
|
-
}),
|
|
59
|
-
shouldAppend: dto.append,
|
|
60
|
-
});
|
|
61
|
-
return {
|
|
62
|
-
isOk: true,
|
|
63
|
-
data: new models_1.AddSourceIpRuleResponseModel(true),
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
let message = '';
|
|
68
|
-
if (error instanceof Error) {
|
|
69
|
-
message = error.message;
|
|
70
|
-
}
|
|
71
|
-
return {
|
|
72
|
-
isOk: false,
|
|
73
|
-
...router_errors_1.ROUTER_ERRORS.ADD_SOURCE_IP_RULE_ERROR(message),
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
21
|
/**
|
|
78
22
|
* Removes a routing rule by its tag
|
|
79
23
|
* @param dto - Data transfer object containing rule tag
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.service.d.ts","sourceRoot":"","sources":["../../../src/stats/stats.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAqC,MAAM,WAAW,CAAC;AAEvE,OAAO,EACH,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,gCAAgC,EAChC,gCAAgC,EAChC,4BAA4B,EAC5B,iCAAiC,EACjC,6BAA6B,EAC7B,0BAA0B,EAE7B,MAAM,UAAU,CAAC;AAClB,OAAO,EAEH,kBAAkB,EACrB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,YAAY;IAuBT,OAAO,CAAC,QAAQ,CAAC,OAAO;IAtBpC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C;;;;;;;;;OASG;IACH,OAAO,CAAC,qBAAqB,CAAwB;IAErD;;;OAGG;gBAC0B,OAAO,EAAE,OAAO;IAI7C;;;;;;;;;;;;;;;;;;;OAmBG;IACU,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;IAoB3E;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACU,gBAAgB,CACzB,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,6BAA6B,CAAC,CAAC;IAuBvD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACU,YAAY,CACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;IAuBnD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,mBAAmB,CAC5B,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC,gCAAgC,CAAC,CAAC;IA8B1D;;;;;;;;;;;;;;;;;;;OAmBG;IACU,mBAAmB,CAC5B,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,gCAAgC,CAAC,CAAC;IAuB1D;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,eAAe,CACxB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,4BAA4B,CAAC,CAAC;IAuBtD;;;;;;;;;;;;;;;;;;;OAmBG;IACU,oBAAoB,CAC7B,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,iCAAiC,CAAC,CAAC;IAuB3D;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,gBAAgB,CACzB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,6BAA6B,CAAC,CAAC;IAuBvD;;;;;;;;;;;;;;;;;OAiBG;IACU,aAAa,CACtB,cAAc,GAAE,OAAe,EAC/B,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;IAkCpD;;;;;;OAMG;YACW,mBAAmB;
|
|
1
|
+
{"version":3,"file":"stats.service.d.ts","sourceRoot":"","sources":["../../../src/stats/stats.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAqC,MAAM,WAAW,CAAC;AAEvE,OAAO,EACH,6BAA6B,EAC7B,yBAAyB,EACzB,wBAAwB,EACxB,gCAAgC,EAChC,gCAAgC,EAChC,4BAA4B,EAC5B,iCAAiC,EACjC,6BAA6B,EAC7B,0BAA0B,EAE7B,MAAM,UAAU,CAAC;AAClB,OAAO,EAEH,kBAAkB,EACrB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,YAAY;IAuBT,OAAO,CAAC,QAAQ,CAAC,OAAO;IAtBpC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C;;;;;;;;;OASG;IACH,OAAO,CAAC,qBAAqB,CAAwB;IAErD;;;OAGG;gBAC0B,OAAO,EAAE,OAAO;IAI7C;;;;;;;;;;;;;;;;;;;OAmBG;IACU,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;IAoB3E;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACU,gBAAgB,CACzB,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,6BAA6B,CAAC,CAAC;IAuBvD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACU,YAAY,CACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC;IAuBnD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,mBAAmB,CAC5B,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,CAAC,gCAAgC,CAAC,CAAC;IA8B1D;;;;;;;;;;;;;;;;;;;OAmBG;IACU,mBAAmB,CAC5B,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,gCAAgC,CAAC,CAAC;IAuB1D;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,eAAe,CACxB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,4BAA4B,CAAC,CAAC;IAuBtD;;;;;;;;;;;;;;;;;;;OAmBG;IACU,oBAAoB,CAC7B,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,iCAAiC,CAAC,CAAC;IAuB3D;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,gBAAgB,CACzB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,6BAA6B,CAAC,CAAC;IAuBvD;;;;;;;;;;;;;;;;;OAiBG;IACU,aAAa,CACtB,cAAc,GAAE,OAAe,EAC/B,KAAK,GAAE,OAAe,GACvB,OAAO,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;IAkCpD;;;;;;OAMG;YACW,mBAAmB;IA+DjC;;;OAGG;IACH,IAAW,SAAS,IAAI,kBAAkB,CAEzC;CACJ"}
|
|
@@ -464,21 +464,23 @@ class StatsService {
|
|
|
464
464
|
async getUsersStatsLegacy(reset) {
|
|
465
465
|
try {
|
|
466
466
|
const { users: onlineUsers } = await this.client.getAllOnlineUsers({});
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
467
|
+
const onlinePairs = Array.from(new Set(onlineUsers)).map((metricName) => ({
|
|
468
|
+
metricName,
|
|
469
|
+
email: metricName.slice('user>>>'.length, -'>>>online'.length),
|
|
470
|
+
}));
|
|
471
|
+
const results = new Array(onlinePairs.length);
|
|
472
|
+
const concurrency = Math.min(50, onlinePairs.length);
|
|
471
473
|
let cursor = 0;
|
|
472
474
|
const worker = async () => {
|
|
473
475
|
while (true) {
|
|
474
476
|
const index = cursor++;
|
|
475
|
-
if (index >=
|
|
477
|
+
if (index >= onlinePairs.length)
|
|
476
478
|
return;
|
|
477
|
-
const email =
|
|
479
|
+
const { metricName, email } = onlinePairs[index];
|
|
478
480
|
let ips = [];
|
|
479
481
|
try {
|
|
480
482
|
const ipListResponse = await this.client.getStatsOnlineIpList({
|
|
481
|
-
name:
|
|
483
|
+
name: metricName,
|
|
482
484
|
reset,
|
|
483
485
|
});
|
|
484
486
|
ips = Object.entries(ipListResponse.ips).map(([ip, lastSeen]) => ({
|
|
@@ -487,7 +489,7 @@ class StatsService {
|
|
|
487
489
|
}));
|
|
488
490
|
}
|
|
489
491
|
catch {
|
|
490
|
-
//
|
|
492
|
+
// ignore
|
|
491
493
|
}
|
|
492
494
|
results[index] = { userId: email, ips, traffic: undefined };
|
|
493
495
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
|
2
|
+
import { DomainRule, IPRule } from "../../common/geodata/geodat";
|
|
2
3
|
import { IPOrDomain } from "../../common/net/address";
|
|
3
4
|
import { PortList } from "../../common/net/port";
|
|
4
5
|
import { TypedMessage } from "../../common/serial/typed_message";
|
|
@@ -16,7 +17,8 @@ export interface SniffingConfig {
|
|
|
16
17
|
* Supported values are "http", "tls", "fakedns".
|
|
17
18
|
*/
|
|
18
19
|
destinationOverride: string[];
|
|
19
|
-
domainsExcluded:
|
|
20
|
+
domainsExcluded: DomainRule[];
|
|
21
|
+
ipsExcluded: IPRule[];
|
|
20
22
|
/**
|
|
21
23
|
* Whether should only try to sniff metadata without waiting for client input.
|
|
22
24
|
* Can be used to support SMTP like protocol where server send the first
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/xray-protos/app/proxyman/config.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EACL,cAAc,EAGd,WAAW,EACX,YAAY,EACb,MAAM,iCAAiC,CAAC;AAGzC,eAAO,MAAM,eAAe,sBAAsB,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,iCAAiC,CAAC;CAC1C;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,kCAAkC,CAAC;IAC1C,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/xray-protos/app/proxyman/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
8
8
|
exports.MultiplexingConfig = exports.SenderConfig = exports.OutboundConfig = exports.InboundHandlerConfig = exports.ReceiverConfig = exports.SniffingConfig = exports.InboundConfig = 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 address_1 = require("../../common/net/address");
|
|
12
13
|
const port_1 = require("../../common/net/port");
|
|
13
14
|
const typed_message_1 = require("../../common/serial/typed_message");
|
|
@@ -59,6 +60,7 @@ function createBaseSniffingConfig() {
|
|
|
59
60
|
enabled: false,
|
|
60
61
|
destinationOverride: [],
|
|
61
62
|
domainsExcluded: [],
|
|
63
|
+
ipsExcluded: [],
|
|
62
64
|
metadataOnly: false,
|
|
63
65
|
routeOnly: false,
|
|
64
66
|
};
|
|
@@ -73,7 +75,10 @@ exports.SniffingConfig = {
|
|
|
73
75
|
writer.uint32(18).string(v);
|
|
74
76
|
}
|
|
75
77
|
for (const v of message.domainsExcluded) {
|
|
76
|
-
writer.uint32(26).
|
|
78
|
+
geodat_1.DomainRule.encode(v, writer.uint32(26).fork()).join();
|
|
79
|
+
}
|
|
80
|
+
for (const v of message.ipsExcluded) {
|
|
81
|
+
geodat_1.IPRule.encode(v, writer.uint32(50).fork()).join();
|
|
77
82
|
}
|
|
78
83
|
if (message.metadataOnly !== false) {
|
|
79
84
|
writer.uint32(32).bool(message.metadataOnly);
|
|
@@ -108,7 +113,14 @@ exports.SniffingConfig = {
|
|
|
108
113
|
if (tag !== 26) {
|
|
109
114
|
break;
|
|
110
115
|
}
|
|
111
|
-
message.domainsExcluded.push(reader.
|
|
116
|
+
message.domainsExcluded.push(geodat_1.DomainRule.decode(reader, reader.uint32()));
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
case 6: {
|
|
120
|
+
if (tag !== 50) {
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
message.ipsExcluded.push(geodat_1.IPRule.decode(reader, reader.uint32()));
|
|
112
124
|
continue;
|
|
113
125
|
}
|
|
114
126
|
case 4: {
|
|
@@ -143,9 +155,14 @@ exports.SniffingConfig = {
|
|
|
143
155
|
? object.destination_override.map((e) => globalThis.String(e))
|
|
144
156
|
: [],
|
|
145
157
|
domainsExcluded: globalThis.Array.isArray(object?.domainsExcluded)
|
|
146
|
-
? object.domainsExcluded.map((e) =>
|
|
158
|
+
? object.domainsExcluded.map((e) => geodat_1.DomainRule.fromJSON(e))
|
|
147
159
|
: globalThis.Array.isArray(object?.domains_excluded)
|
|
148
|
-
? object.domains_excluded.map((e) =>
|
|
160
|
+
? object.domains_excluded.map((e) => geodat_1.DomainRule.fromJSON(e))
|
|
161
|
+
: [],
|
|
162
|
+
ipsExcluded: globalThis.Array.isArray(object?.ipsExcluded)
|
|
163
|
+
? object.ipsExcluded.map((e) => geodat_1.IPRule.fromJSON(e))
|
|
164
|
+
: globalThis.Array.isArray(object?.ips_excluded)
|
|
165
|
+
? object.ips_excluded.map((e) => geodat_1.IPRule.fromJSON(e))
|
|
149
166
|
: [],
|
|
150
167
|
metadataOnly: isSet(object.metadataOnly)
|
|
151
168
|
? globalThis.Boolean(object.metadataOnly)
|
|
@@ -168,7 +185,10 @@ exports.SniffingConfig = {
|
|
|
168
185
|
obj.destinationOverride = message.destinationOverride;
|
|
169
186
|
}
|
|
170
187
|
if (message.domainsExcluded?.length) {
|
|
171
|
-
obj.domainsExcluded = message.domainsExcluded;
|
|
188
|
+
obj.domainsExcluded = message.domainsExcluded.map((e) => geodat_1.DomainRule.toJSON(e));
|
|
189
|
+
}
|
|
190
|
+
if (message.ipsExcluded?.length) {
|
|
191
|
+
obj.ipsExcluded = message.ipsExcluded.map((e) => geodat_1.IPRule.toJSON(e));
|
|
172
192
|
}
|
|
173
193
|
if (message.metadataOnly !== false) {
|
|
174
194
|
obj.metadataOnly = message.metadataOnly;
|
|
@@ -185,7 +205,8 @@ exports.SniffingConfig = {
|
|
|
185
205
|
const message = createBaseSniffingConfig();
|
|
186
206
|
message.enabled = object.enabled ?? false;
|
|
187
207
|
message.destinationOverride = object.destinationOverride?.map((e) => e) || [];
|
|
188
|
-
message.domainsExcluded = object.domainsExcluded?.map((e) => e) || [];
|
|
208
|
+
message.domainsExcluded = object.domainsExcluded?.map((e) => geodat_1.DomainRule.fromPartial(e)) || [];
|
|
209
|
+
message.ipsExcluded = object.ipsExcluded?.map((e) => geodat_1.IPRule.fromPartial(e)) || [];
|
|
189
210
|
message.metadataOnly = object.metadataOnly ?? false;
|
|
190
211
|
message.routeOnly = object.routeOnly ?? false;
|
|
191
212
|
return message;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
|
2
|
+
export declare const protobufPackage = "xray.common.geodata";
|
|
3
|
+
export interface Domain {
|
|
4
|
+
$type: "xray.common.geodata.Domain";
|
|
5
|
+
/** Domain matching type. */
|
|
6
|
+
type: Domain_Type;
|
|
7
|
+
/** Domain value. */
|
|
8
|
+
value: string;
|
|
9
|
+
/** Attributes of this domain. May be used for filtering. */
|
|
10
|
+
attribute: Domain_Attribute[];
|
|
11
|
+
}
|
|
12
|
+
/** Type of domain value. */
|
|
13
|
+
export declare enum Domain_Type {
|
|
14
|
+
/** Substr - The value is used as a sub string. */
|
|
15
|
+
Substr = 0,
|
|
16
|
+
/** Regex - The value is used as a regular expression. */
|
|
17
|
+
Regex = 1,
|
|
18
|
+
/** Domain - The value is a domain. */
|
|
19
|
+
Domain = 2,
|
|
20
|
+
/** Full - The value is a full domain. */
|
|
21
|
+
Full = 3,
|
|
22
|
+
UNRECOGNIZED = -1
|
|
23
|
+
}
|
|
24
|
+
export declare function domain_TypeFromJSON(object: any): Domain_Type;
|
|
25
|
+
export declare function domain_TypeToJSON(object: Domain_Type): string;
|
|
26
|
+
export interface Domain_Attribute {
|
|
27
|
+
$type: "xray.common.geodata.Domain.Attribute";
|
|
28
|
+
key: string;
|
|
29
|
+
boolValue?: boolean | undefined;
|
|
30
|
+
intValue?: number | undefined;
|
|
31
|
+
}
|
|
32
|
+
export interface GeoSite {
|
|
33
|
+
$type: "xray.common.geodata.GeoSite";
|
|
34
|
+
code: string;
|
|
35
|
+
domain: Domain[];
|
|
36
|
+
}
|
|
37
|
+
export interface GeoSiteList {
|
|
38
|
+
$type: "xray.common.geodata.GeoSiteList";
|
|
39
|
+
entry: GeoSite[];
|
|
40
|
+
}
|
|
41
|
+
export interface GeoSiteRule {
|
|
42
|
+
$type: "xray.common.geodata.GeoSiteRule";
|
|
43
|
+
file: string;
|
|
44
|
+
code: string;
|
|
45
|
+
attrs: string;
|
|
46
|
+
}
|
|
47
|
+
export interface DomainRule {
|
|
48
|
+
$type: "xray.common.geodata.DomainRule";
|
|
49
|
+
geosite?: GeoSiteRule | undefined;
|
|
50
|
+
custom?: Domain | undefined;
|
|
51
|
+
}
|
|
52
|
+
export interface CIDR {
|
|
53
|
+
$type: "xray.common.geodata.CIDR";
|
|
54
|
+
/** IP address, should be either 4 or 16 bytes. */
|
|
55
|
+
ip: Uint8Array;
|
|
56
|
+
/** Number of leading ones in the network mask. */
|
|
57
|
+
prefix: number;
|
|
58
|
+
}
|
|
59
|
+
export interface CIDRRule {
|
|
60
|
+
$type: "xray.common.geodata.CIDRRule";
|
|
61
|
+
cidr: CIDR | undefined;
|
|
62
|
+
reverseMatch: boolean;
|
|
63
|
+
}
|
|
64
|
+
export interface GeoIP {
|
|
65
|
+
$type: "xray.common.geodata.GeoIP";
|
|
66
|
+
code: string;
|
|
67
|
+
cidr: CIDR[];
|
|
68
|
+
reverseMatch: boolean;
|
|
69
|
+
}
|
|
70
|
+
export interface GeoIPList {
|
|
71
|
+
$type: "xray.common.geodata.GeoIPList";
|
|
72
|
+
entry: GeoIP[];
|
|
73
|
+
}
|
|
74
|
+
export interface GeoIPRule {
|
|
75
|
+
$type: "xray.common.geodata.GeoIPRule";
|
|
76
|
+
file: string;
|
|
77
|
+
code: string;
|
|
78
|
+
reverseMatch: boolean;
|
|
79
|
+
}
|
|
80
|
+
export interface IPRule {
|
|
81
|
+
$type: "xray.common.geodata.IPRule";
|
|
82
|
+
geoip?: GeoIPRule | undefined;
|
|
83
|
+
custom?: CIDRRule | undefined;
|
|
84
|
+
}
|
|
85
|
+
export declare const Domain: MessageFns<Domain, "xray.common.geodata.Domain">;
|
|
86
|
+
export declare const Domain_Attribute: MessageFns<Domain_Attribute, "xray.common.geodata.Domain.Attribute">;
|
|
87
|
+
export declare const GeoSite: MessageFns<GeoSite, "xray.common.geodata.GeoSite">;
|
|
88
|
+
export declare const GeoSiteList: MessageFns<GeoSiteList, "xray.common.geodata.GeoSiteList">;
|
|
89
|
+
export declare const GeoSiteRule: MessageFns<GeoSiteRule, "xray.common.geodata.GeoSiteRule">;
|
|
90
|
+
export declare const DomainRule: MessageFns<DomainRule, "xray.common.geodata.DomainRule">;
|
|
91
|
+
export declare const CIDR: MessageFns<CIDR, "xray.common.geodata.CIDR">;
|
|
92
|
+
export declare const CIDRRule: MessageFns<CIDRRule, "xray.common.geodata.CIDRRule">;
|
|
93
|
+
export declare const GeoIP: MessageFns<GeoIP, "xray.common.geodata.GeoIP">;
|
|
94
|
+
export declare const GeoIPList: MessageFns<GeoIPList, "xray.common.geodata.GeoIPList">;
|
|
95
|
+
export declare const GeoIPRule: MessageFns<GeoIPRule, "xray.common.geodata.GeoIPRule">;
|
|
96
|
+
export declare const IPRule: MessageFns<IPRule, "xray.common.geodata.IPRule">;
|
|
97
|
+
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
98
|
+
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 {} ? {
|
|
99
|
+
[K in Exclude<keyof T, "$type">]?: DeepPartial<T[K]>;
|
|
100
|
+
} : Partial<T>;
|
|
101
|
+
export interface MessageFns<T, V extends string> {
|
|
102
|
+
readonly $type: V;
|
|
103
|
+
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
|
104
|
+
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
|
105
|
+
fromJSON(object: any): T;
|
|
106
|
+
toJSON(message: T): unknown;
|
|
107
|
+
create(base?: DeepPartial<T>): T;
|
|
108
|
+
fromPartial(object: DeepPartial<T>): T;
|
|
109
|
+
}
|
|
110
|
+
export {};
|
|
111
|
+
//# sourceMappingURL=geodat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geodat.d.ts","sourceRoot":"","sources":["../../../../../src/xray-protos/common/geodata/geodat.ts"],"names":[],"mappings":"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"}
|