Browse Source

Chore: update ESLint config

SukkaW 2 years ago
parent
commit
3d2afa608c

+ 0 - 21
.eslintrc.json

@@ -1,21 +0,0 @@
-{
-  "root": true,
-  "extends": ["sukka/node"],
-  "ignorePatterns": [
-    "node_modules/",
-    // disable for now
-    "**/*.d.ts"
-  ],
-  "overrides": [
-    {
-      "files": ["**/*.js"],
-      "rules": {
-        "no-console": "off"
-      },
-      "parserOptions": {
-        "ecmaVersion": "latest",
-        "sourceType": "module"
-      }
-    }
-  ]
-}

+ 2 - 1
Assets/addthis-com_addthis_widget.js

@@ -1,5 +1,6 @@
 (function () {
 (function () {
   'use strict';
   'use strict';
+
   const noopfn = function () {
   const noopfn = function () {
   };
   };
   window.addthis = {
   window.addthis = {
@@ -15,4 +16,4 @@
     toolbox: noopfn,
     toolbox: noopfn,
     update: noopfn
     update: noopfn
   };
   };
-})();
+}());

+ 2 - 1
Assets/ampproject-org_v0.js

@@ -1,5 +1,6 @@
 (function () {
 (function () {
   'use strict';
   'use strict';
+
   const head = document.head;
   const head = document.head;
   if (!head) { return; }
   if (!head) { return; }
   const style = document.createElement('style');
   const style = document.createElement('style');
@@ -10,4 +11,4 @@
     '}'
     '}'
   ].join('\n');
   ].join('\n');
   head.appendChild(style);
   head.appendChild(style);
-})();
+}());

+ 83 - 82
Assets/www-google-analytics-com_analytics.js

@@ -1,88 +1,89 @@
 (function () {
 (function () {
-    'use strict';
-    // https://developers.google.com/analytics/devguides/collection/analyticsjs/
-    const noopfn = function () {
-    };
+  'use strict';
+
+  // https://developers.google.com/analytics/devguides/collection/analyticsjs/
+  const noopfn = function () {
+  };
     //
     //
-    const Tracker = function () {
-    };
-    const p = Tracker.prototype;
-    p.get = noopfn;
-    p.set = noopfn;
-    p.send = noopfn;
-    //
-    const w = window;
-    const gaName = w.GoogleAnalyticsObject || 'ga';
-    const gaQueue = w[gaName];
-    const ga = function () {
-        const len = arguments.length;
-        if (len === 0) { return; }
-        const args = Array.from(arguments);
-        let fn;
-        let a = args[len - 1];
-        if (a instanceof Object && typeof a.hitCallback === 'function') {
-            fn = a.hitCallback;
-        } else if (a instanceof Function) {
-            fn = () => { a(ga.create()); };
-        } else {
-            const pos = args.indexOf('hitCallback');
-            if (pos !== -1 && typeof args[pos + 1] === 'function') {
-                fn = args[pos + 1];
-            }
-        }
-        if (typeof fn !== 'function') { return; }
-        try {
-            fn();
-        } catch (ex) {
-        }
-    };
-    ga.create = function () {
-        return new Tracker();
-    };
-    ga.getByName = function () {
-        return new Tracker();
-    };
-    ga.getAll = function () {
-        return [new Tracker()];
-    };
-    ga.remove = noopfn;
-    // https://github.com/uBlockOrigin/uAssets/issues/2107
-    ga.loaded = true;
-    w[gaName] = ga;
-    // https://github.com/gorhill/uBlock/issues/3075
-    const dl = w.dataLayer;
-    if (dl instanceof Object) {
-        if (dl.hide instanceof Object && typeof dl.hide.end === 'function') {
-            dl.hide.end();
-            dl.hide.end = () => { };
+  const Tracker = function () {
+  };
+  const p = Tracker.prototype;
+  p.get = noopfn;
+  p.set = noopfn;
+  p.send = noopfn;
+  //
+  const w = window;
+  const gaName = w.GoogleAnalyticsObject || 'ga';
+  const gaQueue = w[gaName];
+  const ga = function (...args) {
+    const len = args.length;
+    if (len === 0) { return; }
+    let fn;
+    const a = args[len - 1];
+    if (typeof a === 'object' && typeof a.hitCallback === 'function') {
+      fn = a.hitCallback;
+    } else if (typeof a === 'function') {
+      fn = () => { a(ga.create()); };
+    } else {
+      const pos = args.indexOf('hitCallback');
+      if (pos !== -1 && typeof args[pos + 1] === 'function') {
+        fn = args[pos + 1];
+      }
+    }
+    if (typeof fn !== 'function') { return; }
+    try {
+      fn();
+    } catch (ex) {
+    }
+  };
+  ga.create = function () {
+    return new Tracker();
+  };
+  ga.getByName = function () {
+    return new Tracker();
+  };
+  ga.getAll = function () {
+    return [new Tracker()];
+  };
+  ga.remove = noopfn;
+  // https://github.com/uBlockOrigin/uAssets/issues/2107
+  ga.loaded = true;
+  w[gaName] = ga;
+  // https://github.com/gorhill/uBlock/issues/3075
+  const dl = w.dataLayer;
+  if (typeof dl === 'object') {
+    if (typeof dl.hide === 'object' && typeof dl.hide.end === 'function') {
+      dl.hide.end();
+      dl.hide.end = () => { };
+    }
+    if (typeof dl.push === 'function') {
+      const doCallback = function (item) {
+        if (typeof item === 'object' === false) { return; }
+        if (typeof item.eventCallback !== 'function') { return; }
+        // eslint-disable-next-line sukka/prefer-timer-id -- deliberate use of setTimeout
+        setTimeout(item.eventCallback, 1);
+        item.eventCallback = () => { };
+      };
+      dl.push = new Proxy(dl.push, {
+        apply(target, thisArg, args) {
+          doCallback(args[0]);
+          return Reflect.apply(target, thisArg, args);
         }
         }
-        if (typeof dl.push === 'function') {
-            const doCallback = function (item) {
-                if (item instanceof Object === false) { return; }
-                if (typeof item.eventCallback !== 'function') { return; }
-                setTimeout(item.eventCallback, 1);
-                item.eventCallback = () => { };
-            };
-            dl.push = new Proxy(dl.push, {
-                apply: function (target, thisArg, args) {
-                    doCallback(args[0]);
-                    return Reflect.apply(target, thisArg, args);
-                }
-            });
-            if (Array.isArray(dl)) {
-                const q = dl.slice();
-                for (const item of q) {
-                    doCallback(item);
-                }
-            }
+      });
+      if (Array.isArray(dl)) {
+        const q = dl.slice();
+        for (const item of q) {
+          doCallback(item);
         }
         }
+      }
     }
     }
-    // empty ga queue
-    if (typeof gaQueue === 'function' && Array.isArray(gaQueue.q)) {
-        const q = gaQueue.q.slice();
-        gaQueue.q.length = 0;
-        for (const entry of q) {
-            ga(...entry);
-        }
+  }
+  // empty ga queue
+  if (typeof gaQueue === 'function' && Array.isArray(gaQueue.q)) {
+    const q = gaQueue.q.slice();
+    gaQueue.q.length = 0;
+    for (const entry of q) {
+      ga(...entry);
     }
     }
-})();
+  }
+}());

+ 3 - 2
Assets/www-google-analytics-com_cx_api.js

@@ -1,9 +1,10 @@
 (function () {
 (function () {
   'use strict';
   'use strict';
+
   const noopfn = function () {
   const noopfn = function () {
   };
   };
   window.cxApi = {
   window.cxApi = {
-    chooseVariation: function () {
+    chooseVariation() {
       return 0;
       return 0;
     },
     },
     getChosenVariation: noopfn,
     getChosenVariation: noopfn,
@@ -12,4 +13,4 @@
     setCookiePath: noopfn,
     setCookiePath: noopfn,
     setDomainName: noopfn
     setDomainName: noopfn
   };
   };
-})();
+}());

+ 9 - 7
Assets/www-google-analytics-com_ga.js

