Radish alpha
r
rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5
Radicle web interface
Radicle
Git
Update dependencies
Open did:key:z6MkkfM3...sVz5 opened 1 year ago

Also enables using new marked renderer syntax

check check-visual check-unit-test check-http-client-unit-test check-radicle-httpd check-e2e check-build check-http

👉 Preview 👉 Workflow runs 👉 Branch on GitHub

3 files changed +638 -659 473f893b 0901f04f
modified package-lock.json
@@ -11,74 +11,67 @@
      "dependencies": {
        "@efstajas/svelte-stored-writable": "^0.2.0",
        "@radicle/gray-matter": "4.1.0",
-
        "@wooorm/starry-night": "^3.3.0",
+
        "@wooorm/starry-night": "^3.4.0",
        "async-mutex": "^0.5.0",
        "baconjs": "^3.0.17",
-
        "bs58": "^5.0.0",
+
        "bs58": "^6.0.0",
        "buffer": "^6.0.3",
        "compare-versions": "^6.1.0",
-
        "dompurify": "^3.0.11",
+
        "dompurify": "^3.1.5",
        "fuzzysort": "^3.0.2",
        "hast-util-to-dom": "^4.0.0",
-
        "hast-util-to-html": "^9.0.0",
+
        "hast-util-to-html": "^9.0.1",
        "lodash": "^4.17.21",
-
        "marked": "^12.0.1",
-
        "marked-katex-extension": "^5.0.1",
-
        "marked-linkify-it": "^3.1.9",
+
        "marked": "^13.0.0",
+
        "marked-emoji": "^1.4.1",
+
        "marked-footnote": "^1.2.2",
+
        "marked-katex-extension": "^5.0.2",
+
        "marked-linkify-it": "^3.1.10",
        "md5": "^2.3.0",
-
        "plausible-tracker": "^0.3.8",
-
        "svelte": "^4.2.12",
+
        "plausible-tracker": "^0.3.9",
+
        "svelte": "^4.2.18",
        "twemoji": "^14.0.2",
-
        "zod": "^3.22.4"
+
        "zod": "^3.23.8"
      },
      "devDependencies": {
-
        "@eslint/js": "^9.3.0",
-
        "@playwright/test": "^1.42.1",
-
        "@sveltejs/vite-plugin-svelte": "^3.0.2",
-
        "@tsconfig/svelte": "^5.0.3",
+
        "@eslint/js": "^9.5.0",
+
        "@playwright/test": "^1.44.1",
+
        "@sveltejs/vite-plugin-svelte": "^3.1.1",
+
        "@tsconfig/svelte": "^5.0.4",
        "@types/config": "^3.3.4",
        "@types/dompurify": "^3.0.5",
        "@types/katex": "^0.16.7",
-
        "@types/lodash": "^4.17.0",
+
        "@types/lodash": "^4.17.5",
        "@types/md5": "^2.3.5",
-
        "@types/node": "^20.11.30",
+
        "@types/node": "^20.14.8",
        "@types/sinon": "^17.0.3",
        "@types/wait-on": "^5.3.4",
-
        "@typescript-eslint/parser": "^7.10.0",
+
        "@typescript-eslint/parser": "^7.13.1",
        "chalk": "^5.3.0",
        "config": "^3.3.11",
        "eslint": "^8.57.0",
        "eslint-config-prettier": "^9.1.0",
-
        "eslint-plugin-svelte": "^2.39.0",
-
        "execa": "^9.0.0",
+
        "eslint-plugin-svelte": "^2.41.0",
+
        "execa": "^9.3.0",
        "get-port": "^7.1.0",
-
        "globals": "^15.3.0",
-
        "happy-dom": "^14.3.8",
-
        "prettier": "^3.2.5",
-
        "prettier-plugin-svelte": "^3.2.2",
-
        "sinon": "^17.0.1",
-
        "svelte-check": "^3.6.8",
-
        "svelte-eslint-parser": "^0.36.0",
-
        "typescript": "^5.4.3",
-
        "typescript-eslint": "^7.10.0",
-
        "vite": "^5.2.6",
+
        "globals": "^15.6.0",
+
        "happy-dom": "^14.12.3",
+
        "prettier": "^3.3.2",
+
        "prettier-plugin-svelte": "^3.2.5",
+
        "sinon": "^18.0.0",
+
        "svelte-check": "^3.8.1",
+
        "svelte-eslint-parser": "^0.39.2",
+
        "typescript": "^5.5.0",
+
        "typescript-eslint": "^7.13.1",
+
        "vite": "^5.3.1",
        "vite-plugin-virtual": "^0.3.0",
-
        "vitest": "^1.4.0",
+
        "vitest": "^1.6.0",
        "wait-on": "^7.2.0"
      },
      "engines": {
        "node": ">=18.17.1"
      }
    },
-
    "node_modules/@aashutoshrathi/word-wrap": {
-
      "version": "1.2.6",
-
      "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
-
      "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
-
      "dev": true,
-
      "engines": {
-
        "node": ">=0.10.0"
-
      }
-
    },
    "node_modules/@ampproject/remapping": {
      "version": "2.3.0",
      "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
@@ -109,9 +102,9 @@
      }
    },
    "node_modules/@esbuild/aix-ppc64": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz",
-
      "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
+
      "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
      "cpu": [
        "ppc64"
      ],
@@ -125,9 +118,9 @@
      }
    },
    "node_modules/@esbuild/android-arm": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz",
-
      "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
+
      "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
      "cpu": [
        "arm"
      ],
@@ -141,9 +134,9 @@
      }
    },
    "node_modules/@esbuild/android-arm64": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz",
-
      "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
+
      "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
      "cpu": [
        "arm64"
      ],
@@ -157,9 +150,9 @@
      }
    },
    "node_modules/@esbuild/android-x64": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz",
-
      "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
+
      "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
      "cpu": [
        "x64"
      ],
@@ -173,9 +166,9 @@
      }
    },
    "node_modules/@esbuild/darwin-arm64": {
-
      "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==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
+
      "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
      "cpu": [
        "arm64"
      ],
@@ -189,9 +182,9 @@
      }
    },
    "node_modules/@esbuild/darwin-x64": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz",
-
      "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
+
      "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
      "cpu": [
        "x64"
      ],
@@ -205,9 +198,9 @@
      }
    },
    "node_modules/@esbuild/freebsd-arm64": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz",
-
      "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
+
      "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
      "cpu": [
        "arm64"
      ],
@@ -221,9 +214,9 @@
      }
    },
    "node_modules/@esbuild/freebsd-x64": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz",
-
      "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
+
      "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
      "cpu": [
        "x64"
      ],
@@ -237,9 +230,9 @@
      }
    },
    "node_modules/@esbuild/linux-arm": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz",
-
      "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
+
      "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
      "cpu": [
        "arm"
      ],
@@ -253,9 +246,9 @@
      }
    },
    "node_modules/@esbuild/linux-arm64": {
-
      "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==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
+
      "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
      "cpu": [
        "arm64"
      ],
@@ -269,9 +262,9 @@
      }
    },
    "node_modules/@esbuild/linux-ia32": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz",
-
      "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
+
      "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
      "cpu": [
        "ia32"
      ],
@@ -285,9 +278,9 @@
      }
    },
    "node_modules/@esbuild/linux-loong64": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz",
-
      "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
+
      "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
      "cpu": [
        "loong64"
      ],
@@ -301,9 +294,9 @@
      }
    },
    "node_modules/@esbuild/linux-mips64el": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz",
-
      "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
+
      "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
      "cpu": [
        "mips64el"
      ],
@@ -317,9 +310,9 @@
      }
    },
    "node_modules/@esbuild/linux-ppc64": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz",
-
      "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
+
      "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
      "cpu": [
        "ppc64"
      ],
@@ -333,9 +326,9 @@
      }
    },
    "node_modules/@esbuild/linux-riscv64": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz",
-
      "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
+
      "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
      "cpu": [
        "riscv64"
      ],
@@ -349,9 +342,9 @@
      }
    },
    "node_modules/@esbuild/linux-s390x": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz",
-
      "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
+
      "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
      "cpu": [
        "s390x"
      ],
@@ -365,9 +358,9 @@
      }
    },
    "node_modules/@esbuild/linux-x64": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz",
-
      "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
+
      "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
      "cpu": [
        "x64"
      ],
@@ -381,9 +374,9 @@
      }
    },
    "node_modules/@esbuild/netbsd-x64": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz",
-
      "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
+
      "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
      "cpu": [
        "x64"
      ],
@@ -397,9 +390,9 @@
      }
    },
    "node_modules/@esbuild/openbsd-x64": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz",
-
      "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
+
      "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
      "cpu": [
        "x64"
      ],
@@ -413,9 +406,9 @@
      }
    },
    "node_modules/@esbuild/sunos-x64": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz",
-
      "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
+
      "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
      "cpu": [
        "x64"
      ],
@@ -429,9 +422,9 @@
      }
    },
    "node_modules/@esbuild/win32-arm64": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz",
-
      "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
+
      "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
      "cpu": [
        "arm64"
      ],
@@ -445,9 +438,9 @@
      }
    },
    "node_modules/@esbuild/win32-ia32": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz",
-
      "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
+
      "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
      "cpu": [
        "ia32"
      ],
@@ -461,9 +454,9 @@
      }
    },
    "node_modules/@esbuild/win32-x64": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz",
-
      "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
+
      "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
      "cpu": [
        "x64"
      ],
