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.
Files changed (260) hide show
  1. package/bin/dev +0 -0
  2. package/package.json +69 -75
  3. package/build/base-command.d.ts +0 -20
  4. package/build/base-command.js +0 -75
  5. package/build/base-command.js.map +0 -1
  6. package/build/commands/check.d.ts +0 -10
  7. package/build/commands/check.js +0 -87
  8. package/build/commands/check.js.map +0 -1
  9. package/build/commands/clean-cache.d.ts +0 -6
  10. package/build/commands/clean-cache.js +0 -28
  11. package/build/commands/clean-cache.js.map +0 -1
  12. package/build/commands/doctor.d.ts +0 -6
  13. package/build/commands/doctor.js +0 -20
  14. package/build/commands/doctor.js.map +0 -1
  15. package/build/commands/generate.d.ts +0 -7
  16. package/build/commands/generate.js +0 -94
  17. package/build/commands/generate.js.map +0 -1
  18. package/build/commands/lint.d.ts +0 -6
  19. package/build/commands/lint.js +0 -37
  20. package/build/commands/lint.js.map +0 -1
  21. package/build/commands/new.d.ts +0 -6
  22. package/build/commands/new.js +0 -37
  23. package/build/commands/new.js.map +0 -1
  24. package/build/commands/subscriptions.d.ts +0 -7
  25. package/build/commands/subscriptions.js +0 -95
  26. package/build/commands/subscriptions.js.map +0 -1
  27. package/build/commands/upload.d.ts +0 -6
  28. package/build/commands/upload.js +0 -91
  29. package/build/commands/upload.js.map +0 -1
  30. package/build/config.d.ts +0 -6
  31. package/build/config.js +0 -156
  32. package/build/config.js.map +0 -1
  33. package/build/configurables.d.ts +0 -88
  34. package/build/configurables.js +0 -52
  35. package/build/configurables.js.map +0 -1
  36. package/build/constant/constant.d.ts +0 -36
  37. package/build/constant/constant.js +0 -160
  38. package/build/constant/constant.js.map +0 -1
  39. package/build/constant/env.d.ts +0 -9
  40. package/build/constant/env.js +0 -13
  41. package/build/constant/env.js.map +0 -1
  42. package/build/constant/error.d.ts +0 -1
  43. package/build/constant/error.js +0 -5
  44. package/build/constant/error.js.map +0 -1
  45. package/build/constant/index.d.ts +0 -3
  46. package/build/constant/index.js +0 -20
  47. package/build/constant/index.js.map +0 -1
  48. package/build/filters/classes.d.ts +0 -13
  49. package/build/filters/classes.js +0 -42
  50. package/build/filters/classes.js.map +0 -1
  51. package/build/filters/filters.d.ts +0 -25
  52. package/build/filters/filters.js +0 -107
  53. package/build/filters/filters.js.map +0 -1
  54. package/build/filters/index.d.ts +0 -2
  55. package/build/filters/index.js +0 -32
  56. package/build/filters/index.js.map +0 -1
  57. package/build/filters/utils.d.ts +0 -16
  58. package/build/filters/utils.js +0 -159
  59. package/build/filters/utils.js.map +0 -1
  60. package/build/generator/artifact.d.ts +0 -142
  61. package/build/generator/artifact.js +0 -370
  62. package/build/generator/artifact.js.map +0 -1
  63. package/build/generator/index.d.ts +0 -3
  64. package/build/generator/index.js +0 -25
  65. package/build/generator/index.js.map +0 -1
  66. package/build/generator/json-template.d.ts +0 -11
  67. package/build/generator/json-template.js +0 -66
  68. package/build/generator/json-template.js.map +0 -1
  69. package/build/generator/template.d.ts +0 -8
  70. package/build/generator/template.js +0 -234
  71. package/build/generator/template.js.map +0 -1
  72. package/build/hooks/init.d.ts +0 -3
  73. package/build/hooks/init.js +0 -33
  74. package/build/hooks/init.js.map +0 -1
  75. package/build/index.d.ts +0 -85
  76. package/build/index.js +0 -64
  77. package/build/index.js.map +0 -1
  78. package/build/internal.d.ts +0 -5
  79. package/build/internal.js +0 -25
  80. package/build/internal.js.map +0 -1
  81. package/build/misc/deprecation.d.ts +0 -0
  82. package/build/misc/deprecation.js +0 -2
  83. package/build/misc/deprecation.js.map +0 -1
  84. package/build/misc/flag_cn.d.ts +0 -56
  85. package/build/misc/flag_cn.js +0 -154
  86. package/build/misc/flag_cn.js.map +0 -1
  87. package/build/provider/BlackSSLProvider.d.ts +0 -11
  88. package/build/provider/BlackSSLProvider.js +0 -93
  89. package/build/provider/BlackSSLProvider.js.map +0 -1
  90. package/build/provider/ClashProvider.d.ts +0 -24
  91. package/build/provider/ClashProvider.js +0 -476
  92. package/build/provider/ClashProvider.js.map +0 -1
  93. package/build/provider/CustomProvider.d.ts +0 -10
  94. package/build/provider/CustomProvider.js +0 -144
  95. package/build/provider/CustomProvider.js.map +0 -1
  96. package/build/provider/Provider.d.ts +0 -17
  97. package/build/provider/Provider.js +0 -111
  98. package/build/provider/Provider.js.map +0 -1
  99. package/build/provider/ShadowsocksJsonSubscribeProvider.d.ts +0 -11
  100. package/build/provider/ShadowsocksJsonSubscribeProvider.js +0 -86
  101. package/build/provider/ShadowsocksJsonSubscribeProvider.js.map +0 -1
  102. package/build/provider/ShadowsocksSubscribeProvider.d.ts +0 -18
  103. package/build/provider/ShadowsocksSubscribeProvider.js +0 -84
  104. package/build/provider/ShadowsocksSubscribeProvider.js.map +0 -1
  105. package/build/provider/ShadowsocksrSubscribeProvider.d.ts +0 -15
  106. package/build/provider/ShadowsocksrSubscribeProvider.js +0 -93
  107. package/build/provider/ShadowsocksrSubscribeProvider.js.map +0 -1
  108. package/build/provider/SsdProvider.d.ts +0 -39
  109. package/build/provider/SsdProvider.js +0 -138
  110. package/build/provider/SsdProvider.js.map +0 -1
  111. package/build/provider/TrojanProvider.d.ts +0 -24
  112. package/build/provider/TrojanProvider.js +0 -98
  113. package/build/provider/TrojanProvider.js.map +0 -1
  114. package/build/provider/V2rayNSubscribeProvider.d.ts +0 -25
  115. package/build/provider/V2rayNSubscribeProvider.js +0 -181
  116. package/build/provider/V2rayNSubscribeProvider.js.map +0 -1
  117. package/build/provider/index.d.ts +0 -17
  118. package/build/provider/index.js +0 -54
  119. package/build/provider/index.js.map +0 -1
  120. package/build/provider/types.d.ts +0 -18
  121. package/build/provider/types.js +0 -3
  122. package/build/provider/types.js.map +0 -1
  123. package/build/redis.d.ts +0 -9
  124. package/build/redis.js +0 -63
  125. package/build/redis.js.map +0 -1
  126. package/build/types.d.ts +0 -138
  127. package/build/types.js +0 -31
  128. package/build/types.js.map +0 -1
  129. package/build/utils/cache.d.ts +0 -23
  130. package/build/utils/cache.js +0 -98
  131. package/build/utils/cache.js.map +0 -1
  132. package/build/utils/clash.d.ts +0 -3
  133. package/build/utils/clash.js +0 -448
  134. package/build/utils/clash.js.map +0 -1
  135. package/build/utils/constant.d.ts +0 -1
  136. package/build/utils/constant.js +0 -19
  137. package/build/utils/constant.js.map +0 -1
  138. package/build/utils/dns.d.ts +0 -4
  139. package/build/utils/dns.js +0 -51
  140. package/build/utils/dns.js.map +0 -1
  141. package/build/utils/doctor.d.ts +0 -2
  142. package/build/utils/doctor.js +0 -38
  143. package/build/utils/doctor.js.map +0 -1
  144. package/build/utils/env-flag.d.ts +0 -9
  145. package/build/utils/env-flag.js +0 -41
  146. package/build/utils/env-flag.js.map +0 -1
  147. package/build/utils/error-helper.d.ts +0 -2
  148. package/build/utils/error-helper.js +0 -62
  149. package/build/utils/error-helper.js.map +0 -1
  150. package/build/utils/errors.d.ts +0 -19
  151. package/build/utils/errors.js +0 -60
  152. package/build/utils/errors.js.map +0 -1
  153. package/build/utils/flag.d.ts +0 -3
  154. package/build/utils/flag.js +0 -79
  155. package/build/utils/flag.js.map +0 -1
  156. package/build/utils/http-client.d.ts +0 -3
  157. package/build/utils/http-client.js +0 -82
  158. package/build/utils/http-client.js.map +0 -1
  159. package/build/utils/index.d.ts +0 -90
  160. package/build/utils/index.js +0 -529
  161. package/build/utils/index.js.map +0 -1
  162. package/build/utils/linter.d.ts +0 -4
  163. package/build/utils/linter.js +0 -49
  164. package/build/utils/linter.js.map +0 -1
  165. package/build/utils/loon.d.ts +0 -3
  166. package/build/utils/loon.js +0 -236
  167. package/build/utils/loon.js.map +0 -1
  168. package/build/utils/quantumult.d.ts +0 -6
  169. package/build/utils/quantumult.js +0 -240
  170. package/build/utils/quantumult.js.map +0 -1
  171. package/build/utils/relayable-url.d.ts +0 -1
  172. package/build/utils/relayable-url.js +0 -18
  173. package/build/utils/relayable-url.js.map +0 -1
  174. package/build/utils/remote-snippet.d.ts +0 -8
  175. package/build/utils/remote-snippet.js +0 -198
  176. package/build/utils/remote-snippet.js.map +0 -1
  177. package/build/utils/singbox.d.ts +0 -3
  178. package/build/utils/singbox.js +0 -377
  179. package/build/utils/singbox.js.map +0 -1
  180. package/build/utils/ss.d.ts +0 -3
  181. package/build/utils/ss.js +0 -97
  182. package/build/utils/ss.js.map +0 -1
  183. package/build/utils/ssr.d.ts +0 -7
  184. package/build/utils/ssr.js +0 -53
  185. package/build/utils/ssr.js.map +0 -1
  186. package/build/utils/subscription.d.ts +0 -11
  187. package/build/utils/subscription.js +0 -68
  188. package/build/utils/subscription.js.map +0 -1
  189. package/build/utils/surfboard.d.ts +0 -7
  190. package/build/utils/surfboard.js +0 -184
  191. package/build/utils/surfboard.js.map +0 -1
  192. package/build/utils/surge.d.ts +0 -8
  193. package/build/utils/surge.js +0 -407
  194. package/build/utils/surge.js.map +0 -1
  195. package/build/utils/time.d.ts +0 -1
  196. package/build/utils/time.js +0 -6
  197. package/build/utils/time.js.map +0 -1
  198. package/build/utils/tmp-helper.d.ts +0 -30
  199. package/build/utils/tmp-helper.js +0 -102
  200. package/build/utils/tmp-helper.js.map +0 -1
  201. package/build/utils/trojan.d.ts +0 -2
  202. package/build/utils/trojan.js +0 -38
  203. package/build/utils/trojan.js.map +0 -1
  204. package/build/utils/useragent.d.ts +0 -18
  205. package/build/utils/useragent.js +0 -210
  206. package/build/utils/useragent.js.map +0 -1
  207. package/build/validators/artifact.d.ts +0 -44
  208. package/build/validators/artifact.js +0 -26
  209. package/build/validators/artifact.js.map +0 -1
  210. package/build/validators/common.d.ts +0 -377
  211. package/build/validators/common.js +0 -106
  212. package/build/validators/common.js.map +0 -1
  213. package/build/validators/filter.d.ts +0 -10
  214. package/build/validators/filter.js +0 -15
  215. package/build/validators/filter.js.map +0 -1
  216. package/build/validators/hooks.d.ts +0 -9
  217. package/build/validators/hooks.js +0 -11
  218. package/build/validators/hooks.js.map +0 -1
  219. package/build/validators/http.d.ts +0 -366
  220. package/build/validators/http.js +0 -23
  221. package/build/validators/http.js.map +0 -1
  222. package/build/validators/hysteria2.d.ts +0 -196
  223. package/build/validators/hysteria2.js +0 -15
  224. package/build/validators/hysteria2.js.map +0 -1
  225. package/build/validators/index.d.ts +0 -17
  226. package/build/validators/index.js +0 -34
  227. package/build/validators/index.js.map +0 -1
  228. package/build/validators/provider.d.ts +0 -120
  229. package/build/validators/provider.js +0 -46
  230. package/build/validators/provider.js.map +0 -1
  231. package/build/validators/shadowsocks.d.ts +0 -252
  232. package/build/validators/shadowsocks.js +0 -31
  233. package/build/validators/shadowsocks.js.map +0 -1
  234. package/build/validators/shadowsocksr.d.ts +0 -184
  235. package/build/validators/shadowsocksr.js +0 -19
  236. package/build/validators/shadowsocksr.js.map +0 -1
  237. package/build/validators/snell.d.ts +0 -178
  238. package/build/validators/snell.js +0 -17
  239. package/build/validators/snell.js.map +0 -1
  240. package/build/validators/socks5.d.ts +0 -196
  241. package/build/validators/socks5.js +0 -15
  242. package/build/validators/socks5.js.map +0 -1
  243. package/build/validators/surgio-config.d.ts +0 -387
  244. package/build/validators/surgio-config.js +0 -101
  245. package/build/validators/surgio-config.js.map +0 -1
  246. package/build/validators/trojan.d.ts +0 -255
  247. package/build/validators/trojan.js +0 -16
  248. package/build/validators/trojan.js.map +0 -1
  249. package/build/validators/tuic.d.ts +0 -741
  250. package/build/validators/tuic.js +0 -21
  251. package/build/validators/tuic.js.map +0 -1
  252. package/build/validators/vless.d.ts +0 -389
  253. package/build/validators/vless.js +0 -31
  254. package/build/validators/vless.js.map +0 -1
  255. package/build/validators/vmess.d.ts +0 -425
  256. package/build/validators/vmess.js +0 -86
  257. package/build/validators/vmess.js.map +0 -1
  258. package/build/validators/wireguard.d.ts +0 -230
  259. package/build/validators/wireguard.js +0 -26
  260. 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 | undefined;