@@ -1,5 +1,6 @@
 (function () {
 (function () {
   'use strict';
   'use strict';
+
   const noopfn = function () {
   const noopfn = function () {
   };
   };
   //
   //
@@ -20,9 +21,9 @@
     if (Array.isArray(a) === false) { return; }
     if (Array.isArray(a) === false) { return; }
     // https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiDomainDirectory#_gat.GA_Tracker_._link
     // https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiDomainDirectory#_gat.GA_Tracker_._link
     if (
     if (
-      typeof a[0] === 'string' &&
-      /(^|\.)_link$/.test(a[0]) &&
-      typeof a[1] === 'string'
+      typeof a[0] === 'string'
+      && /(^|\.)_link$/.test(a[0])
+      && typeof a[1] === 'string'
     ) {
     ) {
       try {
       try {
         window.location.assign(a[1]);
         window.location.assign(a[1]);
@@ -69,7 +70,7 @@
       }
       }
     };
     };
     return out;
     return out;
-  })();
+  }());
   //
   //
   const Gat = function () {
   const Gat = function () {
   };
   };
@@ -102,6 +103,7 @@
         gaq.push(aa.shift());
         gaq.push(aa.shift());
       }
       }
     }
     }
-  })();
-  window._gaq = gaq.qf = gaq;
-})();
+  }());
+  gaq.qf = gaq;
+  window._gaq = gaq;
+}());

+ 3 - 2
Assets/www-google-analytics-com_inpage_linkid.js

@@ -1,7 +1,8 @@
 (function () {
 (function () {
   'use strict';
   'use strict';
+
   window._gaq = window._gaq || {
   window._gaq = window._gaq || {
-    push: function () {
+    push() {
     }
     }
   };
   };
-})();
+}());

+ 5 - 4
Assets/www-googlesyndication-com_adsbygoogle.js

@@ -1,9 +1,10 @@
 (function () {
 (function () {
   'use strict';
   'use strict';
+
   const init = () => {
   const init = () => {
     window.adsbygoogle = {
     window.adsbygoogle = {
       loaded: true,
       loaded: true,
-      push: function () {
+      push() {
       }
       }
     };
     };
     const phs = document.querySelectorAll('.adsbygoogle');
     const phs = document.querySelectorAll('.adsbygoogle');
@@ -21,11 +22,11 @@
     }
     }
   };
   };
   if (
   if (
-    document.querySelectorAll('.adsbygoogle').length === 0 &&
-    document.readyState === 'loading'
+    document.querySelectorAll('.adsbygoogle').length === 0
+    && document.readyState === 'loading'
   ) {
   ) {
     window.addEventListener('DOMContentLoaded', init, { once: true });
     window.addEventListener('DOMContentLoaded', init, { once: true });
   } else {
   } else {
     init();
     init();
   }
   }
-})();
+}());

+ 7 - 5
Assets/www-googletagmanager-com_gtm.js

@@ -1,22 +1,24 @@
 (function () {
 (function () {
   'use strict';
   'use strict';
+
   const noopfn = function () {
   const noopfn = function () {
   };
   };
   const w = window;
   const w = window;
   w.ga = w.ga || noopfn;
   w.ga = w.ga || noopfn;
   const dl = w.dataLayer;
   const dl = w.dataLayer;
-  if (dl instanceof Object === false) { return; }
-  if (dl.hide instanceof Object && typeof dl.hide.end === 'function') {
+  if (typeof dl !== 'object') { return; }
+  if (typeof dl.hide === 'object' && typeof dl.hide.end === 'function') {
     dl.hide.end();
     dl.hide.end();
   }
   }
   if (typeof dl.push === 'function') {
   if (typeof dl.push === 'function') {
     dl.push = function (o) {
     dl.push = function (o) {
       if (
       if (
-        o instanceof Object &&
-        typeof o.eventCallback === 'function'
+        typeof o === 'object'
+        && typeof o.eventCallback === 'function'
       ) {
       ) {
+        // eslint-disable-next-line sukka/prefer-timer-id -- deliberately use setTimeout
         setTimeout(o.eventCallback, 1);
         setTimeout(o.eventCallback, 1);
       }
       }
     };
     };
   }
   }
-})();
+}());

+ 4 - 3
Assets/www-googletagservices-com_gpt.js

@@ -1,5 +1,6 @@
 (function () {
 (function () {
   'use strict';
   'use strict';
+
   // https://developers.google.com/doubleclick-gpt/reference
   // https://developers.google.com/doubleclick-gpt/reference
   const noopfn = function () {
   const noopfn = function () {
   }.bind();
   }.bind();
@@ -42,8 +43,8 @@
     clearTagForChildDirectedTreatment: noopthisfn,
     clearTagForChildDirectedTreatment: noopthisfn,
     clearTargeting: noopthisfn,
     clearTargeting: noopthisfn,
     collapseEmptyDivs: noopfn,
     collapseEmptyDivs: noopfn,
-    defineOutOfPagePassback: function () { return new PassbackSlot(); },
-    definePassback: function () { return new PassbackSlot(); },
+    defineOutOfPagePassback() { return new PassbackSlot(); },
+    definePassback() { return new PassbackSlot(); },
     disableInitialLoad: noopfn,
     disableInitialLoad: noopfn,
     display: noopfn,
     display: noopfn,
     enableAsyncRendering: noopfn,
     enableAsyncRendering: noopfn,
@@ -129,4 +130,4 @@
   while (cmd.length !== 0) {
   while (cmd.length !== 0) {
     gpt.cmd.push(cmd.shift());
     gpt.cmd.push(cmd.shift());
   }
   }
-})();
+}());

+ 1 - 1
Build/build-internal-cdn-rules.js