@@ -492,9 +485,9 @@
      }
    },
    "node_modules/@eslint-community/regexpp": {
-
      "version": "4.10.0",
-
      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
-
      "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
+
      "version": "4.10.1",
+
      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz",
+
      "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==",
      "dev": true,
      "engines": {
        "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
@@ -561,9 +554,9 @@
      }
    },
    "node_modules/@eslint/js": {
-
      "version": "9.3.0",
-
      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.3.0.tgz",
-
      "integrity": "sha512-niBqk8iwv96+yuTwjM6bWg8ovzAPF9qkICsGtcoa5/dmqcEMfdwNAX7+/OHcJHc7wj7XqPxH98oAHytFYlw6Sw==",
+
      "version": "9.5.0",
+
      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.5.0.tgz",
+
      "integrity": "sha512-A7+AOT2ICkodvtsWnxZP4Xxk3NbZ3VMHd8oihydLRGrJgqqdEz1qSeEgXYyT/Cu8h1TWWsQRejIx48mtjZ5y1w==",
      "dev": true,
      "engines": {
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -588,6 +581,7 @@
      "version": "0.11.14",
      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
      "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
+
      "deprecated": "Use @eslint/config-array instead",
      "dev": true,
      "dependencies": {
        "@humanwhocodes/object-schema": "^2.0.2",
@@ -634,9 +628,10 @@
      }
    },
    "node_modules/@humanwhocodes/object-schema": {
-
      "version": "2.0.2",
-
      "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
-
      "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
+
      "version": "2.0.3",
+
      "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+
      "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
+
      "deprecated": "Use @eslint/object-schema instead",
      "dev": true
    },
    "node_modules/@jest/schemas": {
@@ -730,12 +725,12 @@
      }
    },
    "node_modules/@playwright/test": {
-
      "version": "1.42.1",
-
      "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.42.1.tgz",
-
      "integrity": "sha512-Gq9rmS54mjBL/7/MvBaNOBwbfnh7beHvS6oS4srqXFcQHpQCV1+c8JXWE8VLPyRDhgS3H8x8A7hztqI9VnwrAQ==",
+
      "version": "1.44.1",
+
      "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.44.1.tgz",
+
      "integrity": "sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==",
      "dev": true,
      "dependencies": {
-
        "playwright": "1.42.1"
+
        "playwright": "1.44.1"
      },
      "bin": {
        "playwright": "cli.js"
@@ -759,9 +754,9 @@
      }
    },
    "node_modules/@rollup/rollup-android-arm-eabi": {
-
      "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==",
+
      "version": "4.18.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz",
+
      "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==",
      "cpu": [
        "arm"
      ],
@@ -772,9 +767,9 @@
      ]
    },
    "node_modules/@rollup/rollup-android-arm64": {
-
      "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==",
+
      "version": "4.18.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz",
+
      "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==",
      "cpu": [
        "arm64"
      ],
@@ -785,9 +780,9 @@
      ]
    },
    "node_modules/@rollup/rollup-darwin-arm64": {
-
      "version": "4.13.0",
-
      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz",
-
      "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==",
+
      "version": "4.18.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz",
+
      "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==",
      "cpu": [
        "arm64"
      ],
@@ -798,9 +793,9 @@
      ]
    },
    "node_modules/@rollup/rollup-darwin-x64": {
-
      "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==",
+
      "version": "4.18.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz",
+
      "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==",
      "cpu": [
        "x64"
      ],
@@ -811,9 +806,22 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
-
      "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==",
+
      "version": "4.18.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz",
+
      "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==",
+
      "cpu": [
+
        "arm"
+
      ],
+
      "dev": true,
+
      "optional": true,
+
      "os": [
+
        "linux"
+
      ]
+
    },
+
    "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+
      "version": "4.18.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz",
+
      "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==",
      "cpu": [
        "arm"
      ],
@@ -824,9 +832,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-arm64-gnu": {
-
      "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==",
+
      "version": "4.18.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz",
+
      "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==",
      "cpu": [
        "arm64"
      ],
@@ -837,9 +845,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-arm64-musl": {
-
      "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==",
+
      "version": "4.18.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz",
+
      "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==",
      "cpu": [
        "arm64"
      ],
@@ -849,10 +857,23 @@
        "linux"
      ]
    },
+
    "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
+
      "version": "4.18.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz",
+
      "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==",
+
      "cpu": [
+
        "ppc64"
+
      ],
+
      "dev": true,
+
      "optional": true,
+
      "os": [
+
        "linux"
+
      ]
+
    },
    "node_modules/@rollup/rollup-linux-riscv64-gnu": {
-
      "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==",
+
      "version": "4.18.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz",
+
      "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==",
      "cpu": [
        "riscv64"
      ],
@@ -862,10 +883,23 @@
        "linux"
      ]
    },
+
    "node_modules/@rollup/rollup-linux-s390x-gnu": {
+
      "version": "4.18.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz",
+
      "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==",
+
      "cpu": [
+
        "s390x"
+
      ],
+
      "dev": true,
+
      "optional": true,
+
      "os": [
+
        "linux"
+
      ]
+
    },
    "node_modules/@rollup/rollup-linux-x64-gnu": {
-
      "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==",
+
      "version": "4.18.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz",
+
      "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==",
      "cpu": [
        "x64"
      ],
@@ -876,9 +910,9 @@
      ]
    },
    "node_modules/@rollup/rollup-linux-x64-musl": {
-
      "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==",
+
      "version": "4.18.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz",
+
      "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==",
      "cpu": [
        "x64"
      ],
@@ -889,9 +923,9 @@
      ]
    },
    "node_modules/@rollup/rollup-win32-arm64-msvc": {
-
      "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==",
+
      "version": "4.18.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz",
+
      "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==",
      "cpu": [
        "arm64"
      ],
@@ -902,9 +936,9 @@
      ]
    },
    "node_modules/@rollup/rollup-win32-ia32-msvc": {
-
      "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==",
+
      "version": "4.18.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz",
+
      "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==",
      "cpu": [
        "ia32"
      ],
@@ -915,9 +949,9 @@
      ]
    },
    "node_modules/@rollup/rollup-win32-x64-msvc": {
-
      "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==",
+
      "version": "4.18.0",
+
      "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz",
+
      "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==",
      "cpu": [
        "x64"
      ],
@@ -1017,17 +1051,17 @@
      "dev": true
    },
    "node_modules/@sveltejs/vite-plugin-svelte": {
-
      "version": "3.0.2",
-
      "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.0.2.tgz",
-
      "integrity": "sha512-MpmF/cju2HqUls50WyTHQBZUV3ovV/Uk8k66AN2gwHogNAG8wnW8xtZDhzNBsFJJuvmq1qnzA5kE7YfMJNFv2Q==",
+
      "version": "3.1.1",
+
      "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.1.1.tgz",
+
      "integrity": "sha512-rimpFEAboBBHIlzISibg94iP09k/KYdHgVhJlcsTfn7KMBhc70jFX/GRWkRdFCc2fdnk+4+Bdfej23cMDnJS6A==",
      "dev": true,
      "dependencies": {
-
        "@sveltejs/vite-plugin-svelte-inspector": "^2.0.0",
+
        "@sveltejs/vite-plugin-svelte-inspector": "^2.1.0",
        "debug": "^4.3.4",
        "deepmerge": "^4.3.1",
        "kleur": "^4.1.5",
-
        "magic-string": "^0.30.5",
-
        "svelte-hmr": "^0.15.3",
+
        "magic-string": "^0.30.10",
+
        "svelte-hmr": "^0.16.0",
        "vitefu": "^0.2.5"
      },
      "engines": {
@@ -1039,9 +1073,9 @@
      }
    },
    "node_modules/@sveltejs/vite-plugin-svelte-inspector": {
-
      "version": "2.0.0",
-
      "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.0.0.tgz",
-
      "integrity": "sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==",
+
      "version": "2.1.0",
+
      "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.1.0.tgz",
+
      "integrity": "sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==",
      "dev": true,
      "dependencies": {
        "debug": "^4.3.4"
@@ -1056,9 +1090,9 @@
      }
    },
    "node_modules/@tsconfig/svelte": {
-
      "version": "5.0.3",
-
      "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-5.0.3.tgz",
-
      "integrity": "sha512-Ms0t9K0oxioSb0lrZ5NRysx0nE/KsojYOG+db9v6wSaU/+P37vc0WRmh1QE1c8IAtTniD4yEhffGQuTKF8uaPw==",
+
      "version": "5.0.4",
+
      "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-5.0.4.tgz",
+
      "integrity": "sha512-BV9NplVgLmSi4mwKzD8BD/NQ8erOY/nUE/GpgWe2ckx+wIQF5RyRirn/QsSSCPeulVpc3RA/iJt6DpfTIZps0Q==",
      "dev": true
    },
    "node_modules/@types/config": {
@@ -1095,14 +1129,14 @@
      "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ=="
    },
    "node_modules/@types/linkify-it": {
-
      "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=="
+
      "version": "5.0.0",
+
      "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz",
+
      "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q=="
    },
    "node_modules/@types/lodash": {
-
      "version": "4.17.0",
-
      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz",
-
      "integrity": "sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==",
+
      "version": "4.17.5",
+
      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.5.tgz",
+
      "integrity": "sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw==",
      "dev": true
    },
    "node_modules/@types/md5": {
@@ -1112,17 +1146,17 @@
      "dev": true
    },
    "node_modules/@types/mdast": {
-
      "version": "4.0.3",
-
      "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz",
-
      "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==",
+
      "version": "4.0.4",
+
      "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+
      "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
      "dependencies": {
        "@types/unist": "*"
      }
    },
    "node_modules/@types/node": {
-
      "version": "20.11.30",
-
      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.30.tgz",
-
      "integrity": "sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==",
+
      "version": "20.14.8",
+
      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.8.tgz",
+
      "integrity": "sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==",
      "dev": true,
      "dependencies": {
        "undici-types": "~5.26.4"
@@ -1170,16 +1204,16 @@
      }
    },
    "node_modules/@typescript-eslint/eslint-plugin": {
-
      "version": "7.10.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.10.0.tgz",
-
      "integrity": "sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==",
+
      "version": "7.13.1",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.13.1.tgz",
+
      "integrity": "sha512-kZqi+WZQaZfPKnsflLJQCz6Ze9FFSMfXrrIOcyargekQxG37ES7DJNpJUE9Q/X5n3yTIP/WPutVNzgknQ7biLg==",
      "dev": true,
      "dependencies": {
        "@eslint-community/regexpp": "^4.10.0",
-
        "@typescript-eslint/scope-manager": "7.10.0",
-
        "@typescript-eslint/type-utils": "7.10.0",
-
        "@typescript-eslint/utils": "7.10.0",
-
        "@typescript-eslint/visitor-keys": "7.10.0",
+
        "@typescript-eslint/scope-manager": "7.13.1",
+
        "@typescript-eslint/type-utils": "7.13.1",
+
        "@typescript-eslint/utils": "7.13.1",
+
        "@typescript-eslint/visitor-keys": "7.13.1",
        "graphemer": "^1.4.0",
        "ignore": "^5.3.1",
        "natural-compare": "^1.4.0",
@@ -1203,15 +1237,15 @@
      }
    },
    "node_modules/@typescript-eslint/parser": {
-
      "version": "7.10.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.10.0.tgz",
-
      "integrity": "sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==",
+
      "version": "7.13.1",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.13.1.tgz",
+
      "integrity": "sha512-1ELDPlnLvDQ5ybTSrMhRTFDfOQEOXNM+eP+3HT/Yq7ruWpciQw+Avi73pdEbA4SooCawEWo3dtYbF68gN7Ed1A==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/scope-manager": "7.10.0",
-
        "@typescript-eslint/types": "7.10.0",
-
        "@typescript-eslint/typescript-estree": "7.10.0",
-
        "@typescript-eslint/visitor-keys": "7.10.0",
+
        "@typescript-eslint/scope-manager": "7.13.1",
+
        "@typescript-eslint/types": "7.13.1",
+
        "@typescript-eslint/typescript-estree": "7.13.1",
+
        "@typescript-eslint/visitor-keys": "7.13.1",
        "debug": "^4.3.4"
      },
      "engines": {
@@ -1231,13 +1265,13 @@
      }
    },
    "node_modules/@typescript-eslint/scope-manager": {
-
      "version": "7.10.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.10.0.tgz",
-
      "integrity": "sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==",
+
      "version": "7.13.1",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.1.tgz",
+
      "integrity": "sha512-adbXNVEs6GmbzaCpymHQ0MB6E4TqoiVbC0iqG3uijR8ZYfpAXMGttouQzF4Oat3P2GxDVIrg7bMI/P65LiQZdg==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "7.10.0",
-
        "@typescript-eslint/visitor-keys": "7.10.0"
+
        "@typescript-eslint/types": "7.13.1",
+
        "@typescript-eslint/visitor-keys": "7.13.1"
      },
      "engines": {
        "node": "^18.18.0 || >=20.0.0"
@@ -1248,13 +1282,13 @@
      }
    },
    "node_modules/@typescript-eslint/type-utils": {
-
      "version": "7.10.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.10.0.tgz",
-
      "integrity": "sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==",
+
      "version": "7.13.1",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.13.1.tgz",
+
      "integrity": "sha512-aWDbLu1s9bmgPGXSzNCxELu+0+HQOapV/y+60gPXafR8e2g1Bifxzevaa+4L2ytCWm+CHqpELq4CSoN9ELiwCg==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/typescript-estree": "7.10.0",
-
        "@typescript-eslint/utils": "7.10.0",
+
        "@typescript-eslint/typescript-estree": "7.13.1",
+
        "@typescript-eslint/utils": "7.13.1",
        "debug": "^4.3.4",
        "ts-api-utils": "^1.3.0"
      },
