surgio 2.25.2 → 3.0.0-alpha.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 (182) hide show
  1. package/bin/dev +17 -0
  2. package/bin/dev.cmd +3 -0
  3. package/bin/run +8 -0
  4. package/bin/run.cmd +3 -0
  5. package/build/base-command.d.ts +18 -0
  6. package/build/base-command.js +74 -0
  7. package/build/commands/check.d.ts +10 -0
  8. package/build/commands/check.js +88 -0
  9. package/build/commands/clean-cache.d.ts +6 -0
  10. package/build/commands/clean-cache.js +29 -0
  11. package/build/commands/doctor.d.ts +6 -0
  12. package/build/commands/doctor.js +21 -0
  13. package/build/commands/generate.d.ts +7 -0
  14. package/build/commands/generate.js +93 -0
  15. package/build/commands/lint.d.ts +6 -0
  16. package/build/commands/lint.js +36 -0
  17. package/build/commands/new.d.ts +6 -0
  18. package/build/commands/new.js +36 -0
  19. package/build/commands/subscriptions.d.ts +7 -0
  20. package/build/commands/subscriptions.js +96 -0
  21. package/build/commands/upload.d.ts +6 -0
  22. package/build/commands/upload.js +87 -0
  23. package/build/config.d.ts +6 -0
  24. package/build/config.js +151 -0
  25. package/build/constant/constant.d.ts +17 -16
  26. package/build/constant/constant.js +3 -2
  27. package/build/constant/env.js +1 -1
  28. package/build/constant/error.js +1 -1
  29. package/build/constant/index.js +1 -1
  30. package/build/generate.d.ts +0 -1
  31. package/build/generate.js +3 -65
  32. package/build/generator/artifact.d.ts +299 -64
  33. package/build/generator/artifact.js +90 -92
  34. package/build/generator/index.d.ts +2 -0
  35. package/build/generator/index.js +19 -0
  36. package/build/generator/template.js +2 -6
  37. package/build/hooks/init.d.ts +3 -0
  38. package/build/hooks/init.js +32 -0
  39. package/build/index.d.ts +55 -53
  40. package/build/index.js +13 -51
  41. package/build/internal.d.ts +4 -0
  42. package/build/internal.js +21 -0
  43. package/build/misc/deprecation.d.ts +1 -6
  44. package/build/misc/deprecation.js +1 -8
  45. package/build/misc/flag_cn.js +1 -1
  46. package/build/provider/BlackSSLProvider.d.ts +4 -3
  47. package/build/provider/BlackSSLProvider.js +24 -16
  48. package/build/provider/ClashProvider.d.ts +7 -10
  49. package/build/provider/ClashProvider.js +165 -76
  50. package/build/provider/CustomProvider.d.ts +4 -3
  51. package/build/provider/CustomProvider.js +81 -50
  52. package/build/provider/Provider.d.ts +9 -22
  53. package/build/provider/Provider.js +31 -69
  54. package/build/provider/ShadowsocksJsonSubscribeProvider.d.ts +4 -5
  55. package/build/provider/ShadowsocksJsonSubscribeProvider.js +27 -21
  56. package/build/provider/ShadowsocksSubscribeProvider.d.ts +5 -8
  57. package/build/provider/ShadowsocksSubscribeProvider.js +30 -27
  58. package/build/provider/ShadowsocksrSubscribeProvider.d.ts +5 -8
  59. package/build/provider/ShadowsocksrSubscribeProvider.js +30 -23
  60. package/build/provider/SsdProvider.d.ts +5 -8
  61. package/build/provider/SsdProvider.js +56 -39
  62. package/build/provider/TrojanProvider.d.ts +5 -8
  63. package/build/provider/TrojanProvider.js +37 -30
  64. package/build/provider/V2rayNSubscribeProvider.d.ts +4 -5
  65. package/build/provider/V2rayNSubscribeProvider.js +61 -33
  66. package/build/provider/index.d.ts +16 -2
  67. package/build/provider/index.js +12 -5
  68. package/build/provider/types.d.ts +10 -1
  69. package/build/provider/types.js +1 -1
  70. package/build/redis.js +1 -1
  71. package/build/types.d.ts +45 -236
  72. package/build/types.js +2 -1
  73. package/build/utils/cache.js +29 -27
  74. package/build/utils/clash.d.ts +204 -3
  75. package/build/utils/clash.js +247 -106
  76. package/build/utils/configurables.d.ts +71 -0
  77. package/build/utils/configurables.js +8 -0
  78. package/build/utils/constant.js +1 -1
  79. package/build/utils/dns.js +1 -1
  80. package/build/utils/doctor.d.ts +2 -0
  81. package/build/utils/doctor.js +38 -0
  82. package/build/utils/env-flag.js +2 -2
  83. package/build/utils/error-helper.d.ts +2 -2
  84. package/build/utils/error-helper.js +30 -16
  85. package/build/utils/filter.d.ts +46 -43
  86. package/build/utils/filter.js +51 -30
  87. package/build/utils/flag.js +1 -1
  88. package/build/utils/http-client.js +38 -5
  89. package/build/utils/index.d.ts +13 -21
  90. package/build/utils/index.js +98 -117
  91. package/build/utils/linter.js +5 -2
  92. package/build/utils/loon.d.ts +3 -2
  93. package/build/utils/loon.js +67 -5
  94. package/build/utils/quantumult.d.ts +3 -3
  95. package/build/utils/quantumult.js +190 -258
  96. package/build/utils/relayable-url.js +1 -1
  97. package/build/utils/remote-snippet.js +3 -4
  98. package/build/utils/ss.js +27 -17
  99. package/build/utils/ssr.js +3 -4
  100. package/build/utils/subscription.js +7 -7
  101. package/build/utils/surfboard.d.ts +3 -2
  102. package/build/utils/surfboard.js +142 -126
  103. package/build/utils/surge.d.ts +4 -2
  104. package/build/utils/surge.js +328 -300
  105. package/build/utils/time.d.ts +1 -0
  106. package/build/utils/time.js +6 -0
  107. package/build/utils/tmp-helper.js +8 -1
  108. package/build/utils/trojan.js +19 -11
  109. package/build/utils/v2ray.js +2 -2
  110. package/build/validators/artifact.d.ts +35 -0
  111. package/build/validators/artifact.js +17 -0
  112. package/build/validators/common.d.ts +121 -0
  113. package/build/validators/common.js +52 -0
  114. package/build/validators/filter.d.ts +10 -0
  115. package/build/validators/filter.js +15 -0
  116. package/build/validators/hooks.d.ts +7 -0
  117. package/build/validators/hooks.js +8 -0
  118. package/build/validators/http.d.ts +137 -0
  119. package/build/validators/http.js +19 -0
  120. package/build/validators/index.d.ts +15 -0
  121. package/build/validators/index.js +32 -0
  122. package/build/validators/provider.d.ts +109 -0
  123. package/build/validators/provider.js +41 -0
  124. package/build/validators/shadowsocks.d.ts +86 -0
  125. package/build/validators/shadowsocks.js +29 -0
  126. package/build/validators/shadowsocksr.d.ts +77 -0
  127. package/build/validators/shadowsocksr.js +19 -0
  128. package/build/validators/snell.d.ts +71 -0
  129. package/build/validators/snell.js +20 -0
  130. package/build/validators/socks5.d.ts +77 -0
  131. package/build/validators/socks5.js +19 -0
  132. package/build/validators/surgio-config.d.ts +307 -0
  133. package/build/validators/surgio-config.js +95 -0
  134. package/build/validators/trojan.d.ts +86 -0
  135. package/build/validators/trojan.js +15 -0
  136. package/build/validators/tuic.d.ts +301 -0
  137. package/build/validators/tuic.js +21 -0
  138. package/build/validators/vmess.d.ts +92 -0
  139. package/build/validators/vmess.js +29 -0
  140. package/build/validators/wireguard.d.ts +123 -0
  141. package/build/validators/wireguard.js +26 -0
  142. package/config.d.ts +1 -0
  143. package/config.js +1 -0
  144. package/constant.d.ts +1 -0
  145. package/constant.js +1 -0
  146. package/generator.d.ts +1 -0
  147. package/generator.js +1 -0
  148. package/hygen-template/artifact/new/index.js +15 -15
  149. package/hygen-template/provider/new/index.js +8 -7
  150. package/hygen-template/template/new/index.js +3 -3
  151. package/index.d.ts +1 -0
  152. package/index.js +1 -0
  153. package/internal.d.ts +1 -0
  154. package/internal.js +1 -0
  155. package/package.json +112 -75
  156. package/provider.d.ts +1 -0
  157. package/provider.js +1 -0
  158. package/utils.d.ts +1 -0
  159. package/utils.js +1 -0
  160. package/bin/surgio.js +0 -8
  161. package/build/command/check.d.ts +0 -9
  162. package/build/command/check.js +0 -79
  163. package/build/command/clean-cache.d.ts +0 -8
  164. package/build/command/clean-cache.js +0 -43
  165. package/build/command/doctor.d.ts +0 -9
  166. package/build/command/doctor.js +0 -63
  167. package/build/command/generate.d.ts +0 -8
  168. package/build/command/generate.js +0 -64
  169. package/build/command/lint.d.ts +0 -7
  170. package/build/command/lint.js +0 -42
  171. package/build/command/new.d.ts +0 -7
  172. package/build/command/new.js +0 -44
  173. package/build/command/subscriptions.d.ts +0 -10
  174. package/build/command/subscriptions.js +0 -87
  175. package/build/command/upload.d.ts +0 -9
  176. package/build/command/upload.js +0 -101
  177. package/build/utils/command.d.ts +0 -2
  178. package/build/utils/command.js +0 -23
  179. package/build/utils/config.d.ts +0 -6
  180. package/build/utils/config.js +0 -245
  181. package/build/utils/patch-proxy.d.ts +0 -1
  182. package/build/utils/patch-proxy.js +0 -19
