surgio 3.19.0 → 4.0.0-beta.2

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 (443) hide show
  1. package/bin/dev +5 -9
  2. package/bin/package.json +4 -0
  3. package/bin/run +2 -5
  4. package/build/base-command.d.ts +4 -4
  5. package/build/base-command.js +22 -24
  6. package/build/base-command.js.map +1 -1
  7. package/build/cache/cloudflare.d.ts +1 -0
  8. package/build/cache/cloudflare.js +2 -0
  9. package/build/cache/cloudflare.js.map +1 -0
  10. package/build/cache/configured-store.d.ts +2 -0
  11. package/build/cache/configured-store.js +26 -0
  12. package/build/cache/configured-store.js.map +1 -0
  13. package/build/cache/core.d.ts +2 -0
  14. package/build/cache/core.js +3 -0
  15. package/build/cache/core.js.map +1 -0
  16. package/build/cache/filesystem.d.ts +1 -0
  17. package/build/cache/filesystem.js +2 -0
  18. package/build/cache/filesystem.js.map +1 -0
  19. package/build/cache/index.d.ts +6 -0
  20. package/build/cache/index.js +7 -0
  21. package/build/cache/index.js.map +1 -0
  22. package/build/cache/singleton.d.ts +3 -0
  23. package/build/cache/singleton.js +8 -0
  24. package/build/cache/singleton.js.map +1 -0
  25. package/build/cache/stores/cloudflare-kv.d.ts +33 -0
  26. package/build/cache/stores/cloudflare-kv.js +45 -0
  27. package/build/cache/stores/cloudflare-kv.js.map +1 -0
  28. package/build/cache/stores/filesystem.d.ts +15 -0
  29. package/build/cache/stores/filesystem.js +84 -0
  30. package/build/cache/stores/filesystem.js.map +1 -0
  31. package/build/cache/stores/upstash.d.ts +28 -0
  32. package/build/cache/stores/upstash.js +66 -0
  33. package/build/cache/stores/upstash.js.map +1 -0
  34. package/build/cache/stores/utils.d.ts +5 -0
  35. package/build/cache/stores/utils.js +6 -0
  36. package/build/cache/stores/utils.js.map +1 -0
  37. package/build/cache/ttl-cache.d.ts +24 -0
  38. package/build/cache/ttl-cache.js +154 -0
  39. package/build/cache/ttl-cache.js.map +1 -0
  40. package/build/cache/types.d.ts +16 -0
  41. package/build/cache/types.js +2 -0
  42. package/build/cache/types.js.map +1 -0
  43. package/build/cache/upstash.d.ts +1 -0
  44. package/build/cache/upstash.js +2 -0
  45. package/build/cache/upstash.js.map +1 -0
  46. package/build/commands/check.d.ts +2 -2
  47. package/build/commands/check.js +24 -58
  48. package/build/commands/check.js.map +1 -1
  49. package/build/commands/clean-cache.d.ts +1 -1
  50. package/build/commands/clean-cache.js +16 -21
  51. package/build/commands/clean-cache.js.map +1 -1
  52. package/build/commands/doctor.d.ts +1 -1
  53. package/build/commands/doctor.js +6 -11
  54. package/build/commands/doctor.js.map +1 -1
  55. package/build/commands/generate.d.ts +1 -1
  56. package/build/commands/generate.js +31 -33
  57. package/build/commands/generate.js.map +1 -1
  58. package/build/commands/lint.d.ts +1 -1
  59. package/build/commands/lint.js +9 -14
  60. package/build/commands/lint.js.map +1 -1
  61. package/build/commands/new.d.ts +14 -1
  62. package/build/commands/new.js +252 -25
  63. package/build/commands/new.js.map +1 -1
  64. package/build/commands/subscriptions.d.ts +1 -1
  65. package/build/commands/subscriptions.js +20 -54
  66. package/build/commands/subscriptions.js.map +1 -1
  67. package/build/commands/upload.d.ts +1 -1
  68. package/build/commands/upload.js +21 -74
  69. package/build/commands/upload.js.map +1 -1
  70. package/build/config-normalize.d.ts +102 -0
  71. package/build/config-normalize.js +39 -0
  72. package/build/config-normalize.js.map +1 -0
  73. package/build/config.d.ts +9 -2
  74. package/build/config.js +78 -113
  75. package/build/config.js.map +1 -1
  76. package/build/configurables.d.ts +3 -84
  77. package/build/configurables.js +14 -39
  78. package/build/configurables.js.map +1 -1
  79. package/build/constant/constant.d.ts +26 -26
  80. package/build/constant/constant.js +39 -32
  81. package/build/constant/constant.js.map +1 -1
  82. package/build/constant/env.js +9 -12
  83. package/build/constant/env.js.map +1 -1
  84. package/build/constant/error.js +1 -4
  85. package/build/constant/error.js.map +1 -1
  86. package/build/constant/index.d.ts +3 -3
  87. package/build/constant/index.js +3 -19
  88. package/build/constant/index.js.map +1 -1
  89. package/build/filters/classes.d.ts +1 -1
  90. package/build/filters/classes.js +5 -13
  91. package/build/filters/classes.js.map +1 -1
  92. package/build/filters/filters.d.ts +1 -1
  93. package/build/filters/filters.js +58 -85
  94. package/build/filters/filters.js.map +1 -1
  95. package/build/filters/index.d.ts +2 -2
  96. package/build/filters/index.js +2 -41
  97. package/build/filters/index.js.map +1 -1
  98. package/build/filters/utils.d.ts +1 -1
  99. package/build/filters/utils.js +35 -56
  100. package/build/filters/utils.js.map +1 -1
  101. package/build/generator/artifact.d.ts +78 -72
  102. package/build/generator/artifact.js +71 -281
  103. package/build/generator/artifact.js.map +1 -1
  104. package/build/generator/index.d.ts +4 -3
  105. package/build/generator/index.js +3 -24
  106. package/build/generator/index.js.map +1 -1
  107. package/build/generator/json-extend.d.ts +20 -0
  108. package/build/generator/json-extend.js +37 -0
  109. package/build/generator/json-extend.js.map +1 -0
  110. package/build/generator/template-filters.d.ts +6 -0
  111. package/build/generator/template-filters.js +104 -0
  112. package/build/generator/template-filters.js.map +1 -0
  113. package/build/generator/template.d.ts +8 -7
  114. package/build/generator/template.js +40 -222
  115. package/build/generator/template.js.map +1 -1
  116. package/build/hooks/init.js +3 -38
  117. package/build/hooks/init.js.map +1 -1
  118. package/build/index.d.ts +66 -65
  119. package/build/index.js +20 -68
  120. package/build/index.js.map +1 -1
  121. package/build/internal.d.ts +4 -3
  122. package/build/internal.js +6 -24
  123. package/build/internal.js.map +1 -1
  124. package/build/misc/deprecation.js +10 -13
  125. package/build/misc/deprecation.js.map +1 -1
  126. package/build/misc/flag_cn.d.ts +53 -53
  127. package/build/misc/flag_cn.js +4 -7
  128. package/build/misc/flag_cn.js.map +1 -1
  129. package/build/project/authoring.d.ts +71 -0
  130. package/build/project/authoring.js +14 -0
  131. package/build/project/authoring.js.map +1 -0
  132. package/build/project/core.d.ts +3 -0
  133. package/build/project/core.js +17 -0
  134. package/build/project/core.js.map +1 -0
  135. package/build/project/editor.d.ts +8 -0
  136. package/build/project/editor.js +243 -0
  137. package/build/project/editor.js.map +1 -0
  138. package/build/project/file.d.ts +5 -0
  139. package/build/project/file.js +20 -0
  140. package/build/project/file.js.map +1 -0
  141. package/build/project/index.d.ts +5 -0
  142. package/build/project/index.js +7 -0
  143. package/build/project/index.js.map +1 -0
  144. package/build/project/internal.d.ts +8 -0
  145. package/build/project/internal.js +9 -0
  146. package/build/project/internal.js.map +1 -0
  147. package/build/project/node.d.ts +14 -0
  148. package/build/project/node.js +51 -0
  149. package/build/project/node.js.map +1 -0
  150. package/build/project/types.d.ts +22 -0
  151. package/build/project/types.js +2 -0
  152. package/build/project/types.js.map +1 -0
  153. package/build/provider/ClashProvider.d.ts +8 -5
  154. package/build/provider/ClashProvider.js +110 -115
  155. package/build/provider/ClashProvider.js.map +1 -1
  156. package/build/provider/CustomProvider.d.ts +3 -3
  157. package/build/provider/CustomProvider.js +52 -58
  158. package/build/provider/CustomProvider.js.map +1 -1
  159. package/build/provider/Provider.d.ts +8 -6
  160. package/build/provider/Provider.js +49 -83
  161. package/build/provider/Provider.js.map +1 -1
  162. package/build/provider/ShadowsocksSubscribeProvider.d.ts +5 -4
  163. package/build/provider/ShadowsocksSubscribeProvider.js +26 -33
  164. package/build/provider/ShadowsocksSubscribeProvider.js.map +1 -1
  165. package/build/provider/ShadowsocksrSubscribeProvider.d.ts +5 -4
  166. package/build/provider/ShadowsocksrSubscribeProvider.js +31 -40
  167. package/build/provider/ShadowsocksrSubscribeProvider.js.map +1 -1
  168. package/build/provider/TrojanProvider.d.ts +6 -7
  169. package/build/provider/TrojanProvider.js +35 -48
  170. package/build/provider/TrojanProvider.js.map +1 -1
  171. package/build/provider/V2rayNSubscribeProvider.d.ts +23 -14
  172. package/build/provider/V2rayNSubscribeProvider.js +58 -146
  173. package/build/provider/V2rayNSubscribeProvider.js.map +1 -1
  174. package/build/provider/create-provider.d.ts +4 -0
  175. package/build/provider/create-provider.js +36 -0
  176. package/build/provider/create-provider.js.map +1 -0
  177. package/build/provider/index.d.ts +16 -16
  178. package/build/provider/index.js +19 -51
  179. package/build/provider/index.js.map +1 -1
  180. package/build/provider/node-runtime.d.ts +1 -0
  181. package/build/provider/node-runtime.js +26 -0
  182. package/build/provider/node-runtime.js.map +1 -0
  183. package/build/provider/types.d.ts +11 -14
  184. package/build/provider/types.js +1 -2
  185. package/build/provider/v2rayn-subscription.d.ts +12 -0
  186. package/build/provider/v2rayn-subscription.js +782 -0
  187. package/build/provider/v2rayn-subscription.js.map +1 -0
  188. package/build/runtime/artifact.d.ts +122 -0
  189. package/build/runtime/artifact.js +232 -0
  190. package/build/runtime/artifact.js.map +1 -0
  191. package/build/runtime/dns.d.ts +3 -0
  192. package/build/runtime/dns.js +37 -0
  193. package/build/runtime/dns.js.map +1 -0
  194. package/build/runtime/format.d.ts +4 -0
  195. package/build/runtime/format.js +45 -0
  196. package/build/runtime/format.js.map +1 -0
  197. package/build/runtime/http-client.d.ts +9 -0
  198. package/build/runtime/http-client.js +49 -0
  199. package/build/runtime/http-client.js.map +1 -0
  200. package/build/runtime/index.d.ts +4 -0
  201. package/build/runtime/index.js +2 -0
  202. package/build/runtime/index.js.map +1 -0
  203. package/build/runtime/node.d.ts +8 -0
  204. package/build/runtime/node.js +181 -0
  205. package/build/runtime/node.js.map +1 -0
  206. package/build/runtime/provider-context.d.ts +3 -0
  207. package/build/runtime/provider-context.js +11 -0
  208. package/build/runtime/provider-context.js.map +1 -0
  209. package/build/runtime/public.d.ts +59 -0
  210. package/build/runtime/public.js +2 -0
  211. package/build/runtime/public.js.map +1 -0
  212. package/build/runtime/renderer.d.ts +13 -0
  213. package/build/runtime/renderer.js +38 -0
  214. package/build/runtime/renderer.js.map +1 -0
  215. package/build/runtime/ruleset.d.ts +1 -0
  216. package/build/runtime/ruleset.js +34 -0
  217. package/build/runtime/ruleset.js.map +1 -0
  218. package/build/runtime/snippet-interpreter.d.ts +6 -0
  219. package/build/runtime/snippet-interpreter.js +136 -0
  220. package/build/runtime/snippet-interpreter.js.map +1 -0
  221. package/build/runtime/subscription.d.ts +2 -0
  222. package/build/runtime/subscription.js +18 -0
  223. package/build/runtime/subscription.js.map +1 -0
  224. package/build/runtime/types.d.ts +35 -0
  225. package/build/runtime/types.js +2 -0
  226. package/build/runtime/types.js.map +1 -0
  227. package/build/runtime/user-agent.d.ts +1 -0
  228. package/build/runtime/user-agent.js +3 -0
  229. package/build/runtime/user-agent.js.map +1 -0
  230. package/build/types.d.ts +17 -33
  231. package/build/types.js +4 -10
  232. package/build/types.js.map +1 -1
  233. package/build/utils/clash.d.ts +4 -3
  234. package/build/utils/clash.js +78 -82
  235. package/build/utils/clash.js.map +1 -1
  236. package/build/utils/constant.d.ts +1 -1
  237. package/build/utils/constant.js +1 -17
  238. package/build/utils/constant.js.map +1 -1
  239. package/build/utils/dns.js +17 -35
  240. package/build/utils/dns.js.map +1 -1
  241. package/build/utils/doctor.js +12 -22
  242. package/build/utils/doctor.js.map +1 -1
  243. package/build/utils/env-flag.js +23 -38
  244. package/build/utils/env-flag.js.map +1 -1
  245. package/build/utils/error-helper.d.ts +1 -1
  246. package/build/utils/error-helper.js +28 -34
  247. package/build/utils/error-helper.js.map +1 -1
  248. package/build/utils/errors.d.ts +1 -1
  249. package/build/utils/errors.js +10 -16
  250. package/build/utils/errors.js.map +1 -1
  251. package/build/utils/flag.js +12 -21
  252. package/build/utils/flag.js.map +1 -1
  253. package/build/utils/index.d.ts +13 -78
  254. package/build/utils/index.js +53 -516
  255. package/build/utils/index.js.map +1 -1
  256. package/build/utils/linter.js +53 -24
  257. package/build/utils/linter.js.map +1 -1
  258. package/build/utils/loon.d.ts +3 -2
  259. package/build/utils/loon.js +73 -61
  260. package/build/utils/loon.js.map +1 -1
  261. package/build/utils/module-loader.d.ts +1 -0
  262. package/build/utils/module-loader.js +13 -0
  263. package/build/utils/module-loader.js.map +1 -0
  264. package/build/utils/object-storage.d.ts +16 -0
  265. package/build/utils/object-storage.js +136 -0
  266. package/build/utils/object-storage.js.map +1 -0
  267. package/build/utils/portable.d.ts +27 -0
  268. package/build/utils/portable.js +141 -0
  269. package/build/utils/portable.js.map +1 -0
  270. package/build/utils/quantumult.d.ts +4 -3
  271. package/build/utils/quantumult.js +45 -52
  272. package/build/utils/quantumult.js.map +1 -1
  273. package/build/utils/relayable-url.js +1 -4
  274. package/build/utils/relayable-url.js.map +1 -1
  275. package/build/utils/remote-snippet.d.ts +12 -2
  276. package/build/utils/remote-snippet.js +51 -188
  277. package/build/utils/remote-snippet.js.map +1 -1
  278. package/build/utils/singbox-rules.d.ts +40 -0
  279. package/build/utils/singbox-rules.js +295 -0
  280. package/build/utils/singbox-rules.js.map +1 -0
  281. package/build/utils/singbox.d.ts +5 -3
  282. package/build/utils/singbox.js +210 -149
  283. package/build/utils/singbox.js.map +1 -1
  284. package/build/utils/ss.d.ts +4 -2
  285. package/build/utils/ss.js +58 -21
  286. package/build/utils/ss.js.map +1 -1
  287. package/build/utils/ssr.d.ts +3 -2
  288. package/build/utils/ssr.js +11 -16
  289. package/build/utils/ssr.js.map +1 -1
  290. package/build/utils/subscription.d.ts +3 -2
  291. package/build/utils/subscription.js +14 -41
  292. package/build/utils/subscription.js.map +1 -1
  293. package/build/utils/surfboard.d.ts +4 -3
  294. package/build/utils/surfboard.js +34 -39
  295. package/build/utils/surfboard.js.map +1 -1
  296. package/build/utils/surge.d.ts +4 -3
  297. package/build/utils/surge.js +62 -120
  298. package/build/utils/surge.js.map +1 -1
  299. package/build/utils/time.js +1 -5
  300. package/build/utils/time.js.map +1 -1
  301. package/build/utils/useragent.js +19 -31
  302. package/build/utils/useragent.js.map +1 -1
  303. package/build/utils/v2rayn.d.ts +3 -0
  304. package/build/utils/v2rayn.js +485 -0
  305. package/build/utils/v2rayn.js.map +1 -0
  306. package/build/validators/anytls.d.ts +23 -37
  307. package/build/validators/anytls.js +14 -17
  308. package/build/validators/anytls.js.map +1 -1
  309. package/build/validators/artifact.d.ts +20 -8
  310. package/build/validators/artifact.js +21 -23
  311. package/build/validators/artifact.js.map +1 -1
  312. package/build/validators/common.d.ts +28 -56
  313. package/build/validators/common.js +54 -61
  314. package/build/validators/common.js.map +1 -1
  315. package/build/validators/filter.d.ts +2 -2
  316. package/build/validators/filter.js +3 -6
  317. package/build/validators/filter.js.map +1 -1
  318. package/build/validators/hooks.d.ts +3 -3
  319. package/build/validators/hooks.js +3 -6
  320. package/build/validators/hooks.js.map +1 -1
  321. package/build/validators/http.d.ts +42 -70
  322. package/build/validators/http.js +17 -20
  323. package/build/validators/http.js.map +1 -1
  324. package/build/validators/hysteria2.d.ts +122 -36
  325. package/build/validators/hysteria2.js +19 -14
  326. package/build/validators/hysteria2.js.map +1 -1
  327. package/build/validators/index.d.ts +21 -21
  328. package/build/validators/index.js +21 -37
  329. package/build/validators/index.js.map +1 -1
  330. package/build/validators/masque.d.ts +109 -153
  331. package/build/validators/masque.js +30 -33
  332. package/build/validators/masque.js.map +1 -1
  333. package/build/validators/provider.d.ts +49 -52
  334. package/build/validators/provider.js +30 -34
  335. package/build/validators/provider.js.map +1 -1
  336. package/build/validators/shadowsocks.d.ts +31 -45
  337. package/build/validators/shadowsocks.js +23 -26
  338. package/build/validators/shadowsocks.js.map +1 -1
  339. package/build/validators/shadowsocksr.d.ts +26 -40
  340. package/build/validators/shadowsocksr.js +14 -17
  341. package/build/validators/shadowsocksr.js.map +1 -1
  342. package/build/validators/snell.d.ts +21 -35
  343. package/build/validators/snell.js +12 -15
  344. package/build/validators/snell.js.map +1 -1
  345. package/build/validators/socks5.d.ts +21 -35
  346. package/build/validators/socks5.js +10 -13
  347. package/build/validators/socks5.js.map +1 -1
  348. package/build/validators/surgio-config.d.ts +406 -112
  349. package/build/validators/surgio-config.js +112 -79
  350. package/build/validators/surgio-config.js.map +1 -1
  351. package/build/validators/tailscale.d.ts +25 -39
  352. package/build/validators/tailscale.js +20 -23
  353. package/build/validators/tailscale.js.map +1 -1
  354. package/build/validators/trojan.d.ts +29 -43
  355. package/build/validators/trojan.js +11 -14
  356. package/build/validators/trojan.js.map +1 -1
  357. package/build/validators/trust-tunnel.d.ts +64 -86
  358. package/build/validators/trust-tunnel.js +22 -25
  359. package/build/validators/trust-tunnel.js.map +1 -1
  360. package/build/validators/tuic.d.ts +96 -140
  361. package/build/validators/tuic.js +16 -17
  362. package/build/validators/tuic.js.map +1 -1
  363. package/build/validators/vless.d.ts +70 -84
  364. package/build/validators/vless.js +41 -44
  365. package/build/validators/vless.js.map +1 -1
  366. package/build/validators/vmess.d.ts +80 -94
  367. package/build/validators/vmess.js +59 -62
  368. package/build/validators/vmess.js.map +1 -1
  369. package/build/validators/wireguard.d.ts +35 -49
  370. package/build/validators/wireguard.js +20 -23
  371. package/build/validators/wireguard.js.map +1 -1
  372. package/build/worker/build.d.ts +9 -0
  373. package/build/worker/build.js +120 -0
  374. package/build/worker/build.js.map +1 -0
  375. package/build/worker/config.d.ts +5 -0
  376. package/build/worker/config.js +18 -0
  377. package/build/worker/config.js.map +1 -0
  378. package/build/worker/index.d.ts +4 -0
  379. package/build/worker/index.js +3 -0
  380. package/build/worker/index.js.map +1 -0
  381. package/build/worker/normalize-config.d.ts +3 -0
  382. package/build/worker/normalize-config.js +12 -0
  383. package/build/worker/normalize-config.js.map +1 -0
  384. package/build/worker/precompiled-environment.d.ts +33 -0
  385. package/build/worker/precompiled-environment.js +211 -0
  386. package/build/worker/precompiled-environment.js.map +1 -0
  387. package/build/worker/runtime.d.ts +2 -0
  388. package/build/worker/runtime.js +206 -0
  389. package/build/worker/runtime.js.map +1 -0
  390. package/build/worker/template-engine.d.ts +6 -0
  391. package/build/worker/template-engine.js +22 -0
  392. package/build/worker/template-engine.js.map +1 -0
  393. package/build/worker/types.d.ts +27 -0
  394. package/build/worker/types.js +2 -0
  395. package/build/worker/types.js.map +1 -0
  396. package/package.json +177 -161
  397. package/build/generator/json-template.d.ts +0 -11
  398. package/build/generator/json-template.js +0 -74
  399. package/build/generator/json-template.js.map +0 -1
  400. package/build/provider/BlackSSLProvider.d.ts +0 -12
  401. package/build/provider/BlackSSLProvider.js +0 -103
  402. package/build/provider/BlackSSLProvider.js.map +0 -1
  403. package/build/provider/ShadowsocksJsonSubscribeProvider.d.ts +0 -12
  404. package/build/provider/ShadowsocksJsonSubscribeProvider.js +0 -92
  405. package/build/provider/ShadowsocksJsonSubscribeProvider.js.map +0 -1
  406. package/build/provider/SsdProvider.d.ts +0 -40
  407. package/build/provider/SsdProvider.js +0 -150
  408. package/build/provider/SsdProvider.js.map +0 -1
  409. package/build/redis.d.ts +0 -9
  410. package/build/redis.js +0 -63
  411. package/build/redis.js.map +0 -1
  412. package/build/utils/cache.d.ts +0 -23
  413. package/build/utils/cache.js +0 -98
  414. package/build/utils/cache.js.map +0 -1
  415. package/build/utils/http-client.d.ts +0 -3
  416. package/build/utils/http-client.js +0 -60
  417. package/build/utils/http-client.js.map +0 -1
  418. package/build/utils/tmp-helper.d.ts +0 -30
  419. package/build/utils/tmp-helper.js +0 -102
  420. package/build/utils/tmp-helper.js.map +0 -1
  421. package/build/utils/trojan.d.ts +0 -2
  422. package/build/utils/trojan.js +0 -38
  423. package/build/utils/trojan.js.map +0 -1
  424. package/config.d.ts +0 -1
  425. package/config.js +0 -1
  426. package/constant.d.ts +0 -1
  427. package/constant.js +0 -1
  428. package/generator.d.ts +0 -1
  429. package/generator.js +0 -1
  430. package/hygen-template/artifact/new/index.js +0 -68
  431. package/hygen-template/artifact/new/template.ejs.t +0 -18
  432. package/hygen-template/provider/new/index.js +0 -81
  433. package/hygen-template/provider/new/template.ejs.t +0 -25
  434. package/hygen-template/template/new/index.js +0 -13
  435. package/hygen-template/template/new/template.ejs.t +0 -4
  436. package/index.d.ts +0 -1
  437. package/index.js +0 -1
  438. package/internal.d.ts +0 -1
  439. package/internal.js +0 -1
  440. package/provider.d.ts +0 -1
  441. package/provider.js +0 -1
  442. package/utils.d.ts +0 -1
  443. package/utils.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/commands/upload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/commands/upload.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAC9B,OAAO,GAAG,MAAM,UAAU,CAAA;AAE1B,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,4BAA4B,CAAA;AAEnC,MAAM,aAAc,SAAQ,WAAiC;IAC3D,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;IAEzB,KAAK,CAAC,GAAG;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAA;QAEhC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACtB,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACxC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;QACrC,CAAC;QAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACpD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAChD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACxC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACjC,QAAQ;SACT,CAAC,CAAC,CAAA;QAEH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAC3B,MAAM,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;QAEhD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;IACtB,CAAC;CACF;AAED,aAAa,CAAC,KAAK,GAAG;IACpB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,SAAS;KACvB,CAAC;CACH,CAAA;AAED,eAAe,aAAa,CAAA"}