@@ -1275,9 +1309,9 @@
      }
    },
    "node_modules/@typescript-eslint/types": {
-
      "version": "7.10.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.10.0.tgz",
-
      "integrity": "sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==",
+
      "version": "7.13.1",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.1.tgz",
+
      "integrity": "sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw==",
      "dev": true,
      "engines": {
        "node": "^18.18.0 || >=20.0.0"
@@ -1288,13 +1322,13 @@
      }
    },
    "node_modules/@typescript-eslint/typescript-estree": {
-
      "version": "7.10.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.10.0.tgz",
-
      "integrity": "sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==",
+
      "version": "7.13.1",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.1.tgz",
+
      "integrity": "sha512-uxNr51CMV7npU1BxZzYjoVz9iyjckBduFBP0S5sLlh1tXYzHzgZ3BR9SVsNed+LmwKrmnqN3Kdl5t7eZ5TS1Yw==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "7.10.0",
-
        "@typescript-eslint/visitor-keys": "7.10.0",
+
        "@typescript-eslint/types": "7.13.1",
+
        "@typescript-eslint/visitor-keys": "7.13.1",
        "debug": "^4.3.4",
        "globby": "^11.1.0",
        "is-glob": "^4.0.3",
@@ -1316,15 +1350,15 @@
      }
    },
    "node_modules/@typescript-eslint/utils": {
-
      "version": "7.10.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.10.0.tgz",
-
      "integrity": "sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==",
+
      "version": "7.13.1",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.13.1.tgz",
+
      "integrity": "sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ==",
      "dev": true,
      "dependencies": {
        "@eslint-community/eslint-utils": "^4.4.0",
-
        "@typescript-eslint/scope-manager": "7.10.0",
-
        "@typescript-eslint/types": "7.10.0",
-
        "@typescript-eslint/typescript-estree": "7.10.0"
+
        "@typescript-eslint/scope-manager": "7.13.1",
+
        "@typescript-eslint/types": "7.13.1",
+
        "@typescript-eslint/typescript-estree": "7.13.1"
      },
      "engines": {
        "node": "^18.18.0 || >=20.0.0"
@@ -1338,12 +1372,12 @@
      }
    },
    "node_modules/@typescript-eslint/visitor-keys": {
-
      "version": "7.10.0",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.10.0.tgz",
-
      "integrity": "sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==",
+
      "version": "7.13.1",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.1.tgz",
+
      "integrity": "sha512-k/Bfne7lrP7hcb7m9zSsgcBmo+8eicqqfNAJ7uUY+jkTFpKeH2FSkWpFRtimBxgkyvqfu9jTPRbYOvud6isdXA==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "7.10.0",
+
        "@typescript-eslint/types": "7.13.1",
        "eslint-visitor-keys": "^3.4.3"
      },
      "engines": {
@@ -1360,13 +1394,13 @@
      "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ=="
    },
    "node_modules/@vitest/expect": {
-
      "version": "1.4.0",
-
      "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.4.0.tgz",
-
      "integrity": "sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==",
+
      "version": "1.6.0",
+
      "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz",
+
      "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==",
      "dev": true,
      "dependencies": {
-
        "@vitest/spy": "1.4.0",
-
        "@vitest/utils": "1.4.0",
+
        "@vitest/spy": "1.6.0",
+
        "@vitest/utils": "1.6.0",
        "chai": "^4.3.10"
      },
      "funding": {
@@ -1374,12 +1408,12 @@
      }
    },
    "node_modules/@vitest/runner": {
-
      "version": "1.4.0",
-
      "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.4.0.tgz",
-
      "integrity": "sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg==",
+
      "version": "1.6.0",
+
      "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz",
+
      "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==",
      "dev": true,
      "dependencies": {
-
        "@vitest/utils": "1.4.0",
+
        "@vitest/utils": "1.6.0",
        "p-limit": "^5.0.0",
        "pathe": "^1.1.1"
      },
@@ -1415,9 +1449,9 @@
      }
    },
    "node_modules/@vitest/snapshot": {
-
      "version": "1.4.0",
-
      "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.4.0.tgz",
-
      "integrity": "sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==",
+
      "version": "1.6.0",
+
      "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz",
+
      "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==",
      "dev": true,
      "dependencies": {
        "magic-string": "^0.30.5",
@@ -1429,9 +1463,9 @@
      }
    },
    "node_modules/@vitest/spy": {
-
      "version": "1.4.0",
-
      "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.4.0.tgz",
-
      "integrity": "sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==",
+
      "version": "1.6.0",
+
      "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz",
+
      "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==",
      "dev": true,
      "dependencies": {
        "tinyspy": "^2.2.0"
@@ -1441,9 +1475,9 @@
      }
    },
    "node_modules/@vitest/utils": {
-
      "version": "1.4.0",
-
      "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.4.0.tgz",
-
      "integrity": "sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==",
+
      "version": "1.6.0",
+
      "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz",
+
      "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==",
      "dev": true,
      "dependencies": {
        "diff-sequences": "^29.6.3",
@@ -1456,9 +1490,9 @@
      }
    },
    "node_modules/@wooorm/starry-night": {
-
      "version": "3.3.0",
-
      "resolved": "https://registry.npmjs.org/@wooorm/starry-night/-/starry-night-3.3.0.tgz",
-
      "integrity": "sha512-7PmyIDWz3/Yj7vd6eqVlbyaWyZmrERtxx1mwHDucnrQeSKFr3Grr8iqUbmd01pREG72HL4DPFQP9mw9U6jbjvA==",
+
      "version": "3.4.0",
+
      "resolved": "https://registry.npmjs.org/@wooorm/starry-night/-/starry-night-3.4.0.tgz",
+
      "integrity": "sha512-6MeHZWLJFl+NJhwj8ehfNTIEtCRph+g8/MVvBYiOAt8CgMoysH08ikouyIUUO42Fl8whHz3d+tdwUHQeuQqQkg==",
      "dependencies": {
        "@types/hast": "^3.0.0",
        "import-meta-resolve": "^4.0.0",
@@ -1471,9 +1505,9 @@
      }
    },
    "node_modules/acorn": {
-
      "version": "8.11.3",
-
      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
-
      "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+
      "version": "8.12.0",
+
      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz",
+
      "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
      "bin": {
        "acorn": "bin/acorn"
      },
@@ -1491,10 +1525,13 @@
      }
    },
    "node_modules/acorn-walk": {
-
      "version": "8.3.2",
-
      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
-
      "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
+
      "version": "8.3.3",
+
      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz",
+
      "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==",
      "dev": true,
+
      "dependencies": {
+
        "acorn": "^8.11.0"
+
      },
      "engines": {
        "node": ">=0.4.0"
      }
@@ -1595,9 +1632,9 @@
      "dev": true
    },
    "node_modules/axios": {
-
      "version": "1.6.8",
-
      "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz",
-
      "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
+
      "version": "1.7.2",
+
      "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz",
+
      "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
      "dev": true,
      "dependencies": {
        "follow-redirects": "^1.15.6",
@@ -1625,9 +1662,9 @@
      "dev": true
    },
    "node_modules/base-x": {
-
      "version": "4.0.0",
-
      "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz",
-
      "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw=="
+
      "version": "5.0.0",
+
      "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.0.tgz",
+
      "integrity": "sha512-sMW3VGSX1QWVFA6l8U62MLKz29rRfpTlYdCqLdpLo1/Yd4zZwSbnUaDfciIAowAqvq7YFnWq9hrhdg1KYgc1lQ=="
    },
    "node_modules/base64-js": {
      "version": "1.5.1",
@@ -1670,23 +1707,23 @@
      }
    },
    "node_modules/braces": {
-
      "version": "3.0.2",
-
      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
-
      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+
      "version": "3.0.3",
+
      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+
      "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
      "dev": true,
      "dependencies": {
-
        "fill-range": "^7.0.1"
+
        "fill-range": "^7.1.1"
      },
      "engines": {
        "node": ">=8"
      }
    },
    "node_modules/bs58": {
-
      "version": "5.0.0",
-
      "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz",
-
      "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==",
+
      "version": "6.0.0",
+
      "resolved": "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz",
+
      "integrity": "sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==",
      "dependencies": {
-
        "base-x": "^4.0.0"
+
        "base-x": "^5.0.0"
      }
    },
    "node_modules/buffer": {
@@ -1713,12 +1750,12 @@
      }
    },
    "node_modules/buffer-crc32": {
-
      "version": "0.2.13",
-
      "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
-
      "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+
      "version": "1.0.0",
+
      "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz",
+
      "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==",
      "dev": true,
      "engines": {
-
        "node": "*"
+
        "node": ">=8.0.0"
      }
    },
    "node_modules/cac": {
@@ -1923,6 +1960,12 @@
      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
      "dev": true
    },
