surgio 3.0.0 → 3.0.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.
- package/build/filters/classes.d.ts +13 -0
- package/build/filters/classes.js +42 -0
- package/build/filters/classes.js.map +1 -0
- package/build/filters/filters.d.ts +22 -0
- package/build/filters/filters.js +93 -0
- package/build/filters/filters.js.map +1 -0
- package/build/filters/index.d.ts +2 -0
- package/build/filters/index.js +32 -0
- package/build/filters/index.js.map +1 -0
- package/build/filters/utils.d.ts +16 -0
- package/build/filters/utils.js +159 -0
- package/build/filters/utils.js.map +1 -0
- package/build/generator/artifact.d.ts +32 -31
- package/build/generator/artifact.js +7 -25
- package/build/generator/artifact.js.map +1 -1
- package/build/index.d.ts +1 -4
- package/build/index.js +4 -2
- package/build/index.js.map +1 -1
- package/build/utils/clash.js +2 -2
- package/build/utils/clash.js.map +1 -1
- package/build/utils/index.js +2 -2
- package/build/utils/index.js.map +1 -1
- package/build/utils/loon.js +10 -9
- package/build/utils/loon.js.map +1 -1
- package/build/utils/quantumult.js +3 -3
- package/build/utils/quantumult.js.map +1 -1
- package/build/utils/surfboard.js +3 -3
- package/build/utils/surfboard.js.map +1 -1
- package/build/utils/surge.js +9 -7
- package/build/utils/surge.js.map +1 -1
- package/package.json +1 -1
- package/build/utils/filter.d.ts +0 -49
- package/build/utils/filter.js +0 -280
- package/build/utils/filter.js.map +0 -1
package/build/utils/filter.js
DELETED
|
@@ -1,280 +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.wireguardFilter = exports.socks5Filter = exports.trojanFilter = exports.httpsFilter = exports.httpFilter = exports.tuicFilter = exports.snellFilter = exports.v2rayFilter = exports.vmessFilter = exports.shadowsocksrFilter = exports.shadowsocksFilter = exports.matchGlob = exports.youtubePremiumFilter = exports.chinaOutFilter = exports.chinaBackFilter = exports.taiwanFilter = exports.singaporeFilter = exports.koreaFilter = exports.japanFilter = exports.hkFilter = exports.usFilter = exports.netflixFilter = exports.mergeReversedFilters = exports.reverseFilter = exports.mergeSortedFilters = exports.useSortedKeywords = exports.discardProviders = exports.useProviders = exports.discardGlob = exports.useGlob = exports.useRegexp = exports.discardKeywords = exports.useKeywords = exports.mergeFilters = exports.applyFilter = exports.validateFilter = exports.SortFilterWithSortedKeywords = exports.SortFilterWithSortedFilters = void 0;
|
|
7
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
-
const micromatch_1 = __importDefault(require("micromatch"));
|
|
9
|
-
const flag_cn_1 = require("../misc/flag_cn");
|
|
10
|
-
const types_1 = require("../types");
|
|
11
|
-
// tslint:disable-next-line:max-classes-per-file
|
|
12
|
-
class SortFilterWithSortedFilters {
|
|
13
|
-
_filters;
|
|
14
|
-
supportSort = true;
|
|
15
|
-
constructor(_filters) {
|
|
16
|
-
this._filters = _filters;
|
|
17
|
-
this.filter.bind(this);
|
|
18
|
-
}
|
|
19
|
-
filter(nodeList) {
|
|
20
|
-
const result = [];
|
|
21
|
-
this._filters.forEach((filter) => {
|
|
22
|
-
result.push(...nodeList.filter(filter));
|
|
23
|
-
});
|
|
24
|
-
return lodash_1.default.uniqBy(result, (node) => node.nodeName);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
exports.SortFilterWithSortedFilters = SortFilterWithSortedFilters;
|
|
28
|
-
// tslint:disable-next-line:max-classes-per-file
|
|
29
|
-
class SortFilterWithSortedKeywords {
|
|
30
|
-
_keywords;
|
|
31
|
-
supportSort = true;
|
|
32
|
-
constructor(_keywords) {
|
|
33
|
-
this._keywords = _keywords;
|
|
34
|
-
this.filter.bind(this);
|
|
35
|
-
}
|
|
36
|
-
filter(nodeList) {
|
|
37
|
-
const result = [];
|
|
38
|
-
this._keywords.forEach((keyword) => {
|
|
39
|
-
result.push(...nodeList.filter((node) => node.nodeName.includes(keyword)));
|
|
40
|
-
});
|
|
41
|
-
return lodash_1.default.uniqBy(result, (node) => node.nodeName);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
exports.SortFilterWithSortedKeywords = SortFilterWithSortedKeywords;
|
|
45
|
-
const validateFilter = (filter) => {
|
|
46
|
-
if (filter === null || filter === undefined) {
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
if (typeof filter === 'function') {
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
return (typeof filter === 'object' &&
|
|
53
|
-
'supportSort' in filter &&
|
|
54
|
-
'filter' in filter &&
|
|
55
|
-
typeof filter.supportSort === 'boolean' &&
|
|
56
|
-
typeof filter.filter === 'function');
|
|
57
|
-
};
|
|
58
|
-
exports.validateFilter = validateFilter;
|
|
59
|
-
const applyFilter = (nodeList, filter) => {
|
|
60
|
-
// istanbul ignore next
|
|
61
|
-
if (filter && !(0, exports.validateFilter)(filter)) {
|
|
62
|
-
throw new Error(`使用了无效的过滤器 ${filter}`);
|
|
63
|
-
}
|
|
64
|
-
let newNodeList = nodeList.filter((item) => {
|
|
65
|
-
// Only checks the enable property when it's present, default to true
|
|
66
|
-
const isEnabled = item.enable !== false;
|
|
67
|
-
if (filter && typeof filter === 'function') {
|
|
68
|
-
return filter(item) && isEnabled;
|
|
69
|
-
}
|
|
70
|
-
return isEnabled;
|
|
71
|
-
});
|
|
72
|
-
if (filter &&
|
|
73
|
-
typeof filter === 'object' &&
|
|
74
|
-
typeof filter.filter === 'function') {
|
|
75
|
-
newNodeList = filter.filter(newNodeList);
|
|
76
|
-
}
|
|
77
|
-
return newNodeList;
|
|
78
|
-
};
|
|
79
|
-
exports.applyFilter = applyFilter;
|
|
80
|
-
const mergeFilters = (filters, isStrict) => {
|
|
81
|
-
filters.forEach((filter) => {
|
|
82
|
-
if ('supportSort' in filter && filter.supportSort) {
|
|
83
|
-
throw new Error('mergeFilters 不支持包含排序功能的过滤器');
|
|
84
|
-
}
|
|
85
|
-
// istanbul ignore next
|
|
86
|
-
if (typeof filter !== 'function') {
|
|
87
|
-
throw new Error('mergeFilters 传入了无效的过滤器');
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
return (item) => {
|
|
91
|
-
return filters[isStrict ? 'every' : 'some']((filter) => filter(item));
|
|
92
|
-
};
|
|
93
|
-
};
|
|
94
|
-
exports.mergeFilters = mergeFilters;
|
|
95
|
-
const useKeywords = (keywords, isStrict) => {
|
|
96
|
-
// istanbul ignore next
|
|
97
|
-
if (!Array.isArray(keywords)) {
|
|
98
|
-
throw new Error('keywords 请使用数组');
|
|
99
|
-
}
|
|
100
|
-
return (item) => keywords[isStrict ? 'every' : 'some']((keyword) => item.nodeName.includes(keyword));
|
|
101
|
-
};
|
|
102
|
-
exports.useKeywords = useKeywords;
|
|
103
|
-
const discardKeywords = (keywords, isStrict) => {
|
|
104
|
-
// istanbul ignore next
|
|
105
|
-
if (!Array.isArray(keywords)) {
|
|
106
|
-
throw new Error('keywords 请使用数组');
|
|
107
|
-
}
|
|
108
|
-
return (item) => !keywords[isStrict ? 'every' : 'some']((keyword) => item.nodeName.includes(keyword));
|
|
109
|
-
};
|
|
110
|
-
exports.discardKeywords = discardKeywords;
|
|
111
|
-
const useRegexp = (regexp) => {
|
|
112
|
-
// istanbul ignore next
|
|
113
|
-
if (!lodash_1.default.isRegExp(regexp)) {
|
|
114
|
-
throw new Error('入参不是一个合法的正则表达式');
|
|
115
|
-
}
|
|
116
|
-
return (item) => regexp.test(item.nodeName);
|
|
117
|
-
};
|
|
118
|
-
exports.useRegexp = useRegexp;
|
|
119
|
-
const useGlob = (glob) => {
|
|
120
|
-
return (item) => (0, exports.matchGlob)(item.nodeName, glob);
|
|
121
|
-
};
|
|
122
|
-
exports.useGlob = useGlob;
|
|
123
|
-
const discardGlob = (glob) => {
|
|
124
|
-
return (item) => !(0, exports.matchGlob)(item.nodeName, glob);
|
|
125
|
-
};
|
|
126
|
-
exports.discardGlob = discardGlob;
|
|
127
|
-
const useProviders = (keywords, isStrict = true) => {
|
|
128
|
-
// istanbul ignore next
|
|
129
|
-
if (!Array.isArray(keywords)) {
|
|
130
|
-
throw new Error('keywords 请使用数组');
|
|
131
|
-
}
|
|
132
|
-
return (item) => keywords.some((keyword) => isStrict
|
|
133
|
-
? item?.provider?.name === keyword
|
|
134
|
-
: item?.provider?.name.includes(keyword));
|
|
135
|
-
};
|
|
136
|
-
exports.useProviders = useProviders;
|
|
137
|
-
const discardProviders = (keywords, isStrict = true) => {
|
|
138
|
-
// istanbul ignore next
|
|
139
|
-
if (!Array.isArray(keywords)) {
|
|
140
|
-
throw new Error('keywords 请使用数组');
|
|
141
|
-
}
|
|
142
|
-
return (item) => !keywords.some((keyword) => isStrict
|
|
143
|
-
? item?.provider?.name === keyword
|
|
144
|
-
: item?.provider?.name.includes(keyword));
|
|
145
|
-
};
|
|
146
|
-
exports.discardProviders = discardProviders;
|
|
147
|
-
const useSortedKeywords = (keywords) => {
|
|
148
|
-
// istanbul ignore next
|
|
149
|
-
if (!Array.isArray(keywords)) {
|
|
150
|
-
throw new Error('keywords 请使用数组');
|
|
151
|
-
}
|
|
152
|
-
return new SortFilterWithSortedKeywords(keywords);
|
|
153
|
-
};
|
|
154
|
-
exports.useSortedKeywords = useSortedKeywords;
|
|
155
|
-
const mergeSortedFilters = (filters) => {
|
|
156
|
-
filters.forEach((filter) => {
|
|
157
|
-
if ('supportSort' in filter && filter.supportSort) {
|
|
158
|
-
throw new Error('mergeSortedFilters 不支持包含排序功能的过滤器');
|
|
159
|
-
}
|
|
160
|
-
// istanbul ignore next
|
|
161
|
-
if (typeof filter !== 'function') {
|
|
162
|
-
throw new Error('mergeSortedFilters 传入了无效的过滤器');
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
return new SortFilterWithSortedFilters(filters);
|
|
166
|
-
};
|
|
167
|
-
exports.mergeSortedFilters = mergeSortedFilters;
|
|
168
|
-
const reverseFilter = (filter) => {
|
|
169
|
-
if ('supportSort' in filter && filter.supportSort) {
|
|
170
|
-
throw new Error('reverseFilter 不支持包含排序功能的过滤器');
|
|
171
|
-
}
|
|
172
|
-
return (item) => !filter(item);
|
|
173
|
-
};
|
|
174
|
-
exports.reverseFilter = reverseFilter;
|
|
175
|
-
const mergeReversedFilters = (filters, isStrict) => {
|
|
176
|
-
filters.forEach((filter) => {
|
|
177
|
-
if ('supportSort' in filter && filter.supportSort) {
|
|
178
|
-
throw new Error('mergeReversedFilters 不支持包含排序功能的过滤器');
|
|
179
|
-
}
|
|
180
|
-
// istanbul ignore next
|
|
181
|
-
if (typeof filter !== 'function') {
|
|
182
|
-
throw new Error('mergeReversedFilters 传入了无效的过滤器');
|
|
183
|
-
}
|
|
184
|
-
});
|
|
185
|
-
return (item) => {
|
|
186
|
-
return filters[isStrict ? 'some' : 'every']((filter) => filter(item));
|
|
187
|
-
};
|
|
188
|
-
};
|
|
189
|
-
exports.mergeReversedFilters = mergeReversedFilters;
|
|
190
|
-
const netflixFilter = (item) => {
|
|
191
|
-
return ['netflix', 'nf', 'hkbn', 'hkt', 'hgc', 'nbu'].some((key) => item.nodeName.toLowerCase().includes(key));
|
|
192
|
-
};
|
|
193
|
-
exports.netflixFilter = netflixFilter;
|
|
194
|
-
const usFilter = (item) => {
|
|
195
|
-
return ['🇺🇸', ...flag_cn_1.FLAGS['🇺🇸']].some((key) => item.nodeName.toUpperCase().includes(key));
|
|
196
|
-
};
|
|
197
|
-
exports.usFilter = usFilter;
|
|
198
|
-
const hkFilter = (item) => {
|
|
199
|
-
return ['🇭🇰', ...flag_cn_1.FLAGS['🇭🇰']].some((key) => item.nodeName.toUpperCase().includes(key));
|
|
200
|
-
};
|
|
201
|
-
exports.hkFilter = hkFilter;
|
|
202
|
-
const japanFilter = (item) => {
|
|
203
|
-
return ['🇯🇵', ...flag_cn_1.FLAGS['🇯🇵']].some((key) => item.nodeName.toUpperCase().includes(key));
|
|
204
|
-
};
|
|
205
|
-
exports.japanFilter = japanFilter;
|
|
206
|
-
const koreaFilter = (item) => {
|
|
207
|
-
return ['🇰🇷', ...flag_cn_1.FLAGS['🇰🇷']].some((key) => item.nodeName.toUpperCase().includes(key));
|
|
208
|
-
};
|
|
209
|
-
exports.koreaFilter = koreaFilter;
|
|
210
|
-
const singaporeFilter = (item) => {
|
|
211
|
-
return ['🇸🇬', ...flag_cn_1.FLAGS['🇸🇬']].some((key) => item.nodeName.toUpperCase().includes(key));
|
|
212
|
-
};
|
|
213
|
-
exports.singaporeFilter = singaporeFilter;
|
|
214
|
-
const taiwanFilter = (item) => {
|
|
215
|
-
return ['🇹🇼', ...flag_cn_1.TAIWAN].some((key) => item.nodeName.toUpperCase().includes(key));
|
|
216
|
-
};
|
|
217
|
-
exports.taiwanFilter = taiwanFilter;
|
|
218
|
-
const chinaBackFilter = (item) => {
|
|
219
|
-
return [
|
|
220
|
-
'回国',
|
|
221
|
-
'Back',
|
|
222
|
-
'中国上海',
|
|
223
|
-
'中国北京',
|
|
224
|
-
'中国徐州',
|
|
225
|
-
'中国深圳',
|
|
226
|
-
'中国枣庄',
|
|
227
|
-
'中国郑州',
|
|
228
|
-
'硅谷上海',
|
|
229
|
-
'东京上海',
|
|
230
|
-
'GCX',
|
|
231
|
-
].some((key) => item.nodeName.includes(key));
|
|
232
|
-
};
|
|
233
|
-
exports.chinaBackFilter = chinaBackFilter;
|
|
234
|
-
exports.chinaOutFilter = (0, exports.reverseFilter)(exports.chinaBackFilter);
|
|
235
|
-
exports.youtubePremiumFilter = (0, exports.mergeFilters)([
|
|
236
|
-
exports.usFilter,
|
|
237
|
-
exports.japanFilter,
|
|
238
|
-
exports.koreaFilter,
|
|
239
|
-
exports.hkFilter,
|
|
240
|
-
exports.singaporeFilter,
|
|
241
|
-
exports.taiwanFilter,
|
|
242
|
-
]);
|
|
243
|
-
const matchGlob = (str, glob) => {
|
|
244
|
-
return micromatch_1.default.contains(str, glob);
|
|
245
|
-
};
|
|
246
|
-
exports.matchGlob = matchGlob;
|
|
247
|
-
// istanbul ignore next
|
|
248
|
-
const shadowsocksFilter = (item) => item.type === types_1.NodeTypeEnum.Shadowsocks;
|
|
249
|
-
exports.shadowsocksFilter = shadowsocksFilter;
|
|
250
|
-
// istanbul ignore next
|
|
251
|
-
const shadowsocksrFilter = (item) => item.type === types_1.NodeTypeEnum.Shadowsocksr;
|
|
252
|
-
exports.shadowsocksrFilter = shadowsocksrFilter;
|
|
253
|
-
// istanbul ignore next
|
|
254
|
-
const vmessFilter = (item) => item.type === types_1.NodeTypeEnum.Vmess;
|
|
255
|
-
exports.vmessFilter = vmessFilter;
|
|
256
|
-
// istanbul ignore next
|
|
257
|
-
const v2rayFilter = (item) => item.type === types_1.NodeTypeEnum.Vmess;
|
|
258
|
-
exports.v2rayFilter = v2rayFilter;
|
|
259
|
-
// istanbul ignore next
|
|
260
|
-
const snellFilter = (item) => item.type === types_1.NodeTypeEnum.Snell;
|
|
261
|
-
exports.snellFilter = snellFilter;
|
|
262
|
-
// istanbul ignore next
|
|
263
|
-
const tuicFilter = (item) => item.type === types_1.NodeTypeEnum.Tuic;
|
|
264
|
-
exports.tuicFilter = tuicFilter;
|
|
265
|
-
// istanbul ignore next
|
|
266
|
-
const httpFilter = (item) => item.type === types_1.NodeTypeEnum.HTTP;
|
|
267
|
-
exports.httpFilter = httpFilter;
|
|
268
|
-
// istanbul ignore next
|
|
269
|
-
const httpsFilter = (item) => item.type === types_1.NodeTypeEnum.HTTPS;
|
|
270
|
-
exports.httpsFilter = httpsFilter;
|
|
271
|
-
// istanbul ignore next
|
|
272
|
-
const trojanFilter = (item) => item.type === types_1.NodeTypeEnum.Trojan;
|
|
273
|
-
exports.trojanFilter = trojanFilter;
|
|
274
|
-
// istanbul ignore next
|
|
275
|
-
const socks5Filter = (item) => item.type === types_1.NodeTypeEnum.Socks5;
|
|
276
|
-
exports.socks5Filter = socks5Filter;
|
|
277
|
-
// istanbul ignore next
|
|
278
|
-
const wireguardFilter = (item) => item.type === types_1.NodeTypeEnum.Wireguard;
|
|
279
|
-
exports.wireguardFilter = wireguardFilter;
|
|
280
|
-
//# sourceMappingURL=filter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/utils/filter.ts"],"names":[],"mappings":"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"}
|