surgio 2.25.3 → 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.
- package/bin/dev +17 -0
- package/bin/dev.cmd +3 -0
- package/bin/run +8 -0
- package/bin/run.cmd +3 -0
- package/build/base-command.d.ts +18 -0
- package/build/base-command.js +74 -0
- package/build/commands/check.d.ts +10 -0
- package/build/commands/check.js +88 -0
- package/build/commands/clean-cache.d.ts +6 -0
- package/build/commands/clean-cache.js +29 -0
- package/build/commands/doctor.d.ts +6 -0
- package/build/commands/doctor.js +21 -0
- package/build/commands/generate.d.ts +7 -0
- package/build/commands/generate.js +93 -0
- package/build/commands/lint.d.ts +6 -0
- package/build/commands/lint.js +36 -0
- package/build/commands/new.d.ts +6 -0
- package/build/commands/new.js +36 -0
- package/build/commands/subscriptions.d.ts +7 -0
- package/build/commands/subscriptions.js +96 -0
- package/build/commands/upload.d.ts +6 -0
- package/build/commands/upload.js +87 -0
- package/build/config.d.ts +6 -0
- package/build/config.js +151 -0
- package/build/constant/constant.d.ts +17 -16
- package/build/constant/constant.js +3 -2
- package/build/constant/env.js +1 -1
- package/build/constant/error.js +1 -1
- package/build/constant/index.js +1 -1
- package/build/generate.d.ts +0 -1
- package/build/generate.js +3 -65
- package/build/generator/artifact.d.ts +299 -64
- package/build/generator/artifact.js +90 -92
- package/build/generator/index.d.ts +2 -0
- package/build/generator/index.js +19 -0
- package/build/generator/template.js +2 -6
- package/build/hooks/init.d.ts +3 -0
- package/build/hooks/init.js +32 -0
- package/build/index.d.ts +55 -53
- package/build/index.js +13 -51
- package/build/internal.d.ts +4 -0
- package/build/internal.js +21 -0
- package/build/misc/deprecation.d.ts +1 -6
- package/build/misc/deprecation.js +1 -8
- package/build/misc/flag_cn.js +1 -1
- package/build/provider/BlackSSLProvider.d.ts +4 -3
- package/build/provider/BlackSSLProvider.js +24 -16
- package/build/provider/ClashProvider.d.ts +7 -10
- package/build/provider/ClashProvider.js +165 -76
- package/build/provider/CustomProvider.d.ts +4 -3
- package/build/provider/CustomProvider.js +81 -50
- package/build/provider/Provider.d.ts +9 -22
- package/build/provider/Provider.js +31 -69
- package/build/provider/ShadowsocksJsonSubscribeProvider.d.ts +4 -5
- package/build/provider/ShadowsocksJsonSubscribeProvider.js +27 -21
- package/build/provider/ShadowsocksSubscribeProvider.d.ts +5 -8
- package/build/provider/ShadowsocksSubscribeProvider.js +30 -27
- package/build/provider/ShadowsocksrSubscribeProvider.d.ts +5 -8
- package/build/provider/ShadowsocksrSubscribeProvider.js +30 -23
- package/build/provider/SsdProvider.d.ts +5 -8
- package/build/provider/SsdProvider.js +56 -39
- package/build/provider/TrojanProvider.d.ts +5 -8
- package/build/provider/TrojanProvider.js +37 -30
- package/build/provider/V2rayNSubscribeProvider.d.ts +4 -5
- package/build/provider/V2rayNSubscribeProvider.js +61 -33
- package/build/provider/index.d.ts +16 -2
- package/build/provider/index.js +12 -5
- package/build/provider/types.d.ts +10 -1
- package/build/provider/types.js +1 -1
- package/build/redis.js +1 -1
- package/build/types.d.ts +45 -236
- package/build/types.js +2 -1
- package/build/utils/cache.js +29 -27
- package/build/utils/clash.d.ts +204 -3
- package/build/utils/clash.js +247 -110
- package/build/utils/configurables.d.ts +71 -0
- package/build/utils/configurables.js +8 -0
- package/build/utils/constant.js +1 -1
- package/build/utils/dns.js +1 -1
- package/build/utils/doctor.d.ts +2 -0
- package/build/utils/doctor.js +38 -0
- package/build/utils/env-flag.js +2 -2
- package/build/utils/error-helper.d.ts +2 -2
- package/build/utils/error-helper.js +30 -16
- package/build/utils/filter.d.ts +46 -43
- package/build/utils/filter.js +51 -30
- package/build/utils/flag.js +1 -1
- package/build/utils/http-client.js +38 -5
- package/build/utils/index.d.ts +13 -21
- package/build/utils/index.js +98 -117
- package/build/utils/linter.js +5 -2
- package/build/utils/loon.d.ts +3 -2
- package/build/utils/loon.js +67 -5
- package/build/utils/quantumult.d.ts +3 -3
- package/build/utils/quantumult.js +190 -258
- package/build/utils/relayable-url.js +1 -1
- package/build/utils/remote-snippet.js +3 -4
- package/build/utils/ss.js +27 -17
- package/build/utils/ssr.js +3 -4
- package/build/utils/subscription.js +7 -7
- package/build/utils/surfboard.d.ts +3 -2
- package/build/utils/surfboard.js +142 -126
- package/build/utils/surge.d.ts +4 -2
- package/build/utils/surge.js +328 -300
- package/build/utils/time.d.ts +1 -0
- package/build/utils/time.js +6 -0
- package/build/utils/tmp-helper.js +8 -1
- package/build/utils/trojan.js +19 -11
- package/build/utils/v2ray.js +2 -2
- package/build/validators/artifact.d.ts +35 -0
- package/build/validators/artifact.js +17 -0
- package/build/validators/common.d.ts +121 -0
- package/build/validators/common.js +52 -0
- package/build/validators/filter.d.ts +10 -0
- package/build/validators/filter.js +15 -0
- package/build/validators/hooks.d.ts +7 -0
- package/build/validators/hooks.js +8 -0
- package/build/validators/http.d.ts +137 -0
- package/build/validators/http.js +19 -0
- package/build/validators/index.d.ts +15 -0
- package/build/validators/index.js +32 -0
- package/build/validators/provider.d.ts +109 -0
- package/build/validators/provider.js +41 -0
- package/build/validators/shadowsocks.d.ts +86 -0
- package/build/validators/shadowsocks.js +29 -0
- package/build/validators/shadowsocksr.d.ts +77 -0
- package/build/validators/shadowsocksr.js +19 -0
- package/build/validators/snell.d.ts +71 -0
- package/build/validators/snell.js +20 -0
- package/build/validators/socks5.d.ts +77 -0
- package/build/validators/socks5.js +19 -0
- package/build/validators/surgio-config.d.ts +307 -0
- package/build/validators/surgio-config.js +95 -0
- package/build/validators/trojan.d.ts +86 -0
- package/build/validators/trojan.js +15 -0
- package/build/validators/tuic.d.ts +301 -0
- package/build/validators/tuic.js +21 -0
- package/build/validators/vmess.d.ts +92 -0
- package/build/validators/vmess.js +29 -0
- package/build/validators/wireguard.d.ts +123 -0
- package/build/validators/wireguard.js +26 -0
- package/config.d.ts +1 -0
- package/config.js +1 -0
- package/constant.d.ts +1 -0
- package/constant.js +1 -0
- package/generator.d.ts +1 -0
- package/generator.js +1 -0
- package/hygen-template/artifact/new/index.js +15 -15
- package/hygen-template/provider/new/index.js +8 -7
- package/hygen-template/template/new/index.js +3 -3
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/internal.d.ts +1 -0
- package/internal.js +1 -0
- package/package.json +112 -75
- package/provider.d.ts +1 -0
- package/provider.js +1 -0
- package/utils.d.ts +1 -0
- package/utils.js +1 -0
- package/bin/surgio.js +0 -8
- package/build/command/check.d.ts +0 -9
- package/build/command/check.js +0 -79
- package/build/command/clean-cache.d.ts +0 -8
- package/build/command/clean-cache.js +0 -43
- package/build/command/doctor.d.ts +0 -9
- package/build/command/doctor.js +0 -63
- package/build/command/generate.d.ts +0 -8
- package/build/command/generate.js +0 -64
- package/build/command/lint.d.ts +0 -7
- package/build/command/lint.js +0 -42
- package/build/command/new.d.ts +0 -7
- package/build/command/new.js +0 -44
- package/build/command/subscriptions.d.ts +0 -10
- package/build/command/subscriptions.js +0 -87
- package/build/command/upload.d.ts +0 -9
- package/build/command/upload.js +0 -101
- package/build/utils/command.d.ts +0 -2
- package/build/utils/command.js +0 -23
- package/build/utils/config.d.ts +0 -6
- package/build/utils/config.js +0 -245
- package/build/utils/patch-proxy.d.ts +0 -1
- package/build/utils/patch-proxy.js +0 -19
package/build/types.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { Promisable } from 'type-fest';
|
|
3
|
+
import type { Provider, GetNodeListParams } from './provider';
|
|
4
|
+
import { WireguardNodeConfigValidator, ProviderValidator, ShadowsocksNodeConfigValidator, HttpNodeConfigValidator, HttpsNodeConfigValidator, TrojanNodeConfigValidator, ShadowsocksrNodeConfigValidator, Socks5NodeConfigValidator, VmessNodeConfigValidator, SnellNodeConfigValidator, TuicNodeConfigValidator, SurgioConfigValidator, ArtifactValidator, RemoteSnippetValidator, NodeFilterTypeValidator, SortedNodeFilterTypeValidator } from './validators';
|
|
2
5
|
export declare enum NodeTypeEnum {
|
|
3
6
|
HTTPS = "https",
|
|
4
7
|
HTTP = "http",
|
|
@@ -8,7 +11,8 @@ export declare enum NodeTypeEnum {
|
|
|
8
11
|
Vmess = "vmess",
|
|
9
12
|
Trojan = "trojan",
|
|
10
13
|
Socks5 = "socks5",
|
|
11
|
-
Tuic = "tuic"
|
|
14
|
+
Tuic = "tuic",
|
|
15
|
+
Wireguard = "wireguard"
|
|
12
16
|
}
|
|
13
17
|
export declare enum SupportProviderEnum {
|
|
14
18
|
Clash = "clash",
|
|
@@ -21,126 +25,44 @@ export declare enum SupportProviderEnum {
|
|
|
21
25
|
Ssd = "ssd",
|
|
22
26
|
Trojan = "trojan"
|
|
23
27
|
}
|
|
24
|
-
export
|
|
28
|
+
export type CommandConfigBeforeNormalize = z.infer<typeof SurgioConfigValidator>;
|
|
29
|
+
export type CommandConfig = CommandConfigBeforeNormalize & {
|
|
25
30
|
publicUrl: string;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
readonly analytics?: boolean;
|
|
34
|
-
readonly checkHostname?: boolean;
|
|
35
|
-
readonly upload?: {
|
|
36
|
-
readonly prefix?: string;
|
|
37
|
-
readonly region?: string;
|
|
38
|
-
readonly endpoint?: string;
|
|
39
|
-
readonly bucket: string;
|
|
40
|
-
readonly accessKeyId: string;
|
|
41
|
-
readonly accessKeySecret: string;
|
|
42
|
-
};
|
|
43
|
-
readonly binPath?: {
|
|
44
|
-
readonly shadowsocksr?: string;
|
|
45
|
-
readonly v2ray?: string;
|
|
46
|
-
vmess?: string;
|
|
47
|
-
};
|
|
48
|
-
readonly flags?: {
|
|
49
|
-
[name: string]: ReadonlyArray<string | RegExp> | string | RegExp;
|
|
50
|
-
};
|
|
51
|
-
readonly surgeConfig?: {
|
|
52
|
-
readonly shadowsocksFormat?: 'ss' | 'custom';
|
|
53
|
-
readonly v2ray?: 'native' | 'external';
|
|
54
|
-
readonly resolveHostname?: boolean;
|
|
55
|
-
readonly vmessAEAD?: boolean;
|
|
56
|
-
};
|
|
57
|
-
readonly quantumultXConfig?: {
|
|
58
|
-
readonly vmessAEAD?: boolean;
|
|
59
|
-
};
|
|
60
|
-
readonly clashConfig?: {
|
|
61
|
-
readonly ssrFormat?: 'native' | 'legacy';
|
|
62
|
-
readonly enableTuic?: boolean;
|
|
63
|
-
};
|
|
64
|
-
readonly surfboardConfig?: {
|
|
65
|
-
readonly vmessAEAD?: boolean;
|
|
66
|
-
};
|
|
67
|
-
readonly gateway?: {
|
|
68
|
-
readonly accessToken?: string;
|
|
69
|
-
readonly viewerToken?: string;
|
|
70
|
-
readonly auth?: boolean;
|
|
71
|
-
readonly cookieMaxAge?: number;
|
|
72
|
-
readonly useCacheOnError?: boolean;
|
|
73
|
-
};
|
|
74
|
-
readonly proxyTestUrl?: string;
|
|
75
|
-
readonly proxyTestInterval?: number;
|
|
76
|
-
readonly customFilters?: {
|
|
77
|
-
readonly [name: string]: NodeNameFilterType | SortedNodeNameFilterType;
|
|
78
|
-
};
|
|
79
|
-
readonly customParams?: PlainObjectOf<string | boolean | number>;
|
|
80
|
-
readonly cache?: {
|
|
81
|
-
readonly type?: 'redis' | 'default';
|
|
82
|
-
readonly redisUrl?: string;
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
export interface RemoteSnippetConfig {
|
|
86
|
-
readonly url: string;
|
|
87
|
-
readonly name: string;
|
|
88
|
-
readonly surgioSnippet?: boolean;
|
|
89
|
-
}
|
|
31
|
+
output: string;
|
|
32
|
+
urlBase: string;
|
|
33
|
+
providerDir: string;
|
|
34
|
+
templateDir: string;
|
|
35
|
+
configDir: string;
|
|
36
|
+
};
|
|
37
|
+
export type RemoteSnippetConfig = z.infer<typeof RemoteSnippetValidator>;
|
|
90
38
|
export interface RemoteSnippet extends RemoteSnippetConfig {
|
|
91
39
|
readonly main: (...args: string[]) => string;
|
|
92
40
|
readonly text: string;
|
|
93
41
|
}
|
|
94
|
-
export
|
|
95
|
-
|
|
96
|
-
readonly template: string | undefined;
|
|
97
|
-
readonly provider: string;
|
|
98
|
-
readonly combineProviders?: ReadonlyArray<string>;
|
|
99
|
-
readonly categories?: ReadonlyArray<string>;
|
|
100
|
-
readonly customParams?: PlainObjectOf<string | boolean | number>;
|
|
101
|
-
readonly proxyGroupModifier?: ProxyGroupModifier;
|
|
102
|
-
readonly destDir?: string;
|
|
103
|
-
readonly templateString?: string;
|
|
104
|
-
readonly downloadUrl?: string;
|
|
105
|
-
}
|
|
106
|
-
export interface ProviderConfig {
|
|
107
|
-
readonly type: SupportProviderEnum;
|
|
108
|
-
readonly nodeFilter?: NodeFilterType | SortedNodeNameFilterType;
|
|
109
|
-
readonly netflixFilter?: NodeNameFilterType | SortedNodeNameFilterType;
|
|
110
|
-
readonly youtubePremiumFilter?: NodeNameFilterType | SortedNodeNameFilterType;
|
|
111
|
-
readonly startPort?: number;
|
|
112
|
-
readonly customFilters?: {
|
|
113
|
-
readonly [name: string]: NodeNameFilterType | SortedNodeNameFilterType;
|
|
114
|
-
};
|
|
115
|
-
readonly addFlag?: boolean;
|
|
116
|
-
readonly removeExistingFlag?: boolean;
|
|
117
|
-
readonly tfo?: boolean;
|
|
118
|
-
readonly mptcp?: boolean;
|
|
119
|
-
readonly renameNode?: (name: string) => string;
|
|
120
|
-
readonly relayUrl?: boolean | string;
|
|
121
|
-
readonly requestUserAgent?: string;
|
|
122
|
-
readonly cache?: {
|
|
123
|
-
readonly type?: 'redis' | 'default';
|
|
124
|
-
};
|
|
125
|
-
readonly underlyingProxy?: string;
|
|
126
|
-
}
|
|
42
|
+
export type ArtifactConfig = z.infer<typeof ArtifactValidator>;
|
|
43
|
+
export type ProviderConfig = z.infer<typeof ProviderValidator>;
|
|
127
44
|
export interface BlackSSLProviderConfig extends ProviderConfig {
|
|
45
|
+
readonly type: SupportProviderEnum.BlackSSL;
|
|
128
46
|
readonly username: string;
|
|
129
47
|
readonly password: string;
|
|
130
48
|
}
|
|
131
49
|
export interface ShadowsocksJsonSubscribeProviderConfig extends ProviderConfig {
|
|
50
|
+
readonly type: SupportProviderEnum.ShadowsocksJsonSubscribe;
|
|
132
51
|
readonly url: string;
|
|
133
52
|
readonly udpRelay?: boolean;
|
|
134
53
|
}
|
|
135
54
|
export interface ShadowsocksSubscribeProviderConfig extends ProviderConfig {
|
|
55
|
+
readonly type: SupportProviderEnum.ShadowsocksSubscribe;
|
|
136
56
|
readonly url: string;
|
|
137
57
|
readonly udpRelay?: boolean;
|
|
138
58
|
}
|
|
139
59
|
export interface ShadowsocksrSubscribeProviderConfig extends ProviderConfig {
|
|
60
|
+
readonly type: SupportProviderEnum.ShadowsocksrSubscribe;
|
|
140
61
|
readonly url: string;
|
|
141
62
|
readonly udpRelay?: boolean;
|
|
142
63
|
}
|
|
143
64
|
export interface V2rayNSubscribeProviderConfig extends ProviderConfig {
|
|
65
|
+
readonly type: SupportProviderEnum.V2rayNSubscribe;
|
|
144
66
|
readonly url: string;
|
|
145
67
|
readonly compatibleMode?: boolean;
|
|
146
68
|
readonly skipCertVerify?: boolean;
|
|
@@ -148,124 +70,38 @@ export interface V2rayNSubscribeProviderConfig extends ProviderConfig {
|
|
|
148
70
|
readonly tls13?: boolean;
|
|
149
71
|
}
|
|
150
72
|
export interface ClashProviderConfig extends ProviderConfig {
|
|
73
|
+
readonly type: SupportProviderEnum.Clash;
|
|
151
74
|
readonly url: string;
|
|
152
75
|
readonly udpRelay?: boolean;
|
|
153
76
|
readonly tls13?: boolean;
|
|
154
77
|
}
|
|
155
78
|
export interface SsdProviderConfig extends ProviderConfig {
|
|
79
|
+
readonly type: SupportProviderEnum.Ssd;
|
|
156
80
|
readonly url: string;
|
|
157
81
|
readonly udpRelay?: boolean;
|
|
158
82
|
}
|
|
83
|
+
export type AsyncCustomProviderNodeList = (params: GetNodeListParams) => Promise<ReadonlyArray<PossibleNodeConfigType>>;
|
|
159
84
|
export interface CustomProviderConfig extends ProviderConfig {
|
|
160
|
-
readonly
|
|
85
|
+
readonly type: SupportProviderEnum.Custom;
|
|
86
|
+
readonly nodeList: ReadonlyArray<PossibleNodeConfigType> | AsyncCustomProviderNodeList;
|
|
161
87
|
}
|
|
162
88
|
export interface TrojanProviderConfig extends ProviderConfig {
|
|
89
|
+
readonly type: SupportProviderEnum.Trojan;
|
|
163
90
|
readonly url: string;
|
|
164
91
|
readonly udpRelay?: boolean;
|
|
165
92
|
readonly tls13?: boolean;
|
|
166
93
|
}
|
|
167
|
-
export
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
export
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
}
|
|
179
|
-
export interface ShadowsocksNodeConfig extends SimpleNodeConfig {
|
|
180
|
-
readonly type: NodeTypeEnum.Shadowsocks;
|
|
181
|
-
readonly hostname: string;
|
|
182
|
-
readonly port: number | string;
|
|
183
|
-
readonly method: string;
|
|
184
|
-
readonly password: string;
|
|
185
|
-
readonly 'udp-relay'?: boolean;
|
|
186
|
-
readonly obfs?: 'tls' | 'http' | 'ws' | 'wss';
|
|
187
|
-
readonly 'obfs-host'?: string;
|
|
188
|
-
readonly 'obfs-uri'?: string;
|
|
189
|
-
readonly skipCertVerify?: boolean;
|
|
190
|
-
readonly wsHeaders?: Record<string, string>;
|
|
191
|
-
readonly tls13?: boolean;
|
|
192
|
-
readonly mux?: boolean;
|
|
193
|
-
}
|
|
194
|
-
export interface SnellNodeConfig extends SimpleNodeConfig {
|
|
195
|
-
readonly type: NodeTypeEnum.Snell;
|
|
196
|
-
readonly hostname: string;
|
|
197
|
-
readonly port: number | string;
|
|
198
|
-
readonly psk: string;
|
|
199
|
-
readonly obfs?: string;
|
|
200
|
-
readonly 'obfs-host'?: string;
|
|
201
|
-
readonly version?: string;
|
|
202
|
-
readonly reuse?: boolean;
|
|
203
|
-
}
|
|
204
|
-
export interface ShadowsocksrNodeConfig extends SimpleNodeConfig {
|
|
205
|
-
readonly type: NodeTypeEnum.Shadowsocksr;
|
|
206
|
-
readonly hostname: string;
|
|
207
|
-
readonly port: number | string;
|
|
208
|
-
readonly method: string;
|
|
209
|
-
readonly protocol: string;
|
|
210
|
-
readonly obfs: string;
|
|
211
|
-
readonly password: string;
|
|
212
|
-
readonly obfsparam: string;
|
|
213
|
-
readonly protoparam: string;
|
|
214
|
-
readonly 'udp-relay'?: boolean;
|
|
215
|
-
}
|
|
216
|
-
export interface VmessNodeConfig extends SimpleNodeConfig {
|
|
217
|
-
readonly type: NodeTypeEnum.Vmess;
|
|
218
|
-
readonly hostname: string;
|
|
219
|
-
readonly port: number | string;
|
|
220
|
-
readonly method: 'auto' | 'aes-128-gcm' | 'chacha20-ietf-poly1305' | 'none';
|
|
221
|
-
readonly uuid: string;
|
|
222
|
-
readonly alterId: string;
|
|
223
|
-
readonly network: 'tcp' | 'ws';
|
|
224
|
-
readonly tls: boolean;
|
|
225
|
-
readonly host?: string;
|
|
226
|
-
readonly path?: string;
|
|
227
|
-
readonly 'udp-relay'?: boolean;
|
|
228
|
-
readonly tls13?: boolean;
|
|
229
|
-
readonly skipCertVerify?: boolean;
|
|
230
|
-
readonly wsHeaders?: Record<string, string>;
|
|
231
|
-
readonly serverCertFingerprintSha256?: string;
|
|
232
|
-
}
|
|
233
|
-
export interface TrojanNodeConfig extends TlsNodeConfig {
|
|
234
|
-
readonly type: NodeTypeEnum.Trojan;
|
|
235
|
-
readonly password: string;
|
|
236
|
-
readonly 'udp-relay'?: boolean;
|
|
237
|
-
readonly network?: 'tcp' | 'ws';
|
|
238
|
-
readonly wsPath?: string;
|
|
239
|
-
readonly wsHeaders?: Record<string, string>;
|
|
240
|
-
}
|
|
241
|
-
export interface TuicNodeConfig extends TlsNodeConfig {
|
|
242
|
-
readonly type: NodeTypeEnum.Tuic;
|
|
243
|
-
readonly token: string;
|
|
244
|
-
readonly 'udp-relay'?: boolean;
|
|
245
|
-
}
|
|
246
|
-
export interface Socks5NodeConfig extends SimpleNodeConfig {
|
|
247
|
-
readonly type: NodeTypeEnum.Socks5;
|
|
248
|
-
readonly hostname: string;
|
|
249
|
-
readonly port: number | string;
|
|
250
|
-
readonly username?: string;
|
|
251
|
-
readonly password?: string;
|
|
252
|
-
readonly tls?: boolean;
|
|
253
|
-
readonly skipCertVerify?: boolean;
|
|
254
|
-
readonly udpRelay?: boolean;
|
|
255
|
-
readonly sni?: string;
|
|
256
|
-
readonly clientCert?: string;
|
|
257
|
-
}
|
|
258
|
-
export interface SimpleNodeConfig {
|
|
259
|
-
readonly type: NodeTypeEnum;
|
|
260
|
-
nodeName: string;
|
|
261
|
-
enable?: boolean;
|
|
262
|
-
tfo?: boolean;
|
|
263
|
-
mptcp?: boolean;
|
|
264
|
-
shadowTls?: {
|
|
265
|
-
password: string;
|
|
266
|
-
sni?: string;
|
|
267
|
-
version?: string;
|
|
268
|
-
};
|
|
94
|
+
export type HttpNodeConfig = z.infer<typeof HttpNodeConfigValidator> & SurgioInternals;
|
|
95
|
+
export type HttpsNodeConfig = z.infer<typeof HttpsNodeConfigValidator> & SurgioInternals;
|
|
96
|
+
export type TrojanNodeConfig = z.infer<typeof TrojanNodeConfigValidator> & SurgioInternals;
|
|
97
|
+
export type ShadowsocksNodeConfig = z.infer<typeof ShadowsocksNodeConfigValidator> & SurgioInternals;
|
|
98
|
+
export type ShadowsocksrNodeConfig = z.infer<typeof ShadowsocksrNodeConfigValidator> & SurgioInternals;
|
|
99
|
+
export type Socks5NodeConfig = z.infer<typeof Socks5NodeConfigValidator> & SurgioInternals;
|
|
100
|
+
export type SnellNodeConfig = z.infer<typeof SnellNodeConfigValidator> & SurgioInternals;
|
|
101
|
+
export type VmessNodeConfig = z.infer<typeof VmessNodeConfigValidator> & SurgioInternals;
|
|
102
|
+
export type TuicNodeConfig = z.infer<typeof TuicNodeConfigValidator> & SurgioInternals;
|
|
103
|
+
export type WireguardNodeConfig = z.infer<typeof WireguardNodeConfigValidator> & SurgioInternals;
|
|
104
|
+
export interface SurgioInternals {
|
|
269
105
|
binPath?: string;
|
|
270
106
|
localPort?: number;
|
|
271
107
|
surgeConfig?: CommandConfig['surgeConfig'];
|
|
@@ -274,26 +110,6 @@ export interface SimpleNodeConfig {
|
|
|
274
110
|
surfboardConfig?: CommandConfig['surfboardConfig'];
|
|
275
111
|
hostnameIp?: ReadonlyArray<string>;
|
|
276
112
|
provider?: Provider;
|
|
277
|
-
underlyingProxy?: string;
|
|
278
|
-
testUrl?: string;
|
|
279
|
-
}
|
|
280
|
-
export interface TlsNodeConfig extends SimpleNodeConfig {
|
|
281
|
-
readonly hostname: string;
|
|
282
|
-
readonly port: number | string;
|
|
283
|
-
readonly tls13?: boolean;
|
|
284
|
-
readonly skipCertVerify?: boolean;
|
|
285
|
-
readonly sni?: string;
|
|
286
|
-
readonly alpn?: ReadonlyArray<string>;
|
|
287
|
-
readonly serverCertFingerprintSha256?: string;
|
|
288
|
-
}
|
|
289
|
-
export interface PlainObject {
|
|
290
|
-
readonly [name: string]: any;
|
|
291
|
-
}
|
|
292
|
-
export interface PlainObjectOf<T> {
|
|
293
|
-
readonly [name: string]: T;
|
|
294
|
-
}
|
|
295
|
-
export interface CreateServerOptions {
|
|
296
|
-
readonly cwd?: string;
|
|
297
113
|
}
|
|
298
114
|
export interface SubscriptionUserinfo {
|
|
299
115
|
readonly upload: number;
|
|
@@ -301,16 +117,9 @@ export interface SubscriptionUserinfo {
|
|
|
301
117
|
readonly total: number;
|
|
302
118
|
readonly expire: number;
|
|
303
119
|
}
|
|
304
|
-
export
|
|
305
|
-
export
|
|
306
|
-
export
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
export declare type PossibleNodeConfigType = HttpsNodeConfig | HttpNodeConfig | ShadowsocksNodeConfig | ShadowsocksrNodeConfig | SnellNodeConfig | VmessNodeConfig | TrojanNodeConfig | Socks5NodeConfig | TuicNodeConfig;
|
|
311
|
-
export declare type ProxyGroupModifier = (nodeList: ReadonlyArray<PossibleNodeConfigType>, filters: PlainObjectOf<NodeNameFilterType | SortedNodeNameFilterType>) => ReadonlyArray<{
|
|
312
|
-
readonly name: string;
|
|
313
|
-
readonly type: 'select' | 'url-test' | 'fallback' | 'load-balance';
|
|
314
|
-
readonly proxies?: ReadonlyArray<string>;
|
|
315
|
-
readonly filter?: NodeNameFilterType;
|
|
316
|
-
}>;
|
|
120
|
+
export type NodeFilterType = z.infer<typeof NodeFilterTypeValidator>;
|
|
121
|
+
export type SortedNodeFilterType = z.infer<typeof SortedNodeFilterTypeValidator>;
|
|
122
|
+
export type PossibleNodeConfigType = HttpsNodeConfig | HttpNodeConfig | ShadowsocksNodeConfig | ShadowsocksrNodeConfig | SnellNodeConfig | VmessNodeConfig | TrojanNodeConfig | Socks5NodeConfig | TuicNodeConfig | WireguardNodeConfig;
|
|
123
|
+
export type PossibleProviderConfigType = BlackSSLProviderConfig | ClashProviderConfig | CustomProviderConfig | ShadowsocksJsonSubscribeProviderConfig | ShadowsocksrSubscribeProviderConfig | ShadowsocksSubscribeProviderConfig | SsdProviderConfig | TrojanProviderConfig | V2rayNSubscribeProviderConfig;
|
|
124
|
+
export type ProviderConfigFactory = () => Promisable<PossibleProviderConfigType>;
|
|
125
|
+
export type ThenArg<T> = T extends PromiseLike<infer U> ? U : T;
|
package/build/types.js
CHANGED
|
@@ -12,6 +12,7 @@ var NodeTypeEnum;
|
|
|
12
12
|
NodeTypeEnum["Trojan"] = "trojan";
|
|
13
13
|
NodeTypeEnum["Socks5"] = "socks5";
|
|
14
14
|
NodeTypeEnum["Tuic"] = "tuic";
|
|
15
|
+
NodeTypeEnum["Wireguard"] = "wireguard";
|
|
15
16
|
})(NodeTypeEnum = exports.NodeTypeEnum || (exports.NodeTypeEnum = {}));
|
|
16
17
|
var SupportProviderEnum;
|
|
17
18
|
(function (SupportProviderEnum) {
|
|
@@ -25,4 +26,4 @@ var SupportProviderEnum;
|
|
|
25
26
|
SupportProviderEnum["Ssd"] = "ssd";
|
|
26
27
|
SupportProviderEnum["Trojan"] = "trojan";
|
|
27
28
|
})(SupportProviderEnum = exports.SupportProviderEnum || (exports.SupportProviderEnum = {}));
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBdUJBLElBQVksWUFXWDtBQVhELFdBQVksWUFBWTtJQUN0QiwrQkFBZSxDQUFBO0lBQ2YsNkJBQWEsQ0FBQTtJQUNiLDJDQUEyQixDQUFBO0lBQzNCLDZDQUE2QixDQUFBO0lBQzdCLCtCQUFlLENBQUE7SUFDZiwrQkFBZSxDQUFBO0lBQ2YsaUNBQWlCLENBQUE7SUFDakIsaUNBQWlCLENBQUE7SUFDakIsNkJBQWEsQ0FBQTtJQUNiLHVDQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFYVyxZQUFZLEdBQVosb0JBQVksS0FBWixvQkFBWSxRQVd2QjtBQUVELElBQVksbUJBVVg7QUFWRCxXQUFZLG1CQUFtQjtJQUM3QixzQ0FBZSxDQUFBO0lBQ2Ysd0NBQWlCLENBQUE7SUFDakIscUVBQThDLENBQUE7SUFDOUMsdUVBQWdELENBQUE7SUFDaEQsOEVBQXVELENBQUE7SUFDdkQsMkRBQW9DLENBQUE7SUFDcEMsNENBQXFCLENBQUE7SUFDckIsa0NBQVcsQ0FBQTtJQUNYLHdDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFWVyxtQkFBbUIsR0FBbkIsMkJBQW1CLEtBQW5CLDJCQUFtQixRQVU5QiJ9
|
package/build/utils/cache.js
CHANGED
|
@@ -6,49 +6,51 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.cleanCaches = exports.RedisCache = exports.SubscriptionCache = exports.ConfigCache = void 0;
|
|
7
7
|
const node_cache_1 = __importDefault(require("node-cache"));
|
|
8
8
|
const env_flag_1 = require("./env-flag");
|
|
9
|
-
const index_1 = require("./index");
|
|
10
9
|
const redis_1 = __importDefault(require("../redis"));
|
|
10
|
+
const time_1 = require("./time");
|
|
11
11
|
exports.ConfigCache = new node_cache_1.default({
|
|
12
|
-
stdTTL: (0,
|
|
12
|
+
stdTTL: (0, time_1.msToSeconds)((0, env_flag_1.getProviderCacheMaxage)()),
|
|
13
13
|
maxKeys: 300,
|
|
14
14
|
useClones: false,
|
|
15
15
|
});
|
|
16
16
|
exports.SubscriptionCache = new node_cache_1.default({
|
|
17
|
-
stdTTL: (0,
|
|
17
|
+
stdTTL: (0, time_1.msToSeconds)((0, env_flag_1.getProviderCacheMaxage)()),
|
|
18
18
|
maxKeys: 300,
|
|
19
19
|
useClones: false,
|
|
20
20
|
});
|
|
21
21
|
class RedisCache {
|
|
22
|
+
namespace;
|
|
23
|
+
redisClient;
|
|
22
24
|
constructor(namespace) {
|
|
23
25
|
this.namespace = namespace;
|
|
24
|
-
this.setCache = async (key, value, { ttl } = {}) => {
|
|
25
|
-
const storeValue = JSON.stringify(value);
|
|
26
|
-
if (typeof ttl === 'undefined') {
|
|
27
|
-
await this.redisClient.set(this.getCacheKey(key), storeValue);
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
await this.redisClient.set(this.getCacheKey(key), storeValue, 'EX', ttl);
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
this.getCache = async (key) => {
|
|
34
|
-
const value = await this.redisClient.get(this.getCacheKey(key));
|
|
35
|
-
if (!value) {
|
|
36
|
-
return undefined;
|
|
37
|
-
}
|
|
38
|
-
return JSON.parse(value);
|
|
39
|
-
};
|
|
40
|
-
this.hasCache = async (key) => {
|
|
41
|
-
const value = await this.redisClient.exists(this.getCacheKey(key));
|
|
42
|
-
return !!value;
|
|
43
|
-
};
|
|
44
|
-
this.deleteCache = async (key) => {
|
|
45
|
-
await this.redisClient.del(this.getCacheKey(key));
|
|
46
|
-
};
|
|
47
26
|
this.redisClient = redis_1.default.getRedis();
|
|
48
27
|
}
|
|
49
28
|
getCacheKey(key) {
|
|
50
29
|
return this.namespace ? `${this.namespace}:${key}` : key;
|
|
51
30
|
}
|
|
31
|
+
setCache = async (key, value, { ttl } = {}) => {
|
|
32
|
+
const storeValue = JSON.stringify(value);
|
|
33
|
+
if (typeof ttl === 'undefined') {
|
|
34
|
+
await this.redisClient.set(this.getCacheKey(key), storeValue);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
await this.redisClient.set(this.getCacheKey(key), storeValue, 'EX', ttl);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
getCache = async (key) => {
|
|
41
|
+
const value = await this.redisClient.get(this.getCacheKey(key));
|
|
42
|
+
if (!value) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
return JSON.parse(value);
|
|
46
|
+
};
|
|
47
|
+
hasCache = async (key) => {
|
|
48
|
+
const value = await this.redisClient.exists(this.getCacheKey(key));
|
|
49
|
+
return !!value;
|
|
50
|
+
};
|
|
51
|
+
deleteCache = async (key) => {
|
|
52
|
+
await this.redisClient.del(this.getCacheKey(key));
|
|
53
|
+
};
|
|
52
54
|
}
|
|
53
55
|
exports.RedisCache = RedisCache;
|
|
54
56
|
// istanbul ignore next
|
|
@@ -60,4 +62,4 @@ const cleanCaches = async () => {
|
|
|
60
62
|
}
|
|
61
63
|
};
|
|
62
64
|
exports.cleanCaches = cleanCaches;
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsNERBQWtDO0FBR2xDLHlDQUFtRDtBQUNuRCxxREFBNEI7QUFDNUIsaUNBQW9DO0FBT3ZCLFFBQUEsV0FBVyxHQUFHLElBQUksb0JBQVMsQ0FBQztJQUN2QyxNQUFNLEVBQUUsSUFBQSxrQkFBVyxFQUFDLElBQUEsaUNBQXNCLEdBQUUsQ0FBQztJQUM3QyxPQUFPLEVBQUUsR0FBRztJQUNaLFNBQVMsRUFBRSxLQUFLO0NBQ2pCLENBQUMsQ0FBQTtBQUVXLFFBQUEsaUJBQWlCLEdBQUcsSUFBSSxvQkFBUyxDQUFDO0lBQzdDLE1BQU0sRUFBRSxJQUFBLGtCQUFXLEVBQUMsSUFBQSxpQ0FBc0IsR0FBRSxDQUFDO0lBQzdDLE9BQU8sRUFBRSxHQUFHO0lBQ1osU0FBUyxFQUFFLEtBQUs7Q0FDakIsQ0FBQyxDQUFBO0FBRUYsTUFBYSxVQUFVO0lBR0Y7SUFGWCxXQUFXLENBQU87SUFFMUIsWUFBbUIsU0FBa0I7UUFBbEIsY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLGVBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUNyQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtJQUMxRCxDQUFDO0lBRUQsUUFBUSxHQUFHLEtBQUssRUFDZCxHQUFXLEVBQ1gsS0FBYyxFQUNkLEVBQUUsR0FBRyxLQUF1QixFQUFFLEVBQzlCLEVBQUU7UUFDRixNQUFNLFVBQVUsR0FBVyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRWhELElBQUksT0FBTyxHQUFHLEtBQUssV0FBVyxFQUFFO1lBQzlCLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQTtTQUM5RDthQUFNO1lBQ0wsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUE7U0FDekU7SUFDSCxDQUFDLENBQUE7SUFFRCxRQUFRLEdBQUcsS0FBSyxFQUFLLEdBQVcsRUFBMEIsRUFBRTtRQUMxRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUUvRCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxTQUFTLENBQUE7U0FDakI7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFNLENBQUE7SUFDL0IsQ0FBQyxDQUFBO0lBRUQsUUFBUSxHQUFHLEtBQUssRUFBRSxHQUFXLEVBQW9CLEVBQUU7UUFDakQsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFFbEUsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFBO0lBQ2hCLENBQUMsQ0FBQTtJQUVELFdBQVcsR0FBRyxLQUFLLEVBQUUsR0FBVyxFQUFFLEVBQUU7UUFDbEMsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDbkQsQ0FBQyxDQUFBO0NBQ0Y7QUE1Q0QsZ0NBNENDO0FBRUQsdUJBQXVCO0FBQ2hCLE1BQU0sV0FBVyxHQUFHLEtBQUssSUFBSSxFQUFFO0lBQ3BDLG1CQUFXLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDdEIseUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUE7SUFFNUIsSUFBSSxlQUFLLENBQUMsUUFBUSxFQUFFLEVBQUU7UUFDcEIsTUFBTSxlQUFLLENBQUMsVUFBVSxFQUFFLENBQUE7S0FDekI7QUFDSCxDQUFDLENBQUE7QUFQWSxRQUFBLFdBQVcsZUFPdkIifQ==
|
package/build/utils/clash.d.ts
CHANGED
|
@@ -1,3 +1,204 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export declare const
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
import { NodeFilterType, PossibleNodeConfigType, SortedNodeFilterType } from '../types';
|
|
3
|
+
export declare const getClashNodes: (list: ReadonlyArray<PossibleNodeConfigType>, filter?: NodeFilterType | SortedNodeFilterType) => NonNullable<{
|
|
4
|
+
plugin?: string | undefined;
|
|
5
|
+
readonly 'client-fingerprint'?: string | undefined;
|
|
6
|
+
'plugin-opts'?: {
|
|
7
|
+
mode: "tls" | "http" | "ws" | "wss";
|
|
8
|
+
host: string | undefined;
|
|
9
|
+
} | {
|
|
10
|
+
host: string | undefined;
|
|
11
|
+
path: string;
|
|
12
|
+
mux: boolean;
|
|
13
|
+
headers: _.Omit<Record<string, string>, "host">;
|
|
14
|
+
'skip-cert-verify'?: boolean | undefined;
|
|
15
|
+
mode: string;
|
|
16
|
+
tls: boolean;
|
|
17
|
+
} | {
|
|
18
|
+
host?: string | undefined;
|
|
19
|
+
version?: number | undefined;
|
|
20
|
+
password: string;
|
|
21
|
+
mode?: undefined;
|
|
22
|
+
} | undefined;
|
|
23
|
+
readonly type: "ss";
|
|
24
|
+
readonly cipher: string;
|
|
25
|
+
readonly name: string;
|
|
26
|
+
readonly password: string;
|
|
27
|
+
readonly port: string | number;
|
|
28
|
+
readonly server: string;
|
|
29
|
+
readonly udp: boolean;
|
|
30
|
+
readonly obfs?: undefined;
|
|
31
|
+
readonly protocol?: undefined;
|
|
32
|
+
readonly 'obfs-param'?: undefined;
|
|
33
|
+
readonly 'protocol-param'?: undefined;
|
|
34
|
+
readonly username?: undefined;
|
|
35
|
+
readonly tls?: undefined;
|
|
36
|
+
readonly 'skip-cert-verify'?: undefined;
|
|
37
|
+
} | {
|
|
38
|
+
readonly 'ws-opts'?: {
|
|
39
|
+
path: string | undefined;
|
|
40
|
+
headers: {
|
|
41
|
+
host?: string | undefined;
|
|
42
|
+
};
|
|
43
|
+
} | undefined;
|
|
44
|
+
readonly 'skip-cert-verify'?: boolean | undefined;
|
|
45
|
+
readonly tls: boolean;
|
|
46
|
+
readonly network?: "ws" | undefined;
|
|
47
|
+
readonly type: "vmess";
|
|
48
|
+
readonly cipher: "none" | "aes-128-gcm" | "chacha20-ietf-poly1305" | "auto";
|
|
49
|
+
readonly name: string;
|
|
50
|
+
readonly server: string;
|
|
51
|
+
readonly port: string | number;
|
|
52
|
+
readonly udp: boolean;
|
|
53
|
+
readonly uuid: string;
|
|
54
|
+
readonly alterId: string;
|
|
55
|
+
readonly password?: undefined;
|
|
56
|
+
readonly obfs?: undefined;
|
|
57
|
+
readonly protocol?: undefined;
|
|
58
|
+
readonly 'obfs-param'?: undefined;
|
|
59
|
+
readonly 'protocol-param'?: undefined;
|
|
60
|
+
readonly username?: undefined;
|
|
61
|
+
} | {
|
|
62
|
+
readonly type: "ssr";
|
|
63
|
+
readonly name: string;
|
|
64
|
+
readonly server: string;
|
|
65
|
+
readonly port: string | number;
|
|
66
|
+
readonly password: string;
|
|
67
|
+
readonly obfs: string;
|
|
68
|
+
readonly protocol: string;
|
|
69
|
+
readonly cipher: string;
|
|
70
|
+
readonly 'obfs-param': string;
|
|
71
|
+
readonly 'protocol-param': string;
|
|
72
|
+
readonly udp: boolean;
|
|
73
|
+
readonly username?: undefined;
|
|
74
|
+
readonly tls?: undefined;
|
|
75
|
+
readonly 'skip-cert-verify'?: undefined;
|
|
76
|
+
} | {
|
|
77
|
+
readonly version?: string | number | undefined;
|
|
78
|
+
readonly type: "snell";
|
|
79
|
+
readonly name: string;
|
|
80
|
+
readonly server: string;
|
|
81
|
+
readonly port: string | number;
|
|
82
|
+
readonly psk: string;
|
|
83
|
+
readonly 'obfs-opts': {
|
|
84
|
+
readonly host?: string | undefined;
|
|
85
|
+
readonly mode: "tls" | "http" | undefined;
|
|
86
|
+
};
|
|
87
|
+
readonly password?: undefined;
|
|
88
|
+
readonly obfs?: undefined;
|
|
89
|
+
readonly protocol?: undefined;
|
|
90
|
+
readonly cipher?: undefined;
|
|
91
|
+
readonly 'obfs-param'?: undefined;
|
|
92
|
+
readonly 'protocol-param'?: undefined;
|
|
93
|
+
readonly udp?: undefined;
|
|
94
|
+
readonly username?: undefined;
|
|
95
|
+
readonly tls?: undefined;
|
|
96
|
+
readonly 'skip-cert-verify'?: undefined;
|
|
97
|
+
} | {
|
|
98
|
+
readonly type: "http";
|
|
99
|
+
readonly name: string;
|
|
100
|
+
readonly server: string;
|
|
101
|
+
readonly port: string | number;
|
|
102
|
+
readonly username: string;
|
|
103
|
+
readonly password: string;
|
|
104
|
+
readonly tls: true;
|
|
105
|
+
readonly 'skip-cert-verify': boolean;
|
|
106
|
+
readonly obfs?: undefined;
|
|
107
|
+
readonly protocol?: undefined;
|
|
108
|
+
readonly cipher?: undefined;
|
|
109
|
+
readonly 'obfs-param'?: undefined;
|
|
110
|
+
readonly 'protocol-param'?: undefined;
|
|
111
|
+
readonly udp?: undefined;
|
|
112
|
+
} | {
|
|
113
|
+
readonly type: "http";
|
|
114
|
+
readonly name: string;
|
|
115
|
+
readonly server: string;
|
|
116
|
+
readonly port: string | number;
|
|
117
|
+
readonly username: string;
|
|
118
|
+
readonly password: string;
|
|
119
|
+
readonly obfs?: undefined;
|
|
120
|
+
readonly protocol?: undefined;
|
|
121
|
+
readonly cipher?: undefined;
|
|
122
|
+
readonly 'obfs-param'?: undefined;
|
|
123
|
+
readonly 'protocol-param'?: undefined;
|
|
124
|
+
readonly udp?: undefined;
|
|
125
|
+
readonly tls?: undefined;
|
|
126
|
+
readonly 'skip-cert-verify'?: undefined;
|
|
127
|
+
} | {
|
|
128
|
+
readonly network?: string | undefined;
|
|
129
|
+
readonly 'ws-opts'?: {
|
|
130
|
+
path: string;
|
|
131
|
+
headers?: undefined;
|
|
132
|
+
} | undefined;
|
|
133
|
+
readonly 'skip-cert-verify': boolean;
|
|
134
|
+
readonly sni?: string | undefined;
|
|
135
|
+
readonly alpn?: [string, ...string[]] | undefined;
|
|
136
|
+
readonly udp?: true | undefined;
|
|
137
|
+
readonly type: "trojan";
|
|
138
|
+
readonly name: string;
|
|
139
|
+
readonly server: string;
|
|
140
|
+
readonly port: string | number;
|
|
141
|
+
readonly password: string;
|
|
142
|
+
readonly obfs?: undefined;
|
|
143
|
+
readonly protocol?: undefined;
|
|
144
|
+
readonly cipher?: undefined;
|
|
145
|
+
readonly 'obfs-param'?: undefined;
|
|
146
|
+
readonly 'protocol-param'?: undefined;
|
|
147
|
+
readonly username?: undefined;
|
|
148
|
+
readonly tls?: undefined;
|
|
149
|
+
} | {
|
|
150
|
+
readonly udp?: boolean | undefined;
|
|
151
|
+
readonly 'skip-cert-verify'?: boolean | undefined;
|
|
152
|
+
readonly tls?: boolean | undefined;
|
|
153
|
+
readonly password?: string | undefined;
|
|
154
|
+
readonly username?: string | undefined;
|
|
155
|
+
readonly type: "socks5";
|
|
156
|
+
readonly name: string;
|
|
157
|
+
readonly server: string;
|
|
158
|
+
readonly port: string | number;
|
|
159
|
+
readonly obfs?: undefined;
|
|
160
|
+
readonly protocol?: undefined;
|
|
161
|
+
readonly cipher?: undefined;
|
|
162
|
+
readonly 'obfs-param'?: undefined;
|
|
163
|
+
readonly 'protocol-param'?: undefined;
|
|
164
|
+
} | {
|
|
165
|
+
readonly alpn?: [string, ...string[]] | undefined;
|
|
166
|
+
readonly type: "tuic";
|
|
167
|
+
readonly name: string;
|
|
168
|
+
readonly server: string;
|
|
169
|
+
readonly port: string | number;
|
|
170
|
+
readonly udp: true;
|
|
171
|
+
readonly password?: undefined;
|
|
172
|
+
readonly obfs?: undefined;
|
|
173
|
+
readonly protocol?: undefined;
|
|
174
|
+
readonly cipher?: undefined;
|
|
175
|
+
readonly 'obfs-param'?: undefined;
|
|
176
|
+
readonly 'protocol-param'?: undefined;
|
|
177
|
+
readonly username?: undefined;
|
|
178
|
+
readonly tls?: undefined;
|
|
179
|
+
readonly 'skip-cert-verify'?: undefined;
|
|
180
|
+
} | {
|
|
181
|
+
readonly reserved?: number[] | undefined;
|
|
182
|
+
readonly 'preshared-key'?: string | undefined;
|
|
183
|
+
readonly udp: true;
|
|
184
|
+
readonly server: string;
|
|
185
|
+
readonly port: number;
|
|
186
|
+
readonly 'public-key': string;
|
|
187
|
+
readonly dns?: [string, ...string[]] | undefined;
|
|
188
|
+
readonly mtu?: number | undefined;
|
|
189
|
+
readonly ipv6?: string | undefined;
|
|
190
|
+
readonly type: "wireguard";
|
|
191
|
+
readonly name: string;
|
|
192
|
+
readonly 'private-key': string;
|
|
193
|
+
readonly ip: string;
|
|
194
|
+
readonly password?: undefined;
|
|
195
|
+
readonly obfs?: undefined;
|
|
196
|
+
readonly protocol?: undefined;
|
|
197
|
+
readonly cipher?: undefined;
|
|
198
|
+
readonly 'obfs-param'?: undefined;
|
|
199
|
+
readonly 'protocol-param'?: undefined;
|
|
200
|
+
readonly username?: undefined;
|
|
201
|
+
readonly tls?: undefined;
|
|
202
|
+
readonly 'skip-cert-verify'?: undefined;
|
|
203
|
+
} | null>[];
|
|
204
|
+
export declare const getClashNodeNames: (list: ReadonlyArray<PossibleNodeConfigType>, filter?: NodeFilterType | SortedNodeFilterType, prependNodeNames?: ReadonlyArray<string>) => ReadonlyArray<string>;
|