+
    "node_modules/confbox": {
+
      "version": "0.1.7",
+
      "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz",
+
      "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==",
+
      "dev": true
+
    },
    "node_modules/config": {
      "version": "3.3.11",
      "resolved": "https://registry.npmjs.org/config/-/config-3.3.11.tgz",
@@ -1982,9 +2025,9 @@
      }
    },
    "node_modules/debug": {
-
      "version": "4.3.4",
-
      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
-
      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+
      "version": "4.3.5",
+
      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
+
      "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
      "dev": true,
      "dependencies": {
        "ms": "2.1.2"
@@ -1999,9 +2042,9 @@
      }
    },
    "node_modules/deep-eql": {
-
      "version": "4.1.3",
-
      "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz",
-
      "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==",
+
      "version": "4.1.4",
+
      "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz",
+
      "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==",
      "dev": true,
      "dependencies": {
        "type-detect": "^4.0.0"
@@ -2106,9 +2149,9 @@
      }
    },
    "node_modules/dompurify": {
-
      "version": "3.0.11",
-
      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.11.tgz",
-
      "integrity": "sha512-Fan4uMuyB26gFV3ovPoEoQbxRRPfTu3CvImyZnhGq5fsIEO+gEFLp45ISFt+kQBWsK5ulDdT0oV28jS1UrwQLg=="
+
      "version": "3.1.5",
+
      "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.5.tgz",
+
      "integrity": "sha512-lwG+n5h8QNpxtyrJW/gJWckL+1/DQiYMX8f7t8Z2AZTPw1esVrqjI63i7Zc2Gz0aKzLVMYC1V1PL/ky+aY/NgA=="
    },
    "node_modules/entities": {
      "version": "4.5.0",
@@ -2128,9 +2171,9 @@
      "dev": true
    },
    "node_modules/esbuild": {
-
      "version": "0.20.2",
-
      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz",
-
      "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==",
+
      "version": "0.21.5",
+
      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
+
      "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
      "dev": true,
      "hasInstallScript": true,
      "bin": {
@@ -2140,29 +2183,29 @@
        "node": ">=12"
      },
      "optionalDependencies": {
-
        "@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"
+
        "@esbuild/aix-ppc64": "0.21.5",
+
        "@esbuild/android-arm": "0.21.5",
+
        "@esbuild/android-arm64": "0.21.5",
+
        "@esbuild/android-x64": "0.21.5",
+
        "@esbuild/darwin-arm64": "0.21.5",
+
        "@esbuild/darwin-x64": "0.21.5",
+
        "@esbuild/freebsd-arm64": "0.21.5",
+
        "@esbuild/freebsd-x64": "0.21.5",
+
        "@esbuild/linux-arm": "0.21.5",
+
        "@esbuild/linux-arm64": "0.21.5",
+
        "@esbuild/linux-ia32": "0.21.5",
+
        "@esbuild/linux-loong64": "0.21.5",
+
        "@esbuild/linux-mips64el": "0.21.5",
+
        "@esbuild/linux-ppc64": "0.21.5",
+
        "@esbuild/linux-riscv64": "0.21.5",
+
        "@esbuild/linux-s390x": "0.21.5",
+
        "@esbuild/linux-x64": "0.21.5",
+
        "@esbuild/netbsd-x64": "0.21.5",
+
        "@esbuild/openbsd-x64": "0.21.5",
+
        "@esbuild/sunos-x64": "0.21.5",
+
        "@esbuild/win32-arm64": "0.21.5",
+
        "@esbuild/win32-ia32": "0.21.5",
+
        "@esbuild/win32-x64": "0.21.5"
      }
    },
    "node_modules/escape-string-regexp": {
@@ -2233,9 +2276,9 @@
      }
    },
    "node_modules/eslint-compat-utils": {
-
      "version": "0.5.0",
-
      "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz",
-
      "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
+
      "version": "0.5.1",
+
      "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz",
+
      "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==",
      "dev": true,
      "dependencies": {
        "semver": "^7.5.4"
@@ -2260,23 +2303,22 @@
      }
    },
    "node_modules/eslint-plugin-svelte": {
-
      "version": "2.39.0",
-
      "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.39.0.tgz",
-
      "integrity": "sha512-FXktBLXsrxbA+6ZvJK2z/sQOrUKyzSg3fNWK5h0reSCjr2fjAsc9ai/s/JvSl4Hgvz3nYVtTIMwarZH5RcB7BA==",
+
      "version": "2.41.0",
+
      "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.41.0.tgz",
+
      "integrity": "sha512-gjU9Q/psxbWG1VNwYbEb0Q6U4W5PBGaDpYmO2zlQ+zlAMVS3Qt0luAK0ACi/tMSwRK6JENiySvMyJbO0YWmXSg==",
      "dev": true,
      "dependencies": {
        "@eslint-community/eslint-utils": "^4.4.0",
        "@jridgewell/sourcemap-codec": "^1.4.15",
-
        "debug": "^4.3.4",
-
        "eslint-compat-utils": "^0.5.0",
+
        "eslint-compat-utils": "^0.5.1",
        "esutils": "^2.0.3",
-
        "known-css-properties": "^0.31.0",
+
        "known-css-properties": "^0.34.0",
        "postcss": "^8.4.38",
        "postcss-load-config": "^3.1.4",
        "postcss-safe-parser": "^6.0.0",
-
        "postcss-selector-parser": "^6.0.16",
-
        "semver": "^7.6.0",
-
        "svelte-eslint-parser": ">=0.36.0 <1.0.0"
+
        "postcss-selector-parser": "^6.1.0",
+
        "semver": "^7.6.2",
+
        "svelte-eslint-parser": "^0.39.2"
      },
      "engines": {
        "node": "^14.17.0 || >=16.0.0"
@@ -2286,7 +2328,7 @@
      },
      "peerDependencies": {
        "eslint": "^7.0.0 || ^8.0.0-0 || ^9.0.0-0",
-
        "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0-next.112"
+
        "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0-next.155"
      },
      "peerDependenciesMeta": {
        "svelte": {
@@ -2467,9 +2509,9 @@
      }
    },
    "node_modules/execa": {
-
      "version": "9.1.0",
-
      "resolved": "https://registry.npmjs.org/execa/-/execa-9.1.0.tgz",
-
      "integrity": "sha512-lSgHc4Elo2m6bUDhc3Hl/VxvUDJdQWI40RZ4KMY9bKRc+hgMOT7II/JjbNDhI8VnMtrCb7U/fhpJIkLORZozWw==",
+
      "version": "9.3.0",
+
      "resolved": "https://registry.npmjs.org/execa/-/execa-9.3.0.tgz",
+
      "integrity": "sha512-l6JFbqnHEadBoVAVpN5dl2yCyfX28WoBAGaoQcNmLLSedOxTxcn2Qa83s8I/PA5i56vWru2OHOtrwF7Om2vqlg==",
      "dev": true,
      "dependencies": {
        "@sindresorhus/merge-streams": "^4.0.0",
@@ -2486,7 +2528,7 @@
        "yoctocolors": "^2.0.0"
      },
      "engines": {
-
        "node": ">=18"
+
        "node": "^18.19.0 || >=20.5.0"
      },
      "funding": {
        "url": "https://github.com/sindresorhus/execa?sponsor=1"
@@ -2586,9 +2628,9 @@
      }
    },
    "node_modules/fill-range": {
-
      "version": "7.0.1",
-
      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
-
      "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+
      "version": "7.1.1",
+
      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+
      "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
      "dev": true,
      "dependencies": {
        "to-regex-range": "^5.0.1"
@@ -2754,6 +2796,7 @@
      "version": "7.2.3",
      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+
      "deprecated": "Glob versions prior to v9 are no longer supported",
      "dev": true,
      "dependencies": {
        "fs.realpath": "^1.0.0",
@@ -2805,9 +2848,9 @@
      }
    },
    "node_modules/globals": {
-
      "version": "15.3.0",
-
      "resolved": "https://registry.npmjs.org/globals/-/globals-15.3.0.tgz",
-
      "integrity": "sha512-cCdyVjIUVTtX8ZsPkq1oCsOsLmGIswqnjZYMJJTGaNApj1yHtLSymKhwH51ttirREn75z3p4k051clwg7rvNKA==",
+
      "version": "15.6.0",
+
      "resolved": "https://registry.npmjs.org/globals/-/globals-15.6.0.tgz",
+
      "integrity": "sha512-UzcJi88Hw//CurUIRa9Jxb0vgOCcuD/MNjwmXp633cyaRKkCWACkoqHCtfZv43b1kqXGg/fpOa8bwgacCeXsVg==",
      "dev": true,
      "engines": {
        "node": ">=18"
@@ -2848,9 +2891,9 @@
      "dev": true
    },
    "node_modules/happy-dom": {
-
      "version": "14.3.8",
-
      "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-14.3.8.tgz",
-
      "integrity": "sha512-jP7p/VQJ08lbIoCsw1Adna3RA86eE+2CNkqvJRWIhrKP7XKZ0e0s2TJSt5lwGS4b7x0z0Ztw0A9P4uQGMHPiiA==",
+
      "version": "14.12.3",
+
      "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-14.12.3.tgz",
+
      "integrity": "sha512-vsYlEs3E9gLwA1Hp+w3qzu+RUDFf4VTT8cyKqVICoZ2k7WM++Qyd2LwzyTi5bqMJFiIC/vNpTDYuxdreENRK/g==",
      "dev": true,
      "dependencies": {
        "entities": "^4.5.0",
@@ -2902,9 +2945,9 @@
      }
    },
    "node_modules/hast-util-raw": {
-
      "version": "9.0.2",
-
      "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.2.tgz",
-
      "integrity": "sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==",
+
      "version": "9.0.4",
+
      "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.4.tgz",
+
      "integrity": "sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==",
      "dependencies": {
        "@types/hast": "^3.0.0",
        "@types/unist": "^3.0.0",
@@ -2940,9 +2983,9 @@
      }
    },
    "node_modules/hast-util-to-html": {
-
      "version": "9.0.0",
-
      "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.0.tgz",
-
      "integrity": "sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==",
+
      "version": "9.0.1",
+
      "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.1.tgz",
+
      "integrity": "sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ==",
      "dependencies": {
        "@types/hast": "^3.0.0",
        "@types/unist": "^3.0.0",
@@ -3071,9 +3114,9 @@
      }
    },
    "node_modules/import-meta-resolve": {
-
      "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==",
+
      "version": "4.1.0",
+
      "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
+
      "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==",
      "funding": {
        "type": "github",
        "url": "https://github.com/sponsors/wooorm"
@@ -3092,6 +3135,7 @@
      "version": "1.0.6",
      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+
      "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
      "dev": true,
      "dependencies": {
        "once": "^1.3.0",
@@ -3219,9 +3263,9 @@
      "dev": true
    },
    "node_modules/joi": {
-
      "version": "17.12.2",
-
      "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.2.tgz",
-
      "integrity": "sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==",
+
      "version": "17.13.3",
+
      "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz",
+
      "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==",
      "dev": true,
      "dependencies": {
        "@hapi/hoek": "^9.3.0",
@@ -3232,9 +3276,9 @@
      }
    },
    "node_modules/js-tokens": {
-
      "version": "8.0.3",
-
      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.3.tgz",
-
      "integrity": "sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==",
+
      "version": "9.0.0",
+
      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz",
+
      "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==",
      "dev": true
    },
    "node_modules/js-yaml": {
@@ -3278,12 +3322,6 @@
        "node": ">=6"
      }
    },
-
    "node_modules/jsonc-parser": {
-
      "version": "3.2.1",
-
      "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
-
      "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==",
-
      "dev": true
-
    },
    "node_modules/jsonfile": {
      "version": "5.0.0",
      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-5.0.0.tgz",
@@ -3344,9 +3382,9 @@
      }
    },
    "node_modules/known-css-properties": {
-
      "version": "0.31.0",
-
      "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.31.0.tgz",
-
      "integrity": "sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ==",
+
      "version": "0.34.0",
+
      "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz",
+
      "integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==",
      "dev": true
    },
    "node_modules/levn": {
@@ -3442,20 +3480,17 @@
      }
    },
    "node_modules/magic-string": {
-
      "version": "0.30.8",
-
      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz",
-
      "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==",
+
      "version": "0.30.10",
+
      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz",
+
      "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
      "dependencies": {
        "@jridgewell/sourcemap-codec": "^1.4.15"
-
      },
-
      "engines": {
-
        "node": ">=12"
      }
    },
    "node_modules/marked": {
-
      "version": "12.0.1",
-
      "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.1.tgz",
-
      "integrity": "sha512-Y1/V2yafOcOdWQCX0XpAKXzDakPOpn6U0YLxTJs3cww6VxOzZV1BTOOYWLvH3gX38cq+iLwljHHTnMtlDfg01Q==",
+
      "version": "13.0.0",
+
      "resolved": "https://registry.npmjs.org/marked/-/marked-13.0.0.tgz",
+
      "integrity": "sha512-VTeDCd9txf4KLLljUZ0nljE/Incb9SrWuueE44QVuU0pkOdh4sfCeW1Z6lPcxyDRSVY6rm8db/0OPaN75RNUmw==",
      "bin": {
        "marked": "bin/marked.js"
      },
@@ -3463,28 +3498,44 @@
        "node": ">= 18"
      }
    },
+
    "node_modules/marked-emoji": {
+
      "version": "1.4.1",
+
      "resolved": "https://registry.npmjs.org/marked-emoji/-/marked-emoji-1.4.1.tgz",
+
      "integrity": "sha512-3xHWQn8XD1LyhMpHxWpHTDWBZ9bpXLlW8JIqvyXTO6he7okKIB/W9fD/3fTg0DQuZlSQvPZ6Ub5hN6Rnmn7j9g==",
+
      "peerDependencies": {
+
        "marked": ">=4 <14"
+
      }
+
    },
+
    "node_modules/marked-footnote": {
+
      "version": "1.2.2",
+
      "resolved": "https://registry.npmjs.org/marked-footnote/-/marked-footnote-1.2.2.tgz",
+
      "integrity": "sha512-TFBEHwHLSSedub7P6XHHs+dMMOnDeNV5+kFDo4trU//gDd8iM57lg9jr9NGwDifPwLllHwKmFcRNp5uYvO2Fnw==",
+
      "peerDependencies": {
+
        "marked": ">=7.0.0"
+
      }
+
    },
    "node_modules/marked-katex-extension": {
-
      "version": "5.0.1",
-
      "resolved": "https://registry.npmjs.org/marked-katex-extension/-/marked-katex-extension-5.0.1.tgz",
-
      "integrity": "sha512-4HYoazLdDpzaEcjKSo334lM4tS38lySWXXwctiN2Bo4Pw3sfuhF0CSiUf92GCGSZiVeTB3diulCGGFdhlKz1zQ==",
+
      "version": "5.0.2",
+
      "resolved": "https://registry.npmjs.org/marked-katex-extension/-/marked-katex-extension-5.0.2.tgz",
+
      "integrity": "sha512-K8Zq0a1Hvs/3i67ZkealrS0IxGiBOnrYeQmn2lAT34uvMcI+BtwdM35qOWCDIpgyBCABYppIQL605ggo+aQUuQ==",
      "dependencies": {
        "@types/katex": "^0.16.7"
      },
      "peerDependencies": {
        "katex": ">=0.16 <0.17",
-
        "marked": ">=4 <13"
+
        "marked": ">=4 <14"
      }
    },
    "node_modules/marked-linkify-it": {
-
      "version": "3.1.9",
-
      "resolved": "https://registry.npmjs.org/marked-linkify-it/-/marked-linkify-it-3.1.9.tgz",
-
      "integrity": "sha512-cYAC25uDtTYm+4nsMjXUqGnZdZlvmmoyx4aCKRgj0yDmKEzV7J2i/MW4z7qKVFJN2BI7FEKmy5k7ru1DDkpqFA==",
+
      "version": "3.1.10",
+
      "resolved": "https://registry.npmjs.org/marked-linkify-it/-/marked-linkify-it-3.1.10.tgz",
+
      "integrity": "sha512-qPISGex5FZLPdpxCoUhTyoxvvz6pJfseSqU0FOqCFsxeOYAKDbVmYEoGPMCJ2Wyjxf9b8Jexgcw8lgR/jPeUdQ==",
      "dependencies": {
-
        "@types/linkify-it": "^3.0.5",
+
        "@types/linkify-it": "^5.0.0",
        "linkify-it": "^5.0.0"
      },
      "peerDependencies": {
-
        "marked": ">=4 <13"
+
        "marked": ">=4 <14"
      }
    },
    "node_modules/md5": {
@@ -3498,9 +3549,9 @@
      }
    },
    "node_modules/mdast-util-to-hast": {
-
      "version": "13.1.0",
-
      "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz",
-
      "integrity": "sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==",
+
      "version": "13.2.0",
+
      "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz",
+
      "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==",
      "dependencies": {
        "@types/hast": "^3.0.0",
        "@types/mdast": "^4.0.0",
@@ -3622,12 +3673,12 @@
      ]
    },
    "node_modules/micromatch": {
-
      "version": "4.0.5",
-
      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
-
      "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+
      "version": "4.0.7",
+
      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
+
      "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
      "dev": true,
      "dependencies": {
-
        "braces": "^3.0.2",
+
        "braces": "^3.0.3",
        "picomatch": "^2.3.1"
      },
      "engines": {
@@ -3713,15 +3764,15 @@
      }
    },
    "node_modules/mlly": {
-
      "version": "1.6.1",
-
      "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.6.1.tgz",
-
      "integrity": "sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==",
+
      "version": "1.7.1",
+
      "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz",
+
      "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==",
      "dev": true,
      "dependencies": {
        "acorn": "^8.11.3",
        "pathe": "^1.1.2",
-
        "pkg-types": "^1.0.3",
-
        "ufo": "^1.3.2"
+
        "pkg-types": "^1.1.1",
+
        "ufo": "^1.5.3"
      }
    },
    "node_modules/mri": {
@@ -3764,9 +3815,9 @@
      "dev": true
    },
    "node_modules/nise": {
-
      "version": "5.1.9",
-
      "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz",
-
      "integrity": "sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==",
+
      "version": "6.0.0",
+
      "resolved": "https://registry.npmjs.org/nise/-/nise-6.0.0.tgz",
+
      "integrity": "sha512-K8ePqo9BFvN31HXwEtTNGzgrPpmvgciDsFz8aztFjt4LqKO/JeFD8tBOeuDiCMXrIl/m1YvfH8auSpxfaD09wg==",
      "dev": true,
      "dependencies": {
        "@sinonjs/commons": "^3.0.0",
@@ -3837,17 +3888,17 @@
      }
    },
    "node_modules/optionator": {
-
      "version": "0.9.3",
-
      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
-
      "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
+
      "version": "0.9.4",
+
      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+
      "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
      "dev": true,
      "dependencies": {
-
        "@aashutoshrathi/word-wrap": "^1.2.3",
        "deep-is": "^0.1.3",
        "fast-levenshtein": "^2.0.6",
        "levn": "^0.4.1",
        "prelude-ls": "^1.2.1",
-
        "type-check": "^0.4.0"
+
        "type-check": "^0.4.0",
+
        "word-wrap": "^1.2.5"
      },
      "engines": {
        "node": ">= 0.8.0"
@@ -3946,9 +3997,9 @@
      }
    },
    "node_modules/path-to-regexp": {
-
      "version": "6.2.1",
-
      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
-
      "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==",
+
      "version": "6.2.2",
+
      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz",
+
      "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==",
      "dev": true
    },
    "node_modules/path-type": {
@@ -3986,9 +4037,9 @@
      }
    },
    "node_modules/picocolors": {
-
      "version": "1.0.0",
-
      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
-
      "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+
      "version": "1.0.1",
+
      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
+
      "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
      "dev": true
    },
    "node_modules/picomatch": {
@@ -4004,31 +4055,31 @@
      }
    },
    "node_modules/pkg-types": {
-
      "version": "1.0.3",
-
      "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz",
-
      "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==",
+
      "version": "1.1.1",
+
      "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.1.tgz",
+
      "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==",
      "dev": true,
      "dependencies": {
-
        "jsonc-parser": "^3.2.0",
-
        "mlly": "^1.2.0",
-
        "pathe": "^1.1.0"
+
        "confbox": "^0.1.7",
+
        "mlly": "^1.7.0",
+
        "pathe": "^1.1.2"
      }
    },
    "node_modules/plausible-tracker": {
-
      "version": "0.3.8",
-
      "resolved": "https://registry.npmjs.org/plausible-tracker/-/plausible-tracker-0.3.8.tgz",
-
      "integrity": "sha512-lmOWYQ7s9KOUJ1R+YTOR3HrjdbxIS2Z4de0P/Jx2dQPteznJl2eX3tXxKClpvbfyGP59B5bbhW8ftN59HbbFSg==",
+
      "version": "0.3.9",
+
      "resolved": "https://registry.npmjs.org/plausible-tracker/-/plausible-tracker-0.3.9.tgz",
+
      "integrity": "sha512-hMhneYm3GCPyQon88SZrVJx+LlqhM1kZFQbuAgXPoh/Az2YvO1B6bitT9qlhpiTdJlsT5lsr3gPmzoVjb5CDXA==",
      "engines": {
        "node": ">=10"
      }
    },
    "node_modules/playwright": {
-
      "version": "1.42.1",
-
      "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.42.1.tgz",
-
      "integrity": "sha512-PgwB03s2DZBcNRoW+1w9E+VkLBxweib6KTXM0M3tkiT4jVxKSi6PmVJ591J+0u10LUrgxB7dLRbiJqO5s2QPMg==",
+
      "version": "1.44.1",
+
      "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.1.tgz",
+
      "integrity": "sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==",
      "dev": true,
      "dependencies": {
-
        "playwright-core": "1.42.1"
+
        "playwright-core": "1.44.1"
      },
      "bin": {
        "playwright": "cli.js"
@@ -4041,9 +4092,9 @@
      }
    },
    "node_modules/playwright-core": {
-
      "version": "1.42.1",
-
      "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.42.1.tgz",
-
      "integrity": "sha512-mxz6zclokgrke9p1vtdy/COWBH+eOZgYUVVU34C73M+4j4HLlQJHtfcqiqqxpP0o8HhMkflvfbquLX5dg6wlfA==",
+
      "version": "1.44.1",
+
      "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.1.tgz",
+
      "integrity": "sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==",
      "dev": true,
      "bin": {
        "playwright-core": "cli.js"
@@ -4152,9 +4203,9 @@
      }
    },
    "node_modules/postcss-selector-parser": {
-
      "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==",
+
      "version": "6.1.0",
+
      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz",
+
      "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==",
      "dev": true,
      "dependencies": {
        "cssesc": "^3.0.0",
@@ -4174,9 +4225,9 @@
      }
    },
    "node_modules/prettier": {
-
      "version": "3.2.5",
-
      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
-
      "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
+
      "version": "3.3.2",
+
      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz",
+
      "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==",
      "dev": true,
      "bin": {
        "prettier": "bin/prettier.cjs"
@@ -4189,9 +4240,9 @@
      }
    },
    "node_modules/prettier-plugin-svelte": {
-
      "version": "3.2.2",
-
      "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.2.2.tgz",
-
      "integrity": "sha512-ZzzE/wMuf48/1+Lf2Ffko0uDa6pyCfgHV6+uAhtg2U0AAXGrhCSW88vEJNAkAxW5qyrFY1y1zZ4J8TgHrjW++Q==",
+
      "version": "3.2.5",
+
      "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.2.5.tgz",
+
      "integrity": "sha512-vP/M/Goc8z4iVIvrwXwbrYVjJgA0Hf8PO1G4LBh/ocSt6vUP6sLvyu9F3ABEGr+dbKyxZjEKLkeFsWy/yYl0HQ==",
      "dev": true,
      "peerDependencies": {
        "prettier": "^3.0.0",
@@ -4228,9 +4279,9 @@
      }
    },
    "node_modules/property-information": {
-
      "version": "6.4.1",
-
      "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.1.tgz",
-
      "integrity": "sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==",
+
      "version": "6.5.0",
+
      "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
+
      "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
      "funding": {
        "type": "github",
        "url": "https://github.com/sponsors/wooorm"
@@ -4272,9 +4323,9 @@
      ]
    },
    "node_modules/react-is": {
-
      "version": "18.2.0",
-
      "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
-
      "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
+
      "version": "18.3.1",
+
      "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+
      "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
      "dev": true
    },
    "node_modules/readdirp": {
@@ -4312,6 +4363,7 @@
      "version": "3.0.2",
      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+
      "deprecated": "Rimraf versions prior to v4 are no longer supported",
      "dev": true,
      "dependencies": {
        "glob": "^7.1.3"
@@ -4324,9 +4376,9 @@
      }
    },
    "node_modules/rollup": {
-
      "version": "4.13.0",
-
      "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz",
-
      "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==",
+
      "version": "4.18.0",
+
      "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz",
+
      "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==",
      "dev": true,
      "dependencies": {
        "@types/estree": "1.0.5"
@@ -4339,19 +4391,22 @@
        "npm": ">=8.0.0"
      },
      "optionalDependencies": {
-
        "@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",
+
        "@rollup/rollup-android-arm-eabi": "4.18.0",
+
        "@rollup/rollup-android-arm64": "4.18.0",
+
        "@rollup/rollup-darwin-arm64": "4.18.0",
+
        "@rollup/rollup-darwin-x64": "4.18.0",
+
        "@rollup/rollup-linux-arm-gnueabihf": "4.18.0",
+
        "@rollup/rollup-linux-arm-musleabihf": "4.18.0",
+
        "@rollup/rollup-linux-arm64-gnu": "4.18.0",
+
        "@rollup/rollup-linux-arm64-musl": "4.18.0",
+
        "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0",
+
        "@rollup/rollup-linux-riscv64-gnu": "4.18.0",
+
        "@rollup/rollup-linux-s390x-gnu": "4.18.0",
+
        "@rollup/rollup-linux-x64-gnu": "4.18.0",
+
        "@rollup/rollup-linux-x64-musl": "4.18.0",
+
        "@rollup/rollup-win32-arm64-msvc": "4.18.0",
+
        "@rollup/rollup-win32-ia32-msvc": "4.18.0",
+
        "@rollup/rollup-win32-x64-msvc": "4.18.0",
        "fsevents": "~2.3.2"
      }
    },
