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
package/build/redis.js DELETED
@@ -1,63 +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
- const logger_1 = require("@surgio/logger");
7
- const ioredis_1 = __importDefault(require("ioredis"));
8
- const constant_1 = require("./constant");
9
- const logger = (0, logger_1.createLogger)({ service: 'surgio:redis' });
10
- const prepareRedis = () => {
11
- let client = null;
12
- let redisURL = null;
13
- return {
14
- hasRedis: () => !!client,
15
- createRedis(_redisURL, customRedis) {
16
- if (client && redisURL) {
17
- logger.debug('Redis client already created with URL: %s', redisURL);
18
- return client;
19
- }
20
- redisURL = _redisURL;
21
- if (customRedis) {
22
- client = new customRedis(_redisURL);
23
- }
24
- else {
25
- client = new ioredis_1.default(_redisURL.includes('?')
26
- ? `${_redisURL}&family=0`
27
- : `${_redisURL}?family=0`);
28
- }
29
- return client;
30
- },
31
- getRedis() {
32
- if (!client) {
33
- throw new Error('Redis client is not initialized');
34
- }
35
- return client;
36
- },
37
- async destroyRedis() {
38
- if (client) {
39
- await client.quit();
40
- client = null;
41
- redisURL = null;
42
- }
43
- },
44
- async cleanCache() {
45
- if (!client) {
46
- return;
47
- }
48
- const keysToRemove = await Promise.all(Object.keys(constant_1.CACHE_KEYS).map((key) => {
49
- if (!client)
50
- return;
51
- return client.keys(`${constant_1.CACHE_KEYS[key]}:*`);
52
- }));
53
- await Promise.all(keysToRemove.map((keys) => {
54
- if (!client || !keys || !keys.length)
55
- return;
56
- return client.del(keys);
57
- }));
58
- },
59
- };
60
- };
61
- const redis = prepareRedis();
62
- exports.default = redis;
63
- //# sourceMappingURL=redis.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redis.js","sourceRoot":"","sources":["../src/redis.ts"],"names":[],"mappings":";;;;;AAAA,2CAA6C;AAC7C,sDAA2B;AAE3B,yCAAuC;AAEvC,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAA;AAExD,MAAM,YAAY,GAAG,GAAG,EAAE;IACxB,IAAI,MAAM,GAAiB,IAAI,CAAA;IAC/B,IAAI,QAAQ,GAAkB,IAAI,CAAA;IAElC,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM;QACxB,WAAW,CAAC,SAAiB,EAAE,WAAiB;YAC9C,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;gBACvB,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,QAAQ,CAAC,CAAA;gBACnE,OAAO,MAAM,CAAA;YACf,CAAC;YACD,QAAQ,GAAG,SAAS,CAAA;YAEpB,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAA;YACrC,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,IAAI,iBAAK,CAChB,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;oBACrB,CAAC,CAAC,GAAG,SAAS,WAAW;oBACzB,CAAC,CAAC,GAAG,SAAS,WAAW,CAC5B,CAAA;YACH,CAAC;YAED,OAAO,MAAe,CAAA;QACxB,CAAC;QACD,QAAQ;YACN,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;YACpD,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QACD,KAAK,CAAC,YAAY;YAChB,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;gBACnB,MAAM,GAAG,IAAI,CAAA;gBACb,QAAQ,GAAG,IAAI,CAAA;YACjB,CAAC;QACH,CAAC;QACD,KAAK,CAAC,UAAU;YACd,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAM;YACR,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,MAAM,CAAC,IAAI,CAAC,qBAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClC,IAAI,CAAC,MAAM;oBAAE,OAAM;gBAEnB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,qBAAU,CAAC,GAA8B,CAAC,IAAI,CAAC,CAAA;YACvE,CAAC,CAAC,CACH,CAAA;YAED,MAAM,OAAO,CAAC,GAAG,CACf,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACxB,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM;oBAAE,OAAM;gBAC5C,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACzB,CAAC,CAAC,CACH,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AACD,MAAM,KAAK,GAAG,YAAY,EAAE,CAAA;AAE5B,kBAAe,KAAK,CAAA"}
package/build/types.d.ts DELETED
@@ -1,138 +0,0 @@
1
- import { z } from 'zod';
2
- import { WireguardNodeConfigValidator, ProviderValidator, ShadowsocksNodeConfigValidator, HttpNodeConfigValidator, HttpsNodeConfigValidator, TrojanNodeConfigValidator, ShadowsocksrNodeConfigValidator, Socks5NodeConfigValidator, VmessNodeConfigValidator, SnellNodeConfigValidator, TuicNodeConfigValidator, SurgioConfigValidator, ArtifactValidator, RemoteSnippetValidator, NodeFilterTypeValidator, SortedNodeFilterTypeValidator, Hysteria2NodeConfigValidator, ClashCoreValidator, VlessNodeConfigValidator } from './validators';
3
- import type { Provider, GetNodeListParams } from './provider';
4
- export declare enum NodeTypeEnum {
5
- HTTPS = "https",
6
- HTTP = "http",
7
- Shadowsocks = "shadowsocks",
8
- Shadowsocksr = "shadowsocksr",
9
- Snell = "snell",
10
- Vmess = "vmess",
11
- Vless = "vless",
12
- Trojan = "trojan",
13
- Socks5 = "socks5",
14
- Tuic = "tuic",
15
- Wireguard = "wireguard",
16
- Hysteria2 = "hysteria2"
17
- }
18
- export declare enum SupportProviderEnum {
19
- Clash = "clash",
20
- Custom = "custom",
21
- ShadowsocksSubscribe = "shadowsocks_subscribe",
22
- ShadowsocksrSubscribe = "shadowsocksr_subscribe",
23
- ShadowsocksJsonSubscribe = "shadowsocks_json_subscribe",
24
- V2rayNSubscribe = "v2rayn_subscribe",
25
- BlackSSL = "blackssl",
26
- Ssd = "ssd",
27
- Trojan = "trojan"
28
- }
29
- export type CommandConfigBeforeNormalize = z.input<typeof SurgioConfigValidator>;
30
- export type CommandConfigAfterNormalize = z.infer<typeof SurgioConfigValidator>;
31
- export type CommandConfig = CommandConfigAfterNormalize & {
32
- publicUrl: string;
33
- output: string;
34
- urlBase: string;
35
- providerDir: string;
36
- templateDir: string;
37
- configDir: string;
38
- };
39
- export type RemoteSnippetConfig = z.infer<typeof RemoteSnippetValidator>;
40
- export interface RemoteSnippet extends RemoteSnippetConfig {
41
- readonly main: (...args: string[]) => string;
42
- readonly text: string;
43
- }
44
- export type ArtifactConfig = z.infer<typeof ArtifactValidator>;
45
- export type ArtifactConfigInput = z.input<typeof ArtifactValidator>;
46
- export type ProviderConfig = z.infer<typeof ProviderValidator>;
47
- export interface BlackSSLProviderConfig extends ProviderConfig {
48
- readonly type: SupportProviderEnum.BlackSSL;
49
- readonly username: string;
50
- readonly password: string;
51
- }
52
- export interface ShadowsocksJsonSubscribeProviderConfig extends ProviderConfig {
53
- readonly type: SupportProviderEnum.ShadowsocksJsonSubscribe;
54
- readonly url: string;
55
- readonly udpRelay?: boolean;
56
- }
57
- export interface ShadowsocksSubscribeProviderConfig extends ProviderConfig {
58
- readonly type: SupportProviderEnum.ShadowsocksSubscribe;
59
- readonly url: string;
60
- readonly udpRelay?: boolean;
61
- }
62
- export interface ShadowsocksrSubscribeProviderConfig extends ProviderConfig {
63
- readonly type: SupportProviderEnum.ShadowsocksrSubscribe;
64
- readonly url: string;
65
- readonly udpRelay?: boolean;
66
- }
67
- export interface V2rayNSubscribeProviderConfig extends ProviderConfig {
68
- readonly type: SupportProviderEnum.V2rayNSubscribe;
69
- readonly url: string;
70
- readonly compatibleMode?: boolean;
71
- readonly skipCertVerify?: boolean;
72
- readonly udpRelay?: boolean;
73
- readonly tls13?: boolean;
74
- }
75
- export interface ClashProviderConfig extends ProviderConfig {
76
- readonly type: SupportProviderEnum.Clash;
77
- readonly url: string;
78
- readonly udpRelay?: boolean;
79
- readonly tls13?: boolean;
80
- }
81
- export interface SsdProviderConfig extends ProviderConfig {
82
- readonly type: SupportProviderEnum.Ssd;
83
- readonly url: string;
84
- readonly udpRelay?: boolean;
85
- }
86
- export type AsyncCustomProviderNodeList = (params: GetNodeListParams) => Promise<ReadonlyArray<PossibleNodeConfigType>>;
87
- export interface CustomProviderConfig extends ProviderConfig {
88
- readonly type: SupportProviderEnum.Custom;
89
- readonly nodeList: ReadonlyArray<PossibleNodeConfigType> | AsyncCustomProviderNodeList;
90
- }
91
- export interface TrojanProviderConfig extends ProviderConfig {
92
- readonly type: SupportProviderEnum.Trojan;
93
- readonly url: string;
94
- readonly udpRelay?: boolean;
95
- readonly tls13?: boolean;
96
- }
97
- export type HttpNodeConfigInput = z.infer<typeof HttpNodeConfigValidator>;
98
- export type HttpNodeConfig = z.infer<typeof HttpNodeConfigValidator> & SurgioInternals;
99
- export type HttpsNodeConfigInput = z.infer<typeof HttpsNodeConfigValidator>;
100
- export type HttpsNodeConfig = z.infer<typeof HttpsNodeConfigValidator> & SurgioInternals;
101
- export type TrojanNodeConfigInput = z.infer<typeof TrojanNodeConfigValidator>;
102
- export type TrojanNodeConfig = z.infer<typeof TrojanNodeConfigValidator> & SurgioInternals;
103
- export type ShadowsocksNodeConfigInput = z.infer<typeof ShadowsocksNodeConfigValidator>;
104
- export type ShadowsocksNodeConfig = z.infer<typeof ShadowsocksNodeConfigValidator> & SurgioInternals;
105
- export type ShadowsocksrNodeConfigInput = z.infer<typeof ShadowsocksrNodeConfigValidator>;
106
- export type ShadowsocksrNodeConfig = z.infer<typeof ShadowsocksrNodeConfigValidator> & SurgioInternals;
107
- export type Socks5NodeConfigInput = z.infer<typeof Socks5NodeConfigValidator>;
108
- export type Socks5NodeConfig = z.infer<typeof Socks5NodeConfigValidator> & SurgioInternals;
109
- export type SnellNodeConfigInput = z.infer<typeof SnellNodeConfigValidator>;
110
- export type SnellNodeConfig = z.infer<typeof SnellNodeConfigValidator> & SurgioInternals;
111
- export type VmessNodeConfigInput = z.infer<typeof VmessNodeConfigValidator>;
112
- export type VmessNodeConfig = z.infer<typeof VmessNodeConfigValidator> & SurgioInternals;
113
- export type VlessNodeConfigInput = z.infer<typeof VlessNodeConfigValidator>;
114
- export type VlessNodeConfig = z.infer<typeof VlessNodeConfigValidator> & SurgioInternals;
115
- export type TuicNodeConfigInput = z.input<typeof TuicNodeConfigValidator>;
116
- export type TuicNodeConfig = z.infer<typeof TuicNodeConfigValidator> & SurgioInternals;
117
- export type WireguardNodeConfigInput = z.input<typeof WireguardNodeConfigValidator>;
118
- export type WireguardNodeConfig = z.infer<typeof WireguardNodeConfigValidator> & SurgioInternals;
119
- export type Hysteria2NodeConfigInput = z.input<typeof Hysteria2NodeConfigValidator>;
120
- export type Hysteria2NodeConfig = z.infer<typeof Hysteria2NodeConfigValidator> & SurgioInternals;
121
- export interface SurgioInternals {
122
- provider?: Provider;
123
- }
124
- export interface SubscriptionUserinfo {
125
- readonly upload: number;
126
- readonly download: number;
127
- readonly total: number;
128
- readonly expire: number;
129
- }
130
- export interface SubsciptionCacheItem {
131
- readonly body: string;
132
- subscriptionUserinfo?: SubscriptionUserinfo;
133
- }
134
- export type NodeFilterType = z.infer<typeof NodeFilterTypeValidator>;
135
- export type SortedNodeFilterType = z.infer<typeof SortedNodeFilterTypeValidator>;
136
- export type PossibleNodeConfigType = HttpsNodeConfig | HttpNodeConfig | ShadowsocksNodeConfig | ShadowsocksrNodeConfig | SnellNodeConfig | VmessNodeConfig | VlessNodeConfig | TrojanNodeConfig | Socks5NodeConfig | TuicNodeConfig | WireguardNodeConfig | Hysteria2NodeConfig;
137
- export type PossibleProviderConfigType = BlackSSLProviderConfig | ClashProviderConfig | CustomProviderConfig | ShadowsocksJsonSubscribeProviderConfig | ShadowsocksrSubscribeProviderConfig | ShadowsocksSubscribeProviderConfig | SsdProviderConfig | TrojanProviderConfig | V2rayNSubscribeProviderConfig;
138
- export type ClashCoreType = z.infer<typeof ClashCoreValidator>;
package/build/types.js DELETED
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SupportProviderEnum = exports.NodeTypeEnum = void 0;
4
- var NodeTypeEnum;
5
- (function (NodeTypeEnum) {
6
- NodeTypeEnum["HTTPS"] = "https";
7
- NodeTypeEnum["HTTP"] = "http";
8
- NodeTypeEnum["Shadowsocks"] = "shadowsocks";
9
- NodeTypeEnum["Shadowsocksr"] = "shadowsocksr";
10
- NodeTypeEnum["Snell"] = "snell";
11
- NodeTypeEnum["Vmess"] = "vmess";
12
- NodeTypeEnum["Vless"] = "vless";
13
- NodeTypeEnum["Trojan"] = "trojan";
14
- NodeTypeEnum["Socks5"] = "socks5";
15
- NodeTypeEnum["Tuic"] = "tuic";
16
- NodeTypeEnum["Wireguard"] = "wireguard";
17
- NodeTypeEnum["Hysteria2"] = "hysteria2";
18
- })(NodeTypeEnum || (exports.NodeTypeEnum = NodeTypeEnum = {}));
19
- var SupportProviderEnum;
20
- (function (SupportProviderEnum) {
21
- SupportProviderEnum["Clash"] = "clash";
22
- SupportProviderEnum["Custom"] = "custom";
23
- SupportProviderEnum["ShadowsocksSubscribe"] = "shadowsocks_subscribe";
24
- SupportProviderEnum["ShadowsocksrSubscribe"] = "shadowsocksr_subscribe";
25
- SupportProviderEnum["ShadowsocksJsonSubscribe"] = "shadowsocks_json_subscribe";
26
- SupportProviderEnum["V2rayNSubscribe"] = "v2rayn_subscribe";
27
- SupportProviderEnum["BlackSSL"] = "blackssl";
28
- SupportProviderEnum["Ssd"] = "ssd";
29
- SupportProviderEnum["Trojan"] = "trojan";
30
- })(SupportProviderEnum || (exports.SupportProviderEnum = SupportProviderEnum = {}));
31
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA0BA,IAAY,YAaX;AAbD,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,6BAAa,CAAA;IACb,2CAA2B,CAAA;IAC3B,6CAA6B,CAAA;IAC7B,+BAAe,CAAA;IACf,+BAAe,CAAA;IACf,+BAAe,CAAA;IACf,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,6BAAa,CAAA;IACb,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;AACzB,CAAC,EAbW,YAAY,4BAAZ,YAAY,QAavB;AAED,IAAY,mBAUX;AAVD,WAAY,mBAAmB;IAC7B,sCAAe,CAAA;IACf,wCAAiB,CAAA;IACjB,qEAA8C,CAAA;IAC9C,uEAAgD,CAAA;IAChD,8EAAuD,CAAA;IACvD,2DAAoC,CAAA;IACpC,4CAAqB,CAAA;IACrB,kCAAW,CAAA;IACX,wCAAiB,CAAA;AACnB,CAAC,EAVW,mBAAmB,mCAAnB,mBAAmB,QAU9B"}
@@ -1,23 +0,0 @@
1
- import { MemoryCache, MemoryStore } from 'cache-manager';
2
- import { RedisCache, RedisStore } from 'cache-manager-ioredis-yet';
3
- type CacheType = MemoryCache | RedisCache;
4
- type StoreType = MemoryStore | RedisStore;
5
- export declare class UnifiedCache {
6
- #private;
7
- prepare(): Promise<CacheType>;
8
- getType(): Promise<"default" | "redis">;
9
- getBackend(): Promise<CacheType>;
10
- get: CacheType['get'];
11
- set: CacheType['set'];
12
- del: CacheType['del'];
13
- reset: CacheType['reset'];
14
- wrap: CacheType['wrap'];
15
- keys: StoreType['keys'];
16
- mset: StoreType['mset'];
17
- mget: StoreType['mget'];
18
- mdel: StoreType['mdel'];
19
- has(key: string): Promise<boolean>;
20
- }
21
- export declare const unifiedCache: UnifiedCache;
22
- export declare const cleanCaches: () => Promise<void>;
23
- export {};
@@ -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.cleanCaches = exports.unifiedCache = exports.UnifiedCache = void 0;
7
- const ms_1 = __importDefault(require("ms"));
8
- const cache_manager_1 = require("cache-manager");
9
- const cache_manager_ioredis_yet_1 = require("cache-manager-ioredis-yet");
10
- const config_1 = require("../config");
11
- const redis_1 = __importDefault(require("../redis"));
12
- class UnifiedCache {
13
- #type;
14
- #backend;
15
- async prepare() {
16
- if (!this.#type) {
17
- this.#type = (0, config_1.getConfig)()?.cache?.type || 'default';
18
- }
19
- if (this.#backend) {
20
- return this.#backend;
21
- }
22
- else {
23
- switch (this.#type) {
24
- case 'redis':
25
- this.#backend = (0, cache_manager_1.caching)((0, cache_manager_ioredis_yet_1.redisInsStore)(redis_1.default.getRedis()));
26
- break;
27
- default:
28
- this.#backend = (0, cache_manager_1.caching)('memory', {
29
- ttl: (0, ms_1.default)('1d'),
30
- });
31
- }
32
- return this.#backend;
33
- }
34
- }
35
- async getType() {
36
- await this.prepare();
37
- return this.#type;
38
- }
39
- async getBackend() {
40
- return this.prepare();
41
- }
42
- get = async (...args) => {
43
- const cache = await this.prepare();
44
- return cache.get(...args);
45
- };
46
- set = async (...args) => {
47
- const cache = await this.prepare();
48
- return cache.set(...args);
49
- };
50
- del = async (...args) => {
51
- const cache = await this.prepare();
52
- return cache.del(...args);
53
- };
54
- reset = async (...args) => {
55
- const cache = await this.prepare();
56
- return cache.reset(...args);
57
- };
58
- wrap = async (...args) => {
59
- const cache = await this.prepare();
60
- return cache.wrap(...args);
61
- };
62
- keys = async (...args) => {
63
- const cache = await this.prepare();
64
- return cache.store.keys(...args);
65
- };
66
- mset = async (...args) => {
67
- const cache = await this.prepare();
68
- return cache.store.mset(...args);
69
- };
70
- mget = async (...args) => {
71
- const cache = await this.prepare();
72
- return cache.store.mget(...args);
73
- };
74
- mdel = async (...args) => {
75
- const cache = await this.prepare();
76
- return cache.store.mdel(...args);
77
- };
78
- async has(key) {
79
- await this.prepare();
80
- if (this.#type === 'redis') {
81
- const keys = await this.keys();
82
- return keys.includes(key);
83
- }
84
- else {
85
- const redisClient = redis_1.default.getRedis();
86
- const value = await redisClient.exists(key);
87
- return value === 1;
88
- }
89
- }
90
- }
91
- exports.UnifiedCache = UnifiedCache;
92
- exports.unifiedCache = new UnifiedCache();
93
- // istanbul ignore next
94
- const cleanCaches = async () => {
95
- await exports.unifiedCache.reset();
96
- };
97
- exports.cleanCaches = cleanCaches;
98
- //# sourceMappingURL=cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AACnB,iDAAiE;AACjE,yEAIkC;AAElC,sCAAqC;AACrC,qDAA4B;AAK5B,MAAa,YAAY;IACvB,KAAK,CAAiC;IACtC,QAAQ,CAAgC;IAExC,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,IAAA,kBAAS,GAAE,EAAE,KAAK,EAAE,IAAI,IAAI,SAAS,CAAA;QACpD,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,QAAQ,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;gBACnB,KAAK,OAAO;oBACV,IAAI,CAAC,QAAQ,GAAG,IAAA,uBAAO,EAAC,IAAA,yCAAa,EAAC,eAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;oBACxD,MAAK;gBACP;oBACE,IAAI,CAAC,QAAQ,GAAG,IAAA,uBAAO,EAAC,QAAQ,EAAE;wBAChC,GAAG,EAAE,IAAA,YAAE,EAAC,IAAI,CAAC;qBACd,CAAC,CAAA;YACN,CAAC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAA;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACpB,OAAO,IAAI,CAAC,KAA4B,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACvB,CAAC;IAED,GAAG,GAAqB,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QAClC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAA;IAED,GAAG,GAAqB,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QAClC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAA;IAED,GAAG,GAAqB,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QAClC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAA;IAED,KAAK,GAAuB,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QAClC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;IAC7B,CAAC,CAAA;IAED,IAAI,GAAsB,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QAClC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;IAC5B,CAAC,CAAA;IAED,IAAI,GAAsB,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QAClC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;IAClC,CAAC,CAAA;IAED,IAAI,GAAsB,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QAClC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;IAClC,CAAC,CAAA;IAED,IAAI,GAAsB,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QAClC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;IAClC,CAAC,CAAA;IAED,IAAI,GAAsB,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QAClC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;IAClC,CAAC,CAAA;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QAEpB,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;YAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,eAAK,CAAC,QAAQ,EAAE,CAAA;YACpC,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC3C,OAAO,KAAK,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;CACF;AA3FD,oCA2FC;AAEY,QAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAA;AAE9C,uBAAuB;AAChB,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;IACpC,MAAM,oBAAY,CAAC,KAAK,EAAE,CAAA;AAC5B,CAAC,CAAA;AAFY,QAAA,WAAW,eAEvB"}
@@ -1,3 +0,0 @@
1
- import { NodeFilterType, PossibleNodeConfigType, SortedNodeFilterType } from '../types';
2
- export declare const getClashNodes: (list: ReadonlyArray<PossibleNodeConfigType>, filter?: NodeFilterType | SortedNodeFilterType) => Record<string, any>[];
3
- export declare const getClashNodeNames: (list: ReadonlyArray<PossibleNodeConfigType>, filter?: NodeFilterType | SortedNodeFilterType, prependNodeNames?: ReadonlyArray<string>, defaultNodeNames?: ReadonlyArray<string>) => ReadonlyArray<string>;