Radish alpha
r
Radicle web interface
Radicle
Git (anonymous pull)
Log in to clone via SSH
Update dependencies
Sebastian Martinez committed 2 years ago
commit 3bdf21ec06e7b0de62e7f6ef1204facc66e44373
parent e658e67c43cd7d1915202e8a6b1d1068c5adc779
12 files changed +336 -311
modified .eslintrc.cjs
@@ -80,6 +80,10 @@ module.exports = {
        selector: "typeLike",
        format: ["PascalCase"],
      },
+
      // Disable @typescript-eslint/naming-convention format for imports
+
      // https://github.com/typescript-eslint/typescript-eslint/pull/7269#issuecomment-1777628591
+
      // https://github.com/typescript-eslint/typescript-eslint/issues/7892
+
      { selector: "import", format: null },
      {
        selector: ["objectLiteralProperty"],
        modifiers: ["requiresQuotes"],
modified .github/workflows/check-build.yml
@@ -9,7 +9,7 @@ jobs:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
-
          node-version: "18.17.1"
+
          node-version: "20.9.0"
      - name: Install dependencies
        run: npm ci
      - name: Install Playwright Browsers
modified .github/workflows/check-e2e.yml
@@ -14,7 +14,7 @@ jobs:

      - uses: actions/setup-node@v3
        with:
-
          node-version: "18.17.1"
+
          node-version: "20.9.0"

      - name: Install dependencies
        run: npm ci
modified .github/workflows/check-httpd-api-unit-test.yml
@@ -8,7 +8,7 @@ jobs:
      - name: Setup Node
        uses: actions/setup-node@v3
        with:
-
          node-version: "18.17.1"
+
          node-version: "20.9.0"
      - name: Checkout
        uses: actions/checkout@v3
      - run: npm ci
modified .github/workflows/check-unit-test.yml
@@ -8,7 +8,7 @@ jobs:
      - name: Setup Node
        uses: actions/setup-node@v3
        with:
-
          node-version: "18.17.1"
+
          node-version: "20.9.0"
      - name: Checkout
        uses: actions/checkout@v3
      - run: npm ci
modified .github/workflows/check-visual.yml
@@ -25,7 +25,7 @@ jobs:

      - uses: actions/setup-node@v3
        with:
-
          node-version: "18.17.1"
+
          node-version: "20.9.0"

      - name: Install dependencies
        run: npm ci
modified .github/workflows/check.yml
@@ -8,7 +8,7 @@ jobs:
      - name: Setup Node
        uses: actions/setup-node@v3
        with:
-
          node-version: "18.17.1"
+
          node-version: "20.9.0"
      - uses: actions/checkout@v3
      - run: npm ci
      - run: npm run check
modified .nvmrc
@@ -1 +1 @@
-
18.17.1
+
20.9.0

\ No newline at end of file
modified .tool-versions
@@ -1 +1 @@
-
nodejs 18.17.1
+
nodejs 20.9.0
modified httpd-client/lib/fetcher.ts
@@ -149,9 +149,7 @@ export class Fetcher {

    const pathSegment = path === undefined ? "" : `/${path}`;

-
    let url = `${this.#baseUrl.scheme}://${this.#baseUrl.hostname}:${
-
      this.#baseUrl.port
-
    }/api/v1${pathSegment}`;
+
    let url = `${this.#baseUrl.scheme}://${this.#baseUrl.hostname}:${this.#baseUrl.port}/api/v1${pathSegment}`;

    if (query) {
      const searchparams = new URLSearchParams(query as Record<string, string>);
modified package-lock.json
@@ -9,7 +9,7 @@
      "hasInstallScript": true,
      "dependencies": {
        "@radicle/gray-matter": "4.1.0",
-
        "@wooorm/starry-night": "^3.0.0",
+
        "@wooorm/starry-night": "^3.1.0",
        "async-mutex": "^0.4.0",
        "baconjs": "^3.0.17",
        "bs58": "^5.0.0",
@@ -18,46 +18,46 @@
        "hast-util-to-dom": "^4.0.0",
        "hast-util-to-html": "^9.0.0",
        "lodash": "^4.17.21",
-
        "marked": "^9.1.0",
-
        "marked-katex-extension": "^4.0.1",
-
        "marked-linkify-it": "^3.1.4",
+
        "marked": "^10.0.0",
+
        "marked-katex-extension": "^4.0.4",
+
        "marked-linkify-it": "^3.1.6",
        "md5": "^2.3.0",
        "plausible-tracker": "^0.3.8",
-
        "sinon": "^16.1.0",
-
        "svelte": "^4.2.1",
+
        "sinon": "^17.0.1",
+
        "svelte": "^4.2.3",
        "twemoji": "^14.0.2",
        "zod": "^3.22.4"
      },
      "devDependencies": {
-
        "@playwright/test": "^1.38.1",
+
        "@playwright/test": "^1.39.0",
        "@sinonjs/fake-timers": "11.0.0",
-
        "@sveltejs/vite-plugin-svelte": "^2.4.6",
+
        "@sveltejs/vite-plugin-svelte": "^2.5.2",
        "@tsconfig/svelte": "^5.0.2",
-
        "@types/dompurify": "^3.0.3",
-
        "@types/katex": "^0.16.3",
-
        "@types/lodash": "^4.14.199",
-
        "@types/md5": "^2.3.3",
-
        "@types/node": "^18.17.1",
-
        "@types/sinon": "^10.0.18",
-
        "@types/sinonjs__fake-timers": "^8.1.2",
-
        "@types/wait-on": "^5.3.2",
-
        "@typescript-eslint/eslint-plugin": "^6.7.4",
+
        "@types/dompurify": "^3.0.5",
+
        "@types/katex": "^0.16.6",
+
        "@types/lodash": "^4.14.201",
+
        "@types/md5": "^2.3.5",
+
        "@types/node": "^20.9.0",
+
        "@types/sinon": "^17.0.1",
+
        "@types/sinonjs__fake-timers": "^8.1.5",
+
        "@types/wait-on": "^5.3.4",
+
        "@typescript-eslint/eslint-plugin": "^6.11.0",
        "chalk": "^5.3.0",
-
        "eslint": "^8.50.0",
+
        "eslint": "^8.53.0",
        "eslint-config-prettier": "^9.0.0",
        "eslint-plugin-no-only-tests": "^3.1.0",
-
        "eslint-plugin-svelte": "^2.34.0",
+
        "eslint-plugin-svelte": "^2.35.0",
        "execa": "^8.0.1",
        "exit-hook": "^4.0.0",
        "get-port": "^7.0.0",
-
        "happy-dom": "^12.9.0",
-
        "prettier": "^3.0.3",
-
        "prettier-plugin-svelte": "^3.0.3",
-
        "svelte-check": "^3.5.2",
+
        "happy-dom": "^12.10.3",
+
        "prettier": "^3.1.0",
+
        "prettier-plugin-svelte": "^3.1.0",
+
        "svelte-check": "^3.6.0",
        "typescript": "^5.2.2",
-
        "vite": "^4.4.11",
+
        "vite": "^4.5.0",
        "vitest": "^0.34.6",
-
        "wait-on": "^7.0.1"
+
        "wait-on": "^7.1.0"
      },
      "engines": {
        "node": ">=18.17.1"
@@ -452,18 +452,18 @@
      }
    },
    "node_modules/@eslint-community/regexpp": {
-
      "version": "4.9.1",
-
      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz",
-
      "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==",
+
      "version": "4.10.0",
+
      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
+
      "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
      "dev": true,
      "engines": {
        "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
      }
    },
    "node_modules/@eslint/eslintrc": {
-
      "version": "2.1.2",
-
      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz",
-
      "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==",
+
      "version": "2.1.3",
+
      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz",
+
      "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==",
      "dev": true,
      "dependencies": {
        "ajv": "^6.12.4",
@@ -484,9 +484,9 @@
      }
    },
    "node_modules/@eslint/js": {
-
      "version": "8.50.0",
-
      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz",
-
      "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==",
+
      "version": "8.53.0",
+
      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz",
+
      "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==",
      "dev": true,
      "engines": {
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -508,12 +508,12 @@
      }
    },
    "node_modules/@humanwhocodes/config-array": {
-
      "version": "0.11.11",
-
      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz",
-
      "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==",
+
      "version": "0.11.13",
+
      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
+
      "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==",
      "dev": true,
      "dependencies": {
-
        "@humanwhocodes/object-schema": "^1.2.1",
+
        "@humanwhocodes/object-schema": "^2.0.1",
        "debug": "^4.1.1",
        "minimatch": "^3.0.5"
      },
@@ -535,9 +535,9 @@
      }
    },
    "node_modules/@humanwhocodes/object-schema": {
-
      "version": "1.2.1",
-
      "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
-
      "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+
      "version": "2.0.1",
+
      "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz",
+
      "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==",
      "dev": true
    },
    "node_modules/@jest/schemas": {
@@ -587,9 +587,9 @@
      "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
    },
    "node_modules/@jridgewell/trace-mapping": {
-
      "version": "0.3.19",
-
      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz",
-
      "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==",
+
      "version": "0.3.20",
+
      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
+
      "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
      "dependencies": {
        "@jridgewell/resolve-uri": "^3.1.0",
        "@jridgewell/sourcemap-codec": "^1.4.14"
@@ -631,12 +631,12 @@
      }
    },
    "node_modules/@playwright/test": {
-
      "version": "1.38.1",
-
      "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.38.1.tgz",
-
      "integrity": "sha512-NqRp8XMwj3AK+zKLbZShl0r/9wKgzqI/527bkptKXomtuo+dOjU9NdMASQ8DNC9z9zLOMbG53T4eihYr3XR+BQ==",
+
      "version": "1.39.0",
+
      "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.39.0.tgz",
+
      "integrity": "sha512-3u1iFqgzl7zr004bGPYiN/5EZpRUSFddQBra8Rqll5N0/vfpqlP9I9EXqAoGacuAbX6c9Ulg/Cjqglp5VkK6UQ==",
      "dev": true,
      "dependencies": {
-
        "playwright": "1.38.1"
+
        "playwright": "1.39.0"
      },
      "bin": {
        "playwright": "cli.js"
@@ -727,9 +727,9 @@
      "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ=="
    },
    "node_modules/@sveltejs/vite-plugin-svelte": {
-
      "version": "2.4.6",
-
      "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.4.6.tgz",
-
      "integrity": "sha512-zO79p0+DZnXPnF0ltIigWDx/ux7Ni+HRaFOw720Qeivc1azFUrJxTl0OryXVibYNx1hCboGia1NRV3x8RNv4cA==",
+
      "version": "2.5.2",
+
      "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.5.2.tgz",
+
      "integrity": "sha512-Dfy0Rbl+IctOVfJvWGxrX/3m6vxPLH8o0x+8FA5QEyMUQMo4kGOVIojjryU7YomBAexOTAuYf1RT7809yDziaA==",
      "dev": true,
      "dependencies": {
        "@sveltejs/vite-plugin-svelte-inspector": "^1.0.4",
@@ -744,7 +744,7 @@
        "node": "^14.18.0 || >= 16"
      },
      "peerDependencies": {
-
        "svelte": "^3.54.0 || ^4.0.0",
+
        "svelte": "^3.54.0 || ^4.0.0 || ^5.0.0-next.0",
        "vite": "^4.0.0"
      }
    },
@@ -772,142 +772,145 @@
      "dev": true
    },
    "node_modules/@types/chai": {
-
      "version": "4.3.6",
-
      "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.6.tgz",
-
      "integrity": "sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==",
+
      "version": "4.3.10",
+
      "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.10.tgz",
+
      "integrity": "sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==",
      "dev": true
    },
    "node_modules/@types/chai-subset": {
-
      "version": "1.3.3",
-
      "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz",
-
      "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==",
+
      "version": "1.3.5",
+
      "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.5.tgz",
+
      "integrity": "sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==",
      "dev": true,
      "dependencies": {
        "@types/chai": "*"
      }
    },
    "node_modules/@types/dompurify": {
-
      "version": "3.0.3",
-
      "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.3.tgz",
-
      "integrity": "sha512-odiGr/9/qMqjcBOe5UhcNLOFHSYmKFOyr+bJ/Xu3Qp4k1pNPAlNLUVNNLcLfjQI7+W7ObX58EdD3H+3p3voOvA==",
+
      "version": "3.0.5",
+
      "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.5.tgz",
+
      "integrity": "sha512-1Wg0g3BtQF7sSb27fJQAKck1HECM6zV1EB66j8JH9i3LCjYabJa0FSdiSgsD5K/RbrsR0SiraKacLB+T8ZVYAg==",
      "dev": true,
      "dependencies": {
        "@types/trusted-types": "*"
      }
    },
    "node_modules/@types/estree": {
-
      "version": "1.0.2",
-
      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.2.tgz",
-
      "integrity": "sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA=="
+
      "version": "1.0.5",
+
      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
+
      "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
    },
    "node_modules/@types/hast": {
-
      "version": "3.0.1",
-
      "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.1.tgz",
-
      "integrity": "sha512-hs/iBJx2aydugBQx5ETV3ZgeSS0oIreQrFJ4bjBl0XvM4wAmDjFEALY7p0rTSLt2eL+ibjRAAs9dTPiCLtmbqQ==",
+
      "version": "3.0.3",
+
      "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz",
+
      "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==",
      "dependencies": {
        "@types/unist": "*"
      }
    },
    "node_modules/@types/json-schema": {
-
      "version": "7.0.13",
-
      "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz",
-
      "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==",
+
      "version": "7.0.15",
+
      "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+
      "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
      "dev": true
    },
    "node_modules/@types/katex": {
-
      "version": "0.16.3",
-
      "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.3.tgz",
-
      "integrity": "sha512-CeVMX9EhVUW8MWnei05eIRks4D5Wscw/W9Byz1s3PA+yJvcdvq9SaDjiUKvRvEgjpdTyJMjQA43ae4KTwsvOPg=="
+
      "version": "0.16.6",
+
      "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.6.tgz",
+
      "integrity": "sha512-rZYO1HInM99rAFYNwGqbYPxHZHxu2IwZYKj4bJ4oh6edVrm1UId8mmbHIZLBtG253qU6y3piag0XYe/joNnwzQ=="
    },
    "node_modules/@types/linkify-it": {
-
      "version": "3.0.3",
-
      "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.3.tgz",
-
      "integrity": "sha512-pTjcqY9E4nOI55Wgpz7eiI8+LzdYnw3qxXCfHyBDdPbYvbyLgWLJGh8EdPvqawwMK1Uo1794AUkkR38Fr0g+2g=="
+
      "version": "3.0.5",
+
      "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.5.tgz",
+
      "integrity": "sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw=="
    },
    "node_modules/@types/lodash": {
-
      "version": "4.14.199",
-
      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz",
-
      "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==",
+
      "version": "4.14.201",
+
      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.201.tgz",
+
      "integrity": "sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ==",
      "dev": true
    },
    "node_modules/@types/md5": {
-
      "version": "2.3.3",
-
      "resolved": "https://registry.npmjs.org/@types/md5/-/md5-2.3.3.tgz",
-
      "integrity": "sha512-4K40FjTW0tiIx9NfV+/DHJ56ih3fcdkDqBYz5CffKwJVWYho1FxzjkddGcgEEIs+fP2DqmQ3lujC5c4bUOESTQ==",
+
      "version": "2.3.5",
+
      "resolved": "https://registry.npmjs.org/@types/md5/-/md5-2.3.5.tgz",
+
      "integrity": "sha512-/i42wjYNgE6wf0j2bcTX6kuowmdL/6PE4IVitMpm2eYKBUuYCprdcWVK+xEF0gcV6ufMCRhtxmReGfc6hIK7Jw==",
      "dev": true
    },
    "node_modules/@types/mdast": {
-
      "version": "4.0.1",
-
      "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.1.tgz",
-
      "integrity": "sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==",
+
      "version": "4.0.3",
+
      "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
+
      "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
      "dependencies": {
        "@types/unist": "*"
      }
    },
    "node_modules/@types/node": {
-
      "version": "18.18.3",
-
      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.3.tgz",
-
      "integrity": "sha512-0OVfGupTl3NBFr8+iXpfZ8NR7jfFO+P1Q+IO/q0wbo02wYkP5gy36phojeYWpLQ6WAMjl+VfmqUk2YbUfp0irA==",
-
      "dev": true
+
      "version": "20.9.0",
+
      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz",
+
      "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==",
+
      "dev": true,
+
      "dependencies": {
+
        "undici-types": "~5.26.4"
+
      }
    },
    "node_modules/@types/pug": {
-
      "version": "2.0.7",
-
      "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.7.tgz",
-
      "integrity": "sha512-I469DU0UXNC1aHepwirWhu9YKg5fkxohZD95Ey/5A7lovC+Siu+MCLffva87lnfThaOrw9Vb1DUN5t55oULAAw==",
+
      "version": "2.0.9",
+
      "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.9.tgz",
+
      "integrity": "sha512-Yg4LkgFYvn1faISbDNWmcAC1XoDT8IoMUFspp5mnagKk+UvD2N0IWt5A7GRdMubsNWqgCLmrkf8rXkzNqb4szA==",
      "dev": true
    },
    "node_modules/@types/semver": {
-
      "version": "7.5.3",
-
      "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz",
-
      "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==",
+
      "version": "7.5.5",
+
      "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz",
+
      "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==",
      "dev": true
    },
    "node_modules/@types/sinon": {
-
      "version": "10.0.18",
-
      "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.18.tgz",
-
      "integrity": "sha512-OpQC9ug8BcnNxue2WF5aTruMaDRFn6NyfaE4DmAKOlQMn54b7CnCvDFV3wj5fk/HbSSTYmOYs2bTb5ShANjyQg==",
+
      "version": "17.0.1",
+
      "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.1.tgz",
+
      "integrity": "sha512-Q2Go6TJetYn5Za1+RJA1Aik61Oa2FS8SuJ0juIqUuJ5dZR4wvhKfmSdIqWtQ3P6gljKWjW0/R7FZkA4oXVL6OA==",
      "dev": true,
      "dependencies": {
        "@types/sinonjs__fake-timers": "*"
      }
    },
    "node_modules/@types/sinonjs__fake-timers": {
-
      "version": "8.1.3",
-
      "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.3.tgz",
-
      "integrity": "sha512-4g+2YyWe0Ve+LBh+WUm1697PD0Kdi6coG1eU0YjQbwx61AZ8XbEpL1zIT6WjuUKrCMCROpEaYQPDjBnDouBVAQ==",
+
      "version": "8.1.5",
+
      "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz",
+
      "integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==",
      "dev": true
    },
    "node_modules/@types/trusted-types": {
-
      "version": "2.0.4",
-
      "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.4.tgz",
-
      "integrity": "sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==",
+
      "version": "2.0.6",
+
      "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.6.tgz",
+
      "integrity": "sha512-HYtNooPvUY9WAVRBr4u+4Qa9fYD1ze2IUlAD3HoA6oehn1taGwBx3Oa52U4mTslTS+GAExKpaFu39Y5xUEwfjg==",
      "dev": true
    },
    "node_modules/@types/unist": {
-
      "version": "3.0.0",
-
      "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
-
      "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w=="
+
      "version": "3.0.2",
+
      "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz",
+
      "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ=="
    },
    "node_modules/@types/wait-on": {
-
      "version": "5.3.2",
-
      "resolved": "https://registry.npmjs.org/@types/wait-on/-/wait-on-5.3.2.tgz",
-
      "integrity": "sha512-7NBSJs/YvbHlaYCJ7wIUF6t7ct3OMt525NmZ+US73pPlkmpxd9ADwfNxrRAmg8nWlcTMqR0PkhW7aYk3FLlvrQ==",
+
      "version": "5.3.4",
+
      "resolved": "https://registry.npmjs.org/@types/wait-on/-/wait-on-5.3.4.tgz",
+
      "integrity": "sha512-EBsPjFMrFlMbbUFf9D1Fp+PAB2TwmUn7a3YtHyD9RLuTIk1jDd8SxXVAoez2Ciy+8Jsceo2MYEYZzJ/DvorOKw==",
      "dev": true,
      "dependencies": {
        "@types/node": "*"
      }
    },
    "node_modules/@typescript-eslint/eslint-plugin": {
-
      "version": "6.7.4",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.4.tgz",
-
      "integrity": "sha512-DAbgDXwtX+pDkAHwiGhqP3zWUGpW49B7eqmgpPtg+BKJXwdct79ut9+ifqOFPJGClGKSHXn2PTBatCnldJRUoA==",
+
      "version": "6.11.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.11.0.tgz",
+
      "integrity": "sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==",
      "dev": true,
      "dependencies": {
        "@eslint-community/regexpp": "^4.5.1",
-
        "@typescript-eslint/scope-manager": "6.7.4",
-
        "@typescript-eslint/type-utils": "6.7.4",
-
        "@typescript-eslint/utils": "6.7.4",
-
        "@typescript-eslint/visitor-keys": "6.7.4",
+
        "@typescript-eslint/scope-manager": "6.11.0",
+
        "@typescript-eslint/type-utils": "6.11.0",
+
        "@typescript-eslint/utils": "6.11.0",
+
        "@typescript-eslint/visitor-keys": "6.11.0",
        "debug": "^4.3.4",
        "graphemer": "^1.4.0",
        "ignore": "^5.2.4",
@@ -933,16 +936,16 @@
      }
    },
    "node_modules/@typescript-eslint/parser": {
-
      "version": "6.7.4",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.4.tgz",
-
      "integrity": "sha512-I5zVZFY+cw4IMZUeNCU7Sh2PO5O57F7Lr0uyhgCJmhN/BuTlnc55KxPonR4+EM3GBdfiCyGZye6DgMjtubQkmA==",
+
      "version": "6.11.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.11.0.tgz",
+
      "integrity": "sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==",
      "dev": true,
      "peer": true,
      "dependencies": {
-
        "@typescript-eslint/scope-manager": "6.7.4",
-
        "@typescript-eslint/types": "6.7.4",
-
        "@typescript-eslint/typescript-estree": "6.7.4",
-
        "@typescript-eslint/visitor-keys": "6.7.4",
+
        "@typescript-eslint/scope-manager": "6.11.0",
+
        "@typescript-eslint/types": "6.11.0",
+
        "@typescript-eslint/typescript-estree": "6.11.0",
+
        "@typescript-eslint/visitor-keys": "6.11.0",
        "debug": "^4.3.4"
      },
      "engines": {
@@ -962,13 +965,13 @@
      }
    },
    "node_modules/@typescript-eslint/scope-manager": {
-
      "version": "6.7.4",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.4.tgz",
-
      "integrity": "sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A==",
+
      "version": "6.11.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz",
+
      "integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "6.7.4",
-
        "@typescript-eslint/visitor-keys": "6.7.4"
+
        "@typescript-eslint/types": "6.11.0",
+
        "@typescript-eslint/visitor-keys": "6.11.0"
      },
      "engines": {
        "node": "^16.0.0 || >=18.0.0"
@@ -979,13 +982,13 @@
      }
    },
    "node_modules/@typescript-eslint/type-utils": {
-
      "version": "6.7.4",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.4.tgz",
-
      "integrity": "sha512-n+g3zi1QzpcAdHFP9KQF+rEFxMb2KxtnJGID3teA/nxKHOVi3ylKovaqEzGBbVY2pBttU6z85gp0D00ufLzViQ==",
+
      "version": "6.11.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz",
+
      "integrity": "sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/typescript-estree": "6.7.4",
-
        "@typescript-eslint/utils": "6.7.4",
+
        "@typescript-eslint/typescript-estree": "6.11.0",
+
        "@typescript-eslint/utils": "6.11.0",
        "debug": "^4.3.4",
        "ts-api-utils": "^1.0.1"
      },