@@ -0,0 +1,102 @@
1
+ import type { CommandConfigBeforeNormalize } from './types.js';
2
+ export declare const normalizeCommonConfig: (input: Partial<CommandConfigBeforeNormalize>) => {
3
+ remoteSnippets?: {
4
+ name: string;
5
+ url: string;
6
+ surgioSnippet?: boolean | undefined;
7
+ }[] | undefined;
8
+ upload?: {
9
+ prefix?: string | undefined;
10
+ bucket: string;
11
+ accessKeyId?: string | undefined;
12
+ accessKeySecret?: string | undefined;
13
+ backend?: "oss" | undefined;
14
+ region?: string | undefined;
15
+ endpointType?: "accelerate" | "internal" | "public" | undefined;
16
+ endpoint?: string | undefined;
17
+ } | {
18
+ prefix?: string | undefined;
19
+ bucket: string;
20
+ accessKeyId?: string | undefined;
21
+ accessKeySecret?: string | undefined;
22
+ backend: "r2";
23
+ accountId: string;
24
+ jurisdiction?: "eu" | "fedramp" | undefined;
25
+ } | {
26
+ prefix?: string | undefined;
27
+ bucket: string;
28
+ accessKeyId?: string | undefined;
29
+ accessKeySecret?: string | undefined;
30
+ backend: "s3";
31
+ endpoint: string;
32
+ region: string;
33
+ pathStyle?: boolean | undefined;
34
+ } | undefined;
35
+ flags?: Record<string, string | (string | RegExp)[] | RegExp> | undefined;
36
+ customFilters?: Record<string, ((nodeConfig: import("./types.js").PossibleNodeConfigType) => boolean) | {
37
+ readonly filter: <T extends import("./types.js").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
38
+ readonly supportSort: true;
39
+ }> | undefined;
40
+ customParams?: Record<string, any> | undefined;
41
+ analytics?: boolean | undefined;
42
+ cache?: {
43
+ type?: "default" | "filesystem" | undefined;
44
+ directory?: string | undefined;
45
+ } | {
46
+ type: "upstash";
47
+ upstashRestUrl?: string | undefined;
48
+ upstashRestToken?: string | undefined;
49
+ } | undefined;
50
+ artifacts: {
51
+ name: string;
52
+ template: string;
53
+ templateType?: "default" | "json" | undefined;
54
+ extendTemplate?: ((jsonInput: import("type-fest").JsonObject, extendContext?: Readonly<Record<string, unknown>>) => import("type-fest").JsonObject) | undefined;
55
+ provider: string;
56
+ categories?: string[] | undefined;
57
+ combineProviders?: string[] | undefined;
58
+ customParams?: Record<string, any> | undefined;
59
+ customFilters?: Record<string, ((nodeConfig: import("./types.js").PossibleNodeConfigType) => boolean) | {
60
+ readonly filter: <T extends import("./types.js").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
61
+ readonly supportSort: true;
62
+ }> | undefined;
63
+ destDir?: string | undefined;
64
+ destDirs?: string[] | undefined;
65
+ downloadUrl?: string | undefined;
66
+ templateString?: string | undefined;
67
+ subscriptionUserInfoProvider?: string | undefined;
68
+ }[];
69
+ urlBase: string;
70
+ publicUrl: string;
71
+ surgeConfig: {
72
+ vmessAEAD: boolean;
73
+ };
74
+ clashConfig: {
75
+ enableShadowTls: boolean;
76
+ enableTuic: boolean;
77
+ enableHysteria2: boolean;
78
+ enableVless: boolean;
79
+ clashCore: "clash" | "clash.meta" | "mihomo" | "stash";
80
+ };
81
+ quantumultXConfig: {
82
+ vmessAEAD: boolean;
83
+ };
84
+ surfboardConfig: {
85
+ vmessAEAD: boolean;
86
+ };
87
+ proxyTestUrl: string;
88
+ proxyTestInterval: number;
89
+ internetTestUrl: string;
90
+ internetTestInterval: number;
91
+ checkHostname: boolean;
92
+ resolveHostname: boolean;
93
+ gateway: {
94
+ accessToken?: string | undefined;
95
+ viewerToken?: string | undefined;
96
+ auth?: boolean | undefined;
97
+ cookieMaxAge?: number | undefined;
98
+ useCacheOnError?: boolean | undefined;
99
+ passRequestUserAgent?: boolean | undefined;
100
+ passRequestHeaders: string[];
101
+ };
102
+ };
@@ -0,0 +1,39 @@
1
+ import { INTERNET_TEST_INTERVAL, INTERNET_TEST_URL, PROXY_TEST_INTERVAL, PROXY_TEST_URL, } from './constant/index.js';
2
+ export const normalizeCommonConfig = (input) => {
3
+ const urlBase = input.urlBase || '/';
4
+ const passRequestHeaders = [...(input.gateway?.passRequestHeaders ?? [])];
5
+ if (input.gateway?.passRequestUserAgent &&
6
+ !passRequestHeaders.includes('user-agent')) {
7
+ passRequestHeaders.push('user-agent');
8
+ }
9
+ return {
10
+ ...input,
11
+ artifacts: input.artifacts ?? [],
12
+ urlBase,
13
+ publicUrl: /^https?:/i.test(urlBase) ? new URL(urlBase).origin + '/' : '/',
14
+ surgeConfig: {
15
+ vmessAEAD: true,
16
+ ...input.surgeConfig,
17
+ },
18
+ clashConfig: {
19
+ enableShadowTls: false,
20
+ enableTuic: false,
21
+ enableHysteria2: false,
22
+ enableVless: false,
23
+ clashCore: 'clash.meta',
24
+ ...input.clashConfig,
25
+ },
26
+ quantumultXConfig: { vmessAEAD: true, ...input.quantumultXConfig },
27
+ surfboardConfig: { vmessAEAD: true, ...input.surfboardConfig },
28
+ proxyTestUrl: input.proxyTestUrl ?? PROXY_TEST_URL,
29
+ proxyTestInterval: input.proxyTestInterval ?? PROXY_TEST_INTERVAL,
30
+ internetTestUrl: input.internetTestUrl ?? INTERNET_TEST_URL,
31
+ internetTestInterval: input.internetTestInterval ?? INTERNET_TEST_INTERVAL,
32
+ checkHostname: input.checkHostname ?? false,
33
+ resolveHostname: input.resolveHostname ?? false,
34
+ gateway: input.gateway
35
+ ? { ...input.gateway, passRequestHeaders }
36
+ : { passRequestUserAgent: false, passRequestHeaders: [] },
37
+ };
38
+ };
39
+ //# sourceMappingURL=config-normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-normalize.js","sourceRoot":"","sources":["../src/config-normalize.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,GACf,MAAM,qBAAqB,CAAA;AAI5B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAA4C,EAC5C,EAAE;IACF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,CAAA;IACpC,MAAM,kBAAkB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAAA;IACzE,IACE,KAAK,CAAC,OAAO,EAAE,oBAAoB;QACnC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAC1C,CAAC;QACD,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACvC,CAAC;IAED,OAAO;QACL,GAAG,KAAK;QACR,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE;QAChC,OAAO;QACP,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG;QAC1E,WAAW,EAAE;YACX,SAAS,EAAE,IAAI;YACf,GAAG,KAAK,CAAC,WAAW;SACrB;QACD,WAAW,EAAE;YACX,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,KAAK;YACjB,eAAe,EAAE,KAAK;YACtB,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,YAAqB;YAChC,GAAG,KAAK,CAAC,WAAW;SACrB;QACD,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,iBAAiB,EAAE;QAClE,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,eAAe,EAAE;QAC9D,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,cAAc;QAClD,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,IAAI,mBAAmB;QACjE,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,iBAAiB;QAC3D,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,IAAI,sBAAsB;QAC1E,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,KAAK;QAC3C,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,KAAK;QAC/C,OAAO,EAAE,KAAK,CAAC,OAAO;YACpB,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE;YAC1C,CAAC,CAAC,EAAE,oBAAoB,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,EAAE;KAC5D,CAAA;AACH,CAAC,CAAA"}
package/build/config.d.ts CHANGED
@@ -1,6 +1,13 @@
1
- import { CommandConfig, CommandConfigBeforeNormalize } from './types';
1
+ import { CommandConfig, CommandConfigBeforeNormalize } from './types.js';
2
2
  export declare const loadConfig: (cwd: string, override?: Partial<CommandConfig>) => CommandConfig;
