surgio 3.11.3 → 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.
Files changed (259) hide show
  1. package/package.json +48 -50
  2. package/build/base-command.d.ts +0 -20
  3. package/build/base-command.js +0 -75
  4. package/build/base-command.js.map +0 -1
  5. package/build/commands/check.d.ts +0 -10
  6. package/build/commands/check.js +0 -97
  7. package/build/commands/check.js.map +0 -1
  8. package/build/commands/clean-cache.d.ts +0 -6
  9. package/build/commands/clean-cache.js +0 -28
  10. package/build/commands/clean-cache.js.map +0 -1
  11. package/build/commands/doctor.d.ts +0 -6
  12. package/build/commands/doctor.js +0 -20
  13. package/build/commands/doctor.js.map +0 -1
  14. package/build/commands/generate.d.ts +0 -7
  15. package/build/commands/generate.js +0 -100
  16. package/build/commands/generate.js.map +0 -1
  17. package/build/commands/lint.d.ts +0 -6
  18. package/build/commands/lint.js +0 -37
  19. package/build/commands/lint.js.map +0 -1
  20. package/build/commands/new.d.ts +0 -6
  21. package/build/commands/new.js +0 -37
  22. package/build/commands/new.js.map +0 -1
  23. package/build/commands/subscriptions.d.ts +0 -7
  24. package/build/commands/subscriptions.js +0 -105
  25. package/build/commands/subscriptions.js.map +0 -1
  26. package/build/commands/upload.d.ts +0 -6
  27. package/build/commands/upload.js +0 -91
  28. package/build/commands/upload.js.map +0 -1
  29. package/build/config.d.ts +0 -6
  30. package/build/config.js +0 -156
  31. package/build/config.js.map +0 -1
  32. package/build/configurables.d.ts +0 -89
  33. package/build/configurables.js +0 -52
  34. package/build/configurables.js.map +0 -1
  35. package/build/constant/constant.d.ts +0 -36
  36. package/build/constant/constant.js +0 -160
  37. package/build/constant/constant.js.map +0 -1
  38. package/build/constant/env.d.ts +0 -9
  39. package/build/constant/env.js +0 -13
  40. package/build/constant/env.js.map +0 -1
  41. package/build/constant/error.d.ts +0 -1
  42. package/build/constant/error.js +0 -5
  43. package/build/constant/error.js.map +0 -1
  44. package/build/constant/index.d.ts +0 -3
  45. package/build/constant/index.js +0 -20
  46. package/build/constant/index.js.map +0 -1
  47. package/build/filters/classes.d.ts +0 -13
  48. package/build/filters/classes.js +0 -42
  49. package/build/filters/classes.js.map +0 -1
  50. package/build/filters/filters.d.ts +0 -25
  51. package/build/filters/filters.js +0 -107
  52. package/build/filters/filters.js.map +0 -1
  53. package/build/filters/index.d.ts +0 -2
  54. package/build/filters/index.js +0 -42
  55. package/build/filters/index.js.map +0 -1
  56. package/build/filters/utils.d.ts +0 -16
  57. package/build/filters/utils.js +0 -159
  58. package/build/filters/utils.js.map +0 -1
  59. package/build/generator/artifact.d.ts +0 -102
  60. package/build/generator/artifact.js +0 -370
  61. package/build/generator/artifact.js.map +0 -1
  62. package/build/generator/index.d.ts +0 -3
  63. package/build/generator/index.js +0 -25
  64. package/build/generator/index.js.map +0 -1
  65. package/build/generator/json-template.d.ts +0 -11
  66. package/build/generator/json-template.js +0 -66
  67. package/build/generator/json-template.js.map +0 -1
  68. package/build/generator/template.d.ts +0 -8
  69. package/build/generator/template.js +0 -234
  70. package/build/generator/template.js.map +0 -1
  71. package/build/hooks/init.d.ts +0 -3
  72. package/build/hooks/init.js +0 -43
  73. package/build/hooks/init.js.map +0 -1
  74. package/build/index.d.ts +0 -76
  75. package/build/index.js +0 -74
  76. package/build/index.js.map +0 -1
  77. package/build/internal.d.ts +0 -5
  78. package/build/internal.js +0 -25
  79. package/build/internal.js.map +0 -1
  80. package/build/misc/deprecation.d.ts +0 -0
  81. package/build/misc/deprecation.js +0 -2
  82. package/build/misc/deprecation.js.map +0 -1
  83. package/build/misc/flag_cn.d.ts +0 -56
  84. package/build/misc/flag_cn.js +0 -154
  85. package/build/misc/flag_cn.js.map +0 -1
  86. package/build/provider/BlackSSLProvider.d.ts +0 -11
  87. package/build/provider/BlackSSLProvider.js +0 -93
  88. package/build/provider/BlackSSLProvider.js.map +0 -1
  89. package/build/provider/ClashProvider.d.ts +0 -24
  90. package/build/provider/ClashProvider.js +0 -476
  91. package/build/provider/ClashProvider.js.map +0 -1
  92. package/build/provider/CustomProvider.d.ts +0 -10
  93. package/build/provider/CustomProvider.js +0 -144
  94. package/build/provider/CustomProvider.js.map +0 -1
  95. package/build/provider/Provider.d.ts +0 -17
  96. package/build/provider/Provider.js +0 -121
  97. package/build/provider/Provider.js.map +0 -1
  98. package/build/provider/ShadowsocksJsonSubscribeProvider.d.ts +0 -11
  99. package/build/provider/ShadowsocksJsonSubscribeProvider.js +0 -86
  100. package/build/provider/ShadowsocksJsonSubscribeProvider.js.map +0 -1
  101. package/build/provider/ShadowsocksSubscribeProvider.d.ts +0 -18
  102. package/build/provider/ShadowsocksSubscribeProvider.js +0 -84
  103. package/build/provider/ShadowsocksSubscribeProvider.js.map +0 -1
  104. package/build/provider/ShadowsocksrSubscribeProvider.d.ts +0 -15
  105. package/build/provider/ShadowsocksrSubscribeProvider.js +0 -93
  106. package/build/provider/ShadowsocksrSubscribeProvider.js.map +0 -1
  107. package/build/provider/SsdProvider.d.ts +0 -39
  108. package/build/provider/SsdProvider.js +0 -138
  109. package/build/provider/SsdProvider.js.map +0 -1
  110. package/build/provider/TrojanProvider.d.ts +0 -24
  111. package/build/provider/TrojanProvider.js +0 -98
  112. package/build/provider/TrojanProvider.js.map +0 -1
  113. package/build/provider/V2rayNSubscribeProvider.d.ts +0 -25
  114. package/build/provider/V2rayNSubscribeProvider.js +0 -181
  115. package/build/provider/V2rayNSubscribeProvider.js.map +0 -1
  116. package/build/provider/index.d.ts +0 -17
  117. package/build/provider/index.js +0 -54
  118. package/build/provider/index.js.map +0 -1
  119. package/build/provider/types.d.ts +0 -18
  120. package/build/provider/types.js +0 -3
  121. package/build/provider/types.js.map +0 -1
  122. package/build/redis.d.ts +0 -9
  123. package/build/redis.js +0 -63
  124. package/build/redis.js.map +0 -1
  125. package/build/types.d.ts +0 -138
  126. package/build/types.js +0 -31
  127. package/build/types.js.map +0 -1
  128. package/build/utils/cache.d.ts +0 -23
  129. package/build/utils/cache.js +0 -98
  130. package/build/utils/cache.js.map +0 -1
  131. package/build/utils/clash.d.ts +0 -3
  132. package/build/utils/clash.js +0 -451
  133. package/build/utils/clash.js.map +0 -1
  134. package/build/utils/constant.d.ts +0 -1
  135. package/build/utils/constant.js +0 -19
  136. package/build/utils/constant.js.map +0 -1
  137. package/build/utils/dns.d.ts +0 -3
  138. package/build/utils/dns.js +0 -51
  139. package/build/utils/dns.js.map +0 -1
  140. package/build/utils/doctor.d.ts +0 -2
  141. package/build/utils/doctor.js +0 -38
  142. package/build/utils/doctor.js.map +0 -1
  143. package/build/utils/env-flag.d.ts +0 -9
  144. package/build/utils/env-flag.js +0 -41
  145. package/build/utils/env-flag.js.map +0 -1
  146. package/build/utils/error-helper.d.ts +0 -2
  147. package/build/utils/error-helper.js +0 -62
  148. package/build/utils/error-helper.js.map +0 -1
  149. package/build/utils/errors.d.ts +0 -19
  150. package/build/utils/errors.js +0 -60
  151. package/build/utils/errors.js.map +0 -1
  152. package/build/utils/flag.d.ts +0 -3
  153. package/build/utils/flag.js +0 -79
  154. package/build/utils/flag.js.map +0 -1
  155. package/build/utils/http-client.d.ts +0 -3
  156. package/build/utils/http-client.js +0 -92
  157. package/build/utils/http-client.js.map +0 -1
  158. package/build/utils/index.d.ts +0 -90
  159. package/build/utils/index.js +0 -529
  160. package/build/utils/index.js.map +0 -1
  161. package/build/utils/linter.d.ts +0 -4
  162. package/build/utils/linter.js +0 -49
  163. package/build/utils/linter.js.map +0 -1
  164. package/build/utils/loon.d.ts +0 -3
  165. package/build/utils/loon.js +0 -236
  166. package/build/utils/loon.js.map +0 -1
  167. package/build/utils/quantumult.d.ts +0 -6
  168. package/build/utils/quantumult.js +0 -240
  169. package/build/utils/quantumult.js.map +0 -1
  170. package/build/utils/relayable-url.d.ts +0 -1
  171. package/build/utils/relayable-url.js +0 -18
  172. package/build/utils/relayable-url.js.map +0 -1
  173. package/build/utils/remote-snippet.d.ts +0 -8
  174. package/build/utils/remote-snippet.js +0 -208
  175. package/build/utils/remote-snippet.js.map +0 -1
  176. package/build/utils/singbox.d.ts +0 -3
  177. package/build/utils/singbox.js +0 -377
  178. package/build/utils/singbox.js.map +0 -1
  179. package/build/utils/ss.d.ts +0 -3
  180. package/build/utils/ss.js +0 -97
  181. package/build/utils/ss.js.map +0 -1
  182. package/build/utils/ssr.d.ts +0 -7
  183. package/build/utils/ssr.js +0 -53
  184. package/build/utils/ssr.js.map +0 -1
  185. package/build/utils/subscription.d.ts +0 -11
  186. package/build/utils/subscription.js +0 -68
  187. package/build/utils/subscription.js.map +0 -1
  188. package/build/utils/surfboard.d.ts +0 -7
  189. package/build/utils/surfboard.js +0 -184
  190. package/build/utils/surfboard.js.map +0 -1
  191. package/build/utils/surge.d.ts +0 -8
  192. package/build/utils/surge.js +0 -407
  193. package/build/utils/surge.js.map +0 -1
  194. package/build/utils/time.d.ts +0 -1
  195. package/build/utils/time.js +0 -6
  196. package/build/utils/time.js.map +0 -1
  197. package/build/utils/tmp-helper.d.ts +0 -30
  198. package/build/utils/tmp-helper.js +0 -102
  199. package/build/utils/tmp-helper.js.map +0 -1
  200. package/build/utils/trojan.d.ts +0 -2
  201. package/build/utils/trojan.js +0 -38
  202. package/build/utils/trojan.js.map +0 -1
  203. package/build/utils/useragent.d.ts +0 -18
  204. package/build/utils/useragent.js +0 -210
  205. package/build/utils/useragent.js.map +0 -1
  206. package/build/validators/artifact.d.ts +0 -47
  207. package/build/validators/artifact.js +0 -27
  208. package/build/validators/artifact.js.map +0 -1
  209. package/build/validators/common.d.ts +0 -377
  210. package/build/validators/common.js +0 -106
  211. package/build/validators/common.js.map +0 -1
  212. package/build/validators/filter.d.ts +0 -10
  213. package/build/validators/filter.js +0 -15
  214. package/build/validators/filter.js.map +0 -1
  215. package/build/validators/hooks.d.ts +0 -9
  216. package/build/validators/hooks.js +0 -11
  217. package/build/validators/hooks.js.map +0 -1
  218. package/build/validators/http.d.ts +0 -366
  219. package/build/validators/http.js +0 -23
  220. package/build/validators/http.js.map +0 -1
  221. package/build/validators/hysteria2.d.ts +0 -196
  222. package/build/validators/hysteria2.js +0 -15
  223. package/build/validators/hysteria2.js.map +0 -1
  224. package/build/validators/index.d.ts +0 -17
  225. package/build/validators/index.js +0 -34
  226. package/build/validators/index.js.map +0 -1
  227. package/build/validators/provider.d.ts +0 -120
  228. package/build/validators/provider.js +0 -46
  229. package/build/validators/provider.js.map +0 -1
  230. package/build/validators/shadowsocks.d.ts +0 -252
  231. package/build/validators/shadowsocks.js +0 -31
  232. package/build/validators/shadowsocks.js.map +0 -1
  233. package/build/validators/shadowsocksr.d.ts +0 -184
  234. package/build/validators/shadowsocksr.js +0 -19
  235. package/build/validators/shadowsocksr.js.map +0 -1
  236. package/build/validators/snell.d.ts +0 -178
  237. package/build/validators/snell.js +0 -17
  238. package/build/validators/snell.js.map +0 -1
  239. package/build/validators/socks5.d.ts +0 -196
  240. package/build/validators/socks5.js +0 -15
  241. package/build/validators/socks5.js.map +0 -1
  242. package/build/validators/surgio-config.d.ts +0 -392
  243. package/build/validators/surgio-config.js +0 -101
  244. package/build/validators/surgio-config.js.map +0 -1
  245. package/build/validators/trojan.d.ts +0 -255
  246. package/build/validators/trojan.js +0 -16
  247. package/build/validators/trojan.js.map +0 -1
  248. package/build/validators/tuic.d.ts +0 -741
  249. package/build/validators/tuic.js +0 -21
  250. package/build/validators/tuic.js.map +0 -1
  251. package/build/validators/vless.d.ts +0 -389
  252. package/build/validators/vless.js +0 -31
  253. package/build/validators/vless.js.map +0 -1
  254. package/build/validators/vmess.d.ts +0 -425
  255. package/build/validators/vmess.js +0 -86
  256. package/build/validators/vmess.js.map +0 -1
  257. package/build/validators/wireguard.d.ts +0 -230
  258. package/build/validators/wireguard.js +0 -26
  259. package/build/validators/wireguard.js.map +0 -1
