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
@@ -0,0 +1,307 @@
1
+ import { z } from 'zod';
2
+ export declare const RemoteSnippetValidator: z.ZodObject<{
3
+ name: z.ZodString;
4
+ url: z.ZodString;
5
+ surgioSnippet: z.ZodOptional<z.ZodBoolean>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ name: string;
8
+ url: string;
9
+ surgioSnippet?: boolean | undefined;
10
+ }, {
11
+ name: string;
12
+ url: string;
13
+ surgioSnippet?: boolean | undefined;
14
+ }>;
15
+ export declare const SurgioConfigValidator: z.ZodObject<{
16
+ artifacts: z.ZodArray<z.ZodObject<{
17
+ name: z.ZodString;
18
+ template: z.ZodString;
19
+ provider: z.ZodString;
20
+ categories: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
21
+ combineProviders: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
22
+ customParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
23
+ customFilters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>>;
24
+ destDir: z.ZodOptional<z.ZodString>;
25
+ downloadUrl: z.ZodOptional<z.ZodString>;
26
+ templateString: z.ZodOptional<z.ZodString>;
27
+ }, "strip", z.ZodTypeAny, {
28
+ name: string;
29
+ template: string;
30
+ provider: string;
31
+ categories?: string[] | undefined;
32
+ combineProviders?: string[] | undefined;
33
+ customParams?: Record<string, unknown> | undefined;
34
+ customFilters?: Record<string, (...args: unknown[]) => unknown> | undefined;
35
+ destDir?: string | undefined;
36
+ downloadUrl?: string | undefined;
37
+ templateString?: string | undefined;
38
+ }, {
39
+ name: string;
40
+ template: string;
41
+ provider: string;
42
+ categories?: string[] | undefined;
43
+ combineProviders?: string[] | undefined;
44
+ customParams?: Record<string, unknown> | undefined;
45
+ customFilters?: Record<string, (...args: unknown[]) => unknown> | undefined;
46
+ destDir?: string | undefined;
47
+ downloadUrl?: string | undefined;
48
+ templateString?: string | undefined;
49
+ }>, "many">;
50
+ remoteSnippets: z.ZodOptional<z.ZodArray<z.ZodObject<{
51
+ name: z.ZodString;
52
+ url: z.ZodString;
53
+ surgioSnippet: z.ZodOptional<z.ZodBoolean>;
54
+ }, "strip", z.ZodTypeAny, {
55
+ name: string;
56
+ url: string;
57
+ surgioSnippet?: boolean | undefined;
58
+ }, {
59
+ name: string;
60
+ url: string;
61
+ surgioSnippet?: boolean | undefined;
62
+ }>, "many">>;
63
+ urlBase: z.ZodOptional<z.ZodString>;
64
+ upload: z.ZodOptional<z.ZodObject<{
65
+ prefix: z.ZodOptional<z.ZodString>;
66
+ region: z.ZodOptional<z.ZodString>;
67
+ endpoint: z.ZodOptional<z.ZodString>;
68
+ bucket: z.ZodString;
69
+ accessKeyId: z.ZodString;
70
+ accessKeySecret: z.ZodString;
71
+ }, "strip", z.ZodTypeAny, {
72
+ bucket: string;
73
+ accessKeyId: string;
74
+ accessKeySecret: string;
75
+ prefix?: string | undefined;
76
+ region?: string | undefined;
77
+ endpoint?: string | undefined;
78
+ }, {
79
+ bucket: string;
80
+ accessKeyId: string;
81
+ accessKeySecret: string;
82
+ prefix?: string | undefined;
83
+ region?: string | undefined;
84
+ endpoint?: string | undefined;
85
+ }>>;
86
+ binPath: z.ZodOptional<z.ZodObject<{
87
+ shadowsocksr: z.ZodString;
88
+ }, "strip", z.ZodTypeAny, {
89
+ shadowsocksr: string;
90
+ }, {
91
+ shadowsocksr: string;
92
+ }>>;
93
+ flags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodType<RegExp, z.ZodTypeDef, RegExp>]>, "many">]>>>;
94
+ surgeConfig: z.ZodOptional<z.ZodObject<{
95
+ resolveHostname: z.ZodOptional<z.ZodBoolean>;
96
+ vmessAEAD: z.ZodOptional<z.ZodBoolean>;
97
+ }, "strip", z.ZodTypeAny, {
98
+ resolveHostname?: boolean | undefined;
99
+ vmessAEAD?: boolean | undefined;
100
+ }, {
101
+ resolveHostname?: boolean | undefined;
102
+ vmessAEAD?: boolean | undefined;
103
+ }>>;
104
+ surfboardConfig: z.ZodOptional<z.ZodObject<{
105
+ vmessAEAD: z.ZodOptional<z.ZodBoolean>;
106
+ }, "strip", z.ZodTypeAny, {
107
+ vmessAEAD?: boolean | undefined;
108
+ }, {
109
+ vmessAEAD?: boolean | undefined;
110
+ }>>;
111
+ quantumultXConfig: z.ZodOptional<z.ZodObject<{
112
+ vmessAEAD: z.ZodOptional<z.ZodBoolean>;
113
+ }, "strip", z.ZodTypeAny, {
114
+ vmessAEAD?: boolean | undefined;
115
+ }, {
116
+ vmessAEAD?: boolean | undefined;
117
+ }>>;
118
+ clashConfig: z.ZodOptional<z.ZodObject<{
119
+ enableTuic: z.ZodOptional<z.ZodBoolean>;
120
+ enableShadowTls: z.ZodOptional<z.ZodBoolean>;
121
+ }, "strip", z.ZodTypeAny, {
122
+ enableTuic?: boolean | undefined;
123
+ enableShadowTls?: boolean | undefined;
124
+ }, {
125
+ enableTuic?: boolean | undefined;
126
+ enableShadowTls?: boolean | undefined;
127
+ }>>;
128
+ gateway: z.ZodOptional<z.ZodObject<{
129
+ accessToken: z.ZodOptional<z.ZodString>;
130
+ viewerToken: z.ZodOptional<z.ZodString>;
131
+ auth: z.ZodOptional<z.ZodBoolean>;
132
+ cookieMaxAge: z.ZodOptional<z.ZodNumber>;
133
+ useCacheOnError: z.ZodOptional<z.ZodBoolean>;
134
+ passRequestUserAgent: z.ZodOptional<z.ZodBoolean>;
135
+ }, "strip", z.ZodTypeAny, {
136
+ accessToken?: string | undefined;
137
+ viewerToken?: string | undefined;
138
+ auth?: boolean | undefined;
139
+ cookieMaxAge?: number | undefined;
140
+ useCacheOnError?: boolean | undefined;
141
+ passRequestUserAgent?: boolean | undefined;
142
+ }, {
143
+ accessToken?: string | undefined;
144
+ viewerToken?: string | undefined;
145
+ auth?: boolean | undefined;
146
+ cookieMaxAge?: number | undefined;
147
+ useCacheOnError?: boolean | undefined;
148
+ passRequestUserAgent?: boolean | undefined;
149
+ }>>;
150
+ checkHostname: z.ZodOptional<z.ZodBoolean>;
151
+ proxyTestUrl: z.ZodOptional<z.ZodString>;
152
+ proxyTestInterval: z.ZodOptional<z.ZodNumber>;
153
+ internetTestUrl: z.ZodOptional<z.ZodString>;
154
+ customFilters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodType<(nodeConfig: import("../types").PossibleNodeConfigType) => boolean, z.ZodTypeDef, (nodeConfig: import("../types").PossibleNodeConfigType) => boolean>, z.ZodType<{
155
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
156
+ readonly supportSort: true;
157
+ }, z.ZodTypeDef, {
158
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
159
+ readonly supportSort: true;
160
+ }>]>>>;
161
+ customParams: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
162
+ analytics: z.ZodOptional<z.ZodBoolean>;
163
+ cache: z.ZodOptional<z.ZodObject<{
164
+ type: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"redis">, z.ZodLiteral<"default">]>>;
165
+ redisUrl: z.ZodOptional<z.ZodString>;
166
+ }, "strip", z.ZodTypeAny, {
167
+ type?: "redis" | "default" | undefined;
168
+ redisUrl?: string | undefined;
169
+ }, {
170
+ type?: "redis" | "default" | undefined;
171
+ redisUrl?: string | undefined;
172
+ }>>;
173
+ }, "strip", z.ZodTypeAny, {
174
+ artifacts: {
175
+ name: string;
176
+ template: string;
177
+ provider: string;
178
+ categories?: string[] | undefined;
179
+ combineProviders?: string[] | undefined;
180
+ customParams?: Record<string, unknown> | undefined;
181
+ customFilters?: Record<string, (...args: unknown[]) => unknown> | undefined;
182
+ destDir?: string | undefined;
183
+ downloadUrl?: string | undefined;
184
+ templateString?: string | undefined;
185
+ }[];
186
+ remoteSnippets?: {
187
+ name: string;
188
+ url: string;
189
+ surgioSnippet?: boolean | undefined;
190
+ }[] | undefined;
191
+ urlBase?: string | undefined;
192
+ upload?: {
193
+ bucket: string;
194
+ accessKeyId: string;
195
+ accessKeySecret: string;
196
+ prefix?: string | undefined;
197
+ region?: string | undefined;
198
+ endpoint?: string | undefined;
199
+ } | undefined;
200
+ binPath?: {
201
+ shadowsocksr: string;
202
+ } | undefined;
203
+ flags?: Record<string, string | RegExp | (string | RegExp)[]> | undefined;
204
+ surgeConfig?: {
205
+ resolveHostname?: boolean | undefined;
206
+ vmessAEAD?: boolean | undefined;
207
+ } | undefined;
208
+ surfboardConfig?: {
209
+ vmessAEAD?: boolean | undefined;
210
+ } | undefined;
211
+ quantumultXConfig?: {
212
+ vmessAEAD?: boolean | undefined;
213
+ } | undefined;
214
+ clashConfig?: {
215
+ enableTuic?: boolean | undefined;
216
+ enableShadowTls?: boolean | undefined;
217
+ } | undefined;
218
+ gateway?: {
219
+ accessToken?: string | undefined;
220
+ viewerToken?: string | undefined;
221
+ auth?: boolean | undefined;
222
+ cookieMaxAge?: number | undefined;
223
+ useCacheOnError?: boolean | undefined;
224
+ passRequestUserAgent?: boolean | undefined;
225
+ } | undefined;
226
+ checkHostname?: boolean | undefined;
227
+ proxyTestUrl?: string | undefined;
228
+ proxyTestInterval?: number | undefined;
229
+ internetTestUrl?: string | undefined;
230
+ customFilters?: Record<string, ((nodeConfig: import("../types").PossibleNodeConfigType) => boolean) | {
231
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
232
+ readonly supportSort: true;
233
+ }> | undefined;
234
+ customParams?: Record<string, unknown> | undefined;
235
+ analytics?: boolean | undefined;
236
+ cache?: {
237
+ type?: "redis" | "default" | undefined;
238
+ redisUrl?: string | undefined;
239
+ } | undefined;
240
+ }, {
241
+ artifacts: {
242
+ name: string;
243
+ template: string;
244
+ provider: string;
245
+ categories?: string[] | undefined;
246
+ combineProviders?: string[] | undefined;
247
+ customParams?: Record<string, unknown> | undefined;
248
+ customFilters?: Record<string, (...args: unknown[]) => unknown> | undefined;
249
+ destDir?: string | undefined;
250
+ downloadUrl?: string | undefined;
251
+ templateString?: string | undefined;
252
+ }[];
253
+ remoteSnippets?: {
254
+ name: string;
255
+ url: string;
256
+ surgioSnippet?: boolean | undefined;
257
+ }[] | undefined;
258
+ urlBase?: string | undefined;
259
+ upload?: {
260
+ bucket: string;
261
+ accessKeyId: string;
262
+ accessKeySecret: string;
263
+ prefix?: string | undefined;
264
+ region?: string | undefined;
265
+ endpoint?: string | undefined;
266
+ } | undefined;
267
+ binPath?: {
268
+ shadowsocksr: string;
269
+ } | undefined;
270
+ flags?: Record<string, string | RegExp | (string | RegExp)[]> | undefined;
271
+ surgeConfig?: {
272
+ resolveHostname?: boolean | undefined;
273
+ vmessAEAD?: boolean | undefined;
274
+ } | undefined;
275
+ surfboardConfig?: {
276
+ vmessAEAD?: boolean | undefined;
277
+ } | undefined;
278
+ quantumultXConfig?: {
279
+ vmessAEAD?: boolean | undefined;
280
+ } | undefined;
281
+ clashConfig?: {
282
+ enableTuic?: boolean | undefined;
283
+ enableShadowTls?: boolean | undefined;
284
+ } | undefined;
285
+ gateway?: {
286
+ accessToken?: string | undefined;
287
+ viewerToken?: string | undefined;
288
+ auth?: boolean | undefined;
289
+ cookieMaxAge?: number | undefined;
290
+ useCacheOnError?: boolean | undefined;
291
+ passRequestUserAgent?: boolean | undefined;
292
+ } | undefined;
293
+ checkHostname?: boolean | undefined;
294
+ proxyTestUrl?: string | undefined;
295
+ proxyTestInterval?: number | undefined;
296
+ internetTestUrl?: string | undefined;
297
+ customFilters?: Record<string, ((nodeConfig: import("../types").PossibleNodeConfigType) => boolean) | {
298
+ readonly filter: <T extends import("../types").PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
299
+ readonly supportSort: true;
300
+ }> | undefined;
301
+ customParams?: Record<string, unknown> | undefined;
302
+ analytics?: boolean | undefined;
303
+ cache?: {
304
+ type?: "redis" | "default" | undefined;
305
+ redisUrl?: string | undefined;
306
+ } | undefined;
307
+ }>;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SurgioConfigValidator = exports.RemoteSnippetValidator = void 0;
4
+ const zod_1 = require("zod");
5
+ const artifact_1 = require("./artifact");
6
+ const filter_1 = require("./filter");
7
+ const isRegExp = (val) => {
8
+ return val instanceof RegExp;
9
+ };
10
+ const RegexValidatior = zod_1.z.custom((val) => {
11
+ return isRegExp(val);
12
+ });
13
+ exports.RemoteSnippetValidator = zod_1.z.object({
14
+ name: zod_1.z.string(),
15
+ url: zod_1.z.string().url(),
16
+ surgioSnippet: zod_1.z.oboolean(),
17
+ });
18
+ exports.SurgioConfigValidator = zod_1.z.object({
19
+ artifacts: zod_1.z.array(artifact_1.ArtifactValidator),
20
+ remoteSnippets: zod_1.z.array(exports.RemoteSnippetValidator).optional(),
21
+ urlBase: zod_1.z.ostring(),
22
+ upload: zod_1.z
23
+ .object({
24
+ prefix: zod_1.z.ostring(),
25
+ region: zod_1.z.ostring(),
26
+ endpoint: zod_1.z.ostring(),
27
+ bucket: zod_1.z.string(),
28
+ accessKeyId: zod_1.z.string(),
29
+ accessKeySecret: zod_1.z.string(),
30
+ })
31
+ .optional(),
32
+ binPath: zod_1.z
33
+ .object({
34
+ shadowsocksr: zod_1.z.string().regex(/^\//),
35
+ })
36
+ .optional(),
37
+ flags: zod_1.z
38
+ .record(zod_1.z.union([
39
+ zod_1.z.string(),
40
+ RegexValidatior,
41
+ zod_1.z.array(zod_1.z.union([zod_1.z.string(), RegexValidatior])),
42
+ ]))
43
+ .optional(),
44
+ surgeConfig: zod_1.z
45
+ .object({
46
+ resolveHostname: zod_1.z.oboolean(),
47
+ vmessAEAD: zod_1.z.oboolean(),
48
+ })
49
+ .optional(),
50
+ surfboardConfig: zod_1.z
51
+ .object({
52
+ vmessAEAD: zod_1.z.oboolean(),
53
+ })
54
+ .optional(),
55
+ quantumultXConfig: zod_1.z
56
+ .object({
57
+ vmessAEAD: zod_1.z.oboolean(),
58
+ })
59
+ .optional(),
60
+ clashConfig: zod_1.z
61
+ .object({
62
+ enableTuic: zod_1.z.oboolean(),
63
+ enableShadowTls: zod_1.z.oboolean(),
64
+ })
65
+ .optional(),
66
+ gateway: zod_1.z
67
+ .object({
68
+ accessToken: zod_1.z.ostring(),
69
+ viewerToken: zod_1.z.ostring(),
70
+ auth: zod_1.z.oboolean(),
71
+ cookieMaxAge: zod_1.z.onumber(),
72
+ useCacheOnError: zod_1.z.oboolean(),
73
+ passRequestUserAgent: zod_1.z.oboolean(),
74
+ })
75
+ .optional(),
76
+ checkHostname: zod_1.z.oboolean(),
77
+ proxyTestUrl: zod_1.z.string().url().optional(),
78
+ proxyTestInterval: zod_1.z.onumber(),
79
+ internetTestUrl: zod_1.z.string().url().optional(),
80
+ customFilters: zod_1.z
81
+ .record(zod_1.z.union([filter_1.NodeFilterTypeValidator, filter_1.SortedNodeFilterTypeValidator]))
82
+ .optional(),
83
+ customParams: zod_1.z.record(zod_1.z.unknown()).optional(),
84
+ analytics: zod_1.z.oboolean(),
85
+ cache: zod_1.z
86
+ .object({
87
+ type: zod_1.z.union([zod_1.z.literal('redis'), zod_1.z.literal('default')]).optional(),
88
+ redisUrl: zod_1.z
89
+ .string()
90
+ .regex(/rediss?/)
91
+ .optional(),
92
+ })
93
+ .optional(),
94
+ });
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VyZ2lvLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0b3JzL3N1cmdpby1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXVCO0FBRXZCLHlDQUE4QztBQUM5QyxxQ0FHaUI7QUFFakIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFZLEVBQWlCLEVBQUU7SUFDL0MsT0FBTyxHQUFHLFlBQVksTUFBTSxDQUFBO0FBQzlCLENBQUMsQ0FBQTtBQUNELE1BQU0sZUFBZSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtJQUMvQyxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUN0QixDQUFDLENBQUMsQ0FBQTtBQUVXLFFBQUEsc0JBQXNCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM3QyxJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixHQUFHLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRTtJQUNyQixhQUFhLEVBQUUsT0FBQyxDQUFDLFFBQVEsRUFBRTtDQUM1QixDQUFDLENBQUE7QUFFVyxRQUFBLHFCQUFxQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDNUMsU0FBUyxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsNEJBQWlCLENBQUM7SUFDckMsY0FBYyxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsOEJBQXNCLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDMUQsT0FBTyxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUU7SUFDcEIsTUFBTSxFQUFFLE9BQUM7U0FDTixNQUFNLENBQUM7UUFDTixNQUFNLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRTtRQUNuQixNQUFNLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRTtRQUNuQixRQUFRLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRTtRQUNyQixNQUFN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
@@ -0,0 +1,86 @@
1
+ import { z } from 'zod';
2
+ import { NodeTypeEnum } from '../types';
3
+ export declare const TrojanNodeConfigValidator: z.ZodObject<{
4
+ port: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
5
+ nodeName: z.ZodString;
6
+ enable: z.ZodOptional<z.ZodBoolean>;
7
+ tfo: z.ZodOptional<z.ZodBoolean>;
8
+ mptcp: z.ZodOptional<z.ZodBoolean>;
9
+ sni: z.ZodOptional<z.ZodString>;
10
+ shadowTls: z.ZodOptional<z.ZodObject<{
11
+ version: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
12
+ password: z.ZodString;
13
+ sni: z.ZodString;
14
+ }, "strip", z.ZodTypeAny, {
15
+ password: string;
16
+ sni: string;
17
+ version?: number | undefined;
18
+ }, {
19
+ password: string;
20
+ sni: string;
21
+ version?: string | number | undefined;
22
+ }>>;
23
+ underlyingProxy: z.ZodOptional<z.ZodString>;
24
+ testUrl: z.ZodOptional<z.ZodString>;
25
+ hostname: z.ZodString;
26
+ tls13: z.ZodOptional<z.ZodBoolean>;
27
+ skipCertVerify: z.ZodOptional<z.ZodBoolean>;
28
+ alpn: z.ZodOptional<z.ZodArray<z.ZodString, "atleastone">>;
29
+ serverCertFingerprintSha256: z.ZodOptional<z.ZodString>;
30
+ type: z.ZodLiteral<NodeTypeEnum.Trojan>;
31
+ password: z.ZodString;
32
+ udpRelay: z.ZodOptional<z.ZodBoolean>;
33
+ network: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"tcp">, z.ZodLiteral<"ws">]>>;
34
+ wsPath: z.ZodOptional<z.ZodString>;
35
+ wsHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
36
+ }, "strip", z.ZodTypeAny, {
37
+ type: NodeTypeEnum.Trojan;
38
+ port: string | number;
39
+ nodeName: string;
40
+ password: string;
41
+ hostname: string;
42
+ enable?: boolean | undefined;
43
+ tfo?: boolean | undefined;
44
+ mptcp?: boolean | undefined;
45
+ sni?: string | undefined;
46
+ shadowTls?: {
47
+ password: string;
48
+ sni: string;
49
+ version?: number | undefined;
50
+ } | undefined;
51
+ underlyingProxy?: string | undefined;
52
+ testUrl?: string | undefined;
53
+ tls13?: boolean | undefined;
54
+ skipCertVerify?: boolean | undefined;
55
+ alpn?: [string, ...string[]] | undefined;
56
+ serverCertFingerprintSha256?: string | undefined;
57
+ udpRelay?: boolean | undefined;
58
+ network?: "ws" | "tcp" | undefined;
59
+ wsPath?: string | undefined;
60
+ wsHeaders?: Record<string, string> | undefined;
61
+ }, {
62
+ type: NodeTypeEnum.Trojan;
63
+ port: string | number;
64
+ nodeName: string;
65
+ password: string;
66
+ hostname: string;
67
+ enable?: boolean | undefined;
68
+ tfo?: boolean | undefined;
69
+ mptcp?: boolean | undefined;
70
+ sni?: string | undefined;
71
+ shadowTls?: {
72
+ password: string;
73
+ sni: string;
74
+ version?: string | number | undefined;
75
+ } | undefined;
76
+ underlyingProxy?: string | undefined;
77
+ testUrl?: string | undefined;
78
+ tls13?: boolean | undefined;
79
+ skipCertVerify?: boolean | undefined;
80
+ alpn?: [string, ...string[]] | undefined;
81
+ serverCertFingerprintSha256?: string | undefined;
82
+ udpRelay?: boolean | undefined;
83
+ network?: "ws" | "tcp" | undefined;
84
+ wsPath?: string | undefined;
85
+ wsHeaders?: Record<string, string> | undefined;
86
+ }>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TrojanNodeConfigValidator = void 0;
4
+ const zod_1 = require("zod");
5
+ const types_1 = require("../types");
6
+ const common_1 = require("./common");
7
+ exports.TrojanNodeConfigValidator = common_1.TlsNodeConfigValidator.extend({
8
+ type: zod_1.z.literal(types_1.NodeTypeEnum.Trojan),
9
+ password: zod_1.z.string(),
10
+ udpRelay: zod_1.z.oboolean(),
11
+ network: zod_1.z.union([zod_1.z.literal('tcp'), zod_1.z.literal('ws')]).optional(),
12
+ wsPath: zod_1.z.ostring(),
13
+ wsHeaders: zod_1.z.record(zod_1.z.string()).optional(),
14
+ });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJvamFuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRvcnMvdHJvamFuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUF1QjtBQUV2QixvQ0FBdUM7QUFDdkMscUNBQWlEO0FBRXBDLFFBQUEseUJBQXlCLEdBQUcsK0JBQXNCLENBQUMsTUFBTSxDQUFDO0lBQ3JFLElBQUksRUFBRSxPQUFDLENBQUMsT0FBTyxDQUFDLG9CQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3BDLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3BCLFFBQVEsRUFBRSxPQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3RCLE9BQU8sRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDaEUsTUFBTSxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUU7SUFDbkIsU0FBUyxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQzNDLENBQUMsQ0FBQSJ9