Radish alpha
r
Radicle web interface
Radicle
Git (anonymous pull)
Log in to clone via SSH
Update dependencies
Sebastian Martinez committed 2 years ago
commit 9f68848bc03bc7d7c3a66e9e3a51da686b395517
parent 6e17d98d961f1d87e54a1dd6515528ce9602bc91
7 files changed +605 -452
modified package-lock.json
@@ -9,54 +9,54 @@
      "hasInstallScript": true,
      "dependencies": {
        "@radicle/gray-matter": "4.1.0",
-
        "@wooorm/starry-night": "^2.1.1",
+
        "@wooorm/starry-night": "^3.0.0",
        "async-mutex": "^0.4.0",
        "baconjs": "^3.0.17",
        "bs58": "^5.0.0",
        "buffer": "^6.0.3",
        "dompurify": "^3.0.5",
-
        "hast-util-to-dom": "^3.1.1",
-
        "hast-util-to-html": "^8.0.4",
+
        "hast-util-to-dom": "^4.0.0",
+
        "hast-util-to-html": "^9.0.0",
        "lodash": "^4.17.21",
-
        "marked": "^7.0.4",
-
        "marked-katex-extension": "^3.0.3",
-
        "marked-linkify-it": "^3.1.1",
+
        "marked": "^9.0.3",
+
        "marked-katex-extension": "^3.0.6",
+
        "marked-linkify-it": "^3.1.4",
        "md5": "^2.3.0",
        "plausible-tracker": "^0.3.8",
-
        "sinon": "^15.2.0",
-
        "svelte": "^4.2.0",
+
        "sinon": "^16.0.0",
+
        "svelte": "^4.2.1",
        "twemoji": "^14.0.2",
        "zod": "^3.22.2"
      },
      "devDependencies": {
-
        "@playwright/test": "^1.37.1",
+
        "@playwright/test": "^1.38.1",
        "@sinonjs/fake-timers": "11.0.0",
-
        "@sveltejs/vite-plugin-svelte": "^2.4.5",
-
        "@tsconfig/svelte": "^5.0.1",
-
        "@types/dompurify": "^3.0.2",
-
        "@types/katex": "^0.16.2",
-
        "@types/lodash": "^4.14.197",
+
        "@sveltejs/vite-plugin-svelte": "^2.4.6",
+
        "@tsconfig/svelte": "^5.0.2",
+
        "@types/dompurify": "^3.0.3",
+
        "@types/katex": "^0.16.3",
+
        "@types/lodash": "^4.14.199",
        "@types/md5": "^2.3.2",
        "@types/node": "^18.17.1",
-
        "@types/sinon": "^10.0.16",
+
        "@types/sinon": "^10.0.17",
        "@types/sinonjs__fake-timers": "^8.1.2",
-
        "@types/wait-on": "^5.3.1",
-
        "@typescript-eslint/eslint-plugin": "^6.4.1",
+
        "@types/wait-on": "^5.3.2",
+
        "@typescript-eslint/eslint-plugin": "^6.7.3",
        "chalk": "^5.3.0",
-
        "eslint": "^8.47.0",
+
        "eslint": "^8.50.0",
        "eslint-config-prettier": "^9.0.0",
        "eslint-plugin-no-only-tests": "^3.1.0",
-
        "eslint-plugin-svelte": "^2.33.0",
+
        "eslint-plugin-svelte": "^2.33.2",
        "execa": "^8.0.1",
-
        "exit-hook": "^3.2.0",
+
        "exit-hook": "^4.0.0",
        "get-port": "^7.0.0",
-
        "happy-dom": "^10.10.4",
-
        "prettier": "^3.0.2",
+
        "happy-dom": "^12.2.0",
+
        "prettier": "^3.0.3",
        "prettier-plugin-svelte": "^3.0.3",
-
        "svelte-check": "^3.5.0",
-
        "typescript": "^5.1.6",
+
        "svelte-check": "^3.5.2",
+
        "typescript": "^5.2.2",
        "vite": "^4.4.9",
-
        "vitest": "^0.34.2",
+
        "vitest": "^0.34.5",
        "wait-on": "^7.0.1"
      },
      "engines": {
@@ -452,9 +452,9 @@
      }
    },
    "node_modules/@eslint-community/regexpp": {
-
      "version": "4.7.0",
-
      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.7.0.tgz",
-
      "integrity": "sha512-+HencqxU7CFJnQb7IKtuNBqS6Yx3Tz4kOL8BJXo+JyeiBm5MEX6pO8onXDkjrkCRlfYXS1Axro15ZjVFe9YgsA==",
+
      "version": "4.8.2",
+
      "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.2.tgz",
+
      "integrity": "sha512-0MGxAVt1m/ZK+LTJp/j0qF7Hz97D9O/FH9Ms3ltnyIdDD57cbb1ACIQTkbHvNXtWDv5TPq7w5Kq56+cNukbo7g==",
      "dev": true,
      "engines": {
        "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
@@ -484,9 +484,9 @@
      }
    },
    "node_modules/@eslint/js": {
-
      "version": "8.47.0",
-
      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.47.0.tgz",
-
      "integrity": "sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og==",
+
      "version": "8.50.0",
+
      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz",
+
      "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==",
      "dev": true,
      "engines": {
        "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -508,9 +508,9 @@
      }
    },
    "node_modules/@humanwhocodes/config-array": {
-
      "version": "0.11.10",
-
      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz",
-
      "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==",
+
      "version": "0.11.11",
+
      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz",
+
      "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==",
      "dev": true,
      "dependencies": {
        "@humanwhocodes/object-schema": "^1.2.1",
@@ -631,22 +631,18 @@
      }
    },
    "node_modules/@playwright/test": {
-
      "version": "1.37.1",
-
      "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.37.1.tgz",
-
      "integrity": "sha512-bq9zTli3vWJo8S3LwB91U0qDNQDpEXnw7knhxLM0nwDvexQAwx9tO8iKDZSqqneVq+URd/WIoz+BALMqUTgdSg==",
+
      "version": "1.38.1",
+
      "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.38.1.tgz",
+
      "integrity": "sha512-NqRp8XMwj3AK+zKLbZShl0r/9wKgzqI/527bkptKXomtuo+dOjU9NdMASQ8DNC9z9zLOMbG53T4eihYr3XR+BQ==",
      "dev": true,
      "dependencies": {
-
        "@types/node": "*",
-
        "playwright-core": "1.37.1"
+
        "playwright": "1.38.1"
      },
      "bin": {
        "playwright": "cli.js"
      },
      "engines": {
        "node": ">=16"
-
      },
-
      "optionalDependencies": {
-
        "fsevents": "2.3.2"
      }
    },
    "node_modules/@radicle/gray-matter": {
@@ -731,16 +727,16 @@
      "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ=="
    },
    "node_modules/@sveltejs/vite-plugin-svelte": {
-
      "version": "2.4.5",
-
      "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.4.5.tgz",
-
      "integrity": "sha512-UJKsFNwhzCVuiZd06jM/psscyNJNDwjQC+qIeb7GBJK9iWeQCcIyfcPWDvbCudfcJggY9jtxJeeaZH7uny93FQ==",
+
      "version": "2.4.6",
+
      "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.4.6.tgz",
+
      "integrity": "sha512-zO79p0+DZnXPnF0ltIigWDx/ux7Ni+HRaFOw720Qeivc1azFUrJxTl0OryXVibYNx1hCboGia1NRV3x8RNv4cA==",
      "dev": true,
      "dependencies": {
-
        "@sveltejs/vite-plugin-svelte-inspector": "^1.0.3",
+
        "@sveltejs/vite-plugin-svelte-inspector": "^1.0.4",
        "debug": "^4.3.4",
        "deepmerge": "^4.3.1",
        "kleur": "^4.1.5",
-
        "magic-string": "^0.30.2",
+
        "magic-string": "^0.30.3",
        "svelte-hmr": "^0.15.3",
        "vitefu": "^0.2.4"
      },
@@ -776,9 +772,9 @@
      "dev": true
    },
    "node_modules/@types/chai": {
-
      "version": "4.3.5",
-
      "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz",
-
      "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==",
+
      "version": "4.3.6",
+
      "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.6.tgz",
+
      "integrity": "sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==",
      "dev": true
    },
    "node_modules/@types/chai-subset": {
@@ -791,47 +787,47 @@
      }
    },
    "node_modules/@types/dompurify": {
-
      "version": "3.0.2",
-
      "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.2.tgz",
-
      "integrity": "sha512-YBL4ziFebbbfQfH5mlC+QTJsvh0oJUrWbmxKMyEdL7emlHJqGR2Qb34TEFKj+VCayBvjKy3xczMFNhugThUsfQ==",
+
      "version": "3.0.3",
+
      "resolved": "https://registry.npmjs.org/@types/dompurify/-/dompurify-3.0.3.tgz",
+
      "integrity": "sha512-odiGr/9/qMqjcBOe5UhcNLOFHSYmKFOyr+bJ/Xu3Qp4k1pNPAlNLUVNNLcLfjQI7+W7ObX58EdD3H+3p3voOvA==",
      "dev": true,
      "dependencies": {
        "@types/trusted-types": "*"
      }
    },
    "node_modules/@types/estree": {
-
      "version": "1.0.1",
-
      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz",
-
      "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA=="
+
      "version": "1.0.2",
+
      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.2.tgz",
+
      "integrity": "sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA=="
    },
    "node_modules/@types/hast": {
-
      "version": "2.3.5",
-
      "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.5.tgz",
-
      "integrity": "sha512-SvQi0L/lNpThgPoleH53cdjB3y9zpLlVjRbqB3rH8hx1jiRSBGAhyjV3H+URFjNVRqt2EdYNrbZE5IsGlNfpRg==",
+
      "version": "3.0.1",
+
      "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.1.tgz",
+
      "integrity": "sha512-hs/iBJx2aydugBQx5ETV3ZgeSS0oIreQrFJ4bjBl0XvM4wAmDjFEALY7p0rTSLt2eL+ibjRAAs9dTPiCLtmbqQ==",
      "dependencies": {
-
        "@types/unist": "^2"
+
        "@types/unist": "*"
      }
    },
    "node_modules/@types/json-schema": {
-
      "version": "7.0.12",
-
      "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz",
-
      "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==",
+
      "version": "7.0.13",
+
      "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz",
+
      "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==",
      "dev": true
    },
    "node_modules/@types/katex": {
-
      "version": "0.16.2",
-
      "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.2.tgz",
-
      "integrity": "sha512-dHsSjSlU/EWEEbeNADr3FtZZOAXPkFPUO457QCnoNqcZQXNqNEu/svQd0Nritvd3wNff4vvC/f4e6xgX3Llt8A=="
+
      "version": "0.16.3",
+
      "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.3.tgz",
+
      "integrity": "sha512-CeVMX9EhVUW8MWnei05eIRks4D5Wscw/W9Byz1s3PA+yJvcdvq9SaDjiUKvRvEgjpdTyJMjQA43ae4KTwsvOPg=="
    },
    "node_modules/@types/linkify-it": {
-
      "version": "3.0.2",
-
      "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz",
-
      "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA=="
+
      "version": "3.0.3",
+
      "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.3.tgz",
+
      "integrity": "sha512-pTjcqY9E4nOI55Wgpz7eiI8+LzdYnw3qxXCfHyBDdPbYvbyLgWLJGh8EdPvqawwMK1Uo1794AUkkR38Fr0g+2g=="
    },
    "node_modules/@types/lodash": {
-
      "version": "4.14.197",
-
      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.197.tgz",
-
      "integrity": "sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g==",
+
      "version": "4.14.199",
+
      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz",
+
      "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==",
      "dev": true
    },
    "node_modules/@types/md5": {
@@ -840,75 +836,78 @@
      "integrity": "sha512-v+JFDu96+UYJ3/UWzB0mEglIS//MZXgRaJ4ubUPwOM0gvLc/kcQ3TWNYwENEK7/EcXGQVrW8h/XqednSjBd/Og==",
      "dev": true
    },
