surgio 3.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,13 @@
1
+ import { NodeFilterType, SortedNodeFilterType, PossibleNodeConfigType } from '../types';
2
+ export declare class SortFilterWithSortedFilters implements SortedNodeFilterType {
3
+ _filters: Array<NodeFilterType>;
4
+ readonly supportSort = true;
5
+ constructor(_filters: Array<NodeFilterType>);
6
+ filter<T extends PossibleNodeConfigType>(nodeList: ReadonlyArray<T>): ReadonlyArray<T>;
7
+ }
8
+ export declare class SortFilterWithSortedKeywords implements SortedNodeFilterType {
9
+ _keywords: Array<string>;
10
+ readonly supportSort = true;
11
+ constructor(_keywords: Array<string>);
12
+ filter<T extends PossibleNodeConfigType>(nodeList: ReadonlyArray<T>): ReadonlyArray<T>;
13
+ }
@@ -0,0 +1,42 @@
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.SortFilterWithSortedKeywords = exports.SortFilterWithSortedFilters = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ // tslint:disable-next-line:max-classes-per-file
9
+ class SortFilterWithSortedFilters {
10
+ _filters;
11
+ supportSort = true;
12
+ constructor(_filters) {
13
+ this._filters = _filters;
14
+ this.filter.bind(this);
15
+ }
16
+ filter(nodeList) {
17
+ const result = [];
18
+ this._filters.forEach((filter) => {
19
+ result.push(...nodeList.filter(filter));
20
+ });
21
+ return lodash_1.default.uniqBy(result, (node) => node.nodeName);
22
+ }
23
+ }
24
+ exports.SortFilterWithSortedFilters = SortFilterWithSortedFilters;
25
+ // tslint:disable-next-line:max-classes-per-file
26
+ class SortFilterWithSortedKeywords {
27
+ _keywords;
28
+ supportSort = true;
29
+ constructor(_keywords) {
30
+ this._keywords = _keywords;
31
+ this.filter.bind(this);
32
+ }
33
+ filter(nodeList) {
34
+ const result = [];
35
+ this._keywords.forEach((keyword) => {
36
+ result.push(...nodeList.filter((node) => node.nodeName.includes(keyword)));
37
+ });
38
+ return lodash_1.default.uniqBy(result, (node) => node.nodeName);
39
+ }
40
+ }
41
+ exports.SortFilterWithSortedKeywords = SortFilterWithSortedKeywords;
42
+ //# sourceMappingURL=classes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classes.js","sourceRoot":"","sources":["../../src/filters/classes.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAsB;AAQtB,gDAAgD;AAChD,MAAa,2BAA2B;IAGnB;IAFH,WAAW,GAAG,IAAI,CAAA;IAElC,YAAmB,QAA+B;QAA/B,aAAQ,GAAR,QAAQ,CAAuB;QAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;IAEM,MAAM,CACX,QAA0B;QAE1B,MAAM,MAAM,GAAQ,EAAE,CAAA;QAEtB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;QAEF,OAAO,gBAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAClD,CAAC;CACF;AAlBD,kEAkBC;AAED,gDAAgD;AAChD,MAAa,4BAA4B;IAGpB;IAFH,WAAW,GAAG,IAAI,CAAA;IAElC,YAAmB,SAAwB;QAAxB,cAAS,GAAT,SAAS,CAAe;QACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;IAEM,MAAM,CACX,QAA0B;QAE1B,MAAM,MAAM,GAAQ,EAAE,CAAA;QAEtB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACjC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC5E,CAAC,CAAC,CAAA;QAEF,OAAO,gBAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAClD,CAAC;CACF;AAlBD,oEAkBC"}
@@ -0,0 +1,22 @@
1
+ import { NodeFilterType } from '../types';
2
+ export declare const netflixFilter: NodeFilterType;
3
+ export declare const usFilter: NodeFilterType;
4
+ export declare const hkFilter: NodeFilterType;
5
+ export declare const japanFilter: NodeFilterType;
6
+ export declare const koreaFilter: NodeFilterType;
7
+ export declare const singaporeFilter: NodeFilterType;
8
+ export declare const taiwanFilter: NodeFilterType;
9
+ export declare const chinaBackFilter: NodeFilterType;
10
+ export declare const chinaOutFilter: NodeFilterType;
11
+ export declare const youtubePremiumFilter: NodeFilterType;
12
+ export declare const shadowsocksFilter: NodeFilterType;
13
+ export declare const shadowsocksrFilter: NodeFilterType;
14
+ export declare const vmessFilter: NodeFilterType;
15
+ export declare const v2rayFilter: NodeFilterType;
16
+ export declare const snellFilter: NodeFilterType;
17
+ export declare const tuicFilter: NodeFilterType;
18
+ export declare const httpFilter: NodeFilterType;
19
+ export declare const httpsFilter: NodeFilterType;
20
+ export declare const trojanFilter: NodeFilterType;
21
+ export declare const socks5Filter: NodeFilterType;
22
+ export declare const wireguardFilter: NodeFilterType;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.wireguardFilter = exports.socks5Filter = exports.trojanFilter = exports.httpsFilter = exports.httpFilter = exports.tuicFilter = exports.snellFilter = exports.v2rayFilter = exports.vmessFilter = exports.shadowsocksrFilter = exports.shadowsocksFilter = exports.youtubePremiumFilter = exports.chinaOutFilter = exports.chinaBackFilter = exports.taiwanFilter = exports.singaporeFilter = exports.koreaFilter = exports.japanFilter = exports.hkFilter = exports.usFilter = exports.netflixFilter = void 0;
4
+ const flag_cn_1 = require("../misc/flag_cn");
5
+ const types_1 = require("../types");
6
+ const utils_1 = require("./utils");
7
+ const netflixFilter = (item) => {
8
+ return ['netflix', 'nf', 'hkbn', 'hkt', 'hgc', 'nbu'].some((key) => item.nodeName.toLowerCase().includes(key));
9
+ };
10
+ exports.netflixFilter = netflixFilter;
11
+ const usFilter = (item) => {
12
+ return ['🇺🇸', ...flag_cn_1.FLAGS['🇺🇸']].some((key) => item.nodeName.toUpperCase().includes(key));
13
+ };
14
+ exports.usFilter = usFilter;
15
+ const hkFilter = (item) => {
16
+ return ['🇭🇰', ...flag_cn_1.FLAGS['🇭🇰']].some((key) => item.nodeName.toUpperCase().includes(key));
17
+ };
18
+ exports.hkFilter = hkFilter;
19
+ const japanFilter = (item) => {
20
+ return ['🇯🇵', ...flag_cn_1.FLAGS['🇯🇵']].some((key) => item.nodeName.toUpperCase().includes(key));
21
+ };
22
+ exports.japanFilter = japanFilter;
23
+ const koreaFilter = (item) => {
24
+ return ['🇰🇷', ...flag_cn_1.FLAGS['🇰🇷']].some((key) => item.nodeName.toUpperCase().includes(key));
25
+ };
26
+ exports.koreaFilter = koreaFilter;
27
+ const singaporeFilter = (item) => {
28
+ return ['🇸🇬', ...flag_cn_1.FLAGS['🇸🇬']].some((key) => item.nodeName.toUpperCase().includes(key));
29
+ };
30
+ exports.singaporeFilter = singaporeFilter;
31
+ const taiwanFilter = (item) => {
32
+ return ['🇹🇼', ...flag_cn_1.TAIWAN].some((key) => item.nodeName.toUpperCase().includes(key));
33
+ };
34
+ exports.taiwanFilter = taiwanFilter;
35
+ const chinaBackFilter = (item) => {
36
+ return [
37
+ '回国',
38
+ 'Back',
39
+ '中国上海',
40
+ '中国北京',
41
+ '中国徐州',
42
+ '中国深圳',
43
+ '中国枣庄',
44
+ '中国郑州',
45
+ '硅谷上海',
46
+ '东京上海',
47
+ 'GCX',
48
+ ].some((key) => item.nodeName.includes(key));
49
+ };
50
+ exports.chinaBackFilter = chinaBackFilter;
51
+ exports.chinaOutFilter = (0, utils_1.reverseFilter)(exports.chinaBackFilter);
52
+ exports.youtubePremiumFilter = (0, utils_1.mergeFilters)([
53
+ exports.usFilter,
54
+ exports.japanFilter,
55
+ exports.koreaFilter,
56
+ exports.hkFilter,
57
+ exports.singaporeFilter,
58
+ exports.taiwanFilter,
59
+ ]);
60
+ // istanbul ignore next
61
+ const shadowsocksFilter = (item) => item.type === types_1.NodeTypeEnum.Shadowsocks;
62
+ exports.shadowsocksFilter = shadowsocksFilter;
63
+ // istanbul ignore next
64
+ const shadowsocksrFilter = (item) => item.type === types_1.NodeTypeEnum.Shadowsocksr;
65
+ exports.shadowsocksrFilter = shadowsocksrFilter;
66
+ // istanbul ignore next
67
+ const vmessFilter = (item) => item.type === types_1.NodeTypeEnum.Vmess;
68
+ exports.vmessFilter = vmessFilter;
69
+ // istanbul ignore next
70
+ const v2rayFilter = (item) => item.type === types_1.NodeTypeEnum.Vmess;
71
+ exports.v2rayFilter = v2rayFilter;
72
+ // istanbul ignore next
73
+ const snellFilter = (item) => item.type === types_1.NodeTypeEnum.Snell;
74
+ exports.snellFilter = snellFilter;
75
+ // istanbul ignore next
76
+ const tuicFilter = (item) => item.type === types_1.NodeTypeEnum.Tuic;
77
+ exports.tuicFilter = tuicFilter;
78
+ // istanbul ignore next
79
+ const httpFilter = (item) => item.type === types_1.NodeTypeEnum.HTTP;
80
+ exports.httpFilter = httpFilter;
81
+ // istanbul ignore next
82
+ const httpsFilter = (item) => item.type === types_1.NodeTypeEnum.HTTPS;
83
+ exports.httpsFilter = httpsFilter;
84
+ // istanbul ignore next
85
+ const trojanFilter = (item) => item.type === types_1.NodeTypeEnum.Trojan;
86
+ exports.trojanFilter = trojanFilter;
87
+ // istanbul ignore next
88
+ const socks5Filter = (item) => item.type === types_1.NodeTypeEnum.Socks5;
89
+ exports.socks5Filter = socks5Filter;
90
+ // istanbul ignore next
91
+ const wireguardFilter = (item) => item.type === types_1.NodeTypeEnum.Wireguard;
92
+ exports.wireguardFilter = wireguardFilter;
93
+ //# sourceMappingURL=filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/filters/filters.ts"],"names":[],"mappings":";;;AAAA,6CAA+C;AAC/C,oCAAuD;AACvD,mCAAqD;AAE9C,MAAM,aAAa,GAAmB,CAAC,IAAI,EAAE,EAAE;IACpD,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACjE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC1C,CAAA;AACH,CAAC,CAAA;AAJY,QAAA,aAAa,iBAIzB;AAEM,MAAM,QAAQ,GAAmB,CAAC,IAAI,EAAE,EAAE;IAC/C,OAAO,CAAC,MAAM,EAAE,GAAG,eAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAC7C,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC1C,CAAA;AACH,CAAC,CAAA;AAJY,QAAA,QAAQ,YAIpB;AAEM,MAAM,QAAQ,GAAmB,CAAC,IAAI,EAAE,EAAE;IAC/C,OAAO,CAAC,MAAM,EAAE,GAAG,eAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAC7C,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC1C,CAAA;AACH,CAAC,CAAA;AAJY,QAAA,QAAQ,YAIpB;AAEM,MAAM,WAAW,GAAmB,CAAC,IAAI,EAAE,EAAE;IAClD,OAAO,CAAC,MAAM,EAAE,GAAG,eAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAC7C,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC1C,CAAA;AACH,CAAC,CAAA;AAJY,QAAA,WAAW,eAIvB;AAEM,MAAM,WAAW,GAAmB,CAAC,IAAI,EAAE,EAAE;IAClD,OAAO,CAAC,MAAM,EAAE,GAAG,eAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAC7C,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC1C,CAAA;AACH,CAAC,CAAA;AAJY,QAAA,WAAW,eAIvB;AAEM,MAAM,eAAe,GAAmB,CAAC,IAAI,EAAE,EAAE;IACtD,OAAO,CAAC,MAAM,EAAE,GAAG,eAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAC7C,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC1C,CAAA;AACH,CAAC,CAAA;AAJY,QAAA,eAAe,mBAI3B;AAEM,MAAM,YAAY,GAAmB,CAAC,IAAI,EAAE,EAAE;IACnD,OAAO,CAAC,MAAM,EAAE,GAAG,gBAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACtC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC1C,CAAA;AACH,CAAC,CAAA;AAJY,QAAA,YAAY,gBAIxB;AAEM,MAAM,eAAe,GAAmB,CAAC,IAAI,EAAE,EAAE;IACtD,OAAO;QACL,IAAI;QACJ,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;KACN,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;AAC9C,CAAC,CAAA;AAdY,QAAA,eAAe,mBAc3B;AAEY,QAAA,cAAc,GAAmB,IAAA,qBAAa,EAAC,uBAAe,CAAC,CAAA;AAE/D,QAAA,oBAAoB,GAAmB,IAAA,oBAAY,EAAC;IAC/D,gBAAQ;IACR,mBAAW;IACX,mBAAW;IACX,gBAAQ;IACR,uBAAe;IACf,oBAAY;CACb,CAAC,CAAA;AAEF,uBAAuB;AAChB,MAAM,iBAAiB,GAAmB,CAAC,IAAI,EAAE,EAAE,CACxD,IAAI,CAAC,IAAI,KAAK,oBAAY,CAAC,WAAW,CAAA;AAD3B,QAAA,iBAAiB,qBACU;AACxC,uBAAuB;AAChB,MAAM,kBAAkB,GAAmB,CAAC,IAAI,EAAE,EAAE,CACzD,IAAI,CAAC,IAAI,KAAK,oBAAY,CAAC,YAAY,CAAA;AAD5B,QAAA,kBAAkB,sBACU;AACzC,uBAAuB;AAChB,MAAM,WAAW,GAAmB,CAAC,IAAI,EAAE,EAAE,CAClD,IAAI,CAAC,IAAI,KAAK,oBAAY,CAAC,KAAK,CAAA;AADrB,QAAA,WAAW,eACU;AAClC,uBAAuB;AAChB,MAAM,WAAW,GAAmB,CAAC,IAAI,EAAE,EAAE,CAClD,IAAI,CAAC,IAAI,KAAK,oBAAY,CAAC,KAAK,CAAA;AADrB,QAAA,WAAW,eACU;AAClC,uBAAuB;AAChB,MAAM,WAAW,GAAmB,CAAC,IAAI,EAAE,EAAE,CAClD,IAAI,CAAC,IAAI,KAAK,oBAAY,CAAC,KAAK,CAAA;AADrB,QAAA,WAAW,eACU;AAClC,uBAAuB;AAChB,MAAM,UAAU,GAAmB,CAAC,IAAI,EAAE,EAAE,CACjD,IAAI,CAAC,IAAI,KAAK,oBAAY,CAAC,IAAI,CAAA;AADpB,QAAA,UAAU,cACU;AACjC,uBAAuB;AAChB,MAAM,UAAU,GAAmB,CAAC,IAAI,EAAE,EAAE,CACjD,IAAI,CAAC,IAAI,KAAK,oBAAY,CAAC,IAAI,CAAA;AADpB,QAAA,UAAU,cACU;AACjC,uBAAuB;AAChB,MAAM,WAAW,GAAmB,CAAC,IAAI,EAAE,EAAE,CAClD,IAAI,CAAC,IAAI,KAAK,oBAAY,CAAC,KAAK,CAAA;AADrB,QAAA,WAAW,eACU;AAClC,uBAAuB;AAChB,MAAM,YAAY,GAAmB,CAAC,IAAI,EAAE,EAAE,CACnD,IAAI,CAAC,IAAI,KAAK,oBAAY,CAAC,MAAM,CAAA;AADtB,QAAA,YAAY,gBACU;AACnC,uBAAuB;AAChB,MAAM,YAAY,GAAmB,CAAC,IAAI,EAAE,EAAE,CACnD,IAAI,CAAC,IAAI,KAAK,oBAAY,CAAC,MAAM,CAAA;AADtB,QAAA,YAAY,gBACU;AACnC,uBAAuB;AAChB,MAAM,eAAe,GAAmB,CAAC,IAAI,EAAE,EAAE,CACtD,IAAI,CAAC,IAAI,KAAK,oBAAY,CAAC,SAAS,CAAA;AADzB,QAAA,eAAe,mBACU"}
@@ -0,0 +1,2 @@
1
+ export * as internalFilters from './filters';
2
+ export * from './utils';
@@ -0,0 +1,32 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.internalFilters = void 0;
30
+ exports.internalFilters = __importStar(require("./filters"));
31
+ __exportStar(require("./utils"), exports);
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/filters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA4C;AAC5C,0CAAuB"}
@@ -0,0 +1,16 @@
1
+ import { NodeFilterType, PossibleNodeConfigType, SortedNodeFilterType } from '../types';
2
+ export declare const validateFilter: (filter: unknown) => boolean;
3
+ export declare const applyFilter: <T extends PossibleNodeConfigType>(nodeList: readonly T[], filter?: NodeFilterType | SortedNodeFilterType) => readonly T[];
4
+ export declare const mergeFilters: (filters: Array<NodeFilterType>, isStrict?: boolean) => NodeFilterType;
5
+ export declare const useKeywords: (keywords: Array<string>, isStrict?: boolean) => NodeFilterType;
6
+ export declare const discardKeywords: (keywords: Array<string>, isStrict?: boolean) => NodeFilterType;
7
+ export declare const useRegexp: (regexp: RegExp) => NodeFilterType;
8
+ export declare const matchGlob: (str: string, glob: string) => boolean;
9
+ export declare const useGlob: (glob: string) => NodeFilterType;
10
+ export declare const discardGlob: (glob: string) => NodeFilterType;
11
+ export declare const useProviders: (keywords: Array<string>, isStrict?: boolean) => NodeFilterType;
12
+ export declare const discardProviders: (keywords: Array<string>, isStrict?: boolean) => NodeFilterType;
13
+ export declare const useSortedKeywords: (keywords: Array<string>) => SortedNodeFilterType;
14
+ export declare const mergeSortedFilters: (filters: Array<NodeFilterType>) => SortedNodeFilterType;
15
+ export declare const reverseFilter: (filter: NodeFilterType) => NodeFilterType;
16
+ export declare const mergeReversedFilters: (filters: Array<NodeFilterType>, isStrict?: boolean) => NodeFilterType;
@@ -0,0 +1,159 @@
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.mergeReversedFilters = exports.reverseFilter = exports.mergeSortedFilters = exports.useSortedKeywords = exports.discardProviders = exports.useProviders = exports.discardGlob = exports.useGlob = exports.matchGlob = exports.useRegexp = exports.discardKeywords = exports.useKeywords = exports.mergeFilters = exports.applyFilter = exports.validateFilter = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const micromatch_1 = __importDefault(require("micromatch"));
9
+ const classes_1 = require("./classes");
10
+ const validateFilter = (filter) => {
11
+ if (filter === null || filter === undefined) {
12
+ return false;
13
+ }
14
+ if (typeof filter === 'function') {
15
+ return true;
16
+ }
17
+ return (typeof filter === 'object' &&
18
+ 'supportSort' in filter &&
19
+ 'filter' in filter &&
20
+ typeof filter.supportSort === 'boolean' &&
21
+ typeof filter.filter === 'function');
22
+ };
23
+ exports.validateFilter = validateFilter;
24
+ const applyFilter = (nodeList, filter) => {
25
+ // istanbul ignore next
26
+ if (filter && !(0, exports.validateFilter)(filter)) {
27
+ throw new Error(`使用了无效的过滤器 ${filter}`);
28
+ }
29
+ let newNodeList = nodeList.filter((item) => {
30
+ // Only checks the enable property when it's present, default to true
31
+ const isEnabled = item.enable !== false;
32
+ if (filter && typeof filter === 'function') {
33
+ return filter(item) && isEnabled;
34
+ }
35
+ return isEnabled;
36
+ });
37
+ if (filter &&
38
+ typeof filter === 'object' &&
39
+ typeof filter.filter === 'function') {
40
+ newNodeList = filter.filter(newNodeList);
41
+ }
42
+ return newNodeList;
43
+ };
44
+ exports.applyFilter = applyFilter;
45
+ const mergeFilters = (filters, isStrict) => {
46
+ filters.forEach((filter) => {
47
+ if ('supportSort' in filter && filter.supportSort) {
48
+ throw new Error('mergeFilters 不支持包含排序功能的过滤器');
49
+ }
50
+ // istanbul ignore next
51
+ if (typeof filter !== 'function') {
52
+ throw new Error('mergeFilters 传入了无效的过滤器');
53
+ }
54
+ });
55
+ return (item) => {
56
+ return filters[isStrict ? 'every' : 'some']((filter) => filter(item));
57
+ };
58
+ };
59
+ exports.mergeFilters = mergeFilters;
60
+ const useKeywords = (keywords, isStrict) => {
61
+ // istanbul ignore next
62
+ if (!Array.isArray(keywords)) {
63
+ throw new Error('keywords 请使用数组');
64
+ }
65
+ return (item) => keywords[isStrict ? 'every' : 'some']((keyword) => item.nodeName.includes(keyword));
66
+ };
67
+ exports.useKeywords = useKeywords;
68
+ const discardKeywords = (keywords, isStrict) => {
69
+ // istanbul ignore next
70
+ if (!Array.isArray(keywords)) {
71
+ throw new Error('keywords 请使用数组');
72
+ }
73
+ return (item) => !keywords[isStrict ? 'every' : 'some']((keyword) => item.nodeName.includes(keyword));
74
+ };
75
+ exports.discardKeywords = discardKeywords;
76
+ const useRegexp = (regexp) => {
77
+ // istanbul ignore next
78
+ if (!lodash_1.default.isRegExp(regexp)) {
79
+ throw new Error('入参不是一个合法的正则表达式');
80
+ }
81
+ return (item) => regexp.test(item.nodeName);
82
+ };
83
+ exports.useRegexp = useRegexp;
84
+ const matchGlob = (str, glob) => {
85
+ return micromatch_1.default.contains(str, glob);
86
+ };
87
+ exports.matchGlob = matchGlob;
88
+ const useGlob = (glob) => {
89
+ return (item) => (0, exports.matchGlob)(item.nodeName, glob);
90
+ };
91
+ exports.useGlob = useGlob;
92
+ const discardGlob = (glob) => {
93
+ return (item) => !(0, exports.matchGlob)(item.nodeName, glob);
94
+ };
95
+ exports.discardGlob = discardGlob;
96
+ const useProviders = (keywords, isStrict = true) => {
97
+ // istanbul ignore next
98
+ if (!Array.isArray(keywords)) {
99
+ throw new Error('keywords 请使用数组');
100
+ }
101
+ return (item) => keywords.some((keyword) => isStrict
102
+ ? item?.provider?.name === keyword
103
+ : item?.provider?.name.includes(keyword));
104
+ };
105
+ exports.useProviders = useProviders;
106
+ const discardProviders = (keywords, isStrict = true) => {
107
+ // istanbul ignore next
108
+ if (!Array.isArray(keywords)) {
109
+ throw new Error('keywords 请使用数组');
110
+ }
111
+ return (item) => !keywords.some((keyword) => isStrict
112
+ ? item?.provider?.name === keyword
113
+ : item?.provider?.name.includes(keyword));
114
+ };
115
+ exports.discardProviders = discardProviders;
116
+ const useSortedKeywords = (keywords) => {
117
+ // istanbul ignore next
118
+ if (!Array.isArray(keywords)) {
119
+ throw new Error('keywords 请使用数组');
120
+ }
121
+ return new classes_1.SortFilterWithSortedKeywords(keywords);
122
+ };
123
+ exports.useSortedKeywords = useSortedKeywords;
124
+ const mergeSortedFilters = (filters) => {
125
+ filters.forEach((filter) => {
126
+ if ('supportSort' in filter && filter.supportSort) {
127
+ throw new Error('mergeSortedFilters 不支持包含排序功能的过滤器');
128
+ }
129
+ // istanbul ignore next
130
+ if (typeof filter !== 'function') {
131
+ throw new Error('mergeSortedFilters 传入了无效的过滤器');
132
+ }
133
+ });
134
+ return new classes_1.SortFilterWithSortedFilters(filters);
135
+ };
136
+ exports.mergeSortedFilters = mergeSortedFilters;
137
+ const reverseFilter = (filter) => {
138
+ if ('supportSort' in filter && filter.supportSort) {
139
+ throw new Error('reverseFilter 不支持包含排序功能的过滤器');
140
+ }
141
+ return (item) => !filter(item);
142
+ };
143
+ exports.reverseFilter = reverseFilter;
144
+ const mergeReversedFilters = (filters, isStrict) => {
145
+ filters.forEach((filter) => {
146
+ if ('supportSort' in filter && filter.supportSort) {
147
+ throw new Error('mergeReversedFilters 不支持包含排序功能的过滤器');
148
+ }
149
+ // istanbul ignore next
150
+ if (typeof filter !== 'function') {
151
+ throw new Error('mergeReversedFilters 传入了无效的过滤器');
152
+ }
153
+ });
154
+ return (item) => {
155
+ return filters[isStrict ? 'some' : 'every']((filter) => filter(item));
156
+ };
157
+ };
158
+ exports.mergeReversedFilters = mergeReversedFilters;
159
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/filters/utils.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,38 @@ export declare class Artifact extends EventEmitter {
24
24
  constructor(surgioConfig: CommandConfig, artifact: ArtifactConfig, options?: ArtifactOptions);
25
25
  get isReady(): boolean;
26
26
  getRenderContext(extendRenderContext?: ExtendableRenderContext): {
27
+ readonly netflixFilter: NonNullable<((nodeConfig: PossibleNodeConfigType) => boolean) | {
28
+ readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
29
+ readonly supportSort: true;
30
+ } | undefined>;
31
+ readonly youtubePremiumFilter: NonNullable<((nodeConfig: PossibleNodeConfigType) => boolean) | {
32
+ readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
33
+ readonly supportSort: true;
34
+ } | undefined>;
35
+ readonly customFilters: Record<string, ((nodeConfig: PossibleNodeConfigType) => boolean) | {
36
+ readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
37
+ readonly supportSort: true;
38
+ }>;
39
+ readonly customParams: Readonly<Record<string, any>>;
40
+ readonly usFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
41
+ readonly hkFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
42
+ readonly japanFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
43
+ readonly koreaFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
44
+ readonly singaporeFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
45
+ readonly taiwanFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
46
+ readonly chinaBackFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
47
+ readonly chinaOutFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
48
+ readonly shadowsocksFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
49
+ readonly shadowsocksrFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
50
+ readonly vmessFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
51
+ readonly v2rayFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
52
+ readonly snellFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
53
+ readonly tuicFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
54
+ readonly httpFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
55
+ readonly httpsFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
56
+ readonly trojanFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
57
+ readonly socks5Filter: (nodeConfig: PossibleNodeConfigType) => boolean;
58
+ readonly wireguardFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
27
59
  readonly proxyTestUrl: string | undefined;
28
60
  readonly proxyTestInterval: number | undefined;
29
61
  readonly internetTestUrl: string | undefined;
@@ -286,40 +318,9 @@ export declare class Artifact extends EventEmitter {
286
318
  readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
287
319
  readonly supportSort: true;
288
320
  } | undefined, separator?: string | undefined) => string;
289
- readonly usFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
290
- readonly hkFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
291
- readonly japanFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
292
- readonly koreaFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
293
- readonly singaporeFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
294
- readonly taiwanFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
295
- readonly chinaBackFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
296
- readonly chinaOutFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
297
- readonly shadowsocksFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
298
- readonly shadowsocksrFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
299
- readonly vmessFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
300
- readonly v2rayFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
301
- readonly snellFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
302
- readonly httpFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
303
- readonly httpsFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
304
- readonly trojanFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
305
- readonly socks5Filter: (nodeConfig: PossibleNodeConfigType) => boolean;
306
- readonly wireguardFilter: (nodeConfig: PossibleNodeConfigType) => boolean;
307
321
  readonly toUrlSafeBase64: (str: string) => string;
308
322
  readonly toBase64: (str: string) => string;
309
323
  readonly encodeURIComponent: typeof encodeURIComponent;
310
- readonly netflixFilter: NonNullable<((nodeConfig: PossibleNodeConfigType) => boolean) | {
311
- readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
312
- readonly supportSort: true;
313
- } | undefined>;
314
- readonly youtubePremiumFilter: NonNullable<((nodeConfig: PossibleNodeConfigType) => boolean) | {
315
- readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
316
- readonly supportSort: true;
317
- } | undefined>;
318
- readonly customFilters: Record<string, ((nodeConfig: PossibleNodeConfigType) => boolean) | {
319
- readonly filter: <T extends PossibleNodeConfigType>(nodeList: readonly T[]) => readonly T[];
320
- readonly supportSort: true;
321
- }>;
322
- readonly customParams: Readonly<Record<string, any>>;
323
324
  };