3
3
  export declare const getConfig: () => CommandConfig;
4
+ export declare const setLoadedConfig: (config: CommandConfig) => CommandConfig;
4
5
  export declare const setConfig: <T extends keyof CommandConfig>(key: T, value: CommandConfig[T]) => CommandConfig;
5
6
  export declare const normalizeConfig: (cwd: string, userConfig: Partial<CommandConfigBeforeNormalize>) => CommandConfig;
6
- export declare const validateConfig: (userConfig: Partial<CommandConfig>) => CommandConfigBeforeNormalize;
7
+ export declare const normalizeProjectConfig: (cwd: string, userConfig: Partial<CommandConfigBeforeNormalize>, options?: {
8
+ readonly templateDir?: string;
9
+ readonly output?: string;
10
+ readonly cache?: CommandConfigBeforeNormalize['cache'];
11
+ readonly upload?: CommandConfigBeforeNormalize['upload'];
12
+ }) => CommandConfig;
13
+ export declare const validateConfig: (userConfig: Partial<CommandConfigBeforeNormalize>) => CommandConfigBeforeNormalize;
package/build/config.js CHANGED
@@ -1,68 +1,63 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.validateConfig = exports.normalizeConfig = exports.setConfig = exports.getConfig = exports.loadConfig = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- const url_1 = require("url");
9
- const fs_extra_1 = __importDefault(require("fs-extra"));
10
- const lodash_1 = __importDefault(require("lodash"));
11
- const constant_1 = require("./constant");
12
- const redis_1 = __importDefault(require("./redis"));
13
- const validators_1 = require("./validators");
14
- const flag_1 = require("./utils/flag");
15
- const utils_1 = require("./utils");
1
+ import path from 'path';
2
+ import fs from 'fs-extra';
3
+ import _ from 'lodash';
4
+ import { normalizeCommonConfig } from './config-normalize.js';
5
+ import { SurgioConfigValidator } from './validators/index.js';
6
+ import { addFlagMap } from './utils/flag.js';
7
+ import { ensureConfigFolder } from './utils/index.js';
8
+ import { loadModuleSync } from './utils/module-loader.js';
16
9
  let finalConfig = null;