+
    "node_modules/@types/mdast": {
+
      "version": "4.0.0",
+
      "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.0.tgz",
+
      "integrity": "sha512-YLeG8CujC9adtj/kuDzq1N4tCDYKoZ5l/bnjq8d74+t/3q/tHquJOJKUQXJrLCflOHpKjXgcI/a929gpmLOEng==",
+
      "dependencies": {
+
        "@types/unist": "*"
+
      }
+
    },
    "node_modules/@types/node": {
-
      "version": "18.17.8",
-
      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.8.tgz",
-
      "integrity": "sha512-Av/7MqX/iNKwT9Tr60V85NqMnsmh8ilfJoBlIVibkXfitk9Q22D9Y5mSpm+FvG5DET7EbVfB40bOiLzKgYFgPw==",
+
      "version": "18.18.0",
+
      "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.0.tgz",
+
      "integrity": "sha512-3xA4X31gHT1F1l38ATDIL9GpRLdwVhnEFC8Uikv5ZLlXATwrCYyPq7ZWHxzxc3J/30SUiwiYT+bQe0/XvKlWbw==",
      "dev": true
    },
-
    "node_modules/@types/parse5": {
-
      "version": "6.0.3",
-
      "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz",
-
      "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g=="
-
    },
    "node_modules/@types/pug": {
-
      "version": "2.0.6",
-
      "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz",
-
      "integrity": "sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==",
+
      "version": "2.0.7",
+
      "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.7.tgz",
+
      "integrity": "sha512-I469DU0UXNC1aHepwirWhu9YKg5fkxohZD95Ey/5A7lovC+Siu+MCLffva87lnfThaOrw9Vb1DUN5t55oULAAw==",
      "dev": true
    },
    "node_modules/@types/semver": {
-
      "version": "7.5.0",
-
      "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz",
-
      "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==",
+
      "version": "7.5.3",
+
      "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz",
+
      "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==",
      "dev": true
    },
    "node_modules/@types/sinon": {
-
      "version": "10.0.16",
-
      "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.16.tgz",
-
      "integrity": "sha512-j2Du5SYpXZjJVJtXBokASpPRj+e2z+VUhCPHmM6WMfe3dpHu6iVKJMU6AiBcMp/XTAYnEj6Wc1trJUWwZ0QaAQ==",
+
      "version": "10.0.17",
+
      "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.17.tgz",
+
      "integrity": "sha512-+6ILpcixQ0Ma3dHMTLv4rSycbDXkDljgKL+E0nI2RUxxhYTFyPSjt6RVMxh7jUshvyVcBvicb0Ktj+lAJcjgeA==",
      "dev": true,
      "dependencies": {
        "@types/sinonjs__fake-timers": "*"
      }
    },
    "node_modules/@types/sinonjs__fake-timers": {
-
      "version": "8.1.2",
-
      "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz",
-
      "integrity": "sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA==",
+
      "version": "8.1.3",
+
      "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.3.tgz",
+
      "integrity": "sha512-4g+2YyWe0Ve+LBh+WUm1697PD0Kdi6coG1eU0YjQbwx61AZ8XbEpL1zIT6WjuUKrCMCROpEaYQPDjBnDouBVAQ==",
      "dev": true
    },
    "node_modules/@types/trusted-types": {
-
      "version": "2.0.3",
-
      "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz",
-
      "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==",
+
      "version": "2.0.4",
+
      "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.4.tgz",
+
      "integrity": "sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==",
      "dev": true
    },
    "node_modules/@types/unist": {
-
      "version": "2.0.7",
-
      "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.7.tgz",
-
      "integrity": "sha512-cputDpIbFgLUaGQn6Vqg3/YsJwxUwHLO13v3i5ouxT4lat0khip9AEWxtERujXV9wxIB1EyF97BSJFt6vpdI8g=="
+
      "version": "3.0.0",
+
      "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz",
+
      "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w=="
    },
    "node_modules/@types/wait-on": {
-
      "version": "5.3.1",
-
      "resolved": "https://registry.npmjs.org/@types/wait-on/-/wait-on-5.3.1.tgz",
-
      "integrity": "sha512-2FFOKCF/YydrMUaqg+fkk49qf0e5rDgwt6aQsMzFQzbS419h2gNOXyiwp/o2yYy27bi/C1z+HgfncryjGzlvgQ==",
+
      "version": "5.3.2",
+
      "resolved": "https://registry.npmjs.org/@types/wait-on/-/wait-on-5.3.2.tgz",
+
      "integrity": "sha512-7NBSJs/YvbHlaYCJ7wIUF6t7ct3OMt525NmZ+US73pPlkmpxd9ADwfNxrRAmg8nWlcTMqR0PkhW7aYk3FLlvrQ==",
      "dev": true,
      "dependencies": {
        "@types/node": "*"
      }
    },
    "node_modules/@typescript-eslint/eslint-plugin": {
-
      "version": "6.4.1",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.4.1.tgz",
-
      "integrity": "sha512-3F5PtBzUW0dYlq77Lcqo13fv+58KDwUib3BddilE8ajPJT+faGgxmI9Sw+I8ZS22BYwoir9ZhNXcLi+S+I2bkw==",
+
      "version": "6.7.3",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.3.tgz",
+
      "integrity": "sha512-vntq452UHNltxsaaN+L9WyuMch8bMd9CqJ3zhzTPXXidwbf5mqqKCVXEuvRZUqLJSTLeWE65lQwyXsRGnXkCTA==",
      "dev": true,
      "dependencies": {
        "@eslint-community/regexpp": "^4.5.1",
-
        "@typescript-eslint/scope-manager": "6.4.1",
-
        "@typescript-eslint/type-utils": "6.4.1",
-
        "@typescript-eslint/utils": "6.4.1",
-
        "@typescript-eslint/visitor-keys": "6.4.1",
+
        "@typescript-eslint/scope-manager": "6.7.3",
+
        "@typescript-eslint/type-utils": "6.7.3",
+
        "@typescript-eslint/utils": "6.7.3",
+
        "@typescript-eslint/visitor-keys": "6.7.3",
        "debug": "^4.3.4",
        "graphemer": "^1.4.0",
        "ignore": "^5.2.4",
@@ -934,16 +933,16 @@
      }
    },
    "node_modules/@typescript-eslint/parser": {
-
      "version": "6.4.1",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.4.1.tgz",
-
      "integrity": "sha512-610G6KHymg9V7EqOaNBMtD1GgpAmGROsmfHJPXNLCU9bfIuLrkdOygltK784F6Crboyd5tBFayPB7Sf0McrQwg==",
+
      "version": "6.7.3",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.3.tgz",
+
      "integrity": "sha512-TlutE+iep2o7R8Lf+yoer3zU6/0EAUc8QIBB3GYBc1KGz4c4TRm83xwXUZVPlZ6YCLss4r77jbu6j3sendJoiQ==",
      "dev": true,
      "peer": true,
      "dependencies": {
-
        "@typescript-eslint/scope-manager": "6.4.1",
-
        "@typescript-eslint/types": "6.4.1",
-
        "@typescript-eslint/typescript-estree": "6.4.1",
-
        "@typescript-eslint/visitor-keys": "6.4.1",
+
        "@typescript-eslint/scope-manager": "6.7.3",
+
        "@typescript-eslint/types": "6.7.3",
+
        "@typescript-eslint/typescript-estree": "6.7.3",
+
        "@typescript-eslint/visitor-keys": "6.7.3",
        "debug": "^4.3.4"
      },
      "engines": {
@@ -963,13 +962,13 @@
      }
    },
    "node_modules/@typescript-eslint/scope-manager": {
-
      "version": "6.4.1",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.4.1.tgz",
-
      "integrity": "sha512-p/OavqOQfm4/Hdrr7kvacOSFjwQ2rrDVJRPxt/o0TOWdFnjJptnjnZ+sYDR7fi4OimvIuKp+2LCkc+rt9fIW+A==",
+
      "version": "6.7.3",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.3.tgz",
+
      "integrity": "sha512-wOlo0QnEou9cHO2TdkJmzF7DFGvAKEnB82PuPNHpT8ZKKaZu6Bm63ugOTn9fXNJtvuDPanBc78lGUGGytJoVzQ==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "6.4.1",
-
        "@typescript-eslint/visitor-keys": "6.4.1"
+
        "@typescript-eslint/types": "6.7.3",
+
        "@typescript-eslint/visitor-keys": "6.7.3"
      },
      "engines": {
        "node": "^16.0.0 || >=18.0.0"
@@ -980,13 +979,13 @@
      }
    },
    "node_modules/@typescript-eslint/type-utils": {
-
      "version": "6.4.1",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.4.1.tgz",
-
      "integrity": "sha512-7ON8M8NXh73SGZ5XvIqWHjgX2f+vvaOarNliGhjrJnv1vdjG0LVIz+ToYfPirOoBi56jxAKLfsLm40+RvxVVXA==",
+
      "version": "6.7.3",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.3.tgz",
+
      "integrity": "sha512-Fc68K0aTDrKIBvLnKTZ5Pf3MXK495YErrbHb1R6aTpfK5OdSFj0rVN7ib6Tx6ePrZ2gsjLqr0s98NG7l96KSQw==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/typescript-estree": "6.4.1",
-
        "@typescript-eslint/utils": "6.4.1",
+
        "@typescript-eslint/typescript-estree": "6.7.3",
+
        "@typescript-eslint/utils": "6.7.3",
        "debug": "^4.3.4",
        "ts-api-utils": "^1.0.1"
      },
