surgio 2.16.0 → 2.17.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.
@@ -6,9 +6,11 @@ export default class SsdProvider extends Provider {
6
6
  constructor(name: string, config: SsdProviderConfig);
7
7
  get url(): string;
8
8
  getSubscriptionUserInfo(): Promise<SubscriptionUserinfo | undefined>;
9
- getNodeList(): Promise<ReadonlyArray<ShadowsocksNodeConfig>>;
9
+ getNodeList({ requestUserAgent, }?: {
10
+ requestUserAgent?: string;
11
+ }): Promise<ReadonlyArray<ShadowsocksNodeConfig>>;
10
12
  }
11
- export declare const getSsdSubscription: (url: string, udpRelay?: boolean | undefined) => Promise<{
13
+ export declare const getSsdSubscription: (url: string, udpRelay?: boolean | undefined, requestUserAgent?: string | undefined) => Promise<{
12
14
  readonly nodeList: ReadonlyArray<ShadowsocksNodeConfig>;
13
15
  readonly subscriptionUserinfo?: SubscriptionUserinfo | undefined;
14
16
  }>;
@@ -46,16 +46,18 @@ class SsdProvider extends Provider_1.default {
46
46
  }
47
47
  return void 0;
48
48
  }
49
- async getNodeList() {
50
- const { nodeList } = await (0, exports.getSsdSubscription)(this.url, this.udpRelay);
49
+ async getNodeList({ requestUserAgent, } = {}) {
50
+ const { nodeList } = await (0, exports.getSsdSubscription)(this.url, this.udpRelay, requestUserAgent);
51
51
  return nodeList;
52
52
  }
53
53
  }
54
54
  exports.default = SsdProvider;
55
55
  // 协议定义:https://github.com/TheCGDF/SSD-Windows/wiki/HTTP%E8%AE%A2%E9%98%85%E5%8D%8F%E5%AE%9A