@@ -14,7 +14,7 @@ const { createCachedGorhillGetDomain } = require('./lib/cached-tld-parse');
  * @param {string} string
  * @param {string} string
  */
  */
 const escapeRegExp = (string) => {
 const escapeRegExp = (string) => {
-  return string.replace(/[\\^$.*+?()[\]{}|]/g, '\\$&');
+  return string.replaceAll(/[$()*+.?[\\\]^{|}]/g, '\\$&');
 };
 };
 
 
 const buildInternalCDNDomains = task(__filename, async () => {
 const buildInternalCDNDomains = task(__filename, async () => {

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

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

+ 4 - 9
Build/lib/parse-filter.js

@@ -229,7 +229,7 @@ async function processFilterRules(filterRulesUrl, fallbackUrls) {
   };
   };
 }
 }
 
 
-const R_KNOWN_NOT_NETWORK_FILTER_PATTERN = /[#&%~=]/;
+const R_KNOWN_NOT_NETWORK_FILTER_PATTERN = /[#%&=~]/;
 const R_KNOWN_NOT_NETWORK_FILTER_PATTERN_2 = /(\$popup|\$removeparam|\$popunder)/;
 const R_KNOWN_NOT_NETWORK_FILTER_PATTERN_2 = /(\$popup|\$removeparam|\$popunder)/;
 
 
 /**
 /**
@@ -350,8 +350,6 @@ function parse($line, gorhill) {
     return null;
     return null;
   }
   }
 
 
-  /* eslint-disable no-nested-ternary -- speed */
-
   const linedEndsWithCaret = lastChar === '^';
   const linedEndsWithCaret = lastChar === '^';
   const lineEndsWithCaretVerticalBar = lastChar === '|' && line[len - 2] === '^';
   const lineEndsWithCaretVerticalBar = lastChar === '|' && line[len - 2] === '^';
 
 
@@ -425,9 +423,8 @@ function parse($line, gorhill) {
       ? -1
       ? -1
       : lineEndsWithCaretOrCaretVerticalBar
       : lineEndsWithCaretOrCaretVerticalBar
         ? -2
         ? -2
-        : line.endsWith('$cname')
-          ? -6
-          : 0;
+        // eslint-disable-next-line sukka/unicorn/no-nested-ternary -- speed
+        : (line.endsWith('$cname') ? -6 : 0);
 
 
     const _domain = line
     const _domain = line
       // .replace('||', '')
       // .replace('||', '')
@@ -458,9 +455,7 @@ function parse($line, gorhill) {
         1,
         1,
         linedEndsWithCaret
         linedEndsWithCaret
           ? -1
           ? -1
-          : lineEndsWithCaretVerticalBar
-            ? -2
-            : 0
+          : (lineEndsWithCaretVerticalBar ? -2 : 0)
       ) // remove prefix dot
       ) // remove prefix dot
       .replace('^|', '')
       .replace('^|', '')
       .replaceAll('^', '')
       .replaceAll('^', '')

+ 5 - 3
Script/abema_unlock.js

@@ -1,10 +1,12 @@
+/* global $request, $response, $done */
+
 const url = $request.url;
 const url = $request.url;
 const body = url.endsWith('region') || url.endsWith('region/')
 const body = url.endsWith('region') || url.endsWith('region/')
   ? 'OK'
   ? 'OK'
-  : $response.body
+  : $response.body;
 
 
 if ($request.method === 'OPTION') {
 if ($request.method === 'OPTION') {
-  $done({})
+  $done({});
 } else {
 } else {
   $done({
   $done({
     status: 200,
     status: 200,
@@ -18,5 +20,5 @@ if ($request.method === 'OPTION') {
       'Access-Control-Expose-Headers': 'Server,range,hdntl,hdnts,Akamai-Mon-Iucid-Ing,Akamai-Mon-Iucid-Del,Akamai-Request-BC',
       'Access-Control-Expose-Headers': 'Server,range,hdntl,hdnts,Akamai-Mon-Iucid-Ing,Akamai-Mon-Iucid-Del,Akamai-Request-BC',
       'Access-Control-Max-Age': '86400'
       'Access-Control-Max-Age': '86400'
     }
     }
-  })
+  });
 }
 }

+ 5 - 3
Script/fuck_emby.js

@@ -1,3 +1,5 @@
+/* global $request, $done */
+
 const url = $request.url;
 const url = $request.url;
 const newHeaders = {
 const newHeaders = {
   Crack: 'Sukka',
   Crack: 'Sukka',
@@ -10,9 +12,9 @@ let obj = {};
 
 
 if (url.includes('/admin/service/registration/validateDevice')) {
 if (url.includes('/admin/service/registration/validateDevice')) {
   obj = {
   obj = {
-    'cacheExpirationDays': 365,
-    'message': 'Device Valid',
-    'resultCode': 'GOOD'
+    cacheExpirationDays: 365,
+    message: 'Device Valid',
+    resultCode: 'GOOD'
   };
   };
 } else if (url.includes('/admin/service/appstore/register')) {
 } else if (url.includes('/admin/service/appstore/register')) {
   obj = {
   obj = {

+ 3 - 1
Script/pixiv_premium.js

@@ -1,3 +1,5 @@
+/* global $response, $done */
+
 let body = $response.body;
 let body = $response.body;
 body = JSON.parse(body);
 body = JSON.parse(body);
 if (body?.response) {
 if (body?.response) {
@@ -11,4 +13,4 @@ if (body?.user) {
 }
 }
 body = JSON.stringify(body);
 body = JSON.stringify(body);
 
 
-$done({ body })
+$done({ body });

+ 3 - 0
Source/domainset/cdn.conf

@@ -1920,3 +1920,6 @@ cdn.freebiesupply.com
 static.tronscan.org
 static.tronscan.org
 asset-cdn.uscardforum.com
 asset-cdn.uscardforum.com
 public.saasexch.com
 public.saasexch.com
+img.foresightnews.pro
+cdn.sunofbeaches.com
+image.theblockbeats.info

+ 1 - 0
Source/domainset/reject_sukka.conf

@@ -639,6 +639,7 @@ sa.holopin.io
 analytics.infomaniak.com
 analytics.infomaniak.com
 .prtrackings.com
 .prtrackings.com
 p.cloudcraft.co
 p.cloudcraft.co
+collect.foresightnews.pro
 
 
 upload.qiniup.com
 upload.qiniup.com
 upload-z1.qiniup.com
 upload-z1.qiniup.com

+ 13 - 0
eslint.config.js

@@ -0,0 +1,13 @@
+'use strict';
+
+module.exports = require('eslint-config-sukka').sukka({
+  js: {
+    disableNoConsoleInCLI: ['Build/**']
+  },
+  node: true
+}, {
+  rules: {
+    'sukka/unicorn/prefer-math-trunc': 'off',
+    'sukka/unicorn/prefer-number-properties': ['warn', { checkInfinity: false }]
+  }
+});

+ 6 - 4
package.json

@@ -4,7 +4,8 @@
   "private": true,
   "private": true,
   "description": "",
   "description": "",
   "scripts": {
   "scripts": {
-    "build": "node ./Build/index.js"
+    "build": "node ./Build/index.js",
+    "lint": "eslint --format=eslint-formatter-sukka ."
   },
   },
   "repository": {
   "repository": {
     "type": "git",
     "type": "git",
@@ -19,6 +20,7 @@
     "async-sema": "^3.1.1",
     "async-sema": "^3.1.1",
     "ci-info": "^3.8.0",
     "ci-info": "^3.8.0",
     "cidr-tools-wasm": "^0.0.11",
     "cidr-tools-wasm": "^0.0.11",
+    "eslint": "^8.50.0",
     "fs-extra": "^11.1.1",
     "fs-extra": "^11.1.1",
     "gorhill-publicsuffixlist": "github:gorhill/publicsuffixlist.js",
     "gorhill-publicsuffixlist": "github:gorhill/publicsuffixlist.js",
     "jest-worker": "^29.7.0",
     "jest-worker": "^29.7.0",
@@ -32,12 +34,12 @@
     "undici": "5.24.0"
     "undici": "5.24.0"
   },
   },
   "devDependencies": {
   "devDependencies": {
+    "@eslint-sukka/node": "4.0.0-beta.11",
     "@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": "^3.0.6",
-    "eslint-plugin-import": "npm:eslint-plugin-i@2.28.1",
-    "eslint-plugin-n": "^16.1.0",
+    "eslint-config-sukka": "4.0.0-beta.11",
+    "eslint-formatter-sukka": "4.0.0-beta.11",
     "mocha": "^10.2.0"
     "mocha": "^10.2.0"
   },
   },
   "engines": {
   "engines": {

+ 151 - 161
pnpm-lock.yaml

@@ -31,6 +31,9 @@ dependencies:
   cidr-tools-wasm:
   cidr-tools-wasm:
     specifier: ^0.0.11
     specifier: ^0.0.11
     version: 0.0.11
     version: 0.0.11
+  eslint:
+    specifier: ^8.50.0
+    version: 8.50.0
   fs-extra:
   fs-extra:
     specifier: ^11.1.1
     specifier: ^11.1.1
     version: 11.1.1
     version: 11.1.1
@@ -66,6 +69,9 @@ dependencies:
     version: 5.24.0
     version: 5.24.0
 
 
 devDependencies:
 devDependencies:
+  '@eslint-sukka/node':
+    specifier: 4.0.0-beta.11
+    version: 4.0.0-beta.11(eslint@8.50.0)
   '@types/mocha':
   '@types/mocha':
     specifier: ^10.0.1
     specifier: ^10.0.1
     version: 10.0.1
     version: 10.0.1
@@ -76,14 +82,11 @@ devDependencies:
     specifier: ^4.3.8
     specifier: ^4.3.8
     version: 4.3.8
     version: 4.3.8
   eslint-config-sukka:
   eslint-config-sukka:
-    specifier: ^3.0.6
-    version: 3.0.6(eslint@8.44.0)
-  eslint-plugin-import:
-    specifier: npm:eslint-plugin-i@2.28.1
-    version: /eslint-plugin-i@2.28.1(eslint@8.44.0)
-  eslint-plugin-n:
-    specifier: ^16.1.0
-    version: 16.1.0(eslint@8.44.0)
+    specifier: 4.0.0-beta.11
+    version: 4.0.0-beta.11(eslint@8.50.0)
+  eslint-formatter-sukka:
+    specifier: 4.0.0-beta.11
+    version: 4.0.0-beta.11
   mocha:
   mocha:
     specifier: ^10.2.0
     specifier: ^10.2.0
     version: 10.2.0
     version: 10.2.0
@@ -93,7 +96,6 @@ packages:
   /@aashutoshrathi/word-wrap@1.2.6:
   /@aashutoshrathi/word-wrap@1.2.6:
     resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
     resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
     engines: {node: '>=0.10.0'}
     engines: {node: '>=0.10.0'}
-    dev: true
 
 
   /@cliqz/adblocker-content@1.26.6:
   /@cliqz/adblocker-content@1.26.6:
     resolution: {integrity: sha512-cebc5AjL/quVVdcClJ7dqqvW5SrqATfUhwqn5MzWtponZ3t3fRpgpFgkt2fNa5rd3iz1UfTcAtWrgpshHYurTA==}
     resolution: {integrity: sha512-cebc5AjL/quVVdcClJ7dqqvW5SrqATfUhwqn5MzWtponZ3t3fRpgpFgkt2fNa5rd3iz1UfTcAtWrgpshHYurTA==}
@@ -118,29 +120,61 @@ packages:
       tldts-experimental: 6.0.8
       tldts-experimental: 6.0.8
     dev: false
     dev: false
 
 
-  /@eslint-community/eslint-utils@4.4.0(eslint@8.44.0):
+  /@eslint-community/eslint-utils@4.4.0(eslint@8.50.0):
     resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
     resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     peerDependencies:
     peerDependencies:
       eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
       eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
     dependencies:
     dependencies:
-      eslint: 8.44.0
-      eslint-visitor-keys: 3.4.1
-    dev: true
+      eslint: 8.50.0
+      eslint-visitor-keys: 3.4.3
 
 
   /@eslint-community/regexpp@4.6.1:
   /@eslint-community/regexpp@4.6.1:
     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==}
+    dependencies:
+      '@eslint-sukka/shared': 4.0.0-beta.11
+      '@eslint/js': 8.50.0
+      '@stylistic/eslint-plugin-js': 0.0.5
+      eslint-plugin-i: 2.28.1(eslint@8.50.0)
+      eslint-plugin-sukka: 4.0.0-beta.11
+      eslint-plugin-unused-imports: 3.0.0(eslint@8.50.0)
+      globals: 13.22.0
+    transitivePeerDependencies:
+      - '@typescript-eslint/eslint-plugin'
+      - '@typescript-eslint/parser'
+      - eslint
+      - eslint-import-resolver-typescript
+      - eslint-import-resolver-webpack
+      - supports-color
     dev: true
     dev: true
 
 
-  /@eslint/eslintrc@2.1.0:
-    resolution: {integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==}
+  /@eslint-sukka/node@4.0.0-beta.11(eslint@8.50.0):
+    resolution: {integrity: sha512-15FcwoTKAuqIShAjdt69mLbNbBkimZdMXrRbkzZ11D3lLdPyNCIJcxIrCwMF6EHXl+be3oaCYRl5hBUR2bFsig==}
+    dependencies:
+      '@eslint-sukka/shared': 4.0.0-beta.11
+      eslint-plugin-n: 16.1.0(eslint@8.50.0)
+      eslint-plugin-sukka: 4.0.0-beta.11
+      globals: 13.22.0
+    transitivePeerDependencies:
+      - eslint
+    dev: true
+
+  /@eslint-sukka/shared@4.0.0-beta.11:
+    resolution: {integrity: sha512-fZ6/EN9t7msTIvhvrbba3gIbA8ZmCvL1D2ic+PssUKbvJ5n/JQiL9LC+9ljs9/B6Y4nDpgHrLJc4BknnKytMDg==}
+    dev: true
+
+  /@eslint/eslintrc@2.1.2:
+    resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     dependencies:
     dependencies:
       ajv: 6.12.6
       ajv: 6.12.6
       debug: 4.3.4(supports-color@8.1.1)
       debug: 4.3.4(supports-color@8.1.1)
-      espree: 9.6.0
-      globals: 13.20.0
+      espree: 9.6.1
+      globals: 13.22.0
       ignore: 5.2.4
       ignore: 5.2.4
       import-fresh: 3.3.0
       import-fresh: 3.3.0
       js-yaml: 4.1.0
       js-yaml: 4.1.0
@@ -148,24 +182,13 @@ packages:
       strip-json-comments: 3.1.1
       strip-json-comments: 3.1.1
     transitivePeerDependencies:
     transitivePeerDependencies:
       - supports-color
       - supports-color
-    dev: true
 
 
-  /@eslint/js@8.44.0:
-    resolution: {integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==}
+  /@eslint/js@8.50.0:
+    resolution: {integrity: sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    dev: true
-
-  /@fluffyfox/eslint-plugin@0.1.0(eslint@8.44.0):
-    resolution: {integrity: sha512-akpFZb5VGXaja0zrndWNsp8pjxGVNvhmT34sk9MsXAVrVlv7LB4pqfSGJ684y6kR2FIDsT1cVcPIbGuD5W00Sg==}
-    engines: {node: '>= 16'}
-    peerDependencies:
-      eslint: '>= 8'
-    dependencies:
-      eslint: 8.44.0
-    dev: true
 
 
-  /@humanwhocodes/config-array@0.11.10:
-    resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==}
+  /@humanwhocodes/config-array@0.11.11:
+    resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==}
     engines: {node: '>=10.10.0'}
     engines: {node: '>=10.10.0'}
     dependencies:
     dependencies:
       '@humanwhocodes/object-schema': 1.2.1
       '@humanwhocodes/object-schema': 1.2.1
@@ -173,16 +196,13 @@ packages:
       minimatch: 3.1.2
       minimatch: 3.1.2
     transitivePeerDependencies:
     transitivePeerDependencies:
       - supports-color
       - supports-color
-    dev: true
 
 
   /@humanwhocodes/module-importer@1.0.1:
   /@humanwhocodes/module-importer@1.0.1:
     resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
     resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
     engines: {node: '>=12.22'}
     engines: {node: '>=12.22'}
-    dev: true
 
 
   /@humanwhocodes/object-schema@1.2.1:
   /@humanwhocodes/object-schema@1.2.1:
     resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
     resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
-    dev: true
 
 
   /@jest/schemas@29.6.3:
   /@jest/schemas@29.6.3:
     resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
     resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
@@ -209,12 +229,10 @@ packages:
     dependencies:
     dependencies:
       '@nodelib/fs.stat': 2.0.5
       '@nodelib/fs.stat': 2.0.5
       run-parallel: 1.2.0
       run-parallel: 1.2.0
-    dev: true
 
 
   /@nodelib/fs.stat@2.0.5:
   /@nodelib/fs.stat@2.0.5:
     resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
     resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
     engines: {node: '>= 8'}
     engines: {node: '>= 8'}
-    dev: true
 
 
   /@nodelib/fs.walk@1.2.8:
   /@nodelib/fs.walk@1.2.8:
     resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
     resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
@@ -222,7 +240,6 @@ packages:
     dependencies:
     dependencies:
       '@nodelib/fs.scandir': 2.1.5
       '@nodelib/fs.scandir': 2.1.5
       fastq: 1.13.0
       fastq: 1.13.0
-    dev: true
 
 
   /@nolyfill/has@1.0.21:
   /@nolyfill/has@1.0.21:
     resolution: {integrity: sha512-Sf8iFaegjGp29hQVQjIc+nDR0uWqGkHsFC3jsUigFwGjpafgMaBtL++DpTU9jYAKDJEvslR1szl8qJjNGlhgcw==}
     resolution: {integrity: sha512-Sf8iFaegjGp29hQVQjIc+nDR0uWqGkHsFC3jsUigFwGjpafgMaBtL++DpTU9jYAKDJEvslR1szl8qJjNGlhgcw==}
@@ -268,6 +285,17 @@ packages:
     resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
     resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
     dev: false
     dev: false
 
 
+  /@stylistic/eslint-plugin-js@0.0.5:
+    resolution: {integrity: sha512-Ca3DAk4lHGELPHnHIOUc/SF3Pg58xd/AATqNMSTSoxjoadRk6MGDblriURXjEg7gif4ygiB3+EcIuphAceFYvQ==}
+    dependencies:
+      acorn: 8.10.0
+      escape-string-regexp: 4.0.0
+      eslint-visitor-keys: 3.4.3
+      espree: 9.6.1
+      esutils: 2.0.3
+      graphemer: 1.4.0
+    dev: true
+
   /@sukka/listdir@0.2.0:
   /@sukka/listdir@0.2.0:
     resolution: {integrity: sha512-UyVirNhAOXKwjiDehjUaGtpfk0QwNHyiXrlLb/FmWMtI+BGhaEvB9MypSfEAtiiMI3g6QTfG38ayNAorEuz5ow==}
     resolution: {integrity: sha512-UyVirNhAOXKwjiDehjUaGtpfk0QwNHyiXrlLb/FmWMtI+BGhaEvB9MypSfEAtiiMI3g6QTfG38ayNAorEuz5ow==}
     dev: false
     dev: false
@@ -343,19 +371,17 @@ packages:
     dev: false
     dev: false
     patched: true
     patched: true
 
 
-  /acorn-jsx@5.3.2(acorn@8.9.0):
+  /acorn-jsx@5.3.2(acorn@8.10.0):
     resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
     resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
     peerDependencies:
     peerDependencies:
       acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
       acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
     dependencies:
     dependencies:
-      acorn: 8.9.0
-    dev: true
+      acorn: 8.10.0
 
 
-  /acorn@8.9.0:
-    resolution: {integrity: sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==}
+  /acorn@8.10.0:
+    resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==}
     engines: {node: '>=0.4.0'}
     engines: {node: '>=0.4.0'}
     hasBin: true
     hasBin: true
-    dev: true
 
 
   /ajv@6.12.6:
   /ajv@6.12.6:
     resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
     resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
@@ -364,7 +390,6 @@ packages:
       fast-json-stable-stringify: 2.1.0
       fast-json-stable-stringify: 2.1.0
       json-schema-traverse: 0.4.1
       json-schema-traverse: 0.4.1
       uri-js: 4.4.1
       uri-js: 4.4.1
-    dev: true
 
 
   /ajv@8.8.2:
   /ajv@8.8.2:
     resolution: {integrity: sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==}
     resolution: {integrity: sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==}
@@ -400,7 +425,6 @@ 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==}
-    dev: true
 
 
   /assertion-error@1.1.0:
   /assertion-error@1.1.0:
     resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
     resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
@@ -423,7 +447,6 @@ packages:
 
 
   /balanced-match@1.0.2:
   /balanced-match@1.0.2:
     resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
     resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
-    dev: true
 
 
   /binary-extensions@2.2.0:
   /binary-extensions@2.2.0:
     resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
     resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
@@ -435,7 +458,6 @@ packages:
     dependencies:
     dependencies:
       balanced-match: 1.0.2
       balanced-match: 1.0.2
       concat-map: 0.0.1
       concat-map: 0.0.1
-    dev: true
 
 
   /brace-expansion@2.0.1:
   /brace-expansion@2.0.1:
     resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
     resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
@@ -470,7 +492,6 @@ packages:
   /callsites@3.1.0:
   /callsites@3.1.0:
     resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
     resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
     engines: {node: '>=6'}
     engines: {node: '>=6'}
-    dev: true
 
 
   /camelcase@6.3.0:
   /camelcase@6.3.0:
     resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
     resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
@@ -524,7 +545,6 @@ packages:
   /ci-info@3.8.0:
   /ci-info@3.8.0:
     resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==}
     resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==}
     engines: {node: '>=8'}
     engines: {node: '>=8'}
-    dev: false
 
 
   /cidr-tools-wasm@0.0.11:
   /cidr-tools-wasm@0.0.11:
     resolution: {integrity: sha512-WUnooVHC+0/uwG+/5QZT6auR2Gzga+BFkwyQiKki8uZnVHOCn3gEt+FVjHg/7pdXsCbzGsDSMGkZ31ZqIkUrrw==}
     resolution: {integrity: sha512-WUnooVHC+0/uwG+/5QZT6auR2Gzga+BFkwyQiKki8uZnVHOCn3gEt+FVjHg/7pdXsCbzGsDSMGkZ31ZqIkUrrw==}
@@ -548,8 +568,7 @@ packages:
     resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
     resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
 
 
   /concat-map@0.0.1:
   /concat-map@0.0.1:
-    resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
-    dev: true
+    resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
 
 
   /cross-spawn@7.0.3:
   /cross-spawn@7.0.3:
     resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
     resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
@@ -558,7 +577,6 @@ packages:
       path-key: 3.1.1
       path-key: 3.1.1
       shebang-command: 2.0.0
       shebang-command: 2.0.0
       which: 2.0.2
       which: 2.0.2
-    dev: true
 
 
   /debug@3.2.7:
   /debug@3.2.7:
     resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
     resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
@@ -597,7 +615,6 @@ packages:
 
 
   /deep-is@0.1.4:
   /deep-is@0.1.4:
     resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
     resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
-    dev: true
 
 
   /diff@5.0.0:
   /diff@5.0.0:
     resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
     resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
@@ -616,7 +633,6 @@ packages:
     engines: {node: '>=6.0.0'}
     engines: {node: '>=6.0.0'}
     dependencies:
     dependencies:
       esutils: 2.0.3
       esutils: 2.0.3
-    dev: true
 
 
   /emoji-regex@8.0.0:
   /emoji-regex@8.0.0:
     resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
     resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@@ -629,15 +645,33 @@ packages:
   /escape-string-regexp@4.0.0:
   /escape-string-regexp@4.0.0:
     resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
     resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
     engines: {node: '>=10'}
     engines: {node: '>=10'}
-    dev: true
 
 
-  /eslint-config-sukka@3.0.6(eslint@8.44.0):
-    resolution: {integrity: sha512-Ay27C90n/rLDDU32UeuVE+TgTs8ZassYfLYl1pV7Wn+Z2ZjTGyoYwcX2j1AKeF/dXG0YqXvl45ymw8EcT8I1EQ==}
-    engines: {node: '>= 14.0.0'}
+  /eslint-config-sukka@4.0.0-beta.11(eslint@8.50.0):
+    resolution: {integrity: sha512-XX3CfupK5HCSTCwnKtXzipirGb6v1tpUTzbSbgEUkFMYMvUl1r8SkDVASr2Mh42SJU/EJTFe2Sb83Y9/E5RAcg==}
     dependencies:
     dependencies:
-      '@fluffyfox/eslint-plugin': 0.1.0(eslint@8.44.0)
+      '@eslint-sukka/js': 4.0.0-beta.11(eslint@8.50.0)
+      '@eslint-sukka/shared': 4.0.0-beta.11
+      ci-info: 3.8.0
+      eslint-define-config: 1.23.0
     transitivePeerDependencies:
     transitivePeerDependencies:
+      - '@typescript-eslint/eslint-plugin'
+      - '@typescript-eslint/parser'
       - eslint
       - eslint
+      - eslint-import-resolver-typescript
+      - eslint-import-resolver-webpack
+      - supports-color
+    dev: true
+
+  /eslint-define-config@1.23.0:
+    resolution: {integrity: sha512-4mMyu0JuBkQHsCtR+42irIQdFLmLIW+pMAVcyOV/gZRL4O1R8iuH0eMG3oL3Cbi1eo9fDAfT5CIHVHgdyxcf6w==}
+    engines: {node: ^16.13.0 || >=18.0.0, npm: '>=7.0.0', pnpm: '>= 8.6.0'}
+    dev: true
+
+  /eslint-formatter-sukka@4.0.0-beta.11:
+    resolution: {integrity: sha512-EzjTkygdb81UdrTk+HkWx8PE0pn7WFgN3mte6ia8/5vOzM9KOl6Z1cAHbv+3gczPS/ytnAS09rtKEHy9tTJugA==}
+    dependencies:
+      ci-info: 3.8.0
+      picocolors: 1.0.0
     dev: true
     dev: true
 
 
   /eslint-import-resolver-node@0.3.7:
   /eslint-import-resolver-node@0.3.7:
@@ -650,7 +684,7 @@ packages:
       - supports-color
       - supports-color
     dev: true
     dev: true
 
 
-  /eslint-module-utils@2.8.0(eslint-import-resolver-node@0.3.7)(eslint@8.44.0):
+  /eslint-module-utils@2.8.0(eslint-import-resolver-node@0.3.7)(eslint@8.50.0):
     resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
     resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
     engines: {node: '>=4'}
     engines: {node: '>=4'}
     peerDependencies:
     peerDependencies:
@@ -672,24 +706,24 @@ packages:
         optional: true
         optional: true
     dependencies:
     dependencies:
       debug: 3.2.7
       debug: 3.2.7
-      eslint: 8.44.0
+      eslint: 8.50.0
       eslint-import-resolver-node: 0.3.7
       eslint-import-resolver-node: 0.3.7
     transitivePeerDependencies:
     transitivePeerDependencies:
       - supports-color
       - supports-color
     dev: true
     dev: true
 
 
-  /eslint-plugin-es-x@7.2.0(eslint@8.44.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}
     peerDependencies:
     peerDependencies:
       eslint: '>=8'
       eslint: '>=8'
     dependencies:
     dependencies:
-      '@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0)
+      '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0)
       '@eslint-community/regexpp': 4.6.1
       '@eslint-community/regexpp': 4.6.1
-      eslint: 8.44.0
+      eslint: 8.50.0
     dev: true
     dev: true
 
 
-  /eslint-plugin-i@2.28.1(eslint@8.44.0):
+  /eslint-plugin-i@2.28.1(eslint@8.50.0):
     resolution: {integrity: sha512-a4oVt0j3ixNhGhvV4XF6NS7OWRFK2rrJ0Q5C4S2dSRb8FxZi31J0uUd5WJLL58wnVJ/OiQ1BxiXnFA4dWQO1Cg==}
     resolution: {integrity: sha512-a4oVt0j3ixNhGhvV4XF6NS7OWRFK2rrJ0Q5C4S2dSRb8FxZi31J0uUd5WJLL58wnVJ/OiQ1BxiXnFA4dWQO1Cg==}
     engines: {node: '>=12'}
     engines: {node: '>=12'}
     peerDependencies:
     peerDependencies:
@@ -697,9 +731,9 @@ packages:
     dependencies:
     dependencies:
       debug: 3.2.7
       debug: 3.2.7
       doctrine: 2.1.0
       doctrine: 2.1.0
-      eslint: 8.44.0
+      eslint: 8.50.0
       eslint-import-resolver-node: 0.3.7
       eslint-import-resolver-node: 0.3.7
-      eslint-module-utils: 2.8.0(eslint-import-resolver-node@0.3.7)(eslint@8.44.0)
+      eslint-module-utils: 2.8.0(eslint-import-resolver-node@0.3.7)(eslint@8.50.0)
       get-tsconfig: 4.7.0
       get-tsconfig: 4.7.0
       is-glob: 4.0.3
       is-glob: 4.0.3
       minimatch: 3.1.2
       minimatch: 3.1.2
@@ -712,16 +746,16 @@ packages:
       - supports-color
       - supports-color
     dev: true
     dev: true
 
 
-  /eslint-plugin-n@16.1.0(eslint@8.44.0):
+  /eslint-plugin-n@16.1.0(eslint@8.50.0):
     resolution: {integrity: sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg==}
     resolution: {integrity: sha512-3wv/TooBst0N4ND+pnvffHuz9gNPmk/NkLwAxOt2JykTl/hcuECe6yhTtLJcZjIxtZwN+GX92ACp/QTLpHA3Hg==}
     engines: {node: '>=16.0.0'}
     engines: {node: '>=16.0.0'}
     peerDependencies:
     peerDependencies:
       eslint: '>=7.0.0'
       eslint: '>=7.0.0'
     dependencies:
     dependencies:
-      '@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0)
+      '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0)
       builtins: 5.0.1
       builtins: 5.0.1
-      eslint: 8.44.0
-      eslint-plugin-es-x: 7.2.0(eslint@8.44.0)
+      eslint: 8.50.0
+      eslint-plugin-es-x: 7.2.0(eslint@8.50.0)
       get-tsconfig: 4.7.0
       get-tsconfig: 4.7.0
       ignore: 5.2.4
       ignore: 5.2.4
       is-core-module: 2.12.1
       is-core-module: 2.12.1
@@ -730,29 +764,50 @@ packages:
       semver: 7.5.3
       semver: 7.5.3
     dev: true
     dev: true
 
 
-  /eslint-scope@7.2.0:
-    resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==}
+  /eslint-plugin-sukka@4.0.0-beta.11:
+    resolution: {integrity: sha512-LN5UjkutyNs7SJD2dF0qbCa5zQWVYkMaBojcCgMVI/eyjW+J4dYWxuggiwdliLI73FkVrBjn6qS70albehjEWA==}
+    dev: true
+
+  /eslint-plugin-unused-imports@3.0.0(eslint@8.50.0):
+    resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==}
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+    peerDependencies:
+      '@typescript-eslint/eslint-plugin': ^6.0.0
+      eslint: ^8.0.0
+    peerDependenciesMeta:
+      '@typescript-eslint/eslint-plugin':
+        optional: true
+    dependencies:
+      eslint: 8.50.0
+      eslint-rule-composer: 0.3.0
+    dev: true
+
+  /eslint-rule-composer@0.3.0:
+    resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==}
+    engines: {node: '>=4.0.0'}
+    dev: true
+
+  /eslint-scope@7.2.2:
+    resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     dependencies:
     dependencies:
       esrecurse: 4.3.0
       esrecurse: 4.3.0
       estraverse: 5.3.0
       estraverse: 5.3.0
-    dev: true
 
 
-  /eslint-visitor-keys@3.4.1:
-    resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==}
+  /eslint-visitor-keys@3.4.3:
+    resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    dev: true
 
 
-  /eslint@8.44.0:
-    resolution: {integrity: sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==}
+  /eslint@8.50.0:
+    resolution: {integrity: sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     hasBin: true
     hasBin: true
     dependencies:
     dependencies:
-      '@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0)
+      '@eslint-community/eslint-utils': 4.4.0(eslint@8.50.0)
       '@eslint-community/regexpp': 4.6.1
       '@eslint-community/regexpp': 4.6.1
-      '@eslint/eslintrc': 2.1.0
-      '@eslint/js': 8.44.0
-      '@humanwhocodes/config-array': 0.11.10
+      '@eslint/eslintrc': 2.1.2
+      '@eslint/js': 8.50.0
+      '@humanwhocodes/config-array': 0.11.11
       '@humanwhocodes/module-importer': 1.0.1
       '@humanwhocodes/module-importer': 1.0.1
       '@nodelib/fs.walk': 1.2.8
       '@nodelib/fs.walk': 1.2.8
       ajv: 6.12.6
       ajv: 6.12.6
@@ -761,19 +816,18 @@ packages:
       debug: 4.3.4(supports-color@8.1.1)
       debug: 4.3.4(supports-color@8.1.1)
       doctrine: 3.0.0
       doctrine: 3.0.0
       escape-string-regexp: 4.0.0
       escape-string-regexp: 4.0.0
-      eslint-scope: 7.2.0
-      eslint-visitor-keys: 3.4.1
-      espree: 9.6.0
+      eslint-scope: 7.2.2
+      eslint-visitor-keys: 3.4.3
+      espree: 9.6.1
       esquery: 1.5.0
       esquery: 1.5.0
       esutils: 2.0.3
       esutils: 2.0.3
       fast-deep-equal: 3.1.3
       fast-deep-equal: 3.1.3
       file-entry-cache: 6.0.1
       file-entry-cache: 6.0.1
       find-up: 5.0.0
       find-up: 5.0.0
       glob-parent: 6.0.2
       glob-parent: 6.0.2
-      globals: 13.20.0
+      globals: 13.22.0
       graphemer: 1.4.0
       graphemer: 1.4.0
       ignore: 5.2.4
       ignore: 5.2.4
-      import-fresh: 3.3.0
       imurmurhash: 0.1.4
       imurmurhash: 0.1.4
       is-glob: 4.0.3
       is-glob: 4.0.3
       is-path-inside: 3.0.3
       is-path-inside: 3.0.3
@@ -785,68 +839,57 @@ packages:
       natural-compare: 1.4.0
       natural-compare: 1.4.0
       optionator: 0.9.3
       optionator: 0.9.3
       strip-ansi: 6.0.1
       strip-ansi: 6.0.1
-      strip-json-comments: 3.1.1
       text-table: 0.2.0
       text-table: 0.2.0
     transitivePeerDependencies:
     transitivePeerDependencies:
       - supports-color
       - supports-color
-    dev: true
 
 
-  /espree@9.6.0:
-    resolution: {integrity: sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==}
+  /espree@9.6.1:
+    resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     dependencies:
     dependencies:
-      acorn: 8.9.0
-      acorn-jsx: 5.3.2(acorn@8.9.0)
-      eslint-visitor-keys: 3.4.1
-    dev: true
+      acorn: 8.10.0
+      acorn-jsx: 5.3.2(acorn@8.10.0)
+      eslint-visitor-keys: 3.4.3
 
 
   /esquery@1.5.0:
   /esquery@1.5.0:
     resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
     resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
     engines: {node: '>=0.10'}
     engines: {node: '>=0.10'}
     dependencies:
     dependencies:
       estraverse: 5.3.0
       estraverse: 5.3.0
-    dev: true
 
 
   /esrecurse@4.3.0:
   /esrecurse@4.3.0:
     resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
     resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
     engines: {node: '>=4.0'}
     engines: {node: '>=4.0'}
     dependencies:
     dependencies:
       estraverse: 5.3.0
       estraverse: 5.3.0
-    dev: true
 
 
   /estraverse@5.3.0:
   /estraverse@5.3.0:
     resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
     resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
     engines: {node: '>=4.0'}
     engines: {node: '>=4.0'}
-    dev: true
 
 
   /esutils@2.0.3:
   /esutils@2.0.3:
     resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
     resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
     engines: {node: '>=0.10.0'}
     engines: {node: '>=0.10.0'}
-    dev: true
 
 
   /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-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==}
-    dev: true
 
 
   /fast-levenshtein@2.0.6:
   /fast-levenshtein@2.0.6:
     resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
     resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
-    dev: true
 
 
   /fastq@1.13.0:
   /fastq@1.13.0:
     resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==}
     resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==}
     dependencies:
     dependencies:
       reusify: 1.0.4
       reusify: 1.0.4
