Radish alpha
r
rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5
Radicle web interface
Radicle
Git
Update dependencies
Open rudolfs opened 1 year ago

This also upgrades eslint.

check check-visual check-unit-test check-http-client-unit-test check-radicle-httpd check-e2e check-build check-http 👉 Preview 👉 Workflow runs 👉 Branch on GitHub

7 files changed +365 -345 98857582 06cc5595
modified http-client/lib/fetcher.ts
@@ -129,7 +129,7 @@ export class Fetcher {
      let responseBody = await response.text();
      try {
        responseBody = JSON.parse(responseBody);
-
      } catch (_e: unknown) {
+
      } catch {
        // We keep the original text response body.
      }
      throw new ResponseError(params.method, response, responseBody);
modified http-client/lib/project/commit.ts
@@ -194,6 +194,7 @@ type Diff = z.infer<typeof diffSchema>;
type ChangesetWithDiff = z.infer<typeof changesetWithDiffSchema>;
type ChangesetWithoutDiff = z.infer<typeof changesetWithoutDiffSchema>;

+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const changesetWithDiffSchema = union([
  diffAddedChangesetSchema,
  diffDeletedChangesetSchema,
@@ -201,6 +202,7 @@ const changesetWithDiffSchema = union([
  diffMovedWithModificationsChangesetSchema,
  diffCopiedWithModificationsChangesetSchema,
]);
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const changesetWithoutDiffSchema = union([
  diffMovedChangesetSchema,
  diffCopiedChangesetSchema,
modified package-lock.json
@@ -36,7 +36,7 @@
      },
      "devDependencies": {
        "@eslint/js": "^9.8.0",
-
        "@playwright/test": "^1.46.0",
+
        "@playwright/test": "^1.46.1",
        "@sveltejs/vite-plugin-svelte": "^3.1.1",
        "@tsconfig/svelte": "^5.0.4",
        "@types/config": "^3.3.4",
@@ -47,13 +47,13 @@
        "@types/node": "^20.14.12",
        "@types/sinon": "^17.0.3",
        "@types/wait-on": "^5.3.4",
-
        "@typescript-eslint/parser": "^7.17.0",
+
        "@typescript-eslint/parser": "^8.1.0",
        "chalk": "^5.3.0",
        "config": "^3.3.12",
-
        "eslint": "^8.57.0",
+
        "eslint": "^9.9.0",
        "eslint-config-prettier": "^9.1.0",
        "eslint-plugin-svelte": "^2.43.0",
-
        "execa": "^9.3.0",
+
        "execa": "^9.3.1",
        "get-port": "^7.1.0",
        "globals": "^15.9.0",
        "happy-dom": "^14.12.3",
@@ -63,8 +63,8 @@
        "svelte-check": "^3.8.5",
        "svelte-eslint-parser": "^0.41.0",
        "typescript": "^5.5.4",
-
        "typescript-eslint": "^7.17.0",
-
        "vite": "^5.4.0",
+
        "typescript-eslint": "^8.1.0",
+
        "vite": "^5.4.1",
        "vite-plugin-virtual": "^0.3.0",
        "vitest": "^2.0.5",
        "wait-on": "^7.2.0"
@@ -494,16 +494,52 @@
        "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
      }
    },
+
    "node_modules/@eslint/config-array": {
+
      "version": "0.17.1",
+
      "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz",
+
      "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==",
+
      "dev": true,
+
      "dependencies": {
+
        "@eslint/object-schema": "^2.1.4",
+
        "debug": "^4.3.1",
+
        "minimatch": "^3.1.2"
+
      },
+
      "engines": {
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
      }
+
    },
+
    "node_modules/@eslint/config-array/node_modules/brace-expansion": {
+
      "version": "1.1.11",
+
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+
      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+
      "dev": true,
+
      "dependencies": {
+
        "balanced-match": "^1.0.0",
+
        "concat-map": "0.0.1"
+
      }
+
    },
+
    "node_modules/@eslint/config-array/node_modules/minimatch": {
+
      "version": "3.1.2",
+
      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+
      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+
      "dev": true,
+
      "dependencies": {
+
        "brace-expansion": "^1.1.7"
+
      },
+
      "engines": {
+
        "node": "*"
+
      }
+
    },
    "node_modules/@eslint/eslintrc": {
-
      "version": "2.1.4",
-
      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
-
      "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
+
      "version": "3.1.0",
+
      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz",
+
      "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==",
      "dev": true,
      "dependencies": {
        "ajv": "^6.12.4",
        "debug": "^4.3.2",
-
        "espree": "^9.6.0",
-
        "globals": "^13.19.0",
+
        "espree": "^10.0.1",
+
        "globals": "^14.0.0",
        "ignore": "^5.2.0",
        "import-fresh": "^3.2.1",
        "js-yaml": "^4.1.0",
@@ -511,7 +547,7 @@
        "strip-json-comments": "^3.1.1"
      },
      "engines": {
-
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
      },
      "funding": {
        "url": "https://opencollective.com/eslint"
@@ -527,16 +563,42 @@
        "concat-map": "0.0.1"
      }
    },
-
    "node_modules/@eslint/eslintrc/node_modules/globals": {
-
      "version": "13.24.0",
-
      "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
-
      "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+
    "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": {
+
      "version": "4.0.0",
+
      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz",
+
      "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==",
+
      "dev": true,
+
      "engines": {
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
      },
+
      "funding": {
+
        "url": "https://opencollective.com/eslint"
+
      }
+
    },
+
    "node_modules/@eslint/eslintrc/node_modules/espree": {
+
      "version": "10.1.0",
+
      "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz",
+
      "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==",
      "dev": true,
      "dependencies": {
-
        "type-fest": "^0.20.2"
+
        "acorn": "^8.12.0",
+
        "acorn-jsx": "^5.3.2",
+
        "eslint-visitor-keys": "^4.0.0"
      },
      "engines": {
-
        "node": ">=8"
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
      },
+
      "funding": {
+
        "url": "https://opencollective.com/eslint"
+
      }
+
    },
+
    "node_modules/@eslint/eslintrc/node_modules/globals": {
+
      "version": "14.0.0",
+
      "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
+
      "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
+
      "dev": true,
+
      "engines": {
+
        "node": ">=18"
      },
      "funding": {
        "url": "https://github.com/sponsors/sindresorhus"
@@ -555,9 +617,18 @@
      }
    },
    "node_modules/@eslint/js": {
-
      "version": "9.8.0",
-
      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.8.0.tgz",
-
      "integrity": "sha512-MfluB7EUfxXtv3i/++oh89uzAr4PDI4nn201hsp+qaXqsjAWzinlZEHEfPgAX4doIlKvPG/i0A9dpKxOLII8yA==",
+
      "version": "9.9.0",
+
      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.0.tgz",
+
      "integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==",
+
      "dev": true,
+
      "engines": {
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
      }
+
    },
+
    "node_modules/@eslint/object-schema": {
+
      "version": "2.1.4",
+
      "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz",
+
      "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==",
      "dev": true,
      "engines": {
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -578,43 +649,6 @@
        "@hapi/hoek": "^9.0.0"
      }
    },
-
    "node_modules/@humanwhocodes/config-array": {
-
      "version": "0.11.14",
-
      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
-
      "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
-
      "deprecated": "Use @eslint/config-array instead",
-
      "dev": true,
-
      "dependencies": {
-
        "@humanwhocodes/object-schema": "^2.0.2",
-
        "debug": "^4.3.1",
-
        "minimatch": "^3.0.5"
-
      },
-
      "engines": {
-
        "node": ">=10.10.0"
-
      }
-
    },
-
    "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": {
-
      "version": "1.1.11",
-
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
-
      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-
      "dev": true,
-
      "dependencies": {
-
        "balanced-match": "^1.0.0",
-
        "concat-map": "0.0.1"
-
      }
-
    },
-
    "node_modules/@humanwhocodes/config-array/node_modules/minimatch": {
-
      "version": "3.1.2",
-
      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
-
      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-
      "dev": true,
-
      "dependencies": {
-
        "brace-expansion": "^1.1.7"
-
      },
-
      "engines": {
-
        "node": "*"
-
      }
-
    },
    "node_modules/@humanwhocodes/module-importer": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
@@ -628,12 +662,18 @@
        "url": "https://github.com/sponsors/nzakas"
      }
    },
-
    "node_modules/@humanwhocodes/object-schema": {
-
      "version": "2.0.3",
-
      "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
-
      "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
-
      "deprecated": "Use @eslint/object-schema instead",
-
      "dev": true
+
    "node_modules/@humanwhocodes/retry": {
+
      "version": "0.3.0",
+
      "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz",
+
      "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==",
+
      "dev": true,
+
      "engines": {
+
        "node": ">=18.18"
+
      },
+
      "funding": {
+
        "type": "github",
+
        "url": "https://github.com/sponsors/nzakas"
+
      }
    },
    "node_modules/@jridgewell/gen-mapping": {
      "version": "0.3.5",
@@ -714,12 +754,12 @@
      }
    },
    "node_modules/@playwright/test": {
-
      "version": "1.46.0",
-
      "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.46.0.tgz",
-
      "integrity": "sha512-/QYft5VArOrGRP5pgkrfKksqsKA6CEFyGQ/gjNe6q0y4tZ1aaPfq4gIjudr1s3D+pXyrPRdsy4opKDrjBabE5w==",
+
      "version": "1.46.1",
+
      "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.46.1.tgz",
+
      "integrity": "sha512-Fq6SwLujA/DOIvNC2EL/SojJnkKf/rAwJ//APpJJHRyMi1PdKrY3Az+4XNQ51N4RTbItbIByQ0jgd1tayq1aeA==",
      "dev": true,
      "dependencies": {
-
        "playwright": "1.46.0"
+
        "playwright": "1.46.1"
      },
      "bin": {
        "playwright": "cli.js"
@@ -743,9 +783,9 @@
      }
    },
    "node_modules/@rollup/rollup-android-arm-eabi": {
-
      "version": "4.20.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.20.0.tgz",
-
      "integrity": "sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==",
+
      "version": "4.21.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.0.tgz",
+
      "integrity": "sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==",
      "cpu": [
        "arm"
      ],
@@ -756,9 +796,9 @@
      ]
    },
    "node_modules/@rollup/rollup-android-arm64": {
-
      "version": "4.20.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.20.0.tgz",
-
      "integrity": "sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==",
+
      "version": "4.21.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.0.tgz",
+
      "integrity": "sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==",
      "cpu": [
        "arm64"
      ],
@@ -769,9 +809,9 @@
      ]
    },
    "node_modules/@rollup/rollup-darwin-arm64": {
-
      "version": "4.20.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.20.0.tgz",
-
      "integrity": "sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==",
+
      "version": "4.21.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.0.tgz",
+
      "integrity": "sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==",
      "cpu": [
        "arm64"
      ],
@@ -782,9 +822,9 @@
      ]
    },
    "node_modules/@rollup/rollup-darwin-x64": {
-
      "version": "4.20.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.20.0.tgz",
-
      "integrity": "sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==",
+
      "version": "4.21.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.0.tgz",
+
      "integrity": "sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==",
      "cpu": [
        "x64"
      ],
@@ -795,9 +835,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
-
      "version": "4.20.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.20.0.tgz",
-
      "integrity": "sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==",
+
      "version": "4.21.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.0.tgz",
+
      "integrity": "sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==",
      "cpu": [
        "arm"
      ],
@@ -808,9 +848,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-arm-musleabihf": {
-
      "version": "4.20.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.20.0.tgz",
-
      "integrity": "sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==",
+
      "version": "4.21.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.0.tgz",
+
      "integrity": "sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==",
      "cpu": [
        "arm"
      ],
@@ -821,9 +861,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-arm64-gnu": {
-
      "version": "4.20.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz",
-
      "integrity": "sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==",
+
      "version": "4.21.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.0.tgz",
+
      "integrity": "sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==",
      "cpu": [
        "arm64"
      ],
@@ -834,9 +874,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-arm64-musl": {
-
      "version": "4.20.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz",
-
      "integrity": "sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==",
+
      "version": "4.21.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.0.tgz",
+
      "integrity": "sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==",
      "cpu": [
        "arm64"
      ],
@@ -847,9 +887,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
-
      "version": "4.20.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.20.0.tgz",
-
      "integrity": "sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==",
+
      "version": "4.21.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.0.tgz",
+
      "integrity": "sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==",
      "cpu": [
        "ppc64"
      ],
@@ -860,9 +900,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-riscv64-gnu": {
-
      "version": "4.20.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.20.0.tgz",
-
      "integrity": "sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==",
+
      "version": "4.21.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.0.tgz",
+
      "integrity": "sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==",
      "cpu": [
        "riscv64"
      ],
@@ -873,9 +913,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-s390x-gnu": {
-
      "version": "4.20.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.20.0.tgz",
-
      "integrity": "sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==",
+
      "version": "4.21.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.0.tgz",
+
      "integrity": "sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==",
      "cpu": [
        "s390x"
      ],
@@ -886,9 +926,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-x64-gnu": {
-
      "version": "4.20.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.20.0.tgz",
-
      "integrity": "sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==",
+
      "version": "4.21.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.0.tgz",
+
      "integrity": "sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==",
      "cpu": [
        "x64"
      ],
@@ -899,9 +939,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-x64-musl": {
-
      "version": "4.20.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.20.0.tgz",
-
      "integrity": "sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==",
+
      "version": "4.21.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.0.tgz",
+
      "integrity": "sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==",
      "cpu": [
        "x64"
      ],
@@ -912,9 +952,9 @@
      ]
    },
    "node_modules/@rollup/rollup-win32-arm64-msvc": {
-
      "version": "4.20.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.20.0.tgz",
-
      "integrity": "sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==",
+
      "version": "4.21.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.0.tgz",
+
      "integrity": "sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==",
      "cpu": [
        "arm64"
      ],
@@ -925,9 +965,9 @@
      ]
    },
    "node_modules/@rollup/rollup-win32-ia32-msvc": {
-
      "version": "4.20.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.20.0.tgz",
-
      "integrity": "sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==",
+
      "version": "4.21.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.0.tgz",
+
      "integrity": "sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==",
      "cpu": [
        "ia32"
      ],
@@ -938,9 +978,9 @@
      ]
    },
    "node_modules/@rollup/rollup-win32-x64-msvc": {
-
      "version": "4.20.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.20.0.tgz",
-
      "integrity": "sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==",
+
      "version": "4.21.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.0.tgz",
+
      "integrity": "sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==",
      "cpu": [
        "x64"
      ],
@@ -1137,12 +1177,12 @@
      }
    },
    "node_modules/@types/node": {
-
      "version": "20.14.14",
-
      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.14.tgz",
-
      "integrity": "sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==",
+
      "version": "20.16.1",
+
      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.1.tgz",
+
      "integrity": "sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ==",
      "dev": true,
      "dependencies": {
-
        "undici-types": "~5.26.4"
+
        "undici-types": "~6.19.2"
      }
    },
    "node_modules/@types/pug": {
@@ -1173,9 +1213,9 @@
      "dev": true
    },
    "node_modules/@types/unist": {
-
      "version": "3.0.2",
-
      "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
-
      "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ=="
+
      "version": "3.0.3",
+
      "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+
      "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="
    },
    "node_modules/@types/wait-on": {
      "version": "5.3.4",
@@ -1187,31 +1227,31 @@
      }
    },
    "node_modules/@typescript-eslint/eslint-plugin": {
-
      "version": "7.18.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz",
-
      "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==",
+
      "version": "8.1.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.1.0.tgz",
+
      "integrity": "sha512-LlNBaHFCEBPHyD4pZXb35mzjGkuGKXU5eeCA1SxvHfiRES0E82dOounfVpL4DCqYvJEKab0bZIA0gCRpdLKkCw==",
      "dev": true,
      "dependencies": {
        "@eslint-community/regexpp": "^4.10.0",
-
        "@typescript-eslint/scope-manager": "7.18.0",
-
        "@typescript-eslint/type-utils": "7.18.0",
-
        "@typescript-eslint/utils": "7.18.0",
-
        "@typescript-eslint/visitor-keys": "7.18.0",
+
        "@typescript-eslint/scope-manager": "8.1.0",
+
        "@typescript-eslint/type-utils": "8.1.0",
+
        "@typescript-eslint/utils": "8.1.0",
+
        "@typescript-eslint/visitor-keys": "8.1.0",
        "graphemer": "^1.4.0",
        "ignore": "^5.3.1",
        "natural-compare": "^1.4.0",
        "ts-api-utils": "^1.3.0"
      },
      "engines": {
-
        "node": "^18.18.0 || >=20.0.0"
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/typescript-eslint"
      },
      "peerDependencies": {
-
        "@typescript-eslint/parser": "^7.0.0",
-
        "eslint": "^8.56.0"
+
        "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
+
        "eslint": "^8.57.0 || ^9.0.0"
      },
      "peerDependenciesMeta": {
        "typescript": {
@@ -1220,26 +1260,26 @@
      }
    },
    "node_modules/@typescript-eslint/parser": {
-
      "version": "7.18.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz",
-
      "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==",
+
      "version": "8.1.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.1.0.tgz",
+
      "integrity": "sha512-U7iTAtGgJk6DPX9wIWPPOlt1gO57097G06gIcl0N0EEnNw8RGD62c+2/DiP/zL7KrkqnnqF7gtFGR7YgzPllTA==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/scope-manager": "7.18.0",
-
        "@typescript-eslint/types": "7.18.0",
-
        "@typescript-eslint/typescript-estree": "7.18.0",
-
        "@typescript-eslint/visitor-keys": "7.18.0",
+
        "@typescript-eslint/scope-manager": "8.1.0",
+
        "@typescript-eslint/types": "8.1.0",
+
        "@typescript-eslint/typescript-estree": "8.1.0",
+
        "@typescript-eslint/visitor-keys": "8.1.0",
        "debug": "^4.3.4"
      },
      "engines": {
-
        "node": "^18.18.0 || >=20.0.0"
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/typescript-eslint"
      },
      "peerDependencies": {
-
        "eslint": "^8.56.0"
+
        "eslint": "^8.57.0 || ^9.0.0"
      },
      "peerDependenciesMeta": {
        "typescript": {
@@ -1248,16 +1288,16 @@
      }
    },
    "node_modules/@typescript-eslint/scope-manager": {
-
      "version": "7.18.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz",
-
      "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==",
+
      "version": "8.1.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.1.0.tgz",
+
      "integrity": "sha512-DsuOZQji687sQUjm4N6c9xABJa7fjvfIdjqpSIIVOgaENf2jFXiM9hIBZOL3hb6DHK9Nvd2d7zZnoMLf9e0OtQ==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "7.18.0",
-
        "@typescript-eslint/visitor-keys": "7.18.0"
+
        "@typescript-eslint/types": "8.1.0",
+
        "@typescript-eslint/visitor-keys": "8.1.0"
      },
      "engines": {
-
        "node": "^18.18.0 || >=20.0.0"
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
      },
      "funding": {
        "type": "opencollective",
@@ -1265,26 +1305,23 @@
      }
    },
    "node_modules/@typescript-eslint/type-utils": {
-
      "version": "7.18.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz",
-
      "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==",
+
      "version": "8.1.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.1.0.tgz",
+
      "integrity": "sha512-oLYvTxljVvsMnldfl6jIKxTaU7ok7km0KDrwOt1RHYu6nxlhN3TIx8k5Q52L6wR33nOwDgM7VwW1fT1qMNfFIA==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/typescript-estree": "7.18.0",
-
        "@typescript-eslint/utils": "7.18.0",
+
        "@typescript-eslint/typescript-estree": "8.1.0",
+
        "@typescript-eslint/utils": "8.1.0",
        "debug": "^4.3.4",
        "ts-api-utils": "^1.3.0"
      },
      "engines": {
-
        "node": "^18.18.0 || >=20.0.0"
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/typescript-eslint"
      },
