'use strict';const fetchRetry=require('./chunks/fetch-retry.D06uBUaW.cjs'),fetchTextByLine=require('./chunks/fetch-text-by-line.YY5b5610.cjs'),require$$3=require('csv-parse/sync'),trie=require('./chunks/trie.Vu1FNyv-.cjs'),require$$0=require('node:path'),parseDnsmasq=require('./chunks/parse-dnsmasq.CiH7YJVY.cjs');require('picocolors'),require('undici'),require('undici-cache-store-better-sqlite3'),require('node:util'),require('node:fs'),require('node:process'),require('node:readline'),require('node:stream/web'),require('foxts/guard'),require('./chunks/misc.BpcQjda1.cjs'),require('node:fs/promises'),require('foxts/noop'),require('foxts/fast-string-array-join'),require('foxts/bitwise'),require('./chunks/normalize-domain.Cfz4j8eP.cjs'),require('tldts'),require('./chunks/loose-tldts-opt.DLUpGXpj.cjs'),require('foxts/is-probably-ip');var validateDomestic$1 = {};var hasRequiredValidateDomestic; function requireValidateDomestic () { if (hasRequiredValidateDomestic) return validateDomestic$1; hasRequiredValidateDomestic = 1; (function (exports) { Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "parseDomesticList", { enumerable: true, get: function() { return parseDomesticList; } }); const _fetchtextbyline = /*@__PURE__*/ fetchTextByLine.a(); const _sync = require$$3; const _trie = /*@__PURE__*/ trie.r(); const _nodepath = /*#__PURE__*/ _interop_require_default(require$$0); const _processline = /*@__PURE__*/ fetchTextByLine.r(); const _dir = /*@__PURE__*/ fetchRetry.a(); const _parsednsmasq = /*@__PURE__*/ parseDnsmasq.r(); const _fetchretry = /*@__PURE__*/ fetchRetry.r(); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } async function parseDomesticList() { const trie = new _trie.HostnameSmolTrie(await (0, _parsednsmasq.parseFelixDnsmasqFromResp)(await (0, _fetchretry.$$fetch)('https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf'))); const top5000 = new Set(); const res = await (await (0, _fetchretry.$$fetch)('https://radar.cloudflare.com/charts/LargerTopDomainsTable/attachment?id=1077&top=10000', { headers: { accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', 'accept-language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,zh-TW;q=0.6,es;q=0.5', 'sec-ch-ua': '"Google Chrome";v="123", "Not:A-Brand";v="8", "Chromium";v="123"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"macOS"', 'sec-fetch-dest': 'document', 'sec-fetch-mode': 'navigate', 'sec-fetch-site': 'none', 'sec-fetch-user': '?1', 'upgrade-insecure-requests': '1' } })).text(); const stream = (0, _sync.parse)(res); for await (const [domain] of stream){ if (trie.has(domain)) { top5000.add(domain); } console.log({ domain }); } const notIncludedDomestic = new Set(top5000); const runAgainstRuleset = async (ruleset)=>{ for await (const l of (0, _fetchtextbyline.readFileByLine)(ruleset)){ const line = (0, _processline.processLine)(l); if (!line) continue; const [type, domain] = line.split(','); if (type === 'DOMAIN-SUFFIX') { if (top5000.has(domain)) { notIncludedDomestic.delete(domain); } } else if (type === 'DOMAIN-KEYWORD') { for (const d of top5000){ if (d.includes(domain)) { notIncludedDomestic.delete(d); } } } } }; // await Promise.all([ await runAgainstRuleset(_nodepath.default.resolve(_dir.SOURCE_DIR, 'non_ip/domestic.conf')); // ]); console.log(notIncludedDomestic.size, notIncludedDomestic); } } (validateDomestic$1)); return validateDomestic$1; }var validateDomesticExports = requireValidateDomestic(); const validateDomestic = /*@__PURE__*/fetchRetry.g(validateDomesticExports);module.exports=validateDomestic;