Radish alpha
r
rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5
Radicle web interface
Radicle
Git
Update dependencies
Merged did:key:z6MkkfM3...sVz5 opened 2 years ago
3 files changed +354 -352 d00cec7b 746e478d
modified flake.nix
@@ -73,7 +73,7 @@
          pname = "radicle-interface";
          version = "1.0.0";
          src = ./.;
-
          npmDepsHash = "sha256-1riLEt0CR8ZR+8pK2t3befPS4WuloW6oL0y/lJmfdSU=";
+
          npmDepsHash = "sha256-E2M1aHKxustlneEx/H+UYR45eYkYpQgUgvbAHaXzuC4=";
          postPatch = ''
            patchShebangs --build ./scripts
            mkdir -p "public/twemoji"
modified package-lock.json
@@ -5,23 +5,22 @@
  "requires": true,
  "packages": {
    "": {
-
      "name": "radicle-interface",
      "version": "1.0.0",
      "hasInstallScript": true,
      "dependencies": {
        "@efstajas/svelte-stored-writable": "^0.2.0",
        "@radicle/gray-matter": "4.1.0",
-
        "@wooorm/starry-night": "^3.2.0",
-
        "async-mutex": "^0.4.1",
+
        "@wooorm/starry-night": "^3.3.0",
+
        "async-mutex": "^0.5.0",
        "baconjs": "^3.0.17",
        "bs58": "^5.0.0",
        "buffer": "^6.0.3",
-
        "dompurify": "^3.0.9",
+
        "dompurify": "^3.0.11",
        "hast-util-to-dom": "^4.0.0",
        "hast-util-to-html": "^9.0.0",
        "lodash": "^4.17.21",
        "lru-cache": "^10.2.0",
-
        "marked": "^12.0.0",
+
        "marked": "^12.0.1",
        "marked-katex-extension": "^5.0.1",
        "marked-linkify-it": "^3.1.9",
        "md5": "^2.3.0",
@@ -32,33 +31,33 @@
        "zod": "^3.22.4"
      },
      "devDependencies": {
-
        "@playwright/test": "^1.42.0",
+
        "@playwright/test": "^1.42.1",
        "@sinonjs/fake-timers": "^11.2.2",
        "@sveltejs/vite-plugin-svelte": "^3.0.2",
-
        "@tsconfig/svelte": "^5.0.2",
+
        "@tsconfig/svelte": "^5.0.3",
        "@types/dompurify": "^3.0.5",
        "@types/katex": "^0.16.7",
-
        "@types/lodash": "^4.14.202",
+
        "@types/lodash": "^4.17.0",
        "@types/md5": "^2.3.5",
-
        "@types/node": "^20.11.24",
+
        "@types/node": "^20.11.30",
        "@types/sinon": "^17.0.3",
        "@types/sinonjs__fake-timers": "^8.1.5",
        "@types/wait-on": "^5.3.4",
-
        "@typescript-eslint/eslint-plugin": "^7.1.0",
+
        "@typescript-eslint/eslint-plugin": "^7.4.0",
        "chalk": "^5.3.0",
        "eslint": "^8.57.0",
        "eslint-config-prettier": "^9.1.0",
        "eslint-plugin-no-only-tests": "^3.1.0",
        "eslint-plugin-svelte": "^2.35.1",
        "execa": "^8.0.1",
-
        "get-port": "^7.0.0",
-
        "happy-dom": "^13.6.2",
+
        "get-port": "^7.1.0",
+
        "happy-dom": "^14.3.8",
        "prettier": "^3.2.5",
        "prettier-plugin-svelte": "^3.2.2",
-
        "svelte-check": "^3.6.6",
-
        "typescript": "^5.3.3",
-
        "vite": "^5.1.4",
-
        "vitest": "^1.3.1",
+
        "svelte-check": "^3.6.8",
+
        "typescript": "^5.4.3",
+
        "vite": "^5.2.6",
+
        "vitest": "^1.4.0",
        "wait-on": "^7.2.0"
      },
      "engines": {
@@ -104,9 +103,9 @@
      }
    },
    "node_modules/@esbuild/aix-ppc64": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz",
-
      "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz",
+
      "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==",
      "cpu": [
        "ppc64"
      ],
@@ -120,9 +119,9 @@
      }
    },
    "node_modules/@esbuild/android-arm": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz",
-
      "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz",
+
      "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==",
      "cpu": [
        "arm"
      ],
@@ -136,9 +135,9 @@
      }
    },
    "node_modules/@esbuild/android-arm64": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz",
-
      "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz",
+
      "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==",
      "cpu": [
        "arm64"
      ],
@@ -152,9 +151,9 @@
      }
    },
    "node_modules/@esbuild/android-x64": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz",
-
      "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz",
+
      "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==",
      "cpu": [
        "x64"
      ],
@@ -168,9 +167,9 @@
      }
    },
    "node_modules/@esbuild/darwin-arm64": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz",
-
      "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz",
+
      "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==",
      "cpu": [
        "arm64"
      ],
@@ -184,9 +183,9 @@
      }
    },
    "node_modules/@esbuild/darwin-x64": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz",
-
      "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz",
+
      "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==",
      "cpu": [
        "x64"
      ],
@@ -200,9 +199,9 @@
      }
    },
    "node_modules/@esbuild/freebsd-arm64": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz",
-
      "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz",
+
      "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==",
      "cpu": [
        "arm64"
      ],
@@ -216,9 +215,9 @@
      }
    },
    "node_modules/@esbuild/freebsd-x64": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz",
-
      "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz",
+
      "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==",
      "cpu": [
        "x64"
      ],
@@ -232,9 +231,9 @@
      }
    },
    "node_modules/@esbuild/linux-arm": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz",
-
      "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz",
+
      "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==",
      "cpu": [
        "arm"
      ],
@@ -248,9 +247,9 @@
      }
    },
    "node_modules/@esbuild/linux-arm64": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz",
-
      "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz",
+
      "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==",
      "cpu": [
        "arm64"
      ],
@@ -264,9 +263,9 @@
      }
    },
    "node_modules/@esbuild/linux-ia32": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz",
-
      "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz",
+
      "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==",
      "cpu": [
        "ia32"
      ],
@@ -280,9 +279,9 @@
      }
    },
    "node_modules/@esbuild/linux-loong64": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz",
-
      "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz",