@@ -4415,6 +4470,7 @@
      "version": "2.7.1",
      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
      "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+
      "deprecated": "Rimraf versions prior to v4 are no longer supported",
      "dev": true,
      "dependencies": {
        "glob": "^7.1.3"
@@ -4436,13 +4492,10 @@
      }
    },
    "node_modules/semver": {
-
      "version": "7.6.0",
-
      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
-
      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+
      "version": "7.6.2",
+
      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+
      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
      "dev": true,
-
      "dependencies": {
-
        "lru-cache": "^6.0.0"
-
      },
      "bin": {
        "semver": "bin/semver.js"
      },
@@ -4450,18 +4503,6 @@
        "node": ">=10"
      }
    },
-
    "node_modules/semver/node_modules/lru-cache": {
-
      "version": "6.0.0",
-
      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-
      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-
      "dev": true,
-
      "dependencies": {
-
        "yallist": "^4.0.0"
-
      },
-
      "engines": {
-
        "node": ">=10"
-
      }
-
    },
    "node_modules/shebang-command": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -4502,17 +4543,17 @@
      }
    },
    "node_modules/sinon": {
-
      "version": "17.0.1",
-
      "resolved": "https://registry.npmjs.org/sinon/-/sinon-17.0.1.tgz",
-
      "integrity": "sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==",
+
      "version": "18.0.0",
+
      "resolved": "https://registry.npmjs.org/sinon/-/sinon-18.0.0.tgz",
+
      "integrity": "sha512-+dXDXzD1sBO6HlmZDd7mXZCR/y5ECiEiGCBSGuFD/kZ0bDTofPYc6JaeGmPSF+1j1MejGUWkORbYOLDyvqCWpA==",
      "dev": true,
      "dependencies": {
-
        "@sinonjs/commons": "^3.0.0",
+
        "@sinonjs/commons": "^3.0.1",
        "@sinonjs/fake-timers": "^11.2.2",
        "@sinonjs/samsam": "^8.0.0",
-
        "diff": "^5.1.0",
-
        "nise": "^5.1.5",
-
        "supports-color": "^7.2.0"
+
        "diff": "^5.2.0",
+
        "nise": "^6.0.0",
+
        "supports-color": "^7"
      },
      "funding": {
        "type": "opencollective",
@@ -4529,13 +4570,13 @@
      }
    },
    "node_modules/sorcery": {
-
      "version": "0.11.0",
-
      "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz",
-
      "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==",
+
      "version": "0.11.1",
+
      "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.1.tgz",
+
      "integrity": "sha512-o7npfeJE6wi6J9l0/5LKshFzZ2rMatRiCDwYeDQaOzqdzRJwALhX7mk/A/ecg6wjMu7wdZbmXfD2S/vpOg0bdQ==",
      "dev": true,
      "dependencies": {
        "@jridgewell/sourcemap-codec": "^1.4.14",
-
        "buffer-crc32": "^0.2.5",
+
        "buffer-crc32": "^1.0.0",
        "minimist": "^1.2.0",
        "sander": "^0.5.0"
      },
@@ -4573,9 +4614,9 @@
      "dev": true
    },
    "node_modules/stringify-entities": {
-
      "version": "4.0.3",
-
      "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz",
-
      "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==",
+
      "version": "4.0.4",
+
      "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
+
      "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
      "dependencies": {
        "character-entities-html4": "^2.0.0",
        "character-entities-legacy": "^3.0.0"
@@ -4642,12 +4683,12 @@
      }
    },
    "node_modules/strip-literal": {
-
      "version": "2.0.0",
-
      "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.0.0.tgz",
-
      "integrity": "sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==",
+
      "version": "2.1.0",
+
      "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz",
+
      "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==",
      "dev": true,
      "dependencies": {
-
        "js-tokens": "^8.0.2"
+
        "js-tokens": "^9.0.0"
      },
      "funding": {
        "url": "https://github.com/sponsors/antfu"
@@ -4666,9 +4707,9 @@
      }
    },
    "node_modules/svelte": {
-
      "version": "4.2.12",
-
      "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.12.tgz",
-
      "integrity": "sha512-d8+wsh5TfPwqVzbm4/HCXC783/KPHV60NvwitJnyTA5lWn1elhXMNWhXGCJ7PwPa8qFUnyJNIyuIRt2mT0WMug==",
+
      "version": "4.2.18",
+
      "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.18.tgz",
+
      "integrity": "sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==",
      "dependencies": {
        "@ampproject/remapping": "^2.2.1",
        "@jridgewell/sourcemap-codec": "^1.4.15",
@@ -4690,9 +4731,9 @@
      }
    },
    "node_modules/svelte-check": {
-
      "version": "3.6.8",
-
      "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.6.8.tgz",
-
      "integrity": "sha512-rhXU7YCDtL+lq2gCqfJDXKTxJfSsCgcd08d7VWBFxTw6IWIbMWSaASbAOD3N0VV9TYSSLUqEBiratLd8WxAJJA==",
+
      "version": "3.8.1",
+
      "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.8.1.tgz",
+
      "integrity": "sha512-KlQ0TRVe01mdvh49Ylkr9FQxO/UWbQOtaIrccl3gjgkvby1TxY41VkT7ijCl6i29FjaJPE4m6YGmhdqov0MfkA==",
      "dev": true,
      "dependencies": {
        "@jridgewell/trace-mapping": "^0.3.17",
@@ -4712,9 +4753,9 @@
      }
    },
    "node_modules/svelte-eslint-parser": {
-
      "version": "0.36.0",
-
      "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.36.0.tgz",
-
      "integrity": "sha512-/6YmUSr0FAVxW8dXNdIMydBnddPMHzaHirAZ7RrT21XYdgGGZMh0LQG6CZsvAFS4r2Y4ItUuCQc8TQ3urB30mQ==",
+
      "version": "0.39.2",
+
      "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.39.2.tgz",
+
      "integrity": "sha512-87UwLuWTtDIuzWOhOi1zBL5wYVd07M5BK1qZ57YmXJB5/UmjUNJqGy3XSOhPqjckY1dATNV9y+mx+nI0WH6HPA==",
      "dev": true,
      "dependencies": {
        "eslint-scope": "^7.2.2",
@@ -4739,9 +4780,9 @@
      }
    },
    "node_modules/svelte-hmr": {
-
      "version": "0.15.3",
-
      "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.3.tgz",
-
      "integrity": "sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==",
+
      "version": "0.16.0",
+
      "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.16.0.tgz",
+
      "integrity": "sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==",
      "dev": true,
      "engines": {
        "node": "^12.20 || ^14.13.1 || >= 16"
@@ -4751,9 +4792,9 @@
      }
    },
    "node_modules/svelte-preprocess": {
-
      "version": "5.1.3",
-
      "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.3.tgz",
-
      "integrity": "sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==",
+
      "version": "5.1.4",
+
      "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.4.tgz",
+
      "integrity": "sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==",
      "dev": true,
      "hasInstallScript": true,
      "dependencies": {
@@ -4764,8 +4805,7 @@
        "strip-indent": "^3.0.0"
      },
      "engines": {
-
        "node": ">= 16.0.0",
-
        "pnpm": "^8.0.0"
+
        "node": ">= 16.0.0"
      },
      "peerDependencies": {
        "@babel/core": "^7.10.2",
@@ -4820,15 +4860,15 @@
      "dev": true
    },
    "node_modules/tinybench": {
-
      "version": "2.6.0",
-
      "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.6.0.tgz",
-
      "integrity": "sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==",
+
      "version": "2.8.0",
+
      "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz",
+
      "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==",
      "dev": true
    },
    "node_modules/tinypool": {
-
      "version": "0.8.3",
-
      "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.3.tgz",
-
      "integrity": "sha512-Ud7uepAklqRH1bvwy22ynrliC7Dljz7Tm8M/0RBUW+YRa4YHhZ6e4PpgE+fu1zr/WqB1kbeuVrdfeuyIBpy4tw==",
+
      "version": "0.8.4",
+
      "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz",
+
      "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==",
      "dev": true,
      "engines": {
        "node": ">=14.0.0"
@@ -4877,9 +4917,9 @@
      }
    },
    "node_modules/tslib": {
-
      "version": "2.6.2",
-
      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
-
      "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
+
      "version": "2.6.3",
+
      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
+
      "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ=="
    },
    "node_modules/twemoji": {
      "version": "14.0.2",
@@ -4931,9 +4971,9 @@
      }
    },
    "node_modules/typescript": {
-
      "version": "5.4.3",
-
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz",
-
      "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==",
+
      "version": "5.5.2",
+
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz",
+
      "integrity": "sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==",
      "dev": true,
      "bin": {
        "tsc": "bin/tsc",
@@ -4944,14 +4984,14 @@
      }
    },
    "node_modules/typescript-eslint": {
-
      "version": "7.10.0",
-
      "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.10.0.tgz",
-
      "integrity": "sha512-thO8nyqptXdfWHQrMJJiJyftpW8aLmwRNs11xA8pSrXneoclFPstQZqXvDWuH1WNL4CHffqHvYUeCHTit6yfhQ==",
+
      "version": "7.13.1",
+
      "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.13.1.tgz",
+
      "integrity": "sha512-pvLEuRs8iS9s3Cnp/Wt//hpK8nKc8hVa3cLljHqzaJJQYP8oys8GUyIFqtlev+2lT/fqMPcyQko+HJ6iYK3nFA==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/eslint-plugin": "7.10.0",
-
        "@typescript-eslint/parser": "7.10.0",
-
        "@typescript-eslint/utils": "7.10.0"
+
        "@typescript-eslint/eslint-plugin": "7.13.1",
+
        "@typescript-eslint/parser": "7.13.1",
+
        "@typescript-eslint/utils": "7.13.1"
      },
      "engines": {
        "node": "^18.18.0 || >=20.0.0"
@@ -5113,13 +5153,13 @@
      }
    },
    "node_modules/vite": {
-
      "version": "5.2.6",
-
      "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.6.tgz",
-
      "integrity": "sha512-FPtnxFlSIKYjZ2eosBQamz4CbyrTizbZ3hnGJlh/wMtCrlp1Hah6AzBLjGI5I2urTfNnpovpHdrL6YRuBOPnCA==",
+
      "version": "5.3.1",
+
      "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz",
+
      "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==",
      "dev": true,
      "dependencies": {
-
        "esbuild": "^0.20.1",
-
        "postcss": "^8.4.36",
+
        "esbuild": "^0.21.3",
+
        "postcss": "^8.4.38",
        "rollup": "^4.13.0"
      },
      "bin": {
@@ -5168,9 +5208,9 @@
      }
    },
    "node_modules/vite-node": {
-
      "version": "1.4.0",
-
      "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.4.0.tgz",
-
      "integrity": "sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==",
+
      "version": "1.6.0",
+
      "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz",
+
      "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==",
      "dev": true,
      "dependencies": {
        "cac": "^6.7.14",
@@ -5227,16 +5267,16 @@
      }
    },
    "node_modules/vitest": {
-
      "version": "1.4.0",
-
      "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.4.0.tgz",
-
      "integrity": "sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==",
+
      "version": "1.6.0",
+
      "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz",
+
      "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==",
      "dev": true,
      "dependencies": {
-
        "@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",
+
        "@vitest/expect": "1.6.0",
+
        "@vitest/runner": "1.6.0",
+
        "@vitest/snapshot": "1.6.0",
+
        "@vitest/spy": "1.6.0",
+
        "@vitest/utils": "1.6.0",
        "acorn-walk": "^8.3.2",
        "chai": "^4.3.10",
        "debug": "^4.3.4",
@@ -5248,9 +5288,9 @@
        "std-env": "^3.5.0",
        "strip-literal": "^2.0.0",
        "tinybench": "^2.5.1",
-
        "tinypool": "^0.8.2",
+
        "tinypool": "^0.8.3",
        "vite": "^5.0.0",
-
        "vite-node": "1.4.0",
+
        "vite-node": "1.6.0",
        "why-is-node-running": "^2.2.2"
      },
      "bin": {
@@ -5265,8 +5305,8 @@
      "peerDependencies": {
        "@edge-runtime/vm": "*",
        "@types/node": "^18.0.0 || >=20.0.0",
-
        "@vitest/browser": "1.4.0",
-
        "@vitest/ui": "1.4.0",
+
        "@vitest/browser": "1.6.0",
+
        "@vitest/ui": "1.6.0",
        "happy-dom": "*",
        "jsdom": "*"
      },
@@ -5446,18 +5486,21 @@
        "node": ">=8"
      }
    },