17
- const loadConfig = (cwd, override) => {
18
- const absPath = path_1.default.join(cwd, 'surgio.conf.js');
19
- // istanbul ignore next
20
- if (!fs_extra_1.default.existsSync(absPath)) {
21
- throw new Error(`配置文件 ${absPath} 不存在`);
22
- }
23
- const userConfig = (0, exports.validateConfig)(lodash_1.default.cloneDeep(require(absPath)));
10
+ const applyConfigSideEffects = (userConfig) => {
24
11
  if (userConfig.flags) {
25
12
  Object.keys(userConfig.flags).forEach((emoji) => {
26
- if (userConfig.flags) {
27
- if (typeof userConfig.flags[emoji] === 'string') {
28
- (0, flag_1.addFlagMap)(userConfig.flags[emoji], emoji);
29
- }
30
- else if (lodash_1.default.isRegExp(userConfig.flags[emoji])) {
31
- (0, flag_1.addFlagMap)(userConfig.flags[emoji], emoji);
32
- }
33
- else {
34
- ;
35
- userConfig.flags[emoji].forEach((name) => {
36
- (0, flag_1.addFlagMap)(name, emoji);
37
- });
38
- }
13
+ const names = userConfig.flags?.[emoji];
14
+ if (typeof names === 'string') {
15
+ addFlagMap(names, emoji);
16
+ }
17
+ else if (_.isRegExp(names)) {
18
+ addFlagMap(names, emoji);
19
+ }
20
+ else {
21
+ names?.forEach((name) => addFlagMap(name, emoji));
39
22
  }
40
23
  });
41
24
  }
25
+ };
26
+ export const loadConfig = (cwd, override) => {
27
+ const absPath = path.join(cwd, 'surgio.conf.js');
28
+ /* istanbul ignore next -- @preserve */
29
+ if (!fs.existsSync(absPath)) {
30
+ throw new Error(`配置文件 ${absPath} 不存在`);
31
+ }
32
+ const userConfig = validateConfig(_.cloneDeep(loadModuleSync(absPath)));
33
+ applyConfigSideEffects(userConfig);
42
34
  if (override) {
43
35
  return {
44
- ...(0, exports.normalizeConfig)(cwd, userConfig),
36
+ ...normalizeConfig(cwd, userConfig),
45
37
  ...override,
46
38
  };
47
39
  }
48
- finalConfig = (0, exports.normalizeConfig)(cwd, userConfig);
40
+ finalConfig = normalizeConfig(cwd, userConfig);
49
41
  return finalConfig;
50
42
  };
51
- exports.loadConfig = loadConfig;
52
- const getConfig = () => {
53
- // istanbul ignore next
43
+ export const getConfig = () => {
44
+ /* istanbul ignore next -- @preserve */
54
45
  if (!finalConfig) {
55
46
  throw new Error('请先调用 loadConfig 方法');
56
47
  }
57
48
  return finalConfig;
58
49
  };
59
- exports.getConfig = getConfig;
60
- const setConfig = (key, value) => {
61
- // istanbul ignore next
50
+ export const setLoadedConfig = (config) => {
51
+ finalConfig = config;
52
+ applyConfigSideEffects(config);
53
+ return config;
54
+ };
55
+ export const setConfig = (key, value) => {
56
+ /* istanbul ignore next -- @preserve */
62
57
  if (!finalConfig) {
63
58
  throw new Error('请先调用 loadConfig 方法');
64
59
  }
65
- if (lodash_1.default.isPlainObject(value)) {
60
+ if (_.isPlainObject(value)) {
66
61
  finalConfig[key] = {
67
62
  ...finalConfig[key],
68
63
  ...value,
@@ -73,90 +68,60 @@ const setConfig = (key, value) => {
73
68
  }
74
69
  return finalConfig;
75
70
  };
76
- exports.setConfig = setConfig;
77
- const normalizeConfig = (cwd, userConfig) => {
78
- const defaultConfig = {
79
- artifacts: [],
80
- urlBase: '/',
81
- output: path_1.default.join(cwd, './dist'),
82
- templateDir: path_1.default.join(cwd, './template'),
83
- providerDir: path_1.default.join(cwd, './provider'),
84
- configDir: (0, utils_1.ensureConfigFolder)(),
85
- surgeConfig: {
86
- resolveHostname: false,
87
- vmessAEAD: true,
88
- },
89
- clashConfig: {
90
- enableShadowTls: false,
91
- enableTuic: false,
92
- enableHysteria2: false,
93
- enableVless: false,
94
- clashCore: 'clash',
95
- },
96
- quantumultXConfig: {
97
- vmessAEAD: true,
98
- },
99
- surfboardConfig: {
100
- vmessAEAD: true,
101
- },
102
- proxyTestUrl: constant_1.PROXY_TEST_URL,
103
- proxyTestInterval: constant_1.PROXY_TEST_INTERVAL,
104
- internetTestUrl: constant_1.INTERNET_TEST_URL,
105
- internetTestInterval: constant_1.INTERNET_TEST_INTERVAL,
106
- checkHostname: false,
107
- resolveHostname: false,
108
- cache: {
109
- type: 'default',
110
- },
111
- gateway: {
112
- passRequestUserAgent: false,
113
- passRequestHeaders: [],
114
- },
71
+ export const normalizeConfig = (cwd, userConfig) => {
72
+ const config = {
73
+ ...normalizeCommonConfig(userConfig),
74
+ output: path.join(cwd, './dist'),
75
+ templateDir: path.join(cwd, './template'),
76
+ providerDir: path.join(cwd, './provider'),
77
+ configDir: ensureConfigFolder(),
78
+ cache: userConfig.cache ?? { type: 'filesystem' },
115
79
  };
116
- const config = lodash_1.default.defaultsDeep(userConfig, defaultConfig);
117
- // istanbul ignore next
118
- if (!fs_extra_1.default.existsSync(config.templateDir)) {
80
+ /* istanbul ignore next -- @preserve */
81
+ if (!fs.existsSync(config.templateDir)) {
119
82
  throw new Error(`仓库内缺少 ${config.templateDir} 目录`);
120
83
  }
121
- // istanbul ignore next
122
- if (!fs_extra_1.default.existsSync(config.providerDir)) {
84
+ /* istanbul ignore next -- @preserve */
85
+ if (!fs.existsSync(config.providerDir)) {
123
86
  throw new Error(`仓库内缺少 ${config.providerDir} 目录`);
124
87
  }
125
- if (/http/i.test(config.urlBase)) {
126
- const urlObject = new url_1.URL(config.urlBase);
127
- config.publicUrl = urlObject.origin + '/';
128
- }
129
- else {
130
- config.publicUrl = '/';
131
- }
132
- // istanbul ignore next
133
- if (config.cache && config.cache.type === 'redis') {
134
- if (!config.cache.redisUrl) {
135
- throw new Error('缓存配置错误,请检查 cache.redisUrl 配置');
136
- }
137
- redis_1.default.createRedis(config.cache.redisUrl);
138
- }
139
- // istanbul ignore next
88
+ /* istanbul ignore next -- @preserve */
140
89
  if (config.gateway) {
141
90
  if (config.gateway.auth && !config.gateway.accessToken) {
142
91
  throw new Error('请检查 gateway.accessToken 配置');
143
92
  }
144
93
  }
145
- // istanbul ignore next
146
- if (config.gateway?.passRequestUserAgent &&
147
- !config.gateway.passRequestHeaders.includes('user-agent')) {
148
- config.gateway.passRequestHeaders.push('user-agent');
149
- }
150
94
  return config;
151
95
  };
152
- exports.normalizeConfig = normalizeConfig;
153
- const validateConfig = (userConfig) => {
154
- const result = validators_1.SurgioConfigValidator.safeParse(userConfig);
155
- // istanbul ignore next
96
+ export const normalizeProjectConfig = (cwd, userConfig, options = {}) => {
97
+ const validated = validateConfig({
98
+ ...userConfig,
99
+ ...(options.cache ? { cache: options.cache } : null),
100
+ ...(options.upload ? { upload: options.upload } : null),
101
+ });
102
+ const resolveFromProject = (value) => path.isAbsolute(value) ? value : path.resolve(cwd, value);
103
+ const config = {
104
+ ...normalizeCommonConfig(validated),
105
+ output: resolveFromProject(options.output ?? './dist'),
106
+ templateDir: resolveFromProject(options.templateDir ?? './template'),
107
+ providerDir: path.join(cwd, './provider'),
108
+ configDir: ensureConfigFolder(),
109
+ cache: validated.cache ?? { type: 'filesystem' },
110
+ };
111
+ if (!fs.existsSync(config.templateDir)) {
112
+ throw new Error(`仓库内缺少 ${config.templateDir} 目录`);
113
+ }
114
+ if (config.gateway?.auth && !config.gateway.accessToken) {
115
+ throw new Error('请检查 gateway.accessToken 配置');
116
+ }
117
+ return setLoadedConfig(config);
118
+ };
119
+ export const validateConfig = (userConfig) => {
120
+ const result = SurgioConfigValidator.safeParse(userConfig);
121
+ /* istanbul ignore next -- @preserve */
156
122
  if (!result.success) {
157
123
  throw result.error;
158
124
  }
159
125
  return result.data;
160
126
  };
161
- exports.validateConfig = validateConfig;
162
127
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,90 +1,9 @@
1
- import { Promisable } from 'type-fest';
2
- import { BlackSSLProviderConfig, ClashProviderConfig, CommandConfigBeforeNormalize, CustomProviderConfig, PossibleProviderConfigType, ShadowsocksJsonSubscribeProviderConfig, ShadowsocksrSubscribeProviderConfig, ShadowsocksSubscribeProviderConfig, SsdProviderConfig, TrojanProviderConfig, V2rayNSubscribeProviderConfig } from './types';
3
- export declare const defineSurgioConfig: (config: CommandConfigBeforeNormalize) => {
4
- artifacts: {
5
- name: string;
6
- template: string;
7
- provider: string;
8
- templateType?: "default" | "json" | undefined;
9
- extendTemplate?: ((args_0: unknown, ...args: unknown[]) => unknown) | undefined;
10
- categories?: string[] | undefined;
11
- combineProviders?: string[] | undefined;
12
- customParams?: Record<string, any> | undefined;
13
- customFilters?: Record<string, (...args: unknown[]) => unknown> | undefined;
14
- destDir?: string | undefined;
15
- destDirs?: string[] | undefined;
16
- downloadUrl?: string | undefined;
17
- templateString?: string | undefined;
18
- subscriptionUserInfoProvider?: string | undefined;
19
- }[];
20
- customParams?: Record<string, any> | undefined;
21
- customFilters?: Record<string, ((nodeConfig: import("./types").PossibleNodeConfigType) => boolean) | {
22
- readonly filter: <T extends import("./types").PossibleNodeConfigType>(nodeList: ReadonlyArray<T>) => ReadonlyArray<T>;
23
- readonly supportSort: true;
24
- }> | undefined;
25
- resolveHostname?: boolean | undefined;
26
- surgeConfig?: {
27
- resolveHostname?: boolean | undefined;
28
- vmessAEAD?: boolean | undefined;
29
- } | undefined;
30
- surfboardConfig?: {
31
- vmessAEAD?: boolean | undefined;
32
- } | undefined;
33
- quantumultXConfig?: {
34
- vmessAEAD?: boolean | undefined;
35
- } | undefined;
36
- clashConfig?: {
37
- enableTuic?: boolean | undefined;
38
- enableShadowTls?: boolean | undefined;
39
- enableHysteria2?: boolean | undefined;
40
- enableVless?: boolean | undefined;
41
- clashCore?: "clash" | "clash.meta" | "stash" | undefined;
42
- } | undefined;
43
- binPath?: {
44
- shadowsocksr: string;
45
- } | undefined;
46
- remoteSnippets?: {
47
- name: string;
48
- url: string;
49
- surgioSnippet?: boolean | undefined;
50
- }[] | undefined;
51
- urlBase?: string | undefined;
52
- upload?: {
53
- bucket: string;
54
- accessKeyId: string;
55
- accessKeySecret: string;
56
- endpoint?: string | undefined;
57
- prefix?: string | undefined;
58
- region?: string | undefined;
59
- } | undefined;
60
- flags?: Record<string, string | RegExp | (string | RegExp)[]> | undefined;
61
- gateway?: {
62
- accessToken?: string | undefined;
63
- viewerToken?: string | undefined;
64
- auth?: boolean | undefined;
65
- cookieMaxAge?: number | undefined;
66
- useCacheOnError?: boolean | undefined;
67
- passRequestUserAgent?: boolean | undefined;
68
- passRequestHeaders?: string[] | undefined;
69
- } | undefined;
70
- checkHostname?: boolean | undefined;
71
- proxyTestUrl?: string | undefined;
72
- proxyTestInterval?: number | undefined;
73
- internetTestUrl?: string | undefined;
74
- internetTestInterval?: number | undefined;
75
- analytics?: boolean | undefined;
76
- cache?: {
77
- type?: "default" | "redis" | undefined;
78
- redisUrl?: string | undefined;
79
- } | undefined;
80
- };
81
- export type ProviderDefineFunction<T extends PossibleProviderConfigType, U = Omit<T, 'type'>> = (config: U) => T | Promisable<T>;
82
- export declare const defineBlackSSLProvider: ProviderDefineFunction<BlackSSLProviderConfig>;
1
+ import { ClashProviderConfig, CustomProviderConfig, PossibleProviderConfigType, ShadowsocksrSubscribeProviderConfig, ShadowsocksSubscribeProviderConfig, TrojanProviderConfig, V2rayNSubscribeProviderConfig } from './types.js';
2
+ export { defineSurgioProject, env } from './project/core.js';
3
+ export type ProviderDefineFunction<T extends PossibleProviderConfigType, U = Omit<T, 'type'>> = (config: U) => T;
83
4
  export declare const defineClashProvider: ProviderDefineFunction<ClashProviderConfig>;
84
5
  export declare const defineCustomProvider: ProviderDefineFunction<CustomProviderConfig>;
85
- export declare const defineShadowsocksJsonSubscribeProvider: ProviderDefineFunction<ShadowsocksJsonSubscribeProviderConfig>;
86
6
  export declare const defineShadowsocksSubscribeProvider: ProviderDefineFunction<ShadowsocksSubscribeProviderConfig>;
87
7
  export declare const defineShadowsocksrSubscribeProvider: ProviderDefineFunction<ShadowsocksrSubscribeProviderConfig>;
88
- export declare const defineSsdProvider: ProviderDefineFunction<SsdProviderConfig>;
89
8
  export declare const defineTrojanProvider: ProviderDefineFunction<TrojanProviderConfig>;
90
9
  export declare const defineV2rayNSubscribeProvider: ProviderDefineFunction<V2rayNSubscribeProviderConfig>;
@@ -1,52 +1,27 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defineV2rayNSubscribeProvider = exports.defineTrojanProvider = exports.defineSsdProvider = exports.defineShadowsocksrSubscribeProvider = exports.defineShadowsocksSubscribeProvider = exports.defineShadowsocksJsonSubscribeProvider = exports.defineCustomProvider = exports.defineClashProvider = exports.defineBlackSSLProvider = exports.defineSurgioConfig = void 0;
4
- const types_1 = require("./types");
5
- const defineSurgioConfig = (config) => config;
6
- exports.defineSurgioConfig = defineSurgioConfig;
7
- const defineBlackSSLProvider = (config) => ({
1
+ import { SupportProviderEnum, } from './types.js';
2
+ export { defineSurgioProject, env } from './project/core.js';
3
+ export const defineClashProvider = (config) => ({
8
4
  ...config,
9
- type: types_1.SupportProviderEnum.BlackSSL,
5
+ type: SupportProviderEnum.Clash,
10
6
  });
11
- exports.defineBlackSSLProvider = defineBlackSSLProvider;
12
- const defineClashProvider = (config) => ({
7
+ export const defineCustomProvider = (config) => ({
13
8
  ...config,
14
- type: types_1.SupportProviderEnum.Clash,
9
+ type: SupportProviderEnum.Custom,
15
10
  });
16
- exports.defineClashProvider = defineClashProvider;
17
- const defineCustomProvider = (config) => ({
11
+ export const defineShadowsocksSubscribeProvider = (config) => ({
18
12
  ...config,
19
- type: types_1.SupportProviderEnum.Custom,
13
+ type: SupportProviderEnum.ShadowsocksSubscribe,
20
14
  });
21
- exports.defineCustomProvider = defineCustomProvider;
22
- const defineShadowsocksJsonSubscribeProvider = (config) => ({
15
+ export const defineShadowsocksrSubscribeProvider = (config) => ({
23
16
  ...config,
24
- type: types_1.SupportProviderEnum.ShadowsocksJsonSubscribe,
17
+ type: SupportProviderEnum.ShadowsocksrSubscribe,
25
18
  });
26
- exports.defineShadowsocksJsonSubscribeProvider = defineShadowsocksJsonSubscribeProvider;
27
- const defineShadowsocksSubscribeProvider = (config) => ({
19
+ export const defineTrojanProvider = (config) => ({
28
20
  ...config,
29
- type: types_1.SupportProviderEnum.ShadowsocksSubscribe,
21
+ type: SupportProviderEnum.Trojan,
30
22
  });
31
- exports.defineShadowsocksSubscribeProvider = defineShadowsocksSubscribeProvider;
32
- const defineShadowsocksrSubscribeProvider = (config) => ({
23
+ export const defineV2rayNSubscribeProvider = (config) => ({
33
24
  ...config,
34
- type: types_1.SupportProviderEnum.ShadowsocksrSubscribe,
25
+ type: SupportProviderEnum.V2rayNSubscribe,
35
26
  });
36
- exports.defineShadowsocksrSubscribeProvider = defineShadowsocksrSubscribeProvider;
37
- const defineSsdProvider = (config) => ({
38
- ...config,
39
- type: types_1.SupportProviderEnum.Ssd,
40
- });
41
- exports.defineSsdProvider = defineSsdProvider;
42
- const defineTrojanProvider = (config) => ({
43
- ...config,
44
- type: types_1.SupportProviderEnum.Trojan,
45
- });
46
- exports.defineTrojanProvider = defineTrojanProvider;
47
- const defineV2rayNSubscribeProvider = (config) => ({
48
- ...config,
49
- type: types_1.SupportProviderEnum.V2rayNSubscribe,
50
- });
51
- exports.defineV2rayNSubscribeProvider = defineV2rayNSubscribeProvider;
52
27
  //# sourceMappingURL=configurables.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"configurables.js","sourceRoot":"","sources":["../src/configurables.ts"],"names":[],"mappings":";;;AAEA,mCAagB;AAET,MAAM,kBAAkB,GAAG,CAAC,MAAoC,EAAE,EAAE,CACzE,MAAM,CAAA;AADK,QAAA,kBAAkB,sBACvB;AAOD,MAAM,sBAAsB,GAE/B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACf,GAAG,MAAM;IACT,IAAI,EAAE,2BAAmB,CAAC,QAAQ;CACnC,CAAC,CAAA;AALW,QAAA,sBAAsB,0BAKjC;AAEK,MAAM,mBAAmB,GAE5B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACf,GAAG,MAAM;IACT,IAAI,EAAE,2BAAmB,CAAC,KAAK;CAChC,CAAC,CAAA;AALW,QAAA,mBAAmB,uBAK9B;AAEK,MAAM,oBAAoB,GAE7B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACf,GAAG,MAAM;IACT,IAAI,EAAE,2BAAmB,CAAC,MAAM;CACjC,CAAC,CAAA;AALW,QAAA,oBAAoB,wBAK/B;AAEK,MAAM,sCAAsC,GAE/C,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACf,GAAG,MAAM;IACT,IAAI,EAAE,2BAAmB,CAAC,wBAAwB;CACnD,CAAC,CAAA;AALW,QAAA,sCAAsC,0CAKjD;AAEK,MAAM,kCAAkC,GAE3C,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACf,GAAG,MAAM;IACT,IAAI,EAAE,2BAAmB,CAAC,oBAAoB;CAC/C,CAAC,CAAA;AALW,QAAA,kCAAkC,sCAK7C;AAEK,MAAM,mCAAmC,GAE5C,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACf,GAAG,MAAM;IACT,IAAI,EAAE,2BAAmB,CAAC,qBAAqB;CAChD,CAAC,CAAA;AALW,QAAA,mCAAmC,uCAK9C;AAEK,MAAM,iBAAiB,GAA8C,CAC1E,MAAM,EACN,EAAE,CAAC,CAAC;IACJ,GAAG,MAAM;IACT,IAAI,EAAE,2BAAmB,CAAC,GAAG;CAC9B,CAAC,CAAA;AALW,QAAA,iBAAiB,qBAK5B;AAEK,MAAM,oBAAoB,GAE7B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACf,GAAG,MAAM;IACT,IAAI,EAAE,2BAAmB,CAAC,MAAM;CACjC,CAAC,CAAA;AALW,QAAA,oBAAoB,wBAK/B;AAEK,MAAM,6BAA6B,GAEtC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACf,GAAG,MAAM;IACT,IAAI,EAAE,2BAAmB,CAAC,eAAe;CAC1C,CAAC,CAAA;AALW,QAAA,6BAA6B,iCAKxC"}
1
+ {"version":3,"file":"configurables.js","sourceRoot":"","sources":["../src/configurables.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,mBAAmB,GAGpB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAO5D,MAAM,CAAC,MAAM,mBAAmB,GAE5B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACf,GAAG,MAAM;IACT,IAAI,EAAE,mBAAmB,CAAC,KAAK;CAChC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAE7B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACf,GAAG,MAAM;IACT,IAAI,EAAE,mBAAmB,CAAC,MAAM;CACjC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAE3C,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACf,GAAG,MAAM;IACT,IAAI,EAAE,mBAAmB,CAAC,oBAAoB;CAC/C,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,mCAAmC,GAE5C,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACf,GAAG,MAAM;IACT,IAAI,EAAE,mBAAmB,CAAC,qBAAqB;CAChD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAE7B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACf,GAAG,MAAM;IACT,IAAI,EAAE,mBAAmB,CAAC,MAAM;CACjC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAEtC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACf,GAAG,MAAM;IACT,IAAI,EAAE,mBAAmB,CAAC,eAAe;CAC1C,CAAC,CAAA"}