-
      "peerDependencies": {
-
        "eslint": "^8.56.0"
-
      },
      "peerDependenciesMeta": {
        "typescript": {
          "optional": true
@@ -1292,12 +1329,12 @@
      }
    },
    "node_modules/@typescript-eslint/types": {
-
      "version": "7.18.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz",
-
      "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==",
+
      "version": "8.1.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.1.0.tgz",
+
      "integrity": "sha512-q2/Bxa0gMOu/2/AKALI0tCKbG2zppccnRIRCW6BaaTlRVaPKft4oVYPp7WOPpcnsgbr0qROAVCVKCvIQ0tbWog==",
      "dev": true,
      "engines": {
-
        "node": "^18.18.0 || >=20.0.0"
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
      },
      "funding": {
        "type": "opencollective",
@@ -1305,13 +1342,13 @@
      }
    },
    "node_modules/@typescript-eslint/typescript-estree": {
-
      "version": "7.18.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz",
-
      "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==",
+
      "version": "8.1.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.1.0.tgz",
+
      "integrity": "sha512-NTHhmufocEkMiAord/g++gWKb0Fr34e9AExBRdqgWdVBaKoei2dIyYKD9Q0jBnvfbEA5zaf8plUFMUH6kQ0vGg==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "7.18.0",
-
        "@typescript-eslint/visitor-keys": "7.18.0",
+
        "@typescript-eslint/types": "8.1.0",
+
        "@typescript-eslint/visitor-keys": "8.1.0",
        "debug": "^4.3.4",
        "globby": "^11.1.0",
        "is-glob": "^4.0.3",
@@ -1320,7 +1357,7 @@
        "ts-api-utils": "^1.3.0"
      },
      "engines": {
-
        "node": "^18.18.0 || >=20.0.0"
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
      },
      "funding": {
        "type": "opencollective",
@@ -1333,38 +1370,38 @@
      }
    },
    "node_modules/@typescript-eslint/utils": {
-
      "version": "7.18.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz",
-
      "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==",
+
      "version": "8.1.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.1.0.tgz",
+
      "integrity": "sha512-ypRueFNKTIFwqPeJBfeIpxZ895PQhNyH4YID6js0UoBImWYoSjBsahUn9KMiJXh94uOjVBgHD9AmkyPsPnFwJA==",
      "dev": true,
      "dependencies": {
        "@eslint-community/eslint-utils": "^4.4.0",
-
        "@typescript-eslint/scope-manager": "7.18.0",
-
        "@typescript-eslint/types": "7.18.0",
-
        "@typescript-eslint/typescript-estree": "7.18.0"
+
        "@typescript-eslint/scope-manager": "8.1.0",
+
        "@typescript-eslint/types": "8.1.0",
+
        "@typescript-eslint/typescript-estree": "8.1.0"
      },
      "engines": {
-
        "node": "^18.18.0 || >=20.0.0"
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/typescript-eslint"
      },
      "peerDependencies": {
-
        "eslint": "^8.56.0"
+
        "eslint": "^8.57.0 || ^9.0.0"
      }
    },
    "node_modules/@typescript-eslint/visitor-keys": {
-
      "version": "7.18.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz",
-
      "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==",
+
      "version": "8.1.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.1.0.tgz",
+
      "integrity": "sha512-ba0lNI19awqZ5ZNKh6wCModMwoZs457StTebQ0q1NP58zSi2F6MOZRXwfKZy+jB78JNJ/WH8GSh2IQNzXX8Nag==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "7.18.0",
+
        "@typescript-eslint/types": "8.1.0",
        "eslint-visitor-keys": "^3.4.3"
      },
      "engines": {
-
        "node": "^18.18.0 || >=20.0.0"
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
      },
      "funding": {
        "type": "opencollective",
@@ -1591,9 +1628,9 @@
      "dev": true
    },
    "node_modules/axios": {
-
      "version": "1.7.3",
-
      "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz",
-
      "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==",
+
      "version": "1.7.4",
+
      "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz",
+
      "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==",
      "dev": true,
      "dependencies": {
        "follow-redirects": "^1.15.6",
@@ -2072,18 +2109,6 @@
        "node": ">=8"
      }
    },
