'use strict';Object.defineProperty(exports,Symbol.toStringTag,{value:'Module'});const buildChnCidr=require('../_virtual/build-chn-cidr.cjs'),fetchTextByLine=require('./lib/fetch-text-by-line.cjs'),index=require('./trace/index.cjs'),require$$2=require('fast-cidr-tools'),memoPromise=require('./lib/memo-promise.cjs'),cidr=require('./constants/cidr.cjs'),appendArrayInPlace=require('./lib/append-array-in-place.cjs'),ip=require('./lib/rules/ip.cjs'),fsMemo=require('./lib/fs-memo.cjs'),description=require('./constants/description.cjs');var hasRequiredBuildChnCidr; function requireBuildChnCidr () { if (hasRequiredBuildChnCidr) return buildChnCidr.__module.exports; hasRequiredBuildChnCidr = 1; (function (module, 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, { buildChnCidr: function() { return buildChnCidr; }, getChnCidrPromise: function() { return getChnCidrPromise; } }); const _fetchtextbyline = /*@__PURE__*/ fetchTextByLine.__require(); const _trace = /*@__PURE__*/ index.__require(); const _fastcidrtools = require$$2; const _memopromise = /*@__PURE__*/ memoPromise.__require(); const _cidr = /*@__PURE__*/ cidr.__require(); const _appendarrayinplace = /*@__PURE__*/ appendArrayInPlace.__require(); const _ip = /*@__PURE__*/ ip.__require(); const _fsmemo = /*@__PURE__*/ fsMemo.__require(); const _description = /*@__PURE__*/ description.__require(); const PROBE_CHN_CIDR_V4 = [ // NetEase Hangzhou '223.252.196.38', // Aliyun ShenZhen '120.78.92.171' ]; const getChnCidrPromise = (0, _memopromise.createMemoizedPromise)((0, _fsmemo.cachedOnlyFail)(async function getChnCidr() { const [_cidr4, cidr6] = await Promise.all([ (0, _fetchtextbyline.fetchRemoteTextByLine)('https://raw.githubusercontent.com/misakaio/chnroutes2/master/chnroutes.txt', true).then(Array.fromAsync), (0, _fetchtextbyline.fetchRemoteTextByLine)('https://gaoyifan.github.io/china-operator-ip/china6.txt', true).then(Array.fromAsync) ]); const cidr4 = (0, _fastcidrtools.exclude)((0, _appendarrayinplace.appendArrayInPlace)(_cidr4, _cidr.CN_CIDR_MISSING_IN_CHNROUTE), _cidr.NON_CN_CIDR_INCLUDED_IN_CHNROUTE, true); for (const probeIp of PROBE_CHN_CIDR_V4){ if (!(0, _fastcidrtools.contains)(cidr4, PROBE_CHN_CIDR_V4)) { const err = new TypeError('chnroutes missing probe IP'); err.cause = probeIp; throw err; } } return [ cidr4, cidr6 ]; }, { serializer: JSON.stringify, deserializer: JSON.parse })); const buildChnCidr = (0, _trace.task)(require.main === module, __filename)(async (span)=>{ const [filteredCidr4, cidr6] = await span.traceChildAsync('download chnroutes2', getChnCidrPromise); // Can not use SHARED_DESCRIPTION here as different license const description = (0, _description.createFileDescription)('CC BY-SA 2.0'); return Promise.all([ new _ip.IPListOutput(span, 'china_ip', false).withTitle('Sukka\'s Ruleset - Mainland China IPv4 CIDR').withDescription([ ...description, 'Data from https://misaka.io (misakaio @ GitHub)' ]).bulkAddCIDR4(filteredCidr4).write(), new _ip.IPListOutput(span, 'china_ip_ipv6', false).withTitle('Sukka\'s Ruleset - Mainland China IPv6 CIDR').withDescription([ ...description, 'Data from https://github.com/gaoyifan/china-operator-ip' ]).bulkAddCIDR6(cidr6).write() ]); }); } (buildChnCidr.__module, buildChnCidr.__module.exports)); return buildChnCidr.__module.exports; }exports.__require=requireBuildChnCidr;