diff --git a/Build/build-anti-bogus-domain.ts b/Build/build-anti-bogus-domain.ts index 127b9464a..9ecfa61d5 100644 --- a/Build/build-anti-bogus-domain.ts +++ b/Build/build-anti-bogus-domain.ts @@ -14,7 +14,7 @@ const getBogusNxDomainIPsPromise = fsFetchCache.apply( async () => { const result: string[] = []; for await (const line of await fetchRemoteTextByLine(URL)) { - if (line && line.startsWith('bogus-nxdomain=')) { + if (line.startsWith('bogus-nxdomain=')) { const ip = line.slice(15).trim(); if (isProbablyIpv4(ip)) { result.push(`IP-CIDR,${ip}/32,no-resolve`); diff --git a/Build/lib/aho-corasick.test.ts b/Build/lib/aho-corasick.test.ts index a47d537ce..a6713f4c9 100644 --- a/Build/lib/aho-corasick.test.ts +++ b/Build/lib/aho-corasick.test.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/no-unresolved -- bun +// eslint-disable-next-line import-x/no-unresolved -- bun import { describe, expect, it } from 'bun:test'; import createKeywordFilter from './aho-corasick'; diff --git a/Build/lib/cache-filesystem.ts b/Build/lib/cache-filesystem.ts index c0387c320..1135e791a 100644 --- a/Build/lib/cache-filesystem.ts +++ b/Build/lib/cache-filesystem.ts @@ -1,4 +1,4 @@ -// eslint-disable-next-line import/no-unresolved -- bun built-in module +// eslint-disable-next-line import-x/no-unresolved -- bun built-in module import { Database } from 'bun:sqlite'; import os from 'os'; import path from 'path'; diff --git a/Build/lib/fetch-assets.ts b/Build/lib/fetch-assets.ts index f1ef4aa7c..81debfb27 100644 --- a/Build/lib/fetch-assets.ts +++ b/Build/lib/fetch-assets.ts @@ -8,11 +8,11 @@ class CustomAbortError extends Error { const sleepWithAbort = (ms: number, signal: AbortSignal) => new Promise((resolve, reject) => { if (signal.aborted) { - reject(signal.reason); + reject(signal.reason as Error); return; } - function stop(this: AbortSignal) { reject(this.reason); } + function stop(this: AbortSignal) { reject(this.reason as Error); } signal.addEventListener('abort', stop, { once: true }); Bun.sleep(ms).then(resolve).catch(reject).finally(() => signal.removeEventListener('abort', stop)); diff --git a/Build/lib/fetch-retry.ts b/Build/lib/fetch-retry.ts index ace61eec3..09539272d 100644 --- a/Build/lib/fetch-retry.ts +++ b/Build/lib/fetch-retry.ts @@ -7,12 +7,13 @@ const MAX_RETRIES = 5; const MAX_RETRY_AFTER = 20; const FACTOR = 6; -function isClientError(err: any): err is NodeJS.ErrnoException { - if (!err) return false; - return ( - err.code === 'ERR_UNESCAPED_CHARACTERS' - || err.message === 'Request path contains unescaped characters' - ); +function isClientError(err: unknown): err is NodeJS.ErrnoException { + if (!err || typeof err !== 'object') return false; + + if ('code' in err) return err.code === 'ERR_UNESCAPED_CHARACTERS'; + if ('message' in err) return err.message === 'Request path contains unescaped characters'; + + return false; } export class ResponseError extends Error { @@ -70,7 +71,7 @@ function createFetchRetry($fetch: typeof fetch): FetchWithRetry { return await retry(async (bail) => { try { // this will be retried - const res = (await $fetch(url, opts)) as Response; + const res = (await $fetch(url, opts)); if ((res.status >= 500 && res.status < 600) || res.status === 429) { // NOTE: doesn't support http-date format diff --git a/Build/lib/trie.test.ts b/Build/lib/trie.test.ts index ecbe63016..4fbefc4f4 100644 --- a/Build/lib/trie.test.ts +++ b/Build/lib/trie.test.ts @@ -1,5 +1,5 @@ import { createTrie } from './trie'; -// eslint-disable-next-line import/no-unresolved -- fuck eslint-import +// eslint-disable-next-line import-x/no-unresolved -- fuck eslint-import import { describe, expect, it } from 'bun:test'; describe('Trie', () => { diff --git a/Build/validate-domestic.ts b/Build/validate-domestic.ts index 49f672913..290f561c2 100644 --- a/Build/validate-domestic.ts +++ b/Build/validate-domestic.ts @@ -1,5 +1,4 @@ import { fetchRemoteTextByLine, readFileByLine } from './lib/fetch-text-by-line'; -import { Readable } from 'stream'; import { parse } from 'csv-parse/sync'; import { createTrie } from './lib/trie'; import path from 'path'; diff --git a/Source/domainset/cdn.conf b/Source/domainset/cdn.conf index 4e15eb72a..f47408b52 100644 --- a/Source/domainset/cdn.conf +++ b/Source/domainset/cdn.conf @@ -61,6 +61,7 @@ cdn.embed.ly gitpkg-fork.vercel.sh cdn.redoc.ly .staticimgly.com +code.ionicframework.com # Open Source Website and Services docs.rs @@ -306,6 +307,9 @@ safebrowsing.google.com safebrowsing.googleapis.com # Google NEL .nel.goog +# Connectivity Check +connectivitycheck.android.com +connectivitycheck.gstatic.com # >> Apple CDN # Apple Live @@ -820,6 +824,7 @@ edge1.certona.net assets.hearstapps.com cdn.quadpay.com cdn1.identitymind.com +cdn.plot.ly cdn.transcend.io .transcend-cdn.com @@ -903,9 +908,15 @@ cdn2.editmysite.com updates.signal.org updates2.signal.org -# Segment +# >> Segment cdn.segment.com +# >> TikTok +# Following domains DO NOT have ANY geo block and can even access in Hong Kong +.tiktokcdn.com +.tiktokcdn-us.com +.ibyteimg.com + # >> Email Image CDN .cmail20.com css.createsend1.com @@ -1061,6 +1072,10 @@ ocsp2.apple.com ocsp.sectigo.com crl.usertrust.com crt.comodoca.com +crl.verisign.com +ocsp.godaddy.com +# https://letsencrypt.org/docs/lencr.org/ +.lencr.org # >> General CDN # BackBlaze @@ -2513,3 +2528,10 @@ ledger-wp-website-s3-prd.ledger.com cdn.kobo.com static.kobo.com cdn.gofundme.com +static-r.kamihimeproject.net +web-assets.otogi-frontier.com +cdn.datdota.com +cdn.up-timely.com +img.supjav.com +.mycdn.me +favicon.yandex.net diff --git a/Source/domainset/reject_sukka.conf b/Source/domainset/reject_sukka.conf index 069de376c..1b0a0c7b4 100644 --- a/Source/domainset/reject_sukka.conf +++ b/Source/domainset/reject_sukka.conf @@ -67,6 +67,7 @@ optimus-ads.amap.com .macyy.cn .macdown.com .zupee.com +.screenstudio.vip # >> Qihoo 360 hot.m.shouji.360tpcdn.com diff --git a/Source/non_ip/domestic.conf b/Source/non_ip/domestic.conf index caf40d94f..2adf9a4ed 100644 --- a/Source/non_ip/domestic.conf +++ b/Source/non_ip/domestic.conf @@ -369,6 +369,7 @@ DOMAIN,cn.download.nvidia.com DOMAIN-SUFFIX,12306.cn DOMAIN-SUFFIX,12306.com +DOMAIN-SUFFIX,123pan.com DOMAIN-SUFFIX,1905.com DOMAIN-SUFFIX,22.cn DOMAIN-SUFFIX,263.net @@ -384,6 +385,8 @@ DOMAIN-SUFFIX,51ctocdn.cn DOMAIN-SUFFIX,56.com DOMAIN-SUFFIX,58.com DOMAIN-SUFFIX,66law.cn +DOMAIN-SUFFIX,88.com +DOMAIN-SUFFIX,88y.cn DOMAIN-SUFFIX,9game.cn DOMAIN-SUFFIX,aicdn.com DOMAIN-SUFFIX,aicoinstorge.com @@ -480,6 +483,7 @@ DOMAIN-SUFFIX,jiguang.cn DOMAIN-SUFFIX,jb51.net DOMAIN-SUFFIX,jpush.cn DOMAIN-SUFFIX,kaiyanapp.com +DOMAIN-SUFFIX,kdslife.net DOMAIN-SUFFIX,keepcdn.com DOMAIN-SUFFIX,kfc.com.cn DOMAIN-SUFFIX,kkmh.com @@ -519,6 +523,8 @@ DOMAIN-SUFFIX,orayimg.com DOMAIN-SUFFIX,oray-img.com DOMAIN-SUFFIX,oschina.net DOMAIN-SUFFIX,pcauto.com.cn +DOMAIN-SUFFIX,pchome.net +DOMAIN-SUFFIX,pchpic.net DOMAIN-SUFFIX,pconline.com.cn DOMAIN-SUFFIX,peiluyou.com DOMAIN-SUFFIX,php.cn @@ -584,6 +590,7 @@ DOMAIN-SUFFIX,zdic.net DOMAIN-SUFFIX,zhangzs.com DOMAIN-SUFFIX,zhipin.com DOMAIN-SUFFIX,zol.com.cn +DOMAIN-SUFFIX,zol-img.com.cn DOMAIN-SUFFIX,zui.com DOMAIN-SUFFIX,zuimeitianqi.com DOMAIN-SUFFIX,zuoyebang.com diff --git a/Source/non_ip/domestic.ts b/Source/non_ip/domestic.ts index adb5f16a6..664cecdee 100644 --- a/Source/non_ip/domestic.ts +++ b/Source/non_ip/domestic.ts @@ -199,6 +199,7 @@ export const DOMESTICS = { 'iesdouyin.com', 'pstatp.com', 'snssdk.com', + 'bytegoofy.com', 'toutiao.com', 'feishu.cn', 'feishu.net', diff --git a/Source/non_ip/global.conf b/Source/non_ip/global.conf index 42eabb5a7..ae57ddc93 100644 --- a/Source/non_ip/global.conf +++ b/Source/non_ip/global.conf @@ -90,6 +90,7 @@ DOMAIN-SUFFIX,run.app DOMAIN-SUFFIX,cloudflare-dns.com DOMAIN-SUFFIX,cloudflare.com DOMAIN-SUFFIX,cloudflareresolve.com +DOMAIN-SUFFIX,cloudflarestatus.com # >> Microsoft Overseas DOMAIN-SUFFIX,office365.com @@ -304,6 +305,7 @@ DOMAIN-SUFFIX,bitfinex.com DOMAIN-SUFFIX,bit.ly DOMAIN-SUFFIX,bitly.com DOMAIN-SUFFIX,bitmex.com +DOMAIN-SUFFIX,blogimg.jp DOMAIN-SUFFIX,bloomberg.com DOMAIN-SUFFIX,blizzard.com DOMAIN-SUFFIX,booklive.jp @@ -350,6 +352,7 @@ DOMAIN-SUFFIX,dynu.com DOMAIN-SUFFIX,dynu.net DOMAIN-SUFFIX,dw.com DOMAIN-SUFFIX,e-hentai.org +DOMAIN-SUFFIX,edgecastcdn.net DOMAIN-SUFFIX,exhentai.org DOMAIN-SUFFIX,etsy.com DOMAIN-SUFFIX,euronews.com @@ -362,6 +365,7 @@ DOMAIN-SUFFIX,flipkart.com DOMAIN-SUFFIX,gameloft.com DOMAIN-SUFFIX,gate.io DOMAIN-SUFFIX,genius.com +DOMAIN-SUFFIX,getchu.com DOMAIN-SUFFIX,gettyimages.com DOMAIN-SUFFIX,gitlab.com DOMAIN-SUFFIX,ghostery.com @@ -391,6 +395,7 @@ DOMAIN-SUFFIX,istockphoto.com DOMAIN-SUFFIX,iwara.tv DOMAIN-SUFFIX,ixxx.com DOMAIN-SUFFIX,jable.tv +DOMAIN-SUFFIX,java.com DOMAIN-SUFFIX,jkforum.net DOMAIN-SUFFIX,jsdelivr.com DOMAIN-SUFFIX,jsdelivr.net @@ -403,7 +408,7 @@ DOMAIN-SUFFIX,kwai.com DOMAIN-SUFFIX,launchdarkly.com DOMAIN-SUFFIX,leetcode.com DOMAIN-SUFFIX,ledger.com -DOMAIN-SUFFIX,live.com +DOMAIN-SUFFIX,mapbox.com DOMAIN-SUFFIX,mastodon.social DOMAIN-SUFFIX,matrix.org DOMAIN-SUFFIX,meetup.com @@ -416,13 +421,16 @@ DOMAIN-SUFFIX,moegirl.uk DOMAIN-SUFFIX,mojang.com DOMAIN-SUFFIX,mozilla.com DOMAIN-SUFFIX,mozilla.org +DOMAIN-SUFFIX,muku.tv DOMAIN-SUFFIX,myfreecams.com DOMAIN-SUFFIX,mypikpak.com DOMAIN-SUFFIX,naver.com DOMAIN-SUFFIX,nbcnews.com DOMAIN-SUFFIX,newsblur.com DOMAIN-SUFFIX,nhentai.net +DOMAIN-SUFFIX,nhentai.xxx DOMAIN-SUFFIX,noip.com +DOMAIN-SUFFIX,notion.so DOMAIN-SUFFIX,npm.im DOMAIN-SUFFIX,npmjs.com DOMAIN-SUFFIX,nyaa.si @@ -495,6 +503,7 @@ DOMAIN-SUFFIX,stackoverflow.com DOMAIN-SUFFIX,steamcommunity.com DOMAIN-SUFFIX,stripchat.com DOMAIN-SUFFIX,substack.com +DOMAIN-SUFFIX,supjav.com DOMAIN-SUFFIX,surfshark.com DOMAIN-SUFFIX,t66y.com DOMAIN-SUFFIX,tenor.com @@ -551,10 +560,11 @@ DOMAIN-SUFFIX,xvideos.com DOMAIN-SUFFIX,xvideos-cdn.com DOMAIN-SUFFIX,yahoo.com DOMAIN-SUFFIX,yahoo.co.jp +DOMAIN-SUFFIX,yandex.com +DOMAIN-SUFFIX,yandex.net +DOMAIN-SUFFIX,yandex.ru DOMAIN-SUFFIX,zendesk.com -DOMAIN,onedrive.live.com - DOMAIN-KEYWORD,jav # Keyword Collected DOMAIN-KEYWORD,pinterest diff --git a/Source/non_ip/microsoft.conf b/Source/non_ip/microsoft.conf index 522a59f20..4a05be3e2 100644 --- a/Source/non_ip/microsoft.conf +++ b/Source/non_ip/microsoft.conf @@ -9,6 +9,7 @@ DOMAIN-SUFFIX,aadrm.com DOMAIN-SUFFIX,acompli.com DOMAIN-SUFFIX,acompli.net DOMAIN-SUFFIX,aka.ms +DOMAIN-SUFFIX,appcenter.ms DOMAIN-SUFFIX,aria.ms DOMAIN-SUFFIX,asp.net DOMAIN-SUFFIX,aspnetcdn.com @@ -18,16 +19,19 @@ DOMAIN-SUFFIX,azure.net DOMAIN-SUFFIX,azureedge.net DOMAIN-SUFFIX,azurerms.com DOMAIN-SUFFIX,bing.com +DOMAIN-SUFFIX,clarity.ms DOMAIN-SUFFIX,cloudapp.net DOMAIN-SUFFIX,cloudappsecurity.com DOMAIN-SUFFIX,docs.com DOMAIN-SUFFIX,edgesuite.net DOMAIN-SUFFIX,gfx.ms DOMAIN-KEYWORD,hotmail +DOMAIN-SUFFIX,hotmail.com DOMAIN-SUFFIX,live.com DOMAIN-SUFFIX,live.net DOMAIN-SUFFIX,lync.com DOMAIN-SUFFIX,microsoft.com +DOMAIN-SUFFIX,microsoftonline.com DOMAIN-SUFFIX,msappproxy.net DOMAIN-SUFFIX,msauth.net DOMAIN-SUFFIX,msauthimages.net diff --git a/Source/non_ip/reject.conf b/Source/non_ip/reject.conf index e9588085f..756072280 100644 --- a/Source/non_ip/reject.conf +++ b/Source/non_ip/reject.conf @@ -187,6 +187,10 @@ DOMAIN-KEYWORD,appsflyer DOMAIN-KEYWORD,dnserror DOMAIN-KEYWORD,marketing.net DOMAIN,stun.smartgslb.com +DOMAIN-SUFFIX,2o7.net +DOMAIN-SUFFIX,omtrdc.net +DOMAIN-SUFFIX,footprintdns.com +DOMAIN-SUFFIX,measure.office.com DOMAIN-KEYWORD,_vmind.qqvideo.tc.qq.com DOMAIN-KEYWORD,-logging.nextmedia.com @@ -217,12 +221,6 @@ DOMAIN-KEYWORD,smetrics.marketing. DOMAIN-SUFFIX,notifysrv.com DOMAIN-SUFFIX,notify6.com -# >> Simplify CNAME disguised domains -DOMAIN-SUFFIX,2o7.net -DOMAIN-SUFFIX,omtrdc.net -DOMAIN-SUFFIX,footprintdns.com -DOMAIN-SUFFIX,measure.office.com - # Tencent AD KEYWORD DOMAIN-KEYWORD,wxsnsdy diff --git a/Source/stream.ts b/Source/stream.ts index b114e6cc0..d5df977d0 100644 --- a/Source/stream.ts +++ b/Source/stream.ts @@ -659,15 +659,17 @@ const TIKTOK: StreamService = { rules: [ 'DOMAIN-SUFFIX,byteoversea.com', 'DOMAIN-SUFFIX,ibytedtos.com', - 'DOMAIN-SUFFIX,ibyteimg.com', + // 'DOMAIN-SUFFIX,ibyteimg.com', // We confirm that tiktokcdn DOES NOT have ANY geoblock 'DOMAIN-SUFFIX,ipstatp.com', 'DOMAIN-SUFFIX,isnssdk.com', 'DOMAIN-SUFFIX,muscdn.com', 'DOMAIN-SUFFIX,musical.ly', 'DOMAIN-SUFFIX,tiktok.com', + 'DOMAIN-SUFFIX,tiktok.us', 'DOMAIN-SUFFIX,tik-tokapi.com', - 'DOMAIN-SUFFIX,tiktokcdn.com', + // 'DOMAIN-SUFFIX,tiktokcdn.com', // We confirm that tiktokcdn DOES NOT have ANY geoblock 'DOMAIN-SUFFIX,tiktokv.com', + 'DOMAIN-SUFFIX,tiktokw.com', 'DOMAIN-KEYWORD,-tiktokcdn-com', 'USER-AGENT,TikTok*' diff --git a/bun.lockb b/bun.lockb index 2ba123b4e..2a82fa423 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/package.json b/package.json index 6716239be..9a672cf82 100644 --- a/package.json +++ b/package.json @@ -32,15 +32,15 @@ "tldts": "^6.1.16" }, "devDependencies": { - "@eslint-sukka/node": "5.1.2", - "@eslint-sukka/ts": "5.1.2", + "@eslint-sukka/node": "6.0.0-beta.3", + "@eslint-sukka/ts": "6.0.0-beta.3", "@types/async-retry": "^1.4.8", "@types/bun": "^1.0.12", "@types/tar-stream": "^3.1.3", "bun-types": "^1.1.3", - "eslint": "^8.57.0", - "eslint-config-sukka": "5.1.2", - "eslint-formatter-sukka": "5.1.2", + "eslint": "^9.0.0", + "eslint-config-sukka": "6.0.0-beta.3", + "eslint-formatter-sukka": "6.0.0-beta.3", "mitata": "^0.1.11", "typescript": "^5.4.5" },