From cdcd71adc0bd5a542f49d71a692b8cbbee460519 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Sat, 31 Aug 2024 13:37:30 +0800 Subject: [PATCH 1/8] Update CDN & Global Hosts --- Source/domainset/cdn.conf | 15 ++++++--------- Source/non_ip/global.conf | 2 ++ 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/Source/domainset/cdn.conf b/Source/domainset/cdn.conf index 05d0654fd..0a3df250e 100644 --- a/Source/domainset/cdn.conf +++ b/Source/domainset/cdn.conf @@ -84,12 +84,14 @@ consentdeliveryfd.azurefd.net .rollupjs.org .pnpm.io telemetry.nextjs.org +telemetry.vercel.com npmgraph.js.org bundlephobia.com pkg-size.dev vanilla-extract.style ipe-plugins.js.org momentjs.com +typescript-eslint.io # Badge Server api.bintray.com @@ -425,6 +427,7 @@ cdn.graph.office.net res.cdn.office.net res-1.cdn.office.net res-geo.cdn.office.net +statics.teams.cdn.office.net static2.sharepointonline.com prod.msocdn.com spoprod-a.akamaihd.net @@ -587,18 +590,11 @@ s3media.squarespace.com .f-droid.org # >> StackBlitz -.c.staticblitz.com -.w.staticblitz.com -.t.staticblitz.com -.npm.staticblitz.com -.v-corp.staticblitz.com -.w-corp.staticblitz.com -ghavatars.staticblitz.com -nr.staticblitz.com -.w-credentialless.staticblitz.com +.staticblitz.com .stackblitz.io .local.webcontainer.io .w-credentialless-staticblitz.com +.w-corp-staticblitz.com # >> hCaptcha newassets.hcaptcha.com @@ -2315,6 +2311,7 @@ cdn.circle.so .eu-browse.startpage.com .eu-proxy.startpage.com .proxy.startpage.com +.proxy1.startpage.com .proxy2.startpage.com assets.matters.news assets-next.matters.news diff --git a/Source/non_ip/global.conf b/Source/non_ip/global.conf index 7367d0cd4..b3c9dbe17 100644 --- a/Source/non_ip/global.conf +++ b/Source/non_ip/global.conf @@ -353,6 +353,7 @@ DOMAIN-SUFFIX,520cc.cc DOMAIN-SUFFIX,9gag.com DOMAIN-SUFFIX,aaa.com DOMAIN-SUFFIX,abc.net.au +DOMAIN-SUFFIX,acg.mn DOMAIN-SUFFIX,acg.rip DOMAIN-SUFFIX,afraid.org DOMAIN-SUFFIX,akamai.net @@ -620,6 +621,7 @@ DOMAIN-SUFFIX,split.io DOMAIN-SUFFIX,stackblitz.com DOMAIN-SUFFIX,stackexchange.com DOMAIN-SUFFIX,stackoverflow.com +DOMAIN-SUFFIX,startpage.com DOMAIN-SUFFIX,steamcommunity.com DOMAIN-SUFFIX,stripchat.com DOMAIN-SUFFIX,substack.com From 1b8630fbb3ba1c18ac3783aaea23b8043b3c64f8 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Sun, 1 Sep 2024 02:20:36 +0800 Subject: [PATCH 2/8] Update CDN & Global Hosts --- Source/domainset/cdn.conf | 1 + Source/non_ip/global.conf | 2 ++ Source/non_ip/my_proxy.conf | 9 +++++++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Source/domainset/cdn.conf b/Source/domainset/cdn.conf index 0a3df250e..1f2daf366 100644 --- a/Source/domainset/cdn.conf +++ b/Source/domainset/cdn.conf @@ -2764,3 +2764,4 @@ images.bfmtv.com .assets.adidas.com .glass.adidas.com assets.context.ly +.kirafile.com diff --git a/Source/non_ip/global.conf b/Source/non_ip/global.conf index b3c9dbe17..4a2c866fc 100644 --- a/Source/non_ip/global.conf +++ b/Source/non_ip/global.conf @@ -467,6 +467,7 @@ DOMAIN-SUFFIX,genius.com DOMAIN-SUFFIX,getchu.com DOMAIN-SUFFIX,gettyimages.com DOMAIN-SUFFIX,ghostery.com +DOMAIN-SUFFIX,gitkraken.dev DOMAIN-SUFFIX,godaddy.com DOMAIN-SUFFIX,go.dev DOMAIN-SUFFIX,gofundme.com @@ -611,6 +612,7 @@ DOMAIN-SUFFIX,slack.com DOMAIN-SUFFIX,sleazyfork.org DOMAIN-SUFFIX,slideshare.net DOMAIN-SUFFIX,sm.ms +DOMAIN-SUFFIX,softonic.com DOMAIN-SUFFIX,solidot.org DOMAIN-SUFFIX,soundcloud.com DOMAIN-SUFFIX,south-plus.org diff --git a/Source/non_ip/my_proxy.conf b/Source/non_ip/my_proxy.conf index 43b0631ea..843a97e1e 100644 --- a/Source/non_ip/my_proxy.conf +++ b/Source/non_ip/my_proxy.conf @@ -1,9 +1,14 @@ # $ meta_title Sukka's Ruleset - Proxy +DOMAIN,ip.cn DOMAIN-SUFFIX,ip.sb DOMAIN-SUFFIX,ip-api.com +DOMAIN-SUFFIX,ipdata.co +DOMAIN-SUFFIX,ipwho.is +DOMAIN-SUFFIX,ipregistry.co +DOMAIN-SUFFIX,ipgeolocation.io +DOMAIN-SUFFIX,db-ip.com +DOMAIN-SUFFIX,ipstack.com DOMAIN-SUFFIX,nextdns.io DOMAIN-SUFFIX,services.googleapis.cn - -DOMAIN,ip.cn From 1f883bdf4bae326b8f97095501007dd71642f754 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Mon, 2 Sep 2024 02:10:43 +0800 Subject: [PATCH 3/8] Update CDN & Global Hosts --- Source/domainset/cdn.conf | 3 +++ Source/non_ip/global.conf | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/Source/domainset/cdn.conf b/Source/domainset/cdn.conf index 1f2daf366..3e5a118d1 100644 --- a/Source/domainset/cdn.conf +++ b/Source/domainset/cdn.conf @@ -941,6 +941,8 @@ cdn1.stamped.io app.backinstock.org assets.videowise.com app-static.turtl.co +.quip-cdn.com +.quip-marketing.com cdn.transcend.io .transcend-cdn.com @@ -2765,3 +2767,4 @@ images.bfmtv.com .glass.adidas.com assets.context.ly .kirafile.com +cms-assets.nodecraft.com diff --git a/Source/non_ip/global.conf b/Source/non_ip/global.conf index 4a2c866fc..352e30485 100644 --- a/Source/non_ip/global.conf +++ b/Source/non_ip/global.conf @@ -407,6 +407,7 @@ DOMAIN-SUFFIX,character.ai DOMAIN-SUFFIX,cloudfront.net DOMAIN-SUFFIX,clubhouse.com DOMAIN-SUFFIX,clubhouseapi.com +DOMAIN-SUFFIX,codecov.io DOMAIN-SUFFIX,codepen.io DOMAIN-SUFFIX,codesandbox.io DOMAIN-SUFFIX,coinex.com @@ -423,6 +424,7 @@ DOMAIN-SUFFIX,deepl.com DOMAIN-SUFFIX,deezer.com DOMAIN-SUFFIX,deviantart.com DOMAIN-SUFFIX,deviantart.net +DOMAIN-SUFFIX,dev.to DOMAIN-SUFFIX,digitalocean.com DOMAIN-SUFFIX,dish.com DOMAIN-SUFFIX,disqus.com @@ -467,6 +469,7 @@ DOMAIN-SUFFIX,genius.com DOMAIN-SUFFIX,getchu.com DOMAIN-SUFFIX,gettyimages.com DOMAIN-SUFFIX,ghostery.com +DOMAIN-SUFFIX,gitkraken.com DOMAIN-SUFFIX,gitkraken.dev DOMAIN-SUFFIX,godaddy.com DOMAIN-SUFFIX,go.dev @@ -525,6 +528,7 @@ DOMAIN-SUFFIX,mega.nz DOMAIN-SUFFIX,mega.co.nz DOMAIN-SUFFIX,mega.io DOMAIN-SUFFIX,missav.com +DOMAIN-SUFFIX,missav.ws DOMAIN-SUFFIX,misskey.io DOMAIN-SUFFIX,moegirl.uk DOMAIN-SUFFIX,mojang.com @@ -585,6 +589,7 @@ DOMAIN-SUFFIX,reddit.com DOMAIN-SUFFIX,redditmail.com DOMAIN-SUFFIX,redditmedia.com DOMAIN-SUFFIX,redditstatic.com +DOMAIN-SUFFIX,redditspace.com DOMAIN-SUFFIX,redtube.com DOMAIN-SUFFIX,redtubepremium.com DOMAIN-SUFFIX,render.com From 1080a625bdfd603e6d044508cb3f4245de5ddf2a Mon Sep 17 00:00:00 2001 From: SukkaW Date: Mon, 2 Sep 2024 04:06:30 +0800 Subject: [PATCH 4/8] Update CDN & Reject Hosts --- Source/domainset/cdn.conf | 5 ++++- Source/domainset/reject_sukka.conf | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Source/domainset/cdn.conf b/Source/domainset/cdn.conf index 3e5a118d1..dae2ff46e 100644 --- a/Source/domainset/cdn.conf +++ b/Source/domainset/cdn.conf @@ -454,6 +454,7 @@ xpaywalletcdn.azureedge.net edge-consumer-static.azureedge.net claritystatic.azureedge.net .static.microsoft +.skypeassets.com # Appcenter mobilecenter.azureedge.net # Microsoft Cookie Conscent @@ -902,7 +903,7 @@ widgets.tree-nation.com info.knak.com apps.profitihub.com app.cookieyes.com -cdn-cookieyes.com +.cdn-cookieyes.com static.srcspot.com vice-prod.sdiapi.com sdk.snapkit.com @@ -1482,6 +1483,8 @@ denali-static.grammarly.com assets.extension.grammarly.com assets.grammarly.com static.grammarly.com +# this domain is beind cloudfront, so put this to cdn hosts +config.extension.grammarly.com # okta .oktacdn.com # OpenAI diff --git a/Source/domainset/reject_sukka.conf b/Source/domainset/reject_sukka.conf index 5dc42dedc..2ff2fa925 100644 --- a/Source/domainset/reject_sukka.conf +++ b/Source/domainset/reject_sukka.conf @@ -856,6 +856,7 @@ tag.clearbitscripts.com .femetrics.grammarly.io .f-log-extension.grammarly.io +.data.grammarly.com .femetrics.qagr.io cname.ebis.ne.jp From 4245fac2e1ba9467aa1f166789d97cb5280a9125 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Mon, 2 Sep 2024 20:42:04 +0800 Subject: [PATCH 5/8] Housekeeping --- Source/non_ip/my_plus.conf | 2 + package.json | 12 +- pnpm-lock.yaml | 549 ++++++++++++++----------------------- 3 files changed, 219 insertions(+), 344 deletions(-) diff --git a/Source/non_ip/my_plus.conf b/Source/non_ip/my_plus.conf index de0d91952..41fa6576f 100644 --- a/Source/non_ip/my_plus.conf +++ b/Source/non_ip/my_plus.conf @@ -25,6 +25,8 @@ DOMAIN,cdn-ms.cosplayeringoodfunk.me DOMAIN-SUFFIX,ffzy888.com DOMAIN-SUFFIX,image8899.net DOMAIN-SUFFIX,rrcdnbf3.com +DOMAIN-SUFFIX,myvideos.info +DOMAIN-SUFFIX,vplay.life # NPM DOMAIN,npm.io # SKK.MOE diff --git a/package.json b/package.json index 0aff8584c..5da8edd91 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "author": "", "license": "ISC", "dependencies": { - "@cliqz/adblocker": "^1.33.0", + "@cliqz/adblocker": "^1.33.1", "@jsdevtools/ez-spawn": "^3.0.4", "async-retry": "^1.3.3", "async-sema": "^3.1.1", @@ -41,9 +41,9 @@ "yaml": "^2.5.0" }, "devDependencies": { - "@eslint-sukka/node": "^6.2.1", + "@eslint-sukka/node": "^6.2.3", "@swc-node/register": "^1.10.9", - "@swc/core": "^1.7.21", + "@swc/core": "^1.7.22", "@types/async-retry": "^1.4.8", "@types/better-sqlite3": "^7.6.11", "@types/chai": "^4.3.19", @@ -52,9 +52,9 @@ "@types/tar-stream": "^3.1.3", "chai": "4", "eslint": "^9.9.1", - "eslint-config-sukka": "^6.2.1", - "eslint-formatter-sukka": "^6.2.1", - "mitata": "^0.1.11", + "eslint-config-sukka": "^6.2.3", + "eslint-formatter-sukka": "^6.2.3", + "mitata": "^0.1.14", "mocha": "^10.7.3", "typescript": "^5.5.4" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2d393e3f1..cfc8f7fcf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: .: dependencies: '@cliqz/adblocker': - specifier: ^1.33.0 - version: 1.33.0 + specifier: ^1.33.1 + version: 1.33.1 '@jsdevtools/ez-spawn': specifier: ^3.0.4 version: 3.0.4 @@ -70,14 +70,14 @@ importers: version: 2.5.0 devDependencies: '@eslint-sukka/node': - specifier: ^6.2.1 - version: 6.2.1(eslint@9.9.1)(typescript@5.5.4) + specifier: ^6.2.3 + version: 6.2.3(eslint@9.9.1)(typescript@5.5.4) '@swc-node/register': specifier: ^1.10.9 - version: 1.10.9(@swc/core@1.7.21)(@swc/types@0.1.12)(typescript@5.5.4) + version: 1.10.9(@swc/core@1.7.22)(@swc/types@0.1.12)(typescript@5.5.4) '@swc/core': - specifier: ^1.7.21 - version: 1.7.21 + specifier: ^1.7.22 + version: 1.7.22 '@types/async-retry': specifier: ^1.4.8 version: 1.4.8 @@ -103,14 +103,14 @@ importers: specifier: ^9.9.1 version: 9.9.1 eslint-config-sukka: - specifier: ^6.2.1 - version: 6.2.1(@typescript-eslint/eslint-plugin@8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) + specifier: ^6.2.3 + version: 6.2.3(@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) eslint-formatter-sukka: - specifier: ^6.2.1 - version: 6.2.1 + specifier: ^6.2.3 + version: 6.2.3 mitata: - specifier: ^0.1.11 - version: 0.1.11 + specifier: ^0.1.14 + version: 0.1.14 mocha: specifier: ^10.7.3 version: 10.7.3 @@ -120,14 +120,14 @@ importers: packages: - '@cliqz/adblocker-content@1.33.0': - resolution: {integrity: sha512-p8nYftY77VQNZ4JVvWbK/JWKWR0zeMWovt2FUgyb+ffqtlTtnUPwYF1PMEfG3invaq7dgDAeW5qAjEOxfm23Sg==} + '@cliqz/adblocker-content@1.33.1': + resolution: {integrity: sha512-UCA8kNVsn6o+scWJRKLWV8iJ+lpuiD9KGU9nkuZuE7q2uJSGkW1HSSmrOHLWcHcnnU+mkPWY8uMoychwcJMHDQ==} - '@cliqz/adblocker-extended-selectors@1.33.0': - resolution: {integrity: sha512-WjeQ0v6g/LHILL5nXphTGqLbuYS1golDyi/1qLGrTbNJQM3IjEzSpVIiIXKbaPNxLmdztlz9+0DGfqy1vCwHtA==} + '@cliqz/adblocker-extended-selectors@1.33.1': + resolution: {integrity: sha512-QXdMuSDbl+S0RgBReObKvsUivWfv3BBVuxQIIvKvbm/3o3dbSoZ2sQBVKW9f9Su9guEAU5Qx3FvVNeI3a4iECQ==} - '@cliqz/adblocker@1.33.0': - resolution: {integrity: sha512-MGRRvS7oBHqd9+ACm/poOr3mD30fs0SuzKquM9A6dqDEUWrLDeh+KKAb2uVyTjTEo4PRnlvPLn/tLxd3hPJlxQ==} + '@cliqz/adblocker@1.33.1': + resolution: {integrity: sha512-/SsLJxJNtvkuGeyW8WFxONUrNutm13YtqVb/VoK+VTK/I/YgpWiMdnYbF60jbCm7U3WFIl1XCyn7/Ep7uGu09A==} '@dual-bundle/import-meta-resolve@4.1.0': resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==} @@ -157,15 +157,11 @@ packages: resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-sukka/node@6.2.1': - resolution: {integrity: sha512-YECk5BbbqPkibjXQ5HuX6OWyTqkZ1TiHJjnE3ruSkbD6769J4Hil1xEcp2UrwLuQ6JOAf2FhuCW2e4iP1r+8Wg==} + '@eslint-sukka/node@6.2.3': + resolution: {integrity: sha512-f1sn7ExAFx+YbNOMaEILYOL/JsjuBAZyeCm9KIGeGPdJ/H3OMfiR6FF7JOUaQjb0xiimEZUMzjbPPKxy9VOFTg==} - '@eslint-sukka/shared@6.2.1': - resolution: {integrity: sha512-EQJaN5yNrvrRS1iIvJ8nCASKM/0aJ2/mAP8B9KLrHuorahIDi9C3U0ZyORobHZM7uLjQD05HWswG+ATpO5bsMA==} - - '@eslint/compat@1.1.1': - resolution: {integrity: sha512-lpHyRyplhGPL5mGEh6M9O5nnKk0Gz4bFI+Zu6tKlPpDUN7XshWvH9C/px4UVm87IAANE0W81CEsNGbS1KlzXpA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint-sukka/shared@6.2.3': + resolution: {integrity: sha512-Grq8N4awj0Y3RHTAr0VXvS/cUL+ToeObhUyQdYNHsM2h+ZxnBSbjwGCFUHe0CaNeClEh8ArBNa2GvE71Z/x8tw==} '@eslint/config-array@0.18.0': resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} @@ -283,19 +279,19 @@ packages: '@remusao/trie@1.5.0': resolution: {integrity: sha512-UX+3utJKgwCsg6sUozjxd38gNMVRXrY4TNX9VvCdSrlZBS1nZjRPi98ON3QjRAdf6KCguJFyQARRsulTeqQiPg==} - '@stylistic/eslint-plugin-js@2.6.4': - resolution: {integrity: sha512-kx1hS3xTvzxZLdr/DCU/dLBE++vcP97sHeEFX2QXhk1Ipa4K1rzPOLw1HCbf4mU3s+7kHP5eYpDe+QteEOFLug==} + '@stylistic/eslint-plugin-js@2.7.2': + resolution: {integrity: sha512-PkwTDduCY6+ILlHNEfVT3BtShrtqrDJmyW3BW53PvCb+SHu7z88iReXbN+/uCr39fcP6qH49RA7RFsKRlpyMEQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.40.0' - '@stylistic/eslint-plugin-plus@2.6.4': - resolution: {integrity: sha512-EuRvtxhf7Hv8OoMIePulP/6rBJIgPTu1l5GAm1780WcF1Cl8bOZXIn84Pdac5pNv6lVlzCOFm8MD3VE+2YROuA==} + '@stylistic/eslint-plugin-plus@2.7.2': + resolution: {integrity: sha512-Ualkhs6xxVooVAJHvdtJUo8Zg08cjhZdBTid/Ho5pb7EbkUg5Jhz6qbVgeEfd5/4E3h7kQNVezKZM2/JiX79Mw==} peerDependencies: eslint: '*' - '@stylistic/eslint-plugin-ts@2.6.4': - resolution: {integrity: sha512-yxL8Hj6WkObw1jfiLpBzKy5yfxY6vwlwO4miq34ySErUjUecPV5jxfVbOe4q1QDPKemQGPq93v7sAQS5PzM8lA==} + '@stylistic/eslint-plugin-ts@2.7.2': + resolution: {integrity: sha512-uf3hmqWLK1upUnTmUSn4XDvNu1o6b1nY+xdema8dGGY+zH663V+0cHN3xqexDuQ8do1f0wV3hChkfmz3jWC4Uw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.40.0' @@ -316,68 +312,68 @@ packages: '@swc-node/sourcemap-support@0.5.1': resolution: {integrity: sha512-JxIvIo/Hrpv0JCHSyRpetAdQ6lB27oFYhv0PKCNf1g2gUXOjpeR1exrXccRxLMuAV5WAmGFBwRnNOJqN38+qtg==} - '@swc/core-darwin-arm64@1.7.21': - resolution: {integrity: sha512-hh5uOZ7jWF66z2TRMhhXtWMQkssuPCSIZPy9VHf5KvZ46cX+5UeECDthchYklEVZQyy4Qr6oxfh4qff/5spoMA==} + '@swc/core-darwin-arm64@1.7.22': + resolution: {integrity: sha512-B2Bh2W+C7ALdGwDxRWAJ+UtNExfozvwyayGiNkbR3wmDKXXeQfhGM5MK+QYUWKu7UQ6ATq69OyZrxofDobKUug==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.7.21': - resolution: {integrity: sha512-lTsPquqSierQ6jWiWM7NnYXXZGk9zx3NGkPLHjPbcH5BmyiauX0CC/YJYJx7YmS2InRLyALlGmidHkaF4JY28A==} + '@swc/core-darwin-x64@1.7.22': + resolution: {integrity: sha512-s34UQntnQ6tL9hS9aX3xG7OfGhpmy05FEEndbHaooGO8O+L5k8uWxhE5KhYCOC0N803sGdZg6YZmKtYrWN/YxA==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.7.21': - resolution: {integrity: sha512-AgSd0fnSzAqCvWpzzZCq75z62JVGUkkXEOpfdi99jj/tryPy38KdXJtkVWJmufPXlRHokGTBitalk33WDJwsbA==} + '@swc/core-linux-arm-gnueabihf@1.7.22': + resolution: {integrity: sha512-SE69+oos1jLOXx5YdMH//Qc5zQc2xYukajB+0BWmkcFd/S/cCanGWYtdSzYausm8af2Fw1hPJMNIfndJLnBDFw==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.7.21': - resolution: {integrity: sha512-l+jw6RQ4Y43/8dIst0c73uQE+W3kCWrCFqMqC/xIuE/iqHOnvYK6YbA1ffOct2dImkHzNiKuoehGqtQAc6cNaQ==} + '@swc/core-linux-arm64-gnu@1.7.22': + resolution: {integrity: sha512-59FzDW/ojgiTj4dlnv3Z3ESuVlzhSAq9X12CNYh4/WTCNA8BoJqOnWMRQKspWtoNlnVviFLMvpek0pGXHndEBA==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.7.21': - resolution: {integrity: sha512-29KKZXrTo/c9F1JFL9WsNvCa6UCdIVhHP5EfuYhlKbn5/YmSsNFkuHdUtZFEd5U4+jiShXDmgGCtLW2d08LIwg==} + '@swc/core-linux-arm64-musl@1.7.22': + resolution: {integrity: sha512-cMQMI8YRO/XR3OrYuiUlWksNsJOZSkA6gSLNyH6eHTw+FOAzv05oJ4SFYe6s1WesrOqRwhpez6y5H6OIP/EKzg==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.7.21': - resolution: {integrity: sha512-HsP3JwddvQj5HvnjmOr+Bd5plEm6ccpfP5wUlm3hywzvdVkj+yR29bmD7UwpV/1zCQ60Ry35a7mXhKI6HQxFgw==} + '@swc/core-linux-x64-gnu@1.7.22': + resolution: {integrity: sha512-639kA7MXrWqWYfwuSJ+XTg21VYb/5o99R1zJrndoEjEX6m7Wza/sXssQKU5jbbkPoSEKVKNP3n/gazLWiUKgiQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.7.21': - resolution: {integrity: sha512-hYKLVeUTHqvFK628DFJEwxoX6p42T3HaQ4QjNtf3oKhiJWFh9iTRUrN/oCB5YI3R9WMkFkKh+99gZ/Dd0T5lsg==} + '@swc/core-linux-x64-musl@1.7.22': + resolution: {integrity: sha512-f3zfGgY8EJQUOk3ve25ZTkNkhB/kHo9QlN2r+0exaE1g9W7X8IS6J8pWzF3hJrV2P9dBi6ofMOt+opVA89JKHA==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.7.21': - resolution: {integrity: sha512-qyWAKW10aMBe6iUqeZ7NAJIswjfggVTUpDINpQGUJhz+pR71YZDidXgZXpaDB84YyDB2JAlRqd1YrLkl7CMiIw==} + '@swc/core-win32-arm64-msvc@1.7.22': + resolution: {integrity: sha512-p/Fav5U+LtTJD/tbbS0dKK8SVVAhXo5Jdm1TDeBPJ4BEIVguYBZEXgD3CW9wY4K34g1hscpiz2Q2rktfhFj1+A==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.7.21': - resolution: {integrity: sha512-cy61wS3wgH5mEwBiQ5w6/FnQrchBDAdPsSh0dKSzNmI+4K8hDxS8uzdBycWqJXO0cc+mA77SIlwZC3hP3Kum2g==} + '@swc/core-win32-ia32-msvc@1.7.22': + resolution: {integrity: sha512-HbmfasaCNTqeCTvDjleYj+jJZQ6MlraiVOdhW55KtbA9mAVQdPBq6DDAvR7VOero3wUNYUM/e36otFKgEJI5Rg==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.7.21': - resolution: {integrity: sha512-/rexGItJURNJOdae+a48M+loT74nsEU+PyRRVAkZMKNRtLoYFAr0cpDlS5FodIgGunp/nqM0bst4H2w6Y05IKA==} + '@swc/core-win32-x64-msvc@1.7.22': + resolution: {integrity: sha512-lppIveE+hpe7WXny/9cUT+T6sBM/ND0E+dviKWJ5jFBISj2KWomlSJGUjYEsRGJVPnTEc8uOlKK7etmXBhQx9A==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.7.21': - resolution: {integrity: sha512-7/cN0SZ+y2V6e0hsDD8koGR0QVh7Jl3r756bwaHLLSN+kReoUb/yVcLsA8iTn90JLME3DkQK4CPjxDCQiyMXNg==} + '@swc/core@1.7.22': + resolution: {integrity: sha512-Asn79WKqyjEuO2VEeSnVjn2YiRMToRhFJwOsQeqftBvwWMn1FGUuzVcXtkQFBk37si8Gh2Vkk/+p0u4K5NxDig==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -406,8 +402,8 @@ packages: '@types/chrome@0.0.270': resolution: {integrity: sha512-ADvkowV7YnJfycZZxL2brluZ6STGW+9oKG37B422UePf2PCXuFA/XdERI0T18wtuWPx0tmFeZqq6MOXVk1IC+Q==} - '@types/eslint@9.6.0': - resolution: {integrity: sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==} + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -442,8 +438,8 @@ packages: '@types/tar-stream@3.1.3': resolution: {integrity: sha512-Zbnx4wpkWBMBSu5CytMbrT5ZpMiF55qgM+EpHzR4yIDu7mv52cej8hTkOc6K+LzpkOAbxwn/m7j3iO+/l42YkQ==} - '@typescript-eslint/eslint-plugin@8.2.0': - resolution: {integrity: sha512-02tJIs655em7fvt9gps/+4k4OsKULYGtLBPJfOsmOq1+3cdClYiF0+d6mHu6qDnTcg88wJBkcPLpQhq7FyDz0A==} + '@typescript-eslint/eslint-plugin@8.3.0': + resolution: {integrity: sha512-FLAIn63G5KH+adZosDYiutqkOkYEx0nvcwNNfJAf+c7Ae/H35qWwTYvPZUKFj5AS+WfHG/WJJfWnDnyNUlp8UA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -453,8 +449,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.2.0': - resolution: {integrity: sha512-j3Di+o0lHgPrb7FxL3fdEy6LJ/j2NE8u+AP/5cQ9SKb+JLH6V6UHDqJ+e0hXBkHP1wn1YDFjYCS9LBQsZDlDEg==} + '@typescript-eslint/parser@8.3.0': + resolution: {integrity: sha512-h53RhVyLu6AtpUzVCYLPhZGL5jzTD9fZL+SYf/+hYOx2bDkyQXztXSc4tbvKYHzfMXExMLiL9CWqJmVz6+78IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -463,16 +459,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@7.18.0': - resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/scope-manager@8.2.0': - resolution: {integrity: sha512-OFn80B38yD6WwpoHU2Tz/fTz7CgFqInllBoC3WP+/jLbTb4gGPTy9HBSTsbDWkMdN55XlVU0mMDYAtgvlUspGw==} + '@typescript-eslint/scope-manager@8.3.0': + resolution: {integrity: sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.2.0': - resolution: {integrity: sha512-g1CfXGFMQdT5S+0PSO0fvGXUaiSkl73U1n9LTK5aRAFnPlJ8dLKkXr4AaLFvPedW8lVDoMgLLE3JN98ZZfsj0w==} + '@typescript-eslint/type-utils@8.3.0': + resolution: {integrity: sha512-wrV6qh//nLbfXZQoj32EXKmwHf4b7L+xXLrP3FZ0GOUU72gSvLjeWUl5J5Ue5IwRxIV1TfF73j/eaBapxx99Lg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -480,25 +472,16 @@ packages: typescript: optional: true - '@typescript-eslint/types@7.18.0': - resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/types@8.2.0': - resolution: {integrity: sha512-6a9QSK396YqmiBKPkJtxsgZZZVjYQ6wQ/TlI0C65z7vInaETuC6HAHD98AGLC8DyIPqHytvNuS8bBVvNLKyqvQ==} + '@typescript-eslint/types@8.0.0-alpha.36': + resolution: {integrity: sha512-D+w5uE8Y83K/P5VQZyKKi4pwTL2YkWOwtQOVJQI38Rp8f3pmY+Jmcps3wkSFSJK8wifTlvoHwwIBf1FsdCW/EA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@7.18.0': - resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@typescript-eslint/types@8.3.0': + resolution: {integrity: sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.2.0': - resolution: {integrity: sha512-kiG4EDUT4dImplOsbh47B1QnNmXSoUqOjWDvCJw/o8LgfD0yr7k2uy54D5Wm0j4t71Ge1NkynGhpWdS0dEIAUA==} + '@typescript-eslint/typescript-estree@8.3.0': + resolution: {integrity: sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -506,24 +489,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@7.18.0': - resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - - '@typescript-eslint/utils@8.2.0': - resolution: {integrity: sha512-O46eaYKDlV3TvAVDNcoDzd5N550ckSe8G4phko++OCSC1dYIb9LTc3HDGYdWqWIAT5qDUKphO6sd9RrpIJJPfg==} + '@typescript-eslint/utils@8.3.0': + resolution: {integrity: sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@7.18.0': - resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/visitor-keys@8.2.0': - resolution: {integrity: sha512-sbgsPMW9yLvS7IhCi8IpuK1oBmtbWUNP+hBdwl/I9nzqVsszGnNGti5r9dUtF5RLivHUFFIdRvLiTsPhzSyJ3Q==} + '@typescript-eslint/visitor-keys@8.3.0': + resolution: {integrity: sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} acorn-jsx@5.3.2: @@ -561,10 +534,6 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} @@ -741,10 +710,6 @@ packages: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -773,41 +738,35 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-config-sukka@6.2.1: - resolution: {integrity: sha512-nAbgHGRcIodmWnTF3i+XR4JarAv+51qMf3FI6DnP0XHXyP0/C20WeDnkHGO14tl+cH+17ogW7j59OjRGX0trqg==} + eslint-config-sukka@6.2.3: + resolution: {integrity: sha512-4UPSXbGU0VOcZmJvdNXuPBAjXnfo9mK7QSEVfGs4mbrYUyjDyNiacMSZkaU9TGnW8w2nSy3XApY+xGax2fmIXQ==} - eslint-formatter-sukka@6.2.1: - resolution: {integrity: sha512-TO2PVI2MUveyhwTXxMdal70hF9C29aPTDhRwVhbnZbsFrKdifBw91k0CH/nwzaNMw5J7ZT8+De5O+VKp2eXFDw==} + eslint-formatter-sukka@6.2.3: + resolution: {integrity: sha512-3yc1KdXW0WO/NM+TqVtrStwTpD3+etiKCsaOAL10t3+I2MRuaE595+ff3I+pvbIsMQ6OBZZaSThMCT2DVR4cbQ==} eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-import-resolver-ts-bundled@6.2.1: - resolution: {integrity: sha512-TQO1DMxODFizOYsTiHyEYrrD7SV9+GsCDsw6gpDadAuExPqmoX771O2kgUXHKC6Msec6P3dwl0M2Z0t9J2hbfw==} + eslint-import-resolver-ts-bundled@6.2.3: + resolution: {integrity: sha512-+2WTi9RC9HMsYvvMHhPVHw7zCicafM1yTmy+yPN3nHG/2sVgXcYRcJDFoy/hBUkMYdplqEReUV2kbGWVAETZNg==} - eslint-plugin-autofix@2.1.0: - resolution: {integrity: sha512-4ya5flaJ7P+s4WeCe7mVd5Mmv0ayghl9Xz1MDewQqDNXn3SFkvTMqbCuJT5fsTl+BdtJ/CFNV48YrABohQu1VQ==} + eslint-plugin-autofix@2.2.0: + resolution: {integrity: sha512-lu8+0r+utyTroROqXIL+a8sUpICi6za22hIzlpb0+x0tQGRnOjhOKU7v8mC/NS/faDoVsw6xW3vUpc+Mcz5NWA==} engines: {node: '>=18'} peerDependencies: eslint: '>=8' - eslint-plugin-deprecation@3.0.0: - resolution: {integrity: sha512-JuVLdNg/uf0Adjg2tpTyYoYaMbwQNn/c78P1HcccokvhtRphgnRjZDKmhlxbxYptppex03zO76f97DD/yQHv7A==} - peerDependencies: - eslint: ^8.0.0 - typescript: ^4.2.4 || ^5.0.0 - eslint-plugin-es-x@7.8.0: resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' - eslint-plugin-import-x@3.1.0: - resolution: {integrity: sha512-/UbPA+bYY7nIxcjL3kpcDY3UNdoLHFhyBFzHox2M0ypcUoueTn6woZUUmzzi5et/dXChksasYYFeKE2wshOrhg==} - engines: {node: '>=16'} + eslint-plugin-import-x@4.1.1: + resolution: {integrity: sha512-dBEM8fACIFNt4H7GoOaRmnH6evJW6JSTJTYYgmRd3vI4geBTjgDM/JyUDKUwIw0HDSyI+u7Vs3vFRXUo/BOAtA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 || ^9.0.0-0 + eslint: ^8.57.0 || ^9.0.0 eslint-plugin-jsonc@2.16.0: resolution: {integrity: sha512-Af/ZL5mgfb8FFNleH6KlO4/VdmDuTqmM+SPnWcdoWywTetv7kq+vQe99UyQb9XO3b0OWLVuTH7H0d/PXYCMdSg==} @@ -833,11 +792,11 @@ packages: peerDependencies: eslint: '>=8.44.0' - eslint-plugin-sukka-ts@6.2.1: - resolution: {integrity: sha512-6MdBMpVYs+yNydmy44kaMfN27dQwIBOAsVB4j9ghWfsdqyF16aeuJt+I8UWRCcfMEN+LQXF315RsqdyMfnPpFw==} + eslint-plugin-sukka-ts@6.2.3: + resolution: {integrity: sha512-SkKWDtjaGAf/r2WusMwNpoDX4c0m/vUuNJ6C82FoxOjKDtRDH5Hrd+xo6PwdbHWMtjT7zJYUtpLb+iZM/aUjWw==} - eslint-plugin-sukka@6.2.1: - resolution: {integrity: sha512-OdXbLhCElg1rcOcnP5mcpSV8TqRpksopynYNkrFEoKcSy69kGIA53rdH2AhaRXAdXZbuWRHJ1YBuBf3Lq08WNQ==} + eslint-plugin-sukka@6.2.3: + resolution: {integrity: sha512-XLZVfhid2HjPWOz6DXzp8+Oxwz2DEJ3Z3r2SmeZjgw8PA9u2oBX5JjXTbeYCNI83EV/LzQcSqxEGOnnfFV7whA==} eslint-plugin-unused-imports@4.1.3: resolution: {integrity: sha512-lqrNZIZjFMUr7P06eoKtQLwyVRibvG7N+LtfKtObYGizAAGrcqLkc3tDx+iAik2z7q0j/XI3ihjupIqxhFabFA==} @@ -991,8 +950,8 @@ packages: get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - get-tsconfig@4.7.6: - resolution: {integrity: sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==} + get-tsconfig@4.8.0: + resolution: {integrity: sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw==} github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} @@ -1018,10 +977,6 @@ packages: resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==} engines: {node: '>=18'} - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -1152,9 +1107,6 @@ packages: lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - log-symbols@4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} @@ -1188,8 +1140,8 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - mitata@0.1.11: - resolution: {integrity: sha512-cs6FiWcnRxn7atVumm8wA8R70XCDmMXgVgb/qWUSjr5dwuIBr7zC+22mbGYPlbyFixlIOjuP//A0e72Q1ZoGDw==} + mitata@0.1.14: + resolution: {integrity: sha512-8kRs0l636eT4jj68PFXOR2D5xl4m56T478g16SzUPOYgkzQU+xaw62guAQxzBPm+SXb15GQi1cCpDxJfkr4CSA==} mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} @@ -1258,10 +1210,6 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} @@ -1387,10 +1335,6 @@ packages: simple-get@4.0.1: resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - slice-ansi@4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} @@ -1512,12 +1456,12 @@ packages: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} - type-fest@4.25.0: - resolution: {integrity: sha512-bRkIGlXsnGBRBQRAY56UXBm//9qH4bmJfFvq83gSz41N282df+fjy8ofcEgc1sM8geNt5cl6mC2g9Fht1cs8Aw==} + type-fest@4.26.0: + resolution: {integrity: sha512-OduNjVJsFbifKb57UqZ2EMP1i4u64Xwow3NYXUtBbD4vIwJdQd4+xl8YDou1dlm4DVrtwT/7Ky8z8WyCULVfxw==} engines: {node: '>=16'} - typescript-eslint@8.2.0: - resolution: {integrity: sha512-DmnqaPcML0xYwUzgNbM1XaKXpEb7BShYf2P1tkUmmcl8hyeG7Pj08Er7R9bNy6AufabywzJcOybQAtnD/c9DGw==} + typescript-eslint@8.3.0: + resolution: {integrity: sha512-EvWjwWLwwKDIJuBjk2I6UkV8KEQcwZ0VM10nR1rIunRDIP67QJTZAHBXTX0HW/oI1H10YESF8yWie8fRQxjvFA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1585,16 +1529,16 @@ packages: snapshots: - '@cliqz/adblocker-content@1.33.0': + '@cliqz/adblocker-content@1.33.1': dependencies: - '@cliqz/adblocker-extended-selectors': 1.33.0 + '@cliqz/adblocker-extended-selectors': 1.33.1 - '@cliqz/adblocker-extended-selectors@1.33.0': {} + '@cliqz/adblocker-extended-selectors@1.33.1': {} - '@cliqz/adblocker@1.33.0': + '@cliqz/adblocker@1.33.1': dependencies: - '@cliqz/adblocker-content': 1.33.0 - '@cliqz/adblocker-extended-selectors': 1.33.0 + '@cliqz/adblocker-content': 1.33.1 + '@cliqz/adblocker-extended-selectors': 1.33.1 '@remusao/guess-url-type': 1.3.0 '@remusao/small': 1.3.0 '@remusao/smaz': 1.10.0 @@ -1633,29 +1577,27 @@ snapshots: '@eslint-community/regexpp@4.11.0': {} - '@eslint-sukka/node@6.2.1(eslint@9.9.1)(typescript@5.5.4)': + '@eslint-sukka/node@6.2.3(eslint@9.9.1)(typescript@5.5.4)': dependencies: - '@eslint-sukka/shared': 6.2.1(eslint@9.9.1)(typescript@5.5.4) + '@eslint-sukka/shared': 6.2.3(eslint@9.9.1)(typescript@5.5.4) eslint-plugin-n: 17.10.2(eslint@9.9.1) - eslint-plugin-sukka: 6.2.1(eslint@9.9.1)(typescript@5.5.4) + eslint-plugin-sukka: 6.2.3(eslint@9.9.1)(typescript@5.5.4) transitivePeerDependencies: - eslint - supports-color - typescript - '@eslint-sukka/shared@6.2.1(eslint@9.9.1)(typescript@5.5.4)': + '@eslint-sukka/shared@6.2.3(eslint@9.9.1)(typescript@5.5.4)': dependencies: '@dual-bundle/import-meta-resolve': 4.1.0 - '@types/eslint': 9.6.0 - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1)(typescript@5.5.4) - type-fest: 4.25.0 + '@types/eslint': 9.6.1 + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) + type-fest: 4.26.0 transitivePeerDependencies: - eslint - supports-color - typescript - '@eslint/compat@1.1.1': {} - '@eslint/config-array@0.18.0': dependencies: '@eslint/object-schema': 2.1.4 @@ -1764,39 +1706,39 @@ snapshots: '@remusao/trie@1.5.0': {} - '@stylistic/eslint-plugin-js@2.6.4(eslint@9.9.1)': + '@stylistic/eslint-plugin-js@2.7.2(eslint@9.9.1)': dependencies: - '@types/eslint': 9.6.0 - acorn: 8.12.1 + '@types/eslint': 9.6.1 eslint: 9.9.1 eslint-visitor-keys: 4.0.0 espree: 10.1.0 - '@stylistic/eslint-plugin-plus@2.6.4(eslint@9.9.1)': + '@stylistic/eslint-plugin-plus@2.7.2(eslint@9.9.1)': dependencies: - '@types/eslint': 9.6.0 + '@types/eslint': 9.6.1 eslint: 9.9.1 - '@stylistic/eslint-plugin-ts@2.6.4(eslint@9.9.1)(typescript@5.5.4)': + '@stylistic/eslint-plugin-ts@2.7.2(eslint@9.9.1)(typescript@5.5.4)': dependencies: - '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.9.1) - '@types/eslint': 9.6.0 - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1)(typescript@5.5.4) + '@types/eslint': 9.6.1 + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) eslint: 9.9.1 + eslint-visitor-keys: 4.0.0 + espree: 10.1.0 transitivePeerDependencies: - supports-color - typescript - '@swc-node/core@1.13.3(@swc/core@1.7.21)(@swc/types@0.1.12)': + '@swc-node/core@1.13.3(@swc/core@1.7.22)(@swc/types@0.1.12)': dependencies: - '@swc/core': 1.7.21 + '@swc/core': 1.7.22 '@swc/types': 0.1.12 - '@swc-node/register@1.10.9(@swc/core@1.7.21)(@swc/types@0.1.12)(typescript@5.5.4)': + '@swc-node/register@1.10.9(@swc/core@1.7.22)(@swc/types@0.1.12)(typescript@5.5.4)': dependencies: - '@swc-node/core': 1.13.3(@swc/core@1.7.21)(@swc/types@0.1.12) + '@swc-node/core': 1.13.3(@swc/core@1.7.22)(@swc/types@0.1.12) '@swc-node/sourcemap-support': 0.5.1 - '@swc/core': 1.7.21 + '@swc/core': 1.7.22 colorette: 2.0.20 debug: 4.3.5(supports-color@8.1.1) oxc-resolver: 1.10.2 @@ -1812,51 +1754,51 @@ snapshots: source-map-support: 0.5.21 tslib: 2.6.3 - '@swc/core-darwin-arm64@1.7.21': + '@swc/core-darwin-arm64@1.7.22': optional: true - '@swc/core-darwin-x64@1.7.21': + '@swc/core-darwin-x64@1.7.22': optional: true - '@swc/core-linux-arm-gnueabihf@1.7.21': + '@swc/core-linux-arm-gnueabihf@1.7.22': optional: true - '@swc/core-linux-arm64-gnu@1.7.21': + '@swc/core-linux-arm64-gnu@1.7.22': optional: true - '@swc/core-linux-arm64-musl@1.7.21': + '@swc/core-linux-arm64-musl@1.7.22': optional: true - '@swc/core-linux-x64-gnu@1.7.21': + '@swc/core-linux-x64-gnu@1.7.22': optional: true - '@swc/core-linux-x64-musl@1.7.21': + '@swc/core-linux-x64-musl@1.7.22': optional: true - '@swc/core-win32-arm64-msvc@1.7.21': + '@swc/core-win32-arm64-msvc@1.7.22': optional: true - '@swc/core-win32-ia32-msvc@1.7.21': + '@swc/core-win32-ia32-msvc@1.7.22': optional: true - '@swc/core-win32-x64-msvc@1.7.21': + '@swc/core-win32-x64-msvc@1.7.22': optional: true - '@swc/core@1.7.21': + '@swc/core@1.7.22': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.12 optionalDependencies: - '@swc/core-darwin-arm64': 1.7.21 - '@swc/core-darwin-x64': 1.7.21 - '@swc/core-linux-arm-gnueabihf': 1.7.21 - '@swc/core-linux-arm64-gnu': 1.7.21 - '@swc/core-linux-arm64-musl': 1.7.21 - '@swc/core-linux-x64-gnu': 1.7.21 - '@swc/core-linux-x64-musl': 1.7.21 - '@swc/core-win32-arm64-msvc': 1.7.21 - '@swc/core-win32-ia32-msvc': 1.7.21 - '@swc/core-win32-x64-msvc': 1.7.21 + '@swc/core-darwin-arm64': 1.7.22 + '@swc/core-darwin-x64': 1.7.22 + '@swc/core-linux-arm-gnueabihf': 1.7.22 + '@swc/core-linux-arm64-gnu': 1.7.22 + '@swc/core-linux-arm64-musl': 1.7.22 + '@swc/core-linux-x64-gnu': 1.7.22 + '@swc/core-linux-x64-musl': 1.7.22 + '@swc/core-win32-arm64-msvc': 1.7.22 + '@swc/core-win32-ia32-msvc': 1.7.22 + '@swc/core-win32-x64-msvc': 1.7.22 '@swc/counter@0.1.3': {} @@ -1884,7 +1826,7 @@ snapshots: '@types/filesystem': 0.0.36 '@types/har-format': 1.2.15 - '@types/eslint@9.6.0': + '@types/eslint@9.6.1': dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 @@ -1917,14 +1859,14 @@ snapshots: dependencies: '@types/node': 20.14.11 - '@typescript-eslint/eslint-plugin@8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.2.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/scope-manager': 8.2.0 - '@typescript-eslint/type-utils': 8.2.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.2.0 + '@typescript-eslint/parser': 8.3.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.3.0 + '@typescript-eslint/type-utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.3.0 eslint: 9.9.1 graphemer: 1.4.0 ignore: 5.3.2 @@ -1935,12 +1877,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.2.0(eslint@9.9.1)(typescript@5.5.4)': + '@typescript-eslint/parser@8.3.0(eslint@9.9.1)(typescript@5.5.4)': dependencies: - '@typescript-eslint/scope-manager': 8.2.0 - '@typescript-eslint/types': 8.2.0 - '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.2.0 + '@typescript-eslint/scope-manager': 8.3.0 + '@typescript-eslint/types': 8.3.0 + '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.3.0 debug: 4.3.6 eslint: 9.9.1 optionalDependencies: @@ -1948,20 +1890,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.18.0': + '@typescript-eslint/scope-manager@8.3.0': dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript-eslint/types': 8.3.0 + '@typescript-eslint/visitor-keys': 8.3.0 - '@typescript-eslint/scope-manager@8.2.0': + '@typescript-eslint/type-utils@8.3.0(eslint@9.9.1)(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 8.2.0 - '@typescript-eslint/visitor-keys': 8.2.0 - - '@typescript-eslint/type-utils@8.2.0(eslint@9.9.1)(typescript@5.5.4)': - dependencies: - '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) debug: 4.3.6 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -1970,31 +1907,16 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@7.18.0': {} - - '@typescript-eslint/types@8.2.0': {} + '@typescript-eslint/types@8.0.0-alpha.36': {} - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.5.4)': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.3.6 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.5.4) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types@8.3.0': {} - '@typescript-eslint/typescript-estree@8.2.0(typescript@5.5.4)': + '@typescript-eslint/typescript-estree@8.3.0(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 8.2.0 - '@typescript-eslint/visitor-keys': 8.2.0 + '@typescript-eslint/types': 8.3.0 + '@typescript-eslint/visitor-keys': 8.3.0 debug: 4.3.6 - globby: 11.1.0 + fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 @@ -2004,36 +1926,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@9.9.1)(typescript@5.5.4)': + '@typescript-eslint/utils@8.3.0(eslint@9.9.1)(typescript@5.5.4)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.3.0 + '@typescript-eslint/types': 8.3.0 + '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.4) eslint: 9.9.1 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.2.0(eslint@9.9.1)(typescript@5.5.4)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1) - '@typescript-eslint/scope-manager': 8.2.0 - '@typescript-eslint/types': 8.2.0 - '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4) - eslint: 9.9.1 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - eslint-visitor-keys: 3.4.3 - - '@typescript-eslint/visitor-keys@8.2.0': + '@typescript-eslint/visitor-keys@8.3.0': dependencies: - '@typescript-eslint/types': 8.2.0 + '@typescript-eslint/types': 8.0.0-alpha.36 eslint-visitor-keys: 3.4.3 acorn-jsx@5.3.2(acorn@8.12.1): @@ -2071,8 +1977,6 @@ snapshots: argparse@2.0.1: {} - array-union@2.1.0: {} - assertion-error@1.1.0: {} astral-regex@2.0.0: {} @@ -2234,10 +2138,6 @@ snapshots: diff@5.2.0: {} - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - doctrine@3.0.0: dependencies: esutils: 2.0.3 @@ -2262,38 +2162,36 @@ snapshots: eslint: 9.9.1 semver: 7.6.3 - eslint-config-sukka@6.2.1(@typescript-eslint/eslint-plugin@8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4): + eslint-config-sukka@6.2.3(@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4): dependencies: '@eslint-community/eslint-plugin-eslint-comments': 4.4.0(eslint@9.9.1) - '@eslint-sukka/shared': 6.2.1(eslint@9.9.1)(typescript@5.5.4) - '@eslint/compat': 1.1.1 + '@eslint-sukka/shared': 6.2.3(eslint@9.9.1)(typescript@5.5.4) '@eslint/js': 9.9.1 - '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.9.1) - '@stylistic/eslint-plugin-plus': 2.6.4(eslint@9.9.1) - '@stylistic/eslint-plugin-ts': 2.6.4(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/parser': 8.2.0(eslint@9.9.1)(typescript@5.5.4) + '@stylistic/eslint-plugin-js': 2.7.2(eslint@9.9.1) + '@stylistic/eslint-plugin-plus': 2.7.2(eslint@9.9.1) + '@stylistic/eslint-plugin-ts': 2.7.2(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/parser': 8.3.0(eslint@9.9.1)(typescript@5.5.4) ci-info: 4.0.0 defu: 6.1.4 - eslint-import-resolver-ts-bundled: 6.2.1 - eslint-plugin-autofix: 2.1.0(eslint@9.9.1) - eslint-plugin-deprecation: 3.0.0(eslint@9.9.1)(typescript@5.5.4) - eslint-plugin-import-x: 3.1.0(eslint@9.9.1)(typescript@5.5.4) + eslint-import-resolver-ts-bundled: 6.2.3 + eslint-plugin-autofix: 2.2.0(eslint@9.9.1) + eslint-plugin-import-x: 4.1.1(eslint@9.9.1)(typescript@5.5.4) eslint-plugin-jsonc: 2.16.0(eslint@9.9.1) eslint-plugin-promise: 7.1.0(eslint@9.9.1) eslint-plugin-regexp: 2.6.0(eslint@9.9.1) - eslint-plugin-sukka: 6.2.1(eslint@9.9.1)(typescript@5.5.4) - eslint-plugin-sukka-ts: 6.2.1(eslint@9.9.1)(typescript@5.5.4) - eslint-plugin-unused-imports: 4.1.3(@typescript-eslint/eslint-plugin@8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1) + eslint-plugin-sukka: 6.2.3(eslint@9.9.1)(typescript@5.5.4) + eslint-plugin-sukka-ts: 6.2.3(eslint@9.9.1)(typescript@5.5.4) + eslint-plugin-unused-imports: 4.1.3(@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1) jsonc-eslint-parser: 2.4.0 picocolors: 1.0.1 - typescript-eslint: 8.2.0(eslint@9.9.1)(typescript@5.5.4) + typescript-eslint: 8.3.0(eslint@9.9.1)(typescript@5.5.4) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - eslint - supports-color - typescript - eslint-formatter-sukka@6.2.1: + eslint-formatter-sukka@6.2.3: dependencies: ci-info: 4.0.0 picocolors: 1.0.1 @@ -2306,29 +2204,18 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-ts-bundled@6.2.1: + eslint-import-resolver-ts-bundled@6.2.3: dependencies: enhanced-resolve: 5.17.1 - eslint-plugin-autofix@2.1.0(eslint@9.9.1): + eslint-plugin-autofix@2.2.0(eslint@9.9.1): dependencies: eslint: 9.9.1 eslint-rule-composer: 0.3.0 espree: 9.6.1 esutils: 2.0.3 - lodash: 4.17.21 string-similarity: 4.0.4 - eslint-plugin-deprecation@3.0.0(eslint@9.9.1)(typescript@5.5.4): - dependencies: - '@typescript-eslint/utils': 7.18.0(eslint@9.9.1)(typescript@5.5.4) - eslint: 9.9.1 - ts-api-utils: 1.3.0(typescript@5.5.4) - tslib: 2.7.0 - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - eslint-plugin-es-x@7.8.0(eslint@9.9.1): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1) @@ -2336,14 +2223,15 @@ snapshots: eslint: 9.9.1 eslint-compat-utils: 0.5.1(eslint@9.9.1) - eslint-plugin-import-x@3.1.0(eslint@9.9.1)(typescript@5.5.4): + eslint-plugin-import-x@4.1.1(eslint@9.9.1)(typescript@5.5.4): dependencies: - '@typescript-eslint/utils': 7.18.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) debug: 4.3.6 doctrine: 3.0.0 eslint: 9.9.1 eslint-import-resolver-node: 0.3.9 - get-tsconfig: 4.7.6 + get-tsconfig: 4.8.0 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 @@ -2370,7 +2258,7 @@ snapshots: enhanced-resolve: 5.17.1 eslint: 9.9.1 eslint-plugin-es-x: 7.8.0(eslint@9.9.1) - get-tsconfig: 4.7.6 + get-tsconfig: 4.8.0 globals: 15.9.0 ignore: 5.3.2 minimatch: 9.0.5 @@ -2391,30 +2279,30 @@ snapshots: regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-sukka-ts@6.2.1(eslint@9.9.1)(typescript@5.5.4): + eslint-plugin-sukka-ts@6.2.3(eslint@9.9.1)(typescript@5.5.4): dependencies: - '@eslint-sukka/shared': 6.2.1(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/type-utils': 8.2.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1)(typescript@5.5.4) + '@eslint-sukka/shared': 6.2.3(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/type-utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) transitivePeerDependencies: - eslint - supports-color - typescript - eslint-plugin-sukka@6.2.1(eslint@9.9.1)(typescript@5.5.4): + eslint-plugin-sukka@6.2.3(eslint@9.9.1)(typescript@5.5.4): dependencies: - '@eslint-sukka/shared': 6.2.1(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1)(typescript@5.5.4) + '@eslint-sukka/shared': 6.2.3(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) transitivePeerDependencies: - eslint - supports-color - typescript - eslint-plugin-unused-imports@4.1.3(@typescript-eslint/eslint-plugin@8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1): + eslint-plugin-unused-imports@4.1.3(@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1): dependencies: eslint: 9.9.1 optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) eslint-rule-composer@0.3.0: {} @@ -2562,7 +2450,7 @@ snapshots: get-func-name@2.0.2: {} - get-tsconfig@4.7.6: + get-tsconfig@4.8.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -2588,15 +2476,6 @@ snapshots: globals@15.9.0: {} - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - graceful-fs@4.2.11: {} graphemer@1.4.0: {} @@ -2697,8 +2576,6 @@ snapshots: lodash.truncate@4.4.2: {} - lodash@4.17.21: {} - log-symbols@4.1.0: dependencies: chalk: 4.1.2 @@ -2731,7 +2608,7 @@ snapshots: minimist@1.2.8: {} - mitata@0.1.11: {} + mitata@0.1.14: {} mkdirp-classic@0.5.3: {} @@ -2823,8 +2700,6 @@ snapshots: path-parse@1.0.7: {} - path-type@4.0.0: {} - pathval@1.1.1: {} picocolors@1.0.1: {} @@ -2946,8 +2821,6 @@ snapshots: once: 1.4.0 simple-concat: 1.0.1 - slash@3.0.0: {} - slice-ansi@4.0.0: dependencies: ansi-styles: 4.3.0 @@ -3076,13 +2949,13 @@ snapshots: type-detect@4.0.8: {} - type-fest@4.25.0: {} + type-fest@4.26.0: {} - typescript-eslint@8.2.0(eslint@9.9.1)(typescript@5.5.4): + typescript-eslint@8.3.0(eslint@9.9.1)(typescript@5.5.4): dependencies: - '@typescript-eslint/eslint-plugin': 8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/parser': 8.2.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/parser': 8.3.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: From 27c4004c0de8fb050973d08d8adbdc1b71ebf6b4 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Mon, 2 Sep 2024 20:46:10 +0800 Subject: [PATCH 6/8] Support extra cacheKey --- Build/lib/cache-filesystem.ts | 2 +- Build/lib/get-phishing-domains.ts | 5 ++++- Build/lib/parse-filter.ts | 6 ++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Build/lib/cache-filesystem.ts b/Build/lib/cache-filesystem.ts index 8bb5813a0..26c9de727 100644 --- a/Build/lib/cache-filesystem.ts +++ b/Build/lib/cache-filesystem.ts @@ -217,5 +217,5 @@ export const deserializeArray = (str: string) => str.split(separator); export const createCacheKey = (filename: string) => { const fileHash = stringHash(fs.readFileSync(filename, 'utf-8')); - return (key: string) => key + '$' + fileHash; + return (key: string) => key + '$' + fileHash + '$'; }; diff --git a/Build/lib/get-phishing-domains.ts b/Build/lib/get-phishing-domains.ts index f071280ae..a33ce8652 100644 --- a/Build/lib/get-phishing-domains.ts +++ b/Build/lib/get-phishing-domains.ts @@ -7,6 +7,7 @@ import { PHISHING_DOMAIN_LISTS_EXTRA } from '../constants/reject-data-source'; import { looseTldtsOpt } from '../constants/loose-tldts-opt'; import picocolors from 'picocolors'; import createKeywordFilter from './aho-corasick'; +import { createCacheKey } from './cache-filesystem'; const BLACK_TLD = new Set([ 'accountant', @@ -130,11 +131,13 @@ const lowKeywords = createKeywordFilter([ '.www-' ]); +const cacheKey = createCacheKey(__filename); + export const getPhishingDomains = (parentSpan: Span) => parentSpan.traceChild('get phishing domains').traceAsyncFn(async (span) => { const domainArr = await span.traceChildAsync('download/parse/merge phishing domains', async (curSpan) => { const domainArr: string[] = []; - (await Promise.all(PHISHING_DOMAIN_LISTS_EXTRA.map(entry => processDomainLists(curSpan, ...entry)))) + (await Promise.all(PHISHING_DOMAIN_LISTS_EXTRA.map(entry => processDomainLists(curSpan, ...entry, cacheKey)))) .forEach(appendArrayInPlaceCurried(domainArr)); return domainArr; diff --git a/Build/lib/parse-filter.ts b/Build/lib/parse-filter.ts index d2964fa92..d680ef932 100644 --- a/Build/lib/parse-filter.ts +++ b/Build/lib/parse-filter.ts @@ -16,6 +16,8 @@ const DEBUG_DOMAIN_TO_FIND: string | null = null; // example.com | null let foundDebugDomain = false; const temporaryBypass = typeof DEBUG_DOMAIN_TO_FIND === 'string'; +const identity = (x: T) => x; + const domainListLineCb = (l: string, set: string[], includeAllSubDomain: boolean, meta: string) => { let line = processLine(l); if (!line) return; @@ -44,9 +46,9 @@ const domainListLineCb = (l: string, set: string[], includeAllSubDomain: boolean const cacheKey = createCacheKey(__filename); -export function processDomainLists(span: Span, domainListsUrl: string, mirrors: string[] | null, includeAllSubDomain = false, ttl: number | null = null) { +export function processDomainLists(span: Span, domainListsUrl: string, mirrors: string[] | null, includeAllSubDomain = false, ttl: number | null = null, extraCacheKey: (input: string) => string = identity) { return span.traceChild(`process domainlist: ${domainListsUrl}`).traceAsyncFn((childSpan) => fsFetchCache.apply( - cacheKey(domainListsUrl), + extraCacheKey(cacheKey(domainListsUrl)), async () => { const domainSets: string[] = []; From 3ebb0077d52c3ff743accd35cb1c39bebfe4c1e3 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Mon, 2 Sep 2024 21:08:33 +0800 Subject: [PATCH 7/8] Reject Whitelist --- Build/constants/reject-data-source.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Build/constants/reject-data-source.ts b/Build/constants/reject-data-source.ts index 426037c77..a68ca9269 100644 --- a/Build/constants/reject-data-source.ts +++ b/Build/constants/reject-data-source.ts @@ -303,8 +303,10 @@ export const PREDEFINED_WHITELIST = [ 'm.stripe.com', // EasyPrivacy only blocks m.stripe.com wwith $third-party, // yet stupid AdGuardDNSFilter blocks all of it. Stupid AdGuard '.w3s.link', // stupid phishing.army, introduce both "*.ipfs.w3s.link" and ".w3s.link" to the block list - 'ipfs.io', // ipfs.io was blocked by DigitalSide Threat-Intel - OSINT Hub '.r2.dev', // Despite 5000+ r2 instances used for phishing, yet cloudflare refuse to do anything. we have no choice but whitelist this. 'mlsend.com', // Fuck Peter Lowe Hosts - 'ab.chatgpt.com' // EasyPrivacy blocks this + 'ab.chatgpt.com', // EasyPrivacy blocks this + 'jnn-pa.googleapis.com', // ad-wars + 'imasdk.googleapis.com', // ad-wars + '.l.qq.com' // ad-wars ]; From c96b35be1ab0cbae6efd0cfca5c566926f0094aa Mon Sep 17 00:00:00 2001 From: SukkaW Date: Mon, 2 Sep 2024 23:02:25 +0800 Subject: [PATCH 8/8] Improve Phishing score algorithm --- Build/constants/loose-tldts-opt.ts | 5 ++ Build/lib/get-phishing-domains.test.ts | 5 +- Build/lib/get-phishing-domains.ts | 115 ++++++++++++++----------- Source/domainset/reject_sukka.conf | 2 + 4 files changed, 75 insertions(+), 52 deletions(-) diff --git a/Build/constants/loose-tldts-opt.ts b/Build/constants/loose-tldts-opt.ts index f794128cd..882757f77 100644 --- a/Build/constants/loose-tldts-opt.ts +++ b/Build/constants/loose-tldts-opt.ts @@ -7,3 +7,8 @@ export const looseTldtsOpt: Parameters[1] = { detectIp: false, mixedInputs: false }; + +export const loosTldOptWithPrivateDomains: Parameters[1] = { + ...looseTldtsOpt, + allowPrivateDomains: true +}; diff --git a/Build/lib/get-phishing-domains.test.ts b/Build/lib/get-phishing-domains.test.ts index c5cac6978..b872bf8a8 100644 --- a/Build/lib/get-phishing-domains.test.ts +++ b/Build/lib/get-phishing-domains.test.ts @@ -4,6 +4,9 @@ import { calcDomainAbuseScore } from './get-phishing-domains'; describe('sortDomains', () => { it('nmdj.pl', () => { - console.log(calcDomainAbuseScore('.01462ccca801fed55370d79231c876e5.nmdj.pl', '.01462ccca801fed55370d79231c876e5', false)); + console.log(calcDomainAbuseScore('zrz.q435.one', 'zrz')); + console.log(calcDomainAbuseScore('z1.finprotect.click', 'z1')); + console.log(calcDomainAbuseScore('accountsettingaddrecoverymanagesiteupdatebillingreview.village.softcare.co.in', 'accountsettingaddrecoverymanagesiteupdatebillingreview.village')); + console.log(calcDomainAbuseScore('allegrolokalnie.pl-oferta51328742.pl', 'allegrolokalnie')); }); }); diff --git a/Build/lib/get-phishing-domains.ts b/Build/lib/get-phishing-domains.ts index a33ce8652..97e639934 100644 --- a/Build/lib/get-phishing-domains.ts +++ b/Build/lib/get-phishing-domains.ts @@ -4,7 +4,7 @@ import * as tldts from 'tldts-experimental'; import type { Span } from '../trace'; import { appendArrayInPlaceCurried } from './append-array-in-place'; import { PHISHING_DOMAIN_LISTS_EXTRA } from '../constants/reject-data-source'; -import { looseTldtsOpt } from '../constants/loose-tldts-opt'; +import { loosTldOptWithPrivateDomains } from '../constants/loose-tldts-opt'; import picocolors from 'picocolors'; import createKeywordFilter from './aho-corasick'; import { createCacheKey } from './cache-filesystem'; @@ -78,6 +78,7 @@ const BLACK_TLD = new Set([ 'space', 'store', 'stream', + 'surf', 'tech', 'tk', 'tokyo', @@ -96,13 +97,13 @@ const BLACK_TLD = new Set([ const WHITELIST_MAIN_DOMAINS = new Set([ 'w3s.link', // ipfs gateway - 'dweb.link', // ipfs gateway - 'nftstorage.link', // ipfs gateway + // 'dweb.link', // ipfs gateway + // 'nftstorage.link', // ipfs gateway 'fleek.cool', // ipfs gateway 'business.site', // Drag'n'Drop site building platform 'page.link', // Firebase URL Shortener - 'notion.site', - 'vercel.app', + // 'notion.site', + // 'vercel.app', 'gitbook.io' ]); @@ -121,14 +122,18 @@ const sensitiveKeywords = createKeywordFilter([ 'virus-', 'icloud-', 'apple-', + 'www.apple.', '-coinbase', - 'coinbase-' + 'coinbase-', + 'lcloud.', + 'lcloud-' ]); const lowKeywords = createKeywordFilter([ '-co-jp', 'customer.', 'customer-', - '.www-' + '.www-', + 'instagram' ]); const cacheKey = createCacheKey(__filename); @@ -144,6 +149,7 @@ export const getPhishingDomains = (parentSpan: Span) => parentSpan.traceChild('g }); const domainCountMap: Record = {}; + const domainScoreMap: Record = {}; span.traceChildSync('process phishing domain set', () => { for (let i = 0, len = domainArr.length; i < len; i++) { @@ -152,8 +158,13 @@ export const getPhishingDomains = (parentSpan: Span) => parentSpan.traceChild('g const { publicSuffix: tld, domain: apexDomain, - subdomain - } = tldts.parse(line, looseTldtsOpt); + subdomain, + isPrivate + } = tldts.parse(line, loosTldOptWithPrivateDomains); + + if (isPrivate) { + continue; + } if (!tld) { console.log(picocolors.yellow('[phishing domains] E0001'), 'missing tld', { line, tld }); @@ -164,16 +175,30 @@ export const getPhishingDomains = (parentSpan: Span) => parentSpan.traceChild('g continue; } - let sensitiveKeywordsHit: boolean | null = null; - if (tld.length < 6 && !tld.includes('.') && !BLACK_TLD.has(tld) && !(sensitiveKeywordsHit = sensitiveKeywords(line))) continue; - domainCountMap[apexDomain] ||= 0; - domainCountMap[apexDomain] += calcDomainAbuseScore(line, subdomain, sensitiveKeywordsHit); + domainCountMap[apexDomain] += 1; + + if (!('apexDomain' in domainScoreMap)) { + domainScoreMap[apexDomain] = 0; + if (BLACK_TLD.has(tld)) { + domainScoreMap[apexDomain] += 4; + } else if (tld.length > 6) { + domainScoreMap[apexDomain] += 2; + } + } + domainScoreMap[apexDomain] += calcDomainAbuseScore(line, subdomain); } }); - for (const domain in domainCountMap) { - if (domainCountMap[domain] >= 10 && !WHITELIST_MAIN_DOMAINS.has(domain)) { + for (const domain in domainScoreMap) { + if ( + !WHITELIST_MAIN_DOMAINS.has(domain) + && ( + domainScoreMap[domain] >= 12 + || (domainScoreMap[domain] > 6 && domainCountMap[domain] >= 3) + ) + ) { + console.log({ domain }); domainArr.push(`.${domain}`); } } @@ -181,50 +206,38 @@ export const getPhishingDomains = (parentSpan: Span) => parentSpan.traceChild('g return domainArr; }); -export function calcDomainAbuseScore(line: string, subdomain: string | null, sensitiveKeywordsHit: boolean | null) { - let weight = 1; +export function calcDomainAbuseScore(line: string, subdomain: string | null) { + let weight = 0; - const hitLowKeywords = lowKeywords(line); + if (subdomain) { + const hitLowKeywords = lowKeywords(subdomain); + const sensitiveKeywordsHit = sensitiveKeywords(subdomain); - sensitiveKeywordsHit ??= sensitiveKeywords(line); - if (sensitiveKeywordsHit) { - weight += 4; - if (hitLowKeywords) { - weight += 5; + if (sensitiveKeywordsHit) { + weight += 8; + if (hitLowKeywords) { + weight += 4; + } + } else if (hitLowKeywords) { + weight += 1; } - } else if (hitLowKeywords) { - weight += 0.5; - } - const lineLen = line.length; - - if (lineLen > 19) { - // Add more weight if the domain is long enough - if (lineLen > 44) { - weight += 3.5; - } else if (lineLen > 34) { - weight += 2.5; - } else if (lineLen > 29) { - weight += 1.5; - } else if (lineLen > 24) { - weight += 0.75; - } else { - weight += 0.25; - } - } + const subdomainLength = subdomain.length; - if (subdomain) { - if (subdomain.length > 40) { - weight += 3; - } else if (subdomain.length > 30) { - weight += 1.5; - } else if (subdomain.length > 20) { + if (subdomainLength > 40) { + weight += 8; + } else if (subdomainLength > 30) { + weight += 4; + } else if (subdomainLength > 20) { + weight += 2; + } else if (subdomainLength > 10) { weight += 1; - } else if (subdomain.length > 10) { - weight += 0.1; } if (subdomain.slice(1).includes('.')) { - weight += 1; + weight += 2; + if (subdomain.includes('www.')) { + weight += 2; + } } } diff --git a/Source/domainset/reject_sukka.conf b/Source/domainset/reject_sukka.conf index 2ff2fa925..4d547a3b3 100644 --- a/Source/domainset/reject_sukka.conf +++ b/Source/domainset/reject_sukka.conf @@ -114,6 +114,8 @@ optimus-ads.amap.com .sitebeat.crazydomains.com # online d'n'd website builder (https://www.infonline.de/) .apps.iocnt.de +# codeanywhere is a heaven of abuse +.codeanyapp.com # >> Qihoo 360 hot.m.shouji.360tpcdn.com