surgio 3.11.2 → 3.12.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 (260) hide show
  1. package/bin/dev +0 -0
  2. package/package.json +69 -75
  3. package/build/base-command.d.ts +0 -20
  4. package/build/base-command.js +0 -75
  5. package/build/base-command.js.map +0 -1
  6. package/build/commands/check.d.ts +0 -10
  7. package/build/commands/check.js +0 -87
  8. package/build/commands/check.js.map +0 -1
  9. package/build/commands/clean-cache.d.ts +0 -6
  10. package/build/commands/clean-cache.js +0 -28
  11. package/build/commands/clean-cache.js.map +0 -1
  12. package/build/commands/doctor.d.ts +0 -6
  13. package/build/commands/doctor.js +0 -20
  14. package/build/commands/doctor.js.map +0 -1
  15. package/build/commands/generate.d.ts +0 -7
  16. package/build/commands/generate.js +0 -94
  17. package/build/commands/generate.js.map +0 -1
  18. package/build/commands/lint.d.ts +0 -6
  19. package/build/commands/lint.js +0 -37
  20. package/build/commands/lint.js.map +0 -1
  21. package/build/commands/new.d.ts +0 -6
  22. package/build/commands/new.js +0 -37
  23. package/build/commands/new.js.map +0 -1
  24. package/build/commands/subscriptions.d.ts +0 -7
  25. package/build/commands/subscriptions.js +0 -95
  26. package/build/commands/subscriptions.js.map +0 -1
  27. package/build/commands/upload.d.ts +0 -6
  28. package/build/commands/upload.js +0 -91
  29. package/build/commands/upload.js.map +0 -1
  30. package/build/config.d.ts +0 -6
  31. package/build/config.js +0 -156
  32. package/build/config.js.map +0 -1
  33. package/build/configurables.d.ts +0 -88
  34. package/build/configurables.js +0 -52
  35. package/build/configurables.js.map +0 -1
  36. package/build/constant/constant.d.ts +0 -36
  37. package/build/constant/constant.js +0 -160
  38. package/build/constant/constant.js.map +0 -1
  39. package/build/constant/env.d.ts +0 -9
  40. package/build/constant/env.js +0 -13
  41. package/build/constant/env.js.map +0 -1
  42. package/build/constant/error.d.ts +0 -1
  43. package/build/constant/error.js +0 -5
  44. package/build/constant/error.js.map +0 -1
  45. package/build/constant/index.d.ts +0 -3
  46. package/build/constant/index.js +0 -20
  47. package/build/constant/index.js.map +0 -1
  48. package/build/filters/classes.d.ts +0 -13
  49. package/build/filters/classes.js +0 -42
  50. package/build/filters/classes.js.map +0 -1
  51. package/build/filters/filters.d.ts +0 -25
  52. package/build/filters/filters.js +0 -107
  53. package/build/filters/filters.js.map +0 -1
  54. package/build/filters/index.d.ts +0 -2
  55. package/build/filters/index.js +0 -32
  56. package/build/filters/index.js.map +0 -1
  57. package/build/filters/utils.d.ts +0 -16
  58. package/build/filters/utils.js +0 -159
  59. package/build/filters/utils.js.map +0 -1
  60. package/build/generator/artifact.d.ts +0 -142
  61. package/build/generator/artifact.js +0 -370
  62. package/build/generator/artifact.js.map +0 -1
  63. package/build/generator/index.d.ts +0 -3
  64. package/build/generator/index.js +0 -25
  65. package/build/generator/index.js.map +0 -1
  66. package/build/generator/json-template.d.ts +0 -11
  67. package/build/generator/json-template.js +0 -66
  68. package/build/generator/json-template.js.map +0 -1
  69. package/build/generator/template.d.ts +0 -8
  70. package/build/generator/template.js +0 -234
  71. package/build/generator/template.js.map +0 -1
  72. package/build/hooks/init.d.ts +0 -3
  73. package/build/hooks/init.js +0 -33
  74. package/build/hooks/init.js.map +0 -1
  75. package/build/index.d.ts +0 -85
  76. package/build/index.js +0 -64
  77. package/build/index.js.map +0 -1
  78. package/build/internal.d.ts +0 -5
  79. package/build/internal.js +0 -25
  80. package/build/internal.js.map +0 -1
  81. package/build/misc/deprecation.d.ts +0 -0
  82. package/build/misc/deprecation.js +0 -2
  83. package/build/misc/deprecation.js.map +0 -1
  84. package/build/misc/flag_cn.d.ts +0 -56
  85. package/build/misc/flag_cn.js +0 -154
  86. package/build/misc/flag_cn.js.map +0 -1
  87. package/build/provider/BlackSSLProvider.d.ts +0 -11
  88. package/build/provider/BlackSSLProvider.js +0 -93
  89. package/build/provider/BlackSSLProvider.js.map +0 -1
  90. package/build/provider/ClashProvider.d.ts +0 -24
  91. package/build/provider/ClashProvider.js +0 -476
  92. package/build/provider/ClashProvider.js.map +0 -1
  93. package/build/provider/CustomProvider.d.ts +0 -10
  94. package/build/provider/CustomProvider.js +0 -144
  95. package/build/provider/CustomProvider.js.map +0 -1
  96. package/build/provider/Provider.d.ts +0 -17
  97. package/build/provider/Provider.js +0 -111
  98. package/build/provider/Provider.js.map +0 -1
  99. package/build/provider/ShadowsocksJsonSubscribeProvider.d.ts +0 -11
  100. package/build/provider/ShadowsocksJsonSubscribeProvider.js +0 -86
  101. package/build/provider/ShadowsocksJsonSubscribeProvider.js.map +0 -1
  102. package/build/provider/ShadowsocksSubscribeProvider.d.ts +0 -18
  103. package/build/provider/ShadowsocksSubscribeProvider.js +0 -84
  104. package/build/provider/ShadowsocksSubscribeProvider.js.map +0 -1
  105. package/build/provider/ShadowsocksrSubscribeProvider.d.ts +0 -15
  106. package/build/provider/ShadowsocksrSubscribeProvider.js +0 -93
  107. package/build/provider/ShadowsocksrSubscribeProvider.js.map +0 -1
  108. package/build/provider/SsdProvider.d.ts +0 -39
  109. package/build/provider/SsdProvider.js +0 -138
  110. package/build/provider/SsdProvider.js.map +0 -1
  111. package/build/provider/TrojanProvider.d.ts +0 -24
  112. package/build/provider/TrojanProvider.js +0 -98
  113. package/build/provider/TrojanProvider.js.map +0 -1
  114. package/build/provider/V2rayNSubscribeProvider.d.ts +0 -25
  115. package/build/provider/V2rayNSubscribeProvider.js +0 -181
  116. package/build/provider/V2rayNSubscribeProvider.js.map +0 -1
  117. package/build/provider/index.d.ts +0 -17
  118. package/build/provider/index.js +0 -54
  119. package/build/provider/index.js.map +0 -1
  120. package/build/provider/types.d.ts +0 -18
  121. package/build/provider/types.js +0 -3
  122. package/build/provider/types.js.map +0 -1
  123. package/build/redis.d.ts +0 -9
  124. package/build/redis.js +0 -63
  125. package/build/redis.js.map +0 -1
  126. package/build/types.d.ts +0 -138
  127. package/build/types.js +0 -31
  128. package/build/types.js.map +0 -1
  129. package/build/utils/cache.d.ts +0 -23
  130. package/build/utils/cache.js +0 -98
  131. package/build/utils/cache.js.map +0 -1
  132. package/build/utils/clash.d.ts +0 -3
  133. package/build/utils/clash.js +0 -448
  134. package/build/utils/clash.js.map +0 -1
  135. package/build/utils/constant.d.ts +0 -1
  136. package/build/utils/constant.js +0 -19
  137. package/build/utils/constant.js.map +0 -1
  138. package/build/utils/dns.d.ts +0 -4
  139. package/build/utils/dns.js +0 -51
  140. package/build/utils/dns.js.map +0 -1
  141. package/build/utils/doctor.d.ts +0 -2
  142. package/build/utils/doctor.js +0 -38
  143. package/build/utils/doctor.js.map +0 -1
  144. package/build/utils/env-flag.d.ts +0 -9
  145. package/build/utils/env-flag.js +0 -41
  146. package/build/utils/env-flag.js.map +0 -1
  147. package/build/utils/error-helper.d.ts +0 -2
  148. package/build/utils/error-helper.js +0 -62
  149. package/build/utils/error-helper.js.map +0 -1
  150. package/build/utils/errors.d.ts +0 -19
  151. package/build/utils/errors.js +0 -60
  152. package/build/utils/errors.js.map +0 -1
  153. package/build/utils/flag.d.ts +0 -3
  154. package/build/utils/flag.js +0 -79
  155. package/build/utils/flag.js.map +0 -1
  156. package/build/utils/http-client.d.ts +0 -3
  157. package/build/utils/http-client.js +0 -82
  158. package/build/utils/http-client.js.map +0 -1
  159. package/build/utils/index.d.ts +0 -90
  160. package/build/utils/index.js +0 -529
  161. package/build/utils/index.js.map +0 -1
  162. package/build/utils/linter.d.ts +0 -4
  163. package/build/utils/linter.js +0 -49
  164. package/build/utils/linter.js.map +0 -1
  165. package/build/utils/loon.d.ts +0 -3
  166. package/build/utils/loon.js +0 -236
  167. package/build/utils/loon.js.map +0 -1
  168. package/build/utils/quantumult.d.ts +0 -6
  169. package/build/utils/quantumult.js +0 -240
  170. package/build/utils/quantumult.js.map +0 -1
  171. package/build/utils/relayable-url.d.ts +0 -1
  172. package/build/utils/relayable-url.js +0 -18
  173. package/build/utils/relayable-url.js.map +0 -1
  174. package/build/utils/remote-snippet.d.ts +0 -8
  175. package/build/utils/remote-snippet.js +0 -198
  176. package/build/utils/remote-snippet.js.map +0 -1
  177. package/build/utils/singbox.d.ts +0 -3
  178. package/build/utils/singbox.js +0 -377
  179. package/build/utils/singbox.js.map +0 -1
  180. package/build/utils/ss.d.ts +0 -3
  181. package/build/utils/ss.js +0 -97
  182. package/build/utils/ss.js.map +0 -1
  183. package/build/utils/ssr.d.ts +0 -7
  184. package/build/utils/ssr.js +0 -53
  185. package/build/utils/ssr.js.map +0 -1
  186. package/build/utils/subscription.d.ts +0 -11
  187. package/build/utils/subscription.js +0 -68
  188. package/build/utils/subscription.js.map +0 -1
  189. package/build/utils/surfboard.d.ts +0 -7
  190. package/build/utils/surfboard.js +0 -184
  191. package/build/utils/surfboard.js.map +0 -1
  192. package/build/utils/surge.d.ts +0 -8
  193. package/build/utils/surge.js +0 -407
  194. package/build/utils/surge.js.map +0 -1
  195. package/build/utils/time.d.ts +0 -1
  196. package/build/utils/time.js +0 -6
  197. package/build/utils/time.js.map +0 -1
  198. package/build/utils/tmp-helper.d.ts +0 -30
  199. package/build/utils/tmp-helper.js +0 -102
  200. package/build/utils/tmp-helper.js.map +0 -1
  201. package/build/utils/trojan.d.ts +0 -2
  202. package/build/utils/trojan.js +0 -38
  203. package/build/utils/trojan.js.map +0 -1
  204. package/build/utils/useragent.d.ts +0 -18
  205. package/build/utils/useragent.js +0 -210
  206. package/build/utils/useragent.js.map +0 -1
  207. package/build/validators/artifact.d.ts +0 -44
  208. package/build/validators/artifact.js +0 -26
  209. package/build/validators/artifact.js.map +0 -1
  210. package/build/validators/common.d.ts +0 -377
  211. package/build/validators/common.js +0 -106
  212. package/build/validators/common.js.map +0 -1
  213. package/build/validators/filter.d.ts +0 -10
  214. package/build/validators/filter.js +0 -15
  215. package/build/validators/filter.js.map +0 -1
  216. package/build/validators/hooks.d.ts +0 -9
  217. package/build/validators/hooks.js +0 -11
  218. package/build/validators/hooks.js.map +0 -1
  219. package/build/validators/http.d.ts +0 -366
  220. package/build/validators/http.js +0 -23
  221. package/build/validators/http.js.map +0 -1
  222. package/build/validators/hysteria2.d.ts +0 -196
  223. package/build/validators/hysteria2.js +0 -15
  224. package/build/validators/hysteria2.js.map +0 -1
  225. package/build/validators/index.d.ts +0 -17
  226. package/build/validators/index.js +0 -34
  227. package/build/validators/index.js.map +0 -1
  228. package/build/validators/provider.d.ts +0 -120
  229. package/build/validators/provider.js +0 -46
  230. package/build/validators/provider.js.map +0 -1
  231. package/build/validators/shadowsocks.d.ts +0 -252
  232. package/build/validators/shadowsocks.js +0 -31
  233. package/build/validators/shadowsocks.js.map +0 -1
  234. package/build/validators/shadowsocksr.d.ts +0 -184
  235. package/build/validators/shadowsocksr.js +0 -19
  236. package/build/validators/shadowsocksr.js.map +0 -1
  237. package/build/validators/snell.d.ts +0 -178
  238. package/build/validators/snell.js +0 -17
  239. package/build/validators/snell.js.map +0 -1
  240. package/build/validators/socks5.d.ts +0 -196
  241. package/build/validators/socks5.js +0 -15
  242. package/build/validators/socks5.js.map +0 -1
  243. package/build/validators/surgio-config.d.ts +0 -387
  244. package/build/validators/surgio-config.js +0 -101
  245. package/build/validators/surgio-config.js.map +0 -1
  246. package/build/validators/trojan.d.ts +0 -255
  247. package/build/validators/trojan.js +0 -16
  248. package/build/validators/trojan.js.map +0 -1
  249. package/build/validators/tuic.d.ts +0 -741
  250. package/build/validators/tuic.js +0 -21
  251. package/build/validators/tuic.js.map +0 -1
  252. package/build/validators/vless.d.ts +0 -389
  253. package/build/validators/vless.js +0 -31
  254. package/build/validators/vless.js.map +0 -1
  255. package/build/validators/vmess.d.ts +0 -425
  256. package/build/validators/vmess.js +0 -86
  257. package/build/validators/vmess.js.map +0 -1
  258. package/build/validators/wireguard.d.ts +0 -230
  259. package/build/validators/wireguard.js +0 -26
  260. package/build/validators/wireguard.js.map +0 -1