+
    "node_modules/word-wrap": {
+
      "version": "1.2.5",
+
      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+
      "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+
      "dev": true,
+
      "engines": {
+
        "node": ">=0.10.0"
+
      }
+
    },
    "node_modules/wrappy": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
      "dev": true
    },
-
    "node_modules/yallist": {
-
      "version": "4.0.0",
-
      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-
      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-
      "dev": true
-
    },
    "node_modules/yaml": {
      "version": "1.10.2",
      "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
@@ -5492,9 +5535,9 @@
      }
    },
    "node_modules/zod": {
-
      "version": "3.22.4",
-
      "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz",
-
      "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==",
+
      "version": "3.23.8",
+
      "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz",
+
      "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==",
      "funding": {
        "url": "https://github.com/sponsors/colinhacks"
      }
modified package.json
@@ -20,61 +20,63 @@
    "node": ">=18.17.1"
  },
  "devDependencies": {
-
    "@eslint/js": "^9.3.0",
-
    "@playwright/test": "^1.42.1",
-
    "@sveltejs/vite-plugin-svelte": "^3.0.2",
-
    "@tsconfig/svelte": "^5.0.3",
+
    "@eslint/js": "^9.5.0",
+
    "@playwright/test": "^1.44.1",
+
    "@sveltejs/vite-plugin-svelte": "^3.1.1",
+
    "@tsconfig/svelte": "^5.0.4",
    "@types/config": "^3.3.4",
    "@types/dompurify": "^3.0.5",
    "@types/katex": "^0.16.7",
-
    "@types/lodash": "^4.17.0",
+
    "@types/lodash": "^4.17.5",
    "@types/md5": "^2.3.5",
-
    "@types/node": "^20.11.30",
+
    "@types/node": "^20.14.8",
    "@types/sinon": "^17.0.3",
    "@types/wait-on": "^5.3.4",
-
    "@typescript-eslint/parser": "^7.10.0",
+
    "@typescript-eslint/parser": "^7.13.1",
    "chalk": "^5.3.0",
    "config": "^3.3.11",
    "eslint": "^8.57.0",
    "eslint-config-prettier": "^9.1.0",
-
    "eslint-plugin-svelte": "^2.39.0",
-
    "execa": "^9.0.0",
+
    "eslint-plugin-svelte": "^2.41.0",
+
    "execa": "^9.3.0",
    "get-port": "^7.1.0",
-
    "globals": "^15.3.0",
-
    "happy-dom": "^14.3.8",
-
    "prettier": "^3.2.5",
-
    "prettier-plugin-svelte": "^3.2.2",
-
    "sinon": "^17.0.1",
-
    "svelte-check": "^3.6.8",
-
    "svelte-eslint-parser": "^0.36.0",
-
    "typescript": "^5.4.3",
-
    "typescript-eslint": "^7.10.0",
-
    "vite": "^5.2.6",
+
    "globals": "^15.6.0",
+
    "happy-dom": "^14.12.3",
+
    "prettier": "^3.3.2",
+
    "prettier-plugin-svelte": "^3.2.5",
+
    "sinon": "^18.0.0",
+
    "svelte-check": "^3.8.1",
+
    "svelte-eslint-parser": "^0.39.2",
+
    "typescript": "^5.5.0",
+
    "typescript-eslint": "^7.13.1",
+
    "vite": "^5.3.1",
    "vite-plugin-virtual": "^0.3.0",
-
    "vitest": "^1.4.0",
+
    "vitest": "^1.6.0",
    "wait-on": "^7.2.0"
  },
  "dependencies": {
    "@efstajas/svelte-stored-writable": "^0.2.0",
    "@radicle/gray-matter": "4.1.0",
-
    "@wooorm/starry-night": "^3.3.0",
+
    "@wooorm/starry-night": "^3.4.0",
    "async-mutex": "^0.5.0",
    "baconjs": "^3.0.17",
-
    "bs58": "^5.0.0",
+
    "bs58": "^6.0.0",
    "buffer": "^6.0.3",
    "compare-versions": "^6.1.0",
-
    "dompurify": "^3.0.11",
+
    "dompurify": "^3.1.5",
    "fuzzysort": "^3.0.2",
    "hast-util-to-dom": "^4.0.0",
-
    "hast-util-to-html": "^9.0.0",
+
    "hast-util-to-html": "^9.0.1",
    "lodash": "^4.17.21",
-
    "marked": "^12.0.1",
-
    "marked-katex-extension": "^5.0.1",
-
    "marked-linkify-it": "^3.1.9",
+
    "marked": "^13.0.0",
+
    "marked-emoji": "^1.4.1",
+
    "marked-footnote": "^1.2.2",
+
    "marked-katex-extension": "^5.0.2",
+
    "marked-linkify-it": "^3.1.10",
    "md5": "^2.3.0",
-
    "plausible-tracker": "^0.3.8",
-
    "svelte": "^4.2.12",
+
    "plausible-tracker": "^0.3.9",
+
    "svelte": "^4.2.18",
    "twemoji": "^14.0.2",
-
    "zod": "^3.22.4"
+
    "zod": "^3.23.8"
  }
}
modified src/lib/markdown.ts
@@ -3,8 +3,10 @@ import type { Route } from "@app/lib/router";