@@ -1007,9 +1006,9 @@
      }
    },
    "node_modules/@typescript-eslint/types": {
-
      "version": "6.4.1",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.4.1.tgz",
-
      "integrity": "sha512-zAAopbNuYu++ijY1GV2ylCsQsi3B8QvfPHVqhGdDcbx/NK5lkqMnCGU53amAjccSpk+LfeONxwzUhDzArSfZJg==",
+
      "version": "6.7.3",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.3.tgz",
+
      "integrity": "sha512-4g+de6roB2NFcfkZb439tigpAMnvEIg3rIjWQ+EM7IBaYt/CdJt6em9BJ4h4UpdgaBWdmx2iWsafHTrqmgIPNw==",
      "dev": true,
      "engines": {
        "node": "^16.0.0 || >=18.0.0"
@@ -1020,13 +1019,13 @@
      }
    },
    "node_modules/@typescript-eslint/typescript-estree": {
-
      "version": "6.4.1",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.1.tgz",
-
      "integrity": "sha512-xF6Y7SatVE/OyV93h1xGgfOkHr2iXuo8ip0gbfzaKeGGuKiAnzS+HtVhSPx8Www243bwlW8IF7X0/B62SzFftg==",
+
      "version": "6.7.3",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.3.tgz",
+
      "integrity": "sha512-YLQ3tJoS4VxLFYHTw21oe1/vIZPRqAO91z6Uv0Ss2BKm/Ag7/RVQBcXTGcXhgJMdA4U+HrKuY5gWlJlvoaKZ5g==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "6.4.1",
-
        "@typescript-eslint/visitor-keys": "6.4.1",
+
        "@typescript-eslint/types": "6.7.3",
+
        "@typescript-eslint/visitor-keys": "6.7.3",
        "debug": "^4.3.4",
        "globby": "^11.1.0",
        "is-glob": "^4.0.3",
@@ -1047,17 +1046,17 @@
      }
    },
    "node_modules/@typescript-eslint/utils": {
-
      "version": "6.4.1",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.4.1.tgz",
-
      "integrity": "sha512-F/6r2RieNeorU0zhqZNv89s9bDZSovv3bZQpUNOmmQK1L80/cV4KEu95YUJWi75u5PhboFoKUJBnZ4FQcoqhDw==",
+
      "version": "6.7.3",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.3.tgz",
+
      "integrity": "sha512-vzLkVder21GpWRrmSR9JxGZ5+ibIUSudXlW52qeKpzUEQhRSmyZiVDDj3crAth7+5tmN1ulvgKaCU2f/bPRCzg==",
      "dev": true,
      "dependencies": {
        "@eslint-community/eslint-utils": "^4.4.0",
        "@types/json-schema": "^7.0.12",
        "@types/semver": "^7.5.0",
-
        "@typescript-eslint/scope-manager": "6.4.1",
-
        "@typescript-eslint/types": "6.4.1",
-
        "@typescript-eslint/typescript-estree": "6.4.1",
+
        "@typescript-eslint/scope-manager": "6.7.3",
+
        "@typescript-eslint/types": "6.7.3",
+
        "@typescript-eslint/typescript-estree": "6.7.3",
        "semver": "^7.5.4"
      },
      "engines": {
@@ -1072,12 +1071,12 @@
      }
    },
    "node_modules/@typescript-eslint/visitor-keys": {
-
      "version": "6.4.1",
-
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.4.1.tgz",
-
      "integrity": "sha512-y/TyRJsbZPkJIZQXrHfdnxVnxyKegnpEvnRGNam7s3TRR2ykGefEWOhaef00/UUN3IZxizS7BTO3svd3lCOJRQ==",
+
      "version": "6.7.3",
+
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.3.tgz",
+
      "integrity": "sha512-HEVXkU9IB+nk9o63CeICMHxFWbHWr3E1mpilIQBe9+7L/lH97rleFLVtYsfnWB+JVMaiFnEaxvknvmIzX+CqVg==",
      "dev": true,
      "dependencies": {
-
        "@typescript-eslint/types": "6.4.1",
+
        "@typescript-eslint/types": "6.7.3",
        "eslint-visitor-keys": "^3.4.1"
      },
      "engines": {
@@ -1088,14 +1087,19 @@
        "url": "https://opencollective.com/typescript-eslint"
      }
    },
+
    "node_modules/@ungap/structured-clone": {
+
      "version": "1.2.0",
+
      "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+
      "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ=="
+
    },
    "node_modules/@vitest/expect": {
-
      "version": "0.34.2",
-
      "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.2.tgz",
-
      "integrity": "sha512-EZm2dMNlLyIfDMha17QHSQcg2KjeAZaXd65fpPzXY5bvnfx10Lcaz3N55uEe8PhF+w4pw+hmrlHLLlRn9vkBJg==",
+
      "version": "0.34.5",
+
      "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.5.tgz",
+
      "integrity": "sha512-/3RBIV9XEH+nRpRMqDJBufKIOQaYUH2X6bt0rKSCW0MfKhXFLYsR5ivHifeajRSTsln0FwJbitxLKHSQz/Xwkw==",
      "dev": true,
      "dependencies": {
-
        "@vitest/spy": "0.34.2",
-
        "@vitest/utils": "0.34.2",
+
        "@vitest/spy": "0.34.5",
+
        "@vitest/utils": "0.34.5",
        "chai": "^4.3.7"
      },
      "funding": {
@@ -1103,12 +1107,12 @@
      }
    },
    "node_modules/@vitest/runner": {
-
      "version": "0.34.2",
-
      "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.2.tgz",
-
      "integrity": "sha512-8ydGPACVX5tK3Dl0SUwxfdg02h+togDNeQX3iXVFYgzF5odxvaou7HnquALFZkyVuYskoaHUOqOyOLpOEj5XTA==",
+
      "version": "0.34.5",
+
      "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.5.tgz",
+
      "integrity": "sha512-RDEE3ViVvl7jFSCbnBRyYuu23XxmvRTSZWW6W4M7eC5dOsK75d5LIf6uhE5Fqf809DQ1+9ICZZNxhIolWHU4og==",
      "dev": true,
      "dependencies": {
-
        "@vitest/utils": "0.34.2",
+
        "@vitest/utils": "0.34.5",
        "p-limit": "^4.0.0",
        "pathe": "^1.1.1"
      },
@@ -1144,9 +1148,9 @@
      }
    },
    "node_modules/@vitest/snapshot": {
-
      "version": "0.34.2",
-
      "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.34.2.tgz",
-
      "integrity": "sha512-qhQ+xy3u4mwwLxltS4Pd4SR+XHv4EajiTPNY3jkIBLUApE6/ce72neJPSUQZ7bL3EBuKI+NhvzhGj3n5baRQUQ==",
+
      "version": "0.34.5",
+
      "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.34.5.tgz",
+
      "integrity": "sha512-+ikwSbhu6z2yOdtKmk/aeoDZ9QPm2g/ZO5rXT58RR9Vmu/kB2MamyDSx77dctqdZfP3Diqv4mbc/yw2kPT8rmA==",
      "dev": true,
      "dependencies": {
        "magic-string": "^0.30.1",
@@ -1158,9 +1162,9 @@
      }
    },
    "node_modules/@vitest/spy": {
-
      "version": "0.34.2",
-
      "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.34.2.tgz",
-
      "integrity": "sha512-yd4L9OhfH6l0Av7iK3sPb3MykhtcRN5c5K5vm1nTbuN7gYn+yvUVVsyvzpHrjqS7EWqn9WsPJb7+0c3iuY60tA==",
+
      "version": "0.34.5",
+
      "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.34.5.tgz",
+
      "integrity": "sha512-epsicsfhvBjRjCMOC/3k00mP/TBGQy8/P0DxOFiWyLt55gnZ99dqCfCiAsKO17BWVjn4eZRIjKvcqNmSz8gvmg==",
      "dev": true,
      "dependencies": {
        "tinyspy": "^2.1.1"
@@ -1170,9 +1174,9 @@
      }
    },
    "node_modules/@vitest/utils": {
-
      "version": "0.34.2",
-
      "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.2.tgz",
-
      "integrity": "sha512-Lzw+kAsTPubhoQDp1uVAOP6DhNia1GMDsI9jgB0yMn+/nDaPieYQ88lKqz/gGjSHL4zwOItvpehec9OY+rS73w==",
+
      "version": "0.34.5",
+
      "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.5.tgz",
+
      "integrity": "sha512-ur6CmmYQoeHMwmGb0v+qwkwN3yopZuZyf4xt1DBBSGBed8Hf9Gmbm/5dEWqgpLPdRx6Av6jcWXrjcKfkTzg/pw==",
      "dev": true,
      "dependencies": {
        "diff-sequences": "^29.4.3",
@@ -1184,13 +1188,13 @@
      }
    },
    "node_modules/@wooorm/starry-night": {
-
      "version": "2.1.1",
-
      "resolved": "https://registry.npmjs.org/@wooorm/starry-night/-/starry-night-2.1.1.tgz",
-
      "integrity": "sha512-6WL3NW7ImGbmZ4qu8StJOkSS7ee2ZwbqtCfaQogCLWKJPbg989dmZLXcdTW9GNc/XI1nCiVyjR1Z0yRoChqLRA==",
+
      "version": "3.0.0",
+
      "resolved": "https://registry.npmjs.org/@wooorm/starry-night/-/starry-night-3.0.0.tgz",
+
      "integrity": "sha512-9bS69LSlh7btL0zP4nkgt2m+yfVCimBmCHfzhDuqC/gYK592n205YKNED/Ax9HwaqtjmZN0LzpAKJjppGFvzKw==",
      "dependencies": {
-
        "@types/hast": "^2.0.0",
-
        "import-meta-resolve": "^2.0.0",
-
        "vscode-oniguruma": "^1.0.0",
+
        "@types/hast": "^3.0.0",
+
        "import-meta-resolve": "^3.0.0",
+
        "vscode-oniguruma": "^2.0.0",
        "vscode-textmate": "^9.0.0"
      },
      "funding": {
@@ -1474,9 +1478,9 @@
      }
    },
    "node_modules/chai": {
-
      "version": "4.3.7",
-
      "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz",
-
      "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==",
+
      "version": "4.3.8",
+
      "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.8.tgz",
+
      "integrity": "sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==",
      "dev": true,
      "dependencies": {
        "assertion-error": "^1.1.0",
@@ -1764,6 +1768,18 @@
        "node": ">=8"
      }
    },
