From da45c204b7ea4ccdd57a1d24c838adff34d3913a Mon Sep 17 00:00:00 2001 From: Juraj Date: Wed, 7 Aug 2024 12:25:09 +0100 Subject: [PATCH 01/71] TOK-193: Verify if we can work around CORS restrictions to run the dAPP in Testnet (#3) * feat: allows cors bypass --- .env.testnet.local | 4 + README.md | 26 +- next.config.mjs | 35 + package-lock.json | 5706 +++++++++++++++++--------------------------- package.json | 1 + 5 files changed, 2241 insertions(+), 3531 deletions(-) create mode 100644 .env.testnet.local diff --git a/.env.testnet.local b/.env.testnet.local new file mode 100644 index 00000000..33e9a79e --- /dev/null +++ b/.env.testnet.local @@ -0,0 +1,4 @@ +NEXT_PUBLIC_ENV=testnet +NEXT_PUBLIC_RIF_WALLET_SERVICES=/cors_bypass +NEXT_PUBLIC_PROXY_DESTINATION=https://dao-backend.testnet.rifcomputing.net +NEXT_PUBLIC_EXPLORER=https://explorer.testnet.rootstock.io diff --git a/README.md b/README.md index 6a3afb07..2a64166f 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,19 @@ pnpm dev bun dev ``` +> [!NOTE] +> ‼️ **Warning: DO NOT USE IN PRODUCTION!** +> +> To avoid **CORS errors** when running against testnet from localhost we can proxy the calls to the RIF Wallet Services via a local loop that strips the CORS headers on the way out and adds the expected response ones on the way in. +> This can be achieved by: +> +> ```bash +> cp .env.testnet.local .env +> ``` +> +> before running `npm run dev` + + Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. @@ -71,14 +84,13 @@ The deployer will launch an instance of storybook in [Localhost Port 6000](http: Storybook has been configured to use Tailwind CSS. - ## E2E Testing with Cypress Cypress is a tool to help you execute tests on a functional website. It has been installed as the default test suite for all of our end-to-end test necessities. -The default baseUrl that it'll use is ```http://localhost:3000```, this can change in the future. +The default baseUrl that it'll use is `http://localhost:3000`, this can change in the future. ### Open cypress together with Next.js @@ -88,11 +100,10 @@ You can open both instances at the same using the following command: npm run e2e-open ``` -This should start up Next.js server using ```npm run dev``` and then ```npm run cypress open --e2e``` +This should start up Next.js server using `npm run dev` and then `npm run cypress open --e2e` This command will open cypress and will allow you to choose the desired browser for testing purposes. - ### Run cypress tests You can run the tests using: @@ -101,21 +112,18 @@ You can run the tests using: npm run e2e-test ``` -This will start Next.js, and cypress, and will then automatically execute the *.cy files in the project. +This will start Next.js, and cypress, and will then automatically execute the \*.cy files in the project. If everything is successfully, you'll get a "All specs passed!" green message. - ### Default file -A default file ```health-spec.cy.ts``` has been created to make sure that cypress is running accordingly. +A default file `health-spec.cy.ts` has been created to make sure that cypress is running accordingly. This can be removed in the future. - ## GitHub Workflows ### End-to-end testing (e2e) This workflow uses https://github.com/cypress-io/github-action - diff --git a/next.config.mjs b/next.config.mjs index 4ce46f8f..d4c99be9 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,6 +1,41 @@ /** @type {import('next').NextConfig} */ +import { createProxyMiddleware } from 'http-proxy-middleware' + const nextConfig = { output: 'standalone', + rewrites: () => [ + { + source: `${process.env.NEXT_PUBLIC_RIF_WALLET_SERVICES}/:path*`, + destination: `${process.env.NEXT_PUBLIC_PROXY_DESTINATION}/:path*`, + }, + ], + webpack: (config, { isServer }) => { + if (!isServer) { + config.devServer = { + ...config.devServer, + before: app => { + app.use( + '/cors_bypass', + createProxyMiddleware({ + target: process.env.NEXT_PUBLIC_PROXY_DESTINATION, + changeOrigin: true, + onProxyReq: proxyReq => { + proxyReq.removeHeader('Origin') + proxyReq.removeHeader('Referer') + proxyReq.removeHeader('User-Agent') + proxyReq.setHeader('User-Agent', 'Mozilla/5.0 (compatible; AcmeBot/1.0)') + }, + onProxyRes: proxyRes => { + proxyRes.headers['Access-Control-Allow-Origin'] = + window?.location?.host || 'http://localhost:3000' + }, + }), + ) + }, + } + } + return config + }, } export default nextConfig diff --git a/package-lock.json b/package-lock.json index bbd44a71..93a3aecd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52,6 +52,7 @@ "eslint-config-next": "14.2.3", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-storybook": "^0.8.0", + "http-proxy-middleware": "^3.0.0", "pino-pretty": "^11.2.1", "postcss": "^8", "prettier": "^3.3.2", @@ -98,18 +99,6 @@ "node": ">=6.0.0" } }, - "node_modules/@aw-web-design/x-default-browser": { - "version": "1.4.126", - "resolved": "https://registry.npmjs.org/@aw-web-design/x-default-browser/-/x-default-browser-1.4.126.tgz", - "integrity": "sha512-Xk1sIhyNC/esHGGVjL/niHLowM0csl/kFO5uawBy4IrWwy0o1G8LGt3jP6nmWGz+USxeeqbihAmp/oVZju6wug==", - "dev": true, - "dependencies": { - "default-browser-id": "3.0.0" - }, - "bin": { - "x-default-browser": "bin/x-default-browser.js" - } - }, "node_modules/@babel/code-frame": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", @@ -123,28 +112,28 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", - "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", + "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", - "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helpers": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -160,11 +149,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", "dependencies": { - "@babel/types": "^7.24.7", + "@babel/types": "^7.25.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -197,13 +186,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", - "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -212,18 +201,16 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", - "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz", + "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/traverse": "^7.25.0", "semver": "^6.3.1" }, "engines": { @@ -234,9 +221,9 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz", - "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", + "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", "regexpu-core": "^5.3.1", @@ -268,29 +255,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", - "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", - "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", - "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "peer": true, "dependencies": { "@babel/types": "^7.24.7" }, @@ -299,12 +264,12 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", - "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -323,15 +288,14 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", - "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", "@babel/helper-module-imports": "^7.24.7", "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" }, "engines": { "node": ">=6.9.0" @@ -352,21 +316,21 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz", - "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", + "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-wrap-function": "^7.24.7" + "@babel/helper-wrap-function": "^7.25.0", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -376,13 +340,13 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", - "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.7", - "@babel/helper-optimise-call-expression": "^7.24.7" + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -415,21 +379,10 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", - "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "engines": { "node": ">=6.9.0" } @@ -443,34 +396,33 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz", - "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", + "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", "dependencies": { - "@babel/helper-function-name": "^7.24.7", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", - "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -491,9 +443,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "dependencies": { + "@babel/types": "^7.25.2" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -502,12 +457,26 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz", - "integrity": "sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", + "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", + "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -517,11 +486,11 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz", - "integrity": "sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", + "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -547,12 +516,12 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz", - "integrity": "sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", + "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1031,14 +1000,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz", - "integrity": "sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", + "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-remap-async-to-generator": "^7.24.7", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1078,11 +1047,11 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz", - "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", + "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1123,17 +1092,15 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz", - "integrity": "sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz", + "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/traverse": "^7.25.0", "globals": "^11.1.0" }, "engines": { @@ -1159,11 +1126,11 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz", - "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1201,6 +1168,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", + "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-transform-dynamic-import": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", @@ -1247,11 +1229,11 @@ } }, "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.7.tgz", - "integrity": "sha512-cjRKJ7FobOH2eakx7Ja+KpJRj8+y+/SiB3ooYm/n2UJfxu0oEaOoxOinitkJcPqv9KxS0kxTGPUaR7L2XcXDXA==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.2.tgz", + "integrity": "sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/plugin-syntax-flow": "^7.24.7" }, "engines": { @@ -1277,13 +1259,13 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz", - "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==", + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", + "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", "dependencies": { - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.1" }, "engines": { "node": ">=6.9.0" @@ -1308,11 +1290,11 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", - "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", + "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1366,12 +1348,12 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz", - "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-simple-access": "^7.24.7" }, "engines": { @@ -1382,14 +1364,14 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz", - "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", + "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", "dependencies": { - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1520,11 +1502,11 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz", - "integrity": "sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, @@ -1610,15 +1592,15 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz", - "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz", + "integrity": "sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.2" }, "engines": { "node": ">=6.9.0" @@ -1794,11 +1776,11 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz", - "integrity": "sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1808,13 +1790,14 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.7.tgz", - "integrity": "sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz", + "integrity": "sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", "@babel/plugin-syntax-typescript": "^7.24.7" }, "engines": { @@ -1884,18 +1867,19 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.7.tgz", - "integrity": "sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==", - "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", + "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", @@ -1916,29 +1900,30 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.0", "@babel/plugin-transform-async-to-generator": "^7.24.7", "@babel/plugin-transform-block-scoped-functions": "^7.24.7", - "@babel/plugin-transform-block-scoping": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", "@babel/plugin-transform-class-properties": "^7.24.7", "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.0", "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-dotall-regex": "^7.24.7", "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", "@babel/plugin-transform-dynamic-import": "^7.24.7", "@babel/plugin-transform-exponentiation-operator": "^7.24.7", "@babel/plugin-transform-export-namespace-from": "^7.24.7", "@babel/plugin-transform-for-of": "^7.24.7", - "@babel/plugin-transform-function-name": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", "@babel/plugin-transform-json-strings": "^7.24.7", - "@babel/plugin-transform-literals": "^7.24.7", + "@babel/plugin-transform-literals": "^7.25.2", "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", "@babel/plugin-transform-member-expression-literals": "^7.24.7", "@babel/plugin-transform-modules-amd": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.7", - "@babel/plugin-transform-modules-systemjs": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", "@babel/plugin-transform-modules-umd": "^7.24.7", "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", "@babel/plugin-transform-new-target": "^7.24.7", @@ -1947,7 +1932,7 @@ "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-object-super": "^7.24.7", "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", @@ -1958,7 +1943,7 @@ "@babel/plugin-transform-spread": "^7.24.7", "@babel/plugin-transform-sticky-regex": "^7.24.7", "@babel/plugin-transform-template-literals": "^7.24.7", - "@babel/plugin-transform-typeof-symbol": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", "@babel/plugin-transform-unicode-escapes": "^7.24.7", "@babel/plugin-transform-unicode-property-regex": "^7.24.7", "@babel/plugin-transform-unicode-regex": "^7.24.7", @@ -1967,7 +1952,7 @@ "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.4", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.31.0", + "core-js-compat": "^3.37.1", "semver": "^6.3.1" }, "engines": { @@ -2176,9 +2161,9 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "node_modules/@babel/runtime": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", - "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -2187,31 +2172,28 @@ } }, "node_modules/@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", "dependencies": { "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", + "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", "dependencies": { "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.2", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2220,11 +2202,11 @@ } }, "node_modules/@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", "dependencies": { - "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-string-parser": "^7.24.8", "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, @@ -2239,9 +2221,9 @@ "dev": true }, "node_modules/@chromatic-com/storybook": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@chromatic-com/storybook/-/storybook-1.5.0.tgz", - "integrity": "sha512-LkLKv7SWu/6kGep1ft2HA1T/cm14wU0zoW71gE4cZRcgUoRQJtyhITFTLHrjqAxz6bVqNgqzQtd5oBZ2nK3L3g==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@chromatic-com/storybook/-/storybook-1.6.1.tgz", + "integrity": "sha512-x1x1NB3j4xpfeSWKr96emc+7ZvfsvH+/WVb3XCjkB24PPbT8VZXb3mJSAQMrSzuQ8+eQE9kDogYHH9Fj3tb/Cw==", "dev": true, "dependencies": { "chromatic": "^11.4.0", @@ -2299,6 +2281,11 @@ "node": ">=6" } }, + "node_modules/@coinbase/wallet-sdk/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -2338,19 +2325,18 @@ "node": ">= 6" } }, - "node_modules/@cypress/request/node_modules/qs": { - "version": "6.10.4", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", - "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "node_modules/@cypress/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "dependencies": { - "side-channel": "^1.0.4" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.12" } }, "node_modules/@cypress/request/node_modules/uuid": { @@ -2381,15 +2367,6 @@ "ms": "^2.1.1" } }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/@emnapi/runtime": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.2.0.tgz", @@ -2400,19 +2377,10 @@ "tslib": "^2.4.0" } }, - "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", - "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", - "dev": true, - "peerDependencies": { - "react": ">=16.8.0" - } - }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", "cpu": [ "ppc64" ], @@ -2426,9 +2394,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], @@ -2442,9 +2410,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], @@ -2458,9 +2426,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], @@ -2474,9 +2442,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], @@ -2490,9 +2458,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], @@ -2506,9 +2474,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], @@ -2522,9 +2490,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], @@ -2538,9 +2506,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], @@ -2554,9 +2522,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], @@ -2570,9 +2538,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], @@ -2586,9 +2554,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], @@ -2602,9 +2570,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], @@ -2618,9 +2586,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], @@ -2634,9 +2602,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], @@ -2650,9 +2618,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], @@ -2666,9 +2634,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -2682,9 +2650,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], @@ -2698,9 +2666,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], @@ -2714,9 +2682,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -2730,9 +2698,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -2746,9 +2714,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], @@ -2762,9 +2730,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -2793,9 +2761,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz", - "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -2907,27 +2875,21 @@ "node": ">=14" } }, - "node_modules/@fal-works/esbuild-plugin-global-externals": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz", - "integrity": "sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==", - "dev": true - }, "node_modules/@floating-ui/core": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.4.tgz", - "integrity": "sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==", + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.6.tgz", + "integrity": "sha512-Vkvsw6EcpMHjvZZdMkSY+djMGFbt7CRssW99Ne8tar2WLnZ/l3dbxeTShbLQj+/s35h+Qb4cmnob+EzwtjrXGQ==", "dependencies": { - "@floating-ui/utils": "^0.2.4" + "@floating-ui/utils": "^0.2.6" } }, "node_modules/@floating-ui/dom": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.7.tgz", - "integrity": "sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng==", + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.9.tgz", + "integrity": "sha512-zB1PcI350t4tkm3rvUhSRKa9sT7vH5CrAbQxW+VaPYJXKAO0gsg4CTueL+6Ajp7XzAQC8CW4Jj1Wgqc0sB6oUQ==", "dependencies": { "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.4" + "@floating-ui/utils": "^0.2.6" } }, "node_modules/@floating-ui/react-dom": { @@ -2943,9 +2905,9 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.4.tgz", - "integrity": "sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==" + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.6.tgz", + "integrity": "sha512-0KI3zGxIUs1KDR/pjQPdJH4Z8nGBm0yJ5WRoRfdw1Kzeh45jkIfA0rmD0kBF6fKHH+xaH7g8y4jIXyAV5MGK3g==" }, "node_modules/@hapi/hoek": { "version": "9.3.0", @@ -2961,9 +2923,9 @@ } }, "node_modules/@hookform/resolvers": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.7.0.tgz", - "integrity": "sha512-42p5X18noBV3xqOpTlf2V5qJZwzNgO4eLzHzmKGh/w7z4+4XqRw5AsESVkqE+qwAuRRlg2QG12EVEjPkrRIbeg==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.9.0.tgz", + "integrity": "sha512-bU0Gr4EepJ/EQsH/IwEzYLsT/PEj5C0ynLQ4m+GSHS+xKH4TfSelhluTgOaoc4kA5s7eCsQbM4wvZLzELmWzUg==", "peerDependencies": { "react-hook-form": "^7.0.0" } @@ -3657,9 +3619,9 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", @@ -3671,9 +3633,9 @@ } }, "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", - "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", + "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==" }, "node_modules/@lit/reactive-element": { "version": "1.6.3", @@ -3713,6 +3675,38 @@ "node": ">=14.0.0" } }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/json-rpc-engine": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-7.3.3.tgz", + "integrity": "sha512-dwZPq8wx9yV3IX2caLi9q9xZBw2XeIoYqdyihDDDpuHVCEiqadJLwqM3zy+uwf6F1QYQ65A8aOMQg1Uw7LMLNg==", + "dependencies": { + "@metamask/rpc-errors": "^6.2.1", + "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/utils": "^8.3.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/json-rpc-engine/node_modules/@metamask/utils": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", + "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", + "dependencies": { + "@ethereumjs/tx": "^4.2.0", + "@metamask/superstruct": "^3.0.0", + "@noble/hashes": "^1.3.1", + "@scure/base": "^1.1.3", + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "pony-cause": "^2.1.10", + "semver": "^7.5.4", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/utils": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-5.0.2.tgz", @@ -3729,9 +3723,9 @@ } }, "node_modules/@metamask/eth-json-rpc-provider/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { "semver": "bin/semver.js" }, @@ -3740,9 +3734,9 @@ } }, "node_modules/@metamask/json-rpc-engine": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-7.3.3.tgz", - "integrity": "sha512-dwZPq8wx9yV3IX2caLi9q9xZBw2XeIoYqdyihDDDpuHVCEiqadJLwqM3zy+uwf6F1QYQ65A8aOMQg1Uw7LMLNg==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-8.0.2.tgz", + "integrity": "sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==", "dependencies": { "@metamask/rpc-errors": "^6.2.1", "@metamask/safe-event-emitter": "^3.0.0", @@ -3753,11 +3747,11 @@ } }, "node_modules/@metamask/json-rpc-middleware-stream": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@metamask/json-rpc-middleware-stream/-/json-rpc-middleware-stream-6.0.2.tgz", - "integrity": "sha512-jtyx3PRfc1kqoLpYveIVQNwsxYKefc64/LCl9h9Da1m3nUKEvypbYuXSIwi237qvOjKmNHQKsDOZg6f4uBf62Q==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@metamask/json-rpc-middleware-stream/-/json-rpc-middleware-stream-7.0.2.tgz", + "integrity": "sha512-yUdzsJK04Ev98Ck4D7lmRNQ8FPioXYhEUZOMS01LXW8qTvPGiRVXmVltj2p4wrLkh0vW7u6nv0mNl5xzC5Qmfg==", "dependencies": { - "@metamask/json-rpc-engine": "^7.3.2", + "@metamask/json-rpc-engine": "^8.0.2", "@metamask/safe-event-emitter": "^3.0.0", "@metamask/utils": "^8.3.0", "readable-stream": "^3.6.2" @@ -3813,15 +3807,15 @@ } }, "node_modules/@metamask/providers": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@metamask/providers/-/providers-15.0.0.tgz", - "integrity": "sha512-FXvL1NQNl6I7fMOJTfQYcBlBZ33vSlm6w80cMpmn8sJh0Lb7wcBpe02UwBsNlARnI+Qsr26XeDs6WHUHQh8CuA==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@metamask/providers/-/providers-16.1.0.tgz", + "integrity": "sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g==", "dependencies": { - "@metamask/json-rpc-engine": "^7.3.2", - "@metamask/json-rpc-middleware-stream": "^6.0.2", + "@metamask/json-rpc-engine": "^8.0.1", + "@metamask/json-rpc-middleware-stream": "^7.0.1", "@metamask/object-multiplex": "^2.0.0", "@metamask/rpc-errors": "^6.2.1", - "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/safe-event-emitter": "^3.1.1", "@metamask/utils": "^8.3.0", "detect-browser": "^5.2.0", "extension-port-stream": "^3.0.0", @@ -3860,9 +3854,9 @@ } }, "node_modules/@metamask/rpc-errors/node_modules/@metamask/utils": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-9.0.0.tgz", - "integrity": "sha512-Q/PzQCm6rkmePxHghXgJuYEkVfSvwKLLFZwFtfmLAz4mxIPuFJSMawaJM7sfZsVybK5Bf9QaKAjgMvHk5iGGvA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-9.1.0.tgz", + "integrity": "sha512-g2REf+xSt0OZfMoNNdC4+/Yy8eP3KUqvIArel54XRFKPoXbHI6+YjFfrLtfykWBjffOp7DTfIc3Kvk5TLfuiyg==", "dependencies": { "@ethereumjs/tx": "^4.2.0", "@metamask/superstruct": "^3.1.0", @@ -3879,9 +3873,9 @@ } }, "node_modules/@metamask/rpc-errors/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { "semver": "bin/semver.js" }, @@ -3898,14 +3892,14 @@ } }, "node_modules/@metamask/sdk": { - "version": "0.26.4", - "resolved": "https://registry.npmjs.org/@metamask/sdk/-/sdk-0.26.4.tgz", - "integrity": "sha512-9Yh41KJkD9RhW0lRijnQzPV0ptblLorLdTsf5GnAl3yE72QIfaPBtsDxzLtX+0QLppiFfj7o8vRBYvBApG9k+Q==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/@metamask/sdk/-/sdk-0.27.0.tgz", + "integrity": "sha512-6sMjr/0qR700X1svPGEQ4rBdtccidBLeTC27fYQc7r9ROgSixB1DUUAyu/LoySVqt3Hu/Zm7NnAHXuT228ht7A==", "dependencies": { "@metamask/onboarding": "^1.0.1", - "@metamask/providers": "^15.0.0", - "@metamask/sdk-communication-layer": "0.26.4", - "@metamask/sdk-install-modal-web": "0.26.4", + "@metamask/providers": "16.1.0", + "@metamask/sdk-communication-layer": "0.27.0", + "@metamask/sdk-install-modal-web": "0.26.5", "@types/dom-screen-wake-lock": "^1.0.0", "bowser": "^2.9.0", "cross-fetch": "^4.0.0", @@ -3939,14 +3933,14 @@ } }, "node_modules/@metamask/sdk-install-modal-web": { - "version": "0.26.4", - "resolved": "https://registry.npmjs.org/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.26.4.tgz", - "integrity": "sha512-7Cx7ZsaExbMwghlRrUWWI0Ksg0m7K60LtMjfuDpjvjWqoZa9MoPxitGDEXNbLaqvKn39ebPvNcPzQ6czA4ilTw==", + "version": "0.26.5", + "resolved": "https://registry.npmjs.org/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.26.5.tgz", + "integrity": "sha512-qVA9Nk+NorGx5hXyODy5wskptE8R7RNYTYt49VbQpJogqbbVe1dnJ98+KaA43PBN4XYMCXmcIhULNiEHGsLynA==", "dependencies": { "qr-code-styling": "^1.6.0-rc.1" }, "peerDependencies": { - "i18next": "23.2.3", + "i18next": "23.11.5", "react": "^18.2.0", "react-dom": "^18.2.0", "react-native": "*" @@ -3980,9 +3974,9 @@ } }, "node_modules/@metamask/sdk/node_modules/@metamask/sdk-communication-layer": { - "version": "0.26.4", - "resolved": "https://registry.npmjs.org/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.26.4.tgz", - "integrity": "sha512-+X4GEc5mV1gWK4moSswVlKsUh+RsA48qPlkxBLTUxQODSnyBe0TRMxE6mH+bSrfponnTzvBkGUXyEjvDwDjDHw==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.27.0.tgz", + "integrity": "sha512-G9LCaQzIqp5WmUmvHN6UUdjWrBh67MbRobmbbs5fcc2+9XFhj3vBgtyleUYjun91jSlPHoZeo+f/Pj4/WoPIJg==", "dependencies": { "bufferutil": "^4.0.8", "date-fns": "^2.29.3", @@ -4069,28 +4063,6 @@ "node": ">=8" } }, - "node_modules/@metamask/sdk/node_modules/i18next": { - "version": "23.11.5", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.11.5.tgz", - "integrity": "sha512-41pvpVbW9rhZPk5xjCX2TPJi2861LEig/YRhUkY+1FQ2IQPS0bKUDYnEqY8XPPbB48h1uIwLnP9iiEfuSl20CA==", - "funding": [ - { - "type": "individual", - "url": "https://locize.com" - }, - { - "type": "individual", - "url": "https://locize.com/i18next.html" - }, - { - "type": "individual", - "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" - } - ], - "dependencies": { - "@babel/runtime": "^7.23.2" - } - }, "node_modules/@metamask/sdk/node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -4119,22 +4091,22 @@ } }, "node_modules/@metamask/sdk/node_modules/react-native": { - "version": "0.74.3", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.74.3.tgz", - "integrity": "sha512-UFutCC6WEw6HkxlcpQ2BemKqi0JkwrgDchYB5Svi8Sp4Xwt4HA6LGEjNQgZ+3KM44bjyFRpofQym0uh0jACGng==", + "version": "0.74.5", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.74.5.tgz", + "integrity": "sha512-Bgg2WvxaGODukJMTZFTZBNMKVaROHLwSb8VAGEdrlvKwfb1hHg/3aXTUICYk7dwgAnb+INbGMwnF8yeAgIUmqw==", "peer": true, "dependencies": { "@jest/create-cache-key-function": "^29.6.3", "@react-native-community/cli": "13.6.9", "@react-native-community/cli-platform-android": "13.6.9", "@react-native-community/cli-platform-ios": "13.6.9", - "@react-native/assets-registry": "0.74.85", - "@react-native/codegen": "0.74.85", - "@react-native/community-cli-plugin": "0.74.85", - "@react-native/gradle-plugin": "0.74.85", - "@react-native/js-polyfills": "0.74.85", - "@react-native/normalize-colors": "0.74.85", - "@react-native/virtualized-lists": "0.74.85", + "@react-native/assets-registry": "0.74.87", + "@react-native/codegen": "0.74.87", + "@react-native/community-cli-plugin": "0.74.87", + "@react-native/gradle-plugin": "0.74.87", + "@react-native/js-polyfills": "0.74.87", + "@react-native/normalize-colors": "0.74.87", + "@react-native/virtualized-lists": "0.74.87", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", @@ -4192,9 +4164,9 @@ } }, "node_modules/@metamask/sdk/node_modules/react-native/node_modules/@react-native/virtualized-lists": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.74.85.tgz", - "integrity": "sha512-jx2Zw0qlZteoQ+0KxRc7s4drsljLBEP534FaNZ950e9+CN9nVkLsV6rigcTjDR8wjKMSBWhKf0C0C3egYz7Ehg==", + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.74.87.tgz", + "integrity": "sha512-lsGxoFMb0lyK/MiplNKJpD+A1EoEUumkLrCjH4Ht+ZlG8S0BfCxmskLZ6qXn3BiDSkLjfjI/qyZ3pnxNBvkXpQ==", "peer": true, "dependencies": { "invariant": "^2.2.4", @@ -4364,9 +4336,9 @@ } }, "node_modules/@metamask/utils/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { "semver": "bin/semver.js" }, @@ -4451,17 +4423,6 @@ "tslib": "^2.3.1" } }, - "node_modules/@ndelangen/get-tarball": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@ndelangen/get-tarball/-/get-tarball-3.0.9.tgz", - "integrity": "sha512-9JKTEik4vq+yGosHYhZ1tiH/3WpUS0Nh0kej4Agndhox8pAdWhEx5knFVRcb/ya9knCRCs1rPxNrSXTDdfVqpA==", - "dev": true, - "dependencies": { - "gunzip-maybe": "^1.4.2", - "pump": "^3.0.0", - "tar-fs": "^2.1.1" - } - }, "node_modules/@next/env": { "version": "14.2.3", "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.3.tgz", @@ -4476,70 +4437,6 @@ "glob": "10.3.10" } }, - "node_modules/@next/eslint-plugin-next/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@next/eslint-plugin-next/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@next/eslint-plugin-next/node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/@next/eslint-plugin-next/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@next/swc-darwin-arm64": { "version": "14.2.3", "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz", @@ -5026,12 +4923,9 @@ } }, "node_modules/@parcel/watcher/node_modules/node-addon-api": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", - "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", - "engines": { - "node": "^16 || ^18 || >= 20" - } + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==" }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", @@ -5260,42 +5154,6 @@ } } }, - "node_modules/@radix-ui/react-dialog": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.1.tgz", - "integrity": "sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==", - "dev": true, - "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.0", - "@radix-ui/react-focus-guards": "1.1.0", - "@radix-ui/react-focus-scope": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-portal": "1.1.1", - "@radix-ui/react-presence": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.7" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-direction": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", @@ -5782,6 +5640,41 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@react-native-community/cli-clean/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "peer": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-clean/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@react-native-community/cli-clean/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -5791,6 +5684,15 @@ "node": ">=8" } }, + "node_modules/@react-native-community/cli-clean/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "peer": true, + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/@react-native-community/cli-clean/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6015,6 +5917,41 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@react-native-community/cli-doctor/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "peer": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-doctor/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@react-native-community/cli-doctor/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -6024,10 +5961,19 @@ "node": ">=8" } }, + "node_modules/@react-native-community/cli-doctor/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "peer": true, + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/@react-native-community/cli-doctor/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "peer": true, "bin": { "semver": "bin/semver.js" @@ -6061,9 +6007,9 @@ } }, "node_modules/@react-native-community/cli-doctor/node_modules/yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "peer": true, "bin": { "yaml": "bin.mjs" @@ -6181,6 +6127,41 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@react-native-community/cli-platform-android/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "peer": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-platform-android/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@react-native-community/cli-platform-android/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -6190,6 +6171,15 @@ "node": ">=8" } }, + "node_modules/@react-native-community/cli-platform-android/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "peer": true, + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/@react-native-community/cli-platform-android/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6247,15 +6237,59 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@react-native-community/cli-platform-apple/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/@react-native-community/cli-platform-apple/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "peer": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "peer": true, "engines": { "node": ">=8" } }, + "node_modules/@react-native-community/cli-platform-apple/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "peer": true, + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/@react-native-community/cli-platform-apple/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6445,6 +6479,41 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@react-native-community/cli-tools/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "peer": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native-community/cli-tools/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@react-native-community/cli-tools/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -6454,6 +6523,15 @@ "node": ">=8" } }, + "node_modules/@react-native-community/cli-tools/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "peer": true, + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/@react-native-community/cli-tools/node_modules/is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", @@ -6488,9 +6566,9 @@ } }, "node_modules/@react-native-community/cli-tools/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "peer": true, "bin": { "semver": "bin/semver.js" @@ -6560,6 +6638,29 @@ "node": "^12.20.0 || >=14" } }, + "node_modules/@react-native-community/cli/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "peer": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, "node_modules/@react-native-community/cli/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -6587,6 +6688,18 @@ "node": ">=6 <7 || >=8" } }, + "node_modules/@react-native-community/cli/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@react-native-community/cli/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -6596,6 +6709,15 @@ "node": ">=8" } }, + "node_modules/@react-native-community/cli/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "peer": true, + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/@react-native-community/cli/node_modules/jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", @@ -6645,9 +6767,9 @@ } }, "node_modules/@react-native-community/cli/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "peer": true, "bin": { "semver": "bin/semver.js" @@ -6678,30 +6800,30 @@ } }, "node_modules/@react-native/assets-registry": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.74.85.tgz", - "integrity": "sha512-59YmIQxfGDw4aP9S/nAM+sjSFdW8fUP6fsqczCcXgL2YVEjyER9XCaUT0J1K+PdHep8pi05KUgIKUds8P3jbmA==", + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.74.87.tgz", + "integrity": "sha512-1XmRhqQchN+pXPKEKYdpJlwESxVomJOxtEnIkbo7GAlaN2sym84fHEGDXAjLilih5GVPpcpSmFzTy8jx3LtaFg==", "peer": true, "engines": { "node": ">=18" } }, "node_modules/@react-native/babel-plugin-codegen": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.85.tgz", - "integrity": "sha512-48TSDclRB5OMXiImiJkLxyCfRyLsqkCgI8buugCZzvXcYslfV7gCvcyFyQldtcOmerV+CK4RAj7QS4hmB5Mr8Q==", + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.87.tgz", + "integrity": "sha512-+vJYpMnENFrwtgvDfUj+CtVJRJuUnzAUYT0/Pb68Sq9RfcZ5xdcCuUgyf7JO+akW2VTBoJY427wkcxU30qrWWw==", "peer": true, "dependencies": { - "@react-native/codegen": "0.74.85" + "@react-native/codegen": "0.74.87" }, "engines": { "node": ">=18" } }, "node_modules/@react-native/babel-preset": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.85.tgz", - "integrity": "sha512-yMHUlN8INbK5BBwiBuQMftdWkpm1IgCsoJTKcGD2OpSgZhwwm8RUSvGhdRMzB2w7bsqqBmaEMleGtW6aCR7B9w==", + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.87.tgz", + "integrity": "sha512-hyKpfqzN2nxZmYYJ0tQIHG99FQO0OWXp/gVggAfEUgiT+yNKas1C60LuofUsK7cd+2o9jrpqgqW4WzEDZoBlTg==", "peer": true, "dependencies": { "@babel/core": "^7.20.0", @@ -6744,7 +6866,7 @@ "@babel/plugin-transform-typescript": "^7.5.0", "@babel/plugin-transform-unicode-regex": "^7.0.0", "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.74.85", + "@react-native/babel-plugin-codegen": "0.74.87", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" }, @@ -6756,9 +6878,9 @@ } }, "node_modules/@react-native/codegen": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.85.tgz", - "integrity": "sha512-N7QwoS4Hq/uQmoH83Ewedy6D0M7xbQsOU3OMcQf0eY3ltQ7S2hd9/R4UTalQWRn1OUJfXR6OG12QJ4FStKgV6Q==", + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.87.tgz", + "integrity": "sha512-GMSYDiD+86zLKgMMgz9z0k6FxmRn+z6cimYZKkucW4soGbxWsbjUAZoZ56sJwt2FJ3XVRgXCrnOCgXoH/Bkhcg==", "peer": true, "dependencies": { "@babel/parser": "^7.20.0", @@ -6931,15 +7053,15 @@ } }, "node_modules/@react-native/community-cli-plugin": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.85.tgz", - "integrity": "sha512-ODzND33eA2owAY3g9jgCdqB+BjAh8qJ7dvmSotXgrgDYr3MJMpd8gvHTIPe2fg4Kab+wk8uipRhrE0i0RYMwtQ==", + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.87.tgz", + "integrity": "sha512-EgJG9lSr8x3X67dHQKQvU6EkO+3ksVlJHYIVv6U/AmW9dN80BEFxgYbSJ7icXS4wri7m4kHdgeq2PQ7/3vvrTQ==", "peer": true, "dependencies": { "@react-native-community/cli-server-api": "13.6.9", "@react-native-community/cli-tools": "13.6.9", - "@react-native/dev-middleware": "0.74.85", - "@react-native/metro-babel-transformer": "0.74.85", + "@react-native/dev-middleware": "0.74.87", + "@react-native/metro-babel-transformer": "0.74.87", "chalk": "^4.0.0", "execa": "^5.1.1", "metro": "^0.80.3", @@ -6984,6 +7106,41 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@react-native/community-cli-plugin/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "peer": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@react-native/community-cli-plugin/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@react-native/community-cli-plugin/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -6993,6 +7150,15 @@ "node": ">=8" } }, + "node_modules/@react-native/community-cli-plugin/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "peer": true, + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/@react-native/community-cli-plugin/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -7006,22 +7172,22 @@ } }, "node_modules/@react-native/debugger-frontend": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.74.85.tgz", - "integrity": "sha512-gUIhhpsYLUTYWlWw4vGztyHaX/kNlgVspSvKe2XaPA7o3jYKUoNLc3Ov7u70u/MBWfKdcEffWq44eSe3j3s5JQ==", + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.74.87.tgz", + "integrity": "sha512-MN95DJLYTv4EqJc+9JajA3AJZSBYJz2QEJ3uWlHrOky2vKrbbRVaW1ityTmaZa2OXIvNc6CZwSRSE7xCoHbXhQ==", "peer": true, "engines": { "node": ">=18" } }, "node_modules/@react-native/dev-middleware": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.74.85.tgz", - "integrity": "sha512-BRmgCK5vnMmHaKRO+h8PKJmHHH3E6JFuerrcfE3wG2eZ1bcSr+QTu8DAlpxsDWvJvHpCi8tRJGauxd+Ssj/c7w==", + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.74.87.tgz", + "integrity": "sha512-7TmZ3hTHwooYgIHqc/z87BMe1ryrIqAUi+AF7vsD+EHCGxHFdMjSpf1BZ2SUPXuLnF2cTiTfV2RwhbPzx0tYIA==", "peer": true, "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.74.85", + "@react-native/debugger-frontend": "0.74.87", "@rnx-kit/chromium-edge-launcher": "^1.0.0", "chrome-launcher": "^0.15.2", "connect": "^3.6.5", @@ -7088,31 +7254,31 @@ } }, "node_modules/@react-native/gradle-plugin": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.74.85.tgz", - "integrity": "sha512-1VQSLukJzaVMn1MYcs8Weo1nUW8xCas2XU1KuoV7OJPk6xPnEBFJmapmEGP5mWeEy7kcTXJmddEgy1wwW0tcig==", + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.74.87.tgz", + "integrity": "sha512-T+VX0N1qP+U9V4oAtn7FTX7pfsoVkd1ocyw9swYXgJqU2fK7hC9famW7b3s3ZiufPGPr1VPJe2TVGtSopBjL6A==", "peer": true, "engines": { "node": ">=18" } }, "node_modules/@react-native/js-polyfills": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.74.85.tgz", - "integrity": "sha512-gp4Rg9le3lVZeW7Cie6qLfekvRKZuhJ3LKgi1SFB4N154z1wIclypAJXVXgWBsy8JKJfTwRI+sffC4qZDlvzrg==", + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.74.87.tgz", + "integrity": "sha512-M5Evdn76CuVEF0GsaXiGi95CBZ4IWubHqwXxV9vG9CC9kq0PSkoM2Pn7Lx7dgyp4vT7ccJ8a3IwHbe+5KJRnpw==", "peer": true, "engines": { "node": ">=18" } }, "node_modules/@react-native/metro-babel-transformer": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.85.tgz", - "integrity": "sha512-JIrXqEwhTvWPtGArgMptIPGstMdXQIkwSjKVYt+7VC4a9Pw1GurIWanIJheEW6ZuCVvTc0VZkwglFz9JVjzDjA==", + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.87.tgz", + "integrity": "sha512-UsJCO24sNax2NSPBmV1zLEVVNkS88kcgAiYrZHtYSwSjpl4WZ656tIeedBfiySdJ94Hr3kQmBYLipV5zk0NI1A==", "peer": true, "dependencies": { "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.74.85", + "@react-native/babel-preset": "0.74.87", "hermes-parser": "0.19.1", "nullthrows": "^1.1.1" }, @@ -7124,9 +7290,9 @@ } }, "node_modules/@react-native/normalize-colors": { - "version": "0.74.85", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.85.tgz", - "integrity": "sha512-pcE4i0X7y3hsAE0SpIl7t6dUc0B0NZLd1yv7ssm4FrLhWG+CGyIq4eFDXpmPU1XHmL5PPySxTAjEMiwv6tAmOw==", + "version": "0.74.87", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.87.tgz", + "integrity": "sha512-Xh7Nyk/MPefkb0Itl5Z+3oOobeG9lfLb7ZOY2DKpFnoCE1TzBmib9vMNdFaLdSxLIP+Ec6icgKtdzYg8QUPYzA==", "peer": true }, "node_modules/@rnx-kit/chromium-edge-launcher": { @@ -7147,9 +7313,9 @@ } }, "node_modules/@rnx-kit/chromium-edge-launcher/node_modules/@types/node": { - "version": "18.19.39", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.39.tgz", - "integrity": "sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==", + "version": "18.19.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.43.tgz", + "integrity": "sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==", "peer": true, "dependencies": { "undici-types": "~5.26.4" @@ -7168,124 +7334,33 @@ } }, "node_modules/@rushstack/eslint-patch": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz", - "integrity": "sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==", + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", + "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", "dev": true }, "node_modules/@safe-global/safe-apps-provider": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.1.tgz", - "integrity": "sha512-V4a05A3EgJcriqtDoJklDz1BOinWhC6P0hjUSxshA4KOZM7rGPCTto/usXs09zr1vvL28evl/NldSTv97j2bmg==", + "version": "0.18.3", + "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.3.tgz", + "integrity": "sha512-f/0cNv3S4v7p8rowAjj0hDCg8Q8P/wBjp5twkNWeBdvd0RDr7BuRBPPk74LCqmjQ82P+1ltLlkmVFSmxTIT7XQ==", "dependencies": { - "@safe-global/safe-apps-sdk": "^8.1.0", + "@safe-global/safe-apps-sdk": "^9.1.0", "events": "^3.3.0" } }, "node_modules/@safe-global/safe-apps-sdk": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-sdk/-/safe-apps-sdk-8.1.0.tgz", - "integrity": "sha512-XJbEPuaVc7b9n23MqlF6c+ToYIS3f7P2Sel8f3cSBQ9WORE4xrSuvhMpK9fDSFqJ7by/brc+rmJR/5HViRr0/w==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-sdk/-/safe-apps-sdk-9.1.0.tgz", + "integrity": "sha512-N5p/ulfnnA2Pi2M3YeWjULeWbjo7ei22JwU/IXnhoHzKq3pYCN6ynL9mJBOlvDVv892EgLPCWCOwQk/uBT2v0Q==", "dependencies": { "@safe-global/safe-gateway-typescript-sdk": "^3.5.3", - "viem": "^1.0.0" - } - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/@adraffy/ens-normalize": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz", - "integrity": "sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==" - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/abitype": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-0.9.8.tgz", - "integrity": "sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wagmi-dev" - } - ], - "peerDependencies": { - "typescript": ">=5.0.4", - "zod": "^3 >=3.19.1" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "zod": { - "optional": true - } - } - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/isows": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.3.tgz", - "integrity": "sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wagmi-dev" - } - ], - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/viem": { - "version": "1.21.4", - "resolved": "https://registry.npmjs.org/viem/-/viem-1.21.4.tgz", - "integrity": "sha512-BNVYdSaUjeS2zKQgPs+49e5JKocfo60Ib2yiXOWBT6LuVxY1I/6fFX3waEtpXvL1Xn4qu+BVitVtMh9lyThyhQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], - "dependencies": { - "@adraffy/ens-normalize": "1.10.0", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@scure/bip32": "1.3.2", - "@scure/bip39": "1.2.1", - "abitype": "0.9.8", - "isows": "1.0.3", - "ws": "8.13.0" - }, - "peerDependencies": { - "typescript": ">=5.0.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@safe-global/safe-apps-sdk/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "viem": "^2.1.1" } }, "node_modules/@safe-global/safe-gateway-typescript-sdk": { - "version": "3.21.8", - "resolved": "https://registry.npmjs.org/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.21.8.tgz", - "integrity": "sha512-n/fYgiqbuzAQuK0bgny6GBYvb585ETxKURa5Kb9hBV3fa47SvJo/dpGq275fJUn0e3Hh1YqETiLGj4HVJjHiTA==", + "version": "3.22.1", + "resolved": "https://registry.npmjs.org/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.22.1.tgz", + "integrity": "sha512-YApSpx+3h6uejrJVh8PSqXRRAwmsWz8PZERObMGJNC9NPoMhZG/Rvqb2UWmVLrjFh880rqutsB+GrTmJP351PA==", "engines": { "node": ">=16" } @@ -7299,37 +7374,70 @@ } }, "node_modules/@scure/bip32": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.2.tgz", - "integrity": "sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", "dependencies": { - "@noble/curves": "~1.2.0", - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.2" + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@scure/bip39": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", - "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", + "node_modules/@scure/bip32/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", "dependencies": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" + "@noble/hashes": "1.4.0" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@sideway/address": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", - "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } + "node_modules/@scure/bip32/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } }, "node_modules/@sideway/formula": { "version": "3.0.1", @@ -7367,6 +7475,15 @@ "type-detect": "4.0.8" } }, + "node_modules/@sinonjs/commons/node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/@sinonjs/fake-timers": { "version": "10.3.0", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", @@ -7528,12 +7645,11 @@ } }, "node_modules/@storybook/addon-actions": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.1.10.tgz", - "integrity": "sha512-1MjncuynvkT3rJtrkWPHLo92Pfno+LUWtaHiNDt9nXYowclTN2cT4a4gNDh6eKkB9dITHxkD7/4mxjHpFUvyrA==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.2.7.tgz", + "integrity": "sha512-wDnMGGmaogAForkNncfCx8BEDiwxeK8zC0lj8HkRPUuH6vTr81U5RIb12Wa2TnnNKLKMFAtyPSnofHf3OAfzZQ==", "dev": true, "dependencies": { - "@storybook/core-events": "8.1.10", "@storybook/global": "^5.0.0", "@types/uuid": "^9.0.1", "dequal": "^2.0.2", @@ -7543,12 +7659,15 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.7" } }, "node_modules/@storybook/addon-backgrounds": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.1.10.tgz", - "integrity": "sha512-nX9Hmcq5U/13S2ETcjGaLqfDcaSKTNPD3RBzWUoNQuZB/bB1q4qLLncQnQfaa6uruP9k6GIFZvtXeJAs9r0POw==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.2.7.tgz", + "integrity": "sha512-kEL3kzYB0qNfpznchlGBnQm4iydyzdTYDPlCFsKUAxfUmJFnpz2H52Sl5lB+qJC/4OREp1Usltag7cUjeuyzMQ==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -7558,15 +7677,17 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.7" } }, "node_modules/@storybook/addon-controls": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.1.10.tgz", - "integrity": "sha512-98uLezKv6W/1byJL+Zri5kA1Cfi+DUBsbdjz7fFJl8xMtAGwuv9cnOueQl0ouDhqqwnZ4LWHYQsSsPPMz1Lmkg==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.2.7.tgz", + "integrity": "sha512-u3MruX0Zh6l1iNkoJdXwx+zPVqpDKypVrC0YdN3qQ3+mtTwqt35rgetYqtOkDnJ8mXKxo8A5giERKPIyzH9iBA==", "dev": true, "dependencies": { - "@storybook/blocks": "8.1.10", "dequal": "^2.0.2", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" @@ -7574,27 +7695,23 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.7" } }, "node_modules/@storybook/addon-docs": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.1.10.tgz", - "integrity": "sha512-jzmIeCoykiHg/KLPrYEDtXO/+dcQaEOqyJHS77eTzAO2iSXJlE+yva5Uwc8apG7UxDVa4Ycc1lPwMzB5GaHsGQ==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.2.7.tgz", + "integrity": "sha512-icLbvUWp95WUxq2sY+0xgJ49MaQ2HqtWY9RUJUZswJ/ZPJTCCpIoa6HP/NOB9A90Oec9n8sW+1CdDL4CxfxfZg==", "dev": true, "dependencies": { "@babel/core": "^7.24.4", "@mdx-js/react": "^3.0.0", - "@storybook/blocks": "8.1.10", - "@storybook/client-logger": "8.1.10", - "@storybook/components": "8.1.10", - "@storybook/csf-plugin": "8.1.10", - "@storybook/csf-tools": "8.1.10", + "@storybook/blocks": "8.2.7", + "@storybook/csf-plugin": "8.2.7", "@storybook/global": "^5.0.0", - "@storybook/node-logger": "8.1.10", - "@storybook/preview-api": "8.1.10", - "@storybook/react-dom-shim": "8.1.10", - "@storybook/theming": "8.1.10", - "@storybook/types": "8.1.10", + "@storybook/react-dom-shim": "8.2.7", "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", "fs-extra": "^11.1.0", "react": "^16.8.0 || ^17.0.0 || ^18.0.0", @@ -7606,38 +7723,40 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.7" } }, "node_modules/@storybook/addon-essentials": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.1.10.tgz", - "integrity": "sha512-xgAXdl/MaKWmwqJJpw4z1YaD1V/r74VHHLqY3Z4YaU9DmlApkCa+FmZSS9QVAf7g6JNUcD1Dbtw5j62uNn+YyA==", - "dev": true, - "dependencies": { - "@storybook/addon-actions": "8.1.10", - "@storybook/addon-backgrounds": "8.1.10", - "@storybook/addon-controls": "8.1.10", - "@storybook/addon-docs": "8.1.10", - "@storybook/addon-highlight": "8.1.10", - "@storybook/addon-measure": "8.1.10", - "@storybook/addon-outline": "8.1.10", - "@storybook/addon-toolbars": "8.1.10", - "@storybook/addon-viewport": "8.1.10", - "@storybook/core-common": "8.1.10", - "@storybook/manager-api": "8.1.10", - "@storybook/node-logger": "8.1.10", - "@storybook/preview-api": "8.1.10", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.2.7.tgz", + "integrity": "sha512-5qe7La9B2Z4Y9Fet3C35y8zOZwKgrqduNk8yAUmPRAOwopdo8SGKYpnFTnAtTfTCVk6Y+AZlRfQq0yLUk0Wl3g==", + "dev": true, + "dependencies": { + "@storybook/addon-actions": "8.2.7", + "@storybook/addon-backgrounds": "8.2.7", + "@storybook/addon-controls": "8.2.7", + "@storybook/addon-docs": "8.2.7", + "@storybook/addon-highlight": "8.2.7", + "@storybook/addon-measure": "8.2.7", + "@storybook/addon-outline": "8.2.7", + "@storybook/addon-toolbars": "8.2.7", + "@storybook/addon-viewport": "8.2.7", "ts-dedent": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.7" } }, "node_modules/@storybook/addon-highlight": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.1.10.tgz", - "integrity": "sha512-s9QKGtU6WGB/+CggNWg940NIi+u0tcxpPxqg/ltg3EOHr8J0NAZur6mibs3Z4Q5CXkAuNdWrvopLu+/27i1rQQ==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.2.7.tgz", + "integrity": "sha512-YhiLtyJ3NBNV3FQoQo8RFjj59QGSmmeSwRvCjoac6No2DY5vkMW5a8mW6ORr6QYd7ratRNtd3AsPqksZIehRwQ==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -7645,33 +7764,38 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.7" } }, "node_modules/@storybook/addon-interactions": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.1.10.tgz", - "integrity": "sha512-GGU66TxYv6Bis10mmlgMhLOyai1am1amKVvX7ML8XYfsi6lA9zCnfQSVXulYLfjfzyIR6Ld8Kxe5awvjucPxSw==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.2.7.tgz", + "integrity": "sha512-WZXlwpBNLE483uKuR70A7nm+ZbcZNEmuVz/J1/u7dbi0BUWzmJUa9YIgVeQ/1KTwW8KTkxvB0TuUUH3aA4ZKlA==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "8.1.10", - "@storybook/test": "8.1.10", - "@storybook/types": "8.1.10", + "@storybook/instrumenter": "8.2.7", + "@storybook/test": "8.2.7", "polished": "^4.2.2", "ts-dedent": "^2.2.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.7" } }, "node_modules/@storybook/addon-links": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-8.1.10.tgz", - "integrity": "sha512-SxCuK7k7A0/qIPzV68u25qfye3Fb0PkC1izlRbt7u64wIUIxGzgfjM3dFRWK2VaJzCsEQWSmIdv7YHi7Wv5y3w==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-8.2.7.tgz", + "integrity": "sha512-BJdR+vdj7S6Rtx8XqBNQzLsRGH/FYHJ6B6BPWGp0awVx0jNWJnxepINQov8i+GAddUVQGCNG+r4LI3QSD3tNAA==", "dev": true, "dependencies": { - "@storybook/csf": "^0.1.7", + "@storybook/csf": "0.1.11", "@storybook/global": "^5.0.0", "ts-dedent": "^2.0.0" }, @@ -7680,7 +7804,8 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.2.7" }, "peerDependenciesMeta": { "react": { @@ -7689,9 +7814,9 @@ } }, "node_modules/@storybook/addon-measure": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.1.10.tgz", - "integrity": "sha512-akhdg3WBOBvDsolzSSvW4TIdZLMVlL9DS6rpZvhydXeX8pG0sjb+sON6VUL4h8Gs7qa8QumauXCr+Y4q1FhZhw==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.2.7.tgz", + "integrity": "sha512-cS5njwlzrgrUjigUKjhbgJMT8bhPmVDK3FwrQqGhw6xYP4cd9/YBJ4RLNPWhOgGJ+EUTz7eFZ/Rkli5mNrhYcQ==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -7700,12 +7825,15 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.7" } }, "node_modules/@storybook/addon-onboarding": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-onboarding/-/addon-onboarding-8.1.10.tgz", - "integrity": "sha512-DVIt2YaBFY7JT4OwjP7+2paz6a1juqDuGwTjS2XIbH00Yo58l+DYuWZgFx4x3J7v0Bw/CdXwHcgfKXbsSvBf2Q==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-onboarding/-/addon-onboarding-8.2.7.tgz", + "integrity": "sha512-YgpQY0uhYRi+3vny2BjnFlY19ga9/GGZlcFTfaf2wCO7KhjXdES3bp4VTtdNkAwbVaXYY+b33ERd4x1UQ7jSkA==", "dev": true, "dependencies": { "react-confetti": "^6.1.0" @@ -7713,12 +7841,15 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.7" } }, "node_modules/@storybook/addon-outline": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.1.10.tgz", - "integrity": "sha512-Edn5TWpV1DcumOjx0qG9bBKja6vz210ip7O47JbRDu7IDR8lguaM2X9xbmhXhBQq4fmqvobZmfRnrSeCtSYeyQ==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.2.7.tgz", + "integrity": "sha512-oFSo3o5eEUSsdGUSPV22pGoJ5lL0PGcqjcee2hyl0Rc60ovsnB1BEGOoaGk7/bmkywMxRZm8D6j85V8HftA/kg==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -7727,22 +7858,28 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.7" } }, "node_modules/@storybook/addon-toolbars": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.1.10.tgz", - "integrity": "sha512-5bRcCWrhaTX5Y91EWmHilPZ7kZaneaY414Gn5a6gsaNgaVPkSx9KD9j8M9DyXJ4yQNs265TiPWQqWrPB3Q2VgA==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.2.7.tgz", + "integrity": "sha512-lEq0/uiogQSxS8pM5AqIexPiG2mudHUxgBiVWSspbTQDUbGBUxB64VYeYERat50N/GyS2iCymlfSkC+OUXaYLQ==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.7" } }, "node_modules/@storybook/addon-viewport": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.1.10.tgz", - "integrity": "sha512-rJpyAwTVQa+6yqjdMDeqNKoW5aPoSzBAtMywtNMP5lHwF6NpJUvm67c/ox0//d5dPPPjlJDz2QC2COWqjviQyw==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.2.7.tgz", + "integrity": "sha512-d4+klwM/duTukNED1WCeBgIMqL5Jvm/iUs2rUc5HI1FGMEDYnoLVR2ztjivQs+6f1cJWuGwWZD/toB5pKHuR/A==", "dev": true, "dependencies": { "memoizerific": "^1.11.3" @@ -7750,36 +7887,29 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.7" } }, "node_modules/@storybook/blocks": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.1.10.tgz", - "integrity": "sha512-8ZGgLIUBdSafcyaKR5Zs0CFisFCPoxZBVt3GMUCZtN+G17YhEg4+OnZs5aMZknfnh28BUnZS2STjWTGStAE5Rw==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.2.7.tgz", + "integrity": "sha512-lZB4EzmY4ftgubkf7hmkALEhmfMhRkDRD5QjrgTZLRpdVXPzFUyljgLlTBhv34YTN+ZLYK618/4uSVJBpgoKeQ==", "dev": true, "dependencies": { - "@storybook/channels": "8.1.10", - "@storybook/client-logger": "8.1.10", - "@storybook/components": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/csf": "^0.1.7", - "@storybook/docs-tools": "8.1.10", + "@storybook/csf": "0.1.11", "@storybook/global": "^5.0.0", "@storybook/icons": "^1.2.5", - "@storybook/manager-api": "8.1.10", - "@storybook/preview-api": "8.1.10", - "@storybook/theming": "8.1.10", - "@storybook/types": "8.1.10", "@types/lodash": "^4.14.167", "color-convert": "^2.0.1", "dequal": "^2.0.2", "lodash": "^4.17.21", - "markdown-to-jsx": "7.3.2", + "markdown-to-jsx": "^7.4.5", "memoizerific": "^1.11.3", "polished": "^4.2.2", "react-colorful": "^5.1.2", "telejson": "^7.2.0", - "tocbot": "^4.20.1", "ts-dedent": "^2.0.0", "util-deprecate": "^1.0.2" }, @@ -7789,7 +7919,8 @@ }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.2.7" }, "peerDependenciesMeta": { "react": { @@ -7800,46 +7931,13 @@ } } }, - "node_modules/@storybook/builder-manager": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-8.1.10.tgz", - "integrity": "sha512-dhg54zpaglR9XKNAiwMqm5/IONMCEG/hO/iTfNHJI1rAGeWhvM71cmhF+VlKUcjpTlIfHe7J19+TL+sWQJNgtg==", + "node_modules/@storybook/builder-webpack5": { + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-8.2.7.tgz", + "integrity": "sha512-3SWN0X6qB14jnCrpMWd5tCshxzLEcRK5Sw/vBIW9HUsUx9OVMPxWp+Ti6NZHqj6FfHVbJb+qOwHl493JAJaFdg==", "dev": true, "dependencies": { - "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "8.1.10", - "@storybook/manager": "8.1.10", - "@storybook/node-logger": "8.1.10", - "@types/ejs": "^3.1.1", - "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", - "browser-assert": "^1.2.1", - "ejs": "^3.1.10", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0", - "esbuild-plugin-alias": "^0.2.1", - "express": "^4.17.3", - "fs-extra": "^11.1.0", - "process": "^0.11.10", - "util": "^0.12.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/builder-webpack5": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-8.1.10.tgz", - "integrity": "sha512-Ume7NN9s7JYAKkVsbw1rDE/T40E4TnUpVvE0wPtSlAwcVh3IJ62MdbLyOmULhVTliKtKlQpxTTAedXtFCLUxiw==", - "dev": true, - "dependencies": { - "@storybook/channels": "8.1.10", - "@storybook/client-logger": "8.1.10", - "@storybook/core-common": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/core-webpack": "8.1.10", - "@storybook/node-logger": "8.1.10", - "@storybook/preview": "8.1.10", - "@storybook/preview-api": "8.1.10", + "@storybook/core-webpack": "8.2.7", "@types/node": "^18.0.0", "@types/semver": "^7.3.4", "browser-assert": "^1.2.1", @@ -7848,7 +7946,7 @@ "constants-browserify": "^1.0.0", "css-loader": "^6.7.1", "es-module-lexer": "^1.5.0", - "express": "^4.17.3", + "express": "^4.19.2", "fork-ts-checker-webpack-plugin": "^8.0.0", "fs-extra": "^11.1.0", "html-webpack-plugin": "^5.5.0", @@ -7865,12 +7963,15 @@ "webpack": "5", "webpack-dev-middleware": "^6.1.2", "webpack-hot-middleware": "^2.25.1", - "webpack-virtual-modules": "^0.5.0" + "webpack-virtual-modules": "^0.6.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, + "peerDependencies": { + "storybook": "^8.2.7" + }, "peerDependenciesMeta": { "typescript": { "optional": true @@ -7878,18 +7979,18 @@ } }, "node_modules/@storybook/builder-webpack5/node_modules/@types/node": { - "version": "18.19.39", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.39.tgz", - "integrity": "sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==", + "version": "18.19.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.43.tgz", + "integrity": "sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==", "dev": true, "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@storybook/builder-webpack5/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -7898,110 +7999,35 @@ "node": ">=10" } }, - "node_modules/@storybook/channels": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.1.10.tgz", - "integrity": "sha512-CxZE4XrQoe+F+S2mo8Z9HTvFZKfKHIIiwYfoXKCryVp2U/z7ZKrely2PbfxWsrQvF3H0+oegfYYhYRHRiM21Zw==", - "dev": true, - "dependencies": { - "@storybook/client-logger": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/global": "^5.0.0", - "telejson": "^7.2.0", - "tiny-invariant": "^1.3.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/cli": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-8.1.10.tgz", - "integrity": "sha512-7Fm2Qgk33sHayZ0QABqwe1Jto4yyVRVW6kTrSeP5IuLh+mn244RgxBvWtGCyL1EcWDFI7PYUFa0HxgTCq7C+OA==", + "node_modules/@storybook/codemod": { + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-8.2.7.tgz", + "integrity": "sha512-D2sJcZMUO6Y7DNja4LvdT6uBee4bZbQKB904kEG9Kpr0XF20IHAP9BbkfG8HEFaS0GbJwvGvE03Sg+S1y+vO6Q==", "dev": true, "dependencies": { "@babel/core": "^7.24.4", + "@babel/preset-env": "^7.24.4", "@babel/types": "^7.24.0", - "@ndelangen/get-tarball": "^3.0.7", - "@storybook/codemod": "8.1.10", - "@storybook/core-common": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/core-server": "8.1.10", - "@storybook/csf-tools": "8.1.10", - "@storybook/node-logger": "8.1.10", - "@storybook/telemetry": "8.1.10", - "@storybook/types": "8.1.10", - "@types/semver": "^7.3.4", - "@yarnpkg/fslib": "2.10.3", - "@yarnpkg/libzip": "2.3.0", - "chalk": "^4.1.0", - "commander": "^6.2.1", + "@storybook/core": "8.2.7", + "@storybook/csf": "0.1.11", + "@types/cross-spawn": "^6.0.2", "cross-spawn": "^7.0.3", - "detect-indent": "^6.1.0", - "envinfo": "^7.7.3", - "execa": "^5.0.0", - "find-up": "^5.0.0", - "fs-extra": "^11.1.0", - "get-npm-tarball-url": "^2.0.3", - "giget": "^1.0.0", "globby": "^14.0.1", "jscodeshift": "^0.15.1", - "leven": "^3.1.0", - "ora": "^5.4.1", + "lodash": "^4.17.21", "prettier": "^3.1.1", - "prompts": "^2.4.0", - "read-pkg-up": "^7.0.1", - "semver": "^7.3.7", - "strip-json-comments": "^3.0.1", - "tempy": "^3.1.0", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0" - }, - "bin": { - "getstorybook": "bin/index.js", - "sb": "bin/index.js" + "recast": "^0.23.5", + "tiny-invariant": "^1.3.1" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/cli/node_modules/globby": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", - "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", + "node_modules/@storybook/codemod/node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", @@ -8018,16 +8044,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/cli/node_modules/path-type": { + "node_modules/@storybook/codemod/node_modules/path-type": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", @@ -8039,19 +8056,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/cli/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@storybook/cli/node_modules/slash": { + "node_modules/@storybook/codemod/node_modules/slash": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", @@ -8063,523 +8068,100 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@storybook/cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@storybook/components": { + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.2.7.tgz", + "integrity": "sha512-FXhnoHl9S+tKSFc62iUG3EWplQP9ojGQaSMhqP4QTus6xmo53oSsPzuTPQilKVHkGxFQW8eGgKKsfHw3G2NT2g==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "storybook": "^8.2.7" } }, - "node_modules/@storybook/client-logger": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.1.10.tgz", - "integrity": "sha512-sVXCOo7jnlCgRPOcMlQGODAEt6ipPj+8xGkRUws0kie77qiDld1drLSB6R380dWc9lUrbv9E1GpxCd/Y4ZzSJQ==", + "node_modules/@storybook/core": { + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.2.7.tgz", + "integrity": "sha512-vgw5MYN9Bq2/ZsObCOEHbBHwi4RpbYCHPFtKkr4kTnWID++FCSiSVd7jY3xPvcNxWqCxOyH6dThpBi+SsB/ZAA==", "dev": true, "dependencies": { - "@storybook/global": "^5.0.0" + "@storybook/csf": "0.1.11", + "@types/express": "^4.17.21", + "@types/node": "^18.0.0", + "browser-assert": "^1.2.1", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0", + "esbuild-register": "^3.5.0", + "express": "^4.19.2", + "process": "^0.11.10", + "recast": "^0.23.5", + "util": "^0.12.4", + "ws": "^8.2.3" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/codemod": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-8.1.10.tgz", - "integrity": "sha512-HZ/vrseP/sHfbO2RZpImP5eeqOakJ0X31BIiD4uxDBIKGltMXhlPKHTI93O2YGR+vbB33otoTVRjE+ZpPmC6SA==", + "node_modules/@storybook/core-webpack": { + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/core-webpack/-/core-webpack-8.2.7.tgz", + "integrity": "sha512-eVtizQZdjPePjjPBfMw+74ha2yZw68AQZu5TK01Vetdjz1h+SSt+p/otWcJWPMGpZOg9p+n0krWvlcYHBsZsbA==", "dev": true, "dependencies": { - "@babel/core": "^7.24.4", - "@babel/preset-env": "^7.24.4", - "@babel/types": "^7.24.0", - "@storybook/csf": "^0.1.7", - "@storybook/csf-tools": "8.1.10", - "@storybook/node-logger": "8.1.10", - "@storybook/types": "8.1.10", - "@types/cross-spawn": "^6.0.2", - "cross-spawn": "^7.0.3", - "globby": "^14.0.1", - "jscodeshift": "^0.15.1", - "lodash": "^4.17.21", - "prettier": "^3.1.1", - "recast": "^0.23.5", - "tiny-invariant": "^1.3.1" + "@types/node": "^18.0.0", + "ts-dedent": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.7" } }, - "node_modules/@storybook/codemod/node_modules/globby": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", - "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", + "node_modules/@storybook/core-webpack/node_modules/@types/node": { + "version": "18.19.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.43.tgz", + "integrity": "sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==", "dev": true, "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "undici-types": "~5.26.4" } }, - "node_modules/@storybook/codemod/node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "node_modules/@storybook/core/node_modules/@types/node": { + "version": "18.19.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.43.tgz", + "integrity": "sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==", "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "undici-types": "~5.26.4" } }, - "node_modules/@storybook/codemod/node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "node_modules/@storybook/csf": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.11.tgz", + "integrity": "sha512-dHYFQH3mA+EtnCkHXzicbLgsvzYjcDJ1JWsogbItZogkPHgSJM/Wr71uMkcvw8v9mmCyP4NpXJuu6bPoVsOnzg==", "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "type-fest": "^2.19.0" } }, - "node_modules/@storybook/components": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.1.10.tgz", - "integrity": "sha512-fL2odC3Ct3NiFJEiGLmMNB3Tw3CdUDA/+va3Ka/JEhjaRhbsND2JgriHYmED8SnX9CCqwXoxl5QA8qwl+Oyolw==", + "node_modules/@storybook/csf-plugin": { + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.2.7.tgz", + "integrity": "sha512-rBdplL6xcVJcuq+uM0eidomMQ5BtAlVAejYrOTNiqBk/zVh5JSvchYzYG9n6Fo2PdKLLKdlZ874zhsVuNriNBQ==", "dev": true, "dependencies": { - "@radix-ui/react-dialog": "^1.0.5", - "@radix-ui/react-slot": "^1.0.2", - "@storybook/client-logger": "8.1.10", - "@storybook/csf": "^0.1.7", - "@storybook/global": "^5.0.0", - "@storybook/icons": "^1.2.5", - "@storybook/theming": "8.1.10", - "@storybook/types": "8.1.10", - "memoizerific": "^1.11.3", - "util-deprecate": "^1.0.2" + "unplugin": "^1.3.1" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" - } - }, - "node_modules/@storybook/core-common": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-8.1.10.tgz", - "integrity": "sha512-+0GhgDRQwUlXu1lY77NdLnVBVycCEW0DG7eu7rvLYYkTyNRxbdl2RWsQpjr/j4sxqT6u82l9/b+RWpmsl4MgMQ==", - "dev": true, - "dependencies": { - "@storybook/core-events": "8.1.10", - "@storybook/csf-tools": "8.1.10", - "@storybook/node-logger": "8.1.10", - "@storybook/types": "8.1.10", - "@yarnpkg/fslib": "2.10.3", - "@yarnpkg/libzip": "2.3.0", - "chalk": "^4.1.0", - "cross-spawn": "^7.0.3", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0", - "esbuild-register": "^3.5.0", - "execa": "^5.0.0", - "file-system-cache": "2.3.0", - "find-cache-dir": "^3.0.0", - "find-up": "^5.0.0", - "fs-extra": "^11.1.0", - "glob": "^10.0.0", - "handlebars": "^4.7.7", - "lazy-universal-dotenv": "^4.0.0", - "node-fetch": "^2.0.0", - "picomatch": "^2.3.0", - "pkg-dir": "^5.0.0", - "prettier-fallback": "npm:prettier@^3", - "pretty-hrtime": "^1.0.3", - "resolve-from": "^5.0.0", - "semver": "^7.3.7", - "tempy": "^3.1.0", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0", - "util": "^0.12.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "prettier": "^2 || ^3" - }, - "peerDependenciesMeta": { - "prettier": { - "optional": true - } - } - }, - "node_modules/@storybook/core-common/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/core-common/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/core-common/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-common/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@storybook/core-common/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-events": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.1.10.tgz", - "integrity": "sha512-aS4zsBVyJds74+rAW0IfTEjULDCQwXecVpQfv11B8/89/07s3bOPssGGoTtCTaN4pHbduywE6MxbmFvTmXOFCA==", - "dev": true, - "dependencies": { - "@storybook/csf": "^0.1.7", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-server": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-8.1.10.tgz", - "integrity": "sha512-jNL5/daNyo7Rcu+y/bOmSB1P65pmcaLwvpr31EUEIISaAqvgruaneS3GKHg2TR0wcxEoHaM4abqhW6iwkI/XYQ==", - "dev": true, - "dependencies": { - "@aw-web-design/x-default-browser": "1.4.126", - "@babel/core": "^7.24.4", - "@babel/parser": "^7.24.4", - "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "8.1.10", - "@storybook/channels": "8.1.10", - "@storybook/core-common": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/csf": "^0.1.7", - "@storybook/csf-tools": "8.1.10", - "@storybook/docs-mdx": "3.1.0-next.0", - "@storybook/global": "^5.0.0", - "@storybook/manager": "8.1.10", - "@storybook/manager-api": "8.1.10", - "@storybook/node-logger": "8.1.10", - "@storybook/preview-api": "8.1.10", - "@storybook/telemetry": "8.1.10", - "@storybook/types": "8.1.10", - "@types/detect-port": "^1.3.0", - "@types/diff": "^5.0.9", - "@types/node": "^18.0.0", - "@types/pretty-hrtime": "^1.0.0", - "@types/semver": "^7.3.4", - "better-opn": "^3.0.2", - "chalk": "^4.1.0", - "cli-table3": "^0.6.1", - "compression": "^1.7.4", - "detect-port": "^1.3.0", - "diff": "^5.2.0", - "express": "^4.17.3", - "fs-extra": "^11.1.0", - "globby": "^14.0.1", - "lodash": "^4.17.21", - "open": "^8.4.0", - "pretty-hrtime": "^1.0.3", - "prompts": "^2.4.0", - "read-pkg-up": "^7.0.1", - "semver": "^7.3.7", - "telejson": "^7.2.0", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0", - "util": "^0.12.4", - "util-deprecate": "^1.0.2", - "watchpack": "^2.2.0", - "ws": "^8.2.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "18.19.39", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.39.tgz", - "integrity": "sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@storybook/core-server/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/core-server/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/core-server/node_modules/globby": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", - "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", - "dev": true, - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-server/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-server/node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-server/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@storybook/core-server/node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-server/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-webpack": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/core-webpack/-/core-webpack-8.1.10.tgz", - "integrity": "sha512-5CPiGtOyomHYFlH7nhjZtWLQ+EVMf2dG8vsqBfjSVddfspgEA8wKj4Oqal1Juj8Uop2ZdyzlcrFwOgXuwqxgCA==", - "dev": true, - "dependencies": { - "@storybook/core-common": "8.1.10", - "@storybook/node-logger": "8.1.10", - "@storybook/types": "8.1.10", - "@types/node": "^18.0.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-webpack/node_modules/@types/node": { - "version": "18.19.39", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.39.tgz", - "integrity": "sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@storybook/csf": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.9.tgz", - "integrity": "sha512-JlZ6v/iFn+iKohKGpYXnMeNeTiiAMeFoDhYnPLIC8GnyyIWqEI9wJYrOK9i9rxlJ8NZAH/ojGC/u/xVC41qSgQ==", - "dev": true, - "dependencies": { - "type-fest": "^2.19.0" - } - }, - "node_modules/@storybook/csf-plugin": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.1.10.tgz", - "integrity": "sha512-EwW9Olw85nKamUH/2YrkD+bxDvDP4TJ2MqS1qR3UU+lBP/HMQA2zFAgiW1TUmmdHmhAeiDOXbDhijxMa30sppQ==", - "dev": true, - "dependencies": { - "@storybook/csf-tools": "8.1.10", - "unplugin": "^1.3.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/csf-tools": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-8.1.10.tgz", - "integrity": "sha512-bm/J1jAJf1YaKhcXgOlsNN02sf8XvILXuVAvr9cFC3aFkxVoGbC2AKCss4cgXAd8EQxUNtyETkOcheB5mJ5IlA==", - "dev": true, - "dependencies": { - "@babel/generator": "^7.24.4", - "@babel/parser": "^7.24.4", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", - "@storybook/csf": "^0.1.7", - "@storybook/types": "8.1.10", - "fs-extra": "^11.1.0", - "recast": "^0.23.5", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/docs-mdx": { - "version": "3.1.0-next.0", - "resolved": "https://registry.npmjs.org/@storybook/docs-mdx/-/docs-mdx-3.1.0-next.0.tgz", - "integrity": "sha512-t4syFIeSyufieNovZbLruPt2DmRKpbwL4fERCZ1MifWDRIORCKLc4NCEHy+IqvIqd71/SJV2k4B51nF7vlJfmQ==", - "dev": true - }, - "node_modules/@storybook/docs-tools": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-8.1.10.tgz", - "integrity": "sha512-FsO/+L9CrUfAIbm9cdH9UpjTusT7L5RZxN4WCXkiF5SpAVyBoY8kar3RzTZVoh4aQxt1yGWYC+SZGjgf++xa4g==", - "dev": true, - "dependencies": { - "@storybook/core-common": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/preview-api": "8.1.10", - "@storybook/types": "8.1.10", - "@types/doctrine": "^0.0.3", - "assert": "^2.1.0", - "doctrine": "^3.0.0", - "lodash": "^4.17.21" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "storybook": "^8.2.7" } }, "node_modules/@storybook/global": { @@ -8589,9 +8171,9 @@ "dev": true }, "node_modules/@storybook/icons": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-1.2.9.tgz", - "integrity": "sha512-cOmylsz25SYXaJL/gvTk/dl3pyk7yBFRfeXTsHvTA3dfhoU/LWSq0NKL9nM7WBasJyn6XPSGnLS4RtKXLw5EUg==", + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-1.2.10.tgz", + "integrity": "sha512-310apKdDcjbbX2VSLWPwhEwAgjxTzVagrwucVZIdGPErwiAppX8KvBuWZgPo+rQLVrtH8S+pw1dbUwjcE6d7og==", "dev": true, "engines": { "node": ">=14.0.0" @@ -8602,65 +8184,40 @@ } }, "node_modules/@storybook/instrumenter": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.1.10.tgz", - "integrity": "sha512-/TZ3JpTCorbhThCfaR5k4Vs0Svp6xz6t+FVaim/v7N9VErEfmtn+d76CqYLfvmo68DzkEzvArOFBdh2MXtscsw==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.2.7.tgz", + "integrity": "sha512-Zm6Ty4uWFTNchKUviuJ9vfcMb7+qU8eyrFXVY80XRpr62JEWkYj4eCwx4OG8GzlQahTh9aSv9+hzV6p/5Ld4mw==", "dev": true, "dependencies": { - "@storybook/channels": "8.1.10", - "@storybook/client-logger": "8.1.10", - "@storybook/core-events": "8.1.10", "@storybook/global": "^5.0.0", - "@storybook/preview-api": "8.1.10", "@vitest/utils": "^1.3.1", "util": "^0.12.4" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/manager": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-8.1.10.tgz", - "integrity": "sha512-dQmRBfT4CABIPhv0kL25qKcQk2SiU5mIZ1DuVzckIbZW+iYEOAusyJ/0HExM9leCrymaW3BgZGlHbIXL7EvZtw==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.7" } }, "node_modules/@storybook/manager-api": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.1.10.tgz", - "integrity": "sha512-9aZ+zoNrTo1BJskVmCKE/yqlBXmWaKVZh1W/+/xu3WL9wdm/tBlozRvQwegIZlRVvUOxtjOg28Vd2hySYL58zg==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.2.7.tgz", + "integrity": "sha512-BXjz6eNl1GyFcMwzRQTIokslcIY71AYblJUscPcy03X93oqI0GjFVa1xuSMwYw/oXWn7SHhKmqtqEG19lvBGRQ==", "dev": true, - "dependencies": { - "@storybook/channels": "8.1.10", - "@storybook/client-logger": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/csf": "^0.1.7", - "@storybook/global": "^5.0.0", - "@storybook/icons": "^1.2.5", - "@storybook/router": "8.1.10", - "@storybook/theming": "8.1.10", - "@storybook/types": "8.1.10", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "store2": "^2.14.2", - "telejson": "^7.2.0", - "ts-dedent": "^2.0.0" - }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.7" } }, "node_modules/@storybook/nextjs": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/nextjs/-/nextjs-8.1.10.tgz", - "integrity": "sha512-0crOEEXjicj5QRAknH1k3mrnmx+2yUVNmXHwMKb8Jkh4bBb9W+dYsMpTUmiTcL2p5zA0y8UMmM8lb5xF34eqdw==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/nextjs/-/nextjs-8.2.7.tgz", + "integrity": "sha512-q3SO8XIHXdHhGRmY8qoVtddIpjBMKh71A//LyZFac77ltgIKx+02vExKMVCtj7h8QcRm86SiobXfTXR7faRDmA==", "dev": true, "dependencies": { "@babel/core": "^7.24.4", @@ -8677,15 +8234,10 @@ "@babel/preset-typescript": "^7.24.1", "@babel/runtime": "^7.24.4", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", - "@storybook/builder-webpack5": "8.1.10", - "@storybook/core-common": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/node-logger": "8.1.10", - "@storybook/preset-react-webpack": "8.1.10", - "@storybook/preview-api": "8.1.10", - "@storybook/react": "8.1.10", - "@storybook/test": "8.1.10", - "@storybook/types": "8.1.10", + "@storybook/builder-webpack5": "8.2.7", + "@storybook/preset-react-webpack": "8.2.7", + "@storybook/react": "8.2.7", + "@storybook/test": "8.2.7", "@types/node": "^18.0.0", "@types/semver": "^7.3.4", "babel-loader": "^9.1.3", @@ -8722,6 +8274,7 @@ "next": "^13.5.0 || ^14.0.0", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.2.7", "webpack": "^5.0.0" }, "peerDependenciesMeta": { @@ -8734,18 +8287,18 @@ } }, "node_modules/@storybook/nextjs/node_modules/@types/node": { - "version": "18.19.39", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.39.tgz", - "integrity": "sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==", + "version": "18.19.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.43.tgz", + "integrity": "sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==", "dev": true, "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@storybook/nextjs/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -8754,26 +8307,14 @@ "node": ">=10" } }, - "node_modules/@storybook/node-logger": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-8.1.10.tgz", - "integrity": "sha512-djgbAROgGAvz/gr49egBxCHn1+rui57e76qa9aOMPzEBcxsGrnnKKp0uNdiNt4M7Xv6S2QHbJ2SfOlHhWmMeaA==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, "node_modules/@storybook/preset-react-webpack": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/preset-react-webpack/-/preset-react-webpack-8.1.10.tgz", - "integrity": "sha512-nnTU9UuFL7zfrNnsXrxiArxU3ZoVfYfHrRzmfPBgM9lDSZI7k0RCxoU3zlhWuQRGnYpXPtakDNBBT88FU/l5+g==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/preset-react-webpack/-/preset-react-webpack-8.2.7.tgz", + "integrity": "sha512-kJIgSub9wmoQgpLDfDlugK3nXeHL+skzRhUNH1ft80Il79hfQsNg7MLv6fXPvAJbjHYiQubYMwfdL4+Zwajopw==", "dev": true, "dependencies": { - "@storybook/core-webpack": "8.1.10", - "@storybook/docs-tools": "8.1.10", - "@storybook/node-logger": "8.1.10", - "@storybook/react": "8.1.10", + "@storybook/core-webpack": "8.2.7", + "@storybook/react": "8.2.7", "@storybook/react-docgen-typescript-plugin": "1.0.6--canary.9.0c3f3b7.0", "@types/node": "^18.0.0", "@types/semver": "^7.3.4", @@ -8795,7 +8336,8 @@ }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.2.7" }, "peerDependenciesMeta": { "typescript": { @@ -8804,18 +8346,18 @@ } }, "node_modules/@storybook/preset-react-webpack/node_modules/@types/node": { - "version": "18.19.39", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.39.tgz", - "integrity": "sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==", + "version": "18.19.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.43.tgz", + "integrity": "sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==", "dev": true, "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@storybook/preset-react-webpack/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -8824,54 +8366,31 @@ "node": ">=10" } }, - "node_modules/@storybook/preview": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-8.1.10.tgz", - "integrity": "sha512-Ch7SJQ8/vm4o7ZPwPeL3nGOCKx1Aul7VcvOVkDs+K2lZusJjUROHVTBYlbs71DTTmCo2gS7WhSq+HOpD59BPDg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, "node_modules/@storybook/preview-api": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.1.10.tgz", - "integrity": "sha512-0Gl8WHDtp/srrA5uBYXl7YbC8kFQA7IxVmwWN7dIS7HAXu63JZ6JfxaFcfy+kCBfZSBD7spFG4J0f5JXRDYbpg==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.2.7.tgz", + "integrity": "sha512-lNZBTjZaYNSwBY8dEcDZdkOBvq1/JoVWpuvqDEKvGmp5usTe77xAOwGyncEb96Cx1BbXXkMiDrqbV5G23PFRYA==", "dev": true, - "dependencies": { - "@storybook/channels": "8.1.10", - "@storybook/client-logger": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/csf": "^0.1.7", - "@storybook/global": "^5.0.0", - "@storybook/types": "8.1.10", - "@types/qs": "^6.9.5", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "qs": "^6.10.0", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.7" } }, "node_modules/@storybook/react": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.1.10.tgz", - "integrity": "sha512-y0ycq19tTLLk+4rB+nfCPCtoFBWC0QvmMaJY32dbAjWPk+UNFGhWdqjg0oP1NwXYL18WnhRzlyz1Rojw0aXk1w==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.2.7.tgz", + "integrity": "sha512-Qkw1K1iBDk+E9dlHrEWOOkn0trUU6wSt4mvzyOekiApM290esnPtw6GYXvxfBgFwNXfXbaGG3QNYGAFevf7qHw==", "dev": true, "dependencies": { - "@storybook/client-logger": "8.1.10", - "@storybook/docs-tools": "8.1.10", + "@storybook/components": "^8.2.7", "@storybook/global": "^5.0.0", - "@storybook/preview-api": "8.1.10", - "@storybook/react-dom-shim": "8.1.10", - "@storybook/types": "8.1.10", + "@storybook/manager-api": "^8.2.7", + "@storybook/preview-api": "^8.2.7", + "@storybook/react-dom-shim": "8.2.7", + "@storybook/theming": "^8.2.7", "@types/escodegen": "^0.0.6", "@types/estree": "^0.0.51", "@types/node": "^18.0.0", @@ -8898,6 +8417,7 @@ "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.2.7", "typescript": ">= 4.2.x" }, "peerDependenciesMeta": { @@ -8926,9 +8446,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.1.10.tgz", - "integrity": "sha512-+HS75Pq8jb3xkVq0hK33D84aGfbJCURRB+GN2vfTMmmjguQt7z2+MnGqRgrUCt6h2rxU3VdPg9OBnYi/UC0Zrg==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.2.7.tgz", + "integrity": "sha512-9VI+NrC09DAr0QQZsFmU5Fd9eqdJp/1AHK+sm9BOZretGGGJwn22xS7UXhHIiFpfXJQnr3TNcYWRzXFyuaE/Sw==", "dev": true, "funding": { "type": "opencollective", @@ -8936,22 +8456,23 @@ }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.2.7" } }, "node_modules/@storybook/react/node_modules/@types/node": { - "version": "18.19.39", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.39.tgz", - "integrity": "sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==", + "version": "18.19.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.43.tgz", + "integrity": "sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==", "dev": true, "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@storybook/react/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -8960,156 +8481,40 @@ "node": ">=10" } }, - "node_modules/@storybook/router": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-8.1.10.tgz", - "integrity": "sha512-JDEgZ0vVDx0GLz+dKD+R1xqWwjqsCdA2F+s3/si7upHqkFRWU5ocextZ63oKsRnCoaeUh6OavAU4EdkrKiQtQw==", - "dev": true, - "dependencies": { - "@storybook/client-logger": "8.1.10", - "memoizerific": "^1.11.3", - "qs": "^6.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/telemetry": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-8.1.10.tgz", - "integrity": "sha512-pwiMWrq85D0AnaAgYNfB2w2BDgqnetQ+tXwsUAw4fUEFwA4oPU6r0uqekRbNNE6wmSSYjiiFP3JgknBFqjd2hg==", - "dev": true, - "dependencies": { - "@storybook/client-logger": "8.1.10", - "@storybook/core-common": "8.1.10", - "@storybook/csf-tools": "8.1.10", - "chalk": "^4.1.0", - "detect-package-manager": "^2.0.1", - "fetch-retry": "^5.0.2", - "fs-extra": "^11.1.0", - "read-pkg-up": "^7.0.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/telemetry/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/telemetry/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/telemetry/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/telemetry/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@storybook/test": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.1.10.tgz", - "integrity": "sha512-uskw/xb/GkGLRTEKPao/5xUKxjP1X3DnDpE52xDF46ZmTvM+gPQbkex97qdG6Mfv37/0lhVhufAsV3g5+CrYKQ==", - "dev": true, - "dependencies": { - "@storybook/client-logger": "8.1.10", - "@storybook/core-events": "8.1.10", - "@storybook/instrumenter": "8.1.10", - "@storybook/preview-api": "8.1.10", - "@testing-library/dom": "^9.3.4", - "@testing-library/jest-dom": "^6.4.2", - "@testing-library/user-event": "^14.5.2", - "@vitest/expect": "1.3.1", - "@vitest/spy": "^1.3.1", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.2.7.tgz", + "integrity": "sha512-7xypGR0zjJaM5MkxIz513SYiGs5vDJZL1bbkG1YKeBMff+ZRpa8y8VDYn/WDWuDw76KcFEXoPsPzKwktGhvnpw==", + "dev": true, + "dependencies": { + "@storybook/csf": "0.1.11", + "@storybook/instrumenter": "8.2.7", + "@testing-library/dom": "10.1.0", + "@testing-library/jest-dom": "6.4.5", + "@testing-library/user-event": "14.5.2", + "@vitest/expect": "1.6.0", + "@vitest/spy": "1.6.0", "util": "^0.12.4" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.7" } }, "node_modules/@storybook/theming": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.1.10.tgz", - "integrity": "sha512-W7mth4hwdTqWLneqYCyUnIEiDg4vSokoad8HEodPz6JC9XUPUX3Yi2W4W3xFvqrW4Z5RXfuJ53iG2HN+0AgaQw==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.2.7.tgz", + "integrity": "sha512-+iqm0GfRkshrjjNSOzwl7AD2m+LtJGXJCr93ke1huDK497WUKbX1hbbw51h5E1tEkx0c2wIqUlaqCM+7XMYcpw==", "dev": true, - "dependencies": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@storybook/client-logger": "8.1.10", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/types": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.1.10.tgz", - "integrity": "sha512-UJ97iqI+0Mk13I6ayd3TaBfSFBkWnEauwTnFMQe1dN/L3wTh8laOBaLa0Vr3utRSnt2b5hpcw/nq7azB/Gx4Yw==", - "dev": true, - "dependencies": { - "@storybook/channels": "8.1.10", - "@types/express": "^4.7.0", - "file-system-cache": "2.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "storybook": "^8.2.7" } }, "node_modules/@swc/counter": { @@ -9127,20 +8532,20 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.48.0.tgz", - "integrity": "sha512-lZAfPPeVIqXCswE9SSbG33B6/91XOWt/Iq41bFeWb/mnHwQSIfFRbkS4bfs+WhIk9abRArF9Id2fp0Mgo+hq6Q==", + "version": "5.51.21", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.51.21.tgz", + "integrity": "sha512-POQxm42IUp6n89kKWF4IZi18v3fxQWFRolvBA6phNVmA8psdfB1MvDnGacCJdS+EOX12w/CyHM62z//rHmYmvw==", "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" } }, "node_modules/@tanstack/react-query": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.48.0.tgz", - "integrity": "sha512-GDExbjYWzvDokyRqMSWXdrPiYpp95Aig0oeMIrxTaruOJJgWiWfUP//OAaowm2RrRkGVsavSZdko/XmIrrV2Nw==", + "version": "5.51.21", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.51.21.tgz", + "integrity": "sha512-Q/V81x3sAYgCsxjwOkfLXfrmoG+FmDhLeHH5okC/Bp8Aaw2c33lbEo/mMcMnkxUPVtB2FLpzHT0tq3c+OlZEbw==", "dependencies": { - "@tanstack/query-core": "5.48.0" + "@tanstack/query-core": "5.51.21" }, "funding": { "type": "github", @@ -9151,22 +8556,22 @@ } }, "node_modules/@testing-library/dom": { - "version": "9.3.4", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", - "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.1.0.tgz", + "integrity": "sha512-wdsYKy5zupPyLCW2Je5DLHSxSfbIp6h80WoHOQc+RPtmPGA52O9x5MJEkv92Sjonpq+poOAtUKhh1kBGAXBrNA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", "@types/aria-query": "^5.0.1", - "aria-query": "5.1.3", + "aria-query": "5.3.0", "chalk": "^4.1.0", "dom-accessibility-api": "^0.5.9", "lz-string": "^1.5.0", "pretty-format": "^27.0.2" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/@testing-library/dom/node_modules/ansi-styles": { @@ -9222,12 +8627,12 @@ } }, "node_modules/@testing-library/jest-dom": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.4.6.tgz", - "integrity": "sha512-8qpnGVincVDLEcQXWaHOf6zmlbwTKc6Us6PPu4CRnPXCzo2OGBS5cwgMMOWdxDpEz1mkbvXHpEy99M5Yvt682w==", + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.4.5.tgz", + "integrity": "sha512-AguB9yvTXmCnySBP1lWjfNNUwpbElsaQ567lt2VdGqAdHtpieLgjmcVyv1q7PMIvLbgpDdkWV5Ydv3FEejyp2A==", "dev": true, "dependencies": { - "@adobe/css-tools": "^4.4.0", + "@adobe/css-tools": "^4.3.2", "@babel/runtime": "^7.9.2", "aria-query": "^5.0.0", "chalk": "^3.0.0", @@ -9417,22 +8822,10 @@ "@types/ms": "*" } }, - "node_modules/@types/detect-port": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/detect-port/-/detect-port-1.3.5.tgz", - "integrity": "sha512-Rf3/lB9WkDfIL9eEKaSYKc+1L/rNVYBjThk22JTqQw0YozXarX8YljFAz+HCoC6h4B4KwCMsBPZHaFezwT4BNA==", - "dev": true - }, - "node_modules/@types/diff": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@types/diff/-/diff-5.2.1.tgz", - "integrity": "sha512-uxpcuwWJGhe2AR1g8hD9F5OYGCqjqWnBUQFD8gMZsDbv8oPHzxJF6iMO6n8Tk0AdzlxoaaoQhOYlIg/PukVU8g==", - "dev": true - }, "node_modules/@types/doctrine": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", - "integrity": "sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA==", + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.9.tgz", + "integrity": "sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==", "dev": true }, "node_modules/@types/dom-screen-wake-lock": { @@ -9440,12 +8833,6 @@ "resolved": "https://registry.npmjs.org/@types/dom-screen-wake-lock/-/dom-screen-wake-lock-1.0.3.tgz", "integrity": "sha512-3Iten7X3Zgwvk6kh6/NRdwN7WbZ760YgFCsF5AxDifltUQzW1RaW+WRmcVtgwFzLjaNu64H+0MPJ13yRa8g3Dw==" }, - "node_modules/@types/ejs": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.5.tgz", - "integrity": "sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==", - "dev": true - }, "node_modules/@types/emscripten": { "version": "1.39.13", "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.13.tgz", @@ -9459,9 +8846,9 @@ "dev": true }, "node_modules/@types/eslint": { - "version": "8.56.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", - "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.0.tgz", + "integrity": "sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==", "dev": true, "dependencies": { "@types/estree": "*", @@ -9529,6 +8916,15 @@ "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", "dev": true }, + "node_modules/@types/http-proxy": { + "version": "1.17.15", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", + "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -9566,9 +8962,9 @@ "dev": true }, "node_modules/@types/lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw==", + "version": "4.17.7", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", + "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==", "dev": true }, "node_modules/@types/mdx": { @@ -9589,9 +8985,9 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "20.14.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.8.tgz", - "integrity": "sha512-DO+2/jZinXfROG7j7WKFn/3C6nFwxy2lLpgLjEXJz+0XKphZlTLJ14mo8Vfg8X5BWN6XjyESXq+LcYdT7tR3bA==", + "version": "20.14.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.14.tgz", + "integrity": "sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==", "dependencies": { "undici-types": "~5.26.4" } @@ -9605,24 +9001,12 @@ "@types/node": "*" } }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", - "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "dev": true - }, "node_modules/@types/parse-json": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "dev": true }, - "node_modules/@types/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-nj39q0wAIdhwn7DGUyT9irmsKK1tV0bd5WFEhgpqNTMFZ8cE+jieuTphCW0tfdm47S2zVT5mr09B28b1chmQMA==", - "dev": true - }, "node_modules/@types/prop-types": { "version": "15.7.12", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", @@ -9737,9 +9121,9 @@ "dev": true }, "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "peer": true, "dependencies": { "@types/yargs-parser": "*" @@ -9872,9 +9256,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -10006,9 +9390,9 @@ } }, "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -10041,78 +9425,19 @@ "dev": true }, "node_modules/@vitest/expect": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.3.1.tgz", - "integrity": "sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz", + "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", "dev": true, "dependencies": { - "@vitest/spy": "1.3.1", - "@vitest/utils": "1.3.1", + "@vitest/spy": "1.6.0", + "@vitest/utils": "1.6.0", "chai": "^4.3.10" }, "funding": { "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/expect/node_modules/@vitest/spy": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.3.1.tgz", - "integrity": "sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==", - "dev": true, - "dependencies": { - "tinyspy": "^2.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/expect/node_modules/@vitest/utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.3.1.tgz", - "integrity": "sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==", - "dev": true, - "dependencies": { - "diff-sequences": "^29.6.3", - "estree-walker": "^3.0.3", - "loupe": "^2.3.7", - "pretty-format": "^29.7.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/expect/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@vitest/expect/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@vitest/expect/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true - }, "node_modules/@vitest/spy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz", @@ -10173,15 +9498,15 @@ "dev": true }, "node_modules/@wagmi/connectors": { - "version": "5.0.22", - "resolved": "https://registry.npmjs.org/@wagmi/connectors/-/connectors-5.0.22.tgz", - "integrity": "sha512-zIewJ+EpuL+RgcfUcPGbdWb+gJu64lK7xnhhve3E30rrjZfGjMWmuWM112X5CDjl1w3qeoZZQWzmSmrZq+d+7Q==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@wagmi/connectors/-/connectors-5.1.4.tgz", + "integrity": "sha512-LY8RAHy5ichhc7zknFrfrQ3RYZ/fHGgojBz0zMFae5rRrjkR3fG4gRQ9mauPwykGJmOSZshGiFryG1F1gLBm3A==", "dependencies": { "@coinbase/wallet-sdk": "4.0.4", - "@metamask/sdk": "0.26.4", - "@safe-global/safe-apps-provider": "0.18.1", - "@safe-global/safe-apps-sdk": "8.1.0", - "@walletconnect/ethereum-provider": "2.13.0", + "@metamask/sdk": "0.27.0", + "@safe-global/safe-apps-provider": "0.18.3", + "@safe-global/safe-apps-sdk": "9.1.0", + "@walletconnect/ethereum-provider": "2.14.0", "@walletconnect/modal": "2.6.2", "cbw-sdk": "npm:@coinbase/wallet-sdk@3.9.3" }, @@ -10189,7 +9514,7 @@ "url": "https://github.com/sponsors/wevm" }, "peerDependencies": { - "@wagmi/core": "2.11.7", + "@wagmi/core": "2.13.3", "typescript": ">=5.0.4", "viem": "2.x" }, @@ -10200,12 +9525,12 @@ } }, "node_modules/@wagmi/core": { - "version": "2.11.7", - "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-2.11.7.tgz", - "integrity": "sha512-O9bMbh9VebCUwoOgNhn27bX/VU8Lge9noD/ypUw3qpGGDBOv0/kwHyxJsvQipyDn55cKxpqW2KKo/7sIDgqVzA==", + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-2.13.3.tgz", + "integrity": "sha512-4DqHTeqXHAjwWz6fftLm9zy8Bqy10D3nsCKtaluY0TPw+tSypDSxvzqTauPPasbmJOGfvx2rwXuoI/yqPwwG4w==", "dependencies": { "eventemitter3": "5.0.1", - "mipd": "0.0.5", + "mipd": "0.0.7", "zustand": "4.4.1" }, "funding": { @@ -10225,10 +9550,15 @@ } } }, + "node_modules/@wagmi/core/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, "node_modules/@walletconnect/core": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.13.0.tgz", - "integrity": "sha512-blDuZxQenjeXcVJvHxPznTNl6c/2DO4VNrFnus+qHmO6OtT5lZRowdMtlCaCNb1q0OxzgrmBDcTOCbFcCpio/g==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.14.0.tgz", + "integrity": "sha512-E/dgBM9q3judXnTfZQ5ILvDpeSdDpabBLsXtYXa3Nyc26cfNplfLJ2nXm9FgtTdhM1nZ7yx4+zDPiXawBRZl2g==", "dependencies": { "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-provider": "1.0.14", @@ -10241,8 +9571,8 @@ "@walletconnect/relay-auth": "1.0.4", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.13.0", - "@walletconnect/utils": "2.13.0", + "@walletconnect/types": "2.14.0", + "@walletconnect/utils": "2.14.0", "events": "3.3.0", "isomorphic-unfetch": "3.1.0", "lodash.isequal": "4.5.0", @@ -10281,19 +9611,19 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@walletconnect/ethereum-provider": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.13.0.tgz", - "integrity": "sha512-dnpW8mmLpWl1AZUYGYZpaAfGw1HFkL0WSlhk5xekx3IJJKn4pLacX2QeIOo0iNkzNQxZfux1AK4Grl1DvtzZEA==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.14.0.tgz", + "integrity": "sha512-Cc2/DCn85VciA10BrsNWFM//3VC1D8yjwrjfUKjGndLPDz0YIdAxTgYZViIlMjE0lzQC/DMvPYEAnGfW0O1Bwg==", "dependencies": { "@walletconnect/jsonrpc-http-connection": "1.0.8", "@walletconnect/jsonrpc-provider": "1.0.14", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/modal": "2.6.2", - "@walletconnect/sign-client": "2.13.0", - "@walletconnect/types": "2.13.0", - "@walletconnect/universal-provider": "2.13.0", - "@walletconnect/utils": "2.13.0", + "@walletconnect/sign-client": "2.14.0", + "@walletconnect/types": "2.14.0", + "@walletconnect/universal-provider": "2.14.0", + "@walletconnect/utils": "2.14.0", "events": "3.3.0" } }, @@ -10482,18 +9812,18 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@walletconnect/sign-client": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.13.0.tgz", - "integrity": "sha512-En7KSvNUlQFx20IsYGsFgkNJ2lpvDvRsSFOT5PTdGskwCkUfOpB33SQJ6nCrN19gyoKPNvWg80Cy6MJI0TjNYA==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.14.0.tgz", + "integrity": "sha512-UrB3S3eLjPYfBLCN3WJ5u7+WcZ8kFMe/QIDqLf76Jk6TaLwkSUy563LvnSw4KW/kA+/cY1KBSdUDfX1tzYJJXg==", "dependencies": { - "@walletconnect/core": "2.13.0", + "@walletconnect/core": "2.14.0", "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/logger": "2.1.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.13.0", - "@walletconnect/utils": "2.13.0", + "@walletconnect/types": "2.14.0", + "@walletconnect/utils": "2.14.0", "events": "3.3.0" } }, @@ -10511,9 +9841,9 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@walletconnect/types": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.13.0.tgz", - "integrity": "sha512-MWaVT0FkZwzYbD3tvk8F+2qpPlz1LUSWHuqbINUtMXnSzJtXN49Y99fR7FuBhNFtDalfuWsEK17GrNA+KnAsPQ==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.14.0.tgz", + "integrity": "sha512-vevMi4jZLJ55vLuFOicQFmBBbLyb+S0sZS4IsaBdZkQflfGIq34HkN13c/KPl4Ye0aoR4/cUcUSitmGIzEQM5g==", "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", @@ -10542,25 +9872,25 @@ } }, "node_modules/@walletconnect/universal-provider": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.13.0.tgz", - "integrity": "sha512-B5QvO8pnk5Bqn4aIt0OukGEQn2Auk9VbHfhQb9cGwgmSCd1GlprX/Qblu4gyT5+TjHMb1Gz5UssUaZWTWbDhBg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.14.0.tgz", + "integrity": "sha512-Mr8uoTmD6H0+Hh+3gxBu4l3T2uP/nNPR02sVtwEujNum++F727mMk+ifPRIpkVo21V/bvXFEy8sHTs5hqyq5iA==", "dependencies": { "@walletconnect/jsonrpc-http-connection": "1.0.8", "@walletconnect/jsonrpc-provider": "1.0.14", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/logger": "2.1.2", - "@walletconnect/sign-client": "2.13.0", - "@walletconnect/types": "2.13.0", - "@walletconnect/utils": "2.13.0", + "@walletconnect/sign-client": "2.14.0", + "@walletconnect/types": "2.14.0", + "@walletconnect/utils": "2.14.0", "events": "3.3.0" } }, "node_modules/@walletconnect/utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.13.0.tgz", - "integrity": "sha512-q1eDCsRHj5iLe7fF8RroGoPZpdo2CYMZzQSrw1iqL+2+GOeqapxxuJ1vaJkmDUkwgklfB22ufqG6KQnz78sD4w==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.14.0.tgz", + "integrity": "sha512-vRVomYQEtEAyCK2c5bzzEvtgxaGGITF8mWuIL+WYSAMyEJLY97mirP2urDucNwcUczwxUgI+no9RiNFbUHreQQ==", "dependencies": { "@stablelib/chacha20poly1305": "1.0.1", "@stablelib/hkdf": "1.0.1", @@ -10570,7 +9900,7 @@ "@walletconnect/relay-api": "1.0.10", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.13.0", + "@walletconnect/types": "2.14.0", "@walletconnect/window-getters": "1.0.1", "@walletconnect/window-metadata": "1.0.1", "detect-browser": "5.3.0", @@ -10763,21 +10093,6 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, - "node_modules/@yarnpkg/esbuild-plugin-pnp": { - "version": "3.0.0-rc.15", - "resolved": "https://registry.npmjs.org/@yarnpkg/esbuild-plugin-pnp/-/esbuild-plugin-pnp-3.0.0-rc.15.tgz", - "integrity": "sha512-kYzDJO5CA9sy+on/s2aIW0411AklfCi8Ck/4QDivOqsMKpStZA2SsR+X27VTggGwpStWaLrjJcDcdDMowtG8MA==", - "dev": true, - "dependencies": { - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "esbuild": ">=0.10.0" - } - }, "node_modules/@yarnpkg/fslib": { "version": "2.10.3", "resolved": "https://registry.npmjs.org/@yarnpkg/fslib/-/fslib-2.10.3.tgz", @@ -10889,15 +10204,6 @@ "node": ">=0.4.0" } }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/adjust-sourcemap-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", @@ -10977,15 +10283,15 @@ } }, "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -11192,12 +10498,6 @@ "node": ">= 8" } }, - "node_modules/app-root-dir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz", - "integrity": "sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==", - "dev": true - }, "node_modules/appdirsjs": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz", @@ -11247,12 +10547,12 @@ } }, "node_modules/aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, "dependencies": { - "deep-equal": "^2.0.5" + "dequal": "^2.0.3" } }, "node_modules/array-buffer-byte-length": { @@ -11382,18 +10682,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.toreversed": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", - "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, "node_modules/array.prototype.tosorted": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", @@ -11588,48 +10876,30 @@ } }, "node_modules/aws4": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.0.tgz", - "integrity": "sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.1.tgz", + "integrity": "sha512-u5w79Rd7SU4JaIlA/zFqG+gOiuq25q5VLyZ8E+ijJeILuTxVzZgp2CaGw/UTw6pXYN9XMO9yiqj/nEHmhTG5CA==", "dev": true }, "node_modules/axe-core": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.9.1.tgz", - "integrity": "sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.0.tgz", + "integrity": "sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } }, - "node_modules/axios/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/axios/node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, "node_modules/axobject-query": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", @@ -11766,9 +11036,9 @@ } }, "node_modules/babel-loader/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", "dev": true, "engines": { "node": ">=12.20" @@ -11791,12 +11061,12 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", - "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.1", - "core-js-compat": "^3.36.1" + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -11855,27 +11125,6 @@ "tweetnacl": "^0.14.3" } }, - "node_modules/better-opn": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", - "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", - "dev": true, - "dependencies": { - "open": "^8.0.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/big-integer": { - "version": "1.6.52", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", - "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -11969,6 +11218,18 @@ "ms": "2.0.0" } }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -12001,18 +11262,6 @@ "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" }, - "node_modules/bplist-parser": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", - "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", - "dev": true, - "dependencies": { - "big-integer": "^1.6.44" - }, - "engines": { - "node": ">= 5.10.0" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -12164,9 +11413,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", - "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", "funding": [ { "type": "opencollective", @@ -12182,10 +11431,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001629", - "electron-to-chromium": "^1.4.796", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.16" + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -12380,9 +11629,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001636", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz", - "integrity": "sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==", + "version": "1.0.30001650", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001650.tgz", + "integrity": "sha512-fgEc7hP/LB7iicdXHUI9VsBsMZmUmlVJeQP2qqQW+3lkqVhbmjEU8zp+h5stWeilX+G7uXuIUIIlWlDw9jdt8g==", "funding": [ { "type": "opencollective", @@ -12469,10 +11718,15 @@ "node": ">=6" } }, + "node_modules/cbw-sdk/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, "node_modules/chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", @@ -12481,7 +11735,7 @@ "get-func-name": "^2.0.2", "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "type-detect": "^4.1.0" }, "engines": { "node": ">=4" @@ -12565,9 +11819,9 @@ } }, "node_modules/chromatic": { - "version": "11.5.4", - "resolved": "https://registry.npmjs.org/chromatic/-/chromatic-11.5.4.tgz", - "integrity": "sha512-+J+CopeUSyGUIQJsU6X7CfvSmeVBs0j6LZ9AgF4+XTjI4pFmUiUXsTc00rH9x9W1jCppOaqDXv2kqJJXGDK3mA==", + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/chromatic/-/chromatic-11.7.0.tgz", + "integrity": "sha512-Afblm4MWK6GXutxHPJVWKoY1PxCD98Uw0S3/f1a2wu4VTQy97g4+G8vPVqutSMpZFGzG5NjH9QdzKPFMmZczpw==", "dev": true, "bin": { "chroma": "dist/bin.js", @@ -13110,6 +12364,7 @@ "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "peer": true, "dependencies": { "mime-db": ">= 1.43.0 < 2" }, @@ -13121,6 +12376,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "peer": true, "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", @@ -13138,6 +12394,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "peer": true, "engines": { "node": ">= 0.8" } @@ -13146,6 +12403,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "peer": true, "dependencies": { "ms": "2.0.0" } @@ -13153,12 +12411,14 @@ "node_modules/compression/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "peer": true }, "node_modules/compression/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "peer": true }, "node_modules/concat-map": { "version": "0.0.1", @@ -13295,9 +12555,9 @@ } }, "node_modules/cookie-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.1.0.tgz", - "integrity": "sha512-L2rLOcK0wzWSfSDA33YR+PUHDG10a8px7rUHKWbGLP4YfbsMed2KFUw5fczvDPbT98DDe3LEzviswl810apTEw==" + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.2.tgz", + "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==" }, "node_modules/cookie-signature": { "version": "1.0.6", @@ -13306,11 +12566,11 @@ "dev": true }, "node_modules/core-js-compat": { - "version": "3.37.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", - "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "version": "3.38.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.0.tgz", + "integrity": "sha512-75LAicdLa4OJVwFxFbQR3NdnZjNgX6ILpVcVzcC4T2smerB5lELMrJQQQoWV6TiuC/vlaFqgU2tKQx9w5s0e0A==", "dependencies": { - "browserslist": "^4.23.0" + "browserslist": "^4.23.3" }, "funding": { "type": "opencollective", @@ -13318,9 +12578,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.37.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.37.1.tgz", - "integrity": "sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==", + "version": "3.38.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.38.0.tgz", + "integrity": "sha512-8balb/HAXo06aHP58mZMtXgD8vcnXz9tUDePgqBgJgKdmTlMt+jw3ujqniuBDQXMvTzxnMpxHFeuSM3g1jWQuQ==", "dev": true, "hasInstallScript": true, "funding": { @@ -13522,9 +12782,9 @@ } }, "node_modules/css-loader/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -13585,13 +12845,13 @@ "devOptional": true }, "node_modules/cypress": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.12.0.tgz", - "integrity": "sha512-udzS2JilmI9ApO/UuqurEwOvThclin5ntz7K0BtnHBs+tg2Bl9QShLISXpSEMDv/u8b6mqdoAdyKeZiSqKWL8g==", + "version": "13.13.2", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.13.2.tgz", + "integrity": "sha512-PvJQU33933NvS1StfzEb8/mu2kMy4dABwCF+yd5Bi7Qly1HOVf+Bufrygee/tlmty/6j5lX+KIi8j9Q3JUMbhA==", "dev": true, "hasInstallScript": true, "dependencies": { - "@cypress/request": "^3.0.0", + "@cypress/request": "^3.0.1", "@cypress/xvfb": "^1.2.4", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", @@ -13630,7 +12890,7 @@ "request-progress": "^3.0.0", "semver": "^7.5.3", "supports-color": "^8.1.1", - "tmp": "~0.2.1", + "tmp": "~0.2.3", "untildify": "^4.0.0", "yauzl": "^2.10.0" }, @@ -13684,29 +12944,6 @@ "node": ">=8" } }, - "node_modules/cypress/node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, "node_modules/cypress/node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -13722,21 +12959,6 @@ "node": ">=10" } }, - "node_modules/cypress/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cypress/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -13746,19 +12968,16 @@ "node": ">=8" } }, - "node_modules/cypress/node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true, - "engines": { - "node": ">=8.12.0" - } + "node_modules/cypress/node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", + "dev": true }, "node_modules/cypress/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -13876,14 +13095,14 @@ } }, "node_modules/dayjs": { - "version": "1.11.11", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", - "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==" + "version": "1.11.12", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz", + "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==" }, "node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dependencies": { "ms": "2.1.2" }, @@ -13976,22 +13195,6 @@ "node": ">=0.10.0" } }, - "node_modules/default-browser-id": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", - "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", - "dev": true, - "dependencies": { - "bplist-parser": "^0.2.0", - "untildify": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -14133,49 +13336,11 @@ "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" }, - "node_modules/detect-package-manager": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-package-manager/-/detect-package-manager-2.0.1.tgz", - "integrity": "sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==", - "dev": true, - "dependencies": { - "execa": "^5.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/detect-port": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", - "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", - "dev": true, - "dependencies": { - "address": "^1.0.1", - "debug": "4" - }, - "bin": { - "detect": "bin/detect-port.js", - "detect-port": "bin/detect-port.js" - }, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" }, - "node_modules/diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -14328,27 +13493,6 @@ "tslib": "^2.0.3" } }, - "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dotenv-expand": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", - "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -14356,51 +13500,27 @@ "dev": true }, "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", + "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.2" } }, - "node_modules/duplexify/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, "node_modules/duplexify/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/duplexify/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/duplexify/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dependencies": { - "safe-buffer": "~5.1.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/eastasianwidth": { @@ -14433,30 +13553,15 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, - "node_modules/ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "dev": true, - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/electron-to-chromium": { - "version": "1.4.811", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.811.tgz", - "integrity": "sha512-CDyzcJ5XW78SHzsIOdn27z8J4ist8eaFLhdto2hSMSJQgsiwvbv2fbizcKUICryw1Wii1TI/FEkvzvJsR3awrA==" + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.5.tgz", + "integrity": "sha512-QR7/A7ZkMS8tZuoftC/jfqNkZLQO779SSW3YuZHP4eXpj3EffGLFcB/Xu9AAZQzLccTiCV+EmUo3ha4mQ9wnlA==" }, "node_modules/elliptic": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.5.tgz", - "integrity": "sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==", + "version": "6.5.6", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.6.tgz", + "integrity": "sha512-mpzdtpeCLuS3BmE3pO3Cpp5bbjlOPY2Q0PgoF+Od1XZrHLYI28Xe3ossCmYCQt11FQKEYd9+PF8jymTvtWJSHQ==", "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -14508,18 +13613,6 @@ "iconv-lite": "^0.6.2" } }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "devOptional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -14560,9 +13653,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz", - "integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -14838,9 +13931,9 @@ } }, "node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, "bin": { @@ -14850,41 +13943,35 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" - } - }, - "node_modules/esbuild-plugin-alias": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz", - "integrity": "sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==", - "dev": true + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } }, "node_modules/esbuild-register": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.5.0.tgz", - "integrity": "sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.6.0.tgz", + "integrity": "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==", "dev": true, "dependencies": { "debug": "^4.3.4" @@ -15026,20 +14113,6 @@ } } }, - "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", @@ -15217,14 +14290,23 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "node_modules/eslint-plugin-prettier": { + "node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": { "version": "5.1.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", - "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", "dev": true, "dependencies": { "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.6" + "synckit": "^0.9.1" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -15248,35 +14330,35 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.34.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.3.tgz", - "integrity": "sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==", + "version": "7.35.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", + "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", "dev": true, "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", "array.prototype.flatmap": "^1.3.2", - "array.prototype.toreversed": "^1.1.2", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", "es-iterator-helpers": "^1.0.19", "estraverse": "^5.3.0", + "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.8", "object.fromentries": "^2.0.8", - "object.hasown": "^1.1.4", "object.values": "^1.2.0", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11" + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "node_modules/eslint-plugin-react-hooks": { @@ -15496,9 +14578,9 @@ } }, "node_modules/espree/node_modules/acorn": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", - "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -15520,9 +14602,9 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -15622,9 +14704,9 @@ } }, "node_modules/eth-block-tracker/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { "semver": "bin/semver.js" }, @@ -15708,35 +14790,10 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/ethereum-cryptography/node_modules/@scure/bip32": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", - "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", - "dependencies": { - "@noble/curves": "~1.4.0", - "@noble/hashes": "~1.4.0", - "@scure/base": "~1.1.6" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ethereum-cryptography/node_modules/@scure/bip39": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", - "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", - "dependencies": { - "@noble/hashes": "~1.4.0", - "@scure/base": "~1.1.6" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/ethers": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.1.tgz", - "integrity": "sha512-hdJ2HOxg/xx97Lm9HdCWk949BfYqYWpyw4//78SiwOLgASyfrNszfMUNB2joKjvGUdwhHfaiMMFFwacVVoLR9A==", + "version": "6.13.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.2.tgz", + "integrity": "sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==", "funding": [ { "type": "individual", @@ -15799,9 +14856,10 @@ "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==" }, "node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true }, "node_modules/events": { "version": "3.3.0", @@ -15822,18 +14880,19 @@ } }, "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" }, "engines": { @@ -15965,21 +15024,6 @@ "@types/yauzl": "^2.9.1" } }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -16063,10 +15107,16 @@ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true + }, "node_modules/fast-xml-parser": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz", - "integrity": "sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", + "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", "funding": [ { "type": "github", @@ -16102,6 +15152,15 @@ "bser": "2.1.1" } }, + "node_modules/fd-package-json": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fd-package-json/-/fd-package-json-1.2.0.tgz", + "integrity": "sha512-45LSPmWf+gC5tdCQMNH4s9Sr00bIkiD9aN7dc5hqkrEw1geRYyDQS1v1oMHAW3ysfxfndqGsrDREHHjNNbKUfA==", + "dev": true, + "dependencies": { + "walk-up-path": "^3.0.1" + } + }, "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -16111,12 +15170,6 @@ "pend": "~1.2.0" } }, - "node_modules/fetch-retry": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.6.tgz", - "integrity": "sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==", - "dev": true - }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -16144,64 +15197,10 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/file-system-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-2.3.0.tgz", - "integrity": "sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==", - "dev": true, - "dependencies": { - "fs-extra": "11.1.1", - "ramda": "0.29.0" - } - }, - "node_modules/file-system-cache/node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/filesize": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.2.tgz", - "integrity": "sha512-Dx770ai81ohflojxhU+oG+Z2QGvKdYxgEr9OSA8UVrqhwNHjfH9A8f5NKfg83fEH8ZFA5N5llJo5T3PIoZ4CRA==", + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.4.tgz", + "integrity": "sha512-ryBwPIIeErmxgPnm6cbESAzXjuEFubs+yKYLBZvg3CaiNcmkJChoOGcBSrZ6IwkMwPABwPpVXE6IlNdGJJrvEg==", "dev": true, "engines": { "node": ">= 10.4.0" @@ -16277,70 +15276,6 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/find-cache-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -16383,9 +15318,9 @@ "peer": true }, "node_modules/flow-parser": { - "version": "0.238.2", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.238.2.tgz", - "integrity": "sha512-fs7FSnzzKF6oSzjk14JlBHt82DPchYHVsXtPi4Fkn+qrunVjWaBZY7nSO/mC9X4l9+wRah/R69DRd5NGDOrWqw==", + "version": "0.242.1", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.242.1.tgz", + "integrity": "sha512-E3ml21Q1S5cMAyPbtYslkvI6yZO5oCS/S2EoteeFH8Kx9iKOv/YOJ+dGd/yMf+H3YKfhMKjnOpyNwrO7NdddWA==", "engines": { "node": ">=0.4.0" } @@ -16553,9 +15488,9 @@ } }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -16577,17 +15512,16 @@ } }, "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" }, "engines": { - "node": ">= 0.12" + "node": ">= 6" } }, "node_modules/forwarded": { @@ -16613,12 +15547,6 @@ "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", "dev": true }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, "node_modules/fs-extra": { "version": "11.2.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", @@ -16781,26 +15709,21 @@ "node": ">=6" } }, - "node_modules/get-npm-tarball-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/get-npm-tarball-url/-/get-npm-tarball-url-2.1.0.tgz", - "integrity": "sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==", - "dev": true, - "engines": { - "node": ">=12.17" - } - }, "node_modules/get-port-please": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.2.tgz", "integrity": "sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==" }, "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -16824,9 +15747,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", - "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.6.tgz", + "integrity": "sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==", "dev": true, "dependencies": { "resolve-pkg-maps": "^1.0.0" @@ -16879,22 +15802,21 @@ "dev": true }, "node_modules/glob": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", - "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -16926,9 +15848,9 @@ } }, "node_modules/glob/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -17020,38 +15942,6 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, - "node_modules/gunzip-maybe": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz", - "integrity": "sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==", - "dev": true, - "dependencies": { - "browserify-zlib": "^0.1.4", - "is-deflate": "^1.0.0", - "is-gzip": "^1.0.0", - "peek-stream": "^1.1.0", - "pumpify": "^1.3.3", - "through2": "^2.0.3" - }, - "bin": { - "gunzip-maybe": "bin.js" - } - }, - "node_modules/gunzip-maybe/node_modules/browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==", - "dev": true, - "dependencies": { - "pako": "~0.2.0" - } - }, - "node_modules/gunzip-maybe/node_modules/pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", - "dev": true - }, "node_modules/h3": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/h3/-/h3-1.12.0.tgz", @@ -17069,36 +15959,6 @@ "unenv": "^1.9.0" } }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -17292,12 +16152,6 @@ "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, "node_modules/html-entities": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", @@ -17422,6 +16276,37 @@ "node": ">= 0.8" } }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.0.tgz", + "integrity": "sha512-36AV1fIaI2cWRzHo+rbcxhe3M3jUDCNzc4D5zRl57sEWRAxdXYtw7FSQKYY6PDKssiAKjLYypbssHk+xs/kMXw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.10", + "debug": "^4.3.4", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.5" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, "node_modules/http-shutdown": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/http-shutdown/-/http-shutdown-1.2.2.tgz", @@ -17452,17 +16337,18 @@ "dev": true }, "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, "engines": { - "node": ">=10.17.0" + "node": ">=8.12.0" } }, "node_modules/i18next": { - "version": "23.2.3", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.2.3.tgz", - "integrity": "sha512-5spO7L0rNmW0jFuNhz+gfirlFt1anle4mTy4+gFkgsH0+T3R5++4oncBrzeKa7v8pweRyGBoGmOpboqlxovg6A==", + "version": "23.11.5", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.11.5.tgz", + "integrity": "sha512-41pvpVbW9rhZPk5xjCX2TPJi2861LEig/YRhUkY+1FQ2IQPS0bKUDYnEqY8XPPbB48h1uIwLnP9iiEfuSl20CA==", "funding": [ { "type": "individual", @@ -17477,9 +16363,8 @@ "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" } ], - "peer": true, "dependencies": { - "@babel/runtime": "^7.22.5" + "@babel/runtime": "^7.23.2" } }, "node_modules/i18next-browser-languagedetector": { @@ -17491,12 +16376,12 @@ } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "devOptional": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" @@ -17577,15 +16462,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -17792,9 +16668,9 @@ } }, "node_modules/is-core-module": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", - "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", "dependencies": { "hasown": "^2.0.2" }, @@ -17835,12 +16711,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-deflate": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-deflate/-/is-deflate-1.0.0.tgz", - "integrity": "sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==", - "dev": true - }, "node_modules/is-directory": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", @@ -17917,15 +16787,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-gzip": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz", - "integrity": "sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-inside-container": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", @@ -18053,6 +16914,18 @@ "node": ">=8" } }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", @@ -18304,9 +17177,9 @@ } }, "node_modules/jackspeak": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", - "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -18320,76 +17193,6 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/jake": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.1.tgz", - "integrity": "sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==", - "dev": true, - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jake/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jake/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jake/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jake/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jdenticon": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/jdenticon/-/jdenticon-3.3.0.tgz", @@ -19144,20 +17947,6 @@ "node": "> 0.8" } }, - "node_modules/lazy-universal-dotenv": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-4.0.0.tgz", - "integrity": "sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg==", - "dev": true, - "dependencies": { - "app-root-dir": "^1.0.2", - "dotenv": "^16.0.0", - "dotenv-expand": "^10.0.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -19619,12 +18408,12 @@ } }, "node_modules/magic-string": { - "version": "0.30.10", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", - "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", "dev": true, "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/make-dir": { @@ -19664,9 +18453,9 @@ "dev": true }, "node_modules/markdown-to-jsx": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz", - "integrity": "sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==", + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.4.7.tgz", + "integrity": "sha512-0+ls1IQZdU6cwM1yu0ZjjiVWYtkbExSyUIFU2ZeDIFuZM1W42Mh4OlJ4nb4apX4H8smxDHRdFaoIVJGwfv5hkg==", "dev": true, "engines": { "node": ">= 10" @@ -20553,89 +19342,15 @@ "dev": true }, "node_modules/mipd": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/mipd/-/mipd-0.0.5.tgz", - "integrity": "sha512-gbKA784D2WKb5H/GtqEv+Ofd1S9Zj+Z/PGDIl1u1QAbswkxD28BQ5bSXQxkeBzPBABg1iDSbiwGG1XqlOxRspA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wagmi-dev" - } - ], - "dependencies": { - "viem": "^1.1.4" - }, - "peerDependencies": { - "typescript": ">=5.0.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/mipd/node_modules/@adraffy/ens-normalize": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz", - "integrity": "sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==" - }, - "node_modules/mipd/node_modules/abitype": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-0.9.8.tgz", - "integrity": "sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wagmi-dev" - } - ], - "peerDependencies": { - "typescript": ">=5.0.4", - "zod": "^3 >=3.19.1" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "zod": { - "optional": true - } - } - }, - "node_modules/mipd/node_modules/isows": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.3.tgz", - "integrity": "sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mipd/-/mipd-0.0.7.tgz", + "integrity": "sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/wagmi-dev" } ], - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/mipd/node_modules/viem": { - "version": "1.21.4", - "resolved": "https://registry.npmjs.org/viem/-/viem-1.21.4.tgz", - "integrity": "sha512-BNVYdSaUjeS2zKQgPs+49e5JKocfo60Ib2yiXOWBT6LuVxY1I/6fFX3waEtpXvL1Xn4qu+BVitVtMh9lyThyhQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], - "dependencies": { - "@adraffy/ens-normalize": "1.10.0", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@scure/bip32": "1.3.2", - "@scure/bip39": "1.2.1", - "abitype": "0.9.8", - "isows": "1.0.3", - "ws": "8.13.0" - }, "peerDependencies": { "typescript": ">=5.0.4" }, @@ -20645,26 +19360,6 @@ } } }, - "node_modules/mipd/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -20676,12 +19371,6 @@ "node": ">=10" } }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, "node_modules/mlly": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz", @@ -21017,9 +19706,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" }, "node_modules/node-stream-zip": { "version": "1.15.0", @@ -21034,27 +19723,6 @@ "url": "https://github.com/sponsors/antelle" } }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -21093,16 +19761,17 @@ "peer": true }, "node_modules/nypm": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.8.tgz", - "integrity": "sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.9.tgz", + "integrity": "sha512-BI2SdqqTHg2d4wJh8P9A1W+bslg33vOE9IZDY6eR2QC+Pu1iNBVZUqczrd43rJb+fMzHU7ltAYKsEFY/kHMFcw==", "dev": true, "dependencies": { "citty": "^0.1.6", "consola": "^3.2.3", "execa": "^8.0.1", "pathe": "^1.1.2", - "ufo": "^1.4.0" + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" }, "bin": { "nypm": "dist/cli.mjs" @@ -21413,23 +20082,6 @@ "node": ">= 0.4" } }, - "node_modules/object.hasown": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", - "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", - "dev": true, - "dependencies": { - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object.values": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", @@ -21469,9 +20121,13 @@ "integrity": "sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==" }, "node_modules/on-exit-leak-free": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz", - "integrity": "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } }, "node_modules/on-finished": { "version": "2.4.1", @@ -21488,6 +20144,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "peer": true, "engines": { "node": ">= 0.8" } @@ -21691,11 +20348,6 @@ "node": ">=6" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" - }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -21828,12 +20480,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "engines": { - "node": "14 || >=16.14" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" }, "node_modules/path-to-regexp": { "version": "0.1.7", @@ -21889,17 +20538,6 @@ "node": ">=0.12" } }, - "node_modules/peek-stream": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/peek-stream/-/peek-stream-1.1.3.tgz", - "integrity": "sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "duplexify": "^3.5.0", - "through2": "^2.0.3" - } - }, "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -21958,42 +20596,19 @@ } }, "node_modules/pino-abstract-transport": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz", - "integrity": "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", + "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", + "dev": true, "dependencies": { - "duplexify": "^4.1.2", + "readable-stream": "^4.0.0", "split2": "^4.0.0" } }, - "node_modules/pino-abstract-transport/node_modules/duplexify": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", - "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", - "dependencies": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.2" - } - }, - "node_modules/pino-abstract-transport/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/pino-pretty": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-11.2.1.tgz", - "integrity": "sha512-O05NuD9tkRasFRWVaF/uHLOvoRDFD7tb5VMertr78rbsYFjYp48Vg3477EshVAF5eZaEw+OpDl/tu+B0R5o+7g==", + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-11.2.2.tgz", + "integrity": "sha512-2FnyGir8nAJAqD3srROdrF1J5BIcMT4nwj7hHSc60El6Uxlym00UbCCd8pYIterstVBFlMyF1yFV8XdGIPbj4A==", "dev": true, "dependencies": { "colorette": "^2.0.7", @@ -22015,39 +20630,33 @@ "pino-pretty": "bin.js" } }, - "node_modules/pino-pretty/node_modules/on-exit-leak-free": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", - "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", - "dev": true, - "engines": { - "node": ">=14.0.0" - } + "node_modules/pino-std-serializers": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", + "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==" }, - "node_modules/pino-pretty/node_modules/pino-abstract-transport": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", - "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", - "dev": true, + "node_modules/pino/node_modules/on-exit-leak-free": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz", + "integrity": "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==" + }, + "node_modules/pino/node_modules/pino-abstract-transport": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz", + "integrity": "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==", "dependencies": { - "readable-stream": "^4.0.0", + "duplexify": "^4.1.2", "split2": "^4.0.0" } }, - "node_modules/pino-pretty/node_modules/sonic-boom": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.0.1.tgz", - "integrity": "sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==", - "dev": true, + "node_modules/pino/node_modules/sonic-boom": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz", + "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==", "dependencies": { "atomic-sleep": "^1.0.0" } }, - "node_modules/pino-std-serializers": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", - "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==" - }, "node_modules/pirates": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", @@ -22057,15 +20666,67 @@ } }, "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { - "find-up": "^5.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=10" + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/pkg-types": { @@ -22127,9 +20788,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "funding": [ { "type": "opencollective", @@ -22146,7 +20807,7 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "source-map-js": "^1.2.0" }, "engines": { @@ -22233,9 +20894,9 @@ } }, "node_modules/postcss-load-config/node_modules/yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "bin": { "yaml": "bin.mjs" }, @@ -22301,9 +20962,9 @@ } }, "node_modules/postcss-loader/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" @@ -22372,27 +21033,33 @@ } }, "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "postcss-selector-parser": "^6.0.11" + "postcss-selector-parser": "^6.1.1" }, "engines": { "node": ">=12.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": "^8.2.14" } }, "node_modules/postcss-selector-parser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", - "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", + "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -22407,9 +21074,9 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/preact": { - "version": "10.22.1", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.22.1.tgz", - "integrity": "sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A==", + "version": "10.23.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.23.1.tgz", + "integrity": "sha512-O5UdRsNh4vdZaTieWe3XOgSpdMAmkIYBCT3VhQDlKrzyCm8lUYsk0fmVEvoQQifoOjFRTaHZO69ylrzTW2BH+A==", "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" @@ -22425,25 +21092,9 @@ } }, "node_modules/prettier": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", - "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", - "dev": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-fallback": { - "name": "prettier", - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", - "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -22515,15 +21166,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -22599,10 +21241,9 @@ "integrity": "sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==" }, "node_modules/proxy-from-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", - "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", - "dev": true + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, "node_modules/ps-tree": { "version": "1.2.0", @@ -22654,27 +21295,6 @@ "once": "^1.3.1" } }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -22723,12 +21343,12 @@ } }, "node_modules/qs": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", - "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", "dev": true, "dependencies": { - "side-channel": "^1.0.6" + "side-channel": "^1.0.4" }, "engines": { "node": ">=0.6" @@ -22824,16 +21444,6 @@ "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==" }, - "node_modules/ramda": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.0.tgz", - "integrity": "sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ramda" - } - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -22876,6 +21486,18 @@ "node": ">= 0.8" } }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", @@ -22973,12 +21595,6 @@ "typescript": ">= 4.3.x" } }, - "node_modules/react-docgen/node_modules/@types/doctrine": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.9.tgz", - "integrity": "sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==", - "dev": true - }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", @@ -23013,11 +21629,11 @@ "dev": true }, "node_modules/react-hook-form": { - "version": "7.52.1", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.52.1.tgz", - "integrity": "sha512-uNKIhaoICJ5KQALYZ4TOaOLElyM+xipord+Ha3crEFhTntdLvWZqVY49Wqd/0GiVCA/f9NjemLeiNPjG7Hpurg==", + "version": "7.52.2", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.52.2.tgz", + "integrity": "sha512-pqfPEbERnxxiNMPd0bzmt1tuaPcVccywFDpyk2uV5xCIBphHV5T8SVnX9/o3kplPE1zzKt77+YIoq+EMwJp56A==", "engines": { - "node": ">=12.22.0" + "node": ">=18.0.0" }, "funding": { "type": "opencollective", @@ -23116,126 +21732,24 @@ "tslib": "^2.0.0" }, "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" } }, "node_modules/readable-stream": { @@ -23592,12 +22106,12 @@ } }, "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/resolve-pkg-maps": { @@ -24003,15 +22517,15 @@ } }, "node_modules/schema-utils/node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -24267,9 +22781,9 @@ } }, "node_modules/sharp/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "optional": true, "bin": { @@ -24416,9 +22930,10 @@ } }, "node_modules/sonic-boom": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz", - "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.0.1.tgz", + "integrity": "sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==", + "dev": true, "dependencies": { "atomic-sleep": "^1.0.0" } @@ -24466,38 +22981,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.18", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", - "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", - "dev": true - }, "node_modules/split": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", @@ -24604,76 +23087,294 @@ "node": ">=8" } }, - "node_modules/start-server-and-test": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-2.0.4.tgz", - "integrity": "sha512-CKNeBTcP0hVqIlNismHMudb9q3lLdAjcVPO13/7gfI66fcJpeIb/o4NzQd1JK/CD+lfWVqr10ZH9Y14+OwlJuw==", + "node_modules/start-server-and-test": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-2.0.5.tgz", + "integrity": "sha512-2CV4pz69NJVJKQmJeSr+O+SPtOreu0yxvhPmSXclzmAKkPREuMabyMh+Txpzemjx0RDzXOcG2XkhiUuxjztSQw==", + "dev": true, + "dependencies": { + "arg": "^5.0.2", + "bluebird": "3.7.2", + "check-more-types": "2.24.0", + "debug": "4.3.6", + "execa": "5.1.1", + "lazy-ass": "1.6.0", + "ps-tree": "1.2.0", + "wait-on": "7.2.0" + }, + "bin": { + "server-test": "src/bin/start.js", + "start-server-and-test": "src/bin/start.js", + "start-test": "src/bin/start.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/start-server-and-test/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/start-server-and-test/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/start-server-and-test/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/storybook": { + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.2.7.tgz", + "integrity": "sha512-Jb9DXue1sr3tKkpuq66VP5ItOKTpxL6t99ze1wXDbjCvPiInTdPA5AyFEjBuKjOBIh28bayYoOZa6/xbMJV+Wg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.24.4", + "@babel/types": "^7.24.0", + "@storybook/codemod": "8.2.7", + "@storybook/core": "8.2.7", + "@types/semver": "^7.3.4", + "@yarnpkg/fslib": "2.10.3", + "@yarnpkg/libzip": "2.3.0", + "chalk": "^4.1.0", + "commander": "^6.2.1", + "cross-spawn": "^7.0.3", + "detect-indent": "^6.1.0", + "envinfo": "^7.7.3", + "execa": "^5.0.0", + "fd-package-json": "^1.2.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "giget": "^1.0.0", + "globby": "^14.0.1", + "jscodeshift": "^0.15.1", + "leven": "^3.1.0", + "ora": "^5.4.1", + "prettier": "^3.1.1", + "prompts": "^2.4.0", + "semver": "^7.3.7", + "strip-json-comments": "^3.0.1", + "tempy": "^3.1.0", + "tiny-invariant": "^1.3.1", + "ts-dedent": "^2.0.0" + }, + "bin": { + "getstorybook": "bin/index.cjs", + "sb": "bin/index.cjs", + "storybook": "bin/index.cjs" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/storybook/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/storybook/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/storybook/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/storybook/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/storybook/node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "dev": true, + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/storybook/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/storybook/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "dependencies": { - "arg": "^5.0.2", - "bluebird": "3.7.2", - "check-more-types": "2.24.0", - "debug": "4.3.5", - "execa": "5.1.1", - "lazy-ass": "1.6.0", - "ps-tree": "1.2.0", - "wait-on": "7.2.0" - }, - "bin": { - "server-test": "src/bin/start.js", - "start-server-and-test": "src/bin/start.js", - "start-test": "src/bin/start.js" - }, "engines": { - "node": ">=16" + "node": ">=10.17.0" } }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "node_modules/storybook/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/std-env": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", - "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==" - }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "node_modules/storybook/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "dependencies": { - "internal-slot": "^1.0.4" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">= 0.4" + "node": ">=10" } }, - "node_modules/store2": { - "version": "2.14.3", - "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.3.tgz", - "integrity": "sha512-4QcZ+yx7nzEFiV4BMLnr/pRa5HYzNITX2ri0Zh6sT9EyQHbBHacC6YigllUPU9X3D0f/22QCgfokpKs52YRrUg==", - "dev": true + "node_modules/storybook/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/storybook": { - "version": "8.1.10", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.1.10.tgz", - "integrity": "sha512-HHlZibyc/QkcQj8aEnYnYwEl+ItNZ/uRbCdkvJzu/vIWYon5jUg30mHFIGZprgLSt27CxOs30Et8yT9z4VhwjA==", + "node_modules/storybook/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "@storybook/cli": "8.1.10" - }, - "bin": { - "sb": "index.js", - "storybook": "index.js" + "has-flag": "^4.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "engines": { + "node": ">=8" } }, "node_modules/stream-browserify": { @@ -24859,6 +23560,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, "node_modules/string.prototype.trim": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", @@ -25099,9 +23810,9 @@ } }, "node_modules/synckit": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", - "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", + "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", "dev": true, "dependencies": { "@pkgr/core": "^0.1.0", @@ -25126,21 +23837,18 @@ } }, "node_modules/tailwind-merge": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.3.0.tgz", - "integrity": "sha512-vkYrLpIP+lgR0tQCG6AP7zZXCTLc1Lnv/CCRT3BqJ9CZ3ui2++GPaGb1x/ILsINIMSYqqvrpqjUFsMNLlW99EA==", - "dependencies": { - "@babel/runtime": "^7.24.1" - }, + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.4.0.tgz", + "integrity": "sha512-49AwoOQNKdqKPd9CViyH5wJoSKsCDjUlzL8DxuGp3P1FsGY36NJDAa18jLZcaHAUUuTj+JB8IAo8zWgBNvBF7A==", "funding": { "type": "github", "url": "https://github.com/sponsors/dcastil" } }, "node_modules/tailwindcss": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", - "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.7.tgz", + "integrity": "sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ==", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -25207,54 +23915,6 @@ "node": ">=10" } }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/tar/node_modules/minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", @@ -25362,9 +24022,9 @@ } }, "node_modules/terser": { - "version": "5.31.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.1.tgz", - "integrity": "sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==", + "version": "5.31.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.3.tgz", + "integrity": "sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -25431,9 +24091,9 @@ } }, "node_modules/terser/node_modules/acorn": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", - "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "bin": { "acorn": "bin/acorn" }, @@ -25504,6 +24164,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "peer": true, "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -25512,12 +24173,14 @@ "node_modules/through2/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "peer": true }, "node_modules/through2/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "peer": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -25531,12 +24194,14 @@ "node_modules/through2/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "peer": true }, "node_modules/through2/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "peer": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -25602,12 +24267,6 @@ "node": ">=8.0" } }, - "node_modules/tocbot": { - "version": "4.28.2", - "resolved": "https://registry.npmjs.org/tocbot/-/tocbot-4.28.2.tgz", - "integrity": "sha512-/MaSa9xI6mIo84IxqqliSCtPlH0oy7sLcY9s26qPMyH/2CxtZ2vNAXYlIdEQ7kjAkCQnc0rbLygf//F5c663oQ==", - "dev": true - }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -25834,9 +24493,10 @@ } }, "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "dev": true, "engines": { "node": ">=4" } @@ -25940,9 +24600,9 @@ } }, "node_modules/typescript": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz", - "integrity": "sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "devOptional": true, "bin": { "tsc": "bin/tsc", @@ -25953,22 +24613,9 @@ } }, "node_modules/ufo": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", - "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==" - }, - "node_modules/uglify-js": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.18.0.tgz", - "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==", - "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==" }, "node_modules/uint8arrays": { "version": "3.1.0", @@ -26004,15 +24651,15 @@ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, "node_modules/unenv": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/unenv/-/unenv-1.9.0.tgz", - "integrity": "sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/unenv/-/unenv-1.10.0.tgz", + "integrity": "sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==", "dependencies": { "consola": "^3.2.3", - "defu": "^6.1.3", + "defu": "^6.1.4", "mime": "^3.0.0", - "node-fetch-native": "^1.6.1", - "pathe": "^1.1.1" + "node-fetch-native": "^1.6.4", + "pathe": "^1.1.2" } }, "node_modules/unenv/node_modules/mime": { @@ -26154,24 +24801,24 @@ } }, "node_modules/unplugin": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.10.1.tgz", - "integrity": "sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.12.0.tgz", + "integrity": "sha512-KeczzHl2sATPQUx1gzo+EnUkmN4VmGBYRRVOZSGvGITE9rGHRDGqft6ONceP3vgXcyJ2XjX5axG5jMWUwNCYLw==", "dev": true, "dependencies": { - "acorn": "^8.11.3", + "acorn": "^8.12.1", "chokidar": "^3.6.0", "webpack-sources": "^3.2.3", - "webpack-virtual-modules": "^0.6.1" + "webpack-virtual-modules": "^0.6.2" }, "engines": { "node": ">=14.0.0" } }, "node_modules/unplugin/node_modules/acorn": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", - "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -26180,12 +24827,6 @@ "node": ">=0.4.0" } }, - "node_modules/unplugin/node_modules/webpack-virtual-modules": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", - "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", - "dev": true - }, "node_modules/unstorage": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.10.2.tgz", @@ -26287,9 +24928,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", - "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "funding": [ { "type": "opencollective", @@ -26330,13 +24971,16 @@ } }, "node_modules/url": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", - "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", "dev": true, "dependencies": { "punycode": "^1.4.1", - "qs": "^6.11.2" + "qs": "^6.12.3" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/url-parse": { @@ -26355,6 +24999,21 @@ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true }, + "node_modules/url/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/use-callback-ref": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", @@ -26459,16 +25118,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "node_modules/valtio": { "version": "1.11.2", "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.11.2.tgz", @@ -26516,9 +25165,9 @@ } }, "node_modules/viem": { - "version": "2.17.3", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.17.3.tgz", - "integrity": "sha512-FY/1uBQWfko4Esy8mU1RamvL64TLy91LZwFyQJ20E6AI3vTTEOctWfSn0pkMKa3okq4Gxs5dJE7q1hmWOQ7xcw==", + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.19.1.tgz", + "integrity": "sha512-a0ca/ACEz3FRZB3OmiSfRUogWZGQh700wu7Pg3GmAWiGD+0PS9bVaWG67JQ+9azFZLq0BU/m0t2CeWd3xi8IzQ==", "funding": [ { "type": "github", @@ -26533,6 +25182,7 @@ "@scure/bip39": "1.3.0", "abitype": "1.0.5", "isows": "1.0.4", + "webauthn-p256": "0.0.5", "ws": "8.17.1" }, "peerDependencies": { @@ -26571,31 +25221,6 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/viem/node_modules/@scure/bip32": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", - "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", - "dependencies": { - "@noble/curves": "~1.4.0", - "@noble/hashes": "~1.4.0", - "@scure/base": "~1.1.6" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/viem/node_modules/@scure/bip39": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", - "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", - "dependencies": { - "@noble/hashes": "~1.4.0", - "@scure/base": "~1.1.6" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/vlq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", @@ -26609,12 +25234,12 @@ "dev": true }, "node_modules/wagmi": { - "version": "2.10.10", - "resolved": "https://registry.npmjs.org/wagmi/-/wagmi-2.10.10.tgz", - "integrity": "sha512-J0ahwaIuo3uiUDt88zMJtkJRiW3W3kw7I7tK8XcvARNM6ODu44Sp++h5fWnXtZnkLaTaYWceg2RXN64pLD8FsA==", + "version": "2.12.4", + "resolved": "https://registry.npmjs.org/wagmi/-/wagmi-2.12.4.tgz", + "integrity": "sha512-qDyVISKHxqnX87LlkHwBMpfsp6yC7D7Er9BSI8IZlsNthQLN1I3Ih1+JzTBJg1DiLpazxmW8h7Yi4+qYhCgo6Q==", "dependencies": { - "@wagmi/connectors": "5.0.22", - "@wagmi/core": "2.11.7", + "@wagmi/connectors": "5.1.4", + "@wagmi/core": "2.13.3", "use-sync-external-store": "1.2.0" }, "funding": { @@ -26651,6 +25276,12 @@ "node": ">=12.0.0" } }, + "node_modules/walk-up-path": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz", + "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==", + "dev": true + }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -26681,6 +25312,43 @@ "defaults": "^1.0.3" } }, + "node_modules/webauthn-p256": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/webauthn-p256/-/webauthn-p256-0.0.5.tgz", + "integrity": "sha512-drMGNWKdaixZNobeORVIqq7k5DsRC9FnG201K2QjeOoQLmtSDaSsVZdkg6n5jUALJKcAG++zBPJXmv6hy0nWFg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "dependencies": { + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0" + } + }, + "node_modules/webauthn-p256/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/webauthn-p256/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/webextension-polyfill": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz", @@ -26692,9 +25360,9 @@ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "node_modules/webpack": { - "version": "5.92.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.92.1.tgz", - "integrity": "sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==", + "version": "5.93.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.93.0.tgz", + "integrity": "sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -26799,9 +25467,9 @@ } }, "node_modules/webpack-virtual-modules": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", - "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", "dev": true }, "node_modules/webpack/node_modules/@types/estree": { @@ -26811,9 +25479,9 @@ "dev": true }, "node_modules/webpack/node_modules/acorn": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", - "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -26917,13 +25585,13 @@ } }, "node_modules/which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", "dev": true, "dependencies": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", "is-date-object": "^1.0.5", "is-finalizationregistry": "^1.0.2", @@ -26932,8 +25600,8 @@ "is-weakref": "^1.0.2", "isarray": "^2.0.5", "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -26992,12 +25660,6 @@ "node": ">=0.10.0" } }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", diff --git a/package.json b/package.json index 82a01bbf..7eb8488d 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "eslint-config-next": "14.2.3", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-storybook": "^0.8.0", + "http-proxy-middleware": "^3.0.0", "pino-pretty": "^11.2.1", "postcss": "^8", "prettier": "^3.3.2", From 8f21bda329c70098d76216b11c1d3680da59053c Mon Sep 17 00:00:00 2001 From: Juraj Date: Wed, 14 Aug 2024 12:23:36 +0100 Subject: [PATCH 02/71] TOK-194: Run the dapp in Regtest (#4) * feat(regtest): allow localhost * feat: adds regtest capability with mocked endpoints --- .env.regtest | 11 + next.config.mjs | 79 +++++-- package-lock.json | 154 ++++++++++++- package.json | 2 + src/app/treasury/TreasuryContext.tsx | 6 +- src/app/user/Balances/balanceUtils.ts | 2 +- src/components/LeftSidebar/links.tsx | 8 + src/config/config.ts | 12 +- src/lib/contracts.ts | 27 +++ .../api/mocks/fetchAddressTokensEndpoint.ts | 17 ++ .../fetchNFTsOwnedByAddressAndNftAddress.ts | 17 ++ src/pages/api/mocks/fetchPricesEndpoint.ts | 36 +++ .../fetchProposalsCreatedByGovernorAddress.ts | 213 ++++++++++++++++++ 13 files changed, 554 insertions(+), 30 deletions(-) create mode 100644 .env.regtest create mode 100644 src/pages/api/mocks/fetchAddressTokensEndpoint.ts create mode 100644 src/pages/api/mocks/fetchNFTsOwnedByAddressAndNftAddress.ts create mode 100644 src/pages/api/mocks/fetchPricesEndpoint.ts create mode 100644 src/pages/api/mocks/fetchProposalsCreatedByGovernorAddress.ts diff --git a/.env.regtest b/.env.regtest new file mode 100644 index 00000000..ec1f818a --- /dev/null +++ b/.env.regtest @@ -0,0 +1,11 @@ +NEXT_PUBLIC_ENV=regtest +NEXT_PUBLIC_RIF_WALLET_SERVICES=/mock +NEXT_PUBLIC_EXPLORER=/mock +REGTEST_URL=http://localhost:4444 +# Regtest fake addresses (real testnet addresses) +REGTEST_RIF=0x19f64674d8a5b4e652319f5e239efd3bc969a1fe +REGTEST_STRIF=0xAF17f7A0124E9F360ffA484b13566b041C0f5023 +REGTEST_MULTICALL=0xcA11bde05977b3631167028862bE2a173976CA11 +REGTEST_RDEA=0xa3076bcaCc7112B7fa7c5A87CF32275296d85D64 +REGTEST_EA=0xf24761C1B57b14EeA270B1485294D93494164246 +REGTEST_TREASURY_CONTRACTS=0xf5b9Ccfe0F695195C4F2E2b5A99b9b5d79EB8089,0x8d90a8f30fBC93D9BB62758502bBCB640e59d0f4,0x1E6406ddcf3c9Ab882686d4c9d80d184e7f3bF02 diff --git a/next.config.mjs b/next.config.mjs index d4c99be9..e41a0b8c 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,35 +1,76 @@ -/** @type {import('next').NextConfig} */ +import { createRequire } from 'module'; import { createProxyMiddleware } from 'http-proxy-middleware' +import { config } from 'dotenv'; -const nextConfig = { - output: 'standalone', - rewrites: () => [ +// Load the environment variables based on the profile +config({ + path: process.env.PROFILE ? `.env.${process.env.PROFILE}` : '.env', +}); + +// Load the endpoints defined in the src/lib/endpoints.ts file +const require = createRequire(import.meta.url); +require('ts-node').register({ + compilerOptions: { + module: 'commonjs', + }, +}); +const endpoints = require('./src/lib/endpoints.ts'); + +// Define the proxy configurations +const corsBypassProxyConfig = () => ({ + target: process.env.NEXT_PUBLIC_PROXY_DESTINATION, + changeOrigin: true, + onProxyReq: proxyReq => { + proxyReq.removeHeader('Origin') + proxyReq.removeHeader('Referer') + proxyReq.removeHeader('User-Agent') + proxyReq.setHeader('User-Agent', 'Mozilla/5.0 (compatible; AcmeBot/1.0)') + }, + onProxyRes: proxyRes => { + proxyRes.headers['Access-Control-Allow-Origin'] = + window?.location?.host || 'http://localhost:3000' + }, +}); + +// Define the proxy configurations based on the network +const proxyConfigs = { + "testnet": corsBypassProxyConfig, + "regtest": undefined, +} + +// Define the rewrites based on the network +const rewrites = { + "testnet": () => [ { source: `${process.env.NEXT_PUBLIC_RIF_WALLET_SERVICES}/:path*`, destination: `${process.env.NEXT_PUBLIC_PROXY_DESTINATION}/:path*`, }, ], + "regtest": () => Object.entries(endpoints).map(([key, endpoint]) => ({ + source: `${process.env.NEXT_PUBLIC_RIF_WALLET_SERVICES}${endpoint}`.replace(/\{\{([^\}]+)\}\}/g, ':$1').split('?')[0], + destination: `/api/mocks/${key}?path=:path*`, + })), +} + +// Define the proxy paths +const proxyPaths = ['/mock', '/cors_bypass']; + +// Define the network +const network = process.env.NEXT_PUBLIC_ENV; + +// Define the next configuration +/** @type {import('next').NextConfig} */ +const nextConfig = { + output: 'standalone', + rewrites: rewrites[network], webpack: (config, { isServer }) => { if (!isServer) { config.devServer = { ...config.devServer, before: app => { app.use( - '/cors_bypass', - createProxyMiddleware({ - target: process.env.NEXT_PUBLIC_PROXY_DESTINATION, - changeOrigin: true, - onProxyReq: proxyReq => { - proxyReq.removeHeader('Origin') - proxyReq.removeHeader('Referer') - proxyReq.removeHeader('User-Agent') - proxyReq.setHeader('User-Agent', 'Mozilla/5.0 (compatible; AcmeBot/1.0)') - }, - onProxyRes: proxyRes => { - proxyRes.headers['Access-Control-Allow-Origin'] = - window?.location?.host || 'http://localhost:3000' - }, - }), + proxyPaths[network], + createProxyMiddleware(proxyConfigs[network]), ) }, } diff --git a/package-lock.json b/package-lock.json index 93a3aecd..254561be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "axios": "^1.7.2", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", + "dotenv": "^16.4.5", "ethers": "^6.13.1", "jdenticon": "^3.3.0", "lucide-react": "^0.400.0", @@ -28,6 +29,7 @@ "react-icons": "^5.2.1", "tailwind-merge": "^2.3.0", "tailwindcss-animate": "^1.0.7", + "ts-node": "^10.9.2", "viem": "^2.17.3", "wagmi": "^2.10.10", "zod": "^3.23.8" @@ -2296,6 +2298,26 @@ "node": ">=0.1.90" } }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "node_modules/@cypress/request": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", @@ -8739,6 +8761,26 @@ "@testing-library/dom": ">=7.21.4" } }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==" + }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", @@ -12663,6 +12705,11 @@ "sha.js": "^2.4.8" } }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, "node_modules/cross-fetch": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", @@ -13341,6 +13388,14 @@ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -13493,6 +13548,17 @@ "tslib": "^2.0.3" } }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -18431,6 +18497,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -24330,6 +24401,75 @@ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ts-node/node_modules/acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ts-node/node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, "node_modules/ts-pnp": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", @@ -24603,7 +24743,6 @@ "version": "5.5.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", - "devOptional": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -25118,6 +25257,11 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, "node_modules/valtio": { "version": "1.11.2", "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.11.2.tgz", @@ -25906,6 +26050,14 @@ "fd-slicer": "~1.1.0" } }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 7eb8488d..876af7a7 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "axios": "^1.7.2", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", + "dotenv": "^16.4.5", "ethers": "^6.13.1", "jdenticon": "^3.3.0", "lucide-react": "^0.400.0", @@ -34,6 +35,7 @@ "react-icons": "^5.2.1", "tailwind-merge": "^2.3.0", "tailwindcss-animate": "^1.0.7", + "ts-node": "^10.9.2", "viem": "^2.17.3", "wagmi": "^2.10.10", "zod": "^3.23.8" diff --git a/src/app/treasury/TreasuryContext.tsx b/src/app/treasury/TreasuryContext.tsx index 22cf09ef..a5725af9 100644 --- a/src/app/treasury/TreasuryContext.tsx +++ b/src/app/treasury/TreasuryContext.tsx @@ -61,9 +61,9 @@ const getBucketBalance = ( const TreasuryContextProvider = ({ children }: Props) => { const { prices } = usePricesContext() - const bucketOneBalance = useGetTreasuryBucketBalance(currentEnvTreasuryContracts[0].address as Address) - const bucketTwoBalance = useGetTreasuryBucketBalance(currentEnvTreasuryContracts[1].address as Address) - const bucketThreeBalance = useGetTreasuryBucketBalance(currentEnvTreasuryContracts[2].address as Address) + const bucketOneBalance = useGetTreasuryBucketBalance(currentEnvTreasuryContracts?.at(0)?.address as Address) + const bucketTwoBalance = useGetTreasuryBucketBalance(currentEnvTreasuryContracts?.at(1)?.address as Address) + const bucketThreeBalance = useGetTreasuryBucketBalance(currentEnvTreasuryContracts?.at(2)?.address as Address) const bucketOne: Bucket = useMemo( () => getBucketBalance(bucketOneBalance, prices), diff --git a/src/app/user/Balances/balanceUtils.ts b/src/app/user/Balances/balanceUtils.ts index 31f1602b..0f8fcaac 100644 --- a/src/app/user/Balances/balanceUtils.ts +++ b/src/app/user/Balances/balanceUtils.ts @@ -30,7 +30,7 @@ export const getTokenBalance = ( for (let equivalentSymbol of equivalentSymbols) { const tokenData = arrayToSearch.find( token => - token.symbol.toLowerCase() === equivalentSymbol.toLowerCase() && + token.symbol?.toLowerCase() === equivalentSymbol.toLowerCase() && token.contractAddress.toLowerCase() === currentContract.toLowerCase(), ) if (tokenData) { diff --git a/src/components/LeftSidebar/links.tsx b/src/components/LeftSidebar/links.tsx index 70b02d83..2f39471e 100644 --- a/src/components/LeftSidebar/links.tsx +++ b/src/components/LeftSidebar/links.tsx @@ -1,3 +1,10 @@ +const regtest = { + registerRns: '', + tokenBridge: '', + flyover: '', + readMore: '', +} + const testnet = { registerRns: 'https://testnet.manager.rns.rifos.org/', tokenBridge: 'https://testnet.tokenbridge.rsk.co/', @@ -13,6 +20,7 @@ const mainnet = { } const environments = { + regtest, testnet, mainnet, } diff --git a/src/config/config.ts b/src/config/config.ts index c07304ec..f53a01c9 100644 --- a/src/config/config.ts +++ b/src/config/config.ts @@ -3,19 +3,19 @@ import { rootstockTestnet } from 'viem/chains' import { createConfig, http } from 'wagmi' import { metaMask } from 'wagmi/connectors' -const rskLocalhost = defineChain({ - id: 1337, - name: 'RSK Localhost', - nativeCurrency: { name: 'RBTC', symbol: 'RBTC', decimals: 18 }, +const rskRegtest = defineChain({ + id: 33, + name: 'RSK Regtest', + nativeCurrency: { name: 'tRBTC', symbol: 'tRBTC', decimals: 18 }, rpcUrls: { default: { - http: ['http://localhost:8545'], + http: [process.env.REGTEST_URL || 'http://localhost:4444'], }, }, }) export const config = createConfig({ - chains: [rootstockTestnet, rskLocalhost], + chains: [rskRegtest, rootstockTestnet], client({ chain }) { return createClient({ chain, transport: http() }) }, diff --git a/src/lib/contracts.ts b/src/lib/contracts.ts index 3bad31ad..d7f36371 100644 --- a/src/lib/contracts.ts +++ b/src/lib/contracts.ts @@ -1,6 +1,13 @@ import { Address } from 'viem' import { EarlyAdoptersNFTAbi } from './abis/EarlyAdoptersNFTAbi' +const regtest = { + RIF: process.env.REGTEST_RIF || '0x19f64674d8a5b4e652319f5e239efd3bc969a1fe', // tRIF + stRIF: process.env.REGTEST_STRIF || '0xAF17f7A0124E9F360ffA484b13566b041C0f5023', + rBTC: '0x0000000000000000000000000000000000000000', + multicall: process.env.REGTEST_MULTICALL || '0xcA11bde05977b3631167028862bE2a173976CA11', +} + const testnet = { RIF: '0x19f64674d8a5b4e652319f5e239efd3bc969a1fe', // tRIF stRIF: '0xAF17f7A0124E9F360ffA484b13566b041C0f5023', @@ -16,6 +23,7 @@ const mainnet = { } const contracts = { + regtest, testnet, mainnet, } @@ -24,6 +32,11 @@ export type SupportedTokens = keyof typeof testnet | keyof typeof mainnet // @ts-ignore export const currentEnvContracts = contracts[process.env.NEXT_PUBLIC_ENV] as typeof testnet +const regtestNft = { + RDEA: process.env.REGTEST_RDEA || '0xa3076bcaCc7112B7fa7c5A87CF32275296d85D64' as Address, // RIF DAO Early Adopters + EA: process.env.REGTEST_EA || '0xf24761C1B57b14EeA270B1485294D93494164246' as Address, // Early Adopters +} + const testnetNft = { RDEA: '0xa3076bcaCc7112B7fa7c5A87CF32275296d85D64' as Address, // RIF DAO Early Adopters EA: '0xf24761C1B57b14EeA270B1485294D93494164246' as Address, // Early Adopters @@ -36,6 +49,7 @@ const mainnetNft = { } const contractsNFT = { + regtest: regtestNft, testnet: testnetNft, mainnet: mainnetNft, } @@ -46,6 +60,12 @@ export const abiContractsMap: { [key: string]: any } = { [currentEnvNFTContracts?.EA.toLowerCase()]: EarlyAdoptersNFTAbi, } +const regtestTreasuryContractsConfig = process.env.REGTEST_TREASURY_CONTRACTS; +const treasuryContractsRegtest = regtestTreasuryContractsConfig && regtestTreasuryContractsConfig.split(',').map((contract: string, i) => ({ + name: `Bucket ${i + 1}`, + address: contract, +})); + const treasuryContractsTestnet = [ { name: 'Bucket 1', @@ -62,6 +82,7 @@ const treasuryContractsTestnet = [ ] const contractsTreasury = { + regtest: treasuryContractsRegtest, testnet: treasuryContractsTestnet, } @@ -70,6 +91,11 @@ export const currentEnvTreasuryContracts = contractsTreasury[ process.env.NEXT_PUBLIC_ENV ] as typeof treasuryContractsTestnet +// TODO: config +const regtestGovernor = { + value: '0x00ca74491D9493bFe5451246C8c72849Ba4A7F9D', +} + const testnetGovernor = { value: '0x00ca74491D9493bFe5451246C8c72849Ba4A7F9D', } @@ -78,6 +104,7 @@ const mainnetGovernor = { } const governorContracts = { + regtest: regtestGovernor, testnet: testnetGovernor, mainnet: mainnetGovernor, } diff --git a/src/pages/api/mocks/fetchAddressTokensEndpoint.ts b/src/pages/api/mocks/fetchAddressTokensEndpoint.ts new file mode 100644 index 00000000..0ef2b037 --- /dev/null +++ b/src/pages/api/mocks/fetchAddressTokensEndpoint.ts @@ -0,0 +1,17 @@ +// Usage: http://localhost:3000/api/mocks/fetchAddressTokensEndpoint?address=0x123&chainId=1 +import { NextApiRequest, NextApiResponse } from 'next'; + +export default function handler(req: NextApiRequest, res: NextApiResponse) { + const { address, chainId } = req.query; + + res.status(200).json({ + message: "Mock response for fetching address tokens", + tokens: [ + { token: 'token1', chainId }, + { token: 'token2', chainId }, + { token: 'token3', chainId }, + ], + address, + chainId, + }); +} diff --git a/src/pages/api/mocks/fetchNFTsOwnedByAddressAndNftAddress.ts b/src/pages/api/mocks/fetchNFTsOwnedByAddressAndNftAddress.ts new file mode 100644 index 00000000..03beeea6 --- /dev/null +++ b/src/pages/api/mocks/fetchNFTsOwnedByAddressAndNftAddress.ts @@ -0,0 +1,17 @@ +// Usage: http://localhost:3000/api/mocks/fetchNFTsOwnedByAddressAndNftAddress?address=0x123&nftAddress=0x456 +import { NextApiRequest, NextApiResponse } from 'next'; + +export default function handler(req: NextApiRequest, res: NextApiResponse) { + const { address, nftAddress } = req.query; + + res.status(200).json({ + message: "Mock response for fetching NFTs owned by address", + nfts: [ + { nft: 'nft1', nftAddress }, + { nft: 'nft2', nftAddress }, + { nft: 'nft3', nftAddress }, + ], + ownerAddress: address, + nftAddress, + }); +} diff --git a/src/pages/api/mocks/fetchPricesEndpoint.ts b/src/pages/api/mocks/fetchPricesEndpoint.ts new file mode 100644 index 00000000..2a5c454d --- /dev/null +++ b/src/pages/api/mocks/fetchPricesEndpoint.ts @@ -0,0 +1,36 @@ +// Usage: http://localhost:3000/api/mocks/fetchPricesEndpoint?address=0x123&chainId=1 +import { NextApiRequest, NextApiResponse } from 'next'; + +const addressToPrice: Record = {}; + +export default function handler(req: NextApiRequest, res: NextApiResponse) { + const { addresses, convert } = req.query; + + if (!addresses) { + return res.status(400).json({ + error: "Missing required parameter 'addresses'", + }); + } + + res.status(200).json({ + message: "Mock response for fetching prices", + prices: { + addresses: addresses.toString().split(',').map((address) => { + const price = addressToPrice[address] || Math.random() * 1000; + addressToPrice[address] = price; + + return { + address: { + "price": 0.07601445824978191, + "lastUpdated": "2024-08-12T11:51:00.000Z" + }, + "0x0000000000000000000000000000000000000000": { + "price": 59709.08531329423, + "lastUpdated": "2024-08-12T11:50:00.000Z" + } + }; + }), + convert, + }, + }); +} diff --git a/src/pages/api/mocks/fetchProposalsCreatedByGovernorAddress.ts b/src/pages/api/mocks/fetchProposalsCreatedByGovernorAddress.ts new file mode 100644 index 00000000..d29034d8 --- /dev/null +++ b/src/pages/api/mocks/fetchProposalsCreatedByGovernorAddress.ts @@ -0,0 +1,213 @@ +// Usage: http://localhost:3000/api/mocks/fetchProposalsCreatedByGovernorAddress?address=0x1234567890&topic0=0x1234567890 +import { NextApiRequest, NextApiResponse } from 'next'; + +export default function handler(req: NextApiRequest, res: NextApiResponse) { + const { address, topic0 } = req.query; + + res.status(200).json([ + { + "address": address, + "blockNumber": "0x52802f", + "data": "0x44c8bf3e66e9f5dc59a7b12f3dd1c424cbd54b13d37ba51ccc13afcfd61e567d000000000000000000000000a2193a393aa0c94a4d52893496f02b56c61c36a10000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000528030000000000000000000000000000000000000000000000000000000000052812000000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d6eb12591559c42e28d672197265b331b1ad867d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000fbd1cb816f073c554296bfff2be2ddb66ced83fd0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002f46697273742070726f706f73616c3b546869732069732074686520766572792066697273742070726f706f73616c2e0000000000000000000000000000000000", + "gasPrice": "0x3e252e0", + "gasUsed": "0x4c14c", + "logIndex": "0x0", + "timeStamp": "0x66b297b6", + "topics": [ + "0x7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0", + null, + null, + null + ], + "transactionHash": "0x267be406359738f9660346d9cb0d07ccfbdce3798812cb4287d4aa6c8d406acd", + "transactionIndex": "0x3" + }, + { + "address": address, + "blockNumber": "0x52970b", + "data": "0x9f434cd9ec5b312a98a698ba58d37a10f5a8a08e72906ca6a2dff35dbf7dc63000000000000000000000000064a5c098532848372f1e5754ac890b65a28faea10000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000052970c00000000000000000000000000000000000000000000000000000000005297fc00000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d6eb12591559c42e28d672197265b331b1ad867d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000044a9059cbb00000000000000000000000064a5c098532848372f1e5754ac890b65a28faea10000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000374672616e63697350726f706f73616c54657374382d382d323032343b4672616e63697350726f706f73616c54657374382d382d32303234000000000000000000", + "gasPrice": "0x3e252e0", + "gasUsed": "0x4875d", + "logIndex": "0x0", + "timeStamp": "0x66b4dd48", + "topics": [ + "0x7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0", + null, + null, + null + ], + "transactionHash": "0x19d341969e62953ad02041031ff29473d85fd5529491d32dc9288d5fc15372c8", + "transactionIndex": "0x3" + }, + { + "address": address, + "blockNumber": "0x52974b", + "data": "0x05af2ae3bf101f0d27798afa4071a556a2c16c1ecf74161f3387eb542ebb65b200000000000000000000000081df35317df983e419630908ef6cb2bb48ce21ca0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000052974c000000000000000000000000000000000000000000000000000000000052983c00000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d6eb12591559c42e28d672197265b331b1ad867d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000044a9059cbb00000000000000000000000081df35317df983e419630908ef6cb2bb48ce21ca0000000000000000000000000000000000000000000000008ac7230489e800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000286c6567616c2073616d706c652070726f706f73616c3b72616e646f6d206465736372697074696f6e000000000000000000000000000000000000000000000000", + "gasPrice": "0x3e252e0", + "gasUsed": "0x48660", + "logIndex": "0x0", + "timeStamp": "0x66b4e393", + "topics": [ + "0x7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0", + null, + null, + null + ], + "transactionHash": "0x42a0fc2ab878e20c38d32145a17a5ca67e1438247b4818bf91ceb6c9db02364e", + "transactionIndex": "0x3" + }, + { + "address": address, + "blockNumber": "0x529770", + "data": "0xcd04dec64e0e759a472a95d2d48c971e9b83b21f05c2a527080a4e76ca6d42be00000000000000000000000081df35317df983e419630908ef6cb2bb48ce21ca0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000529771000000000000000000000000000000000000000000000000000000000052986100000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d6eb12591559c42e28d672197265b331b1ad867d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000044a9059cbb00000000000000000000000081df35317df983e419630908ef6cb2bb48ce21ca0000000000000000000000000000000000000000000000008ac7230489e8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f72616e646f6d2070726f706f73616c3b646f65736e2774206d61747465722000", + "gasPrice": "0x3e252e0", + "gasUsed": "0x48415", + "logIndex": "0x0", + "timeStamp": "0x66b4e6e2", + "topics": [ + "0x7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0", + null, + null, + null + ], + "transactionHash": "0x1635437719e23c5fb65b251754e524a3d029f2470b796dd438f52dc22abf3cee", + "transactionIndex": "0x3" + }, + { + "address": address, + "blockNumber": "0x5297d1", + "data": "0x8b5e26cfcce3af9eeba8877e9c683ce45ddecdb3beb28c45b8a707ab63f422bc00000000000000000000000081df35317df983e419630908ef6cb2bb48ce21ca0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000005297d200000000000000000000000000000000000000000000000000000000005298c200000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d6eb12591559c42e28d672197265b331b1ad867d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000044a9059cbb00000000000000000000000081df35317df983e419630908ef6cb2bb48ce21ca0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001274657374206b656e203b61736466617364660000000000000000000000000000", + "gasPrice": "0x3e252e0", + "gasUsed": "0x48379", + "logIndex": "0x0", + "timeStamp": "0x66b4f034", + "topics": [ + "0x7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0", + null, + null, + null + ], + "transactionHash": "0xc624694517fd3c6edbb642fe26f6b91055f2365ab65472634ab27eef41de12ec", + "transactionIndex": "0x0" + }, + { + "address": address, + "blockNumber": "0x52a49f", + "data": "0x6331c3481da3e6d350c7de96cc0c753c49ec8bbdd08df1ff1e818e613cfb7b4500000000000000000000000081df35317df983e419630908ef6cb2bb48ce21ca0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000052a4a0000000000000000000000000000000000000000000000000000000000052a59000000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d6eb12591559c42e28d672197265b331b1ad867d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000044a9059cbb00000000000000000000000081df35317df983e419630908ef6cb2bb48ce21ca00000000000000000000000000000000000000000052b7d2dcc80cd2e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001d73616d706c652070726f706f73616c3b67697665206d65206d6f6e6579000000", + "gasPrice": "0x3e252e0", + "gasUsed": "0x48682", + "logIndex": "0x0", + "timeStamp": "0x66b635be", + "topics": [ + "0x7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0", + null, + null, + null + ], + "transactionHash": "0x94190aabed86b79d2ef5d136bcfeac93fc769ee2dbf7bdca2595b601a3e1c69c", + "transactionIndex": "0x2" + }, + { + "address": address, + "blockNumber": "0x52a8aa", + "data": "0x7f6750351b7f8538f9cd4d5332febdf746cdb47153e2bcfa9585c597c6ed230500000000000000000000000081df35317df983e419630908ef6cb2bb48ce21ca0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000052a8ab000000000000000000000000000000000000000000000000000000000052a99b00000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d6eb12591559c42e28d672197265b331b1ad867d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000044a9059cbb00000000000000000000000081df35317df983e419630908ef6cb2bb48ce21ca0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004120202020202020202020202020202020202020202020202020202020202020202020202020202020647366646664663b73616d706c652064656372697074696f6e00000000000000000000000000000000000000000000000000000000000000", + "gasPrice": "0x3e252e0", + "gasUsed": "0x48c20", + "logIndex": "0x0", + "timeStamp": "0x66b69824", + "topics": [ + "0x7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0", + null, + null, + null + ], + "transactionHash": "0x8a344f5ebeba9bc6e82878fc8b6ac09b733931b2ed4d1371e3a12cc6d97dc28e", + "transactionIndex": "0x3" + }, + { + "address": address, + "blockNumber": "0x52a8aa", + "data": "0x7f6750351b7f8538f9cd4d5332febdf746cdb47153e2bcfa9585c597c6ed230500000000000000000000000081df35317df983e419630908ef6cb2bb48ce21ca0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000052a8ab000000000000000000000000000000000000000000000000000000000052a99b00000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d6eb12591559c42e28d672197265b331b1ad867d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000044a9059cbb00000000000000000000000081df35317df983e419630908ef6cb2bb48ce21ca0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004120202020202020202020202020202020202020202020202020202020202020202020202020202020647366646664663b73616d706c652064656372697074696f6e00000000000000000000000000000000000000000000000000000000000000", + "gasPrice": "0x3e252e0", + "gasUsed": "0x48c20", + "logIndex": "0x0", + "timeStamp": "0x66b69824", + "topics": [ + "0x7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0", + null, + null, + null + ], + "transactionHash": "0x8a344f5ebeba9bc6e82878fc8b6ac09b733931b2ed4d1371e3a12cc6d97dc28e", + "transactionIndex": "0x3" + }, + { + "address": address, + "blockNumber": "0x52a8ae", + "data": "0xdd4815af389329a4b1265593c26c0bac9b6b758fe31c4073298edae4fcceedf500000000000000000000000081df35317df983e419630908ef6cb2bb48ce21ca0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000052a8af000000000000000000000000000000000000000000000000000000000052a99f00000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d6eb12591559c42e28d672197265b331b1ad867d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000044a9059cbb00000000000000000000000081df35317df983e419630908ef6cb2bb48ce21ca0000000000000000000000000000000000000000000000008ac72306ddf3e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023646563696d616c2070726f706f73616c3b73616d706c65206465736372697074696f6e0000000000000000000000000000000000000000000000000000000000", + "gasPrice": "0x3e252e0", + "gasUsed": "0x4889d", + "logIndex": "0x0", + "timeStamp": "0x66b698a9", + "topics": [ + "0x7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0", + null, + null, + null + ], + "transactionHash": "0x4dd0ae438b412b4ddaccfaaf6b1da40152fd2ae0a66ddcc7cc0f341767c981b2", + "transactionIndex": "0x1" + }, + { + "address": address, + "blockNumber": "0x52a8b0", + "data": "0x1e2421c3ca150b3410b40ced162fce694ef8296b22a9bcf1c5a7edac4192039000000000000000000000000081df35317df983e419630908ef6cb2bb48ce21ca0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000052a8b1000000000000000000000000000000000000000000000000000000000052a9a100000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000d6eb12591559c42e28d672197265b331b1ad867d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000044a9059cbb00000000000000000000000081df35317df983e419630908ef6cb2bb48ce21ca0000000000000000000000000000000000000000000000000f6b75aae98a3c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1d73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f3b73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f73616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f662063686172732073616d706c65206d6178206e756d626572206f000000", + "gasPrice": "0x3e252e0", + "gasUsed": "0x5ca9a", + "logIndex": "0x0", + "timeStamp": "0x66b69916", + "topics": [ + "0x7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0", + null, + null, + null + ], + "transactionHash": "0x0652cdf854b32b5bce3a68663d0b222601b2782035432348501bfa9d1257cb8a", + "transactionIndex": "0x2" + }, + { + "address": address, + "blockNumber": "0x52b2ab", + "data": "0x1e70eec635e53ff45732dfd257e553ebe6754e486f962153ef57012f4485e49b00000000000000000000000064a5c098532848372f1e5754ac890b65a28faea10000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000052b2ac000000000000000000000000000000000000000000000000000000000052b39c00000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000019f64674d8a5b4e652319f5e239efd3bc969a1fe00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000044a9059cbb00000000000000000000000064a5c098532848372f1e5754ac890b65a28faea10000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000194672616e636973546573743b5465737474657372747465737400000000000000", + "gasPrice": "0x3e252e0", + "gasUsed": "0x483cd", + "logIndex": "0x0", + "timeStamp": "0x66b7971a", + "topics": [ + "0x7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0", + null, + null, + null + ], + "transactionHash": "0x1b320646ad1784ddca10eb04937a86ba1e4c6835f11520415e785ee5b8603a70", + "transactionIndex": "0x3" + }, + { + "address": address, + "blockNumber": "0x52b2de", + "data": "0x9bf1b826ccf22f7cdc0e9f3afcf460f153c00968d85add9e4adf137d401e01ae00000000000000000000000064a5c098532848372f1e5754ac890b65a28faea10000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000052b2df000000000000000000000000000000000000000000000000000000000052b3cf00000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000019f64674d8a5b4e652319f5e239efd3bc969a1fe00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000044a9059cbb00000000000000000000000064a5c098532848372f1e5754ac890b65a28faea10000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001f4672616e63697354657374323b546573746572206c696b65206120626f737300", + "gasPrice": "0x3e252e0", + "gasUsed": "0x48415", + "logIndex": "0x0", + "timeStamp": "0x66b79c05", + "topics": [ + "0x7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e0", + null, + null, + null + ], + "transactionHash": "0x340de266b091b0177d4aabb59dc7f97bab7fb58d572230ee3a93daf78a52eb3f", + "transactionIndex": "0x0" + } + ]); +} From 32c831e53d86e609e4ca7dac89464b092b496f16 Mon Sep 17 00:00:00 2001 From: Antonio Morrone Date: Thu, 29 Aug 2024 10:24:32 +0200 Subject: [PATCH 03/71] Sync upstream develop (#7) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * DAO-545 Added alert component to use whenever we're creating a proposal. (#85) * DAO-545 Added alert component to use whenever we're creating a proposal. * Linted * change buttons behavior * Changed default asset to RIF. Fixed Alert dismiss on the close icon. * Removed @TODO --------- Co-authored-by: Rodrigo Santana Gonçalves * Update package.json * DAO-555 Added voting power at snapshot. (#87) * change insufficient voting power message (#90) * DAO-559: Invalid USD conversion for RIF and stRIF (#89) * do not show usd price when is not possible to get it * format currency * format usd decimals * format small numbers * handle scientific notation * DAO-547: Fix invalid proposals (#91) * validate decimal places while user inputs the amount * minimum amount of 1 rif * fix NaN validation * calculate amount usd conversion * format treaury fiat amount * fix build * fix InputNumber props error * Added a new linting step to grab linting issues before merging. (#92) * PROPOSALS_OPTIMIZATION - Will now load proposals from cache in-memory (server) (#93) * PROPOSALS_OPTIMIZATION - Fixed caching (#94) * DAO-560 Added Footer in MainContainer.tsx (#96) * DAO-608 Add proposal to queue (#98) * DAO-588 Updated footer Brand to RootstockCollective (#97) * DAO-611: Update contract addresses (#99) * update addresses * change to RBTC * rename some contracts constants * fix e2e * DAO-590 Changed confirm button by Continue on Step Allowance (#100) * DAO-557: The number of decimals displayed should be the same across the dApp (#95) * treasury page * proposal page * user page * rename some input components * move form textarea and label * use input number on stake modal * format proposal votes * fix build * fix proposal form validation * DAO-555 We will now check the balance at snapshot to make sure that t… (#102) * DAO-555 We will now check the balance at snapshot to make sure that the user can vote. * Typofix * Removed followers button from communities (#103) * Will not go to new page when clicking community (#104) * Actions will show proper values. (#105) * Modified proposal create to use RIF (#106) * Added missing validation for casting vote (#107) * We will now have the Execute button. (#108) * DAO-597: Implement loading spinner (#101) * add loading spinner component * add loading to protected content * add loading button * add alert message for canceling transaction * loading request allowance * add loading to confirm staking button * add loading to unstaking button * pending claiming nft * fix build * DAO-557: Fix number of decimals displayed (#109) * adjust decimals * put loading spinner to vote and queue buttons * handle user cancel queuing proposal * fix voting power (#110) * feat: useCommunity hook for querying NFT view functions * fix: remove unused import * Bump the npm_and_yarn group across 1 directory with 3 updates (#83) Bumps the npm_and_yarn group with 2 updates in the / directory: [ws](https://github.com/websockets/ws) and [wagmi](https://github.com/wevm/wagmi/tree/HEAD/packages/react). Updates `ws` from 6.2.3 to 8.17.1 - [Release notes](https://github.com/websockets/ws/releases) - [Commits](https://github.com/websockets/ws/compare/6.2.3...8.17.1) Updates `wagmi` from 2.10.10 to 2.12.1 - [Release notes](https://github.com/wevm/wagmi/releases) - [Changelog](https://github.com/wevm/wagmi/blob/main/packages/react/CHANGELOG.md) - [Commits](https://github.com/wevm/wagmi/commits/wagmi@2.12.1/packages/react) Updates `fast-xml-parser` from 4.4.0 to 4.4.1 - [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases) - [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md) - [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v4.4.0...v4.4.1) --- updated-dependencies: - dependency-name: ws dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: wagmi dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: fast-xml-parser dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump the npm_and_yarn group across 1 directory with 2 updates (#113) Bumps the npm_and_yarn group with 2 updates in the / directory: [axios](https://github.com/axios/axios) and [elliptic](https://github.com/indutny/elliptic). Updates `axios` from 1.7.2 to 1.7.4 - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v1.7.2...v1.7.4) Updates `elliptic` from 6.5.5 to 6.5.7 - [Commits](https://github.com/indutny/elliptic/compare/v6.5.5...v6.5.7) --- updated-dependencies: - dependency-name: axios dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: elliptic dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix: NFT address in .env * Dao 627 (#114) * DAO-627 Added new method to transfer erc20 tokens from new treasury * If tokenAddress is the zero address, then use the normal transfer method. * Added an enhancement that shows how many blocks are left until a proposal is closed. (#115) * DAO-638 Removed container class and added margin-right to main container. (#118) * DAO-585 Added MetricsSection.tsx in the treasury page. Fixed proposals error. (#117) * fix: will show Execute button only when the proposal is queued. (#119) fix: will show vote on chain only when the proposal is active. fix: will show put on queue when the proposal is successful. fix: removed Publish button on the second step. fix: proposals will be truncated 20 characters. fix: removed duplicated/not needed css * DAO-621: Implement Alert Messages (#116) * create alert context provider * add pending message for staking * show message for changing staking status * clear message on route change * create TxStatusMessage component * check for unstaking tx * fix toFixed isNaN * fix build * match design alert * remove unused files * add alert messages for queuing * fix build * handle queue errors * DAO-637: fix alerts (#122) * DAO-633: Fix User page (#121) * disable stake and unstake button if don't have enough balance * user page changes * add font sora as default * adjust community header size * DAO-627 fix: will change validation when the token selected is RBTC (… (#123) * DAO-627 fix: will change validation when the token selected is RBTC (zero address) * fix: updated validation message. feat: added RBTC icon. * fix: moved rbtc to a separated file. * fix: will disable button when put on queue is loading (#124) * CopyButton component (#125) * feat: copy button component * fix(CopyButton): fix min width * refactor(CopyButton): simplify the component * refactor(CopyButton): use children instead of label * refactor(CopyButton): rename vars * fix: updated margin right to be 16px for the main container (#126) * DAO-632: fix Wallet not connected (#120) * modal changes * add icon * change to normal paragraph * DAO-634 fix: added icons that match the design. (#127) fix: added startIconClasses to button so that we can modify the classes of the container that has the icons. fix: added margin top of 4rem per design requirements between buttons and useful links. * fix treasury amount (#128) * DAO-614 fix: fixed overflow. feat: added NFT details. fix: added new endpoint to fetch nftinfo fix: hidden website links for now * New proposal should be listed at the top (#131) * chore: change Early Adopters community description and layout (#132) * fix: added RBTC minimum amount (#133) * fix: fixed sidemenu size - the padding was reducing the size. (#134) * Upgrade next and fix warning for images (#137) * build: update package-lock * fix: check if user is already connected - if true then redirect him t… (#135) * fix: check if user is already connected - if true then redirect him to /user else do nothing * fix: modified to Redirecting * Fix Invalid message when rejecting a voting operation (#138) * DAO-636: fix modals (#129) * font-family * skip allowance step if has enough amount allowed * fix max steps checking * adjust custom staking footer * prevent calling onGoNext twice * make cancel and requet allowance buttons in the same row * wait for pendind allowance request * adjust paddings * show message when allowance fails * fix allowance tx status checking * adjust last staking step * unset dismissed when change txHash * fix build * let the user know he has enough allowance to stake * fix: will check every 5s if the user has enough threshold to vote. Will also check if the user has voted (#140) * fix: added Staked to STRIF (#141) * style: fix lint * chore: update regtest env config * build: update .env.testnet.local * fix: set RIF wallet services with absolute path and change rewrites to use pathname * fix: remove url import * fix: invalid URL when linting and running e2e tests --------- Signed-off-by: dependabot[bot] Co-authored-by: Francis Rodriguez <39339295+Freshenext@users.noreply.github.com> Co-authored-by: Rodrigo Santana Gonçalves Co-authored-by: Jesse Clark Co-authored-by: Alex Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Francis Rodriguez --- .env.prod | 9 + .env.regtest | 25 +- .env.testnet | 11 + .env.testnet.local | 11 + .github/workflows/lint.yml | 1 + next.config.mjs | 43 +-- package-lock.json | 150 ++++++--- package.json | 12 +- .../Early-Adopters-Collection-Cover.png | Bin 0 -> 498086 bytes public/images/connect-wallet-icon.svg | 18 + public/images/sidemenu/communities.svg | 3 + public/images/sidemenu/proposals.svg | 3 + public/images/sidemenu/treasury.svg | 3 + public/images/sidemenu/user.svg | 3 + public/loading.json | 1 + src/app/communities/CommunityItem.tsx | 14 +- src/app/communities/page.tsx | 8 +- src/app/login/Login.tsx | 36 +- src/app/proposals/HeaderSection.tsx | 4 +- src/app/proposals/LatestProposalsTable.tsx | 5 +- src/app/proposals/StatusColumn.tsx | 2 +- src/app/proposals/api/route.ts | 48 +++ src/app/proposals/hooks/useCreateProposal.ts | 53 ++- .../hooks/useFetchLatestProposals.ts | 16 +- .../proposals/hooks/useGetProposalDeadline.ts | 28 ++ .../proposals/hooks/useGetProposalVotes.ts | 5 +- src/app/proposals/hooks/useVotingPower.ts | 6 +- .../hooks/useVotingPowerAtSnapshot.ts | 47 +++ src/app/proposals/page.tsx | 14 +- src/app/proposals/shared/utils.ts | 46 ++- src/app/providers/AlertProvider.tsx | 31 ++ src/app/providers/ContextProviders.tsx | 5 +- src/app/providers/hooks/useFetchNftInfo.ts | 9 + src/app/providers/index.ts | 1 + src/app/treasury/MetricsSection.tsx | 20 ++ src/app/treasury/TokenHoldings.tsx | 3 +- src/app/treasury/TokenHoldingsStRIF.tsx | 13 +- .../treasury/TotalTokenHoldingsSection.tsx | 13 +- src/app/treasury/TreasuryContext.tsx | 27 +- src/app/treasury/TreasurySection.tsx | 27 +- .../hooks/useGetTreasuryBucketBalance.ts | 2 +- src/app/treasury/page.tsx | 4 +- src/app/user/Balances/BalancesSection.tsx | 16 +- src/app/user/Balances/RenderTokenPrice.tsx | 6 +- src/app/user/Balances/RenderTokenSymbol.tsx | 4 +- src/app/user/Balances/RenderTotalBalance.tsx | 11 +- src/app/user/Balances/StakeRIFCell.tsx | 10 +- src/app/user/Balances/UnStakeRIFCell.tsx | 10 +- src/app/user/Balances/actions.ts | 24 +- src/app/user/Balances/balanceUtils.ts | 8 +- .../user/Balances/context/BalancesContext.tsx | 14 +- .../Balances/hooks/useGetAddressBalances.ts | 5 +- .../Balances/hooks/useGetAddressTokens.ts | 22 +- .../Balances/hooks/useGetSpecificPrices.ts | 13 +- .../user/Communities/CommunitiesSection.tsx | 2 +- src/app/user/Communities/JoinACommunity.tsx | 4 +- src/app/user/Stake/CustomStakingRIFFooter.tsx | 66 ++++ src/app/user/Stake/StakeInput.tsx | 13 +- src/app/user/Stake/StakePreview.tsx | 19 +- src/app/user/Stake/StakePreviewBalance.tsx | 11 +- src/app/user/Stake/StakeRIF.tsx | 112 +++---- src/app/user/Stake/StakeStatus.tsx | 25 +- src/app/user/Stake/StakingContext.tsx | 28 +- src/app/user/Stake/StakingSteps.tsx | 16 +- src/app/user/Stake/Steps/StepAllowance.tsx | 62 +++- src/app/user/Stake/Steps/StepOne.tsx | 13 +- src/app/user/Stake/Steps/StepThree.tsx | 12 +- src/app/user/Stake/Steps/StepTwo.tsx | 26 +- src/app/user/Stake/Steps/stepsUtils.tsx | 3 +- src/app/user/Stake/UnStakingSteps.tsx | 14 +- src/app/user/Stake/hooks/useStakeRIF.tsx | 137 +++----- src/app/user/Stake/hooks/useSteps.ts | 12 +- src/app/user/Stake/hooks/useUnstakeStRIF.tsx | 5 +- src/app/user/Stake/types.ts | 2 +- src/app/user/page.tsx | 9 +- src/app/user/types.ts | 2 +- src/components/Alert/Alert.tsx | 43 +++ src/components/Alert/index.ts | 1 + src/components/Button/Button.tsx | 17 +- .../CopyButton/CopyButton.stories.tsx | 115 +++++++ src/components/CopyButton/CopyButton.tsx | 101 ++++++ src/components/CopyButton/index.ts | 1 + src/components/Footer/Footer.tsx | 14 +- src/components/Form/Form.stories.tsx | 14 +- src/components/Form/Form.tsx | 19 +- .../Textarea.tsx => Form/FormInput.tsx} | 18 +- src/components/Form/FormInputNumber.tsx | 29 ++ src/components/Form/FormTextarea.tsx | 40 +++ src/components/Form/LabelForm.tsx | 21 -- src/components/Form/index.ts | 3 + src/components/Header/AccountAddress.tsx | 14 +- .../Input.stories.tsx} | 19 +- src/components/Input/Input.tsx | 113 +++++-- src/components/Input/InputNumber.tsx | 25 ++ src/components/LeftSidebar/LeftSidebar.tsx | 2 +- src/components/LeftSidebar/SidebarButtons.tsx | 33 +- src/components/LeftSidebar/UsefulLinks.tsx | 2 +- src/components/LeftSidebar/links.tsx | 4 +- .../LoadingSpinner/LoadingSpinner.stories.tsx | 15 + .../LoadingSpinner/LoadingSpinner.tsx | 9 + src/components/LoadingSpinner/index.ts | 1 + .../MainContainer/MainContainer.tsx | 66 ++-- src/components/Modal/ConnectWalletModal.tsx | 21 +- .../Modal/DisconnectWalletModal.tsx | 2 +- src/components/Modal/Modal.tsx | 2 +- src/components/Modal/VoteProposalModal.tsx | 26 +- .../ProtectedContent/ProtectedContent.tsx | 3 +- src/components/TextInput/TextInput.tsx | 88 ----- src/components/TextInput/index.ts | 1 - src/components/Textarea/index.ts | 1 - .../TxStatusMessage/TxStatusMessage.tsx | 60 ++++ src/components/TxStatusMessage/index.ts | 1 + src/components/Typography/Span.tsx | 7 +- src/components/Typography/Typography.tsx | 2 +- src/lib/abis/DAOTreasuryAbi.ts | 238 ++++++++++++++ src/lib/abis/EarlyAdoptersNFTAbi.ts | 141 ++++---- src/lib/constants.ts | 16 + src/lib/contracts.ts | 127 ++------ src/lib/endpoints.ts | 2 + src/lib/utils.ts | 76 ++++- .../api/mocks/fetchAddressTokensEndpoint.ts | 8 +- .../fetchNFTsOwnedByAddressAndNftAddress.ts | 8 +- src/pages/api/mocks/fetchPricesEndpoint.ts | 62 ++-- .../fetchProposalsCreatedByGovernorAddress.ts | 308 +++++++----------- src/pages/communities/nft/[address].tsx | 118 ++++--- src/pages/proposals/[id].tsx | 187 +++++++++-- src/pages/proposals/create.tsx | 227 +++++++------ src/shared/defaultNFT.ts | 2 - src/shared/hooks/useCidsAvailable.ts | 13 - src/shared/hooks/useCommunity.ts | 85 +++++ src/shared/hooks/useExecuteProposal.ts | 71 ++++ src/shared/hooks/useMintNFT.ts | 18 +- src/shared/hooks/useNFTImage.ts | 79 ----- src/shared/hooks/useNFTMeta.ts | 56 ++++ src/shared/hooks/useQueueProposal.ts | 35 ++ .../hooks/useVoteOnProposal.ts} | 17 +- src/shared/rbtcIconSrc.ts | 2 + src/shared/txMessages.ts | 78 +++++ src/shared/types.ts | 25 ++ src/theme/default.css | 2 +- tsconfig.json | 3 +- 141 files changed, 2989 insertions(+), 1484 deletions(-) create mode 100644 public/images/Early-Adopters-Collection-Cover.png create mode 100644 public/images/connect-wallet-icon.svg create mode 100644 public/images/sidemenu/communities.svg create mode 100644 public/images/sidemenu/proposals.svg create mode 100644 public/images/sidemenu/treasury.svg create mode 100644 public/images/sidemenu/user.svg create mode 100644 public/loading.json create mode 100644 src/app/proposals/api/route.ts create mode 100644 src/app/proposals/hooks/useGetProposalDeadline.ts create mode 100644 src/app/proposals/hooks/useVotingPowerAtSnapshot.ts create mode 100644 src/app/providers/AlertProvider.tsx create mode 100644 src/app/providers/hooks/useFetchNftInfo.ts create mode 100644 src/app/treasury/MetricsSection.tsx create mode 100644 src/app/user/Stake/CustomStakingRIFFooter.tsx create mode 100644 src/components/Alert/Alert.tsx create mode 100644 src/components/Alert/index.ts create mode 100644 src/components/CopyButton/CopyButton.stories.tsx create mode 100644 src/components/CopyButton/CopyButton.tsx create mode 100644 src/components/CopyButton/index.ts rename src/components/{Textarea/Textarea.tsx => Form/FormInput.tsx} (53%) create mode 100644 src/components/Form/FormInputNumber.tsx create mode 100644 src/components/Form/FormTextarea.tsx delete mode 100644 src/components/Form/LabelForm.tsx rename src/components/{TextInput/TextInput.stories.tsx => Input/Input.stories.tsx} (84%) create mode 100644 src/components/Input/InputNumber.tsx create mode 100644 src/components/LoadingSpinner/LoadingSpinner.stories.tsx create mode 100644 src/components/LoadingSpinner/LoadingSpinner.tsx create mode 100644 src/components/LoadingSpinner/index.ts delete mode 100644 src/components/TextInput/TextInput.tsx delete mode 100644 src/components/TextInput/index.ts delete mode 100644 src/components/Textarea/index.ts create mode 100644 src/components/TxStatusMessage/TxStatusMessage.tsx create mode 100644 src/components/TxStatusMessage/index.ts create mode 100644 src/lib/abis/DAOTreasuryAbi.ts create mode 100644 src/lib/constants.ts delete mode 100644 src/shared/defaultNFT.ts delete mode 100644 src/shared/hooks/useCidsAvailable.ts create mode 100644 src/shared/hooks/useCommunity.ts create mode 100644 src/shared/hooks/useExecuteProposal.ts delete mode 100644 src/shared/hooks/useNFTImage.ts create mode 100644 src/shared/hooks/useNFTMeta.ts create mode 100644 src/shared/hooks/useQueueProposal.ts rename src/{lib/useVoteOnProposal.tsx => shared/hooks/useVoteOnProposal.ts} (85%) create mode 100644 src/shared/rbtcIconSrc.ts create mode 100644 src/shared/txMessages.ts create mode 100644 src/shared/types.ts diff --git a/.env.prod b/.env.prod index 08a33619..42cb6005 100644 --- a/.env.prod +++ b/.env.prod @@ -1,3 +1,12 @@ NEXT_PUBLIC_ENV=mainnet NEXT_PUBLIC_RIF_WALLET_SERVICES=https://dao-backend.testnet.rifcomputing.net NEXT_PUBLIC_EXPLORER=https://explorer.rootstock.io + +NEXT_PUBLIC_RIF_ADDRESS=0x2acc95758f8b5f583470ba265eb685a8f45fc9d5 +NEXT_PUBLIC_STRIF_ADDRESS= +NEXT_PUBLIC_GOVERNOR_ADDRESS= +NEXT_PUBLIC_EA_NFT_ADDRESS= +NEXT_PUBLIC_MULTICALL_ADDRESS= +NEXT_PUBLIC_BUCKET1_ADDRESS= +NEXT_PUBLIC_BUCKET2_ADDRESS= +NEXT_PUBLIC_BUCKET3_ADDRESS= diff --git a/.env.regtest b/.env.regtest index ec1f818a..37474229 100644 --- a/.env.regtest +++ b/.env.regtest @@ -1,11 +1,20 @@ NEXT_PUBLIC_ENV=regtest -NEXT_PUBLIC_RIF_WALLET_SERVICES=/mock +NEXT_PUBLIC_RIF_WALLET_SERVICES=http://localhost:3000/mock NEXT_PUBLIC_EXPLORER=/mock + + +NEXT_PUBLIC_RIF_ADDRESS=0x19f64674d8a5b4e652319f5e239efd3bc969a1fe +NEXT_PUBLIC_STRIF_ADDRESS=0xAF17f7A0124E9F360ffA484b13566b041C0f5023 +NEXT_PUBLIC_GOVERNOR_ADDRESS=0xEc6bd0C8117b74904849af2CED73f30090DB6cd1 +NEXT_PUBLIC_EA_NFT_ADDRESS=0x687E04Bb759B3A010eb797301E5D1D05e135E90f +NEXT_PUBLIC_MULTICALL_ADDRESS=0xcA11bde05977b3631167028862bE2a173976CA11 +NEXT_PUBLIC_BUCKET1_ADDRESS=0xf5b9Ccfe0F695195C4F2E2b5A99b9b5d79EB8089 +NEXT_PUBLIC_BUCKET2_ADDRESS=0x8d90a8f30fBC93D9BB62758502bBCB640e59d0f4 +NEXT_PUBLIC_BUCKET3_ADDRESS=0x1E6406ddcf3c9Ab882686d4c9d80d184e7f3bF02 + +NEXT_PUBLIC_TREASURY_ADDRESS=0x8891A1cFbC85Da967818B91dC32C57D917edFBd0 + + REGTEST_URL=http://localhost:4444 -# Regtest fake addresses (real testnet addresses) -REGTEST_RIF=0x19f64674d8a5b4e652319f5e239efd3bc969a1fe -REGTEST_STRIF=0xAF17f7A0124E9F360ffA484b13566b041C0f5023 -REGTEST_MULTICALL=0xcA11bde05977b3631167028862bE2a173976CA11 -REGTEST_RDEA=0xa3076bcaCc7112B7fa7c5A87CF32275296d85D64 -REGTEST_EA=0xf24761C1B57b14EeA270B1485294D93494164246 -REGTEST_TREASURY_CONTRACTS=0xf5b9Ccfe0F695195C4F2E2b5A99b9b5d79EB8089,0x8d90a8f30fBC93D9BB62758502bBCB640e59d0f4,0x1E6406ddcf3c9Ab882686d4c9d80d184e7f3bF02 + + diff --git a/.env.testnet b/.env.testnet index 7c7f30f0..64d982a2 100644 --- a/.env.testnet +++ b/.env.testnet @@ -1,3 +1,14 @@ NEXT_PUBLIC_ENV=testnet NEXT_PUBLIC_RIF_WALLET_SERVICES=https://dao-backend.testnet.rifcomputing.net NEXT_PUBLIC_EXPLORER=https://explorer.testnet.rootstock.io + +NEXT_PUBLIC_RIF_ADDRESS=0x19f64674d8a5b4e652319f5e239efd3bc969a1fe +NEXT_PUBLIC_STRIF_ADDRESS=0xd6Eb12591559C42e28d672197265b331B1ad867d +NEXT_PUBLIC_GOVERNOR_ADDRESS=0xEc6bd0C8117b74904849af2CED73f30090DB6cd1 +NEXT_PUBLIC_EA_NFT_ADDRESS=0x687E04Bb759B3A010eb797301E5D1D05e135E90f +NEXT_PUBLIC_MULTICALL_ADDRESS=0xcA11bde05977b3631167028862bE2a173976CA11 +NEXT_PUBLIC_BUCKET1_ADDRESS=0x8891A1cFbC85Da967818B91dC32C57D917edFBd0 +NEXT_PUBLIC_BUCKET2_ADDRESS=0x8d90a8f30fBC93D9BB62758502bBCB640e59d0f4 +NEXT_PUBLIC_BUCKET3_ADDRESS=0x1E6406ddcf3c9Ab882686d4c9d80d184e7f3bF02 + +NEXT_PUBLIC_TREASURY_ADDRESS=0x8891A1cFbC85Da967818B91dC32C57D917edFBd0 diff --git a/.env.testnet.local b/.env.testnet.local index 33e9a79e..56763d72 100644 --- a/.env.testnet.local +++ b/.env.testnet.local @@ -2,3 +2,14 @@ NEXT_PUBLIC_ENV=testnet NEXT_PUBLIC_RIF_WALLET_SERVICES=/cors_bypass NEXT_PUBLIC_PROXY_DESTINATION=https://dao-backend.testnet.rifcomputing.net NEXT_PUBLIC_EXPLORER=https://explorer.testnet.rootstock.io + +NEXT_PUBLIC_RIF_ADDRESS=0x19f64674d8a5b4e652319f5e239efd3bc969a1fe +NEXT_PUBLIC_STRIF_ADDRESS=0xd6Eb12591559C42e28d672197265b331B1ad867d +NEXT_PUBLIC_GOVERNOR_ADDRESS=0xEc6bd0C8117b74904849af2CED73f30090DB6cd1 +NEXT_PUBLIC_EA_NFT_ADDRESS=0x687E04Bb759B3A010eb797301E5D1D05e135E90f +NEXT_PUBLIC_MULTICALL_ADDRESS=0xcA11bde05977b3631167028862bE2a173976CA11 +NEXT_PUBLIC_BUCKET1_ADDRESS=0x8891A1cFbC85Da967818B91dC32C57D917edFBd0 +NEXT_PUBLIC_BUCKET2_ADDRESS=0x8d90a8f30fBC93D9BB62758502bBCB640e59d0f4 +NEXT_PUBLIC_BUCKET3_ADDRESS=0x1E6406ddcf3c9Ab882686d4c9d80d184e7f3bF02 + +NEXT_PUBLIC_TREASURY_ADDRESS=0x8891A1cFbC85Da967818B91dC32C57D917edFBd0 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index dc2af14d..6a5df024 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -16,4 +16,5 @@ jobs: node-version: 18 - run: npm i - run: npm run lint + - run: npm run lint-tsc \ No newline at end of file diff --git a/next.config.mjs b/next.config.mjs index e41a0b8c..e08fe043 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,20 +1,20 @@ -import { createRequire } from 'module'; +import { createRequire } from 'module' import { createProxyMiddleware } from 'http-proxy-middleware' -import { config } from 'dotenv'; +import { config } from 'dotenv' // Load the environment variables based on the profile config({ path: process.env.PROFILE ? `.env.${process.env.PROFILE}` : '.env', -}); +}) // Load the endpoints defined in the src/lib/endpoints.ts file -const require = createRequire(import.meta.url); +const require = createRequire(import.meta.url) require('ts-node').register({ compilerOptions: { module: 'commonjs', }, -}); -const endpoints = require('./src/lib/endpoints.ts'); +}) +const endpoints = require('./src/lib/endpoints.ts') // Define the proxy configurations const corsBypassProxyConfig = () => ({ @@ -27,36 +27,40 @@ const corsBypassProxyConfig = () => ({ proxyReq.setHeader('User-Agent', 'Mozilla/5.0 (compatible; AcmeBot/1.0)') }, onProxyRes: proxyRes => { - proxyRes.headers['Access-Control-Allow-Origin'] = - window?.location?.host || 'http://localhost:3000' + proxyRes.headers['Access-Control-Allow-Origin'] = window?.location?.host || 'http://localhost:3000' }, -}); +}) // Define the proxy configurations based on the network const proxyConfigs = { - "testnet": corsBypassProxyConfig, - "regtest": undefined, + testnet: corsBypassProxyConfig, + regtest: undefined, } +// We need NEXT_PUBLIC_RIF_WALLET_SERVICES to be an absolute URL, because it's used server side also +// hence for rewrites, we need to extract the pathname only. +const rifWalletServicesURL = new URL(process.env.NEXT_PUBLIC_RIF_WALLET_SERVICES || 'http://localhost:3000') + // Define the rewrites based on the network const rewrites = { - "testnet": () => [ + testnet: () => [ { - source: `${process.env.NEXT_PUBLIC_RIF_WALLET_SERVICES}/:path*`, + source: `${rifWalletServicesURL.pathname}/:path*`, destination: `${process.env.NEXT_PUBLIC_PROXY_DESTINATION}/:path*`, }, ], - "regtest": () => Object.entries(endpoints).map(([key, endpoint]) => ({ - source: `${process.env.NEXT_PUBLIC_RIF_WALLET_SERVICES}${endpoint}`.replace(/\{\{([^\}]+)\}\}/g, ':$1').split('?')[0], + regtest: () => + Object.entries(endpoints).map(([key, endpoint]) => ({ + source: `${rifWalletServicesURL.pathname}${endpoint}`.replace(/\{\{([^\}]+)\}\}/g, ':$1').split('?')[0], destination: `/api/mocks/${key}?path=:path*`, })), } // Define the proxy paths -const proxyPaths = ['/mock', '/cors_bypass']; +const proxyPaths = ['/mock', '/cors_bypass'] // Define the network -const network = process.env.NEXT_PUBLIC_ENV; +const network = process.env.NEXT_PUBLIC_ENV // Define the next configuration /** @type {import('next').NextConfig} */ @@ -68,10 +72,7 @@ const nextConfig = { config.devServer = { ...config.devServer, before: app => { - app.use( - proxyPaths[network], - createProxyMiddleware(proxyConfigs[network]), - ) + app.use(proxyPaths[network], createProxyMiddleware(proxyConfigs[network])) }, } } diff --git a/package-lock.json b/package-lock.json index 254561be..283ccda7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "dao-frontend", - "version": "0.1.0", + "version": "0.1.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "dao-frontend", - "version": "0.1.0", + "version": "0.1.1", "dependencies": { "@hookform/resolvers": "^3.7.0", "@radix-ui/react-accordion": "^1.2.0", @@ -14,24 +14,26 @@ "@radix-ui/react-select": "^2.1.1", "@radix-ui/react-slot": "^1.1.0", "@tanstack/react-query": "^5.48.0", - "axios": "^1.7.2", + "axios": "^1.7.4", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "dotenv": "^16.4.5", "ethers": "^6.13.1", "jdenticon": "^3.3.0", + "lottie-react": "^2.4.0", "lucide-react": "^0.400.0", "moment": "^2.30.1", - "next": "14.2.3", + "next": "14.2.4", "react": "^18", "react-dom": "^18", "react-hook-form": "^7.52.1", "react-icons": "^5.2.1", + "react-number-format": "^5.4.0", "tailwind-merge": "^2.3.0", "tailwindcss-animate": "^1.0.7", "ts-node": "^10.9.2", "viem": "^2.17.3", - "wagmi": "^2.10.10", + "wagmi": "^2.12.1", "zod": "^3.23.8" }, "devDependencies": { @@ -52,6 +54,7 @@ "encoding": "^0.1.13", "eslint": "^8", "eslint-config-next": "14.2.3", + "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-storybook": "^0.8.0", "http-proxy-middleware": "^3.0.0", @@ -4446,9 +4449,9 @@ } }, "node_modules/@next/env": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.3.tgz", - "integrity": "sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA==" + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.4.tgz", + "integrity": "sha512-3EtkY5VDkuV2+lNmKlbkibIJxcO4oIHEhBWne6PaAp+76J9KoSsGvNikp6ivzAT8dhhBMYrm6op2pS1ApG0Hzg==" }, "node_modules/@next/eslint-plugin-next": { "version": "14.2.3", @@ -4460,9 +4463,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz", - "integrity": "sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.4.tgz", + "integrity": "sha512-AH3mO4JlFUqsYcwFUHb1wAKlebHU/Hv2u2kb1pAuRanDZ7pD/A/KPD98RHZmwsJpdHQwfEc/06mgpSzwrJYnNg==", "cpu": [ "arm64" ], @@ -4475,9 +4478,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.3.tgz", - "integrity": "sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.4.tgz", + "integrity": "sha512-QVadW73sWIO6E2VroyUjuAxhWLZWEpiFqHdZdoQ/AMpN9YWGuHV8t2rChr0ahy+irKX5mlDU7OY68k3n4tAZTg==", "cpu": [ "x64" ], @@ -4490,9 +4493,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.3.tgz", - "integrity": "sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.4.tgz", + "integrity": "sha512-KT6GUrb3oyCfcfJ+WliXuJnD6pCpZiosx2X3k66HLR+DMoilRb76LpWPGb4tZprawTtcnyrv75ElD6VncVamUQ==", "cpu": [ "arm64" ], @@ -4505,9 +4508,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.3.tgz", - "integrity": "sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.4.tgz", + "integrity": "sha512-Alv8/XGSs/ytwQcbCHwze1HmiIkIVhDHYLjczSVrf0Wi2MvKn/blt7+S6FJitj3yTlMwMxII1gIJ9WepI4aZ/A==", "cpu": [ "arm64" ], @@ -4520,9 +4523,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.3.tgz", - "integrity": "sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.4.tgz", + "integrity": "sha512-ze0ShQDBPCqxLImzw4sCdfnB3lRmN3qGMB2GWDRlq5Wqy4G36pxtNOo2usu/Nm9+V2Rh/QQnrRc2l94kYFXO6Q==", "cpu": [ "x64" ], @@ -4535,9 +4538,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.3.tgz", - "integrity": "sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.4.tgz", + "integrity": "sha512-8dwC0UJoc6fC7PX70csdaznVMNr16hQrTDAMPvLPloazlcaWfdPogq+UpZX6Drqb1OBlwowz8iG7WR0Tzk/diQ==", "cpu": [ "x64" ], @@ -4550,9 +4553,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.3.tgz", - "integrity": "sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.4.tgz", + "integrity": "sha512-jxyg67NbEWkDyvM+O8UDbPAyYRZqGLQDTPwvrBBeOSyVWW/jFQkQKQ70JDqDSYg1ZDdl+E3nkbFbq8xM8E9x8A==", "cpu": [ "arm64" ], @@ -4565,9 +4568,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.3.tgz", - "integrity": "sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.4.tgz", + "integrity": "sha512-twrmN753hjXRdcrZmZttb/m5xaCBFa48Dt3FbeEItpJArxriYDunWxJn+QFXdJ3hPkm4u7CKxncVvnmgQMY1ag==", "cpu": [ "ia32" ], @@ -4580,9 +4583,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.3.tgz", - "integrity": "sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.4.tgz", + "integrity": "sha512-tkLrjBzqFTP8DVrAAQmZelEahfR9OxWpFR++vAI9FBhCiIxtwHwBHC23SBHCTURBtwB4kc/x44imVOnkKGNVGg==", "cpu": [ "x64" ], @@ -10933,9 +10936,9 @@ } }, "node_modules/axios": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", - "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz", + "integrity": "sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -14179,6 +14182,18 @@ } } }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", @@ -18430,6 +18445,23 @@ "loose-envify": "cli.js" } }, + "node_modules/lottie-react": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/lottie-react/-/lottie-react-2.4.0.tgz", + "integrity": "sha512-pDJGj+AQlnlyHvOHFK7vLdsDcvbuqvwPZdMlJ360wrzGFurXeKPr8SiRCjLf3LrNYKANQtSsh5dz9UYQHuqx4w==", + "dependencies": { + "lottie-web": "^5.10.2" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/lottie-web": { + "version": "5.12.2", + "resolved": "https://registry.npmjs.org/lottie-web/-/lottie-web-5.12.2.tgz", + "integrity": "sha512-uvhvYPC8kGPjXT3MyKMrL3JitEAmDMp30lVkuq/590Mw9ok6pWcFCwXJveo0t5uqYw1UREQHofD+jVpdjBv8wg==" + }, "node_modules/loupe": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", @@ -19550,11 +19582,11 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "node_modules/next": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.3.tgz", - "integrity": "sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A==", + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.4.tgz", + "integrity": "sha512-R8/V7vugY+822rsQGQCjoLhMuC9oFj9SOi4Cl4b2wjDrseD0LRZ10W7R6Czo4w9ZznVSshKjuIomsRjvm9EKJQ==", "dependencies": { - "@next/env": "14.2.3", + "@next/env": "14.2.4", "@swc/helpers": "0.5.5", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", @@ -19569,15 +19601,15 @@ "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.3", - "@next/swc-darwin-x64": "14.2.3", - "@next/swc-linux-arm64-gnu": "14.2.3", - "@next/swc-linux-arm64-musl": "14.2.3", - "@next/swc-linux-x64-gnu": "14.2.3", - "@next/swc-linux-x64-musl": "14.2.3", - "@next/swc-win32-arm64-msvc": "14.2.3", - "@next/swc-win32-ia32-msvc": "14.2.3", - "@next/swc-win32-x64-msvc": "14.2.3" + "@next/swc-darwin-arm64": "14.2.4", + "@next/swc-darwin-x64": "14.2.4", + "@next/swc-linux-arm64-gnu": "14.2.4", + "@next/swc-linux-arm64-musl": "14.2.4", + "@next/swc-linux-x64-gnu": "14.2.4", + "@next/swc-linux-x64-musl": "14.2.4", + "@next/swc-win32-arm64-msvc": "14.2.4", + "@next/swc-win32-ia32-msvc": "14.2.4", + "@next/swc-win32-x64-msvc": "14.2.4" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", @@ -21280,7 +21312,6 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -21290,8 +21321,7 @@ "node_modules/prop-types/node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/proxy-addr": { "version": "2.0.7", @@ -21727,6 +21757,18 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "node_modules/react-number-format": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-5.4.0.tgz", + "integrity": "sha512-NWdICrqLhI7rAS8yUeLVd6Wr4cN7UjJ9IBTS0f/a9i7UB4x4Ti70kGnksBtZ7o4Z7YRbvCMMR/jQmkoOBa/4fg==", + "dependencies": { + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", diff --git a/package.json b/package.json index 876af7a7..564706e7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dao-frontend", - "version": "0.1.0", + "version": "0.1.1", "private": true, "scripts": { "dev": "next dev", @@ -8,6 +8,7 @@ "start": "next start", "lint": "next lint", "lint:fix": "next lint --fix", + "lint-tsc": "tsc --noEmit", "storybook": "storybook dev -p 6006", "build-storybook": "storybook build", "e2e-open": "start-server-and-test dev http://localhost:3000 \"cypress open --e2e\"", @@ -20,24 +21,26 @@ "@radix-ui/react-select": "^2.1.1", "@radix-ui/react-slot": "^1.1.0", "@tanstack/react-query": "^5.48.0", - "axios": "^1.7.2", + "axios": "^1.7.4", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "dotenv": "^16.4.5", "ethers": "^6.13.1", "jdenticon": "^3.3.0", + "lottie-react": "^2.4.0", "lucide-react": "^0.400.0", "moment": "^2.30.1", - "next": "14.2.3", + "next": "14.2.4", "react": "^18", "react-dom": "^18", "react-hook-form": "^7.52.1", "react-icons": "^5.2.1", + "react-number-format": "^5.4.0", "tailwind-merge": "^2.3.0", "tailwindcss-animate": "^1.0.7", "ts-node": "^10.9.2", "viem": "^2.17.3", - "wagmi": "^2.10.10", + "wagmi": "^2.12.1", "zod": "^3.23.8" }, "devDependencies": { @@ -58,6 +61,7 @@ "encoding": "^0.1.13", "eslint": "^8", "eslint-config-next": "14.2.3", + "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-storybook": "^0.8.0", "http-proxy-middleware": "^3.0.0", diff --git a/public/images/Early-Adopters-Collection-Cover.png b/public/images/Early-Adopters-Collection-Cover.png new file mode 100644 index 0000000000000000000000000000000000000000..7c4795c9fbf11b3f6b00dda80843d70c932b270b GIT binary patch literal 498086 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 z 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
  • -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 z�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

    (RB6co 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

    vW%t*U_1%3Al_}b>j-J`Mmi2bZ)^Tv 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

    @@ -42,10 +44,10 @@ export const CommunityItem = ({
    {/* Divider */} -
    - -
    + {/*
    */} + {/* */} + {/*
    */}
    ) diff --git a/src/app/communities/page.tsx b/src/app/communities/page.tsx index ffb1f248..c1b010fc 100644 --- a/src/app/communities/page.tsx +++ b/src/app/communities/page.tsx @@ -3,16 +3,16 @@ import { MainContainer } from '@/components/MainContainer/MainContainer' import Image from 'next/image' import { CommunityItem } from '@/app/communities/CommunityItem' import { firstNft } from '@/app/communities/communityUtils' -import { currentEnvNFTContracts } from '@/lib/contracts' +import { nftContracts } from '@/lib/contracts' // @TODO remove and dynamically fetch the community const firstCommunity = { leftImageSrc: firstNft.imageSrc, title: 'Early Adopters', subtitle: 'DeFi', - description: `Crypto ipsum bitcoin ethereum dogecoin litecoin. Hedera USD kadena chainlink arweave hive binance. - Shiba-inu terra ICON IOTA ICON livepeer velas uniswap. Kadena kusama IOTA horizen.`, - nftAddress: currentEnvNFTContracts.EA, + description: + 'The Early Adopters collection features a vibrant array of digital pioneers, each uniquely crafted to embody the spirit of innovation and community in the blockchain world.', + nftAddress: nftContracts.EA, numberOfMembers: 0, } diff --git a/src/app/login/Login.tsx b/src/app/login/Login.tsx index 2a88640a..a84d23b7 100644 --- a/src/app/login/Login.tsx +++ b/src/app/login/Login.tsx @@ -5,14 +5,14 @@ import { Logo } from '@/components/Header/Logo' import { cn } from '@/lib/utils' import { useRouter } from 'next/navigation' import { useEffect, useState } from 'react' -import { FaLink, FaUsers } from 'react-icons/fa6' -import { useAccount, useDisconnect } from 'wagmi' +import { FaUsers } from 'react-icons/fa6' +import { useAccount } from 'wagmi' +import { LoadingSpinner } from '@/components/LoadingSpinner' const BACKGROUND_CLASSES = 'bg-[url(../../public/images/login-bg.svg)] bg-cover' export const Login = () => { const { isConnected, address } = useAccount() - const { disconnect } = useDisconnect() const [hasMounted, setHasMounted] = useState(false) const router = useRouter() @@ -25,6 +25,12 @@ export const Login = () => { setHasMounted(true) }, []) + useEffect(() => { + // Redirect the user to /user if connected + if (isConnected) { + router.push('/user') + } + }, [isConnected]) return (
    @@ -32,22 +38,18 @@ export const Login = () => { {hasMounted && ( <> {isConnected ? ( - +
    +

    Redirecting...

    + +
    ) : ( - router.push('/user')} /> + <> + router.push('/user')} /> + + )} - - )}
    diff --git a/src/app/proposals/HeaderSection.tsx b/src/app/proposals/HeaderSection.tsx index 0ac8f976..158c8732 100644 --- a/src/app/proposals/HeaderSection.tsx +++ b/src/app/proposals/HeaderSection.tsx @@ -5,14 +5,14 @@ import { FaPlus } from 'react-icons/fa6' import { Popover } from '@/components/Popover' export const HeaderSection = ({ createProposalDisabled = true, threshold = '' }) => ( -
    +
    My Governance
    {createProposalDisabled ? ( - You don't have enough voting power: {threshold} + Almost there! You need {threshold} stRIF to create a proposal. Stake more RIF to get started. } trigger="hover" diff --git a/src/app/proposals/LatestProposalsTable.tsx b/src/app/proposals/LatestProposalsTable.tsx index ff57bc0e..9f0eefca 100644 --- a/src/app/proposals/LatestProposalsTable.tsx +++ b/src/app/proposals/LatestProposalsTable.tsx @@ -6,6 +6,7 @@ import { ComparativeProgressBar } from '@/components/ComparativeProgressBar/Comp import { Popover } from '@/components/Popover' import { Table } from '@/components/Table' import { Header, Paragraph } from '@/components/Typography' +import { toFixed } from '@/lib/utils' import { useRouter } from 'next/navigation' import { useMemo } from 'react' @@ -18,7 +19,7 @@ const ProposalNameColumn = ({ name, proposalId }: ProposalNameColumnProps) => { const router = useRouter() return ( ) } @@ -26,7 +27,7 @@ const ProposalNameColumn = ({ name, proposalId }: ProposalNameColumnProps) => { const VotesColumn = ({ proposalId }: Omit) => { const data = useGetProposalVotes(proposalId) const votes = data.reduce((prev, next) => Number(next) + prev, 0) - return

    {votes.toString()}

    + return

    {toFixed(votes)}

    } const PopoverSentiment = ({ votes }: { votes: string[] }) => { diff --git a/src/app/proposals/StatusColumn.tsx b/src/app/proposals/StatusColumn.tsx index 58677dec..64edcd59 100644 --- a/src/app/proposals/StatusColumn.tsx +++ b/src/app/proposals/StatusColumn.tsx @@ -1,4 +1,4 @@ -import { useVoteOnProposal } from '@/lib/useVoteOnProposal' +import { useVoteOnProposal } from '@/shared/hooks/useVoteOnProposal' import { Status } from '@/components/Status' import { StatusSeverity } from '@/components/Status/types' diff --git a/src/app/proposals/api/route.ts b/src/app/proposals/api/route.ts new file mode 100644 index 00000000..0adbb763 --- /dev/null +++ b/src/app/proposals/api/route.ts @@ -0,0 +1,48 @@ +import { fetchProposalCreated } from '@/app/user/Balances/actions' + +let cachedProposals = { + lastUpdated: Date.now(), + data: [], + isFetching: false, + error: '', +} + +function fetchProposals() { + cachedProposals.isFetching = true + console.log(11, 'Fetching proposals...') + fetchProposalCreated() + .then(({ data }) => { + console.log(14, 'Finished fetching proposals...') + if (Array.isArray(data) && data.length > 0) { + cachedProposals.data = data as [] + cachedProposals.error = '' + } else { + cachedProposals.error = JSON.stringify(data) + } + cachedProposals.lastUpdated = Date.now() + }) + .catch(err => { + cachedProposals.error = err.toString() + }) + .finally(() => (cachedProposals.isFetching = false)) +} + +const SECONDS_INTERVAL = 10 + +export async function GET(request: Request) { + const disableCache = request.url + const currentTime = Date.now() + const timeElapsed = (currentTime - cachedProposals.lastUpdated) / 1000 // Time elapsed in seconds + + if ((cachedProposals.data.length === 0 || timeElapsed > SECONDS_INTERVAL) && !cachedProposals.isFetching) { + fetchProposals() + } + return Response.json(cachedProposals.data, { + headers: { + 'X-Error': cachedProposals.error, + 'X-Fetching': cachedProposals.isFetching ? 'true' : 'false', + 'X-LastUpdated': cachedProposals.lastUpdated.toString(), + 'X-TimeElapsed': timeElapsed.toString(), + }, + }) +} diff --git a/src/app/proposals/hooks/useCreateProposal.ts b/src/app/proposals/hooks/useCreateProposal.ts index 5e6f55f8..9e29f786 100644 --- a/src/app/proposals/hooks/useCreateProposal.ts +++ b/src/app/proposals/hooks/useCreateProposal.ts @@ -1,10 +1,11 @@ import { useVotingPower } from '@/app/proposals/hooks/useVotingPower' import { GovernorAbi } from '@/lib/abis/Governor' -import { StRIFTokenAbi } from '@/lib/abis/StRIFTokenAbi' -import { currentEnvContracts, GovernorAddress } from '@/lib/contracts' +import { tokenContracts, GovernorAddress, TreasuryAddress } from '@/lib/contracts' import { solidityPackedKeccak256 } from 'ethers' -import { Address, encodeFunctionData, parseEther } from 'viem' +import { Address, encodeFunctionData, parseEther, zeroAddress } from 'viem' import { useWriteContract } from 'wagmi' +import { RIFTokenAbi } from '@/lib/abis/RIFTokenAbi' +import { DAOTreasuryAbi } from '@/lib/abis/DAOTreasuryAbi' const DEFAULT_DAO_CONFIG = { abi: GovernorAbi, @@ -13,17 +14,30 @@ const DEFAULT_DAO_CONFIG = { const encodeTransferData = (address: Address, amountToTransfer: string) => { return encodeFunctionData({ - abi: StRIFTokenAbi, + abi: RIFTokenAbi, functionName: 'transfer', args: [address, parseEther(amountToTransfer)], }) } -const createProposalForStRifTransfer = ( - calldata: ReturnType, - description: string, -) => { - const proposal = [[currentEnvContracts.stRIF as Address], [0n], [calldata], description] +const encodeTreasuryERC20Transfer = (address: Address, amountToTransfer: string) => { + return encodeFunctionData({ + abi: DAOTreasuryAbi, + functionName: 'withdrawERC20', + args: [tokenContracts.RIF, address, parseEther(amountToTransfer)], + }) +} + +const encodeTreasuryTransfer = (address: Address, amountToTransfer: string) => { + return encodeFunctionData({ + abi: DAOTreasuryAbi, + functionName: 'withdraw', + args: [address, parseEther(amountToTransfer)], + }) +} + +const createProposal = (calldata: ReturnType[], description: string) => { + const proposal = [[TreasuryAddress], [0n], calldata, description] const descriptionHash = solidityPackedKeccak256(['string'], [description]) const proposalToRunHash = [...proposal.slice(3), descriptionHash] return { @@ -34,20 +48,29 @@ const createProposalForStRifTransfer = ( export const useCreateProposal = () => { const { canCreateProposal } = useVotingPower() - const { writeContractAsync: propose } = useWriteContract() + const { writeContractAsync: propose, isPending: isPublishing } = useWriteContract() - const onCreateProposal = async (address: Address, amount: string, description: string) => { + const onCreateProposal = async ( + address: Address, + amount: string, + description: string, + tokenAddress: string, + ) => { if (!canCreateProposal) { throw new Error('You do not have enough voting power to create a proposal') } - - const calldata = encodeTransferData(address, amount) - const { proposal } = createProposalForStRifTransfer(calldata, description) + let calldata + if (tokenAddress === zeroAddress) { + calldata = encodeTreasuryTransfer(address, amount) + } else { + calldata = encodeTreasuryERC20Transfer(address, amount) + } + const { proposal } = createProposal([calldata], description) return await propose({ ...DEFAULT_DAO_CONFIG, functionName: 'propose', // @ts-ignore args: proposal, }) } - return { onCreateProposal } + return { onCreateProposal, isPublishing } } diff --git a/src/app/proposals/hooks/useFetchLatestProposals.ts b/src/app/proposals/hooks/useFetchLatestProposals.ts index a720fb7e..14548830 100644 --- a/src/app/proposals/hooks/useFetchLatestProposals.ts +++ b/src/app/proposals/hooks/useFetchLatestProposals.ts @@ -2,12 +2,13 @@ import { useMemo } from 'react' import { useQuery } from '@tanstack/react-query' import { parseEventLogs } from 'viem' import { GovernorAbi } from '@/lib/abis/Governor' -import { fetchProposalCreated } from '@/app/user/Balances/actions' +import { fetchProposalsCreatedCached } from '@/app/user/Balances/actions' export const useFetchLatestProposals = () => { const { data } = useQuery({ - queryFn: fetchProposalCreated, + queryFn: fetchProposalsCreatedCached, queryKey: ['proposalsCreated'], + refetchInterval: 2000, }) const latestProposals = useMemo(() => { @@ -19,9 +20,14 @@ export const useFetchLatestProposals = () => { }) // remove duplicates - return proposals.filter( - (proposal, index, self) => - self.findIndex(p => p.args.proposalId === proposal.args.proposalId) === index, + return ( + proposals + .filter( + (proposal, index, self) => + self.findIndex(p => p.args.proposalId === proposal.args.proposalId) === index, + ) + // @ts-ignore + .sort((a, b) => b.timeStamp - a.timeStamp) ) } return [] diff --git a/src/app/proposals/hooks/useGetProposalDeadline.ts b/src/app/proposals/hooks/useGetProposalDeadline.ts new file mode 100644 index 00000000..c0ee64f9 --- /dev/null +++ b/src/app/proposals/hooks/useGetProposalDeadline.ts @@ -0,0 +1,28 @@ +import { useBlockNumber, useReadContract } from 'wagmi' +import { GovernorAbi } from '@/lib/abis/Governor' +import { GovernorAddress } from '@/lib/contracts' + +export const useGetProposalDeadline = (proposalId: string) => { + const { data: proposalDeadlineBlock } = useReadContract({ + abi: GovernorAbi, + address: GovernorAddress, + functionName: 'proposalDeadline', + args: [BigInt(proposalId)], + }) + + const { data: latestBlockNumber } = useBlockNumber() + + let blocksUntilClosure = null + if (proposalDeadlineBlock && latestBlockNumber) { + blocksUntilClosure = proposalDeadlineBlock - latestBlockNumber + if (blocksUntilClosure < 0) { + blocksUntilClosure = 0 + } + } + + return { + proposalDeadlineBlock, + latestBlockNumber, + blocksUntilClosure, + } +} diff --git a/src/app/proposals/hooks/useGetProposalVotes.ts b/src/app/proposals/hooks/useGetProposalVotes.ts index 021f4eca..c5ef0a5c 100644 --- a/src/app/proposals/hooks/useGetProposalVotes.ts +++ b/src/app/proposals/hooks/useGetProposalVotes.ts @@ -2,6 +2,8 @@ import { useReadContract } from 'wagmi' import { GovernorAddress } from '@/lib/contracts' import { GovernorAbi } from '@/lib/abis/Governor' import { formatUnits } from 'viem' +import { toFixed } from '@/lib/utils' + // 0 = against, 1 = forVotes, 2 = abstain export const useGetProposalVotes = (proposalId: string, shouldRefetch = false) => { const { data } = useReadContract({ @@ -15,7 +17,8 @@ export const useGetProposalVotes = (proposalId: string, shouldRefetch = false) = }) if (data) { - return [formatUnits(data[0], 18), formatUnits(data[1], 18), formatUnits(data[2], 18)] + const format = (value: bigint) => toFixed(formatUnits(value, 18)) + return [format(data[0]), format(data[1]), format(data[2])] } return ['0', '0', '0'] } diff --git a/src/app/proposals/hooks/useVotingPower.ts b/src/app/proposals/hooks/useVotingPower.ts index 0b4c51e9..d1a57756 100644 --- a/src/app/proposals/hooks/useVotingPower.ts +++ b/src/app/proposals/hooks/useVotingPower.ts @@ -1,6 +1,6 @@ import { GovernorAbi } from '@/lib/abis/Governor' import { StRIFTokenAbi } from '@/lib/abis/StRIFTokenAbi' -import { currentEnvContracts, GovernorAddress } from '@/lib/contracts' +import { tokenContracts, GovernorAddress } from '@/lib/contracts' import { Address, formatUnits } from 'viem' import { useAccount, useReadContracts } from 'wagmi' @@ -12,13 +12,13 @@ export const useVotingPower = () => { contracts: [ { abi: StRIFTokenAbi, - address: currentEnvContracts.stRIF as Address, + address: tokenContracts.stRIF, functionName: 'balanceOf', args: [address!], }, { abi: StRIFTokenAbi, - address: currentEnvContracts.stRIF as Address, + address: tokenContracts.stRIF, functionName: 'decimals', }, { abi: GovernorAbi, address: GovernorAddress, functionName: 'proposalThreshold' }, diff --git a/src/app/proposals/hooks/useVotingPowerAtSnapshot.ts b/src/app/proposals/hooks/useVotingPowerAtSnapshot.ts new file mode 100644 index 00000000..03964f53 --- /dev/null +++ b/src/app/proposals/hooks/useVotingPowerAtSnapshot.ts @@ -0,0 +1,47 @@ +import { useAccount, useReadContracts } from 'wagmi' +import { GovernorAbi } from '@/lib/abis/Governor' +import { GovernorAddress } from '@/lib/contracts' +import { Address, formatUnits } from 'viem' +import { MULTICALL_ADDRESS } from '@/lib/constants' + +/** + * Snapshot = blockNumber + * @param blockNumber + */ +export const useVotingPowerAtSnapshot = (blockNumber: bigint) => { + const { address } = useAccount() + const { data, isLoading } = useReadContracts({ + allowFailure: false, + contracts: [ + { + abi: GovernorAbi, + address: GovernorAddress, + functionName: 'getVotes', + args: [address as Address, blockNumber], + }, + { + abi: GovernorAbi, + address: GovernorAddress, + functionName: 'proposalThreshold', + }, + ], + multicallAddress: MULTICALL_ADDRESS, + query: { + refetchInterval: 5000, + }, + }) + + if (isLoading || !data) { + return { + votingPowerAtSnapshot: '', + doesUserHasEnoughThreshold: false, + } + } + + const [votingPowerAtSnapshot, threshold] = data + + return { + votingPowerAtSnapshot: votingPowerAtSnapshot ? formatUnits(votingPowerAtSnapshot, 18) : '', + doesUserHasEnoughThreshold: votingPowerAtSnapshot >= threshold, + } +} diff --git a/src/app/proposals/page.tsx b/src/app/proposals/page.tsx index 447ed2d4..7317c5db 100644 --- a/src/app/proposals/page.tsx +++ b/src/app/proposals/page.tsx @@ -1,22 +1,26 @@ 'use client' +import { HeaderSection } from '@/app/proposals/HeaderSection' +import { useFetchLatestProposals } from '@/app/proposals/hooks/useFetchLatestProposals' +import { LatestProposalsTable } from '@/app/proposals/LatestProposalsTable' import { MainContainer } from '@/components/MainContainer/MainContainer' import { MetricsCard } from '@/components/MetricsCard' import { Popover } from '@/components/Popover' +import { toFixed } from '@/lib/utils' import { FaRegQuestionCircle } from 'react-icons/fa' import { useVotingPower } from './hooks/useVotingPower' -import { useFetchLatestProposals } from '@/app/proposals/hooks/useFetchLatestProposals' -import { HeaderSection } from '@/app/proposals/HeaderSection' -import { LatestProposalsTable } from '@/app/proposals/LatestProposalsTable' +import { TxStatusMessage } from '@/components/TxStatusMessage/TxStatusMessage' export default function Proposals() { const { votingPower, canCreateProposal, threshold } = useVotingPower() const { latestProposals } = useFetchLatestProposals() + return ( + -
    - } amount={votingPower} /> +
    + } amount={toFixed(votingPower)} />
    {/**/} {/* @TODO ask product/design what this is */} diff --git a/src/app/proposals/shared/utils.ts b/src/app/proposals/shared/utils.ts index 574167a5..4a7886ea 100644 --- a/src/app/proposals/shared/utils.ts +++ b/src/app/proposals/shared/utils.ts @@ -1,3 +1,7 @@ +import { RIFTokenAbi } from '@/lib/abis/RIFTokenAbi' +import { decodeFunctionData, Hash } from 'viem' +import { DAOTreasuryAbi } from '@/lib/abis/DAOTreasuryAbi' + export interface EventArgumentsParameter { args: { description: string @@ -7,19 +11,41 @@ export interface EventArgumentsParameter { proposer: string targets: string[] values: bigint[] + calldatas: string[] } timeStamp: string } +const abis = [DAOTreasuryAbi, RIFTokenAbi] + +const tryDecode = (data: string) => { + for (const abi of abis) { + try { + const { functionName, args } = decodeFunctionData({ data: data as Hash, abi }) + const functionDefinition = abi.find(item => 'name' in item && item.name === functionName) || {} + return { + functionName, + args, + inputs: 'inputs' in functionDefinition ? functionDefinition.inputs : [], + } + } catch (_) { + continue + } + } + throw new Error('No ABI found to decode this proposal data.') +} + export const getEventArguments = ({ - args: { description, proposalId, proposer, targets, values }, + args: { description, proposalId, proposer, calldatas }, timeStamp, -}: EventArgumentsParameter) => ({ - name: description.split(';')[0], - proposer, - description: description.split(';')[1], - proposalId: proposalId.toString(), - Starts: new Date(parseInt(timeStamp, 16) * 1000).toISOString().split('T')[0], - transferTo: targets[0] ?? '', - transferToValue: values[0] ?? '', -}) +}: EventArgumentsParameter) => { + const calldatasParsed = calldatas.map(tryDecode) + return { + name: description.split(';')[0], + proposer, + description: description.split(';')[1], + proposalId: proposalId.toString(), + Starts: new Date(parseInt(timeStamp, 16) * 1000).toISOString().split('T')[0], + calldatasParsed, + } +} diff --git a/src/app/providers/AlertProvider.tsx b/src/app/providers/AlertProvider.tsx new file mode 100644 index 00000000..4741e8df --- /dev/null +++ b/src/app/providers/AlertProvider.tsx @@ -0,0 +1,31 @@ +'use client' +import { AlertProps } from '@/components/Alert/Alert' +import { createContext, FC, ReactNode, useContext, useState } from 'react' + +// Define the context without an initial value (which will be set by the provider) +const AlertContext = createContext<{ + message: AlertContextProps | null + setMessage: (message: AlertContextProps | null) => void +} | null>(null) + +// Define the props used in the context +type AlertContextProps = Omit + +interface Props { + children: ReactNode +} + +// Create the provider component +export const AlertProvider: FC = ({ children }) => { + const [message, setMessage] = useState(null) + return {children} +} + +// Hook to use the AlertContext +export const useAlertContext = () => { + const context = useContext(AlertContext) + if (!context) { + throw new Error('useAlertContext must be used within an AlertProvider') + } + return context +} diff --git a/src/app/providers/ContextProviders.tsx b/src/app/providers/ContextProviders.tsx index 2d233374..7aa47004 100644 --- a/src/app/providers/ContextProviders.tsx +++ b/src/app/providers/ContextProviders.tsx @@ -3,6 +3,7 @@ import { config } from '@/config' import { QueryClient, QueryClientProvider } from '@tanstack/react-query' import { ReactNode } from 'react' import { WagmiProvider } from 'wagmi' +import { AlertProvider } from './AlertProvider' interface Props { children: ReactNode @@ -12,7 +13,9 @@ export const ContextProviders = ({ children }: Props) => { const queryClient = new QueryClient() return ( - {children} + + {children} + ) } diff --git a/src/app/providers/hooks/useFetchNftInfo.ts b/src/app/providers/hooks/useFetchNftInfo.ts new file mode 100644 index 00000000..9b0b6a4c --- /dev/null +++ b/src/app/providers/hooks/useFetchNftInfo.ts @@ -0,0 +1,9 @@ +import { fetchNftInfo } from '@/app/user/Balances/actions' +import { useQuery } from '@tanstack/react-query' + +export const useFetchNftInfo = (nftAddress: string) => { + return useQuery({ + queryFn: () => fetchNftInfo(nftAddress), + queryKey: ['nftInfo'], + }) +} diff --git a/src/app/providers/index.ts b/src/app/providers/index.ts index 5b3722e0..dc164c25 100644 --- a/src/app/providers/index.ts +++ b/src/app/providers/index.ts @@ -1,2 +1,3 @@ export * from './ContextProviders' export * from './NFTContextProvider' +export * from './AlertProvider' diff --git a/src/app/treasury/MetricsSection.tsx b/src/app/treasury/MetricsSection.tsx new file mode 100644 index 00000000..50f88955 --- /dev/null +++ b/src/app/treasury/MetricsSection.tsx @@ -0,0 +1,20 @@ +import { Header } from '@/components/Typography' +import { Table } from '@/components/Table' +import { TokenHoldingsStRIF } from '@/app/treasury/TokenHoldingsStRIF' + +const tableData = [ + { + token: 'Staked Rootstock Infrastructure Framework', + symbol: 'stRIF', + price: '—', + holdings: , + }, +] +export const MetricsSection = () => ( +
    +
    + Metrics +
    + + +) diff --git a/src/app/treasury/TokenHoldings.tsx b/src/app/treasury/TokenHoldings.tsx index c55b2078..017d12bc 100644 --- a/src/app/treasury/TokenHoldings.tsx +++ b/src/app/treasury/TokenHoldings.tsx @@ -1,4 +1,5 @@ import { TreasurySymbolsSupported, useTreasuryContext } from '@/app/treasury/TreasuryContext' +import { toFixed } from '@/lib/utils' interface TokenHoldingsProps { symbol: TreasurySymbolsSupported @@ -8,7 +9,7 @@ export const TokenHoldings = ({ symbol }: TokenHoldingsProps) => { const { bucketsTotal } = useTreasuryContext() return (

    - {bucketsTotal[symbol]} {symbol} + {toFixed(bucketsTotal[symbol])} {symbol}

    ) } diff --git a/src/app/treasury/TokenHoldingsStRIF.tsx b/src/app/treasury/TokenHoldingsStRIF.tsx index d77ae641..8d66da3f 100644 --- a/src/app/treasury/TokenHoldingsStRIF.tsx +++ b/src/app/treasury/TokenHoldingsStRIF.tsx @@ -1,17 +1,18 @@ -import { useReadContract } from 'wagmi' import { StRIFTokenAbi } from '@/lib/abis/StRIFTokenAbi' -import { currentEnvContracts } from '@/lib/contracts' -import { Address, formatEther, parseEther } from 'viem' +import { tokenContracts } from '@/lib/contracts' +import { toFixed } from '@/lib/utils' import { useMemo } from 'react' +import { formatEther } from 'viem' +import { useReadContract } from 'wagmi' export const TokenHoldingsStRIF = () => { const { data } = useReadContract({ abi: StRIFTokenAbi, - address: currentEnvContracts.stRIF as Address, + address: tokenContracts.stRIF, functionName: 'totalSupply', }) - const balance = useMemo(() => formatEther(data ?? 0n), [data]) + const balance = useMemo(() => Number(formatEther(data ?? 0n)), [data]) - return

    {balance} stRIF

    + return

    {toFixed(balance)} stRIF

    } diff --git a/src/app/treasury/TotalTokenHoldingsSection.tsx b/src/app/treasury/TotalTokenHoldingsSection.tsx index 6d982115..775ee75a 100644 --- a/src/app/treasury/TotalTokenHoldingsSection.tsx +++ b/src/app/treasury/TotalTokenHoldingsSection.tsx @@ -2,7 +2,6 @@ import { Header } from '@/components/Typography' import { Table } from '@/components/Table' import { RenderTokenPrice } from '@/app/user/Balances/RenderTokenPrice' import { TokenHoldings } from '@/app/treasury/TokenHoldings' -import { TokenHoldingsStRIF } from '@/app/treasury/TokenHoldingsStRIF' const tableData = [ { @@ -13,15 +12,9 @@ const tableData = [ }, { token: 'Rootstock Bitcoin', - symbol: 'rBTC', - price: , - holdings: , - }, - { - token: 'Staked Rootstock Infrastructure Framework', - symbol: 'stRIF', - price: '-', - holdings: , + symbol: 'RBTC', + price: , + holdings: , }, ] diff --git a/src/app/treasury/TreasuryContext.tsx b/src/app/treasury/TreasuryContext.tsx index a5725af9..7940e337 100644 --- a/src/app/treasury/TreasuryContext.tsx +++ b/src/app/treasury/TreasuryContext.tsx @@ -1,18 +1,19 @@ import { createContext, ReactNode, useContext, useMemo } from 'react' import { usePricesContext, withPricesContextProvider } from '@/shared/context/PricesContext' import { useGetTreasuryBucketBalance } from '@/app/treasury/hooks/useGetTreasuryBucketBalance' -import { currentEnvTreasuryContracts } from '@/lib/contracts' +import { treasuryContracts } from '@/lib/contracts' import { Address } from 'viem' import { GetPricesResult } from '@/app/user/types' +import { formatCurrency } from '@/lib/utils' type BucketItem = { amount: string - fiatAmount: number + fiatAmount: string } type Bucket = { RIF: BucketItem - rBTC: BucketItem + RBTC: BucketItem } interface TreasuryContextProps { @@ -23,19 +24,19 @@ interface TreasuryContextProps { const getAllBucketsHoldings = (buckets: Bucket[]) => { const totalBalance = { RIF: 0, - rBTC: 0, + RBTC: 0, } buckets.forEach(bucket => { totalBalance.RIF += Number(bucket.RIF.amount) - totalBalance.rBTC += Number(bucket.rBTC.amount) + totalBalance.RBTC += Number(bucket.RBTC.amount) }) return totalBalance } const TreasuryContext = createContext({ buckets: [], - bucketsTotal: { RIF: 0, rBTC: 0 }, + bucketsTotal: { RIF: 0, RBTC: 0 }, }) interface Props { @@ -50,20 +51,20 @@ const getBucketBalance = ( ) => ({ RIF: { amount: bucketBalance.RIF.balance, - fiatAmount: Number(bucketBalance.RIF.balance) * prices.RIF.price, + fiatAmount: formatCurrency(Number(bucketBalance.RIF.balance) * (prices.RIF?.price ?? 0)), }, - rBTC: { - amount: bucketBalance.rBTC.balance, - fiatAmount: Number(bucketBalance.rBTC.balance) * prices.rBTC.price, + RBTC: { + amount: bucketBalance.RBTC.balance, + fiatAmount: formatCurrency(Number(bucketBalance.RBTC.balance) * (prices.RBTC?.price ?? 0)), }, }) const TreasuryContextProvider = ({ children }: Props) => { const { prices } = usePricesContext() - const bucketOneBalance = useGetTreasuryBucketBalance(currentEnvTreasuryContracts?.at(0)?.address as Address) - const bucketTwoBalance = useGetTreasuryBucketBalance(currentEnvTreasuryContracts?.at(1)?.address as Address) - const bucketThreeBalance = useGetTreasuryBucketBalance(currentEnvTreasuryContracts?.at(2)?.address as Address) + const bucketOneBalance = useGetTreasuryBucketBalance(treasuryContracts?.at(0)?.address as Address) + const bucketTwoBalance = useGetTreasuryBucketBalance(treasuryContracts?.at(1)?.address as Address) + const bucketThreeBalance = useGetTreasuryBucketBalance(treasuryContracts?.at(2)?.address as Address) const bucketOne: Bucket = useMemo( () => getBucketBalance(bucketOneBalance, prices), diff --git a/src/app/treasury/TreasurySection.tsx b/src/app/treasury/TreasurySection.tsx index 166006d9..5c0c894a 100644 --- a/src/app/treasury/TreasurySection.tsx +++ b/src/app/treasury/TreasurySection.tsx @@ -1,43 +1,44 @@ import { useTreasuryContext } from '@/app/treasury/TreasuryContext' import { Paragraph } from '@/components/Typography' import { MetricsCard } from '@/components/MetricsCard' +import { toFixed } from '@/lib/utils' export const TreasurySection = () => { const { buckets } = useTreasuryContext() const [bucketOne, bucketTwo, bucketThree] = buckets return (
    - Treasury + Treasury
    diff --git a/src/app/treasury/hooks/useGetTreasuryBucketBalance.ts b/src/app/treasury/hooks/useGetTreasuryBucketBalance.ts index 186faeb2..89a12b00 100644 --- a/src/app/treasury/hooks/useGetTreasuryBucketBalance.ts +++ b/src/app/treasury/hooks/useGetTreasuryBucketBalance.ts @@ -9,6 +9,6 @@ export const useGetTreasuryBucketBalance = (address: Address) => { return { RIF: getTokenBalance('RIF', query.data), - rBTC: getTokenBalance('rBTC', query.data), + RBTC: getTokenBalance('RBTC', query.data), } } diff --git a/src/app/treasury/page.tsx b/src/app/treasury/page.tsx index 6b8379e6..0221997c 100644 --- a/src/app/treasury/page.tsx +++ b/src/app/treasury/page.tsx @@ -3,14 +3,16 @@ import { MainContainer } from '@/components/MainContainer/MainContainer' import { TreasuryContextProviderWithPrices } from '@/app/treasury/TreasuryContext' import { TreasurySection } from '@/app/treasury/TreasurySection' import { TotalTokenHoldingsSection } from '@/app/treasury/TotalTokenHoldingsSection' +import { MetricsSection } from '@/app/treasury/MetricsSection' export default function Treasury() { return ( -
    +
    +
    diff --git a/src/app/user/Balances/BalancesSection.tsx b/src/app/user/Balances/BalancesSection.tsx index 337a36aa..330eb7ed 100644 --- a/src/app/user/Balances/BalancesSection.tsx +++ b/src/app/user/Balances/BalancesSection.tsx @@ -13,22 +13,22 @@ const data = [ { token: 'Rootstock Infrastructure Framework', symbol: , - tokenPrice: , - totalBalance: , + 'Token Price': , + 'Total Balance': , actions: , }, { - token: 'Rootstock Infrastructure Framework', + token: 'Staked Rootstock Infrastructure Framework', symbol: , - tokenPrice:

    -

    , - totalBalance: , + 'Token Price': , + 'Total Balance': , actions: , }, { token: 'Rootstock Bitcoin', - symbol: , - tokenPrice: , - totalBalance: , + symbol: , + 'Token Price': , + 'Total Balance': , actions: '', }, ] diff --git a/src/app/user/Balances/RenderTokenPrice.tsx b/src/app/user/Balances/RenderTokenPrice.tsx index 318cce56..04951c76 100644 --- a/src/app/user/Balances/RenderTokenPrice.tsx +++ b/src/app/user/Balances/RenderTokenPrice.tsx @@ -1,5 +1,6 @@ import { useBalancesContext } from '@/app/user/Balances/context/BalancesContext' import { SupportedTokens } from '@/lib/contracts' +import { formatCurrency } from '@/lib/utils' import { usePricesContext } from '@/shared/context/PricesContext' interface Props { @@ -14,5 +15,8 @@ const CONTEXT_TO_USE = { export const RenderTokenPrice = ({ symbol, contextToUse = 'balances' }: Props) => { const { prices } = CONTEXT_TO_USE[contextToUse]() - return

    USD {prices[symbol]?.price ?? 0}

    + if (!prices[symbol]) { + return

    + } + return

    {formatCurrency(prices[symbol]?.price ?? 0)}

    } diff --git a/src/app/user/Balances/RenderTokenSymbol.tsx b/src/app/user/Balances/RenderTokenSymbol.tsx index 8df21e5a..8c0bff3e 100644 --- a/src/app/user/Balances/RenderTokenSymbol.tsx +++ b/src/app/user/Balances/RenderTokenSymbol.tsx @@ -1,5 +1,5 @@ import { useBalancesContext } from '@/app/user/Balances/context/BalancesContext' -import { currentEnvContracts, SupportedTokens } from '@/lib/contracts' +import { tokenContracts, SupportedTokens } from '@/lib/contracts' import { useWalletClient } from 'wagmi' interface Props { @@ -15,7 +15,7 @@ export const RenderTokenSymbol = ({ symbol }: Props) => { walletClient.watchAsset({ type: 'ERC20', options: { - address: currentEnvContracts[symbol], + address: tokenContracts[symbol], decimals: 18, symbol: balances[symbol].symbol, }, diff --git a/src/app/user/Balances/RenderTotalBalance.tsx b/src/app/user/Balances/RenderTotalBalance.tsx index 43416adb..c413d2f5 100644 --- a/src/app/user/Balances/RenderTotalBalance.tsx +++ b/src/app/user/Balances/RenderTotalBalance.tsx @@ -1,5 +1,6 @@ import { useBalancesContext } from '@/app/user/Balances/context/BalancesContext' import { SupportedTokens } from '@/lib/contracts' +import { formatCurrency, toFixed } from '@/lib/utils' interface Props { symbol: SupportedTokens @@ -9,11 +10,13 @@ export const RenderTotalBalance = ({ symbol }: Props) => { const { balances, prices } = useBalancesContext() const token = balances[symbol] return ( -
    + <>

    - {token.balance} {token.symbol} + {toFixed(token.balance)} {token.symbol}

    -

    = $ {prices[symbol].price * Number(token.balance) ?? 0}

    -
    + {prices[symbol] && ( +

    = {formatCurrency(prices[symbol].price * Number(token.balance) ?? 0)}

    + )} + ) } diff --git a/src/app/user/Balances/StakeRIFCell.tsx b/src/app/user/Balances/StakeRIFCell.tsx index 63b82455..bbdcd7fe 100644 --- a/src/app/user/Balances/StakeRIFCell.tsx +++ b/src/app/user/Balances/StakeRIFCell.tsx @@ -1,12 +1,14 @@ import { useBalancesContext } from '@/app/user/Balances/context/BalancesContext' +import { cn } from '@/lib/utils' export const StakeRIFCell = () => { - const { stakeModal } = useBalancesContext() - + const { stakeModal, balances } = useBalancesContext() + const { balance } = balances['RIF'] + const hasEnoughBalance = Number(balance) > 0 return (

    Stake diff --git a/src/app/user/Balances/UnStakeRIFCell.tsx b/src/app/user/Balances/UnStakeRIFCell.tsx index 008d4030..f72241d5 100644 --- a/src/app/user/Balances/UnStakeRIFCell.tsx +++ b/src/app/user/Balances/UnStakeRIFCell.tsx @@ -1,12 +1,14 @@ import { useBalancesContext } from '@/app/user/Balances/context/BalancesContext' +import { cn } from '@/lib/utils' export const UnStakeRIFCell = () => { - const { unstakeModal } = useBalancesContext() - + const { unstakeModal, balances } = useBalancesContext() + const { balance } = balances['stRIF'] + const hasEnoughBalance = Number(balance) > 0 return (

    Unstake diff --git a/src/app/user/Balances/actions.ts b/src/app/user/Balances/actions.ts index f3c464f4..bb5da677 100644 --- a/src/app/user/Balances/actions.ts +++ b/src/app/user/Balances/actions.ts @@ -5,8 +5,10 @@ import { fetchNFTsOwnedByAddressAndNftAddress, fetchPricesEndpoint, fetchProposalsCreatedByGovernorAddress, + getNftInfo, } from '@/lib/endpoints' -import { currentEnvContracts, GovernorAddress } from '@/lib/contracts' +import { tokenContracts, GovernorAddress } from '@/lib/contracts' +import { NftMeta } from '@/shared/types' export const fetchAddressTokens = (address: string, chainId = 31) => axiosInstance @@ -21,15 +23,15 @@ export const fetchPrices = () => axiosInstance .get( fetchPricesEndpoint - .replace('{{addresses}}', Object.values(currentEnvContracts).join(',')) + .replace('{{addresses}}', Object.values(tokenContracts).join(',')) .replace('{{convert}}', 'USD'), ) .then(({ data: prices }) => { const pricesReturn: GetPricesResult = {} for (const contract in prices) { - const contractFromEnv = ( - Object.keys(currentEnvContracts) as Array - ).find(contractName => currentEnvContracts[contractName] === contract) + const contractFromEnv = (Object.keys(tokenContracts) as Array).find( + contractName => tokenContracts[contractName] === contract, + ) if (contractFromEnv) { pricesReturn[contractFromEnv] = prices[contract] } @@ -84,8 +86,18 @@ export const fetchNftsOwnedByAddressAndNFTAddress = (address: string, nftAddress export const fetchProposalCreated = () => axiosInstance.get(fetchProposalsCreatedByGovernorAddress.replace('{{address}}', GovernorAddress)) -export const fetchIpfsUri = async (uri: string, responseType: 'json' | 'blob' = 'json') => { +export const fetchProposalsCreatedCached = () => axiosInstance.get('/proposals/api', { baseURL: '/' }) + +export function fetchIpfsUri(uri: string, responseType?: 'json'): Promise +export function fetchIpfsUri(uri: string, responseType?: 'blob'): Promise +export async function fetchIpfsUri( + uri: string, + responseType: 'json' | 'blob' = 'json', +): Promise { uri = uri.replace('ipfs://', 'https://ipfs.io/ipfs/') const { data } = await axiosInstance.get(uri, { responseType }) return data } + +export const fetchNftInfo = (address: string) => + axiosInstance.get(getNftInfo.replace('{{nftAddress}}', address)) diff --git a/src/app/user/Balances/balanceUtils.ts b/src/app/user/Balances/balanceUtils.ts index 0f8fcaac..d4df6ff9 100644 --- a/src/app/user/Balances/balanceUtils.ts +++ b/src/app/user/Balances/balanceUtils.ts @@ -1,14 +1,14 @@ import { BigNumberish, ethers } from 'ethers' import { GetAddressTokenResult, TokenBalance } from '@/app/user/types' -import { currentEnvContracts } from '@/lib/contracts' +import { tokenContracts } from '@/lib/contracts' export const formatBalanceToHuman = (balance: BigNumberish, decimal = 18) => ethers.formatUnits(balance, decimal) const symbolsToGetFromArray = { - RIF: { equivalentSymbols: ['tRIF', 'RIF'], currentContract: currentEnvContracts.RIF }, - rBTC: { equivalentSymbols: ['rBTC', 'tRBTC'], currentContract: currentEnvContracts.rBTC }, - stRIF: { equivalentSymbols: ['stRIF'], currentContract: currentEnvContracts.stRIF }, + RIF: { equivalentSymbols: ['tRIF', 'RIF'], currentContract: tokenContracts.RIF }, + RBTC: { equivalentSymbols: ['RBTC', 'tRBTC'], currentContract: tokenContracts.RBTC }, + stRIF: { equivalentSymbols: ['stRIF'], currentContract: tokenContracts.stRIF }, } export type SymbolsEquivalentKeys = keyof typeof symbolsToGetFromArray diff --git a/src/app/user/Balances/context/BalancesContext.tsx b/src/app/user/Balances/context/BalancesContext.tsx index 69a7db47..6a08f736 100644 --- a/src/app/user/Balances/context/BalancesContext.tsx +++ b/src/app/user/Balances/context/BalancesContext.tsx @@ -10,10 +10,6 @@ interface BalancesContextValue { prices: GetPricesResult stakeModal: ReturnType unstakeModal: ReturnType - stakeModalData?: { - savedAllowanceTxHash?: Hash - } - onUpdateStakeModalData?: (prop: string, value: string | Hash) => void } const DEFAULT_STAKE_MODAL_PROPERTIES = { @@ -40,22 +36,14 @@ export const BalancesProvider: FC = ({ children }) => { const stakeModal = useModal() const unstakeModal = useModal() - const [stakeModalData, setStakeModalData] = useState({}) - - const onUpdateStakeModalData = useCallback((field: string, value: string | Hash) => { - setStakeModalData(prevState => ({ ...prevState, [field]: value })) - }, []) - const valueOfContext = useMemo( () => ({ balances, prices, stakeModal, unstakeModal, - stakeModalData, - onUpdateStakeModalData, }), - [balances, prices, stakeModal, unstakeModal, stakeModalData, onUpdateStakeModalData], + [balances, prices, stakeModal, unstakeModal], ) return {children} diff --git a/src/app/user/Balances/hooks/useGetAddressBalances.ts b/src/app/user/Balances/hooks/useGetAddressBalances.ts index a78b4fc2..b2274ad8 100644 --- a/src/app/user/Balances/hooks/useGetAddressBalances.ts +++ b/src/app/user/Balances/hooks/useGetAddressBalances.ts @@ -3,16 +3,17 @@ import { useMemo } from 'react' import { getTokenBalance } from '@/app/user/Balances/balanceUtils' import { TokenBalanceRecord } from '@/app/user/types' import { useAccount } from 'wagmi' +import { Address } from 'viem' export const useGetAddressBalances = (): TokenBalanceRecord => { const { address, chainId } = useAccount() - const query = useGetAddressTokens(address as string, chainId as number) + const query = useGetAddressTokens(address as Address, chainId as number) return useMemo( () => ({ RIF: getTokenBalance('RIF', query.data), - rBTC: getTokenBalance('rBTC', query.data), + RBTC: getTokenBalance('RBTC', query.data), stRIF: getTokenBalance('stRIF', query.data), }), [query.data], diff --git a/src/app/user/Balances/hooks/useGetAddressTokens.ts b/src/app/user/Balances/hooks/useGetAddressTokens.ts index b4489c5b..71574f33 100644 --- a/src/app/user/Balances/hooks/useGetAddressTokens.ts +++ b/src/app/user/Balances/hooks/useGetAddressTokens.ts @@ -1,7 +1,7 @@ import { useBalance, useReadContracts } from 'wagmi' import { Address } from 'viem' import { RIFTokenAbi } from '@/lib/abis/RIFTokenAbi' -import { currentEnvContracts } from '@/lib/contracts' +import { tokenContracts, MulticallAddress } from '@/lib/contracts' import { ZeroAddress } from 'ethers' import { AddressToken } from '@/app/user/types' @@ -15,22 +15,22 @@ const getTokenFunction = (tokenAddress: string, userAddress: string, functionNam type TokenData = [{ result: string | bigint }, { result: string | bigint }] -const buildTokenBalanceObject = (symbol: keyof typeof currentEnvContracts, tokenData?: TokenData) => ({ +const buildTokenBalanceObject = (symbol: keyof typeof tokenContracts, tokenData?: TokenData) => ({ symbol: tokenData ? tokenData?.[1]?.result : symbol, - contractAddress: currentEnvContracts[symbol], + contractAddress: tokenContracts[symbol], balance: tokenData?.[0]?.result ? tokenData[0].result.toString() : '0', }) -export const useGetAddressTokens = (address: string, chainId: number) => { - const { data: RBTC } = useBalance({ address: address as Address, chainId }) +export const useGetAddressTokens = (address: Address, chainId: number) => { + const { data: RBTC } = useBalance({ address, chainId }) const { data } = useReadContracts({ contracts: [ - getTokenFunction(currentEnvContracts.RIF, address, 'balanceOf'), - getTokenFunction(currentEnvContracts.RIF, address, 'symbol'), - getTokenFunction(currentEnvContracts.stRIF, address, 'balanceOf'), - getTokenFunction(currentEnvContracts.stRIF, address, 'symbol'), + getTokenFunction(tokenContracts.RIF, address, 'balanceOf'), + getTokenFunction(tokenContracts.RIF, address, 'symbol'), + getTokenFunction(tokenContracts.stRIF, address, 'balanceOf'), + getTokenFunction(tokenContracts.stRIF, address, 'symbol'), ], - multicallAddress: currentEnvContracts.multicall as Address, + multicallAddress: MulticallAddress, query: { refetchInterval: 5000, }, @@ -43,7 +43,7 @@ export const useGetAddressTokens = (address: string, chainId: number) => { buildTokenBalanceObject('stRIF', stRIF as TokenData), buildTokenBalanceObject('RIF', RIF as TokenData), { - symbol: RBTC?.symbol || 'rBTC', + symbol: RBTC?.symbol || 'RBTC', balance: RBTC?.value.toString() || '0', contractAddress: ZeroAddress, }, diff --git a/src/app/user/Balances/hooks/useGetSpecificPrices.ts b/src/app/user/Balances/hooks/useGetSpecificPrices.ts index 649d836f..b15fa6b0 100644 --- a/src/app/user/Balances/hooks/useGetSpecificPrices.ts +++ b/src/app/user/Balances/hooks/useGetSpecificPrices.ts @@ -3,12 +3,13 @@ import { useFetchPrices } from '@/app/user/Balances/hooks/useFetchPrices' import { GetPricesResult } from '@/app/user/types' const getDefaultPriceObject = (symbol: string, data?: GetPricesResult) => { - let returnResult = { price: 1, lastUpdated: '' } - if (data && symbol in data) { - returnResult.price = data[symbol].price - returnResult.lastUpdated = data[symbol].lastUpdated + if (data && data[symbol]) { + return { + price: data[symbol].price, + lastUpdated: data[symbol].lastUpdated, + } } - return returnResult + return null } // TODO get RBTC and stRIF prices @@ -18,7 +19,7 @@ export const useGetSpecificPrices = (): GetPricesResult => { return useMemo( () => ({ RIF: getDefaultPriceObject('RIF', query.data), - rBTC: getDefaultPriceObject('rBTC', query.data), + RBTC: getDefaultPriceObject('RBTC', query.data), stRIF: getDefaultPriceObject('RIF', query.data), // stRIF price is the same as RIF }), [query.data], diff --git a/src/app/user/Communities/CommunitiesSection.tsx b/src/app/user/Communities/CommunitiesSection.tsx index 519dd91c..f01f1b08 100644 --- a/src/app/user/Communities/CommunitiesSection.tsx +++ b/src/app/user/Communities/CommunitiesSection.tsx @@ -14,7 +14,7 @@ const communities: CommunityCardProps[] = [] export const CommunitiesSection = () => (

    -
    +
    Communities (0)
    {communities.length === 0 && } diff --git a/src/app/user/Communities/JoinACommunity.tsx b/src/app/user/Communities/JoinACommunity.tsx index 6225b51b..db98886a 100644 --- a/src/app/user/Communities/JoinACommunity.tsx +++ b/src/app/user/Communities/JoinACommunity.tsx @@ -16,8 +16,8 @@ export const JoinACommunity = () => ( >
    -
    Join a Community
    - +
    Join a Community
    + You're not currently part of any communities. Join a community to connect with like-minded individuals, participate in discussions, and gain access to exclusive content. diff --git a/src/app/user/Stake/CustomStakingRIFFooter.tsx b/src/app/user/Stake/CustomStakingRIFFooter.tsx new file mode 100644 index 00000000..709434f6 --- /dev/null +++ b/src/app/user/Stake/CustomStakingRIFFooter.tsx @@ -0,0 +1,66 @@ +import { Button } from '@/components/Button' +import { Paragraph } from '@/components/Typography' +import { goToExplorerWithTxHash } from '@/lib/utils' + +interface CustomStakingRIFFooterProps { + hash?: string + isAllowanceNeeded: boolean + isAllowanceTxPending?: boolean + isAllowanceReadLoading?: boolean + isAllowanceTxFailed?: boolean +} +/** + * We will have this component to render info to the user in case they are lacking a validation + * This will let the user know if they need to request allowance + * This will also let the user know that their allowance TX is in process + * @constructor + */ +export function CustomStakingRIFFooter({ + hash, + isAllowanceNeeded = false, + isAllowanceTxPending = false, + isAllowanceReadLoading = false, + isAllowanceTxFailed = false, +}: CustomStakingRIFFooterProps) { + if (isAllowanceReadLoading) { + return ( +
    + + Fetching current allowance... + +
    + ) + } + if (isAllowanceNeeded && isAllowanceTxPending && !!hash) { + return ( +
    + + Allowance TX is in process. + + + Wait for Allowance TX to be completed. + + +
    + ) + } + if (isAllowanceTxFailed && !isAllowanceTxPending && !!hash) { + return ( +
    + + Allowance TX failed. + + + Please try again. If the issue persists, contact support for assistance. + + +
    + ) + } + + return null +} diff --git a/src/app/user/Stake/StakeInput.tsx b/src/app/user/Stake/StakeInput.tsx index bec118cb..5dd89a68 100644 --- a/src/app/user/Stake/StakeInput.tsx +++ b/src/app/user/Stake/StakeInput.tsx @@ -1,5 +1,4 @@ -import { TextInput } from '@/components/TextInput/TextInput' -import { isValidNumber } from '@/lib/utils' +import { Input } from '@/components/Input' interface Props { onChange: (value: string) => void @@ -9,16 +8,12 @@ interface Props { } export const StakeInput = ({ onChange, value, symbol = 'RIF', labelText }: Props) => { - const handleChange = (value: string) => { - if (isValidNumber(value)) { - onChange(value) - } - } return ( - void actionName: string actionText: string + confirmButtonText?: string customComponentBeforeFooter?: ReactNode disableConfirm?: boolean + loading?: boolean } export const StakePreview = ({ @@ -25,6 +27,8 @@ export const StakePreview = ({ disableConfirm = true, actionName, actionText, + confirmButtonText = 'Confirm', + loading = false, }: StakePreviewProps) => { return (
    @@ -41,7 +45,7 @@ export const StakePreview = ({
    - {actionName}{' '} +
    {actionName}
    {actionText}
    @@ -49,18 +53,19 @@ export const StakePreview = ({
    - {customComponentBeforeFooter} +
    {customComponentBeforeFooter}
    {/* Stake Actions */} -
    +
    diff --git a/src/app/user/Stake/StakePreviewBalance.tsx b/src/app/user/Stake/StakePreviewBalance.tsx index 6e6b376d..2cb06ccc 100644 --- a/src/app/user/Stake/StakePreviewBalance.tsx +++ b/src/app/user/Stake/StakePreviewBalance.tsx @@ -1,5 +1,6 @@ -import { Span } from '@/components/Typography' import { StakePreviewBalanceProps } from '@/app/user/Stake/types' +import { Span } from '@/components/Typography' +import { toFixed } from '@/lib/utils' export const StakePreviewBalance = ({ topLeftText, @@ -13,17 +14,17 @@ export const StakePreviewBalance = ({ {topLeftText}
    - {amount.substring(0, 10)} {tokenSymbol} + {amount} {tokenSymbol} - - = {amountConvertedToCurrency.substring(0, 20)} + + = {amountConvertedToCurrency}
    {/* Balance and Token */} - Balance: {balance.substring(0, 10)} + Balance: {toFixed(balance)}
    {/* @TODO ICON {tokenSymbol} */}
    diff --git a/src/app/user/Stake/StakeRIF.tsx b/src/app/user/Stake/StakeRIF.tsx index eaf4faac..f87c27ef 100644 --- a/src/app/user/Stake/StakeRIF.tsx +++ b/src/app/user/Stake/StakeRIF.tsx @@ -1,7 +1,7 @@ import { Header, Label } from '@/components/Typography' import { StakeInput } from '@/app/user/Stake/StakeInput' import { Button } from '@/components/Button' -import { useCallback, useMemo } from 'react' +import { useMemo } from 'react' import { ActionBeingExecuted, textsDependingOnAction } from '@/app/user/Stake/Steps/stepsUtils' interface Props { @@ -26,74 +26,48 @@ export const StakeRIF = ({ totalBalanceConverted, actionName, symbol = 'RIF', -}: Props) => { - const onUserAmountInput = useCallback((value: string) => onAmountChange(value), [onAmountChange]) - - const onPercentageButtonClick = useCallback( - (percentageClicked: number) => onPercentageClicked(percentageClicked), - [onPercentageClicked], - ) - - return ( -
    -
    -
    - {textsDependingOnAction[actionName].modalTitle} - {symbol} -
    - ( +
    +
    + {textsDependingOnAction[actionName].modalTitle} + {symbol} +
    + + + {/* Percentage button */} +
    + {[10, 20, 50, 100].map((percentage: number, i) => ( + - - {/* Percentage button */} -
    - - - - -
    - {/* @TODO if we're unstaking we should have a component here - check design */} - {/* Stake */} -
    - -
    -
    + ))}
    - ) -} + {/* @TODO if we're unstaking we should have a component here - check design */} + {/* Stake */} +
    + +
    +
    +) interface PercentageButtonProps { amount: string @@ -103,7 +77,7 @@ interface PercentageButtonProps { } const PercentageButton = ({ amount, percentage, totalAmountAllowed, onClick }: PercentageButtonProps) => { - const onPercentageButtonClick = () => onClick(percentage) + const onPercentageClicked = () => onClick(percentage) const isActive = useMemo(() => { const totalAmountAllowedPercentage = Number(totalAmountAllowed) * (percentage / 100) @@ -113,7 +87,7 @@ const PercentageButton = ({ amount, percentage, totalAmountAllowed, onClick }: P return (
    -
    {textsDependingOnAction[actionName].inProcess}
    {' '} - - {textsDependingOnAction[actionName].description} - +
    {textsDependingOnAction[actionName].inProcess}
    + {textsDependingOnAction[actionName].description} {/* Preview box */} -
    +
    - Amount + Amount
    - + {amountReceived} {symbol} - - + +
    +
    - Date - {date} + Date + {date}
    {/* Stake Actions */} diff --git a/src/app/user/Stake/StakingContext.tsx b/src/app/user/Stake/StakingContext.tsx index 10015cb8..fc4c92ad 100644 --- a/src/app/user/Stake/StakingContext.tsx +++ b/src/app/user/Stake/StakingContext.tsx @@ -4,15 +4,20 @@ import { GetPricesResult, TokenBalanceRecord } from '@/app/user/types' import { StakingToken } from '@/app/user/Stake/types' import { Hash } from 'viem' import { ActionBeingExecuted } from '@/app/user/Stake/Steps/stepsUtils' +import { formatCurrency, toFixed } from '@/lib/utils' export type ActionHookToUse = ( amount: string, tokenToSendContract: string, tokenToReceiveContract: string, ) => { - shouldEnableConfirm: boolean + isAllowanceEnough: boolean onConfirm: () => Promise customFooter: ReactNode + isPending: boolean + isAllowanceReadLoading?: boolean + onRequestAllowance?: () => Promise + isRequestingAllowance?: boolean } type StakePreviewToken = { @@ -45,7 +50,7 @@ const DEFAULT_STAKE_PREVIEW_TOKEN = { amount: '0', balance: '0', tokenSymbol: '0', - amountConvertedToCurrency: '0', + amountConvertedToCurrency: formatCurrency(0), } const StakingContext = createContext({ @@ -60,7 +65,14 @@ const StakingContext = createContext({ amountToReceive: '', amountToReceiveConvertedToCurrency: '', }, - actionToUse: () => ({ shouldEnableConfirm: false, onConfirm: async () => '0x0', customFooter: null }), + actionToUse: () => ({ + isAllowanceEnough: false, + onConfirm: async () => '0x0', + customFooter: null, + isPending: false, + isAllowanceReadLoading: false, + onRequestAllowance: async () => '0x0', + }), actionName: 'STAKE', stakePreviewFrom: { ...DEFAULT_STAKE_PREVIEW_TOKEN }, stakePreviewTo: { ...DEFAULT_STAKE_PREVIEW_TOKEN }, @@ -99,15 +111,15 @@ export const StakingProvider: FC = ({ const amountToReceiveConvertedToCurrency = amountToReceive * Number(tokenToReceive.price) || 0 return { amountToReceive: amountToReceive.toString(), - amountToReceiveConvertedToCurrency: `USD ${amountToReceiveConvertedToCurrency}`, + amountToReceiveConvertedToCurrency: `USD ${formatCurrency(amountToReceiveConvertedToCurrency)}`, } }, [stakeData.amount, tokenToSend.price, tokenToReceive.price]) const stakePreviewFrom = useMemo( () => ({ - amount: stakeData.amount, + amount: toFixed(stakeData.amount), amountConvertedToCurrency: - 'USD ' + (Number(tokenToSend.price) * Number(stakeData.amount) ?? 0).toString(), + 'USD ' + formatCurrency(Number(tokenToSend.price) * Number(stakeData.amount) ?? 0), balance: tokenToSend.balance, tokenSymbol: tokenToSend.symbol, }), @@ -116,8 +128,8 @@ export const StakingProvider: FC = ({ const stakePreviewTo = useMemo( () => ({ - amount: amountDataToReceive.amountToReceive.toString(), - amountConvertedToCurrency: amountDataToReceive.amountToReceiveConvertedToCurrency.toString(), + amount: toFixed(amountDataToReceive.amountToReceive), + amountConvertedToCurrency: amountDataToReceive.amountToReceiveConvertedToCurrency, balance: tokenToReceive.balance, tokenSymbol: tokenToReceive.symbol, }), diff --git a/src/app/user/Stake/StakingSteps.tsx b/src/app/user/Stake/StakingSteps.tsx index 7dad5b42..d860d378 100644 --- a/src/app/user/Stake/StakingSteps.tsx +++ b/src/app/user/Stake/StakingSteps.tsx @@ -4,7 +4,7 @@ import { useSteps } from '@/app/user/Stake/hooks/useSteps' import { Modal } from '@/components/Modal/Modal' import { useBalancesContext } from '@/app/user/Balances/context/BalancesContext' import { StakingToken } from '@/app/user/Stake/types' -import { currentEnvContracts } from '@/lib/contracts' +import { tokenContracts } from '@/lib/contracts' import { stakingSteps } from './Steps/stepsUtils' import { useStakeRIF } from '@/app/user/Stake/hooks/useStakeRIF' @@ -13,7 +13,7 @@ interface StakingStepsProps { } const StakingSteps = ({ onCloseModal }: StakingStepsProps) => { - const { step, onGoNext, onGoBack } = useSteps() + const { step, onGoNext, onGoBack } = useSteps(4) const { balances, prices } = useBalancesContext() const currentStep = useMemo(() => stakingSteps[step], [step]) @@ -26,20 +26,20 @@ const StakingSteps = ({ onCloseModal }: StakingStepsProps) => { () => ({ balance: balances.RIF.balance, symbol: balances.RIF.symbol, - contract: currentEnvContracts.RIF, - price: prices.RIF.price.toString(), + contract: tokenContracts.RIF, + price: prices.RIF?.price.toString(), }), - [balances.RIF.balance, balances.RIF.symbol, prices.RIF.price], + [balances.RIF.balance, balances.RIF.symbol, prices.RIF?.price], ) const tokenToReceive: StakingToken = useMemo( () => ({ balance: balances.stRIF.balance, symbol: balances.stRIF.symbol, - contract: currentEnvContracts.stRIF, - price: prices.stRIF.price.toString(), + contract: tokenContracts.stRIF, + price: prices.stRIF?.price.toString(), }), - [balances.stRIF.balance, balances.stRIF.symbol, prices.stRIF.price], + [balances.stRIF.balance, balances.stRIF.symbol, prices.stRIF?.price], ) return ( { +export const StepAllowance = ({ onGoNext = () => {}, onCloseModal = () => {} }: StepProps) => { const { amount, tokenToSend, @@ -12,26 +15,53 @@ export const StepAllowance = ({ onGoNext, onCloseModal }: StepProps) => { stakePreviewTo: to, } = useStakingContext() - const { shouldEnableConfirm, customFooter } = useStakeRIF( - amount, - tokenToSend.contract, - tokenToReceive.contract, - ) + const { + isAllowanceEnough, + isAllowanceReadLoading, + customFooter, + onRequestAllowance, + isRequestingAllowance, + } = useStakeRIF(amount, tokenToSend.contract, tokenToReceive.contract) + + const [isAllowanceRequestPending, setIsAllowanceRequestPending] = useState(false) + + const handleRequestAllowance = async () => { + if (!onRequestAllowance) { + return + } + try { + setIsAllowanceRequestPending(true) + const txHash = await onRequestAllowance() + await waitForTransactionReceipt(config, { + hash: txHash, + }) + } catch (err) { + console.error('Error requesting allowance', err) + } + setIsAllowanceRequestPending(false) + } + + const hasCalledOnGoNextRef = useRef(false) + useEffect(() => { + if (isAllowanceEnough && !hasCalledOnGoNextRef.current) { + onGoNext() + // prevent calling onGoNext multiple times. + hasCalledOnGoNextRef.current = true + } + }, [isAllowanceEnough, onGoNext]) - const actionText = !shouldEnableConfirm - ? 'You need to request allowance before staking.' - : 'You have enough allowance to stake.' - const onGoNextStep = () => onGoNext?.() return ( {}} - disableConfirm={!shouldEnableConfirm} + onConfirm={handleRequestAllowance} + onCancel={onCloseModal} from={from} to={to} + disableConfirm={isAllowanceReadLoading || isRequestingAllowance || isAllowanceRequestPending} actionName="Allowance" - actionText={actionText} + actionText="You need to request allowance before staking." customComponentBeforeFooter={customFooter} + confirmButtonText="Request allowance" + loading={isRequestingAllowance || isAllowanceRequestPending} /> ) } diff --git a/src/app/user/Stake/Steps/StepOne.tsx b/src/app/user/Stake/Steps/StepOne.tsx index f9469790..72f3e972 100644 --- a/src/app/user/Stake/Steps/StepOne.tsx +++ b/src/app/user/Stake/Steps/StepOne.tsx @@ -1,9 +1,10 @@ -import { useStakingContext } from '@/app/user/Stake/StakingContext' -import { useMemo } from 'react' import { StakeRIF } from '@/app/user/Stake/StakeRIF' +import { useStakingContext } from '@/app/user/Stake/StakingContext' import { StepProps } from '@/app/user/Stake/types' +import { formatCurrency, toFixed } from '@/lib/utils' +import { useMemo } from 'react' -export const StepOne = ({ onGoNext }: StepProps) => { +export const StepOne = ({ onGoNext = () => {} }: StepProps) => { const { amount, onAmountChange, tokenToSend, actionName } = useStakingContext() const balanceToCurrency = useMemo( @@ -28,10 +29,10 @@ export const StepOne = ({ onGoNext }: StepProps) => { amount={amount} onAmountChange={onAmountChange} onPercentageClicked={onPercentageClicked} - onGoNext={onGoNext || (() => {})} + onGoNext={onGoNext} shouldEnableGoNext={shouldEnableGoNext} - totalBalance={tokenToSend.balance} - totalBalanceConverted={'USD ' + balanceToCurrency.toString()} + totalBalance={toFixed(tokenToSend.balance)} + totalBalanceConverted={balanceToCurrency ? 'USD ' + formatCurrency(balanceToCurrency) : ''} symbol={tokenToSend.symbol} actionName={actionName} /> diff --git a/src/app/user/Stake/Steps/StepThree.tsx b/src/app/user/Stake/Steps/StepThree.tsx index 5339fac0..5866fb13 100644 --- a/src/app/user/Stake/Steps/StepThree.tsx +++ b/src/app/user/Stake/Steps/StepThree.tsx @@ -1,14 +1,20 @@ import { StakeStatus } from '@/app/user/Stake/StakeStatus' import { StepProps } from '@/app/user/Stake/types' import { useStakingContext } from '@/app/user/Stake/StakingContext' +import { useRouter } from 'next/navigation' -export const StepThree = ({ onCloseModal }: StepProps) => { - // TODO get TX current status and pass to StakeStatus +export const StepThree = ({ onCloseModal = () => {} }: StepProps) => { const { stakeTxHash, amountDataToReceive, tokenToReceive, actionName } = useStakingContext() + const router = useRouter() if (!stakeTxHash) return null + + const handleCloseModal = () => { + router.push(`/user?txHash=${stakeTxHash}`) + onCloseModal() + } return ( {})} + onReturnToBalances={handleCloseModal} hash={stakeTxHash} symbol={tokenToReceive.symbol} amountReceived={amountDataToReceive.amountToReceive} diff --git a/src/app/user/Stake/Steps/StepTwo.tsx b/src/app/user/Stake/Steps/StepTwo.tsx index e8de3e60..442a3875 100644 --- a/src/app/user/Stake/Steps/StepTwo.tsx +++ b/src/app/user/Stake/Steps/StepTwo.tsx @@ -1,9 +1,11 @@ +import { useAlertContext } from '@/app/providers' import { StakePreview } from '@/app/user/Stake/StakePreview' -import { StepProps } from '@/app/user/Stake/types' import { useStakingContext } from '@/app/user/Stake/StakingContext' import { textsDependingOnAction } from '@/app/user/Stake/Steps/stepsUtils' +import { StepProps } from '@/app/user/Stake/types' +import { TX_MESSAGES } from '@/shared/txMessages' -export const StepTwo = ({ onGoNext, onCloseModal }: StepProps) => { +export const StepTwo = ({ onGoNext, onCloseModal = () => {} }: StepProps) => { const { amount, setStakeTxHash, @@ -14,30 +16,36 @@ export const StepTwo = ({ onGoNext, onCloseModal }: StepProps) => { stakePreviewFrom: from, stakePreviewTo: to, } = useStakingContext() + const { setMessage } = useAlertContext() - const { onConfirm: onConfirmAction } = actionToUse(amount, tokenToSend.contract, tokenToReceive.contract) + const { onConfirm: onConfirmAction, isPending } = actionToUse( + amount, + tokenToSend.contract, + tokenToReceive.contract, + ) const onConfirm = async () => { try { const txHash = await onConfirmAction() - if (setStakeTxHash) { - setStakeTxHash(txHash) - } + setStakeTxHash?.(txHash) onGoNext?.() - } catch (errorConfirming) { - console.log(errorConfirming) // @TODO implement error handling + } catch (err: any) { + if (err?.cause?.code !== 4001) { + setMessage(TX_MESSAGES.staking.error) + } } } return ( {}} + onCancel={onCloseModal} disableConfirm={false} from={from} to={to} actionName={textsDependingOnAction[actionName].preview} actionText={textsDependingOnAction[actionName].previewText} + loading={isPending} /> ) } diff --git a/src/app/user/Stake/Steps/stepsUtils.tsx b/src/app/user/Stake/Steps/stepsUtils.tsx index fb54330f..1fcda275 100644 --- a/src/app/user/Stake/Steps/stepsUtils.tsx +++ b/src/app/user/Stake/Steps/stepsUtils.tsx @@ -30,7 +30,8 @@ export const textsDependingOnAction = { inputLabel: 'Amount to stake', confirmButtonText: 'Stake', preview: 'Stake preview', - previewText: 'Preview your stake and make sure everything is correct!', + previewText: + 'You have enough allowance to stake. Preview your stake and make sure everything is correct!', inProcess: 'Stake in process', description: ( <> diff --git a/src/app/user/Stake/UnStakingSteps.tsx b/src/app/user/Stake/UnStakingSteps.tsx index ef656e6c..4ff6a151 100644 --- a/src/app/user/Stake/UnStakingSteps.tsx +++ b/src/app/user/Stake/UnStakingSteps.tsx @@ -3,7 +3,7 @@ import { useBalancesContext } from '@/app/user/Balances/context/BalancesContext' import { useMemo } from 'react' import { steps } from '@/app/user/Stake/Steps/stepsUtils' import { StakingToken } from '@/app/user/Stake/types' -import { currentEnvContracts } from '@/lib/contracts' +import { tokenContracts } from '@/lib/contracts' import { StakingProvider } from '@/app/user/Stake/StakingContext' import { Modal } from '@/components/Modal/Modal' import { useUnstakeStRIF } from '@/app/user/Stake/hooks/useUnstakeStRIF' @@ -26,20 +26,20 @@ const UnStakingSteps = ({ onCloseModal }: StakingStepsProps) => { () => ({ balance: balances.stRIF.balance, symbol: balances.stRIF.symbol, - contract: currentEnvContracts.stRIF, - price: prices.stRIF.price.toString(), + contract: tokenContracts.stRIF, + price: prices.stRIF?.price.toString(), }), - [balances.stRIF.balance, balances.stRIF.symbol, prices.stRIF.price], + [balances.stRIF.balance, balances.stRIF.symbol, prices.stRIF?.price], ) const tokenToReceive: StakingToken = useMemo( () => ({ balance: balances.RIF.balance, symbol: balances.RIF.symbol, - contract: currentEnvContracts.RIF, - price: prices.RIF.price.toString(), + contract: tokenContracts.RIF, + price: prices.RIF?.price.toString(), }), - [balances.RIF.balance, balances.RIF.symbol, prices.RIF.price], + [balances.RIF.balance, balances.RIF.symbol, prices.RIF?.price], ) return ( diff --git a/src/app/user/Stake/hooks/useStakeRIF.tsx b/src/app/user/Stake/hooks/useStakeRIF.tsx index 362eae0e..279f5b1a 100644 --- a/src/app/user/Stake/hooks/useStakeRIF.tsx +++ b/src/app/user/Stake/hooks/useStakeRIF.tsx @@ -1,14 +1,11 @@ -import { useAccount, useReadContract, useWriteContract, useWaitForTransactionReceipt } from 'wagmi' +import { ActionHookToUse } from '@/app/user/Stake/StakingContext' import { RIFTokenAbi } from '@/lib/abis/RIFTokenAbi' -import { currentEnvContracts } from '@/lib/contracts' -import { Address, parseEther } from 'viem' -import { useCallback, useMemo } from 'react' import { StRIFTokenAbi } from '@/lib/abis/StRIFTokenAbi' -import { Button } from '@/components/Button' -import { Paragraph } from '@/components/Typography' -import { goToExplorerWithTxHash } from '@/lib/utils' -import { useBalancesContext } from '@/app/user/Balances/context/BalancesContext' -import { ActionHookToUse } from '@/app/user/Stake/StakingContext' +import { tokenContracts } from '@/lib/contracts' +import { useCallback, useEffect, useMemo, useState } from 'react' +import { Address, Hash, parseEther } from 'viem' +import { useAccount, useReadContract, useWaitForTransactionReceipt, useWriteContract } from 'wagmi' +import { CustomStakingRIFFooter } from '../CustomStakingRIFFooter' export const useStakeRIF: ActionHookToUse = ( amount: string, @@ -16,34 +13,40 @@ export const useStakeRIF: ActionHookToUse = ( tokenToReceiveContract: string, ) => { const { address } = useAccount() - const { stakeModalData, onUpdateStakeModalData } = useBalancesContext() - - const previousAllowanceHash = stakeModalData?.savedAllowanceTxHash + const [allowanceHash, setAllowanceHashUsed] = useState() const { data: allowanceBalance, isLoading: isAllowanceReadLoading } = useReadContract({ abi: RIFTokenAbi, - address: currentEnvContracts.RIF as Address, + address: tokenContracts.RIF, functionName: 'allowance', args: [address!, tokenToReceiveContract as Address], query: { refetchInterval: 5000, }, }) - const isAllowanceEnough = useMemo(() => { - return !!(allowanceBalance && allowanceBalance >= parseEther(amount)) - }, [amount, allowanceBalance]) - - const { writeContractAsync: requestAllowance, data: allowanceTxHash } = useWriteContract() - - const allowanceHashUsed = useMemo( - () => allowanceTxHash || previousAllowanceHash, - [allowanceTxHash, previousAllowanceHash], + const isAllowanceEnough = useMemo( + () => !!(allowanceBalance && allowanceBalance >= parseEther(amount)), + [amount, allowanceBalance], ) - const { status: requestAllowanceTxStatus } = useWaitForTransactionReceipt({ - hash: allowanceHashUsed, + const { + writeContractAsync: requestAllowance, + data: allowanceTxHash, + isPending: isRequestingAllowance, + } = useWriteContract() + + const tx = useWaitForTransactionReceipt({ + hash: allowanceHash, }) + const { isPending: isAllowanceTxPending, failureReason: isAllowanceTxFailed } = tx + + useEffect(() => { + if (allowanceTxHash) { + setAllowanceHashUsed(allowanceTxHash) + } + }, [allowanceTxHash]) + const onRequestAllowance = useCallback( () => requestAllowance( @@ -54,14 +57,12 @@ export const useStakeRIF: ActionHookToUse = ( args: [tokenToReceiveContract as Address, parseEther(amount)], }, { - onSuccess: txHash => { - if (onUpdateStakeModalData) onUpdateStakeModalData('savedAllowanceTxHash', txHash) - }, + onSuccess: txHash => setAllowanceHashUsed(txHash), }, ), - [amount, onUpdateStakeModalData, requestAllowance, tokenToReceiveContract, tokenToSendContract], + [amount, requestAllowance, tokenToReceiveContract, tokenToSendContract], ) - const { writeContractAsync: stake } = useWriteContract() + const { writeContractAsync: stake, isPending } = useWriteContract() const onRequestStake = () => stake({ @@ -71,85 +72,25 @@ export const useStakeRIF: ActionHookToUse = ( args: [address!, parseEther(amount)], }) - const shouldEnableConfirm = useMemo(() => { - // Only enable when allowance is enough - return isAllowanceEnough - }, [isAllowanceEnough]) const customFooter = useMemo( () => ( ), - [ - isAllowanceEnough, - onRequestAllowance, - allowanceHashUsed, - requestAllowanceTxStatus, - isAllowanceReadLoading, - ], + [allowanceHash, isAllowanceEnough, isAllowanceTxPending, isAllowanceReadLoading, isAllowanceTxFailed], ) return { - shouldEnableConfirm, + isAllowanceEnough, onConfirm: onRequestStake, customFooter, - } -} - -interface CustomStakingRIFFooterProps { - isAllowanceNeeded: boolean - onRequestAllowance: () => void - isAllowanceTxPending?: boolean - hash?: string - isAllowanceReadLoading?: boolean -} -/** - * We will have this component to render info to the user in case they are lacking a validation - * This will let the user know if they need to request allowance - * This will also let the user know that their allowance TX is in process - * @constructor - */ -function CustomStakingRIFFooter({ - isAllowanceNeeded, - onRequestAllowance, - hash, - isAllowanceTxPending, - isAllowanceReadLoading = false, -}: CustomStakingRIFFooterProps) { - switch (true) { - case isAllowanceReadLoading: - return ( -
    - Fetching current allowance... -
    - ) - case isAllowanceNeeded && !isAllowanceTxPending: - return ( -
    - You need to request allowance for stRIF to be able to stake. - -
    - ) - case isAllowanceNeeded && isAllowanceTxPending && !!hash: - return ( -
    - Allowance TX is in process. - Wait for Allowance TX to be mined. - -
    - ) - default: - return null + isAllowanceReadLoading, + isPending, + onRequestAllowance, + isRequestingAllowance, } } diff --git a/src/app/user/Stake/hooks/useSteps.ts b/src/app/user/Stake/hooks/useSteps.ts index d6ec8bc9..7b8000fd 100644 --- a/src/app/user/Stake/hooks/useSteps.ts +++ b/src/app/user/Stake/hooks/useSteps.ts @@ -3,17 +3,9 @@ import { useState } from 'react' export const useSteps = (maxSteps = 3) => { const [step, setStep] = useState(0) - const onGoNext = () => - setStep(p => { - if (p === maxSteps) return p - return p + 1 - }) + const onGoNext = () => setStep(p => (p === maxSteps - 1 ? p : p + 1)) - const onGoBack = () => - setStep(p => { - if (p === 0) return p - return p - 1 - }) + const onGoBack = () => setStep(p => (p === 0 ? p : p - 1)) const onReset = () => setStep(0) diff --git a/src/app/user/Stake/hooks/useUnstakeStRIF.tsx b/src/app/user/Stake/hooks/useUnstakeStRIF.tsx index f7f8a4e2..8b0ca8d2 100644 --- a/src/app/user/Stake/hooks/useUnstakeStRIF.tsx +++ b/src/app/user/Stake/hooks/useUnstakeStRIF.tsx @@ -6,7 +6,7 @@ import { Address, parseEther } from 'viem' export const useUnstakeStRIF: ActionHookToUse = (amount, tokenToSendContract) => { const { address } = useAccount() - const { writeContractAsync: unstake } = useWriteContract() + const { writeContractAsync: unstake, isPending } = useWriteContract() const onRequestUnstake = () => unstake({ @@ -16,8 +16,9 @@ export const useUnstakeStRIF: ActionHookToUse = (amount, tokenToSendContract) => args: [address as Address, parseEther(amount)], }) return { - shouldEnableConfirm: true, + isAllowanceEnough: true, customFooter: null, onConfirm: onRequestUnstake, + isPending, } } diff --git a/src/app/user/Stake/types.ts b/src/app/user/Stake/types.ts index 455c4c25..debc6467 100644 --- a/src/app/user/Stake/types.ts +++ b/src/app/user/Stake/types.ts @@ -10,7 +10,7 @@ export interface StakePreviewBalanceProps { } export type StakingToken = TokenBalance & { - price: string + price: string | undefined contract: string } diff --git a/src/app/user/page.tsx b/src/app/user/page.tsx index d885bb3d..1063676c 100644 --- a/src/app/user/page.tsx +++ b/src/app/user/page.tsx @@ -1,16 +1,15 @@ 'use client' - import { BalancesSection } from '@/app/user/Balances/BalancesSection' import { CommunitiesSection } from '@/app/user/Communities/CommunitiesSection' import { MainContainer } from '@/components/MainContainer/MainContainer' +import { TxStatusMessage } from '@/components/TxStatusMessage' export default function User() { return ( -
    - - -
    + + +
    ) } diff --git a/src/app/user/types.ts b/src/app/user/types.ts index 6a6122ca..9114da7e 100644 --- a/src/app/user/types.ts +++ b/src/app/user/types.ts @@ -27,4 +27,4 @@ export type Price = { lastUpdated: string } -export type GetPricesResult = Record +export type GetPricesResult = Record diff --git a/src/components/Alert/Alert.tsx b/src/components/Alert/Alert.tsx new file mode 100644 index 00000000..69992095 --- /dev/null +++ b/src/components/Alert/Alert.tsx @@ -0,0 +1,43 @@ +import { BsExclamationCircle } from 'react-icons/bs' +import { CiCircleCheck } from 'react-icons/ci' +import { Paragraph } from '@/components/Typography' +import { MdClose } from 'react-icons/md' + +export interface AlertProps { + severity: 'error' | 'success' | 'info' | 'warning' + title: string + content: string + onDismiss?: () => void +} + +const IconToUse = { + error: , + info: , + success: , + warning: , +} + +export const Alert = ({ severity, title, content, onDismiss }: AlertProps) => { + return ( +
    + {/* Icon */} + {IconToUse[severity]} + {/* Main content */} +
    + {title} + + {content} + + {onDismiss && ( +
    + + Dismiss + +
    + )} +
    + {/* X */} + {onDismiss && } +
    + ) +} diff --git a/src/components/Alert/index.ts b/src/components/Alert/index.ts new file mode 100644 index 00000000..1d5a733b --- /dev/null +++ b/src/components/Alert/index.ts @@ -0,0 +1 @@ +export * from './Alert' diff --git a/src/components/Button/Button.tsx b/src/components/Button/Button.tsx index e0da42bd..fa0a2d2f 100644 --- a/src/components/Button/Button.tsx +++ b/src/components/Button/Button.tsx @@ -1,6 +1,8 @@ import { ButtonVariants } from '@/components/Button/types' import { cn } from '@/lib/utils' import { FC, JSX, MouseEvent, ReactNode } from 'react' +import { FaSpinner } from 'react-icons/fa6' +import { Span } from '../Typography' export const BUTTON_DEFAULT_CLASSES = 'px-[24px] py-[12px] flex gap-x-1 items-center relative' @@ -15,6 +17,8 @@ interface Props { className?: string textClassName?: string buttonProps?: JSX.IntrinsicElements['button'] & { 'data-testid'?: string } + loading?: boolean + startIconClasses?: string } const DEFAULT_DATA_TESTID = 'Button' @@ -30,15 +34,18 @@ export const Button: FC = ({ className = '', textClassName = '', buttonProps = {}, + loading = false, + startIconClasses, }) => { + startIcon = loading ? : startIcon const classes = cn({ [BUTTON_DEFAULT_CLASSES]: true, 'bg-primary rounded-[6px]': variant === 'primary', - 'bg-transparent border-secondary rounded-[6px] border-[1px]': variant === 'secondary', - 'bg-secondary border-secondary rounded-[6px] border-[1px]': variant === 'secondary-full', + 'bg-transparent border-secondary rounded-[6px] border': variant === 'secondary', + 'bg-secondary border-secondary rounded-[6px] border': variant === 'secondary-full', 'bg-disabled-primary rounded-[6px] border-0': disabled, 'border-0': variant === 'transparent', - 'border-[1px] border-white rounded-[6px]': variant === 'white', + 'border border-white rounded-[6px]': variant === 'white', 'w-full': fullWidth, 'pl-9': startIcon, 'justify-start': !centerContent, @@ -64,8 +71,8 @@ export const Button: FC = ({ data-testid={`${DEFAULT_DATA_TESTID}${buttonProps['data-testid']}${buttonProps.id}`} > - {startIcon} - {text} + {startIcon} + {text} ) diff --git a/src/components/CopyButton/CopyButton.stories.tsx b/src/components/CopyButton/CopyButton.stories.tsx new file mode 100644 index 00000000..e47fecfc --- /dev/null +++ b/src/components/CopyButton/CopyButton.stories.tsx @@ -0,0 +1,115 @@ +import { FC } from 'react' +import { Meta, StoryObj } from '@storybook/react' +import { CopyButton, CopyButtonProps } from './CopyButton' +import { shortAddress } from '@/lib/utils' +import { BsCopy } from 'react-icons/bs' +import { action } from '@storybook/addon-actions' +import { spyOn } from '@storybook/test' + +const meta = { + title: 'Components/CopyButton', + component: CopyButton, +} satisfies Meta + +export default meta + +type Story = StoryObj + +const address = '0xB62BD53308fb2834b3114a5f725D0382CBe9f008' + +/** + * Demonstrates the CopyButton surrounded by components from left and right + */ +const Surrounding: FC = args => ( +
    + Leading + + Trailing +
    +) + +export const Default: Story = { + args: { + copyText: address, + onCopySuccess: action('onCopySuccess'), + onCopyFailure: action('onCopyFailure'), + }, + render: args => , +} +export const CustomText: Story = { + args: { + copyText: address, + children: shortAddress(address), + onCopySuccess: action('onCopySuccess'), + onCopyFailure: action('onCopyFailure'), + }, + render: args => , +} +export const CustomStyledText: Story = { + args: { + copyText: address, + children: {shortAddress(address)}, + onCopySuccess: action('onCopySuccess'), + onCopyFailure: action('onCopyFailure'), + }, + render: args => , +} +export const NoIcon: Story = { + args: { + copyText: address, + children: shortAddress(address), + icon: null, + onCopySuccess: action('onCopySuccess'), + onCopyFailure: action('onCopyFailure'), + }, + render: args => , +} +export const CustomIcon: Story = { + args: { + copyText: address, + children: shortAddress(address), + icon: , + onCopySuccess: action('onCopySuccess'), + onCopyFailure: action('onCopyFailure'), + }, + render: args => , +} +export const CustomSuccessMessage: Story = { + args: { + copyText: address, + children: shortAddress(address), + successLabel: Congrats!, + onCopySuccess: action('onCopySuccess'), + onCopyFailure: action('onCopyFailure'), + }, + render: args => , +} +export const DefaultError: Story = { + args: { + copyText: address, + children: shortAddress(address), + onCopySuccess: action('onCopySuccess'), + onCopyFailure: action('onCopyFailure'), + }, + render: args => , + play: async () => { + spyOn(navigator.clipboard, 'writeText').mockImplementation(() => { + return Promise.reject(new Error('Clipboard error')) + }) + }, +} +export const CustomError: Story = { + args: { + copyText: address, + children: shortAddress(address), + errorLabel: Catastrophe, + onCopySuccess: action('onCopySuccess'), + onCopyFailure: action('onCopyFailure'), + }, + render: args => , + play: async () => { + spyOn(navigator.clipboard, 'writeText').mockImplementation(() => { + return Promise.reject(new Error('Clipboard error')) + }) + }, +} diff --git a/src/components/CopyButton/CopyButton.tsx b/src/components/CopyButton/CopyButton.tsx new file mode 100644 index 00000000..5aa475e5 --- /dev/null +++ b/src/components/CopyButton/CopyButton.tsx @@ -0,0 +1,101 @@ +import { FC, useState, useEffect, ReactNode, ReactElement, useRef, HTMLAttributes } from 'react' +import { BiCopy } from 'react-icons/bi' +import { cn } from '@/lib/utils' + +export interface CopyButtonProps extends HTMLAttributes { + /** + * Text to be copied to the clipboard. + */ + copyText: string + /** + * Custom message to show upon successfully copying text + */ + successLabel?: ReactNode + /** + * Custom message to show upon error + */ + errorLabel?: ReactNode + /** + * Component to replace the default icon. To display no icon pass `null` value + */ + icon?: ReactElement | null + /** + * Callback function to execute upon successfully copying text to the clipboard. + */ + onCopySuccess?: () => void + /** + * Callback function to execute if copying text to the clipboard fails. + */ + onCopyFailure?: () => void +} + +enum CopyStatus { + Idle, + Success, + Error, +} + +/** + * A button that copies its `text` prop to the clipboard. + * Provides visual feedback based on the success or failure of the copy action. + */ +export const CopyButton: FC = ({ + copyText, + successLabel = 'Copied!', + errorLabel = 'Error', + icon = , + onCopyFailure = () => {}, + onCopySuccess = () => {}, + className, + children, + ...props +}) => { + const ref = useRef(null) + const [minWidth, setMinWidth] = useState() + const [status, setStatus] = useState(CopyStatus.Idle) + + const copyToClipboard = async () => { + try { + await navigator.clipboard.writeText(copyText) + setStatus(CopyStatus.Success) + onCopySuccess() + } catch (error) { + console.error(error instanceof Error ? error.message : 'Cannot copy contents to the clipboard') + setStatus(CopyStatus.Error) + onCopyFailure() + } + } + + // Effect to set the minimum width based on the component's width in Idle state + useEffect(() => { + if (status !== CopyStatus.Idle || !ref.current) return + setMinWidth(ref.current.getBoundingClientRect().width) + }, [status]) + + // Reset the button state back to idle after a timeout + useEffect(() => { + if (status === CopyStatus.Idle) return + const timeOut = setTimeout(() => setStatus(CopyStatus.Idle), 3000) + return () => clearTimeout(timeOut) + }, [status]) + + // Determine the text and classes based on the current status + const { content, className: statusClasses } = { + [CopyStatus.Success]: { content: successLabel, className: 'text-st-success' }, + [CopyStatus.Error]: { content: errorLabel, className: 'text-st-error' }, + [CopyStatus.Idle]: { content: children ?? copyText, className: 'cursor-pointer' }, + }[status] + + return ( +
    + {content} + {icon} +
    + ) +} diff --git a/src/components/CopyButton/index.ts b/src/components/CopyButton/index.ts new file mode 100644 index 00000000..8cfc5459 --- /dev/null +++ b/src/components/CopyButton/index.ts @@ -0,0 +1 @@ +export { CopyButton } from './CopyButton' diff --git a/src/components/Footer/Footer.tsx b/src/components/Footer/Footer.tsx index 4b399e40..58339110 100644 --- a/src/components/Footer/Footer.tsx +++ b/src/components/Footer/Footer.tsx @@ -2,12 +2,22 @@ import { FaGithub, FaSlack, FaXTwitter } from 'react-icons/fa6' interface Props { brand?: string + variant?: 'login' | 'container' } -export const Footer = ({ brand = 'Rootstock Labs' }: Props) => { +const DEFAULT_CONTAINER_CLASS = 'my-4' + +const DEFAULT_LOGIN_CLASS = 'absolute' + +const VARIANTS = { + container: DEFAULT_CONTAINER_CLASS, + login: DEFAULT_LOGIN_CLASS, +} + +export const Footer = ({ brand = 'RootstockCollective', variant = 'login' }: Props) => { const year = new Date().getFullYear() return ( -
    +

    Built by {brand} diff --git a/src/components/Form/Form.stories.tsx b/src/components/Form/Form.stories.tsx index ca326dd3..1c5222f2 100644 --- a/src/components/Form/Form.stories.tsx +++ b/src/components/Form/Form.stories.tsx @@ -1,11 +1,11 @@ import { Meta, StoryObj } from '@storybook/react' import { useForm } from 'react-hook-form' import { FaBitcoin } from 'react-icons/fa6' -import { Input } from '../Input' +import { Button } from '../Button' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../Select' -import { Textarea } from '../Textarea' import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage } from './Form' -import { Button } from '../Button' +import { FormInput } from './FormInput' +import { FormTextarea } from './FormTextarea' const meta = { title: 'Components/Form', @@ -28,7 +28,7 @@ export const Default: Omit = { Proposal name - + )} @@ -40,7 +40,7 @@ export const Default: Omit = { Description -

    @l0I!AN2wm|9WXu{F`q+ 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�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 z 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 iYyl9A3R?lgz5fr3A=(`#@MgCF0000 + + + + + + + + + + + + + + + + + diff --git a/public/images/sidemenu/communities.svg b/public/images/sidemenu/communities.svg new file mode 100644 index 00000000..0255e330 --- /dev/null +++ b/public/images/sidemenu/communities.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/sidemenu/proposals.svg b/public/images/sidemenu/proposals.svg new file mode 100644 index 00000000..2376fac5 --- /dev/null +++ b/public/images/sidemenu/proposals.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/sidemenu/treasury.svg b/public/images/sidemenu/treasury.svg new file mode 100644 index 00000000..e6d46dee --- /dev/null +++ b/public/images/sidemenu/treasury.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/sidemenu/user.svg b/public/images/sidemenu/user.svg new file mode 100644 index 00000000..eebb1b8d --- /dev/null +++ b/public/images/sidemenu/user.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/loading.json b/public/loading.json new file mode 100644 index 00000000..95e6f990 --- /dev/null +++ b/public/loading.json @@ -0,0 +1 @@ +{"nm":"final","ddd":0,"h":432,"w":768,"meta":{"g":"LottieFiles AE "},"layers":[{"ty":0,"nm":"applying r","sr":1,"st":0,"op":600.000024438501,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[160,160,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[384,216,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"w":320,"h":320,"refId":"comp_0","ind":1},{"ty":0,"nm":"applying r","sr":1,"st":0,"op":600.000024438501,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[160,160,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[384,239,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":38,"ix":11}},"ef":[{"ty":29,"mn":"ADBE Gaussian Blur 2","nm":"Gaussian Blur","ix":1,"en":1,"ef":[{"ty":0,"mn":"ADBE Gaussian Blur 2-0001","nm":"Blurriness","ix":1,"v":{"a":0,"k":65.3,"ix":1}},{"ty":7,"mn":"ADBE Gaussian Blur 2-0002","nm":"Blur Dimensions","ix":2,"v":{"a":0,"k":1,"ix":2}},{"ty":7,"mn":"ADBE Gaussian Blur 2-0003","nm":"Repeat Edge Pixels","ix":3,"v":{"a":0,"k":0,"ix":3}}]}],"w":320,"h":320,"refId":"comp_0","ind":2}],"v":"4.8.0","fr":60,"op":480,"ip":0,"assets":[{"nm":"","id":"comp_0","layers":[{"ty":0,"nm":"one seq","sr":1,"st":0,"op":600.000024438501,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[160,160,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[160,160,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":0},{"s":[900],"t":481.000019591532}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"w":320,"h":320,"refId":"comp_1","ind":1}]},{"nm":"","id":"comp_1","layers":[{"ty":4,"nm":"04_dec","sr":1,"st":360.000014663101,"op":480.000019550801,"ip":420.000017106951,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[10.547,16.547,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[160,160,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 1","ix":1,"cix":2,"np":4,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[177.094,177.094],"ix":2}},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":1,"k":[{"o":{"x":0.85,"y":0},"i":{"x":0.15,"y":1},"s":[75],"t":420},{"s":[75],"t":480.000019550801}],"ix":2},"o":{"a":0,"k":-270,"ix":3},"s":{"a":1,"k":[{"o":{"x":0.85,"y":0},"i":{"x":0.15,"y":1},"s":[0],"t":420},{"s":[75],"t":480.000019550801}],"ix":1},"m":1},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":20,"ix":5},"c":{"a":0,"k":[0.4,0.3686,0.9647],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[10.547,16.547],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":1},{"ty":4,"nm":"04_inc","sr":1,"st":360.000014663101,"op":420.000017106951,"ip":356.000014500177,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[10.547,16.547,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[160,160,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 1","ix":1,"cix":2,"np":4,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[177.094,177.094],"ix":2}},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":1,"k":[{"o":{"x":0.85,"y":0},"i":{"x":0.15,"y":1},"s":[0],"t":360},{"s":[75],"t":420.000017106951}],"ix":2},"o":{"a":0,"k":-270,"ix":3},"s":{"a":1,"k":[{"o":{"x":0.85,"y":0},"i":{"x":0.15,"y":1},"s":[0],"t":360},{"s":[0],"t":420.000017106951}],"ix":1},"m":1},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":20,"ix":5},"c":{"a":0,"k":[0.4,0.3686,0.9647],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[10.547,16.547],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":2},{"ty":4,"nm":"03_dec","sr":1,"st":240.0000097754,"op":365.000014866755,"ip":300.00001221925,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[10.547,16.547,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[160,160,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 1","ix":1,"cix":2,"np":4,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[177.094,177.094],"ix":2}},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":1,"k":[{"o":{"x":0.85,"y":0},"i":{"x":0.15,"y":1},"s":[75],"t":300},{"s":[75],"t":360.000014663101}],"ix":2},"o":{"a":0,"k":-180,"ix":3},"s":{"a":1,"k":[{"o":{"x":0.85,"y":0},"i":{"x":0.15,"y":1},"s":[0],"t":300},{"s":[75],"t":360.000014663101}],"ix":1},"m":1},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":20,"ix":5},"c":{"a":0,"k":[0.4,0.3686,0.9647],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[10.547,16.547],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":3},{"ty":4,"nm":"03_inc","sr":1,"st":240.0000097754,"op":301.000012259981,"ip":236.000009612477,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[10.547,16.547,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[160,160,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 1","ix":1,"cix":2,"np":4,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[177.094,177.094],"ix":2}},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":1,"k":[{"o":{"x":0.85,"y":0},"i":{"x":0.15,"y":1},"s":[0],"t":240},{"s":[75],"t":300.00001221925}],"ix":2},"o":{"a":0,"k":-180,"ix":3},"s":{"a":1,"k":[{"o":{"x":0.85,"y":0},"i":{"x":0.15,"y":1},"s":[0],"t":240},{"s":[0],"t":300.00001221925}],"ix":1},"m":1},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":20,"ix":5},"c":{"a":0,"k":[0.4,0.3686,0.9647],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[10.547,16.547],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":4},{"ty":4,"nm":"02_dec","sr":1,"st":121.000004928431,"op":246.000010019785,"ip":180.00000733155,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[10.547,16.547,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[160,160,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 1","ix":1,"cix":2,"np":4,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[177.094,177.094],"ix":2}},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":1,"k":[{"o":{"x":0.85,"y":0},"i":{"x":0.15,"y":1},"s":[75],"t":180},{"s":[75],"t":240.0000097754}],"ix":2},"o":{"a":0,"k":-90,"ix":3},"s":{"a":1,"k":[{"o":{"x":0.85,"y":0},"i":{"x":0.15,"y":1},"s":[0],"t":180},{"s":[75],"t":240.0000097754}],"ix":1},"m":1},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":20,"ix":5},"c":{"a":0,"k":[0.4,0.3686,0.9647],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[10.547,16.547],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":5},{"ty":4,"nm":"02_inc","sr":1,"st":121.000004928431,"op":180.00000733155,"ip":116.000004724777,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[10.547,16.547,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[160,160,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 1","ix":1,"cix":2,"np":4,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[177.094,177.094],"ix":2}},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":1,"k":[{"o":{"x":0.85,"y":0},"i":{"x":0.15,"y":1},"s":[0],"t":120},{"s":[75],"t":180.00000733155}],"ix":2},"o":{"a":0,"k":-90,"ix":3},"s":{"a":1,"k":[{"o":{"x":0.85,"y":0},"i":{"x":0.15,"y":1},"s":[0],"t":120},{"s":[0],"t":180.00000733155}],"ix":1},"m":1},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":20,"ix":5},"c":{"a":0,"k":[0.4,0.3686,0.9647],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[10.547,16.547],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":6},{"ty":4,"nm":"01_dec","sr":1,"st":0,"op":125.000005091354,"ip":60.0000024438501,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[10.547,16.547,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[160,160,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 1","ix":1,"cix":2,"np":4,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[177.094,177.094],"ix":2}},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":1,"k":[{"o":{"x":0.85,"y":0},"i":{"x":0.15,"y":1},"s":[75],"t":60},{"s":[75],"t":120.0000048877}],"ix":2},"o":{"a":0,"k":0,"ix":3},"s":{"a":1,"k":[{"o":{"x":0.85,"y":0},"i":{"x":0.15,"y":1},"s":[0],"t":60},{"s":[75],"t":120.0000048877}],"ix":1},"m":1},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":20,"ix":5},"c":{"a":0,"k":[0.4,0.3686,0.9647],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[10.547,16.547],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":7},{"ty":4,"nm":"01_inc","sr":1,"st":0,"op":60.0000024438501,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[10.547,16.547,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[160,160,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 1","ix":1,"cix":2,"np":4,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[177.094,177.094],"ix":2}},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":1,"k":[{"o":{"x":0.85,"y":0},"i":{"x":0.15,"y":1},"s":[0],"t":0},{"s":[75],"t":60.0000024438501}],"ix":2},"o":{"a":0,"k":0,"ix":3},"s":{"a":1,"k":[{"o":{"x":0.85,"y":0},"i":{"x":0.15,"y":1},"s":[0],"t":0},{"s":[0],"t":60.0000024438501}],"ix":1},"m":1},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":20,"ix":5},"c":{"a":0,"k":[0.4,0.3686,0.9647],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[10.547,16.547],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":8},{"ty":4,"nm":"01_inc 2","sr":1,"st":0,"op":486.000019795186,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[10.547,16.547,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[160,160,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":15,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 1","ix":1,"cix":2,"np":4,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[177.094,177.094],"ix":2}},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"s":{"a":0,"k":0,"ix":1},"m":1},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":20,"ix":5},"c":{"a":0,"k":[0.4,0.3686,0.9647],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[10.547,16.547],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":9}]}]} \ No newline at end of file diff --git a/src/app/communities/CommunityItem.tsx b/src/app/communities/CommunityItem.tsx index a8b4be26..69a240cf 100644 --- a/src/app/communities/CommunityItem.tsx +++ b/src/app/communities/CommunityItem.tsx @@ -32,7 +32,9 @@ export const CommunityItem = ({