-
    "node_modules/doctrine": {
-
      "version": "3.0.0",
-
      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
-
      "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
-
      "dev": true,
-
      "dependencies": {
-
        "esutils": "^2.0.2"
-
      },
-
      "engines": {
-
        "node": ">=6.0.0"
-
      }
-
    },
    "node_modules/dompurify": {
      "version": "3.1.6",
      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.6.tgz",
@@ -2157,41 +2182,37 @@
      }
    },
    "node_modules/eslint": {
-
      "version": "8.57.0",
-
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
-
      "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
+
      "version": "9.9.0",
+
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.0.tgz",
+
      "integrity": "sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA==",
      "dev": true,
      "dependencies": {
        "@eslint-community/eslint-utils": "^4.2.0",
-
        "@eslint-community/regexpp": "^4.6.1",
-
        "@eslint/eslintrc": "^2.1.4",
-
        "@eslint/js": "8.57.0",
-
        "@humanwhocodes/config-array": "^0.11.14",
+
        "@eslint-community/regexpp": "^4.11.0",
+
        "@eslint/config-array": "^0.17.1",
+
        "@eslint/eslintrc": "^3.1.0",
+
        "@eslint/js": "9.9.0",
        "@humanwhocodes/module-importer": "^1.0.1",
+
        "@humanwhocodes/retry": "^0.3.0",
        "@nodelib/fs.walk": "^1.2.8",
-
        "@ungap/structured-clone": "^1.2.0",
        "ajv": "^6.12.4",
        "chalk": "^4.0.0",
        "cross-spawn": "^7.0.2",
        "debug": "^4.3.2",
-
        "doctrine": "^3.0.0",
        "escape-string-regexp": "^4.0.0",
-
        "eslint-scope": "^7.2.2",
-
        "eslint-visitor-keys": "^3.4.3",
-
        "espree": "^9.6.1",
-
        "esquery": "^1.4.2",
+
        "eslint-scope": "^8.0.2",
+
        "eslint-visitor-keys": "^4.0.0",
+
        "espree": "^10.1.0",
+
        "esquery": "^1.5.0",
        "esutils": "^2.0.2",
        "fast-deep-equal": "^3.1.3",
-
        "file-entry-cache": "^6.0.1",
+
        "file-entry-cache": "^8.0.0",
        "find-up": "^5.0.0",
        "glob-parent": "^6.0.2",
-
        "globals": "^13.19.0",
-
        "graphemer": "^1.4.0",
        "ignore": "^5.2.0",
        "imurmurhash": "^0.1.4",
        "is-glob": "^4.0.0",
        "is-path-inside": "^3.0.3",
-
        "js-yaml": "^4.1.0",
        "json-stable-stringify-without-jsonify": "^1.0.1",
        "levn": "^0.4.1",
        "lodash.merge": "^4.6.2",
@@ -2205,10 +2226,18 @@
        "eslint": "bin/eslint.js"
      },
      "engines": {
-
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
      },
      "funding": {
-
        "url": "https://opencollective.com/eslint"
+
        "url": "https://eslint.org/donate"
+
      },
+
      "peerDependencies": {
+
        "jiti": "*"
+
      },
+
      "peerDependenciesMeta": {
+
        "jiti": {
+
          "optional": true
+
        }
      }
    },
    "node_modules/eslint-compat-utils": {
@@ -2300,15 +2329,6 @@
        "url": "https://opencollective.com/eslint"
      }
    },