+
    "node_modules/devlop": {
+
      "version": "1.1.0",
+
      "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
+
      "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
+
      "dependencies": {
+
        "dequal": "^2.0.0"
+
      },
+
      "funding": {
+
        "type": "github",
+
        "url": "https://github.com/sponsors/wooorm"
+
      }
+
    },
    "node_modules/diff": {
      "version": "5.1.0",
      "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
@@ -1814,7 +1830,6 @@
      "version": "4.5.0",
      "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
      "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
-
      "dev": true,
      "engines": {
        "node": ">=0.12"
      },
@@ -1878,16 +1893,16 @@
      }
    },
    "node_modules/eslint": {
-
      "version": "8.47.0",
-
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.47.0.tgz",
-
      "integrity": "sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==",
+
      "version": "8.50.0",
+
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz",
+
      "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==",
      "dev": true,
      "dependencies": {
        "@eslint-community/eslint-utils": "^4.2.0",
        "@eslint-community/regexpp": "^4.6.1",
        "@eslint/eslintrc": "^2.1.2",
-
        "@eslint/js": "^8.47.0",
-
        "@humanwhocodes/config-array": "^0.11.10",
+
        "@eslint/js": "8.50.0",
+
        "@humanwhocodes/config-array": "^0.11.11",
        "@humanwhocodes/module-importer": "^1.0.1",
        "@nodelib/fs.walk": "^1.2.8",
        "ajv": "^6.12.4",
@@ -1953,9 +1968,9 @@
      }
    },
    "node_modules/eslint-plugin-svelte": {
-
      "version": "2.33.0",
-
      "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.33.0.tgz",
-
      "integrity": "sha512-kk7Z4BfxVjFYJseFcOpS8kiKNio7KnAnhFagmM89h1wNSKlM7tIn+uguNQppKM9leYW+S+Us0Rjg2Qg3zsEcvg==",
+
      "version": "2.33.2",
+
      "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.33.2.tgz",
+
      "integrity": "sha512-knWmauax+E/jvQ9CmuX5dAhQKP9P4eGQZxWa5RMutEJVCcy0wFmiUvOeDND2jR4vUkbDlX4khKjaceY7QzbkYw==",
      "dev": true,
      "dependencies": {
        "@eslint-community/eslint-utils": "^4.2.0",
@@ -2136,12 +2151,12 @@
      }
    },
    "node_modules/exit-hook": {
-
      "version": "3.2.0",
-
      "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-3.2.0.tgz",
-
      "integrity": "sha512-aIQN7Q04HGAV/I5BszisuHTZHXNoC23WtLkxdCLuYZMdWviRD0TMIt2bnUBi9MrHaF/hH8b3gwG9iaAUHKnJGA==",
+
      "version": "4.0.0",
+
      "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-4.0.0.tgz",
+
      "integrity": "sha512-Fqs7ChZm72y40wKjOFXBKg7nJZvQJmewP5/7LtePDdnah/+FH9Hp5sgMujSCMPXlxOAW2//1jrW9pnsY7o20vQ==",
      "dev": true,
      "engines": {
-
        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+
        "node": ">=18"
      },
      "funding": {
        "url": "https://github.com/sponsors/sindresorhus"
@@ -2254,28 +2269,29 @@
      }
    },
    "node_modules/flat-cache": {
-
      "version": "3.0.4",
-
      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
-
      "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+
      "version": "3.1.0",
+
      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz",
+
      "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==",
      "dev": true,
      "dependencies": {
-
        "flatted": "^3.1.0",
+
        "flatted": "^3.2.7",
+
        "keyv": "^4.5.3",
        "rimraf": "^3.0.2"
      },
      "engines": {
-
        "node": "^10.12.0 || >=12.0.0"
+
        "node": ">=12.0.0"
      }
    },
    "node_modules/flatted": {
-
      "version": "3.2.7",
-
      "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
-
      "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+
      "version": "3.2.9",
+
      "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
+
      "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
      "dev": true
    },
    "node_modules/follow-redirects": {
-
      "version": "1.15.2",
-
      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
-
      "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+
      "version": "1.15.3",
+
      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz",
+
      "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==",
      "dev": true,
      "funding": [
        {
@@ -2348,9 +2364,9 @@
      }
    },
    "node_modules/get-func-name": {
-
      "version": "2.0.0",
-
      "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
-
      "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==",
+
      "version": "2.0.2",
+
      "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
+
      "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
      "dev": true,
      "engines": {
        "node": "*"
@@ -2413,9 +2429,9 @@
      }
    },
    "node_modules/globals": {
-
      "version": "13.21.0",
-
      "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz",
-
      "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==",
+
      "version": "13.22.0",
+
      "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz",
+
      "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==",
      "dev": true,
      "dependencies": {
        "type-fest": "^0.20.2"
@@ -2459,9 +2475,9 @@
      "dev": true
    },
    "node_modules/happy-dom": {
-
      "version": "10.11.0",
-
      "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-10.11.0.tgz",
-
      "integrity": "sha512-CmUT4LOLzvAsbYqgTJESrPyvF0gxLDkDG/KK1o/HYU7+c9o/VVIKXl3feJZnuCYbGqemw7meiQaZcL4SMgn1jQ==",
+
      "version": "12.2.0",
+
      "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-12.2.0.tgz",
+
      "integrity": "sha512-n9MwvjBUhkNplw74hTCTUOqR67JWgJllnVAgB8c7U+AI+EQp7PdUYFOOfrjEeOmEqsRPUT6lwwM7NjCj6vEZ4g==",
      "dev": true,
      "dependencies": {
        "css.escape": "^1.5.1",
@@ -2481,16 +2497,17 @@
      }
    },
    "node_modules/hast-util-from-parse5": {
-
      "version": "7.1.2",
-
      "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz",
-
      "integrity": "sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==",
+
      "version": "8.0.1",
+
      "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz",
+
      "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==",
      "dependencies": {
-
        "@types/hast": "^2.0.0",
-
        "@types/unist": "^2.0.0",
-
        "hastscript": "^7.0.0",
+
        "@types/hast": "^3.0.0",
+
        "@types/unist": "^3.0.0",
+
        "devlop": "^1.0.0",
+
        "hastscript": "^8.0.0",
        "property-information": "^6.0.0",
-
        "vfile": "^5.0.0",
-
        "vfile-location": "^4.0.0",
+
        "vfile": "^6.0.0",
+
        "vfile-location": "^5.0.0",
        "web-namespaces": "^2.0.0"
      },
      "funding": {
@@ -2499,11 +2516,11 @@
      }
    },
    "node_modules/hast-util-parse-selector": {
-
      "version": "3.1.1",
-
      "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz",
-
      "integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==",
+
      "version": "4.0.0",
+
      "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz",
+
      "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==",
      "dependencies": {
-
        "@types/hast": "^2.0.0"
+
        "@types/hast": "^3.0.0"
      },
      "funding": {
        "type": "opencollective",
@@ -2511,19 +2528,21 @@
      }
    },
    "node_modules/hast-util-raw": {
-
      "version": "7.2.3",
-
      "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-7.2.3.tgz",
-
      "integrity": "sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==",
-
      "dependencies": {
-
        "@types/hast": "^2.0.0",
-
        "@types/parse5": "^6.0.0",
-
        "hast-util-from-parse5": "^7.0.0",
-
        "hast-util-to-parse5": "^7.0.0",
-
        "html-void-elements": "^2.0.0",
-
        "parse5": "^6.0.0",
-
        "unist-util-position": "^4.0.0",
-
        "unist-util-visit": "^4.0.0",
-
        "vfile": "^5.0.0",
+
      "version": "9.0.1",
+
      "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.1.tgz",
+
      "integrity": "sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA==",
+
      "dependencies": {
+
        "@types/hast": "^3.0.0",
+
        "@types/unist": "^3.0.0",
+
        "@ungap/structured-clone": "^1.0.0",
+
        "hast-util-from-parse5": "^8.0.0",
+
        "hast-util-to-parse5": "^8.0.0",
+
        "html-void-elements": "^3.0.0",
+
        "mdast-util-to-hast": "^13.0.0",
+
        "parse5": "^7.0.0",
+
        "unist-util-position": "^5.0.0",
+
        "unist-util-visit": "^5.0.0",
+
        "vfile": "^6.0.0",
        "web-namespaces": "^2.0.0",
        "zwitch": "^2.0.0"
      },
@@ -2533,10 +2552,11 @@
      }
    },
    "node_modules/hast-util-to-dom": {
-
      "version": "3.1.1",
-
      "resolved": "https://registry.npmjs.org/hast-util-to-dom/-/hast-util-to-dom-3.1.1.tgz",
-
      "integrity": "sha512-hDiYqOapuWzLPDMADCD5z6re/07OQOpQuT2YO5hxPjaxWTtgcbjqCjlv4KtyMuEQiW4wKTIPoK+japvbZ5zqxg==",
+
      "version": "4.0.0",
+
      "resolved": "https://registry.npmjs.org/hast-util-to-dom/-/hast-util-to-dom-4.0.0.tgz",
+
      "integrity": "sha512-oW7RScutPE58LfjuVUNvvH0+6rB89mAm/pkDqD3bdj9g6xKQlMcuW6yBmovbpDKkvYI2apPKmHZMtc9KiZTywA==",
      "dependencies": {
+
        "@types/hast": "^3.0.0",
        "property-information": "^6.0.0",
        "web-namespaces": "^2.0.0"
      },
@@ -2546,17 +2566,18 @@
      }
    },
    "node_modules/hast-util-to-html": {
-
      "version": "8.0.4",
-
      "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-8.0.4.tgz",
-
      "integrity": "sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==",
+
      "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==",
      "dependencies": {
-
        "@types/hast": "^2.0.0",
-
        "@types/unist": "^2.0.0",
+
        "@types/hast": "^3.0.0",
+
        "@types/unist": "^3.0.0",
        "ccount": "^2.0.0",
        "comma-separated-tokens": "^2.0.0",
-
        "hast-util-raw": "^7.0.0",
-
        "hast-util-whitespace": "^2.0.0",
-
        "html-void-elements": "^2.0.0",
+
        "hast-util-raw": "^9.0.0",
+
        "hast-util-whitespace": "^3.0.0",
+
        "html-void-elements": "^3.0.0",
+
        "mdast-util-to-hast": "^13.0.0",
        "property-information": "^6.0.0",
        "space-separated-tokens": "^2.0.0",
        "stringify-entities": "^4.0.0",
@@ -2568,12 +2589,13 @@
      }
    },
    "node_modules/hast-util-to-parse5": {
-
      "version": "7.1.0",
-
      "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz",
-
      "integrity": "sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==",
+
      "version": "8.0.0",
+
      "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz",
+
      "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==",
      "dependencies": {
-
        "@types/hast": "^2.0.0",
+
        "@types/hast": "^3.0.0",
        "comma-separated-tokens": "^2.0.0",
+
        "devlop": "^1.0.0",
        "property-information": "^6.0.0",
        "space-separated-tokens": "^2.0.0",
        "web-namespaces": "^2.0.0",
@@ -2585,22 +2607,25 @@
      }
    },
    "node_modules/hast-util-whitespace": {
-
      "version": "2.0.1",
-
      "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz",
-
      "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==",
+
      "version": "3.0.0",
+
      "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
+
      "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
+
      "dependencies": {
+
        "@types/hast": "^3.0.0"
+
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/unified"
      }
    },
    "node_modules/hastscript": {
-
      "version": "7.2.0",
-
      "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-7.2.0.tgz",
-
      "integrity": "sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==",
+
      "version": "8.0.0",
+
      "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz",
+
      "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==",
      "dependencies": {
-
        "@types/hast": "^2.0.0",
+
        "@types/hast": "^3.0.0",
        "comma-separated-tokens": "^2.0.0",
-
        "hast-util-parse-selector": "^3.0.0",
+
        "hast-util-parse-selector": "^4.0.0",
        "property-information": "^6.0.0",
        "space-separated-tokens": "^2.0.0"
      },
@@ -2610,9 +2635,9 @@
      }
    },
    "node_modules/html-void-elements": {
-
      "version": "2.0.1",
-
      "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz",
-
      "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==",
+
      "version": "3.0.0",
+
      "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz",
+
      "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==",
      "funding": {
        "type": "github",
        "url": "https://github.com/sponsors/wooorm"
@@ -2684,9 +2709,9 @@
      }
    },
    "node_modules/import-meta-resolve": {
-
      "version": "2.2.2",
-
      "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.2.2.tgz",
-
      "integrity": "sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA==",
+
      "version": "3.0.0",
+
      "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-3.0.0.tgz",
+
      "integrity": "sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==",
      "funding": {
        "type": "github",
        "url": "https://github.com/sponsors/wooorm"
@@ -2782,9 +2807,9 @@
      }
    },
    "node_modules/is-reference": {
-
      "version": "3.0.1",
-
      "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.1.tgz",
-
      "integrity": "sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==",
+
      "version": "3.0.2",
+
      "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz",
+
      "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==",
      "dependencies": {
        "@types/estree": "*"
      }
@@ -2813,9 +2838,9 @@
      "dev": true
    },
    "node_modules/joi": {
-
      "version": "17.9.2",
-
      "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.2.tgz",
-
      "integrity": "sha512-Itk/r+V4Dx0V3c7RLFdRh12IOjySm2/WGPMubBT92cQvRfYZhPM2W0hZlctjj72iES8jsRCwp7S/cRmWBnJ4nw==",
+
      "version": "17.10.2",
+
      "resolved": "https://registry.npmjs.org/joi/-/joi-17.10.2.tgz",
+
      "integrity": "sha512-hcVhjBxRNW/is3nNLdGLIjkgXetkeGc2wyhydhz8KumG23Aerk4HPjU5zaPAMRqXQFc0xNqXTC7+zQjxr0GlKA==",
      "dev": true,
      "dependencies": {
        "@hapi/hoek": "^9.0.0",
@@ -2836,6 +2861,12 @@
        "js-yaml": "bin/js-yaml.js"
      }
    },