@@ -1,370 +0,0 @@
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.Artifact = void 0;
7
- const events_1 = require("events");
8
- const path_1 = __importDefault(require("path"));
9
- const logger_1 = require("@surgio/logger");
10
- const bluebird_1 = __importDefault(require("bluebird"));
11
- const fs_extra_1 = __importDefault(require("fs-extra"));
12
- const lodash_1 = __importDefault(require("lodash"));
13
- const provider_1 = require("../provider");
14
- const types_1 = require("../types");
15
- const utils_1 = require("../utils");
16
- const dns_1 = require("../utils/dns");
17
- const filters_1 = require("../filters");
18
- const flag_1 = require("../utils/flag");
19
- const validators_1 = require("../validators");
20
- const template_1 = require("./template");
21
- const json_template_1 = require("./json-template");
22
- class Artifact extends events_1.EventEmitter {
23
- surgioConfig;
24
- options;
25
- initProgress = 0;
26
- artifact;
27
- providerNameList;
28
- nodeConfigListMap = new Map();
29
- providerMap = new Map();
30
- nodeList = [];
31
- customFilters = {};
32
- netflixFilter = filters_1.internalFilters.netflixFilter;
33
- youtubePremiumFilter = filters_1.internalFilters.youtubePremiumFilter;
34
- constructor(surgioConfig, artifactConfig, options = {}) {
35
- super();
36
- this.surgioConfig = surgioConfig;
37
- this.options = options;
38
- this.artifact = validators_1.ArtifactValidator.parse(artifactConfig);
39
- const mainProviderName = this.artifact.provider;
40
- const combineProviders = this.artifact.combineProviders || [];
41
- this.providerNameList = [mainProviderName].concat(combineProviders);
42
- }
43
- get isReady() {
44
- return this.initProgress === this.providerNameList.length;
45
- }
46
- getRenderContext(extendRenderContext = {}) {
47
- const config = this.surgioConfig;
48
- const gatewayConfig = config.gateway;
49
- const gatewayToken = gatewayConfig?.viewerToken || gatewayConfig?.accessToken;
50
- const { name: artifactName, downloadUrl } = this.artifact;
51
- const { nodeList, netflixFilter, youtubePremiumFilter, customFilters } = this;
52
- const remoteSnippets = lodash_1.default.keyBy(this.options.remoteSnippetList || [], (item) => item.name);
53
- const mergedCustomParams = this.getMergedCustomParams(extendRenderContext);
54
- return {
55
- proxyTestUrl: config.proxyTestUrl,
56
- proxyTestInterval: config.proxyTestInterval,
57
- internetTestUrl: config.internetTestUrl,
58
- internetTestInterval: config.internetTestInterval,
59
- downloadUrl: downloadUrl
60
- ? downloadUrl
61
- : (0, utils_1.getDownloadUrl)(config.urlBase, artifactName, true, gatewayToken),
62
- snippet: (filePath) => {
63
- return (0, template_1.loadLocalSnippet)(config.templateDir, filePath);
64
- },
65
- remoteSnippets,
66
- nodeList,
67
- provider: this.artifact.provider,
68
- providerName: this.artifact.provider,
69
- artifactName,
70
- getDownloadUrl: (name) => (0, utils_1.getDownloadUrl)(config.urlBase, name, true, gatewayToken),
71
- getUrl: (p) => (0, utils_1.getUrl)(config.publicUrl, p, gatewayToken),
72
- getNodeNames: utils_1.getNodeNames,
73
- getClashNodes: utils_1.getClashNodes,
74
- getClashNodeNames: utils_1.getClashNodeNames,
75
- getSingboxNodes: utils_1.getSingboxNodes,
76
- getSingboxNodeNames: utils_1.getSingboxNodeNames,
77
- getSurgeNodes: utils_1.getSurgeNodes,
78
- getSurgeNodeNames: utils_1.getSurgeNodeNames,
79
- getSurgeWireguardNodes: utils_1.getSurgeWireguardNodes,
80
- getSurfboardNodes: utils_1.getSurfboardNodes,
81
- getSurfboardNodeNames: utils_1.getSurfboardNodeNames,
82
- getShadowsocksNodes: utils_1.getShadowsocksNodes,
83
- getShadowsocksNodesJSON: utils_1.getShadowsocksNodesJSON,
84
- getShadowsocksrNodes: utils_1.getShadowsocksrNodes,
85
- getV2rayNNodes: utils_1.getV2rayNNodes,
86
- getQuantumultXNodes: utils_1.getQuantumultXNodes,
87
- getQuantumultXNodeNames: utils_1.getQuantumultXNodeNames,
88
- getLoonNodes: utils_1.getLoonNodes,
89
- getLoonNodeNames: utils_1.getLoonNodeNames,
90
- toUrlSafeBase64: utils_1.toUrlSafeBase64,
91
- toBase64: utils_1.toBase64,
92
- encodeURIComponent,
93
- ...filters_1.internalFilters,
94
- netflixFilter,
95
- youtubePremiumFilter,
96
- customFilters,
97
- customParams: mergedCustomParams,
98
- };
99
- }
100
- async init(params = {}) {
101
- if (this.isReady) {
102
- throw new Error('Artifact 已经初始化完成');
103
- }
104
- this.emit('initArtifact:start', { artifact: this.artifact });
105
- await bluebird_1.default.map(this.providerNameList, async (providerName) => {
106
- await this.providerMapper(providerName, params.getNodeListParams);
107
- }, {
108
- concurrency: (0, utils_1.getNetworkConcurrency)(),
109
- });
110
- this.providerNameList.forEach((providerName) => {
111
- const nodeConfigList = this.nodeConfigListMap.get(providerName);
112
- if (nodeConfigList) {
113
- nodeConfigList.forEach((nodeConfig) => {
114
- if (nodeConfig) {
115
- this.nodeList.push(nodeConfig);
116
- }
117
- });
118
- }
119
- });
120
- this.emit('initArtifact:end', { artifact: this.artifact });
121
- return this;
122
- }
123
- getMergedCustomParams(extendableCustomParams = {}) {
124
- const globalCustomParams = this.surgioConfig.customParams;
125
- const { customParams: artifactCustomParams } = this.artifact;
126
- const merged = lodash_1.default.merge({}, globalCustomParams, artifactCustomParams, extendableCustomParams);
127
- return Object.freeze(merged);
128
- }
129
- render(templateEngine, extendRenderContext) {
130
- if (!this.isReady) {
131
- throw new Error('Artifact 还未初始化');
132
- }
133
- const targetTemplateEngine = templateEngine || this.options.templateEngine;
134
- if (!targetTemplateEngine) {
135
- throw new Error('没有可用的 Nunjucks 环境');
136
- }
137
- if (this.artifact.templateType === 'json' &&
138
- !this.artifact.extendTemplate) {
139
- throw new Error('JSON 模板需要提供 extendTemplate 函数');
140
- }
141
- const renderContext = this.getRenderContext(extendRenderContext);
142
- const { templateString, template, templateType } = this.artifact;
143
- const result = templateString
144
- ? targetTemplateEngine.renderString(templateString, {
145
- templateEngine: targetTemplateEngine,
146
- ...renderContext,
147
- })
148
- : templateType === 'default'
149
- ? targetTemplateEngine.render(`${template}.tpl`, {
150
- templateEngine: targetTemplateEngine,
151
- ...renderContext,
152
- })
153
- : (0, json_template_1.render)(this.surgioConfig.templateDir, `${template}.json`, this.artifact.extendTemplate, renderContext);
154
- this.emit('renderArtifact', { artifact: this.artifact, result });
155
- return result;
156
- }
157
- async providerMapper(providerName, getNodeListParams = {}) {
158
- const config = this.surgioConfig;
159
- const mainProviderName = this.artifact.provider;
160
- const filePath = path_1.default.resolve(config.providerDir, `${providerName}.js`);
161
- this.emit('initProvider:start', {
162
- artifact: this.artifact,
163
- providerName,
164
- });
165
- if (!fs_extra_1.default.existsSync(filePath)) {
166
- throw new Error(`文件 ${filePath} 不存在`);
167
- }
168
- let provider;
169
- let nodeConfigList;
170
- try {
171
- // eslint-disable-next-line prefer-const
172
- provider = await (0, provider_1.getProvider)(providerName, require(filePath));
173
- this.providerMap.set(providerName, provider);
174
- }
175
- catch (err) /* istanbul ignore next */ {
176
- if ((0, utils_1.isSurgioError)(err)) {
177
- err.providerName = providerName;
178
- err.providerPath = filePath;
179
- throw err;
180
- }
181
- else {
182
- throw new utils_1.SurgioError((0, utils_1.isError)(err) ? err.message : '处理 Provider 失败', {
183
- cause: err,
184
- providerName,
185
- providerPath: filePath,
186
- });
187
- }
188
- }
189
- try {
190
- try {
191
- nodeConfigList = await provider.getNodeList(this.getMergedCustomParams(getNodeListParams));
192
- }
193
- catch (err) {
194
- if (provider.config.hooks?.onError && (0, utils_1.isError)(err)) {
195
- const result = await provider.config.hooks.onError(err);
196
- if (Array.isArray(result)) {
197
- const adHocProvider = new provider_1.CustomProvider('ad-hoc', {
198
- type: types_1.SupportProviderEnum.Custom,
199
- nodeList: result,
200
- });
201
- nodeConfigList = await adHocProvider.getNodeList();
202
- }
203
- else {
204
- nodeConfigList = [];
205
- }
206
- }
207
- else {
208
- throw err;
209
- }
210
- }
211
- }
212
- catch (err) /* istanbul ignore next */ {
213
- if ((0, utils_1.isSurgioError)(err)) {
214
- err.providerName = providerName;
215
- err.providerPath = filePath;
216
- throw err;
217
- }
218
- else {
219
- throw new utils_1.SurgioError((0, utils_1.isError)(err) ? err.message : '处理 Provider 失败', {
220
- cause: err,
221
- providerName,
222
- providerPath: filePath,
223
- });
224
- }
225
- }
226
- // Filter 仅使用第一个 Provider 中的定义
227
- if (providerName === mainProviderName) {
228
- if (provider.config.netflixFilter !== undefined) {
229
- this.netflixFilter = provider.config.netflixFilter;
230
- }
231
- if (provider.config.youtubePremiumFilter !== undefined) {
232
- this.youtubePremiumFilter = provider.config.youtubePremiumFilter;
233
- }
234
- this.customFilters = {
235
- ...this.customFilters,
236
- ...config.customFilters,
237
- ...provider.config.customFilters,
238
- };
239
- }
240
- if ((0, filters_1.validateFilter)(provider.config.nodeFilter) &&
241
- typeof provider.config.nodeFilter === 'object' &&
242
- provider.config.nodeFilter.supportSort) {
243
- nodeConfigList = provider.config.nodeFilter.filter(nodeConfigList);
244
- }
245
- nodeConfigList = (await bluebird_1.default.map(nodeConfigList, async (nodeConfig) => {
246
- let isValid = false;
247
- if (nodeConfig.enable === false) {
248
- return undefined;
249
- }
250
- if (!provider.config.nodeFilter) {
251
- isValid = true;
252
- }
253
- else if ((0, filters_1.validateFilter)(provider.config.nodeFilter)) {
254
- isValid =
255
- typeof provider.config.nodeFilter === 'function'
256
- ? provider.config.nodeFilter(nodeConfig)
257
- : true;
258
- }
259
- if (isValid) {
260
- if (config.binPath &&
261
- nodeConfig.type === types_1.NodeTypeEnum.Shadowsocksr &&
262
- config.binPath[nodeConfig.type]) {
263
- nodeConfig.binPath = config.binPath[nodeConfig.type];
264
- nodeConfig.localPort = provider.nextPort;
265
- }
266
- nodeConfig.provider = provider;
267
- nodeConfig.surgeConfig = Object.freeze({
268
- ...config.surgeConfig,
269
- ...nodeConfig.surgeConfig,
270
- });
271
- nodeConfig.clashConfig = Object.freeze({
272
- ...config.clashConfig,
273
- ...nodeConfig.clashConfig,
274
- });
275
- nodeConfig.quantumultXConfig = Object.freeze({
276
- ...config.quantumultXConfig,
277
- ...nodeConfig.quantumultXConfig,
278
- });
279
- nodeConfig.surfboardConfig = Object.freeze({
280
- ...config.surfboardConfig,
281
- ...nodeConfig.surfboardConfig,
282
- });
283
- if (provider.config.renameNode) {
284
- const newName = provider.config.renameNode(nodeConfig.nodeName);
285
- if (newName) {
286
- nodeConfig.nodeName = newName;
287
- }
288
- }
289
- if (provider.config.addFlag) {
290
- // 给节点名加国旗
291
- nodeConfig.nodeName = (0, flag_1.prependFlag)(nodeConfig.nodeName, provider.config.removeExistingFlag);
292
- }
293
- else if (provider.config.removeExistingFlag) {
294
- // 去掉名称中的国旗
295
- nodeConfig.nodeName = (0, flag_1.removeFlag)(nodeConfig.nodeName);
296
- }
297
- // TCP Fast Open
298
- if (typeof nodeConfig.tfo === 'undefined' && provider.config.tfo) {
299
- nodeConfig.tfo = provider.config.tfo;
300
- }
301
- // MPTCP
302
- if (typeof nodeConfig.mptcp === 'undefined' &&
303
- provider.config.mptcp) {
304
- nodeConfig.mptcp = provider.config.mptcp;
305
- }
306
- // ECN
307
- if (typeof nodeConfig.ecn === 'undefined' && provider.config.ecn) {
308
- nodeConfig.ecn = provider.config.ecn;
309
- }
310
- // Block QUIC
311
- if (typeof nodeConfig.blockQuic === 'undefined' &&
312
- provider.config.blockQuic) {
313
- nodeConfig.blockQuic = provider.config.blockQuic;
314
- }
315
- // Underlying Proxy
316
- if (!nodeConfig.underlyingProxy && provider.config.underlyingProxy) {
317
- nodeConfig.underlyingProxy = provider.config.underlyingProxy;
318
- }
319
- // Check whether the hostname resolves in case of blocking clash's node heurestic
320
- if (config?.checkHostname &&
321
- 'hostname' in nodeConfig &&
322
- !(0, utils_1.isIp)(nodeConfig.hostname)) {
323
- try {
324
- const domains = await (0, dns_1.resolveDomain)(nodeConfig.hostname);
325
- /* istanbul ignore next */
326
- if (domains.length < 1) {
327
- logger_1.logger.warn(`DNS 解析结果中 ${nodeConfig.hostname} 未有对应 IP 地址,将忽略该节点`);
328
- return undefined;
329
- } /* istanbul ignore next */
330
- else {
331
- nodeConfig.hostnameIp = domains;
332
- }
333
- }
334
- catch (err) /* istanbul ignore next */ {
335
- logger_1.logger.warn(`${nodeConfig.hostname} 无法解析,将忽略该节点`);
336
- return undefined;
337
- }
338
- }
339
- if (config?.resolveHostname &&
340
- 'hostname' in nodeConfig &&
341
- !(0, utils_1.isIp)(nodeConfig.hostname)) {
342
- /* istanbul ignore next */
343
- if (nodeConfig.hostnameIp) {
344
- nodeConfig.hostname = nodeConfig.hostnameIp[0];
345
- } /* istanbul ignore next */
346
- else {
347
- try {
348
- nodeConfig.hostnameIp = await (0, dns_1.resolveDomain)(nodeConfig.hostname);
349
- nodeConfig.hostname = nodeConfig.hostnameIp[0];
350
- }
351
- catch (err) {
352
- logger_1.logger.warn(`${nodeConfig.hostname} 无法解析,将忽略该域名的解析结果`);
353
- }
354
- }
355
- }
356
- return nodeConfig;
357
- }
358
- return undefined;
359
- })).filter((item) => item !== undefined);
360
- this.nodeConfigListMap.set(providerName, nodeConfigList);
361
- this.initProgress++;
362
- this.emit('initProvider:end', {
363
- artifact: this.artifact,
364
- providerName,
365
- provider,
366
- });
367
- }
368
- }
369
- exports.Artifact = Artifact;
370
- //# sourceMappingURL=artifact.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../src/generator/artifact.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export * from './artifact';
2
- export * from './template';
3
- export { extendOutbounds, extendEndpoints, createExtendFunction, combineExtendFunctions, } from './json-template';
@@ -1,25 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.combineExtendFunctions = exports.createExtendFunction = exports.extendEndpoints = exports.extendOutbounds = void 0;
18
- __exportStar(require("./artifact"), exports);
19
- __exportStar(require("./template"), exports);
20
- var json_template_1 = require("./json-template");
21
- Object.defineProperty(exports, "extendOutbounds", { enumerable: true, get: function () { return json_template_1.extendOutbounds; } });
22
- Object.defineProperty(exports, "extendEndpoints", { enumerable: true, get: function () { return json_template_1.extendEndpoints; } });
23
- Object.defineProperty(exports, "createExtendFunction", { enumerable: true, get: function () { return json_template_1.createExtendFunction; } });
24
- Object.defineProperty(exports, "combineExtendFunctions", { enumerable: true, get: function () { return json_template_1.combineExtendFunctions; } });
25
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,6CAA0B;AAC1B,iDAKwB;AAJtB,gHAAA,eAAe,OAAA;AACf,gHAAA,eAAe,OAAA;AACf,qHAAA,oBAAoB,OAAA;AACpB,uHAAA,sBAAsB,OAAA"}
@@ -1,11 +0,0 @@
1
- import { JsonObject } from 'type-fest';
2
- type ExtendContext = Record<string, any>;
3
- type PremitiveValue = string | number | boolean;
4
- type ExtendValue = JsonObject[] | JsonObject | PremitiveValue[] | PremitiveValue | ((extendContext: ExtendContext) => JsonObject[] | JsonObject | PremitiveValue[] | PremitiveValue);
5
- type ExtendFunction = (extendValue: ExtendValue) => (jsonInput: JsonObject, extendContext?: ExtendContext) => JsonObject;
6
- export declare const createExtendFunction: (extendKey: string) => ExtendFunction;
7
- export declare const extendOutbounds: ExtendFunction;
8
- export declare const extendEndpoints: ExtendFunction;
9
- export declare const combineExtendFunctions: (...args: ReturnType<ExtendFunction>[]) => ReturnType<ExtendFunction>;
10
- export declare const render: (templateDir: string, fileName: string, extend: (...args: any[]) => any, extendContext: ExtendContext) => string;
11
- export {};
@@ -1,66 +0,0 @@
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.render = exports.combineExtendFunctions = exports.extendEndpoints = exports.extendOutbounds = exports.createExtendFunction = void 0;
7
- const path_1 = require("path");
8
- const lodash_1 = __importDefault(require("lodash"));
9
- const fs_extra_1 = __importDefault(require("fs-extra"));
10
- const createExtendFunction = (extendKey) => {
11
- const extendFunction = (extendValue) => {
12
- return (jsonInput, extendContext = {}) => {
13
- const jsonInputCopy = lodash_1.default.cloneDeep(jsonInput);
14
- const isExist = lodash_1.default.get(jsonInputCopy, extendKey);
15
- const extendValueIsFunction = lodash_1.default.isFunction(extendValue);
16
- const valueToExtend = extendValueIsFunction
17
- ? extendValue(extendContext)
18
- : extendValue;
19
- if (isExist) {
20
- if (lodash_1.default.isArray(isExist)) {
21
- if (lodash_1.default.isArray(valueToExtend)) {
22
- lodash_1.default.set(jsonInputCopy, extendKey, [...isExist, ...valueToExtend]);
23
- }
24
- else {
25
- lodash_1.default.set(jsonInputCopy, extendKey, [...isExist, valueToExtend]);
26
- }
27
- }
28
- else {
29
- lodash_1.default.set(jsonInputCopy, extendKey, valueToExtend);
30
- }
31
- }
32
- else {
33
- lodash_1.default.set(jsonInputCopy, extendKey, valueToExtend);
34
- }
35
- return jsonInputCopy;
36
- };
37
- };
38
- return extendFunction;
39
- };
40
- exports.createExtendFunction = createExtendFunction;
41
- exports.extendOutbounds = (0, exports.createExtendFunction)('outbounds');
42
- exports.extendEndpoints = (0, exports.createExtendFunction)('endpoints');
43
- const combineExtendFunctions = (...args) => {
44
- return (jsonInput, extendContext = {}) => {
45
- return args.reduce((acc, extend) => extend(acc, extendContext), jsonInput);
46
- };
47
- };
48
- exports.combineExtendFunctions = combineExtendFunctions;
49
- const render = (templateDir, fileName, extend, extendContext) => {
50
- const templatePath = (0, path_1.join)(templateDir, fileName);
51
- const jsonInput = fs_extra_1.default.readJsonSync(templatePath);
52
- try {
53
- const jsonOutput = extend(jsonInput, extendContext);
54
- return JSON.stringify(jsonOutput, null, 2);
55
- }
56
- catch (error) {
57
- // istanbul ignore next
58
- if (error instanceof Error) {
59
- throw new Error(`Error when rendering JSON template ${fileName}: ${error.message}`);
60
- }
61
- // istanbul ignore next
62
- throw new Error(`Error when rendering JSON template ${fileName}`);
63
- }
64
- };
65
- exports.render = render;
66
- //# sourceMappingURL=json-template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json-template.js","sourceRoot":"","sources":["../../src/generator/json-template.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import nunjucks from 'nunjucks';
2
- import { ClashCoreType, RemoteSnippet } from '../types';
3
- export declare function getEngine(templateDir: string, options?: {
4
- clashCore?: ClashCoreType;
5
- }): nunjucks.Environment;
6
- export declare const convertSurgeScriptRuleToQuantumultXRewriteRule: (str: string) => string;
7
- export declare const convertNewSurgeScriptRuleToQuantumultXRewriteRule: (str: string) => string;
8
- export declare const loadLocalSnippet: (cwd: string, relativeFilePath?: string) => RemoteSnippet;