19
- tls13?: boolean | undefined;
20
- requestUserAgent?: string | undefined;
21
- }) => Promise<{
22
- readonly nodeList: Array<TrojanNodeConfig>;
23
- readonly subscriptionUserinfo?: SubscriptionUserinfo | undefined;
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 | undefined;
20
- skipCertVerify?: boolean | undefined;
21
- udpRelay?: boolean | undefined;
22
- tls13?: boolean | undefined;
23
- requestUserAgent?: string | undefined;
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.getProvider = exports.V2rayNSubscribeProvider = exports.TrojanProvider = exports.SsdProvider = exports.ShadowsocksSubscribeProvider = exports.ShadowsocksrSubscribeProvider = exports.ShadowsocksJsonSubscribeProvider = exports.CustomProvider = exports.ClashProvider = exports.BlackSSLProvider = void 0;
7
- const types_1 = require("../types");
8
- const BlackSSLProvider_1 = __importDefault(require("./BlackSSLProvider"));
9
- exports.BlackSSLProvider = BlackSSLProvider_1.default;
10
- const ClashProvider_1 = __importDefault(require("./ClashProvider"));
11
- exports.ClashProvider = ClashProvider_1.default;
12
- const CustomProvider_1 = __importDefault(require("./CustomProvider"));
13
- exports.CustomProvider = CustomProvider_1.default;
14
- const ShadowsocksJsonSubscribeProvider_1 = __importDefault(require("./ShadowsocksJsonSubscribeProvider"));
15
- exports.ShadowsocksJsonSubscribeProvider = ShadowsocksJsonSubscribeProvider_1.default;
16
- const ShadowsocksrSubscribeProvider_1 = __importDefault(require("./ShadowsocksrSubscribeProvider"));
17
- exports.ShadowsocksrSubscribeProvider = ShadowsocksrSubscribeProvider_1.default;
18
- const ShadowsocksSubscribeProvider_1 = __importDefault(require("./ShadowsocksSubscribeProvider"));
19
- exports.ShadowsocksSubscribeProvider = ShadowsocksSubscribeProvider_1.default;
20
- const SsdProvider_1 = __importDefault(require("./SsdProvider"));
21
- exports.SsdProvider = SsdProvider_1.default;
22
- const TrojanProvider_1 = __importDefault(require("./TrojanProvider"));
23
- exports.TrojanProvider = TrojanProvider_1.default;
24
- const V2rayNSubscribeProvider_1 = __importDefault(require("./V2rayNSubscribeProvider"));
25
- exports.V2rayNSubscribeProvider = V2rayNSubscribeProvider_1.default;
26
- async function getProvider(name, config) {
27
- if (typeof config === 'function') {
28
- config = await config();
29
- }
30
- switch (config.type) {
31
- case types_1.SupportProviderEnum.BlackSSL:
32
- return new BlackSSLProvider_1.default(name, config);
33
- case types_1.SupportProviderEnum.ShadowsocksJsonSubscribe:
34
- return new ShadowsocksJsonSubscribeProvider_1.default(name, config);
35
- case types_1.SupportProviderEnum.ShadowsocksSubscribe:
36
- return new ShadowsocksSubscribeProvider_1.default(name, config);
37
- case types_1.SupportProviderEnum.ShadowsocksrSubscribe:
38
- return new ShadowsocksrSubscribeProvider_1.default(name, config);
39
- case types_1.SupportProviderEnum.Custom:
40
- return new CustomProvider_1.default(name, config);
41
- case types_1.SupportProviderEnum.V2rayNSubscribe:
42
- return new V2rayNSubscribeProvider_1.default(name, config);
43
- case types_1.SupportProviderEnum.Clash:
44
- return new ClashProvider_1.default(name, config);
45
- case types_1.SupportProviderEnum.Ssd:
46
- return new SsdProvider_1.default(name, config);
47
- case types_1.SupportProviderEnum.Trojan:
48
- return new TrojanProvider_1.default(name, config);
49
- default:
50
- throw new Error(`Unsupported provider type: ${config.type}`);
51
- }
52
- }
53
- exports.getProvider = getProvider;
54
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/provider/index.ts"],"names":[],"mappings":";;;;;;AAAA,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;AAvCD,kCAuCC"}
@@ -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;