surgio 2.25.3 → 3.0.0-alpha.1

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 (265) hide show
  1. package/LICENSE +1 -1
  2. package/bin/dev +17 -0
  3. package/bin/dev.cmd +3 -0
  4. package/bin/run +8 -0
  5. package/bin/run.cmd +3 -0
  6. package/build/base-command.d.ts +19 -0
  7. package/build/base-command.js +75 -0
  8. package/build/base-command.js.map +1 -0
  9. package/build/commands/check.d.ts +10 -0
  10. package/build/commands/check.js +88 -0
  11. package/build/commands/check.js.map +1 -0
  12. package/build/commands/clean-cache.d.ts +6 -0
  13. package/build/commands/clean-cache.js +29 -0
  14. package/build/commands/clean-cache.js.map +1 -0
  15. package/build/commands/doctor.d.ts +6 -0
  16. package/build/commands/doctor.js +21 -0
  17. package/build/commands/doctor.js.map +1 -0
  18. package/build/commands/generate.d.ts +7 -0
  19. package/build/commands/generate.js +93 -0
  20. package/build/commands/generate.js.map +1 -0
  21. package/build/commands/lint.d.ts +6 -0
  22. package/build/commands/lint.js +36 -0
  23. package/build/commands/lint.js.map +1 -0
  24. package/build/commands/new.d.ts +6 -0
  25. package/build/commands/new.js +36 -0
  26. package/build/commands/new.js.map +1 -0
  27. package/build/commands/subscriptions.d.ts +7 -0
  28. package/build/commands/subscriptions.js +96 -0
  29. package/build/commands/subscriptions.js.map +1 -0
  30. package/build/commands/upload.d.ts +6 -0
  31. package/build/commands/upload.js +89 -0
  32. package/build/commands/upload.js.map +1 -0
  33. package/build/config.d.ts +6 -0
  34. package/build/config.js +151 -0
  35. package/build/config.js.map +1 -0
  36. package/build/configurables.d.ts +80 -0
  37. package/build/configurables.js +52 -0
  38. package/build/configurables.js.map +1 -0
  39. package/build/constant/constant.d.ts +16 -16
  40. package/build/constant/constant.js +3 -13
  41. package/build/constant/constant.js.map +1 -0
  42. package/build/constant/env.js +1 -1
  43. package/build/constant/env.js.map +1 -0
  44. package/build/constant/error.js +1 -1
  45. package/build/constant/error.js.map +1 -0
  46. package/build/constant/index.js +1 -1
  47. package/build/constant/index.js.map +1 -0
  48. package/build/generator/artifact.d.ts +302 -67
  49. package/build/generator/artifact.js +141 -101
  50. package/build/generator/artifact.js.map +1 -0
  51. package/build/generator/index.d.ts +2 -0
  52. package/build/generator/index.js +19 -0
  53. package/build/generator/index.js.map +1 -0
  54. package/build/generator/template.js +2 -28
  55. package/build/generator/template.js.map +1 -0
  56. package/build/hooks/init.d.ts +3 -0
  57. package/build/hooks/init.js +33 -0
  58. package/build/hooks/init.js.map +1 -0
  59. package/build/index.d.ts +68 -66
  60. package/build/index.js +11 -51
  61. package/build/index.js.map +1 -0
  62. package/build/internal.d.ts +5 -0
  63. package/build/internal.js +25 -0
  64. package/build/internal.js.map +1 -0
  65. package/build/misc/deprecation.d.ts +1 -6
  66. package/build/misc/deprecation.js +1 -8
  67. package/build/misc/deprecation.js.map +1 -0
  68. package/build/misc/flag_cn.d.ts +49 -50
  69. package/build/misc/flag_cn.js +3 -3
  70. package/build/misc/flag_cn.js.map +1 -0
  71. package/build/provider/BlackSSLProvider.d.ts +4 -3
  72. package/build/provider/BlackSSLProvider.js +28 -16
  73. package/build/provider/BlackSSLProvider.js.map +1 -0
  74. package/build/provider/ClashProvider.d.ts +7 -10
  75. package/build/provider/ClashProvider.js +168 -76
  76. package/build/provider/ClashProvider.js.map +1 -0
  77. package/build/provider/CustomProvider.d.ts +4 -3
  78. package/build/provider/CustomProvider.js +98 -54
  79. package/build/provider/CustomProvider.js.map +1 -0
  80. package/build/provider/Provider.d.ts +9 -22
  81. package/build/provider/Provider.js +34 -69
  82. package/build/provider/Provider.js.map +1 -0
  83. package/build/provider/ShadowsocksJsonSubscribeProvider.d.ts +4 -5
  84. package/build/provider/ShadowsocksJsonSubscribeProvider.js +31 -21
  85. package/build/provider/ShadowsocksJsonSubscribeProvider.js.map +1 -0
  86. package/build/provider/ShadowsocksSubscribeProvider.d.ts +5 -8
  87. package/build/provider/ShadowsocksSubscribeProvider.js +33 -27
  88. package/build/provider/ShadowsocksSubscribeProvider.js.map +1 -0
  89. package/build/provider/ShadowsocksrSubscribeProvider.d.ts +5 -8
  90. package/build/provider/ShadowsocksrSubscribeProvider.js +33 -23
  91. package/build/provider/ShadowsocksrSubscribeProvider.js.map +1 -0
  92. package/build/provider/SsdProvider.d.ts +5 -8
  93. package/build/provider/SsdProvider.js +59 -39
  94. package/build/provider/SsdProvider.js.map +1 -0
  95. package/build/provider/TrojanProvider.d.ts +5 -8
  96. package/build/provider/TrojanProvider.js +40 -30
  97. package/build/provider/TrojanProvider.js.map +1 -0
  98. package/build/provider/V2rayNSubscribeProvider.d.ts +4 -5
  99. package/build/provider/V2rayNSubscribeProvider.js +64 -33
  100. package/build/provider/V2rayNSubscribeProvider.js.map +1 -0
  101. package/build/provider/index.d.ts +16 -2
  102. package/build/provider/index.js +12 -5
  103. package/build/provider/index.js.map +1 -0
  104. package/build/provider/types.d.ts +10 -1
  105. package/build/provider/types.js +1 -1
  106. package/build/provider/types.js.map +1 -0
  107. package/build/redis.js +1 -1
  108. package/build/redis.js.map +1 -0
  109. package/build/types.d.ts +42 -236
  110. package/build/types.js +2 -1
  111. package/build/types.js.map +1 -0
  112. package/build/utils/cache.js +29 -27
  113. package/build/utils/cache.js.map +1 -0
  114. package/build/utils/clash.d.ts +204 -3
  115. package/build/utils/clash.js +247 -110
  116. package/build/utils/clash.js.map +1 -0
  117. package/build/utils/constant.js +1 -1
  118. package/build/utils/constant.js.map +1 -0
  119. package/build/utils/dns.js +1 -1
  120. package/build/utils/dns.js.map +1 -0
  121. package/build/utils/doctor.d.ts +2 -0
  122. package/build/utils/doctor.js +38 -0
  123. package/build/utils/doctor.js.map +1 -0
  124. package/build/utils/env-flag.js +2 -2
  125. package/build/utils/env-flag.js.map +1 -0
  126. package/build/utils/error-helper.d.ts +2 -2
  127. package/build/utils/error-helper.js +51 -16
  128. package/build/utils/error-helper.js.map +1 -0
  129. package/build/utils/errors.d.ts +19 -0
  130. package/build/utils/errors.js +60 -0
  131. package/build/utils/errors.js.map +1 -0
  132. package/build/utils/filter.d.ts +46 -43
  133. package/build/utils/filter.js +57 -59
  134. package/build/utils/filter.js.map +1 -0
  135. package/build/utils/flag.js +6 -6
  136. package/build/utils/flag.js.map +1 -0
  137. package/build/utils/http-client.js +38 -5
  138. package/build/utils/http-client.js.map +1 -0
  139. package/build/utils/index.d.ts +14 -21
  140. package/build/utils/index.js +102 -118
  141. package/build/utils/index.js.map +1 -0
  142. package/build/utils/linter.js +5 -2
  143. package/build/utils/linter.js.map +1 -0
  144. package/build/utils/loon.d.ts +3 -2
  145. package/build/utils/loon.js +67 -5
  146. package/build/utils/loon.js.map +1 -0
  147. package/build/utils/quantumult.d.ts +3 -3
  148. package/build/utils/quantumult.js +190 -258
  149. package/build/utils/quantumult.js.map +1 -0
  150. package/build/utils/relayable-url.js +1 -1
  151. package/build/utils/relayable-url.js.map +1 -0
  152. package/build/utils/remote-snippet.js +37 -14
  153. package/build/utils/remote-snippet.js.map +1 -0
  154. package/build/utils/ss.js +27 -17
  155. package/build/utils/ss.js.map +1 -0
  156. package/build/utils/ssr.js +3 -4
  157. package/build/utils/ssr.js.map +1 -0
  158. package/build/utils/subscription.js +10 -9
  159. package/build/utils/subscription.js.map +1 -0
  160. package/build/utils/surfboard.d.ts +3 -2
  161. package/build/utils/surfboard.js +142 -126
  162. package/build/utils/surfboard.js.map +1 -0
  163. package/build/utils/surge.d.ts +4 -2
  164. package/build/utils/surge.js +328 -300
  165. package/build/utils/surge.js.map +1 -0
  166. package/build/utils/time.d.ts +1 -0
  167. package/build/utils/time.js +6 -0
  168. package/build/utils/time.js.map +1 -0
  169. package/build/utils/tmp-helper.js +8 -1
  170. package/build/utils/tmp-helper.js.map +1 -0
  171. package/build/utils/trojan.js +19 -11
  172. package/build/utils/trojan.js.map +1 -0
  173. package/build/validators/artifact.d.ts +35 -0
  174. package/build/validators/artifact.js +17 -0
  175. package/build/validators/artifact.js.map +1 -0
  176. package/build/validators/common.d.ts +121 -0
  177. package/build/validators/common.js +65 -0
  178. package/build/validators/common.js.map +1 -0
  179. package/build/validators/filter.d.ts +10 -0
  180. package/build/validators/filter.js +15 -0
  181. package/build/validators/filter.js.map +1 -0
  182. package/build/validators/hooks.d.ts +9 -0
  183. package/build/validators/hooks.js +11 -0
  184. package/build/validators/hooks.js.map +1 -0
  185. package/build/validators/http.d.ts +137 -0
  186. package/build/validators/http.js +19 -0
  187. package/build/validators/http.js.map +1 -0
  188. package/build/validators/index.d.ts +15 -0
  189. package/build/validators/index.js +32 -0
  190. package/build/validators/index.js.map +1 -0
  191. package/build/validators/provider.d.ts +114 -0
  192. package/build/validators/provider.js +42 -0
  193. package/build/validators/provider.js.map +1 -0
  194. package/build/validators/shadowsocks.d.ts +86 -0
  195. package/build/validators/shadowsocks.js +29 -0
  196. package/build/validators/shadowsocks.js.map +1 -0
  197. package/build/validators/shadowsocksr.d.ts +77 -0
  198. package/build/validators/shadowsocksr.js +19 -0
  199. package/build/validators/shadowsocksr.js.map +1 -0
  200. package/build/validators/snell.d.ts +71 -0
  201. package/build/validators/snell.js +17 -0
  202. package/build/validators/snell.js.map +1 -0
  203. package/build/validators/socks5.d.ts +77 -0
  204. package/build/validators/socks5.js +19 -0
  205. package/build/validators/socks5.js.map +1 -0
  206. package/build/validators/surgio-config.d.ts +307 -0
  207. package/build/validators/surgio-config.js +95 -0
  208. package/build/validators/surgio-config.js.map +1 -0
  209. package/build/validators/trojan.d.ts +86 -0
  210. package/build/validators/trojan.js +15 -0
  211. package/build/validators/trojan.js.map +1 -0
  212. package/build/validators/tuic.d.ts +301 -0
  213. package/build/validators/tuic.js +21 -0
  214. package/build/validators/tuic.js.map +1 -0
  215. package/build/validators/vmess.d.ts +92 -0
  216. package/build/validators/vmess.js +29 -0
  217. package/build/validators/vmess.js.map +1 -0
  218. package/build/validators/wireguard.d.ts +123 -0
  219. package/build/validators/wireguard.js +26 -0
  220. package/build/validators/wireguard.js.map +1 -0
  221. package/config.d.ts +1 -0
  222. package/config.js +1 -0
  223. package/constant.d.ts +1 -0
  224. package/constant.js +1 -0
  225. package/generator.d.ts +1 -0
  226. package/generator.js +1 -0
  227. package/hygen-template/artifact/new/index.js +15 -15
  228. package/hygen-template/provider/new/index.js +8 -7
  229. package/hygen-template/template/new/index.js +3 -3
  230. package/index.d.ts +1 -0
  231. package/index.js +1 -0
  232. package/internal.d.ts +1 -0
  233. package/internal.js +1 -0
  234. package/package.json +120 -80
  235. package/provider.d.ts +1 -0
  236. package/provider.js +1 -0
  237. package/utils.d.ts +1 -0
  238. package/utils.js +1 -0
  239. package/bin/surgio.js +0 -8
  240. package/build/command/check.d.ts +0 -9
  241. package/build/command/check.js +0 -79
  242. package/build/command/clean-cache.d.ts +0 -8
  243. package/build/command/clean-cache.js +0 -43
  244. package/build/command/doctor.d.ts +0 -9
  245. package/build/command/doctor.js +0 -63
  246. package/build/command/generate.d.ts +0 -8
  247. package/build/command/generate.js +0 -64
  248. package/build/command/lint.d.ts +0 -7
  249. package/build/command/lint.js +0 -42
  250. package/build/command/new.d.ts +0 -7
  251. package/build/command/new.js +0 -44
  252. package/build/command/subscriptions.d.ts +0 -10
  253. package/build/command/subscriptions.js +0 -87
  254. package/build/command/upload.d.ts +0 -9
  255. package/build/command/upload.js +0 -101
  256. package/build/generate.d.ts +0 -4
  257. package/build/generate.js +0 -75
  258. package/build/utils/command.d.ts +0 -2
  259. package/build/utils/command.js +0 -23
  260. package/build/utils/config.d.ts +0 -6
  261. package/build/utils/config.js +0 -245
  262. package/build/utils/patch-proxy.d.ts +0 -1
  263. package/build/utils/patch-proxy.js +0 -19
  264. package/build/utils/v2ray.d.ts +0 -4
  265. package/build/utils/v2ray.js +0 -41