@@ -1006,9 +1009,9 @@
      }
    },
    "node_modules/@typescript-eslint/types": {
-
      "version": "6.7.4",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.4.tgz",
-
      "integrity": "sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA==",
+
      "version": "6.11.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.11.0.tgz",
+
      "integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==",
      "dev": true,
      "engines": {
        "node": "^16.0.0 || >=18.0.0"
@@ -1019,13 +1022,13 @@
      }
    },
    "node_modules/@typescript-eslint/typescript-estree": {
-
      "version": "6.7.4",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.4.tgz",
-
      "integrity": "sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ==",
+
      "version": "6.11.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz",
+
      "integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "6.7.4",
-
        "@typescript-eslint/visitor-keys": "6.7.4",
+
        "@typescript-eslint/types": "6.11.0",
+
        "@typescript-eslint/visitor-keys": "6.11.0",
        "debug": "^4.3.4",
        "globby": "^11.1.0",
        "is-glob": "^4.0.3",
@@ -1046,17 +1049,17 @@
      }
    },
    "node_modules/@typescript-eslint/utils": {
-
      "version": "6.7.4",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.4.tgz",
-
      "integrity": "sha512-PRQAs+HUn85Qdk+khAxsVV+oULy3VkbH3hQ8hxLRJXWBEd7iI+GbQxH5SEUSH7kbEoTp6oT1bOwyga24ELALTA==",
+
      "version": "6.11.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.11.0.tgz",
+
      "integrity": "sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==",
      "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": "6.7.4",
-
        "@typescript-eslint/types": "6.7.4",
-
        "@typescript-eslint/typescript-estree": "6.7.4",
+
        "@typescript-eslint/scope-manager": "6.11.0",
+
        "@typescript-eslint/types": "6.11.0",
+
        "@typescript-eslint/typescript-estree": "6.11.0",
        "semver": "^7.5.4"
      },
      "engines": {
@@ -1071,12 +1074,12 @@
      }
    },
    "node_modules/@typescript-eslint/visitor-keys": {
-
      "version": "6.7.4",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.4.tgz",
-
      "integrity": "sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA==",
+
      "version": "6.11.0",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz",
+
      "integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "6.7.4",
+
        "@typescript-eslint/types": "6.11.0",
        "eslint-visitor-keys": "^3.4.1"
      },
      "engines": {
@@ -1188,12 +1191,12 @@
      }
    },
    "node_modules/@wooorm/starry-night": {
-
      "version": "3.0.0",
-
      "resolved": "https://registry.npmjs.org/@wooorm/starry-night/-/starry-night-3.0.0.tgz",
-
      "integrity": "sha512-9bS69LSlh7btL0zP4nkgt2m+yfVCimBmCHfzhDuqC/gYK592n205YKNED/Ax9HwaqtjmZN0LzpAKJjppGFvzKw==",
+
      "version": "3.1.0",
+
      "resolved": "https://registry.npmjs.org/@wooorm/starry-night/-/starry-night-3.1.0.tgz",
+
      "integrity": "sha512-EHhyqD62/BZzceh0r38gqdna/9ljRTfbzg/qYdiaEkK8FFNUi2sCb2nBs7AUqHGZKxu+cFe8QFFcld+SzSSK/g==",
      "dependencies": {
        "@types/hast": "^3.0.0",
-
        "import-meta-resolve": "^3.0.0",
+
        "import-meta-resolve": "^4.0.0",
        "vscode-oniguruma": "^2.0.0",
        "vscode-textmate": "^9.0.0"
      },
@@ -1203,9 +1206,9 @@
      }
    },
    "node_modules/acorn": {
-
      "version": "8.10.0",
-
      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
-
      "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
+
      "version": "8.11.2",
+
      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
+
      "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
      "bin": {
        "acorn": "bin/acorn"
      },
@@ -1223,9 +1226,9 @@
      }
    },
    "node_modules/acorn-walk": {
-
      "version": "8.2.0",
-
      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
-
      "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
+
      "version": "8.3.0",
+
      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz",
+
      "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==",
      "dev": true,
      "engines": {
        "node": ">=0.4.0"
@@ -1896,18 +1899,19 @@
      }
    },
    "node_modules/eslint": {
-
      "version": "8.50.0",
-
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz",
-
      "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==",
+
      "version": "8.53.0",
+
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz",
+
      "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==",
      "dev": true,
      "dependencies": {
        "@eslint-community/eslint-utils": "^4.2.0",
        "@eslint-community/regexpp": "^4.6.1",
-
        "@eslint/eslintrc": "^2.1.2",
-
        "@eslint/js": "8.50.0",
-
        "@humanwhocodes/config-array": "^0.11.11",
+
        "@eslint/eslintrc": "^2.1.3",
+
        "@eslint/js": "8.53.0",
+
        "@humanwhocodes/config-array": "^0.11.13",
        "@humanwhocodes/module-importer": "^1.0.1",
        "@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",
@@ -1949,6 +1953,18 @@
        "url": "https://opencollective.com/eslint"
      }
    },