-    dev: true
 
 
   /file-entry-cache@6.0.1:
   /file-entry-cache@6.0.1:
     resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
     resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
     engines: {node: ^10.12.0 || >=12.0.0}
     engines: {node: ^10.12.0 || >=12.0.0}
     dependencies:
     dependencies:
       flat-cache: 3.0.4
       flat-cache: 3.0.4
-    dev: true
 
 
   /fill-range@7.0.1:
   /fill-range@7.0.1:
     resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
     resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
@@ -861,7 +904,6 @@ packages:
     dependencies:
     dependencies:
       locate-path: 6.0.0
       locate-path: 6.0.0
       path-exists: 4.0.0
       path-exists: 4.0.0
-    dev: true
 
 
   /flat-cache@3.0.4:
   /flat-cache@3.0.4:
     resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
     resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
@@ -869,7 +911,6 @@ packages:
     dependencies:
     dependencies:
       flatted: 3.2.7
       flatted: 3.2.7
       rimraf: 3.0.2
       rimraf: 3.0.2
-    dev: true
 
 
   /flat@5.0.2:
   /flat@5.0.2:
     resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
     resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
@@ -878,7 +919,6 @@ packages:
 
 
   /flatted@3.2.7:
   /flatted@3.2.7:
     resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
     resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