@@ -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.ZodAny>>;
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, any> | 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, any> | 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.ZodAny>>;
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, any> | 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, any> | 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, any> | 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, any> | 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.any()).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=surgio-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surgio-config.js","sourceRoot":"","sources":["../../src/validators/surgio-config.ts"],"names":[],"mappings":"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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
+ mptcp: z.ZodOptional<z.ZodBoolean>;
5
+ tfo: z.ZodOptional<z.ZodBoolean>;
6
+ underlyingProxy: z.ZodOptional<z.ZodString>;
7
+ tls13: z.ZodOptional<z.ZodBoolean>;
8
+ nodeName: z.ZodString;
9
+ enable: z.ZodOptional<z.ZodBoolean>;
10
+ sni: z.ZodOptional<z.ZodString>;
11
+ shadowTls: z.ZodOptional<z.ZodObject<{
12
+ version: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string | number, string | number>>;
13
+ password: z.ZodString;
14
+ sni: z.ZodString;
15
+ }, "strip", z.ZodTypeAny, {
16
+ password: string;
17
+ sni: string;
18
+ version?: string | number | undefined;
19
+ }, {
20
+ password: string;
21
+ sni: string;
22
+ version?: string | number | undefined;
23
+ }>>;
24
+ testUrl: z.ZodOptional<z.ZodString>;
25
+ hostname: z.ZodString;
26
+ port: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, string | number, string | number>;
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
+ password: string;
39
+ nodeName: string;
40
+ hostname: string;
41
+ port: string | number;
42
+ mptcp?: boolean | undefined;
43
+ tfo?: boolean | undefined;
44
+ underlyingProxy?: string | undefined;
45
+ tls13?: boolean | undefined;
46
+ enable?: boolean | undefined;
47
+ sni?: string | undefined;
48
+ shadowTls?: {
49
+ password: string;
50
+ sni: string;
51
+ version?: string | number | undefined;
52
+ } | undefined;
53
+ testUrl?: string | 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
+ password: string;
64
+ nodeName: string;
65
+ hostname: string;
66
+ port: string | number;
67
+ mptcp?: boolean | undefined;
68
+ tfo?: boolean | undefined;
69
+ underlyingProxy?: string | undefined;
70
+ tls13?: boolean | undefined;
71
+ enable?: boolean | undefined;
72
+ sni?: string | undefined;
73
+ shadowTls?: {
74
+ password: string;
75
+ sni: string;
76
+ version?: string | number | undefined;
77
+ } | undefined;
78
+ testUrl?: string | 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=trojan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trojan.js","sourceRoot":"","sources":["../../src/validators/trojan.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEvB,oCAAuC;AACvC,qCAAiD;AAEpC,QAAA,yBAAyB,GAAG,+BAAsB,CAAC,MAAM,CAAC;IACrE,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,oBAAY,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,OAAC,CAAC,QAAQ,EAAE;IACtB,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChE,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE;IACnB,SAAS,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAA"}