surgio 3.11.2 → 3.12.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/bin/dev +0 -0
- package/package.json +69 -75
- package/build/base-command.d.ts +0 -20
- package/build/base-command.js +0 -75
- package/build/base-command.js.map +0 -1
- package/build/commands/check.d.ts +0 -10
- package/build/commands/check.js +0 -87
- package/build/commands/check.js.map +0 -1
- package/build/commands/clean-cache.d.ts +0 -6
- package/build/commands/clean-cache.js +0 -28
- package/build/commands/clean-cache.js.map +0 -1
- package/build/commands/doctor.d.ts +0 -6
- package/build/commands/doctor.js +0 -20
- package/build/commands/doctor.js.map +0 -1
- package/build/commands/generate.d.ts +0 -7
- package/build/commands/generate.js +0 -94
- package/build/commands/generate.js.map +0 -1
- package/build/commands/lint.d.ts +0 -6
- package/build/commands/lint.js +0 -37
- package/build/commands/lint.js.map +0 -1
- package/build/commands/new.d.ts +0 -6
- package/build/commands/new.js +0 -37
- package/build/commands/new.js.map +0 -1
- package/build/commands/subscriptions.d.ts +0 -7
- package/build/commands/subscriptions.js +0 -95
- package/build/commands/subscriptions.js.map +0 -1
- package/build/commands/upload.d.ts +0 -6
- package/build/commands/upload.js +0 -91
- package/build/commands/upload.js.map +0 -1
- package/build/config.d.ts +0 -6
- package/build/config.js +0 -156
- package/build/config.js.map +0 -1
- package/build/configurables.d.ts +0 -88
- package/build/configurables.js +0 -52
- package/build/configurables.js.map +0 -1
- package/build/constant/constant.d.ts +0 -36
- package/build/constant/constant.js +0 -160
- package/build/constant/constant.js.map +0 -1
- package/build/constant/env.d.ts +0 -9
- package/build/constant/env.js +0 -13
- package/build/constant/env.js.map +0 -1
- package/build/constant/error.d.ts +0 -1
- package/build/constant/error.js +0 -5
- package/build/constant/error.js.map +0 -1
- package/build/constant/index.d.ts +0 -3
- package/build/constant/index.js +0 -20
- package/build/constant/index.js.map +0 -1
- package/build/filters/classes.d.ts +0 -13
- package/build/filters/classes.js +0 -42
- package/build/filters/classes.js.map +0 -1
- package/build/filters/filters.d.ts +0 -25
- package/build/filters/filters.js +0 -107
- package/build/filters/filters.js.map +0 -1
- package/build/filters/index.d.ts +0 -2
- package/build/filters/index.js +0 -32
- package/build/filters/index.js.map +0 -1
- package/build/filters/utils.d.ts +0 -16
- package/build/filters/utils.js +0 -159
- package/build/filters/utils.js.map +0 -1
- package/build/generator/artifact.d.ts +0 -142
- package/build/generator/artifact.js +0 -370
- package/build/generator/artifact.js.map +0 -1
- package/build/generator/index.d.ts +0 -3
- package/build/generator/index.js +0 -25
- package/build/generator/index.js.map +0 -1
- package/build/generator/json-template.d.ts +0 -11
- package/build/generator/json-template.js +0 -66
- package/build/generator/json-template.js.map +0 -1
- package/build/generator/template.d.ts +0 -8
- package/build/generator/template.js +0 -234
- package/build/generator/template.js.map +0 -1
- package/build/hooks/init.d.ts +0 -3
- package/build/hooks/init.js +0 -33
- package/build/hooks/init.js.map +0 -1
- package/build/index.d.ts +0 -85
- package/build/index.js +0 -64
- package/build/index.js.map +0 -1
- package/build/internal.d.ts +0 -5
- package/build/internal.js +0 -25
- package/build/internal.js.map +0 -1
- package/build/misc/deprecation.d.ts +0 -0
- package/build/misc/deprecation.js +0 -2
- package/build/misc/deprecation.js.map +0 -1
- package/build/misc/flag_cn.d.ts +0 -56
- package/build/misc/flag_cn.js +0 -154
- package/build/misc/flag_cn.js.map +0 -1
- package/build/provider/BlackSSLProvider.d.ts +0 -11
- package/build/provider/BlackSSLProvider.js +0 -93
- package/build/provider/BlackSSLProvider.js.map +0 -1
- package/build/provider/ClashProvider.d.ts +0 -24
- package/build/provider/ClashProvider.js +0 -476
- package/build/provider/ClashProvider.js.map +0 -1
- package/build/provider/CustomProvider.d.ts +0 -10
- package/build/provider/CustomProvider.js +0 -144
- package/build/provider/CustomProvider.js.map +0 -1
- package/build/provider/Provider.d.ts +0 -17
- package/build/provider/Provider.js +0 -111
- package/build/provider/Provider.js.map +0 -1
- package/build/provider/ShadowsocksJsonSubscribeProvider.d.ts +0 -11
- package/build/provider/ShadowsocksJsonSubscribeProvider.js +0 -86
- package/build/provider/ShadowsocksJsonSubscribeProvider.js.map +0 -1
- package/build/provider/ShadowsocksSubscribeProvider.d.ts +0 -18
- package/build/provider/ShadowsocksSubscribeProvider.js +0 -84
- package/build/provider/ShadowsocksSubscribeProvider.js.map +0 -1
- package/build/provider/ShadowsocksrSubscribeProvider.d.ts +0 -15
- package/build/provider/ShadowsocksrSubscribeProvider.js +0 -93
- package/build/provider/ShadowsocksrSubscribeProvider.js.map +0 -1
- package/build/provider/SsdProvider.d.ts +0 -39
- package/build/provider/SsdProvider.js +0 -138
- package/build/provider/SsdProvider.js.map +0 -1
- package/build/provider/TrojanProvider.d.ts +0 -24
- package/build/provider/TrojanProvider.js +0 -98
- package/build/provider/TrojanProvider.js.map +0 -1
- package/build/provider/V2rayNSubscribeProvider.d.ts +0 -25
- package/build/provider/V2rayNSubscribeProvider.js +0 -181
- package/build/provider/V2rayNSubscribeProvider.js.map +0 -1
- package/build/provider/index.d.ts +0 -17
- package/build/provider/index.js +0 -54
- package/build/provider/index.js.map +0 -1
- package/build/provider/types.d.ts +0 -18
- package/build/provider/types.js +0 -3
- package/build/provider/types.js.map +0 -1
- package/build/redis.d.ts +0 -9
- package/build/redis.js +0 -63
- package/build/redis.js.map +0 -1
- package/build/types.d.ts +0 -138
- package/build/types.js +0 -31
- package/build/types.js.map +0 -1
- package/build/utils/cache.d.ts +0 -23
- package/build/utils/cache.js +0 -98
- package/build/utils/cache.js.map +0 -1
- package/build/utils/clash.d.ts +0 -3
- package/build/utils/clash.js +0 -448
- package/build/utils/clash.js.map +0 -1
- package/build/utils/constant.d.ts +0 -1
- package/build/utils/constant.js +0 -19
- package/build/utils/constant.js.map +0 -1
- package/build/utils/dns.d.ts +0 -4
- package/build/utils/dns.js +0 -51
- package/build/utils/dns.js.map +0 -1
- package/build/utils/doctor.d.ts +0 -2
- package/build/utils/doctor.js +0 -38
- package/build/utils/doctor.js.map +0 -1
- package/build/utils/env-flag.d.ts +0 -9
- package/build/utils/env-flag.js +0 -41
- package/build/utils/env-flag.js.map +0 -1
- package/build/utils/error-helper.d.ts +0 -2
- package/build/utils/error-helper.js +0 -62
- package/build/utils/error-helper.js.map +0 -1
- package/build/utils/errors.d.ts +0 -19
- package/build/utils/errors.js +0 -60
- package/build/utils/errors.js.map +0 -1
- package/build/utils/flag.d.ts +0 -3
- package/build/utils/flag.js +0 -79
- package/build/utils/flag.js.map +0 -1
- package/build/utils/http-client.d.ts +0 -3
- package/build/utils/http-client.js +0 -82
- package/build/utils/http-client.js.map +0 -1
- package/build/utils/index.d.ts +0 -90
- package/build/utils/index.js +0 -529
- package/build/utils/index.js.map +0 -1
- package/build/utils/linter.d.ts +0 -4
- package/build/utils/linter.js +0 -49
- package/build/utils/linter.js.map +0 -1
- package/build/utils/loon.d.ts +0 -3
- package/build/utils/loon.js +0 -236
- package/build/utils/loon.js.map +0 -1
- package/build/utils/quantumult.d.ts +0 -6
- package/build/utils/quantumult.js +0 -240
- package/build/utils/quantumult.js.map +0 -1
- package/build/utils/relayable-url.d.ts +0 -1
- package/build/utils/relayable-url.js +0 -18
- package/build/utils/relayable-url.js.map +0 -1
- package/build/utils/remote-snippet.d.ts +0 -8
- package/build/utils/remote-snippet.js +0 -198
- package/build/utils/remote-snippet.js.map +0 -1
- package/build/utils/singbox.d.ts +0 -3
- package/build/utils/singbox.js +0 -377
- package/build/utils/singbox.js.map +0 -1
- package/build/utils/ss.d.ts +0 -3
- package/build/utils/ss.js +0 -97
- package/build/utils/ss.js.map +0 -1
- package/build/utils/ssr.d.ts +0 -7
- package/build/utils/ssr.js +0 -53
- package/build/utils/ssr.js.map +0 -1
- package/build/utils/subscription.d.ts +0 -11
- package/build/utils/subscription.js +0 -68
- package/build/utils/subscription.js.map +0 -1
- package/build/utils/surfboard.d.ts +0 -7
- package/build/utils/surfboard.js +0 -184
- package/build/utils/surfboard.js.map +0 -1
- package/build/utils/surge.d.ts +0 -8
- package/build/utils/surge.js +0 -407
- package/build/utils/surge.js.map +0 -1
- package/build/utils/time.d.ts +0 -1
- package/build/utils/time.js +0 -6
- package/build/utils/time.js.map +0 -1
- package/build/utils/tmp-helper.d.ts +0 -30
- package/build/utils/tmp-helper.js +0 -102
- package/build/utils/tmp-helper.js.map +0 -1
- package/build/utils/trojan.d.ts +0 -2
- package/build/utils/trojan.js +0 -38
- package/build/utils/trojan.js.map +0 -1
- package/build/utils/useragent.d.ts +0 -18
- package/build/utils/useragent.js +0 -210
- package/build/utils/useragent.js.map +0 -1
- package/build/validators/artifact.d.ts +0 -44
- package/build/validators/artifact.js +0 -26
- package/build/validators/artifact.js.map +0 -1
- package/build/validators/common.d.ts +0 -377
- package/build/validators/common.js +0 -106
- package/build/validators/common.js.map +0 -1
- package/build/validators/filter.d.ts +0 -10
- package/build/validators/filter.js +0 -15
- package/build/validators/filter.js.map +0 -1
- package/build/validators/hooks.d.ts +0 -9
- package/build/validators/hooks.js +0 -11
- package/build/validators/hooks.js.map +0 -1
- package/build/validators/http.d.ts +0 -366
- package/build/validators/http.js +0 -23
- package/build/validators/http.js.map +0 -1
- package/build/validators/hysteria2.d.ts +0 -196
- package/build/validators/hysteria2.js +0 -15
- package/build/validators/hysteria2.js.map +0 -1
- package/build/validators/index.d.ts +0 -17
- package/build/validators/index.js +0 -34
- package/build/validators/index.js.map +0 -1
- package/build/validators/provider.d.ts +0 -120
- package/build/validators/provider.js +0 -46
- package/build/validators/provider.js.map +0 -1
- package/build/validators/shadowsocks.d.ts +0 -252
- package/build/validators/shadowsocks.js +0 -31
- package/build/validators/shadowsocks.js.map +0 -1
- package/build/validators/shadowsocksr.d.ts +0 -184
- package/build/validators/shadowsocksr.js +0 -19
- package/build/validators/shadowsocksr.js.map +0 -1
- package/build/validators/snell.d.ts +0 -178
- package/build/validators/snell.js +0 -17
- package/build/validators/snell.js.map +0 -1
- package/build/validators/socks5.d.ts +0 -196
- package/build/validators/socks5.js +0 -15
- package/build/validators/socks5.js.map +0 -1
- package/build/validators/surgio-config.d.ts +0 -387
- package/build/validators/surgio-config.js +0 -101
- package/build/validators/surgio-config.js.map +0 -1
- package/build/validators/trojan.d.ts +0 -255
- package/build/validators/trojan.js +0 -16
- package/build/validators/trojan.js.map +0 -1
- package/build/validators/tuic.d.ts +0 -741
- package/build/validators/tuic.js +0 -21
- package/build/validators/tuic.js.map +0 -1
- package/build/validators/vless.d.ts +0 -389
- package/build/validators/vless.js +0 -31
- package/build/validators/vless.js.map +0 -1
- package/build/validators/vmess.d.ts +0 -425
- package/build/validators/vmess.js +0 -86
- package/build/validators/vmess.js.map +0 -1
- package/build/validators/wireguard.d.ts +0 -230
- package/build/validators/wireguard.js +0 -26
- package/build/validators/wireguard.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CustomProvider.js","sourceRoot":"","sources":["../../src/provider/CustomProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { ProviderConfig, SubsciptionCacheItem, SupportProviderEnum } from '../types';
|
|
2
|
-
import { GetNodeListFunction, GetSubscriptionUserInfoFunction } from './types';
|
|
3
|
-
export default abstract class Provider {
|
|
4
|
-
name: string;
|
|
5
|
-
readonly type: SupportProviderEnum;
|
|
6
|
-
readonly config: ProviderConfig;
|
|
7
|
-
supportGetSubscriptionUserInfo: boolean;
|
|
8
|
-
passGatewayRequestUserAgent: boolean;
|
|
9
|
-
protected constructor(name: string, config: ProviderConfig);
|
|
10
|
-
static requestCacheableResource(url: string, options?: {
|
|
11
|
-
requestUserAgent?: string;
|
|
12
|
-
}): Promise<SubsciptionCacheItem>;
|
|
13
|
-
determineRequestUserAgent(requestUserAgent?: string | undefined): string | undefined;
|
|
14
|
-
get nextPort(): number;
|
|
15
|
-
getSubscriptionUserInfo: GetSubscriptionUserInfoFunction;
|
|
16
|
-
getNodeList: GetNodeListFunction;
|
|
17
|
-
}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const logger_1 = require("@surgio/logger");
|
|
27
|
-
const constant_1 = require("../constant");
|
|
28
|
-
const cache_1 = require("../utils/cache");
|
|
29
|
-
const config_1 = require("../config");
|
|
30
|
-
const env_flag_1 = require("../utils/env-flag");
|
|
31
|
-
const http_client_1 = __importStar(require("../utils/http-client"));
|
|
32
|
-
const utils_1 = require("../utils");
|
|
33
|
-
const validators_1 = require("../validators");
|
|
34
|
-
const logger = (0, logger_1.createLogger)({
|
|
35
|
-
service: 'surgio:Provider',
|
|
36
|
-
});
|
|
37
|
-
class Provider {
|
|
38
|
-
name;
|
|
39
|
-
type;
|
|
40
|
-
config;
|
|
41
|
-
// 是否支持在订阅中获取用户流量信息
|
|
42
|
-
supportGetSubscriptionUserInfo;
|
|
43
|
-
// 是否传递 Gateway 请求的 User-Agent
|
|
44
|
-
passGatewayRequestUserAgent;
|
|
45
|
-
constructor(name, config) {
|
|
46
|
-
this.name = name;
|
|
47
|
-
const result = validators_1.ProviderValidator.safeParse(config);
|
|
48
|
-
// istanbul ignore next
|
|
49
|
-
if (!result.success) {
|
|
50
|
-
throw new utils_1.SurgioError('Provider 配置校验失败', {
|
|
51
|
-
cause: result.error,
|
|
52
|
-
providerName: name,
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
this.supportGetSubscriptionUserInfo = false;
|
|
56
|
-
this.config = result.data;
|
|
57
|
-
this.type = result.data.type;
|
|
58
|
-
this.passGatewayRequestUserAgent =
|
|
59
|
-
(0, config_1.getConfig)()?.gateway?.passRequestUserAgent ?? false;
|
|
60
|
-
}
|
|
61
|
-
static async requestCacheableResource(url, options = {}) {
|
|
62
|
-
const cacheKey = `${constant_1.CACHE_KEYS.Provider}:${(0, utils_1.toMD5)((0, http_client_1.getUserAgent)(options.requestUserAgent) + url)}`;
|
|
63
|
-
const requestResource = async () => {
|
|
64
|
-
const headers = {};
|
|
65
|
-
if (options.requestUserAgent) {
|
|
66
|
-
headers['user-agent'] = (0, http_client_1.getUserAgent)(options.requestUserAgent);
|
|
67
|
-
}
|
|
68
|
-
const res = await http_client_1.default.get(url, {
|
|
69
|
-
responseType: 'text',
|
|
70
|
-
headers,
|
|
71
|
-
});
|
|
72
|
-
const subsciptionCacheItem = {
|
|
73
|
-
body: res.body,
|
|
74
|
-
};
|
|
75
|
-
if (res.headers['subscription-userinfo']) {
|
|
76
|
-
subsciptionCacheItem.subscriptionUserinfo = (0, utils_1.parseSubscriptionUserInfo)(res.headers['subscription-userinfo']);
|
|
77
|
-
logger.debug('%s received subscription userinfo - raw: %s | parsed: %j', url, res.headers['subscription-userinfo'], subsciptionCacheItem.subscriptionUserinfo);
|
|
78
|
-
}
|
|
79
|
-
return subsciptionCacheItem;
|
|
80
|
-
};
|
|
81
|
-
const cachedValue = await cache_1.unifiedCache.get(cacheKey);
|
|
82
|
-
return cachedValue
|
|
83
|
-
? cachedValue
|
|
84
|
-
: await (async () => {
|
|
85
|
-
const subsciptionCacheItem = await requestResource();
|
|
86
|
-
await cache_1.unifiedCache.set(cacheKey, subsciptionCacheItem, (0, env_flag_1.getProviderCacheMaxage)());
|
|
87
|
-
return subsciptionCacheItem;
|
|
88
|
-
})();
|
|
89
|
-
}
|
|
90
|
-
determineRequestUserAgent(requestUserAgent) {
|
|
91
|
-
return this.passGatewayRequestUserAgent
|
|
92
|
-
? requestUserAgent || this.config.requestUserAgent
|
|
93
|
-
: this.config.requestUserAgent;
|
|
94
|
-
}
|
|
95
|
-
get nextPort() {
|
|
96
|
-
if (this.config.startPort) {
|
|
97
|
-
return this.config.startPort++;
|
|
98
|
-
}
|
|
99
|
-
return 0;
|
|
100
|
-
}
|
|
101
|
-
// istanbul ignore next
|
|
102
|
-
getSubscriptionUserInfo = async () => {
|
|
103
|
-
throw new Error('此 Provider 不支持该功能');
|
|
104
|
-
};
|
|
105
|
-
// istanbul ignore next
|
|
106
|
-
getNodeList = () => {
|
|
107
|
-
return Promise.resolve([]);
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
exports.default = Provider;
|
|
111
|
-
//# sourceMappingURL=Provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../src/provider/Provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ShadowsocksJsonSubscribeProviderConfig, ShadowsocksNodeConfig } from '../types';
|
|
2
|
-
import Provider from './Provider';
|
|
3
|
-
import { GetNodeListFunction } from './types';
|
|
4
|
-
export default class ShadowsocksJsonSubscribeProvider extends Provider {
|
|
5
|
-
#private;
|
|
6
|
-
readonly udpRelay?: boolean;
|
|
7
|
-
constructor(name: string, config: ShadowsocksJsonSubscribeProviderConfig);
|
|
8
|
-
get url(): string;
|
|
9
|
-
getNodeList: GetNodeListFunction;
|
|
10
|
-
}
|
|
11
|
-
export declare const getShadowsocksJSONConfig: (url: string, udpRelay?: boolean, requestUserAgent?: string) => Promise<Array<ShadowsocksNodeConfig>>;
|
|
@@ -1,86 +0,0 @@
|
|
|
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.getShadowsocksJSONConfig = void 0;
|
|
7
|
-
const assert_1 = __importDefault(require("assert"));
|
|
8
|
-
const zod_1 = require("zod");
|
|
9
|
-
const types_1 = require("../types");
|
|
10
|
-
const utils_1 = require("../utils");
|
|
11
|
-
const relayable_url_1 = __importDefault(require("../utils/relayable-url"));
|
|
12
|
-
const Provider_1 = __importDefault(require("./Provider"));
|
|
13
|
-
class ShadowsocksJsonSubscribeProvider extends Provider_1.default {
|
|
14
|
-
#originalUrl;
|
|
15
|
-
udpRelay;
|
|
16
|
-
constructor(name, config) {
|
|
17
|
-
super(name, config);
|
|
18
|
-
const schema = zod_1.z.object({
|
|
19
|
-
url: zod_1.z.string().url(),
|
|
20
|
-
udpRelay: zod_1.z.boolean().optional(),
|
|
21
|
-
});
|
|
22
|
-
const result = schema.safeParse(config);
|
|
23
|
-
// istanbul ignore next
|
|
24
|
-
if (!result.success) {
|
|
25
|
-
throw new utils_1.SurgioError('ShadowsocksJsonSubscribeProvider 配置校验失败', {
|
|
26
|
-
cause: result.error,
|
|
27
|
-
providerName: name,
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
this.#originalUrl = result.data.url;
|
|
31
|
-
this.udpRelay = result.data.udpRelay;
|
|
32
|
-
}
|
|
33
|
-
// istanbul ignore next
|
|
34
|
-
get url() {
|
|
35
|
-
return (0, relayable_url_1.default)(this.#originalUrl, this.config.relayUrl);
|
|
36
|
-
}
|
|
37
|
-
getNodeList = async (params = {}) => {
|
|
38
|
-
const requestUserAgent = this.determineRequestUserAgent(params.requestUserAgent);
|
|
39
|
-
const nodeList = await (0, exports.getShadowsocksJSONConfig)(this.url, this.udpRelay, requestUserAgent);
|
|
40
|
-
if (this.config.hooks?.afterNodeListResponse) {
|
|
41
|
-
const newList = await this.config.hooks.afterNodeListResponse(nodeList, params);
|
|
42
|
-
if (newList) {
|
|
43
|
-
return newList;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return nodeList;
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
exports.default = ShadowsocksJsonSubscribeProvider;
|
|
50
|
-
const getShadowsocksJSONConfig = async (url, udpRelay, requestUserAgent) => {
|
|
51
|
-
(0, assert_1.default)(url, '未指定订阅地址 url');
|
|
52
|
-
async function requestConfigFromRemote() {
|
|
53
|
-
const response = await Provider_1.default.requestCacheableResource(url, {
|
|
54
|
-
requestUserAgent: requestUserAgent || 'shadowrocket',
|
|
55
|
-
});
|
|
56
|
-
const config = JSON.parse(response.body);
|
|
57
|
-
if (!config || !config.configs) {
|
|
58
|
-
throw new Error('订阅地址返回的数据格式不正确');
|
|
59
|
-
}
|
|
60
|
-
return config.configs.map((item) => {
|
|
61
|
-
const nodeConfig = {
|
|
62
|
-
nodeName: item.remarks,
|
|
63
|
-
type: types_1.NodeTypeEnum.Shadowsocks,
|
|
64
|
-
hostname: item.server,
|
|
65
|
-
port: item.server_port,
|
|
66
|
-
method: item.method,
|
|
67
|
-
password: item.password,
|
|
68
|
-
};
|
|
69
|
-
if (typeof udpRelay === 'boolean') {
|
|
70
|
-
nodeConfig.udpRelay = udpRelay;
|
|
71
|
-
}
|
|
72
|
-
if (item.plugin === 'obfs-local') {
|
|
73
|
-
const obfs = item.plugin_opts.match(/obfs=(\w+)/);
|
|
74
|
-
const obfsHost = item.plugin_opts.match(/obfs-host=(.+)$/);
|
|
75
|
-
if (obfs) {
|
|
76
|
-
nodeConfig.obfs = obfs[1];
|
|
77
|
-
nodeConfig.obfsHost = obfsHost ? obfsHost[1] : 'www.bing.com';
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return nodeConfig;
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
return await requestConfigFromRemote();
|
|
84
|
-
};
|
|
85
|
-
exports.getShadowsocksJSONConfig = getShadowsocksJSONConfig;
|
|
86
|
-
//# sourceMappingURL=ShadowsocksJsonSubscribeProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ShadowsocksJsonSubscribeProvider.js","sourceRoot":"","sources":["../../src/provider/ShadowsocksJsonSubscribeProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { ShadowsocksNodeConfig, ShadowsocksSubscribeProviderConfig, SubscriptionUserinfo } from '../types';
|
|
2
|
-
import Provider from './Provider';
|
|
3
|
-
import { GetNodeListFunction, GetSubscriptionUserInfoFunction } from './types';
|
|
4
|
-
export default class ShadowsocksSubscribeProvider extends Provider {
|
|
5
|
-
#private;
|
|
6
|
-
readonly udpRelay?: boolean;
|
|
7
|
-
constructor(name: string, config: ShadowsocksSubscribeProviderConfig);
|
|
8
|
-
get url(): string;
|
|
9
|
-
getSubscriptionUserInfo: GetSubscriptionUserInfoFunction;
|
|
10
|
-
getNodeList: GetNodeListFunction;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* @see https://shadowsocks.org/en/spec/SIP002-URI-Scheme.html
|
|
14
|
-
*/
|
|
15
|
-
export declare const getShadowsocksSubscription: (url: string, udpRelay?: boolean, requestUserAgent?: string) => Promise<{
|
|
16
|
-
readonly nodeList: Array<ShadowsocksNodeConfig>;
|
|
17
|
-
readonly subscriptionUserinfo?: SubscriptionUserinfo | undefined;
|
|
18
|
-
}>;
|
|
@@ -1,84 +0,0 @@
|
|
|
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.getShadowsocksSubscription = void 0;
|
|
7
|
-
const assert_1 = __importDefault(require("assert"));
|
|
8
|
-
const zod_1 = require("zod");
|
|
9
|
-
const utils_1 = require("../utils");
|
|
10
|
-
const relayable_url_1 = __importDefault(require("../utils/relayable-url"));
|
|
11
|
-
const ss_1 = require("../utils/ss");
|
|
12
|
-
const Provider_1 = __importDefault(require("./Provider"));
|
|
13
|
-
class ShadowsocksSubscribeProvider extends Provider_1.default {
|
|
14
|
-
udpRelay;
|
|
15
|
-
#originalUrl;
|
|
16
|
-
constructor(name, config) {
|
|
17
|
-
super(name, config);
|
|
18
|
-
const schema = zod_1.z.object({
|
|
19
|
-
url: zod_1.z.string().url(),
|
|
20
|
-
udpRelay: zod_1.z.boolean().optional(),
|
|
21
|
-
});
|
|
22
|
-
const result = schema.safeParse(config);
|
|
23
|
-
// istanbul ignore next
|
|
24
|
-
if (!result.success) {
|
|
25
|
-
throw new utils_1.SurgioError('ShadowsocksSubscribeProvider 配置校验失败', {
|
|
26
|
-
cause: result.error,
|
|
27
|
-
providerName: name,
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
this.#originalUrl = result.data.url;
|
|
31
|
-
this.udpRelay = result.data.udpRelay;
|
|
32
|
-
this.supportGetSubscriptionUserInfo = true;
|
|
33
|
-
}
|
|
34
|
-
// istanbul ignore next
|
|
35
|
-
get url() {
|
|
36
|
-
return (0, relayable_url_1.default)(this.#originalUrl, this.config.relayUrl);
|
|
37
|
-
}
|
|
38
|
-
getSubscriptionUserInfo = async (params = {}) => {
|
|
39
|
-
const requestUserAgent = this.determineRequestUserAgent(params.requestUserAgent);
|
|
40
|
-
const { subscriptionUserinfo } = await (0, exports.getShadowsocksSubscription)(this.url, this.udpRelay, requestUserAgent);
|
|
41
|
-
if (subscriptionUserinfo) {
|
|
42
|
-
return subscriptionUserinfo;
|
|
43
|
-
}
|
|
44
|
-
return undefined;
|
|
45
|
-
};
|
|
46
|
-
getNodeList = async (params = {}) => {
|
|
47
|
-
const requestUserAgent = this.determineRequestUserAgent(params.requestUserAgent);
|
|
48
|
-
const { nodeList } = await (0, exports.getShadowsocksSubscription)(this.url, this.udpRelay, requestUserAgent);
|
|
49
|
-
if (this.config.hooks?.afterNodeListResponse) {
|
|
50
|
-
const newList = await this.config.hooks.afterNodeListResponse(nodeList, params);
|
|
51
|
-
if (newList) {
|
|
52
|
-
return newList;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return nodeList;
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
exports.default = ShadowsocksSubscribeProvider;
|
|
59
|
-
/**
|
|
60
|
-
* @see https://shadowsocks.org/en/spec/SIP002-URI-Scheme.html
|
|
61
|
-
*/
|
|
62
|
-
const getShadowsocksSubscription = async (url, udpRelay, requestUserAgent) => {
|
|
63
|
-
(0, assert_1.default)(url, '未指定订阅地址 url');
|
|
64
|
-
const response = await Provider_1.default.requestCacheableResource(url, {
|
|
65
|
-
requestUserAgent,
|
|
66
|
-
});
|
|
67
|
-
const nodeList = (0, utils_1.fromBase64)(response.body)
|
|
68
|
-
.split('\n')
|
|
69
|
-
.filter((item) => !!item && item.startsWith('ss://'))
|
|
70
|
-
.map((item) => {
|
|
71
|
-
const nodeConfig = (0, ss_1.parseSSUri)(item);
|
|
72
|
-
if (udpRelay !== void 0) {
|
|
73
|
-
;
|
|
74
|
-
nodeConfig.udpRelay = udpRelay;
|
|
75
|
-
}
|
|
76
|
-
return nodeConfig;
|
|
77
|
-
});
|
|
78
|
-
return {
|
|
79
|
-
nodeList,
|
|
80
|
-
subscriptionUserinfo: response.subscriptionUserinfo,
|
|
81
|
-
};
|
|
82
|
-
};
|
|
83
|
-
exports.getShadowsocksSubscription = getShadowsocksSubscription;
|
|
84
|
-
//# sourceMappingURL=ShadowsocksSubscribeProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ShadowsocksSubscribeProvider.js","sourceRoot":"","sources":["../../src/provider/ShadowsocksSubscribeProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ShadowsocksrNodeConfig, ShadowsocksrSubscribeProviderConfig, SubscriptionUserinfo } from '../types';
|
|
2
|
-
import Provider from './Provider';
|
|
3
|
-
import { GetNodeListFunction, GetSubscriptionUserInfoFunction } from './types';
|
|
4
|
-
export default class ShadowsocksrSubscribeProvider extends Provider {
|
|
5
|
-
#private;
|
|
6
|
-
readonly udpRelay?: boolean;
|
|
7
|
-
constructor(name: string, config: ShadowsocksrSubscribeProviderConfig);
|
|
8
|
-
get url(): string;
|
|
9
|
-
getSubscriptionUserInfo: GetSubscriptionUserInfoFunction;
|
|
10
|
-
getNodeList: GetNodeListFunction;
|
|
11
|
-
}
|
|
12
|
-
export declare const getShadowsocksrSubscription: (url: string, udpRelay?: boolean, requestUserAgent?: string) => Promise<{
|
|
13
|
-
readonly nodeList: Array<ShadowsocksrNodeConfig>;
|
|
14
|
-
readonly subscriptionUserinfo?: SubscriptionUserinfo | undefined;
|
|
15
|
-
}>;
|
|
@@ -1,93 +0,0 @@
|
|
|
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.getShadowsocksrSubscription = void 0;
|
|
7
|
-
const assert_1 = __importDefault(require("assert"));
|
|
8
|
-
const logger_1 = require("@surgio/logger");
|
|
9
|
-
const zod_1 = require("zod");
|
|
10
|
-
const utils_1 = require("../utils");
|
|
11
|
-
const relayable_url_1 = __importDefault(require("../utils/relayable-url"));
|
|
12
|
-
const subscription_1 = require("../utils/subscription");
|
|
13
|
-
const ssr_1 = require("../utils/ssr");
|
|
14
|
-
const Provider_1 = __importDefault(require("./Provider"));
|
|
15
|
-
const logger = (0, logger_1.createLogger)({
|
|
16
|
-
service: 'surgio:ShadowsocksrSubscribeProvider',
|
|
17
|
-
});
|
|
18
|
-
class ShadowsocksrSubscribeProvider extends Provider_1.default {
|
|
19
|
-
udpRelay;
|
|
20
|
-
#originalUrl;
|
|
21
|
-
constructor(name, config) {
|
|
22
|
-
super(name, config);
|
|
23
|
-
const schema = zod_1.z.object({
|
|
24
|
-
url: zod_1.z.string().url(),
|
|
25
|
-
udpRelay: zod_1.z.boolean().optional(),
|
|
26
|
-
});
|
|
27
|
-
const result = schema.safeParse(config);
|
|
28
|
-
// istanbul ignore next
|
|
29
|
-
if (!result.success) {
|
|
30
|
-
throw new utils_1.SurgioError('ShadowsocksrSubscribeProvider 配置校验失败', {
|
|
31
|
-
cause: result.error,
|
|
32
|
-
providerName: name,
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
this.#originalUrl = result.data.url;
|
|
36
|
-
this.udpRelay = result.data.udpRelay;
|
|
37
|
-
this.supportGetSubscriptionUserInfo = true;
|
|
38
|
-
}
|
|
39
|
-
// istanbul ignore next
|
|
40
|
-
get url() {
|
|
41
|
-
return (0, relayable_url_1.default)(this.#originalUrl, this.config.relayUrl);
|
|
42
|
-
}
|
|
43
|
-
getSubscriptionUserInfo = async (params = {}) => {
|
|
44
|
-
const requestUserAgent = this.determineRequestUserAgent(params.requestUserAgent);
|
|
45
|
-
const { subscriptionUserinfo } = await (0, exports.getShadowsocksrSubscription)(this.url, this.udpRelay, requestUserAgent);
|
|
46
|
-
if (subscriptionUserinfo) {
|
|
47
|
-
return subscriptionUserinfo;
|
|
48
|
-
}
|
|
49
|
-
return undefined;
|
|
50
|
-
};
|
|
51
|
-
getNodeList = async (params = {}) => {
|
|
52
|
-
const requestUserAgent = this.determineRequestUserAgent(params.requestUserAgent);
|
|
53
|
-
const { nodeList } = await (0, exports.getShadowsocksrSubscription)(this.url, this.udpRelay, requestUserAgent);
|
|
54
|
-
if (this.config.hooks?.afterNodeListResponse) {
|
|
55
|
-
const newList = await this.config.hooks.afterNodeListResponse(nodeList, params);
|
|
56
|
-
if (newList) {
|
|
57
|
-
return newList;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return nodeList;
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
exports.default = ShadowsocksrSubscribeProvider;
|
|
64
|
-
const getShadowsocksrSubscription = async (url, udpRelay, requestUserAgent) => {
|
|
65
|
-
(0, assert_1.default)(url, '未指定订阅地址 url');
|
|
66
|
-
const response = await Provider_1.default.requestCacheableResource(url, {
|
|
67
|
-
requestUserAgent,
|
|
68
|
-
});
|
|
69
|
-
const nodeList = (0, utils_1.fromBase64)(response.body)
|
|
70
|
-
.split('\n')
|
|
71
|
-
.filter((item) => !!item && item.startsWith('ssr://'))
|
|
72
|
-
.map((str) => {
|
|
73
|
-
const nodeConfig = (0, ssr_1.parseSSRUri)(str);
|
|
74
|
-
if (udpRelay !== void 0) {
|
|
75
|
-
;
|
|
76
|
-
nodeConfig.udpRelay = udpRelay;
|
|
77
|
-
}
|
|
78
|
-
return nodeConfig;
|
|
79
|
-
});
|
|
80
|
-
if (!response.subscriptionUserinfo &&
|
|
81
|
-
nodeList[0].nodeName.includes('剩余流量')) {
|
|
82
|
-
const dataNode = nodeList[0];
|
|
83
|
-
const expireNode = nodeList[1];
|
|
84
|
-
response.subscriptionUserinfo = (0, subscription_1.parseSubscriptionNode)(dataNode.nodeName, expireNode.nodeName);
|
|
85
|
-
logger.debug('%s received subscription node - raw: %s %s | parsed: %j', url, dataNode.nodeName, expireNode.nodeName, response.subscriptionUserinfo);
|
|
86
|
-
}
|
|
87
|
-
return {
|
|
88
|
-
nodeList,
|
|
89
|
-
subscriptionUserinfo: response.subscriptionUserinfo,
|
|
90
|
-
};
|
|
91
|
-
};
|
|
92
|
-
exports.getShadowsocksrSubscription = getShadowsocksrSubscription;
|
|
93
|
-
//# sourceMappingURL=ShadowsocksrSubscribeProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ShadowsocksrSubscribeProvider.js","sourceRoot":"","sources":["../../src/provider/ShadowsocksrSubscribeProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { ShadowsocksNodeConfig, SsdProviderConfig, SubscriptionUserinfo } from '../types';
|
|
2
|
-
import Provider from './Provider';
|
|
3
|
-
import { GetNodeListFunction, GetSubscriptionUserInfoFunction } from './types';
|
|
4
|
-
export default class SsdProvider extends Provider {
|
|
5
|
-
#private;
|
|
6
|
-
readonly udpRelay?: boolean;
|
|
7
|
-
constructor(name: string, config: SsdProviderConfig);
|
|
8
|
-
get url(): string;
|
|
9
|
-
getSubscriptionUserInfo: GetSubscriptionUserInfoFunction;
|
|
10
|
-
getNodeList: GetNodeListFunction;
|
|
11
|
-
}
|
|
12
|
-
export declare const getSsdSubscription: (url: string, udpRelay?: boolean, requestUserAgent?: string) => Promise<{
|
|
13
|
-
readonly nodeList: Array<ShadowsocksNodeConfig>;
|
|
14
|
-
readonly subscriptionUserinfo?: SubscriptionUserinfo | undefined;
|
|
15
|
-
}>;
|
|
16
|
-
export declare const parseSsdConfig: (globalConfig: SsdSubscription, server: SsdServer, udpRelay?: boolean) => ShadowsocksNodeConfig | undefined;
|
|
17
|
-
export interface SsdSubscription {
|
|
18
|
-
airport: string;
|
|
19
|
-
port: number;
|
|
20
|
-
encryption: string;
|
|
21
|
-
password: string;
|
|
22
|
-
servers: ReadonlyArray<SsdServer>;
|
|
23
|
-
plugin?: string;
|
|
24
|
-
plugin_options?: string;
|
|
25
|
-
traffic_used?: number;
|
|
26
|
-
traffic_total?: number;
|
|
27
|
-
expiry?: string;
|
|
28
|
-
}
|
|
29
|
-
export interface SsdServer {
|
|
30
|
-
server: string;
|
|
31
|
-
port?: number;
|
|
32
|
-
encryption?: string;
|
|
33
|
-
password?: string;
|
|
34
|
-
plugin?: string;
|
|
35
|
-
plugin_options?: string;
|
|
36
|
-
id?: number;
|
|
37
|
-
remarks?: string;
|
|
38
|
-
ratio?: number;
|
|
39
|
-
}
|