-    dev: true
 
 
   /fs-extra@11.1.1:
   /fs-extra@11.1.1:
     resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==}
     resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==}
@@ -898,7 +938,6 @@ packages:
 
 
   /fs.realpath@1.0.0:
   /fs.realpath@1.0.0:
     resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
     resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
-    dev: true
 
 
   /fsevents@2.3.2:
   /fsevents@2.3.2:
     resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
     resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
@@ -935,7 +974,6 @@ packages:
     engines: {node: '>=10.13.0'}
     engines: {node: '>=10.13.0'}
     dependencies:
     dependencies:
       is-glob: 4.0.3
       is-glob: 4.0.3
-    dev: true
 
 
   /glob@7.2.0:
   /glob@7.2.0:
     resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
     resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
@@ -957,14 +995,12 @@ packages:
       minimatch: 3.1.2
       minimatch: 3.1.2
       once: 1.4.0
       once: 1.4.0
       path-is-absolute: 1.0.1
       path-is-absolute: 1.0.1
-    dev: true
 
 
-  /globals@13.20.0:
-    resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==}
+  /globals@13.22.0:
+    resolution: {integrity: sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==}
     engines: {node: '>=8'}
     engines: {node: '>=8'}
     dependencies:
     dependencies:
       type-fest: 0.20.2
       type-fest: 0.20.2
