diff --git a/bun.lock b/bun.lock
index d95dc221..8d3cce6d 100644
--- a/bun.lock
+++ b/bun.lock
@@ -32,7 +32,7 @@
"rehype-external-links": "^3.0.0",
"rehype-katex": "7.0.1",
"remark-math": "6.0.0",
- "sablier": "1.1.0",
+ "sablier": "1.2.1",
"viem": "^2.37.9",
},
"devDependencies": {
@@ -316,23 +316,23 @@
"@babel/types": ["@babel/types@7.28.4", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" } }, "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q=="],
- "@biomejs/biome": ["@biomejs/biome@2.2.6", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.2.6", "@biomejs/cli-darwin-x64": "2.2.6", "@biomejs/cli-linux-arm64": "2.2.6", "@biomejs/cli-linux-arm64-musl": "2.2.6", "@biomejs/cli-linux-x64": "2.2.6", "@biomejs/cli-linux-x64-musl": "2.2.6", "@biomejs/cli-win32-arm64": "2.2.6", "@biomejs/cli-win32-x64": "2.2.6" }, "bin": { "biome": "bin/biome" } }, "sha512-yKTCNGhek0rL5OEW1jbLeZX8LHaM8yk7+3JRGv08my+gkpmtb5dDE+54r2ZjZx0ediFEn1pYBOJSmOdDP9xtFw=="],
+ "@biomejs/biome": ["@biomejs/biome@2.2.7", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.2.7", "@biomejs/cli-darwin-x64": "2.2.7", "@biomejs/cli-linux-arm64": "2.2.7", "@biomejs/cli-linux-arm64-musl": "2.2.7", "@biomejs/cli-linux-x64": "2.2.7", "@biomejs/cli-linux-x64-musl": "2.2.7", "@biomejs/cli-win32-arm64": "2.2.7", "@biomejs/cli-win32-x64": "2.2.7" }, "bin": { "biome": "bin/biome" } }, "sha512-1a8j0UP1vXVUf3UzMZEJ/zS2VgAG6wU6Cuh/I764sUGI+MCnJs/9WaojHYBDCxCMLTgU60/WqnYof85emXmSBA=="],
- "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.2.6", "", { "os": "darwin", "cpu": "arm64" }, "sha512-UZPmn3M45CjTYulgcrFJFZv7YmK3pTxTJDrFYlNElT2FNnkkX4fsxjExTSMeWKQYoZjvekpH5cvrYZZlWu3yfA=="],
+ "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.2.7", "", { "os": "darwin", "cpu": "arm64" }, "sha512-xBUUsebnO2/Qj1v7eZmKUy2ZcFkZ4/jLUkxN02Qup1RPoRaiW9AKXHrqS3L7iX6PzofHY2xuZ+Pb9kAcpoe0qA=="],
- "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.2.6", "", { "os": "darwin", "cpu": "x64" }, "sha512-HOUIquhHVgh/jvxyClpwlpl/oeMqntlteL89YqjuFDiZ091P0vhHccwz+8muu3nTyHWM5FQslt+4Jdcd67+xWQ=="],
+ "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.2.7", "", { "os": "darwin", "cpu": "x64" }, "sha512-vsY4NhmxqgfLJufr9XUnC+yGUPJiXAc1mz6FcjaAmuIuLwfghN4uQO7hnW2AneGyoi2mNe9Jbvf6Qtq4AjzrFg=="],
- "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.2.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-BpGtuMJGN+o8pQjvYsUKZ+4JEErxdSmcRD/JG3mXoWc6zrcA7OkuyGFN1mDggO0Q1n7qXxo/PcupHk8gzijt5g=="],
+ "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.2.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-nUdco104rjV9dULi1VssQ5R/kX2jE/Z2sDjyqS+siV9sTQda0DwmEUixFNRCWvZJRRiZUWhgiDFJ4n7RowO8Mg=="],
- "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.2.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-TjCenQq3N6g1C+5UT3jE1bIiJb5MWQvulpUngTIpFsL4StVAUXucWD0SL9MCW89Tm6awWfeXBbZBAhJwjyFbRQ=="],
+ "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.2.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-FrTwvKO/7t5HbVTvhlMOTOVQLAcR7r4O4iFQhEpZXUtBfosHqrX/JJlX7daPawoe14MDcCu9CDg0zLVpTuDvuQ=="],
- "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.2.6", "", { "os": "linux", "cpu": "x64" }, "sha512-1HaM/dpI/1Z68zp8ZdT6EiBq+/O/z97a2AiHMl+VAdv5/ELckFt9EvRb8hDHpk8hUMoz03gXkC7VPXOVtU7faA=="],
+ "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.2.7", "", { "os": "linux", "cpu": "x64" }, "sha512-tPTcGAIEOOZrj2tQ7fdraWlaxNKApBw6l4In8wQQV1IyxnAexqi0hykHzKEX8hKKctf5gxGBfNCzyIvqpj4CFQ=="],
- "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.2.6", "", { "os": "linux", "cpu": "x64" }, "sha512-1ZcBux8zVM3JhWN2ZCPaYf0+ogxXG316uaoXJdgoPZcdK/rmRcRY7PqHdAos2ExzvjIdvhQp72UcveI98hgOog=="],
+ "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.2.7", "", { "os": "linux", "cpu": "x64" }, "sha512-MnsysF5s/iLC5wnYvuMseOy+m8Pd4bWG1uwlVyy2AUbfjAVUgtbYbboc5wMXljFrDY7e6rLjLTR4S2xqDpGlQg=="],
- "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.2.6", "", { "os": "win32", "cpu": "arm64" }, "sha512-h3A88G8PGM1ryTeZyLlSdfC/gz3e95EJw9BZmA6Po412DRqwqPBa2Y9U+4ZSGUAXCsnSQE00jLV8Pyrh0d+jQw=="],
+ "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.2.7", "", { "os": "win32", "cpu": "arm64" }, "sha512-h5D1jhwA2b7cFXerYiJfXHSzzAMFFoEDL5Mc2BgiaEw0iaSgSso/3Nc6FbOR55aTQISql+IpB4PS7JoV26Gdbw=="],
- "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.2.6", "", { "os": "win32", "cpu": "x64" }, "sha512-yx0CqeOhPjYQ5ZXgPfu8QYkgBhVJyvWe36as7jRuPrKPO5ylVDfwVtPQ+K/mooNTADW0IhxOZm3aPu16dP8yNQ=="],
+ "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.2.7", "", { "os": "win32", "cpu": "x64" }, "sha512-URqAJi0kONyBKG4V9NVafHLDtm6IHmF4qPYi/b6x7MD6jxpWeJiTCO6R5+xDlWckX2T/OGv6Yq3nkz6s0M8Ykw=="],
"@braintree/sanitize-url": ["@braintree/sanitize-url@7.1.1", "", {}, "sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw=="],
@@ -448,67 +448,67 @@
"@docsearch/react": ["@docsearch/react@4.2.0", "", { "dependencies": { "@ai-sdk/react": "^2.0.30", "@algolia/autocomplete-core": "1.19.2", "@docsearch/css": "4.2.0", "ai": "^5.0.30", "algoliasearch": "^5.28.0", "marked": "^16.3.0", "zod": "^4.1.8" }, "peerDependencies": { "@types/react": ">= 16.8.0 < 20.0.0", "react": ">= 16.8.0 < 20.0.0", "react-dom": ">= 16.8.0 < 20.0.0", "search-insights": ">= 1 < 3" }, "optionalPeers": ["@types/react", "react", "react-dom", "search-insights"] }, "sha512-zSN/KblmtBcerf7Z87yuKIHZQmxuXvYc6/m0+qnjyNu+Ir67AVOagTa1zBqcxkVUVkmBqUExdcyrdo9hbGbqTw=="],
- "@docusaurus/babel": ["@docusaurus/babel@3.9.1", "", { "dependencies": { "@babel/core": "^7.25.9", "@babel/generator": "^7.25.9", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-transform-runtime": "^7.25.9", "@babel/preset-env": "^7.25.9", "@babel/preset-react": "^7.25.9", "@babel/preset-typescript": "^7.25.9", "@babel/runtime": "^7.25.9", "@babel/runtime-corejs3": "^7.25.9", "@babel/traverse": "^7.25.9", "@docusaurus/logger": "3.9.1", "@docusaurus/utils": "3.9.1", "babel-plugin-dynamic-import-node": "^2.3.3", "fs-extra": "^11.1.1", "tslib": "^2.6.0" } }, "sha512-/uoi3oG+wvbVWNBRfPrzrEslOSeLxrQEyWMywK51TLDFTANqIRivzkMusudh5bdDty8fXzCYUT+tg5t697jYqg=="],
+ "@docusaurus/babel": ["@docusaurus/babel@3.9.2", "", { "dependencies": { "@babel/core": "^7.25.9", "@babel/generator": "^7.25.9", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-transform-runtime": "^7.25.9", "@babel/preset-env": "^7.25.9", "@babel/preset-react": "^7.25.9", "@babel/preset-typescript": "^7.25.9", "@babel/runtime": "^7.25.9", "@babel/runtime-corejs3": "^7.25.9", "@babel/traverse": "^7.25.9", "@docusaurus/logger": "3.9.2", "@docusaurus/utils": "3.9.2", "babel-plugin-dynamic-import-node": "^2.3.3", "fs-extra": "^11.1.1", "tslib": "^2.6.0" } }, "sha512-GEANdi/SgER+L7Japs25YiGil/AUDnFFHaCGPBbundxoWtCkA2lmy7/tFmgED4y1htAy6Oi4wkJEQdGssnw9MA=="],
- "@docusaurus/bundler": ["@docusaurus/bundler@3.9.1", "", { "dependencies": { "@babel/core": "^7.25.9", "@docusaurus/babel": "3.9.1", "@docusaurus/cssnano-preset": "3.9.1", "@docusaurus/logger": "3.9.1", "@docusaurus/types": "3.9.1", "@docusaurus/utils": "3.9.1", "babel-loader": "^9.2.1", "clean-css": "^5.3.3", "copy-webpack-plugin": "^11.0.0", "css-loader": "^6.11.0", "css-minimizer-webpack-plugin": "^5.0.1", "cssnano": "^6.1.2", "file-loader": "^6.2.0", "html-minifier-terser": "^7.2.0", "mini-css-extract-plugin": "^2.9.2", "null-loader": "^4.0.1", "postcss": "^8.5.4", "postcss-loader": "^7.3.4", "postcss-preset-env": "^10.2.1", "terser-webpack-plugin": "^5.3.9", "tslib": "^2.6.0", "url-loader": "^4.1.1", "webpack": "^5.95.0", "webpackbar": "^6.0.1" }, "peerDependencies": { "@docusaurus/faster": "*" }, "optionalPeers": ["@docusaurus/faster"] }, "sha512-E1c9DgNmAz4NqbNtiJVp4UgjLtr8O01IgtXD/NDQ4PZaK8895cMiTOgb3k7mN0qX8A3lb8vqyrPJ842+yMpuUg=="],
+ "@docusaurus/bundler": ["@docusaurus/bundler@3.9.2", "", { "dependencies": { "@babel/core": "^7.25.9", "@docusaurus/babel": "3.9.2", "@docusaurus/cssnano-preset": "3.9.2", "@docusaurus/logger": "3.9.2", "@docusaurus/types": "3.9.2", "@docusaurus/utils": "3.9.2", "babel-loader": "^9.2.1", "clean-css": "^5.3.3", "copy-webpack-plugin": "^11.0.0", "css-loader": "^6.11.0", "css-minimizer-webpack-plugin": "^5.0.1", "cssnano": "^6.1.2", "file-loader": "^6.2.0", "html-minifier-terser": "^7.2.0", "mini-css-extract-plugin": "^2.9.2", "null-loader": "^4.0.1", "postcss": "^8.5.4", "postcss-loader": "^7.3.4", "postcss-preset-env": "^10.2.1", "terser-webpack-plugin": "^5.3.9", "tslib": "^2.6.0", "url-loader": "^4.1.1", "webpack": "^5.95.0", "webpackbar": "^6.0.1" }, "peerDependencies": { "@docusaurus/faster": "*" }, "optionalPeers": ["@docusaurus/faster"] }, "sha512-ZOVi6GYgTcsZcUzjblpzk3wH1Fya2VNpd5jtHoCCFcJlMQ1EYXZetfAnRHLcyiFeBABaI1ltTYbOBtH/gahGVA=="],
- "@docusaurus/core": ["@docusaurus/core@3.9.1", "", { "dependencies": { "@docusaurus/babel": "3.9.1", "@docusaurus/bundler": "3.9.1", "@docusaurus/logger": "3.9.1", "@docusaurus/mdx-loader": "3.9.1", "@docusaurus/utils": "3.9.1", "@docusaurus/utils-common": "3.9.1", "@docusaurus/utils-validation": "3.9.1", "boxen": "^6.2.1", "chalk": "^4.1.2", "chokidar": "^3.5.3", "cli-table3": "^0.6.3", "combine-promises": "^1.1.0", "commander": "^5.1.0", "core-js": "^3.31.1", "detect-port": "^1.5.1", "escape-html": "^1.0.3", "eta": "^2.2.0", "eval": "^0.1.8", "execa": "5.1.1", "fs-extra": "^11.1.1", "html-tags": "^3.3.1", "html-webpack-plugin": "^5.6.0", "leven": "^3.1.0", "lodash": "^4.17.21", "open": "^8.4.0", "p-map": "^4.0.0", "prompts": "^2.4.2", "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", "react-loadable-ssr-addon-v5-slorber": "^1.0.1", "react-router": "^5.3.4", "react-router-config": "^5.1.1", "react-router-dom": "^5.3.4", "semver": "^7.5.4", "serve-handler": "^6.1.6", "tinypool": "^1.0.2", "tslib": "^2.6.0", "update-notifier": "^6.0.2", "webpack": "^5.95.0", "webpack-bundle-analyzer": "^4.10.2", "webpack-dev-server": "^5.2.2", "webpack-merge": "^6.0.1" }, "peerDependencies": { "@mdx-js/react": "^3.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "bin": { "docusaurus": "bin/docusaurus.mjs" } }, "sha512-FWDk1LIGD5UR5Zmm9rCrXRoxZUgbwuP6FBA7rc50DVfzqDOMkeMe3NyJhOsA2dF0zBE3VbHEIMmTjKwTZJwbaA=="],
+ "@docusaurus/core": ["@docusaurus/core@3.9.2", "", { "dependencies": { "@docusaurus/babel": "3.9.2", "@docusaurus/bundler": "3.9.2", "@docusaurus/logger": "3.9.2", "@docusaurus/mdx-loader": "3.9.2", "@docusaurus/utils": "3.9.2", "@docusaurus/utils-common": "3.9.2", "@docusaurus/utils-validation": "3.9.2", "boxen": "^6.2.1", "chalk": "^4.1.2", "chokidar": "^3.5.3", "cli-table3": "^0.6.3", "combine-promises": "^1.1.0", "commander": "^5.1.0", "core-js": "^3.31.1", "detect-port": "^1.5.1", "escape-html": "^1.0.3", "eta": "^2.2.0", "eval": "^0.1.8", "execa": "5.1.1", "fs-extra": "^11.1.1", "html-tags": "^3.3.1", "html-webpack-plugin": "^5.6.0", "leven": "^3.1.0", "lodash": "^4.17.21", "open": "^8.4.0", "p-map": "^4.0.0", "prompts": "^2.4.2", "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", "react-loadable-ssr-addon-v5-slorber": "^1.0.1", "react-router": "^5.3.4", "react-router-config": "^5.1.1", "react-router-dom": "^5.3.4", "semver": "^7.5.4", "serve-handler": "^6.1.6", "tinypool": "^1.0.2", "tslib": "^2.6.0", "update-notifier": "^6.0.2", "webpack": "^5.95.0", "webpack-bundle-analyzer": "^4.10.2", "webpack-dev-server": "^5.2.2", "webpack-merge": "^6.0.1" }, "peerDependencies": { "@mdx-js/react": "^3.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "bin": { "docusaurus": "bin/docusaurus.mjs" } }, "sha512-HbjwKeC+pHUFBfLMNzuSjqFE/58+rLVKmOU3lxQrpsxLBOGosYco/Q0GduBb0/jEMRiyEqjNT/01rRdOMWq5pw=="],
- "@docusaurus/cssnano-preset": ["@docusaurus/cssnano-preset@3.9.1", "", { "dependencies": { "cssnano-preset-advanced": "^6.1.2", "postcss": "^8.5.4", "postcss-sort-media-queries": "^5.2.0", "tslib": "^2.6.0" } }, "sha512-2y7+s7RWQMqBg+9ejeKwvZs7Bdw/hHIVJIodwMXbs2kr+S48AhcmAfdOh6Cwm0unJb0hJUshN0ROwRoQMwl3xg=="],
+ "@docusaurus/cssnano-preset": ["@docusaurus/cssnano-preset@3.9.2", "", { "dependencies": { "cssnano-preset-advanced": "^6.1.2", "postcss": "^8.5.4", "postcss-sort-media-queries": "^5.2.0", "tslib": "^2.6.0" } }, "sha512-8gBKup94aGttRduABsj7bpPFTX7kbwu+xh3K9NMCF5K4bWBqTFYW+REKHF6iBVDHRJ4grZdIPbvkiHd/XNKRMQ=="],
- "@docusaurus/faster": ["@docusaurus/faster@3.9.1", "", { "dependencies": { "@docusaurus/types": "3.9.1", "@rspack/core": "^1.5.0", "@swc/core": "^1.7.39", "@swc/html": "^1.13.5", "browserslist": "^4.24.2", "lightningcss": "^1.27.0", "swc-loader": "^0.2.6", "tslib": "^2.6.0", "webpack": "^5.95.0" } }, "sha512-zJIrIv+R/IN5TTLV9L+SvO3hwz62L6pO/L16k+b2nC3to3Gn01cnEGHL6doTGAezuPwTSmteJl+kzaoOf+znzg=="],
+ "@docusaurus/faster": ["@docusaurus/faster@3.9.2", "", { "dependencies": { "@docusaurus/types": "3.9.2", "@rspack/core": "^1.5.0", "@swc/core": "^1.7.39", "@swc/html": "^1.13.5", "browserslist": "^4.24.2", "lightningcss": "^1.27.0", "swc-loader": "^0.2.6", "tslib": "^2.6.0", "webpack": "^5.95.0" } }, "sha512-DEVIwhbrZZ4ir31X+qQNEQqDWkgCJUV6kiPPAd2MGTY8n5/n0c4B8qA5k1ipF2izwH00JEf0h6Daaut71zzkyw=="],
- "@docusaurus/logger": ["@docusaurus/logger@3.9.1", "", { "dependencies": { "chalk": "^4.1.2", "tslib": "^2.6.0" } }, "sha512-C9iFzXwHzwvGlisE4bZx+XQE0JIqlGAYAd5LzpR7fEDgjctu7yL8bE5U4nTNywXKHURDzMt4RJK8V6+stFHVkA=="],
+ "@docusaurus/logger": ["@docusaurus/logger@3.9.2", "", { "dependencies": { "chalk": "^4.1.2", "tslib": "^2.6.0" } }, "sha512-/SVCc57ByARzGSU60c50rMyQlBuMIJCjcsJlkphxY6B0GV4UH3tcA1994N8fFfbJ9kX3jIBe/xg3XP5qBtGDbA=="],
- "@docusaurus/mdx-loader": ["@docusaurus/mdx-loader@3.9.1", "", { "dependencies": { "@docusaurus/logger": "3.9.1", "@docusaurus/utils": "3.9.1", "@docusaurus/utils-validation": "3.9.1", "@mdx-js/mdx": "^3.0.0", "@slorber/remark-comment": "^1.0.0", "escape-html": "^1.0.3", "estree-util-value-to-estree": "^3.0.1", "file-loader": "^6.2.0", "fs-extra": "^11.1.1", "image-size": "^2.0.2", "mdast-util-mdx": "^3.0.0", "mdast-util-to-string": "^4.0.0", "rehype-raw": "^7.0.0", "remark-directive": "^3.0.0", "remark-emoji": "^4.0.0", "remark-frontmatter": "^5.0.0", "remark-gfm": "^4.0.0", "stringify-object": "^3.3.0", "tslib": "^2.6.0", "unified": "^11.0.3", "unist-util-visit": "^5.0.0", "url-loader": "^4.1.1", "vfile": "^6.0.1", "webpack": "^5.88.1" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-/1PY8lqry8jCt0qZddJSpc0U2sH6XC27kVJZfpA7o2TiQ3mdBQyH5AVbj/B2m682B1ounE+XjI0LdpOkAQLPoA=="],
+ "@docusaurus/mdx-loader": ["@docusaurus/mdx-loader@3.9.2", "", { "dependencies": { "@docusaurus/logger": "3.9.2", "@docusaurus/utils": "3.9.2", "@docusaurus/utils-validation": "3.9.2", "@mdx-js/mdx": "^3.0.0", "@slorber/remark-comment": "^1.0.0", "escape-html": "^1.0.3", "estree-util-value-to-estree": "^3.0.1", "file-loader": "^6.2.0", "fs-extra": "^11.1.1", "image-size": "^2.0.2", "mdast-util-mdx": "^3.0.0", "mdast-util-to-string": "^4.0.0", "rehype-raw": "^7.0.0", "remark-directive": "^3.0.0", "remark-emoji": "^4.0.0", "remark-frontmatter": "^5.0.0", "remark-gfm": "^4.0.0", "stringify-object": "^3.3.0", "tslib": "^2.6.0", "unified": "^11.0.3", "unist-util-visit": "^5.0.0", "url-loader": "^4.1.1", "vfile": "^6.0.1", "webpack": "^5.88.1" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-wiYoGwF9gdd6rev62xDU8AAM8JuLI/hlwOtCzMmYcspEkzecKrP8J8X+KpYnTlACBUUtXNJpSoCwFWJhLRevzQ=="],
- "@docusaurus/module-type-aliases": ["@docusaurus/module-type-aliases@3.9.1", "", { "dependencies": { "@docusaurus/types": "3.9.1", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", "@types/react-router-dom": "*", "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" }, "peerDependencies": { "react": "*", "react-dom": "*" } }, "sha512-YBce3GbJGGcMbJTyHcnEOMvdXqg41pa5HsrMCGA5Rm4z0h0tHS6YtEldj0mlfQRhCG7Y0VD66t2tb87Aom+11g=="],
+ "@docusaurus/module-type-aliases": ["@docusaurus/module-type-aliases@3.9.2", "", { "dependencies": { "@docusaurus/types": "3.9.2", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", "@types/react-router-dom": "*", "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" }, "peerDependencies": { "react": "*", "react-dom": "*" } }, "sha512-8qVe2QA9hVLzvnxP46ysuofJUIc/yYQ82tvA/rBTrnpXtCjNSFLxEZfd5U8cYZuJIVlkPxamsIgwd5tGZXfvew=="],
- "@docusaurus/plugin-client-redirects": ["@docusaurus/plugin-client-redirects@3.9.1", "", { "dependencies": { "@docusaurus/core": "3.9.1", "@docusaurus/logger": "3.9.1", "@docusaurus/utils": "3.9.1", "@docusaurus/utils-common": "3.9.1", "@docusaurus/utils-validation": "3.9.1", "eta": "^2.2.0", "fs-extra": "^11.1.1", "lodash": "^4.17.21", "tslib": "^2.6.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-+1InCGvAnw46H+TnVqxaYlJC0qy9AY5gTMgTx2ZFryjAsImJNs3i1pEYW/iUTVbOdtWRj3E/87E4ehbBIaA1TA=="],
+ "@docusaurus/plugin-client-redirects": ["@docusaurus/plugin-client-redirects@3.9.2", "", { "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/logger": "3.9.2", "@docusaurus/utils": "3.9.2", "@docusaurus/utils-common": "3.9.2", "@docusaurus/utils-validation": "3.9.2", "eta": "^2.2.0", "fs-extra": "^11.1.1", "lodash": "^4.17.21", "tslib": "^2.6.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-lUgMArI9vyOYMzLRBUILcg9vcPTCyyI2aiuXq/4npcMVqOr6GfmwtmBYWSbNMlIUM0147smm4WhpXD0KFboffw=="],
- "@docusaurus/plugin-content-blog": ["@docusaurus/plugin-content-blog@3.9.1", "", { "dependencies": { "@docusaurus/core": "3.9.1", "@docusaurus/logger": "3.9.1", "@docusaurus/mdx-loader": "3.9.1", "@docusaurus/theme-common": "3.9.1", "@docusaurus/types": "3.9.1", "@docusaurus/utils": "3.9.1", "@docusaurus/utils-common": "3.9.1", "@docusaurus/utils-validation": "3.9.1", "cheerio": "1.0.0-rc.12", "feed": "^4.2.2", "fs-extra": "^11.1.1", "lodash": "^4.17.21", "schema-dts": "^1.1.2", "srcset": "^4.0.0", "tslib": "^2.6.0", "unist-util-visit": "^5.0.0", "utility-types": "^3.10.0", "webpack": "^5.88.1" }, "peerDependencies": { "@docusaurus/plugin-content-docs": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-vT6kIimpJLWvW9iuWzH4u7VpTdsGlmn4yfyhq0/Kb1h4kf9uVouGsTmrD7WgtYBUG1P+TSmQzUUQa+ALBSRTig=="],
+ "@docusaurus/plugin-content-blog": ["@docusaurus/plugin-content-blog@3.9.2", "", { "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/logger": "3.9.2", "@docusaurus/mdx-loader": "3.9.2", "@docusaurus/theme-common": "3.9.2", "@docusaurus/types": "3.9.2", "@docusaurus/utils": "3.9.2", "@docusaurus/utils-common": "3.9.2", "@docusaurus/utils-validation": "3.9.2", "cheerio": "1.0.0-rc.12", "feed": "^4.2.2", "fs-extra": "^11.1.1", "lodash": "^4.17.21", "schema-dts": "^1.1.2", "srcset": "^4.0.0", "tslib": "^2.6.0", "unist-util-visit": "^5.0.0", "utility-types": "^3.10.0", "webpack": "^5.88.1" }, "peerDependencies": { "@docusaurus/plugin-content-docs": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-3I2HXy3L1QcjLJLGAoTvoBnpOwa6DPUa3Q0dMK19UTY9mhPkKQg/DYhAGTiBUKcTR0f08iw7kLPqOhIgdV3eVQ=="],
- "@docusaurus/plugin-content-docs": ["@docusaurus/plugin-content-docs@3.9.1", "", { "dependencies": { "@docusaurus/core": "3.9.1", "@docusaurus/logger": "3.9.1", "@docusaurus/mdx-loader": "3.9.1", "@docusaurus/module-type-aliases": "3.9.1", "@docusaurus/theme-common": "3.9.1", "@docusaurus/types": "3.9.1", "@docusaurus/utils": "3.9.1", "@docusaurus/utils-common": "3.9.1", "@docusaurus/utils-validation": "3.9.1", "@types/react-router-config": "^5.0.7", "combine-promises": "^1.1.0", "fs-extra": "^11.1.1", "js-yaml": "^4.1.0", "lodash": "^4.17.21", "schema-dts": "^1.1.2", "tslib": "^2.6.0", "utility-types": "^3.10.0", "webpack": "^5.88.1" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-DyLk9BIA6I9gPIuia8XIL+XIEbNnExam6AHzRsfrEq4zJr7k/DsWW7oi4aJMepDnL7jMRhpVcdsCxdjb0/A9xg=="],
+ "@docusaurus/plugin-content-docs": ["@docusaurus/plugin-content-docs@3.9.2", "", { "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/logger": "3.9.2", "@docusaurus/mdx-loader": "3.9.2", "@docusaurus/module-type-aliases": "3.9.2", "@docusaurus/theme-common": "3.9.2", "@docusaurus/types": "3.9.2", "@docusaurus/utils": "3.9.2", "@docusaurus/utils-common": "3.9.2", "@docusaurus/utils-validation": "3.9.2", "@types/react-router-config": "^5.0.7", "combine-promises": "^1.1.0", "fs-extra": "^11.1.1", "js-yaml": "^4.1.0", "lodash": "^4.17.21", "schema-dts": "^1.1.2", "tslib": "^2.6.0", "utility-types": "^3.10.0", "webpack": "^5.88.1" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg=="],
- "@docusaurus/plugin-content-pages": ["@docusaurus/plugin-content-pages@3.9.1", "", { "dependencies": { "@docusaurus/core": "3.9.1", "@docusaurus/mdx-loader": "3.9.1", "@docusaurus/types": "3.9.1", "@docusaurus/utils": "3.9.1", "@docusaurus/utils-validation": "3.9.1", "fs-extra": "^11.1.1", "tslib": "^2.6.0", "webpack": "^5.88.1" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-/1wFzRnXYASI+Nv9ck9IVPIMw0O5BGQ8ZVhDzEwhkL+tl44ycvSnY6PIe6rW2HLxsw61Z3WFwAiU8+xMMtMZpg=="],
+ "@docusaurus/plugin-content-pages": ["@docusaurus/plugin-content-pages@3.9.2", "", { "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/mdx-loader": "3.9.2", "@docusaurus/types": "3.9.2", "@docusaurus/utils": "3.9.2", "@docusaurus/utils-validation": "3.9.2", "fs-extra": "^11.1.1", "tslib": "^2.6.0", "webpack": "^5.88.1" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-s4849w/p4noXUrGpPUF0BPqIAfdAe76BLaRGAGKZ1gTDNiGxGcpsLcwJ9OTi1/V8A+AzvsmI9pkjie2zjIQZKA=="],
- "@docusaurus/plugin-css-cascade-layers": ["@docusaurus/plugin-css-cascade-layers@3.9.1", "", { "dependencies": { "@docusaurus/core": "3.9.1", "@docusaurus/types": "3.9.1", "@docusaurus/utils": "3.9.1", "@docusaurus/utils-validation": "3.9.1", "tslib": "^2.6.0" } }, "sha512-/QyW2gRCk/XE3ttCK/ERIgle8KJ024dBNKMu6U5SmpJvuT2il1n5jR/48Pp/9wEwut8WVml4imNm6X8JsL5A0Q=="],
+ "@docusaurus/plugin-css-cascade-layers": ["@docusaurus/plugin-css-cascade-layers@3.9.2", "", { "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/types": "3.9.2", "@docusaurus/utils": "3.9.2", "@docusaurus/utils-validation": "3.9.2", "tslib": "^2.6.0" } }, "sha512-w1s3+Ss+eOQbscGM4cfIFBlVg/QKxyYgj26k5AnakuHkKxH6004ZtuLe5awMBotIYF2bbGDoDhpgQ4r/kcj4rQ=="],
- "@docusaurus/plugin-debug": ["@docusaurus/plugin-debug@3.9.1", "", { "dependencies": { "@docusaurus/core": "3.9.1", "@docusaurus/types": "3.9.1", "@docusaurus/utils": "3.9.1", "fs-extra": "^11.1.1", "react-json-view-lite": "^2.3.0", "tslib": "^2.6.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-qPeAuk0LccC251d7jg2MRhNI+o7niyqa924oEM/AxnZJvIpMa596aAxkRImiAqNN6+gtLE1Hkrz/RHUH2HDGsA=="],
+ "@docusaurus/plugin-debug": ["@docusaurus/plugin-debug@3.9.2", "", { "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/types": "3.9.2", "@docusaurus/utils": "3.9.2", "fs-extra": "^11.1.1", "react-json-view-lite": "^2.3.0", "tslib": "^2.6.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-j7a5hWuAFxyQAkilZwhsQ/b3T7FfHZ+0dub6j/GxKNFJp2h9qk/P1Bp7vrGASnvA9KNQBBL1ZXTe7jlh4VdPdA=="],
- "@docusaurus/plugin-google-analytics": ["@docusaurus/plugin-google-analytics@3.9.1", "", { "dependencies": { "@docusaurus/core": "3.9.1", "@docusaurus/types": "3.9.1", "@docusaurus/utils-validation": "3.9.1", "tslib": "^2.6.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-k4Qq2HphqOrIU/CevGPdEO1yJnWUI8m0zOJsYt5NfMJwNsIn/gDD6gv/DKD+hxHndQT5pacsfBd4BWHZVNVroQ=="],
+ "@docusaurus/plugin-google-analytics": ["@docusaurus/plugin-google-analytics@3.9.2", "", { "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/types": "3.9.2", "@docusaurus/utils-validation": "3.9.2", "tslib": "^2.6.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-mAwwQJ1Us9jL/lVjXtErXto4p4/iaLlweC54yDUK1a97WfkC6Z2k5/769JsFgwOwOP+n5mUQGACXOEQ0XDuVUw=="],
- "@docusaurus/plugin-google-gtag": ["@docusaurus/plugin-google-gtag@3.9.1", "", { "dependencies": { "@docusaurus/core": "3.9.1", "@docusaurus/types": "3.9.1", "@docusaurus/utils-validation": "3.9.1", "@types/gtag.js": "^0.0.12", "tslib": "^2.6.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-n9BURBiQyJKI/Ecz35IUjXYwXcgNCSq7/eA07+ZYcDiSyH2p/EjPf8q/QcZG3CyEJPZ/SzGkDHePfcVPahY4Gg=="],
+ "@docusaurus/plugin-google-gtag": ["@docusaurus/plugin-google-gtag@3.9.2", "", { "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/types": "3.9.2", "@docusaurus/utils-validation": "3.9.2", "@types/gtag.js": "^0.0.12", "tslib": "^2.6.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-YJ4lDCphabBtw19ooSlc1MnxtYGpjFV9rEdzjLsUnBCeis2djUyCozZaFhCg6NGEwOn7HDDyMh0yzcdRpnuIvA=="],
- "@docusaurus/plugin-google-tag-manager": ["@docusaurus/plugin-google-tag-manager@3.9.1", "", { "dependencies": { "@docusaurus/core": "3.9.1", "@docusaurus/types": "3.9.1", "@docusaurus/utils-validation": "3.9.1", "tslib": "^2.6.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-rZAQZ25ZuXaThBajxzLjXieTDUCMmBzfAA6ThElQ3o7Q+LEpOjCIrwGFau0KLY9HeG6x91+FwwsAM8zeApYDrg=="],
+ "@docusaurus/plugin-google-tag-manager": ["@docusaurus/plugin-google-tag-manager@3.9.2", "", { "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/types": "3.9.2", "@docusaurus/utils-validation": "3.9.2", "tslib": "^2.6.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-LJtIrkZN/tuHD8NqDAW1Tnw0ekOwRTfobWPsdO15YxcicBo2ykKF0/D6n0vVBfd3srwr9Z6rzrIWYrMzBGrvNw=="],
- "@docusaurus/plugin-sitemap": ["@docusaurus/plugin-sitemap@3.9.1", "", { "dependencies": { "@docusaurus/core": "3.9.1", "@docusaurus/logger": "3.9.1", "@docusaurus/types": "3.9.1", "@docusaurus/utils": "3.9.1", "@docusaurus/utils-common": "3.9.1", "@docusaurus/utils-validation": "3.9.1", "fs-extra": "^11.1.1", "sitemap": "^7.1.1", "tslib": "^2.6.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-k/bf5cXDxAJUYTzqatgFJwmZsLUbIgl6S8AdZMKGG2Mv2wcOHt+EQNN9qPyWZ5/9cFj+Q8f8DN+KQheBMYLong=="],
+ "@docusaurus/plugin-sitemap": ["@docusaurus/plugin-sitemap@3.9.2", "", { "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/logger": "3.9.2", "@docusaurus/types": "3.9.2", "@docusaurus/utils": "3.9.2", "@docusaurus/utils-common": "3.9.2", "@docusaurus/utils-validation": "3.9.2", "fs-extra": "^11.1.1", "sitemap": "^7.1.1", "tslib": "^2.6.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-WLh7ymgDXjG8oPoM/T4/zUP7KcSuFYRZAUTl8vR6VzYkfc18GBM4xLhcT+AKOwun6kBivYKUJf+vlqYJkm+RHw=="],
- "@docusaurus/plugin-svgr": ["@docusaurus/plugin-svgr@3.9.1", "", { "dependencies": { "@docusaurus/core": "3.9.1", "@docusaurus/types": "3.9.1", "@docusaurus/utils": "3.9.1", "@docusaurus/utils-validation": "3.9.1", "@svgr/core": "8.1.0", "@svgr/webpack": "^8.1.0", "tslib": "^2.6.0", "webpack": "^5.88.1" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-TeZOXT2PSdTNR1OpDJMkYqFyX7MMhbd4t16hQByXksgZQCXNyw3Dio+KaDJ2Nj+LA4WkOvsk45bWgYG5MAaXSQ=="],
+ "@docusaurus/plugin-svgr": ["@docusaurus/plugin-svgr@3.9.2", "", { "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/types": "3.9.2", "@docusaurus/utils": "3.9.2", "@docusaurus/utils-validation": "3.9.2", "@svgr/core": "8.1.0", "@svgr/webpack": "^8.1.0", "tslib": "^2.6.0", "webpack": "^5.88.1" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-n+1DE+5b3Lnf27TgVU5jM1d4x5tUh2oW5LTsBxJX4PsAPV0JGcmI6p3yLYtEY0LRVEIJh+8RsdQmRE66wSV8mw=="],
- "@docusaurus/plugin-vercel-analytics": ["@docusaurus/plugin-vercel-analytics@3.9.1", "", { "dependencies": { "@docusaurus/core": "3.9.1", "@docusaurus/logger": "3.9.1", "@docusaurus/types": "3.9.1", "@docusaurus/utils": "3.9.1", "@docusaurus/utils-validation": "3.9.1", "@vercel/analytics": "^1.1.1", "tslib": "^2.6.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-KfJq5xZn4mtPfLooOgs7UzYQr3WAqIRPQLKgSf9gwiyvzllo5/XL4mF/ifg/7yymRAUiUAlFz3X5UmFdgnbgHA=="],
+ "@docusaurus/plugin-vercel-analytics": ["@docusaurus/plugin-vercel-analytics@3.9.2", "", { "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/logger": "3.9.2", "@docusaurus/types": "3.9.2", "@docusaurus/utils": "3.9.2", "@docusaurus/utils-validation": "3.9.2", "@vercel/analytics": "^1.1.1", "tslib": "^2.6.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-4ZrTEuFkQBCzo5gplgwlmw/r0dXQR4ATruSwfkfzvXnm3WruhX2oNE3cuzy5yOJ80bFgTJTC4MiUYviQouUbGw=="],
- "@docusaurus/preset-classic": ["@docusaurus/preset-classic@3.9.1", "", { "dependencies": { "@docusaurus/core": "3.9.1", "@docusaurus/plugin-content-blog": "3.9.1", "@docusaurus/plugin-content-docs": "3.9.1", "@docusaurus/plugin-content-pages": "3.9.1", "@docusaurus/plugin-css-cascade-layers": "3.9.1", "@docusaurus/plugin-debug": "3.9.1", "@docusaurus/plugin-google-analytics": "3.9.1", "@docusaurus/plugin-google-gtag": "3.9.1", "@docusaurus/plugin-google-tag-manager": "3.9.1", "@docusaurus/plugin-sitemap": "3.9.1", "@docusaurus/plugin-svgr": "3.9.1", "@docusaurus/theme-classic": "3.9.1", "@docusaurus/theme-common": "3.9.1", "@docusaurus/theme-search-algolia": "3.9.1", "@docusaurus/types": "3.9.1" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-ZHga2xsxxsyd0dN1BpLj8S889Eu9eMBuj2suqxdw/vaaXu/FjJ8KEGbcaeo6nHPo8VQcBBnPEdkBtSDm2TfMNw=="],
+ "@docusaurus/preset-classic": ["@docusaurus/preset-classic@3.9.2", "", { "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/plugin-content-blog": "3.9.2", "@docusaurus/plugin-content-docs": "3.9.2", "@docusaurus/plugin-content-pages": "3.9.2", "@docusaurus/plugin-css-cascade-layers": "3.9.2", "@docusaurus/plugin-debug": "3.9.2", "@docusaurus/plugin-google-analytics": "3.9.2", "@docusaurus/plugin-google-gtag": "3.9.2", "@docusaurus/plugin-google-tag-manager": "3.9.2", "@docusaurus/plugin-sitemap": "3.9.2", "@docusaurus/plugin-svgr": "3.9.2", "@docusaurus/theme-classic": "3.9.2", "@docusaurus/theme-common": "3.9.2", "@docusaurus/theme-search-algolia": "3.9.2", "@docusaurus/types": "3.9.2" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-IgyYO2Gvaigi21LuDIe+nvmN/dfGXAiMcV/murFqcpjnZc7jxFAxW+9LEjdPt61uZLxG4ByW/oUmX/DDK9t/8w=="],
- "@docusaurus/theme-classic": ["@docusaurus/theme-classic@3.9.1", "", { "dependencies": { "@docusaurus/core": "3.9.1", "@docusaurus/logger": "3.9.1", "@docusaurus/mdx-loader": "3.9.1", "@docusaurus/module-type-aliases": "3.9.1", "@docusaurus/plugin-content-blog": "3.9.1", "@docusaurus/plugin-content-docs": "3.9.1", "@docusaurus/plugin-content-pages": "3.9.1", "@docusaurus/theme-common": "3.9.1", "@docusaurus/theme-translations": "3.9.1", "@docusaurus/types": "3.9.1", "@docusaurus/utils": "3.9.1", "@docusaurus/utils-common": "3.9.1", "@docusaurus/utils-validation": "3.9.1", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "infima": "0.2.0-alpha.45", "lodash": "^4.17.21", "nprogress": "^0.2.0", "postcss": "^8.5.4", "prism-react-renderer": "^2.3.0", "prismjs": "^1.29.0", "react-router-dom": "^5.3.4", "rtlcss": "^4.1.0", "tslib": "^2.6.0", "utility-types": "^3.10.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-LrAIu/mQ04nG6s1cssC0TMmICD8twFIIn/hJ5Pd9uIPQvtKnyAKEn12RefopAul5KfMo9kixPaqogV5jIJr26w=="],
+ "@docusaurus/theme-classic": ["@docusaurus/theme-classic@3.9.2", "", { "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/logger": "3.9.2", "@docusaurus/mdx-loader": "3.9.2", "@docusaurus/module-type-aliases": "3.9.2", "@docusaurus/plugin-content-blog": "3.9.2", "@docusaurus/plugin-content-docs": "3.9.2", "@docusaurus/plugin-content-pages": "3.9.2", "@docusaurus/theme-common": "3.9.2", "@docusaurus/theme-translations": "3.9.2", "@docusaurus/types": "3.9.2", "@docusaurus/utils": "3.9.2", "@docusaurus/utils-common": "3.9.2", "@docusaurus/utils-validation": "3.9.2", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "infima": "0.2.0-alpha.45", "lodash": "^4.17.21", "nprogress": "^0.2.0", "postcss": "^8.5.4", "prism-react-renderer": "^2.3.0", "prismjs": "^1.29.0", "react-router-dom": "^5.3.4", "rtlcss": "^4.1.0", "tslib": "^2.6.0", "utility-types": "^3.10.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-IGUsArG5hhekXd7RDb11v94ycpJpFdJPkLnt10fFQWOVxAtq5/D7hT6lzc2fhyQKaaCE62qVajOMKL7OiAFAIA=="],
- "@docusaurus/theme-common": ["@docusaurus/theme-common@3.9.1", "", { "dependencies": { "@docusaurus/mdx-loader": "3.9.1", "@docusaurus/module-type-aliases": "3.9.1", "@docusaurus/utils": "3.9.1", "@docusaurus/utils-common": "3.9.1", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", "clsx": "^2.0.0", "parse-numeric-range": "^1.3.0", "prism-react-renderer": "^2.3.0", "tslib": "^2.6.0", "utility-types": "^3.10.0" }, "peerDependencies": { "@docusaurus/plugin-content-docs": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-j9adi961F+6Ps9d0jcb5BokMcbjXAAJqKkV43eo8nh4YgmDj7KUNDX4EnOh/MjTQeO06oPY5cxp3yUXdW/8Ggw=="],
+ "@docusaurus/theme-common": ["@docusaurus/theme-common@3.9.2", "", { "dependencies": { "@docusaurus/mdx-loader": "3.9.2", "@docusaurus/module-type-aliases": "3.9.2", "@docusaurus/utils": "3.9.2", "@docusaurus/utils-common": "3.9.2", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", "clsx": "^2.0.0", "parse-numeric-range": "^1.3.0", "prism-react-renderer": "^2.3.0", "tslib": "^2.6.0", "utility-types": "^3.10.0" }, "peerDependencies": { "@docusaurus/plugin-content-docs": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-6c4DAbR6n6nPbnZhY2V3tzpnKnGL+6aOsLvFL26VRqhlczli9eWG0VDUNoCQEPnGwDMhPS42UhSAnz5pThm5Ag=="],
- "@docusaurus/theme-mermaid": ["@docusaurus/theme-mermaid@3.9.1", "", { "dependencies": { "@docusaurus/core": "3.9.1", "@docusaurus/module-type-aliases": "3.9.1", "@docusaurus/theme-common": "3.9.1", "@docusaurus/types": "3.9.1", "@docusaurus/utils-validation": "3.9.1", "mermaid": ">=11.6.0", "tslib": "^2.6.0" }, "peerDependencies": { "@mermaid-js/layout-elk": "^0.1.9", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@mermaid-js/layout-elk"] }, "sha512-aKMFlQfxueVBPdCdrNSshG12fOkJXSn1sb6EhI/sGn3UpiTEiazJm4QLP6NoF78mqq8O5Ar2Yll+iHWLvCsuZQ=="],
+ "@docusaurus/theme-mermaid": ["@docusaurus/theme-mermaid@3.9.2", "", { "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/module-type-aliases": "3.9.2", "@docusaurus/theme-common": "3.9.2", "@docusaurus/types": "3.9.2", "@docusaurus/utils-validation": "3.9.2", "mermaid": ">=11.6.0", "tslib": "^2.6.0" }, "peerDependencies": { "@mermaid-js/layout-elk": "^0.1.9", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@mermaid-js/layout-elk"] }, "sha512-5vhShRDq/ntLzdInsQkTdoKWSzw8d1jB17sNPYhA/KvYYFXfuVEGHLM6nrf8MFbV8TruAHDG21Fn3W4lO8GaDw=="],
- "@docusaurus/theme-search-algolia": ["@docusaurus/theme-search-algolia@3.9.1", "", { "dependencies": { "@docsearch/react": "^3.9.0 || ^4.1.0", "@docusaurus/core": "3.9.1", "@docusaurus/logger": "3.9.1", "@docusaurus/plugin-content-docs": "3.9.1", "@docusaurus/theme-common": "3.9.1", "@docusaurus/theme-translations": "3.9.1", "@docusaurus/utils": "3.9.1", "@docusaurus/utils-validation": "3.9.1", "algoliasearch": "^5.37.0", "algoliasearch-helper": "^3.26.0", "clsx": "^2.0.0", "eta": "^2.2.0", "fs-extra": "^11.1.1", "lodash": "^4.17.21", "tslib": "^2.6.0", "utility-types": "^3.10.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-WjM28bzlgfT6nHlEJemkwyGVpvGsZWPireV/w+wZ1Uo64xCZ8lNOb4xwQRukDaLSed3oPBN0gSnu06l5VuCXHg=="],
+ "@docusaurus/theme-search-algolia": ["@docusaurus/theme-search-algolia@3.9.2", "", { "dependencies": { "@docsearch/react": "^3.9.0 || ^4.1.0", "@docusaurus/core": "3.9.2", "@docusaurus/logger": "3.9.2", "@docusaurus/plugin-content-docs": "3.9.2", "@docusaurus/theme-common": "3.9.2", "@docusaurus/theme-translations": "3.9.2", "@docusaurus/utils": "3.9.2", "@docusaurus/utils-validation": "3.9.2", "algoliasearch": "^5.37.0", "algoliasearch-helper": "^3.26.0", "clsx": "^2.0.0", "eta": "^2.2.0", "fs-extra": "^11.1.1", "lodash": "^4.17.21", "tslib": "^2.6.0", "utility-types": "^3.10.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-GBDSFNwjnh5/LdkxCKQHkgO2pIMX1447BxYUBG2wBiajS21uj64a+gH/qlbQjDLxmGrbrllBrtJkUHxIsiwRnw=="],
- "@docusaurus/theme-translations": ["@docusaurus/theme-translations@3.9.1", "", { "dependencies": { "fs-extra": "^11.1.1", "tslib": "^2.6.0" } }, "sha512-mUQd49BSGKTiM6vP9+JFgRJL28lMIN3PUvXjF3rzuOHMByUZUBNwCt26Z23GkKiSIOrRkjKoaBNTipR/MHdYSQ=="],
+ "@docusaurus/theme-translations": ["@docusaurus/theme-translations@3.9.2", "", { "dependencies": { "fs-extra": "^11.1.1", "tslib": "^2.6.0" } }, "sha512-vIryvpP18ON9T9rjgMRFLr2xJVDpw1rtagEGf8Ccce4CkTrvM/fRB8N2nyWYOW5u3DdjkwKw5fBa+3tbn9P4PA=="],
- "@docusaurus/tsconfig": ["@docusaurus/tsconfig@3.9.1", "", {}, "sha512-stdzM1dNDgRO0OvxeznXlE3N1igUoeHPNJjiKqyffLizgpVgNXJBAWeG6fuoYiCH4udGUBqy2dyM+1+kG2/UPQ=="],
+ "@docusaurus/tsconfig": ["@docusaurus/tsconfig@3.9.2", "", {}, "sha512-j6/Fp4Rlpxsc632cnRnl5HpOWeb6ZKssDj6/XzzAzVGXXfm9Eptx3rxCC+fDzySn9fHTS+CWJjPineCR1bB5WQ=="],
- "@docusaurus/types": ["@docusaurus/types@3.9.1", "", { "dependencies": { "@mdx-js/mdx": "^3.0.0", "@types/history": "^4.7.11", "@types/mdast": "^4.0.2", "@types/react": "*", "commander": "^5.1.0", "joi": "^17.9.2", "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", "utility-types": "^3.10.0", "webpack": "^5.95.0", "webpack-merge": "^5.9.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-ElekJ29sk39s5LTEZMByY1c2oH9FMtw7KbWFU3BtuQ1TytfIK39HhUivDEJvm5KCLyEnnfUZlvSNDXeyk0vzAA=="],
+ "@docusaurus/types": ["@docusaurus/types@3.9.2", "", { "dependencies": { "@mdx-js/mdx": "^3.0.0", "@types/history": "^4.7.11", "@types/mdast": "^4.0.2", "@types/react": "*", "commander": "^5.1.0", "joi": "^17.9.2", "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", "utility-types": "^3.10.0", "webpack": "^5.95.0", "webpack-merge": "^5.9.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-Ux1JUNswg+EfUEmajJjyhIohKceitY/yzjRUpu04WXgvVz+fbhVC0p+R0JhvEu4ytw8zIAys2hrdpQPBHRIa8Q=="],
- "@docusaurus/utils": ["@docusaurus/utils@3.9.1", "", { "dependencies": { "@docusaurus/logger": "3.9.1", "@docusaurus/types": "3.9.1", "@docusaurus/utils-common": "3.9.1", "escape-string-regexp": "^4.0.0", "execa": "5.1.1", "file-loader": "^6.2.0", "fs-extra": "^11.1.1", "github-slugger": "^1.5.0", "globby": "^11.1.0", "gray-matter": "^4.0.3", "jiti": "^1.20.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21", "micromatch": "^4.0.5", "p-queue": "^6.6.2", "prompts": "^2.4.2", "resolve-pathname": "^3.0.0", "tslib": "^2.6.0", "url-loader": "^4.1.1", "utility-types": "^3.10.0", "webpack": "^5.88.1" } }, "sha512-YAL4yhhWLl9DXuf5MVig260a6INz4MehrBGFU/CZu8yXmRiYEuQvRFWh9ZsjfAOyaG7za1MNmBVZ4VVAi/CiJA=="],
+ "@docusaurus/utils": ["@docusaurus/utils@3.9.2", "", { "dependencies": { "@docusaurus/logger": "3.9.2", "@docusaurus/types": "3.9.2", "@docusaurus/utils-common": "3.9.2", "escape-string-regexp": "^4.0.0", "execa": "5.1.1", "file-loader": "^6.2.0", "fs-extra": "^11.1.1", "github-slugger": "^1.5.0", "globby": "^11.1.0", "gray-matter": "^4.0.3", "jiti": "^1.20.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21", "micromatch": "^4.0.5", "p-queue": "^6.6.2", "prompts": "^2.4.2", "resolve-pathname": "^3.0.0", "tslib": "^2.6.0", "url-loader": "^4.1.1", "utility-types": "^3.10.0", "webpack": "^5.88.1" } }, "sha512-lBSBiRruFurFKXr5Hbsl2thmGweAPmddhF3jb99U4EMDA5L+e5Y1rAkOS07Nvrup7HUMBDrCV45meaxZnt28nQ=="],
- "@docusaurus/utils-common": ["@docusaurus/utils-common@3.9.1", "", { "dependencies": { "@docusaurus/types": "3.9.1", "tslib": "^2.6.0" } }, "sha512-4M1u5Q8Zn2CYL2TJ864M51FV4YlxyGyfC3x+7CLuR6xsyTVNBNU4QMcPgsTHRS9J2+X6Lq7MyH6hiWXyi/sXUQ=="],
+ "@docusaurus/utils-common": ["@docusaurus/utils-common@3.9.2", "", { "dependencies": { "@docusaurus/types": "3.9.2", "tslib": "^2.6.0" } }, "sha512-I53UC1QctruA6SWLvbjbhCpAw7+X7PePoe5pYcwTOEXD/PxeP8LnECAhTHHwWCblyUX5bMi4QLRkxvyZ+IT8Aw=="],
- "@docusaurus/utils-validation": ["@docusaurus/utils-validation@3.9.1", "", { "dependencies": { "@docusaurus/logger": "3.9.1", "@docusaurus/utils": "3.9.1", "@docusaurus/utils-common": "3.9.1", "fs-extra": "^11.2.0", "joi": "^17.9.2", "js-yaml": "^4.1.0", "lodash": "^4.17.21", "tslib": "^2.6.0" } }, "sha512-5bzab5si3E1udrlZuVGR17857Lfwe8iFPoy5AvMP9PXqDfoyIKT7gDQgAmxdRDMurgHaJlyhXEHHdzDKkOxxZQ=="],
+ "@docusaurus/utils-validation": ["@docusaurus/utils-validation@3.9.2", "", { "dependencies": { "@docusaurus/logger": "3.9.2", "@docusaurus/utils": "3.9.2", "@docusaurus/utils-common": "3.9.2", "fs-extra": "^11.2.0", "joi": "^17.9.2", "js-yaml": "^4.1.0", "lodash": "^4.17.21", "tslib": "^2.6.0" } }, "sha512-l7yk3X5VnNmATbwijJkexdhulNsQaNDwoagiwujXoxFbWLcxHQqNQ+c/IAlzrfMMOfa/8xSBZ7KEKDesE/2J7A=="],
"@edge-runtime/format": ["@edge-runtime/format@2.2.1", "", {}, "sha512-JQTRVuiusQLNNLe2W9tnzBlV/GvSVcozLl4XZHk5swnRZ/v6jp8TqR8P7sqmJsQqblDZ3EztcWmLDbhRje/+8g=="],
@@ -520,9 +520,9 @@
"@edge-runtime/vm": ["@edge-runtime/vm@3.2.0", "", { "dependencies": { "@edge-runtime/primitives": "4.1.0" } }, "sha512-0dEVyRLM/lG4gp1R/Ik5bfPl/1wX00xFwd5KcNH602tzBa09oF7pbTKETEhR1GjZ75K6OJnYFu8II2dyMhONMw=="],
- "@emnapi/core": ["@emnapi/core@1.5.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" } }, "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg=="],
+ "@emnapi/core": ["@emnapi/core@1.6.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" } }, "sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg=="],
- "@emnapi/runtime": ["@emnapi/runtime@1.5.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ=="],
+ "@emnapi/runtime": ["@emnapi/runtime@1.6.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA=="],
"@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="],
@@ -564,17 +564,17 @@
"@eslint/compat": ["@eslint/compat@1.4.0", "", { "dependencies": { "@eslint/core": "^0.16.0" }, "peerDependencies": { "eslint": "^8.40 || 9" }, "optionalPeers": ["eslint"] }, "sha512-DEzm5dKeDBPm3r08Ixli/0cmxr8LkRdwxMRUIJBlSCpAwSrvFEJpVBzV+66JhDxiaqKxnRzCXhtiMiczF7Hglg=="],
- "@eslint/config-array": ["@eslint/config-array@0.21.0", "", { "dependencies": { "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ=="],
+ "@eslint/config-array": ["@eslint/config-array@0.21.1", "", { "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA=="],
- "@eslint/config-helpers": ["@eslint/config-helpers@0.4.0", "", { "dependencies": { "@eslint/core": "^0.16.0" } }, "sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog=="],
+ "@eslint/config-helpers": ["@eslint/config-helpers@0.4.1", "", { "dependencies": { "@eslint/core": "^0.16.0" } }, "sha512-csZAzkNhsgwb0I/UAV6/RGFTbiakPCf0ZrGmrIxQpYvGZ00PhTkSnyKNolphgIvmnJeGw6rcGVEXfTzUnFuEvw=="],
"@eslint/core": ["@eslint/core@0.16.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q=="],
"@eslint/eslintrc": ["@eslint/eslintrc@3.3.1", "", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ=="],
- "@eslint/js": ["@eslint/js@9.37.0", "", {}, "sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg=="],
+ "@eslint/js": ["@eslint/js@9.38.0", "", {}, "sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A=="],
- "@eslint/object-schema": ["@eslint/object-schema@2.1.6", "", {}, "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA=="],
+ "@eslint/object-schema": ["@eslint/object-schema@2.1.7", "", {}, "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA=="],
"@eslint/plugin-kit": ["@eslint/plugin-kit@0.4.0", "", { "dependencies": { "@eslint/core": "^0.16.0", "levn": "^0.4.1" } }, "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A=="],
@@ -778,7 +778,7 @@
"@rspack/lite-tapable": ["@rspack/lite-tapable@1.0.1", "", {}, "sha512-VynGOEsVw2s8TAlLf/uESfrgfrq2+rcXB1muPJYBWbsm1Oa6r5qVQhjA5ggM6z/coYPrsVMgovl3Ff7Q7OCp1w=="],
- "@sablier/devkit": ["@sablier/devkit@github:sablier-labs/devkit#d7c5768", {}, "sablier-labs-devkit-d7c5768"],
+ "@sablier/devkit": ["@sablier/devkit@github:sablier-labs/devkit#5de9cc0", {}, "sablier-labs-devkit-5de9cc0"],
"@sablier/docusaurus-plugin-llms": ["@sablier/docusaurus-plugin-llms@0.3.0", "", { "dependencies": { "gray-matter": "^4.0.3", "minimatch": "^9.0.3", "yaml": "^2.8.1" }, "peerDependencies": { "@docusaurus/core": "^3.0.0" } }, "sha512-5AwcuaQGEolcbpENM+QBXa581hhF4gzfoaM67AOp1Rvs9O8DsqC/As/8W0ABvdQdoXcoBAlpmrF/gBacuyhFzw=="],
@@ -1022,7 +1022,7 @@
"@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="],
- "@types/node": ["@types/node@24.8.1", "", { "dependencies": { "undici-types": "~7.14.0" } }, "sha512-alv65KGRadQVfVcG69MuB4IzdYVpRwMG/mq8KWOaoOdyY617P5ivaDiMCGOFDWD2sAn5Q0mR3mRtUOgm99hL9Q=="],
+ "@types/node": ["@types/node@24.9.1", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg=="],
"@types/node-forge": ["@types/node-forge@1.3.14", "", { "dependencies": { "@types/node": "*" } }, "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw=="],
@@ -1234,7 +1234,7 @@
"balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="],
- "baseline-browser-mapping": ["baseline-browser-mapping@2.8.17", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-j5zJcx6golJYTG6c05LUZ3Z8Gi+M62zRT/ycz4Xq4iCOdpcxwg7ngEYD4KA0eWZC7U17qh/Smq8bYbACJ0ipBA=="],
+ "baseline-browser-mapping": ["baseline-browser-mapping@2.8.19", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-zoKGUdu6vb2jd3YOq0nnhEDQVbPcHhco3UImJrv5dSkvxTc2pl2WjOPsjZXDwPDSl5eghIMuY3R6J9NDKF3KcQ=="],
"batch": ["batch@0.6.1", "", {}, "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw=="],
@@ -1608,7 +1608,7 @@
"ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="],
- "electron-to-chromium": ["electron-to-chromium@1.5.237", "", {}, "sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg=="],
+ "electron-to-chromium": ["electron-to-chromium@1.5.238", "", {}, "sha512-khBdc+w/Gv+cS8e/Pbnaw/FXcBUeKrRVik9IxfXtgREOWyJhR4tj43n3amkVogJ/yeQUqzkrZcFhtIxIdqmmcQ=="],
"elkjs": ["elkjs@0.9.3", "", {}, "sha512-f/ZeWvW/BCXbhGEf1Ujp29EASo/lk1FDnETgNKwJrsVvGZhUWCZyg3xLJjAsxfOmt8KjswHmI5EwCQcPMpOYhQ=="],
@@ -1638,7 +1638,7 @@
"es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="],
- "es-module-lexer": ["es-module-lexer@1.4.1", "", {}, "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w=="],
+ "es-module-lexer": ["es-module-lexer@1.7.0", "", {}, "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA=="],
"es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="],
@@ -1698,7 +1698,7 @@
"escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="],
- "eslint": ["eslint@9.37.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.0", "@eslint/config-helpers": "^0.4.0", "@eslint/core": "^0.16.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.37.0", "@eslint/plugin-kit": "^0.4.0", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig=="],
+ "eslint": ["eslint@9.38.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", "@eslint/config-helpers": "^0.4.1", "@eslint/core": "^0.16.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.38.0", "@eslint/plugin-kit": "^0.4.0", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw=="],
"eslint-mdx": ["eslint-mdx@3.6.2", "", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "espree": "^9.6.1 || ^10.4.0", "estree-util-visit": "^2.0.0", "remark-mdx": "^3.1.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "synckit": "^0.11.8", "unified": "^11.0.5", "unified-engine": "^11.2.2", "unist-util-visit": "^5.0.0", "uvu": "^0.5.6", "vfile": "^6.0.3" }, "peerDependencies": { "eslint": ">=8.0.0", "remark-lint-file-extension": "*" }, "optionalPeers": ["remark-lint-file-extension"] }, "sha512-5hczn5iSSEcwtNtVXFwCKIk6iLEDaZpwc3vjYDl/B779OzaAAK/ou16J2xVdO6ecOLEO1WZqp7MRCQ/WsKDUig=="],
@@ -1728,7 +1728,7 @@
"estree-util-to-js": ["estree-util-to-js@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "astring": "^1.8.0", "source-map": "^0.7.0" } }, "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg=="],
- "estree-util-value-to-estree": ["estree-util-value-to-estree@3.4.0", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ=="],
+ "estree-util-value-to-estree": ["estree-util-value-to-estree@3.4.1", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-E4fEc8KLhDXnbyDa5XrbdT9PbgSMt0AGZPFUsGFok8N2Q7DTO+F6xAFJjIdw71EkidRg186I1mQCKzZ1ZbEsCw=="],
"estree-util-visit": ["estree-util-visit@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/unist": "^3.0.0" } }, "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww=="],
@@ -2160,9 +2160,9 @@
"lines-and-columns": ["lines-and-columns@2.0.4", "", {}, "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A=="],
- "lint-staged": ["lint-staged@16.2.4", "", { "dependencies": { "commander": "^14.0.1", "listr2": "^9.0.4", "micromatch": "^4.0.8", "nano-spawn": "^2.0.0", "pidtree": "^0.6.0", "string-argv": "^0.3.2", "yaml": "^2.8.1" }, "bin": { "lint-staged": "bin/lint-staged.js" } }, "sha512-Pkyr/wd90oAyXk98i/2KwfkIhoYQUMtss769FIT9hFM5ogYZwrk+GRE46yKXSg2ZGhcJ1p38Gf5gmI5Ohjg2yg=="],
+ "lint-staged": ["lint-staged@16.2.5", "", { "dependencies": { "commander": "^14.0.1", "listr2": "^9.0.4", "micromatch": "^4.0.8", "nano-spawn": "^2.0.0", "pidtree": "^0.6.0", "string-argv": "^0.3.2", "yaml": "^2.8.1" }, "bin": { "lint-staged": "bin/lint-staged.js" } }, "sha512-o36wH3OX0jRWqDw5dOa8a8x6GXTKaLM+LvhRaucZxez0IxA+KNDUCiyjBfNgsMNmchwSX6urLSL7wShcUqAang=="],
- "listr2": ["listr2@9.0.4", "", { "dependencies": { "cli-truncate": "^5.0.0", "colorette": "^2.0.20", "eventemitter3": "^5.0.1", "log-update": "^6.1.0", "rfdc": "^1.4.1", "wrap-ansi": "^9.0.0" } }, "sha512-1wd/kpAdKRLwv7/3OKC8zZ5U8e/fajCfWMxacUvB79S5nLrYGPtUI/8chMQhn3LQjsRVErTb9i1ECAwW0ZIHnQ=="],
+ "listr2": ["listr2@9.0.5", "", { "dependencies": { "cli-truncate": "^5.0.0", "colorette": "^2.0.20", "eventemitter3": "^5.0.1", "log-update": "^6.1.0", "rfdc": "^1.4.1", "wrap-ansi": "^9.0.0" } }, "sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g=="],
"load-plugin": ["load-plugin@6.0.3", "", { "dependencies": { "@npmcli/config": "^8.0.0", "import-meta-resolve": "^4.0.0" } }, "sha512-kc0X2FEUZr145odl68frm+lMJuQ23+rTXYmR6TImqPtbpmXC4vVXbWKDQ9IzndA0HfyQamWfKLhzsqGSTxE63w=="],
@@ -2410,7 +2410,7 @@
"node-gyp-build": ["node-gyp-build@4.8.4", "", { "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", "node-gyp-build-test": "build-test.js" } }, "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ=="],
- "node-releases": ["node-releases@2.0.25", "", {}, "sha512-4auku8B/vw5psvTiiN9j1dAOsXvMoGqJuKJcR+dTdqiXEK20mMTk1UEo3HS16LeGQsVG6+qKTPM9u/qQ2LqATA=="],
+ "node-releases": ["node-releases@2.0.26", "", {}, "sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA=="],
"nopt": ["nopt@8.1.0", "", { "dependencies": { "abbrev": "^3.0.0" }, "bin": { "nopt": "bin/nopt.js" } }, "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A=="],
@@ -2486,7 +2486,7 @@
"package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="],
- "package-manager-detector": ["package-manager-detector@1.4.1", "", {}, "sha512-dSMiVLBEA4XaNJ0PRb4N5cV/SEP4BWrWZKBmfF+OUm2pQTiZ6DDkKeWaltwu3JRhLoy59ayIkJ00cx9K9CaYTg=="],
+ "package-manager-detector": ["package-manager-detector@1.5.0", "", {}, "sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw=="],
"param-case": ["param-case@3.0.4", "", { "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" } }, "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A=="],
@@ -2826,7 +2826,7 @@
"requires-port": ["requires-port@1.0.0", "", {}, "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="],
- "resolve": ["resolve@1.22.10", "", { "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w=="],
+ "resolve": ["resolve@1.22.11", "", { "dependencies": { "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ=="],
"resolve-alpn": ["resolve-alpn@1.2.1", "", {}, "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="],
@@ -2856,7 +2856,7 @@
"rw": ["rw@1.3.3", "", {}, "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="],
- "sablier": ["sablier@1.1.0", "", { "dependencies": { "lodash": "^4.17.21", "viem": "^2.33" } }, "sha512-ye/kRIwqhew/O4wVASvRX/V3c07AwPHjYvUdjAHMS8PIidprXPFoKR6T0nsPWgunBNH8rbVkhi9bDrmAvaJ2Jg=="],
+ "sablier": ["sablier@1.2.1", "", { "dependencies": { "lodash": "^4.17.21", "viem": "^2.33" } }, "sha512-GnkohFhwEUiR7LNmhd71Vza2aCsf0LXcAn40O6qgLbtf/AgMvyG7q5mU1omlTwYaZI9G2Lc+MhGlgzMStzT0Kg=="],
"sade": ["sade@1.8.1", "", { "dependencies": { "mri": "^1.1.0" } }, "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A=="],
@@ -3088,7 +3088,7 @@
"undici": ["undici@5.29.0", "", { "dependencies": { "@fastify/busboy": "^2.0.0" } }, "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg=="],
- "undici-types": ["undici-types@7.14.0", "", {}, "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA=="],
+ "undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],
"unicode-canonical-property-names-ecmascript": ["unicode-canonical-property-names-ecmascript@2.0.1", "", {}, "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg=="],
@@ -3382,6 +3382,8 @@
"@vercel/node/async-listen": ["async-listen@3.0.0", "", {}, "sha512-V+SsTpDqkrWTimiotsyl33ePSjA5/KrithwupuvJ6ztsqPvGv6ge4OredFhPffVXiLN/QUWvE0XcqJaYgt6fOg=="],
+ "@vercel/node/es-module-lexer": ["es-module-lexer@1.4.1", "", {}, "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w=="],
+
"@vercel/node/node-fetch": ["node-fetch@2.6.9", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg=="],
"@vercel/node/typescript": ["typescript@4.9.5", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g=="],
@@ -3426,8 +3428,6 @@
"cli-truncate/string-width": ["string-width@8.1.0", "", { "dependencies": { "get-east-asian-width": "^1.3.0", "strip-ansi": "^7.1.0" } }, "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg=="],
- "compressible/mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="],
-
"compression/bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="],
"compression/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="],
@@ -3484,7 +3484,7 @@
"finalhandler/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="],
- "foreground-child/signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="],
+ "foreground-child/signal-exit": ["signal-exit@4.0.2", "", {}, "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q=="],
"fs-minipass/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="],
@@ -3642,7 +3642,7 @@
"undici/@fastify/busboy": ["@fastify/busboy@2.1.1", "", {}, "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA=="],
- "unified-engine/@types/node": ["@types/node@22.18.11", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-Gd33J2XIrXurb+eT2ktze3rJAfAp9ZNjlBdh4SVgyrKEOADwCbdUDaK7QgJno8Ue4kcajscsKqu6n8OBG3hhCQ=="],
+ "unified-engine/@types/node": ["@types/node@22.18.12", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-BICHQ67iqxQGFSzfCFTT7MRQ5XcBjG5aeKh5Ok38UBbPe5fxTyE+aHFxwVrGyr8GNlqFMLKD1D3P2K/1ks8tog=="],
"unified-engine/ignore": ["ignore@6.0.2", "", {}, "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A=="],
diff --git a/docs/concepts/07-chains.mdx b/docs/concepts/07-chains.mdx
index 3a415195..77291e8b 100644
--- a/docs/concepts/07-chains.mdx
+++ b/docs/concepts/07-chains.mdx
@@ -4,14 +4,12 @@ title: Supported Chains
sidebar_position: 7
---
-import Chains from "@site/src/components/organisms/Chains";
+import Chains, { getChainCount } from "@site/src/components/organisms/Chains";
import { Links } from "@site/src/constants";
-import { keys } from "lodash";
-import { sablier } from "sablier";
<>
-The Sablier Protocol is deployed on {sablier.chains.getMainnets().length} mainnets and {sablier.chains.getTestnets().length} testnet EVM chains, although not all of these are supported by the
+The Sablier Protocol is deployed on {getChainCount("mainnets")} mainnets and {getChainCount("testnets")} testnet EVM chains, although not all of these are supported by the
[Sablier Interface](https://app.sablier.com/).
>
diff --git a/docs/concepts/11-governance.mdx b/docs/concepts/11-governance.mdx
index d0512738..53336b0d 100644
--- a/docs/concepts/11-governance.mdx
+++ b/docs/concepts/11-governance.mdx
@@ -5,45 +5,61 @@ title: "Governance"
---
import AdminsTable from "@site/src/components/organisms/AdminsTable";
+import ComptrollersTable from "@site/src/components/organisms/ComptrollersTable";
-The Protocol Admin is an account with exclusive access to specific functions. More concretely, the Admin is a collection
-of multisig wallets and EOAs currently in control of Sablier Labs.
+## Comptroller
-## Admins
+The Sablier Comptroller is a smart contract that acts as an intermediary between the protocols and the admin. It has
+exclusive access to specific protocol functions. This design provides a more flexible approach to access control across
+all protocols while maintaining security.
-Here's a table with the admins of the Sablier Protocol. Most of them are Safe multi-signature wallets.
+Admin addresses that control the Comptroller are listed in the [Admin Addresses](#admin-addresses) section.
-
+
## Lockup
-Admin has the following permissions on each chain where `Lockup` is deployed:
+Comptroller has the following permissions on each chain where `Lockup` is deployed:
+
+| Permission | Function |
+| ------------------ | ------------------ |
+| Allow to Hook | `allowToHook` |
+| Recover | `recover` |
+| Set Native Token | `setNativeToken` |
+| Set NFT Descriptor | `setNFTDescriptor` |
-| Permission | Function |
-| ------------------ | ------------------------------------------------------------------------------------------------------- |
-| Allow to Hook | [allowToHook](../reference/lockup/contracts/abstracts/abstract.SablierLockupBase#allowtohook) |
-| Set NFT Descriptor | [setNFTDescriptor](../reference/lockup/contracts/abstracts/abstract.SablierLockupBase#setnftdescriptor) |
+TODO: Add links when reference pages are created
-## MerkleFactory
+## Merkle Factory
-Admin has the following permissions on each chain where `MerkleFactory` is deployed:
+Comptroller has the following permission on each chain where the Merkle Factories are deployed:
-| Permission | Function |
-| ---------------- | ---------------------------------------------------------------------------------------------- |
-| Reset Custom Fee | [resetCustomFee](../reference/airdrops/contracts/contract.SablierMerkleFactory#resetcustomfee) |
-| Set Custom Fee | [setCustomFee](../reference/airdrops/contracts/contract.SablierMerkleFactory#setcustomfee) |
-| Set Default Fee | [setDefaultFee](../reference/airdrops/contracts/contract.SablierMerkleFactory#setdefaultfee) |
+| Permission | Function |
+| ---------------- | ---------------- |
+| Set Native Token | `setNativeToken` |
+
+TODO: Add links when reference pages are created
## Flow
-Admin has the following permissions on each chain where `Flow` is deployed:
+Comptroller has the following permissions on each chain where `Flow` is deployed:
+
+| Permission | Function |
+| ------------------ | ------------------ |
+| Recover | `recover` |
+| Set Native Token | `setNativeToken` |
+| Set NFT Descriptor | `setNFTDescriptor` |
-| Permission | Function |
-| ------------------------ | --------------------------------------------------------------------------------------------------------------- |
-| Collect Protocol Revenue | [collectProtocolRevenue](../reference/flow/contracts/abstracts/abstract.SablierFlowBase#collectprotocolrevenue) |
-| Recover ERC20 token | [recover](../reference/flow/contracts/abstracts/abstract.SablierFlowBase#recover) |
-| Set NFT Descriptor | [setNFTDescriptor](../reference/flow/contracts/abstracts/abstract.SablierFlowBase#setnftdescriptor) |
-| Set Protocol Fee | [setProtocolFee](../reference/flow/contracts/abstracts/abstract.SablierFlowBase#setprotocolfee) |
+TODO: Add links when reference pages are created
+
+## Admin Addresses
+
+The Comptroller is introduced in Lockup v3.0, Airdrops v2.0 and Flow v2.0. For earlier versions, we use a direct "Admin"
+role for governance. These admin accounts have the same authority as the current Comptroller contract, with direct
+access to specific protocol functions. More concretely, the Admin is a collection of multisig wallets and EOAs currently
+in control of Sablier Labs.
+
+
## Trustlessness
diff --git a/docs/guides/04-custom-deployments.mdx b/docs/guides/04-custom-deployments.mdx
index 80040843..9e9ae8df 100644
--- a/docs/guides/04-custom-deployments.mdx
+++ b/docs/guides/04-custom-deployments.mdx
@@ -23,7 +23,8 @@ can schedule a call here to discuss integra
- [x] Blockchain explorer with instructions for verifying contracts, e.g., [Etherscan](https://etherscan.io)
- [x] Functional JSON-RPC endpoint, ideally listed on [ChainList](https://chainlist.org)
- [x] Bridge, and instructions for how to obtain gas tokens (e.g., ETH) and ERC-20 tokens to the target chain
-- [x] Support for [Shanghai](https://docs.soliditylang.org/en/latest/using-the-compiler.html#target-options) EVM version or later
+- [x] Support for [Shanghai](https://docs.soliditylang.org/en/latest/using-the-compiler.html#target-options) EVM version
+ or later
- [x] Support for Solidity v0.8.22 or later
### Contracts
@@ -45,8 +46,11 @@ section is not relevant to you.
### Prerequisites
-- Check if the deployments are not already made: [Airdrops](/guides/airdrops/deployments), [Flow](/guides/flow/deployments), [Lockup](/guides/lockup/deployments)
-- Follow the contributing guides for Airdrops, Flow and Lockup.
+- Check if the deployments are not already made: [Airdrops](/guides/airdrops/deployments),
+ [Flow](/guides/flow/deployments), [Lockup](/guides/lockup/deployments)
+- Follow the contributing guides for Airdrops,
+ Flow and Lockup.
- RPC endpoint, e.g., a paid [Infura](https://www.infura.io/) or [Alchemy](https://www.alchemy.com/) account
- Have enough gas tokens (e.g., ETH) in your deployer account
- Have an Etherscan API key (for source code verification)
@@ -98,13 +102,18 @@ forge script scripts/solidity/DeployDeterministicComptrollerProxy.s.sol:DeployDe
-vvv
```
-The above command works for etherscan equivalent explorers. If the chain uses a custom explorer,
-modify the verifier arguments according to [forge script documentation](https://getfoundry.sh/forge/reference/script/#forge-script). You should
-also refer to the forge script documentation for different wallet options such as mnemonic or hardware device.
+The above command works for etherscan equivalent explorers. If the chain uses a custom explorer, modify the verifier
+arguments according to [forge script documentation](https://getfoundry.sh/forge/reference/script/#forge-script). You
+should also refer to the forge script documentation for different wallet options such as mnemonic or hardware device.
#### Step 4: Update the EVM Utils repository
-Add the chain ID of your newly deployed chain to the `ChainId` library in the [EVM Utils repo](https://github.com/sablier-labs/evm-utils/blob/d7d6c051a39cbacadef672e92ed9d57628c80dc4/src/tests/ChainId.sol). Then, bump the EVM Utils version in each protocol repository's `package.json` file (e.g., [Lockup](https://github.com/sablier-labs/lockup/blob/58eaac45c20c57a93b73d887c714e68f061ec3e6/package.json#L16), [Flow](https://github.com/sablier-labs/flow/blob/a4143de45478f508bca8305fec2bd81b7ad25fe9/package.json#L16), [Airdrops](https://github.com/sablier-labs/airdrops/blob/077c6b9766ef7693ba9e82a9e001dc0097709c01/package.json#L16)).
+Add the chain ID of your newly deployed chain to the `ChainId` library in the
+[EVM Utils repo](https://github.com/sablier-labs/evm-utils/blob/d7d6c051a39cbacadef672e92ed9d57628c80dc4/src/tests/ChainId.sol).
+Then, bump the EVM Utils version in each protocol repository's `package.json` file (e.g.,
+[Lockup](https://github.com/sablier-labs/lockup/blob/58eaac45c20c57a93b73d887c714e68f061ec3e6/package.json#L16),
+[Flow](https://github.com/sablier-labs/flow/blob/a4143de45478f508bca8305fec2bd81b7ad25fe9/package.json#L16),
+[Airdrops](https://github.com/sablier-labs/airdrops/blob/077c6b9766ef7693ba9e82a9e001dc0097709c01/package.json#L16)).
### Lockup Deployment
@@ -153,9 +162,9 @@ forge script scripts/solidity/DeployDeterministicProtocol.s.sol:DeployDeterminis
-vvv
```
-The above command works for etherscan equivalent explorers. If the chain uses a custom explorer,
-modify the verifier arguments according to [forge script documentation](https://getfoundry.sh/forge/reference/script/#forge-script). You should
-also refer to the forge script documentation for different wallet options such as mnemonic or hardware device.
+The above command works for etherscan equivalent explorers. If the chain uses a custom explorer, modify the verifier
+arguments according to [forge script documentation](https://getfoundry.sh/forge/reference/script/#forge-script). You
+should also refer to the forge script documentation for different wallet options such as mnemonic or hardware device.
### Merkle Airdrops Deployment
@@ -204,9 +213,9 @@ forge script scripts/solidity/DeployDeterministicFactories.s.sol:DeployDetermini
-vvv
```
-The above command works for etherscan equivalent explorers. If the chain uses a custom explorer,
-modify the verifier arguments according to [forge script documentation](https://getfoundry.sh/forge/reference/script/#forge-script). You should
-also refer to the forge script documentation for different wallet options such as mnemonic or hardware device.
+The above command works for etherscan equivalent explorers. If the chain uses a custom explorer, modify the verifier
+arguments according to [forge script documentation](https://getfoundry.sh/forge/reference/script/#forge-script). You
+should also refer to the forge script documentation for different wallet options such as mnemonic or hardware device.
### Flow Deployment
@@ -255,16 +264,17 @@ forge script scripts/solidity/DeployDeterministicProtocol.s.sol:DeployDeterminis
-vvv
```
-The above command works for etherscan equivalent explorers. If the chain uses a custom explorer,
-modify the verifier arguments according to [forge script documentation](https://getfoundry.sh/forge/reference/script/#forge-script). You should
-also refer to the forge script documentation for different wallet options such as mnemonic or hardware device.
+The above command works for etherscan equivalent explorers. If the chain uses a custom explorer, modify the verifier
+arguments according to [forge script documentation](https://getfoundry.sh/forge/reference/script/#forge-script). You
+should also refer to the forge script documentation for different wallet options such as mnemonic or hardware device.
### List your deployments
-After the contracts are deployed, you can submit a PR in the SDK
-repo by including the following details:
+After the contracts are deployed, you can submit a PR in the SDK repo by including
+the following details:
-- Add the broadcast files (JSON) to deployments directory.
+- Add the broadcast files (JSON) to deployments
+ directory.
- Add the deployment addresses to the following files:
- Comptroller Deployments
- Airdrops Deployments
diff --git a/docs/guides/airdrops/02-deployments.mdx b/docs/guides/airdrops/02-deployments.mdx
index 8c9c4f6c..b161041c 100644
--- a/docs/guides/airdrops/02-deployments.mdx
+++ b/docs/guides/airdrops/02-deployments.mdx
@@ -4,23 +4,31 @@ sidebar_position: 2
title: "Deployment Addresses"
---
-import DeploymentsV1_3 from "../../../src/autogen/airdrops/_table-deployments-v1.3.mdx";
+import DeploymentsV2_0 from "../../../src/autogen/airdrops/_table-deployments-v2.0.mdx";
+import ReleaseHistoryAirdrops from "../../../src/snippets/_release-history-airdrops.mdx";
+import DeploymentNote from "../../../src/snippets/_deployment-note.mdx";
# Merkle Airdrops Deployments
-This section contains the deployment addresses for the v1.3 release of
-[@sablier/airdrops](https://npmjs.com/package/@sablier/airdrops).
+[latest]: https://npmjs.com/package/@sablier/airdrops
-A few noteworthy details about the deployments:
+This section contains the deployment addresses for the v2.0 release of [@sablier/airdrops][latest].
-- The addresses are final
-- All contracts are non-upgradeable
-- The source code is verified on Etherscan across all chains
+
## Versions
-This repository is the successor of [Lockup Periphery](https://github.com/sablier-labs/v2-periphery), which has been
-discontinued. For previous deployments, please refer to the
-[Lockup deployments](/guides/lockup/previous-deployments/v1.2) page.
+Any updates or additional features will require a new deployment of the protocol, due to its immutable nature.
-
+Came here looking for the previous deployments? Click below to see other versions.
+
+
+
+:::info
+
+Stay up to date with any new releases by [subscribing](https://x.com/Sablier/status/1821220784661995627) to the official
+Sablier repositories on Github.
+
+:::
+
+
diff --git a/docs/guides/airdrops/previous-deployments/_category_.json b/docs/guides/airdrops/previous-deployments/_category_.json
new file mode 100644
index 00000000..9f700851
--- /dev/null
+++ b/docs/guides/airdrops/previous-deployments/_category_.json
@@ -0,0 +1,5 @@
+{
+ "collapsed": true,
+ "label": "Previous Deployments",
+ "position": 3
+}
diff --git a/docs/guides/airdrops/previous-deployments/v1.3.mdx b/docs/guides/airdrops/previous-deployments/v1.3.mdx
new file mode 100644
index 00000000..ba88e9ae
--- /dev/null
+++ b/docs/guides/airdrops/previous-deployments/v1.3.mdx
@@ -0,0 +1,29 @@
+---
+id: "v1.3"
+sidebar_position: 1
+title: "v1.3"
+---
+
+import DeploymentsV1_3 from "../../../../src/autogen/airdrops/_table-deployments-v1.3.mdx";
+import DeploymentNote from "../../../../src/snippets/_deployment-note.mdx";
+
+# Merkle Airdrops v1.3
+
+[v1.3.0]: https://npmjs.com/package/@sablier/airdrops/v/1.3.0
+
+This section contains the deployment addresses for the v1.3 release of [@sablier/airdrops@1.3.0][v1.3.0].
+
+
+
+:::info
+
+This is an outdated version of the Merkle Airdrops protocol. See the latest version
+[here](/guides/airdrops/deployments).
+
+:::
+
+This repository is the successor of [Lockup Periphery](https://github.com/sablier-labs/v2-periphery), which has been
+discontinued. For previous deployments, please refer to the
+[Lockup v1.2 deployments](/guides/lockup/previous-deployments/v1.2) page.
+
+
diff --git a/docs/guides/flow/02-deployments.mdx b/docs/guides/flow/02-deployments.mdx
index 94e73608..348a652a 100644
--- a/docs/guides/flow/02-deployments.mdx
+++ b/docs/guides/flow/02-deployments.mdx
@@ -4,19 +4,17 @@ sidebar_position: 2
title: "Deployment Addresses"
---
-import DeploymentsV1_1 from "../../../src/autogen/flow/_table-deployments-v1.1.mdx";
+import DeploymentsV2_0 from "../../../src/autogen/flow/_table-deployments-v2.0.mdx";
import ReleaseHistoryFlow from "../../../src/snippets/_release-history-flow.mdx";
+import DeploymentNote from "../../../src/snippets/_deployment-note.mdx";
# Flow Deployments
-This section contains the deployment addresses for the v1.1 release of
-[@sablier/flow](https://npmjs.com/package/@sablier/flow).
+[latest]: https://npmjs.com/package/@sablier/flow
-A few noteworthy details about the deployments:
+This section contains the deployment addresses for the v2.0 release of [@sablier/flow][latest].
-- The addresses are final
-- All contracts are non-upgradeable
-- The source code is verified on Etherscan across all chains
+
## Versions
@@ -33,4 +31,4 @@ Sablier repositories on Github.
:::
-
+
diff --git a/docs/guides/flow/previous-deployments/v1.0.mdx b/docs/guides/flow/previous-deployments/v1.0.mdx
index 49a5b69b..3833a345 100644
--- a/docs/guides/flow/previous-deployments/v1.0.mdx
+++ b/docs/guides/flow/previous-deployments/v1.0.mdx
@@ -5,17 +5,15 @@ title: "v1.0"
---
import DeploymentsV1_0 from "../../../../src/autogen/flow/_table-deployments-v1.0.mdx";
+import DeploymentNote from "../../../../src/snippets/_deployment-note.mdx";
# Flow v1.0
-This section contains the deployment addresses for the v1.0 release of
-[@sablier/flow@1.0.0](https://npmjs.com/package/@sablier/flow/v/1.0.0).
+[v1.0.0]: https://npmjs.com/package/@sablier/flow/v/1.0.0
-A few noteworthy details about the deployments:
+This section contains the deployment addresses for the v1.0 release of [@sablier/flow@1.0.0][v1.0.0].
-- The addresses are final
-- All contracts are non-upgradeable
-- The source code is verified on Etherscan across all chains
+
:::info
diff --git a/docs/guides/flow/previous-deployments/v1.1.mdx b/docs/guides/flow/previous-deployments/v1.1.mdx
new file mode 100644
index 00000000..c802d143
--- /dev/null
+++ b/docs/guides/flow/previous-deployments/v1.1.mdx
@@ -0,0 +1,24 @@
+---
+id: "v1.1"
+sidebar_position: 2
+title: "v1.1"
+---
+
+import DeploymentsV1_1 from "../../../../src/autogen/flow/_table-deployments-v1.1.mdx";
+import DeploymentNote from "../../../../src/snippets/_deployment-note.mdx";
+
+# Flow v1.1
+
+[v1.1.1]: https://npmjs.com/package/@sablier/flow/v/1.1.1
+
+This section contains the deployment addresses for the v1.1 release of [@sablier/flow@1.1.1][v1.1.1].
+
+
+
+:::info
+
+This is an outdated version of the Flow protocol. See the latest version [here](/guides/flow/deployments).
+
+:::
+
+
diff --git a/docs/guides/lockup/02-deployments.mdx b/docs/guides/lockup/02-deployments.mdx
index e36c2b3c..16f8698c 100644
--- a/docs/guides/lockup/02-deployments.mdx
+++ b/docs/guides/lockup/02-deployments.mdx
@@ -4,19 +4,17 @@ sidebar_position: 2
title: "Deployment Addresses"
---
-import DeploymentsV2_0 from "../../../src/autogen/lockup/_table-deployments-v2.0.mdx";
+import DeploymentsV3_0 from "../../../src/autogen/lockup/_table-deployments-v3.0.mdx";
import ReleaseHistoryLockup from "../../../src/snippets/_release-history-lockup.mdx";
+import DeploymentNote from "../../../src/snippets/_deployment-note.mdx";
# Lockup Deployments
-This section contains the deployment addresses for the v2.0 release of
-[@sablier/lockup](https://npmjs.com/package/@sablier/lockup).
+[latest]: https://npmjs.com/package/@sablier/lockup
-A few noteworthy details about the deployments:
+This section contains the deployment addresses for the v3.0 release of [@sablier/lockup][latest].
-- The addresses are final
-- All contracts are non-upgradeable
-- The source code is verified on Etherscan across all chains
+
:::info[important]
@@ -41,4 +39,4 @@ Sablier repositories on Github.
:::
-
+
diff --git a/docs/guides/lockup/previous-deployments/v1.0.mdx b/docs/guides/lockup/previous-deployments/v1.0.mdx
index 2c0cc6d9..b931855d 100644
--- a/docs/guides/lockup/previous-deployments/v1.0.mdx
+++ b/docs/guides/lockup/previous-deployments/v1.0.mdx
@@ -1,24 +1,21 @@
---
id: "v1.0"
-sidebar_position: 3
+sidebar_position: 4
title: "v1.0"
---
import DeploymentsV1_0 from "../../../../src/autogen/lockup/_table-deployments-v1.0.mdx";
+import DeploymentNote from "../../../../src/snippets/_deployment-note.mdx";
# Lockup v1.0
-This section contains the deployment addresses for the v1.0 release of [@sablier/v2-core@1.0.2][v2-core] and
-[@sablier/v2-periphery@1.0.3][v2-periphery].
-
[v2-core]: https://npmjs.com/package/@sablier/v2-core/v/1.0.2
[v2-periphery]: https://npmjs.com/package/@sablier/v2-periphery/v/1.0.3
-A few noteworthy details about the deployments:
+This section contains the deployment addresses for the v1.0 release of [@sablier/v2-core@1.0.2][v2-core] and
+[@sablier/v2-periphery@1.0.3][v2-periphery].
-- The addresses are final
-- All contracts are non-upgradeable
-- The source code is verified on Etherscan across all chains
+
:::info
diff --git a/docs/guides/lockup/previous-deployments/v1.1.mdx b/docs/guides/lockup/previous-deployments/v1.1.mdx
index b12ecb90..379d1664 100644
--- a/docs/guides/lockup/previous-deployments/v1.1.mdx
+++ b/docs/guides/lockup/previous-deployments/v1.1.mdx
@@ -1,24 +1,21 @@
---
id: "v1.1"
-sidebar_position: 2
+sidebar_position: 3
title: "v1.1"
---
import DeploymentsV1_1 from "../../../../src/autogen/lockup/_table-deployments-v1.1.mdx";
+import DeploymentNote from "../../../../src/snippets/_deployment-note.mdx";
# Lockup v1.1
-This section contains the deployment addresses for the v1.1 release of [@sablier/v2-core@1.1.2][v2-core] and
-[@sablier/v2-periphery@1.1.1][v2-periphery].
-
[v2-core]: https://npmjs.com/package/@sablier/v2-core/v/1.1.2
[v2-periphery]: https://npmjs.com/package/@sablier/v2-periphery/v/1.1.1
-A few noteworthy details about the deployments:
+This section contains the deployment addresses for the v1.1 release of [@sablier/v2-core@1.1.2][v2-core] and
+[@sablier/v2-periphery@1.1.1][v2-periphery].
-- The addresses are final
-- All contracts are non-upgradeable
-- The source code is verified on Etherscan across all chains
+
:::info
diff --git a/docs/guides/lockup/previous-deployments/v1.2.mdx b/docs/guides/lockup/previous-deployments/v1.2.mdx
index 11cddc57..abc5d26c 100644
--- a/docs/guides/lockup/previous-deployments/v1.2.mdx
+++ b/docs/guides/lockup/previous-deployments/v1.2.mdx
@@ -1,24 +1,21 @@
---
id: "v1.2"
-sidebar_position: 1
+sidebar_position: 2
title: "v1.2"
---
import DeploymentsV1_2 from "../../../../src/autogen/lockup/_table-deployments-v1.2.mdx";
+import DeploymentNote from "../../../../src/snippets/_deployment-note.mdx";
# Lockup v1.2
-This section contains the deployment addresses for the v1.2 release of [@sablier/v2-core@1.2.0][v2-core] and
-[@sablier/v2-periphery@1.2.0][v2-periphery].
-
[v2-core]: https://npmjs.com/package/@sablier/v2-core/v/1.2.0
[v2-periphery]: https://npmjs.com/package/@sablier/v2-periphery/v/1.2.0
-A few noteworthy details about the deployments:
+This section contains the deployment addresses for the v1.2 release of [@sablier/v2-core@1.2.0][v2-core] and
+[@sablier/v2-periphery@1.2.0][v2-periphery].
-- The addresses are final
-- All contracts are non-upgradeable
-- The source code is verified on Etherscan across all chains
+
:::info
diff --git a/docs/guides/lockup/previous-deployments/v2.0.mdx b/docs/guides/lockup/previous-deployments/v2.0.mdx
new file mode 100644
index 00000000..d2758708
--- /dev/null
+++ b/docs/guides/lockup/previous-deployments/v2.0.mdx
@@ -0,0 +1,24 @@
+---
+id: "v2.0"
+sidebar_position: 1
+title: "v2.0"
+---
+
+import DeploymentsV2_0 from "../../../../src/autogen/lockup/_table-deployments-v2.0.mdx";
+import DeploymentNote from "../../../../src/snippets/_deployment-note.mdx";
+
+# Lockup v2.0
+
+[v2.0.1]: https://npmjs.com/package/@sablier/lockup/v/2.0.1
+
+This section contains the deployment addresses for the v2.0 release of [@sablier/lockup@2.0.1][v2.0.1].
+
+
+
+:::info
+
+This is an outdated version of the Lockup protocol. See the latest version [here](/guides/lockup/deployments).
+
+:::
+
+
diff --git a/package.json b/package.json
index 0ae16bc0..e265876e 100644
--- a/package.json
+++ b/package.json
@@ -51,7 +51,7 @@
"rehype-external-links": "^3.0.0",
"rehype-katex": "7.0.1",
"remark-math": "6.0.0",
- "sablier": "1.1.0",
+ "sablier": "1.2.1",
"viem": "^2.37.9"
},
"devDependencies": {
diff --git a/repos/airdrops b/repos/airdrops
index f9a358c0..077c6b97 160000
--- a/repos/airdrops
+++ b/repos/airdrops
@@ -1 +1 @@
-Subproject commit f9a358c0a5bccfec77601d4490ef9117e0488068
+Subproject commit 077c6b9766ef7693ba9e82a9e001dc0097709c01
diff --git a/repos/flow b/repos/flow
index a0fa33d2..a4143de4 160000
--- a/repos/flow
+++ b/repos/flow
@@ -1 +1 @@
-Subproject commit a0fa33d2843af0817e34970cdc05822ead31daaa
+Subproject commit a4143de45478f508bca8305fec2bd81b7ad25fe9
diff --git a/repos/lockup b/repos/lockup
index 463278db..58eaac45 160000
--- a/repos/lockup
+++ b/repos/lockup
@@ -1 +1 @@
-Subproject commit 463278dbb461b1733d6424cf0aeee3b8d6bc036a
+Subproject commit 58eaac45c20c57a93b73d887c714e68f061ec3e6
diff --git a/src/components/organisms/AdminsTable.tsx b/src/components/organisms/AdminsTable.tsx
index 884dea42..05eeebf0 100644
--- a/src/components/organisms/AdminsTable.tsx
+++ b/src/components/organisms/AdminsTable.tsx
@@ -1,108 +1,65 @@
import _ from "lodash";
-import { useEffect, useMemo, useState } from "react";
+import { useMemo } from "react";
import { sablier } from "sablier";
-import type { Chain as ViemChain } from "viem";
-import { createPublicClient, http } from "viem";
import GFMContent from "../atoms/GFMContent";
-interface AdminData {
- adminAddress: string;
- chainId: number;
- chainName: string;
- explorerUrl?: string;
+// Hardcoded admin addresses per chain
+const DEFAULT_SABLIER_ADMIN = "0xb1bEF51ebCA01EB12001a639bDBbFF6eEcA12B9F";
+
+const ADMIN_ADDRESSES: Record = {
+ 1: "0x79Fb3e81aAc012c08501f41296CCC145a1E15844", // Ethereum
+ 10: "0x43c76FE8Aec91F63EbEfb4f5d2a4ba88ef880350", // Optimism
+ 56: "0x6666cA940D2f4B65883b454b7Bc7EEB039f64fa3", // BSC
+ 100: "0x72ACB57fa6a8fa768bE44Db453B1CDBa8B12A399", // Gnosis
+ 137: "0x40A518C5B9c1d3D6d62Ba789501CE4D526C9d9C6", // Polygon
+ 324: "0xaFeA787Ef04E280ad5Bb907363f214E4BAB9e288", // zkSync
+ 8453: "0x83A6fA8c04420B3F9C7A4CF1c040b63Fbbc89B66", // Base
+ 42161: "0xF34E41a6f6Ce5A45559B1D3Ee92E141a3De96376", // Arbitrum
+ 43114: "0x4735517616373c5137dE8bcCDc887637B8ac85Ce", // Avalanche
+ 59144: "0x72dCfa0483d5Ef91562817C6f20E8Ce07A81319D", // Linea
+ 88888: "0x74A234DcAdFCB395b37C8c2B3Edf7A13Be78c935", // Chiliz
+ 534352: "0x0F7Ad835235Ede685180A5c611111610813457a9", // Scroll
+};
+
+function getAdminAddress(chainId: number): string {
+ return ADMIN_ADDRESSES[chainId] ?? DEFAULT_SABLIER_ADMIN;
}
export function AdminsTable() {
- const [admins, setAdmins] = useState([]);
- const [loading, setLoading] = useState(true);
-
- const mainnets = useMemo(() => {
- return sablier.chains.getMainnets().filter((c) => c.isSupportedByUI);
- }, []);
-
- useEffect(() => {
- async function fetchAdmins() {
- const adminPromises = mainnets.map(async (chain): Promise => {
- try {
- const contracts = sablier.contracts.getAll({ chainId: chain.id, protocol: "lockup" });
- if (_.isEmpty(contracts)) {
- console.warn(`No SablierLockup contract found for ${chain.name}`);
- return undefined;
- }
- const lockupContract = contracts
- .filter((c) => c.name === "SablierLockup" || c.name === "SablierV2LockupLinear")
- .sort((a, b) => b.version.localeCompare(a.version))[0]; // Get latest version
-
- if (!lockupContract) {
- console.warn(`No SablierLockup contract found for ${chain.name}`);
- return undefined;
- }
-
- // Create viem client for this chain
- const client = createPublicClient({
- chain: chain as ViemChain,
- transport: http(chain.rpc.defaults[0]),
- });
-
- // Define the ABI with proper const assertion
- const adminAbi = [
- {
- inputs: [],
- name: "admin",
- outputs: [{ name: "", type: "address" }],
- stateMutability: "view",
- type: "function",
- },
- ] as const;
-
- // Call the admin() function on the contract
- const adminAddress = await client.readContract({
- abi: adminAbi,
- address: lockupContract.address as `0x${string}`,
- authorizationList: undefined,
- functionName: "admin",
- });
-
- return {
- adminAddress: adminAddress as string,
- chainId: chain.id,
- chainName: chain.name,
- explorerUrl: lockupContract.explorerURL ?? chain.blockExplorers.default.url,
- };
- } catch (error) {
- const errorMessage = error instanceof Error ? error.message : "Unknown error";
- console.warn(`Failed to fetch admin for ${chain.name}:`, errorMessage);
- }
- });
-
- const results = (await Promise.all(adminPromises)).filter(Boolean);
-
- // Sort by chain name for consistent ordering
- results.sort((a, b) => a.chainName.localeCompare(b.chainName));
-
- setAdmins(results);
- setLoading(false);
- }
-
- void fetchAdmins();
- }, [mainnets]);
-
const content = useMemo(() => {
- if (loading) {
- return "| Chain | Address |\n| :---- | :------ |\n| Loading... | Loading... |";
- }
+ // Get the v2.0 lockup release
+ const release = sablier.releases.get({
+ protocol: "lockup",
+ version: "v2.0",
+ });
+
+ // Get all chains that have v2.0 lockup contracts
+ const allContracts = sablier.contracts.getAll({
+ release: release,
+ });
+
+ // Get unique chains from the contracts
+ const chainIds = _.uniq(allContracts.map((c) => c.chainId));
+
+ // Get chain details and filter for mainnets supported by UI
+ const chains = chainIds
+ .map((chainId) => sablier.chains.get(chainId))
+ .filter((chain) => chain && !chain.isTestnet && chain.isSupportedByUI)
+ .sort((a, b) => a.name.localeCompare(b.name));
let content = "| Chain | Address |\n";
content += "| :---- | :------ |\n";
- for (const admin of admins) {
- const explorerBaseUrl = admin.explorerUrl?.replace(/\/address\/.*$/, "") || "";
- const addressLink = `[${admin.adminAddress}](${explorerBaseUrl}/address/${admin.adminAddress})`;
- content += `| ${admin.chainName} | ${addressLink} |\n`;
+ for (const chain of chains) {
+ const adminAddress = getAdminAddress(chain.id);
+
+ const explorerBaseUrl = chain.blockExplorers.default.url;
+ const addressLink = `[${adminAddress}](${explorerBaseUrl}/address/${adminAddress})`;
+ content += `| ${chain.name} | ${addressLink} |\n`;
}
return content;
- }, [admins, loading]);
+ }, []);
return ;
}
diff --git a/src/components/organisms/Chains.tsx b/src/components/organisms/Chains.tsx
index c5321fae..29d5ba35 100644
--- a/src/components/organisms/Chains.tsx
+++ b/src/components/organisms/Chains.tsx
@@ -1,5 +1,6 @@
import { useMemo } from "react";
import { sablier } from "sablier";
+import { getLatestLockupChainIds } from "../../helpers";
import GFMContent from "../atoms/GFMContent";
export interface ChainProps {
@@ -8,22 +9,46 @@ export interface ChainProps {
export function Chains({ kind }: ChainProps) {
const content = useMemo(() => {
+ const latestLockupChainIds = new Set(getLatestLockupChainIds());
+
let content: string = "";
content += `| Name | Chain ID | In UI? | Native Token | Explorer |\n`;
content += `| :--- | :------- | :----- | :----------- | :------- |\n`;
const getter = kind === "mainnets" ? sablier.chains.getMainnets : sablier.chains.getTestnets;
+
for (const chain of getter()) {
+ // Only include chains that have Lockup v3.0 deployed
+ if (!latestLockupChainIds.has(chain.id)) {
+ continue;
+ }
+
const supportedCell = chain.isSupportedByUI ? "✅" : "❌";
const symbolCell = chain.nativeCurrency.symbol;
const explorerURL = chain.blockExplorers.default.url;
const explorerCell = `[${new URL(explorerURL).host}](${explorerURL})`;
content += `| ${chain.name} | ${chain.id} | ${supportedCell} | ${symbolCell} | ${explorerCell} |\n`;
}
+
return content;
}, [kind]);
return ;
}
+// Helper function to get the count
+export function getChainCount(kind: "mainnets" | "testnets"): number {
+ const latestLockupChainIds = new Set(getLatestLockupChainIds());
+ const query = kind === "mainnets" ? sablier.chains.getMainnets : sablier.chains.getTestnets;
+
+ let count = 0;
+ for (const chain of query()) {
+ if (latestLockupChainIds.has(chain.id)) {
+ count++;
+ }
+ }
+
+ return count;
+}
+
export default Chains;
diff --git a/src/components/organisms/ComptrollersTable.tsx b/src/components/organisms/ComptrollersTable.tsx
new file mode 100644
index 00000000..d53ee28b
--- /dev/null
+++ b/src/components/organisms/ComptrollersTable.tsx
@@ -0,0 +1,36 @@
+import _ from "lodash";
+import { useMemo } from "react";
+import { comptroller, sablier } from "sablier";
+import { getLatestLockupChainIds } from "../../helpers";
+import GFMContent from "../atoms/GFMContent";
+
+export function ComptrollersTable() {
+ const content = useMemo(() => {
+ // Get chain IDs that have the latest Lockup v3.0 release deployed
+ const chainIds = getLatestLockupChainIds();
+
+ // Get chain details and filter for mainnets supported by UI
+ const chains = chainIds
+ .map((chainId) => sablier.chains.get(chainId))
+ .filter((chain) => chain && !chain.isTestnet && chain.isSupportedByUI)
+ .sort((a, b) => a.name.localeCompare(b.name));
+
+ let content = "| Chain | Address |\n";
+ content += "| :---- | :------ |\n";
+
+ for (const chain of chains) {
+ // Get comptroller address from sablier package
+ const comptrollerAddress = comptroller.get(chain.id).address;
+
+ const explorerBaseUrl = chain.blockExplorers.default.url;
+ const addressLink = `[${comptrollerAddress}](${explorerBaseUrl}/address/${comptrollerAddress})`;
+ content += `| ${chain.name} | ${addressLink} |\n`;
+ }
+
+ return content;
+ }, []);
+
+ return ;
+}
+
+export default ComptrollersTable;
diff --git a/src/helpers.ts b/src/helpers.ts
index 9d52e7ca..33905abb 100644
--- a/src/helpers.ts
+++ b/src/helpers.ts
@@ -1,3 +1,5 @@
+import _ from "lodash";
+import { sablier } from "sablier";
import { BENCHMARKS_COMMIT, GITHUB_ORG } from "./constants";
export function getBenchmarkURL(path: string): string {
@@ -7,3 +9,12 @@ export function getBenchmarkURL(path: string): string {
export function getRawContentURL(repo: string, ref: string, path: string): string {
return `https://raw.githubusercontent.com/${GITHUB_ORG}/${repo}/${ref}/${path}`;
}
+
+/**
+ * Get chain IDs that have the latest lockup release deployed
+ */
+export function getLatestLockupChainIds(): number[] {
+ const release = sablier.releases.getLatest({ protocol: "lockup" });
+ const contracts = sablier.contracts.getAll({ release });
+ return _.uniq(contracts.map((c) => c.chainId));
+}
diff --git a/src/snippets/_deployment-note.mdx b/src/snippets/_deployment-note.mdx
new file mode 100644
index 00000000..51ef7bbb
--- /dev/null
+++ b/src/snippets/_deployment-note.mdx
@@ -0,0 +1,5 @@
+A few noteworthy details about the deployments:
+
+- The addresses are final
+- All contracts are non-upgradeable
+- The source code is verified on Etherscan across all chains
diff --git a/src/snippets/_release-history-airdrops.mdx b/src/snippets/_release-history-airdrops.mdx
index cb3fd8de..94da5530 100644
--- a/src/snippets/_release-history-airdrops.mdx
+++ b/src/snippets/_release-history-airdrops.mdx
@@ -1,3 +1,4 @@
-| Version | Release Date |
-| --------------------------------- | ------------- |
-| [v1.3](/guides/airdrops/overview) | February 2025 |
+| Version | Release Date | UI Aliases |
+| -------------------------------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
+| [v2.0](/guides/airdrops/deployments) (latest) | October 2025 | `MF_INST` (Merkle Factory Instant), `MF_LL` (Merkle Factory Linear), `MF_LT` (Merkle Factory Tranched), `MF_VCA` (Merkle Factory VCA) |
+| [v1.3](/guides/airdrops/previous-deployments/v1.3) | February 2025 | `MSF4` (Merkle Factory): all factories merged into a single contract |
diff --git a/src/snippets/_release-history-flow.mdx b/src/snippets/_release-history-flow.mdx
index acec4de7..94927f2f 100644
--- a/src/snippets/_release-history-flow.mdx
+++ b/src/snippets/_release-history-flow.mdx
@@ -1,4 +1,5 @@
| Version | Release Date | UI Aliases |
| ---------------------------------------------- | ------------- | ---------- |
-| [v1.1](/guides/flow/overview) (latest) | February 2025 | FL2 |
+| [v2.0](/guides/flow/deployments) (latest) | October 2025 | FL3 |
+| [v1.1](/guides/flow/previous-deployments/v1.1) | February 2025 | FL2 |
| [v1.0](/guides/flow/previous-deployments/v1.0) | December 2024 | FL |
diff --git a/src/snippets/_release-history-lockup.mdx b/src/snippets/_release-history-lockup.mdx
index 30d2759b..6c1b83f8 100644
--- a/src/snippets/_release-history-lockup.mdx
+++ b/src/snippets/_release-history-lockup.mdx
@@ -1,6 +1,7 @@
| Version | Release Date | UI Aliases |
| ------------------------------------------------ | ------------- | ---------------------------------------------------------------------- |
-| [v2.0](/guides/lockup/deployments) (latest) | February 2025 | `LK` (Lockup): all models have been merged into a single contract |
+| [v3.0](/guides/lockup/deployments) (latest) | October 2025 | `LK2` (Lockup): all models have been merged into a single contract |
+| [v2.0](/guides/lockup/previous-deployments/v2.0) | February 2025 | `LK` (Lockup): all models have been merged into a single contract |
| [v1.2](/guides/lockup/previous-deployments/v1.2) | July 2024 | `LD3` (Lockup Dynamic), `LL3` (Lockup Linear), `LT3` (Lockup Tranched) |
| [v1.1](/guides/lockup/previous-deployments/v1.1) | December 2023 | `LD2` (Lockup Dynamic), `LL2` (Lockup Linear) |
| [v1.0](/guides/lockup/previous-deployments/v1.0) | July 2023 | `LD` (Lockup Dynamic), `LL` (Lockup Linear) |