-
    "node_modules/eslint/node_modules/@eslint/js": {
-
      "version": "8.57.0",
-
      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
-
      "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
-
      "dev": true,
-
      "engines": {
-
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-
      }
-
    },
    "node_modules/eslint/node_modules/brace-expansion": {
      "version": "1.1.11",
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -2335,19 +2355,49 @@
        "url": "https://github.com/chalk/chalk?sponsor=1"
      }
    },
-
    "node_modules/eslint/node_modules/globals": {
-
      "version": "13.24.0",
-
      "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
-
      "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+
    "node_modules/eslint/node_modules/eslint-scope": {
+
      "version": "8.0.2",
+
      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz",
+
      "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==",
      "dev": true,
      "dependencies": {
-
        "type-fest": "^0.20.2"
+
        "esrecurse": "^4.3.0",
+
        "estraverse": "^5.2.0"
      },
      "engines": {
-
        "node": ">=8"
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
      },
      "funding": {
-
        "url": "https://github.com/sponsors/sindresorhus"
+
        "url": "https://opencollective.com/eslint"
+
      }
+
    },
+
    "node_modules/eslint/node_modules/eslint-visitor-keys": {
+
      "version": "4.0.0",
+
      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz",
+
      "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==",
+
      "dev": true,
+
      "engines": {
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
      },
+
      "funding": {
+
        "url": "https://opencollective.com/eslint"
+
      }
+
    },
+
    "node_modules/eslint/node_modules/espree": {
+
      "version": "10.1.0",
+
      "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz",
+
      "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==",
+
      "dev": true,
+
      "dependencies": {
+
        "acorn": "^8.12.0",
+
        "acorn-jsx": "^5.3.2",
+
        "eslint-visitor-keys": "^4.0.0"
+
      },
+
      "engines": {
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
      },
+
      "funding": {
+
        "url": "https://opencollective.com/eslint"
      }
    },
    "node_modules/eslint/node_modules/minimatch": {
@@ -2430,16 +2480,16 @@
      }
    },
    "node_modules/execa": {
-
      "version": "9.3.0",
-
      "resolved": "https://registry.npmjs.org/execa/-/execa-9.3.0.tgz",
-
      "integrity": "sha512-l6JFbqnHEadBoVAVpN5dl2yCyfX28WoBAGaoQcNmLLSedOxTxcn2Qa83s8I/PA5i56vWru2OHOtrwF7Om2vqlg==",
+
      "version": "9.3.1",
+
      "resolved": "https://registry.npmjs.org/execa/-/execa-9.3.1.tgz",
+
      "integrity": "sha512-gdhefCCNy/8tpH/2+ajP9IQc14vXchNdd0weyzSJEFURhRMGncQ+zKFxwjAufIewPEJm9BPOaJnvg2UtlH2gPQ==",
      "dev": true,
      "dependencies": {
        "@sindresorhus/merge-streams": "^4.0.0",
        "cross-spawn": "^7.0.3",
        "figures": "^6.1.0",
        "get-stream": "^9.0.0",
-
        "human-signals": "^7.0.0",
+
        "human-signals": "^8.0.0",
        "is-plain-obj": "^4.1.0",
        "is-stream": "^4.0.1",
        "npm-run-path": "^5.2.0",
@@ -2537,15 +2587,15 @@
      }
    },
    "node_modules/file-entry-cache": {
-
      "version": "6.0.1",
-
      "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
-
      "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+
      "version": "8.0.0",
+
      "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
+
      "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
      "dev": true,
      "dependencies": {
-
        "flat-cache": "^3.0.4"
+
        "flat-cache": "^4.0.0"
      },
      "engines": {
-
        "node": "^10.12.0 || >=12.0.0"
+
        "node": ">=16.0.0"
      }
    },
    "node_modules/fill-range": {
@@ -2577,17 +2627,16 @@
      }
    },
    "node_modules/flat-cache": {
-
      "version": "3.2.0",
-
      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
-
      "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+
      "version": "4.0.1",
+
      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
+
      "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
      "dev": true,
      "dependencies": {
        "flatted": "^3.2.9",
-
        "keyv": "^4.5.3",
-
        "rimraf": "^3.0.2"
+
        "keyv": "^4.5.4"
      },
      "engines": {
-
        "node": "^10.12.0 || >=12.0.0"
+
        "node": ">=16"
      }
    },
    "node_modules/flatted": {
@@ -2982,9 +3031,9 @@
      }
    },
    "node_modules/human-signals": {
-
      "version": "7.0.0",
-
      "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-7.0.0.tgz",
-
      "integrity": "sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==",
+
      "version": "8.0.0",
+
      "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.0.tgz",
+
      "integrity": "sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==",
      "dev": true,
      "engines": {
        "node": ">=18.18.0"
@@ -3010,9 +3059,9 @@
      ]
    },
    "node_modules/ignore": {
-
      "version": "5.3.1",
-
      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
-
      "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+
      "version": "5.3.2",
+
      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+
      "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
      "dev": true,
      "engines": {
        "node": ">= 4"
@@ -3958,12 +4007,12 @@
      }
    },
    "node_modules/playwright": {
-
      "version": "1.46.0",
-
      "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.46.0.tgz",
-
      "integrity": "sha512-XYJ5WvfefWONh1uPAUAi0H2xXV5S3vrtcnXe6uAOgdGi3aSpqOSXX08IAjXW34xitfuOJsvXU5anXZxPSEQiJw==",
+
      "version": "1.46.1",
+
      "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.46.1.tgz",
+
      "integrity": "sha512-oPcr1yqoXLCkgKtD5eNUPLiN40rYEM39odNpIb6VE6S7/15gJmA1NzVv6zJYusV0e7tzvkU/utBFNa/Kpxmwng==",
      "dev": true,
      "dependencies": {
-
        "playwright-core": "1.46.0"
+
        "playwright-core": "1.46.1"
      },
      "bin": {
        "playwright": "cli.js"
@@ -3976,9 +4025,9 @@
      }
    },
    "node_modules/playwright-core": {
-
      "version": "1.46.0",
-
      "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.46.0.tgz",
-
      "integrity": "sha512-9Y/d5UIwuJk8t3+lhmMSAJyNP1BUC/DqP3cQJDQQL/oWqAiuPTLgy7Q5dzglmTLwcBRdetzgNM/gni7ckfTr6A==",
+
      "version": "1.46.1",
+
      "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.46.1.tgz",
+
      "integrity": "sha512-h9LqIQaAv+CYvWzsZ+h3RsrqCStkBHlgo6/TJlFst3cOTlLghBQlJwPOZKQJTKNaD3QIB7aAVQ+gfWbN3NXB7A==",
      "dev": true,
      "bin": {
        "playwright-core": "cli.js"
@@ -4087,9 +4136,9 @@
      }
    },
    "node_modules/postcss-selector-parser": {
-
      "version": "6.1.1",
-
      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz",
-
      "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==",
+
      "version": "6.1.2",
+
      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
+
      "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
      "dev": true,
      "dependencies": {
        "cssesc": "^3.0.0",
@@ -4223,26 +4272,10 @@
        "node": ">=0.10.0"
      }
    },