-    dev: true
 
 
   /graceful-fs@4.2.10:
   /graceful-fs@4.2.10:
     resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
     resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
@@ -972,7 +1008,6 @@ packages:
 
 
   /graphemer@1.4.0:
   /graphemer@1.4.0:
     resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
     resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
-    dev: true
 
 
   /has-flag@4.0.0:
   /has-flag@4.0.0:
     resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
     resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
@@ -986,7 +1021,6 @@ packages:
   /ignore@5.2.4:
   /ignore@5.2.4:
     resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
     resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
     engines: {node: '>= 4'}
     engines: {node: '>= 4'}
-    dev: true
 
 
   /import-fresh@3.3.0:
   /import-fresh@3.3.0:
     resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
     resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
@@ -994,23 +1028,19 @@ packages:
     dependencies:
     dependencies:
       parent-module: 1.0.1
       parent-module: 1.0.1
       resolve-from: 4.0.0
       resolve-from: 4.0.0
-    dev: true
 
 
   /imurmurhash@0.1.4:
   /imurmurhash@0.1.4:
     resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
     resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
     engines: {node: '>=0.8.19'}
     engines: {node: '>=0.8.19'}
-    dev: true
 
 
   /inflight@1.0.6:
   /inflight@1.0.6:
     resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
     resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
     dependencies:
     dependencies:
       once: 1.4.0
       once: 1.4.0
       wrappy: 1.0.2
       wrappy: 1.0.2