@@ -1,138 +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.parseSsdConfig = exports.getSsdSubscription = void 0;
7
- const assert_1 = __importDefault(require("assert"));
8
- const logger_1 = require("@surgio/logger");
9
- const bytes_1 = __importDefault(require("bytes"));
10
- const zod_1 = require("zod");
11
- const types_1 = require("../types");
12
- const utils_1 = require("../utils");
13
- const relayable_url_1 = __importDefault(require("../utils/relayable-url"));
14
- const Provider_1 = __importDefault(require("./Provider"));
15
- const logger = (0, logger_1.createLogger)({
16
- service: 'surgio:SsdProvider',
17
- });
18
- class SsdProvider extends Provider_1.default {
19
- #originalUrl;
20
- udpRelay;
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('SsdProvider 配置校验失败', {
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.getSsdSubscription)(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.getSsdSubscription)(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 = SsdProvider;
64
- // 协议定义:https://github.com/TheCGDF/SSD-Windows/wiki/HTTP%E8%AE%A2%E9%98%85%E5%8D%8F%E5%AE%9A
65
- const getSsdSubscription = async (url, udpRelay, requestUserAgent) => {
66
- (0, assert_1.default)(url, '未指定订阅地址 url');
67
- const response = await Provider_1.default.requestCacheableResource(url, {
68
- requestUserAgent,
69
- });
70
- // istanbul ignore next
71
- if (!response.body.startsWith('ssd://')) {
72
- throw new Error(`暂仅支持 ssd:// 开头的订阅地址,${url} 无法处理`);
73
- }
74
- const base64 = response.body.replace('ssd://', '');
75
- const data = JSON.parse((0, utils_1.fromBase64)(base64));
76
- const { servers, traffic_used, traffic_total, expiry } = data;
77
- const nodeList = servers.map((server) => (0, exports.parseSsdConfig)(data, server, udpRelay));
78
- if (!response.subscriptionUserinfo &&
79
- traffic_used &&
80
- traffic_total &&
81
- expiry) {
82
- response.subscriptionUserinfo = {
83
- upload: 0,
84
- download: bytes_1.default.parse(`${traffic_used}GB`),
85
- total: bytes_1.default.parse(`${traffic_total}GB`),
86
- expire: Math.floor(new Date(expiry).getTime() / 1000),
87
- };
88
- }
89
- return {
90
- nodeList: nodeList.filter((item) => item !== undefined),
91
- subscriptionUserinfo: response.subscriptionUserinfo,
92
- };
93
- };
94
- exports.getSsdSubscription = getSsdSubscription;
95
- const parseSsdConfig = (globalConfig, server, udpRelay) => {
96
- const { airport, port, encryption, password } = globalConfig;
97
- const plugin = server.plugin ?? globalConfig.plugin;
98
- const pluginOptsString = server.plugin_options ?? globalConfig.plugin_options;
99
- const pluginOpts = pluginOptsString
100
- ? (0, utils_1.decodeStringList)(pluginOptsString.split(';'))
101
- : {};
102
- // istanbul ignore next
103
- if (plugin && !['simple-obfs', 'v2ray-plugin'].includes(plugin)) {
104
- logger.warn(`不支持从 SSD 订阅中读取 ${plugin} 类型的 Shadowsocks 节点,节点 ${server.remarks} 会被省略`);
105
- return undefined;
106
- }
107
- // istanbul ignore next
108
- if (plugin === 'v2ray-plugin' &&
109
- pluginOpts.mode.toLowerCase() === 'quic') {
110
- logger.warn(`不支持从 SSD 订阅中读取 QUIC 模式的 Shadowsocks 节点,节点 ${server.remarks} 会被省略`);
111
- return undefined;
112
- }
113
- return {
114
- type: types_1.NodeTypeEnum.Shadowsocks,
115
- nodeName: server.remarks ?? `${airport} ${server.server}:${server.port ?? port}`,
116
- hostname: server.server,
117
- port: server.port ?? port,
118
- method: server.encryption ?? encryption,
119
- password: server.password ?? password,
120
- udpRelay: udpRelay === true,
121
- // obfs-local
122
- ...(plugin && plugin === 'simple-obfs'
123
- ? {
124
- obfs: pluginOpts.obfs,
125
- obfsHost: pluginOpts['obfs-host'] || 'www.bing.com',
126
- }
127
- : null),
128
- // v2ray-plugin
129
- ...(plugin && plugin === 'v2ray-plugin'
130
- ? {
131
- obfs: pluginOpts.tls ? 'wss' : 'ws',
132
- obfsHost: pluginOpts.host,
133
- }
134
- : null),
135
- };
136
- };
137
- exports.parseSsdConfig = parseSsdConfig;
138
- //# sourceMappingURL=SsdProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SsdProvider.js","sourceRoot":"","sources":["../../src/provider/SsdProvider.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import { SubscriptionUserinfo, TrojanNodeConfig, TrojanProviderConfig } from '../types';
2
- import Provider from './Provider';
3
- import { GetNodeListFunction, GetSubscriptionUserInfoFunction } from './types';
4
- export default class TrojanProvider extends Provider {
5
- #private;
6
- readonly udpRelay?: boolean;
7
- readonly tls13?: boolean;
8
- constructor(name: string, config: TrojanProviderConfig);
9
- get url(): string;
10
- getSubscriptionUserInfo: GetSubscriptionUserInfoFunction;
11
- getNodeList: GetNodeListFunction;
12
- }
13
- /**
14
- * @see https://github.com/trojan-gfw/trojan-url/blob/master/trojan-url.py
15
- */
16
- export declare const getTrojanSubscription: ({ url, udpRelay, tls13, requestUserAgent, }: {
17
- url: string;
18
- udpRelay?: boolean;
19
- tls13?: boolean;
20
- requestUserAgent?: string;
21
- }) => Promise<{
22
- readonly nodeList: Array<TrojanNodeConfig>;
23
- readonly subscriptionUserinfo?: SubscriptionUserinfo;
24
- }>;
@@ -1,98 +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.getTrojanSubscription = 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 trojan_1 = require("../utils/trojan");
12
- const Provider_1 = __importDefault(require("./Provider"));
13
- class TrojanProvider extends Provider_1.default {
14
- #originalUrl;
15
- udpRelay;
16
- tls13;
17
- constructor(name, config) {
18
- super(name, config);
19
- const schema = zod_1.z.object({
20
- url: zod_1.z.string().url(),
21
- udpRelay: zod_1.z.boolean().optional(),
22
- tls13: zod_1.z.boolean().optional(),
23
- });
24
- const result = schema.safeParse(config);
25
- // istanbul ignore next
26
- if (!result.success) {
27
- throw new utils_1.SurgioError('TrojanProvider 配置校验失败', {
28
- cause: result.error,
29
- providerName: name,
30
- });
31
- }
32
- this.#originalUrl = result.data.url;
33
- this.udpRelay = result.data.udpRelay;
34
- this.tls13 = result.data.tls13;
35
- this.supportGetSubscriptionUserInfo = true;
36
- }
37
- // istanbul ignore next
38
- get url() {
39
- return (0, relayable_url_1.default)(this.#originalUrl, this.config.relayUrl);
40
- }
41
- getSubscriptionUserInfo = async (params = {}) => {
42
- const requestUserAgent = this.determineRequestUserAgent(params.requestUserAgent);
43
- const { subscriptionUserinfo } = await (0, exports.getTrojanSubscription)({
44
- url: this.url,
45
- udpRelay: this.udpRelay,
46
- tls13: this.tls13,
47
- requestUserAgent: requestUserAgent || this.config.requestUserAgent,
48
- });
49
- if (subscriptionUserinfo) {
50
- return subscriptionUserinfo;
51
- }
52
- return undefined;
53
- };
54
- getNodeList = async (params = {}) => {
55
- const requestUserAgent = this.determineRequestUserAgent(params.requestUserAgent);
56
- const { nodeList } = await (0, exports.getTrojanSubscription)({
57
- url: this.url,
58
- udpRelay: this.udpRelay,
59
- tls13: this.tls13,
60
- requestUserAgent: requestUserAgent,
61
- });
62
- if (this.config.hooks?.afterNodeListResponse) {
63
- const newList = await this.config.hooks.afterNodeListResponse(nodeList, params);
64
- if (newList) {
65
- return newList;
66
- }
67
- }
68
- return nodeList;
69
- };
70
- }
71
- exports.default = TrojanProvider;
72
- /**
73
- * @see https://github.com/trojan-gfw/trojan-url/blob/master/trojan-url.py
74
- */
75
- const getTrojanSubscription = async ({ url, udpRelay, tls13, requestUserAgent, }) => {
76
- (0, assert_1.default)(url, '未指定订阅地址 url');
77
- const response = await Provider_1.default.requestCacheableResource(url, {
78
- requestUserAgent: requestUserAgent || 'shadowrocket',
79
- });
80
- const config = (0, utils_1.fromBase64)(response.body);
81
- const nodeList = config
82
- .split('\n')
83
- .filter((item) => !!item && item.startsWith('trojan://'))
84
- .map((item) => {
85
- const nodeConfig = (0, trojan_1.parseTrojanUri)(item);
86
- return {
87
- ...nodeConfig,
88
- udpRelay,
89
- tls13,
90
- };
91
- });
92
- return {
93
- nodeList,
94
- subscriptionUserinfo: response.subscriptionUserinfo,
95
- };
96
- };
97
- exports.getTrojanSubscription = getTrojanSubscription;
98
- //# sourceMappingURL=TrojanProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TrojanProvider.js","sourceRoot":"","sources":["../../src/provider/TrojanProvider.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- import { ShadowsocksNodeConfig, V2rayNSubscribeProviderConfig, VmessNodeConfig } from '../types';
2
- import Provider from './Provider';
3
- import { GetNodeListFunction } from './types';
4
- export default class V2rayNSubscribeProvider extends Provider {
5
- #private;
6
- readonly compatibleMode?: boolean;
7
- readonly skipCertVerify?: boolean;
8
- readonly udpRelay?: boolean;
9
- readonly tls13?: boolean;
10
- constructor(name: string, config: V2rayNSubscribeProviderConfig);
11
- get url(): string;
12
- getNodeList: GetNodeListFunction;
13
- }
14
- /**
15
- * @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)
16
- */
17
- export declare const getV2rayNSubscription: ({ url, isCompatibleMode, skipCertVerify, tls13, udpRelay, requestUserAgent, }: {
18
- url: string;
19
- isCompatibleMode?: boolean;
20
- skipCertVerify?: boolean;
21
- udpRelay?: boolean;
22
- tls13?: boolean;
23
- requestUserAgent?: string;
24
- }) => Promise<Array<VmessNodeConfig | ShadowsocksNodeConfig>>;
25
- export declare const parseJSONConfig: (json: string, isCompatibleMode?: boolean | undefined, skipCertVerify?: boolean | undefined, udpRelay?: boolean | undefined, tls13?: boolean | undefined) => VmessNodeConfig | undefined;
@@ -1,181 +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.parseJSONConfig = exports.getV2rayNSubscription = void 0;
7
- const assert_1 = __importDefault(require("assert"));
8
- const logger_1 = require("@surgio/logger");
9
- const zod_1 = require("zod");
10
- const lodash_1 = __importDefault(require("lodash"));
11
- const types_1 = require("../types");
12
- const utils_1 = require("../utils");
13
- const relayable_url_1 = __importDefault(require("../utils/relayable-url"));
14
- const ss_1 = require("../utils/ss");
15
- const Provider_1 = __importDefault(require("./Provider"));
16
- class V2rayNSubscribeProvider extends Provider_1.default {
17
- compatibleMode;
18
- skipCertVerify;
19
- udpRelay;
20
- tls13;
21
- #originalUrl;
22
- constructor(name, config) {
23
- super(name, config);
24
- const schema = zod_1.z.object({
25
- url: zod_1.z.string().url(),
26
- udpRelay: zod_1.z.boolean().optional(),
27
- tls13: zod_1.z.boolean().optional(),
28
- compatibleMode: zod_1.z.boolean().optional(),
29
- skipCertVerify: zod_1.z.boolean().optional(),
30
- });
31
- const result = schema.safeParse(config);
32
- // istanbul ignore next
33
- if (!result.success) {
34
- throw new utils_1.SurgioError('V2rayNSubscribeProvider 配置校验失败', {
35
- cause: result.error,
36
- providerName: name,
37
- });
38
- }
39
- this.#originalUrl = result.data.url;
40
- this.compatibleMode = result.data.compatibleMode;
41
- this.skipCertVerify = result.data.skipCertVerify;
42
- this.tls13 = result.data.tls13;
43
- this.udpRelay = result.data.udpRelay;
44
- }
45
- // istanbul ignore next
46
- get url() {
47
- return (0, relayable_url_1.default)(this.#originalUrl, this.config.relayUrl);
48
- }
49
- getNodeList = async (params = {}) => {
50
- const requestUserAgent = this.determineRequestUserAgent(params.requestUserAgent);
51
- const nodeList = await (0, exports.getV2rayNSubscription)({
52
- url: this.url,
53
- skipCertVerify: this.skipCertVerify,
54
- tls13: this.tls13,
55
- udpRelay: this.udpRelay,
56
- isCompatibleMode: this.compatibleMode,
57
- requestUserAgent: requestUserAgent,
58
- });
59
- if (this.config.hooks?.afterNodeListResponse) {
60
- const newList = await this.config.hooks.afterNodeListResponse(nodeList, params);
61
- if (newList) {
62
- return newList;
63
- }
64
- }
65
- return nodeList;
66
- };
67
- }
68
- exports.default = V2rayNSubscribeProvider;
69
- /**
70
- * @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)
71
- */
72
- const getV2rayNSubscription = async ({ url, isCompatibleMode, skipCertVerify, tls13, udpRelay, requestUserAgent, }) => {
73
- (0, assert_1.default)(url, '未指定订阅地址 url');
74
- if (isCompatibleMode) {
75
- logger_1.logger.warn('运行在兼容模式,请注意生成的节点是否正确。');
76
- }
77
- async function requestConfigFromRemote() {
78
- const response = await Provider_1.default.requestCacheableResource(url, {
79
- requestUserAgent,
80
- });
81
- const configString = response.body;
82
- const configList = (0, utils_1.fromBase64)(configString)
83
- .split('\n')
84
- .filter((item) => !!item)
85
- .filter((item) => {
86
- const pick = item.startsWith('vmess://') || item.startsWith('ss://');
87
- if (!pick) {
88
- logger_1.logger.warn(`不支持读取 V2rayN 订阅中的节点 ${item},该节点会被省略。`);
89
- }
90
- return pick;
91
- });
92
- return configList
93
- .map((item) => {
94
- if (item.startsWith('vmess://')) {
95
- return (0, exports.parseJSONConfig)((0, utils_1.fromBase64)(item.replace('vmess://', '')), isCompatibleMode, skipCertVerify, udpRelay, tls13);
96
- }
97
- if (item.startsWith('ss://')) {
98
- return {
99
- ...(0, ss_1.parseSSUri)(item),
100
- udpRelay: udpRelay === true,
101
- skipCertVerify: skipCertVerify === true,
102
- tls13: tls13 === true,
103
- };
104
- }
105
- return undefined;
106
- })
107
- .filter((item) => !!item);
108
- }
109
- return await requestConfigFromRemote();
110
- };
111
- exports.getV2rayNSubscription = getV2rayNSubscription;
112
- const parseJSONConfig = (json, isCompatibleMode, skipCertVerify, udpRelay, tls13) => {
113
- const config = JSON.parse(json);
114
- // istanbul ignore next
115
- if (!isCompatibleMode && (!config.v || Number(config.v) !== 2)) {
116
- throw new Error(`该节点 ${config.ps} 可能不是一个有效的 V2rayN 节点。请参考 https://url.royli.dev/Qtrci 进行排查, 或者将解析模式改为兼容模式`);
117
- }
118
- // istanbul ignore next
119
- if (!['tcp', 'ws', 'h2', 'grpc'].includes(config.net)) {
120
- logger_1.logger.warn(`不支持读取 network 类型为 ${config.net} 的 Vmess 节点,节点 ${config.ps} 会被省略。`);
121
- return undefined;
122
- }
123
- // istanbul ignore next
124
- if (!['none', 'http'].includes(config.type)) {
125
- logger_1.logger.warn(`不支持读取 type 类型为 ${config.type} 的 Vmess 节点,节点 ${config.ps} 会被省略。`);
126
- return undefined;
127
- }
128
- const vmessNode = {
129
- nodeName: config.ps,
130
- type: types_1.NodeTypeEnum.Vmess,
131
- hostname: config.add,
132
- port: config.port,
133
- method: config.scy || 'auto',
134
- uuid: config.id,
135
- alterId: config.aid || '0',
136
- network: config.net,
137
- udpRelay: udpRelay === true,
138
- tls: config.tls === 'tls',
139
- };
140
- if (vmessNode.tls) {
141
- if (skipCertVerify) {
142
- vmessNode.skipCertVerify = true;
143
- }
144
- if (tls13) {
145
- vmessNode.tls13 = true;
146
- }
147
- if (config.sni) {
148
- vmessNode.sni = config.sni;
149
- }
150
- }
151
- switch (config.net) {
152
- case 'tcp':
153
- if (config.type === 'http') {
154
- vmessNode.network = 'http';
155
- lodash_1.default.set(vmessNode, 'httpOpts.path', [config.path || '/']);
156
- lodash_1.default.set(vmessNode, 'httpOpts.method', 'GET');
157
- if (config.host) {
158
- lodash_1.default.set(vmessNode, 'httpOpts.headers.Host', config.host);
159
- }
160
- }
161
- break;
162
- case 'ws':
163
- lodash_1.default.set(vmessNode, 'wsOpts.path', config.path || '/');
164
- if (config.host) {
165
- lodash_1.default.set(vmessNode, 'wsOpts.headers.Host', config.host);
166
- }
167
- break;
168
- case 'h2':
169
- lodash_1.default.set(vmessNode, 'h2Opts.path', config.path || '/');
170
- if (config.host) {
171
- lodash_1.default.set(vmessNode, 'h2Opts.host', [config.host]);
172
- }
173
- break;
174
- case 'grpc':
175
- lodash_1.default.set(vmessNode, 'grpcOpts.serviceName', config.path);
176
- break;
177
- }
178
- return vmessNode;
179
- };
180
- exports.parseJSONConfig = parseJSONConfig;
181
- //# sourceMappingURL=V2rayNSubscribeProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"V2rayNSubscribeProvider.js","sourceRoot":"","sources":["../../src/provider/V2rayNSubscribeProvider.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { PossibleProviderConfigType } from '../types';
2
- import { ProviderDefineFunction } from '../configurables';
3
- import BlackSSLProvider from './BlackSSLProvider';
4
- import ClashProvider from './ClashProvider';
5
- import CustomProvider from './CustomProvider';
6
- import ShadowsocksJsonSubscribeProvider from './ShadowsocksJsonSubscribeProvider';
7
- import ShadowsocksrSubscribeProvider from './ShadowsocksrSubscribeProvider';
8
- import ShadowsocksSubscribeProvider from './ShadowsocksSubscribeProvider';
9
- import SsdProvider from './SsdProvider';
10
- import TrojanProvider from './TrojanProvider';
11
- import V2rayNSubscribeProvider from './V2rayNSubscribeProvider';
12
- import { PossibleProviderType } from './types';
13
- import Provider from './Provider';
14
- export { BlackSSLProvider, ClashProvider, CustomProvider, ShadowsocksJsonSubscribeProvider, ShadowsocksrSubscribeProvider, ShadowsocksSubscribeProvider, SsdProvider, TrojanProvider, V2rayNSubscribeProvider, };
15
- export type { Provider };
16
- export type * from './types';
17
- export declare function getProvider(name: string, config: ReturnType<ProviderDefineFunction<any>> | PossibleProviderConfigType): Promise<PossibleProviderType>;
@@ -1,54 +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.V2rayNSubscribeProvider = exports.TrojanProvider = exports.SsdProvider = exports.ShadowsocksSubscribeProvider = exports.ShadowsocksrSubscribeProvider = exports.ShadowsocksJsonSubscribeProvider = exports.CustomProvider = exports.ClashProvider = exports.BlackSSLProvider = void 0;
7
- exports.getProvider = getProvider;
8
- const types_1 = require("../types");
9
- const BlackSSLProvider_1 = __importDefault(require("./BlackSSLProvider"));
10
- exports.BlackSSLProvider = BlackSSLProvider_1.default;
11
- const ClashProvider_1 = __importDefault(require("./ClashProvider"));
12
- exports.ClashProvider = ClashProvider_1.default;
13
- const CustomProvider_1 = __importDefault(require("./CustomProvider"));
14
- exports.CustomProvider = CustomProvider_1.default;
15
- const ShadowsocksJsonSubscribeProvider_1 = __importDefault(require("./ShadowsocksJsonSubscribeProvider"));
16
- exports.ShadowsocksJsonSubscribeProvider = ShadowsocksJsonSubscribeProvider_1.default;
17
- const ShadowsocksrSubscribeProvider_1 = __importDefault(require("./ShadowsocksrSubscribeProvider"));
18
- exports.ShadowsocksrSubscribeProvider = ShadowsocksrSubscribeProvider_1.default;
19
- const ShadowsocksSubscribeProvider_1 = __importDefault(require("./ShadowsocksSubscribeProvider"));
20
- exports.ShadowsocksSubscribeProvider = ShadowsocksSubscribeProvider_1.default;
21
- const SsdProvider_1 = __importDefault(require("./SsdProvider"));
22
- exports.SsdProvider = SsdProvider_1.default;
23
- const TrojanProvider_1 = __importDefault(require("./TrojanProvider"));
24
- exports.TrojanProvider = TrojanProvider_1.default;
25
- const V2rayNSubscribeProvider_1 = __importDefault(require("./V2rayNSubscribeProvider"));
26
- exports.V2rayNSubscribeProvider = V2rayNSubscribeProvider_1.default;
27
- async function getProvider(name, config) {
28
- if (typeof config === 'function') {
29
- config = await config();
30
- }
31
- switch (config.type) {
32
- case types_1.SupportProviderEnum.BlackSSL:
33
- return new BlackSSLProvider_1.default(name, config);
34
- case types_1.SupportProviderEnum.ShadowsocksJsonSubscribe:
35
- return new ShadowsocksJsonSubscribeProvider_1.default(name, config);
36
- case types_1.SupportProviderEnum.ShadowsocksSubscribe:
37
- return new ShadowsocksSubscribeProvider_1.default(name, config);
38
- case types_1.SupportProviderEnum.ShadowsocksrSubscribe:
39
- return new ShadowsocksrSubscribeProvider_1.default(name, config);
40
- case types_1.SupportProviderEnum.Custom:
41
- return new CustomProvider_1.default(name, config);
42
- case types_1.SupportProviderEnum.V2rayNSubscribe:
43
- return new V2rayNSubscribeProvider_1.default(name, config);
44
- case types_1.SupportProviderEnum.Clash:
45
- return new ClashProvider_1.default(name, config);
46
- case types_1.SupportProviderEnum.Ssd:
47
- return new SsdProvider_1.default(name, config);
48
- case types_1.SupportProviderEnum.Trojan:
49
- return new TrojanProvider_1.default(name, config);
50
- default:
51
- throw new Error(`Unsupported provider type: ${config.type}`);
52
- }
53
- }
54
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/provider/index.ts"],"names":[],"mappings":";;;;;;AA8BA,kCAuCC;AArED,oCAA0E;AAG1E,0EAAiD;AAa/C,2BAbK,0BAAgB,CAaL;AAZlB,oEAA2C;AAazC,wBAbK,uBAAa,CAaL;AAZf,sEAA6C;AAa3C,yBAbK,wBAAc,CAaL;AAZhB,0GAAiF;AAa/E,2CAbK,0CAAgC,CAaL;AAZlC,oGAA2E;AAazE,wCAbK,uCAA6B,CAaL;AAZ/B,kGAAyE;AAavE,uCAbK,sCAA4B,CAaL;AAZ9B,gEAAuC;AAarC,sBAbK,qBAAW,CAaL;AAZb,sEAA6C;AAa3C,yBAbK,wBAAc,CAaL;AAZhB,wFAA+D;AAa7D,kCAbK,iCAAuB,CAaL;AAMlB,KAAK,UAAU,WAAW,CAC/B,IAAY,EACZ,MAA4E;IAE5E,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,GAAG,MAAM,MAAM,EAAE,CAAA;IACzB,CAAC;IAED,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,2BAAmB,CAAC,QAAQ;YAC/B,OAAO,IAAI,0BAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAE3C,KAAK,2BAAmB,CAAC,wBAAwB;YAC/C,OAAO,IAAI,0CAAgC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAE3D,KAAK,2BAAmB,CAAC,oBAAoB;YAC3C,OAAO,IAAI,sCAA4B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAEvD,KAAK,2BAAmB,CAAC,qBAAqB;YAC5C,OAAO,IAAI,uCAA6B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAExD,KAAK,2BAAmB,CAAC,MAAM;YAC7B,OAAO,IAAI,wBAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAEzC,KAAK,2BAAmB,CAAC,eAAe;YACtC,OAAO,IAAI,iCAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAElD,KAAK,2BAAmB,CAAC,KAAK;YAC5B,OAAO,IAAI,uBAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAExC,KAAK,2BAAmB,CAAC,GAAG;YAC1B,OAAO,IAAI,qBAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAEtC,KAAK,2BAAmB,CAAC,MAAM;YAC7B,OAAO,IAAI,wBAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAEzC;YACE,MAAM,IAAI,KAAK,CAAC,8BAA+B,MAAc,CAAC,IAAI,EAAE,CAAC,CAAA;IACzE,CAAC;AACH,CAAC"}
@@ -1,18 +0,0 @@
1
- import { PossibleNodeConfigType, SubscriptionUserinfo } from '../types';
2
- import BlackSSLProvider from './BlackSSLProvider';
3
- import ClashProvider from './ClashProvider';
4
- import CustomProvider from './CustomProvider';
5
- import ShadowsocksJsonSubscribeProvider from './ShadowsocksJsonSubscribeProvider';
6
- import ShadowsocksrSubscribeProvider from './ShadowsocksrSubscribeProvider';
7
- import ShadowsocksSubscribeProvider from './ShadowsocksSubscribeProvider';
8
- import SsdProvider from './SsdProvider';
9
- import TrojanProvider from './TrojanProvider';
10
- import V2rayNSubscribeProvider from './V2rayNSubscribeProvider';
11
- export type PossibleProviderType = BlackSSLProvider | ShadowsocksJsonSubscribeProvider | ShadowsocksSubscribeProvider | CustomProvider | V2rayNSubscribeProvider | ShadowsocksrSubscribeProvider | ClashProvider | SsdProvider | TrojanProvider;
12
- export type GetNodeListParams = Record<string, unknown> & {
13
- requestUserAgent?: string;
14
- };
15
- export type GetNodeListFunction = (params?: GetNodeListParams) => Promise<ReadonlyArray<PossibleNodeConfigType>>;
16
- export type GetSubscriptionUserInfoFunction = (params?: {
17
- requestUserAgent?: string;
18
- }) => Promise<SubscriptionUserinfo | undefined>;
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/provider/types.ts"],"names":[],"mappings":""}
package/build/redis.d.ts DELETED
@@ -1,9 +0,0 @@
1
- import Redis from 'ioredis';
2
- declare const redis: {
3
- hasRedis: () => boolean;
4
- createRedis(_redisURL: string, customRedis?: any): Redis;
5
- getRedis(): Redis;
6
- destroyRedis(): Promise<void>;
7
- cleanCache(): Promise<void>;
8
- };
9
- export default redis;