+
    "node_modules/json-buffer": {
+
      "version": "3.0.1",
+
      "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+
      "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+
      "dev": true
+
    },
    "node_modules/json-schema-traverse": {
      "version": "0.4.1",
      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
@@ -2885,6 +2916,15 @@
        "katex": "cli.js"
      }
    },
+
    "node_modules/keyv": {
+
      "version": "4.5.3",
+
      "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz",
+
      "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==",
+
      "dev": true,
+
      "dependencies": {
+
        "json-buffer": "3.0.1"
+
      }
+
    },
    "node_modules/kind-of": {
      "version": "6.0.3",
      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
@@ -3019,9 +3059,9 @@
      }
    },
    "node_modules/marked": {
-
      "version": "7.0.4",
-
      "resolved": "https://registry.npmjs.org/marked/-/marked-7.0.4.tgz",
-
      "integrity": "sha512-t8eP0dXRJMtMvBojtkcsA7n48BkauktUKzfkPSCq85ZMTJ0v76Rke4DYz01omYpPTUh4p/f7HePgRo3ebG8+QQ==",
+
      "version": "9.0.3",
+
      "resolved": "https://registry.npmjs.org/marked/-/marked-9.0.3.tgz",
+
      "integrity": "sha512-pI/k4nzBG1PEq1J3XFEHxVvjicfjl8rgaMaqclouGSMPhk7Q3Ejb2ZRxx/ZQOcQ1909HzVoWCFYq6oLgtL4BpQ==",
      "bin": {
        "marked": "bin/marked.js"
      },
@@ -3030,27 +3070,27 @@
      }
    },
    "node_modules/marked-katex-extension": {
-
      "version": "3.0.3",
-
      "resolved": "https://registry.npmjs.org/marked-katex-extension/-/marked-katex-extension-3.0.3.tgz",
-
      "integrity": "sha512-FWz5Anp2Fu7NquXf/6Q9J6+MkzmNPVw2cZXUosNxTTzM/tPhO63Kh4duiClLi1vW9NuwDlH7UwjrU3qrD1hfjg==",
+
      "version": "3.0.6",
+
      "resolved": "https://registry.npmjs.org/marked-katex-extension/-/marked-katex-extension-3.0.6.tgz",
+
      "integrity": "sha512-X1XPjXVFcE0zo6oCcHuIOUrFCzUNMOPXqh05c18kNEB/htLSohrJTzOSWhDnNyVynoTiYrl8IhwZu6C0lTNFAQ==",
      "dependencies": {
        "@types/katex": "^0.16.2",
        "katex": "^0.16.8"
      },
      "peerDependencies": {
-
        "marked": "^4 || ^5 || ^6 || ^7"
+
        "marked": ">=4 <10"
      }
    },
    "node_modules/marked-linkify-it": {
-
      "version": "3.1.1",
-
      "resolved": "https://registry.npmjs.org/marked-linkify-it/-/marked-linkify-it-3.1.1.tgz",
-
      "integrity": "sha512-aUBfHW1wcDpAfZuygE+Py7ZZXWFCkTHVBjfedV/yQbT+TuY2LvSDKyowuhSMuFDbMQtq/LL0m2wYGjPtizn6yg==",
+
      "version": "3.1.4",
+
      "resolved": "https://registry.npmjs.org/marked-linkify-it/-/marked-linkify-it-3.1.4.tgz",
+
      "integrity": "sha512-jKssH4Xt82ZriU1esB6aeNmIsFmTnYBiiveXvE+7XNRq4+euiE/zgW/hn+6Y5KhbtBGTMhaFcyibsSF8FYLHIg==",
      "dependencies": {
-
        "@types/linkify-it": "^3.0.2",
+
        "@types/linkify-it": "^3.0.3",
        "linkify-it": "^4.0.1"
      },
      "peerDependencies": {
-
        "marked": "^4 || ^5 || ^6 || ^7"
+
        "marked": ">=4 <10"
      }
    },
    "node_modules/md5": {
@@ -3063,6 +3103,25 @@
        "is-buffer": "~1.1.6"
      }
    },
