diff --git a/package-lock.json b/package-lock.json index 442441c..5bc6fc9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,35 +1,35 @@ { "name": "explorer-dapp", - "version": "1.4.0", + "version": "1.5.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "explorer-dapp", - "version": "1.4.0", + "version": "1.5.0", "license": "GPL-3.0-or-later", "dependencies": { "@fortawesome/fontawesome-svg-core": "6.1.0", "@fortawesome/free-solid-svg-icons": "6.1.0", "@fortawesome/react-fontawesome": "0.1.18", "@headlessui/react": "1.7.15", - "@itheum/sdk-mx-data-nft": "^0.1.1", - "@multiversx/sdk-core": "12.6.0", - "@multiversx/sdk-dapp": "2.19.2", - "@multiversx/sdk-network-providers": "1.5.0", - "@radix-ui/react-dropdown-menu": "^2.0.5", - "@radix-ui/react-navigation-menu": "^1.1.3", - "@radix-ui/react-slot": "^1.0.2", - "@radix-ui/react-switch": "^1.0.3", + "@itheum/sdk-mx-data-nft": "1.0.0", + "@multiversx/sdk-core": "12.8.0", + "@multiversx/sdk-dapp": "2.20.1", + "@multiversx/sdk-network-providers": "2.0.0", + "@radix-ui/react-dropdown-menu": "2.0.5", + "@radix-ui/react-navigation-menu": "1.1.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-switch": "1.0.3", "@types/react-modal": "3.16.0", "axios": "0.24.0", "bootstrap": "4.6.2", "chartjs-plugin-zoom": "2.0.1", - "class-variance-authority": "^0.7.0", - "clsx": "^2.0.0", + "class-variance-authority": "0.7.0", + "clsx": "2.0.0", "d3": "7.8.5", - "dompurify": "^3.0.5", - "lucide-react": "^0.265.0", + "dompurify": "3.0.5", + "lucide-react": "0.265.0", "moment": "2.29.4", "moment-timezone": "0.5.43", "react": "18.2.0", @@ -39,15 +39,16 @@ "react-dom": "18.2.0", "react-hot-toast": "2.4.0", "react-icons": "4.8.0", - "react-inlinesvg": "^3.0.2", + "react-inlinesvg": "3.0.2", "react-modal": "3.16.1", - "react-pdf": "^7.3.3", + "react-pdf": "7.3.3", "react-router-dom": "6.14.2", "react-tooltip": "5.11.1", "react-vertical-timeline-component": "3.6.0", + "react-zoom-pan-pinch": "^3.1.0", "styled-components": "5.3.11", - "tailwind-merge": "^1.14.0", - "tailwindcss-animate": "^1.0.6", + "tailwind-merge": "1.14.0", + "tailwindcss-animate": "1.0.6", "web-vitals": "1.0.1" }, "devDependencies": { @@ -55,7 +56,7 @@ "@testing-library/react": "14.0.0", "@testing-library/user-event": "14.4.3", "@types/d3": "7.4.0", - "@types/dompurify": "^3.0.2", + "@types/dompurify": "3.0.2", "@types/jest": "26.0.15", "@types/node": "12.0.0", "@types/react": "18.0.24", @@ -97,9 +98,9 @@ } }, "node_modules/@adobe/css-tools": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.0.tgz", - "integrity": "sha512-+RNNcQvw2V1bmnBTPAtOLfW/9mhH2vC67+rUSi5T8EtEWt6lEnGNY2GuhZ1/YwbgikT1TkhvidCDmN5Q5YCo/w==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.1.tgz", + "integrity": "sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==", "dev": true }, "node_modules/@alloc/quick-lru": { @@ -131,11 +132,11 @@ "integrity": "sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA==" }, "node_modules/@babel/code-frame": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.10.tgz", - "integrity": "sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dependencies": { - "@babel/highlight": "^7.22.10", + "@babel/highlight": "^7.22.13", "chalk": "^2.4.2" }, "engines": { @@ -215,24 +216,24 @@ } }, "node_modules/@babel/core": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.10.tgz", - "integrity": "sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==", + "version": "7.22.17", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.17.tgz", + "integrity": "sha512-2EENLmhpwplDux5PSsZnSbnSkB3tZ6QTksgO25xwEL7pIDcNOMhF5v/s6RzwjMZzZzw9Ofc30gHv5ChCC8pifQ==", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.10", - "@babel/generator": "^7.22.10", - "@babel/helper-compilation-targets": "^7.22.10", - "@babel/helper-module-transforms": "^7.22.9", - "@babel/helpers": "^7.22.10", - "@babel/parser": "^7.22.10", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.10", - "@babel/types": "^7.22.10", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.22.15", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.22.17", + "@babel/helpers": "^7.22.15", + "@babel/parser": "^7.22.16", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.22.17", + "@babel/types": "^7.22.17", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", + "json5": "^2.2.3", "semver": "^6.3.1" }, "engines": { @@ -252,9 +253,9 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.10.tgz", - "integrity": "sha512-0J8DNPRXQRLeR9rPaUMM3fA+RbixjnVLe/MRMYCkp3hzgsSuxCHQ8NN8xQG1wIHKJ4a1DTROTvFJdW+B5/eOsg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz", + "integrity": "sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==", "dev": true, "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", @@ -288,11 +289,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.10.tgz", - "integrity": "sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz", + "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==", "dependencies": { - "@babel/types": "^7.22.10", + "@babel/types": "^7.22.15", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -313,24 +314,24 @@ } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz", - "integrity": "sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, "dependencies": { - "@babel/types": "^7.22.10" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz", - "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dependencies": { "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", "browserslist": "^4.21.9", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -348,15 +349,15 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.10.tgz", - "integrity": "sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", + "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.15", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-replace-supers": "^7.22.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -380,9 +381,9 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", - "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", @@ -453,38 +454,38 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", - "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.15.tgz", + "integrity": "sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", - "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", + "version": "7.22.17", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.17.tgz", + "integrity": "sha512-XouDDhQESrLHTpnBtCKExJdyY4gJCdrvH2Pyv8r8kovX2U8G0dRUOT45T9XlbLtuu9CLXP15eusnkprhoPV5iQ==", "dependencies": { "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-simple-access": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-validator-identifier": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -514,14 +515,14 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", - "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", + "version": "7.22.17", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.17.tgz", + "integrity": "sha512-bxH77R5gjH3Nkde6/LuncQoLaP16THYPscurp1S8z7S9ZgezCyV3G8Hc+TZiCmY8pz4fp8CvKSgtJMW0FkLAxA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.9" + "@babel/helper-wrap-function": "^7.22.17" }, "engines": { "node": ">=6.9.0" @@ -590,52 +591,52 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz", + "integrity": "sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz", - "integrity": "sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==", + "version": "7.22.17", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.17.tgz", + "integrity": "sha512-nAhoheCMlrqU41tAojw9GpVEKDlTS8r3lzFmF0lP52LwblCPbuFSO7nGIZoIcoU5NIm1ABrna0cJExE4Ay6l2Q==", "dev": true, "dependencies": { "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.10" + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.17" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.10.tgz", - "integrity": "sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.15.tgz", + "integrity": "sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==", "dependencies": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.10", - "@babel/types": "^7.22.10" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.10.tgz", - "integrity": "sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", + "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", "dependencies": { "@babel/helper-validator-identifier": "^7.22.5", "chalk": "^2.4.2", @@ -710,9 +711,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz", - "integrity": "sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==", + "version": "7.22.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", + "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", "bin": { "parser": "bin/babel-parser.js" }, @@ -721,9 +722,9 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.5", - "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.22.5.tgz", - "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", + "version": "7.22.15", + "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.22.15.tgz", + "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -736,14 +737,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", - "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", + "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.5" + "@babel/plugin-transform-optional-chaining": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -756,6 +757,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", @@ -769,12 +771,12 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.22.10.tgz", - "integrity": "sha512-KxN6TqZzcFi4uD3UifqXElBTBNLAEH1l3vzMQj6JwJZbL2sZlThxSViOKCYY+4Ah4V4JhQ95IVB7s/Y6SJSlMQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.22.15.tgz", + "integrity": "sha512-kc0VvbbUyKelvzcKOSyQUSVVXS5pT3UhRB0e3c9An86MvLqs+gx0dN4asllrDluqSa3m9YyooXKGOFVomnyFkg==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.10", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-replace-supers": "^7.22.9", "@babel/helper-split-export-declaration": "^7.22.6", @@ -791,6 +793,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", @@ -807,6 +810,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", @@ -823,6 +827,7 @@ "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", @@ -840,6 +845,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", @@ -1186,9 +1192,9 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz", - "integrity": "sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz", + "integrity": "sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.5", @@ -1236,9 +1242,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz", - "integrity": "sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.15.tgz", + "integrity": "sha512-G1czpdJBZCtngoK1sJgloLiOHUnkb/bLZwqVZD8kXmq0ZnVfTTWUcs9OWtp0mBtYJ+4LQY1fllqBkOIPhXmFmw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1267,12 +1273,12 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", - "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", + "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.11", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, @@ -1284,18 +1290,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", - "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", + "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, @@ -1332,9 +1338,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz", - "integrity": "sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.15.tgz", + "integrity": "sha512-HzG8sFl1ZVGTme74Nw+X01XsUTqERVQ6/RLHo3XjGRzm7XD6QTtfS3NJotVgCGy8BzkDqRjRBD8dAyJn5TuvSQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1378,9 +1384,9 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", - "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", + "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1410,9 +1416,9 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", - "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", + "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1442,9 +1448,9 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", - "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", + "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1474,9 +1480,9 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", - "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", + "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1505,9 +1511,9 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", - "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", + "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1552,12 +1558,12 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", - "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.15.tgz", + "integrity": "sha512-jWL4eh90w0HQOTKP2MoXXUpVxilxsB2Vl4ji69rSjS3EcZ/v4sBmn+A3NpepuJzBhOaEBbR7udonlHHn5DWidg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-simple-access": "^7.22.5" }, @@ -1569,13 +1575,13 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", - "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz", + "integrity": "sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA==", "dev": true, "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.9", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-identifier": "^7.22.5" }, @@ -1634,9 +1640,9 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", - "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", + "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1650,9 +1656,9 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", - "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", + "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1666,16 +1672,16 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", - "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", + "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", + "@babel/compat-data": "^7.22.9", + "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.5" + "@babel/plugin-transform-parameters": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -1701,9 +1707,9 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", - "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", + "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1717,9 +1723,9 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz", - "integrity": "sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.15.tgz", + "integrity": "sha512-ngQ2tBhq5vvSJw2Q2Z9i7ealNkpDMU0rGWnHPKqRZO0tzZ5tlaoz4hDvhXioOoaE0X2vfNss1djwg0DXlfu30A==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", @@ -1734,9 +1740,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", - "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", + "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" @@ -1765,13 +1771,13 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", - "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", + "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.11", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, @@ -1828,16 +1834,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz", - "integrity": "sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz", + "integrity": "sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -1909,12 +1915,12 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.10.tgz", - "integrity": "sha512-RchI7HePu1eu0CYNKHHHQdfenZcM4nz8rew5B1VWqeRKdcwW5aQ5HeG9eTUbWiAS1UrmHVLmoxTWHt3iLD/NhA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz", + "integrity": "sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "babel-plugin-polyfill-corejs2": "^0.4.5", "babel-plugin-polyfill-corejs3": "^0.8.3", @@ -2014,13 +2020,13 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.10.tgz", - "integrity": "sha512-7++c8I/ymsDo4QQBAgbraXLzIM6jmfao11KgIBEYZRReWzNWH9NtNgJcyrZiXsOPh523FQm6LfpLyy/U5fn46A==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz", + "integrity": "sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.10", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-typescript": "^7.22.5" }, @@ -2095,17 +2101,17 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.10.tgz", - "integrity": "sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.15.tgz", + "integrity": "sha512-tZFHr54GBkHk6hQuVA8w4Fmq+MSPsfvMG0vPnOYyTnJpyfMqybL8/MbNCPRT9zc2KBO2pe4tq15g6Uno4Jpoag==", "dev": true, "dependencies": { "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.10", + "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", "@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", @@ -2126,41 +2132,41 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.10", + "@babel/plugin-transform-async-generator-functions": "^7.22.15", "@babel/plugin-transform-async-to-generator": "^7.22.5", "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.10", + "@babel/plugin-transform-block-scoping": "^7.22.15", "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.5", - "@babel/plugin-transform-classes": "^7.22.6", + "@babel/plugin-transform-class-static-block": "^7.22.11", + "@babel/plugin-transform-classes": "^7.22.15", "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.10", + "@babel/plugin-transform-destructuring": "^7.22.15", "@babel/plugin-transform-dotall-regex": "^7.22.5", "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.11", "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.5", - "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.11", + "@babel/plugin-transform-for-of": "^7.22.15", "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.11", "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", "@babel/plugin-transform-member-expression-literals": "^7.22.5", "@babel/plugin-transform-modules-amd": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", - "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.15", + "@babel/plugin-transform-modules-systemjs": "^7.22.11", "@babel/plugin-transform-modules-umd": "^7.22.5", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", - "@babel/plugin-transform-numeric-separator": "^7.22.5", - "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", + "@babel/plugin-transform-numeric-separator": "^7.22.11", + "@babel/plugin-transform-object-rest-spread": "^7.22.15", "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.10", - "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.11", + "@babel/plugin-transform-optional-chaining": "^7.22.15", + "@babel/plugin-transform-parameters": "^7.22.15", "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.11", "@babel/plugin-transform-property-literals": "^7.22.5", "@babel/plugin-transform-regenerator": "^7.22.10", "@babel/plugin-transform-reserved-words": "^7.22.5", @@ -2174,7 +2180,7 @@ "@babel/plugin-transform-unicode-regex": "^7.22.5", "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.22.10", + "@babel/types": "^7.22.15", "babel-plugin-polyfill-corejs2": "^0.4.5", "babel-plugin-polyfill-corejs3": "^0.8.3", "babel-plugin-polyfill-regenerator": "^0.5.2", @@ -2212,15 +2218,15 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.5.tgz", - "integrity": "sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.15.tgz", + "integrity": "sha512-Csy1IJ2uEh/PecCBXXoZGAZBeCATTuePzCSB7dLYWS0vOEj6CNpjxIhW4duWwZodBNueH7QO14WbGn8YyeuN9w==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", "@babel/plugin-transform-react-display-name": "^7.22.5", - "@babel/plugin-transform-react-jsx": "^7.22.5", + "@babel/plugin-transform-react-jsx": "^7.22.15", "@babel/plugin-transform-react-jsx-development": "^7.22.5", "@babel/plugin-transform-react-pure-annotations": "^7.22.5" }, @@ -2232,16 +2238,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz", - "integrity": "sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.15.tgz", + "integrity": "sha512-HblhNmh6yM+cU4VwbBRpxFhxsTdfS1zsvH9W+gEjD0ARV9+8B4sNfpI6GuhePti84nuvhiwKS539jKPFHskA9A==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", - "@babel/plugin-transform-typescript": "^7.22.5" + "@babel/plugin-transform-modules-commonjs": "^7.22.15", + "@babel/plugin-transform-typescript": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -2257,9 +2263,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz", - "integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz", + "integrity": "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -2268,31 +2274,31 @@ } }, "node_modules/@babel/template": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.10.tgz", - "integrity": "sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==", + "version": "7.22.17", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.17.tgz", + "integrity": "sha512-xK4Uwm0JnAMvxYZxOVecss85WxTEIbTa7bnGyf/+EgCL5Zt3U7htUpEOWv9detPlamGKuRzCqw74xVglDWpPdg==", "dependencies": { - "@babel/code-frame": "^7.22.10", - "@babel/generator": "^7.22.10", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.22.15", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.10", - "@babel/types": "^7.22.10", + "@babel/parser": "^7.22.16", + "@babel/types": "^7.22.17", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2309,12 +2315,12 @@ } }, "node_modules/@babel/types": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.10.tgz", - "integrity": "sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==", + "version": "7.22.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.17.tgz", + "integrity": "sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==", "dependencies": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.15", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2327,30 +2333,6 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, - "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==", - "optional": true, - "peer": true, - "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==", - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, "node_modules/@csstools/normalize.css": { "version": "12.0.0", "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", @@ -2676,18 +2658,18 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", - "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.1.tgz", + "integrity": "sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.1.tgz", - "integrity": "sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -2708,9 +2690,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.46.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.46.0.tgz", - "integrity": "sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==", + "version": "8.49.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.49.0.tgz", + "integrity": "sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2725,20 +2707,20 @@ } }, "node_modules/@floating-ui/dom": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.1.tgz", - "integrity": "sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.2.tgz", + "integrity": "sha512-6ArmenS6qJEWmwzczWyhvrXRdI/rI78poBcW0h/456+onlabit+2G+QxHx5xTOX60NBJQXjsCLFbW2CmsXpUog==", "dependencies": { "@floating-ui/core": "^1.4.1", "@floating-ui/utils": "^0.1.1" } }, "node_modules/@floating-ui/react-dom": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.1.tgz", - "integrity": "sha512-rZtAmSht4Lry6gdhAJDrCp/6rKN7++JnL1/Anbr/DdeyYXQPxvg/ivrbYvJulbRf4vL8b212suwMM2lxbv+RQA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.2.tgz", + "integrity": "sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==", "dependencies": { - "@floating-ui/dom": "^1.3.0" + "@floating-ui/dom": "^1.5.1" }, "peerDependencies": { "react": ">=16.8.0", @@ -2746,9 +2728,9 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.1.tgz", - "integrity": "sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==" + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.2.tgz", + "integrity": "sha512-ou3elfqG/hZsbmF4bxeJhPHIf3G2pm0ujc39hYEZrfVqt7Vk/Zji6CXc3W0pmYM8BW1g40U+akTl9DKZhFhInQ==" }, "node_modules/@fortawesome/fontawesome-common-types": { "version": "6.1.0", @@ -2811,9 +2793,9 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -2988,14 +2970,103 @@ } }, "node_modules/@itheum/sdk-mx-data-nft": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@itheum/sdk-mx-data-nft/-/sdk-mx-data-nft-0.1.1.tgz", - "integrity": "sha512-JtXLayCPEP7LZHxMIXqwCIDk3ptjMfYazEMBLVaCwC3jhfrnTzZAccVXlBCSsUXdXVLIcUEXkU/x9xI08TvKuQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@itheum/sdk-mx-data-nft/-/sdk-mx-data-nft-1.0.0.tgz", + "integrity": "sha512-vTGM1XzzKSQmNg/bPI3rzwDFFI8du7Tlq1Z3O69xHtX+leQz7FW0xzkOPeD9n66qeZNZfzq4nYB601xh88GtSw==", "dependencies": { "@multiversx/sdk-core": "12.6.0", "@multiversx/sdk-network-providers": "1.5.0", "bignumber.js": "^9.1.1", - "nft.storage": "^7.0.3" + "nft.storage": "^7.1.1" + } + }, + "node_modules/@itheum/sdk-mx-data-nft/node_modules/@multiversx/sdk-core": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@multiversx/sdk-core/-/sdk-core-12.6.0.tgz", + "integrity": "sha512-aJjSn8EzaYXalUuvAuxOTPtv8GDbimJlSYNRLjCsToyfwGAyS9cRllmq2d1I2nlrR89YgAsOL9qp+sI5DA7yBw==", + "dependencies": { + "@multiversx/sdk-transaction-decoder": "1.0.2", + "bech32": "1.1.4", + "bignumber.js": "9.0.1", + "blake2b": "2.1.3", + "buffer": "6.0.3", + "json-duplicate-key-handle": "1.0.0", + "keccak": "3.0.2", + "protobufjs": "7.2.4" + } + }, + "node_modules/@itheum/sdk-mx-data-nft/node_modules/@multiversx/sdk-core/node_modules/bignumber.js": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", + "engines": { + "node": "*" + } + }, + "node_modules/@itheum/sdk-mx-data-nft/node_modules/@multiversx/sdk-network-providers": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@multiversx/sdk-network-providers/-/sdk-network-providers-1.5.0.tgz", + "integrity": "sha512-GgmpOfwdeK8QvBCVJ96/L2ATNax7/rdSDvPLlmppKHVuFAj56/EqGnrLuktNPRWBsZse+7DMoS38kGtN77AwJQ==", + "dependencies": { + "axios": "0.24.0", + "bech32": "1.1.4", + "bignumber.js": "9.0.1", + "buffer": "6.0.3", + "json-bigint": "1.0.0" + } + }, + "node_modules/@itheum/sdk-mx-data-nft/node_modules/@multiversx/sdk-network-providers/node_modules/bignumber.js": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", + "engines": { + "node": "*" + } + }, + "node_modules/@itheum/sdk-mx-data-nft/node_modules/@web-std/fetch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@web-std/fetch/-/fetch-4.2.1.tgz", + "integrity": "sha512-M6sgHDgKegcjuVsq8J6jb/4XvhPGui8uwp3EIoADGXUnBl9vKzKLk9H9iFzrPJ6fSV6zZzFWXPyziBJp9hxzBA==", + "dependencies": { + "@web-std/blob": "^3.0.3", + "@web-std/file": "^3.0.2", + "@web-std/form-data": "^3.0.2", + "@web-std/stream": "^1.0.1", + "@web3-storage/multipart-parser": "^1.0.0", + "abort-controller": "^3.0.0", + "data-uri-to-buffer": "^3.0.1", + "mrmime": "^1.0.0" + }, + "engines": { + "node": "^10.17 || >=12.3" + } + }, + "node_modules/@itheum/sdk-mx-data-nft/node_modules/@web-std/stream": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@web-std/stream/-/stream-1.0.3.tgz", + "integrity": "sha512-5MIngxWyq4rQiGoDAC2WhjLuDraW8+ff2LD2et4NRY933K3gL8CHlUXrh8ZZ3dC9A9Xaub8c9sl5exOJE58D9Q==", + "dependencies": { + "web-streams-polyfill": "^3.1.1" + } + }, + "node_modules/@itheum/sdk-mx-data-nft/node_modules/nft.storage": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/nft.storage/-/nft.storage-7.1.1.tgz", + "integrity": "sha512-OHFeRiWLcGCWHX8Kx3yvSt7qGbHwEROl0kcN2xaHWBaR0ApYH5DnjlqczXSwP9WwBDtjhyDk4IHReXSwuZkB7Q==", + "dependencies": { + "@ipld/car": "^3.2.3", + "@ipld/dag-cbor": "^6.0.13", + "@web-std/blob": "^3.0.1", + "@web-std/fetch": "^4.1.2", + "@web-std/file": "^3.0.0", + "@web-std/form-data": "^3.0.0", + "carbites": "^1.0.6", + "ipfs-car": "^0.6.2", + "it-pipe": "^1.1.0", + "multiformats": "^9.6.4", + "p-retry": "^4.6.1", + "streaming-iterables": "^6.0.0", + "throttled-queue": "^2.1.2" } }, "node_modules/@jest/console": { @@ -3362,49 +3433,44 @@ "events": "^3.3.0" } }, - "node_modules/@ledgerhq/hw-transport-u2f": { - "version": "5.36.0-deprecated", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.36.0-deprecated.tgz", - "integrity": "sha512-T/+mGHIiUK/ZQATad6DMDmobCMZ1mVST952009jKzhaE1Et2Uy2secU+QhRkx3BfEAkvwa0zSRSYCL9d20Iqjg==", - "deprecated": "@ledgerhq/hw-transport-u2f is deprecated. Please use @ledgerhq/hw-transport-webusb or @ledgerhq/hw-transport-webhid. https://github.com/LedgerHQ/ledgerjs/blob/master/docs/migrate_webusb.md", + "node_modules/@ledgerhq/hw-transport-web-ble": { + "version": "6.27.17", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-web-ble/-/hw-transport-web-ble-6.27.17.tgz", + "integrity": "sha512-OoKbImhgyi43F6PM2KAJfViW+oEmZ3M8Tq9XZ0X57oL6QCQUYv6FakEFFkZzNuNWFdtFKGPgNt6xygqIdNElEQ==", "dependencies": { - "@ledgerhq/errors": "^5.34.0", - "@ledgerhq/hw-transport": "^5.34.0", - "@ledgerhq/logs": "^5.30.0", - "u2f-api": "0.2.7" + "@ledgerhq/devices": "^8.0.5", + "@ledgerhq/errors": "^6.13.0", + "@ledgerhq/hw-transport": "^6.28.6", + "@ledgerhq/logs": "^6.10.1", + "rxjs": "6" } }, - "node_modules/@ledgerhq/hw-transport-u2f/node_modules/@ledgerhq/devices": { - "version": "5.51.1", - "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.51.1.tgz", - "integrity": "sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA==", + "node_modules/@ledgerhq/hw-transport-web-ble/node_modules/@ledgerhq/devices": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-8.0.7.tgz", + "integrity": "sha512-BbPyET52lXnVs7CxJWrGYqmtGdbGzj+XnfCqLsDnA7QYr1CZREysxmie+Rr6BKpNDBRVesAovXjtaVaZOn+upw==", "dependencies": { - "@ledgerhq/errors": "^5.50.0", - "@ledgerhq/logs": "^5.50.0", + "@ledgerhq/errors": "^6.14.0", + "@ledgerhq/logs": "^6.10.1", "rxjs": "6", "semver": "^7.3.5" } }, - "node_modules/@ledgerhq/hw-transport-u2f/node_modules/@ledgerhq/errors": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.50.0.tgz", - "integrity": "sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow==" + "node_modules/@ledgerhq/hw-transport-web-ble/node_modules/@ledgerhq/errors": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-6.14.0.tgz", + "integrity": "sha512-ZWJw2Ti6Dq1Ott/+qYqJdDWeZm16qI3VNG5rFlb0TQ3UcAyLIQZbnnzzdcVVwVeZiEp66WIpINd/pBdqsHVyOA==" }, - "node_modules/@ledgerhq/hw-transport-u2f/node_modules/@ledgerhq/hw-transport": { - "version": "5.51.1", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.51.1.tgz", - "integrity": "sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw==", + "node_modules/@ledgerhq/hw-transport-web-ble/node_modules/@ledgerhq/hw-transport": { + "version": "6.28.8", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-6.28.8.tgz", + "integrity": "sha512-XxQVl4htd018u/M66r0iu5nlHi+J6QfdPsORzDF6N39jaz+tMqItb7tUlXM/isggcuS5lc7GJo7NOuJ8rvHZaQ==", "dependencies": { - "@ledgerhq/devices": "^5.51.1", - "@ledgerhq/errors": "^5.50.0", + "@ledgerhq/devices": "^8.0.7", + "@ledgerhq/errors": "^6.14.0", "events": "^3.3.0" } }, - "node_modules/@ledgerhq/hw-transport-u2f/node_modules/@ledgerhq/logs": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.50.0.tgz", - "integrity": "sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA==" - }, "node_modules/@ledgerhq/hw-transport-webhid": { "version": "6.27.15", "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.15.tgz", @@ -3476,9 +3542,9 @@ } }, "node_modules/@multiversx/sdk-core": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@multiversx/sdk-core/-/sdk-core-12.6.0.tgz", - "integrity": "sha512-aJjSn8EzaYXalUuvAuxOTPtv8GDbimJlSYNRLjCsToyfwGAyS9cRllmq2d1I2nlrR89YgAsOL9qp+sI5DA7yBw==", + "version": "12.8.0", + "resolved": "https://registry.npmjs.org/@multiversx/sdk-core/-/sdk-core-12.8.0.tgz", + "integrity": "sha512-+XtnwQ/dUaXrpu/GCNud7r5AaQtNKRVqeKnjVUoKKHr14ohXbg9FW2Xx7IrJvehEMupjdx+6phR+nAXR60bIbQ==", "dependencies": { "@multiversx/sdk-transaction-decoder": "1.0.2", "bech32": "1.1.4", @@ -3490,11 +3556,6 @@ "protobufjs": "7.2.4" } }, - "node_modules/@multiversx/sdk-core/node_modules/@types/node": { - "version": "20.4.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.9.tgz", - "integrity": "sha512-8e2HYcg7ohnTUbHk8focoklEQYvemQmu9M/f43DZVx43kHn0tE3BY/6gSDxS7k0SprtS0NHvj+L80cGLnoOUcQ==" - }, "node_modules/@multiversx/sdk-core/node_modules/bignumber.js": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", @@ -3503,48 +3564,20 @@ "node": "*" } }, - "node_modules/@multiversx/sdk-core/node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - }, - "node_modules/@multiversx/sdk-core/node_modules/protobufjs": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.4.tgz", - "integrity": "sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/@multiversx/sdk-dapp": { - "version": "2.19.2", - "resolved": "https://registry.npmjs.org/@multiversx/sdk-dapp/-/sdk-dapp-2.19.2.tgz", - "integrity": "sha512-OH70AgcLfYTF6S2rpC8D6jdGI5mRtkRGwO/0ZrAe4j+nHogo6sLfwVweGVv+f1Xe3mdjdUbqe3FMEqB5hqACeA==", + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/@multiversx/sdk-dapp/-/sdk-dapp-2.20.1.tgz", + "integrity": "sha512-8FcC5Ljy9Lm1nWixBC1yZsM6mPs7PCn+TN5Rnv7RVj9bQ4KStFUKMuwq+2RpdHha5h3YegN/P3WPPWm2OnD/5A==", "dependencies": { - "@multiversx/sdk-core": "12.4.2", + "@multiversx/sdk-core": "12.6.0", "@multiversx/sdk-extension-provider": "3.0.0", - "@multiversx/sdk-hw-provider": "6.2.0", - "@multiversx/sdk-native-auth-client": "1.0.4", - "@multiversx/sdk-network-providers": "1.4.0", + "@multiversx/sdk-hw-provider": "6.4.0", + "@multiversx/sdk-native-auth-client": "1.0.5", + "@multiversx/sdk-network-providers": "1.5.0", "@multiversx/sdk-opera-provider": "1.0.0-alpha.1", - "@multiversx/sdk-wallet": "4.0.0", - "@multiversx/sdk-wallet-connect-provider": "4.0.2", - "@multiversx/sdk-web-wallet-provider": "2.4.0", + "@multiversx/sdk-wallet": "4.2.0", + "@multiversx/sdk-wallet-connect-provider": "4.0.3", + "@multiversx/sdk-web-wallet-provider": "3.1.0", "@reduxjs/toolkit": "1.8.2", "axios": "0.24.0", "bignumber.js": "9.x", @@ -3632,9 +3665,9 @@ } }, "node_modules/@multiversx/sdk-dapp/node_modules/@multiversx/sdk-core": { - "version": "12.4.2", - "resolved": "https://registry.npmjs.org/@multiversx/sdk-core/-/sdk-core-12.4.2.tgz", - "integrity": "sha512-L2wo+ks8eci7QCpSyCN2TxMWixkPdEW4o3EQoIeO7JYcPzMKGnru56YgScOngmiBxcn3e4LsfT+LGlXMLN+VbQ==", + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/@multiversx/sdk-core/-/sdk-core-12.6.0.tgz", + "integrity": "sha512-aJjSn8EzaYXalUuvAuxOTPtv8GDbimJlSYNRLjCsToyfwGAyS9cRllmq2d1I2nlrR89YgAsOL9qp+sI5DA7yBw==", "dependencies": { "@multiversx/sdk-transaction-decoder": "1.0.2", "bech32": "1.1.4", @@ -3643,13 +3676,13 @@ "buffer": "6.0.3", "json-duplicate-key-handle": "1.0.0", "keccak": "3.0.2", - "protobufjs": "6.11.3" + "protobufjs": "7.2.4" } }, "node_modules/@multiversx/sdk-dapp/node_modules/@multiversx/sdk-network-providers": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@multiversx/sdk-network-providers/-/sdk-network-providers-1.4.0.tgz", - "integrity": "sha512-a9vcY6wNM3ZccApULXbTCPp3/dAu4J6uH0go3jHy8YB0iH9nKiTLQLUD+1fM0lJmuC9Tk9Q+EeAj7OJzQqHKkQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@multiversx/sdk-network-providers/-/sdk-network-providers-1.5.0.tgz", + "integrity": "sha512-GgmpOfwdeK8QvBCVJ96/L2ATNax7/rdSDvPLlmppKHVuFAj56/EqGnrLuktNPRWBsZse+7DMoS38kGtN77AwJQ==", "dependencies": { "axios": "0.24.0", "bech32": "1.1.4", @@ -3675,14 +3708,14 @@ } }, "node_modules/@multiversx/sdk-hw-provider": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@multiversx/sdk-hw-provider/-/sdk-hw-provider-6.2.0.tgz", - "integrity": "sha512-zfedgFJFbFAzOBY9qPRA+TgSjAp/3OXCFgMoACoRh/Ugb6SHBj3ihcPH6bX5E+qYgP02I/Cc3C3p9/r+vRruyQ==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@multiversx/sdk-hw-provider/-/sdk-hw-provider-6.4.0.tgz", + "integrity": "sha512-o+iO64U7gi3oqQHIaCNWoOCarrOQyjXEq7kEsWg/HXJOANpc+lq4GiXPtBkN5mOwPoj/UlEk1HfxA+54mTCFNQ==", "dependencies": { "@ledgerhq/devices": "8.0.3", "@ledgerhq/errors": "6.12.6", "@ledgerhq/hw-transport": "6.28.4", - "@ledgerhq/hw-transport-u2f": "5.36.0-deprecated", + "@ledgerhq/hw-transport-web-ble": "6.27.17", "@ledgerhq/hw-transport-webhid": "6.27.15", "@ledgerhq/hw-transport-webusb": "6.27.15", "buffer": "6.0.3", @@ -3693,17 +3726,17 @@ } }, "node_modules/@multiversx/sdk-native-auth-client": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@multiversx/sdk-native-auth-client/-/sdk-native-auth-client-1.0.4.tgz", - "integrity": "sha512-Yz6lAWtGaUHoFma7DICQMr6ZKzNvusPq0eRNOXmTyW+9Zm9Gih2qUKFiIDEeEe6Fn9d6hO+ed20R4h3anYsxPw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@multiversx/sdk-native-auth-client/-/sdk-native-auth-client-1.0.5.tgz", + "integrity": "sha512-MA9KCNy2K0Irw+RMn01mxXB3Z+EcpMuUFBqr6ZhVQyxmXjujK+CHvlXH5TSADIm5Yw2SfGjFGdiqRu64lNVvuA==", "dependencies": { "axios": "0.24.0" } }, "node_modules/@multiversx/sdk-network-providers": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@multiversx/sdk-network-providers/-/sdk-network-providers-1.5.0.tgz", - "integrity": "sha512-GgmpOfwdeK8QvBCVJ96/L2ATNax7/rdSDvPLlmppKHVuFAj56/EqGnrLuktNPRWBsZse+7DMoS38kGtN77AwJQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@multiversx/sdk-network-providers/-/sdk-network-providers-2.0.0.tgz", + "integrity": "sha512-87QlwC2kaNtywDv2IVX/cavRfR4D5N7XgqOvsZTyMXRVbfWOUlDocrRr5BdvmC1gDdSOQH++nFEDHiMfnKmRng==", "dependencies": { "axios": "0.24.0", "bech32": "1.1.4", @@ -3739,9 +3772,9 @@ "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" }, "node_modules/@multiversx/sdk-wallet": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@multiversx/sdk-wallet/-/sdk-wallet-4.0.0.tgz", - "integrity": "sha512-Fskqg9AGgqSIAgN+Ag9Y/DIoZRr4qgB0baVZ1nlXhgaRuM30v1UeW0TAIhuAbXkkMiTOJyLaCeebUDYy1VJgWA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@multiversx/sdk-wallet/-/sdk-wallet-4.2.0.tgz", + "integrity": "sha512-EjSb9AnqMcpmDjZ7ebkUpOzpTfxj1plTuVXwZ6AaqJsdpxMfrE2izbPy18+bg5xFlr8V27wYZcW8zOhkBR50BA==", "dependencies": { "@multiversx/sdk-bls-wasm": "0.3.5", "@noble/ed25519": "1.7.3", @@ -3758,16 +3791,16 @@ } }, "node_modules/@multiversx/sdk-wallet-connect-provider": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@multiversx/sdk-wallet-connect-provider/-/sdk-wallet-connect-provider-4.0.2.tgz", - "integrity": "sha512-WGim7kD49N5LoWestdmvxBYeJEDCevJv50Gt/RFBtZoWT3OyDoWu2wotVNssjPW0UQ5EyYPae96g+6FNHrXsxw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@multiversx/sdk-wallet-connect-provider/-/sdk-wallet-connect-provider-4.0.3.tgz", + "integrity": "sha512-j48gz0ZBuYAUbEKx3qN2AvwZssNHYASwfng/ek097wgmDEIH8cfeA1ujkN6FF0WMvh8T6bIHtOHKWH3diZ/Fdg==", "dependencies": { - "@walletconnect/sign-client": "2.9.0", - "@walletconnect/utils": "2.9.0", + "@walletconnect/sign-client": "2.9.1", + "@walletconnect/utils": "2.9.1", "bech32": "1.1.4" }, "peerDependencies": { - "@multiversx/sdk-core": ">= 12.1.0" + "@multiversx/sdk-core": ">= 12.5.0" } }, "node_modules/@multiversx/sdk-wallet/node_modules/keccak": { @@ -3784,11 +3817,14 @@ } }, "node_modules/@multiversx/sdk-web-wallet-provider": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@multiversx/sdk-web-wallet-provider/-/sdk-web-wallet-provider-2.4.0.tgz", - "integrity": "sha512-/rbK3Ug86d5z7Dsw/7BzATfjEeP6NMmlf+ncocz1cO5e1UylrEQ8uA3DZHToi32CF5JRtvnFx2qUR2rVXf6F2A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@multiversx/sdk-web-wallet-provider/-/sdk-web-wallet-provider-3.1.0.tgz", + "integrity": "sha512-gIE7AudJl5Ax64AMAD0o6m0cVi+dI5LW2TSM5M9K7zKMWWCflhv27a2A61JkCIQ6CK5OTIkMXaFb61OzUqhplQ==", "dependencies": { "qs": "6.10.3" + }, + "peerDependencies": { + "@multiversx/sdk-core": ">= 12.1.0" } }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { @@ -3927,15 +3963,15 @@ } }, "node_modules/@pkgr/utils/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz", - "integrity": "sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==", + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz", + "integrity": "sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ==", "dev": true, "dependencies": { "ansi-html-community": "^0.0.8", @@ -3955,7 +3991,7 @@ "@types/webpack": "4.x || 5.x", "react-refresh": ">=0.10.0 <1.0.0", "sockjs-client": "^1.4.0", - "type-fest": ">=0.17.0 <4.0.0", + "type-fest": ">=0.17.0 <5.0.0", "webpack": ">=4.43.0 <6.0.0", "webpack-dev-server": "3.x || 4.x", "webpack-hot-middleware": "2.x", @@ -4680,12 +4716,15 @@ } }, "node_modules/@react-aria/ssr": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.7.0.tgz", - "integrity": "sha512-bfufjg4ESE5giN+Fxj1XIzS5f/YIhqcGc+Ve+vUUKU8xZ8t/Xtjlv8F3kjqDBQdk//n3mluFY7xG1wQVB9rMLQ==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.8.0.tgz", + "integrity": "sha512-Y54xs483rglN5DxbwfCPHxnkvZ+gZ0LbSYmR72LyWPGft8hN/lrl1VRS1EW2SMjnkEWlj+Km2mwvA3kEHDUA0A==", "dependencies": { "@swc/helpers": "^0.5.0" }, + "engines": { + "node": ">= 12" + }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } @@ -5271,17 +5310,17 @@ } }, "node_modules/@swc/helpers": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.1.tgz", - "integrity": "sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", + "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@swc/helpers/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/@testing-library/dom": { "version": "9.3.1", @@ -5386,39 +5425,11 @@ "node": ">=10.13.0" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "optional": true, - "peer": true - }, - "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==", - "optional": true, - "peer": true - }, - "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==", - "optional": true, - "peer": true - }, - "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==", - "optional": true, - "peer": true - }, - "node_modules/@types/aria-query": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz", - "integrity": "sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==", - "dev": true + "node_modules/@types/aria-query": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz", + "integrity": "sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==", + "dev": true }, "node_modules/@types/babel__core": { "version": "7.20.1", @@ -5481,18 +5492,18 @@ } }, "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "version": "3.4.36", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", + "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", - "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.1.tgz", + "integrity": "sha512-iaQslNbARe8fctL5Lk+DsmgWOM83lM+7FzP0eQUJs1jd3kBE8NWqBTIT2S8SqQOJjxvt2eyIjpOuYeRXq2AdMw==", "dev": true, "dependencies": { "@types/express-serve-static-core": "*", @@ -5538,33 +5549,33 @@ } }, "node_modules/@types/d3-array": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.0.5.tgz", - "integrity": "sha512-Qk7fpJ6qFp+26VeQ47WY0mkwXaiq8+76RJcncDEfMc2ocRzXLO67bLFRNI4OX1aGBoPzsM5Y2T+/m1pldOgD+A==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.0.7.tgz", + "integrity": "sha512-4/Q0FckQ8TBjsB0VdGFemJOG8BLXUB2KKlL0VmZ+eOYeOnTb/wDRQqYWpBmQ6IlvWkXwkYiot+n9Px2aTJ7zGQ==", "dev": true }, "node_modules/@types/d3-axis": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.2.tgz", - "integrity": "sha512-uGC7DBh0TZrU/LY43Fd8Qr+2ja1FKmH07q2FoZFHo1eYl8aj87GhfVoY1saJVJiq24rp1+wpI6BvQJMKgQm8oA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.3.tgz", + "integrity": "sha512-SE3x/pLO/+GIHH17mvs1uUVPkZ3bHquGzvZpPAh4yadRy71J93MJBpgK/xY8l9gT28yTN1g9v3HfGSFeBMmwZw==", "dev": true, "dependencies": { "@types/d3-selection": "*" } }, "node_modules/@types/d3-brush": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.2.tgz", - "integrity": "sha512-2TEm8KzUG3N7z0TrSKPmbxByBx54M+S9lHoP2J55QuLU0VSQ9mE96EJSAOVNEqd1bbynMjeTS9VHmz8/bSw8rA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.3.tgz", + "integrity": "sha512-MQ1/M/B5ifTScHSe5koNkhxn2mhUPqXjGuKjjVYckplAPjP9t2I2sZafb/YVHDwhoXWZoSav+Q726eIbN3qprA==", "dev": true, "dependencies": { "@types/d3-selection": "*" } }, "node_modules/@types/d3-chord": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.2.tgz", - "integrity": "sha512-abT/iLHD3sGZwqMTX1TYCMEulr+wBd0SzyOQnjYNLp7sngdOHYtNkMRI5v3w5thoN+BWtlHVDx2Osvq6fxhZWw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.3.tgz", + "integrity": "sha512-keuSRwO02c7PBV3JMWuctIfdeJrVFI7RpzouehvBWL4/GGUB3PBNg/9ZKPZAgJphzmS2v2+7vr7BGDQw1CAulw==", "dev": true }, "node_modules/@types/d3-color": { @@ -5574,9 +5585,9 @@ "dev": true }, "node_modules/@types/d3-contour": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.2.tgz", - "integrity": "sha512-k6/bGDoAGJZnZWaKzeB+9glgXCYGvh6YlluxzBREiVo8f/X2vpTEdgPy9DN7Z2i42PZOZ4JDhVdlTSTSkLDPlQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.3.tgz", + "integrity": "sha512-x7G/tdDZt4m09XZnG2SutbIuQqmkNYqR9uhDMdPlpJbcwepkEjEWG29euFcgVA1k6cn92CHdDL9Z+fOnxnbVQw==", "dev": true, "dependencies": { "@types/d3-array": "*", @@ -5590,24 +5601,24 @@ "dev": true }, "node_modules/@types/d3-dispatch": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.2.tgz", - "integrity": "sha512-rxN6sHUXEZYCKV05MEh4z4WpPSqIw+aP7n9ZN6WYAAvZoEAghEK1WeVZMZcHRBwyaKflU43PCUAJNjFxCzPDjg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.3.tgz", + "integrity": "sha512-Df7KW3Re7G6cIpIhQtqHin8yUxUHYAqiE41ffopbmU5+FifYUNV7RVyTg8rQdkEagg83m14QtS8InvNb95Zqug==", "dev": true }, "node_modules/@types/d3-drag": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.2.tgz", - "integrity": "sha512-qmODKEDvyKWVHcWWCOVcuVcOwikLVsyc4q4EBJMREsoQnR2Qoc2cZQUyFUPgO9q4S3qdSqJKBsuefv+h0Qy+tw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.3.tgz", + "integrity": "sha512-82AuQMpBQjuXeIX4tjCYfWjpm3g7aGCfx6dFlxX2JlRaiME/QWcHzBsINl7gbHCODA2anPYlL31/Trj/UnjK9A==", "dev": true, "dependencies": { "@types/d3-selection": "*" } }, "node_modules/@types/d3-dsv": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.1.tgz", - "integrity": "sha512-76pBHCMTvPLt44wFOieouXcGXWOF0AJCceUvaFkxSZEu4VDUdv93JfpMa6VGNFs01FHfuP4a5Ou68eRG1KBfTw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.2.tgz", + "integrity": "sha512-DooW5AOkj4AGmseVvbwHvwM/Ltu0Ks0WrhG6r5FG9riHT5oUUTHz6xHsHqJSVU8ZmPkOqlUEY2obS5C9oCIi2g==", "dev": true }, "node_modules/@types/d3-ease": { @@ -5617,18 +5628,18 @@ "dev": true }, "node_modules/@types/d3-fetch": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.2.tgz", - "integrity": "sha512-gllwYWozWfbep16N9fByNBDTkJW/SyhH6SGRlXloR7WdtAaBui4plTP+gbUgiEot7vGw/ZZop1yDZlgXXSuzjA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.3.tgz", + "integrity": "sha512-/EsDKRiQkby3Z/8/AiZq8bsuLDo/tYHnNIZkUpSeEHWV7fHUl6QFBjvMPbhkKGk9jZutzfOkGygCV7eR/MkcXA==", "dev": true, "dependencies": { "@types/d3-dsv": "*" } }, "node_modules/@types/d3-force": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.4.tgz", - "integrity": "sha512-q7xbVLrWcXvSBBEoadowIUJ7sRpS1yvgMWnzHJggFy5cUZBq2HZL5k/pBSm0GdYWS1vs5/EDwMjSKF55PDY4Aw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.5.tgz", + "integrity": "sha512-EGG+IWx93ESSXBwfh/5uPuR9Hp8M6o6qEGU7bBQslxCvrdUBQZha/EFpu/VMdLU4B0y4Oe4h175nSm7p9uqFug==", "dev": true }, "node_modules/@types/d3-format": { @@ -5638,18 +5649,18 @@ "dev": true }, "node_modules/@types/d3-geo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.0.3.tgz", - "integrity": "sha512-bK9uZJS3vuDCNeeXQ4z3u0E7OeJZXjUgzFdSOtNtMCJCLvDtWDwfpRVWlyt3y8EvRzI0ccOu9xlMVirawolSCw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.0.4.tgz", + "integrity": "sha512-kmUK8rVVIBPKJ1/v36bk2aSgwRj2N/ZkjDT+FkMT5pgedZoPlyhaG62J+9EgNIgUXE6IIL0b7bkLxCzhE6U4VQ==", "dev": true, "dependencies": { "@types/geojson": "*" } }, "node_modules/@types/d3-hierarchy": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", - "integrity": "sha512-9hjRTVoZjRFR6xo8igAJyNXQyPX6Aq++Nhb5ebrUF414dv4jr2MitM2fWiOY475wa3Za7TOS2Gh9fmqEhLTt0A==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.3.tgz", + "integrity": "sha512-GpSK308Xj+HeLvogfEc7QsCOcIxkDwLhFYnOoohosEzOqv7/agxwvJER1v/kTC+CY1nfazR0F7gnHo7GE41/fw==", "dev": true }, "node_modules/@types/d3-interpolate": { @@ -5686,9 +5697,9 @@ "dev": true }, "node_modules/@types/d3-scale": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.3.tgz", - "integrity": "sha512-PATBiMCpvHJSMtZAMEhc2WyL+hnzarKzI6wAHYjhsonjWJYGq5BXTzQjv4l8m2jO183/4wZ90rKvSeT7o72xNQ==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.4.tgz", + "integrity": "sha512-eq1ZeTj0yr72L8MQk6N6heP603ubnywSDRfNpi5enouR112HzGLS6RIvExCzZTraFF4HdzNpJMwA/zGiMoHUUw==", "dev": true, "dependencies": { "@types/d3-time": "*" @@ -5701,15 +5712,15 @@ "dev": true }, "node_modules/@types/d3-selection": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.5.tgz", - "integrity": "sha512-xCB0z3Hi8eFIqyja3vW8iV01+OHGYR2di/+e+AiOcXIOrY82lcvWW8Ke1DYE/EUVMsBl4Db9RppSBS3X1U6J0w==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.6.tgz", + "integrity": "sha512-2ACr96USZVjXR9KMD9IWi1Epo4rSDKnUtYn6q2SPhYxykvXTw9vR77lkFNruXVg4i1tzQtBxeDMx0oNvJWbF1w==", "dev": true }, "node_modules/@types/d3-shape": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.1.tgz", - "integrity": "sha512-6Uh86YFF7LGg4PQkuO2oG6EMBRLuW9cbavUW46zkIO5kuS2PfTqo2o9SkgtQzguBHbLgNnU90UNsITpsX1My+A==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.2.tgz", + "integrity": "sha512-NN4CXr3qeOUNyK5WasVUV8NCSAx/CRVcwcb0BuuS1PiTqwIm6ABi1SyasLZ/vsVCFDArF+W4QiGzSry1eKYQ7w==", "dev": true, "dependencies": { "@types/d3-path": "*" @@ -5734,18 +5745,18 @@ "dev": true }, "node_modules/@types/d3-transition": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.3.tgz", - "integrity": "sha512-/S90Od8Id1wgQNvIA8iFv9jRhCiZcGhPd2qX0bKF/PS+y0W5CrXKgIiELd2CvG1mlQrWK/qlYh3VxicqG1ZvgA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.4.tgz", + "integrity": "sha512-512a4uCOjUzsebydItSXsHrPeQblCVk8IKjqCUmrlvBWkkVh3donTTxmURDo1YPwIVDh5YVwCAO6gR4sgimCPQ==", "dev": true, "dependencies": { "@types/d3-selection": "*" } }, "node_modules/@types/d3-zoom": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.3.tgz", - "integrity": "sha512-OWk1yYIIWcZ07+igN6BeoG6rqhnJ/pYe+R1qWFM2DtW49zsoSjgb9G5xB0ZXA8hh2jAzey1XuRmMSoXdKw8MDA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.4.tgz", + "integrity": "sha512-cqkuY1ah9ZQre2POqjSLcM8g40UVya/qwEUrNYP2/rCVljbmqKCVcv+ebvwhlI5azIbSEL7m+os6n+WlYA43aA==", "dev": true, "dependencies": { "@types/d3-interpolate": "*", @@ -5800,9 +5811,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.35", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", - "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", + "version": "4.17.36", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.36.tgz", + "integrity": "sha512-zbivROJ0ZqLAtMzgzIUC4oNqDG9iF0lSsAqpOD9kbs5xcIM3dTiyuHvBc7R8MtWBp3AAWGaovJa+wzWPjLYW7Q==", "dev": true, "dependencies": { "@types/node": "*", @@ -5983,7 +5994,7 @@ "version": "12.0.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.0.tgz", "integrity": "sha512-Jrb/x3HT4PTJp6a4avhmJCDEVrPdqLfl3e8GGMbpkGGdwAV5UGlIs4vVEfsHHfylZVOKZWpOqmqFH8CbfOZ6kg==", - "devOptional": true + "dev": true }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -6008,15 +6019,15 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "node_modules/@types/q": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", - "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==", + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.6.tgz", + "integrity": "sha512-IKjZ8RjTSwD4/YG+2gtj7BPFRB/lNbWKTiSj3M7U/TD2B7HfYCxvp2Zz6xA2WIY7pAuL1QOUPw8gQRbUrrq4fQ==", "dev": true }, "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "version": "6.9.8", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", + "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==", "dev": true }, "node_modules/@types/range-parser": { @@ -6115,9 +6126,9 @@ "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" }, "node_modules/@types/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.1.tgz", + "integrity": "sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==", "dev": true }, "node_modules/@types/send": { @@ -6186,9 +6197,9 @@ } }, "node_modules/@types/trusted-types": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", - "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.4.tgz", + "integrity": "sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==", "dev": true }, "node_modules/@types/use-sync-external-store": { @@ -6455,23 +6466,23 @@ } }, "node_modules/@walletconnect/core": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.9.0.tgz", - "integrity": "sha512-MZYJghS9YCvGe32UOgDj0mCasaOoGHQaYXWeQblXE/xb8HuaM6kAWhjIQN9P+MNp5QP134BHP5olQostcCotXQ==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.9.1.tgz", + "integrity": "sha512-xyWeP0eLhEEDQAVJSmqs4n/AClKUM+8os2ZFe7BTuw1tFYjeLNVDtKCHziVOSTh8wEChMsKSGKA4zerQoH8mAQ==", "dependencies": { "@walletconnect/heartbeat": "1.2.1", "@walletconnect/jsonrpc-provider": "1.0.13", "@walletconnect/jsonrpc-types": "1.0.3", "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/jsonrpc-ws-connection": "1.0.12", + "@walletconnect/jsonrpc-ws-connection": "1.0.13", "@walletconnect/keyvaluestorage": "^1.0.2", "@walletconnect/logger": "^2.0.1", "@walletconnect/relay-api": "^1.0.9", "@walletconnect/relay-auth": "^1.0.4", "@walletconnect/safe-json": "^1.0.2", "@walletconnect/time": "^1.0.2", - "@walletconnect/types": "2.9.0", - "@walletconnect/utils": "2.9.0", + "@walletconnect/types": "2.9.1", + "@walletconnect/utils": "2.9.1", "events": "^3.3.0", "lodash.isequal": "4.5.0", "uint8arrays": "^3.1.0" @@ -6534,9 +6545,9 @@ } }, "node_modules/@walletconnect/jsonrpc-ws-connection": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.12.tgz", - "integrity": "sha512-HAcadga3Qjt1Cqy+qXEW6zjaCs8uJGdGQrqltzl3OjiK4epGZRdvSzTe63P+t/3z+D2wG+ffEPn0GVcDozmN1w==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.13.tgz", + "integrity": "sha512-mfOM7uFH4lGtQxG+XklYuFBj6dwVvseTt5/ahOkkmpcAEgz2umuzu7fTR+h5EmjQBdrmYyEBOWADbeaFNxdySg==", "dependencies": { "@walletconnect/jsonrpc-utils": "^1.0.6", "@walletconnect/safe-json": "^1.0.2", @@ -6606,18 +6617,18 @@ } }, "node_modules/@walletconnect/sign-client": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.9.0.tgz", - "integrity": "sha512-mEKc4LlLMebCe45qzqh+MX4ilQK4kOEBzLY6YJpG8EhyT45eX4JMNA7qQoYa9MRMaaVb/7USJcc4e3ZrjZvQmA==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.9.1.tgz", + "integrity": "sha512-Z7tFRrJ9btA1vU427vsjUS6cPlHQVcTWdKH90khEc2lv3dB6mU8FNO0VJsw+I2D7CW7WaMWF3nnj6Z1FfotbDg==", "dependencies": { - "@walletconnect/core": "2.9.0", + "@walletconnect/core": "2.9.1", "@walletconnect/events": "^1.0.1", "@walletconnect/heartbeat": "1.2.1", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/logger": "^2.0.1", "@walletconnect/time": "^1.0.2", - "@walletconnect/types": "2.9.0", - "@walletconnect/utils": "2.9.0", + "@walletconnect/types": "2.9.1", + "@walletconnect/utils": "2.9.1", "events": "^3.3.0" } }, @@ -6630,9 +6641,9 @@ } }, "node_modules/@walletconnect/types": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.9.0.tgz", - "integrity": "sha512-ORopsMfSRvUYqtjKKd6scfg8o4/aGebipLxx92AuuUgMTERSU6cGmIrK6rdLu7W6FBJkmngPLEGc9mRqAb9Lug==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.9.1.tgz", + "integrity": "sha512-xbGgTPuD6xsb7YMvCESBIH55cjB86QAnnVL50a/ED42YkQzDsOdJ0VGTbrm0tG5cxUOF933rpxZQjxGdP+ovww==", "dependencies": { "@walletconnect/events": "^1.0.1", "@walletconnect/heartbeat": "1.2.1", @@ -6643,9 +6654,9 @@ } }, "node_modules/@walletconnect/utils": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.9.0.tgz", - "integrity": "sha512-7Tu3m6dZL84KofrNBcblsgpSqU2vdo9ImLD7zWimLXERVGNQ8smXG+gmhQYblebIBhsPzjy9N38YMC3nPlfQNw==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.9.1.tgz", + "integrity": "sha512-tXeQVebF5oPBvhdmuUyVSkSIBYx/egIi4czav1QrnUpwrUS1LsrFhyWBxSbhN7TXY287ULWkEf6aFpWOHdp5EA==", "dependencies": { "@stablelib/chacha20poly1305": "1.0.1", "@stablelib/hkdf": "1.0.1", @@ -6655,7 +6666,7 @@ "@walletconnect/relay-api": "^1.0.9", "@walletconnect/safe-json": "^1.0.2", "@walletconnect/time": "^1.0.2", - "@walletconnect/types": "2.9.0", + "@walletconnect/types": "2.9.1", "@walletconnect/window-getters": "^1.0.1", "@walletconnect/window-metadata": "^1.0.1", "detect-browser": "5.3.0", @@ -6681,9 +6692,9 @@ } }, "node_modules/@web-std/blob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@web-std/blob/-/blob-3.0.4.tgz", - "integrity": "sha512-+dibyiw+uHYK4dX5cJ7HA+gtDAaUUe6JsOryp2ZpAC7h4ICsh49E34JwHoEKPlPvP0llCrNzz45vvD+xX5QDBg==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@web-std/blob/-/blob-3.0.5.tgz", + "integrity": "sha512-Lm03qr0eT3PoLBuhkvFBLf0EFkAsNz/G/AYCzpOdi483aFaVX86b4iQs0OHhzHJfN5C15q17UtDbyABjlzM96A==", "dependencies": { "@web-std/stream": "1.0.0", "web-encoding": "1.1.5" @@ -6693,6 +6704,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/@web-std/fetch/-/fetch-3.0.3.tgz", "integrity": "sha512-PtaKr6qvw2AmKChugzhQWuTa12dpbogHRBxwcleAZ35UhWucnfD4N+g3f7qYK2OeioSWTK3yMf6n/kOOfqxHaQ==", + "dev": true, "dependencies": { "@web-std/blob": "^3.0.3", "@web-std/form-data": "^3.0.2", @@ -6704,17 +6716,17 @@ } }, "node_modules/@web-std/file": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@web-std/file/-/file-3.0.2.tgz", - "integrity": "sha512-pIH0uuZsmY8YFvSHP1NsBIiMT/1ce0suPrX74fEeO3Wbr1+rW0fUGEe4d0R99iLwXtyCwyserqCFI4BJkJlkRA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@web-std/file/-/file-3.0.3.tgz", + "integrity": "sha512-X7YYyvEERBbaDfJeC9lBKC5Q5lIEWYCP1SNftJNwNH/VbFhdHm+3neKOQP+kWEYJmosbDFq+NEUG7+XIvet/Jw==", "dependencies": { "@web-std/blob": "^3.0.3" } }, "node_modules/@web-std/form-data": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@web-std/form-data/-/form-data-3.0.2.tgz", - "integrity": "sha512-rhc8IRw66sJ0FHcnC84kT3mTN6eACTuNftkt1XSl1Ef6WRKq4Pz65xixxqZymAZl1K3USpwhLci4SKNn4PYxWQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@web-std/form-data/-/form-data-3.1.0.tgz", + "integrity": "sha512-WkOrB8rnc2hEK2iVhDl9TFiPMptmxJA1HaIzSdc2/qk3XS4Ny4cCt6/V36U3XmoYKz0Md2YyK2uOZecoZWPAcA==", "dependencies": { "web-encoding": "1.1.5" } @@ -6936,7 +6948,7 @@ "version": "8.10.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "devOptional": true, + "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -7222,9 +7234,9 @@ } }, "node_modules/aria-hidden/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/aria-query": { "version": "5.1.3", @@ -7255,15 +7267,15 @@ "dev": true }, "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "is-string": "^1.0.7" }, "engines": { @@ -7283,14 +7295,14 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -7301,14 +7313,14 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -7319,14 +7331,14 @@ } }, "node_modules/array.prototype.reduce": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz", - "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz", + "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-array-method-boxes-properly": "^1.0.0", "is-string": "^1.0.7" }, @@ -7338,14 +7350,15 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", - "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.2", "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "get-intrinsic": "^1.2.1", "is-array-buffer": "^3.0.2", "is-shared-array-buffer": "^1.0.2" @@ -7425,9 +7438,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.14", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", - "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "version": "10.4.15", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.15.tgz", + "integrity": "sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==", "dev": true, "funding": [ { @@ -7437,11 +7450,15 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001464", + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001520", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -7469,9 +7486,9 @@ } }, "node_modules/axe-core": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz", - "integrity": "sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.8.1.tgz", + "integrity": "sha512-9l850jDDPnKq48nbad8SiEelCv4OrUWrKab/cPj0GScVg6cb6NbCCt/Ulk26QEq5jP9NnGr04Bit1BHyV6r5CQ==", "dev": true, "engines": { "node": ">=4" @@ -7781,14 +7798,15 @@ "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" }, "node_modules/bfj": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", - "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz", + "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", "dev": true, "dependencies": { - "bluebird": "^3.5.5", - "check-types": "^11.1.1", + "bluebird": "^3.7.2", + "check-types": "^11.2.3", "hoopy": "^0.1.4", + "jsonpath": "^1.1.1", "tryer": "^1.0.1" }, "engines": { @@ -7814,9 +7832,9 @@ } }, "node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", + "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", "engines": { "node": "*" } @@ -8285,9 +8303,9 @@ } }, "node_modules/camel-case/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "node_modules/camelcase": { @@ -8343,9 +8361,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001519", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz", - "integrity": "sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==", + "version": "1.0.30001534", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001534.tgz", + "integrity": "sha512-vlPVrhsCS7XaSh2VvWluIQEzVhefrUQcEsQWSS5A5V+dM07uv1qHeQzAOTGIMy9i3e9bH15+muvI/UHojVgS/Q==", "funding": [ { "type": "opencollective", @@ -8430,9 +8448,9 @@ } }, "node_modules/chart.js": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.3.3.tgz", - "integrity": "sha512-aTk7pBw+x6sQYhon/NR3ikfUJuym/LdgpTlgZRe2PaEhjUMKBKyNaFCMVRAyTEWYFNO7qRu7iQVqOw/OqzxZxQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.0.tgz", + "integrity": "sha512-vQEj6d+z0dcsKLlQvbKIMYFHd3t8W/7L2vfJIbYcfyPcRx92CsHqECpueN8qVGNlKyDcr5wBrYAYKnfu/9Q1hQ==", "peer": true, "dependencies": { "@kurkle/color": "^0.3.0" @@ -8453,9 +8471,9 @@ } }, "node_modules/check-types": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.2.tgz", - "integrity": "sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA==", + "version": "11.2.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", + "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==", "dev": true }, "node_modules/chokidar": { @@ -8586,14 +8604,14 @@ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" }, "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "optional": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "wrap-ansi": "^6.2.0" } }, "node_modules/clsx": { @@ -8904,9 +8922,9 @@ "dev": true }, "node_modules/core-js": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.32.0.tgz", - "integrity": "sha512-rd4rYZNlF3WuoYuRIDEmbR/ga9CeuWX9U05umAvgrrZoHY4Z++cp/xwPQMvUpBB4Ag6J8KfD80G0zwCyaSxDww==", + "version": "3.32.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.32.2.tgz", + "integrity": "sha512-pxXSw1mYZPDGvTQqEc5vgIb83jGQKFGYWY76z4a7weZXUolw3G+OvpZqSRcfYOoOVUQJYEPsWeQK8pKEnUtWxQ==", "dev": true, "hasInstallScript": true, "funding": { @@ -8915,12 +8933,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.0.tgz", - "integrity": "sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==", + "version": "3.32.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz", + "integrity": "sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ==", "dev": true, "dependencies": { - "browserslist": "^4.21.9" + "browserslist": "^4.21.10" }, "funding": { "type": "opencollective", @@ -8928,9 +8946,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.32.0.tgz", - "integrity": "sha512-qsev1H+dTNYpDUEURRuOXMvpdtAnNEvQWS/FMJ2Vb5AY8ZP4rAPQldkE27joykZPJTe0+IVgHZYh1P5Xu1/i1g==", + "version": "3.32.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.32.2.tgz", + "integrity": "sha512-Y2rxThOuNywTjnX/PgA5vWM6CZ9QB9sz9oGeCixV8MqXZO70z/5SHzf9EeBrEBK0PN36DnEBBu9O/aGWzKuMZQ==", "dev": true, "hasInstallScript": true, "funding": { @@ -9001,13 +9019,6 @@ "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==", - "optional": true, - "peer": true - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -9323,9 +9334,9 @@ "dev": true }, "node_modules/cssdb": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.7.0.tgz", - "integrity": "sha512-1hN+I3r4VqSNQ+OmMXxYexnumbOONkSil0TWMebVXHtzYW4tRRPovUNHPHj2d4nrgOuYJ8Vs3XwvywsuwwXNNA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.7.2.tgz", + "integrity": "sha512-pQPYP7/kch4QlkTcLuUNiNL2v/E+O+VIdotT+ug62/+2B2/jkzs5fMM6RHCzGCZ9C82pODEMSIzRRUzJOrl78g==", "dev": true, "funding": [ { @@ -10197,6 +10208,20 @@ "node": ">= 10" } }, + "node_modules/define-data-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.0.1.tgz", + "integrity": "sha512-22M+6zEspQHx10bfFQl2ET39IvfuQ7+rZIH7+ard8fCC4hPmkOSy+8JhKxBRLaWUziJ0O63NTYT97LR8zUfPTw==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -10207,11 +10232,12 @@ } }, "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -10419,9 +10445,9 @@ } }, "node_modules/dns-packet": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", - "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", "dev": true, "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" @@ -10558,11 +10584,20 @@ } }, "node_modules/dot-case/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/dotenv-expand": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", @@ -10637,9 +10672,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.488", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.488.tgz", - "integrity": "sha512-Dv4sTjiW7t/UWGL+H8ZkgIjtUAVZDgb/PwGWvMsCT7jipzUV/u5skbLXPFKb6iV0tiddVi/bcS2/kUrczeWgIQ==" + "version": "1.4.519", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.519.tgz", + "integrity": "sha512-kqs9oGYL4UFVkLKhqCTgBCYZv+wZ374yABDMqlDda9HvlkQxvSr7kgf4hfWVjMieDbX+1MwPHFBsOGCMIBaFKg==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -10884,9 +10919,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", - "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz", + "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==", "dev": true }, "node_modules/es-set-tostringtag": { @@ -10987,16 +11022,16 @@ } }, "node_modules/eslint": { - "version": "8.46.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.46.0.tgz", - "integrity": "sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==", + "version": "8.49.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.49.0.tgz", + "integrity": "sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.1", - "@eslint/js": "^8.46.0", - "@humanwhocodes/config-array": "^0.11.10", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.49.0", + "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.12.4", @@ -11006,7 +11041,7 @@ "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.2", + "eslint-visitor-keys": "^3.4.3", "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", @@ -11678,9 +11713,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz", - "integrity": "sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -12066,9 +12101,9 @@ "dev": true }, "node_modules/fast-fifo": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.0.tgz", - "integrity": "sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" }, "node_modules/fast-glob": { "version": "3.3.1", @@ -12302,16 +12337,17 @@ } }, "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", + "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", "dev": true, "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.7", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=12.0.0" } }, "node_modules/flatted": { @@ -12468,16 +12504,16 @@ } }, "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.6.tgz", + "integrity": "sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==", "dev": true, "engines": { "node": "*" }, "funding": { "type": "patreon", - "url": "https://www.patreon.com/infusion" + "url": "https://github.com/sponsors/rawify" } }, "node_modules/fresh": { @@ -12545,9 +12581,9 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, "optional": true, "os": [ @@ -12563,15 +12599,15 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -12707,14 +12743,14 @@ } }, "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -12781,9 +12817,9 @@ } }, "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.21.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", + "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -13453,9 +13489,9 @@ } }, "node_modules/immutable": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.2.tgz", - "integrity": "sha512-oGXzbEDem9OOpDWZu88jGiYCvIsLHMvGw+8OXlpsvTFvIQplQbjg1B1cvKg8f7Hoch6+NGjpPsH1Fr+Mc2D1aA==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", "dev": true }, "node_modules/import-fresh": { @@ -13749,6 +13785,41 @@ "npm": ">=7.0.0" } }, + "node_modules/ipfs-unixfs/node_modules/@types/node": { + "version": "20.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.0.tgz", + "integrity": "sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==" + }, + "node_modules/ipfs-unixfs/node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/ipfs-unixfs/node_modules/protobufjs": { + "version": "6.11.4", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz", + "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, "node_modules/ipfs-utils": { "version": "9.0.14", "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.14.tgz", @@ -14571,6 +14642,61 @@ } } }, + "node_modules/jest-cli/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/jest-cli/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-cli/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jest-config": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", @@ -15520,17 +15646,17 @@ } }, "node_modules/jiti": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.19.1.tgz", - "integrity": "sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.20.0.tgz", + "integrity": "sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==", "bin": { "jiti": "bin/jiti.js" } }, "node_modules/jquery": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.0.tgz", - "integrity": "sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", "peer": true }, "node_modules/js-tokens": { @@ -15641,6 +15767,12 @@ "bignumber.js": "^9.0.0" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/json-duplicate-key-handle": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-duplicate-key-handle/-/json-duplicate-key-handle-1.0.0.tgz", @@ -15695,6 +15827,30 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsonpath": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz", + "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==", + "dev": true, + "dependencies": { + "esprima": "1.2.2", + "static-eval": "2.0.2", + "underscore": "1.12.1" + } + }, + "node_modules/jsonpath/node_modules/esprima": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/jsonpointer": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", @@ -15733,6 +15889,15 @@ "node": ">=10.0.0" } }, + "node_modules/keyv": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/keyvaluestorage-interface": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz", @@ -15931,9 +16096,9 @@ "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==" }, "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" }, "node_modules/loose-envify": { "version": "1.4.0", @@ -15956,9 +16121,9 @@ } }, "node_modules/lower-case/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "node_modules/lru-cache": { @@ -16027,13 +16192,6 @@ "semver": "bin/semver.js" } }, - "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==", - "optional": true, - "peer": true - }, "node_modules/make-event-props": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/make-event-props/-/make-event-props-1.6.1.tgz", @@ -16493,6 +16651,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -16558,9 +16724,9 @@ } }, "node_modules/nan": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", - "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", "optional": true }, "node_modules/nanoassert": { @@ -16569,9 +16735,15 @@ "integrity": "sha512-C40jQ3NzfkP53NsO8kEOFd79p4b9kDXQMwgiY1z8ZwrDZgUyom0AHwGegF4Dm99L+YoYhuaB0ceerUcXmqr1rQ==" }, "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -16626,6 +16798,7 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/nft.storage/-/nft.storage-7.0.3.tgz", "integrity": "sha512-6VRwNKALjGOfKgUdQI/ZONeIXNf/Mviu+6u3Wb26IdvOW7Bq+KNX0XcQORfcqrG9hQcrk8F53sZNauqoPMSejw==", + "dev": true, "dependencies": { "@ipld/car": "^3.2.3", "@ipld/dag-cbor": "^6.0.13", @@ -16653,9 +16826,9 @@ } }, "node_modules/no-case/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "node_modules/node-addon-api": { @@ -16664,9 +16837,9 @@ "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" }, "node_modules/node-fetch": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", - "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -16692,9 +16865,9 @@ } }, "node_modules/node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.1.tgz", + "integrity": "sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -16880,28 +17053,28 @@ } }, "node_modules/object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -16911,15 +17084,15 @@ } }, "node_modules/object.getownpropertydescriptors": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz", - "integrity": "sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz", + "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==", "dev": true, "dependencies": { - "array.prototype.reduce": "^1.0.5", + "array.prototype.reduce": "^1.0.6", "call-bind": "^1.0.2", "define-properties": "^1.2.0", - "es-abstract": "^1.21.2", + "es-abstract": "^1.22.1", "safe-array-concat": "^1.0.0" }, "engines": { @@ -16930,27 +17103,27 @@ } }, "node_modules/object.hasown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", - "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", "dev": true, "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -17126,9 +17299,9 @@ } }, "node_modules/param-case/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "node_modules/parent-module": { @@ -17204,9 +17377,9 @@ } }, "node_modules/pascal-case/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "node_modules/path-browserify": { @@ -17534,9 +17707,9 @@ } }, "node_modules/postcss": { - "version": "8.4.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", - "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", + "version": "8.4.29", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", + "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", "funding": [ { "type": "opencollective", @@ -18045,9 +18218,9 @@ } }, "node_modules/postcss-load-config/node_modules/yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", + "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", "engines": { "node": ">= 14" } @@ -18772,23 +18945,6 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, - "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -18945,9 +19101,9 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.4.tgz", + "integrity": "sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==", "hasInstallScript": true, "dependencies": { "@protobufjs/aspromise": "^1.1.2", @@ -18960,19 +19116,17 @@ "@protobufjs/path": "^1.1.2", "@protobufjs/pool": "^1.1.0", "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", "@types/node": ">=13.7.0", - "long": "^4.0.0" + "long": "^5.0.0" }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" + "engines": { + "node": ">=12.0.0" } }, "node_modules/protobufjs/node_modules/@types/node": { - "version": "20.4.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.9.tgz", - "integrity": "sha512-8e2HYcg7ohnTUbHk8focoklEQYvemQmu9M/f43DZVx43kHn0tE3BY/6gSDxS7k0SprtS0NHvj+L80cGLnoOUcQ==" + "version": "20.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.0.tgz", + "integrity": "sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==" }, "node_modules/proxy-addr": { "version": "2.0.7", @@ -19059,124 +19213,6 @@ "node": ">=10.13.0" } }, - "node_modules/qrcode/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "optional": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/qrcode/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==", - "optional": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/qrcode/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==", - "optional": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/qrcode/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==", - "optional": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/qrcode/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==", - "optional": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/qrcode/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "optional": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/qrcode/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "optional": true - }, - "node_modules/qrcode/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "optional": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/qrcode/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "optional": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/qs": { "version": "6.10.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", @@ -19550,9 +19586,9 @@ } }, "node_modules/react-inlinesvg": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/react-inlinesvg/-/react-inlinesvg-3.0.3.tgz", - "integrity": "sha512-D9wqEyh1+ni07+CP2yaD9nSK11Y2ngd79xudEilX7YHKmUCeP1lXZqFvuLbdOo+m+oEjekd+c0DBc/bj93Lwqg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/react-inlinesvg/-/react-inlinesvg-3.0.2.tgz", + "integrity": "sha512-BEzkpMGQwEY68fgaouY7ZWvAUPb8jbj7dE9iDbWZxstDhMuz9qfpxNgvGSENKcDMdpq/XHduSk/LAmNKin4nKw==", "dependencies": { "exenv": "^1.2.2", "react-from-dom": "^0.6.2" @@ -19726,14 +19762,14 @@ } }, "node_modules/react-remove-scroll-bar/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/react-remove-scroll/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/react-router": { "version": "6.14.2", @@ -19850,15 +19886,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-scripts/node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/react-style-singleton": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", @@ -19882,9 +19909,9 @@ } }, "node_modules/react-style-singleton/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/react-tooltip": { "version": "5.11.1", @@ -19925,6 +19952,19 @@ "react-intersection-observer": "^8.26.2" } }, + "node_modules/react-zoom-pan-pinch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/react-zoom-pan-pinch/-/react-zoom-pan-pinch-3.1.0.tgz", + "integrity": "sha512-a3LlP8QPgTikvteCNkZ3X6wIWC0lrg1geP5WkUJyx2MXXAhHQek3r17N1nT/esOiWGuPIECnsd9AGoK8jOeGcg==", + "engines": { + "node": ">=8", + "npm": ">=5" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -20189,14 +20229,14 @@ "dev": true }, "node_modules/regexp.prototype.flags": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", - "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" + "set-function-name": "^2.0.0" }, "engines": { "node": ">= 0.4" @@ -20586,13 +20626,13 @@ } }, "node_modules/safe-array-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", - "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", + "get-intrinsic": "^1.2.1", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -20858,9 +20898,9 @@ "dev": true }, "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, "dependencies": { "randombytes": "^2.1.0" @@ -20965,6 +21005,19 @@ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "optional": true }, + "node_modules/set-function-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.0.tgz", + "integrity": "sha512-WmS8UHojv5s1eSoRSmzO5zzgDq8PE1/X/ij0k+9fMYmINCc6+j+SF3Om8YyucKn2yjnK4ItNZOoQycNnHsZJTw==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -21348,6 +21401,107 @@ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", "dev": true }, + "node_modules/static-eval": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "dev": true, + "dependencies": { + "escodegen": "^1.8.1" + } + }, + "node_modules/static-eval/node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/static-eval/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/static-eval/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/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, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-eval/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -21456,18 +21610,19 @@ "devOptional": true }, "node_modules/string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", + "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "set-function-name": "^2.0.0", "side-channel": "^1.0.4" }, "funding": { @@ -21475,14 +21630,14 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", - "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -21492,28 +21647,28 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -21980,9 +22135,9 @@ } }, "node_modules/synckit/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "node_modules/tailwind-merge": { @@ -22048,9 +22203,9 @@ } }, "node_modules/tar": { - "version": "6.1.15", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", - "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", "optional": true, "dependencies": { "chownr": "^2.0.0", @@ -22138,9 +22293,9 @@ } }, "node_modules/terser": { - "version": "5.19.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.2.tgz", - "integrity": "sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==", + "version": "5.19.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.4.tgz", + "integrity": "sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -22189,15 +22344,6 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -22381,77 +22527,6 @@ "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.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "optional": true, - "peer": true, - "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-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "optional": true, - "peer": true, - "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==", - "optional": true, - "peer": true - }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/tsconfig-paths": { "version": "3.14.2", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", @@ -22634,7 +22709,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", - "devOptional": true, + "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -22643,11 +22718,6 @@ "node": ">=4.2.0" } }, - "node_modules/u2f-api": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/u2f-api/-/u2f-api-0.2.7.tgz", - "integrity": "sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg==" - }, "node_modules/uint8arrays": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", @@ -22685,6 +22755,12 @@ "react": ">=15.0.0" } }, + "node_modules/underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", + "dev": true + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -22849,9 +22925,9 @@ } }, "node_modules/use-callback-ref/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/use-sidecar": { "version": "1.1.2", @@ -22875,9 +22951,9 @@ } }, "node_modules/use-sidecar/node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/use-sync-external-store": { "version": "1.2.0", @@ -22942,13 +23018,6 @@ "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==", - "optional": true, - "peer": true - }, "node_modules/v8-to-istanbul": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", @@ -23316,9 +23385,9 @@ } }, "node_modules/webpack-dev-server/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==", + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.1.tgz", + "integrity": "sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A==", "dev": true, "engines": { "node": ">=10.0.0" @@ -23450,9 +23519,9 @@ } }, "node_modules/whatwg-fetch": { - "version": "3.6.17", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.17.tgz", - "integrity": "sha512-c4ghIvG6th0eudYwKZY5keb81wtFz9/WeAHAoy8+r18kcWlitUIrmGFQ2rWEl4UCKUilD3zCLHOIPheHx5ypRQ==", + "version": "3.6.19", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz", + "integrity": "sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==", "dev": true }, "node_modules/whatwg-mimetype": { @@ -23554,6 +23623,15 @@ "string-width": "^1.0.2 || 2 || 3 || 4" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/workbox-background-sync": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", @@ -23877,20 +23955,17 @@ } }, "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "optional": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=8" } }, "node_modules/wrappy": { @@ -23911,9 +23986,9 @@ } }, "node_modules/ws": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", - "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "engines": { "node": ">=8.3.0" }, @@ -23951,13 +24026,10 @@ } }, "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "optional": true }, "node_modules/yallist": { "version": "3.1.1", @@ -23974,37 +24046,96 @@ } }, "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "optional": true, "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" }, "engines": { - "node": ">=10" + "node": ">=8" } }, "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "engines": { "node": ">=10" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "node_modules/yargs/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==", "optional": true, - "peer": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/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==", + "optional": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/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==", + "optional": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/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==", + "optional": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "optional": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, "engines": { "node": ">=6" } diff --git a/package.json b/package.json index 0fa8527..2c956eb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "explorer-dapp", "description": "Itheum Explorer is a DApp for the public to explore and visualize data within the Itheum protocol", - "version": "1.4.0", + "version": "1.5.0", "author": "Itheum", "license": "GPL-3.0-or-later", "dependencies": { @@ -9,23 +9,23 @@ "@fortawesome/free-solid-svg-icons": "6.1.0", "@fortawesome/react-fontawesome": "0.1.18", "@headlessui/react": "1.7.15", - "@itheum/sdk-mx-data-nft": "^0.1.1", - "@multiversx/sdk-core": "12.6.0", - "@multiversx/sdk-dapp": "2.19.2", - "@multiversx/sdk-network-providers": "1.5.0", - "@radix-ui/react-dropdown-menu": "^2.0.5", - "@radix-ui/react-navigation-menu": "^1.1.3", - "@radix-ui/react-slot": "^1.0.2", - "@radix-ui/react-switch": "^1.0.3", + "@itheum/sdk-mx-data-nft": "1.0.0", + "@multiversx/sdk-core": "12.8.0", + "@multiversx/sdk-dapp": "2.20.1", + "@multiversx/sdk-network-providers": "2.0.0", + "@radix-ui/react-dropdown-menu": "2.0.5", + "@radix-ui/react-navigation-menu": "1.1.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-switch": "1.0.3", "@types/react-modal": "3.16.0", "axios": "0.24.0", "bootstrap": "4.6.2", "chartjs-plugin-zoom": "2.0.1", - "class-variance-authority": "^0.7.0", - "clsx": "^2.0.0", + "class-variance-authority": "0.7.0", + "clsx": "2.0.0", "d3": "7.8.5", - "dompurify": "^3.0.5", - "lucide-react": "^0.265.0", + "dompurify": "3.0.5", + "lucide-react": "0.265.0", "moment": "2.29.4", "moment-timezone": "0.5.43", "react": "18.2.0", @@ -35,15 +35,16 @@ "react-dom": "18.2.0", "react-hot-toast": "2.4.0", "react-icons": "4.8.0", - "react-inlinesvg": "^3.0.2", + "react-inlinesvg": "3.0.2", "react-modal": "3.16.1", - "react-pdf": "^7.3.3", + "react-pdf": "7.3.3", "react-router-dom": "6.14.2", "react-tooltip": "5.11.1", "react-vertical-timeline-component": "3.6.0", + "react-zoom-pan-pinch": "^3.1.0", "styled-components": "5.3.11", - "tailwind-merge": "^1.14.0", - "tailwindcss-animate": "^1.0.6", + "tailwind-merge": "1.14.0", + "tailwindcss-animate": "1.0.6", "web-vitals": "1.0.1" }, "scripts": { @@ -69,7 +70,7 @@ "@testing-library/react": "14.0.0", "@testing-library/user-event": "14.4.3", "@types/d3": "7.4.0", - "@types/dompurify": "^3.0.2", + "@types/dompurify": "3.0.2", "@types/jest": "26.0.15", "@types/node": "12.0.0", "@types/react": "18.0.24", diff --git a/src/components/AuthRedirectWrapper.tsx b/src/components/AuthRedirectWrapper.tsx index 970cb10..7dfa2ea 100644 --- a/src/components/AuthRedirectWrapper.tsx +++ b/src/components/AuthRedirectWrapper.tsx @@ -1,14 +1,15 @@ import React, { PropsWithChildren } from "react"; -import { Navigate } from "react-router-dom"; +import { useNavigate } from "react-router-dom"; import { useGetIsLoggedIn } from "hooks"; import { routeNames } from "routes"; export const AuthRedirectWrapper = ({ children }: PropsWithChildren) => { const isLoggedIn = useGetIsLoggedIn(); + const navigate = useNavigate(); - // if (isLoggedIn) { - // return ; - // } + if (isLoggedIn) { + navigate(routeNames.dashboard); + } return <>{children}; }; diff --git a/src/components/CustomPagination.tsx b/src/components/CustomPagination.tsx index 8ac0739..d49706d 100644 --- a/src/components/CustomPagination.tsx +++ b/src/components/CustomPagination.tsx @@ -21,6 +21,7 @@ interface PropsType { export const CustomPagination: FC = ({ pageCount, pageIndex, + // eslint-disable-next-line pageSize, gotoPage, disabled = false, diff --git a/src/components/DataNftCard.tsx b/src/components/DataNftCard.tsx index 1b22c6f..a1cd9a7 100644 --- a/src/components/DataNftCard.tsx +++ b/src/components/DataNftCard.tsx @@ -3,9 +3,9 @@ import { DataNft } from "@itheum/sdk-mx-data-nft/out"; import { useGetNetworkConfig } from "@multiversx/sdk-dapp/hooks/useGetNetworkConfig"; import { MARKETPLACE_DETAILS_PAGE } from "config"; import { convertToLocalString } from "libs/utils"; -import { ElrondAddressLink } from "./ElrondAddressLink"; import { Button } from "../libComponents/Button"; import { Card, CardContent, CardFooter } from "../libComponents/Card"; +import { ElrondAddressLink } from "./ElrondAddressLink"; export function DataNftCard({ index, diff --git a/src/components/Layout/HeaderComponent.tsx b/src/components/Layout/HeaderComponent.tsx index 6751b53..71b5ee4 100644 --- a/src/components/Layout/HeaderComponent.tsx +++ b/src/components/Layout/HeaderComponent.tsx @@ -1,5 +1,4 @@ import React from "react"; -import headerHero from "../../assets/img/custom-app-header-trailblazer.png"; type HeaderProps = { pageTitle: string; diff --git a/src/components/Modal/TwModal.tsx b/src/components/Modal/TwModal.tsx index 7581aae..eeb6f40 100644 --- a/src/components/Modal/TwModal.tsx +++ b/src/components/Modal/TwModal.tsx @@ -1,5 +1,5 @@ +import React, { Fragment, useEffect, useState } from "react"; import { Dialog, Transition } from "@headlessui/react"; -import { Fragment, useEffect, useState } from "react"; import { MdOutlineClose } from "react-icons/md"; type ModalProps = { @@ -9,7 +9,7 @@ type ModalProps = { }; export const TwModal = (props: ModalProps) => { - const { isModalOpen = false, content, setIsModalOpen } = props; + const { isModalOpen = false, content } = props; let [isOpen, setIsOpen] = useState(isModalOpen); function closeModal() { diff --git a/src/components/TrailBlazerModal.tsx b/src/components/TrailBlazerModal.tsx index 608c52c..316f853 100644 --- a/src/components/TrailBlazerModal.tsx +++ b/src/components/TrailBlazerModal.tsx @@ -1,11 +1,11 @@ import React, { useState } from "react"; +import { useGetLoginInfo } from "@multiversx/sdk-dapp/hooks"; import { ModalBody, ModalHeader } from "react-bootstrap"; import { FaCalendarCheck, FaChartBar, FaChessKnight, FaFlagCheckered, FaHandshake, FaMoneyBillAlt, FaShopify, FaShoppingCart, FaTrophy } from "react-icons/fa"; import { IoClose } from "react-icons/io5"; import Modal from "react-modal"; import { VerticalTimeline, VerticalTimelineElement } from "react-vertical-timeline-component"; import { Loader } from "components"; -import { useGetLoginInfo } from "@multiversx/sdk-dapp/hooks"; import { IFrameModal } from "./iFrameModal"; import { TwModal } from "./Modal/TwModal"; @@ -46,7 +46,7 @@ export const TrailBlazerModal = ({ }) => { const { loginMethod } = useGetLoginInfo(); const [content, setContent] = useState(<>); - const [title, setTitle] = useState(); + // const [title, setTitle] = useState(); const [isModalOpen, setIsModalOpen] = useState(false); const handleIFrameModal = (link: string) => { @@ -54,9 +54,9 @@ export const TrailBlazerModal = ({ setIsModalOpen(true); }; - const handleCloseModal = () => { - setContent(<>); - }; + // const handleCloseModal = () => { + // setContent(<>); + // }; const getIconForCategory = (dataItem: any) => { switch (dataItem.category) { diff --git a/src/components/ZoomableSvg/Reset.svg b/src/components/ZoomableSvg/Reset.svg new file mode 100644 index 0000000..328b33a --- /dev/null +++ b/src/components/ZoomableSvg/Reset.svg @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/src/components/ZoomableSvg/ZoomIn.svg b/src/components/ZoomableSvg/ZoomIn.svg new file mode 100644 index 0000000..e930599 --- /dev/null +++ b/src/components/ZoomableSvg/ZoomIn.svg @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/src/components/ZoomableSvg/ZoomOut.svg b/src/components/ZoomableSvg/ZoomOut.svg new file mode 100644 index 0000000..0f0e626 --- /dev/null +++ b/src/components/ZoomableSvg/ZoomOut.svg @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/src/components/ZoomableSvg/index.scss b/src/components/ZoomableSvg/index.scss new file mode 100644 index 0000000..6897f13 --- /dev/null +++ b/src/components/ZoomableSvg/index.scss @@ -0,0 +1,13 @@ +.zoomable-toolbar-button { + display: block; + width: 2.5rem; + height: 2.5rem; + margin: 1px 2px; + color: rgb(255, 255, 255); + transition: color 200ms ease 0s; + background: none; + padding: 0px; + border: 0px; + outline: 0px; + cursor: pointer; +} diff --git a/src/components/ZoomableSvg/index.tsx b/src/components/ZoomableSvg/index.tsx new file mode 100644 index 0000000..c8d5519 --- /dev/null +++ b/src/components/ZoomableSvg/index.tsx @@ -0,0 +1,116 @@ +import React, { useRef } from "react"; +import SVG from "react-inlinesvg"; +import { + TransformWrapper, + TransformComponent, + ReactZoomPanPinchRef, +} from "react-zoom-pan-pinch"; +import svgReset from "./Reset.svg"; +import svgZoomIn from "./ZoomIn.svg"; +import svgZoomOut from "./ZoomOut.svg"; +import "./index.scss"; + +const INITIAL_SCALE = 2; + +export const ZoomableSvg = ({ + data, + preProcess, +} : { + data: any, + preProcess: any, +}) => { + const transformComponentRef = useRef(null); + + const actionZoomIn = () => { + if (transformComponentRef.current) { + const { zoomIn } = transformComponentRef.current; + zoomIn(); + } + }; + + const actionZoomOut = () => { + if (transformComponentRef.current) { + const { zoomOut } = transformComponentRef.current; + zoomOut(); + } + }; + + const actionReset = () => { + if (transformComponentRef.current) { + const { centerView } = transformComponentRef.current; + centerView(INITIAL_SCALE); + } + }; + + return ( + + + + preProcess(code)} + // style={{ width: "100%", height: "auto" }} + /> + + +
+ + + +
+
+
+ ); +}; diff --git a/src/components/index.tsx b/src/components/index.tsx index 41a865e..eb2b9bd 100644 --- a/src/components/index.tsx +++ b/src/components/index.tsx @@ -7,3 +7,4 @@ export * from "./DataNftCard"; export * from "./ElrondAddressLink"; export * from "./sdkDappComponents"; export * from "./TrailBlazerModal"; +export * from "./ZoomableSvg"; diff --git a/src/libComponents/ThemeProvider.tsx b/src/libComponents/ThemeProvider.tsx index b117f62..3f4e04b 100644 --- a/src/libComponents/ThemeProvider.tsx +++ b/src/libComponents/ThemeProvider.tsx @@ -40,9 +40,9 @@ export function ThemeProvider({ children, defaultTheme = "system", storageKey = const value = { theme, - setTheme: (theme: Theme) => { - localStorage.setItem(storageKey, theme); - setTheme(theme); + setTheme: (_theme: Theme) => { + localStorage.setItem(storageKey, _theme); + setTheme(_theme); }, }; diff --git a/src/libs/ui.ts b/src/libs/ui.ts index 8c73d6d..2ecaee8 100644 --- a/src/libs/ui.ts +++ b/src/libs/ui.ts @@ -1,5 +1,3 @@ -import { MARKETPLACE_DETAILS_PAGE } from "config"; - export const modalStyles = { overlay: { backgroundColor: "var(--light-20) !important", diff --git a/src/libs/utils/constant.ts b/src/libs/utils/constant.ts index d09b59b..babea0f 100644 --- a/src/libs/utils/constant.ts +++ b/src/libs/utils/constant.ts @@ -1,6 +1,6 @@ import iconBubbleMaps from "assets/img/expl-app-bubblemaps-icon.png"; -import iconTrailblazer from "assets/img/expl-app-trailblazer-icon.png"; import iconInfrographics from "assets/img/expl-app-infographics-icon.png"; +import iconTrailblazer from "assets/img/expl-app-trailblazer-icon.png"; export const ERROR_CONNECT_WALLET = "Connect your wallet"; export const ERROR_TRANSACTION_ONGOING = "A transaction is ongoing"; diff --git a/src/libs/utils/core.js b/src/libs/utils/core.js index c74f98f..d280e74 100644 --- a/src/libs/utils/core.js +++ b/src/libs/utils/core.js @@ -13,9 +13,9 @@ export function onChainDataInsights_LIB({rawReadings, userTz}) { } let scoreGroup = ''; - let totalScore = 0; + // let totalScore = 0; - let workOnReadings = rawReadings.reverse().map((i, idx) => { + let workOnReadings = rawReadings.reverse().map((i) => { let newObj = { ...i }; let thisReadingTs = moment.utc(newObj.createdAt); let readingDataPoints = []; @@ -207,10 +207,10 @@ export function thirdPartyDataInsights_LIB({rawReadings, userTz}) { userTz = 'Australia/Sydney'; } - let scoreGroup = ''; - let totalScore = 0; + // let scoreGroup = ''; + // let totalScore = 0; - let workOnReadings = rawReadings.reverse().map((i, idx) => { + let workOnReadings = rawReadings.reverse().map((i) => { let newObj = { ...i }; let thisReadingTs = moment.utc(newObj.createdAt); let readingDataPoints = []; diff --git a/src/libs/utils/ui.ts b/src/libs/utils/ui.ts index 0624bc0..7a8f75d 100644 --- a/src/libs/utils/ui.ts +++ b/src/libs/utils/ui.ts @@ -1,5 +1,5 @@ -import toast from "react-hot-toast"; import { clsx, ClassValue } from "clsx"; +import toast from "react-hot-toast"; import { twMerge } from "tailwind-merge"; /* diff --git a/src/pages/AppMarketplace/MultiversxInfographics/index.tsx b/src/pages/AppMarketplace/MultiversxInfographics/index.tsx index 53761d5..2c82066 100644 --- a/src/pages/AppMarketplace/MultiversxInfographics/index.tsx +++ b/src/pages/AppMarketplace/MultiversxInfographics/index.tsx @@ -1,10 +1,6 @@ import React, { useEffect, useState } from "react"; import { DataNft, ViewDataReturnType } from "@itheum/sdk-mx-data-nft"; -import { Address, SignableMessage } from "@multiversx/sdk-core/out"; import { useGetLoginInfo } from "@multiversx/sdk-dapp/hooks"; -import { useGetLastSignedMessageSession } from "@multiversx/sdk-dapp/hooks/signMessage/useGetLastSignedMessageSession"; -import { useGetSignMessageInfoStatus } from "@multiversx/sdk-dapp/hooks/signMessage/useGetSignedMessageStatus"; -import { useSignMessage } from "@multiversx/sdk-dapp/hooks/signMessage/useSignMessage"; import type { PDFDocumentProxy } from "pdfjs-dist"; import { ModalBody } from "react-bootstrap"; import ModalHeader from "react-bootstrap/esm/ModalHeader"; @@ -12,7 +8,6 @@ import { IoClose } from "react-icons/io5"; import Modal from "react-modal"; import { Document, Page } from "react-pdf"; import { pdfjs } from "react-pdf"; -import { useNavigate, useParams } from "react-router-dom"; import headerHero from "assets/img/custom-app-header-infographs.png"; import { DataNftCard, Loader } from "components"; import { MULTIVERSX_INFOGRAPHICS_NONCES } from "config"; @@ -20,8 +15,6 @@ import { useGetAccount, useGetPendingTransactions } from "hooks"; import { BlobDataType } from "libs/types"; import { modalStylesFull } from "libs/ui"; import { toastError } from "libs/utils"; -import { sleep } from "libs/utils/legacyUtil"; -import { routeNames } from "routes"; import "react-pdf/dist/Page/AnnotationLayer.css"; import "react-pdf/dist/Page/TextLayer.css"; import "./MultiversxInfographics.scss"; @@ -45,11 +38,8 @@ type PDFFile = string | File | null; export const MultiversxInfographics = () => { const { address } = useGetAccount(); - const { loginMethod } = useGetLoginInfo(); + const { tokenLogin } = useGetLoginInfo(); const { hasPendingTransactions } = useGetPendingTransactions(); - const { signMessage } = useSignMessage(); - const { isPending: isSignMessagePending } = useGetSignMessageInfoStatus(); - const lastSignedMessageSession = useGetLastSignedMessageSession(); const [dataNfts, setDataNfts] = useState([]); const [flags, setFlags] = useState([]); @@ -58,9 +48,6 @@ export const MultiversxInfographics = () => { const [owned, setOwned] = useState(false); const [viewDataRes, setViewDataRes] = useState(); const [isModalOpened, setIsModalOpened] = useState(false); - const navigate = useNavigate(); - const isWebWallet = loginMethod === "wallet"; - const { targetNonce, targetMessageToBeSigned } = useParams(); const [file, setFile] = useState(null); const [numPages, setNumPages] = useState(0); @@ -78,49 +65,6 @@ export const MultiversxInfographics = () => { } }, [isLoading, address]); - useEffect(() => { - const asyncFnc = async () => { - await sleep(1); //temporary solution until we find out racing condition - try { - let signature = ""; - - if (lastSignedMessageSession && lastSignedMessageSession.status == "signed" && lastSignedMessageSession.signature) { - signature = lastSignedMessageSession.signature; - } else { - let signSessions = JSON.parse(sessionStorage.getItem("persist:sdk-dapp-signedMessageInfo") ?? "{'signedSessions':{}}"); - signSessions = JSON.parse(signSessions.signedSessions); - - // find the first 'signed' session - for (const session of Object.values(signSessions) as any[]) { - if (session.status && session.status == "signed" && session.signature) { - signature = session.signature; - break; - } - } - } - - if (!signature) { - throw Error("Signature is empty"); - } - - const signedMessage = new SignableMessage({ - address: new Address(address), - message: Buffer.from(targetMessageToBeSigned || "", "ascii"), - signature: Buffer.from(signature, "hex"), - signer: loginMethod, - }); - await processSignature(Number(targetNonce), targetMessageToBeSigned || "", signedMessage); - } catch (e) { - console.error(e); - } finally { - navigate(routeNames.multiversxinfographics); - } - }; - if (isWebWallet && !!targetNonce && !!targetMessageToBeSigned && !isSignMessagePending) { - asyncFnc(); - } - }, [isWebWallet, isSignMessagePending]); - function openModal() { setIsModalOpened(true); } @@ -136,7 +80,7 @@ export const MultiversxInfographics = () => { async function fetchDataNfts() { setIsLoading(true); - const _nfts: DataNft[] = await DataNft.createManyFromApi(MULTIVERSX_INFOGRAPHICS_NONCES); + const _nfts: DataNft[] = await DataNft.createManyFromApi(MULTIVERSX_INFOGRAPHICS_NONCES.map((v) => ({ nonce: v }))); setDataNfts(_nfts); setIsLoading(false); @@ -169,21 +113,39 @@ export const MultiversxInfographics = () => { openModal(); const dataNft = dataNfts[index]; - const messageToBeSigned = await dataNft.getMessageToSign(); - - const callbackRoute = `${window.location.href}/${dataNft.nonce}/${messageToBeSigned}`; - const signedMessage = await signMessage({ - message: messageToBeSigned, - callbackRoute: isWebWallet ? callbackRoute : undefined, - }); - - if (isWebWallet) return; - if (!signedMessage) { - toastError("Wallet signing failed."); - return; + let res: any; + if (!(tokenLogin && tokenLogin.nativeAuthToken)) { + throw Error("No nativeAuth token"); + } + + const arg = { + mvxNativeAuthOrigins: [window.location.origin], + mvxNativeAuthMaxExpirySeconds: 3000, + fwdHeaderMapLookup: { + "authorization": `Bearer ${tokenLogin.nativeAuthToken}`, + }, + }; + + res = await dataNft.viewDataViaMVXNativeAuth(arg); + + let blobDataType = BlobDataType.TEXT; + + if (!res.error) { + const pdfObject = window.URL.createObjectURL(new Blob([res.data], { type: res.contentType })); + res.data = "PDF opened in new tab"; + blobDataType = BlobDataType.PDF; + // window.open(pdfObject, "_blank"); + + setFile(pdfObject); + } else { + console.error(res.error); + toastError(res.error); } - const viewDataPayload: ExtendedViewDataReturnType = await obtainDataNFTData(dataNft, messageToBeSigned, signedMessage as any); + const viewDataPayload: ExtendedViewDataReturnType = { + ...res, + blobDataType, + }; setViewDataRes(viewDataPayload); setIsFetchingDataMarshal(false); @@ -198,45 +160,6 @@ export const MultiversxInfographics = () => { } } - async function obtainDataNFTData(dataNft: DataNft, messageToBeSigned: string, signedMessage: SignableMessage) { - const res = await dataNft.viewData(messageToBeSigned, signedMessage as any, true); - - let blobDataType = BlobDataType.TEXT; - - if (!res.error) { - const pdfObject = window.URL.createObjectURL(new Blob([res.data], { type: res.contentType })); - res.data = "PDF opened in new tab"; - blobDataType = BlobDataType.PDF; - // window.open(pdfObject, "_blank"); - - setFile(pdfObject); - } else { - console.error(res.error); - toastError(res.error); - } - - return { - ...res, - blobDataType, - }; - } - - async function processSignature(nonce: number, messageToBeSigned: string, signedMessage: SignableMessage) { - try { - setIsFetchingDataMarshal(true); - setOwned(true); - openModal(); - - const dataNft = await DataNft.createFromApi(nonce); - const viewDataPayload: ExtendedViewDataReturnType = await obtainDataNFTData(dataNft, messageToBeSigned, signedMessage); - - setViewDataRes(viewDataPayload); - setIsFetchingDataMarshal(false); - } catch (err) { - console.error(err); - } - } - function onDocumentLoadSuccess({ numPages: totalPages }: PDFDocumentProxy): void { setNumPages(totalPages); setPageNumber(1); @@ -325,9 +248,7 @@ export const MultiversxInfographics = () => { }}>
-

- {["ledger", "walletconnectv2", "extra"].includes(loginMethod) ? "Please sign the message using xPortal or Ledger" : "Loading..."} -

+

{"Loading..."}

) : ( diff --git a/src/pages/CantinaCorner.tsx b/src/pages/CantinaCorner.tsx deleted file mode 100644 index c2808e8..0000000 --- a/src/pages/CantinaCorner.tsx +++ /dev/null @@ -1,321 +0,0 @@ -import React, { useEffect, useState } from "react"; -import { SignableMessage } from "@multiversx/sdk-core/out"; -import { useSignMessage } from "@multiversx/sdk-dapp/hooks/signMessage/useSignMessage"; -import { Chart as ChartJS, RadialLinearScale, PointElement, LineElement, Filler, Tooltip, Legend } from "chart.js"; -import { ModalBody, Table } from "react-bootstrap"; -import ModalHeader from "react-bootstrap/esm/ModalHeader"; -import { Radar } from "react-chartjs-2"; -import { IoClose } from "react-icons/io5"; -import Modal from "react-modal"; -import { DataNftCard, ElrondAddressLink, Loader } from "components"; -import { CANTINA_CORNER_NONCES, CC_SHOW_SIZE } from "config"; -import { useGetAccount, useGetNetworkConfig, useGetPendingTransactions } from "hooks"; -import { DataNft } from "@itheum/sdk-mx-data-nft"; -import { toastError } from "libs/utils"; -import { modalStyles } from "libs/ui"; -import { useGetLoginInfo } from "@multiversx/sdk-dapp/hooks"; - -ChartJS.register(RadialLinearScale, PointElement, LineElement, Filler, Tooltip, Legend); - -export const BORDER_COLORS = [ - "#ff6384", - "#3366CC", - "#DC3912", - "#FF9900", - "#109618", - "#990099", - "#3B3EAC", - "#0099C6", - "#DD4477", - "#66AA00", - "#B82E2E", - "#316395", - "#994499", - "#22AA99", - "#AAAA11", - "#6633CC", - "#E67300", - "#8B0707", - "#329262", - "#5574A6", - "#3B3EAC", - "#ffa600", - "#ff7c43", -]; - -export const BACKGROUND_COLORS = [ - "#ff638433", - "#3366CC33", - "#DC391233", - "#FF990033", - "#10961833", - "#99009933", - "#3B3EAC33", - "#0099C633", - "#DD447733", - "#66AA0033", - "#B82E2E33", - "#31639533", - "#99449933", - "#22AA9933", - "#AAAA1133", - "#6633CC33", - "#E6730033", - "#8B070733", - "#32926233", - "#5574A633", - "#3B3EAC33", - "#ffa60033", - "#ff7c4333", -]; - -const chartOptions = { - responsive: true, - plugins: { - legend: { - position: "top" as const, - }, - title: { - display: true, - text: "Cantina Corner Ranking", - }, - }, -}; - -export const CantinaCorner = () => { - const { - network: { explorerAddress }, - } = useGetNetworkConfig(); - const { address } = useGetAccount(); - const { hasPendingTransactions } = useGetPendingTransactions(); - const { loginMethod } = useGetLoginInfo(); - const { signMessage } = useSignMessage(); - - const [ccDataNfts, setCcDataNfts] = useState([]); - const [flags, setFlags] = useState([]); - const [isLoading, setIsLoading] = useState(true); - const [isNftLoading, setIsNftLoading] = useState(false); - - const [dataMarshalRes, setDataMarshalRes] = useState(""); - const [isFetchingDataMarshal, setIsFetchingDataMarshal] = useState(true); - const [owned, setOwned] = useState(false); - - const [players, setPlayers] = useState([]); - const [data, setData] = useState(); - - const [isModalOpened, setIsModalOpenend] = useState(false); - function openModal() { - setIsModalOpenend(true); - } - function closeModal() { - setIsModalOpenend(false); - } - - async function fetchAppNfts() { - setIsLoading(true); - - const _nfts: DataNft[] = await DataNft.createManyFromApi(CANTINA_CORNER_NONCES); - console.log("ccDataNfts", _nfts); - setCcDataNfts(_nfts); - - setIsLoading(false); - } - - async function fetchMyNfts() { - setIsNftLoading(true); - - const _dataNfts = await DataNft.ownedByAddress(address); - - const _flags = []; - for (const cnft of ccDataNfts) { - const matches = _dataNfts.filter((mnft) => cnft.nonce === mnft.nonce); - _flags.push(matches.length > 0); - } - console.log("_flags", _flags); - setFlags(_flags); - - setIsNftLoading(false); - } - - useEffect(() => { - if (!hasPendingTransactions) { - fetchAppNfts(); - } - }, [hasPendingTransactions]); - - useEffect(() => { - if (!isLoading && address) { - fetchMyNfts(); - } - }, [isLoading, address]); - - async function viewData(index: number) { - if (!(index >= 0 && index < ccDataNfts.length)) { - toastError("Data is not loaded"); - return; - } - - const _owned = flags[index]; - setOwned(_owned); - - if (_owned) { - setIsFetchingDataMarshal(true); - setDataMarshalRes(""); - openModal(); - - const dataNft = ccDataNfts[index]; - const messageToBeSigned = await dataNft.getMessageToSign(); - console.log("messageToBeSigned", messageToBeSigned); - const signedMessage = await signMessage({ message: messageToBeSigned }); - console.log("signedMessage", signedMessage); - if (!signedMessage) { - toastError("Wallet signing failed."); - return; - } - - const res = await dataNft.viewData(messageToBeSigned, signedMessage as any); - res.data = await (res.data as Blob).text(); - res.data = JSON.parse(res.data); - console.log("viewData", res); - setDataMarshalRes(JSON.stringify(res.data, null, 4)); - - const players = res.data.sort((pa: any, pb: any) => pa.rank - pb.rank); - - const datasets = []; - for (let i = 0; i < CC_SHOW_SIZE; i++) { - if (i + 1 >= players.length) break; - const player = players[i]; - datasets.push({ - label: player.nickname, - data: [player.kills, player.deaths, player.wins, player.losses], - backgroundColor: BACKGROUND_COLORS[i % BACKGROUND_COLORS.length], - borderColor: BORDER_COLORS[i % BORDER_COLORS.length], - borderWidth: 1, - }); - } - setPlayers(players); - - const _data = { - labels: ["Kills", "Deaths", "Wins", "Losses"], - datasets, - }; - setData(_data); - - setIsFetchingDataMarshal(false); - } else { - openModal(); - } - } - - if (isLoading) { - return ; - } - - return ( -
-
-
-

Cantina Corner NFTs: {ccDataNfts.length}

- -
- {ccDataNfts.length > 0 ? ( - ccDataNfts.map((dataNft, index) => ( - - )) - ) : ( -

No DataNFT

- )} -
-
-
- - -
-
- -
-
- -

View Data

-
- - {!owned ? ( -
-

You do not own this Data NFT

-
(Buy the Data NFT from the marketplace to unlock the data)
-
- ) : isFetchingDataMarshal || !data ? ( -
-
- -

- {["ledger", "walletconnectv2", "extra"].includes(loginMethod) ? "Please sign the message using xPortal or Ledger" : "Loading..."} -

-
-
- ) : ( -
-
TOP {CC_SHOW_SIZE} Players
- - {/*

{dataMarshalRes}

*/} - - - - - - - - - - - - - - {players.slice(0, CC_SHOW_SIZE).map((player: any, index: number) => ( - - - - - - - - - - ))} - -
#NicknameRankKillsDeathsWinsLosses
{index + 1}{player.nickname}{player.rank}{player.kills}{player.deaths}{player.wins}{player.losses}
-
- )} -
-
-
- ); -}; diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx index 6e0323c..d0c705e 100644 --- a/src/pages/Dashboard.tsx +++ b/src/pages/Dashboard.tsx @@ -1,10 +1,10 @@ import React, { useEffect, useState } from "react"; import { faLink } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { MarketplaceRequirements } from "@itheum/sdk-mx-data-nft"; +import { useGetNetworkConfig, useGetPendingTransactions } from "@multiversx/sdk-dapp/hooks"; import { Loader } from "components"; import { dataNftMarket } from "libs/mvx"; -import { useGetNetworkConfig, useGetPendingTransactions } from "hooks"; -import { MarketplaceRequirements } from "@itheum/sdk-mx-data-nft"; import { convertWeiToEsdt } from "libs/utils"; export const Dashboard = () => { diff --git a/src/pages/EsdtBubble.tsx b/src/pages/EsdtBubble.tsx index bbd3569..e462ca5 100644 --- a/src/pages/EsdtBubble.tsx +++ b/src/pages/EsdtBubble.tsx @@ -1,7 +1,7 @@ import React, { useEffect, useRef, useState } from "react"; import { DataNft } from "@itheum/sdk-mx-data-nft"; -import { Address, SignableMessage } from "@multiversx/sdk-core/out"; -import { useSignMessage } from "@multiversx/sdk-dapp/hooks/signMessage/useSignMessage"; +import { Address } from "@multiversx/sdk-core/out"; +import { useGetAccount, useGetLoginInfo, useGetPendingTransactions } from "@multiversx/sdk-dapp/hooks"; import BigNumber from "bignumber.js"; import { Chart as ChartJS, LinearScale, PointElement, Tooltip, Legend } from "chart.js"; import zoomPlugin from "chartjs-plugin-zoom"; @@ -14,10 +14,8 @@ import { IoClose } from "react-icons/io5"; import Modal from "react-modal"; import { CustomPagination, DataNftCard, ElrondAddressLink, Loader } from "components"; import { ESDT_BUBBLE_NONCES, MAINNET_EXPLORER_ADDRESS } from "config"; -import { useGetAccount, useGetNetworkConfig, useGetPendingTransactions } from "hooks"; import { modalStyles } from "libs/ui"; import { convertWeiToEsdt, shortenAddress, toastError } from "libs/utils"; -import { useGetLoginInfo } from "@multiversx/sdk-dapp/hooks"; import { HeaderComponent } from "../components/Layout/HeaderComponent"; ChartJS.register(LinearScale, PointElement, Tooltip, Legend, zoomPlugin); @@ -151,21 +149,15 @@ export const ChartDescription = () => ( ); export const EsdtBubble = () => { - const { - network: { explorerAddress }, - } = useGetNetworkConfig(); const { address } = useGetAccount(); - const { loginMethod } = useGetLoginInfo(); + const { tokenLogin } = useGetLoginInfo(); const { hasPendingTransactions } = useGetPendingTransactions(); - const { signMessage } = useSignMessage(); const [dataNfts, setDataNfts] = useState([]); const [selectedDataNft, setSelectedDataNft] = useState(); const [flags, setFlags] = useState([]); const [isLoading, setIsLoading] = useState(true); - const [isPendingMessageSigned, setIsPendingMessageSigned] = useState(false); - const [isFetchingDataMarshal, setIsFetchingDataMarshal] = useState(true); const [owned, setOwned] = useState(false); const [data, setData] = useState(); @@ -192,7 +184,7 @@ export const EsdtBubble = () => { async function fetchDataNfts() { setIsLoading(true); - const _nfts: DataNft[] = await DataNft.createManyFromApi(ESDT_BUBBLE_NONCES); + const _nfts: DataNft[] = await DataNft.createManyFromApi(ESDT_BUBBLE_NONCES.map((v) => ({ nonce: v }))); setDataNfts(_nfts); setIsLoading(false); @@ -231,29 +223,29 @@ export const EsdtBubble = () => { setOwned(_owned); if (_owned) { - setIsFetchingDataMarshal(true); openModal(); const dataNft = dataNfts[index]; setSelectedDataNft(dataNft); - const messageToBeSigned = await dataNft.getMessageToSign(); - setIsPendingMessageSigned(true); - const signedMessage = await signMessage({ message: messageToBeSigned }); - setIsPendingMessageSigned(false); - - console.log("signedMessage", signedMessage); - const res = await dataNft.viewData(messageToBeSigned, signedMessage as any); - if (!signedMessage) { - toastError("Wallet signing failed."); - return; + + let res: any; + if (!(tokenLogin && tokenLogin.nativeAuthToken)) { + throw Error("No nativeAuth token"); } + const arg = { + mvxNativeAuthOrigins: [window.location.origin], + mvxNativeAuthMaxExpirySeconds: 3000, + fwdHeaderMapLookup: { + "authorization": `Bearer ${tokenLogin.nativeAuthToken}`, + }, + }; + + res = await dataNft.viewDataViaMVXNativeAuth(arg); res.data = await (res.data as Blob).text(); res.data = JSON.parse(res.data); processData(res.data); - - setIsFetchingDataMarshal(false); } else { openModal(); } @@ -373,7 +365,7 @@ export const EsdtBubble = () => {

You do not own this Data NFT

(Buy the Data NFT from the marketplace to unlock the data)
- ) : isFetchingDataMarshal || !data ? ( + ) : !data ? (
{ }}>
-

- {["ledger", "walletconnectv2", "extra"].includes(loginMethod) ? "Please sign the message using xPortal or Ledger" : "Loading..."} -

+

{"Loading..."}

) : ( diff --git a/src/pages/GamerInsights.js b/src/pages/GamerInsights.js index cb499ad..42fab2f 100644 --- a/src/pages/GamerInsights.js +++ b/src/pages/GamerInsights.js @@ -17,17 +17,10 @@ function GamerInsights({ gamerId, gamerData }) { const [userId, setUserId] = useState(null); // const { colorMode, toggleColorMode } = useColorMode(); - const [ - readingsDiscordBotUserOnGuildActivity, - setReadingsDiscordBotUserOnGuildActivity, - ] = useState([]); - const [readingsTrdPtyWonderHeroGameApi, setReadingsTrdPtyWonderHeroGameApi] = - useState([]); - const [readingsOnChainAddrTxOnCon, setReadingsOnChainAddrTxOnCon] = useState( - [] - ); - const [readingsOnChainAddrTxOnConErd, setReadingsOnChainAddrTxOnConErd] = - useState([]); + const [readingsDiscordBotUserOnGuildActivity, setReadingsDiscordBotUserOnGuildActivity] = useState([]); + const [readingsTrdPtyWonderHeroGameApi, setReadingsTrdPtyWonderHeroGameApi] = useState([]); + const [readingsOnChainAddrTxOnCon, setReadingsOnChainAddrTxOnCon] = useState([]); + const [readingsOnChainAddrTxOnConErd, setReadingsOnChainAddrTxOnConErd] = useState([]); const [gamingActivityAllData, setGamingActivityAllData] = useState([]); const [socialActivityAllData, setSocialActivityAllData] = useState([]); @@ -36,29 +29,16 @@ function GamerInsights({ gamerId, gamerData }) { setUserId(gamerId); setReadingsOnChainAddrTxOnCon(gamerData.readingsOnChainAddrTxOnCon); setReadingsOnChainAddrTxOnConErd(gamerData.readingsOnChainAddrTxOnConErd); - setReadingsDiscordBotUserOnGuildActivity( - gamerData.readingsDiscordBotUserOnGuildActivity - ); - setReadingsTrdPtyWonderHeroGameApi( - gamerData.readingsTrdPtyWonderHeroGameApi - ); + setReadingsDiscordBotUserOnGuildActivity(gamerData.readingsDiscordBotUserOnGuildActivity); + setReadingsTrdPtyWonderHeroGameApi(gamerData.readingsTrdPtyWonderHeroGameApi); setSocialActivityAllData(gamerData.socialActivityAllData); setGamingActivityAllData(gamerData.gamingActivityAllData); } }, [gamerData]); - // useEffect(() => { - // console.log('colorMode', colorMode); - // }, [colorMode]); - return ( <> - + ); } diff --git a/src/pages/GamerPassportGamer.tsx b/src/pages/GamerPassportGamer.tsx deleted file mode 100644 index 6a047d0..0000000 --- a/src/pages/GamerPassportGamer.tsx +++ /dev/null @@ -1,329 +0,0 @@ -import React, { useEffect, useState } from "react"; -import { SignableMessage } from "@multiversx/sdk-core/out"; -import { useSignMessage } from "@multiversx/sdk-dapp/hooks/signMessage/useSignMessage"; -import { ModalBody, Table } from "react-bootstrap"; -import ModalHeader from "react-bootstrap/esm/ModalHeader"; -import { IoClose } from "react-icons/io5"; -import Modal from "react-modal"; -import { DataNftCard, ElrondAddressLink, Loader } from "components"; -import { GAMER_PASSPORT_GAMER_NONCES, MARKETPLACE_DETAILS_PAGE } from "config"; -import { useGetAccount, useGetNetworkConfig, useGetPendingTransactions } from "hooks"; -import { DataNft } from "@itheum/sdk-mx-data-nft"; -import { toastError } from "libs/utils"; -import { onChainDataInsights_LIB, thirdPartyDataInsights_LIB } from "libs/utils/core"; -import GamerInsights from "./GamerInsights"; -import { modalStyles } from "libs/ui"; -import { useGetLoginInfo } from "@multiversx/sdk-dapp/hooks"; - -export const GamerPassportGamer = () => { - const { - network: { explorerAddress }, - } = useGetNetworkConfig(); - const { address } = useGetAccount(); - const { hasPendingTransactions } = useGetPendingTransactions(); - const { loginMethod } = useGetLoginInfo(); - const { signMessage } = useSignMessage(); - - const [ccDataNfts, setCcDataNfts] = useState([]); - const [flags, setFlags] = useState([]); - const [isLoading, setIsLoading] = useState(true); - const [isNftLoading, setIsNftLoading] = useState(false); - - const [dataMarshalRes, setDataMarshalRes] = useState(""); - const [isFetchingDataMarshal, setIsFetchingDataMarshal] = useState(true); - const [owned, setOwned] = useState(false); - - const [data, setData] = useState(); - - const [activeGamerData, setActiveGamerData] = useState(null); - - const [isModalOpened, setIsModalOpenend] = useState(false); - function openModal() { - setIsModalOpenend(true); - } - function closeModal() { - setIsModalOpenend(false); - } - - async function fetchAppNfts() { - setIsLoading(true); - - const _nfts: DataNft[] = await DataNft.createManyFromApi(GAMER_PASSPORT_GAMER_NONCES); - console.log("ccDataNfts", _nfts); - setCcDataNfts(_nfts); - - setIsLoading(false); - } - - async function fetchMyNfts() { - setIsNftLoading(true); - - const _dataNfts = await DataNft.ownedByAddress(address); - - const _flags = []; - for (const cnft of ccDataNfts) { - const matches = _dataNfts.filter((mnft) => cnft.nonce === mnft.nonce); - _flags.push(matches.length > 0); - } - console.log("_flags", _flags); - setFlags(_flags); - - setIsNftLoading(false); - } - - useEffect(() => { - if (!hasPendingTransactions) { - fetchAppNfts(); - } - }, [hasPendingTransactions]); - - useEffect(() => { - if (!isLoading && address) { - fetchMyNfts(); - } - }, [isLoading, address]); - - async function viewData(index: number) { - if (!(index >= 0 && index < ccDataNfts.length)) { - toastError("Data is not loaded"); - return; - } - - const _owned = flags[index]; - setOwned(_owned); - - if (_owned) { - setIsFetchingDataMarshal(true); - setDataMarshalRes(""); - openModal(); - - const dataNft = ccDataNfts[index]; - const messageToBeSigned = await dataNft.getMessageToSign(); - console.log("messageToBeSigned", messageToBeSigned); - const signedMessage = await signMessage({ message: messageToBeSigned }); - console.log("signedMessage", signedMessage); - if (!signedMessage) { - toastError("Wallet signing failed."); - return; - } - - const res = await dataNft.viewData(messageToBeSigned, signedMessage as any); - res.data = await (res.data as Blob).text(); - res.data = JSON.parse(res.data); - console.log("viewData", res); - setDataMarshalRes(JSON.stringify(res.data, null, 4)); - - fixData(res.data); - - setData(res.data); - - console.log(res.data); - - setIsFetchingDataMarshal(false); - } else { - openModal(); - } - } - - const fixData = (rawData: any) => { - if (rawData.items.length > 0) { - const readingsInGroups = rawData.metaData.getDataConfig.dataToGather.allApplicableDataTypes.reduce((t: any, i: any) => { - t[i.toString()] = []; - return t; - }, {}); - - rawData.items.forEach((i: any) => { - readingsInGroups[i.dataType].push(i); - }); - - const gamingActivityAll: any = []; - const socialActivityAll: any = []; - - const onChainManualDataSets: any = { - onChainAddrTxOnCon: [], - onChainAddrTxOnConErd: [], - }; - - const thirdPartyManualDataSets: any = { - discordBotUserOnGuildActivity: [], - trdPtyWonderHeroGameApi: [], - }; - - Object.keys(readingsInGroups).forEach((dataType) => { - switch (dataType) { - case "4": - { - if (readingsInGroups["4"].length > 0) { - const programOnChainReadingsWithInsights = onChainDataInsights_LIB({ - rawReadings: readingsInGroups["4"], - userTz: "", - }); - - const readingsWithInsights: any = programOnChainReadingsWithInsights.readings; - - // S: Time Data graphs - for (let i = 0; i < readingsWithInsights.length; i++) { - if (readingsWithInsights[i].manual === "OnChainAddrTxOnCon") { - const item = { - group: readingsWithInsights[i].scoreGroup, - time: readingsWithInsights[i].time, - when: readingsWithInsights[i].friendyCreatedAt, - val: 0, - data: readingsWithInsights[i].data, - }; - - onChainManualDataSets.onChainAddrTxOnCon.push(item); - gamingActivityAll.push(item); - } else if (readingsWithInsights[i].manual === "OnChainAddrTxOnConErd") { - const item = { - group: readingsWithInsights[i].scoreGroup, - time: readingsWithInsights[i].time, - when: readingsWithInsights[i].friendyCreatedAt, - val: 0, - data: readingsWithInsights[i].data, - }; - - onChainManualDataSets.onChainAddrTxOnConErd.push(item); - gamingActivityAll.push(item); - } - } - // E: Time Data graphs - } - } - - break; - - case "5": - { - if (readingsInGroups["5"].length > 0) { - const thirdPartyReadingsWithInsights = thirdPartyDataInsights_LIB({ - rawReadings: readingsInGroups["5"], - userTz: "", - }); - - const readingsWithInsights: any = thirdPartyReadingsWithInsights.readings; - - // S: Time Data graphs - for (let i = 0; i < readingsWithInsights.length; i++) { - if (readingsWithInsights[i].manual === "DiscordBotUserOnGuildActivity") { - thirdPartyManualDataSets.discordBotUserOnGuildActivity.push({ - // group: parseInt(readingsWithInsights[i].val, 10), - when: readingsWithInsights[i].friendyCreatedAt, - data: readingsWithInsights[i].data, - val: parseInt(readingsWithInsights[i].val, 10), - }); - - socialActivityAll.push(parseInt(readingsWithInsights[i].val, 10)); - } else if (readingsWithInsights[i].manual === "TrdPtyWonderHeroGameApi") { - const item: any = { - group: readingsWithInsights[i].scoreGroup, - time: readingsWithInsights[i].time, - when: readingsWithInsights[i].friendyCreatedAt, - val: 0, - data: readingsWithInsights[i].data, - }; - - thirdPartyManualDataSets.trdPtyWonderHeroGameApi.push(item); - gamingActivityAll.push(item); - } - } - // E: Time Data graphs - } - } - - break; - } - }); - - setActiveGamerData({ - readingsOnChainAddrTxOnCon: onChainManualDataSets.onChainAddrTxOnCon, - readingsOnChainAddrTxOnConErd: onChainManualDataSets.onChainAddrTxOnConErd, - readingsDiscordBotUserOnGuildActivity: thirdPartyManualDataSets.discordBotUserOnGuildActivity, - readingsTrdPtyWonderHeroGameApi: thirdPartyManualDataSets.trdPtyWonderHeroGameApi, - socialActivityAllData: socialActivityAll, - gamingActivityAllData: gamingActivityAll, - }); - } - }; - - if (isLoading) { - return ; - } - - console.log("isFetchingDataMarshal", isFetchingDataMarshal); - console.log("data", data); - console.log("activeGamerData", activeGamerData); - - return ( -
-
-
-

Web3 Gamer Passport

-

Data NFTs that Unlock this App: {ccDataNfts.length}

- -
- {ccDataNfts.length > 0 ? ( - ccDataNfts.map((dataNft, index) => ( - - )) - ) : ( -

No Data NFTs

- )} -
-
-
- - -
-
- -
-
- -

Web3 Gamer Passport

-
- - {!owned ? ( -
-

You do not own this Data NFT

-
(Buy the Data NFT from the marketplace to unlock the data)
-
- ) : isFetchingDataMarshal || !data ? ( -
-
- -

- {["ledger", "walletconnectv2", "extra"].includes(loginMethod) ? "Please sign the message using xPortal or Ledger" : "Loading..."} -

-
-
- ) : ( -
- -
- )} -
-
-
- ); -}; diff --git a/src/pages/ItheumTrailblazer.tsx b/src/pages/ItheumTrailblazer.tsx index 72ad967..e87c716 100644 --- a/src/pages/ItheumTrailblazer.tsx +++ b/src/pages/ItheumTrailblazer.tsx @@ -1,33 +1,18 @@ import React, { useEffect, useState } from "react"; import { DataNft } from "@itheum/sdk-mx-data-nft"; -import { Address, SignableMessage } from "@multiversx/sdk-core/out"; import { useGetLoginInfo } from "@multiversx/sdk-dapp/hooks"; -import { useGetLastSignedMessageSession } from "@multiversx/sdk-dapp/hooks/signMessage/useGetLastSignedMessageSession"; -import { useGetSignMessageInfoStatus } from "@multiversx/sdk-dapp/hooks/signMessage/useGetSignedMessageStatus"; -import { useSignMessage } from "@multiversx/sdk-dapp/hooks/signMessage/useSignMessage"; -import { useNavigate, useParams } from "react-router-dom"; import headerHero from "assets/img/custom-app-header-trailblazer.png"; import { DataNftCard, Loader, TrailBlazerModal } from "components"; import { TRAILBLAZER_NONCES } from "config"; import { useGetAccount, useGetPendingTransactions } from "hooks"; import { toastError } from "libs/utils"; import "react-vertical-timeline-component/style.min.css"; -import { sleep } from "libs/utils/legacyUtil"; -import { routeNames } from "routes"; import { HeaderComponent } from "../components/Layout/HeaderComponent"; export const ItheumTrailblazer = () => { const { address } = useGetAccount(); const { hasPendingTransactions } = useGetPendingTransactions(); - const { signMessage } = useSignMessage(); - const { loginMethod } = useGetLoginInfo(); - const navigate = useNavigate(); - const isWebWallet = loginMethod == "wallet"; - const { targetNonce, targetMessageToBeSigned } = useParams(); - const { isPending: isSignMessagePending } = useGetSignMessageInfoStatus(); - const lastSignedMessageSession = useGetLastSignedMessageSession(); - console.log("isSignMessagePending", isSignMessagePending); - console.log("lastSignedMessageSession", lastSignedMessageSession); + const { tokenLogin } = useGetLoginInfo(); const [itDataNfts, setItDataNfts] = useState([]); const [flags, setFlags] = useState([]); @@ -36,6 +21,7 @@ export const ItheumTrailblazer = () => { const [owned, setOwned] = useState(false); const [data, setData] = useState(); const [isModalOpened, setIsModalOpened] = useState(false); + useEffect(() => { if (!hasPendingTransactions) { fetchAppNfts(); @@ -48,51 +34,6 @@ export const ItheumTrailblazer = () => { } }, [isLoading, address]); - console.log({ isWebWallet, targetNonce, targetMessageToBeSigned, lastSignedMessageSession }); - useEffect(() => { - const asyncFnc = async () => { - await sleep(1); //temporary solution until we find out racing condition - try { - let signature = ""; - - if (lastSignedMessageSession && lastSignedMessageSession.status == "signed" && lastSignedMessageSession.signature) { - signature = lastSignedMessageSession.signature; - } else { - let signSessions = JSON.parse(sessionStorage.getItem("persist:sdk-dapp-signedMessageInfo") ?? "{'signedSessions':{}}"); - signSessions = JSON.parse(signSessions.signedSessions); - console.log("signSessions", signSessions); - - // find the first 'signed' session - for (const session of Object.values(signSessions) as any[]) { - if (session.status && session.status == "signed" && session.signature) { - signature = session.signature; - break; - } - } - } - - if (!signature) { - throw Error("Signature is empty"); - } - - const signedMessage = new SignableMessage({ - address: new Address(address), - message: Buffer.from(targetMessageToBeSigned || "", "ascii"), - signature: Buffer.from(signature, "hex"), - signer: loginMethod, - }); - await processSignature(Number(targetNonce), targetMessageToBeSigned || "", signedMessage); - } catch (e) { - console.error(e); - } finally { - navigate(routeNames.itheumtrailblazer); - } - }; - if (isWebWallet && !!targetNonce && !!targetMessageToBeSigned && !isSignMessagePending) { - asyncFnc(); - } - }, [isWebWallet, isSignMessagePending]); - function openModal() { setIsModalOpened(true); } @@ -104,7 +45,7 @@ export const ItheumTrailblazer = () => { async function fetchAppNfts() { setIsLoading(true); - const _nfts: DataNft[] = await DataNft.createManyFromApi(TRAILBLAZER_NONCES); + const _nfts: DataNft[] = await DataNft.createManyFromApi(TRAILBLAZER_NONCES.map((v) => ({ nonce: v }))); setItDataNfts(_nfts); setIsLoading(false); @@ -129,6 +70,7 @@ export const ItheumTrailblazer = () => { return; } + const dataNft = itDataNfts[index]; const _owned = flags[index]; setOwned(_owned); @@ -136,22 +78,20 @@ export const ItheumTrailblazer = () => { setIsFetchingDataMarshal(true); openModal(); - const dataNft = itDataNfts[index]; - const messageToBeSigned = await dataNft.getMessageToSign(); - - const callbackRoute = `${window.location.href}/${dataNft.nonce}/${messageToBeSigned}`; - const signedMessage = await signMessage({ - message: messageToBeSigned, - callbackRoute: isWebWallet ? callbackRoute : undefined, - }); - - if (isWebWallet) return; - if (!signedMessage) { - toastError("Wallet signing failed."); - return; + let res: any; + if (!(tokenLogin && tokenLogin.nativeAuthToken)) { + throw Error("No nativeAuth token"); } - const res = await dataNft.viewData(messageToBeSigned, signedMessage as any); + const arg = { + mvxNativeAuthOrigins: [window.location.origin], + mvxNativeAuthMaxExpirySeconds: 3000, + fwdHeaderMapLookup: { + "authorization": `Bearer ${tokenLogin.nativeAuthToken}`, + }, + }; + + res = await dataNft.viewDataViaMVXNativeAuth(arg); res.data = await (res.data as Blob).text(); res.data = JSON.parse(res.data); @@ -168,24 +108,6 @@ export const ItheumTrailblazer = () => { } } - async function processSignature(nonce: number, messageToBeSigned: string, signedMessage: SignableMessage) { - try { - setIsFetchingDataMarshal(true); - setOwned(true); - openModal(); - - const dataNft = await DataNft.createFromApi(nonce); - const res = await dataNft.viewData(messageToBeSigned, signedMessage as any); - res.data = await (res.data as Blob).text(); - res.data = JSON.parse(res.data); - - setData(res.data.data.reverse()); - setIsFetchingDataMarshal(false); - } catch (err) { - console.error(err); - } - } - if (isLoading) { return ; } diff --git a/src/pages/MultiversxBubbles.tsx b/src/pages/MultiversxBubbles.tsx index c69b78c..0044886 100644 --- a/src/pages/MultiversxBubbles.tsx +++ b/src/pages/MultiversxBubbles.tsx @@ -1,25 +1,18 @@ import React, { useEffect, useState } from "react"; import { DataNft, ViewDataReturnType } from "@itheum/sdk-mx-data-nft"; -import { Address, SignableMessage } from "@multiversx/sdk-core/out"; import { useGetLoginInfo } from "@multiversx/sdk-dapp/hooks"; -import { useGetLastSignedMessageSession } from "@multiversx/sdk-dapp/hooks/signMessage/useGetLastSignedMessageSession"; -import { useGetSignMessageInfoStatus } from "@multiversx/sdk-dapp/hooks/signMessage/useGetSignedMessageStatus"; -import { useSignMessage } from "@multiversx/sdk-dapp/hooks/signMessage/useSignMessage"; import { ModalBody } from "react-bootstrap"; import ModalHeader from "react-bootstrap/esm/ModalHeader"; import { IoClose } from "react-icons/io5"; -import SVG from "react-inlinesvg"; +// import SVG from "react-inlinesvg"; import Modal from "react-modal"; -import { useNavigate, useParams } from "react-router-dom"; import headerHero from "assets/img/custom-app-header-bubblemaps.png"; -import { DataNftCard, Loader } from "components"; +import { DataNftCard, Loader, ZoomableSvg } from "components"; import { MULTIVERSX_BUBBLE_NONCES } from "config"; import { useGetAccount, useGetPendingTransactions } from "hooks"; import { BlobDataType } from "libs/types"; import { modalStylesFull } from "libs/ui"; import { toastError } from "libs/utils"; -import { sleep } from "libs/utils/legacyUtil"; -import { routeNames } from "routes"; import { HeaderComponent } from "../components/Layout/HeaderComponent"; import { Button } from "../libComponents/Button"; @@ -29,11 +22,9 @@ interface ExtendedViewDataReturnType extends ViewDataReturnType { export const MultiversxBubbles = () => { const { address } = useGetAccount(); - const { loginMethod } = useGetLoginInfo(); + const { tokenLogin } = useGetLoginInfo(); const { hasPendingTransactions } = useGetPendingTransactions(); - const { signMessage } = useSignMessage(); - const { isPending: isSignMessagePending } = useGetSignMessageInfoStatus(); - const lastSignedMessageSession = useGetLastSignedMessageSession(); + const [dataNfts, setDataNfts] = useState([]); const [flags, setFlags] = useState([]); const [isLoading, setIsLoading] = useState(true); @@ -41,9 +32,6 @@ export const MultiversxBubbles = () => { const [owned, setOwned] = useState(false); const [viewDataRes, setViewDataRes] = useState(); const [isModalOpened, setIsModalOpened] = useState(false); - const navigate = useNavigate(); - const isWebWallet = loginMethod === "wallet"; - const { targetNonce, targetMessageToBeSigned } = useParams(); const [file, setFile] = useState(null); useEffect(() => { @@ -58,50 +46,6 @@ export const MultiversxBubbles = () => { } }, [isLoading, address]); - useEffect(() => { - const asyncFnc = async () => { - await sleep(1); //temporary solution until we find out racing condition - try { - let signature = ""; - - if (lastSignedMessageSession && lastSignedMessageSession.status == "signed" && lastSignedMessageSession.signature) { - signature = lastSignedMessageSession.signature; - } else { - let signSessions = JSON.parse(sessionStorage.getItem("persist:sdk-dapp-signedMessageInfo") ?? "{'signedSessions':{}}"); - signSessions = JSON.parse(signSessions.signedSessions); - console.log("signSessions", signSessions); - - // find the first 'signed' session - for (const session of Object.values(signSessions) as any[]) { - if (session.status && session.status == "signed" && session.signature) { - signature = session.signature; - break; - } - } - } - - if (!signature) { - throw Error("Signature is empty"); - } - - const signedMessage = new SignableMessage({ - address: new Address(address), - message: Buffer.from(targetMessageToBeSigned || "", "ascii"), - signature: Buffer.from(signature, "hex"), - signer: loginMethod, - }); - await processSignature(Number(targetNonce), targetMessageToBeSigned || "", signedMessage); - } catch (e) { - console.error(e); - } finally { - navigate(routeNames.multiversxbubbles); - } - }; - if (isWebWallet && !!targetNonce && !!targetMessageToBeSigned && !isSignMessagePending) { - asyncFnc(); - } - }, [isWebWallet, isSignMessagePending]); - function openModal() { setIsModalOpened(true); } @@ -115,7 +59,7 @@ export const MultiversxBubbles = () => { async function fetchDataNfts() { setIsLoading(true); - const _nfts: DataNft[] = await DataNft.createManyFromApi(MULTIVERSX_BUBBLE_NONCES); + const _nfts: DataNft[] = await DataNft.createManyFromApi(MULTIVERSX_BUBBLE_NONCES.map((v) => ({ nonce: v }))); setDataNfts(_nfts); setIsLoading(false); @@ -148,23 +92,48 @@ export const MultiversxBubbles = () => { openModal(); const dataNft = dataNfts[index]; - const messageToBeSigned = await dataNft.getMessageToSign(); - - const callbackRoute = `${window.location.href}/${dataNft.nonce}/${messageToBeSigned}`; - const signedMessage = await signMessage({ - message: messageToBeSigned, - callbackRoute: isWebWallet ? callbackRoute : undefined, - }); - if (isWebWallet) return; - if (!signedMessage) { - toastError("Wallet signing failed."); - return; + let res: any; + if (!(tokenLogin && tokenLogin.nativeAuthToken)) { + throw Error("No nativeAuth token"); } - const viewDataPayload: ExtendedViewDataReturnType = await obtainDataNFTData(dataNft, messageToBeSigned, signedMessage as any); + const arg = { + mvxNativeAuthOrigins: [window.location.origin], + mvxNativeAuthMaxExpirySeconds: 3000, + fwdHeaderMapLookup: { + "authorization": `Bearer ${tokenLogin.nativeAuthToken}`, + }, + stream: true, + }; + + res = await dataNft.viewDataViaMVXNativeAuth(arg); + + let blobDataType = BlobDataType.TEXT; + if (!res.error) { + if (res.contentType.search("image") >= 0) { + if (res.contentType == "image/svg+xml") { + blobDataType = BlobDataType.SVG; + res.data = await (res.data as Blob).text(); + + // create a file so it can also be loaded in a new window + const pdfObject = window.URL.createObjectURL(new Blob([res.data], { type: res.contentType })); + setFile(pdfObject); + } else { + blobDataType = BlobDataType.IMAGE; + res.data = window.URL.createObjectURL(new Blob([res.data], { type: res.contentType })); + } + } else { + throw Error("This content type is not supported"); + } + } else { + throw Error(res.error); + } - setViewDataRes(viewDataPayload); + setViewDataRes({ + ...res, + blobDataType, + }); setIsFetchingDataMarshal(false); } else { openModal(); @@ -177,54 +146,6 @@ export const MultiversxBubbles = () => { } } - async function obtainDataNFTData(dataNft: DataNft, messageToBeSigned: string, signedMessage: SignableMessage) { - const res = await dataNft.viewData(messageToBeSigned, signedMessage as any, true); - - let blobDataType = BlobDataType.TEXT; - - if (!res.error) { - if (res.contentType.search("image") >= 0) { - if (res.contentType == "image/svg+xml") { - blobDataType = BlobDataType.SVG; - res.data = await (res.data as Blob).text(); - - // create a file so it can also be loaded in a new window - const pdfObject = window.URL.createObjectURL(new Blob([res.data], { type: res.contentType })); - setFile(pdfObject); - } else { - blobDataType = BlobDataType.IMAGE; - res.data = window.URL.createObjectURL(new Blob([res.data], { type: res.contentType })); - } - } else { - toastError("This content type is not supported"); - } - } else { - console.error(res.error); - toastError(res.error); - } - - return { - ...res, - blobDataType, - }; - } - - async function processSignature(nonce: number, messageToBeSigned: string, signedMessage: SignableMessage) { - try { - setIsFetchingDataMarshal(true); - setOwned(true); - openModal(); - - const dataNft = await DataNft.createFromApi(nonce); - const viewDataPayload: ExtendedViewDataReturnType = await obtainDataNFTData(dataNft, messageToBeSigned, signedMessage); - - setViewDataRes(viewDataPayload); - setIsFetchingDataMarshal(false); - } catch (err) { - console.error(err); - } - } - function preProcess(code: any) { // let newCode = code.replace(/fill=".*?"/g, 'fill="red"'); let newCode = code.replace(/height="1080pt"/, 'height="100%"'); @@ -257,7 +178,7 @@ export const MultiversxBubbles = () => { @@ -265,7 +186,7 @@ export const MultiversxBubbles = () => {

MultiversX Bubbles

-
+
@@ -284,7 +205,7 @@ export const MultiversxBubbles = () => {
- + {!owned ? (
{
-

- {["ledger", "walletconnectv2", "extra"].includes(loginMethod) ? "Please sign the message using xPortal or Ledger" : "Loading..."} -

+

{"Loading..."}

) : ( @@ -313,7 +232,8 @@ export const MultiversxBubbles = () => { (viewDataRes.blobDataType === BlobDataType.IMAGE ? ( ) : viewDataRes.blobDataType === BlobDataType.SVG ? ( - preProcess(code)} className="w-full h-auto" /> + // preProcess(code)} style={{ width: "100%", height: "auto" }} /> + ) : (

{viewDataRes.data} diff --git a/src/pages/MultiversxInfographics.tsx b/src/pages/MultiversxInfographics.tsx index c1c18af..baf9c08 100644 --- a/src/pages/MultiversxInfographics.tsx +++ b/src/pages/MultiversxInfographics.tsx @@ -1,16 +1,11 @@ import React, { useEffect, useState } from "react"; import { DataNft, ViewDataReturnType } from "@itheum/sdk-mx-data-nft"; -import { Address, SignableMessage } from "@multiversx/sdk-core/out"; import { useGetLoginInfo } from "@multiversx/sdk-dapp/hooks"; -import { useGetLastSignedMessageSession } from "@multiversx/sdk-dapp/hooks/signMessage/useGetLastSignedMessageSession"; -import { useGetSignMessageInfoStatus } from "@multiversx/sdk-dapp/hooks/signMessage/useGetSignedMessageStatus"; -import { useSignMessage } from "@multiversx/sdk-dapp/hooks/signMessage/useSignMessage"; import { ModalBody } from "react-bootstrap"; import ModalHeader from "react-bootstrap/esm/ModalHeader"; import { IoClose } from "react-icons/io5"; import SVG from "react-inlinesvg"; import Modal from "react-modal"; -import { useNavigate, useParams } from "react-router-dom"; import headerHero from "assets/img/custom-app-header-infographs.png"; import { DataNftCard, Loader } from "components"; import { MULTIVERSX_INFOGRAPHICS_NONCES } from "config"; @@ -18,8 +13,6 @@ import { useGetAccount, useGetPendingTransactions } from "hooks"; import { BlobDataType } from "libs/types"; import { modalStylesFull } from "libs/ui"; import { toastError } from "libs/utils"; -import { sleep } from "libs/utils/legacyUtil"; -import { routeNames } from "routes"; import { HeaderComponent } from "../components/Layout/HeaderComponent"; interface ExtendedViewDataReturnType extends ViewDataReturnType { @@ -28,12 +21,8 @@ interface ExtendedViewDataReturnType extends ViewDataReturnType { export const MultiversxInfographics = () => { const { address } = useGetAccount(); - const { loginMethod } = useGetLoginInfo(); + const { tokenLogin } = useGetLoginInfo(); const { hasPendingTransactions } = useGetPendingTransactions(); - const { signMessage } = useSignMessage(); - const { isPending: isSignMessagePending } = useGetSignMessageInfoStatus(); - const lastSignedMessageSession = useGetLastSignedMessageSession(); - console.log("lastSignedMessageSession", lastSignedMessageSession); const [dataNfts, setDataNfts] = useState([]); const [flags, setFlags] = useState([]); @@ -42,9 +31,6 @@ export const MultiversxInfographics = () => { const [owned, setOwned] = useState(false); const [viewDataRes, setViewDataRes] = useState(); const [isModalOpened, setIsModalOpened] = useState(false); - const navigate = useNavigate(); - const isWebWallet = loginMethod === "wallet"; - const { targetNonce, targetMessageToBeSigned } = useParams(); useEffect(() => { if (!hasPendingTransactions) { @@ -58,50 +44,6 @@ export const MultiversxInfographics = () => { } }, [isLoading, address]); - useEffect(() => { - const asyncFnc = async () => { - await sleep(1); //temporary solution until we find out racing condition - try { - let signature = ""; - - if (lastSignedMessageSession && lastSignedMessageSession.status == "signed" && lastSignedMessageSession.signature) { - signature = lastSignedMessageSession.signature; - } else { - let signSessions = JSON.parse(sessionStorage.getItem("persist:sdk-dapp-signedMessageInfo") ?? "{'signedSessions':{}}"); - signSessions = JSON.parse(signSessions.signedSessions); - console.log("signSessions", signSessions); - - // find the first 'signed' session - for (const session of Object.values(signSessions) as any[]) { - if (session.status && session.status == "signed" && session.signature) { - signature = session.signature; - break; - } - } - } - - if (!signature) { - throw Error("Signature is empty"); - } - - const signedMessage = new SignableMessage({ - address: new Address(address), - message: Buffer.from(targetMessageToBeSigned || "", "ascii"), - signature: Buffer.from(signature, "hex"), - signer: loginMethod, - }); - await processSignature(Number(targetNonce), targetMessageToBeSigned || "", signedMessage); - } catch (e) { - console.error(e); - } finally { - navigate(routeNames.multiversxinfographics); - } - }; - if (isWebWallet && !!targetNonce && !!targetMessageToBeSigned && !isSignMessagePending) { - asyncFnc(); - } - }, [isWebWallet, isSignMessagePending]); - function openModal() { setIsModalOpened(true); } @@ -114,7 +56,7 @@ export const MultiversxInfographics = () => { async function fetchDataNfts() { setIsLoading(true); - const _nfts: DataNft[] = await DataNft.createManyFromApi(MULTIVERSX_INFOGRAPHICS_NONCES); + const _nfts: DataNft[] = await DataNft.createManyFromApi(MULTIVERSX_INFOGRAPHICS_NONCES.map((v) => ({ nonce: v }))); setDataNfts(_nfts); setIsLoading(false); @@ -147,21 +89,54 @@ export const MultiversxInfographics = () => { openModal(); const dataNft = dataNfts[index]; - const messageToBeSigned = await dataNft.getMessageToSign(); - - const callbackRoute = `${window.location.href}/${dataNft.nonce}/${messageToBeSigned}`; - const signedMessage = await signMessage({ - message: messageToBeSigned, - callbackRoute: isWebWallet ? callbackRoute : undefined, - }); + let res: any; + if (!(tokenLogin && tokenLogin.nativeAuthToken)) { + throw Error("No nativeAuth token"); + } - if (isWebWallet) return; - if (!signedMessage) { - toastError("Wallet signing failed."); - return; + const arg = { + mvxNativeAuthOrigins: [window.location.origin], + mvxNativeAuthMaxExpirySeconds: 3000, + fwdHeaderMapLookup: { + "authorization": `Bearer ${tokenLogin.nativeAuthToken}`, + }, + }; + + res = await dataNft.viewDataViaMVXNativeAuth(arg); + + let blobDataType = BlobDataType.TEXT; + + if (!res.error) { + if (res.contentType.search("image") >= 0) { + if (res.contentType == "image/svg+xml") { + blobDataType = BlobDataType.SVG; + res.data = await (res.data as Blob).text(); + } else { + blobDataType = BlobDataType.IMAGE; + res.data = window.URL.createObjectURL(new Blob([res.data], { type: res.contentType })); + } + } else if (res.contentType.search("audio") >= 0) { + res.data = window.URL.createObjectURL(new Blob([res.data], { type: res.contentType })); + blobDataType = BlobDataType.AUDIO; + } else if (res.contentType.search("application/pdf") >= 0) { + const pdfObject = window.URL.createObjectURL(new Blob([res.data], { type: res.contentType })); + res.data = "PDF opened in new tab"; + blobDataType = BlobDataType.PDF; + window.open(pdfObject, "_blank"); + closeModal(); + } else { + res.data = await (res.data as Blob).text(); + res.data = JSON.stringify(JSON.parse(res.data), null, 4); + } + } else { + console.error(res.error); + toastError(res.error); } - const viewDataPayload: ExtendedViewDataReturnType = await obtainDataNFTData(dataNft, messageToBeSigned, signedMessage as any); + const viewDataPayload: ExtendedViewDataReturnType = { + ...res, + blobDataType, + }; setViewDataRes(viewDataPayload); setIsFetchingDataMarshal(false); @@ -176,60 +151,6 @@ export const MultiversxInfographics = () => { } } - async function obtainDataNFTData(dataNft: DataNft, messageToBeSigned: string, signedMessage: SignableMessage) { - const res = await dataNft.viewData(messageToBeSigned, signedMessage as any, true); - - let blobDataType = BlobDataType.TEXT; - - if (!res.error) { - if (res.contentType.search("image") >= 0) { - if (res.contentType == "image/svg+xml") { - blobDataType = BlobDataType.SVG; - res.data = await (res.data as Blob).text(); - } else { - blobDataType = BlobDataType.IMAGE; - res.data = window.URL.createObjectURL(new Blob([res.data], { type: res.contentType })); - } - } else if (res.contentType.search("audio") >= 0) { - res.data = window.URL.createObjectURL(new Blob([res.data], { type: res.contentType })); - blobDataType = BlobDataType.AUDIO; - } else if (res.contentType.search("application/pdf") >= 0) { - const pdfObject = window.URL.createObjectURL(new Blob([res.data], { type: res.contentType })); - res.data = "PDF opened in new tab"; - blobDataType = BlobDataType.PDF; - window.open(pdfObject, "_blank"); - closeModal(); - } else { - res.data = await (res.data as Blob).text(); - res.data = JSON.stringify(JSON.parse(res.data), null, 4); - } - } else { - console.error(res.error); - toastError(res.error); - } - - return { - ...res, - blobDataType, - }; - } - - async function processSignature(nonce: number, messageToBeSigned: string, signedMessage: SignableMessage) { - try { - setIsFetchingDataMarshal(true); - setOwned(true); - openModal(); - - const dataNft = await DataNft.createFromApi(nonce); - const viewDataPayload: ExtendedViewDataReturnType = await obtainDataNFTData(dataNft, messageToBeSigned, signedMessage); - - setViewDataRes(viewDataPayload); - setIsFetchingDataMarshal(false); - } catch (err) { - console.error(err); - } - } - function preProcess(code: any) { // let newCode = code.replace(/fill=".*?"/g, 'fill="red"'); let newCode = code.replace(/height="1080pt"/, 'height="100%"'); @@ -301,9 +222,7 @@ export const MultiversxInfographics = () => { }}>

-

- {["ledger", "walletconnectv2", "extra"].includes(loginMethod) ? "Please sign the message using xPortal or Ledger" : "Loading..."} -

+

{"Loading..."}

) : ( diff --git a/src/pages/MyListed.tsx b/src/pages/MyListed.tsx index 488a487..9f97839 100644 --- a/src/pages/MyListed.tsx +++ b/src/pages/MyListed.tsx @@ -8,8 +8,8 @@ import { useGetAccount, useGetNetworkConfig, useGetPendingTransactions } from "h import { dataNftMarket } from "libs/mvx"; import { convertToLocalString } from "libs/utils"; import { createNftId } from "libs/utils/token"; -import { Card, CardContent } from "../libComponents/Card"; import { HeaderComponent } from "../components/Layout/HeaderComponent"; +import { Card, CardContent } from "../libComponents/Card"; export const MyListed = () => { const { @@ -39,7 +39,7 @@ export const MyListed = () => { async function fetchDataNfts() { setIsNftLoading(true); const nonces: number[] = offers.map((offer) => offer.offeredTokenNonce); - const _dataNfts: DataNft[] = await DataNft.createManyFromApi(nonces); + const _dataNfts: DataNft[] = await DataNft.createManyFromApi(nonces.map(v => ({ nonce: v }))); setDataNfts(_dataNfts); setIsNftLoading(false); diff --git a/src/pages/MyWallet.tsx b/src/pages/MyWallet.tsx index 859681a..eefb833 100644 --- a/src/pages/MyWallet.tsx +++ b/src/pages/MyWallet.tsx @@ -1,25 +1,19 @@ import React, { useEffect, useState } from "react"; import { DataNft, ViewDataReturnType } from "@itheum/sdk-mx-data-nft"; -import { Address, SignableMessage } from "@multiversx/sdk-core/out"; import { useGetLoginInfo } from "@multiversx/sdk-dapp/hooks"; -import { useGetLastSignedMessageSession } from "@multiversx/sdk-dapp/hooks/signMessage/useGetLastSignedMessageSession"; -import { useGetSignMessageInfoStatus } from "@multiversx/sdk-dapp/hooks/signMessage/useGetSignedMessageStatus"; import * as DOMPurify from "dompurify"; import { ModalBody } from "react-bootstrap"; import ModalHeader from "react-bootstrap/esm/ModalHeader"; import { IoClose } from "react-icons/io5"; import SVG from "react-inlinesvg"; import Modal from "react-modal"; -import { useNavigate, useParams } from "react-router-dom"; +import imgGuidePopup from "assets/img/guide-unblock-popups.png"; import { DataNftCard, Loader } from "components"; import { MARKETPLACE_DETAILS_PAGE } from "config"; -import { useGetAccount, useGetPendingTransactions, useSignMessage } from "hooks"; +import { useGetAccount, useGetPendingTransactions } from "hooks"; import { BlobDataType } from "libs/types"; import { modalStyles } from "libs/ui"; import { toastError } from "libs/utils"; -import { sleep } from "libs/utils/legacyUtil"; -import { routeNames } from "routes"; -import imgGuidePopup from "assets/img/guide-unblock-popups.png"; import { HeaderComponent } from "../components/Layout/HeaderComponent"; interface ExtendedViewDataReturnType extends ViewDataReturnType { @@ -29,13 +23,7 @@ interface ExtendedViewDataReturnType extends ViewDataReturnType { export const MyWallet = () => { const { address } = useGetAccount(); const { hasPendingTransactions } = useGetPendingTransactions(); - const { signMessage } = useSignMessage(); - const { loginMethod } = useGetLoginInfo(); - const navigate = useNavigate(); - const isWebWallet = loginMethod == "wallet"; - const { targetNonce, targetMessageToBeSigned } = useParams(); - const { isPending: isSignMessagePending } = useGetSignMessageInfoStatus(); - const lastSignedMessageSession = useGetLastSignedMessageSession(); + const { tokenLogin } = useGetLoginInfo(); const [dataNftCount, setDataNftCount] = useState(0); const [dataNfts, setDataNfts] = useState([]); const [isLoading, setIsLoading] = useState(true); @@ -45,6 +33,12 @@ export const MyWallet = () => { const [isAutoOpenFormat, setIsAutoOpenFormat] = useState(false); const [isDomPurified, setIsDomPurified] = useState(false); + useEffect(() => { + if (!hasPendingTransactions) { + fetchData(); + } + }, [hasPendingTransactions]); + function openModal() { setIsModalOpened(true); } @@ -66,12 +60,6 @@ export const MyWallet = () => { setIsLoading(false); } - useEffect(() => { - if (!hasPendingTransactions) { - fetchData(); - } - }, [hasPendingTransactions]); - async function viewNormalData(index: number) { if (!(index >= 0 && index < dataNfts.length)) { toastError("Data is not loaded"); @@ -83,28 +71,20 @@ export const MyWallet = () => { openModal(); const dataNft = dataNfts[index]; - const messageToBeSigned = await dataNft.getMessageToSign(); - - const callbackRoute = `${window.location.href}/${dataNft.nonce}/${messageToBeSigned}`; - const signedMessage = await signMessage({ - message: messageToBeSigned, - callbackRoute: isWebWallet ? callbackRoute : undefined, - }); - - if (isWebWallet) return; - if (!signedMessage) { - toastError("Wallet signing failed"); - return; + let res: any; + if (!(tokenLogin && tokenLogin.nativeAuthToken)) { + throw Error("No nativeAuth token"); } - const viewDataPayload: ExtendedViewDataReturnType = await obtainDataNFTData(dataNft, messageToBeSigned, signedMessage as any); - - setViewDataRes(viewDataPayload); - setIsFetchingDataMarshal(false); - } + const arg = { + mvxNativeAuthOrigins: [window.location.origin], + mvxNativeAuthMaxExpirySeconds: 3000, + fwdHeaderMapLookup: { + "authorization": `Bearer ${tokenLogin.nativeAuthToken}`, + }, + }; - async function obtainDataNFTData(dataNft: DataNft, messageToBeSigned: string, signedMessage: SignableMessage) { - const res = await dataNft.viewData(messageToBeSigned, signedMessage as any, true); + res = await dataNft.viewDataViaMVXNativeAuth(arg); let blobDataType = BlobDataType.TEXT; @@ -143,71 +123,15 @@ export const MyWallet = () => { toastError(res.error); } - return { + const viewDataPayload: ExtendedViewDataReturnType = { ...res, blobDataType, }; - } - - async function processSignature(nonce: number, messageToBeSigned: string, signedMessage: SignableMessage) { - try { - setIsFetchingDataMarshal(true); - openModal(); - - const dataNft = await DataNft.createFromApi(nonce); - const viewDataPayload: ExtendedViewDataReturnType = await obtainDataNFTData(dataNft, messageToBeSigned, signedMessage); - setViewDataRes(viewDataPayload); - setIsFetchingDataMarshal(false); - } catch (err) { - console.error(err); - } + setViewDataRes(viewDataPayload); + setIsFetchingDataMarshal(false); } - useEffect(() => { - const asyncFnc = async () => { - await sleep(1); //temporary solution until we find out racing condition - try { - let signature = ""; - - if (lastSignedMessageSession && lastSignedMessageSession.status == "signed" && lastSignedMessageSession.signature) { - signature = lastSignedMessageSession.signature; - } else { - let signSessions = JSON.parse(sessionStorage.getItem("persist:sdk-dapp-signedMessageInfo") ?? "{'signedSessions':{}}"); - signSessions = JSON.parse(signSessions.signedSessions); - console.log("signSessions", signSessions); - - // find the first 'signed' session - for (const session of Object.values(signSessions) as any[]) { - if (session.status && session.status == "signed" && session.signature) { - signature = session.signature; - break; - } - } - } - - if (!signature) { - throw Error("Signature is empty"); - } - - const signedMessage = new SignableMessage({ - address: new Address(address), - message: Buffer.from(targetMessageToBeSigned || "", "ascii"), - signature: Buffer.from(signature, "hex"), - signer: loginMethod, - }); - await processSignature(Number(targetNonce), targetMessageToBeSigned || "", signedMessage); - } catch (e) { - console.error(e); - } finally { - navigate(routeNames.mywallet); - } - }; - if (isWebWallet && !!targetNonce && !!targetMessageToBeSigned && !isSignMessagePending) { - asyncFnc(); - } - }, [isWebWallet, isSignMessagePending]); - if (isLoading) { return ; } @@ -278,9 +202,7 @@ export const MyWallet = () => { }}>
-

- {["ledger", "walletconnectv2", "extra"].includes(loginMethod) ? "Please sign the message using xPortal or Ledger" : "Loading..."} -

+

{"Loading..."}

) : ( diff --git a/src/pages/PlayStationGamer.tsx b/src/pages/PlayStationGamer.tsx index df35b1b..f840c25 100644 --- a/src/pages/PlayStationGamer.tsx +++ b/src/pages/PlayStationGamer.tsx @@ -1,8 +1,6 @@ import React, { useEffect, useState } from "react"; import { DataNft } from "@itheum/sdk-mx-data-nft"; -import { SignableMessage } from "@multiversx/sdk-core/out"; import { useGetLoginInfo } from "@multiversx/sdk-dapp/hooks"; -import { useSignMessage } from "@multiversx/sdk-dapp/hooks/signMessage/useSignMessage"; import { ModalBody } from "react-bootstrap"; import ModalHeader from "react-bootstrap/esm/ModalHeader"; import { IoClose } from "react-icons/io5"; @@ -12,20 +10,18 @@ import { PLAYSTATION_GAMER_PASSPORT_NONCES } from "config"; import { useGetAccount, useGetPendingTransactions } from "hooks"; import { modalStyles } from "libs/ui"; import { toastError } from "libs/utils"; -import PlaystationGamerInsights from "./PlaystationGamerInsights"; import { HeaderComponent } from "../components/Layout/HeaderComponent"; +import PlaystationGamerInsights from "./PlaystationGamerInsights"; export const PlayStationGamer = () => { const { address } = useGetAccount(); const { hasPendingTransactions } = useGetPendingTransactions(); - const { loginMethod } = useGetLoginInfo(); - const { signMessage } = useSignMessage(); + const { tokenLogin } = useGetLoginInfo(); const [ccDataNfts, setCcDataNfts] = useState([]); const [flags, setFlags] = useState([]); const [isLoading, setIsLoading] = useState(true); - const [dataMarshalRes, setDataMarshalRes] = useState(""); const [isFetchingDataMarshal, setIsFetchingDataMarshal] = useState(true); const [owned, setOwned] = useState(false); @@ -44,7 +40,7 @@ export const PlayStationGamer = () => { async function fetchAppNfts() { setIsLoading(true); - const _nfts: DataNft[] = await DataNft.createManyFromApi(PLAYSTATION_GAMER_PASSPORT_NONCES); + const _nfts: DataNft[] = await DataNft.createManyFromApi(PLAYSTATION_GAMER_PASSPORT_NONCES.map((nonce) => ({ nonce }))); console.log("ccDataNfts", _nfts); setCcDataNfts(_nfts); @@ -86,30 +82,30 @@ export const PlayStationGamer = () => { if (_owned) { setIsFetchingDataMarshal(true); - setDataMarshalRes(""); openModal(); const dataNft = ccDataNfts[index]; - const messageToBeSigned = await dataNft.getMessageToSign(); - // console.log('messageToBeSigned', messageToBeSigned); - const signedMessage = await signMessage({ message: messageToBeSigned }); - // console.log('signedMessage', signedMessage); - const res = await dataNft.viewData(messageToBeSigned, signedMessage as any); - if (!signedMessage) { - toastError("Wallet signing failed."); - return; + let res: any; + if (!(tokenLogin && tokenLogin.nativeAuthToken)) { + throw Error("No nativeAuth token"); } + + const arg = { + mvxNativeAuthOrigins: [window.location.origin], + mvxNativeAuthMaxExpirySeconds: 3000, + fwdHeaderMapLookup: { + "authorization": `Bearer ${tokenLogin.nativeAuthToken}`, + }, + }; + console.log('arg', arg); + + res = await dataNft.viewDataViaMVXNativeAuth(arg); res.data = await (res.data as Blob).text(); res.data = JSON.parse(res.data); - // console.log('viewData', res); - setDataMarshalRes(JSON.stringify(res.data, null, 4)); fixData(res.data); - setData(res.data); - console.log(res.data); - setIsFetchingDataMarshal(false); } else { openModal(); @@ -328,7 +324,7 @@ export const PlayStationGamer = () => {

- {["ledger", "walletconnectv2", "extra"].includes(loginMethod) ? "Please sign the message using xPortal or Ledger" : "Loading..."} + {"Loading..."}

diff --git a/src/pages/PlaystationGamerInsights.js b/src/pages/PlaystationGamerInsights.js index 850b645..a6f76c0 100644 --- a/src/pages/PlaystationGamerInsights.js +++ b/src/pages/PlaystationGamerInsights.js @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import React from "react"; import "./PlaystationGamerInsights.css"; const tileImageMap = { diff --git a/src/pages/Unlock.tsx b/src/pages/Unlock.tsx index f949332..49f2825 100644 --- a/src/pages/Unlock.tsx +++ b/src/pages/Unlock.tsx @@ -1,4 +1,5 @@ import React from "react"; +import { useGetNetworkConfig } from "@multiversx/sdk-dapp/hooks"; import { useLocation } from "react-router-dom"; import { AuthRedirectWrapper, @@ -27,10 +28,15 @@ function getRouteNameBasedOnPathNameParam(pathname: string) { const UnlockPage = () => { const location = useLocation(); + const { network: { apiAddress } } = useGetNetworkConfig(); const commonProps = { callbackRoute: getRouteNameBasedOnPathNameParam(location?.state?.from), - // nativeAuth: true, // optional + nativeAuth: { + apiAddress, + expirySeconds: 3000, + // origin: window.location.origin, + }, }; return ( diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 1686e82..5cd35f5 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,5 +1,3 @@ -export * from "./CantinaCorner"; -export * from "./GamerPassportGamer"; export * from "./PlayStationGamer"; export * from "./Dashboard"; export * from "./EsdtBubble"; diff --git a/src/routes.ts b/src/routes.ts index 336a5a1..06e37b9 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -3,10 +3,7 @@ import { RouteType } from "libs/types"; import { ItheumTrailblazer } from "pages/ItheumTrailblazer"; import { withPageTitle } from "./components/PageTitle"; import { - CantinaCorner, - GamerPassportGamer, PlayStationGamer, - Dashboard, Home, MyListed, MyWallet, @@ -21,8 +18,6 @@ export const routeNames = { unlock: "/unlock", mylisted: "/my-listed", mywallet: "/my-wallet", - cantinacorner: "/cantina-corner-poc", - gamerpassportgamer: "/gamer-passport-gamer-poc", playstationgamerpassport: "/gamer-passport", itheumtrailblazer: "/project-trailblazer", esdtBubble: "/esdt-bubbles", @@ -58,18 +53,6 @@ export const routes: RouteWithTitleType[] = [ component: MyWallet, authenticatedRoute: true, }, - { - path: routeNames.cantinacorner, - title: "Cantina Corner", - component: CantinaCorner, - authenticatedRoute: false, - }, - { - path: routeNames.gamerpassportgamer, - title: "Web3 Gamer Passport", - component: GamerPassportGamer, - authenticatedRoute: false, - }, { path: routeNames.playstationgamerpassport, title: "PlayStation Gamer Passport",