import dompurify from "dompurify";
import katexMarkedExtension from "marked-katex-extension";
+
import markedFootnote from "marked-footnote";
import markedLinkifyIt from "marked-linkify-it";
import { Marked, Renderer as BaseRenderer } from "marked";
+
import { markedEmoji } from "marked-emoji";

import emojis from "@app/lib/emojis";
import { routeToPath } from "@app/lib/router";
@@ -17,71 +19,6 @@ dompurify.setConfig({
  FORBID_TAGS: ["textarea", "style"],
});

-
const emojisMarkedExtension = {
-
  name: "emoji",
-
  level: "inline",
-
  start: (src: string) => src.indexOf(":"),
-
  tokenizer(src: string) {
-
    const match = src.match(/^:([\w+-]+):/);
-
    if (match) {
-
      return {
-
        type: "emoji",
-
        raw: match[0],
-
        text: match[1].trim(),
-
      };
-
    }
-
  },
-
  renderer: (token: Tokens.Generic): string =>
-
    `<span>${token.text in emojis ? emojis[token.text] : token.text}</span>`,
-
};
-

-
const footnotePrefix = "marked-fn";
-
const referencePrefix = "marked-fnref";
-
const referenceMatch = /^\[\^([^\]]+)\](?!\()/;
-

-
const footnoteReferenceMarkedExtension = {
-
  name: "footnote-ref",
-
  level: "inline",
-
  start: (src: string) => referenceMatch.test(src),
-
  tokenizer(src: string) {
-
    const match = src.match(referenceMatch);
-
    if (match) {
-
      return {
-
        type: "footnote-ref",
-
        raw: match[0],
-
        text: match[1].trim(),
-
      };
-
    }
-
  },
-
  renderer: (token: Tokens.Generic): string =>
-
    `<sup class="txt-tiny footnote-ref" id="${referencePrefix}:${token.text}"><a href="#${footnotePrefix}:${token.text}">[${token.text}]</a></sup>`,
-
};
-
const footnoteMatch = /^\[\^([^\]]+)\]:\s([\S].*)/;
-
const footnoteMarkedExtension = {
-
  name: "footnote",
-
  level: "block",
-
  start: (src: string) => footnoteMatch.test(src),
-
  tokenizer(src: string) {
-
    const match = src.match(footnoteMatch);
-
    if (match) {
-
      return {
-
        type: "footnote",
-
        raw: match[0],
-
        reference: match[1].trim(),
-
        text: match[2].trim(),
-
      };
-
    }
-
  },
-
  renderer: (token: Tokens.Generic): string =>
-
    `<p class="txt-small footnote" id="${footnotePrefix}:${
-
      token.reference
-
    }"><span class="marker">${token.reference}.</span> ${markdownWithExtensions.parseInline(
-
      token.text,
-
    )} <a class="txt-tiny ref-arrow no-underline" href="#${referencePrefix}:${
-
      token.reference
-
    }">↩</a></p>`,
-
};
-