+
    "node_modules/mdast-util-to-hast": {
+
      "version": "13.0.2",
+
      "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.0.2.tgz",
+
      "integrity": "sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==",
+
      "dependencies": {
+
        "@types/hast": "^3.0.0",
+
        "@types/mdast": "^4.0.0",
+
        "@ungap/structured-clone": "^1.0.0",
+
        "devlop": "^1.0.0",
+
        "micromark-util-sanitize-uri": "^2.0.0",
+
        "trim-lines": "^3.0.0",
+
        "unist-util-position": "^5.0.0",
+
        "unist-util-visit": "^5.0.0"
+
      },
+
      "funding": {
+
        "type": "opencollective",
+
        "url": "https://opencollective.com/unified"
+
      }
+
    },
    "node_modules/mdn-data": {
      "version": "2.0.30",
      "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
@@ -3083,6 +3142,90 @@
        "node": ">= 8"
      }
    },
+
    "node_modules/micromark-util-character": {
+
      "version": "2.0.1",
+
      "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz",
+
      "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==",
+
      "funding": [
+
        {
+
          "type": "GitHub Sponsors",
+
          "url": "https://github.com/sponsors/unifiedjs"
+
        },
+
        {
+
          "type": "OpenCollective",
+
          "url": "https://opencollective.com/unified"
+
        }
+
      ],
+
      "dependencies": {
+
        "micromark-util-symbol": "^2.0.0",
+
        "micromark-util-types": "^2.0.0"
+
      }
+
    },
+
    "node_modules/micromark-util-encode": {
+
      "version": "2.0.0",
+
      "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz",
+
      "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==",
+
      "funding": [
+
        {
+
          "type": "GitHub Sponsors",
+
          "url": "https://github.com/sponsors/unifiedjs"
+
        },
+
        {
+
          "type": "OpenCollective",
+
          "url": "https://opencollective.com/unified"
+
        }
+
      ]
+
    },
+
    "node_modules/micromark-util-sanitize-uri": {
+
      "version": "2.0.0",
+
      "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz",
+
      "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==",
+
      "funding": [
+
        {
+
          "type": "GitHub Sponsors",
+
          "url": "https://github.com/sponsors/unifiedjs"
+
        },
+
        {
+
          "type": "OpenCollective",
+
          "url": "https://opencollective.com/unified"
+
        }
+
      ],
+
      "dependencies": {
+
        "micromark-util-character": "^2.0.0",
+
        "micromark-util-encode": "^2.0.0",
+
        "micromark-util-symbol": "^2.0.0"
+
      }
+
    },
+
    "node_modules/micromark-util-symbol": {
+
      "version": "2.0.0",
+
      "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz",
+
      "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==",
+
      "funding": [
+
        {
+
          "type": "GitHub Sponsors",
+
          "url": "https://github.com/sponsors/unifiedjs"
+
        },
+
        {
+
          "type": "OpenCollective",
+
          "url": "https://opencollective.com/unified"
+
        }
+
      ]
+
    },
+
    "node_modules/micromark-util-types": {
+
      "version": "2.0.0",
+
      "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz",
+
      "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==",
+
      "funding": [
+
        {
+
          "type": "GitHub Sponsors",
+
          "url": "https://github.com/sponsors/unifiedjs"
+
        },
+
        {
+
          "type": "OpenCollective",
+
          "url": "https://opencollective.com/unified"
+
        }
+
      ]
+
    },
    "node_modules/micromatch": {
      "version": "4.0.5",
      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
@@ -3172,15 +3315,15 @@
      }
    },
    "node_modules/mlly": {
-
      "version": "1.4.0",
-
      "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.0.tgz",
-
      "integrity": "sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==",
+
      "version": "1.4.2",
+
      "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz",
+
      "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==",
      "dev": true,
      "dependencies": {
-
        "acorn": "^8.9.0",
+
        "acorn": "^8.10.0",
        "pathe": "^1.1.1",
        "pkg-types": "^1.0.3",
-
        "ufo": "^1.1.2"
+
        "ufo": "^1.3.0"
      }
    },
    "node_modules/mri": {
@@ -3378,9 +3521,15 @@
      }
    },
    "node_modules/parse5": {
-
      "version": "6.0.1",
-
      "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
-
      "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
+
      "version": "7.1.2",
+
      "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+
      "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
+
      "dependencies": {
+
        "entities": "^4.4.0"
+
      },
+
      "funding": {
+
        "url": "https://github.com/inikulin/parse5?sponsor=1"
+
      }
    },
    "node_modules/path-exists": {
      "version": "4.0.0",
@@ -3488,10 +3637,28 @@
        "node": ">=10"
      }
    },
