surgio 2.10.2 → 2.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/CHANGELOG.md +83 -50
- package/build/command/clean-cache.js +2 -2
- package/build/{utils → constant}/constant.d.ts +0 -8
- package/build/constant/constant.js +70 -0
- package/build/constant/env.d.ts +8 -0
- package/build/constant/env.js +12 -0
- package/build/constant/error.d.ts +1 -0
- package/build/constant/error.js +5 -0
- package/build/constant/index.d.ts +3 -0
- package/build/constant/index.js +16 -0
- package/build/generator/artifact.js +3 -3
- package/build/generator/template.js +2 -2
- package/build/index.js +7 -3
- package/build/misc/flag_cn.d.ts +1 -0
- package/build/misc/flag_cn.js +3 -2
- package/build/provider/BlackSSLProvider.js +2 -2
- package/build/provider/ClashProvider.js +21 -48
- package/build/provider/CustomProvider.js +2 -2
- package/build/provider/Provider.d.ts +4 -0
- package/build/provider/Provider.js +33 -2
- package/build/provider/ShadowsocksJsonSubscribeProvider.js +2 -2
- package/build/provider/ShadowsocksSubscribeProvider.js +3 -19
- package/build/provider/ShadowsocksrSubscribeProvider.js +3 -18
- package/build/provider/SsdProvider.js +3 -19
- package/build/provider/TrojanProvider.d.ts +18 -0
- package/build/provider/TrojanProvider.js +78 -0
- package/build/provider/V2rayNSubscribeProvider.d.ts +3 -2
- package/build/provider/V2rayNSubscribeProvider.js +35 -18
- package/build/provider/index.js +4 -1
- package/build/types.d.ts +7 -1
- package/build/types.js +2 -1
- package/build/utils/cache.js +4 -4
- package/build/utils/config.js +3 -3
- package/build/utils/dns.js +5 -15
- package/build/utils/env-flag.d.ts +8 -0
- package/build/utils/env-flag.js +40 -0
- package/build/utils/http-client.js +5 -4
- package/build/utils/index.d.ts +1 -0
- package/build/utils/index.js +19 -6
- package/build/utils/loon.js +2 -2
- package/build/utils/relayable-url.js +2 -2
- package/build/utils/remote-snippet.js +5 -5
- package/build/utils/tmp-helper.js +2 -2
- package/build/utils/trojan.d.ts +2 -0
- package/build/utils/trojan.js +33 -0
- package/hygen-template/provider/new/index.js +3 -0
- package/package.json +6 -8
- package/build/utils/constant.js +0 -98
|
@@ -4,14 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getShadowsocksrSubscription = void 0;
|
|
7
|
-
const joi_1 = __importDefault(require("
|
|
7
|
+
const joi_1 = __importDefault(require("joi"));
|
|
8
8
|
const logger_1 = require("@surgio/logger");
|
|
9
9
|
const assert_1 = __importDefault(require("assert"));
|
|
10
10
|
const utils_1 = require("../utils");
|
|
11
|
-
const http_client_1 = __importDefault(require("../utils/http-client"));
|
|
12
11
|
const relayable_url_1 = __importDefault(require("../utils/relayable-url"));
|
|
13
12
|
const subscription_1 = require("../utils/subscription");
|
|
14
|
-
const cache_1 = require("../utils/cache");
|
|
15
13
|
const ssr_1 = require("../utils/ssr");
|
|
16
14
|
const Provider_1 = __importDefault(require("./Provider"));
|
|
17
15
|
const logger = (0, logger_1.createLogger)({
|
|
@@ -56,20 +54,7 @@ class ShadowsocksrSubscribeProvider extends Provider_1.default {
|
|
|
56
54
|
exports.default = ShadowsocksrSubscribeProvider;
|
|
57
55
|
const getShadowsocksrSubscription = async (url, udpRelay) => {
|
|
58
56
|
(0, assert_1.default)(url, '未指定订阅地址 url');
|
|
59
|
-
const response =
|
|
60
|
-
? cache_1.SubscriptionCache.get(url)
|
|
61
|
-
: await (async () => {
|
|
62
|
-
const res = await http_client_1.default.get(url);
|
|
63
|
-
const subsciptionCacheItem = {
|
|
64
|
-
body: res.body,
|
|
65
|
-
};
|
|
66
|
-
if (res.headers['subscription-userinfo']) {
|
|
67
|
-
subsciptionCacheItem.subscriptionUserinfo = (0, subscription_1.parseSubscriptionUserInfo)(res.headers['subscription-userinfo']);
|
|
68
|
-
logger.debug('%s received subscription userinfo - raw: %s | parsed: %j', url, res.headers['subscription-userinfo'], subsciptionCacheItem.subscriptionUserinfo);
|
|
69
|
-
}
|
|
70
|
-
cache_1.SubscriptionCache.set(url, subsciptionCacheItem);
|
|
71
|
-
return subsciptionCacheItem;
|
|
72
|
-
})();
|
|
57
|
+
const response = await Provider_1.default.requestCacheableResource(url);
|
|
73
58
|
const nodeList = (0, utils_1.fromBase64)(response.body)
|
|
74
59
|
.split('\n')
|
|
75
60
|
.filter((item) => !!item && item.startsWith('ssr://'))
|
|
@@ -93,4 +78,4 @@ const getShadowsocksrSubscription = async (url, udpRelay) => {
|
|
|
93
78
|
};
|
|
94
79
|
};
|
|
95
80
|
exports.getShadowsocksrSubscription = getShadowsocksrSubscription;
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hhZG93c29ja3NyU3Vic2NyaWJlUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJvdmlkZXIvU2hhZG93c29ja3NyU3Vic2NyaWJlUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXNCO0FBQ3RCLDJDQUE4QztBQUM5QyxvREFBNEI7QUFPNUIsb0NBQXNDO0FBQ3RDLDJFQUFrRDtBQUNsRCx3REFBOEQ7QUFDOUQsc0NBQTJDO0FBQzNDLDBEQUFrQztBQUVsQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEVBQUM7SUFDMUIsT0FBTyxFQUFFLHNDQUFzQztDQUNoRCxDQUFDLENBQUM7QUFFSCxNQUFxQiw2QkFBOEIsU0FBUSxrQkFBUTtJQUlqRSxZQUFZLElBQVksRUFBRSxNQUEyQztRQUNuRSxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXBCLE1BQU0sTUFBTSxHQUFHLGFBQUcsQ0FBQyxNQUFNLENBQUM7WUFDeEIsR0FBRyxFQUFFLGFBQUcsQ0FBQyxNQUFNLEVBQUU7aUJBQ2QsR0FBRyxDQUFDO2dCQUNILE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQzthQUNuQixDQUFDO2lCQUNELFFBQVEsRUFBRTtZQUNiLFFBQVEsRUFBRSxhQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFO1NBQ2pDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUViLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTFDLHVCQUF1QjtRQUN2QixJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sS0FBSyxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2hDLElBQUks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
|
|
@@ -4,16 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.parseSsdConfig = exports.getSsdSubscription = void 0;
|
|
7
|
-
const joi_1 = __importDefault(require("
|
|
7
|
+
const joi_1 = __importDefault(require("joi"));
|
|
8
8
|
const logger_1 = require("@surgio/logger");
|
|
9
9
|
const assert_1 = __importDefault(require("assert"));
|
|
10
10
|
const bytes_1 = __importDefault(require("bytes"));
|
|
11
11
|
const types_1 = require("../types");
|
|
12
12
|
const utils_1 = require("../utils");
|
|
13
|
-
const cache_1 = require("../utils/cache");
|
|
14
|
-
const http_client_1 = __importDefault(require("../utils/http-client"));
|
|
15
13
|
const relayable_url_1 = __importDefault(require("../utils/relayable-url"));
|
|
16
|
-
const subscription_1 = require("../utils/subscription");
|
|
17
14
|
const Provider_1 = __importDefault(require("./Provider"));
|
|
18
15
|
const logger = (0, logger_1.createLogger)({
|
|
19
16
|
service: 'surgio:SsdProvider',
|
|
@@ -58,20 +55,7 @@ exports.default = SsdProvider;
|
|
|
58
55
|
// 协议定义:https://github.com/TheCGDF/SSD-Windows/wiki/HTTP%E8%AE%A2%E9%98%85%E5%8D%8F%E5%AE%9A
|
|
59
56
|
const getSsdSubscription = async (url, udpRelay) => {
|
|
60
57
|
(0, assert_1.default)(url, '未指定订阅地址 url');
|
|
61
|
-
const response =
|
|
62
|
-
? cache_1.SubscriptionCache.get(url)
|
|
63
|
-
: await (async () => {
|
|
64
|
-
const res = await http_client_1.default.get(url);
|
|
65
|
-
const subsciptionCacheItem = {
|
|
66
|
-
body: res.body,
|
|
67
|
-
};
|
|
68
|
-
if (res.headers['subscription-userinfo']) {
|
|
69
|
-
subsciptionCacheItem.subscriptionUserinfo = (0, subscription_1.parseSubscriptionUserInfo)(res.headers['subscription-userinfo']);
|
|
70
|
-
logger.debug('%s received subscription userinfo - raw: %s | parsed: %j', url, res.headers['subscription-userinfo'], subsciptionCacheItem.subscriptionUserinfo);
|
|
71
|
-
}
|
|
72
|
-
cache_1.SubscriptionCache.set(url, subsciptionCacheItem);
|
|
73
|
-
return subsciptionCacheItem;
|
|
74
|
-
})();
|
|
58
|
+
const response = await Provider_1.default.requestCacheableResource(url);
|
|
75
59
|
// istanbul ignore next
|
|
76
60
|
if (!response.body.startsWith('ssd://')) {
|
|
77
61
|
throw new Error(`暂仅支持 ssd:// 开头的订阅地址,${url} 无法处理`);
|
|
@@ -129,4 +113,4 @@ const parseSsdConfig = (globalConfig, server, udpRelay) => {
|
|
|
129
113
|
: null));
|
|
130
114
|
};
|
|
131
115
|
exports.parseSsdConfig = parseSsdConfig;
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3NkUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJvdmlkZXIvU3NkUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXNCO0FBQ3RCLDJDQUE4QztBQUM5QyxvREFBNEI7QUFDNUIsa0RBQTBCO0FBRTFCLG9DQUtrQjtBQUNsQixvQ0FBd0Q7QUFDeEQsMkVBQWtEO0FBQ2xELDBEQUFrQztBQUVsQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEVBQUM7SUFDMUIsT0FBTyxFQUFFLG9CQUFvQjtDQUM5QixDQUFDLENBQUM7QUFFSCxNQUFxQixXQUFZLFNBQVEsa0JBQVE7SUFJL0MsWUFBWSxJQUFZLEVBQUUsTUFBeUI7UUFDakQsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVwQixNQUFNLE1BQU0sR0FBRyxhQUFHLENBQUMsTUFBTSxDQUFDO1lBQ3hCLEdBQUcsRUFBRSxhQUFHLENBQUMsTUFBTSxFQUFFO2lCQUNkLEdBQUcsQ0FBQztnQkFDSCxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7YUFDbkIsQ0FBQztpQkFDRCxRQUFRLEVBQUU7WUFDYixRQUFRLEVBQUUsYUFBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRTtTQUNqQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFYixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUxQyx1QkFBdUI7UUFDdkIsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLEtBQUssQ0FBQztTQUNiO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxJQUFJLENBQUMsOEJBQThCLEdBQUcsSUFBSSxDQUFDO0lBQzdDLENBQUM7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
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SubscriptionUserinfo, TrojanNodeConfig, TrojanProviderConfig } from '../types';
|
|
2
|
+
import Provider from './Provider';
|
|
3
|
+
export default class TrojanProvider extends Provider {
|
|
4
|
+
readonly _url: string;
|
|
5
|
+
readonly udpRelay?: boolean;
|
|
6
|
+
readonly tls13?: boolean;
|
|
7
|
+
constructor(name: string, config: TrojanProviderConfig);
|
|
8
|
+
get url(): string;
|
|
9
|
+
getSubscriptionUserInfo(): Promise<SubscriptionUserinfo | undefined>;
|
|
10
|
+
getNodeList(): Promise<ReadonlyArray<TrojanNodeConfig>>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* @see https://github.com/trojan-gfw/trojan-url/blob/master/trojan-url.py
|
|
14
|
+
*/
|
|
15
|
+
export declare const getTrojanSubscription: (url: string, udpRelay?: boolean | undefined, tls13?: boolean | undefined) => Promise<{
|
|
16
|
+
readonly nodeList: ReadonlyArray<TrojanNodeConfig>;
|
|
17
|
+
readonly subscriptionUserinfo?: SubscriptionUserinfo | undefined;
|
|
18
|
+
}>;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getTrojanSubscription = void 0;
|
|
7
|
+
const joi_1 = __importDefault(require("joi"));
|
|
8
|
+
const assert_1 = __importDefault(require("assert"));
|
|
9
|
+
const logger_1 = require("@surgio/logger");
|
|
10
|
+
const utils_1 = require("../utils");
|
|
11
|
+
const relayable_url_1 = __importDefault(require("../utils/relayable-url"));
|
|
12
|
+
const trojan_1 = require("../utils/trojan");
|
|
13
|
+
const Provider_1 = __importDefault(require("./Provider"));
|
|
14
|
+
const logger = (0, logger_1.createLogger)({
|
|
15
|
+
service: 'surgio:TrojanProvider',
|
|
16
|
+
});
|
|
17
|
+
class TrojanProvider extends Provider_1.default {
|
|
18
|
+
constructor(name, config) {
|
|
19
|
+
super(name, config);
|
|
20
|
+
const schema = joi_1.default.object({
|
|
21
|
+
url: joi_1.default.string()
|
|
22
|
+
.uri({
|
|
23
|
+
scheme: [/https?/],
|
|
24
|
+
})
|
|
25
|
+
.required(),
|
|
26
|
+
udpRelay: joi_1.default.bool().strict(),
|
|
27
|
+
tls13: joi_1.default.bool().strict(),
|
|
28
|
+
}).unknown();
|
|
29
|
+
const { error } = schema.validate(config);
|
|
30
|
+
// istanbul ignore next
|
|
31
|
+
if (error) {
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
this._url = config.url;
|
|
35
|
+
this.udpRelay = config.udpRelay;
|
|
36
|
+
this.tls13 = config.tls13;
|
|
37
|
+
this.supportGetSubscriptionUserInfo = true;
|
|
38
|
+
}
|
|
39
|
+
// istanbul ignore next
|
|
40
|
+
get url() {
|
|
41
|
+
return (0, relayable_url_1.default)(this._url, this.relayUrl);
|
|
42
|
+
}
|
|
43
|
+
async getSubscriptionUserInfo() {
|
|
44
|
+
const { subscriptionUserinfo } = await (0, exports.getTrojanSubscription)(this.url, this.udpRelay, this.tls13);
|
|
45
|
+
if (subscriptionUserinfo) {
|
|
46
|
+
return subscriptionUserinfo;
|
|
47
|
+
}
|
|
48
|
+
return void 0;
|
|
49
|
+
}
|
|
50
|
+
async getNodeList() {
|
|
51
|
+
const { nodeList } = await (0, exports.getTrojanSubscription)(this.url, this.udpRelay, this.tls13);
|
|
52
|
+
return nodeList;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.default = TrojanProvider;
|
|
56
|
+
/**
|
|
57
|
+
* @see https://github.com/trojan-gfw/trojan-url/blob/master/trojan-url.py
|
|
58
|
+
*/
|
|
59
|
+
const getTrojanSubscription = async (url, udpRelay, tls13) => {
|
|
60
|
+
(0, assert_1.default)(url, '未指定订阅地址 url');
|
|
61
|
+
const response = await Provider_1.default.requestCacheableResource(url, {
|
|
62
|
+
requestUserAgent: 'shadowrocket',
|
|
63
|
+
});
|
|
64
|
+
const config = (0, utils_1.fromBase64)(response.body);
|
|
65
|
+
const nodeList = config
|
|
66
|
+
.split('\n')
|
|
67
|
+
.filter((item) => !!item && item.startsWith('trojan://'))
|
|
68
|
+
.map((item) => {
|
|
69
|
+
const nodeConfig = (0, trojan_1.parseTrojanUri)(item);
|
|
70
|
+
return Object.assign(Object.assign({}, nodeConfig), { 'udp-relay': udpRelay, tls13 });
|
|
71
|
+
});
|
|
72
|
+
return {
|
|
73
|
+
nodeList,
|
|
74
|
+
subscriptionUserinfo: response.subscriptionUserinfo,
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
exports.getTrojanSubscription = getTrojanSubscription;
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJvamFuUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJvdmlkZXIvVHJvamFuUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXNCO0FBQ3RCLG9EQUE0QjtBQUM1QiwyQ0FBOEM7QUFPOUMsb0NBQXNDO0FBQ3RDLDJFQUFrRDtBQUNsRCw0Q0FBaUQ7QUFDakQsMERBQWtDO0FBRWxDLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksRUFBQztJQUMxQixPQUFPLEVBQUUsdUJBQXVCO0NBQ2pDLENBQUMsQ0FBQztBQUVILE1BQXFCLGNBQWUsU0FBUSxrQkFBUTtJQUtsRCxZQUFZLElBQVksRUFBRSxNQUE0QjtRQUNwRCxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXBCLE1BQU0sTUFBTSxHQUFHLGFBQUcsQ0FBQyxNQUFNLENBQUM7WUFDeEIsR0FBRyxFQUFFLGFBQUcsQ0FBQyxNQUFNLEVBQUU7aUJBQ2QsR0FBRyxDQUFDO2dCQUNILE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQzthQUNuQixDQUFDO2lCQUNELFFBQVEsRUFBRTtZQUNiLFFBQVEsRUFBRSxhQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFO1lBQzdCLEtBQUssRUFBRSxhQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFO1NBQzNCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUViLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTFDLHVCQUF1QjtRQUN2QixJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sS0FBSyxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsOEJBQThCLEdBQUcsSUFBSSxDQUFDO0lBQzdDLENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsSUFBVyxHQUFHO1FBQ1osT0FBTyxJQUFBLHVCQUFZLEVBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVNLEtBQUssQ0FBQyx1QkFBdUI7UUFHbEMsTUFBTSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsTUFBTSxJQUFBLDZCQUFxQixFQUMxRCxJQUFJLENBQUMsR0FBRyxFQUNSLElBQUksQ0FBQyxRQUFRLEVBQ2IsSUFBSSxDQUFDLEtBQUssQ0FDWCxDQUFDO1FBRUYsSUFBSSxvQkFBb0IsRUFBRTtZQUN4QixPQUFPLG9CQUFvQixDQUFDO1NBQzdCO1FBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRU0sS0FBSyxDQUFDLFdBQVc7UUFDdEIsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sSUFBQSw2QkFBcUIsRUFDOUMsSUFBSSxDQUFDLEdBQUcsRUFDUixJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxLQUFLLENBQ1gsQ0FBQztRQUVGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Q0FDRjtBQTVERCxpQ0E0REM7QUFFRDs7R0FFRztBQUNJLE1BQU0scUJBQXFCLEdBQUcsS0FBSyxFQUN4QyxHQUFXLEVBQ1gsUUFBa0IsRUFDbEIsS0FBZSxFQUlkLEVBQUU7SUFDSCxJQUFBLGdCQUFNLEVBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTNCLE1BQU0sUUFBUSxHQUFHLE1BQU0sa0JBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLEVBQUU7UUFDNUQsZ0JBQWdCLEVBQUUsY0FBYztLQUNqQyxDQUFDLENBQUM7SUFDSCxNQUFNLE1BQU0sR0FBRyxJQUFBLGtCQUFVLEVBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sUUFBUSxHQUFHLE1BQU07U0FDcEIsS0FBSyxDQUFDLElBQUksQ0FBQztTQUNYLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3hELEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBb0IsRUFBRTtRQUM5QixNQUFNLFVBQVUsR0FBRyxJQUFBLHVCQUFjLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEMsdUNBQ0ssVUFBVSxLQUNiLFdBQVcsRUFBRSxRQUFRLEVBQ3JCLEtBQUssSUFDTDtJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUwsT0FBTztRQUNMLFFBQVE7UUFDUixvQkFBb0IsRUFBRSxRQUFRLENBQUMsb0JBQW9CO0tBQ3BELENBQUM7QUFDSixDQUFDLENBQUM7QUEvQlcsUUFBQSxxQkFBcUIseUJBK0JoQyJ9
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { V2rayNSubscribeProviderConfig, VmessNodeConfig } from '../types';
|
|
1
|
+
import { ShadowsocksNodeConfig, V2rayNSubscribeProviderConfig, VmessNodeConfig } from '../types';
|
|
2
2
|
import Provider from './Provider';
|
|
3
3
|
export default class V2rayNSubscribeProvider extends Provider {
|
|
4
4
|
readonly compatibleMode?: boolean;
|
|
@@ -13,4 +13,5 @@ export default class V2rayNSubscribeProvider extends Provider {
|
|
|
13
13
|
/**
|
|
14
14
|
* @see https://github.com/2dust/v2rayN/wiki/%E5%88%86%E4%BA%AB%E9%93%BE%E6%8E%A5%E6%A0%BC%E5%BC%8F%E8%AF%B4%E6%98%8E(ver-2)
|
|
15
15
|
*/
|
|
16
|
-
export declare const getV2rayNSubscription: (url: string, isCompatibleMode?: boolean | undefined, skipCertVerify?: boolean | undefined, udpRelay?: boolean | undefined, tls13?: boolean | undefined) => Promise<ReadonlyArray<VmessNodeConfig>>;
|
|
16
|
+
export declare const getV2rayNSubscription: (url: string, isCompatibleMode?: boolean | undefined, skipCertVerify?: boolean | undefined, udpRelay?: boolean | undefined, tls13?: boolean | undefined) => Promise<ReadonlyArray<VmessNodeConfig | ShadowsocksNodeConfig>>;
|
|
17
|
+
export declare const parseJSONConfig: (json: string, isCompatibleMode: boolean | undefined, skipCertVerify?: boolean | undefined, udpRelay?: boolean | undefined, tls13?: boolean | undefined) => VmessNodeConfig | undefined;
|
|
@@ -3,8 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getV2rayNSubscription = void 0;
|
|
7
|
-
const joi_1 = __importDefault(require("
|
|
6
|
+
exports.parseJSONConfig = exports.getV2rayNSubscription = void 0;
|
|
7
|
+
const joi_1 = __importDefault(require("joi"));
|
|
8
8
|
const logger_1 = require("@surgio/logger");
|
|
9
9
|
const assert_1 = __importDefault(require("assert"));
|
|
10
10
|
const types_1 = require("../types");
|
|
@@ -12,6 +12,7 @@ const utils_1 = require("../utils");
|
|
|
12
12
|
const cache_1 = require("../utils/cache");
|
|
13
13
|
const http_client_1 = __importDefault(require("../utils/http-client"));
|
|
14
14
|
const relayable_url_1 = __importDefault(require("../utils/relayable-url"));
|
|
15
|
+
const ss_1 = require("../utils/ss");
|
|
15
16
|
const Provider_1 = __importDefault(require("./Provider"));
|
|
16
17
|
class V2rayNSubscribeProvider extends Provider_1.default {
|
|
17
18
|
constructor(name, config) {
|
|
@@ -66,29 +67,45 @@ const getV2rayNSubscription = async (url, isCompatibleMode, skipCertVerify, udpR
|
|
|
66
67
|
const configList = (0, utils_1.fromBase64)(response)
|
|
67
68
|
.split('\n')
|
|
68
69
|
.filter((item) => !!item)
|
|
69
|
-
.filter((item) =>
|
|
70
|
+
.filter((item) => {
|
|
71
|
+
const pick = item.startsWith('vmess://') || item.startsWith('ss://');
|
|
72
|
+
if (!pick) {
|
|
73
|
+
logger_1.logger.warn(`不支持读取 V2rayN 订阅中的节点 ${item},该节点会被省略。`);
|
|
74
|
+
}
|
|
75
|
+
return pick;
|
|
76
|
+
});
|
|
70
77
|
return configList
|
|
71
78
|
.map((item) => {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
if (!isCompatibleMode && (!json.v || Number(json.v) !== 2)) {
|
|
75
|
-
throw new Error(`该订阅 ${url} 可能不是一个有效的 V2rayN 订阅。请参考 http://url.royli.dev/Qtrci 进行排查, 或者将解析模式改为兼容模式`);
|
|
79
|
+
if (item.startsWith('vmess://')) {
|
|
80
|
+
return (0, exports.parseJSONConfig)((0, utils_1.fromBase64)(item.replace('vmess://', '')), isCompatibleMode, skipCertVerify, udpRelay, tls13);
|
|
76
81
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
logger_1.logger.warn(`不支持读取 network 类型为 ${json.net} 的 Vmess 节点,节点 ${json.ps} 会被省略`);
|
|
80
|
-
return undefined;
|
|
82
|
+
if (item.startsWith('ss://')) {
|
|
83
|
+
return Object.assign(Object.assign({}, (0, ss_1.parseSSUri)(item)), { 'udp-relay': udpRelay, skipCertVerify: skipCertVerify, tls13: tls13 });
|
|
81
84
|
}
|
|
82
|
-
return
|
|
83
|
-
? {
|
|
84
|
-
skipCertVerify: skipCertVerify !== null && skipCertVerify !== void 0 ? skipCertVerify : false,
|
|
85
|
-
tls13: tls13 !== null && tls13 !== void 0 ? tls13 : false,
|
|
86
|
-
}
|
|
87
|
-
: null));
|
|
85
|
+
return undefined;
|
|
88
86
|
})
|
|
89
87
|
.filter((item) => !!item);
|
|
90
88
|
}
|
|
91
89
|
return await requestConfigFromRemote();
|
|
92
90
|
};
|
|
93
91
|
exports.getV2rayNSubscription = getV2rayNSubscription;
|
|
94
|
-
|
|
92
|
+
const parseJSONConfig = (json, isCompatibleMode, skipCertVerify, udpRelay, tls13) => {
|
|
93
|
+
const config = JSON.parse(json);
|
|
94
|
+
// istanbul ignore next
|
|
95
|
+
if (!isCompatibleMode && (!config.v || Number(config.v) !== 2)) {
|
|
96
|
+
throw new Error(`该节点 ${config.ps} 可能不是一个有效的 V2rayN 节点。请参考 http://url.royli.dev/Qtrci 进行排查, 或者将解析模式改为兼容模式`);
|
|
97
|
+
}
|
|
98
|
+
// istanbul ignore next
|
|
99
|
+
if (['kcp', 'http'].indexOf(config.net) > -1) {
|
|
100
|
+
logger_1.logger.warn(`不支持读取 network 类型为 ${config.net} 的 Vmess 节点,节点 ${config.ps} 会被省略。`);
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
return Object.assign({ nodeName: config.ps, type: types_1.NodeTypeEnum.Vmess, hostname: config.add, port: config.port, method: 'auto', uuid: config.id, alterId: config.aid || '0', network: config.net, tls: config.tls === 'tls', host: config.host, path: config.path || '/', 'udp-relay': udpRelay === true }, (config.tls === 'tls'
|
|
104
|
+
? {
|
|
105
|
+
skipCertVerify: skipCertVerify !== null && skipCertVerify !== void 0 ? skipCertVerify : false,
|
|
106
|
+
tls13: tls13 !== null && tls13 !== void 0 ? tls13 : false,
|
|
107
|
+
}
|
|
108
|
+
: null));
|
|
109
|
+
};
|
|
110
|
+
exports.parseJSONConfig = parseJSONConfig;
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVjJyYXlOU3Vic2NyaWJlUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJvdmlkZXIvVjJyYXlOU3Vic2NyaWJlUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXNCO0FBQ3RCLDJDQUF3QztBQUN4QyxvREFBNEI7QUFFNUIsb0NBS2tCO0FBQ2xCLG9DQUFzQztBQUN0QywwQ0FBNkM7QUFDN0MsdUVBQThDO0FBQzlDLDJFQUFrRDtBQUNsRCxvQ0FBeUM7QUFDekMsMERBQWtDO0FBRWxDLE1BQXFCLHVCQUF3QixTQUFRLGtCQUFRO0lBUTNELFlBQVksSUFBWSxFQUFFLE1BQXFDO1FBQzdELEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFcEIsTUFBTSxNQUFNLEdBQUcsYUFBRyxDQUFDLE1BQU0sQ0FBQztZQUN4QixHQUFHLEVBQUUsYUFBRyxDQUFDLE1BQU0sRUFBRTtpQkFDZCxHQUFHLENBQUM7Z0JBQ0gsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO2FBQ25CLENBQUM7aUJBQ0QsUUFBUSxFQUFFO1lBQ2IsUUFBUSxFQUFFLGFBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUU7WUFDN0IsS0FBSyxFQUFFLGFBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUU7WUFDMUIsY0FBYyxFQUFFLGFBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUU7WUFDbkMsY0FBYyxFQUFFLGFBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUU7U0FDcEMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWIsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFMUMsdUJBQXVCO1FBQ3ZCLElBQUksS0FBSyxFQUFFO1lBQ1QsTUFBTSxLQUFLLENBQUM7U0FDYjtRQUVELElBQUks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
|
package/build/provider/index.js
CHANGED
|
@@ -12,6 +12,7 @@ const ShadowsocksJsonSubscribeProvider_1 = __importDefault(require("./Shadowsock
|
|
|
12
12
|
const ShadowsocksrSubscribeProvider_1 = __importDefault(require("./ShadowsocksrSubscribeProvider"));
|
|
13
13
|
const ShadowsocksSubscribeProvider_1 = __importDefault(require("./ShadowsocksSubscribeProvider"));
|
|
14
14
|
const SsdProvider_1 = __importDefault(require("./SsdProvider"));
|
|
15
|
+
const TrojanProvider_1 = __importDefault(require("./TrojanProvider"));
|
|
15
16
|
const V2rayNSubscribeProvider_1 = __importDefault(require("./V2rayNSubscribeProvider"));
|
|
16
17
|
async function getProvider(name, config) {
|
|
17
18
|
// 函数形式,需要先获取到返回值
|
|
@@ -36,9 +37,11 @@ async function getProvider(name, config) {
|
|
|
36
37
|
return new ClashProvider_1.default(name, config);
|
|
37
38
|
case types_1.SupportProviderEnum.Ssd:
|
|
38
39
|
return new SsdProvider_1.default(name, config);
|
|
40
|
+
case types_1.SupportProviderEnum.Trojan:
|
|
41
|
+
return new TrojanProvider_1.default(name, config);
|
|
39
42
|
default:
|
|
40
43
|
throw new Error(`Unsupported provider type: ${config.type}`);
|
|
41
44
|
}
|
|
42
45
|
}
|
|
43
46
|
exports.getProvider = getProvider;
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJvdmlkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0NBQStDO0FBQy9DLDBFQUFrRDtBQUNsRCxvRUFBNEM7QUFDNUMsc0VBQThDO0FBQzlDLDBHQUFrRjtBQUNsRixvR0FBNEU7QUFDNUUsa0dBQTBFO0FBQzFFLGdFQUF3QztBQUN4QyxzRUFBOEM7QUFFOUMsd0ZBQWdFO0FBSXpELEtBQUssVUFBVSxXQUFXLENBQy9CLElBQVksRUFDWixNQUFXO0lBRVgsaUJBQWlCO0lBQ2pCLElBQUksT0FBTyxNQUFNLEtBQUssVUFBVSxFQUFFO1FBQ2hDLE1BQU0sR0FBRyxNQUFNLE1BQU0sRUFBRSxDQUFDO0tBQ3pCO0lBRUQsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQ25CLEtBQUssMkJBQW1CLENBQUMsUUFBUTtZQUMvQixPQUFPLElBQUksMEJBQWdCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTVDLEtBQUssMkJBQW1CLENBQUMsd0JBQXdCO1lBQy9DLE9BQU8sSUFBSSwwQ0FBZ0MsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFNUQsS0FBSywyQkFBbUIsQ0FBQyxvQkFBb0I7WUFDM0MsT0FBTyxJQUFJLHNDQUE0QixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV4RCxLQUFLLDJCQUFtQixDQUFDLHFCQUFxQjtZQUM1QyxPQUFPLElBQUksdUNBQTZCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXpELEtBQUssMkJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0IsT0FBTyxJQUFJLHdCQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsS0FBSywyQkFBbUIsQ0FBQyxlQUFlO1lBQ3RDLE9BQU8sSUFBSSxpQ0FBdUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFbkQsS0FBSywyQkFBbUIsQ0FBQyxLQUFLO1lBQzVCLE9BQU8sSUFBSSx1QkFBYSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV6QyxLQUFLLDJCQUFtQixDQUFDLEdBQUc7WUFDMUIsT0FBTyxJQUFJLHFCQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXZDLEtBQUssMkJBQW1CLENBQUMsTUFBTTtZQUM3QixPQUFPLElBQUksd0JBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFMUM7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUNoRTtBQUNILENBQUM7QUF6Q0Qsa0NBeUNDIn0=
|
package/build/types.d.ts
CHANGED
|
@@ -17,7 +17,8 @@ export declare enum SupportProviderEnum {
|
|
|
17
17
|
ShadowsocksJsonSubscribe = "shadowsocks_json_subscribe",
|
|
18
18
|
V2rayNSubscribe = "v2rayn_subscribe",
|
|
19
19
|
BlackSSL = "blackssl",
|
|
20
|
-
Ssd = "ssd"
|
|
20
|
+
Ssd = "ssd",
|
|
21
|
+
Trojan = "trojan"
|
|
21
22
|
}
|
|
22
23
|
export interface CommandConfig {
|
|
23
24
|
readonly output: string;
|
|
@@ -140,6 +141,11 @@ export interface SsdProviderConfig extends ProviderConfig {
|
|
|
140
141
|
export interface CustomProviderConfig extends ProviderConfig {
|
|
141
142
|
readonly nodeList: ReadonlyArray<any>;
|
|
142
143
|
}
|
|
144
|
+
export interface TrojanProviderConfig extends ProviderConfig {
|
|
145
|
+
readonly url: string;
|
|
146
|
+
readonly udpRelay?: boolean;
|
|
147
|
+
readonly tls13?: boolean;
|
|
148
|
+
}
|
|
143
149
|
export interface HttpNodeConfig extends SimpleNodeConfig {
|
|
144
150
|
readonly type: NodeTypeEnum.HTTP;
|
|
145
151
|
readonly hostname: string;
|
package/build/types.js
CHANGED
|
@@ -22,5 +22,6 @@ var SupportProviderEnum;
|
|
|
22
22
|
SupportProviderEnum["V2rayNSubscribe"] = "v2rayn_subscribe";
|
|
23
23
|
SupportProviderEnum["BlackSSL"] = "blackssl";
|
|
24
24
|
SupportProviderEnum["Ssd"] = "ssd";
|
|
25
|
+
SupportProviderEnum["Trojan"] = "trojan";
|
|
25
26
|
})(SupportProviderEnum = exports.SupportProviderEnum || (exports.SupportProviderEnum = {}));
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsSUFBWSxZQVNYO0FBVEQsV0FBWSxZQUFZO0lBQ3RCLCtCQUFlLENBQUE7SUFDZiw2QkFBYSxDQUFBO0lBQ2IsMkNBQTJCLENBQUE7SUFDM0IsNkNBQTZCLENBQUE7SUFDN0IsK0JBQWUsQ0FBQTtJQUNmLCtCQUFlLENBQUE7SUFDZixpQ0FBaUIsQ0FBQTtJQUNqQixpQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBVFcsWUFBWSxHQUFaLG9CQUFZLEtBQVosb0JBQVksUUFTdkI7QUFFRCxJQUFZLG1CQVVYO0FBVkQsV0FBWSxtQkFBbUI7SUFDN0Isc0NBQWUsQ0FBQTtJQUNmLHdDQUFpQixDQUFBO0lBQ2pCLHFFQUE4QyxDQUFBO0lBQzlDLHVFQUFnRCxDQUFBO0lBQ2hELDhFQUF1RCxDQUFBO0lBQ3ZELDJEQUFvQyxDQUFBO0lBQ3BDLDRDQUFxQixDQUFBO0lBQ3JCLGtDQUFXLENBQUE7SUFDWCx3Q0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBVlcsbUJBQW1CLEdBQW5CLDJCQUFtQixLQUFuQiwyQkFBbUIsUUFVOUIifQ==
|
package/build/utils/cache.js
CHANGED
|
@@ -5,13 +5,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.SubscriptionCache = exports.ConfigCache = void 0;
|
|
7
7
|
const lru_cache_1 = __importDefault(require("lru-cache"));
|
|
8
|
-
const
|
|
8
|
+
const env_flag_1 = require("./env-flag");
|
|
9
9
|
exports.ConfigCache = new lru_cache_1.default({
|
|
10
|
-
maxAge:
|
|
10
|
+
maxAge: (0, env_flag_1.getProviderCacheMaxage)(),
|
|
11
11
|
max: 100,
|
|
12
12
|
});
|
|
13
13
|
exports.SubscriptionCache = new lru_cache_1.default({
|
|
14
|
-
maxAge:
|
|
14
|
+
maxAge: (0, env_flag_1.getProviderCacheMaxage)(),
|
|
15
15
|
max: 100,
|
|
16
16
|
});
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbHMvY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMERBQTRCO0FBRzVCLHlDQUFvRDtBQU92QyxRQUFBLFdBQVcsR0FBRyxJQUFJLG1CQUFHLENBQWlCO0lBQ2pELE1BQU0sRUFBRSxJQUFBLGlDQUFzQixHQUFFO0lBQ2hDLEdBQUcsRUFBRSxHQUFHO0NBQ1QsQ0FBQyxDQUFDO0FBRVUsUUFBQSxpQkFBaUIsR0FBRyxJQUFJLG1CQUFHLENBQStCO0lBQ3JFLE1BQU0sRUFBRSxJQUFBLGlDQUFzQixHQUFFO0lBQ2hDLEdBQUcsRUFBRSxHQUFHO0NBQ1QsQ0FBQyxDQUFDIn0=
|
package/build/utils/config.js
CHANGED
|
@@ -4,14 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.validateConfig = exports.normalizeConfig = exports.loadConfig = void 0;
|
|
7
|
-
const joi_1 = __importDefault(require("
|
|
7
|
+
const joi_1 = __importDefault(require("joi"));
|
|
8
8
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
9
|
const lodash_1 = __importDefault(require("lodash"));
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
11
|
const url_1 = require("url");
|
|
12
12
|
const util_1 = require("util");
|
|
13
13
|
const deprecation_1 = require("../misc/deprecation");
|
|
14
|
-
const constant_1 = require("
|
|
14
|
+
const constant_1 = require("../constant");
|
|
15
15
|
const flag_1 = require("./flag");
|
|
16
16
|
const index_1 = require("./index");
|
|
17
17
|
const showDEP005 = (0, util_1.deprecate)(lodash_1.default.noop, deprecation_1.DEP005, 'DEP005');
|
|
@@ -173,4 +173,4 @@ const validateConfig = (userConfig) => {
|
|
|
173
173
|
}
|
|
174
174
|
};
|
|
175
175
|
exports.validateConfig = validateConfig;
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL3V0aWxzL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4Q0FBc0I7QUFDdEIsd0RBQTBCO0FBQzFCLG9EQUF1QjtBQUN2QixnREFBd0I7QUFDeEIsNkJBQTBCO0FBQzFCLCtCQUFpQztBQUNqQyxxREFBcUQ7QUFHckQsMENBQWtFO0FBQ2xFLGlDQUFvQztBQUNwQyxtQ0FBNkM7QUFFN0MsTUFBTSxVQUFVLEdBQUcsSUFBQSxnQkFBUyxFQUFDLGdCQUFDLENBQUMsSUFBSSxFQUFFLG9CQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDdkQsTUFBTSxVQUFVLEdBQUcsSUFBQSxnQkFBUyxFQUFDLGdCQUFDLENBQUMsSUFBSSxFQUFFLG9CQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFFaEQsTUFBTSxVQUFVLEdBQUcsQ0FDeEIsR0FBVyxFQUNYLFVBQWtCLEVBQ2xCLFFBQWlDLEVBQ2xCLEVBQUU7SUFDakIsTUFBTSxPQUFPLEdBQUcsY0FBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFOUMsSUFBSSxDQUFDLGtCQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxPQUFPLE1BQU0sQ0FBQyxDQUFDO0tBQ3hDO0lBRUQsTUFBTSxVQUFVLEdBQUcsZ0JBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFakQsSUFBQSxzQkFBYyxFQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTNCLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRTtRQUNwQixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM5QyxJQUFJLFVBQVUsQ0FBQyxLQUFL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
|
package/build/utils/dns.js
CHANGED
|
@@ -8,22 +8,12 @@ const dns_1 = require("dns");
|
|
|
8
8
|
const lru_cache_1 = __importDefault(require("lru-cache"));
|
|
9
9
|
const logger_1 = require("@surgio/logger");
|
|
10
10
|
const bluebird_1 = __importDefault(require("bluebird"));
|
|
11
|
-
const
|
|
12
|
-
const constant_1 = require("./constant");
|
|
13
|
-
const Resolver = dns_1.promises.Resolver;
|
|
14
|
-
const resolver = new Resolver();
|
|
11
|
+
const env_flag_1 = require("./env-flag");
|
|
15
12
|
const DomainCache = new lru_cache_1.default({
|
|
16
13
|
max: 5000,
|
|
17
14
|
});
|
|
18
15
|
const logger = (0, logger_1.createLogger)({ service: 'surgio:utils:dns' });
|
|
19
|
-
|
|
20
|
-
if ((0, _1.isNow)() || (0, _1.isHeroku)() || (0, _1.isGitHubActions)() || (0, _1.isGitLabCI)()) {
|
|
21
|
-
resolver.setServers(['1.1.1.1', '8.8.8.8']);
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
resolver.setServers(['223.5.5.5', '114.114.114.114']);
|
|
25
|
-
}
|
|
26
|
-
const resolveDomain = async (domain, timeout = constant_1.NETWORK_RESOLVE_TIMEOUT) => {
|
|
16
|
+
const resolveDomain = async (domain, timeout = (0, env_flag_1.getNetworkResolveTimeout)()) => {
|
|
27
17
|
if (DomainCache.has(domain)) {
|
|
28
18
|
return DomainCache.get(domain);
|
|
29
19
|
}
|
|
@@ -49,10 +39,10 @@ const resolve4And6 = async (domain) => {
|
|
|
49
39
|
return [];
|
|
50
40
|
}
|
|
51
41
|
const [ipv4, ipv6] = await Promise.all([
|
|
52
|
-
|
|
53
|
-
|
|
42
|
+
dns_1.promises.resolve4(domain, { ttl: true }).catch(onErr),
|
|
43
|
+
dns_1.promises.resolve6(domain, { ttl: true }).catch(onErr),
|
|
54
44
|
]);
|
|
55
45
|
return [...ipv4, ...ipv6];
|
|
56
46
|
};
|
|
57
47
|
exports.resolve4And6 = resolve4And6;
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL3V0aWxzL2Rucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw2QkFBcUQ7QUFDckQsMERBQTRCO0FBQzVCLDJDQUE4QztBQUM5Qyx3REFBZ0M7QUFFaEMseUNBQXNEO0FBRXRELE1BQU0sV0FBVyxHQUFHLElBQUksbUJBQUcsQ0FBZ0M7SUFDekQsR0FBRyxFQUFFLElBQUk7Q0FDVixDQUFDLENBQUM7QUFDSCxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEVBQUMsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0FBRXRELE1BQU0sYUFBYSxHQUFHLEtBQUssRUFDaEMsTUFBYyxFQUNkLFVBQWtCLElBQUEsbUNBQXdCLEdBQUUsRUFDWixFQUFFO0lBQ2xDLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMzQixPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUEwQixDQUFDO0tBQ3pEO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNoRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkIsTUFBTSxPQUFPLEdBQUcsTUFBTSxrQkFBUSxDQUFDLElBQUksQ0FBK0I7UUFDaEUsSUFBQSxvQkFBWSxFQUFDLE1BQU0sQ0FBQztRQUNwQixrQkFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO0tBQ3ZDLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQ1YsbUJBQW1CLE1BQU0sS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUNuRCxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FDZixJQUFJLENBQ0wsQ0FBQztJQUVGLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtRQUNsQixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEQsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDeEQsT0FBTyxPQUFPLENBQUM7S0FDaEI7SUFFRCx1QkFBdUI7SUFDdkIsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDLENBQUM7QUE1QlcsUUFBQSxhQUFhLGlCQTRCeEI7QUFFSyxNQUFNLFlBQVksR0FBRyxLQUFLLEVBQy9CLE1BQWMsRUFDeUIsRUFBRTtJQUN6Qyx1QkFBdUI7SUFDdkIsU0FBUyxLQUFLO1FBQ1osT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDckMsY0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ2hELGNBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztLQUNqRCxDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFkVyxRQUFBLFlBQVksZ0JBY3ZCIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const getNetworkTimeout: () => number;
|
|
2
|
+
export declare const getNetworkResolveTimeout: () => number;
|
|
3
|
+
export declare const getNetworkConcurrency: () => number;
|
|
4
|
+
export declare const getNetworkRetry: () => number;
|
|
5
|
+
export declare const getNetworkClashUA: () => string;
|
|
6
|
+
export declare const getRemoteSnippetCacheMaxage: () => number;
|
|
7
|
+
export declare const getProviderCacheMaxage: () => number;
|
|
8
|
+
export declare const getSurgeVmessAEADDisabled: () => boolean;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getSurgeVmessAEADDisabled = exports.getProviderCacheMaxage = exports.getRemoteSnippetCacheMaxage = exports.getNetworkClashUA = exports.getNetworkRetry = exports.getNetworkConcurrency = exports.getNetworkResolveTimeout = exports.getNetworkTimeout = void 0;
|
|
7
|
+
const ms_1 = __importDefault(require("ms"));
|
|
8
|
+
const constant_1 = require("../constant");
|
|
9
|
+
const getNetworkTimeout = () => process.env[constant_1.ENV_NETWORK_TIMEOUT_KEY]
|
|
10
|
+
? Number(process.env[constant_1.ENV_NETWORK_TIMEOUT_KEY])
|
|
11
|
+
: (0, ms_1.default)('5s');
|
|
12
|
+
exports.getNetworkTimeout = getNetworkTimeout;
|
|
13
|
+
const getNetworkResolveTimeout = () => process.env[constant_1.ENV_NETWORK_RESOLVE_TIMEOUT]
|
|
14
|
+
? Number(process.env[constant_1.ENV_NETWORK_RESOLVE_TIMEOUT])
|
|
15
|
+
: (0, ms_1.default)('10s');
|
|
16
|
+
exports.getNetworkResolveTimeout = getNetworkResolveTimeout;
|
|
17
|
+
const getNetworkConcurrency = () => process.env[constant_1.ENV_SURGIO_NETWORK_CONCURRENCY]
|
|
18
|
+
? Number(process.env[constant_1.ENV_SURGIO_NETWORK_CONCURRENCY])
|
|
19
|
+
: 5;
|
|
20
|
+
exports.getNetworkConcurrency = getNetworkConcurrency;
|
|
21
|
+
const getNetworkRetry = () => process.env[constant_1.ENV_SURGIO_NETWORK_RETRY]
|
|
22
|
+
? Number(process.env[constant_1.ENV_SURGIO_NETWORK_RETRY])
|
|
23
|
+
: 3;
|
|
24
|
+
exports.getNetworkRetry = getNetworkRetry;
|
|
25
|
+
const getNetworkClashUA = () => { var _a; return (_a = process.env[constant_1.ENV_SURGIO_NETWORK_CLASH_UA]) !== null && _a !== void 0 ? _a : 'clash'; };
|
|
26
|
+
exports.getNetworkClashUA = getNetworkClashUA;
|
|
27
|
+
const getRemoteSnippetCacheMaxage = () => process.env[constant_1.ENV_SURGIO_REMOTE_SNIPPET_CACHE_MAXAGE]
|
|
28
|
+
? Number(process.env[constant_1.ENV_SURGIO_REMOTE_SNIPPET_CACHE_MAXAGE])
|
|
29
|
+
: (0, ms_1.default)('12h');
|
|
30
|
+
exports.getRemoteSnippetCacheMaxage = getRemoteSnippetCacheMaxage;
|
|
31
|
+
const getProviderCacheMaxage = () => process.env[constant_1.ENV_SURGIO_PROVIDER_CACHE_MAXAGE]
|
|
32
|
+
? Number(process.env[constant_1.ENV_SURGIO_PROVIDER_CACHE_MAXAGE])
|
|
33
|
+
: (0, ms_1.default)('10m');
|
|
34
|
+
exports.getProviderCacheMaxage = getProviderCacheMaxage;
|
|
35
|
+
const getSurgeVmessAEADDisabled = () => {
|
|
36
|
+
const value = process.env[constant_1.ENV_SURGIO_DISABLE_SURGE_VMESS_AEAD];
|
|
37
|
+
return value === 'true' || value === '1';
|
|
38
|
+
};
|
|
39
|
+
exports.getSurgeVmessAEADDisabled = getSurgeVmessAEADDisabled;
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LWZsYWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbHMvZW52LWZsYWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNENBQW9CO0FBRXBCLDBDQVNxQjtBQUVkLE1BQU0saUJBQWlCLEdBQUcsR0FBVyxFQUFFLENBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQXVCLENBQUM7SUFDbEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUF1QixDQUFDLENBQUM7SUFDOUMsQ0FBQyxDQUFDLElBQUEsWUFBRSxFQUFDLElBQUksQ0FBQyxDQUFDO0FBSEYsUUFBQSxpQkFBaUIscUJBR2Y7QUFFUixNQUFNLHdCQUF3QixHQUFHLEdBQVcsRUFBRSxDQUNuRCxPQUFPLENBQUMsR0FBRyxDQUFDLHNDQUEyQixDQUFDO0lBQ3RDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQ0FBMkIsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQyxJQUFBLFlBQUUsRUFBQyxLQUFLLENBQUMsQ0FBQztBQUhILFFBQUEsd0JBQXdCLDRCQUdyQjtBQUVULE1BQU0scUJBQXFCLEdBQUcsR0FBVyxFQUFFLENBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMseUNBQThCLENBQUM7SUFDekMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHlDQUE4QixDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUhLLFFBQUEscUJBQXFCLHlCQUcxQjtBQUVELE1BQU0sZUFBZSxHQUFHLEdBQVcsRUFBRSxDQUMxQyxPQUFPLENBQUMsR0FBRyxDQUFDLG1DQUF3QixDQUFDO0lBQ25DLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQ0FBd0IsQ0FBQyxDQUFDO0lBQy9DLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFISyxRQUFBLGVBQWUsbUJBR3BCO0FBRUQsTUFBTSxpQkFBaUIsR0FBRyxHQUFXLEVBQUUsV0FDNUMsT0FBQSxNQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0NBQTJCLENBQUMsbUNBQUksT0FBTyxDQUFBLEVBQUEsQ0FBQztBQUR6QyxRQUFBLGlCQUFpQixxQkFDd0I7QUFFL0MsTUFBTSwyQkFBMkIsR0FBRyxHQUFXLEVBQUUsQ0FDdEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpREFBc0MsQ0FBQztJQUNqRCxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaURBQXNDLENBQUMsQ0FBQztJQUM3RCxDQUFDLENBQUMsSUFBQSxZQUFFLEVBQUMsS0FBSyxDQUFDLENBQUM7QUFISCxRQUFBLDJCQUEyQiwrQkFHeEI7QUFFVCxNQUFNLHNCQUFzQixHQUFHLEdBQVcsRUFBRSxDQUNqRCxPQUFPLENBQUMsR0FBRyxDQUFDLDJDQUFnQyxDQUFDO0lBQzNDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQ0FBZ0MsQ0FBQyxDQUFDO0lBQ3ZELENBQUMsQ0FBQyxJQUFBLFlBQUUsRUFBQyxLQUFLLENBQUMsQ0FBQztBQUhILFFBQUEsc0JBQXNCLDBCQUduQjtBQUVULE1BQU0seUJBQXlCLEdBQUcsR0FBWSxFQUFFO0lBQ3JELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsOENBQW1DLENBQUMsQ0FBQztJQUMvRCxPQUFPLEtBQUssS0FBSyxNQUFNLElBQUksS0FBSyxLQUFLLEdBQUcsQ0FBQztBQUMzQyxDQUFDLENBQUM7QUFIVyxRQUFBLHlCQUF5Qiw2QkFHcEMifQ==
|