// Converts self closing anchor tags into empty anchor tags, to avoid erratic wrapping behaviour
// e.g. <a name="test"/> -> <a name="test"></a>
const anchorMarkedExtension = {
@@ -121,25 +58,29 @@ export class Renderer extends BaseRenderer {
  // Since there are possible non ASCII characters in headings,
  // we escape them by replacing them with dashes and,
  // trim eventual dashes on each side of the string.
-
  heading(text: string, level: 1 | 2 | 3 | 4 | 5 | 6) {
+
  heading({ tokens, depth }: Tokens.Heading) {
+
    const text = this.parser.parseInline(tokens);
    const escapedText = text
      // By lowercasing we avoid casing mismatches, between headings and links.
      .toLowerCase()
      .replace(/[^\w]+/g, "-")
      .replace(/^-|-$/g, "");

-
    return `<h${level} id="${escapedText}">${text}</h${level}>`;
+
    return `<h${depth} id="${escapedText}">${text}</h${depth}>`;
  }

-
  strong(text: string) {
+
  strong({ tokens }: Tokens.Strong) {
+
    const text = this.parser.parseInline(tokens);
    return this.#stripEmphasizedStyling ? text : `<strong>${text}</strong>`;
  }

-
  em(text: string) {
+
  em({ tokens }: Tokens.Em) {
+
    const text = this.parser.parseInline(tokens);
    return this.#stripEmphasizedStyling ? text : `<em>${text}</em>`;
  }

-
  link(href: string, title: string | undefined | null, text: string): string {
+
  link({ href, title, tokens }: Tokens.Link): string {
+
    const text = this.parser.parseInline(tokens);
    if (href.startsWith("#")) {
      // By lowercasing we avoid casing mismatches, between headings and links.
      return `<a ${title ? `title="${title}"` : ""} href="${href.toLowerCase()}">${text}</a>`;
@@ -157,21 +98,14 @@ export class Renderer extends BaseRenderer {
  }
}

-
function markedCustomExtensions(): MarkedExtension {
-
  return {
-
    extensions: [
-
      emojisMarkedExtension,
-
      footnoteMarkedExtension,
-
      footnoteReferenceMarkedExtension,
-
      anchorMarkedExtension,
-
    ],
-
  };
-
}
-

export default new Marked();

export const markdownWithExtensions = new Marked(
  katexMarkedExtension({ throwOnError: false }),
  markedLinkifyIt({}, { fuzzyLink: false }),
-
  markedCustomExtensions(),
+
  markedFootnote(),
+
  markedEmoji({ emojis }),
+
  ((): MarkedExtension => ({
+
    extensions: [anchorMarkedExtension],
+
  }))(),
);