+
      "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==",
      "cpu": [
        "loong64"
      ],
@@ -296,9 +295,9 @@
      }
    },
    "node_modules/@esbuild/linux-mips64el": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz",
-
      "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz",
+
      "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==",
      "cpu": [
        "mips64el"
      ],
@@ -312,9 +311,9 @@
      }
    },
    "node_modules/@esbuild/linux-ppc64": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz",
-
      "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz",
+
      "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==",
      "cpu": [
        "ppc64"
      ],
@@ -328,9 +327,9 @@
      }
    },
    "node_modules/@esbuild/linux-riscv64": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz",
-
      "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz",
+
      "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==",
      "cpu": [
        "riscv64"
      ],
@@ -344,9 +343,9 @@
      }
    },
    "node_modules/@esbuild/linux-s390x": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz",
-
      "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz",
+
      "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==",
      "cpu": [
        "s390x"
      ],
@@ -360,9 +359,9 @@
      }
    },
    "node_modules/@esbuild/linux-x64": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz",
-
      "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz",
+
      "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==",
      "cpu": [
        "x64"
      ],
@@ -376,9 +375,9 @@
      }
    },
    "node_modules/@esbuild/netbsd-x64": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz",
-
      "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz",
+
      "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==",
      "cpu": [
        "x64"
      ],
@@ -392,9 +391,9 @@
      }
    },
    "node_modules/@esbuild/openbsd-x64": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz",
-
      "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz",
+
      "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==",
      "cpu": [
        "x64"
      ],
@@ -408,9 +407,9 @@
      }
    },
    "node_modules/@esbuild/sunos-x64": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz",
-
      "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz",
+
      "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==",
      "cpu": [
        "x64"
      ],
@@ -424,9 +423,9 @@
      }
    },
    "node_modules/@esbuild/win32-arm64": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz",
-
      "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz",
+
      "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==",
      "cpu": [
        "arm64"
      ],
@@ -440,9 +439,9 @@
      }
    },
    "node_modules/@esbuild/win32-ia32": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz",
-
      "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz",
+
      "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==",
      "cpu": [
        "ia32"
      ],
@@ -456,9 +455,9 @@
      }
    },
    "node_modules/@esbuild/win32-x64": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz",
-
      "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz",
+
      "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==",
      "cpu": [
        "x64"
      ],