-
    "node_modules/rimraf": {
-
      "version": "3.0.2",
-
      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
-
      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
-
      "deprecated": "Rimraf versions prior to v4 are no longer supported",
-
      "dev": true,
-
      "dependencies": {
-
        "glob": "^7.1.3"
-
      },
-
      "bin": {
-
        "rimraf": "bin.js"
-
      },
-
      "funding": {
-
        "url": "https://github.com/sponsors/isaacs"
-
      }
-
    },
    "node_modules/rollup": {
-
      "version": "4.20.0",
-
      "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.20.0.tgz",
-
      "integrity": "sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==",
+
      "version": "4.21.0",
+
      "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.0.tgz",
+
      "integrity": "sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==",
      "dev": true,
      "dependencies": {
        "@types/estree": "1.0.5"
@@ -4255,22 +4288,22 @@
        "npm": ">=8.0.0"
      },
      "optionalDependencies": {
-
        "@rollup/rollup-android-arm-eabi": "4.20.0",
-
        "@rollup/rollup-android-arm64": "4.20.0",
-
        "@rollup/rollup-darwin-arm64": "4.20.0",
-
        "@rollup/rollup-darwin-x64": "4.20.0",
-
        "@rollup/rollup-linux-arm-gnueabihf": "4.20.0",
-
        "@rollup/rollup-linux-arm-musleabihf": "4.20.0",
-
        "@rollup/rollup-linux-arm64-gnu": "4.20.0",
-
        "@rollup/rollup-linux-arm64-musl": "4.20.0",
-
        "@rollup/rollup-linux-powerpc64le-gnu": "4.20.0",
-
        "@rollup/rollup-linux-riscv64-gnu": "4.20.0",
-
        "@rollup/rollup-linux-s390x-gnu": "4.20.0",
-
        "@rollup/rollup-linux-x64-gnu": "4.20.0",
-
        "@rollup/rollup-linux-x64-musl": "4.20.0",
-
        "@rollup/rollup-win32-arm64-msvc": "4.20.0",
-
        "@rollup/rollup-win32-ia32-msvc": "4.20.0",
-
        "@rollup/rollup-win32-x64-msvc": "4.20.0",
+
        "@rollup/rollup-android-arm-eabi": "4.21.0",
+
        "@rollup/rollup-android-arm64": "4.21.0",
+
        "@rollup/rollup-darwin-arm64": "4.21.0",
+
        "@rollup/rollup-darwin-x64": "4.21.0",
+
        "@rollup/rollup-linux-arm-gnueabihf": "4.21.0",
+
        "@rollup/rollup-linux-arm-musleabihf": "4.21.0",
+
        "@rollup/rollup-linux-arm64-gnu": "4.21.0",
+
        "@rollup/rollup-linux-arm64-musl": "4.21.0",
+
        "@rollup/rollup-linux-powerpc64le-gnu": "4.21.0",
+
        "@rollup/rollup-linux-riscv64-gnu": "4.21.0",
+
        "@rollup/rollup-linux-s390x-gnu": "4.21.0",
+
        "@rollup/rollup-linux-x64-gnu": "4.21.0",
+
        "@rollup/rollup-linux-x64-musl": "4.21.0",
+
        "@rollup/rollup-win32-arm64-msvc": "4.21.0",
+
        "@rollup/rollup-win32-ia32-msvc": "4.21.0",
+
        "@rollup/rollup-win32-x64-msvc": "4.21.0",
        "fsevents": "~2.3.2"
      }
    },
