ソースを参照

Chore: update ESLint config

SukkaW 2 年 前
コミット
970e4dcc85

+ 1 - 1
Assets/www-google-analytics-com_analytics.js

@@ -33,7 +33,7 @@
     if (typeof fn !== 'function') { return; }
     if (typeof fn !== 'function') { return; }
     try {
     try {
       fn();
       fn();
-    } catch (ex) {
+    } catch {
     }
     }
   };
   };
   ga.create = function () {
   ga.create = function () {

+ 2 - 2
Assets/www-google-analytics-com_ga.js

@@ -27,7 +27,7 @@
     ) {
     ) {
       try {
       try {
         window.location.assign(a[1]);
         window.location.assign(a[1]);
-      } catch (ex) {
+      } catch {
       }
       }
     }
     }
     if (a[0] === '_set' && a[1] === 'hitCallback' && typeof a[2] === 'function') {
     if (a[0] === '_set' && a[1] === 'hitCallback' && typeof a[2] === 'function') {
@@ -66,7 +66,7 @@
       if (typeof a !== 'string') { return; }
       if (typeof a !== 'string') { return; }
       try {
       try {
         window.location.assign(a);
         window.location.assign(a);
-      } catch (ex) {
+      } catch {
       }
       }
     };
     };
     return out;
     return out;

+ 1 - 1
Assets/www-googletagservices-com_gpt.js

@@ -109,7 +109,7 @@
   gpt.cmd.push = function (a) {
   gpt.cmd.push = function (a) {
     try {
     try {
       a();
       a();
-    } catch (ex) {
+    } catch {
     }
     }
     return 1;
     return 1;
   };
   };

+ 1 - 1
Build/build-mitm-hostname.js

