Surge_by_SukkaW/Dist/Build/build-chn-cidr2.cjs
SukkaW d354c5e988
Some checks are pending
Build / Build (push) Waiting to run
Build / Diff output (push) Blocked by required conditions
Build / Deploy to Cloudflare Pages (push) Blocked by required conditions
Build / Deploy to GitHub and GitLab (push) Blocked by required conditions
Chore: maintainance
2025-02-07 17:52:36 +08:00

77 lines
3.9 KiB
JavaScript

'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;