324
325
  init(params?: {
325
326
  getNodeListParams?: GetNodeListParams;
@@ -14,8 +14,7 @@ const provider_1 = require("../provider");
14
14
  const types_1 = require("../types");
15
15
  const utils_1 = require("../utils");
16
16
  const dns_1 = require("../utils/dns");
17
- const env_flag_1 = require("../utils/env-flag");
18
- const filter_1 = require("../utils/filter");
17
+ const filters_1 = require("../filters");
19
18
  const flag_1 = require("../utils/flag");
20
19
  const template_1 = require("./template");
21
20
  class Artifact extends events_1.EventEmitter {
@@ -28,8 +27,8 @@ class Artifact extends events_1.EventEmitter {
28
27
  providerMap = new Map();
29
28
  nodeList = [];
30
29
  customFilters = {};
31
- netflixFilter = filter_1.netflixFilter;
32
- youtubePremiumFilter = filter_1.youtubePremiumFilter;
30
+ netflixFilter = filters_1.internalFilters.netflixFilter;
31
+ youtubePremiumFilter = filters_1.internalFilters.youtubePremiumFilter;
33
32
  constructor(surgioConfig, artifact, options = {}) {
34
33
  super();
35
34
  this.surgioConfig = surgioConfig;
@@ -84,27 +83,10 @@ class Artifact extends events_1.EventEmitter {
84
83
  getQuantumultXNodeNames: utils_1.getQuantumultXNodeNames,
85
84
  getLoonNodes: utils_1.getLoonNodes,
86
85
  getLoonNodeNames: utils_1.getLoonNodeNames,
87
- usFilter: filter_1.usFilter,
88
- hkFilter: filter_1.hkFilter,
89
- japanFilter: filter_1.japanFilter,
90
- koreaFilter: filter_1.koreaFilter,
91
- singaporeFilter: filter_1.singaporeFilter,
92
- taiwanFilter: filter_1.taiwanFilter,
93
- chinaBackFilter: filter_1.chinaBackFilter,
94
- chinaOutFilter: filter_1.chinaOutFilter,
95
- shadowsocksFilter: filter_1.shadowsocksFilter,
96
- shadowsocksrFilter: filter_1.shadowsocksrFilter,
97
- vmessFilter: filter_1.vmessFilter,
98
- v2rayFilter: filter_1.v2rayFilter,
99
- snellFilter: filter_1.snellFilter,
100
- httpFilter: filter_1.httpFilter,
101
- httpsFilter: filter_1.httpsFilter,
102
- trojanFilter: filter_1.trojanFilter,
103
- socks5Filter: filter_1.socks5Filter,
104
- wireguardFilter: filter_1.wireguardFilter,
105
86
  toUrlSafeBase64: utils_1.toUrlSafeBase64,
106
87
  toBase64: utils_1.toBase64,
107
88
  encodeURIComponent,
89
+ ...filters_1.internalFilters,
108
90
  netflixFilter,
109
91
  youtubePremiumFilter,
110
92
  customFilters,
@@ -119,7 +101,7 @@ class Artifact extends events_1.EventEmitter {
119
101
  await bluebird_1.default.map(this.providerNameList, async (providerName) => {
120
102
  await this.providerMapper(providerName, params.getNodeListParams);
121
103
  }, {
122
- concurrency: (0, env_flag_1.getNetworkConcurrency)(),
104
+ concurrency: (0, utils_1.getNetworkConcurrency)(),
123
105
  });
124
106
  this.providerNameList.forEach((providerName) => {
125
107
  const nodeConfigList = this.nodeConfigListMap.get(providerName);
@@ -245,7 +227,7 @@ class Artifact extends events_1.EventEmitter {
245
227
  ...provider.config.customFilters,
246
228
  };
247
229
  }
248
- if ((0, filter_1.validateFilter)(provider.config.nodeFilter) &&
230
+ if ((0, filters_1.validateFilter)(provider.config.nodeFilter) &&
249
231
  typeof provider.config.nodeFilter === 'object' &&
250
232
  provider.config.nodeFilter.supportSort) {
251
233
  nodeConfigList = provider.config.nodeFilter.filter(nodeConfigList);
@@ -258,7 +240,7 @@ class Artifact extends events_1.EventEmitter {
258
240
  if (!provider.config.nodeFilter) {
259
241
  isValid = true;
260
242
  }
261
- else if ((0, filter_1.validateFilter)(provider.config.nodeFilter)) {
243
+ else if ((0, filters_1.validateFilter)(provider.config.nodeFilter)) {
262
244
  isValid =
263
245
  typeof provider.config.nodeFilter === 'function'
264
246
  ? provider.config.nodeFilter(nodeConfig)
@@ -1 +1 @@
1
- {"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../src/generator/artifact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifact.js","sourceRoot":"","sources":["../../src/generator/artifact.ts"],"names":[],"mappings":"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"}