surgio 2.18.3 → 2.19.0-1
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 +27 -0
- package/build/command/check.js +7 -11
- package/build/command/clean-cache.d.ts +1 -1
- package/build/command/clean-cache.js +10 -2
- package/build/command/doctor.js +6 -14
- package/build/command/generate.js +10 -12
- package/build/command/lint.js +1 -1
- package/build/command/new.js +4 -12
- package/build/command/subscriptions.js +5 -10
- package/build/command/upload.js +9 -13
- package/build/constant/constant.d.ts +4 -0
- package/build/constant/constant.js +6 -2
- package/build/generator/template.d.ts +1 -1
- package/build/index.d.ts +7 -1
- package/build/index.js +12 -13
- package/build/misc/flag_cn.d.ts +3 -1
- package/build/misc/flag_cn.js +7 -5
- package/build/provider/ClashProvider.d.ts +1 -1
- package/build/provider/Provider.js +47 -24
- package/build/provider/ShadowsocksJsonSubscribeProvider.d.ts +1 -1
- package/build/provider/ShadowsocksSubscribeProvider.d.ts +1 -1
- package/build/provider/ShadowsocksrSubscribeProvider.d.ts +1 -1
- package/build/provider/SsdProvider.d.ts +2 -2
- package/build/redis.d.ts +9 -0
- package/build/redis.js +61 -0
- package/build/types.d.ts +8 -1
- package/build/utils/cache.d.ts +13 -1
- package/build/utils/cache.js +41 -3
- package/build/utils/clash.d.ts +2 -2
- package/build/utils/command.d.ts +2 -0
- package/build/utils/command.js +23 -0
- package/build/utils/config.d.ts +3 -1
- package/build/utils/config.js +41 -3
- package/build/utils/filter.d.ts +4 -4
- package/build/utils/http-client.d.ts +1 -1
- package/build/utils/index.d.ts +8 -5
- package/build/utils/index.js +22 -5
- package/build/utils/linter.d.ts +1 -1
- package/build/utils/loon.d.ts +1 -1
- package/build/utils/patch-proxy.js +2 -7
- package/build/utils/quantumult.d.ts +2 -2
- package/build/utils/remote-snippet.d.ts +1 -1
- package/build/utils/remote-snippet.js +8 -5
- package/build/utils/ss.js +13 -15
- package/build/utils/ssr.js +4 -7
- package/build/utils/surge.d.ts +1 -1
- package/build/utils/tmp-helper.d.ts +21 -7
- package/build/utils/tmp-helper.js +47 -16
- package/build/utils/trojan.js +4 -7
- package/build/utils/v2ray.d.ts +1 -1
- package/build/utils/v2ray.js +6 -8
- package/package.json +10 -20
package/build/misc/flag_cn.js
CHANGED
|
@@ -44,11 +44,13 @@ exports.default = {
|
|
|
44
44
|
'🇫🇮': ['FINLAND', '芬兰', '赫尔辛基'],
|
|
45
45
|
'🇫🇷': ['FR', 'FRANCE', '法国', '法國', '巴黎'],
|
|
46
46
|
'🇬🇧': ['UK', 'ENGLAND', 'UNITED KINGDOM', '英', '伦敦'],
|
|
47
|
+
'🇺🇦': ['UKRAINE', '乌克兰', '基辅'],
|
|
47
48
|
'🇭🇺': ['HUNGARY', '匈牙利'],
|
|
48
49
|
'🇭🇰': ['HK', '港', 'HONGKONG', 'HONG KONG', 'HGC', 'WTT', 'CMI'],
|
|
50
|
+
'🇮🇳': ['INDIA', '印度', '孟买', 'MUMBAI'],
|
|
49
51
|
'🇮🇩': ['INDONESIA', '印尼', '印度尼西亚', '雅加达'],
|
|
50
52
|
'🇮🇪': ['IRELAND', '爱尔兰', '都柏林'],
|
|
51
|
-
'
|
|
53
|
+
'🇮🇱': ['ISRAEL', '以色列'],
|
|
52
54
|
'🇮🇹': ['ITALY', 'NACHASH', '意大利', '米兰', '義大利'],
|
|
53
55
|
'🇰🇵': ['朝鲜'],
|
|
54
56
|
'🇰🇷': ['KR', 'KOREA', 'KOR', '首尔', '韩', '韓'],
|
|
@@ -72,7 +74,7 @@ exports.default = {
|
|
|
72
74
|
'京俄',
|
|
73
75
|
'杭俄',
|
|
74
76
|
],
|
|
75
|
-
'🇸🇦': ['SAUDI', '沙特'
|
|
77
|
+
'🇸🇦': ['SAUDI', '沙特'],
|
|
76
78
|
'🇸🇪': ['SWEDEN', '瑞典'],
|
|
77
79
|
'🇸🇬': [
|
|
78
80
|
'SG',
|
|
@@ -117,8 +119,8 @@ exports.default = {
|
|
|
117
119
|
],
|
|
118
120
|
'🇻🇳': ['VIETNAM', '越南', '胡志明'],
|
|
119
121
|
'🇿🇦': ['SOUTH AFRICA', '南非'],
|
|
120
|
-
'🇦🇪': ['UNITED ARAB EMIRATES', '阿联酋'],
|
|
121
|
-
'🇯🇵': ['JP', 'JAPAN', '日', '东京', '大阪', '埼玉'],
|
|
122
|
+
'🇦🇪': ['UNITED ARAB EMIRATES', '阿联酋', '迪拜'],
|
|
123
|
+
'🇯🇵': ['JP', 'JAPAN', '日', '东京', '大阪', '埼玉', 'NTT', 'KDDI'],
|
|
122
124
|
'🇳🇴': ['NORWAY', '挪威'],
|
|
123
125
|
'🇨🇳': [
|
|
124
126
|
...exports.TAIWAN,
|
|
@@ -140,4 +142,4 @@ exports.default = {
|
|
|
140
142
|
'BACK',
|
|
141
143
|
],
|
|
142
144
|
};
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhZ19jbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9taXNjL2ZsYWdfY24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVCQUF1QjtBQUN2Qix5Q0FBeUM7QUFDekMsdUdBQXVHOzs7QUFFMUYsUUFBQSxNQUFNLEdBQTBCO0lBQzNDLElBQUk7SUFDSixRQUFRO0lBQ1IsSUFBSTtJQUNKLEdBQUc7SUFDSCxHQUFHO0lBQ0gsSUFBSTtJQUNKLElBQUk7SUFDSixLQUFLO0lBQ0wsT0FBTztDQUNSLENBQUM7QUFFRixrQkFBZTtJQUNiLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxRQUFRLENBQUM7SUFDbkQsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUN0QixNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO0lBQzVCLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO0lBQ2pDLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDO0lBQzFELE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7SUFDMUIsTUFBTSxFQUFFLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUM1QixNQUFNLEVBQUUsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQzVCLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDO0lBQy9CLE1BQU0sRUFBRTtRQUNOLFFBQVE7UUFDUixLQUFLO1FBQ0wsVUFBVTtRQUNWLE1BQU07UUFDTixLQUFLO1FBQ0wsSUFBSTtRQUNKLElBQUk7UUFDSixLQUFLO1FBQ0wsS0FBSztLQUNOO0lBQ0QsTUFBTSxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxLQUFL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
|
|
@@ -23,5 +23,5 @@ export declare const getClashSubscription: ({ url, udpRelay, tls13, requestUserA
|
|
|
23
23
|
readonly nodeList: ReadonlyArray<SupportConfigTypes>;
|
|
24
24
|
readonly subscriptionUserinfo?: SubscriptionUserinfo;
|
|
25
25
|
}>;
|
|
26
|
-
export declare const parseClashConfig: (proxyList: ReadonlyArray<any>, udpRelay?: boolean
|
|
26
|
+
export declare const parseClashConfig: (proxyList: ReadonlyArray<any>, udpRelay?: boolean, tls13?: boolean) => ReadonlyArray<SupportConfigTypes>;
|
|
27
27
|
export {};
|
|
@@ -28,8 +28,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
const logger_1 = require("@surgio/logger");
|
|
30
30
|
const joi_1 = __importDefault(require("joi"));
|
|
31
|
+
const constant_1 = require("../constant");
|
|
31
32
|
const types_1 = require("../types");
|
|
32
33
|
const cache_1 = require("../utils/cache");
|
|
34
|
+
const config_1 = require("../utils/config");
|
|
35
|
+
const env_flag_1 = require("../utils/env-flag");
|
|
33
36
|
const http_client_1 = __importStar(require("../utils/http-client"));
|
|
34
37
|
const subscription_1 = require("../utils/subscription");
|
|
35
38
|
const utils_1 = require("../utils");
|
|
@@ -93,29 +96,49 @@ class Provider {
|
|
|
93
96
|
});
|
|
94
97
|
}
|
|
95
98
|
static async requestCacheableResource(url, options = {}) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
99
|
+
var _a, _b;
|
|
100
|
+
const cacheType = ((_b = (_a = (0, config_1.getConfig)()) === null || _a === void 0 ? void 0 : _a.cache) === null || _b === void 0 ? void 0 : _b.type) || 'default';
|
|
101
|
+
const cacheKey = `${constant_1.CACHE_KEYS.Provider}:${(0, utils_1.toMD5)((0, http_client_1.getUserAgent)(options.requestUserAgent || '') + url)}`;
|
|
102
|
+
const requestResource = async () => {
|
|
103
|
+
const headers = {};
|
|
104
|
+
if (options.requestUserAgent) {
|
|
105
|
+
headers['user-agent'] = (0, http_client_1.getUserAgent)(options.requestUserAgent);
|
|
106
|
+
}
|
|
107
|
+
const res = await http_client_1.default.get(url, {
|
|
108
|
+
responseType: 'text',
|
|
109
|
+
headers,
|
|
110
|
+
});
|
|
111
|
+
const subsciptionCacheItem = {
|
|
112
|
+
body: res.body,
|
|
113
|
+
};
|
|
114
|
+
if (res.headers['subscription-userinfo']) {
|
|
115
|
+
subsciptionCacheItem.subscriptionUserinfo = (0, subscription_1.parseSubscriptionUserInfo)(res.headers['subscription-userinfo']);
|
|
116
|
+
logger.debug('%s received subscription userinfo - raw: %s | parsed: %j', url, res.headers['subscription-userinfo'], subsciptionCacheItem.subscriptionUserinfo);
|
|
117
|
+
}
|
|
118
|
+
return subsciptionCacheItem;
|
|
119
|
+
};
|
|
120
|
+
if (cacheType === 'default') {
|
|
121
|
+
return cache_1.SubscriptionCache.has(cacheKey)
|
|
122
|
+
? cache_1.SubscriptionCache.get(cacheKey)
|
|
123
|
+
: await (async () => {
|
|
124
|
+
const subsciptionCacheItem = await requestResource();
|
|
125
|
+
cache_1.SubscriptionCache.set(cacheKey, subsciptionCacheItem);
|
|
126
|
+
return subsciptionCacheItem;
|
|
127
|
+
})();
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
const redisCache = new cache_1.RedisCache();
|
|
131
|
+
const cachedValue = await redisCache.getCache(cacheKey);
|
|
132
|
+
return cachedValue
|
|
133
|
+
? cachedValue
|
|
134
|
+
: await (async () => {
|
|
135
|
+
const subsciptionCacheItem = await requestResource();
|
|
136
|
+
await redisCache.setCache(cacheKey, subsciptionCacheItem, {
|
|
137
|
+
ttl: (0, utils_1.msToSeconds)((0, env_flag_1.getProviderCacheMaxage)()),
|
|
138
|
+
});
|
|
139
|
+
return subsciptionCacheItem;
|
|
140
|
+
})();
|
|
141
|
+
}
|
|
119
142
|
}
|
|
120
143
|
get nextPort() {
|
|
121
144
|
if (this.startPort) {
|
|
@@ -133,4 +156,4 @@ class Provider {
|
|
|
133
156
|
}
|
|
134
157
|
}
|
|
135
158
|
exports.default = Provider;
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJvdmlkZXIvUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUE4QztBQUM5Qyw4Q0FBc0I7QUFFdEIsMENBQXlDO0FBQ3pDLG9DQUtrQjtBQUNsQiwwQ0FJd0I7QUFDeEIsNENBQTRDO0FBQzVDLGdEQUEyRDtBQUMzRCxvRUFBZ0U7QUFDaEUsd0RBQWtFO0FBQ2xFLG9DQUE4QztBQUU5QyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEVBQUM7SUFDMUIsT0FBTyxFQUFFLGlCQUFpQjtDQUMzQixDQUFDLENBQUM7QUFFSCxNQUFxQixRQUFRO0lBa0IzQixZQUFtQixJQUFZLEVBQUUsTUFBc0I7UUFBcEMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUM3QixNQUFNLE1BQU0sR0FBRyxhQUFHLENBQUMsTUFBTSxDQUFDO1lBQ3hCLElBQUksRUFBRSxhQUFHLENBQUMsTUFBTSxFQUFFO2lCQUNmLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQVMsMkJBQW1CLENBQUMsQ0FBQztpQkFDcEQsUUFBUSxFQUFFO1lBQ2IsVUFBVSxFQUFFLGFBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQ3pCLGFBQUcsQ0FBQyxRQUFRLEVBQUUsRUFDZCxhQUFHLENBQUMsTUFBTSxDQUFDO2dCQUNULE1BQU0sRUFBRSxhQUFHLENBQUMsUUFBUSxFQUFFO2dCQUN0QixXQUFXLEVBQUUsYUFBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRTthQUNwQyxDQUFDLENBQ0g7WUFDRCxhQUFhLEVBQUUsYUFBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FDNUIsYUFBRyxDQUFDLFFBQVEsRUFBRSxFQUNkLGFBQUcsQ0FBQyxNQUFNLENBQUM7Z0JBQ1QsTUFBTSxFQUFFLGFBQUcsQ0FBQyxRQUFR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
|
|
@@ -9,4 +9,4 @@ export default class ShadowsocksJsonSubscribeProvider extends Provider {
|
|
|
9
9
|
requestUserAgent?: string;
|
|
10
10
|
}): ReturnType<typeof getShadowsocksJSONConfig>;
|
|
11
11
|
}
|
|
12
|
-
export declare const getShadowsocksJSONConfig: (url: string, udpRelay?: boolean
|
|
12
|
+
export declare const getShadowsocksJSONConfig: (url: string, udpRelay?: boolean, requestUserAgent?: string) => Promise<ReadonlyArray<ShadowsocksNodeConfig>>;
|
|
@@ -15,7 +15,7 @@ export default class ShadowsocksSubscribeProvider extends Provider {
|
|
|
15
15
|
/**
|
|
16
16
|
* @see https://shadowsocks.org/en/spec/SIP002-URI-Scheme.html
|
|
17
17
|
*/
|
|
18
|
-
export declare const getShadowsocksSubscription: (url: string, udpRelay?: boolean
|
|
18
|
+
export declare const getShadowsocksSubscription: (url: string, udpRelay?: boolean, requestUserAgent?: string) => Promise<{
|
|
19
19
|
readonly nodeList: ReadonlyArray<ShadowsocksNodeConfig>;
|
|
20
20
|
readonly subscriptionUserinfo?: SubscriptionUserinfo | undefined;
|
|
21
21
|
}>;
|
|
@@ -12,7 +12,7 @@ export default class ShadowsocksrSubscribeProvider extends Provider {
|
|
|
12
12
|
requestUserAgent?: string;
|
|
13
13
|
}): Promise<ReadonlyArray<ShadowsocksrNodeConfig>>;
|
|
14
14
|
}
|
|
15
|
-
export declare const getShadowsocksrSubscription: (url: string, udpRelay?: boolean
|
|
15
|
+
export declare const getShadowsocksrSubscription: (url: string, udpRelay?: boolean, requestUserAgent?: string) => Promise<{
|
|
16
16
|
readonly nodeList: ReadonlyArray<ShadowsocksrNodeConfig>;
|
|
17
17
|
readonly subscriptionUserinfo?: SubscriptionUserinfo | undefined;
|
|
18
18
|
}>;
|
|
@@ -12,11 +12,11 @@ export default class SsdProvider extends Provider {
|
|
|
12
12
|
requestUserAgent?: string;
|
|
13
13
|
}): Promise<ReadonlyArray<ShadowsocksNodeConfig>>;
|
|
14
14
|
}
|
|
15
|
-
export declare const getSsdSubscription: (url: string, udpRelay?: boolean
|
|
15
|
+
export declare const getSsdSubscription: (url: string, udpRelay?: boolean, requestUserAgent?: string) => Promise<{
|
|
16
16
|
readonly nodeList: ReadonlyArray<ShadowsocksNodeConfig>;
|
|
17
17
|
readonly subscriptionUserinfo?: SubscriptionUserinfo | undefined;
|
|
18
18
|
}>;
|
|
19
|
-
export declare const parseSsdConfig: (globalConfig: SsdSubscription, server: SsdServer, udpRelay?: boolean
|
|
19
|
+
export declare const parseSsdConfig: (globalConfig: SsdSubscription, server: SsdServer, udpRelay?: boolean) => ShadowsocksNodeConfig | undefined;
|
|
20
20
|
export interface SsdSubscription {
|
|
21
21
|
airport: string;
|
|
22
22
|
port: number;
|
package/build/redis.d.ts
ADDED
package/build/redis.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
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
|
+
const logger_1 = require("@surgio/logger");
|
|
7
|
+
const ioredis_1 = __importDefault(require("ioredis"));
|
|
8
|
+
const constant_1 = require("./constant");
|
|
9
|
+
const logger = (0, logger_1.createLogger)({ service: 'surgio:redis' });
|
|
10
|
+
const prepareRedis = () => {
|
|
11
|
+
let client = null;
|
|
12
|
+
let redisURL = null;
|
|
13
|
+
return {
|
|
14
|
+
hasRedis: () => !!client,
|
|
15
|
+
createRedis(_redisURL, customRedis) {
|
|
16
|
+
if (client && redisURL) {
|
|
17
|
+
logger.debug('Redis client already created with URL: %s', redisURL);
|
|
18
|
+
return client;
|
|
19
|
+
}
|
|
20
|
+
redisURL = _redisURL;
|
|
21
|
+
if (customRedis) {
|
|
22
|
+
client = new customRedis(_redisURL);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
client = new ioredis_1.default(_redisURL);
|
|
26
|
+
}
|
|
27
|
+
return client;
|
|
28
|
+
},
|
|
29
|
+
getRedis() {
|
|
30
|
+
if (!client) {
|
|
31
|
+
throw new Error('Redis client is not initialized');
|
|
32
|
+
}
|
|
33
|
+
return client;
|
|
34
|
+
},
|
|
35
|
+
async destroyRedis() {
|
|
36
|
+
if (client) {
|
|
37
|
+
await client.quit();
|
|
38
|
+
client = null;
|
|
39
|
+
redisURL = null;
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
async cleanCache() {
|
|
43
|
+
if (!client) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const keysToRemove = await Promise.all(Object.keys(constant_1.CACHE_KEYS).map((key) => {
|
|
47
|
+
if (!client)
|
|
48
|
+
return;
|
|
49
|
+
return client.keys(`${constant_1.CACHE_KEYS[key]}:*`);
|
|
50
|
+
}));
|
|
51
|
+
await Promise.all(keysToRemove.map((keys) => {
|
|
52
|
+
if (!client || !keys || !keys.length)
|
|
53
|
+
return;
|
|
54
|
+
return client.del(keys);
|
|
55
|
+
}));
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
const redis = prepareRedis();
|
|
60
|
+
exports.default = redis;
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvcmVkaXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyQ0FBOEM7QUFDOUMsc0RBQTRCO0FBRTVCLHlDQUF3QztBQUV4QyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEVBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztBQUV6RCxNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUU7SUFDeEIsSUFBSSxNQUFNLEdBQWlCLElBQUksQ0FBQztJQUNoQyxJQUFJLFFBQVEsR0FBa0IsSUFBSSxDQUFDO0lBRW5DLE9BQU87UUFDTCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU07UUFDeEIsV0FBVyxDQUFDLFNBQWlCLEVBQUUsV0FBaUI7WUFDOUMsSUFBSSxNQUFNLElBQUksUUFBUSxFQUFFO2dCQUN0QixNQUFNLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNwRSxPQUFPLE1BQU0sQ0FBQzthQUNmO1lBQ0QsUUFBUSxHQUFHLFNBQVMsQ0FBQztZQUVyQixJQUFJLFdBQVcsRUFBRTtnQkFDZixNQUFNLEdBQUcsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDckM7aUJBQU07Z0JBQ0wsTUFBTSxHQUFHLElBQUksaUJBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMvQjtZQUVELE9BQU8sTUFBZSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxRQUFRO1lBQ04sSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWCxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7YUFDcEQ7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsS0FBSyxDQUFDLFlBQVk7WUFDaEIsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsTUFBTSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQ2QsUUFBUSxHQUFHLElBQUksQ0FBQzthQUNqQjtRQUNILENBQUM7UUFDRCxLQUFLLENBQUMsVUFBVTtZQUNkLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ1gsT0FBTzthQUNSO1lBRUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLE1BQU07b0JBQUUsT0FBTztnQkFFcEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcscUJBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0MsQ0FBQyxDQUFDLENBQ0gsQ0FBQztZQUVGLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtvQkFBRSxPQUFPO2dCQUM3QyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBQ0YsTUFBTSxLQUFLLEdBQUcsWUFBWSxFQUFFLENBQUM7QUFFN0Isa0JBQWUsS0FBSyxDQUFDIn0=
|
package/build/types.d.ts
CHANGED
|
@@ -21,11 +21,11 @@ export declare enum SupportProviderEnum {
|
|
|
21
21
|
Trojan = "trojan"
|
|
22
22
|
}
|
|
23
23
|
export interface CommandConfig {
|
|
24
|
+
publicUrl: string;
|
|
24
25
|
readonly output: string;
|
|
25
26
|
readonly artifacts: ReadonlyArray<ArtifactConfig>;
|
|
26
27
|
readonly remoteSnippets?: ReadonlyArray<RemoteSnippetConfig>;
|
|
27
28
|
readonly urlBase: string;
|
|
28
|
-
publicUrl: string;
|
|
29
29
|
readonly providerDir: string;
|
|
30
30
|
readonly templateDir: string;
|
|
31
31
|
readonly configDir: string;
|
|
@@ -71,6 +71,10 @@ export interface CommandConfig {
|
|
|
71
71
|
readonly [name: string]: NodeNameFilterType | SortedNodeNameFilterType;
|
|
72
72
|
};
|
|
73
73
|
readonly customParams?: PlainObjectOf<string | boolean | number>;
|
|
74
|
+
readonly cache?: {
|
|
75
|
+
readonly type?: 'redis' | 'default';
|
|
76
|
+
readonly redisUrl?: string;
|
|
77
|
+
};
|
|
74
78
|
}
|
|
75
79
|
export interface RemoteSnippetConfig {
|
|
76
80
|
readonly url: string;
|
|
@@ -109,6 +113,9 @@ export interface ProviderConfig {
|
|
|
109
113
|
readonly renameNode?: (name: string) => string;
|
|
110
114
|
readonly relayUrl?: boolean | string;
|
|
111
115
|
readonly requestUserAgent?: string;
|
|
116
|
+
readonly cache?: {
|
|
117
|
+
readonly type?: 'redis' | 'default';
|
|
118
|
+
};
|
|
112
119
|
}
|
|
113
120
|
export interface BlackSSLProviderConfig extends ProviderConfig {
|
|
114
121
|
readonly username: string;
|
package/build/utils/cache.d.ts
CHANGED
|
@@ -6,4 +6,16 @@ export interface SubsciptionCacheItem {
|
|
|
6
6
|
}
|
|
7
7
|
export declare const ConfigCache: NodeCache;
|
|
8
8
|
export declare const SubscriptionCache: NodeCache;
|
|
9
|
-
export declare
|
|
9
|
+
export declare class RedisCache {
|
|
10
|
+
namespace?: string | undefined;
|
|
11
|
+
private redisClient;
|
|
12
|
+
constructor(namespace?: string | undefined);
|
|
13
|
+
getCacheKey(key: string): string;
|
|
14
|
+
setCache: (key: string, value: unknown, { ttl }?: {
|
|
15
|
+
ttl?: number | undefined;
|
|
16
|
+
}) => Promise<void>;
|
|
17
|
+
getCache: <T>(key: string) => Promise<T | undefined>;
|
|
18
|
+
hasCache: (key: string) => Promise<boolean>;
|
|
19
|
+
deleteCache: (key: string) => Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
export declare const cleanCaches: () => Promise<void>;
|
package/build/utils/cache.js
CHANGED
|
@@ -3,10 +3,11 @@ 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.cleanCaches = exports.SubscriptionCache = exports.ConfigCache = void 0;
|
|
6
|
+
exports.cleanCaches = exports.RedisCache = exports.SubscriptionCache = exports.ConfigCache = void 0;
|
|
7
7
|
const node_cache_1 = __importDefault(require("node-cache"));
|
|
8
8
|
const env_flag_1 = require("./env-flag");
|
|
9
9
|
const index_1 = require("./index");
|
|
10
|
+
const redis_1 = __importDefault(require("../redis"));
|
|
10
11
|
exports.ConfigCache = new node_cache_1.default({
|
|
11
12
|
stdTTL: (0, index_1.msToSeconds)((0, env_flag_1.getProviderCacheMaxage)()),
|
|
12
13
|
maxKeys: 300,
|
|
@@ -17,9 +18,46 @@ exports.SubscriptionCache = new node_cache_1.default({
|
|
|
17
18
|
maxKeys: 300,
|
|
18
19
|
useClones: false,
|
|
19
20
|
});
|
|
20
|
-
|
|
21
|
+
class RedisCache {
|
|
22
|
+
constructor(namespace) {
|
|
23
|
+
this.namespace = namespace;
|
|
24
|
+
this.setCache = async (key, value, { ttl } = {}) => {
|
|
25
|
+
const storeValue = JSON.stringify(value);
|
|
26
|
+
if (typeof ttl === 'undefined') {
|
|
27
|
+
await this.redisClient.set(this.getCacheKey(key), storeValue);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
await this.redisClient.set(this.getCacheKey(key), storeValue, 'EX', ttl);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
this.getCache = async (key) => {
|
|
34
|
+
const value = await this.redisClient.get(this.getCacheKey(key));
|
|
35
|
+
if (!value) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
return JSON.parse(value);
|
|
39
|
+
};
|
|
40
|
+
this.hasCache = async (key) => {
|
|
41
|
+
const value = await this.redisClient.exists(this.getCacheKey(key));
|
|
42
|
+
return !!value;
|
|
43
|
+
};
|
|
44
|
+
this.deleteCache = async (key) => {
|
|
45
|
+
await this.redisClient.del(this.getCacheKey(key));
|
|
46
|
+
};
|
|
47
|
+
this.redisClient = redis_1.default.getRedis();
|
|
48
|
+
}
|
|
49
|
+
getCacheKey(key) {
|
|
50
|
+
return this.namespace ? `${this.namespace}:${key}` : key;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.RedisCache = RedisCache;
|
|
54
|
+
// istanbul ignore next
|
|
55
|
+
const cleanCaches = async () => {
|
|
21
56
|
exports.ConfigCache.flushAll();
|
|
22
57
|
exports.SubscriptionCache.flushAll();
|
|
58
|
+
if (redis_1.default.hasRedis()) {
|
|
59
|
+
await redis_1.default.cleanCache();
|
|
60
|
+
}
|
|
23
61
|
};
|
|
24
62
|
exports.cleanCaches = cleanCaches;
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbHMvY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsNERBQW1DO0FBR25DLHlDQUFvRDtBQUNwRCxtQ0FBc0M7QUFDdEMscURBQTZCO0FBT2hCLFFBQUEsV0FBVyxHQUFHLElBQUksb0JBQVMsQ0FBQztJQUN2QyxNQUFNLEVBQUUsSUFBQSxtQkFBVyxFQUFDLElBQUEsaUNBQXNCLEdBQUUsQ0FBQztJQUM3QyxPQUFPLEVBQUUsR0FBRztJQUNaLFNBQVMsRUFBRSxLQUFLO0NBQ2pCLENBQUMsQ0FBQztBQUVVLFFBQUEsaUJBQWlCLEdBQUcsSUFBSSxvQkFBUyxDQUFDO0lBQzdDLE1BQU0sRUFBRSxJQUFBLG1CQUFXLEVBQUMsSUFBQSxpQ0FBc0IsR0FBRSxDQUFDO0lBQzdDLE9BQU8sRUFBRSxHQUFHO0lBQ1osU0FBUyxFQUFFLEtBQUs7Q0FDakIsQ0FBQyxDQUFDO0FBRUgsTUFBYSxVQUFVO0lBR3JCLFlBQW1CLFNBQWtCO1FBQWxCLGNBQVMsR0FBVCxTQUFTLENBQVM7UUFRckMsYUFBUSxHQUFHLEtBQUssRUFDZCxHQUFXLEVBQ1gsS0FBYyxFQUNkLEVBQUUsR0FBRyxLQUF1QixFQUFFLEVBQzlCLEVBQUU7WUFDRixNQUFNLFVBQVUsR0FBVyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWpELElBQUksT0FBTyxHQUFHLEtBQUssV0FBVyxFQUFFO2dCQUM5QixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7YUFDL0Q7aUJBQU07Z0JBQ0wsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDMUU7UUFDSCxDQUFDLENBQUM7UUFFRixhQUFRLEdBQUcsS0FBSyxFQUFLLEdBQVcsRUFBMEIsRUFBRTtZQUMxRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUVoRSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNWLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBTSxDQUFDO1FBQ2hDLENBQUMsQ0FBQztRQUVGLGFBQVEsR0FBRyxLQUFLLEVBQUUsR0FBVyxFQUFvQixFQUFFO1lBQ2pELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRW5FLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUM7UUFFRixnQkFBVyxHQUFHLEtBQUssRUFBRSxHQUFXLEVBQUUsRUFBRTtZQUNsQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUM7UUF2Q0EsSUFBSSxDQUFDLFdBQVcsR0FBRyxlQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDM0QsQ0FBQztDQW1DRjtBQTVDRCxnQ0E0Q0M7QUFFRCx1QkFBdUI7QUFDaEIsTUFBTSxXQUFXLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDcEMsbUJBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2Qix5QkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUU3QixJQUFJLGVBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUNwQixNQUFNLGVBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztLQUMxQjtBQUNILENBQUMsQ0FBQztBQVBXLFFBQUEsV0FBVyxlQU90QiJ9
|
package/build/utils/clash.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { NodeFilterType, NodeNameFilterType, PossibleNodeConfigType, SimpleNodeConfig, SortedNodeNameFilterType } from '../types';
|
|
2
|
-
export declare const getClashNodes: (list: ReadonlyArray<PossibleNodeConfigType>, filter?:
|
|
3
|
-
export declare const getClashNodeNames: (list: ReadonlyArray<SimpleNodeConfig>, filter?:
|
|
2
|
+
export declare const getClashNodes: (list: ReadonlyArray<PossibleNodeConfigType>, filter?: NodeFilterType | SortedNodeNameFilterType) => ReadonlyArray<any>;
|
|
3
|
+
export declare const getClashNodeNames: (list: ReadonlyArray<SimpleNodeConfig>, filter?: NodeNameFilterType | SortedNodeNameFilterType, existingProxies?: ReadonlyArray<string>) => ReadonlyArray<string>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineGlobalOptions = void 0;
|
|
4
|
+
const defineGlobalOptions = (yargs) => {
|
|
5
|
+
yargs.options({
|
|
6
|
+
c: {
|
|
7
|
+
alias: 'config',
|
|
8
|
+
default: './surgio.conf.js',
|
|
9
|
+
description: '配置文件',
|
|
10
|
+
},
|
|
11
|
+
V: {
|
|
12
|
+
alias: 'verbose',
|
|
13
|
+
demandOption: false,
|
|
14
|
+
describe: '打印调试日志',
|
|
15
|
+
type: 'boolean',
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
yargs.group(['help', 'version', 'config', 'verbose'], 'Global Options:');
|
|
19
|
+
// 禁用 yargs 内部生成的 help 信息,似乎和 common-bin 的 load 有冲突
|
|
20
|
+
yargs.help(false);
|
|
21
|
+
};
|
|
22
|
+
exports.defineGlobalOptions = defineGlobalOptions;
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi91dGlscy9jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVPLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUF5QixFQUFRLEVBQUU7SUFDckUsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUNaLENBQUMsRUFBRTtZQUNELEtBQUssRUFBRSxRQUFRO1lBQ2YsT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixXQUFXLEVBQUUsTUFBTTtTQUNwQjtRQUNELENBQUMsRUFBRTtZQUNELEtBQUssRUFBRSxTQUFTO1lBQ2hCLFlBQVksRUFBRSxLQUFLO1lBQ25CLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLElBQUksRUFBRSxTQUFTO1NBQ2hCO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFFekUsbURBQW1EO0lBQ25ELEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDcEIsQ0FBQyxDQUFDO0FBbkJXLFFBQUEsbUJBQW1CLHVCQW1COUIifQ==
|
package/build/utils/config.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { CommandConfig } from '../types';
|
|
2
|
-
export declare const loadConfig: (cwd: string, configPath: string, override?: Partial<CommandConfig>
|
|
2
|
+
export declare const loadConfig: (cwd: string, configPath: string, override?: Partial<CommandConfig>) => CommandConfig;
|
|
3
|
+
export declare const getConfig: () => CommandConfig;
|
|
4
|
+
export declare const setConfig: <T extends keyof CommandConfig>(key: T, value: CommandConfig[T]) => CommandConfig;
|
|
3
5
|
export declare const normalizeConfig: (cwd: string, userConfig: Partial<CommandConfig>) => CommandConfig;
|
|
4
6
|
export declare const validateConfig: (userConfig: Partial<CommandConfig>) => void;
|
package/build/utils/config.js
CHANGED
|
@@ -3,7 +3,7 @@ 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.validateConfig = exports.normalizeConfig = exports.loadConfig = void 0;
|
|
6
|
+
exports.validateConfig = exports.normalizeConfig = exports.setConfig = exports.getConfig = exports.loadConfig = void 0;
|
|
7
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"));
|
|
@@ -11,12 +11,14 @@ 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 redis_1 = __importDefault(require("../redis"));
|
|
14
15
|
const constant_1 = require("../constant");
|
|
15
16
|
const flag_1 = require("./flag");
|
|
16
17
|
const index_1 = require("./index");
|
|
17
18
|
const showDEP005 = (0, util_1.deprecate)(lodash_1.default.noop, deprecation_1.DEP005, 'DEP005');
|
|
18
19
|
const showDEP006 = (0, util_1.deprecate)(lodash_1.default.noop, deprecation_1.DEP006, 'DEP006');
|
|
19
20
|
const showDEP008 = (0, util_1.deprecate)(lodash_1.default.noop, deprecation_1.DEP008, 'DEP008');
|
|
21
|
+
let finalConfig = null;
|
|
20
22
|
const loadConfig = (cwd, configPath, override) => {
|
|
21
23
|
const absPath = path_1.default.resolve(cwd, configPath);
|
|
22
24
|
if (!fs_extra_1.default.existsSync(absPath)) {
|
|
@@ -44,9 +46,30 @@ const loadConfig = (cwd, configPath, override) => {
|
|
|
44
46
|
if (override) {
|
|
45
47
|
return Object.assign(Object.assign({}, (0, exports.normalizeConfig)(cwd, userConfig)), override);
|
|
46
48
|
}
|
|
47
|
-
|
|
49
|
+
finalConfig = (0, exports.normalizeConfig)(cwd, userConfig);
|
|
50
|
+
return finalConfig;
|
|
48
51
|
};
|
|
49
52
|
exports.loadConfig = loadConfig;
|
|
53
|
+
const getConfig = () => {
|
|
54
|
+
if (!finalConfig) {
|
|
55
|
+
throw new Error('请先调用 loadConfig 方法');
|
|
56
|
+
}
|
|
57
|
+
return finalConfig;
|
|
58
|
+
};
|
|
59
|
+
exports.getConfig = getConfig;
|
|
60
|
+
const setConfig = (key, value) => {
|
|
61
|
+
if (!finalConfig) {
|
|
62
|
+
throw new Error('请先调用 loadConfig 方法');
|
|
63
|
+
}
|
|
64
|
+
if (lodash_1.default.isPlainObject(value)) {
|
|
65
|
+
finalConfig[key] = Object.assign(Object.assign({}, finalConfig[key]), value);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
finalConfig[key] = value;
|
|
69
|
+
}
|
|
70
|
+
return finalConfig;
|
|
71
|
+
};
|
|
72
|
+
exports.setConfig = setConfig;
|
|
50
73
|
const normalizeConfig = (cwd, userConfig) => {
|
|
51
74
|
var _a, _b, _c;
|
|
52
75
|
const defaultConfig = {
|
|
@@ -71,6 +94,9 @@ const normalizeConfig = (cwd, userConfig) => {
|
|
|
71
94
|
proxyTestUrl: constant_1.PROXY_TEST_URL,
|
|
72
95
|
proxyTestInterval: constant_1.PROXY_TEST_INTERVAL,
|
|
73
96
|
checkHostname: false,
|
|
97
|
+
cache: {
|
|
98
|
+
type: 'default',
|
|
99
|
+
},
|
|
74
100
|
};
|
|
75
101
|
const config = lodash_1.default.defaultsDeep(userConfig, defaultConfig);
|
|
76
102
|
// istanbul ignore next
|
|
@@ -103,6 +129,12 @@ const normalizeConfig = (cwd, userConfig) => {
|
|
|
103
129
|
if (((_c = config.clashConfig) === null || _c === void 0 ? void 0 : _c.ssrFormat) === 'legacy') {
|
|
104
130
|
showDEP008();
|
|
105
131
|
}
|
|
132
|
+
if (config.cache && config.cache.type === 'redis') {
|
|
133
|
+
if (!config.cache.redisUrl) {
|
|
134
|
+
throw new Error('缓存配置错误,请检查 cache.redisUrl 配置');
|
|
135
|
+
}
|
|
136
|
+
redis_1.default.createRedis(config.cache.redisUrl);
|
|
137
|
+
}
|
|
106
138
|
return config;
|
|
107
139
|
};
|
|
108
140
|
exports.normalizeConfig = normalizeConfig;
|
|
@@ -177,6 +209,12 @@ const validateConfig = (userConfig) => {
|
|
|
177
209
|
supportSort: joi_1.default.boolean().strict(),
|
|
178
210
|
}))),
|
|
179
211
|
customParams: joi_1.default.object(),
|
|
212
|
+
cache: joi_1.default.object({
|
|
213
|
+
type: joi_1.default.string().valid('redis', 'default'),
|
|
214
|
+
redisUrl: joi_1.default.string().uri({
|
|
215
|
+
scheme: [/rediss?/],
|
|
216
|
+
}),
|
|
217
|
+
}),
|
|
180
218
|
}).unknown();
|
|
181
219
|
const { error } = schema.validate(userConfig);
|
|
182
220
|
// istanbul ignore next
|
|
@@ -185,4 +223,4 @@ const validateConfig = (userConfig) => {
|
|
|
185
223
|
}
|
|
186
224
|
};
|
|
187
225
|
exports.validateConfig = validateConfig;
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL3V0aWxzL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4Q0FBc0I7QUFDdEIsd0RBQTBCO0FBQzFCLG9EQUF1QjtBQUN2QixnREFBd0I7QUFDeEIsNkJBQTBCO0FBQzFCLCtCQUFpQztBQUNqQyxxREFBNkQ7QUFHN0QsMENBQWtFO0FBQ2xFLGlDQUFvQztBQUNwQyxtQ0FBNkM7QUFFN0MsTUFBTSxVQUFVLEdBQUcsSUFBQSxnQkFBUyxFQUFDLGdCQUFDLENBQUMsSUFBSSxFQUFFLG9CQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDdkQsTUFBTSxVQUFVLEdBQUcsSUFBQSxnQkFBUyxFQUFDLGdCQUFDLENBQUMsSUFBSSxFQUFFLG9CQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDdkQsTUFBTSxVQUFVLEdBQUcsSUFBQSxnQkFBUyxFQUFDLGdCQUFDLENBQUMsSUFBSSxFQUFFLG9CQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFFaEQsTUFBTSxVQUFVLEdBQUcsQ0FDeEIsR0FBVyxFQUNYLFVBQWtCLEVBQ2xCLFFBQWlDLEVBQ2xCLEVBQUU7SUFDakIsTUFBTSxPQUFPLEdBQUcsY0FBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFOUMsSUFBSSxDQUFDLGtCQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxPQUFPLE1BQU0sQ0FBQyxDQUFDO0tBQ3hDO0lBRUQsTUFBTSxVQUFVLEdBQUcsZ0JBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFakQsSUFBQSxzQkFBYyxFQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTNCLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRTtRQUNwQixNQUFNLENBQUMsSUFBSSxD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
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL3V0aWxzL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4Q0FBc0I7QUFDdEIsd0RBQTBCO0FBQzFCLG9EQUF1QjtBQUN2QixnREFBd0I7QUFDeEIsNkJBQTBCO0FBQzFCLCtCQUFpQztBQUVqQyxxREFBNkQ7QUFDN0QscURBQTZCO0FBRTdCLDBDQUFrRTtBQUNsRSxpQ0FBb0M7QUFDcEMsbUNBQTZDO0FBRTdDLE1BQU0sVUFBVSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxnQkFBQyxDQUFDLElBQUksRUFBRSxvQkFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3ZELE1BQU0sVUFBVSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxnQkFBQyxDQUFDLElBQUksRUFBRSxvQkFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3ZELE1BQU0sVUFBVSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxnQkFBQyxDQUFDLElBQUksRUFBRSxvQkFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBRXZELElBQUksV0FBVyxHQUF5QixJQUFJLENBQUM7QUFFdEMsTUFBTSxVQUFVLEdBQUcsQ0FDeEIsR0FBVyxFQUNYLFVBQWtCLEVBQ2xCLFFBQWlDLEVBQ2xCLEVBQUU7SUFDakIsTUFBTSxPQUFPLEdBQUcsY0FBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFOUMsSUFBSSxDQUFDLGtCQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxPQUFPLE1BQU0sQ0FBQyxDQUFDO0tBQ3hDO0lBRUQsTUFBTSxVQUFVLEdBQUcsZ0JBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFakQsSUFBQSxzQkFBYyxFQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTNCLElB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
|
package/build/utils/filter.d.ts
CHANGED
|
@@ -12,10 +12,10 @@ export declare class SortFilterWithSortedKeywords implements SortedNodeNameFilte
|
|
|
12
12
|
filter<T>(nodeList: ReadonlyArray<T & SimpleNodeConfig>): ReadonlyArray<T & SimpleNodeConfig>;
|
|
13
13
|
}
|
|
14
14
|
export declare const validateFilter: (filter: any) => boolean;
|
|
15
|
-
export declare const applyFilter: <T extends SimpleNodeConfig>(nodeList: readonly T[], filter?:
|
|
16
|
-
export declare const mergeFilters: (filters: ReadonlyArray<NodeNameFilterType>, isStrict?: boolean
|
|
17
|
-
export declare const useKeywords: (keywords: ReadonlyArray<string>, isStrict?: boolean
|
|
18
|
-
export declare const discardKeywords: (keywords: ReadonlyArray<string>, isStrict?: boolean
|
|
15
|
+
export declare const applyFilter: <T extends SimpleNodeConfig>(nodeList: readonly T[], filter?: NodeNameFilterType | SortedNodeNameFilterType) => readonly T[];
|
|
16
|
+
export declare const mergeFilters: (filters: ReadonlyArray<NodeNameFilterType>, isStrict?: boolean) => NodeNameFilterType;
|
|
17
|
+
export declare const useKeywords: (keywords: ReadonlyArray<string>, isStrict?: boolean) => NodeNameFilterType;
|
|
18
|
+
export declare const discardKeywords: (keywords: ReadonlyArray<string>, isStrict?: boolean) => NodeNameFilterType;
|
|
19
19
|
export declare const useRegexp: (regexp: RegExp) => NodeNameFilterType;
|
|
20
20
|
export declare const useProviders: (keywords: ReadonlyArray<string>, isStrict?: boolean) => NodeNameFilterType;
|
|
21
21
|
export declare const discardProviders: (keywords: ReadonlyArray<string>, isStrict?: boolean) => NodeNameFilterType;
|