@@ -4716,9 +4749,9 @@
      "dev": true
    },
    "node_modules/tinypool": {
-
      "version": "1.0.0",
-
      "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.0.tgz",
-
      "integrity": "sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==",
+
      "version": "1.0.1",
+
      "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.1.tgz",
+
      "integrity": "sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==",
      "dev": true,
      "engines": {
        "node": "^18.0.0 || >=20.0.0"
@@ -4817,18 +4850,6 @@
        "node": ">=4"
      }
    },
-
    "node_modules/type-fest": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
-
      "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
-
      "dev": true,
-
      "engines": {
-
        "node": ">=10"
-
      },
-
      "funding": {
-
        "url": "https://github.com/sponsors/sindresorhus"
-
      }
-
    },
    "node_modules/typescript": {
      "version": "5.5.4",
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz",
@@ -4843,25 +4864,22 @@
      }
    },
    "node_modules/typescript-eslint": {
-
      "version": "7.18.0",
-
      "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.18.0.tgz",
-
      "integrity": "sha512-PonBkP603E3tt05lDkbOMyaxJjvKqQrXsnow72sVeOFINDE/qNmnnd+f9b4N+U7W6MXnnYyrhtmF2t08QWwUbA==",
+
      "version": "8.1.0",
+
      "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.1.0.tgz",
+
      "integrity": "sha512-prB2U3jXPJLpo1iVLN338Lvolh6OrcCZO+9Yv6AR+tvegPPptYCDBIHiEEUdqRi8gAv2bXNKfMUrgAd2ejn/ow==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/eslint-plugin": "7.18.0",
-
        "@typescript-eslint/parser": "7.18.0",
-
        "@typescript-eslint/utils": "7.18.0"
+
        "@typescript-eslint/eslint-plugin": "8.1.0",
+
        "@typescript-eslint/parser": "8.1.0",
+
        "@typescript-eslint/utils": "8.1.0"
      },
      "engines": {
-
        "node": "^18.18.0 || >=20.0.0"
+
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/typescript-eslint"
      },
