mirror of
https://github.com/SukkaW/Surge.git
synced 2025-12-21 13:50:29 +08:00
53 lines
2.6 KiB
JavaScript
53 lines
2.6 KiB
JavaScript
'use strict';Object.defineProperty(exports,Symbol.toStringTag,{value:'Module'});const validateGlobalTld=require('../_virtual/validate-global-tld.cjs'),require$$0=require('node:path'),fetchTextByLine=require('./lib/fetch-text-by-line.cjs'),trie=require('./lib/trie.cjs'),dir=require('./constants/dir.cjs'),domains=require('./constants/domains.cjs'),require$$5=require('tldts-experimental'),looseTldtsOpt=require('./constants/loose-tldts-opt.cjs');var hasRequiredValidateGlobalTld;
|
|
|
|
function requireValidateGlobalTld () {
|
|
if (hasRequiredValidateGlobalTld) return validateGlobalTld.__exports;
|
|
hasRequiredValidateGlobalTld = 1;
|
|
Object.defineProperty(validateGlobalTld.__exports, "__esModule", {
|
|
value: true
|
|
});
|
|
const _nodepath = /*#__PURE__*/ _interop_require_default(require$$0);
|
|
const _fetchtextbyline = /*@__PURE__*/ fetchTextByLine.__require();
|
|
const _trie = /*@__PURE__*/ trie.__require();
|
|
const _dir = /*@__PURE__*/ dir.__require();
|
|
const _domains = /*@__PURE__*/ domains.__require();
|
|
const _tldtsexperimental = /*#__PURE__*/ _interop_require_default(require$$5);
|
|
const _loosetldtsopt = /*@__PURE__*/ looseTldtsOpt.__require();
|
|
function _interop_require_default(obj) {
|
|
return obj && obj.__esModule ? obj : {
|
|
default: obj
|
|
};
|
|
}
|
|
(async ()=>{
|
|
const trie = new _trie.HostnameSmolTrie();
|
|
const extraWhiteTLDs = new Set();
|
|
for await (const line of (0, _fetchtextbyline.readFileByLine)(_nodepath.default.join(_dir.OUTPUT_SURGE_DIR, 'non_ip', 'domestic.conf'))){
|
|
const [type, domain] = line.split(',');
|
|
if (type !== 'DOMAIN' && type !== 'DOMAIN-SUFFIX') {
|
|
continue;
|
|
}
|
|
if (domain === 'this_ruleset_is_made_by_sukkaw.ruleset.skk.moe') {
|
|
continue;
|
|
}
|
|
const tld = _tldtsexperimental.default.getPublicSuffix(domain, _loosetldtsopt.looseTldtsOpt);
|
|
if (tld) {
|
|
extraWhiteTLDs.add(tld);
|
|
}
|
|
}
|
|
for await (const line of (0, _fetchtextbyline.readFileByLine)(_nodepath.default.join(_dir.SOURCE_DIR, 'non_ip', 'global.conf'))){
|
|
const [type, domain] = line.split(',');
|
|
switch(type){
|
|
case 'DOMAIN':
|
|
trie.add(domain);
|
|
break;
|
|
case 'DOMAIN-SUFFIX':
|
|
trie.add(domain, true);
|
|
break;
|
|
}
|
|
}
|
|
_domains.ICP_TLD.forEach((tld)=>trie.whitelist(tld, true));
|
|
extraWhiteTLDs.forEach((tld)=>trie.whitelist(tld, true));
|
|
console.log(trie.dump().join('\n'));
|
|
})();
|
|
return validateGlobalTld.__exports;
|
|
}exports.__require=requireValidateGlobalTld; |