-    dev: true
 
 
   /inherits@2.0.4:
   /inherits@2.0.4:
     resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
     resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
-    dev: true
 
 
   /is-binary-path@2.1.0:
   /is-binary-path@2.1.0:
     resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
     resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
@@ -1028,7 +1058,6 @@ packages:
   /is-extglob@2.1.1:
   /is-extglob@2.1.1:
     resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
     resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
     engines: {node: '>=0.10.0'}
     engines: {node: '>=0.10.0'}
-    dev: true
 
 
   /is-fullwidth-code-point@3.0.0:
   /is-fullwidth-code-point@3.0.0:
     resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
     resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
@@ -1039,7 +1068,6 @@ packages:
     engines: {node: '>=0.10.0'}
     engines: {node: '>=0.10.0'}
     dependencies:
     dependencies:
       is-extglob: 2.1.1
       is-extglob: 2.1.1
-    dev: true
 
 
   /is-number@7.0.0:
   /is-number@7.0.0:
     resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
     resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
@@ -1049,7 +1077,6 @@ packages:
   /is-path-inside@3.0.3:
   /is-path-inside@3.0.3:
     resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
     resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
     engines: {node: '>=8'}
     engines: {node: '>=8'}
-    dev: true
 
 
   /is-plain-obj@2.1.0:
   /is-plain-obj@2.1.0:
     resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
     resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
@@ -1063,7 +1090,6 @@ packages:
 
 
   /isexe@2.0.0:
   /isexe@2.0.0:
     resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
     resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
-    dev: true
 
 
   /jest-util@29.7.0:
   /jest-util@29.7.0:
     resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
     resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
@@ -1092,11 +1118,9 @@ packages:
     hasBin: true
     hasBin: true
     dependencies:
     dependencies:
       argparse: 2.0.1
       argparse: 2.0.1
-    dev: true
 
 
   /json-schema-traverse@0.4.1:
   /json-schema-traverse@0.4.1:
     resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
     resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
-    dev: true
 
 
   /json-schema-traverse@1.0.0:
   /json-schema-traverse@1.0.0:
     resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
     resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
@@ -1104,7 +1128,6 @@ packages:
 
 
   /json-stable-stringify-without-jsonify@1.0.1:
   /json-stable-stringify-without-jsonify@1.0.1:
     resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
     resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
-    dev: true
 
 
   /jsonfile@6.1.0:
   /jsonfile@6.1.0:
     resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
     resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
@@ -1120,18 +1143,15 @@ packages:
     dependencies:
     dependencies:
       prelude-ls: 1.2.1
       prelude-ls: 1.2.1
       type-check: 0.4.0
       type-check: 0.4.0
-    dev: true
 
 
   /locate-path@6.0.0:
   /locate-path@6.0.0:
     resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
     resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
     engines: {node: '>=10'}
     engines: {node: '>=10'}
     dependencies:
     dependencies:
       p-locate: 5.0.0
       p-locate: 5.0.0
-    dev: true
 
 
   /lodash.merge@4.6.2:
   /lodash.merge@4.6.2:
     resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
     resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
-    dev: true
 
 
   /lodash.truncate@4.4.2:
   /lodash.truncate@4.4.2:
     resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==}
     resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==}
@@ -1171,7 +1191,6 @@ packages:
     resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
     resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
     dependencies:
     dependencies:
       brace-expansion: 1.1.11
       brace-expansion: 1.1.11
-    dev: true
 
 
   /minimatch@5.0.1:
   /minimatch@5.0.1:
     resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==}
     resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==}
@@ -1255,7 +1274,6 @@ packages:
 
 
   /natural-compare@1.4.0:
   /natural-compare@1.4.0:
     resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
     resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
-    dev: true
 
 
   /node-fetch@2.6.11:
   /node-fetch@2.6.11:
     resolution: {integrity: sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==}
     resolution: {integrity: sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==}
@@ -1282,7 +1300,6 @@ packages:
     resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
     resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
     dependencies:
     dependencies:
       wrappy: 1.0.2
       wrappy: 1.0.2
-    dev: true
 
 
   /optionator@0.9.3:
   /optionator@0.9.3:
     resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
     resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
@@ -1294,43 +1311,36 @@ packages:
       levn: 0.4.1
       levn: 0.4.1
       prelude-ls: 1.2.1
       prelude-ls: 1.2.1
       type-check: 0.4.0
       type-check: 0.4.0
-    dev: true
 
 
   /p-limit@3.1.0:
   /p-limit@3.1.0:
     resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
     resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
     engines: {node: '>=10'}
     engines: {node: '>=10'}
     dependencies:
     dependencies:
       yocto-queue: 0.1.0
       yocto-queue: 0.1.0