-
      "peerDependencies": {
-
        "eslint": "^8.56.0"
-
      },
      "peerDependenciesMeta": {
        "typescript": {
          "optional": true
@@ -4874,9 +4892,9 @@
      "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="
    },
    "node_modules/undici-types": {
-
      "version": "5.26.5",
-
      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
-
      "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+
      "version": "6.19.6",
+
      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.6.tgz",
+
      "integrity": "sha512-e/vggGopEfTKSvj4ihnOLTsqhrKRN3LeO6qSN/GxohhuRv8qH9bNQ4B8W7e/vFL+0XTnmHPB4/kegunZGA4Org==",
      "dev": true
    },
    "node_modules/unist-util-is": {
@@ -5006,13 +5024,13 @@
      }
    },
    "node_modules/vite": {
-
      "version": "5.4.0",
-
      "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.0.tgz",
-
      "integrity": "sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==",
+
      "version": "5.4.1",
+
      "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.1.tgz",
+
      "integrity": "sha512-1oE6yuNXssjrZdblI9AfBbHCC41nnyoVoEZxQnID6yvQZAFBzxxkqoFLtHUMkYunL8hwOLEjgTuxpkRxvba3kA==",
      "dev": true,
      "dependencies": {
        "esbuild": "^0.21.3",
-
        "postcss": "^8.4.40",
+
        "postcss": "^8.4.41",
        "rollup": "^4.13.0"
      },
      "bin": {
modified package.json
@@ -21,7 +21,7 @@
  },
  "devDependencies": {
    "@eslint/js": "^9.8.0",
-
    "@playwright/test": "^1.46.0",
+
    "@playwright/test": "^1.46.1",
    "@sveltejs/vite-plugin-svelte": "^3.1.1",
    "@tsconfig/svelte": "^5.0.4",
    "@types/config": "^3.3.4",
@@ -32,13 +32,13 @@
    "@types/node": "^20.14.12",
    "@types/sinon": "^17.0.3",
    "@types/wait-on": "^5.3.4",
-
    "@typescript-eslint/parser": "^7.17.0",
+
    "@typescript-eslint/parser": "^8.1.0",
    "chalk": "^5.3.0",
    "config": "^3.3.12",
-
    "eslint": "^8.57.0",
+
    "eslint": "^9.9.0",
    "eslint-config-prettier": "^9.1.0",
    "eslint-plugin-svelte": "^2.43.0",
-
    "execa": "^9.3.0",
+
    "execa": "^9.3.1",
    "get-port": "^7.1.0",
    "globals": "^15.9.0",
    "happy-dom": "^14.12.3",
@@ -48,8 +48,8 @@
    "svelte-check": "^3.8.5",
    "svelte-eslint-parser": "^0.41.0",
    "typescript": "^5.5.4",
-
    "typescript-eslint": "^7.17.0",
-
    "vite": "^5.4.0",
+
    "typescript-eslint": "^8.1.0",
+
    "vite": "^5.4.1",
    "vite-plugin-virtual": "^0.3.0",
    "vitest": "^2.0.5",
    "wait-on": "^7.2.0"
modified src/views/projects/Source/Blob.svelte
@@ -31,6 +31,7 @@

  let selectedLineId: string | undefined = undefined;
  $: {
+
    // eslint-disable-next-line @typescript-eslint/no-unused-expressions
    content;
    updateSelectedLineId();
  }
modified tests/support/peerManager.ts
@@ -174,7 +174,6 @@ export class RadiclePeer {
  public async waitForEvent(searchEvent: NodeEvent, timeoutInMs: number) {
    const start = new Date().getTime();

-
    // eslint-disable-next-line no-constant-condition
    while (true) {
      if (this.#eventRecords.find(matches(searchEvent))) {
        return;
@@ -286,7 +285,7 @@ export class RadiclePeer {
        let event;
        try {
          event = JSON.parse(line);
-
        } catch (e) {
+
        } catch {
          console.log("Error parsing event", line);
          return;
        }
modified tests/unit/router.test.ts
@@ -128,14 +128,14 @@ describe("route invariant when parsed", () => {
    });
  });

-
  test("projects.patches"),
-
    () => {
-
      expectParsingInvariant({
-
        resource: "project.patches",
-
        node,
-
        project: "PROJECT",
-
      });
-
    };
+
  test("projects.patches", () => {
+
    expectParsingInvariant({
+
      resource: "project.patches",
+
      node,
+
      project: "PROJECT",
+
      search: "SEARCH",
+
    });
+
  });

  test("projects.patches with search", () => {
    expectParsingInvariant({