+
    "node_modules/eslint-compat-utils": {
+
      "version": "0.1.2",
+
      "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz",
+
      "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==",
+
      "dev": true,
+
      "engines": {
+
        "node": ">=12"
+
      },
+
      "peerDependencies": {
+
        "eslint": ">=6.0.0"
+
      }
+
    },
    "node_modules/eslint-config-prettier": {
      "version": "9.0.0",
      "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz",
@@ -1971,16 +1987,17 @@
      }
    },
    "node_modules/eslint-plugin-svelte": {
-
      "version": "2.34.0",
-
      "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.34.0.tgz",
-
      "integrity": "sha512-4RYUgNai7wr0v+T/kljMiYSjC/oqwgq5i+cPppawryAayj4C7WK1ixFlWCGmNmBppnoKCl4iA4ZPzPtlHcb4CA==",
+
      "version": "2.35.0",
+
      "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.35.0.tgz",
+
      "integrity": "sha512-3WDFxNrkXaMlpqoNo3M1ZOQuoFLMO9+bdnN6oVVXaydXC7nzCJuGy9a0zqoNDHMSRPYt0Rqo6hIdHMEaI5sQnw==",
      "dev": true,
      "dependencies": {
        "@eslint-community/eslint-utils": "^4.2.0",
        "@jridgewell/sourcemap-codec": "^1.4.14",
        "debug": "^4.3.1",
+
        "eslint-compat-utils": "^0.1.2",
        "esutils": "^2.0.3",
-
        "known-css-properties": "^0.28.0",
+
        "known-css-properties": "^0.29.0",
        "postcss": "^8.4.5",
        "postcss-load-config": "^3.1.4",
        "postcss-safe-parser": "^6.0.0",
@@ -2183,9 +2200,9 @@
      "dev": true
    },
    "node_modules/fast-glob": {
-
      "version": "3.3.1",
-
      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
-
      "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
+
      "version": "3.3.2",
+
      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+
      "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
      "dev": true,
      "dependencies": {
        "@nodelib/fs.stat": "^2.0.2",
@@ -2272,9 +2289,9 @@
      }
    },
    "node_modules/flat-cache": {
-
      "version": "3.1.1",
-
      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz",
-
      "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==",
+
      "version": "3.2.0",
+
      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+
      "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
      "dev": true,
      "dependencies": {
        "flatted": "^3.2.9",
@@ -2282,7 +2299,7 @@
        "rimraf": "^3.0.2"
      },
      "engines": {
-
        "node": ">=12.0.0"
+
        "node": "^10.12.0 || >=12.0.0"
      }
    },
    "node_modules/flatted": {
@@ -2478,9 +2495,9 @@
      "dev": true
    },
    "node_modules/happy-dom": {
-
      "version": "12.9.0",
-
      "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-12.9.0.tgz",
-
      "integrity": "sha512-Ap/bcno2k5316FYDqBJ2i0O1zS78W1jsNR4F/p2t3zdNoa+2H0k851RGef4STfIKdTwcQ/nk5Tx9d5BzQXfTrw==",
+
      "version": "12.10.3",
+
      "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-12.10.3.tgz",
+
      "integrity": "sha512-JzUXOh0wdNGY54oKng5hliuBkq/+aT1V3YpTM+lrN/GoLQTANZsMaIvmHiHe612rauHvPJnDZkZ+5GZR++1Abg==",
      "dev": true,
      "dependencies": {
        "css.escape": "^1.5.1",
@@ -2712,9 +2729,9 @@
      }
    },
    "node_modules/import-meta-resolve": {
-
      "version": "3.0.0",
-
      "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-3.0.0.tgz",
-
      "integrity": "sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==",
+
      "version": "4.0.0",
+
      "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz",
+
      "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==",
      "funding": {
        "type": "github",
        "url": "https://github.com/sponsors/wooorm"
@@ -2920,9 +2937,9 @@
      }
    },
    "node_modules/keyv": {
-
      "version": "4.5.3",
-
      "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz",
-
      "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==",
+
      "version": "4.5.4",
+
      "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+
      "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
      "dev": true,
      "dependencies": {
        "json-buffer": "3.0.1"
@@ -2946,9 +2963,9 @@
      }
    },
    "node_modules/known-css-properties": {
-
      "version": "0.28.0",
-
      "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.28.0.tgz",
-
      "integrity": "sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==",
+
      "version": "0.29.0",
+
      "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
+
      "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==",
      "dev": true
    },
    "node_modules/levn": {
@@ -3030,12 +3047,12 @@
      "dev": true
    },
    "node_modules/loupe": {
-
      "version": "2.3.6",
-
      "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz",
-
      "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==",
+
      "version": "2.3.7",
+
      "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz",
+
      "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
      "dev": true,
      "dependencies": {
-
        "get-func-name": "^2.0.0"
+
        "get-func-name": "^2.0.1"
      }
    },
    "node_modules/lru-cache": {
@@ -3051,9 +3068,9 @@
      }
    },
    "node_modules/magic-string": {
-
      "version": "0.30.4",
-
      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.4.tgz",
-
      "integrity": "sha512-Q/TKtsC5BPm0kGqgBIF9oXAs/xEf2vRKiIB4wCRQTJOQIByZ1d+NnUOotvJOvNpi5RNIgVOMC3pOuaP1ZTDlVg==",
+
      "version": "0.30.5",
+
      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
+
      "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
      "dependencies": {
        "@jridgewell/sourcemap-codec": "^1.4.15"
      },
@@ -3062,38 +3079,38 @@
      }
    },
    "node_modules/marked": {
-
      "version": "9.1.0",
-
      "resolved": "https://registry.npmjs.org/marked/-/marked-9.1.0.tgz",
-
      "integrity": "sha512-VZjm0PM5DMv7WodqOUps3g6Q7dmxs9YGiFUZ7a2majzQTTCgX+6S6NAJHPvOhgFBzYz8s4QZKWWMfZKFmsfOgA==",
+
      "version": "10.0.0",
+
      "resolved": "https://registry.npmjs.org/marked/-/marked-10.0.0.tgz",
+
      "integrity": "sha512-YiGcYcWj50YrwBgNzFoYhQ1hT6GmQbFG8SksnYJX1z4BXTHSOrz1GB5/Jm2yQvMg4nN1FHP4M6r03R10KrVUiA==",
      "bin": {
        "marked": "bin/marked.js"
      },
      "engines": {
-
        "node": ">= 16"
+
        "node": ">= 18"
      }
    },
    "node_modules/marked-katex-extension": {
-
      "version": "4.0.1",
-
      "resolved": "https://registry.npmjs.org/marked-katex-extension/-/marked-katex-extension-4.0.1.tgz",
-
      "integrity": "sha512-+zkQvE26mpPLbW2wyR3A+BRoA5ieIhJB5suDrP2vuWoCtNh0+Koi8ISd04OshfzDpPpvK/8TbJNvt8pmJqbLPw==",
+
      "version": "4.0.4",
+
      "resolved": "https://registry.npmjs.org/marked-katex-extension/-/marked-katex-extension-4.0.4.tgz",
+
      "integrity": "sha512-QIFVHKsjKFlWGLPRbq2JoNSQXhmrtjUb9viXWzTqLoJk+E2yJ7AG5n2PUTxjwe8plHekEkxxriy6AEdHzT5gLA==",
      "dependencies": {
-
        "@types/katex": "^0.16.3",
+
        "@types/katex": "^0.16.5",
        "katex": "^0.16.9"
      },
      "peerDependencies": {
-
        "marked": ">=4 <10"
+
        "marked": ">=4 <11"
      }
    },
    "node_modules/marked-linkify-it": {
-
      "version": "3.1.4",
-
      "resolved": "https://registry.npmjs.org/marked-linkify-it/-/marked-linkify-it-3.1.4.tgz",
-
      "integrity": "sha512-jKssH4Xt82ZriU1esB6aeNmIsFmTnYBiiveXvE+7XNRq4+euiE/zgW/hn+6Y5KhbtBGTMhaFcyibsSF8FYLHIg==",
+
      "version": "3.1.6",
+
      "resolved": "https://registry.npmjs.org/marked-linkify-it/-/marked-linkify-it-3.1.6.tgz",
+
      "integrity": "sha512-rxM/9R6wemj9F49Y5h2lQm8ZTNx9k9+2yl3QLc7mvSyejcIGT+2Invb9Ll9l/dS520dR19MZzzfxTe8cL1oR6w==",
      "dependencies": {
-
        "@types/linkify-it": "^3.0.3",
+
        "@types/linkify-it": "^3.0.5",
        "linkify-it": "^4.0.1"
      },
      "peerDependencies": {
-
        "marked": ">=4 <10"
+
        "marked": ">=4 <11"
      }
    },
    "node_modules/md5": {
@@ -3345,9 +3362,9 @@
      "dev": true
    },
    "node_modules/nanoid": {
-
      "version": "3.3.6",
-
      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
-
      "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
+
      "version": "3.3.7",
+
      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+
      "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
      "dev": true,
      "funding": [
        {
@@ -3369,9 +3386,9 @@
      "dev": true
    },
    "node_modules/nise": {
-
      "version": "5.1.4",
-
      "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz",
-
      "integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==",
+
      "version": "5.1.5",
+
      "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz",
+
      "integrity": "sha512-VJuPIfUFaXNRzETTQEEItTOP8Y171ijr+JLq42wHes3DiryR8vT+1TXQW/Rx8JNUhyYYWyIvjXTU6dOhJcs9Nw==",
      "dependencies": {
        "@sinonjs/commons": "^2.0.0",
        "@sinonjs/fake-timers": "^10.0.2",
@@ -3641,12 +3658,12 @@
      }
    },
    "node_modules/playwright": {
-
      "version": "1.38.1",
-
      "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.38.1.tgz",
-
      "integrity": "sha512-oRMSJmZrOu1FP5iu3UrCx8JEFRIMxLDM0c/3o4bpzU5Tz97BypefWf7TuTNPWeCe279TPal5RtPPZ+9lW/Qkow==",
+
      "version": "1.39.0",
+
      "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.39.0.tgz",
+
      "integrity": "sha512-naE5QT11uC/Oiq0BwZ50gDmy8c8WLPRTEWuSSFVG2egBka/1qMoSqYQcROMT9zLwJ86oPofcTH2jBY/5wWOgIw==",
      "dev": true,
      "dependencies": {
-
        "playwright-core": "1.38.1"
+
        "playwright-core": "1.39.0"
      },
      "bin": {
        "playwright": "cli.js"
@@ -3659,9 +3676,9 @@
      }
    },
    "node_modules/playwright-core": {
-
      "version": "1.38.1",
-
      "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.38.1.tgz",
-
      "integrity": "sha512-tQqNFUKa3OfMf4b2jQ7aGLB8o9bS3bOY0yMEtldtC2+spf8QXG9zvXLTXUeRsoNuxEYMgLYR+NXfAa1rjKRcrg==",
+
      "version": "1.39.0",
+
      "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.39.0.tgz",
+
      "integrity": "sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw==",
      "dev": true,
      "bin": {
        "playwright-core": "cli.js"
@@ -3792,9 +3809,9 @@
      }
    },
    "node_modules/prettier": {
-
      "version": "3.0.3",
-
      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz",
-
      "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==",
+
      "version": "3.1.0",
+
      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz",
+
      "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==",
      "dev": true,
      "bin": {
        "prettier": "bin/prettier.cjs"
@@ -3807,13 +3824,13 @@
      }
    },
    "node_modules/prettier-plugin-svelte": {
-
      "version": "3.0.3",
-
      "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.0.3.tgz",
-
      "integrity": "sha512-dLhieh4obJEK1hnZ6koxF+tMUrZbV5YGvRpf2+OADyanjya5j0z1Llo8iGwiHmFWZVG/hLEw/AJD5chXd9r3XA==",
+
      "version": "3.1.0",
+
      "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.1.0.tgz",
+
      "integrity": "sha512-96+AZxs2ESqIFA9j+o+DHqY+BsUglezfl553LQd6VOtTyJq5GPuBEb3ElxF2cerFzKlYKttlH/VcVmRNj5oc3A==",
      "dev": true,
      "peerDependencies": {
        "prettier": "^3.0.0",
-
        "svelte": "^3.2.0 || ^4.0.0-next.0"
+
        "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0"
      }
    },
    "node_modules/pretty-format": {
@@ -3831,18 +3848,18 @@
      }
    },
    "node_modules/property-information": {
-
      "version": "6.3.0",
-
      "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.3.0.tgz",
-
      "integrity": "sha512-gVNZ74nqhRMiIUYWGQdosYetaKc83x8oT41a0LlV3AAFCAZwCpg4vmGkq8t34+cUhp3cnM4XDiU/7xlgK7HGrg==",
+
      "version": "6.4.0",
+
      "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.0.tgz",
+
      "integrity": "sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==",
      "funding": {
        "type": "github",
        "url": "https://github.com/sponsors/wooorm"
      }
    },
    "node_modules/punycode": {
-
      "version": "2.3.0",
-
      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
-
      "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+
      "version": "2.3.1",
+
      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+
      "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
      "dev": true,
      "engines": {
        "node": ">=6"
@@ -4077,15 +4094,15 @@
      }
    },
    "node_modules/sinon": {
-
      "version": "16.1.0",
-
      "resolved": "https://registry.npmjs.org/sinon/-/sinon-16.1.0.tgz",
-
      "integrity": "sha512-ZSgzF0vwmoa8pq0GEynqfdnpEDyP1PkYmEChnkjW0Vyh8IDlyFEJ+fkMhCP0il6d5cJjPl2PUsnUSAuP5sttOQ==",
+
      "version": "17.0.1",
+
      "resolved": "https://registry.npmjs.org/sinon/-/sinon-17.0.1.tgz",
+
      "integrity": "sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==",
      "dependencies": {
        "@sinonjs/commons": "^3.0.0",
-
        "@sinonjs/fake-timers": "^10.3.0",
+
        "@sinonjs/fake-timers": "^11.2.2",
        "@sinonjs/samsam": "^8.0.0",
        "diff": "^5.1.0",
-
        "nise": "^5.1.4",
+
        "nise": "^5.1.5",
        "supports-color": "^7.2.0"
      },
      "funding": {
@@ -4094,9 +4111,9 @@
      }
    },
    "node_modules/sinon/node_modules/@sinonjs/fake-timers": {
-
      "version": "10.3.0",
-
      "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
-
      "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
+
      "version": "11.2.2",
+
      "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz",
+
      "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==",
      "dependencies": {
        "@sinonjs/commons": "^3.0.0"
      }
@@ -4149,9 +4166,9 @@
      "dev": true
    },
    "node_modules/std-env": {
-
      "version": "3.4.3",
-
      "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.4.3.tgz",
-
      "integrity": "sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==",
+
      "version": "3.5.0",
+
      "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.5.0.tgz",
+
      "integrity": "sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==",
      "dev": true
    },
    "node_modules/stringify-entities": {
@@ -4247,9 +4264,9 @@
      }
    },
    "node_modules/svelte": {
-
      "version": "4.2.1",
-
      "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.1.tgz",
-
      "integrity": "sha512-LpLqY2Jr7cRxkrTc796/AaaoMLF/1ax7cto8Ot76wrvKQhrPmZ0JgajiWPmg9mTSDqO16SSLiD17r9MsvAPTmw==",
+
      "version": "4.2.3",
+
      "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.3.tgz",
+
      "integrity": "sha512-sqmG9KC6uUc7fb3ZuWoxXvqk6MI9Uu4ABA1M0fYDgTlFYu1k02xp96u6U9+yJZiVm84m9zge7rrA/BNZdFpOKw==",
      "dependencies": {
        "@ampproject/remapping": "^2.2.1",
        "@jridgewell/sourcemap-codec": "^1.4.15",
@@ -4262,7 +4279,7 @@
        "estree-walker": "^3.0.3",
        "is-reference": "^3.0.1",
        "locate-character": "^3.0.0",
-
        "magic-string": "^0.30.0",
+
        "magic-string": "^0.30.4",
        "periscopic": "^3.1.0"
      },
      "engines": {
@@ -4270,9 +4287,9 @@
      }
    },
    "node_modules/svelte-check": {
-
      "version": "3.5.2",
-
      "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.5.2.tgz",
-
      "integrity": "sha512-5a/YWbiH4c+AqAUP+0VneiV5bP8YOk9JL3jwvN+k2PEPLgpu85bjQc5eE67+eIZBBwUEJzmO3I92OqKcqbp3fw==",
+
      "version": "3.6.0",
+
      "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.6.0.tgz",
+
      "integrity": "sha512-8VfqhfuRJ1sKW+o8isH2kPi0RhjXH1nNsIbCFGyoUHG+ZxVxHYRKcb+S8eaL/1tyj3VGvWYx3Y5+oCUsJgnzcw==",
      "dev": true,
      "dependencies": {
        "@jridgewell/trace-mapping": "^0.3.17",
@@ -4281,14 +4298,14 @@
        "import-fresh": "^3.2.1",
        "picocolors": "^1.0.0",
        "sade": "^1.7.4",
-
        "svelte-preprocess": "^5.0.4",
+
        "svelte-preprocess": "^5.1.0",
        "typescript": "^5.0.3"
      },
      "bin": {
        "svelte-check": "bin/svelte-check"
      },
      "peerDependencies": {
-
        "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0"
+
        "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0"
      }
    },
    "node_modules/svelte-eslint-parser": {
@@ -4331,9 +4348,9 @@
      }
    },
    "node_modules/svelte-preprocess": {
-
      "version": "5.0.4",
-
      "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.0.4.tgz",
-
      "integrity": "sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==",
+
      "version": "5.1.0",
+
      "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.0.tgz",
+
      "integrity": "sha512-EkErPiDzHAc0k2MF5m6vBNmRUh338h2myhinUw/xaqsLs7/ZvsgREiLGj03VrSzbY/TB5ZXgBOsKraFee5yceA==",
      "dev": true,
      "hasInstallScript": true,
      "dependencies": {
@@ -4356,7 +4373,7 @@
        "sass": "^1.26.8",
        "stylus": "^0.55.0",
        "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0",
-
        "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0",
+
        "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0",
        "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0"
      },
      "peerDependenciesMeta": {
@@ -4544,6 +4561,12 @@
      "integrity": "sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==",
      "dev": true
    },
+
    "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==",
+
      "dev": true
+
    },
    "node_modules/unist-util-is": {
      "version": "6.0.0",
      "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
@@ -4671,9 +4694,9 @@
      }
    },
    "node_modules/vite": {
-
      "version": "4.4.11",
-
      "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz",
-
      "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==",
+
      "version": "4.5.0",
+
      "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz",
+
      "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==",
      "dev": true,
      "dependencies": {
        "esbuild": "^0.18.10",
@@ -4749,12 +4772,12 @@
      }
    },
    "node_modules/vitefu": {
-
      "version": "0.2.4",
-
      "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.4.tgz",
-
      "integrity": "sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==",
+
      "version": "0.2.5",
+
      "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz",
+
      "integrity": "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==",
      "dev": true,
      "peerDependencies": {
-
        "vite": "^3.0.0 || ^4.0.0"
+
        "vite": "^3.0.0 || ^4.0.0 || ^5.0.0"
      },
      "peerDependenciesMeta": {
        "vite": {
@@ -4850,16 +4873,16 @@
      "integrity": "sha512-Cl65diFGxz7gpwbav10HqiY/eVYTO1sjQpmRmV991Bj7wAoOAjGQ97PpQcXorDE2Uc4hnGWLY17xme+5t6MlSg=="
    },
    "node_modules/wait-on": {
-
      "version": "7.0.1",
-
      "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.0.1.tgz",
-
      "integrity": "sha512-9AnJE9qTjRQOlTZIldAaf/da2eW0eSRSgcqq85mXQja/DW3MriHxkpODDSUEg+Gri/rKEcXUZHe+cevvYItaog==",
+
      "version": "7.1.0",
+
      "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.1.0.tgz",
+
      "integrity": "sha512-U7TF/OYYzAg+OoiT/B8opvN48UHt0QYMi4aD3PjRFpybQ+o6czQF8Ig3SKCCMJdxpBrCalIJ4O00FBof27Fu9Q==",
      "dev": true,
      "dependencies": {
        "axios": "^0.27.2",
-
        "joi": "^17.7.0",
+
        "joi": "^17.11.0",
        "lodash": "^4.17.21",
-
        "minimist": "^1.2.7",
-
        "rxjs": "^7.8.0"
+
        "minimist": "^1.2.8",
+
        "rxjs": "^7.8.1"
      },
      "bin": {
        "wait-on": "bin/wait-on"
modified package.json
@@ -19,39 +19,39 @@
    "node": ">=18.17.1"
  },
  "devDependencies": {
-
    "@playwright/test": "^1.38.1",
+
    "@playwright/test": "^1.39.0",
    "@sinonjs/fake-timers": "11.0.0",
-
    "@sveltejs/vite-plugin-svelte": "^2.4.6",
+
    "@sveltejs/vite-plugin-svelte": "^2.5.2",
    "@tsconfig/svelte": "^5.0.2",
-
    "@types/dompurify": "^3.0.3",
-
    "@types/katex": "^0.16.3",
-
    "@types/lodash": "^4.14.199",
-
    "@types/md5": "^2.3.3",
-
    "@types/node": "^18.17.1",
-
    "@types/sinon": "^10.0.18",
-
    "@types/sinonjs__fake-timers": "^8.1.2",
-
    "@types/wait-on": "^5.3.2",
-
    "@typescript-eslint/eslint-plugin": "^6.7.4",
+
    "@types/dompurify": "^3.0.5",
+
    "@types/katex": "^0.16.6",
+
    "@types/lodash": "^4.14.201",
+
    "@types/md5": "^2.3.5",
+
    "@types/node": "^20.9.0",
+
    "@types/sinon": "^17.0.1",
+
    "@types/sinonjs__fake-timers": "^8.1.5",
+
    "@types/wait-on": "^5.3.4",
+
    "@typescript-eslint/eslint-plugin": "^6.11.0",
    "chalk": "^5.3.0",
-
    "eslint": "^8.50.0",
+
    "eslint": "^8.53.0",
    "eslint-config-prettier": "^9.0.0",
    "eslint-plugin-no-only-tests": "^3.1.0",
-
    "eslint-plugin-svelte": "^2.34.0",
+
    "eslint-plugin-svelte": "^2.35.0",
    "execa": "^8.0.1",
    "exit-hook": "^4.0.0",
    "get-port": "^7.0.0",
-
    "happy-dom": "^12.9.0",
-
    "prettier": "^3.0.3",
-
    "prettier-plugin-svelte": "^3.0.3",
-
    "svelte-check": "^3.5.2",
+
    "happy-dom": "^12.10.3",
+
    "prettier": "^3.1.0",
+
    "prettier-plugin-svelte": "^3.1.0",
+
    "svelte-check": "^3.6.0",
    "typescript": "^5.2.2",
-
    "vite": "^4.4.11",
+
    "vite": "^4.5.0",
    "vitest": "^0.34.6",
-
    "wait-on": "^7.0.1"
+
    "wait-on": "^7.1.0"
  },
  "dependencies": {
    "@radicle/gray-matter": "4.1.0",
-
    "@wooorm/starry-night": "^3.0.0",
+
    "@wooorm/starry-night": "^3.1.0",
    "async-mutex": "^0.4.0",
    "baconjs": "^3.0.17",
    "bs58": "^5.0.0",
@@ -60,13 +60,13 @@
    "hast-util-to-dom": "^4.0.0",
    "hast-util-to-html": "^9.0.0",
    "lodash": "^4.17.21",
-
    "marked": "^9.1.0",
-
    "marked-katex-extension": "^4.0.1",
-
    "marked-linkify-it": "^3.1.4",
+
    "marked": "^10.0.0",
+
    "marked-katex-extension": "^4.0.4",
+
    "marked-linkify-it": "^3.1.6",
    "md5": "^2.3.0",
    "plausible-tracker": "^0.3.8",
-
    "sinon": "^16.1.0",
-
    "svelte": "^4.2.1",
+
    "sinon": "^17.0.1",
+
    "svelte": "^4.2.3",
    "twemoji": "^14.0.2",
    "zod": "^3.22.4"
  }