mirror of
https://github.com/SukkaW/Surge.git
synced 2026-03-17 08:26:52 +08:00
Chore: maintainance
This commit is contained in:
92
Dist/Build/constants/cidr.cjs
Normal file
92
Dist/Build/constants/cidr.cjs
Normal file
@@ -0,0 +1,92 @@
|
||||
'use strict';Object.defineProperty(exports,Symbol.toStringTag,{value:'Module'});const cidr=require('../../_virtual/cidr.cjs');var hasRequiredCidr;
|
||||
|
||||
function requireCidr () {
|
||||
if (hasRequiredCidr) return cidr.__exports;
|
||||
hasRequiredCidr = 1;
|
||||
(function (exports) {
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
function _export(target, all) {
|
||||
for(var name in all)Object.defineProperty(target, name, {
|
||||
enumerable: true,
|
||||
get: all[name]
|
||||
});
|
||||
}
|
||||
_export(exports, {
|
||||
CN_CIDR_MISSING_IN_CHNROUTE: function() {
|
||||
return CN_CIDR_MISSING_IN_CHNROUTE;
|
||||
},
|
||||
NON_CN_CIDR_INCLUDED_IN_CHNROUTE: function() {
|
||||
return NON_CN_CIDR_INCLUDED_IN_CHNROUTE;
|
||||
},
|
||||
RESERVED_IPV4_CIDR: function() {
|
||||
return RESERVED_IPV4_CIDR;
|
||||
}
|
||||
});
|
||||
const RESERVED_IPV4_CIDR = [
|
||||
'0.0.0.0/8',
|
||||
'10.0.0.0/8',
|
||||
'100.64.0.0/10',
|
||||
'127.0.0.0/8',
|
||||
'169.254.0.0/16',
|
||||
'172.16.0.0/12',
|
||||
'192.0.0.0/24',
|
||||
'192.0.2.0/24',
|
||||
// 192.88.99.0 // is currently being broadcast by HE and Comcast
|
||||
'192.168.0.0/16',
|
||||
'198.18.0.0/15',
|
||||
'198.51.100.0/24',
|
||||
'203.0.113.0/24',
|
||||
'224.0.0.0/4',
|
||||
'233.252.0.0/24',
|
||||
'240.0.0.0/4'
|
||||
];
|
||||
const NON_CN_CIDR_INCLUDED_IN_CHNROUTE = [
|
||||
'223.118.0.0/15',
|
||||
'223.120.0.0/15'
|
||||
];
|
||||
const CN_CIDR_MISSING_IN_CHNROUTE = [
|
||||
// Baidu Public DNS
|
||||
'180.76.76.0/24',
|
||||
// Ali Public DNS
|
||||
'223.5.5.0/24',
|
||||
'223.6.6.0/24',
|
||||
// Tencent DNSPod Public DNS
|
||||
'119.29.29.0/24',
|
||||
'119.28.28.0/24',
|
||||
'120.53.53.0/24',
|
||||
'1.12.12.0/24',
|
||||
'1.12.34.0/24',
|
||||
// ByteDance Public DNS
|
||||
'180.184.1.0/24',
|
||||
'180.184.2.0/24',
|
||||
// 360 Public DNS
|
||||
'101.198.198.0/24',
|
||||
'101.198.199.0/24',
|
||||
// ChinaTelecom
|
||||
'103.7.141.0/24',
|
||||
// Aliyun Shenzhen
|
||||
'120.78.0.0/16',
|
||||
// wy.com.cn
|
||||
'211.99.96.0/19',
|
||||
// AS58593, Azure China
|
||||
'40.72.0.0/15',
|
||||
'42.159.0.0/16',
|
||||
'52.130.0.0/17',
|
||||
'52.131.0.0/16',
|
||||
'103.9.8.0/22',
|
||||
'139.217.0.0/16',
|
||||
'139.219.0.0/16',
|
||||
'143.64.0.0/16',
|
||||
'159.27.0.0/16',
|
||||
'163.228.0.0/16',
|
||||
// NetEase
|
||||
'223.252.194.0/24',
|
||||
'223.252.196.0/24',
|
||||
// Xiamen Kuaikuai
|
||||
'180.188.36.0/22' // no route globally
|
||||
];
|
||||
} (cidr.__exports));
|
||||
return cidr.__exports;
|
||||
}exports.__require=requireCidr;
|
||||
34
Dist/Build/constants/description.cjs
Normal file
34
Dist/Build/constants/description.cjs
Normal file
@@ -0,0 +1,34 @@
|
||||
'use strict';Object.defineProperty(exports,Symbol.toStringTag,{value:'Module'});const description=require('../../_virtual/description.cjs');var hasRequiredDescription;
|
||||
|
||||
function requireDescription () {
|
||||
if (hasRequiredDescription) return description.__exports;
|
||||
hasRequiredDescription = 1;
|
||||
(function (exports) {
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
function _export(target, all) {
|
||||
for(var name in all)Object.defineProperty(target, name, {
|
||||
enumerable: true,
|
||||
get: all[name]
|
||||
});
|
||||
}
|
||||
_export(exports, {
|
||||
SHARED_DESCRIPTION: function() {
|
||||
return SHARED_DESCRIPTION;
|
||||
},
|
||||
createFileDescription: function() {
|
||||
return createFileDescription;
|
||||
}
|
||||
});
|
||||
function createFileDescription(license = 'AGPL 3.0') {
|
||||
return [
|
||||
`License: ${license}`,
|
||||
'Homepage: https://ruleset.skk.moe',
|
||||
'GitHub: https://github.com/SukkaW/Surge'
|
||||
];
|
||||
}
|
||||
const SHARED_DESCRIPTION = createFileDescription('AGPL 3.0');
|
||||
} (description.__exports));
|
||||
return description.__exports;
|
||||
}exports.__require=requireDescription;
|
||||
71
Dist/Build/constants/dir.cjs
Normal file
71
Dist/Build/constants/dir.cjs
Normal file
@@ -0,0 +1,71 @@
|
||||
'use strict';Object.defineProperty(exports,Symbol.toStringTag,{value:'Module'});const dir=require('../../_virtual/dir.cjs'),require$$0=require('node:path'),require$$1=require('node:process');var hasRequiredDir;
|
||||
|
||||
function requireDir () {
|
||||
if (hasRequiredDir) return dir.__exports;
|
||||
hasRequiredDir = 1;
|
||||
(function (exports) {
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
function _export(target, all) {
|
||||
for(var name in all)Object.defineProperty(target, name, {
|
||||
enumerable: true,
|
||||
get: all[name]
|
||||
});
|
||||
}
|
||||
_export(exports, {
|
||||
CACHE_DIR: function() {
|
||||
return CACHE_DIR;
|
||||
},
|
||||
OUTPUT_CLASH_DIR: function() {
|
||||
return OUTPUT_CLASH_DIR;
|
||||
},
|
||||
OUTPUT_INTERNAL_DIR: function() {
|
||||
return OUTPUT_INTERNAL_DIR;
|
||||
},
|
||||
OUTPUT_MOCK_DIR: function() {
|
||||
return OUTPUT_MOCK_DIR;
|
||||
},
|
||||
OUTPUT_MODULES_DIR: function() {
|
||||
return OUTPUT_MODULES_DIR;
|
||||
},
|
||||
OUTPUT_MODULES_RULES_DIR: function() {
|
||||
return OUTPUT_MODULES_RULES_DIR;
|
||||
},
|
||||
OUTPUT_SINGBOX_DIR: function() {
|
||||
return OUTPUT_SINGBOX_DIR;
|
||||
},
|
||||
OUTPUT_SURGE_DIR: function() {
|
||||
return OUTPUT_SURGE_DIR;
|
||||
},
|
||||
PUBLIC_DIR: function() {
|
||||
return PUBLIC_DIR;
|
||||
},
|
||||
ROOT_DIR: function() {
|
||||
return ROOT_DIR;
|
||||
},
|
||||
SOURCE_DIR: function() {
|
||||
return SOURCE_DIR;
|
||||
}
|
||||
});
|
||||
const _nodepath = /*#__PURE__*/ _interop_require_default(require$$0);
|
||||
const _nodeprocess = /*#__PURE__*/ _interop_require_default(require$$1);
|
||||
function _interop_require_default(obj) {
|
||||
return obj && obj.__esModule ? obj : {
|
||||
default: obj
|
||||
};
|
||||
}
|
||||
const ROOT_DIR = _nodepath.default.resolve(__dirname, '../..');
|
||||
const CACHE_DIR = _nodepath.default.resolve(ROOT_DIR, '.cache');
|
||||
const SOURCE_DIR = _nodepath.default.join(ROOT_DIR, 'Source');
|
||||
const PUBLIC_DIR = _nodeprocess.default.env.PUBLIC_DIR || _nodepath.default.resolve(ROOT_DIR, 'public');
|
||||
const OUTPUT_SURGE_DIR = _nodepath.default.join(PUBLIC_DIR, 'List');
|
||||
const OUTPUT_CLASH_DIR = _nodepath.default.resolve(PUBLIC_DIR, 'Clash');
|
||||
const OUTPUT_SINGBOX_DIR = _nodepath.default.resolve(PUBLIC_DIR, 'sing-box');
|
||||
const OUTPUT_MODULES_DIR = _nodepath.default.resolve(PUBLIC_DIR, 'Modules');
|
||||
const OUTPUT_MODULES_RULES_DIR = _nodepath.default.resolve(OUTPUT_MODULES_DIR, 'Rules');
|
||||
const OUTPUT_INTERNAL_DIR = _nodepath.default.resolve(PUBLIC_DIR, 'Internal');
|
||||
const OUTPUT_MOCK_DIR = _nodepath.default.resolve(PUBLIC_DIR, 'Mock');
|
||||
} (dir.__exports));
|
||||
return dir.__exports;
|
||||
}exports.__require=requireDir;
|
||||
148
Dist/Build/constants/domains.cjs
Normal file
148
Dist/Build/constants/domains.cjs
Normal file
@@ -0,0 +1,148 @@
|
||||
'use strict';Object.defineProperty(exports,Symbol.toStringTag,{value:'Module'});const domains=require('../../_virtual/domains.cjs');var hasRequiredDomains;
|
||||
|
||||
function requireDomains () {
|
||||
if (hasRequiredDomains) return domains.__exports;
|
||||
hasRequiredDomains = 1;
|
||||
(function (exports) {
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
Object.defineProperty(exports, "ICP_TLD", {
|
||||
enumerable: true,
|
||||
get: function() {
|
||||
return ICP_TLD;
|
||||
}
|
||||
});
|
||||
const ICP_TLD = [
|
||||
'ren',
|
||||
'wang',
|
||||
'citic',
|
||||
'top',
|
||||
'sohu',
|
||||
'xin',
|
||||
'com',
|
||||
'net',
|
||||
'club',
|
||||
'xyz',
|
||||
'site',
|
||||
'shop',
|
||||
'info',
|
||||
'mobi',
|
||||
'red',
|
||||
'pro',
|
||||
'kim',
|
||||
'ltd',
|
||||
'group',
|
||||
'biz',
|
||||
'link',
|
||||
'store',
|
||||
'tech',
|
||||
'fun',
|
||||
'online',
|
||||
'art',
|
||||
'design',
|
||||
'love',
|
||||
'center',
|
||||
'video',
|
||||
'social',
|
||||
'team',
|
||||
'show',
|
||||
'cool',
|
||||
'zone',
|
||||
'world',
|
||||
'today',
|
||||
'city',
|
||||
'chat',
|
||||
'company',
|
||||
'live',
|
||||
'fund',
|
||||
'gold',
|
||||
'plus',
|
||||
'guru',
|
||||
'run',
|
||||
'pub',
|
||||
'email',
|
||||
'life',
|
||||
'co',
|
||||
'baidu',
|
||||
'cloud',
|
||||
'host',
|
||||
'space',
|
||||
'press',
|
||||
'website',
|
||||
'archi',
|
||||
'asia',
|
||||
'bio',
|
||||
'black',
|
||||
'blue',
|
||||
'green',
|
||||
'lotto',
|
||||
'organic',
|
||||
'pet',
|
||||
'pink',
|
||||
'poker',
|
||||
'promo',
|
||||
'ski',
|
||||
'vote',
|
||||
'voto',
|
||||
'icu',
|
||||
'fans',
|
||||
'unicom',
|
||||
'jpmorgan',
|
||||
'chase',
|
||||
'cc',
|
||||
'band',
|
||||
'cab',
|
||||
'cafe',
|
||||
'cash',
|
||||
'fan',
|
||||
'fyi',
|
||||
'games',
|
||||
'market',
|
||||
'mba',
|
||||
'news',
|
||||
'media',
|
||||
'sale',
|
||||
'shopping',
|
||||
'studio',
|
||||
'tax',
|
||||
'technology',
|
||||
'vin',
|
||||
'baby',
|
||||
'college',
|
||||
'monster',
|
||||
'protection',
|
||||
'rent',
|
||||
'security',
|
||||
'storage',
|
||||
'theatre',
|
||||
'bond',
|
||||
'cyou',
|
||||
'uno',
|
||||
'school',
|
||||
'global',
|
||||
'me',
|
||||
'pw',
|
||||
'hk',
|
||||
'tv',
|
||||
'saxo',
|
||||
'click',
|
||||
'auto',
|
||||
'autos',
|
||||
'beauty',
|
||||
'boats',
|
||||
'car',
|
||||
'cars',
|
||||
'hair',
|
||||
'homes',
|
||||
'makeup',
|
||||
'motorcycles',
|
||||
'quest',
|
||||
'skin',
|
||||
'tickets',
|
||||
'yachts',
|
||||
'kids'
|
||||
];
|
||||
} (domains.__exports));
|
||||
return domains.__exports;
|
||||
}exports.__require=requireDomains;
|
||||
47
Dist/Build/constants/loose-tldts-opt.cjs
Normal file
47
Dist/Build/constants/loose-tldts-opt.cjs
Normal file
@@ -0,0 +1,47 @@
|
||||
'use strict';Object.defineProperty(exports,Symbol.toStringTag,{value:'Module'});const looseTldtsOpt=require('../../_virtual/loose-tldts-opt.cjs');var hasRequiredLooseTldtsOpt;
|
||||
|
||||
function requireLooseTldtsOpt () {
|
||||
if (hasRequiredLooseTldtsOpt) return looseTldtsOpt.__exports;
|
||||
hasRequiredLooseTldtsOpt = 1;
|
||||
(function (exports) {
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
function _export(target, all) {
|
||||
for(var name in all)Object.defineProperty(target, name, {
|
||||
enumerable: true,
|
||||
get: all[name]
|
||||
});
|
||||
}
|
||||
_export(exports, {
|
||||
loosTldOptWithPrivateDomains: function() {
|
||||
return loosTldOptWithPrivateDomains;
|
||||
},
|
||||
looseTldtsOpt: function() {
|
||||
return looseTldtsOpt;
|
||||
},
|
||||
normalizeTldtsOpt: function() {
|
||||
return normalizeTldtsOpt;
|
||||
}
|
||||
});
|
||||
const looseTldtsOpt = {
|
||||
allowPrivateDomains: false,
|
||||
extractHostname: false,
|
||||
validateHostname: false,
|
||||
detectIp: false,
|
||||
mixedInputs: false
|
||||
};
|
||||
const loosTldOptWithPrivateDomains = {
|
||||
...looseTldtsOpt,
|
||||
allowPrivateDomains: true
|
||||
};
|
||||
const normalizeTldtsOpt = {
|
||||
allowPrivateDomains: true,
|
||||
// in normalizeDomain, we only care if it contains IP, we don't care if we need to extract it
|
||||
// by setting detectIp to false and manually check ip outside tldts.parse, we can skip the tldts
|
||||
// inner "extractHostname" call
|
||||
detectIp: false
|
||||
};
|
||||
} (looseTldtsOpt.__exports));
|
||||
return looseTldtsOpt.__exports;
|
||||
}exports.__require=requireLooseTldtsOpt;
|
||||
584
Dist/Build/constants/reject-data-source.cjs
Normal file
584
Dist/Build/constants/reject-data-source.cjs
Normal file
@@ -0,0 +1,584 @@
|
||||
'use strict';Object.defineProperty(exports,Symbol.toStringTag,{value:'Module'});const rejectDataSource=require('../../_virtual/reject-data-source.cjs');var hasRequiredRejectDataSource;
|
||||
|
||||
function requireRejectDataSource () {
|
||||
if (hasRequiredRejectDataSource) return rejectDataSource.__exports;
|
||||
hasRequiredRejectDataSource = 1;
|
||||
(function (exports) {
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
function _export(target, all) {
|
||||
for(var name in all)Object.defineProperty(target, name, {
|
||||
enumerable: true,
|
||||
get: all[name]
|
||||
});
|
||||
}
|
||||
_export(exports, {
|
||||
ADGUARD_FILTERS: function() {
|
||||
return ADGUARD_FILTERS;
|
||||
},
|
||||
ADGUARD_FILTERS_EXTRA: function() {
|
||||
return ADGUARD_FILTERS_EXTRA;
|
||||
},
|
||||
ADGUARD_FILTERS_WHITELIST: function() {
|
||||
return ADGUARD_FILTERS_WHITELIST;
|
||||
},
|
||||
CRASHLYTICS_WHITELIST: function() {
|
||||
return CRASHLYTICS_WHITELIST;
|
||||
},
|
||||
DEBUG_DOMAIN_TO_FIND: function() {
|
||||
return DEBUG_DOMAIN_TO_FIND;
|
||||
},
|
||||
DOMAIN_LISTS: function() {
|
||||
return DOMAIN_LISTS;
|
||||
},
|
||||
DOMAIN_LISTS_EXTRA: function() {
|
||||
return DOMAIN_LISTS_EXTRA;
|
||||
},
|
||||
HOSTS: function() {
|
||||
return HOSTS;
|
||||
},
|
||||
HOSTS_EXTRA: function() {
|
||||
return HOSTS_EXTRA;
|
||||
},
|
||||
PHISHING_DOMAIN_LISTS_EXTRA: function() {
|
||||
return PHISHING_DOMAIN_LISTS_EXTRA;
|
||||
},
|
||||
PHISHING_HOSTS_EXTRA: function() {
|
||||
return PHISHING_HOSTS_EXTRA;
|
||||
},
|
||||
PREDEFINED_WHITELIST: function() {
|
||||
return PREDEFINED_WHITELIST;
|
||||
}
|
||||
});
|
||||
const DEBUG_DOMAIN_TO_FIND = null; // example.com | null
|
||||
const HOSTS = [
|
||||
[
|
||||
// WindowsSpyBlocker hasn't been updated since 2022-06-16, let's use jsDelivr as primary URL
|
||||
'https://cdn.jsdelivr.net/gh/crazy-max/WindowsSpyBlocker@master/data/hosts/spy.txt',
|
||||
[
|
||||
'https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt'
|
||||
],
|
||||
true
|
||||
],
|
||||
[
|
||||
'https://raw.githubusercontent.com/jerryn70/GoodbyeAds/master/Extension/GoodbyeAds-Xiaomi-Extension.txt',
|
||||
null,
|
||||
false
|
||||
],
|
||||
[
|
||||
'https://raw.githubusercontent.com/jerryn70/GoodbyeAds/master/Extension/GoodbyeAds-Huawei-AdBlock.txt',
|
||||
null,
|
||||
false
|
||||
]
|
||||
];
|
||||
const HOSTS_EXTRA = [
|
||||
[
|
||||
'https://raw.githubusercontent.com/durablenapkin/block/master/tvstream.txt',
|
||||
null,
|
||||
true
|
||||
],
|
||||
// This stupid hosts blocks t.co, so we determine that this is also bullshit, so it is extra
|
||||
[
|
||||
'https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext',
|
||||
[
|
||||
'https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/thirdparties/pgl.yoyo.org/as/serverlist'
|
||||
],
|
||||
true
|
||||
],
|
||||
// Dan Pollock's hosts file, 0.0.0.0 version is 30 KiB smaller
|
||||
[
|
||||
'https://someonewhocares.org/hosts/zero/hosts',
|
||||
[
|
||||
'https://proxy.cdn.skk.moe/https/someonewhocares.org/hosts/zero/hosts'
|
||||
],
|
||||
true
|
||||
],
|
||||
// ad-wars is not actively maintained since 2023.11, so we use jsDelivr as primary URL
|
||||
[
|
||||
'https://cdn.jsdelivr.net/gh/jdlingyu/ad-wars@master/hosts',
|
||||
[
|
||||
'https://raw.githubusercontent.com/jdlingyu/ad-wars/master/hosts'
|
||||
],
|
||||
false
|
||||
]
|
||||
];
|
||||
const DOMAIN_LISTS = [];
|
||||
const DOMAIN_LISTS_EXTRA = [
|
||||
// CoinBlockerList - Full
|
||||
// The CoinBlockerList is no longer maintained and even close-source, so we no longer trust it
|
||||
// instead we maintain a list of our own
|
||||
// BarbBlock
|
||||
// The barbblock list has never been updated since 2019-05, so we set a 14 days cache ttl
|
||||
[
|
||||
'https://paulgb.github.io/BarbBlock/blacklists/domain-list.txt',
|
||||
[
|
||||
'https://raw.githubusercontent.com/paulgb/BarbBlock/refs/heads/main/blacklists/domain-list.txt'
|
||||
],
|
||||
true
|
||||
],
|
||||
// DigitalSide Threat-Intel - OSINT Hub
|
||||
// Update once per day
|
||||
[
|
||||
'https://osint.digitalside.it/Threat-Intel/lists/latestdomains.txt',
|
||||
[],
|
||||
true
|
||||
],
|
||||
// AdGuard CNAME Filter Combined
|
||||
// Update on a 7 days basis, so we can also use jsDelivr as primary URL
|
||||
[
|
||||
'https://cdn.jsdelivr.net/gh/AdguardTeam/cname-trackers@master/data/combined_disguised_ads_justdomains.txt',
|
||||
[
|
||||
'https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_ads_justdomains.txt'
|
||||
],
|
||||
true
|
||||
],
|
||||
[
|
||||
'https://cdn.jsdelivr.net/gh/AdguardTeam/cname-trackers@master/data/combined_disguised_trackers_justdomains.txt',
|
||||
[
|
||||
'https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_trackers_justdomains.txt'
|
||||
],
|
||||
true
|
||||
],
|
||||
[
|
||||
'https://cdn.jsdelivr.net/gh/AdguardTeam/cname-trackers@master/data/combined_disguised_clickthroughs_justdomains.txt',
|
||||
[
|
||||
'https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_clickthroughs_justdomains.txt'
|
||||
],
|
||||
true
|
||||
],
|
||||
[
|
||||
'https://cdn.jsdelivr.net/gh/AdguardTeam/cname-trackers@master/data/combined_disguised_microsites_justdomains.txt',
|
||||
[
|
||||
'https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_microsites_justdomains.txt'
|
||||
],
|
||||
true
|
||||
],
|
||||
// ['https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/data/combined_disguised_mail_trackers_justdomains.txt', [], true],
|
||||
// Curben's PUP Domains Blocklist
|
||||
// The PUP filter has paused the update since 2023-05, so we set a 14 days cache ttl, and move it to extra
|
||||
// [
|
||||
// 'https://pup-filter.pages.dev/pup-filter-domains.txt',
|
||||
// [
|
||||
// // 'https://malware-filter.pages.dev/pup-filter-domains.txt',
|
||||
// // 'https://malware-filter.gitlab.io/malware-filter/pup-filter-domains.txt',
|
||||
// 'https://malware-filter.gitlab.io/pup-filter/pup-filter-domains.txt'
|
||||
// // 'https://curbengh.github.io/pup-filter/pup-filter-domains.txt',
|
||||
// // 'https://malware-filter.pages.dev/pup-filter-domains.txt'
|
||||
// ],
|
||||
// true
|
||||
// ],
|
||||
// Curben's UrlHaus Malicious URL Blocklist
|
||||
[
|
||||
'https://urlhaus-filter.pages.dev/urlhaus-filter-domains.txt',
|
||||
[
|
||||
'https://malware-filter.pages.dev/urlhaus-filter-domains.txt',
|
||||
'https://malware-filter.gitlab.io/urlhaus-filter/urlhaus-filter-domains.txt',
|
||||
'https://malware-filter.gitlab.io/malware-filter/urlhaus-filter-domains.txt',
|
||||
'https://curbengh.github.io/urlhaus-filter/urlhaus-filter-domains.txt'
|
||||
],
|
||||
true
|
||||
],
|
||||
// Spam404
|
||||
// Not actively maintained, let's use jsDelivr as primary URL
|
||||
[
|
||||
'https://cdn.jsdelivr.net/gh/Spam404/lists@master/main-blacklist.txt',
|
||||
[
|
||||
'https://raw.githubusercontent.com/Spam404/lists/master/main-blacklist.txt'
|
||||
],
|
||||
true
|
||||
]
|
||||
];
|
||||
const PHISHING_HOSTS_EXTRA = [
|
||||
[
|
||||
'https://raw.githubusercontent.com/durablenapkin/scamblocklist/master/hosts.txt',
|
||||
[],
|
||||
true
|
||||
]
|
||||
];
|
||||
const PHISHING_DOMAIN_LISTS_EXTRA = [
|
||||
[
|
||||
'https://phishing-filter.pages.dev/phishing-filter-domains.txt',
|
||||
[
|
||||
'https://malware-filter.pages.dev/phishing-filter-domains.txt',
|
||||
'https://malware-filter.gitlab.io/phishing-filter/phishing-filter-domains.txt',
|
||||
'https://malware-filter.gitlab.io/malware-filter/phishing-filter-domains.txt',
|
||||
'https://curbengh.github.io/phishing-filter/phishing-filter-domains.txt'
|
||||
],
|
||||
true
|
||||
],
|
||||
[
|
||||
'https://phishing.army/download/phishing_army_blocklist.txt',
|
||||
[],
|
||||
true
|
||||
]
|
||||
];
|
||||
const ADGUARD_FILTERS = [
|
||||
// EasyList
|
||||
[
|
||||
'https://easylist.to/easylist/easylist.txt',
|
||||
[
|
||||
'https://easylist-downloads.adblockplus.org/easylist.txt',
|
||||
'https://secure.fanboy.co.nz/easylist.txt',
|
||||
'https://ublockorigin.github.io/uAssetsCDN/thirdparties/easylist.txt',
|
||||
'https://ublockorigin.pages.dev/thirdparties/easylist.txt',
|
||||
'https://raw.githubusercontent.com/easylist/easylist/gh-pages/easylist.txt',
|
||||
'https://filters.adtidy.org/extension/ublock/filters/101_optimized.txt'
|
||||
]
|
||||
],
|
||||
// EasyPrivacy
|
||||
[
|
||||
'https://easylist.to/easylist/easyprivacy.txt',
|
||||
[
|
||||
'https://easylist-downloads.adblockplus.org/easyprivacy.txt',
|
||||
'https://secure.fanboy.co.nz/easyprivacy.txt',
|
||||
'https://ublockorigin.github.io/uAssetsCDN/thirdparties/easyprivacy.txt',
|
||||
'https://ublockorigin.pages.dev/thirdparties/easyprivacy.txt',
|
||||
'https://raw.githubusercontent.com/easylist/easylist/gh-pages/easyprivacy.txt',
|
||||
'https://filters.adtidy.org/extension/ublock/filters/118_optimized.txt'
|
||||
]
|
||||
],
|
||||
// AdGuard Base Filter
|
||||
[
|
||||
'https://filters.adtidy.org/extension/ublock/filters/2_without_easylist.txt',
|
||||
[
|
||||
'https://proxy.cdn.skk.moe/https/filters.adtidy.org/extension/ublock/filters/2_without_easylist.txt'
|
||||
]
|
||||
],
|
||||
// AdGuard Mobile AD
|
||||
[
|
||||
'https://filters.adtidy.org/extension/ublock/filters/11_optimized.txt',
|
||||
[
|
||||
'https://proxy.cdn.skk.moe/https/filters.adtidy.org/extension/ublock/filters/2_without_easylist.txt'
|
||||
]
|
||||
],
|
||||
// AdGuard Tracking Protection
|
||||
[
|
||||
'https://filters.adtidy.org/extension/ublock/filters/3_optimized.txt',
|
||||
[
|
||||
'https://proxy.cdn.skk.moe/https/filters.adtidy.org/extension/ublock/filters/3_optimized.txt'
|
||||
]
|
||||
],
|
||||
// AdGuard Chinese filter (EasyList China + AdGuard Chinese filter)
|
||||
[
|
||||
'https://filters.adtidy.org/extension/ublock/filters/224_optimized.txt',
|
||||
[
|
||||
'https://proxy.cdn.skk.moe/https/filters.adtidy.org/extension/ublock/filters/224_optimized.txt'
|
||||
]
|
||||
],
|
||||
// GameConsoleAdblockList
|
||||
// Update almost once per 1 to 3 months, let's set a 10 days cache ttl
|
||||
[
|
||||
'https://cdn.jsdelivr.net/gh/DandelionSprout/adfilt@master/GameConsoleAdblockList.txt',
|
||||
[
|
||||
'https://raw.githubusercontent.com/DandelionSprout/adfilt/master/GameConsoleAdblockList.txt'
|
||||
]
|
||||
],
|
||||
// PiHoleBlocklist
|
||||
// Update almost once per 3 months, let's set a 10 days cache ttl
|
||||
[
|
||||
'https://perflyst.github.io/PiHoleBlocklist/SmartTV-AGH.txt',
|
||||
[
|
||||
'https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/SmartTV-AGH.txt'
|
||||
]
|
||||
],
|
||||
// uBlock Origin Unbreak
|
||||
[
|
||||
'https://ublockorigin.github.io/uAssetsCDN/filters/unbreak.min.txt',
|
||||
[
|
||||
'https://ublockorigin.pages.dev/filters/unbreak.min.txt'
|
||||
]
|
||||
]
|
||||
];
|
||||
const ADGUARD_FILTERS_WHITELIST = [
|
||||
[
|
||||
'https://adguardteam.github.io/AdGuardSDNSFilter/Filters/exceptions.txt',
|
||||
[
|
||||
'https://raw.githubusercontent.com/AdguardTeam/AdGuardSDNSFilter/master/Filters/exceptions.txt'
|
||||
]
|
||||
],
|
||||
[
|
||||
'https://adguardteam.github.io/AdGuardSDNSFilter/Filters/exclusions.txt',
|
||||
[
|
||||
'https://raw.githubusercontent.com/AdguardTeam/AdGuardSDNSFilter/master/Filters/exclusions.txt'
|
||||
]
|
||||
]
|
||||
];
|
||||
const ADGUARD_FILTERS_EXTRA = [
|
||||
// AdGuard DNS Filter
|
||||
// way too many other countries' domains (JP, Spanish, RU, VN, Turkish, Ukarainian, Dutch, etc.)
|
||||
// EasyList, EasyPrivacy, Chinese and general filters are already included in base data source
|
||||
[
|
||||
'https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt',
|
||||
[
|
||||
'https://filters.adtidy.org/extension/ublock/filters/15_optimized.txt',
|
||||
'https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt'
|
||||
]
|
||||
],
|
||||
// no coin list adguard list is more maintained than its hosts
|
||||
[
|
||||
'https://raw.githubusercontent.com/hoshsadiq/adblock-nocoin-list/master/nocoin.txt',
|
||||
[],
|
||||
true
|
||||
],
|
||||
// AdGuard Annoyances filter
|
||||
[
|
||||
'https://filters.adtidy.org/extension/ublock/filters/14_optimized.txt',
|
||||
[
|
||||
'https://proxy.cdn.skk.moe/https/filters.adtidy.org/extension/ublock/filters/14_optimized.txt'
|
||||
],
|
||||
true
|
||||
],
|
||||
// AdGuard Cookie Notices, included in Annoyances filter
|
||||
// ['https://filters.adtidy.org/extension/ublock/filters/18_optimized.txt', null, true],
|
||||
// EasyList Germany filter, not even included in extra for now
|
||||
// [
|
||||
// 'https://easylist.to/easylistgermany/easylistgermany.txt',
|
||||
// [
|
||||
// 'https://easylist-downloads.adblockplus.org/easylistgermany.txt'
|
||||
// ],
|
||||
//
|
||||
// ],
|
||||
// AdGuard Japanese filter
|
||||
[
|
||||
'https://filters.adtidy.org/extension/ublock/filters/7_optimized.txt',
|
||||
[
|
||||
'https://proxy.cdn.skk.moe/https/filters.adtidy.org/extension/ublock/filters/7_optimized.txt'
|
||||
]
|
||||
],
|
||||
// uBlock Origin Filter List
|
||||
[
|
||||
'https://ublockorigin.github.io/uAssetsCDN/filters/filters.min.txt',
|
||||
[
|
||||
'https://ublockorigin.pages.dev/filters/filters.min.txt'
|
||||
]
|
||||
],
|
||||
// AdGuard Popup Overlay - included in Annoyances filter
|
||||
// ['https://filters.adtidy.org/extension/ublock/filters/19_optimized.txt', null, true],
|
||||
// AdGuard Mobile Banner
|
||||
// almost all generic rule
|
||||
// ['https://filters.adtidy.org/extension/ublock/filters/20_optimized.txt', null],
|
||||
// uBlock Origin Badware Risk List
|
||||
[
|
||||
'https://ublockorigin.github.io/uAssetsCDN/filters/badware.min.txt',
|
||||
[
|
||||
'https://ublockorigin.pages.dev/filters/badware.min.txt'
|
||||
]
|
||||
],
|
||||
// uBlock Origin Privacy List
|
||||
[
|
||||
'https://ublockorigin.github.io/uAssetsCDN/filters/privacy.min.txt',
|
||||
[
|
||||
'https://ublockorigin.pages.dev/filters/privacy.min.txt'
|
||||
]
|
||||
],
|
||||
// uBlock Origin Resource Abuse: merged in uBlock Origin Privacy List
|
||||
// [
|
||||
// 'https://ublockorigin.github.io/uAssetsCDN/filters/resource-abuse.txt',
|
||||
// ['https://ublockorigin.pages.dev/filters/resource-abuse.txt']
|
||||
// ],
|
||||
// uBlock Origin Annoyances (the un-merged of Fanboy Annoyances List)
|
||||
[
|
||||
'https://ublockorigin.github.io/uAssetsCDN/filters/annoyances.min.txt',
|
||||
[
|
||||
'https://ublockorigin.pages.dev/filters/annoyances.min.txt'
|
||||
]
|
||||
],
|
||||
// EasyList Annoyances
|
||||
[
|
||||
'https://ublockorigin.github.io/uAssetsCDN/thirdparties/easylist-annoyances.txt',
|
||||
[
|
||||
'https://ublockorigin.pages.dev/thirdparties/easylist-annoyances.txt'
|
||||
]
|
||||
],
|
||||
// EasyList - Newsletters
|
||||
[
|
||||
'https://ublockorigin.github.io/uAssetsCDN/thirdparties/easylist-newsletters.txt',
|
||||
[
|
||||
'https://ublockorigin.pages.dev/thirdparties/easylist-newsletters.txt'
|
||||
]
|
||||
],
|
||||
// EasyList - Notifications
|
||||
[
|
||||
'https://ublockorigin.github.io/uAssets/thirdparties/easylist-notifications.txt',
|
||||
[
|
||||
'https://ublockorigin.pages.dev/thirdparties/easylist-notifications.txt'
|
||||
]
|
||||
],
|
||||
// Fanboy Cookie Monster (EasyList Cookie List)
|
||||
[
|
||||
'https://ublockorigin.github.io/uAssets/thirdparties/easylist-cookies.txt',
|
||||
[
|
||||
'https://ublockorigin.pages.dev/thirdparties/easylist-cookies.txt',
|
||||
'https://secure.fanboy.co.nz/fanboy-cookiemonster_ubo.txt'
|
||||
]
|
||||
],
|
||||
// Dandelion Sprout's Annoyances
|
||||
[
|
||||
'https://filters.adtidy.org/extension/ublock/filters/250_optimized.txt',
|
||||
[
|
||||
'https://proxy.cdn.skk.moe/https/filters.adtidy.org/extension/ublock/filters/250_optimized.txt'
|
||||
],
|
||||
true
|
||||
],
|
||||
// Adblock Warning Removal List
|
||||
[
|
||||
'https://easylist-downloads.adblockplus.org/antiadblockfilters.txt',
|
||||
[
|
||||
'https://filters.adtidy.org/extension/ublock/filters/207_optimized.txt'
|
||||
],
|
||||
true
|
||||
]
|
||||
];
|
||||
const CRASHLYTICS_WHITELIST = [
|
||||
// VSCode Telemetry, see https://sts.online.visualstudio.com/api/swagger/index.html
|
||||
'sts.online.visualstudio.com',
|
||||
// Sentry
|
||||
'.ingest.sentry.io',
|
||||
'.ingest.us.sentry.io',
|
||||
'.ingest.de.sentry.io',
|
||||
// bugsnag
|
||||
'.sessions.bugsnag.com',
|
||||
'.notify.bugsnag.com',
|
||||
// influxdata
|
||||
'.cloud.influxdata.com',
|
||||
'.cloud1.influxdata.com',
|
||||
'.cloud2.influxdata.com',
|
||||
// split.io A/B flag
|
||||
'streaming.split.io',
|
||||
'telemetry.split.io',
|
||||
'sdk.split.io',
|
||||
// Google
|
||||
// -ds.metric.gstatic.com are specifically exempted from reject, but it could use secondary proxy policy
|
||||
'.metric.gstatic.com',
|
||||
// Misc
|
||||
'telemetry.1passwordservices.com',
|
||||
'events.tableplus.com',
|
||||
'telemetry.nextjs.org',
|
||||
'telemetry.vercel.com',
|
||||
'stats.setapp.com',
|
||||
'stats.setapp.macpaw.dev',
|
||||
'.app-analytics-services.com',
|
||||
'.telemetry.services.yofi.ai',
|
||||
'.cdn.pubnub.com',
|
||||
'.data.debugbear.com',
|
||||
'.cdn.applicationinsights.io',
|
||||
'.applicationinsights.azure.com',
|
||||
'.applicationinsights.azure.cn',
|
||||
'.api.loganalytics.io',
|
||||
'.bugly.qcloud.com',
|
||||
'.cdn.signalfx.com',
|
||||
'.crash-reports.browser.yandex.net',
|
||||
'.crashlytics2.l.google.com',
|
||||
'.crashlyticsreports-pa.googleapis.com',
|
||||
'.e.crashlytics.com',
|
||||
'.events.backtrace.io',
|
||||
'auth.split.io',
|
||||
'events.split.io',
|
||||
'streaming.split.io',
|
||||
'.in.appcenter.ms',
|
||||
'.loggly.com',
|
||||
'.logz.io',
|
||||
'.opentelemetry.io',
|
||||
'.raygun.io',
|
||||
'.rum.cronitor.io',
|
||||
'.settings.crashlytics.com',
|
||||
'.sny.monosnap.com',
|
||||
'.lr-ingest.com',
|
||||
'.cdn.rollbar.com',
|
||||
'.api.instabug.com',
|
||||
'.ensighten.com',
|
||||
'api.crashguard.me'
|
||||
];
|
||||
const PREDEFINED_WHITELIST = [
|
||||
...CRASHLYTICS_WHITELIST,
|
||||
'.localhost',
|
||||
'.local',
|
||||
'.localdomain',
|
||||
'.broadcasthost',
|
||||
'.ip6-loopback',
|
||||
'.ip6-localnet',
|
||||
'.ip6-mcastprefix',
|
||||
'.ip6-allnodes',
|
||||
'.ip6-allrouters',
|
||||
'.ip6-allhosts',
|
||||
'.mcastprefix',
|
||||
'.skk.moe',
|
||||
'analytics.google.com',
|
||||
'.cloud.answerhub.com',
|
||||
'ae01.alicdn.com',
|
||||
'.whoami.akamai.net',
|
||||
'.whoami.ds.akahelp.net',
|
||||
'.instant.page',
|
||||
'.piwik.pro',
|
||||
'mixpanel.com',
|
||||
'cdn.mxpnl.com',
|
||||
'.heapanalytics.com',
|
||||
'.segment.com',
|
||||
'.segmentify.com',
|
||||
'.t.co',
|
||||
'.survicate.com',
|
||||
'.perfops.io',
|
||||
'.d2axgrpnciinw7.cloudfront.net',
|
||||
'.sb-cd.com',
|
||||
'.storage.yandexcloud.net',
|
||||
'.login.microsoftonline.com',
|
||||
'api.xiaomi.com',
|
||||
'api.io.mi.com',
|
||||
'.cdn.userreport.com',
|
||||
'.ip-api.com',
|
||||
'.fastly-analytics.com',
|
||||
'.digitaloceanspaces.com',
|
||||
's3.nl-ams.scw.cloud',
|
||||
'.geolocation-db.com',
|
||||
'.uploads.codesandbox.io',
|
||||
'.vlscppe.microsoft.com',
|
||||
'.statsig.com',
|
||||
'.pstmrk.it',
|
||||
'.clicks.mlsend.com',
|
||||
'email.accounts.bitly.com',
|
||||
'adsense.google.com',
|
||||
'api.vip.miui.com',
|
||||
'api.comm.miui.com',
|
||||
'.ai.api.xiaomi.com',
|
||||
'm.stripe.com',
|
||||
// yet stupid AdGuardDNSFilter blocks all of it. Stupid AdGuard
|
||||
'.w3s.link',
|
||||
'.r2.dev',
|
||||
'mlsend.com',
|
||||
'ab.chatgpt.com',
|
||||
'jnn-pa.googleapis.com',
|
||||
'imasdk.googleapis.com',
|
||||
'.l.qq.com',
|
||||
'.in-addr.arpa',
|
||||
'.ip6.arpa',
|
||||
'.clients.your-server.de',
|
||||
'.bc.googleusercontent.com',
|
||||
'.host.secureserver.net',
|
||||
'.ip.linodeusercontent.com',
|
||||
'.static.akamaitechnologies.com',
|
||||
'.compute.amazonaws.com',
|
||||
'.shoppy.gg',
|
||||
'transcend-cdn.com',
|
||||
'store1.gofile.io',
|
||||
'ad.12306.cn',
|
||||
'.ib.snssdk.com',
|
||||
'.nstool.netease.com',
|
||||
'.wns.windows.com',
|
||||
'.lon.llnw.net',
|
||||
'.lcy.llnw.net',
|
||||
'repo.huaweicloud.com',
|
||||
'.hubspotlinks.com',
|
||||
'cldup.com',
|
||||
// Doesn't make sense: CNAME domains
|
||||
'.cdn.cloudflare.net',
|
||||
'.apple-dns.net',
|
||||
'.data.microsoft.com.akadns.net',
|
||||
// Expired domains
|
||||
'.expobarrio.com',
|
||||
'.hamdandates.com',
|
||||
'.amzone.co.jp'
|
||||
];
|
||||
} (rejectDataSource.__exports));
|
||||
return rejectDataSource.__exports;
|
||||
}exports.__require=requireRejectDataSource;
|
||||
Reference in New Issue
Block a user