-    dev: true
 
 
   /p-locate@5.0.0:
   /p-locate@5.0.0:
     resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
     resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
     engines: {node: '>=10'}
     engines: {node: '>=10'}
     dependencies:
     dependencies:
       p-limit: 3.1.0
       p-limit: 3.1.0
-    dev: true
 
 
   /parent-module@1.0.1:
   /parent-module@1.0.1:
     resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
     resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
     engines: {node: '>=6'}
     engines: {node: '>=6'}
     dependencies:
     dependencies:
       callsites: 3.1.0
       callsites: 3.1.0
-    dev: true
 
 
   /path-exists@4.0.0:
   /path-exists@4.0.0:
     resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
     resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
     engines: {node: '>=8'}
     engines: {node: '>=8'}
-    dev: true
 
 
   /path-is-absolute@1.0.1:
   /path-is-absolute@1.0.1:
     resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
     resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
     engines: {node: '>=0.10.0'}
     engines: {node: '>=0.10.0'}
-    dev: true
 
 
   /path-key@3.1.1:
   /path-key@3.1.1:
     resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
     resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
     engines: {node: '>=8'}
     engines: {node: '>=8'}
-    dev: true
 
 
   /path-parse@1.0.7:
   /path-parse@1.0.7:
     resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
     resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
@@ -1350,7 +1360,6 @@ packages:
 
 
   /picocolors@1.0.0:
   /picocolors@1.0.0:
     resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
     resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
-    dev: false
 
 
   /picomatch@2.3.1:
   /picomatch@2.3.1:
     resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
     resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
@@ -1359,7 +1368,6 @@ packages:
   /prelude-ls@1.2.1:
   /prelude-ls@1.2.1:
     resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
     resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
     engines: {node: '>= 0.8.0'}
     engines: {node: '>= 0.8.0'}
-    dev: true
 
 
   /punycode@2.3.0:
   /punycode@2.3.0:
     resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
     resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
@@ -1367,7 +1375,6 @@ packages:
 
 
   /queue-microtask@1.2.3:
   /queue-microtask@1.2.3:
     resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
     resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
-    dev: true
 
 
   /randombytes@2.1.0:
   /randombytes@2.1.0:
     resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
     resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
@@ -1395,7 +1402,6 @@ packages:
   /resolve-from@4.0.0:
   /resolve-from@4.0.0:
     resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
     resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
     engines: {node: '>=4'}
     engines: {node: '>=4'}
-    dev: true
 
 
   /resolve-pkg-maps@1.0.0:
   /resolve-pkg-maps@1.0.0:
     resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
     resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
@@ -1418,20 +1424,17 @@ packages:
   /reusify@1.0.4:
   /reusify@1.0.4:
     resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
     resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
     engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
     engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
-    dev: true
 
 
   /rimraf@3.0.2:
   /rimraf@3.0.2:
     resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
     resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
     hasBin: true
     hasBin: true
     dependencies:
     dependencies:
       glob: 7.2.3
       glob: 7.2.3
-    dev: true
 
 
   /run-parallel@1.2.0:
   /run-parallel@1.2.0:
     resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
     resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
     dependencies:
     dependencies:
       queue-microtask: 1.2.3
       queue-microtask: 1.2.3
-    dev: true
 
 
   /safe-buffer@5.2.1:
   /safe-buffer@5.2.1:
     resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
     resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
@@ -1456,12 +1459,10 @@ packages:
     engines: {node: '>=8'}
     engines: {node: '>=8'}
     dependencies:
     dependencies:
       shebang-regex: 3.0.0
       shebang-regex: 3.0.0
-    dev: true
 
 
   /shebang-regex@3.0.0:
   /shebang-regex@3.0.0:
     resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
     resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
     engines: {node: '>=8'}
     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==}
@@ -1494,7 +1495,6 @@ packages:
   /strip-json-comments@3.1.1:
   /strip-json-comments@3.1.1:
     resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
     resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
     engines: {node: '>=8'}
     engines: {node: '>=8'}
-    dev: true
 
 
   /supports-color@7.2.0:
   /supports-color@7.2.0:
     resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
     resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
@@ -1538,20 +1538,15 @@ packages:
 
 
   /text-table@0.2.0:
   /text-table@0.2.0:
     resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
     resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
-    dev: true
 
 
   /tldts-core@6.0.14:
   /tldts-core@6.0.14:
     resolution: {integrity: sha512-ESYhU/bgs6jiHlnl5h029f+0dB7EKRiTaxM/jHLZ6powScbmsgsrFcFjmyrjDgCvI/BRY79TEBBClmqLNEPyjQ==}
     resolution: {integrity: sha512-ESYhU/bgs6jiHlnl5h029f+0dB7EKRiTaxM/jHLZ6powScbmsgsrFcFjmyrjDgCvI/BRY79TEBBClmqLNEPyjQ==}
     dev: false
     dev: false
 
 
-  /tldts-core@6.0.8:
-    resolution: {integrity: sha512-9DoeDV0eqDmXKkg43LGxLdJZstcdNfdhAElerrChj78Y3fYcidTKtVSLjXC0w6naMWYejPvJtTpnRPWHJJD4yw==}
-    dev: false
-
   /tldts-experimental@6.0.8:
   /tldts-experimental@6.0.8:
     resolution: {integrity: sha512-EuQv09eSTpwGvzMznDUxBv2DN597yF0hK63Dkzr3R4eVvIi3AcnCBOQOfFC3X8s9YmGA18FPGhBMlwNA7PGxbg==}
     resolution: {integrity: sha512-EuQv09eSTpwGvzMznDUxBv2DN597yF0hK63Dkzr3R4eVvIi3AcnCBOQOfFC3X8s9YmGA18FPGhBMlwNA7PGxbg==}
     dependencies:
     dependencies:
-      tldts-core: 6.0.8
+      tldts-core: 6.0.14
     dev: false
     dev: false
 
 
   /tldts@6.0.14:
   /tldts@6.0.14:
@@ -1577,7 +1572,6 @@ packages:
     engines: {node: '>= 0.8.0'}
     engines: {node: '>= 0.8.0'}
     dependencies:
     dependencies:
       prelude-ls: 1.2.1
       prelude-ls: 1.2.1
-    dev: true
 
 
   /type-detect@4.0.8:
   /type-detect@4.0.8:
     resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
     resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
@@ -1587,7 +1581,6 @@ packages:
   /type-fest@0.20.2:
   /type-fest@0.20.2:
     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'}
-    dev: true
 
 
   /undici@5.24.0:
   /undici@5.24.0:
     resolution: {integrity: sha512-OKlckxBjFl0oXxcj9FU6oB8fDAaiRUq+D8jrFWGmOfI/gIyjk/IeS75LMzgYKUaeHzLUcYvf9bbJGSrUwTfwwQ==}
     resolution: {integrity: sha512-OKlckxBjFl0oXxcj9FU6oB8fDAaiRUq+D8jrFWGmOfI/gIyjk/IeS75LMzgYKUaeHzLUcYvf9bbJGSrUwTfwwQ==}
@@ -1623,7 +1616,6 @@ packages:
     hasBin: true
     hasBin: true
     dependencies:
     dependencies:
       isexe: 2.0.0
       isexe: 2.0.0
-    dev: true
 
 
   /workerpool@6.2.1:
   /workerpool@6.2.1:
     resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==}
     resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==}
@@ -1640,7 +1632,6 @@ packages:
 
 
   /wrappy@1.0.2:
   /wrappy@1.0.2:
     resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
     resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
-    dev: true
 
 
   /y18n@5.0.8:
   /y18n@5.0.8:
     resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
     resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
@@ -1681,7 +1672,6 @@ packages:
   /yocto-queue@0.1.0:
   /yocto-queue@0.1.0:
     resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
     resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
     engines: {node: '>=10'}
     engines: {node: '>=10'}
-    dev: true
 
 
   github.com/gorhill/publicsuffixlist.js/3a1bc623073079184ff76933b88b7bf4f5d48978:
   github.com/gorhill/publicsuffixlist.js/3a1bc623073079184ff76933b88b7bf4f5d48978:
     resolution: {tarball: https://codeload.github.com/gorhill/publicsuffixlist.js/tar.gz/3a1bc623073079184ff76933b88b7bf4f5d48978}
     resolution: {tarball: https://codeload.github.com/gorhill/publicsuffixlist.js/tar.gz/3a1bc623073079184ff76933b88b7bf4f5d48978}