56
- const getSsdSubscription = async (url, udpRelay) => {
56
+ const getSsdSubscription = async (url, udpRelay, requestUserAgent) => {
57
57
  (0, assert_1.default)(url, '未指定订阅地址 url');
58
- const response = await Provider_1.default.requestCacheableResource(url);
58
+ const response = await Provider_1.default.requestCacheableResource(url, {
59
+ requestUserAgent,
60
+ });
59
61
  // istanbul ignore next
60
62
  if (!response.body.startsWith('ssd://')) {
61
63
  throw new Error(`暂仅支持 ssd:// 开头的订阅地址,${url} 无法处理`);
@@ -113,4 +115,4 @@ const parseSsdConfig = (globalConfig, server, udpRelay) => {
113
115
  : null));
114
116
  };
115
117
  exports.parseSsdConfig = parseSsdConfig;
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3NkUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJvdmlkZXIvU3NkUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXNCO0FBQ3RCLDJDQUE4QztBQUM5QyxvREFBNEI7QUFDNUIsa0RBQTBCO0FBRTFCLG9DQUtrQjtBQUNsQixvQ0FBd0Q7QUFDeEQsMkVBQWtEO0FBQ2xELDBEQUFrQztBQUVsQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEVBQUM7SUFDMUIsT0FBTyxFQUFFLG9CQUFvQjtDQUM5QixDQUFDLENBQUM7QUFFSCxNQUFxQixXQUFZLFNBQVEsa0JBQVE7SUFJL0MsWUFBWSxJQUFZLEVBQUUsTUFBeUI7UUFDakQsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVwQixNQUFNLE1BQU0sR0FBRyxhQUFHLENBQUMsTUFBTSxDQUFDO1lBQ3hCLEdBQUcsRUFBRSxhQUFHLENBQUMsTUFBTSxFQUFFO2lCQUNkLEdBQUcsQ0FBQztnQkFDSCxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7YUFDbkIsQ0FBQztpQkFDRCxRQUFRLEVBQUU7WUFDYixRQUFRLEVBQUUsYUFBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRTtTQUNqQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFYixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUxQyx1QkFBdUI7UUFDdkIsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLEtBQUssQ0FBQztTQUNiO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxJQUFJLENBQUMsOEJBQThCLEdBQUcsSUFBSSxDQUFDO0lBQzdDLENBQUM7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
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3NkUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJvdmlkZXIvU3NkUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXNCO0FBQ3RCLDJDQUE4QztBQUM5QyxvREFBNEI7QUFDNUIsa0RBQTBCO0FBRTFCLG9DQUtrQjtBQUNsQixvQ0FBd0Q7QUFDeEQsMkVBQWtEO0FBQ2xELDBEQUFrQztBQUVsQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEVBQUM7SUFDMUIsT0FBTyxFQUFFLG9CQUFvQjtDQUM5QixDQUFDLENBQUM7QUFFSCxNQUFxQixXQUFZLFNBQVEsa0JBQVE7SUFJL0MsWUFBWSxJQUFZLEVBQUUsTUFBeUI7UUFDakQsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVwQixNQUFNLE1BQU0sR0FBRyxhQUFHLENBQUMsTUFBTSxDQUFDO1lBQ3hCLEdBQUcsRUFBRSxhQUFHLENBQUMsTUFBTSxFQUFFO2lCQUNkLEdBQUcsQ0FBQztnQkFDSCxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7YUFDbkIsQ0FBQztpQkFDRCxRQUFRLEVBQUU7WUFDYixRQUFRLEVBQUUsYUFBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRTtTQUNqQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFYixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUxQyx1QkFBdUI7UUFDdkIsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLEtBQUssQ0FBQztTQUNiO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxJQUFJLENBQUMsOEJBQThCLEdBQUcsSUFBSSxDQUFDO0lBQzdDLENBQUM7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
@@ -7,12 +7,19 @@ export default class TrojanProvider extends Provider {
7
7
  constructor(name: string, config: TrojanProviderConfig);
8
8
  get url(): string;
9
9
  getSubscriptionUserInfo(): Promise<SubscriptionUserinfo | undefined>;
10
- getNodeList(): Promise<ReadonlyArray<TrojanNodeConfig>>;
10
+ getNodeList({ requestUserAgent, }?: {
11
+ requestUserAgent?: string;
12
+ }): Promise<ReadonlyArray<TrojanNodeConfig>>;
11
13
  }
12
14
  /**
13
15
  * @see https://github.com/trojan-gfw/trojan-url/blob/master/trojan-url.py
14
16
  */
15
- export declare const getTrojanSubscription: (url: string, udpRelay?: boolean | undefined, tls13?: boolean | undefined) => Promise<{
17
+ export declare const getTrojanSubscription: ({ url, udpRelay, tls13, requestUserAgent, }: {
18
+ url: string;
19
+ udpRelay?: boolean | undefined;
20
+ tls13?: boolean | undefined;
21
+ requestUserAgent?: string | undefined;
22
+ }) => Promise<{
16
23
  readonly nodeList: ReadonlyArray<TrojanNodeConfig>;
17
24
  readonly subscriptionUserinfo?: SubscriptionUserinfo | undefined;
18
25
  }>;
@@ -41,14 +41,23 @@ class TrojanProvider extends Provider_1.default {
41
41
  return (0, relayable_url_1.default)(this._url, this.relayUrl);
42
42
  }
43
43
  async getSubscriptionUserInfo() {
44
- const { subscriptionUserinfo } = await (0, exports.getTrojanSubscription)(this.url, this.udpRelay, this.tls13);
44
+ const { subscriptionUserinfo } = await (0, exports.getTrojanSubscription)({
45
+ url: this.url,
46
+ udpRelay: this.udpRelay,
47
+ tls13: this.tls13,
48
+ });
45
49
  if (subscriptionUserinfo) {
46
50
  return subscriptionUserinfo;
47
51
  }
48
52
  return void 0;
49
53
  }
50
- async getNodeList() {
51
- const { nodeList } = await (0, exports.getTrojanSubscription)(this.url, this.udpRelay, this.tls13);
54
+ async getNodeList({ requestUserAgent, } = {}) {
55
+ const { nodeList } = await (0, exports.getTrojanSubscription)({
56
+ url: this.url,
57
+ udpRelay: this.udpRelay,
58
+ tls13: this.tls13,
59
+ requestUserAgent,
60
+ });
52
61
  return nodeList;
53
62
  }
54
63
  }
@@ -56,10 +65,10 @@ exports.default = TrojanProvider;
56
65
  /**
57
66
  * @see https://github.com/trojan-gfw/trojan-url/blob/master/trojan-url.py
58
67
  */
59
- const getTrojanSubscription = async (url, udpRelay, tls13) => {
68
+ const getTrojanSubscription = async ({ url, udpRelay, tls13, requestUserAgent, }) => {
60
69
  (0, assert_1.default)(url, '未指定订阅地址 url');
61
70
  const response = await Provider_1.default.requestCacheableResource(url, {
62
- requestUserAgent: 'shadowrocket',
71
+ requestUserAgent: requestUserAgent || 'shadowrocket',
63
72
  });
64
73
  const config = (0, utils_1.fromBase64)(response.body);
65
74
  const nodeList = config
@@ -75,4 +84,4 @@ const getTrojanSubscription = async (url, udpRelay, tls13) => {
75
84
  };
76
85
  };
77
86
  exports.getTrojanSubscription = getTrojanSubscription;
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJvamFuUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJvdmlkZXIvVHJvamFuUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXNCO0FBQ3RCLG9EQUE0QjtBQUM1QiwyQ0FBOEM7QUFPOUMsb0NBQXNDO0FBQ3RDLDJFQUFrRDtBQUNsRCw0Q0FBaUQ7QUFDakQsMERBQWtDO0FBRWxDLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksRUFBQztJQUMxQixPQUFPLEVBQUUsdUJBQXVCO0NBQ2pDLENBQUMsQ0FBQztBQUVILE1BQXFCLGNBQWUsU0FBUSxrQkFBUTtJQUtsRCxZQUFZLElBQVksRUFBRSxNQUE0QjtRQUNwRCxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXBCLE1BQU0sTUFBTSxHQUFHLGFBQUcsQ0FBQyxNQUFNLENBQUM7WUFDeEIsR0FBRyxFQUFFLGFBQUcsQ0FBQyxNQUFNLEVBQUU7aUJBQ2QsR0FBRyxDQUFDO2dCQUNILE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQzthQUNuQixDQUFDO2lCQUNELFFBQVEsRUFBRTtZQUNiLFFBQVEsRUFBRSxhQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFO1lBQzdCLEtBQUssRUFBRSxhQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFO1NBQzNCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUViLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTFDLHVCQUF1QjtRQUN2QixJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sS0FBSyxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsOEJBQThCLEdBQUcsSUFBSSxDQUFDO0lBQzdDLENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsSUFBVyxHQUFHO1FBQ1osT0FBTyxJQUFBLHVCQUFZLEVBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVNLEtBQUssQ0FBQyx1QkFBdUI7UUFHbEMsTUFBTSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsTUFBTSxJQUFBLDZCQUFxQixFQUMxRCxJQUFJLENBQUMsR0FBRyxFQUNSLElBQUksQ0FBQyxRQUFRLEVBQ2IsSUFBSSxDQUFDLEtBQUssQ0FDWCxDQUFDO1FBRUYsSUFBSSxvQkFBb0IsRUFBRTtZQUN4QixPQUFPLG9CQUFvQixDQUFDO1NBQzdCO1FBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRU0sS0FBSyxDQUFDLFdBQVc7UUFDdEIsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sSUFBQSw2QkFBcUIsRUFDOUMsSUFBSSxDQUFDLEdBQUcsRUFDUixJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxLQUFLLENBQ1gsQ0FBQztRQUVGLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Q0FDRjtBQTVERCxpQ0E0REM7QUFFRDs7R0FFRztBQUNJLE1BQU0scUJBQXFCLEdBQUcsS0FBSyxFQUN4QyxHQUFXLEVBQ1gsUUFBa0IsRUFDbEIsS0FBZSxFQUlkLEVBQUU7SUFDSCxJQUFBLGdCQUFNLEVBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTNCLE1BQU0sUUFBUSxHQUFHLE1BQU0sa0JBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLEVBQUU7UUFDNUQsZ0JBQWdCLEVBQUUsY0FBYztLQUNqQyxDQUFDLENBQUM7SUFDSCxNQUFNLE1BQU0sR0FBRyxJQUFBLGtCQUFVLEVBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sUUFBUSxHQUFHLE1BQU07U0FDcEIsS0FBSyxDQUFDLElBQUksQ0FBQztTQUNYLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3hELEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBb0IsRUFBRTtRQUM5QixNQUFNLFVBQVUsR0FBRyxJQUFBLHVCQUFjLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEMsdUNBQ0ssVUFBVSxLQUNiLFdBQVcsRUFBRSxRQUFRLEVBQ3JCLEtBQUssSUFDTDtJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUwsT0FBTztRQUNMLFFBQVE7UUFDUixvQkFBb0IsRUFBRSxRQUFRLENBQUMsb0JBQW9CO0tBQ3BELENBQUM7QUFDSixDQUFDLENBQUM7QUEvQlcsUUFBQSxxQkFBcUIseUJBK0JoQyJ9
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJvamFuUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJvdmlkZXIvVHJvamFuUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXNCO0FBQ3RCLG9EQUE0QjtBQUM1QiwyQ0FBOEM7QUFPOUMsb0NBQXNDO0FBQ3RDLDJFQUFrRDtBQUNsRCw0Q0FBaUQ7QUFDakQsMERBQWtDO0FBRWxDLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksRUFBQztJQUMxQixPQUFPLEVBQUUsdUJBQXVCO0NBQ2pDLENBQUMsQ0FBQztBQUVILE1BQXFCLGNBQWUsU0FBUSxrQkFBUTtJQUtsRCxZQUFZLElBQVksRUFBRSxNQUE0QjtRQUNwRCxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXBCLE1BQU0sTUFBTSxHQUFHLGFBQUcsQ0FBQyxNQUFNLENBQUM7WUFDeEIsR0FBRyxFQUFFLGFBQUcsQ0FBQyxNQUFNLEVBQUU7aUJBQ2QsR0FBRyxDQUFDO2dCQUNILE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQzthQUNuQixDQUFDO2lCQUNELFFBQVEsRUFBRTtZQUNiLFFBQVEsRUFBRSxhQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFO1lBQzdCLEtBQUssRUFBRSxhQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFO1NBQzNCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUViLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTFDLHVCQUF1QjtRQUN2QixJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sS0FBSyxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsOEJBQThCLEdBQUcsSUFBSSxDQUFDO0lBQzdDLENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsSUFBVyxHQUFHO1FBQ1osT0FBTyxJQUFBLHVCQUFZLEVBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVNLEtBQUssQ0FBQyx1QkFBdUI7UUFHbEMsTUFBTSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsTUFBTSxJQUFBLDZCQUFxQixFQUFDO1lBQzNELEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxvQkFBb0IsRUFBRTtZQUN4QixPQUFPLG9CQUFvQixDQUFDO1NBQzdCO1FBQ0QsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRU0sS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUN2QixnQkFBZ0IsTUFDaUIsRUFBRTtRQUduQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFBLDZCQUFxQixFQUFDO1lBQy9DLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsZ0JBQWdCO1NBQ2pCLENBQUMsQ0FBQztRQUVILE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Q0FDRjtBQWpFRCxpQ0FpRUM7QUFFRDs7R0FFRztBQUNJLE1BQU0scUJBQXFCLEdBQUcsS0FBSyxFQUFFLEVBQzFDLEdBQUcsRUFDSCxRQUFRLEVBQ1IsS0FBSyxFQUNMLGdCQUFnQixHQU1qQixFQUdFLEVBQUU7SUFDSCxJQUFBLGdCQUFNLEVBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTNCLE1BQU0sUUFBUSxHQUFHLE1BQU0sa0JBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLEVBQUU7UUFDNUQsZ0JBQWdCLEVBQUUsZ0JBQWdCLElBQUksY0FBYztLQUNyRCxDQUFDLENBQUM7SUFDSCxNQUFNLE1BQU0sR0FBRyxJQUFBLGtCQUFVLEVBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sUUFBUSxHQUFHLE1BQU07U0FDcEIsS0FBSyxDQUFDLElBQUksQ0FBQztTQUNYLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3hELEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBb0IsRUFBRTtRQUM5QixNQUFNLFVBQVUsR0FBRyxJQUFBLHVCQUFjLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEMsdUNBQ0ssVUFBVSxLQUNiLFdBQVcsRUFBRSxRQUFRLEVBQ3JCLEtBQUssSUFDTDtJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUwsT0FBTztRQUNMLFFBQVE7UUFDUixvQkFBb0IsRUFBRSxRQUFRLENBQUMsb0JBQW9CO0tBQ3BELENBQUM7QUFDSixDQUFDLENBQUM7QUFyQ1csUUFBQSxxQkFBcUIseUJBcUNoQyJ9
@@ -8,10 +8,19 @@ export default class V2rayNSubscribeProvider extends Provider {
8
8
  private readonly _url;
9
9
  constructor(name: string, config: V2rayNSubscribeProviderConfig);
10
10
  get url(): string;
11
- getNodeList(): ReturnType<typeof getV2rayNSubscription>;
11
+ getNodeList({ requestUserAgent, }?: {
12
+ requestUserAgent?: string;
13
+ }): ReturnType<typeof getV2rayNSubscription>;
12
14
  }
13
15
  /**
14
16
  * @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)
15
17
  */
16
- export declare const getV2rayNSubscription: (url: string, isCompatibleMode?: boolean | undefined, skipCertVerify?: boolean | undefined, udpRelay?: boolean | undefined, tls13?: boolean | undefined) => Promise<ReadonlyArray<VmessNodeConfig | ShadowsocksNodeConfig>>;
18
+ export declare const getV2rayNSubscription: ({ url, isCompatibleMode, skipCertVerify, tls13, udpRelay, requestUserAgent, }: {
19
+ url: string;
20
+ isCompatibleMode?: boolean | undefined;
21
+ skipCertVerify?: boolean | undefined;
22
+ udpRelay?: boolean | undefined;
23
+ tls13?: boolean | undefined;
24
+ requestUserAgent?: string | undefined;
25
+ }) => Promise<ReadonlyArray<VmessNodeConfig | ShadowsocksNodeConfig>>;
17
26
  export declare const parseJSONConfig: (json: string, isCompatibleMode: boolean | undefined, skipCertVerify?: boolean | undefined, udpRelay?: boolean | undefined, tls13?: boolean | undefined) => VmessNodeConfig | undefined;
@@ -9,8 +9,6 @@ const logger_1 = require("@surgio/logger");
9
9
  const assert_1 = __importDefault(require("assert"));
10
10
  const types_1 = require("../types");
11
11
  const utils_1 = require("../utils");
12
- const cache_1 = require("../utils/cache");
13
- const http_client_1 = __importDefault(require("../utils/http-client"));
14
12
  const relayable_url_1 = __importDefault(require("../utils/relayable-url"));
15
13
  const ss_1 = require("../utils/ss");
16
14
  const Provider_1 = __importDefault(require("./Provider"));
@@ -43,28 +41,32 @@ class V2rayNSubscribeProvider extends Provider_1.default {
43
41
  get url() {
44
42
  return (0, relayable_url_1.default)(this._url, this.relayUrl);
45
43
  }
46
- getNodeList() {
47
- return (0, exports.getV2rayNSubscription)(this.url, this.compatibleMode, this.skipCertVerify, this.udpRelay, this.tls13);
44
+ getNodeList({ requestUserAgent, } = {}) {
45
+ return (0, exports.getV2rayNSubscription)({
46
+ url: this.url,
47
+ skipCertVerify: this.skipCertVerify,
48
+ tls13: this.tls13,
49
+ udpRelay: this.udpRelay,
50
+ isCompatibleMode: this.compatibleMode,
51
+ requestUserAgent,
52
+ });
48
53
  }
49
54
  }
50
55
  exports.default = V2rayNSubscribeProvider;
51
56
  /**
52
57
  * @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)
53
58
  */
54
- const getV2rayNSubscription = async (url, isCompatibleMode, skipCertVerify, udpRelay, tls13) => {
59
+ const getV2rayNSubscription = async ({ url, isCompatibleMode, skipCertVerify, tls13, udpRelay, requestUserAgent, }) => {
55
60
  (0, assert_1.default)(url, '未指定订阅地址 url');
56
61
  if (isCompatibleMode) {
57
62
  logger_1.logger.warn('运行在兼容模式,请注意生成的节点是否正确。');
58
63
  }
59
64
  async function requestConfigFromRemote() {
60
- const response = cache_1.ConfigCache.has(url)
61
- ? cache_1.ConfigCache.get(url)
62
- : await (async () => {
63
- const res = await http_client_1.default.get(url);
64
- cache_1.ConfigCache.set(url, res.body);
65
- return res.body;
66
- })();
67
- const configList = (0, utils_1.fromBase64)(response)
65
+ const response = await Provider_1.default.requestCacheableResource(url, {
66
+ requestUserAgent,
67
+ });
68
+ const configString = response.body;
69
+ const configList = (0, utils_1.fromBase64)(configString)
68
70
  .split('\n')
69
71
  .filter((item) => !!item)
70
72
  .filter((item) => {
@@ -108,4 +110,4 @@ const parseJSONConfig = (json, isCompatibleMode, skipCertVerify, udpRelay, tls13
108
110
  : null));
109
111
  };
110
112
  exports.parseJSONConfig = parseJSONConfig;
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVjJyYXlOU3Vic2NyaWJlUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJvdmlkZXIvVjJyYXlOU3Vic2NyaWJlUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXNCO0FBQ3RCLDJDQUF3QztBQUN4QyxvREFBNEI7QUFFNUIsb0NBS2tCO0FBQ2xCLG9DQUFzQztBQUN0QywwQ0FBNkM7QUFDN0MsdUVBQThDO0FBQzlDLDJFQUFrRDtBQUNsRCxvQ0FBeUM7QUFDekMsMERBQWtDO0FBRWxDLE1BQXFCLHVCQUF3QixTQUFRLGtCQUFRO0lBUTNELFlBQVksSUFBWSxFQUFFLE1BQXFDO1FBQzdELEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFcEIsTUFBTSxNQUFNLEdBQUcsYUFBRyxDQUFDLE1BQU0sQ0FBQztZQUN4QixHQUFHLEVBQUUsYUFBRyxDQUFDLE1BQU0sRUFBRTtpQkFDZCxHQUFHLENBQUM7Z0JBQ0gsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO2FBQ25CLENBQUM7aUJBQ0QsUUFBUSxFQUFFO1lBQ2IsUUFBUSxFQUFFLGFBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUU7WUFDN0IsS0FBSyxFQUFFLGFBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUU7WUFDMUIsY0FBYyxFQUFFLGFBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUU7WUFDbkMsY0FBYyxFQUFFLGFBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUU7U0FDcEMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWIsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFMUMsdUJBQXVCO1FBQ3ZCLElBQUksS0FBSyxFQUFFO1lBQ1QsTUFBTSxLQUFLLENBQUM7U0FDYjtRQUVELElBQUks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
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVjJyYXlOU3Vic2NyaWJlUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcHJvdmlkZXIvVjJyYXlOU3Vic2NyaWJlUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXNCO0FBQ3RCLDJDQUF3QztBQUN4QyxvREFBNEI7QUFFNUIsb0NBS2tCO0FBQ2xCLG9DQUFzQztBQUN0QywyRUFBa0Q7QUFDbEQsb0NBQXlDO0FBQ3pDLDBEQUFrQztBQUVsQyxNQUFxQix1QkFBd0IsU0FBUSxrQkFBUTtJQVEzRCxZQUFZLElBQVksRUFBRSxNQUFxQztRQUM3RCxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXBCLE1BQU0sTUFBTSxHQUFHLGFBQUcsQ0FBQyxNQUFNLENBQUM7WUFDeEIsR0FBRyxFQUFFLGFBQUcsQ0FBQyxNQUFNLEVBQUU7aUJBQ2QsR0FBRyxDQUFDO2dCQUNILE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQzthQUNuQixDQUFDO2lCQUNELFFBQVEsRUFBRTtZQUNiLFFBQVEsRUFBRSxhQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFO1lBQzdCLEtBQUssRUFBRSxhQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFO1lBQzFCLGNBQWMsRUFBRSxhQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFO1lBQ25DLGNBQWMsRUFBRSxhQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFO1NBQ3BDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUViLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTFDLHVCQUF1QjtRQUN2QixJQUFJLEtBQUssRUFBRTtZQUNULE1BQU0sS0FBSyxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxH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
@@ -1,8 +1,9 @@
1
- import LRU from 'lru-cache';
1
+ import NodeCache from 'node-cache';
2
2
  import { SubscriptionUserinfo } from '../types';
3
3
  export interface SubsciptionCacheItem {
4
4
  readonly body: string;
5
5
  subscriptionUserinfo?: SubscriptionUserinfo;
6
6
  }
7
- export declare const ConfigCache: LRU<string, string>;
8
- export declare const SubscriptionCache: LRU<string, SubsciptionCacheItem>;
7
+ export declare const ConfigCache: NodeCache;
8
+ export declare const SubscriptionCache: NodeCache;
9
+ export declare const cleanCaches: () => void;
@@ -3,15 +3,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SubscriptionCache = exports.ConfigCache = void 0;
7
- const lru_cache_1 = __importDefault(require("lru-cache"));
6
+ exports.cleanCaches = exports.SubscriptionCache = exports.ConfigCache = void 0;
7
+ const node_cache_1 = __importDefault(require("node-cache"));
8
8
  const env_flag_1 = require("./env-flag");
9
- exports.ConfigCache = new lru_cache_1.default({
10
- maxAge: (0, env_flag_1.getProviderCacheMaxage)(),
11
- max: 100,
9
+ const index_1 = require("./index");
10
+ exports.ConfigCache = new node_cache_1.default({
11
+ stdTTL: (0, index_1.msToSeconds)((0, env_flag_1.getProviderCacheMaxage)()),
12
+ maxKeys: 300,
13
+ useClones: false,
12
14
  });
13
- exports.SubscriptionCache = new lru_cache_1.default({
14
- maxAge: (0, env_flag_1.getProviderCacheMaxage)(),
15
- max: 100,
15
+ exports.SubscriptionCache = new node_cache_1.default({
16
+ stdTTL: (0, index_1.msToSeconds)((0, env_flag_1.getProviderCacheMaxage)()),
17
+ maxKeys: 300,
18
+ useClones: false,
16
19
  });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbHMvY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMERBQTRCO0FBRzVCLHlDQUFvRDtBQU92QyxRQUFBLFdBQVcsR0FBRyxJQUFJLG1CQUFHLENBQWlCO0lBQ2pELE1BQU0sRUFBRSxJQUFBLGlDQUFzQixHQUFFO0lBQ2hDLEdBQUcsRUFBRSxHQUFHO0NBQ1QsQ0FBQyxDQUFDO0FBRVUsUUFBQSxpQkFBaUIsR0FBRyxJQUFJLG1CQUFHLENBQStCO0lBQ3JFLE1BQU0sRUFBRSxJQUFBLGlDQUFzQixHQUFFO0lBQ2hDLEdBQUcsRUFBRSxHQUFHO0NBQ1QsQ0FBQyxDQUFDIn0=
20
+ const cleanCaches = () => {
21
+ exports.ConfigCache.flushAll();
22
+ exports.SubscriptionCache.flushAll();
23
+ };
24
+ exports.cleanCaches = cleanCaches;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbHMvY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNERBQW1DO0FBR25DLHlDQUFvRDtBQUNwRCxtQ0FBc0M7QUFPekIsUUFBQSxXQUFXLEdBQUcsSUFBSSxvQkFBUyxDQUFDO0lBQ3ZDLE1BQU0sRUFBRSxJQUFBLG1CQUFXLEVBQUMsSUFBQSxpQ0FBc0IsR0FBRSxDQUFDO0lBQzdDLE9BQU8sRUFBRSxHQUFHO0lBQ1osU0FBUyxFQUFFLEtBQUs7Q0FDakIsQ0FBQyxDQUFDO0FBRVUsUUFBQSxpQkFBaUIsR0FBRyxJQUFJLG9CQUFTLENBQUM7SUFDN0MsTUFBTSxFQUFFLElBQUEsbUJBQVcsRUFBQyxJQUFBLGlDQUFzQixHQUFFLENBQUM7SUFDN0MsT0FBTyxFQUFFLEdBQUc7SUFDWixTQUFTLEVBQUUsS0FBSztDQUNqQixDQUFDLENBQUM7QUFFSSxNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUU7SUFDOUIsbUJBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2Qix5QkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFIVyxRQUFBLFdBQVcsZUFHdEIifQ==
@@ -1,3 +1,3 @@
1
1
  import { NodeFilterType, NodeNameFilterType, PossibleNodeConfigType, SimpleNodeConfig, SortedNodeNameFilterType } from '../types';
2
- export declare const getClashNodes: (list: ReadonlyArray<PossibleNodeConfigType>, filter?: NodeFilterType | SortedNodeNameFilterType | undefined) => ReadonlyArray<any>;
2
+ export declare const getClashNodes: (list: ReadonlyArray<PossibleNodeConfigType>, filter?: SortedNodeNameFilterType | NodeFilterType | undefined) => ReadonlyArray<any>;
3
3
  export declare const getClashNodeNames: (list: ReadonlyArray<SimpleNodeConfig>, filter?: SortedNodeNameFilterType | NodeNameFilterType | undefined, existingProxies?: readonly string[] | undefined) => ReadonlyArray<string>;
@@ -5,12 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.resolve4And6 = exports.resolveDomain = void 0;
7
7
  const dns_1 = require("dns");
8
- const lru_cache_1 = __importDefault(require("lru-cache"));
9
8
  const logger_1 = require("@surgio/logger");
10
9
  const bluebird_1 = __importDefault(require("bluebird"));
10
+ const node_cache_1 = __importDefault(require("node-cache"));
11
11
  const env_flag_1 = require("./env-flag");
12
- const DomainCache = new lru_cache_1.default({
13
- max: 5000,
12
+ const DomainCache = new node_cache_1.default({
13
+ useClones: false,
14
14
  });
15
15
  const logger = (0, logger_1.createLogger)({ service: 'surgio:utils:dns' });
16
16
  const resolveDomain = async (domain, timeout = (0, env_flag_1.getNetworkResolveTimeout)()) => {
@@ -26,7 +26,7 @@ const resolveDomain = async (domain, timeout = (0, env_flag_1.getNetworkResolveT
26
26
  logger.debug(`resolved domain ${domain}: ${JSON.stringify(records)} ${Date.now() - now}ms`);
27
27
  if (records.length) {
28
28
  const address = records.map((item) => item.address);
29
- DomainCache.set(domain, address, records[0].ttl * 1000);
29
+ DomainCache.set(domain, address, records[0].ttl); // ttl is in seconds
30
30
  return address;
31
31
  }
32
32
  // istanbul ignore next
@@ -45,4 +45,4 @@ const resolve4And6 = async (domain) => {
45
45
  return [...ipv4, ...ipv6];
46
46
  };
47
47
  exports.resolve4And6 = resolve4And6;
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL3V0aWxzL2Rucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw2QkFBcUQ7QUFDckQsMERBQTRCO0FBQzVCLDJDQUE4QztBQUM5Qyx3REFBZ0M7QUFFaEMseUNBQXNEO0FBRXRELE1BQU0sV0FBVyxHQUFHLElBQUksbUJBQUcsQ0FBZ0M7SUFDekQsR0FBRyxFQUFFLElBQUk7Q0FDVixDQUFDLENBQUM7QUFDSCxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEVBQUMsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0FBRXRELE1BQU0sYUFBYSxHQUFHLEtBQUssRUFDaEMsTUFBYyxFQUNkLFVBQWtCLElBQUEsbUNBQXdCLEdBQUUsRUFDWixFQUFFO0lBQ2xDLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMzQixPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUEwQixDQUFDO0tBQ3pEO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNoRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkIsTUFBTSxPQUFPLEdBQUcsTUFBTSxrQkFBUSxDQUFDLElBQUksQ0FBK0I7UUFDaEUsSUFBQSxvQkFBWSxFQUFDLE1BQU0sQ0FBQztRQUNwQixrQkFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO0tBQ3ZDLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQ1YsbUJBQW1CLE1BQU0sS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUNuRCxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FDZixJQUFJLENBQ0wsQ0FBQztJQUVGLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtRQUNsQixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEQsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDeEQsT0FBTyxPQUFPLENBQUM7S0FDaEI7SUFFRCx1QkFBdUI7SUFDdkIsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDLENBQUM7QUE1QlcsUUFBQSxhQUFhLGlCQTRCeEI7QUFFSyxNQUFNLFlBQVksR0FBRyxLQUFLLEVBQy9CLE1BQWMsRUFDeUIsRUFBRTtJQUN6Qyx1QkFBdUI7SUFDdkIsU0FBUyxLQUFLO1FBQ1osT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDckMsY0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ2hELGNBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztLQUNqRCxDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFkVyxRQUFBLFlBQVksZ0JBY3ZCIn0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL3V0aWxzL2Rucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw2QkFBcUQ7QUFDckQsMkNBQThDO0FBQzlDLHdEQUFnQztBQUNoQyw0REFBbUM7QUFFbkMseUNBQXNEO0FBRXRELE1BQU0sV0FBVyxHQUFHLElBQUksb0JBQVMsQ0FBQztJQUNoQyxTQUFTLEVBQUUsS0FBSztDQUNqQixDQUFDLENBQUM7QUFDSCxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEVBQUMsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0FBRXRELE1BQU0sYUFBYSxHQUFHLEtBQUssRUFDaEMsTUFBYyxFQUNkLFVBQWtCLElBQUEsbUNBQXdCLEdBQUUsRUFDWixFQUFFO0lBQ2xDLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMzQixPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUEwQixDQUFDO0tBQ3pEO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNoRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkIsTUFBTSxPQUFPLEdBQUcsTUFBTSxrQkFBUSxDQUFDLElBQUksQ0FBK0I7UUFDaEUsSUFBQSxvQkFBWSxFQUFDLE1BQU0sQ0FBQztRQUNwQixrQkFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO0tBQ3ZDLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQ1YsbUJBQW1CLE1BQU0sS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUNuRCxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FDZixJQUFJLENBQ0wsQ0FBQztJQUVGLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtRQUNsQixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEQsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLG9CQUFvQjtRQUN0RSxPQUFPLE9BQU8sQ0FBQztLQUNoQjtJQUVELHVCQUF1QjtJQUN2QixPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMsQ0FBQztBQTVCVyxRQUFBLGFBQWEsaUJBNEJ4QjtBQUVLLE1BQU0sWUFBWSxHQUFHLEtBQUssRUFDL0IsTUFBYyxFQUN5QixFQUFFO0lBQ3pDLHVCQUF1QjtJQUN2QixTQUFTLEtBQUs7UUFDWixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUNyQyxjQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDaEQsY0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0tBQ2pELENBQUMsQ0FBQztJQUVILE9BQU8sQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQzVCLENBQUMsQ0FBQztBQWRXLFFBQUEsWUFBWSxnQkFjdkIifQ==
@@ -20,7 +20,7 @@ const getNetworkConcurrency = () => process.env[constant_1.ENV_SURGIO_NETWORK_CO
20
20
  exports.getNetworkConcurrency = getNetworkConcurrency;
21
21
  const getNetworkRetry = () => process.env[constant_1.ENV_SURGIO_NETWORK_RETRY]
22
22
  ? Number(process.env[constant_1.ENV_SURGIO_NETWORK_RETRY])
23
- : 3;
23
+ : 0;
24
24
  exports.getNetworkRetry = getNetworkRetry;
25
25
  const getNetworkClashUA = () => { var _a; return (_a = process.env[constant_1.ENV_SURGIO_NETWORK_CLASH_UA]) !== null && _a !== void 0 ? _a : 'clash'; };
26
26
  exports.getNetworkClashUA = getNetworkClashUA;
@@ -5,8 +5,7 @@ export * from './clash';
5
5
  export * from './quantumult';
6
6
  export declare const getDownloadUrl: (baseUrl: string | undefined, artifactName: string, inline?: boolean, accessToken?: string | undefined) => string;
7
7
  export declare const getUrl: (baseUrl: string, path: string, accessToken?: string | undefined) => string;
8
- export declare const getShadowsocksJSONConfig: (url: string, udpRelay?: boolean | undefined) => Promise<ReadonlyArray<ShadowsocksNodeConfig>>;
9
- export declare const getMellowNodes: (list: ReadonlyArray<VmessNodeConfig | ShadowsocksNodeConfig>, filter?: NodeFilterType | SortedNodeNameFilterType | undefined) => string;
8
+ export declare const getMellowNodes: (list: ReadonlyArray<VmessNodeConfig | ShadowsocksNodeConfig>, filter?: SortedNodeNameFilterType | NodeFilterType | undefined) => string;
10
9
  export declare const toUrlSafeBase64: (str: string) => string;
11
10
  export declare const fromUrlSafeBase64: (str: string) => string;
12
11
  export declare const toBase64: (str: string) => string;
@@ -41,6 +40,7 @@ export declare const normalizeClashProxyGroupConfig: (nodeList: ReadonlyArray<Po
41
40
  export declare const ensureConfigFolder: (dir?: string) => string;
42
41
  export declare const formatV2rayConfig: (localPort: number, nodeConfig: VmessNodeConfig) => JsonObject;
43
42
  export declare const lowercaseHeaderKeys: (headers: Record<string, string>) => Record<string, string>;
43
+ export declare const msToSeconds: (ms: number) => number;
44
44
  export declare const isIp: (str: string) => boolean;
45
45
  export declare const isNow: () => boolean;
46
46
  export declare const isVercel: () => boolean;
@@ -49,3 +49,4 @@ export declare const isGitHubActions: () => boolean;
49
49
  export declare const isGitLabCI: () => boolean;
50
50
  export declare const isPkgBundle: () => boolean;
51
51
  export declare const isRailway: () => boolean;
52
+ export declare const isNetlify: () => boolean;
@@ -17,9 +17,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.isRailway = exports.isPkgBundle = exports.isGitLabCI = exports.isGitHubActions = exports.isHeroku = exports.isVercel = exports.isNow = exports.isIp = exports.lowercaseHeaderKeys = exports.formatV2rayConfig = exports.ensureConfigFolder = exports.normalizeClashProxyGroupConfig = exports.decodeStringList = exports.pickAndFormatStringList = exports.toYaml = exports.generateClashProxyGroup = exports.getNodeNames = exports.getShadowsocksNodesJSON = exports.getV2rayNNodes = exports.getShadowsocksrNodes = exports.getShadowsocksNodes = exports.fromBase64 = exports.toBase64 = exports.fromUrlSafeBase64 = exports.toUrlSafeBase64 = exports.getMellowNodes = exports.getShadowsocksJSONConfig = exports.getUrl = exports.getDownloadUrl = void 0;
20
+ exports.isNetlify = exports.isRailway = exports.isPkgBundle = exports.isGitLabCI = exports.isGitHubActions = exports.isHeroku = exports.isVercel = exports.isNow = exports.isIp = exports.msToSeconds = exports.lowercaseHeaderKeys = exports.formatV2rayConfig = exports.ensureConfigFolder = exports.normalizeClashProxyGroupConfig = exports.decodeStringList = exports.pickAndFormatStringList = exports.toYaml = exports.generateClashProxyGroup = exports.getNodeNames = exports.getShadowsocksNodesJSON = exports.getV2rayNNodes = exports.getShadowsocksrNodes = exports.getShadowsocksNodes = exports.fromBase64 = exports.toBase64 = exports.fromUrlSafeBase64 = exports.toUrlSafeBase64 = exports.getMellowNodes = exports.getUrl = exports.getDownloadUrl = void 0;
21
21
  const logger_1 = require("@surgio/logger");
22
- const assert_1 = __importDefault(require("assert"));
23
22
  const fs_extra_1 = __importDefault(require("fs-extra"));
24
23
  const lodash_1 = __importDefault(require("lodash"));
25
24
  const os_1 = __importDefault(require("os"));
@@ -30,10 +29,8 @@ const urlsafe_base64_1 = __importDefault(require("urlsafe-base64"));
30
29
  const yaml_1 = __importDefault(require("yaml"));
31
30
  const net_1 = __importDefault(require("net"));
32
31
  const types_1 = require("../types");
33
- const cache_1 = require("./cache");
34
32
  const constant_1 = require("../constant");
35
33
  const filter_1 = require("./filter");
36
- const http_client_1 = __importDefault(require("./http-client"));
37
34
  const v2ray_1 = require("./v2ray");
38
35
  __exportStar(require("./surge"), exports);
39
36
  __exportStar(require("./clash"), exports);
@@ -69,42 +66,6 @@ const getUrl = (baseUrl, path, accessToken) => {
69
66
  return url.toString();
70
67
  };
71
68
  exports.getUrl = getUrl;
72
- const getShadowsocksJSONConfig = async (url, udpRelay) => {
73
- (0, assert_1.default)(url, '未指定订阅地址 url');
74
- async function requestConfigFromRemote() {
75
- const response = cache_1.ConfigCache.has(url)
76
- ? JSON.parse(cache_1.ConfigCache.get(url))
77
- : await (async () => {
78
- const res = await http_client_1.default.get(url);
79
- cache_1.ConfigCache.set(url, res.body);
80
- return JSON.parse(res.body);
81
- })();
82
- return response.configs.map((item) => {
83
- const nodeConfig = {
84
- nodeName: item.remarks,
85
- type: types_1.NodeTypeEnum.Shadowsocks,
86
- hostname: item.server,
87
- port: item.server_port,
88
- method: item.method,
89
- password: item.password,
90
- };
91
- if (typeof udpRelay === 'boolean') {
92
- nodeConfig['udp-relay'] = udpRelay;
93
- }
94
- if (item.plugin === 'obfs-local') {
95
- const obfs = item.plugin_opts.match(/obfs=(\w+)/);
96
- const obfsHost = item.plugin_opts.match(/obfs-host=(.+)$/);
97
- if (obfs) {
98
- nodeConfig.obfs = obfs[1];
99
- nodeConfig['obfs-host'] = obfsHost ? obfsHost[1] : 'www.bing.com';
100
- }
101
- }
102
- return nodeConfig;
103
- });
104
- }
105
- return await requestConfigFromRemote();
106
- };
107
- exports.getShadowsocksJSONConfig = getShadowsocksJSONConfig;
108
69
  const getMellowNodes = function (list, filter) {
109
70
  // istanbul ignore next
110
71
  if (arguments.length === 2 && typeof filter === 'undefined') {
@@ -471,6 +432,8 @@ const lowercaseHeaderKeys = (headers) => {
471
432
  return wsHeaders;
472
433
  };
473
434
  exports.lowercaseHeaderKeys = lowercaseHeaderKeys;
435
+ const msToSeconds = (ms) => Math.floor(ms / 1000);
436
+ exports.msToSeconds = msToSeconds;
474
437
  // istanbul ignore next
475
438
  const isIp = (str) => net_1.default.isIPv4(str) || net_1.default.isIPv6(str);
476
439
  exports.isIp = isIp;
@@ -496,4 +459,7 @@ exports.isPkgBundle = isPkgBundle;
496
459
  // istanbul ignore next
497
460
  const isRailway = () => typeof process.env.RAILWAY_STATIC_URL !== 'undefined';
498
461
  exports.isRailway = isRailway;
499
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBOEM7QUFDOUMsb0RBQTRCO0FBQzVCLHdEQUEwQjtBQUMxQixvREFBdUI7QUFDdkIsNENBQW9CO0FBQ3BCLCtCQUE0QjtBQUM1QixnRUFBdUM7QUFFdkMsNkJBQTJDO0FBQzNDLG9FQUEyQztBQUMzQyxnREFBd0I7QUFDeEIsOENBQXNCO0FBRXRCLG9DQVlrQjtBQUNsQixtQ0FBc0M7QUFDdEMsMENBQTBEO0FBQzFELHFDQUF1RDtBQUN2RCxnRUFBdUM7QUFDdkMsbUNBQXlDO0FBRXpDLDBDQUF3QjtBQUN4QiwwQ0FBd0I7QUFDeEIsK0NBQTZCO0FBRTdCLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksRUFBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0FBRWxELE1BQU0sY0FBYyxHQUFHLENBQzVCLE9BQU8sR0FBRyxHQUFHLEVBQ2IsWUFBb0IsRUFDcEIsTUFBTSxHQUFHLElBQUksRUFDYixXQUFvQixFQUNaLEVBQUU7SUFDVixJQUFJLGVBQWdDLENBQUM7SUFDckMsSUFBSSxJQUFZLENBQUM7SUFFakIsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQzlCLGVBQWUsR0FBRyxJQUFJLHFCQUFlLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLElBQUksR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ25DO1NBQU07UUFDTCxlQUFlLEdBQUcsSUFBSSxxQkFBZSxFQUFFLENBQUM7UUFDeEMsSUFBSSxHQUFHLFlBQVksQ0FBQztLQUNyQjtJQUVELElBQUksV0FBVyxFQUFFO1FBQ2Ys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
462
+ // istanbul ignore next
463
+ const isNetlify = () => typeof process.env.NETLIFY !== 'undefined';
464
+ exports.isNetlify = isNetlify;
465
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBOEM7QUFFOUMsd0RBQTBCO0FBQzFCLG9EQUF1QjtBQUN2Qiw0Q0FBb0I7QUFDcEIsK0JBQTRCO0FBQzVCLGdFQUF1QztBQUV2Qyw2QkFBMkM7QUFDM0Msb0VBQTJDO0FBQzNDLGdEQUF3QjtBQUN4Qiw4Q0FBc0I7QUFFdEIsb0NBWWtCO0FBQ2xCLDBDQUEwRDtBQUMxRCxxQ0FBdUQ7QUFDdkQsbUNBQXlDO0FBRXpDLDBDQUF3QjtBQUN4QiwwQ0FBd0I7QUFDeEIsK0NBQTZCO0FBRTdCLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksRUFBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0FBRWxELE1BQU0sY0FBYyxHQUFHLENBQzVCLE9BQU8sR0FBRyxHQUFHLEVBQ2IsWUFBb0IsRUFDcEIsTUFBTSxHQUFHLElBQUksRUFDYixXQUFvQixFQUNaLEVBQUU7SUFDVixJQUFJLGVBQWdDLENBQUM7SUFDckMsSUFBSSxJQUFZLENBQUM7SUFFakIsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQzlCLGVBQWUsR0FBRyxJQUFJLHFCQUFlLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLElBQUksR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ25DO1NBQU07UUFDTCxlQUFlLEdBQUcsSUFBSSxxQkFBZSxFQUFFLENBQUM7UUFDeEMsSUFBSSxHQUFHLFlBQVksQ0FBQztLQUNyQjtJQUVELElBQUksV0FBVyxFQUFFO1FBQ2YsZUFBZSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFD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
@@ -5,7 +5,12 @@ const logger_1 = require("@surgio/logger");
5
5
  const _1 = require("./");
6
6
  const logger = (0, logger_1.createLogger)({ service: 'surgio:utils:patch-proxy' });
7
7
  const keys = ['http_proxy', 'https_proxy', 'all_proxy'];
8
- if (!(0, _1.isHeroku)() && !(0, _1.isNow)() && !(0, _1.isGitHubActions)() && !(0, _1.isGitLabCI)()) {
8
+ if (!(0, _1.isNow)() &&
9
+ !(0, _1.isHeroku)() &&
10
+ !(0, _1.isGitHubActions)() &&
11
+ !(0, _1.isGitLabCI)() &&
12
+ !(0, _1.isRailway)() &&
13
+ !(0, _1.isNetlify)()) {
9
14
  process.env.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE = '';
10
15
  keys.forEach((key) => {
11
16
  if (key in process.env) {
@@ -16,4 +21,4 @@ if (!(0, _1.isHeroku)() && !(0, _1.isNow)() && !(0, _1.isGitHubActions)() && !(0
16
21
  }
17
22
  });
18
23
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2gtcHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbHMvcGF0Y2gtcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVCQUF1Qjs7QUFFdkIsMkNBQThDO0FBQzlDLHlCQUFrRTtBQUVsRSxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEVBQUMsRUFBRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQyxDQUFDO0FBQ3JFLE1BQU0sSUFBSSxHQUEwQixDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFFL0UsSUFBSSxDQUFDLElBQUEsV0FBUSxHQUFFLElBQUksQ0FBQyxJQUFBLFFBQUssR0FBRSxJQUFJLENBQUMsSUFBQSxrQkFBZSxHQUFFLElBQUksQ0FBQyxJQUFBLGFBQVUsR0FBRSxFQUFFO0lBQ2xFLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkNBQTJDLEdBQUcsRUFBRSxDQUFDO0lBRTdELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNuQixJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ3RCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRS9CLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xFLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQyxDQUFDLENBQUM7Q0FDSiJ9
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2gtcHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvdXRpbHMvcGF0Y2gtcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVCQUF1Qjs7QUFFdkIsMkNBQThDO0FBQzlDLHlCQU9ZO0FBRVosTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxFQUFDLEVBQUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLENBQUMsQ0FBQztBQUNyRSxNQUFNLElBQUksR0FBMEIsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBRS9FLElBQ0UsQ0FBQyxJQUFBLFFBQUssR0FBRTtJQUNSLENBQUMsSUFBQSxXQUFRLEdBQUU7SUFDWCxDQUFDLElBQUEsa0JBQWUsR0FBRTtJQUNsQixDQUFDLElBQUEsYUFBVSxHQUFFO0lBQ2IsQ0FBQyxJQUFBLFlBQVMsR0FBRTtJQUNaLENBQUMsSUFBQSxZQUFTLEdBQUUsRUFDWjtJQUNBLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkNBQTJDLEdBQUcsRUFBRSxDQUFDO0lBRTdELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNuQixJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ3RCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRS9CLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xFLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQyxDQUFDLENBQUM7Q0FDSiJ9
@@ -3,4 +3,4 @@ export declare const getSurgeExtendHeaders: (wsHeaders: Record<string, string>)
3
3
  /**
4
4
  * @see https://manual.nssurge.com/policy/proxy.html
5
5
  */
6
- export declare const getSurgeNodes: (list: ReadonlyArray<PossibleNodeConfigType>, filter?: NodeFilterType | SortedNodeNameFilterType | undefined) => string;
6
+ export declare const getSurgeNodes: (list: ReadonlyArray<PossibleNodeConfigType>, filter?: SortedNodeNameFilterType | NodeFilterType | undefined) => string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "surgio",
3
3
  "description": "Generating rules for Surge, Clash, Quantumult like a PRO",
4
- "version": "2.16.0",
4
+ "version": "2.17.0",
5
5
  "main": "build/index.js",
6
6
  "typings": "build/index.d.ts",
7
7
  "bin": {
@@ -65,9 +65,9 @@
65
65
  "joi": "^17.1.1",
66
66
  "listr": "^0.14.3",
67
67
  "lodash": "^4.17.19",
68
- "lru-cache": "^6.0.0",
69
68
  "merge-stream": "^2.0.0",
70
69
  "ms": "^2.1.3",
70
+ "node-cache": "^5.1.2",
71
71
  "node-dir": "^0.1.17",
72
72
  "nunjucks": "^3.2.1",
73
73
  "ora": "^5.1.0",
@@ -92,7 +92,6 @@
92
92
  "@types/inquirer": "^7.3.0",
93
93
  "@types/listr": "^0.14.2",
94
94
  "@types/lodash": "^4.14.174",
95
- "@types/lru-cache": "^5.1.0",
96
95
  "@types/node": "^16",
97
96
  "@types/nunjucks": "^3.2.0",
98
97
  "@types/sinon": "^10.0.6",