+
    "node_modules/playwright": {
+
      "version": "1.38.1",
+
      "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.38.1.tgz",
+
      "integrity": "sha512-oRMSJmZrOu1FP5iu3UrCx8JEFRIMxLDM0c/3o4bpzU5Tz97BypefWf7TuTNPWeCe279TPal5RtPPZ+9lW/Qkow==",
+
      "dev": true,
+
      "dependencies": {
+
        "playwright-core": "1.38.1"
+
      },
+
      "bin": {
+
        "playwright": "cli.js"
+
      },
+
      "engines": {
+
        "node": ">=16"
+
      },
+
      "optionalDependencies": {
+
        "fsevents": "2.3.2"
+
      }
+
    },
    "node_modules/playwright-core": {
-
      "version": "1.37.1",
-
      "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.37.1.tgz",
-
      "integrity": "sha512-17EuQxlSIYCmEMwzMqusJ2ztDgJePjrbttaefgdsiqeLWidjYz9BxXaTaZWxH1J95SHGk6tjE+dwgWILJoUZfA==",
+
      "version": "1.38.1",
+
      "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.38.1.tgz",
+
      "integrity": "sha512-tQqNFUKa3OfMf4b2jQ7aGLB8o9bS3bOY0yMEtldtC2+spf8QXG9zvXLTXUeRsoNuxEYMgLYR+NXfAa1rjKRcrg==",
      "dev": true,
      "bin": {
        "playwright-core": "cli.js"
@@ -3501,9 +3668,9 @@
      }
    },
    "node_modules/postcss": {
-
      "version": "8.4.28",
-
      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz",
-
      "integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==",
+
      "version": "8.4.30",
+
      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.30.tgz",
+
      "integrity": "sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==",
      "dev": true,
      "funding": [
        {
@@ -3574,9 +3741,9 @@
      }
    },
    "node_modules/postcss-scss": {
-
      "version": "4.0.7",
-
      "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.7.tgz",
-
      "integrity": "sha512-xPv2GseoyXPa58Nro7M73ZntttusuCmZdeOojUFR5PZDz2BR62vfYx1w9TyOnp1+nYFowgOMipsCBhxzVkAEPw==",
+
      "version": "4.0.8",
+
      "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.8.tgz",
+
      "integrity": "sha512-Cr0X8Eu7xMhE96PJck6ses/uVVXDtE5ghUTKNUYgm8ozgP2TkgV3LWs3WgLV1xaSSLq8ZFiXaUrj0LVgG1fGEA==",
      "dev": true,
      "funding": [
        {
@@ -3596,7 +3763,7 @@
        "node": ">=12.0"
      },
      "peerDependencies": {
-
        "postcss": "^8.4.19"
+
        "postcss": "^8.4.29"
      }
    },
    "node_modules/postcss-selector-parser": {
@@ -3622,9 +3789,9 @@
      }
    },
    "node_modules/prettier": {
-
      "version": "3.0.2",
-
      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.2.tgz",
-
      "integrity": "sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==",
+
      "version": "3.0.3",
+
      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz",
+
      "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==",
      "dev": true,
      "bin": {
        "prettier": "bin/prettier.cjs"
@@ -3647,9 +3814,9 @@
      }
    },
    "node_modules/pretty-format": {
-
      "version": "29.6.3",
-
      "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz",
-
      "integrity": "sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==",
+
      "version": "29.7.0",
+
      "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+
      "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
      "dev": true,
      "dependencies": {
        "@jest/schemas": "^29.6.3",
@@ -3661,9 +3828,9 @@
      }
    },
    "node_modules/property-information": {
-
      "version": "6.2.0",
-
      "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.2.0.tgz",
-
      "integrity": "sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==",
+
      "version": "6.3.0",
+
      "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.3.0.tgz",
+
      "integrity": "sha512-gVNZ74nqhRMiIUYWGQdosYetaKc83x8oT41a0LlV3AAFCAZwCpg4vmGkq8t34+cUhp3cnM4XDiU/7xlgK7HGrg==",
      "funding": {
        "type": "github",
        "url": "https://github.com/sponsors/wooorm"
@@ -3751,9 +3918,9 @@
      }
    },
    "node_modules/rollup": {
-
      "version": "3.28.1",
-
      "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.28.1.tgz",
-
      "integrity": "sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==",
+
      "version": "3.29.3",
+
      "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.3.tgz",
+
      "integrity": "sha512-T7du6Hum8jOkSWetjRgbwpM6Sy0nECYrYRSmZjayFcOddtKJWU4d17AC3HNUk7HRuqy4p+G7aEZclSHytqUmEg==",
      "dev": true,
      "bin": {
        "rollup": "dist/bin/rollup"
@@ -3907,9 +4074,9 @@
      }
    },
    "node_modules/sinon": {
-
      "version": "15.2.0",
-
      "resolved": "https://registry.npmjs.org/sinon/-/sinon-15.2.0.tgz",
-
      "integrity": "sha512-nPS85arNqwBXaIsFCkolHjGIkFo+Oxu9vbgmBJizLAhqe6P2o3Qmj3KCUoRkfhHtvgDhZdWD3risLHAUJ8npjw==",
+
      "version": "16.0.0",
+
      "resolved": "https://registry.npmjs.org/sinon/-/sinon-16.0.0.tgz",
+
      "integrity": "sha512-B8AaZZm9CT5pqe4l4uWJztfD/mOTa7dL8Qo0W4+s+t74xECOgSZDDQCBjNgIK3+n4kyxQrSTv2V5ul8K25qkiQ==",
      "dependencies": {
        "@sinonjs/commons": "^3.0.0",
        "@sinonjs/fake-timers": "^10.3.0",
@@ -4077,9 +4244,9 @@
      }
    },
    "node_modules/svelte": {
-
      "version": "4.2.0",
-
      "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.0.tgz",
-
      "integrity": "sha512-kVsdPjDbLrv74SmLSUzAsBGquMs4MPgWGkGLpH+PjOYnFOziAvENVzgJmyOCV2gntxE32aNm8/sqNKD6LbIpeQ==",
+
      "version": "4.2.1",
+
      "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.1.tgz",
+
      "integrity": "sha512-LpLqY2Jr7cRxkrTc796/AaaoMLF/1ax7cto8Ot76wrvKQhrPmZ0JgajiWPmg9mTSDqO16SSLiD17r9MsvAPTmw==",
      "dependencies": {
        "@ampproject/remapping": "^2.2.1",
        "@jridgewell/sourcemap-codec": "^1.4.15",
@@ -4100,9 +4267,9 @@
      }
    },
    "node_modules/svelte-check": {
-
      "version": "3.5.0",
-
      "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.5.0.tgz",
-
      "integrity": "sha512-KHujbn4k17xKYLmtCwv0sKKM7uiHTYcQvXnvrCcNU6a7hcszh99zFTIoiu/Sp/ewAw5aJmillJ1Cs8gKLmcX4A==",
+
      "version": "3.5.2",
+
      "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.5.2.tgz",
+
      "integrity": "sha512-5a/YWbiH4c+AqAUP+0VneiV5bP8YOk9JL3jwvN+k2PEPLgpu85bjQc5eE67+eIZBBwUEJzmO3I92OqKcqbp3fw==",
      "dev": true,
      "dependencies": {
        "@jridgewell/trace-mapping": "^0.3.17",
@@ -4241,9 +4408,9 @@
      "dev": true
    },
    "node_modules/tinybench": {
-
      "version": "2.5.0",
-
      "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.0.tgz",
-
      "integrity": "sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==",
+
      "version": "2.5.1",
+
      "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz",
+
      "integrity": "sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==",
      "dev": true
    },
    "node_modules/tinypool": {
@@ -4276,10 +4443,19 @@
        "node": ">=8.0"
      }
    },
+
    "node_modules/trim-lines": {
+
      "version": "3.0.1",
+
      "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
+
      "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
+
      "funding": {
+
        "type": "github",
+
        "url": "https://github.com/sponsors/wooorm"
+
      }
+
    },
    "node_modules/ts-api-utils": {
-
      "version": "1.0.2",
-
      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.2.tgz",
-
      "integrity": "sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==",
+
      "version": "1.0.3",
+
      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz",
+
      "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==",
      "dev": true,
      "engines": {
        "node": ">=16.13.0"
@@ -4342,9 +4518,9 @@
      }
    },
    "node_modules/typescript": {
-
      "version": "5.1.6",
-
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz",
-
      "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==",
+
      "version": "5.2.2",
+
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
+
      "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
      "dev": true,
      "bin": {
        "tsc": "bin/tsc",
@@ -4360,17 +4536,17 @@
      "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
    },
    "node_modules/ufo": {
-
      "version": "1.2.0",
-
      "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.2.0.tgz",
-
      "integrity": "sha512-RsPyTbqORDNDxqAdQPQBpgqhWle1VcTSou/FraClYlHf6TZnQcGslpLcAphNR+sQW4q5lLWLbOsRlh9j24baQg==",
+
      "version": "1.3.0",
+
      "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.0.tgz",
+
      "integrity": "sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==",
      "dev": true
    },
    "node_modules/unist-util-is": {
-
      "version": "5.2.1",
-
      "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
-
      "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
+
      "version": "6.0.0",
+
      "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
+
      "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
      "dependencies": {
-
        "@types/unist": "^2.0.0"
+
        "@types/unist": "^3.0.0"
      },
      "funding": {
        "type": "opencollective",
@@ -4378,11 +4554,11 @@
      }
    },
    "node_modules/unist-util-position": {
-
      "version": "4.0.4",
-
      "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz",
-
      "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==",
+
      "version": "5.0.0",
+
      "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+
      "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
      "dependencies": {
-
        "@types/unist": "^2.0.0"
+
        "@types/unist": "^3.0.0"
      },
      "funding": {
        "type": "opencollective",
@@ -4390,11 +4566,11 @@
      }
    },
    "node_modules/unist-util-stringify-position": {
-
      "version": "3.0.3",
-
      "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz",
-
      "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==",
+
      "version": "4.0.0",
+
      "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+
      "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
      "dependencies": {
-
        "@types/unist": "^2.0.0"
+
        "@types/unist": "^3.0.0"
      },
      "funding": {
        "type": "opencollective",
@@ -4402,13 +4578,13 @@
      }
    },
    "node_modules/unist-util-visit": {
-
      "version": "4.1.2",
-
      "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz",
-
      "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==",
+
      "version": "5.0.0",
+
      "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+
      "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
      "dependencies": {
-
        "@types/unist": "^2.0.0",
-
        "unist-util-is": "^5.0.0",
-
        "unist-util-visit-parents": "^5.1.1"
+
        "@types/unist": "^3.0.0",
+
        "unist-util-is": "^6.0.0",
+
        "unist-util-visit-parents": "^6.0.0"
      },
      "funding": {
        "type": "opencollective",
@@ -4416,12 +4592,12 @@
      }
    },
    "node_modules/unist-util-visit-parents": {
-
      "version": "5.1.3",
-
      "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz",
-
      "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==",
+
      "version": "6.0.1",
+
      "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz",
+
      "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==",
      "dependencies": {
-
        "@types/unist": "^2.0.0",
-
        "unist-util-is": "^5.0.0"
+
        "@types/unist": "^3.0.0",
+
        "unist-util-is": "^6.0.0"
      },
      "funding": {
        "type": "opencollective",
@@ -4452,14 +4628,13 @@
      "dev": true
    },
    "node_modules/vfile": {
-
      "version": "5.3.7",
-
      "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz",
-
      "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==",
+
      "version": "6.0.1",
+
      "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz",
+
      "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==",
      "dependencies": {
-
        "@types/unist": "^2.0.0",
-
        "is-buffer": "^2.0.0",
-
        "unist-util-stringify-position": "^3.0.0",
-
        "vfile-message": "^3.0.0"
+
        "@types/unist": "^3.0.0",
+
        "unist-util-stringify-position": "^4.0.0",
+
        "vfile-message": "^4.0.0"
      },
      "funding": {
        "type": "opencollective",
@@ -4467,12 +4642,12 @@
      }
    },
    "node_modules/vfile-location": {
-
      "version": "4.1.0",
-
      "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz",
-
      "integrity": "sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==",
+
      "version": "5.0.2",
+
      "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.2.tgz",
+
      "integrity": "sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==",
      "dependencies": {
-
        "@types/unist": "^2.0.0",
-
        "vfile": "^5.0.0"
+
        "@types/unist": "^3.0.0",
+
        "vfile": "^6.0.0"
      },
      "funding": {
        "type": "opencollective",
@@ -4480,40 +4655,18 @@
      }
    },
    "node_modules/vfile-message": {
-
      "version": "3.1.4",
-
      "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz",
-
      "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==",
+
      "version": "4.0.2",
+
      "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+
      "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
      "dependencies": {
-
        "@types/unist": "^2.0.0",
-
        "unist-util-stringify-position": "^3.0.0"
+
        "@types/unist": "^3.0.0",
+
        "unist-util-stringify-position": "^4.0.0"
      },
      "funding": {
        "type": "opencollective",
        "url": "https://opencollective.com/unified"
      }
    },
-
    "node_modules/vfile/node_modules/is-buffer": {
-
      "version": "2.0.5",
-
      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
-
      "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
-
      "funding": [
-
        {
-
          "type": "github",
-
          "url": "https://github.com/sponsors/feross"
-
        },
-
        {
-
          "type": "patreon",
-
          "url": "https://www.patreon.com/feross"
-
        },
-
        {
-
          "type": "consulting",
-
          "url": "https://feross.org/support"
-
        }
-
      ],
-
      "engines": {
-
        "node": ">=4"
-
      }
-
    },
    "node_modules/vite": {
      "version": "4.4.9",
      "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz",
@@ -4570,9 +4723,9 @@
      }
    },
    "node_modules/vite-node": {
-
      "version": "0.34.2",
-
      "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.34.2.tgz",
-
      "integrity": "sha512-JtW249Zm3FB+F7pQfH56uWSdlltCo1IOkZW5oHBzeQo0iX4jtC7o1t9aILMGd9kVekXBP2lfJBEQt9rBh07ebA==",
+
      "version": "0.34.5",
+
      "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.34.5.tgz",
+
      "integrity": "sha512-RNZ+DwbCvDoI5CbCSQSyRyzDTfFvFauvMs6Yq4ObJROKlIKuat1KgSX/Ako5rlDMfVCyMcpMRMTkJBxd6z8YRA==",
      "dev": true,
      "dependencies": {
        "cac": "^6.7.14",
@@ -4580,7 +4733,7 @@
        "mlly": "^1.4.0",
        "pathe": "^1.1.1",
        "picocolors": "^1.0.0",
-
        "vite": "^3.0.0 || ^4.0.0"
+
        "vite": "^3.0.0 || ^4.0.0 || ^5.0.0-0"
      },
      "bin": {
        "vite-node": "vite-node.mjs"
@@ -4607,19 +4760,19 @@
      }
    },
    "node_modules/vitest": {
-
      "version": "0.34.2",
-
      "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.34.2.tgz",
-
      "integrity": "sha512-WgaIvBbjsSYMq/oiMlXUI7KflELmzM43BEvkdC/8b5CAod4ryAiY2z8uR6Crbi5Pjnu5oOmhKa9sy7uk6paBxQ==",
+
      "version": "0.34.5",
+
      "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.34.5.tgz",
+
      "integrity": "sha512-CPI68mmnr2DThSB3frSuE5RLm9wo5wU4fbDrDwWQQB1CWgq9jQVoQwnQSzYAjdoBOPoH2UtXpOgHVge/uScfZg==",
      "dev": true,
      "dependencies": {
        "@types/chai": "^4.3.5",
        "@types/chai-subset": "^1.3.3",
        "@types/node": "*",
-
        "@vitest/expect": "0.34.2",
-
        "@vitest/runner": "0.34.2",
-
        "@vitest/snapshot": "0.34.2",
-
        "@vitest/spy": "0.34.2",
-
        "@vitest/utils": "0.34.2",
+
        "@vitest/expect": "0.34.5",
+
        "@vitest/runner": "0.34.5",
+
        "@vitest/snapshot": "0.34.5",
+
        "@vitest/spy": "0.34.5",
+
        "@vitest/utils": "0.34.5",
        "acorn": "^8.9.0",
        "acorn-walk": "^8.2.0",
        "cac": "^6.7.14",
@@ -4633,8 +4786,8 @@
        "strip-literal": "^1.0.1",
        "tinybench": "^2.5.0",
        "tinypool": "^0.7.0",
-
        "vite": "^3.0.0 || ^4.0.0",
-
        "vite-node": "0.34.2",
+
        "vite": "^3.1.0 || ^4.0.0 || ^5.0.0-0",
+
        "vite-node": "0.34.5",
        "why-is-node-running": "^2.2.2"
      },
      "bin": {
@@ -4684,9 +4837,9 @@
      }
    },
    "node_modules/vscode-oniguruma": {
-
      "version": "1.7.0",
-
      "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz",
-
      "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA=="
+
      "version": "2.0.1",
+
      "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-2.0.1.tgz",
+
      "integrity": "sha512-poJU8iHIWnC3vgphJnrLZyI3YdqRlR27xzqDmpPXYzA93R4Gk8z7T6oqDzDoHjoikA2aS82crdXFkjELCdJsjQ=="
    },
    "node_modules/vscode-textmate": {
      "version": "9.0.0",
modified package.json
@@ -19,54 +19,54 @@
    "node": ">=18.17.1"
  },
  "devDependencies": {
-
    "@playwright/test": "^1.37.1",
+
    "@playwright/test": "^1.38.1",
    "@sinonjs/fake-timers": "11.0.0",
-
    "@sveltejs/vite-plugin-svelte": "^2.4.5",
-
    "@tsconfig/svelte": "^5.0.1",
-
    "@types/dompurify": "^3.0.2",
-
    "@types/katex": "^0.16.2",
-
    "@types/lodash": "^4.14.197",
+
    "@sveltejs/vite-plugin-svelte": "^2.4.6",
+
    "@tsconfig/svelte": "^5.0.2",
+
    "@types/dompurify": "^3.0.3",
+
    "@types/katex": "^0.16.3",
+
    "@types/lodash": "^4.14.199",
    "@types/md5": "^2.3.2",
    "@types/node": "^18.17.1",
-
    "@types/sinon": "^10.0.16",
+
    "@types/sinon": "^10.0.17",
    "@types/sinonjs__fake-timers": "^8.1.2",
-
    "@types/wait-on": "^5.3.1",
-
    "@typescript-eslint/eslint-plugin": "^6.4.1",
+
    "@types/wait-on": "^5.3.2",
+
    "@typescript-eslint/eslint-plugin": "^6.7.3",
    "chalk": "^5.3.0",
-
    "eslint": "^8.47.0",
+
    "eslint": "^8.50.0",
    "eslint-config-prettier": "^9.0.0",
    "eslint-plugin-no-only-tests": "^3.1.0",
-
    "eslint-plugin-svelte": "^2.33.0",
+
    "eslint-plugin-svelte": "^2.33.2",
    "execa": "^8.0.1",
-
    "exit-hook": "^3.2.0",
+
    "exit-hook": "^4.0.0",
    "get-port": "^7.0.0",
-
    "happy-dom": "^10.10.4",
-
    "prettier": "^3.0.2",
+
    "happy-dom": "^12.2.0",
+
    "prettier": "^3.0.3",
    "prettier-plugin-svelte": "^3.0.3",
-
    "svelte-check": "^3.5.0",
-
    "typescript": "^5.1.6",
+
    "svelte-check": "^3.5.2",
+
    "typescript": "^5.2.2",
    "vite": "^4.4.9",
-
    "vitest": "^0.34.2",
+
    "vitest": "^0.34.5",
    "wait-on": "^7.0.1"
  },
  "dependencies": {
    "@radicle/gray-matter": "4.1.0",
-
    "@wooorm/starry-night": "^2.1.1",
+
    "@wooorm/starry-night": "^3.0.0",
    "async-mutex": "^0.4.0",
    "baconjs": "^3.0.17",
    "bs58": "^5.0.0",
    "buffer": "^6.0.3",
    "dompurify": "^3.0.5",
-
    "hast-util-to-dom": "^3.1.1",
-
    "hast-util-to-html": "^8.0.4",
+
    "hast-util-to-dom": "^4.0.0",
+
    "hast-util-to-html": "^9.0.0",
    "lodash": "^4.17.21",
-
    "marked": "^7.0.4",
-
    "marked-katex-extension": "^3.0.3",
-
    "marked-linkify-it": "^3.1.1",
+
    "marked": "^9.0.3",
+
    "marked-katex-extension": "^3.0.6",
+
    "marked-linkify-it": "^3.1.4",
    "md5": "^2.3.0",
    "plausible-tracker": "^0.3.8",
-
    "sinon": "^15.2.0",
-
    "svelte": "^4.2.0",
+
    "sinon": "^16.0.0",
+
    "svelte": "^4.2.1",
    "twemoji": "^14.0.2",
    "zod": "^3.22.2"
  }
modified src/lib/mutexExecutor.ts
@@ -4,6 +4,7 @@
// with Radicle Linking Exception. For full terms see the included
// LICENSE file.

+
//@ts-expect-error the typescript bindings are out of date.
import * as Bacon from "baconjs";

// A task executor that runs only one task concurrently. If a new task
modified src/lib/syntax.ts
@@ -1,14 +1,13 @@
-
import type { Root } from "@wooorm/starry-night";
-
import type { ElementContent } from "hast";
+
import type { ElementContent, Root } from "hast";

import onigurumaWASMUrl from "vscode-oniguruma/release/onig.wasm?url";
-
import sourceAsciiDoc from "@wooorm/starry-night/lang/text.html.asciidoc";
-
import sourceDockerfile from "@wooorm/starry-night/lang/source.dockerfile";
-
import sourceErlang from "@wooorm/starry-night/lang/source.erlang.js";
-
import sourceSolidity from "@wooorm/starry-night/lang/source.solidity.js";
-
import sourceSvelte from "@wooorm/starry-night/lang/source.svelte.js";
-
import sourceToml from "@wooorm/starry-night/lang/source.toml";
-
import sourceTsx from "@wooorm/starry-night/lang/source.tsx";
+
import sourceAsciiDoc from "@wooorm/starry-night/text.html.asciidoc";
+
import sourceDockerfile from "@wooorm/starry-night/source.dockerfile";
+
import sourceErlang from "@wooorm/starry-night/source.erlang";
+
import sourceSolidity from "@wooorm/starry-night/source.solidity";
+
import sourceSvelte from "@wooorm/starry-night/source.svelte";
+
import sourceToml from "@wooorm/starry-night/source.toml";
+
import sourceTsx from "@wooorm/starry-night/source.tsx";
import { createStarryNight, common } from "@wooorm/starry-night";

export { type Root };
modified tests/unit/mutexExecutor.test.ts
@@ -95,7 +95,7 @@ describe("worker", () => {
    });

    const outputs: number[] = [];
-
    w.output.onValue(value => outputs.push(value));
+
    w.output.onValue((value: any) => outputs.push(value));

    await w.submit(1);
    await w.submit(2);
modified tsconfig.json
@@ -8,7 +8,7 @@
    "types": ["vite/client"],
    "sourceMap": true,
    "baseUrl": "./",
-
    "moduleResolution": "node",
+
    "moduleResolution": "bundler",
    "strict": true,
    "resolveJsonModule": true,
    "noUnusedLocals": true,
modified vite.config.ts
@@ -50,19 +50,19 @@ export default defineConfig({
          ],
          syntax: ["@wooorm/starry-night"],
          grammarsTsx: [
-
            "@wooorm/starry-night/lang/source.ts.js",
-
            "@wooorm/starry-night/lang/source.tsx.js",
+
            "@wooorm/starry-night/source.ts",
+
            "@wooorm/starry-night/source.tsx",
          ],
          grammars: [
-
            "@wooorm/starry-night/lang/source.python.js",
-
            "@wooorm/starry-night/lang/source.js.js",
-
            "@wooorm/starry-night/lang/source.perl.js",
-
            "@wooorm/starry-night/lang/source.haskell.js",
-
            "@wooorm/starry-night/lang/source.ruby.js",
-
            "@wooorm/starry-night/lang/source.css.js",
-
            "@wooorm/starry-night/lang/source.solidity.js",
-
            "@wooorm/starry-night/lang/source.cs.js",
-
            "@wooorm/starry-night/lang/source.swift.js",
+
            "@wooorm/starry-night/source.python",
+
            "@wooorm/starry-night/source.js",
+
            "@wooorm/starry-night/source.perl",
+
            "@wooorm/starry-night/source.haskell",
+
            "@wooorm/starry-night/source.ruby",
+
            "@wooorm/starry-night/source.css",
+
            "@wooorm/starry-night/source.solidity",
+
            "@wooorm/starry-night/source.cs",
+
            "@wooorm/starry-night/source.swift",
          ],
          dom: ["svelte", "twemoji"],
        },