surgio 2.10.0 → 2.11.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/check.js +4 -4
- package/build/command/doctor.js +5 -5
- package/build/command/generate.js +4 -4
- package/build/command/lint.js +3 -3
- package/build/command/new.js +4 -4
- package/build/command/subscriptions.js +8 -7
- package/build/command/upload.js +3 -3
- package/build/generate.js +4 -4
- package/build/generator/artifact.d.ts +2 -1
- package/build/generator/artifact.js +19 -18
- package/build/generator/template.js +11 -17
- package/build/index.js +12 -8
- package/build/misc/flag_cn.d.ts +1 -0
- package/build/misc/flag_cn.js +3 -2
- package/build/provider/BlackSSLProvider.js +4 -4
- package/build/provider/ClashProvider.js +15 -51
- package/build/provider/CustomProvider.js +3 -5
- package/build/provider/Provider.d.ts +4 -0
- package/build/provider/Provider.js +34 -6
- package/build/provider/ShadowsocksJsonSubscribeProvider.js +4 -4
- package/build/provider/ShadowsocksSubscribeProvider.js +10 -26
- package/build/provider/ShadowsocksrSubscribeProvider.js +11 -26
- package/build/provider/SsdProvider.js +11 -27
- 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 +39 -22
- package/build/provider/index.d.ts +3 -9
- package/build/provider/index.js +4 -1
- package/build/provider/types.d.ts +9 -0
- package/build/provider/types.js +3 -0
- package/build/types.d.ts +7 -1
- package/build/types.js +2 -1
- package/build/utils/config.js +12 -14
- package/build/utils/constant.js +5 -5
- package/build/utils/dns.js +6 -17
- package/build/utils/error-helper.js +1 -1
- package/build/utils/filter.js +3 -3
- package/build/utils/flag.js +4 -4
- package/build/utils/http-client.js +2 -2
- package/build/utils/index.d.ts +1 -0
- package/build/utils/index.js +53 -50
- package/build/utils/linter.js +3 -3
- package/build/utils/loon.js +5 -5
- package/build/utils/patch-proxy.js +3 -3
- package/build/utils/remote-snippet.js +10 -13
- package/build/utils/ss.js +4 -4
- package/build/utils/ssr.js +7 -7
- package/build/utils/subscription.js +7 -7
- 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 +22 -20
|
@@ -4,18 +4,15 @@ 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
|
-
const logger = logger_1.createLogger({
|
|
15
|
+
const logger = (0, logger_1.createLogger)({
|
|
19
16
|
service: 'surgio:SsdProvider',
|
|
20
17
|
});
|
|
21
18
|
class SsdProvider extends Provider_1.default {
|
|
@@ -40,46 +37,33 @@ class SsdProvider extends Provider_1.default {
|
|
|
40
37
|
}
|
|
41
38
|
// istanbul ignore next
|
|
42
39
|
get url() {
|
|
43
|
-
return relayable_url_1.default(this._url, this.relayUrl);
|
|
40
|
+
return (0, relayable_url_1.default)(this._url, this.relayUrl);
|
|
44
41
|
}
|
|
45
42
|
async getSubscriptionUserInfo() {
|
|
46
|
-
const { subscriptionUserinfo } = await exports.getSsdSubscription(this.url, this.udpRelay);
|
|
43
|
+
const { subscriptionUserinfo } = await (0, exports.getSsdSubscription)(this.url, this.udpRelay);
|
|
47
44
|
if (subscriptionUserinfo) {
|
|
48
45
|
return subscriptionUserinfo;
|
|
49
46
|
}
|
|
50
47
|
return void 0;
|
|
51
48
|
}
|
|
52
49
|
async getNodeList() {
|
|
53
|
-
const { nodeList } = await exports.getSsdSubscription(this.url, this.udpRelay);
|
|
50
|
+
const { nodeList } = await (0, exports.getSsdSubscription)(this.url, this.udpRelay);
|
|
54
51
|
return nodeList;
|
|
55
52
|
}
|
|
56
53
|
}
|
|
57
54
|
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
|
-
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 = 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
|
-
})();
|
|
57
|
+
(0, assert_1.default)(url, '未指定订阅地址 url');
|
|
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} 无法处理`);
|
|
78
62
|
}
|
|
79
63
|
const base64 = response.body.replace('ssd://', '');
|
|
80
|
-
const data = JSON.parse(utils_1.fromBase64(base64));
|
|
64
|
+
const data = JSON.parse((0, utils_1.fromBase64)(base64));
|
|
81
65
|
const { servers, traffic_used, traffic_total, expiry } = data;
|
|
82
|
-
const nodeList = servers.map((server) => exports.parseSsdConfig(data, server, udpRelay));
|
|
66
|
+
const nodeList = servers.map((server) => (0, exports.parseSsdConfig)(data, server, udpRelay));
|
|
83
67
|
if (!response.subscriptionUserinfo &&
|
|
84
68
|
traffic_used &&
|
|
85
69
|
traffic_total &&
|
|
@@ -103,7 +87,7 @@ const parseSsdConfig = (globalConfig, server, udpRelay) => {
|
|
|
103
87
|
const plugin = (_a = server.plugin) !== null && _a !== void 0 ? _a : globalConfig.plugin;
|
|
104
88
|
const pluginOptsString = (_b = server.plugin_options) !== null && _b !== void 0 ? _b : globalConfig.plugin_options;
|
|
105
89
|
const pluginOpts = pluginOptsString
|
|
106
|
-
? utils_1.decodeStringList(pluginOptsString.split(';'))
|
|
90
|
+
? (0, utils_1.decodeStringList)(pluginOptsString.split(';'))
|
|
107
91
|
: {};
|
|
108
92
|
// istanbul ignore next
|
|
109
93
|
if (plugin && !['simple-obfs', 'v2ray-plugin'].includes(plugin)) {
|
|
@@ -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) {
|
|
@@ -40,10 +41,10 @@ class V2rayNSubscribeProvider extends Provider_1.default {
|
|
|
40
41
|
}
|
|
41
42
|
// istanbul ignore next
|
|
42
43
|
get url() {
|
|
43
|
-
return relayable_url_1.default(this._url, this.relayUrl);
|
|
44
|
+
return (0, relayable_url_1.default)(this._url, this.relayUrl);
|
|
44
45
|
}
|
|
45
46
|
getNodeList() {
|
|
46
|
-
return exports.getV2rayNSubscription(this.url, this.compatibleMode, this.skipCertVerify, this.udpRelay, this.tls13);
|
|
47
|
+
return (0, exports.getV2rayNSubscription)(this.url, this.compatibleMode, this.skipCertVerify, this.udpRelay, this.tls13);
|
|
47
48
|
}
|
|
48
49
|
}
|
|
49
50
|
exports.default = V2rayNSubscribeProvider;
|
|
@@ -51,7 +52,7 @@ exports.default = V2rayNSubscribeProvider;
|
|
|
51
52
|
* @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)
|
|
52
53
|
*/
|
|
53
54
|
const getV2rayNSubscription = async (url, isCompatibleMode, skipCertVerify, udpRelay, tls13) => {
|
|
54
|
-
assert_1.default(url, '未指定订阅地址 url');
|
|
55
|
+
(0, assert_1.default)(url, '未指定订阅地址 url');
|
|
55
56
|
if (isCompatibleMode) {
|
|
56
57
|
logger_1.logger.warn('运行在兼容模式,请注意生成的节点是否正确。');
|
|
57
58
|
}
|
|
@@ -63,32 +64,48 @@ const getV2rayNSubscription = async (url, isCompatibleMode, skipCertVerify, udpR
|
|
|
63
64
|
cache_1.ConfigCache.set(url, res.body);
|
|
64
65
|
return res.body;
|
|
65
66
|
})();
|
|
66
|
-
const configList = utils_1.fromBase64(response)
|
|
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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
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import ShadowsocksJsonSubscribeProvider from './ShadowsocksJsonSubscribeProvider';
|
|
5
|
-
import ShadowsocksrSubscribeProvider from './ShadowsocksrSubscribeProvider';
|
|
6
|
-
import ShadowsocksSubscribeProvider from './ShadowsocksSubscribeProvider';
|
|
7
|
-
import SsdProvider from './SsdProvider';
|
|
8
|
-
import V2rayNSubscribeProvider from './V2rayNSubscribeProvider';
|
|
9
|
-
export declare function getProvider(name: string, config: any): Promise<BlackSSLProvider | ShadowsocksJsonSubscribeProvider | ShadowsocksSubscribeProvider | CustomProvider | V2rayNSubscribeProvider | ShadowsocksrSubscribeProvider | ClashProvider | SsdProvider>;
|
|
1
|
+
import { PossibleProviderType } from './types';
|
|
2
|
+
export { PossibleProviderType };
|
|
3
|
+
export declare function getProvider(name: string, config: any): Promise<PossibleProviderType>;
|
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=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import BlackSSLProvider from './BlackSSLProvider';
|
|
2
|
+
import ClashProvider from './ClashProvider';
|
|
3
|
+
import CustomProvider from './CustomProvider';
|
|
4
|
+
import ShadowsocksJsonSubscribeProvider from './ShadowsocksJsonSubscribeProvider';
|
|
5
|
+
import ShadowsocksrSubscribeProvider from './ShadowsocksrSubscribeProvider';
|
|
6
|
+
import ShadowsocksSubscribeProvider from './ShadowsocksSubscribeProvider';
|
|
7
|
+
import SsdProvider from './SsdProvider';
|
|
8
|
+
import V2rayNSubscribeProvider from './V2rayNSubscribeProvider';
|
|
9
|
+
export declare type PossibleProviderType = BlackSSLProvider | ShadowsocksJsonSubscribeProvider | ShadowsocksSubscribeProvider | CustomProvider | V2rayNSubscribeProvider | ShadowsocksrSubscribeProvider | ClashProvider | SsdProvider;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJvdmlkZXIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
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/config.js
CHANGED
|
@@ -4,7 +4,7 @@ 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"));
|
|
@@ -14,36 +14,36 @@ const deprecation_1 = require("../misc/deprecation");
|
|
|
14
14
|
const constant_1 = require("./constant");
|
|
15
15
|
const flag_1 = require("./flag");
|
|
16
16
|
const index_1 = require("./index");
|
|
17
|
-
const showDEP005 = util_1.deprecate(lodash_1.default.noop, deprecation_1.DEP005, 'DEP005');
|
|
18
|
-
const showDEP006 = util_1.deprecate(lodash_1.default.noop, deprecation_1.DEP006, 'DEP006');
|
|
17
|
+
const showDEP005 = (0, util_1.deprecate)(lodash_1.default.noop, deprecation_1.DEP005, 'DEP005');
|
|
18
|
+
const showDEP006 = (0, util_1.deprecate)(lodash_1.default.noop, deprecation_1.DEP006, 'DEP006');
|
|
19
19
|
const loadConfig = (cwd, configPath, override) => {
|
|
20
20
|
const absPath = path_1.default.resolve(cwd, configPath);
|
|
21
21
|
if (!fs_extra_1.default.existsSync(absPath)) {
|
|
22
22
|
throw new Error(`配置文件 ${absPath} 不存在`);
|
|
23
23
|
}
|
|
24
24
|
const userConfig = lodash_1.default.cloneDeep(require(absPath));
|
|
25
|
-
exports.validateConfig(userConfig);
|
|
25
|
+
(0, exports.validateConfig)(userConfig);
|
|
26
26
|
if (userConfig.flags) {
|
|
27
27
|
Object.keys(userConfig.flags).forEach((emoji) => {
|
|
28
28
|
if (userConfig.flags) {
|
|
29
29
|
if (typeof userConfig.flags[emoji] === 'string') {
|
|
30
|
-
flag_1.addFlagMap(userConfig.flags[emoji], emoji);
|
|
30
|
+
(0, flag_1.addFlagMap)(userConfig.flags[emoji], emoji);
|
|
31
31
|
}
|
|
32
32
|
else if (lodash_1.default.isRegExp(userConfig.flags[emoji])) {
|
|
33
|
-
flag_1.addFlagMap(userConfig.flags[emoji], emoji);
|
|
33
|
+
(0, flag_1.addFlagMap)(userConfig.flags[emoji], emoji);
|
|
34
34
|
}
|
|
35
35
|
else {
|
|
36
36
|
userConfig.flags[emoji].forEach((name) => {
|
|
37
|
-
flag_1.addFlagMap(name, emoji);
|
|
37
|
+
(0, flag_1.addFlagMap)(name, emoji);
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
if (override) {
|
|
44
|
-
return Object.assign(Object.assign({}, exports.normalizeConfig(cwd, userConfig)), override);
|
|
44
|
+
return Object.assign(Object.assign({}, (0, exports.normalizeConfig)(cwd, userConfig)), override);
|
|
45
45
|
}
|
|
46
|
-
return exports.normalizeConfig(cwd, userConfig);
|
|
46
|
+
return (0, exports.normalizeConfig)(cwd, userConfig);
|
|
47
47
|
};
|
|
48
48
|
exports.loadConfig = loadConfig;
|
|
49
49
|
const normalizeConfig = (cwd, userConfig) => {
|
|
@@ -54,7 +54,7 @@ const normalizeConfig = (cwd, userConfig) => {
|
|
|
54
54
|
output: path_1.default.join(cwd, './dist'),
|
|
55
55
|
templateDir: path_1.default.join(cwd, './template'),
|
|
56
56
|
providerDir: path_1.default.join(cwd, './provider'),
|
|
57
|
-
configDir: index_1.ensureConfigFolder(),
|
|
57
|
+
configDir: (0, index_1.ensureConfigFolder)(),
|
|
58
58
|
surgeConfig: {
|
|
59
59
|
shadowsocksFormat: 'ss',
|
|
60
60
|
v2ray: 'native',
|
|
@@ -119,9 +119,7 @@ const validateConfig = (userConfig) => {
|
|
|
119
119
|
surgioSnippet: joi_1.default.boolean().strict(),
|
|
120
120
|
});
|
|
121
121
|
const schema = joi_1.default.object({
|
|
122
|
-
artifacts: joi_1.default.array()
|
|
123
|
-
.items(artifactSchema)
|
|
124
|
-
.required(),
|
|
122
|
+
artifacts: joi_1.default.array().items(artifactSchema).required(),
|
|
125
123
|
remoteSnippets: joi_1.default.array().items(remoteSnippetSchema),
|
|
126
124
|
urlBase: joi_1.default.string(),
|
|
127
125
|
upload: joi_1.default.object({
|
|
@@ -175,4 +173,4 @@ const validateConfig = (userConfig) => {
|
|
|
175
173
|
}
|
|
176
174
|
};
|
|
177
175
|
exports.validateConfig = validateConfig;
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL3V0aWxzL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4Q0FBc0I7QUFDdEIsd0RBQTBCO0FBQzFCLG9EQUF1QjtBQUN2QixnREFBd0I7QUFDeEIsNkJBQTBCO0FBQzFCLCtCQUFpQztBQUNqQyxxREFBcUQ7QUFHckQseUNBQWlFO0FBQ2pFLGlDQUFvQztBQUNwQyxtQ0FBNkM7QUFFN0MsTUFBTSxVQUFVLEdBQUcsSUFBQSxnQkFBUyxFQUFDLGdCQUFDLENBQUMsSUFBSSxFQUFFLG9CQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDdkQsTUFBTSxVQUFVLEdBQUcsSUFBQSxnQkFBUyxFQUFDLGdCQUFDLENBQUMsSUFBSSxFQUFFLG9CQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFFaEQsTUFBTSxVQUFVLEdBQUcsQ0FDeEIsR0FBVyxFQUNYLFVBQWtCLEVBQ2xCLFFBQWlDLEVBQ2xCLEVBQUU7SUFDakIsTUFBTSxPQUFPLEdBQUcsY0FBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFOUMsSUFBSSxDQUFDLGtCQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxPQUFPLE1BQU0sQ0FBQyxDQUFDO0tBQ3hDO0lBRUQsTUFBTSxVQUFVLEdBQUcsZ0JBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFakQsSUFBQSxzQkFBYyxFQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTNCLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRTtRQUNwQixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM5QyxJQUFJLFVBQVUsQ0FBQyxLQUFL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
|
package/build/utils/constant.js
CHANGED
|
@@ -9,11 +9,11 @@ exports.TMP_FOLDER_NAME = exports.ERR_INVALID_FILTER = exports.RELAY_SERVICE = e
|
|
|
9
9
|
const ms_1 = __importDefault(require("ms"));
|
|
10
10
|
exports.NETWORK_TIMEOUT = process.env.SURGIO_NETWORK_TIMEOUT
|
|
11
11
|
? Number(process.env.SURGIO_NETWORK_TIMEOUT)
|
|
12
|
-
: ms_1.default('5s');
|
|
12
|
+
: (0, ms_1.default)('5s');
|
|
13
13
|
exports.NETWORK_RESOLVE_TIMEOUT = process.env
|
|
14
14
|
.SURGIO_NETWORK_RESOLVE_TIMEOUT
|
|
15
15
|
? Number(process.env.SURGIO_NETWORK_RESOLVE_TIMEOUT)
|
|
16
|
-
: ms_1.default('10s');
|
|
16
|
+
: (0, ms_1.default)('10s');
|
|
17
17
|
exports.NETWORK_CONCURRENCY = process.env.SURGIO_NETWORK_CONCURRENCY
|
|
18
18
|
? Number(process.env.SURGIO_NETWORK_CONCURRENCY)
|
|
19
19
|
: 5;
|
|
@@ -77,11 +77,11 @@ exports.MELLOW_UNSUPPORTED_RULE = [
|
|
|
77
77
|
exports.REMOTE_SNIPPET_CACHE_MAXAGE = process.env
|
|
78
78
|
.SURGIO_REMOTE_SNIPPET_CACHE_MAXAGE
|
|
79
79
|
? Number(process.env.SURGIO_REMOTE_SNIPPET_CACHE_MAXAGE)
|
|
80
|
-
: ms_1.default('12h');
|
|
80
|
+
: (0, ms_1.default)('12h');
|
|
81
81
|
exports.PROVIDER_CACHE_MAXAGE = process.env
|
|
82
82
|
.SURGIO_PROVIDER_CACHE_MAXAGE
|
|
83
83
|
? Number(process.env.SURGIO_PROVIDER_CACHE_MAXAGE)
|
|
84
|
-
: ms_1.default('10m');
|
|
84
|
+
: (0, ms_1.default)('10m');
|
|
85
85
|
exports.CATEGORIES = {
|
|
86
86
|
SNIPPET: 'Snippet',
|
|
87
87
|
SURGE: 'Surge',
|
|
@@ -95,4 +95,4 @@ exports.CATEGORIES = {
|
|
|
95
95
|
exports.RELAY_SERVICE = 'https://surgio-cors.herokuapp.com/';
|
|
96
96
|
exports.ERR_INVALID_FILTER = '传入的过滤器无效,请检查语法和变量名是否正确';
|
|
97
97
|
exports.TMP_FOLDER_NAME = 'surgio-config';
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbHMvY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVCQUF1Qjs7Ozs7OztBQUV2Qiw0Q0FBb0I7QUFFUCxRQUFBLGVBQWUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQjtJQUMvRCxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUM7SUFDNUMsQ0FBQyxDQUFDLElBQUEsWUFBRSxFQUFDLElBQUksQ0FBQyxDQUFDO0FBRUEsUUFBQSx1QkFBdUIsR0FBRyxPQUFPLENBQUMsR0FBRztLQUMvQyw4QkFBOEI7SUFDL0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDO0lBQ3BELENBQUMsQ0FBQyxJQUFBLFlBQUUsRUFBQyxLQUFLLENBQUMsQ0FBQztBQUVELFFBQUEsbUJBQW1CLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEI7SUFDdkUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDO0lBQ2hELENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFTyxRQUFBLGFBQWEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQjtJQUMzRCxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUM7SUFDMUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVPLFFBQUEsZ0JBQWdCLEdBQUcsTUFBQSxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixtQ0FBSSxPQUFPLENBQUM7QUFFbEUsUUFBQSxpQkFBaUIsR0FBRyxRQUFRLENBQUM7QUFFN0IsUUFBQSxPQUFPLEdBQ2xCLDJJQUEySSxDQUFDO0FBRWpJLFFBQUEsY0FBYyxHQUFHLHVDQUF1QyxDQUFDO0FBRXpELFFBQUEsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLENBQUMsUUFBUTtBQUVwQyxRQUFBLG9CQUFvQixHQUEwQjtJQUN6RCxlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLFFBQVE7SUFDUixhQUFhO0lBQ2IsU0FBUztJQUNULFVBQVU7SUFDVixPQUFPO0lBQ1AsVUFBVTtJQUNWLFVBQVU7SUFDVixPQUFPO0lBQ1AsT0FBTztJQUNQLGNBQWM7Q0FDZixDQUFDO0FBRVcsUUFBQSwyQkFBMkIsR0FBMEI7SUFDaEUsWUFBWTtJQUNaLE1BQU07SUFDTixjQUFjO0lBQ2QsYUFBYTtJQUNiLFFBQVE7SUFDUixlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLFNBQVM7SUFDVCxVQUFVO0lBQ1YsT0FBTztJQUNQLE9BQU87Q0FDUixDQUFDO0FBRUYsZ0VBQWdFO0FBQ25ELFFBQUEsbUJBQW1CLEdBQTBCO0lBQ3hELGVBQWU7SUFDZixRQUFRO0lBQ1IsZ0JBQWdCO0lBQ2hCLFlBQVk7SUFDWixXQUFXO0lBQ1gsU0FBUztJQUNULE9BQU87SUFDUCxPQUFPO0NBQ1IsQ0FBQztBQUVXLFFBQUEsdUJBQXVCLEdBQTBCO0lBQzVELFdBQVc7SUFDWCxZQUFZO0lBQ1osS0FBSztJQUNMLElBQUk7SUFDSixLQUFLO0lBQ0wsV0FBVztJQUNYLFNBQVM7SUFDVCxRQUFRO0lBQ1IsVUFBVTtDQUNYLENBQUM7QUFFVyxRQUFBLDJCQUEyQixHQUFXLE9BQU8sQ0FBQyxHQUFHO0tBQzNELGtDQUFrQztJQUNuQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQWtDLENBQUM7SUFDeEQsQ0FBQyxDQUFDLElBQUEsWUFBRSxFQUFDLEtBQUssQ0FBQyxDQUFDO0FBRUQsUUFBQSxxQkFBcUIsR0FBVyxPQUFPLENBQUMsR0FBRztLQUNyRCw0QkFBNEI7SUFDN0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDO0lBQ2xELENBQUMsQ0FBQyxJQUFBLFlBQUUsRUFBQyxLQUFLLENBQUMsQ0FBQztBQUVELFFBQUEsVUFBVSxHQUFHO0lBQ3hCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLEtBQUssRUFBRSxPQUFPO0lBQ2QsWUFBWSxFQUFFLGNBQWM7SUFDNUIsbUJBQW1CLEVBQUUscUJBQXFCO0lBQzFDLG1CQUFtQixFQUFFLHFCQUFxQjtJQUMxQyxvQkFBb0IsRUFBRSxzQkFBc0I7SUFDNUMsS0FBSyxFQUFFLE9BQU87SUFDZCxJQUFJLEVBQUUsTUFBTTtDQUNiLENBQUM7QUFFVyxRQUFBLGFBQWEsR0FBRyxvQ0FBb0MsQ0FBQztBQUVyRCxRQUFBLGtCQUFrQixHQUM3Qix3QkFBd0IsQ0FBQztBQUVkLFFBQUEsZUFBZSxHQUFHLGVBQWUsQ0FBQyJ9
|