@@ -666,9 +665,9 @@
      "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
    },
    "node_modules/@jridgewell/trace-mapping": {
-
      "version": "0.3.24",
-
      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.24.tgz",
-
      "integrity": "sha512-+VaWXDa6+l6MhflBvVXjIEAzb59nQ2JUK3bwRp2zRpPtU+8TFRy9Gg/5oIcNlkEL5PGlBFGfemUVvIgLnTzq7Q==",
+
      "version": "0.3.25",
+
      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+
      "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
      "dependencies": {
        "@jridgewell/resolve-uri": "^3.1.0",
        "@jridgewell/sourcemap-codec": "^1.4.14"
@@ -710,12 +709,12 @@
      }
    },
    "node_modules/@playwright/test": {
-
      "version": "1.42.0",
-
      "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.42.0.tgz",
-
      "integrity": "sha512-2k1HzC28Fs+HiwbJOQDUwrWMttqSLUVdjCqitBOjdCD0svWOMQUVqrXX6iFD7POps6xXAojsX/dGBpKnjZctLA==",
+
      "version": "1.42.1",
+
      "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.42.1.tgz",
+
      "integrity": "sha512-Gq9rmS54mjBL/7/MvBaNOBwbfnh7beHvS6oS4srqXFcQHpQCV1+c8JXWE8VLPyRDhgS3H8x8A7hztqI9VnwrAQ==",
      "dev": true,
      "dependencies": {
-
        "playwright": "1.42.0"
+
        "playwright": "1.42.1"
      },
      "bin": {
        "playwright": "cli.js"
@@ -739,9 +738,9 @@
      }
    },
    "node_modules/@rollup/rollup-android-arm-eabi": {
-
      "version": "4.12.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz",
-
      "integrity": "sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==",
+
      "version": "4.13.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz",
+
      "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==",
      "cpu": [
        "arm"
      ],
@@ -752,9 +751,9 @@
      ]
    },
    "node_modules/@rollup/rollup-android-arm64": {
-
      "version": "4.12.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz",
-
      "integrity": "sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==",
+
      "version": "4.13.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz",
+
      "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==",
      "cpu": [
        "arm64"
      ],
@@ -765,9 +764,9 @@
      ]
    },
    "node_modules/@rollup/rollup-darwin-arm64": {
-
      "version": "4.12.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz",
-
      "integrity": "sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==",
+
      "version": "4.13.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz",
+
      "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==",
      "cpu": [
        "arm64"
      ],
@@ -778,9 +777,9 @@
      ]
    },
    "node_modules/@rollup/rollup-darwin-x64": {
-
      "version": "4.12.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz",
-
      "integrity": "sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==",
+
      "version": "4.13.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz",
+
      "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==",
      "cpu": [
        "x64"
      ],
@@ -791,9 +790,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
-
      "version": "4.12.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz",
-
      "integrity": "sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==",
+
      "version": "4.13.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz",
+
      "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==",
      "cpu": [
        "arm"
      ],
@@ -804,9 +803,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-arm64-gnu": {
-
      "version": "4.12.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz",
-
      "integrity": "sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==",
+
      "version": "4.13.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz",
+
      "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==",
      "cpu": [
        "arm64"
      ],
@@ -817,9 +816,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-arm64-musl": {
-
      "version": "4.12.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz",
-
      "integrity": "sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==",
+
      "version": "4.13.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz",
+
      "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==",
      "cpu": [
        "arm64"
      ],
@@ -830,9 +829,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-riscv64-gnu": {
-
      "version": "4.12.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz",
-
      "integrity": "sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==",
+
      "version": "4.13.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz",
+
      "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==",
      "cpu": [
        "riscv64"
      ],
@@ -843,9 +842,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-x64-gnu": {
-
      "version": "4.12.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz",
-
      "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==",
+
      "version": "4.13.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz",
+
      "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==",
      "cpu": [
        "x64"
      ],
@@ -856,9 +855,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-x64-musl": {
-
      "version": "4.12.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz",
-
      "integrity": "sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==",
+
      "version": "4.13.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz",
+
      "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==",
      "cpu": [
        "x64"
      ],
@@ -869,9 +868,9 @@
      ]
    },
    "node_modules/@rollup/rollup-win32-arm64-msvc": {
-
      "version": "4.12.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz",
-
      "integrity": "sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==",
+
      "version": "4.13.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz",
+
      "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==",
      "cpu": [
        "arm64"
      ],
@@ -882,9 +881,9 @@
      ]
    },
    "node_modules/@rollup/rollup-win32-ia32-msvc": {
-
      "version": "4.12.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz",
-
      "integrity": "sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==",
+
      "version": "4.13.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz",
+
      "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==",
      "cpu": [
        "ia32"
      ],
@@ -895,9 +894,9 @@
      ]
    },
    "node_modules/@rollup/rollup-win32-x64-msvc": {
-
      "version": "4.12.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz",
-
      "integrity": "sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==",
+
      "version": "4.13.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz",
+
      "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==",
      "cpu": [
        "x64"
      ],
@@ -1013,9 +1012,9 @@
      }
    },
    "node_modules/@tsconfig/svelte": {
-
      "version": "5.0.2",
-
      "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-5.0.2.tgz",
-
      "integrity": "sha512-BRbo1fOtyVbhfLyuCWw6wAWp+U8UQle+ZXu84MYYWzYSEB28dyfnRBIE99eoG+qdAC0po6L2ScIEivcT07UaMA==",
+
      "version": "5.0.3",
+
      "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-5.0.3.tgz",
+
      "integrity": "sha512-Ms0t9K0oxioSb0lrZ5NRysx0nE/KsojYOG+db9v6wSaU/+P37vc0WRmh1QE1c8IAtTniD4yEhffGQuTKF8uaPw==",
      "dev": true
    },
    "node_modules/@types/dompurify": {
@@ -1057,9 +1056,9 @@
      "integrity": "sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw=="
    },
    "node_modules/@types/lodash": {
-
      "version": "4.14.202",
-
      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz",
-
      "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==",
+
      "version": "4.17.0",
+
      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz",
+
      "integrity": "sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==",
      "dev": true
    },
    "node_modules/@types/md5": {
@@ -1077,9 +1076,9 @@
      }
    },
    "node_modules/@types/node": {
-
      "version": "20.11.24",
-
      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.24.tgz",
-
      "integrity": "sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==",
+
      "version": "20.11.30",
+
      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz",
+
      "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==",
      "dev": true,
      "dependencies": {
        "undici-types": "~5.26.4"
@@ -1133,16 +1132,16 @@
      }
    },
    "node_modules/@typescript-eslint/eslint-plugin": {
-
      "version": "7.1.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.1.0.tgz",
-
      "integrity": "sha512-j6vT/kCulhG5wBmGtstKeiVr1rdXE4nk+DT1k6trYkwlrvW9eOF5ZbgKnd/YR6PcM4uTEXa0h6Fcvf6X7Dxl0w==",
+
      "version": "7.4.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.4.0.tgz",
+
      "integrity": "sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==",
      "dev": true,
      "dependencies": {
        "@eslint-community/regexpp": "^4.5.1",
-
        "@typescript-eslint/scope-manager": "7.1.0",
-
        "@typescript-eslint/type-utils": "7.1.0",
-
        "@typescript-eslint/utils": "7.1.0",
-
        "@typescript-eslint/visitor-keys": "7.1.0",
+
        "@typescript-eslint/scope-manager": "7.4.0",
+
        "@typescript-eslint/type-utils": "7.4.0",
+
        "@typescript-eslint/utils": "7.4.0",
+
        "@typescript-eslint/visitor-keys": "7.4.0",
        "debug": "^4.3.4",
        "graphemer": "^1.4.0",
        "ignore": "^5.2.4",
@@ -1151,7 +1150,7 @@
        "ts-api-utils": "^1.0.1"
      },
      "engines": {
-
        "node": "^16.0.0 || >=18.0.0"
+
        "node": "^18.18.0 || >=20.0.0"
      },
      "funding": {
        "type": "opencollective",
@@ -1168,20 +1167,20 @@
      }
    },
    "node_modules/@typescript-eslint/parser": {
-
      "version": "7.1.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.1.0.tgz",
-
      "integrity": "sha512-V1EknKUubZ1gWFjiOZhDSNToOjs63/9O0puCgGS8aDOgpZY326fzFu15QAUjwaXzRZjf/qdsdBrckYdv9YxB8w==",
+
      "version": "7.4.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.4.0.tgz",
+
      "integrity": "sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==",
      "dev": true,
      "peer": true,
      "dependencies": {
-
        "@typescript-eslint/scope-manager": "7.1.0",
-
        "@typescript-eslint/types": "7.1.0",
-
        "@typescript-eslint/typescript-estree": "7.1.0",
-
        "@typescript-eslint/visitor-keys": "7.1.0",
+
        "@typescript-eslint/scope-manager": "7.4.0",
+
        "@typescript-eslint/types": "7.4.0",
+
        "@typescript-eslint/typescript-estree": "7.4.0",
+
        "@typescript-eslint/visitor-keys": "7.4.0",
        "debug": "^4.3.4"
      },
      "engines": {
-
        "node": "^16.0.0 || >=18.0.0"
+
        "node": "^18.18.0 || >=20.0.0"
      },
      "funding": {
        "type": "opencollective",
@@ -1197,16 +1196,16 @@
      }
    },
    "node_modules/@typescript-eslint/scope-manager": {
-
      "version": "7.1.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.1.0.tgz",
-
      "integrity": "sha512-6TmN4OJiohHfoOdGZ3huuLhpiUgOGTpgXNUPJgeZOZR3DnIpdSgtt83RS35OYNNXxM4TScVlpVKC9jyQSETR1A==",
+
      "version": "7.4.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.4.0.tgz",
+
      "integrity": "sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "7.1.0",
-
        "@typescript-eslint/visitor-keys": "7.1.0"
+
        "@typescript-eslint/types": "7.4.0",
+
        "@typescript-eslint/visitor-keys": "7.4.0"
      },
      "engines": {
-
        "node": "^16.0.0 || >=18.0.0"
+
        "node": "^18.18.0 || >=20.0.0"
      },
      "funding": {
        "type": "opencollective",
@@ -1214,18 +1213,18 @@
      }
    },
    "node_modules/@typescript-eslint/type-utils": {
-
      "version": "7.1.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.1.0.tgz",
-
      "integrity": "sha512-UZIhv8G+5b5skkcuhgvxYWHjk7FW7/JP5lPASMEUoliAPwIH/rxoUSQPia2cuOj9AmDZmwUl1usKm85t5VUMew==",
+
      "version": "7.4.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.4.0.tgz",
+
      "integrity": "sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/typescript-estree": "7.1.0",
-
        "@typescript-eslint/utils": "7.1.0",
+
        "@typescript-eslint/typescript-estree": "7.4.0",
+
        "@typescript-eslint/utils": "7.4.0",
        "debug": "^4.3.4",
        "ts-api-utils": "^1.0.1"
      },
      "engines": {
-
        "node": "^16.0.0 || >=18.0.0"
+
        "node": "^18.18.0 || >=20.0.0"
      },
      "funding": {
        "type": "opencollective",
@@ -1241,12 +1240,12 @@
      }
    },
    "node_modules/@typescript-eslint/types": {
-
      "version": "7.1.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.1.0.tgz",
-
      "integrity": "sha512-qTWjWieJ1tRJkxgZYXx6WUYtWlBc48YRxgY2JN1aGeVpkhmnopq+SUC8UEVGNXIvWH7XyuTjwALfG6bFEgCkQA==",
+
      "version": "7.4.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.4.0.tgz",
+
      "integrity": "sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==",
      "dev": true,
      "engines": {
-
        "node": "^16.0.0 || >=18.0.0"
+
        "node": "^18.18.0 || >=20.0.0"
      },
      "funding": {
        "type": "opencollective",
@@ -1254,13 +1253,13 @@
      }
    },
    "node_modules/@typescript-eslint/typescript-estree": {
-
      "version": "7.1.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.1.0.tgz",
-
      "integrity": "sha512-k7MyrbD6E463CBbSpcOnwa8oXRdHzH1WiVzOipK3L5KSML92ZKgUBrTlehdi7PEIMT8k0bQixHUGXggPAlKnOQ==",
+
      "version": "7.4.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.4.0.tgz",
+
      "integrity": "sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "7.1.0",
-
        "@typescript-eslint/visitor-keys": "7.1.0",
+
        "@typescript-eslint/types": "7.4.0",
+
        "@typescript-eslint/visitor-keys": "7.4.0",
        "debug": "^4.3.4",
        "globby": "^11.1.0",
        "is-glob": "^4.0.3",
@@ -1269,7 +1268,7 @@
        "ts-api-utils": "^1.0.1"
      },
      "engines": {
-
        "node": "^16.0.0 || >=18.0.0"
+
        "node": "^18.18.0 || >=20.0.0"
      },
      "funding": {
        "type": "opencollective",
@@ -1282,21 +1281,21 @@
      }
    },
    "node_modules/@typescript-eslint/utils": {
-
      "version": "7.1.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.1.0.tgz",
-
      "integrity": "sha512-WUFba6PZC5OCGEmbweGpnNJytJiLG7ZvDBJJoUcX4qZYf1mGZ97mO2Mps6O2efxJcJdRNpqweCistDbZMwIVHw==",
+
      "version": "7.4.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.4.0.tgz",
+
      "integrity": "sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==",
      "dev": true,
      "dependencies": {
        "@eslint-community/eslint-utils": "^4.4.0",
        "@types/json-schema": "^7.0.12",
        "@types/semver": "^7.5.0",
-
        "@typescript-eslint/scope-manager": "7.1.0",
-
        "@typescript-eslint/types": "7.1.0",
-
        "@typescript-eslint/typescript-estree": "7.1.0",
+
        "@typescript-eslint/scope-manager": "7.4.0",
+
        "@typescript-eslint/types": "7.4.0",
+
        "@typescript-eslint/typescript-estree": "7.4.0",
        "semver": "^7.5.4"
      },
      "engines": {
-
        "node": "^16.0.0 || >=18.0.0"
+
        "node": "^18.18.0 || >=20.0.0"
      },
      "funding": {
        "type": "opencollective",
@@ -1307,16 +1306,16 @@
      }
    },
    "node_modules/@typescript-eslint/visitor-keys": {
-
      "version": "7.1.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.1.0.tgz",
-
      "integrity": "sha512-FhUqNWluiGNzlvnDZiXad4mZRhtghdoKW6e98GoEOYSu5cND+E39rG5KwJMUzeENwm1ztYBRqof8wMLP+wNPIA==",
+
      "version": "7.4.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.4.0.tgz",
+
      "integrity": "sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "7.1.0",
+
        "@typescript-eslint/types": "7.4.0",
        "eslint-visitor-keys": "^3.4.1"
      },
      "engines": {
-
        "node": "^16.0.0 || >=18.0.0"
+
        "node": "^18.18.0 || >=20.0.0"
      },
      "funding": {
        "type": "opencollective",
@@ -1329,13 +1328,13 @@
      "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ=="
    },
    "node_modules/@vitest/expect": {
-
      "version": "1.3.1",
-
      "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.3.1.tgz",
-
      "integrity": "sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==",
+
      "version": "1.4.0",
+
      "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.4.0.tgz",
+
      "integrity": "sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==",
      "dev": true,
      "dependencies": {
-
        "@vitest/spy": "1.3.1",
-
        "@vitest/utils": "1.3.1",
+
        "@vitest/spy": "1.4.0",
+
        "@vitest/utils": "1.4.0",
        "chai": "^4.3.10"
      },
      "funding": {
@@ -1343,12 +1342,12 @@
      }
    },
    "node_modules/@vitest/runner": {
-
      "version": "1.3.1",
-
      "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.3.1.tgz",
-
      "integrity": "sha512-5FzF9c3jG/z5bgCnjr8j9LNq/9OxV2uEBAITOXfoe3rdZJTdO7jzThth7FXv/6b+kdY65tpRQB7WaKhNZwX+Kg==",
+
      "version": "1.4.0",
+
      "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.4.0.tgz",
+
      "integrity": "sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg==",
      "dev": true,
      "dependencies": {
-
        "@vitest/utils": "1.3.1",
+
        "@vitest/utils": "1.4.0",
        "p-limit": "^5.0.0",
        "pathe": "^1.1.1"
      },
@@ -1384,9 +1383,9 @@
      }
    },
    "node_modules/@vitest/snapshot": {
-
      "version": "1.3.1",
-
      "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.3.1.tgz",
-
      "integrity": "sha512-EF++BZbt6RZmOlE3SuTPu/NfwBF6q4ABS37HHXzs2LUVPBLx2QoY/K0fKpRChSo8eLiuxcbCVfqKgx/dplCDuQ==",
+
      "version": "1.4.0",
+
      "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.4.0.tgz",
+
      "integrity": "sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==",
      "dev": true,
      "dependencies": {
        "magic-string": "^0.30.5",
@@ -1398,9 +1397,9 @@
      }
    },
    "node_modules/@vitest/spy": {
-
      "version": "1.3.1",
-
      "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.3.1.tgz",
-
      "integrity": "sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==",
+
      "version": "1.4.0",
+
      "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.4.0.tgz",
+
      "integrity": "sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==",
      "dev": true,
      "dependencies": {
        "tinyspy": "^2.2.0"
@@ -1410,9 +1409,9 @@
      }
    },
    "node_modules/@vitest/utils": {
-
      "version": "1.3.1",
-
      "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.3.1.tgz",
-
      "integrity": "sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==",
+
      "version": "1.4.0",
+
      "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.4.0.tgz",
+
      "integrity": "sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==",
      "dev": true,
      "dependencies": {
        "diff-sequences": "^29.6.3",
@@ -1425,9 +1424,9 @@
      }
    },
    "node_modules/@wooorm/starry-night": {
-
      "version": "3.2.0",
-
      "resolved": "https://registry.npmjs.org/@wooorm/starry-night/-/starry-night-3.2.0.tgz",
-
      "integrity": "sha512-SDIMYfhmfJXUzfXfG/0b8WuPLVmPVmx18sE3Q+Udm8M1yCm2rnAEN5OafFmAb7rwOf4W3SDR8fEFHzrE9AyYkA==",
+
      "version": "3.3.0",
+
      "resolved": "https://registry.npmjs.org/@wooorm/starry-night/-/starry-night-3.3.0.tgz",
+
      "integrity": "sha512-7PmyIDWz3/Yj7vd6eqVlbyaWyZmrERtxx1mwHDucnrQeSKFr3Grr8iqUbmd01pREG72HL4DPFQP9mw9U6jbjvA==",
      "dependencies": {
        "@types/hast": "^3.0.0",
        "import-meta-resolve": "^4.0.0",
@@ -1550,9 +1549,9 @@
      }
    },
    "node_modules/async-mutex": {
-
      "version": "0.4.1",
-
      "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.1.tgz",
-
      "integrity": "sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA==",
+
      "version": "0.5.0",
+
      "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz",
+
      "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==",
      "dependencies": {
        "tslib": "^2.4.0"
      }
@@ -1564,12 +1563,12 @@
      "dev": true
    },
    "node_modules/axios": {
-
      "version": "1.6.7",
-
      "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz",
-
      "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==",
+
      "version": "1.6.8",
+
      "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz",
+
      "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
      "dev": true,
      "dependencies": {
-
        "follow-redirects": "^1.15.4",
+
        "follow-redirects": "^1.15.6",
        "form-data": "^4.0.0",
        "proxy-from-env": "^1.1.0"
      }
@@ -1618,12 +1617,15 @@
      ]
    },
    "node_modules/binary-extensions": {
-
      "version": "2.2.0",
-
      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
-
      "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+
      "version": "2.3.0",
+
      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+
      "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
      "dev": true,
      "engines": {
        "node": ">=8"
+
      },
+
      "funding": {
+
        "url": "https://github.com/sponsors/sindresorhus"
      }
    },
    "node_modules/brace-expansion": {
@@ -2054,9 +2056,9 @@
      }
    },
    "node_modules/dompurify": {
-
      "version": "3.0.9",
-
      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.9.tgz",
-
      "integrity": "sha512-uyb4NDIvQ3hRn6NiC+SIFaP4mJ/MdXlvtunaqK9Bn6dD3RuB/1S/gasEjDHD8eiaqdSael2vBv+hOs7Y+jhYOQ=="
+
      "version": "3.0.11",
+
      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.11.tgz",
+
      "integrity": "sha512-Fan4uMuyB26gFV3ovPoEoQbxRRPfTu3CvImyZnhGq5fsIEO+gEFLp45ISFt+kQBWsK5ulDdT0oV28jS1UrwQLg=="
    },
    "node_modules/entities": {
      "version": "4.5.0",
@@ -2076,9 +2078,9 @@
      "dev": true
    },
    "node_modules/esbuild": {
-
      "version": "0.19.12",
-
      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz",
-
      "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==",
+
      "version": "0.20.2",
+
      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz",
+
      "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==",
      "dev": true,
      "hasInstallScript": true,
      "bin": {
@@ -2088,29 +2090,29 @@
        "node": ">=12"
      },
      "optionalDependencies": {
-
        "@esbuild/aix-ppc64": "0.19.12",
-
        "@esbuild/android-arm": "0.19.12",
-
        "@esbuild/android-arm64": "0.19.12",
-
        "@esbuild/android-x64": "0.19.12",
-
        "@esbuild/darwin-arm64": "0.19.12",
-
        "@esbuild/darwin-x64": "0.19.12",
-
        "@esbuild/freebsd-arm64": "0.19.12",
-
        "@esbuild/freebsd-x64": "0.19.12",
-
        "@esbuild/linux-arm": "0.19.12",
-
        "@esbuild/linux-arm64": "0.19.12",
-
        "@esbuild/linux-ia32": "0.19.12",
-
        "@esbuild/linux-loong64": "0.19.12",
-
        "@esbuild/linux-mips64el": "0.19.12",
-
        "@esbuild/linux-ppc64": "0.19.12",
-
        "@esbuild/linux-riscv64": "0.19.12",
-
        "@esbuild/linux-s390x": "0.19.12",
-
        "@esbuild/linux-x64": "0.19.12",
-
        "@esbuild/netbsd-x64": "0.19.12",
-
        "@esbuild/openbsd-x64": "0.19.12",
-
        "@esbuild/sunos-x64": "0.19.12",
-
        "@esbuild/win32-arm64": "0.19.12",
-
        "@esbuild/win32-ia32": "0.19.12",
-
        "@esbuild/win32-x64": "0.19.12"
+
        "@esbuild/aix-ppc64": "0.20.2",
+
        "@esbuild/android-arm": "0.20.2",
+
        "@esbuild/android-arm64": "0.20.2",
+
        "@esbuild/android-x64": "0.20.2",
+
        "@esbuild/darwin-arm64": "0.20.2",
+
        "@esbuild/darwin-x64": "0.20.2",
+
        "@esbuild/freebsd-arm64": "0.20.2",
+
        "@esbuild/freebsd-x64": "0.20.2",
+
        "@esbuild/linux-arm": "0.20.2",
+
        "@esbuild/linux-arm64": "0.20.2",
+
        "@esbuild/linux-ia32": "0.20.2",
+
        "@esbuild/linux-loong64": "0.20.2",
+
        "@esbuild/linux-mips64el": "0.20.2",
+
        "@esbuild/linux-ppc64": "0.20.2",
+
        "@esbuild/linux-riscv64": "0.20.2",
+
        "@esbuild/linux-s390x": "0.20.2",
+
        "@esbuild/linux-x64": "0.20.2",
+
        "@esbuild/netbsd-x64": "0.20.2",
+
        "@esbuild/openbsd-x64": "0.20.2",
+
        "@esbuild/sunos-x64": "0.20.2",
+
        "@esbuild/win32-arm64": "0.20.2",
+
        "@esbuild/win32-ia32": "0.20.2",
+
        "@esbuild/win32-x64": "0.20.2"
      }
    },
    "node_modules/escape-string-regexp": {
@@ -2630,9 +2632,9 @@
      }
    },
    "node_modules/get-port": {
-
      "version": "7.0.0",
-
      "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.0.0.tgz",
-
      "integrity": "sha512-mDHFgApoQd+azgMdwylJrv2DX47ywGq1i5VFJE7fZ0dttNq3iQMfsU4IvEgBHojA3KqEudyu7Vq+oN8kNaNkWw==",
+
      "version": "7.1.0",
+
      "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.1.0.tgz",
+
      "integrity": "sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==",
      "dev": true,
      "engines": {
        "node": ">=16"
@@ -2754,9 +2756,9 @@
      "dev": true
    },
    "node_modules/happy-dom": {
-
      "version": "13.6.2",
-
      "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-13.6.2.tgz",
-
      "integrity": "sha512-Ku+wDqcF/KwFA0dI+xIMZd9Jn020RXjuSil/Vz7gu2yhDC3FsDYZ55qqV9k+SGC4opwb4acisXqVSRxUJMlPbQ==",
+
      "version": "14.3.8",
+
      "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-14.3.8.tgz",
+
      "integrity": "sha512-jP7p/VQJ08lbIoCsw1Adna3RA86eE+2CNkqvJRWIhrKP7XKZ0e0s2TJSt5lwGS4b7x0z0Ztw0A9P4uQGMHPiiA==",
      "dev": true,
      "dependencies": {
        "entities": "^4.5.0",
@@ -3170,9 +3172,9 @@
      "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw=="
    },
    "node_modules/katex": {
-
      "version": "0.16.9",
-
      "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.9.tgz",
-
      "integrity": "sha512-fsSYjWS0EEOwvy81j3vRA8TEAhQhKiqO+FQaKWp0m39qwOzHVBgAUBIXWj1pB+O2W3fIpNa6Y9KSKCVbfPhyAQ==",
+
      "version": "0.16.10",
+
      "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.10.tgz",
+
      "integrity": "sha512-ZiqaC04tp2O5utMsl2TEZTXxa6WSC4yo0fv5ML++D3QZv/vx2Mct0mTlRx3O+uUkjfuAgOkzsCmq5MiUEsDDdA==",
      "funding": [
        "https://opencollective.com/katex",
        "https://github.com/sponsors/katex"
@@ -3317,9 +3319,9 @@
      }
    },
    "node_modules/magic-string": {
-
      "version": "0.30.7",
-
      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz",
-
      "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==",
+
      "version": "0.30.8",
+
      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz",
+
      "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==",
      "dependencies": {
        "@jridgewell/sourcemap-codec": "^1.4.15"
      },
@@ -3328,9 +3330,9 @@
      }
    },
    "node_modules/marked": {
-
      "version": "12.0.0",
-
      "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.0.tgz",
-
      "integrity": "sha512-Vkwtq9rLqXryZnWaQc86+FHLC6tr/fycMfYAhiOIXkrNmeGAyhSxjqu0Rs1i0bBqw5u0S7+lV9fdH2ZSVaoa0w==",
+
      "version": "12.0.1",
+
      "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.1.tgz",
+
      "integrity": "sha512-Y1/V2yafOcOdWQCX0XpAKXzDakPOpn6U0YLxTJs3cww6VxOzZV1BTOOYWLvH3gX38cq+iLwljHHTnMtlDfg01Q==",
      "bin": {
        "marked": "bin/marked.js"
      },
@@ -3884,12 +3886,12 @@
      }
    },
    "node_modules/playwright": {
-
      "version": "1.42.0",
-
      "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.42.0.tgz",
-
      "integrity": "sha512-Ko7YRUgj5xBHbntrgt4EIw/nE//XBHOKVKnBjO1KuZkmkhlbgyggTe5s9hjqQ1LpN+Xg+kHsQyt5Pa0Bw5XpvQ==",
+
      "version": "1.42.1",
+
      "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.42.1.tgz",
+
      "integrity": "sha512-PgwB03s2DZBcNRoW+1w9E+VkLBxweib6KTXM0M3tkiT4jVxKSi6PmVJ591J+0u10LUrgxB7dLRbiJqO5s2QPMg==",
      "dev": true,
      "dependencies": {
-
        "playwright-core": "1.42.0"
+
        "playwright-core": "1.42.1"
      },
      "bin": {
        "playwright": "cli.js"
@@ -3902,9 +3904,9 @@
      }
    },
    "node_modules/playwright-core": {
-
      "version": "1.42.0",
-
      "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.42.0.tgz",
-
      "integrity": "sha512-0HD9y8qEVlcbsAjdpBaFjmaTHf+1FeIddy8VJLeiqwhcNqGCBe4Wp2e8knpqiYbzxtxarxiXyNDw2cG8sCaNMQ==",
+
      "version": "1.42.1",
+
      "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.42.1.tgz",
+
      "integrity": "sha512-mxz6zclokgrke9p1vtdy/COWBH+eOZgYUVVU34C73M+4j4HLlQJHtfcqiqqxpP0o8HhMkflvfbquLX5dg6wlfA==",
      "dev": true,
      "bin": {
        "playwright-core": "cli.js"
@@ -3914,9 +3916,9 @@
      }
    },
    "node_modules/postcss": {
-
      "version": "8.4.35",
-
      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz",
-
      "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
+
      "version": "8.4.38",
+
      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
+
      "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
      "dev": true,
      "funding": [
        {
@@ -3935,7 +3937,7 @@
      "dependencies": {
        "nanoid": "^3.3.7",
        "picocolors": "^1.0.0",
-
        "source-map-js": "^1.0.2"
+
        "source-map-js": "^1.2.0"
      },
      "engines": {
        "node": "^10 || ^12 || >=14"
@@ -4013,9 +4015,9 @@
      }
    },
    "node_modules/postcss-selector-parser": {
-
      "version": "6.0.15",
-
      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz",
-
      "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==",
+
      "version": "6.0.16",
+
      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz",
+
      "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==",
      "dev": true,
      "dependencies": {
        "cssesc": "^3.0.0",
@@ -4170,9 +4172,9 @@
      }
    },
    "node_modules/rollup": {
-
      "version": "4.12.0",
-
      "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz",
-
      "integrity": "sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==",
+
      "version": "4.13.0",
+
      "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz",
+
      "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==",
      "dev": true,
      "dependencies": {
        "@types/estree": "1.0.5"
@@ -4185,19 +4187,19 @@
        "npm": ">=8.0.0"
      },
      "optionalDependencies": {
-
        "@rollup/rollup-android-arm-eabi": "4.12.0",
-
        "@rollup/rollup-android-arm64": "4.12.0",
-
        "@rollup/rollup-darwin-arm64": "4.12.0",
-
        "@rollup/rollup-darwin-x64": "4.12.0",
-
        "@rollup/rollup-linux-arm-gnueabihf": "4.12.0",
-
        "@rollup/rollup-linux-arm64-gnu": "4.12.0",
-
        "@rollup/rollup-linux-arm64-musl": "4.12.0",
-
        "@rollup/rollup-linux-riscv64-gnu": "4.12.0",
-
        "@rollup/rollup-linux-x64-gnu": "4.12.0",
-
        "@rollup/rollup-linux-x64-musl": "4.12.0",
-
        "@rollup/rollup-win32-arm64-msvc": "4.12.0",
-
        "@rollup/rollup-win32-ia32-msvc": "4.12.0",
-
        "@rollup/rollup-win32-x64-msvc": "4.12.0",
+
        "@rollup/rollup-android-arm-eabi": "4.13.0",
+
        "@rollup/rollup-android-arm64": "4.13.0",
+
        "@rollup/rollup-darwin-arm64": "4.13.0",
+
        "@rollup/rollup-darwin-x64": "4.13.0",
+
        "@rollup/rollup-linux-arm-gnueabihf": "4.13.0",
+
        "@rollup/rollup-linux-arm64-gnu": "4.13.0",
+
        "@rollup/rollup-linux-arm64-musl": "4.13.0",
+
        "@rollup/rollup-linux-riscv64-gnu": "4.13.0",
+
        "@rollup/rollup-linux-x64-gnu": "4.13.0",
+
        "@rollup/rollup-linux-x64-musl": "4.13.0",
+
        "@rollup/rollup-win32-arm64-msvc": "4.13.0",
+
        "@rollup/rollup-win32-ia32-msvc": "4.13.0",
+
        "@rollup/rollup-win32-x64-msvc": "4.13.0",
        "fsevents": "~2.3.2"
      }
    },
@@ -4389,9 +4391,9 @@
      }
    },
    "node_modules/source-map-js": {
-
      "version": "1.0.2",
-
      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
-
      "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+
      "version": "1.2.0",
+
      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+
      "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
      "engines": {
        "node": ">=0.10.0"
      }
@@ -4534,9 +4536,9 @@
      }
    },
    "node_modules/svelte-check": {
-
      "version": "3.6.6",
-
      "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.6.6.tgz",
-
      "integrity": "sha512-b9q9rOHOMYF3U8XllK7LmXTq1LeWQ98waGfEJzrFutViadkNl1tgdEtxIQ8yuPx+VQ4l7YrknYol+0lfZocaZw==",
+
      "version": "3.6.8",
+
      "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.6.8.tgz",
+
      "integrity": "sha512-rhXU7YCDtL+lq2gCqfJDXKTxJfSsCgcd08d7VWBFxTw6IWIbMWSaASbAOD3N0VV9TYSSLUqEBiratLd8WxAJJA==",
      "dev": true,
      "dependencies": {
        "@jridgewell/trace-mapping": "^0.3.17",
@@ -4670,9 +4672,9 @@
      "dev": true
    },
    "node_modules/tinypool": {
-
      "version": "0.8.2",
-
      "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.2.tgz",
-
      "integrity": "sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==",
+
      "version": "0.8.3",
+
      "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.3.tgz",
+
      "integrity": "sha512-Ud7uepAklqRH1bvwy22ynrliC7Dljz7Tm8M/0RBUW+YRa4YHhZ6e4PpgE+fu1zr/WqB1kbeuVrdfeuyIBpy4tw==",
      "dev": true,
      "engines": {
        "node": ">=14.0.0"
@@ -4709,9 +4711,9 @@
      }
    },
    "node_modules/ts-api-utils": {
-
      "version": "1.2.1",
-
      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz",
-
      "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==",
+
      "version": "1.3.0",
+
      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
+
      "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
      "dev": true,
      "engines": {
        "node": ">=16"
@@ -4774,9 +4776,9 @@
      }
    },
    "node_modules/typescript": {
-
      "version": "5.3.3",
-
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
-
      "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
+
      "version": "5.4.3",
+
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz",
+
      "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==",
      "dev": true,
      "bin": {
        "tsc": "bin/tsc",
@@ -4787,14 +4789,14 @@
      }
    },
    "node_modules/uc.micro": {
-
      "version": "2.0.0",
-
      "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.0.0.tgz",
-
      "integrity": "sha512-DffL94LsNOccVn4hyfRe5rdKa273swqeA5DJpMOeFmEn1wCDc7nAbbB0gXlgBCL7TNzeTv6G7XVWzan7iJtfig=="
+
      "version": "2.1.0",
+
      "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
+
      "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="
    },
    "node_modules/ufo": {
-
      "version": "1.4.0",
-
      "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.4.0.tgz",
-
      "integrity": "sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==",
+
      "version": "1.5.3",
+
      "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz",
+
      "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==",
      "dev": true
    },
    "node_modules/undici-types": {
@@ -4930,14 +4932,14 @@
      }
    },
    "node_modules/vite": {
-
      "version": "5.1.4",
-
      "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.4.tgz",
-
      "integrity": "sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==",
+
      "version": "5.2.6",
+
      "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.6.tgz",
+
      "integrity": "sha512-FPtnxFlSIKYjZ2eosBQamz4CbyrTizbZ3hnGJlh/wMtCrlp1Hah6AzBLjGI5I2urTfNnpovpHdrL6YRuBOPnCA==",
      "dev": true,
      "dependencies": {
-
        "esbuild": "^0.19.3",
-
        "postcss": "^8.4.35",
-
        "rollup": "^4.2.0"
+
        "esbuild": "^0.20.1",
+
        "postcss": "^8.4.36",
+
        "rollup": "^4.13.0"
      },
      "bin": {
        "vite": "bin/vite.js"
@@ -4985,9 +4987,9 @@
      }
    },
    "node_modules/vite-node": {
-
      "version": "1.3.1",
-
      "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.3.1.tgz",
-
      "integrity": "sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng==",
+
      "version": "1.4.0",
+
      "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.4.0.tgz",
+
      "integrity": "sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==",
      "dev": true,
      "dependencies": {
        "cac": "^6.7.14",
@@ -5035,16 +5037,16 @@
      }
    },
    "node_modules/vitest": {
-
      "version": "1.3.1",
-
      "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.3.1.tgz",
-
      "integrity": "sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==",
+
      "version": "1.4.0",
+
      "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.4.0.tgz",
+
      "integrity": "sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==",
      "dev": true,
      "dependencies": {
-
        "@vitest/expect": "1.3.1",
-
        "@vitest/runner": "1.3.1",
-
        "@vitest/snapshot": "1.3.1",
-
        "@vitest/spy": "1.3.1",
-
        "@vitest/utils": "1.3.1",
+
        "@vitest/expect": "1.4.0",
+
        "@vitest/runner": "1.4.0",
+
        "@vitest/snapshot": "1.4.0",
+
        "@vitest/spy": "1.4.0",
+
        "@vitest/utils": "1.4.0",
        "acorn-walk": "^8.3.2",
        "chai": "^4.3.10",
        "debug": "^4.3.4",
@@ -5058,7 +5060,7 @@
        "tinybench": "^2.5.1",
        "tinypool": "^0.8.2",
        "vite": "^5.0.0",
-
        "vite-node": "1.3.1",
+
        "vite-node": "1.4.0",
        "why-is-node-running": "^2.2.2"
      },
      "bin": {
@@ -5073,8 +5075,8 @@
      "peerDependencies": {
        "@edge-runtime/vm": "*",
        "@types/node": "^18.0.0 || >=20.0.0",
-
        "@vitest/browser": "1.3.1",
-
        "@vitest/ui": "1.3.1",
+
        "@vitest/browser": "1.4.0",
+
        "@vitest/ui": "1.4.0",
        "happy-dom": "*",
        "jsdom": "*"
      },
modified package.json
@@ -16,49 +16,49 @@
    "node": ">=18.17.1"
  },
  "devDependencies": {
-
    "@playwright/test": "^1.42.0",
+
    "@playwright/test": "^1.42.1",
    "@sinonjs/fake-timers": "^11.2.2",
    "@sveltejs/vite-plugin-svelte": "^3.0.2",
-
    "@tsconfig/svelte": "^5.0.2",
+
    "@tsconfig/svelte": "^5.0.3",
    "@types/dompurify": "^3.0.5",
    "@types/katex": "^0.16.7",
-
    "@types/lodash": "^4.14.202",
+
    "@types/lodash": "^4.17.0",
    "@types/md5": "^2.3.5",
-
    "@types/node": "^20.11.24",
+
    "@types/node": "^20.11.30",
    "@types/sinon": "^17.0.3",
    "@types/sinonjs__fake-timers": "^8.1.5",
    "@types/wait-on": "^5.3.4",
-
    "@typescript-eslint/eslint-plugin": "^7.1.0",
+
    "@typescript-eslint/eslint-plugin": "^7.4.0",
    "chalk": "^5.3.0",
    "eslint": "^8.57.0",
    "eslint-config-prettier": "^9.1.0",
    "eslint-plugin-no-only-tests": "^3.1.0",
    "eslint-plugin-svelte": "^2.35.1",
    "execa": "^8.0.1",
-
    "get-port": "^7.0.0",
-
    "happy-dom": "^13.6.2",
+
    "get-port": "^7.1.0",
+
    "happy-dom": "^14.3.8",
    "prettier": "^3.2.5",
    "prettier-plugin-svelte": "^3.2.2",
-
    "svelte-check": "^3.6.6",
-
    "typescript": "^5.3.3",
-
    "vite": "^5.1.4",
-
    "vitest": "^1.3.1",
+
    "svelte-check": "^3.6.8",
+
    "typescript": "^5.4.3",
+
    "vite": "^5.2.6",
+
    "vitest": "^1.4.0",
    "wait-on": "^7.2.0"
  },
  "dependencies": {
    "@efstajas/svelte-stored-writable": "^0.2.0",
    "@radicle/gray-matter": "4.1.0",
-
    "@wooorm/starry-night": "^3.2.0",
-
    "async-mutex": "^0.4.1",
+
    "@wooorm/starry-night": "^3.3.0",
+
    "async-mutex": "^0.5.0",
    "baconjs": "^3.0.17",
    "bs58": "^5.0.0",
    "buffer": "^6.0.3",
-
    "dompurify": "^3.0.9",
+
    "dompurify": "^3.0.11",
    "hast-util-to-dom": "^4.0.0",
    "hast-util-to-html": "^9.0.0",
    "lodash": "^4.17.21",
    "lru-cache": "^10.2.0",
-
    "marked": "^12.0.0",
+
    "marked": "^12.0.1",
    "marked-katex-extension": "^5.0.1",
    "marked-linkify-it": "^3.1.9",
    "md5": "^2.3.0",