@@ -3,15 +3,13 @@ import _ from 'lodash';
3
3
  import { Environment } from 'nunjucks';
4
4
  import { EventEmitter } from 'events';
5
5
  import { getProvider } from '../provider';
6
- import { ArtifactConfig, CommandConfig, PossibleNodeConfigType, RemoteSnippet, SimpleNodeConfig } from '../types';
7
- declare type ThenArg<T> = T extends PromiseLike<infer U> ? U : T;
6
+ import { GetNodeListParams } from '../provider/types';
7
+ import { ArtifactConfig, CommandConfig, PossibleNodeConfigType, RemoteSnippet, ThenArg } from '../types';
8
8
  export interface ArtifactOptions {
9
9
  readonly remoteSnippetList?: ReadonlyArray<RemoteSnippet>;
10
10
  readonly templateEngine?: Environment;
11
11
  }
12
- export interface ExtendableRenderContext {
13
- readonly urlParams?: Record<string, string>;
14
- }
12
+ export type ExtendableRenderContext = Record<string, string>;
15
13
  export declare class Artifact extends EventEmitter {
16
14
  surgioConfig: CommandConfig;
17
15
  artifact: ArtifactConfig;
@@ -21,73 +19,310 @@ export declare class Artifact extends EventEmitter {
21
19
  nodeConfigListMap: Map<string, ReadonlyArray<PossibleNodeConfigType>>;
22
20
  providerMap: Map<string, ThenArg<ReturnType<typeof getProvider>>>;
23
21
  nodeList: PossibleNodeConfigType[];
24
- nodeNameList: SimpleNodeConfig[];
25
22
  private customFilters;
26
23
  private netflixFilter;
27
24
  private youtubePremiumFilter;
28
25
  constructor(surgioConfig: CommandConfig, artifact: ArtifactConfig, options?: ArtifactOptions);
29
26
  get isReady(): boolean;
30
27
  getRenderContext(extendRenderContext?: ExtendableRenderContext): {
31
- clashProxyConfig?: {
32
- proxies: readonly any[];
33
- 'proxy-groups': readonly any[];
34
- } | undefined;
35
- proxyTestUrl: string | undefined;
36
- downloadUrl: string;
37
- snippet: (filePath: string) => RemoteSnippet;
38
- nodes: PossibleNodeConfigType[];
39
- names: SimpleNodeConfig[];
40
- remoteSnippets: _.Dictionary<RemoteSnippet>;
41
- nodeList: PossibleNodeConfigType[];
42
- provider: string;
43
- providerName: string;
44
- artifactName: string;
45
- getDownloadUrl: (name: string) => string;
46
- getUrl: (p: string) => string;
47
- getNodeNames: (list: readonly SimpleNodeConfig[], filter?: import("../types").SortedNodeNameFilterType | import("../types").NodeNameFilterType | undefined, separator?: string | undefined) => string;
48
- getClashNodeNames: (list: readonly SimpleNodeConfig[], filter?: import("../types").SortedNodeNameFilterType | import("../types").NodeNameFilterType | undefined, existingProxies?: readonly string[] | undefined) => readonly string[];
49
- getClashNodes: (list: readonly PossibleNodeConfigType[], filter?: import("../types").SortedNodeNameFilterType | import("../types").NodeFilterType | undefined) => readonly any[];
50
- getSurgeNodes: (list: readonly PossibleNodeConfigType[], filter?: import("../types").SortedNodeNameFilterType | import("../types").NodeFilterType | undefined) => string;
51
- getSurfboardNodes: (list: readonly PossibleNodeConfigType[], filter?: import("../types").SortedNodeNameFilterType | import("../types").NodeFilterType | undefined) => string;
52
- getShadowsocksNodes: (list: readonly import("../types").ShadowsocksNodeConfig[], groupName?: string) => string;
53
- getShadowsocksNodesJSON: (list: readonly import("../types").ShadowsocksNodeConfig[]) => string;
54
- getShadowsocksrNodes: (list: readonly import("../types").ShadowsocksrNodeConfig[], groupName: string) => string;
55
- getQuantumultNodes: (list: readonly (import("../types").VmessNodeConfig | import("../types").HttpsNodeConfig | import("../types").ShadowsocksNodeConfig | import("../types").ShadowsocksrNodeConfig)[], groupName?: string, filter?: import("../types").SortedNodeNameFilterType | import("../types").NodeNameFilterType | undefined) => string;
56
- getV2rayNNodes: (list: readonly import("../types").VmessNodeConfig[]) => string;
57
- getQuantumultXNodes: (list: readonly PossibleNodeConfigType[], filter?: import("../types").SortedNodeNameFilterType | import("../types").NodeNameFilterType | undefined) => string;
58
- getMellowNodes: (list: readonly (import("../types").VmessNodeConfig | import("../types").ShadowsocksNodeConfig)[], filter?: import("../types").SortedNodeNameFilterType | import("../types").NodeFilterType | undefined) => string;
59
- getLoonNodes: (list: readonly PossibleNodeConfigType[], filter?: import("../types").SortedNodeNameFilterType | import("../types").NodeNameFilterType | undefined) => string;
60
- usFilter: import("../types").NodeNameFilterType;
61
- hkFilter: import("../types").NodeNameFilterType;
62
- japanFilter: import("../types").NodeNameFilterType;
63
- koreaFilter: import("../types").NodeNameFilterType;
64
- singaporeFilter: import("../types").NodeNameFilterType;
65
- taiwanFilter: import("../types").NodeNameFilterType;
66
- chinaBackFilter: import("../types").NodeNameFilterType;
67
- chinaOutFilter: import("../types").NodeNameFilterType;
68
- shadowsocksFilter: import("../types").NodeNameFilterType;
69
- shadowsocksrFilter: import("../types").NodeNameFilterType;
70
- vmessFilter: import("../types").NodeNameFilterType;
71
- v2rayFilter: import("../types").NodeNameFilterType;
72
- snellFilter: import("../types").NodeNameFilterType;
73
- httpFilter: import("../types").NodeNameFilterType;
74
- httpsFilter: import("../types").NodeNameFilterType;
75
- trojanFilter: import("../types").NodeNameFilterType;
76
- socks5Filter: import("../types").NodeNameFilterType;
77
- toUrlSafeBase64: (str: string) => string;
78
- toBase64: (str: string) => string;
79
- encodeURIComponent: typeof encodeURIComponent;
80
- netflixFilter: NonNullable<import("../types").SortedNodeNameFilterType | import("../types").NodeNameFilterType | undefined>;
81
- youtubePremiumFilter: NonNullable<import("../types").SortedNodeNameFilterType | import("../types").NodeNameFilterType | undefined>;
82
- customFilters: {
83
- readonly [name: string]: import("../types").SortedNodeNameFilterType | import("../types").NodeNameFilterType;
84
- };
85
- customParams: import("../types").PlainObjectOf<string | number | boolean> & Record<string, string>;
28
+ readonly proxyTestUrl: string | undefined;
29
+ readonly internetTestUrl: string | undefined;
30
+ readonly downloadUrl: string;
31
+ readonly snippet: (filePath: string) => RemoteSnippet;
32
+ readonly remoteSnippets: _.Dictionary<RemoteSnippet>;
33
+ readonly nodeList: PossibleNodeConfigType[];
34
+ readonly provider: string;
35
+ readonly providerName: string;
36
+ readonly artifactName: string;
37
+ readonly getDownloadUrl: (name: string) => string;
38
+ readonly getUrl: (p: string) => string;
39
+ readonly getNodeNames: (list: readonly PossibleNodeConfigType[], filter?: ((nodeConfig: PossibleNodeConfigType) => boolean) | {
40
+ readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
41
+ readonly supportSort: true;
42
+ } | undefined, separator?: string | undefined) => string;
43
+ readonly getClashNodes: (list: readonly PossibleNodeConfigType[], filter?: ((nodeConfig: PossibleNodeConfigType) => boolean) | {
44
+ readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
45
+ readonly supportSort: true;
46
+ } | undefined) => NonNullable<{
47
+ plugin?: string | undefined;
48
+ readonly 'client-fingerprint'?: string | undefined;
49
+ 'plugin-opts'?: {
50
+ mode: "tls" | "http" | "ws" | "wss";
51
+ host: string | undefined;
52
+ } | {
53
+ host: string | undefined;
54
+ path: string;
55
+ mux: boolean;
56
+ headers: _.Omit<Record<string, string>, "host">;
57
+ 'skip-cert-verify'?: boolean | undefined;
58
+ mode: string;
59
+ tls: boolean;
60
+ } | {
61
+ host?: string | undefined;
62
+ version?: number | undefined;
63
+ password: string;
64
+ mode?: undefined;
65
+ } | undefined;
66
+ readonly type: "ss";
67
+ readonly cipher: string;
68
+ readonly name: string;
69
+ readonly password: string;
70
+ readonly port: string | number;
71
+ readonly server: string;
72
+ readonly udp: boolean;
73
+ readonly obfs?: undefined;
74
+ readonly protocol?: undefined;
75
+ readonly 'obfs-param'?: undefined;
76
+ readonly 'protocol-param'?: undefined;
77
+ readonly username?: undefined;
78
+ readonly tls?: undefined;
79
+ readonly 'skip-cert-verify'?: undefined;
80
+ } | {
81
+ readonly 'ws-opts'?: {
82
+ path: string | undefined;
83
+ headers: {
84
+ host?: string | undefined;
85
+ };
86
+ } | undefined;
87
+ readonly 'skip-cert-verify'?: boolean | undefined;
88
+ readonly tls: boolean;
89
+ readonly network?: "ws" | undefined;
90
+ readonly type: "vmess";
91
+ readonly cipher: "none" | "aes-128-gcm" | "chacha20-ietf-poly1305" | "auto";
92
+ readonly name: string;
93
+ readonly server: string;
94
+ readonly port: string | number;
95
+ readonly udp: boolean;
96
+ readonly uuid: string;
97
+ readonly alterId: string;
98
+ readonly password?: undefined;
99
+ readonly obfs?: undefined;
100
+ readonly protocol?: undefined;
101
+ readonly 'obfs-param'?: undefined;
102
+ readonly 'protocol-param'?: undefined;
103
+ readonly username?: undefined;
104
+ } | {
105
+ readonly type: "ssr";
106
+ readonly name: string;
107
+ readonly server: string;
108
+ readonly port: string | number;
109
+ readonly password: string;
110
+ readonly obfs: string;
111
+ readonly protocol: string;
112
+ readonly cipher: string;
113
+ readonly 'obfs-param': string;
114
+ readonly 'protocol-param': string;
115
+ readonly udp: boolean;
116
+ readonly username?: undefined;
117
+ readonly tls?: undefined;
118
+ readonly 'skip-cert-verify'?: undefined;
119
+ } | {
120
+ readonly version?: string | number | undefined;
121
+ readonly type: "snell";
122
+ readonly name: string;
123
+ readonly server: string;
124
+ readonly port: string | number;
125
+ readonly psk: string;
126
+ readonly 'obfs-opts': {
127
+ readonly host?: string | undefined;
128
+ readonly mode: "tls" | "http" | undefined;
129
+ };
130
+ readonly password?: undefined;
131
+ readonly obfs?: undefined;
132
+ readonly protocol?: undefined;
133
+ readonly cipher?: undefined;
134
+ readonly 'obfs-param'?: undefined;
135
+ readonly 'protocol-param'?: undefined;
136
+ readonly udp?: undefined;
137
+ readonly username?: undefined;
138
+ readonly tls?: undefined;
139
+ readonly 'skip-cert-verify'?: undefined;
140
+ } | {
141
+ readonly type: "http";
142
+ readonly name: string;
143
+ readonly server: string;
144
+ readonly port: string | number;
145
+ readonly username: string;
146
+ readonly password: string;
147
+ readonly tls: true;
148
+ readonly 'skip-cert-verify': boolean;
149
+ readonly obfs?: undefined;
150
+ readonly protocol?: undefined;
151
+ readonly cipher?: undefined;
152
+ readonly 'obfs-param'?: undefined;
153
+ readonly 'protocol-param'?: undefined;
154
+ readonly udp?: undefined;
155
+ } | {
156
+ readonly type: "http";
157
+ readonly name: string;
158
+ readonly server: string;
159
+ readonly port: string | number;
160
+ readonly username: string;
161
+ readonly password: string;
162
+ readonly obfs?: undefined;
163
+ readonly protocol?: undefined;
164
+ readonly cipher?: undefined;
165
+ readonly 'obfs-param'?: undefined;
166
+ readonly 'protocol-param'?: undefined;
167
+ readonly udp?: undefined;
168
+ readonly tls?: undefined;
169
+ readonly 'skip-cert-verify'?: undefined;
170
+ } | {
171
+ readonly network?: string | undefined;
172
+ readonly 'ws-opts'?: {
173
+ path: string;
174
+ headers?: undefined;
175
+ } | undefined;
176
+ readonly 'skip-cert-verify': boolean;
177
+ readonly sni?: string | undefined;
178
+ readonly alpn?: [string, ...string[]] | undefined;
179
+ readonly udp?: true | undefined;
180
+ readonly type: "trojan";
181
+ readonly name: string;
182
+ readonly server: string;
183
+ readonly port: string | number;
184
+ readonly password: string;
185
+ readonly obfs?: undefined;
186
+ readonly protocol?: undefined;
187
+ readonly cipher?: undefined;
188
+ readonly 'obfs-param'?: undefined;
189
+ readonly 'protocol-param'?: undefined;
190
+ readonly username?: undefined;
191
+ readonly tls?: undefined;
192
+ } | {
193
+ readonly udp?: boolean | undefined;
194
+ readonly 'skip-cert-verify'?: boolean | undefined;
195
+ readonly tls?: boolean | undefined;
196
+ readonly password?: string | undefined;
197
+ readonly username?: string | undefined;
198
+ readonly type: "socks5";
199
+ readonly name: string;
200
+ readonly server: string;
201
+ readonly port: string | number;
202
+ readonly obfs?: undefined;
203
+ readonly protocol?: undefined;
204
+ readonly cipher?: undefined;
205
+ readonly 'obfs-param'?: undefined;
206
+ readonly 'protocol-param'?: undefined;
207
+ } | {
208
+ readonly alpn?: [string, ...string[]] | undefined;
209
+ readonly type: "tuic";
210
+ readonly name: string;
211
+ readonly server: string;
212
+ readonly port: string | number;
213
+ readonly udp: true;
214
+ readonly password?: undefined;
215
+ readonly obfs?: undefined;
216
+ readonly protocol?: undefined;
217
+ readonly cipher?: undefined;
218
+ readonly 'obfs-param'?: undefined;
219
+ readonly 'protocol-param'?: undefined;
220
+ readonly username?: undefined;
221
+ readonly tls?: undefined;
222
+ readonly 'skip-cert-verify'?: undefined;
223
+ } | {
224
+ readonly reserved?: number[] | undefined;
225
+ readonly 'preshared-key'?: string | undefined;
226
+ readonly udp: true;
227
+ readonly server: string;
228
+ readonly port: number;
229
+ readonly 'public-key': string;
230
+ readonly dns?: [string, ...string[]] | undefined;
231
+ readonly mtu?: number | undefined;
232
+ readonly ipv6?: string | undefined;
233
+ readonly type: "wireguard";
234
+ readonly name: string;
235
+ readonly 'private-key': string;
236
+ readonly ip: string;
237
+ readonly password?: undefined;
238
+ readonly obfs?: undefined;
239
+ readonly protocol?: undefined;
240
+ readonly cipher?: undefined;
241
+ readonly 'obfs-param'?: undefined;
242
+ readonly 'protocol-param'?: undefined;
243
+ readonly username?: undefined;
244
+ readonly tls?: undefined;
245
+ readonly 'skip-cert-verify'?: undefined;
246
+ } | null>[];
247
+ readonly getClashNodeNames: (list: readonly PossibleNodeConfigType[], filter?: ((nodeConfig: PossibleNodeConfigType) => boolean) | {
248
+ readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
249
+ readonly supportSort: true;
250
+ } | undefined, prependNodeNames?: readonly string[] | undefined) => readonly string[];
251
+ readonly getSurgeNodes: (nodeList: readonly PossibleNodeConfigType[], filter?: ((nodeConfig: PossibleNodeConfigType) => boolean) | {
252
+ readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
253
+ readonly supportSort: true;
254
+ } | undefined) => string;
255
+ readonly getSurgeNodeNames: (nodeList: readonly PossibleNodeConfigType[], filter?: ((nodeConfig: PossibleNodeConfigType) => boolean) | {
256
+ readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
257
+ readonly supportSort: true;
258
+ } | undefined) => string;
259
+ readonly getSurgeWireguardNodes: (nodeList: readonly PossibleNodeConfigType[]) => string;
260
+ readonly getSurfboardNodes: (list: readonly PossibleNodeConfigType[], filter?: ((nodeConfig: PossibleNodeConfigType) => boolean) | {
261
+ readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
262
+ readonly supportSort: true;
263
+ } | undefined) => string;
264
+ readonly getSurfboardNodeNames: (list: readonly PossibleNodeConfigType[], filter?: ((nodeConfig: PossibleNodeConfigType) => boolean) | {
265
+ readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
266
+ readonly supportSort: true;
267
+ } | undefined) => string;
268
+ readonly getShadowsocksNodes: (list: readonly import("../types").ShadowsocksNodeConfig[], groupName?: string) => string;
269
+ readonly getShadowsocksNodesJSON: (list: readonly import("../types").ShadowsocksNodeConfig[]) => string;
270
+ readonly getShadowsocksrNodes: (list: readonly import("../types").ShadowsocksrNodeConfig[], groupName: string) => string;
271
+ readonly getV2rayNNodes: (list: readonly import("../types").VmessNodeConfig[]) => string;
272
+ readonly getQuantumultXNodes: (nodeList: readonly PossibleNodeConfigType[], filter?: ((nodeConfig: PossibleNodeConfigType) => boolean) | {
273
+ readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
274
+ readonly supportSort: true;
275
+ } | undefined) => string;
276
+ readonly getQuantumultXNodeNames: (nodeList: readonly PossibleNodeConfigType[], filter?: ((nodeConfig: PossibleNodeConfigType) => boolean) | {
277
+ readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
278
+ readonly supportSort: true;
279
+ } | undefined) => string;
280
+ readonly getLoonNodes: (list: readonly PossibleNodeConfigType[], filter?: ((nodeConfig: PossibleNodeConfigType) => boolean) | {
281
+ readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
282
+ readonly supportSort: true;
283
+ } | undefined) => string;
284
+ readonly getLoonNodeNames: (list: readonly PossibleNodeConfigType[], filter?: ((nodeConfig: PossibleNodeConfigType) => boolean) | {
285
+ readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
286
+ readonly supportSort: true;
287
+ } | undefined, separator?: string | undefined) => string;
288
+ readonly usFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
289
+ readonly hkFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
290
+ readonly japanFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
291
+ readonly koreaFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
292
+ readonly singaporeFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
293
+ readonly taiwanFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
294
+ readonly chinaBackFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
295
+ readonly chinaOutFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
296
+ readonly shadowsocksFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
297
+ readonly shadowsocksrFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
298
+ readonly vmessFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
299
+ readonly v2rayFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
300
+ readonly snellFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
301
+ readonly httpFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
302
+ readonly httpsFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
303
+ readonly trojanFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
304
+ readonly socks5Filter: (nodeConfig: PossibleNodeConfigType) => boolean;
305
+ readonly wireguardFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
306
+ readonly toUrlSafeBase64: (str: string) => string;
307
+ readonly toBase64: (str: string) => string;
308
+ readonly encodeURIComponent: typeof encodeURIComponent;
309
+ readonly netflixFilter: NonNullable<((nodeConfig: PossibleNodeConfigType) => boolean) | {
310
+ readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
311
+ readonly supportSort: true;
312
+ } | undefined>;
313
+ readonly youtubePremiumFilter: NonNullable<((nodeConfig: PossibleNodeConfigType) => boolean) | {
314
+ readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
315
+ readonly supportSort: true;
316
+ } | undefined>;
317
+ readonly customFilters: Record<string, ((nodeConfig: PossibleNodeConfigType) => boolean) | {
318
+ readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
319
+ readonly supportSort: true;
320
+ }>;
321
+ readonly customParams: Record<string, unknown> & ExtendableRenderContext;
86
322
  };
87
- init({ requestUserAgent, }?: {
88
- requestUserAgent?: string;
323
+ init(params?: {
324
+ getNodeListParams?: GetNodeListParams;
89
325
  }): Promise<this>;
90
326
  render(templateEngine?: Environment, extendRenderContext?: ExtendableRenderContext): string;
91
327
  private providerMapper;
92
328
  }
93
- export {};