@@ -182,7 +182,7 @@ function matchWithRegExpArray(input, regexps = []) {
 
 
 function escapeRegExp(string = '') {
 function escapeRegExp(string = '') {
   const reRegExpChar = /[$()*+.?[\\\]^{|}]/g;
   const reRegExpChar = /[$()*+.?[\\\]^{|}]/g;
-  const reHasRegExpChar = RegExp(reRegExpChar.source);
+  const reHasRegExpChar = new RegExp(reRegExpChar.source);
 
 
   return string && reHasRegExpChar.test(string)
   return string && reHasRegExpChar.test(string)
     ? string.replaceAll(reRegExpChar, '\\$&')
     ? string.replaceAll(reRegExpChar, '\\$&')

+ 3 - 1
Build/build-reject-domainset.js

@@ -44,7 +44,7 @@ const buildRejectDomainSet = task(__filename, async () => {
     })),
     })),
     ...ADGUARD_FILTERS.map(input => {
     ...ADGUARD_FILTERS.map(input => {
       const promise = typeof input === 'string'
       const promise = typeof input === 'string'
-        ? processFilterRules(input, undefined)
+        ? processFilterRules(input)
         : processFilterRules(input[0], input[1] || undefined);
         : processFilterRules(input[0], input[1] || undefined);
 
 
       return promise.then((i) => {
       return promise.then((i) => {
@@ -133,9 +133,11 @@ const buildRejectDomainSet = task(__filename, async () => {
 
 
   const trie1 = createTrie(domainSets);
   const trie1 = createTrie(domainSets);
   domainSuffixSet.forEach(suffix => {
   domainSuffixSet.forEach(suffix => {
+    // eslint-disable-next-line sukka/unicorn/no-array-method-this-argument -- this is not array
     trie1.find(suffix, true).forEach(f => domainSets.delete(f));
     trie1.find(suffix, true).forEach(f => domainSets.delete(f));
   });
   });
   filterRuleWhitelistDomainSets.forEach(suffix => {
   filterRuleWhitelistDomainSets.forEach(suffix => {
+    // eslint-disable-next-line sukka/unicorn/no-array-method-this-argument -- this is not array
     trie1.find(suffix, true).forEach(f => domainSets.delete(f));
     trie1.find(suffix, true).forEach(f => domainSets.delete(f));
   });
   });
 
 

+ 2 - 2
Build/lib/clash.js

@@ -19,9 +19,9 @@ const CLASH_SUPPORTED_RULE_TYPE = [
  */
  */
 const surgeRulesetToClashClassicalTextRuleset = (rules) => {
 const surgeRulesetToClashClassicalTextRuleset = (rules) => {
   const trie = Trie.from(rules);
   const trie = Trie.from(rules);
-  return CLASH_SUPPORTED_RULE_TYPE.map(
+  return CLASH_SUPPORTED_RULE_TYPE.flatMap(
     type => trie.find(`${type},`)
     type => trie.find(`${type},`)
-  ).flat();
+  );
 };
 };
 module.exports.surgeRulesetToClashClassicalTextRuleset = surgeRulesetToClashClassicalTextRuleset;
 module.exports.surgeRulesetToClashClassicalTextRuleset = surgeRulesetToClashClassicalTextRuleset;
 
 

+ 1 - 0
Build/lib/domain-deduper.js

@@ -15,6 +15,7 @@ const domainDeduper = (inputDomains) => {
     }
     }
 
 
     // delete all included subdomains (ends with `.example.com`)
     // delete all included subdomains (ends with `.example.com`)
+    // eslint-disable-next-line sukka/unicorn/no-array-method-this-argument -- it is not an array
     trie.find(d, false).forEach(f => sets.delete(f));
     trie.find(d, false).forEach(f => sets.delete(f));
 
 
     // if `.example.com` exists, then `example.com` should also be removed
     // if `.example.com` exists, then `example.com` should also be removed

+ 1 - 1
Build/lib/trie.js

@@ -2,7 +2,7 @@
  * Suffix Trie based on Mnemonist Trie
  * Suffix Trie based on Mnemonist Trie
  */
  */
 
 
-const SENTINEL = String.fromCharCode(0);
+const SENTINEL = String.fromCodePoint(0);
 
 
 /**
 /**
  * @param {string[] | Set<string>} [from]
  * @param {string[] | Set<string>} [from]

+ 2 - 2
package.json

@@ -34,11 +34,11 @@
     "undici": "5.24.0"
     "undici": "5.24.0"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@eslint-sukka/node": "4.0.0-beta.11",
+    "@eslint-sukka/node": "4.0.0-beta.12",
     "@types/mocha": "^10.0.1",
     "@types/mocha": "^10.0.1",
     "@types/node": "^20.6.0",
     "@types/node": "^20.6.0",
     "chai": "^4.3.8",
     "chai": "^4.3.8",
-    "eslint-config-sukka": "4.0.0-beta.11",
+    "eslint-config-sukka": "4.0.0-beta.12",
     "eslint-formatter-sukka": "4.0.0-beta.11",
     "eslint-formatter-sukka": "4.0.0-beta.11",
     "mocha": "^10.2.0"
     "mocha": "^10.2.0"
   },
   },

+ 183 - 20
pnpm-lock.yaml

@@ -70,8 +70,8 @@ dependencies:
 
 
 devDependencies:
 devDependencies:
   '@eslint-sukka/node':
   '@eslint-sukka/node':
-    specifier: 4.0.0-beta.11
-    version: 4.0.0-beta.11(eslint@8.50.0)
+    specifier: 4.0.0-beta.12
+    version: 4.0.0-beta.12(eslint@8.50.0)
   '@types/mocha':
   '@types/mocha':
     specifier: ^10.0.1
     specifier: ^10.0.1
     version: 10.0.1
     version: 10.0.1
@@ -82,8 +82,8 @@ devDependencies:
     specifier: ^4.3.8
     specifier: ^4.3.8
     version: 4.3.8
     version: 4.3.8
   eslint-config-sukka:
   eslint-config-sukka:
-    specifier: 4.0.0-beta.11
-    version: 4.0.0-beta.11(eslint@8.50.0)
+    specifier: 4.0.0-beta.12
+    version: 4.0.0-beta.12(eslint@8.50.0)(typescript@5.2.2)
   eslint-formatter-sukka:
   eslint-formatter-sukka:
     specifier: 4.0.0-beta.11
     specifier: 4.0.0-beta.11
     version: 4.0.0-beta.11
     version: 4.0.0-beta.11
@@ -133,14 +133,15 @@ packages:
     resolution: {integrity: sha512-O7x6dMstWLn2ktjcoiNLDkAGG2EjveHL+Vvc+n0fXumkJYAcSqcVYKtwDU+hDZ0uDUsnUagSYaZrOLAYE8un1A==}
     resolution: {integrity: sha512-O7x6dMstWLn2ktjcoiNLDkAGG2EjveHL+Vvc+n0fXumkJYAcSqcVYKtwDU+hDZ0uDUsnUagSYaZrOLAYE8un1A==}
     engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
     engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
 
 
-  /@eslint-sukka/js@4.0.0-beta.11(eslint@8.50.0):
-    resolution: {integrity: sha512-saR4DBCv49pdicXXjxHb/Miq9rMHJBO0hiMpplpQSncTjozr+5wNfIK6/JMzsHjwTrOu4XDmlWNyJc7IseDgzg==}
+  /@eslint-sukka/js@4.0.0-beta.12(eslint@8.50.0)(typescript@5.2.2):
+    resolution: {integrity: sha512-9SVdqOGUY/+UhxMJYDJBMmAsTuuBnBPp2RnvbTdS2gyazj0zqqUXWDAHbuvosWZVcng5Ot38JMdAU9amhSCsew==}
     dependencies:
     dependencies:
-      '@eslint-sukka/shared': 4.0.0-beta.11
+      '@eslint-sukka/shared': 4.0.0-beta.12
       '@eslint/js': 8.50.0
       '@eslint/js': 8.50.0
       '@stylistic/eslint-plugin-js': 0.0.5
       '@stylistic/eslint-plugin-js': 0.0.5
+      eslint-plugin-antfu: 1.0.0-beta.7(eslint@8.50.0)(typescript@5.2.2)
       eslint-plugin-i: 2.28.1(eslint@8.50.0)
       eslint-plugin-i: 2.28.1(eslint@8.50.0)
-      eslint-plugin-sukka: 4.0.0-beta.11
+      eslint-plugin-sukka: 4.0.0-beta.12
       eslint-plugin-unused-imports: 3.0.0(eslint@8.50.0)
       eslint-plugin-unused-imports: 3.0.0(eslint@8.50.0)
       globals: 13.22.0
       globals: 13.22.0
     transitivePeerDependencies:
     transitivePeerDependencies:
@@ -150,21 +151,22 @@ packages:
       - eslint-import-resolver-typescript
       - eslint-import-resolver-typescript
       - eslint-import-resolver-webpack
       - eslint-import-resolver-webpack
       - supports-color
       - supports-color
+      - typescript
     dev: true
     dev: true
 
 
-  /@eslint-sukka/node@4.0.0-beta.11(eslint@8.50.0):
-    resolution: {integrity: sha512-15FcwoTKAuqIShAjdt69mLbNbBkimZdMXrRbkzZ11D3lLdPyNCIJcxIrCwMF6EHXl+be3oaCYRl5hBUR2bFsig==}
+  /@eslint-sukka/node@4.0.0-beta.12(eslint@8.50.0):
+    resolution: {integrity: sha512-RDDmc7l0h/yX9udMyQ5PPX9dnZjdf1bMnjvzWc7I/Qma7JA5azXA1GhvfnJmwGFa+MBf4k7VVRsswavCJrsd1g==}
     dependencies:
     dependencies:
-      '@eslint-sukka/shared': 4.0.0-beta.11
+      '@eslint-sukka/shared': 4.0.0-beta.12
       eslint-plugin-n: 16.1.0(eslint@8.50.0)
       eslint-plugin-n: 16.1.0(eslint@8.50.0)
-      eslint-plugin-sukka: 4.0.0-beta.11
+      eslint-plugin-sukka: 4.0.0-beta.12
       globals: 13.22.0
       globals: 13.22.0
     transitivePeerDependencies:
     transitivePeerDependencies:
       - eslint
       - eslint
     dev: true
     dev: true
 
 
-  /@eslint-sukka/shared@4.0.0-beta.11:
-    resolution: {integrity: sha512-fZ6/EN9t7msTIvhvrbba3gIbA8ZmCvL1D2ic+PssUKbvJ5n/JQiL9LC+9ljs9/B6Y4nDpgHrLJc4BknnKytMDg==}
+  /@eslint-sukka/shared@4.0.0-beta.12:
+    resolution: {integrity: sha512-YhGlmmJKWMpSK/0W7a/svs0Zga6fM/Q++jY38D4W99sfnG33brTF7L6doDRMq/ttDYf/AeL9sNBX5TXObTls4g==}
     dev: true
     dev: true
 
 
   /@eslint/eslintrc@2.1.2:
   /@eslint/eslintrc@2.1.2:
@@ -341,6 +343,10 @@ packages:
       '@types/istanbul-lib-report': 3.0.0
       '@types/istanbul-lib-report': 3.0.0
     dev: false
     dev: false
 
 
+  /@types/json-schema@7.0.13:
+    resolution: {integrity: sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==}
+    dev: true
+
   /@types/mocha@10.0.1:
   /@types/mocha@10.0.1:
     resolution: {integrity: sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==}
     resolution: {integrity: sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==}
     dev: true
     dev: true
@@ -348,6 +354,10 @@ packages:
   /@types/node@20.6.0:
   /@types/node@20.6.0:
     resolution: {integrity: sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==}
     resolution: {integrity: sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==}
 
 
+  /@types/semver@7.5.3:
+    resolution: {integrity: sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==}
+    dev: true
+
   /@types/yargs-parser@21.0.0:
   /@types/yargs-parser@21.0.0:
     resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==}
     resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==}
     dev: false
     dev: false
@@ -358,6 +368,67 @@ packages:
       '@types/yargs-parser': 21.0.0
       '@types/yargs-parser': 21.0.0
     dev: false
     dev: false
 
 
+  /@typescript-eslint/scope-manager@6.7.3:
+    resolution: {integrity: sha512-wOlo0QnEou9cHO2TdkJmzF7DFGvAKEnB82PuPNHpT8ZKKaZu6Bm63ugOTn9fXNJtvuDPanBc78lGUGGytJoVzQ==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+    dependencies:
+      '@typescript-eslint/types': 6.7.3
+      '@typescript-eslint/visitor-keys': 6.7.3
+    dev: true
+
+  /@typescript-eslint/types@6.7.3:
+    resolution: {integrity: sha512-4g+de6roB2NFcfkZb439tigpAMnvEIg3rIjWQ+EM7IBaYt/CdJt6em9BJ4h4UpdgaBWdmx2iWsafHTrqmgIPNw==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+    dev: true
+
+  /@typescript-eslint/typescript-estree@6.7.3(typescript@5.2.2):
+    resolution: {integrity: sha512-YLQ3tJoS4VxLFYHTw21oe1/vIZPRqAO91z6Uv0Ss2BKm/Ag7/RVQBcXTGcXhgJMdA4U+HrKuY5gWlJlvoaKZ5g==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+    peerDependencies:
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+    dependencies:
+      '@typescript-eslint/types': 6.7.3
+      '@typescript-eslint/visitor-keys': 6.7.3
+      debug: 4.3.4(supports-color@8.1.1)
+      globby: 11.1.0
+      is-glob: 4.0.3
+      semver: 7.5.4
+      ts-api-utils: 1.0.3(typescript@5.2.2)
+      typescript: 5.2.2
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
+  /@typescript-eslint/utils@6.7.3(eslint@8.50.0)(typescript@5.2.2):
+    resolution: {integrity: sha512-vzLkVder21GpWRrmSR9JxGZ5+ibIUSudXlW52qeKpzUEQhRSmyZiVDDj3crAth7+5tmN1ulvgKaCU2f/bPRCzg==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+    peerDependencies:
+      eslint: ^7.0.0 || ^8.0.0
+    dependencies:
+      '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0)
+      '@types/json-schema': 7.0.13
+      '@types/semver': 7.5.3
+      '@typescript-eslint/scope-manager': 6.7.3
+      '@typescript-eslint/types': 6.7.3
+      '@typescript-eslint/typescript-estree': 6.7.3(typescript@5.2.2)
+      eslint: 8.50.0
+      semver: 7.5.4
+    transitivePeerDependencies:
+      - supports-color
+      - typescript
+    dev: true
+
+  /@typescript-eslint/visitor-keys@6.7.3:
+    resolution: {integrity: sha512-HEVXkU9IB+nk9o63CeICMHxFWbHWr3E1mpilIQBe9+7L/lH97rleFLVtYsfnWB+JVMaiFnEaxvknvmIzX+CqVg==}
+    engines: {node: ^16.0.0 || >=18.0.0}
+    dependencies:
+      '@typescript-eslint/types': 6.7.3
+      eslint-visitor-keys: 3.4.3
+    dev: true
+
   /@vercel/fetch-retry@5.1.3(patch_hash=jczsp2gadg65vd4ekschpibzda)(node-fetch@2.6.11):
   /@vercel/fetch-retry@5.1.3(patch_hash=jczsp2gadg65vd4ekschpibzda)(node-fetch@2.6.11):
     resolution: {integrity: sha512-UIbFc4VsEZHOr6dWuE+kxY4NxnOLXFMCWm0fSKRRHUEtrIzaJLzHpWk2QskCXTSzFgFvhkLAvSrBK2XZg7NSzg==}
     resolution: {integrity: sha512-UIbFc4VsEZHOr6dWuE+kxY4NxnOLXFMCWm0fSKRRHUEtrIzaJLzHpWk2QskCXTSzFgFvhkLAvSrBK2XZg7NSzg==}
     peerDependencies:
     peerDependencies:
@@ -426,6 +497,11 @@ packages:
   /argparse@2.0.1:
   /argparse@2.0.1:
     resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
     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'}
+    dev: true
+
   /assertion-error@1.1.0:
   /assertion-error@1.1.0:
     resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
     resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
     dev: true
     dev: true
@@ -621,6 +697,13 @@ packages:
     engines: {node: '>=0.3.1'}
     engines: {node: '>=0.3.1'}
     dev: true
     dev: true
 
 
+  /dir-glob@3.0.1:
+    resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
+    engines: {node: '>=8'}
+    dependencies:
+      path-type: 4.0.0
+    dev: true
+
   /doctrine@2.1.0:
   /doctrine@2.1.0:
     resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
     resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
     engines: {node: '>=0.10.0'}
     engines: {node: '>=0.10.0'}
@@ -646,11 +729,11 @@ packages:
     resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
     resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
     engines: {node: '>=10'}
     engines: {node: '>=10'}
 
 
-  /eslint-config-sukka@4.0.0-beta.11(eslint@8.50.0):
-    resolution: {integrity: sha512-XX3CfupK5HCSTCwnKtXzipirGb6v1tpUTzbSbgEUkFMYMvUl1r8SkDVASr2Mh42SJU/EJTFe2Sb83Y9/E5RAcg==}
+  /eslint-config-sukka@4.0.0-beta.12(eslint@8.50.0)(typescript@5.2.2):
+    resolution: {integrity: sha512-JLPfOc8Fbp1jeCsBznD9Cg1vMiOVjZMoUwwAm1LskQlgWIjsinfs1xFPjIto7xxF/bbyckAE7fb14CezNYKDOQ==}
     dependencies:
     dependencies:
-      '@eslint-sukka/js': 4.0.0-beta.11(eslint@8.50.0)
-      '@eslint-sukka/shared': 4.0.0-beta.11
+      '@eslint-sukka/js': 4.0.0-beta.12(eslint@8.50.0)(typescript@5.2.2)
+      '@eslint-sukka/shared': 4.0.0-beta.12
       ci-info: 3.8.0
       ci-info: 3.8.0
       eslint-define-config: 1.23.0
       eslint-define-config: 1.23.0
     transitivePeerDependencies:
     transitivePeerDependencies:
@@ -660,6 +743,7 @@ packages:
       - eslint-import-resolver-typescript
       - eslint-import-resolver-typescript
       - eslint-import-resolver-webpack
       - eslint-import-resolver-webpack
       - supports-color
       - supports-color
+      - typescript
     dev: true
     dev: true
 
 
   /eslint-define-config@1.23.0:
   /eslint-define-config@1.23.0:
@@ -712,6 +796,16 @@ packages:
       - supports-color
       - supports-color
     dev: true
     dev: true
 
 
+  /eslint-plugin-antfu@1.0.0-beta.7(eslint@8.50.0)(typescript@5.2.2):
+    resolution: {integrity: sha512-HERzbb3LPpRDm5FeLKPKP9XY2vwwAPKICA1GIXdunhy5pt5ecA6iYRomLHbBPlbeVEvVmwoTZuHNaPz1wW8hvw==}
+    dependencies:
+      '@typescript-eslint/utils': 6.7.3(eslint@8.50.0)(typescript@5.2.2)
+    transitivePeerDependencies:
+      - eslint
+      - supports-color
+      - typescript
+    dev: true
+
   /eslint-plugin-es-x@7.2.0(eslint@8.50.0):
   /eslint-plugin-es-x@7.2.0(eslint@8.50.0):
     resolution: {integrity: sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==}
     resolution: {integrity: sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==}
     engines: {node: ^14.18.0 || >=16.0.0}
     engines: {node: ^14.18.0 || >=16.0.0}
@@ -764,8 +858,8 @@ packages:
       semver: 7.5.3
       semver: 7.5.3
     dev: true
     dev: true
 
 
-  /eslint-plugin-sukka@4.0.0-beta.11:
-    resolution: {integrity: sha512-LN5UjkutyNs7SJD2dF0qbCa5zQWVYkMaBojcCgMVI/eyjW+J4dYWxuggiwdliLI73FkVrBjn6qS70albehjEWA==}
+  /eslint-plugin-sukka@4.0.0-beta.12:
+    resolution: {integrity: sha512-8k0r/MEMO0/KxoTUt9iPRiXRRp4DKF8sDdhD1oytS6OryD2dxeR0tSq99kj7MdTOXZABEurQLInBLR30jd3Tkg==}
     dev: true
     dev: true
 
 
   /eslint-plugin-unused-imports@3.0.0(eslint@8.50.0):
   /eslint-plugin-unused-imports@3.0.0(eslint@8.50.0):
@@ -874,6 +968,17 @@ packages:
   /fast-deep-equal@3.1.3:
   /fast-deep-equal@3.1.3:
     resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
     resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
 
 
+  /fast-glob@3.3.1:
+    resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
+    engines: {node: '>=8.6.0'}
+    dependencies:
+      '@nodelib/fs.stat': 2.0.5
+      '@nodelib/fs.walk': 1.2.8
+      glob-parent: 5.1.2
+      merge2: 1.4.1
+      micromatch: 4.0.5
+    dev: true
+
   /fast-json-stable-stringify@2.1.0:
   /fast-json-stable-stringify@2.1.0:
     resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
     resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
 
 
@@ -1002,6 +1107,18 @@ packages:
     dependencies:
     dependencies:
       type-fest: 0.20.2
       type-fest: 0.20.2
 
 
+  /globby@11.1.0:
+    resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
+    engines: {node: '>=10'}
+    dependencies:
+      array-union: 2.1.0
+      dir-glob: 3.0.1
+      fast-glob: 3.3.1
+      ignore: 5.2.4
+      merge2: 1.4.1
+      slash: 3.0.0
+    dev: true
+
   /graceful-fs@4.2.10:
   /graceful-fs@4.2.10:
     resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
     resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
     dev: false
     dev: false
@@ -1187,6 +1304,19 @@ packages:
     resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
     resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
     dev: false
     dev: false
 
 
+  /merge2@1.4.1:
+    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+    engines: {node: '>= 8'}
+    dev: true
+
+  /micromatch@4.0.5:
+    resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
+    engines: {node: '>=8.6'}
+    dependencies:
+      braces: 3.0.2
+      picomatch: 2.3.1
+    dev: true
+
   /minimatch@3.1.2:
   /minimatch@3.1.2:
     resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
     resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
     dependencies:
     dependencies:
@@ -1354,6 +1484,11 @@ packages:
       minipass: 5.0.0
       minipass: 5.0.0
     dev: false
     dev: false
 
 
+  /path-type@4.0.0:
+    resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+    engines: {node: '>=8'}
+    dev: true
+
   /pathval@1.1.1:
   /pathval@1.1.1:
     resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
     resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
     dev: true
     dev: true
@@ -1448,6 +1583,14 @@ packages:
       lru-cache: 6.0.0
       lru-cache: 6.0.0
     dev: true
     dev: true
 
 
+  /semver@7.5.4:
+    resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
+    engines: {node: '>=10'}
+    hasBin: true
+    dependencies:
+      lru-cache: 6.0.0
+    dev: true
+
   /serialize-javascript@6.0.0:
   /serialize-javascript@6.0.0:
     resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
     resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==}
     dependencies:
     dependencies:
@@ -1464,6 +1607,11 @@ packages:
     resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
     resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
     engines: {node: '>=8'}
     engines: {node: '>=8'}
 
 
+  /slash@3.0.0:
+    resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+    engines: {node: '>=8'}
+    dev: true
+
   /slice-ansi@4.0.0:
   /slice-ansi@4.0.0:
     resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==}
     resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==}
     engines: {node: '>=10'}
     engines: {node: '>=10'}
@@ -1567,6 +1715,15 @@ packages:
     resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
     resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
     dev: false
     dev: false
 
 
+  /ts-api-utils@1.0.3(typescript@5.2.2):
+    resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==}
+    engines: {node: '>=16.13.0'}
+    peerDependencies:
+      typescript: '>=4.2.0'
+    dependencies:
+      typescript: 5.2.2
+    dev: true
+
   /type-check@0.4.0:
   /type-check@0.4.0:
     resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
     resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
     engines: {node: '>= 0.8.0'}
     engines: {node: '>= 0.8.0'}
@@ -1582,6 +1739,12 @@ packages:
     resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
     resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
     engines: {node: '>=10'}
     engines: {node: '>=10'}
 
 
+  /typescript@5.2.2:
+    resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
+    engines: {node: '>=14.17'}
+    hasBin: true
+    dev: true
+
   /undici@5.24.0:
   /undici@5.24.0:
     resolution: {integrity: sha512-OKlckxBjFl0oXxcj9FU6oB8fDAaiRUq+D8jrFWGmOfI/gIyjk/IeS75LMzgYKUaeHzLUcYvf9bbJGSrUwTfwwQ==}
     resolution: {integrity: sha512-OKlckxBjFl0oXxcj9FU6oB8fDAaiRUq+D8jrFWGmOfI/gIyjk/IeS75LMzgYKUaeHzLUcYvf9bbJGSrUwTfwwQ==}
     engines: {node: '>=14.0'}
     engines: {node: '>=14.0'}