From 70cf7fba43dca8dd823714cce9fd84c070b2b7f3 Mon Sep 17 00:00:00 2001 From: icegriffinguru Date: Tue, 22 Aug 2023 19:25:09 -0400 Subject: [PATCH 01/12] [Ice] #89 --- package-lock.json | 14 +++ package.json | 5 +- src/components/ZoomableSvg.tsx | 147 ++++++++++++++++++++++++++++++++ src/components/index.tsx | 1 + src/pages/MultiversxBubbles.tsx | 8 +- 5 files changed, 171 insertions(+), 4 deletions(-) create mode 100644 src/components/ZoomableSvg.tsx diff --git a/package-lock.json b/package-lock.json index fc18472..2910338 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,6 +42,7 @@ "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", @@ -19235,6 +19236,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", diff --git a/package.json b/package.json index 019c855..63af5a4 100644 --- a/package.json +++ b/package.json @@ -10,10 +10,10 @@ "@fortawesome/react-fontawesome": "0.1.18", "@headlessui/react": "1.7.15", "@itheum/sdk-mx-data-nft": "0.0.7", - "@radix-ui/react-slot": "^1.0.2", "@multiversx/sdk-core": "12.6.0", "@multiversx/sdk-dapp": "2.19.2", "@multiversx/sdk-network-providers": "1.5.0", + "@radix-ui/react-slot": "^1.0.2", "@types/react-modal": "3.16.0", "axios": "0.24.0", "bootstrap": "4.6.2", @@ -21,8 +21,8 @@ "class-variance-authority": "^0.7.0", "clsx": "^2.0.0", "d3": "7.8.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", @@ -38,6 +38,7 @@ "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", diff --git a/src/components/ZoomableSvg.tsx b/src/components/ZoomableSvg.tsx new file mode 100644 index 0000000..475a1f6 --- /dev/null +++ b/src/components/ZoomableSvg.tsx @@ -0,0 +1,147 @@ +import React, { useRef } from "react"; +import SVG from "react-inlinesvg"; +import { + TransformWrapper, + TransformComponent, + ReactZoomPanPinchRef, +} from "react-zoom-pan-pinch"; + +export const ZoomableSvg = ({ + data, + preProcess, +} : { + data: any, + preProcess: any, +}) => { + const transformComponentRef = useRef(null); + + const zoomIn = () => { + if (transformComponentRef.current) { + const { zoomIn } = transformComponentRef.current; + zoomIn(); + } + }; + + const zoomOut = () => { + if (transformComponentRef.current) { + const { zoomOut } = transformComponentRef.current; + zoomOut(); + } + }; + + const resetTransform = () => { + if (transformComponentRef.current) { + const { resetTransform } = transformComponentRef.current; + resetTransform(); + } + }; + + 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/pages/MultiversxBubbles.tsx b/src/pages/MultiversxBubbles.tsx index 8d6c066..ba08fb9 100644 --- a/src/pages/MultiversxBubbles.tsx +++ b/src/pages/MultiversxBubbles.tsx @@ -12,7 +12,7 @@ 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"; @@ -320,7 +320,11 @@ export const MultiversxBubbles = () => { (viewDataRes.blobDataType === BlobDataType.IMAGE ? ( ) : viewDataRes.blobDataType === BlobDataType.SVG ? ( - preProcess(code)} style={{ width: "100%", height: "auto" }} /> + // preProcess(code)} style={{ width: "100%", height: "auto" }} /> + ) : (

{viewDataRes.data} From cde7b0e316ce5f228f88a2bd927a8992df90febf Mon Sep 17 00:00:00 2001 From: icegriffinguru Date: Wed, 30 Aug 2023 05:15:09 -0400 Subject: [PATCH 02/12] [Ice] #89 (2) --- src/components/ZoomableSvg.tsx | 147 ------------------------- src/components/ZoomableSvg/Reset.svg | 5 + src/components/ZoomableSvg/ZoomIn.svg | 8 ++ src/components/ZoomableSvg/ZoomOut.svg | 5 + src/components/ZoomableSvg/index.scss | 13 +++ src/components/ZoomableSvg/index.tsx | 109 ++++++++++++++++++ src/pages/MultiversxBubbles.tsx | 6 +- 7 files changed, 143 insertions(+), 150 deletions(-) delete mode 100644 src/components/ZoomableSvg.tsx create mode 100644 src/components/ZoomableSvg/Reset.svg create mode 100644 src/components/ZoomableSvg/ZoomIn.svg create mode 100644 src/components/ZoomableSvg/ZoomOut.svg create mode 100644 src/components/ZoomableSvg/index.scss create mode 100644 src/components/ZoomableSvg/index.tsx diff --git a/src/components/ZoomableSvg.tsx b/src/components/ZoomableSvg.tsx deleted file mode 100644 index 475a1f6..0000000 --- a/src/components/ZoomableSvg.tsx +++ /dev/null @@ -1,147 +0,0 @@ -import React, { useRef } from "react"; -import SVG from "react-inlinesvg"; -import { - TransformWrapper, - TransformComponent, - ReactZoomPanPinchRef, -} from "react-zoom-pan-pinch"; - -export const ZoomableSvg = ({ - data, - preProcess, -} : { - data: any, - preProcess: any, -}) => { - const transformComponentRef = useRef(null); - - const zoomIn = () => { - if (transformComponentRef.current) { - const { zoomIn } = transformComponentRef.current; - zoomIn(); - } - }; - - const zoomOut = () => { - if (transformComponentRef.current) { - const { zoomOut } = transformComponentRef.current; - zoomOut(); - } - }; - - const resetTransform = () => { - if (transformComponentRef.current) { - const { resetTransform } = transformComponentRef.current; - resetTransform(); - } - }; - - return ( - - - - preProcess(code)} - // style={{ width: "100%", height: "auto" }} - /> - - -

- - - -
- - - ); -}; 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..f81b2cf --- /dev/null +++ b/src/components/ZoomableSvg/index.tsx @@ -0,0 +1,109 @@ +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/pages/MultiversxBubbles.tsx b/src/pages/MultiversxBubbles.tsx index ba08fb9..8975a42 100644 --- a/src/pages/MultiversxBubbles.tsx +++ b/src/pages/MultiversxBubbles.tsx @@ -284,9 +284,9 @@ export const MultiversxBubbles = () => { {!owned ? (
Date: Wed, 30 Aug 2023 09:15:49 -0400 Subject: [PATCH 03/12] [Ice] #89 (3) --- src/components/ZoomableSvg/index.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/components/ZoomableSvg/index.tsx b/src/components/ZoomableSvg/index.tsx index f81b2cf..9da9abd 100644 --- a/src/components/ZoomableSvg/index.tsx +++ b/src/components/ZoomableSvg/index.tsx @@ -50,6 +50,9 @@ export const ZoomableSvg = ({ initialPositionX={0} initialPositionY={0} ref={transformComponentRef} + wheel={{ + step: 1, + }} > Date: Thu, 7 Sep 2023 02:18:29 -0400 Subject: [PATCH 04/12] #89 (4) --- src/components/ZoomableSvg/index.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/components/ZoomableSvg/index.tsx b/src/components/ZoomableSvg/index.tsx index 9da9abd..c8d5519 100644 --- a/src/components/ZoomableSvg/index.tsx +++ b/src/components/ZoomableSvg/index.tsx @@ -51,8 +51,12 @@ export const ZoomableSvg = ({ initialPositionY={0} ref={transformComponentRef} wheel={{ - step: 1, + // step: 0.5, + smoothStep: 0.004, }} + // pinch={{ + // step: 0.5, + // }} > Date: Thu, 7 Sep 2023 02:27:26 -0400 Subject: [PATCH 05/12] #941 --- src/pages/Unlock.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/Unlock.tsx b/src/pages/Unlock.tsx index 801f1bf..59bf671 100644 --- a/src/pages/Unlock.tsx +++ b/src/pages/Unlock.tsx @@ -30,7 +30,7 @@ const UnlockPage = () => { const commonProps = { callbackRoute: getRouteNameBasedOnPathNameParam(location?.state?.from), - // nativeAuth: true, // optional + nativeAuth: true, // optional }; return ( From c725ff184390e1434aa7b15b33328ad3c400e5bc Mon Sep 17 00:00:00 2001 From: icegriffinguru Date: Mon, 11 Sep 2023 15:03:59 -0400 Subject: [PATCH 06/12] Merge branch 'milestone-1.5.0' into d-kent-1.5.0 --- package-lock.json | 4 +- package.json | 2 +- src/assets/sass/theme.scss | 54 ++++++------- src/components/Layout/Layout.tsx | 4 +- src/components/Layout/Navbar.tsx | 28 +++---- src/components/TrailBlazerModal.tsx | 57 ++++++++------ src/index.css | 28 ++++++- src/libComponents/Button.tsx | 2 +- .../MultiversxInfographics/index.tsx | 78 +++++++++---------- src/pages/MultiversxBubbles.tsx | 75 ++++++++---------- src/pages/MyWallet.tsx | 36 ++++----- 11 files changed, 196 insertions(+), 172 deletions(-) diff --git a/package-lock.json b/package-lock.json index 997ecce..6171eab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "explorer-dapp", - "version": "1.4.0.beta.2", + "version": "1.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "explorer-dapp", - "version": "1.4.0.beta.2", + "version": "1.4.0", "license": "GPL-3.0-or-later", "dependencies": { "@fortawesome/fontawesome-svg-core": "6.1.0", diff --git a/package.json b/package.json index 75a5141..a441f85 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.beta.2", + "version": "1.4.0", "author": "Itheum", "license": "GPL-3.0-or-later", "dependencies": { diff --git a/src/assets/sass/theme.scss b/src/assets/sass/theme.scss index 3d321db..b106320 100644 --- a/src/assets/sass/theme.scss +++ b/src/assets/sass/theme.scss @@ -106,7 +106,7 @@ body { // $dropdown-link-hover-bg: transparent; // // --light: #0f0f0f; -// --light-20: #0f0f0f88; +//--light-20: #0f0f0f88; // // // --#{$variable-prefix}body-color: #{$body-color}; // // --#{$variable-prefix}body-bg: #{$body-bg}; @@ -198,32 +198,32 @@ body { // .btn-outline-primary { // color: #fff; // } -// -// // Dapp Core -// .dapp-core-component__dappModalStyles__dappModalContent { -// background-color: $mxDefiWalBG; -// } -// -// .dapp-core-component__dappModalStyles__dappModalCloseButton { -// background-color: $mxDefiWalBG; -// color: #fff; -// } -// -// .dapp-core-component__dappModalStyles__dappModalBody { -// padding: 30px !important; -// } -// -// .dapp-core-component__addressTableStyles__ledger-address-table-header { -// background-color: #343a40 !important; -// } -// -// .dapp-core-component__addressTableStyles__ledger-address-table-navigation button { -// color: #fff !important; -// } -// -// .custom-box-border { -// border: 1px solid #939da7; -// } + + // Dapp Core + //.dapp-core-component__dappModalStyles__dappModalContent { + // background-color: $mxDefiWalBG; + //} + // + //.dapp-core-component__dappModalStyles__dappModalCloseButton { + // background-color: $mxDefiWalBG; + // color: #fff; + //} + // + //.dapp-core-component__dappModalStyles__dappModalBody { + // padding: 30px !important; + //} + // + //.dapp-core-component__addressTableStyles__ledger-address-table-header { + // background-color: #343a40 !important; + //} + // + //.dapp-core-component__addressTableStyles__ledger-address-table-navigation button { + // color: #fff !important; + //} + + //.custom-box-border { + // border: 1px solid #939da7; + //} //} .custom-classname.btn-primary { diff --git a/src/components/Layout/Layout.tsx b/src/components/Layout/Layout.tsx index 81e8619..cdc3809 100644 --- a/src/components/Layout/Layout.tsx +++ b/src/components/Layout/Layout.tsx @@ -10,9 +10,9 @@ export const Layout = ({ children }: { children: React.ReactNode }) => { const { search } = useLocation(); return ( -
+
-
+
{children} diff --git a/src/components/Layout/Navbar.tsx b/src/components/Layout/Navbar.tsx index f71101f..7cfe08a 100644 --- a/src/components/Layout/Navbar.tsx +++ b/src/components/Layout/Navbar.tsx @@ -1,4 +1,5 @@ import React, { useEffect, useState } from "react"; +import { Home, Menu, Store, Wallet } from "lucide-react"; import { Link } from "react-router-dom"; import lightLogo from "assets/img/logo-icon-b.png"; import darkLogo from "assets/img/logo-sml-d.png"; @@ -9,18 +10,7 @@ import { useGetAccount, useGetIsLoggedIn } from "hooks"; import { APP_MAPPINGS } from "libs/utils/constant"; import { returnRoute } from "pages/Home"; import { routeNames } from "routes"; -import { SwitchButton } from "./SwitchButton"; import { Button } from "../../libComponents/Button"; -import { - NavigationMenu, - NavigationMenuContent, - NavigationMenuItem, - NavigationMenuLink, - NavigationMenuList, - NavigationMenuTrigger, - navigationMenuTriggerStyle, -} from "../../libComponents/NavigationMenu"; -import { cn } from "../../libs/utils"; import { DropdownMenu, DropdownMenuContent, @@ -30,8 +20,18 @@ import { DropdownMenuSeparator, DropdownMenuTrigger, } from "../../libComponents/DropdownMenu"; -import { Home, Menu, Store, Wallet } from "lucide-react"; +import { + NavigationMenu, + NavigationMenuContent, + NavigationMenuItem, + NavigationMenuLink, + NavigationMenuList, + NavigationMenuTrigger, + navigationMenuTriggerStyle, +} from "../../libComponents/NavigationMenu"; import { useTheme } from "../../libComponents/ThemeProvider"; +import { cn } from "../../libs/utils"; +import { SwitchButton } from "./SwitchButton"; export const Navbar = () => { const isLoggedIn = useGetIsLoggedIn(); @@ -123,7 +123,7 @@ export const Navbar = () => { ) : ( - +
) : ( - +
{dataItem.title}
- +
Grab your offer now!
@@ -229,24 +232,32 @@ export const TrailBlazerModal = ({ } return ( - -
-
- + +
+ +

Trailblazer

+
+
+
+ +
- -

Trailblazer

-
{!owned ? ( -
+

You do not own this Data NFT

(Buy the Data NFT from the marketplace to unlock the data)
) : isFetchingDataMarshal || !data ? (
) : ( -
+
{data?.map((_dataItem: any, _index: any) => { return ( diff --git a/src/index.css b/src/index.css index f5df5a5..565ec28 100644 --- a/src/index.css +++ b/src/index.css @@ -60,7 +60,7 @@ h5, h6 { } .dark { - --background: 224 71% 4%; + --background: 0 0% 9%; --foreground: 213 31% 91%; --muted: 223 47% 11%; @@ -93,6 +93,32 @@ h5, h6 { } } +@layer utilities { + .scrollbar::-webkit-scrollbar { + @apply w-5; + } + + .scrollbar::-webkit-scrollbar-track { + @apply rounded-md bg-[#f7f4ed]; + } + + .scrollbar::-webkit-scrollbar-thumb { + @apply bg-orange-400/90 rounded-lg; + } + + .scrollbar::-webkit-scrollbar-thumb:hover { + @apply bg-orange-400/70; + } +} + +.vertical-timeline-element-icon { + @apply bg-orange-400; +} + +.vertical-timeline::before { + @apply bg-black dark:bg-white !important; +} + @layer base { * { @apply border-border; diff --git a/src/libComponents/Button.tsx b/src/libComponents/Button.tsx index 90d519e..1441f2f 100644 --- a/src/libComponents/Button.tsx +++ b/src/libComponents/Button.tsx @@ -5,7 +5,7 @@ import { cva, VariantProps } from "class-variance-authority"; import { cn } from "../libs/utils"; const buttonVariants = cva( - "inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", + "inline-flex items-center justify-center rounded-md font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", { variants: { variant: { diff --git a/src/pages/AppMarketplace/MultiversxInfographics/index.tsx b/src/pages/AppMarketplace/MultiversxInfographics/index.tsx index 69ea028..53761d5 100644 --- a/src/pages/AppMarketplace/MultiversxInfographics/index.tsx +++ b/src/pages/AppMarketplace/MultiversxInfographics/index.tsx @@ -26,6 +26,7 @@ import "react-pdf/dist/Page/AnnotationLayer.css"; import "react-pdf/dist/Page/TextLayer.css"; import "./MultiversxInfographics.scss"; import { HeaderComponent } from "../../../components/Layout/HeaderComponent"; +import { Button } from "../../../libComponents/Button"; pdfjs.GlobalWorkerOptions.workerSrc = `//unpkg.com/pdfjs-dist@${pdfjs.version}/build/pdf.worker.min.js`; @@ -272,41 +273,38 @@ export const MultiversxInfographics = () => { ) : (

No DataNFT

)} - -
-
- + + +
+ +

MultiversX Infographics

+
+
+
+ +
+
+ {file && ( + + )} +
- -
-

MultiversX Infographics

- {file && ( - - )} -
-
- + {!owned ? (
{ }}>
-

+

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

@@ -336,16 +334,16 @@ export const MultiversxInfographics = () => { <> {viewDataRes && !viewDataRes.error && (
-
- -

+ +

Page {pageNumber || (numPages ? 1 : "--")} of {numPages || "--"}

- +
diff --git a/src/pages/MultiversxBubbles.tsx b/src/pages/MultiversxBubbles.tsx index 8975a42..9fd68bb 100644 --- a/src/pages/MultiversxBubbles.tsx +++ b/src/pages/MultiversxBubbles.tsx @@ -21,6 +21,7 @@ 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"; interface ExtendedViewDataReturnType extends ViewDataReturnType { blobDataType: BlobDataType; @@ -253,44 +254,40 @@ export const MultiversxBubbles = () => {

No DataNFT

)} - -
-
- + +
+ +

MultiversX Bubbles

+
+
+
+ +
+
+ {file && ( + + )} +
- -
-

MultiversX Bubbles

- {file && ( - - )} -
-
- + {!owned ? (
{
(Buy the Data NFT from the marketplace to unlock the data)
) : isFetchingDataMarshal ? ( -
+
-

+

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

@@ -318,7 +311,7 @@ export const MultiversxBubbles = () => { {viewDataRes && !viewDataRes.error && (viewDataRes.blobDataType === BlobDataType.IMAGE ? ( - + ) : viewDataRes.blobDataType === BlobDataType.SVG ? ( // preProcess(code)} style={{ width: "100%", height: "auto" }} /> {
)} - -
-
- + +
+ +

File Viewer

+
+
+
+ +
- -

File Viewer

-
- + {isDomPurified && (
⚠️ Important: For your protection, this content has been automatically filtered locally in your browser for potential common From 2df98dbc026f3b7a7328dc649d3b0d726ad840c5 Mon Sep 17 00:00:00 2001 From: Damian Date: Tue, 12 Sep 2023 11:01:48 +0300 Subject: [PATCH 07/12] update mx libs --- package-lock.json | 2216 +++++++++++++++++++++++---------------------- package.json | 34 +- 2 files changed, 1141 insertions(+), 1109 deletions(-) diff --git a/package-lock.json b/package-lock.json index 442441c..f37b689 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,23 +13,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": "0.1.1", + "@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,15 @@ "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", "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 +55,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 +97,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 +131,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 +215,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 +252,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 +288,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 +313,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 +348,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 +380,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 +453,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 +514,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 +590,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 +710,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 +721,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 +736,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 +756,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 +770,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 +792,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 +809,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 +826,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 +844,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 +1191,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 +1241,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 +1272,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 +1289,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 +1337,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 +1383,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 +1415,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 +1447,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 +1479,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 +1510,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 +1557,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 +1574,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 +1639,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 +1655,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 +1671,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 +1706,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 +1722,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 +1739,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 +1770,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 +1833,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 +1914,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 +2019,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 +2100,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 +2131,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 +2179,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 +2217,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 +2237,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 +2262,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 +2273,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 +2314,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 +2332,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 +2657,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 +2689,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 +2706,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 +2727,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 +2792,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", @@ -2998,6 +2979,49 @@ "nft.storage": "^7.0.3" } }, + "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/@jest/console": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", @@ -3362,49 +3386,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 +3495,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 +3509,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 +3517,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 +3618,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 +3629,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 +3661,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 +3679,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 +3725,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 +3744,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 +3770,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 +3916,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 +3944,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 +4669,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 +5263,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,34 +5378,6 @@ "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", @@ -5481,18 +5445,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 +5502,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 +5538,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 +5554,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 +5581,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 +5602,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 +5650,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 +5665,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 +5698,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 +5764,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 +5947,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 +5972,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 +6079,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": { @@ -6455,23 +6419,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 +6498,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 +6570,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 +6594,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 +6607,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 +6619,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 +6645,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" @@ -6704,17 +6668,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 +6900,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 +7186,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 +7219,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 +7247,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 +7265,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 +7283,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 +7302,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 +7390,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 +7402,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 +7438,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 +7750,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 +7784,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 +8255,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 +8313,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.30001533", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001533.tgz", + "integrity": "sha512-9aY/b05NKU4Yl2sbcJhn4A7MsGwR1EPfW/nrqsnqVA0Oq50wpmPaGI+R1Z0UKlUl96oxUkGEOILWtOHck0eCWw==", "funding": [ { "type": "opencollective", @@ -8430,9 +8400,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 +8423,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 +8556,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 +8874,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 +8885,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 +8898,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 +8971,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 +9286,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": [ { @@ -10419,9 +10382,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 +10521,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 +10609,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.515", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.515.tgz", + "integrity": "sha512-VTq6vjk3kCfG2qdzQRd/i9dIyVVm0dbtZIgFzrLgfB73mXDQT2HPKVRc1EoZcAVUv9XhXAu08DWqJuababdGGg==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -10884,9 +10856,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 +10959,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 +10978,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 +11650,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 +12038,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 +12274,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 +12441,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 +12518,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 +12536,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 +12680,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 +12754,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 +13426,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 +13722,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 +14579,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 +15583,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 +15704,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 +15764,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 +15826,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 +16033,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 +16058,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 +16129,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", @@ -16569,9 +16664,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" }, @@ -16653,9 +16754,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 +16765,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 +16793,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 +16981,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 +17012,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 +17031,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 +17227,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 +17305,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 +17635,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 +18146,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 +18873,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 +19029,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 +19044,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 +19141,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 +19514,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 +19690,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 +19814,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 +19837,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", @@ -20586,13 +20541,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 +20813,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" @@ -21348,6 +21303,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 +21512,18 @@ "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.9", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.9.tgz", + "integrity": "sha512-6i5hL3MqG/K2G43mWXWgP+qizFW/QH/7kCNN13JrJS5q48FN5IKksLDscexKP3dnmB6cdm9jlNgAsWNLpSykmA==", "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", "side-channel": "^1.0.4" }, "funding": { @@ -21475,14 +21531,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 +21548,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 +22036,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 +22104,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 +22194,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 +22245,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 +22428,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 +22610,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 +22619,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 +22656,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 +22826,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 +22852,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 +22919,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 +23286,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 +23420,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 +23524,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 +23856,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 +23887,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 +23927,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 +23947,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..0e632ab 100644 --- a/package.json +++ b/package.json @@ -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": "0.1.1", + "@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,15 @@ "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", "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 +69,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", From 21be17c372eec56dc7862e505e61d2ace2ef6606 Mon Sep 17 00:00:00 2001 From: icegriffinguru Date: Tue, 12 Sep 2023 16:37:27 -0400 Subject: [PATCH 08/12] [Ice] native-auth 1 --- package-lock.json | 66 +++- package.json | 2 +- src/components/AuthRedirectWrapper.tsx | 8 +- src/components/CustomPagination.tsx | 1 + src/components/DataNftCard.tsx | 2 +- src/components/Layout/HeaderComponent.tsx | 1 - src/components/Modal/TwModal.tsx | 4 +- src/components/TrailBlazerModal.tsx | 10 +- src/libComponents/ThemeProvider.tsx | 6 +- src/libs/ui.ts | 2 - src/libs/utils/constant.ts | 2 +- src/libs/utils/core.js | 10 +- src/libs/utils/ui.ts | 2 +- .../MultiversxInfographics/index.tsx | 164 +++----- src/pages/CantinaCorner.tsx | 321 ---------------- src/pages/Dashboard.tsx | 4 +- src/pages/EsdtBubble.tsx | 48 ++- src/pages/GamerPassportGamer.tsx | 60 ++- src/pages/ItheumTrailblazer.tsx | 120 ++---- src/pages/MultiversxBubbles.tsx | 169 +++------ src/pages/MultiversxInfographics.tsx | 177 +++------ src/pages/MyListed.tsx | 4 +- src/pages/MyWallet.tsx | 114 +----- src/pages/PlayStationGamer.tsx | 351 ------------------ src/pages/PlaystationGamerInsights.css | 42 --- src/pages/PlaystationGamerInsights.js | 208 ----------- src/pages/Unlock.tsx | 8 +- src/pages/index.tsx | 2 - src/routes.ts | 16 - 29 files changed, 334 insertions(+), 1590 deletions(-) delete mode 100644 src/pages/CantinaCorner.tsx delete mode 100644 src/pages/PlayStationGamer.tsx delete mode 100644 src/pages/PlaystationGamerInsights.css delete mode 100644 src/pages/PlaystationGamerInsights.js diff --git a/package-lock.json b/package-lock.json index 6171eab..c511867 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@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", + "@itheum/sdk-mx-data-nft": "1.0.0", "@multiversx/sdk-core": "12.6.0", "@multiversx/sdk-dapp": "2.19.2", "@multiversx/sdk-network-providers": "1.5.0", @@ -2989,14 +2989,60 @@ } }, "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/@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": { @@ -6694,6 +6740,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", @@ -16494,6 +16541,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", @@ -16627,6 +16682,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", diff --git a/package.json b/package.json index a441f85..a002591 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "@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", + "@itheum/sdk-mx-data-nft": "1.0.0", "@multiversx/sdk-core": "12.6.0", "@multiversx/sdk-dapp": "2.19.2", "@multiversx/sdk-network-providers": "1.5.0", diff --git a/src/components/AuthRedirectWrapper.tsx b/src/components/AuthRedirectWrapper.tsx index 970cb10..abd5473 100644 --- a/src/components/AuthRedirectWrapper.tsx +++ b/src/components/AuthRedirectWrapper.tsx @@ -1,10 +1,10 @@ import React, { PropsWithChildren } from "react"; -import { Navigate } from "react-router-dom"; -import { useGetIsLoggedIn } from "hooks"; -import { routeNames } from "routes"; +// import { Navigate } from "react-router-dom"; +// import { useGetIsLoggedIn } from "hooks"; +// import { routeNames } from "routes"; export const AuthRedirectWrapper = ({ children }: PropsWithChildren) => { - const isLoggedIn = useGetIsLoggedIn(); + // const isLoggedIn = useGetIsLoggedIn(); // if (isLoggedIn) { // return ; 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/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..033cde7 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,14 +48,11 @@ 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); const [pageNumber, setPageNumber] = useState(1); //setting 1 to show first page - + useEffect(() => { if (!hasPendingTransactions) { fetchDataNfts(); @@ -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,56 @@ 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}`, + }, + }; + console.log('arg', arg); + + res = await dataNft.viewDataViaMVXNativeAuth(arg); + console.log('res', res); + + 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); @@ -198,45 +177,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); @@ -326,7 +266,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..38730d0 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,31 @@ 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}`, + }, + }; + 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('res', res); processData(res.data); - - setIsFetchingDataMarshal(false); } else { openModal(); } @@ -373,7 +367,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/GamerPassportGamer.tsx b/src/pages/GamerPassportGamer.tsx index 6a047d0..d51b9de 100644 --- a/src/pages/GamerPassportGamer.tsx +++ b/src/pages/GamerPassportGamer.tsx @@ -1,35 +1,27 @@ 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 { DataNft } from "@itheum/sdk-mx-data-nft"; +import { useGetLoginInfo } from "@multiversx/sdk-dapp/hooks"; +import { ModalBody } 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 { DataNftCard, Loader } from "components"; +import { GAMER_PASSPORT_GAMER_NONCES } from "config"; +import { useGetAccount, useGetPendingTransactions } from "hooks"; +import { modalStyles } from "libs/ui"; 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 { tokenLogin } = useGetLoginInfo(); 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); @@ -48,7 +40,7 @@ export const GamerPassportGamer = () => { async function fetchAppNfts() { setIsLoading(true); - const _nfts: DataNft[] = await DataNft.createManyFromApi(GAMER_PASSPORT_GAMER_NONCES); + const _nfts: DataNft[] = await DataNft.createManyFromApi(GAMER_PASSPORT_GAMER_NONCES.map(v => ({ nonce: v }))); console.log("ccDataNfts", _nfts); setCcDataNfts(_nfts); @@ -56,8 +48,6 @@ export const GamerPassportGamer = () => { } async function fetchMyNfts() { - setIsNftLoading(true); - const _dataNfts = await DataNft.ownedByAddress(address); const _flags = []; @@ -67,8 +57,6 @@ export const GamerPassportGamer = () => { } console.log("_flags", _flags); setFlags(_flags); - - setIsNftLoading(false); } useEffect(() => { @@ -94,31 +82,31 @@ export const GamerPassportGamer = () => { 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; + 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}`, + }, + }; + 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)); + console.log('res', res); fixData(res.data); - setData(res.data); - console.log(res.data); - setIsFetchingDataMarshal(false); } else { openModal(); @@ -306,7 +294,7 @@ export const GamerPassportGamer = () => {

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

diff --git a/src/pages/ItheumTrailblazer.tsx b/src/pages/ItheumTrailblazer.tsx index 72ad967..103f7ee 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,24 +78,24 @@ 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}`, + }, + }; + 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('res', res); setData(res.data.data.reverse()); setIsFetchingDataMarshal(false); @@ -168,24 +110,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 ; } @@ -206,7 +130,13 @@ export const ItheumTrailblazer = () => {

No Data NFTs

)} - + ); }; diff --git a/src/pages/MultiversxBubbles.tsx b/src/pages/MultiversxBubbles.tsx index 9fd68bb..56b84e6 100644 --- a/src/pages/MultiversxBubbles.tsx +++ b/src/pages/MultiversxBubbles.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 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, ZoomableSvg } from "components"; import { MULTIVERSX_BUBBLE_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"; 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,50 @@ 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, + }; + console.log('arg', arg); + + res = await dataNft.viewDataViaMVXNativeAuth(arg); + console.log('res', res); + + 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 +148,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%"'); @@ -302,7 +225,7 @@ export const MultiversxBubbles = () => {

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

diff --git a/src/pages/MultiversxInfographics.tsx b/src/pages/MultiversxInfographics.tsx index c1c18af..214a5c2 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,56 @@ 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}`, + }, + }; + console.log('arg', arg); + + res = await dataNft.viewDataViaMVXNativeAuth(arg); + console.log('res', res); + + 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 +153,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%"'); @@ -302,7 +225,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..ff55a2f 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,8 @@ 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); @@ -83,28 +72,21 @@ 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}`, + }, + }; + console.log('arg', arg); - 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 +125,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 ; } @@ -279,7 +205,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 deleted file mode 100644 index df35b1b..0000000 --- a/src/pages/PlayStationGamer.tsx +++ /dev/null @@ -1,351 +0,0 @@ -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"; -import Modal from "react-modal"; -import { DataNftCard, Loader } from "components"; -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"; - -export const PlayStationGamer = () => { - 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 [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(PLAYSTATION_GAMER_PASSPORT_NONCES); - console.log("ccDataNfts", _nfts); - setCcDataNfts(_nfts); - - setIsLoading(false); - } - - async function fetchMyNfts() { - 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); - } - - 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); - const res = await dataNft.viewData(messageToBeSigned, signedMessage as any); - if (!signedMessage) { - toastError("Wallet signing failed."); - return; - } - 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) => { - console.log("rawData", rawData); - - const titleAndTrophies = rawData.trophy_titles.reduce((total: any, item: any) => { - if (!total[item.name]) { - total[item.name] = {}; - } - - total[item.name].trophies = { - ...item, - }; - - return total; - }, {}); - - rawData.title_stats.forEach((title: any) => { - if (!titleAndTrophies[title.name]) { - titleAndTrophies[title.name] = { - trophies: null, - }; - } - - titleAndTrophies[title.name].title = { ...title }; - }); - - console.log("titleAndTrophies"); - console.log(titleAndTrophies); - - console.log(Object.keys(titleAndTrophies)); - - setActiveGamerData({ - account_devices: rawData.account_devices, - profile_legacy: rawData.profile_legacy, - title_stats: rawData.title_stats, - trophy_summary: rawData.trophy_summary, - trophy_titles: rawData.trophy_titles, - titleAndTrophies, - }); - - // 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 ( - - {ccDataNfts.length > 0 ? ( - ccDataNfts.map((dataNft, index) => ( - - )) - ) : ( -

No Data NFTs

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

PlayStation 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/PlaystationGamerInsights.css b/src/pages/PlaystationGamerInsights.css deleted file mode 100644 index 07c2a9a..0000000 --- a/src/pages/PlaystationGamerInsights.css +++ /dev/null @@ -1,42 +0,0 @@ -.titles { - display: flex; - flex-wrap: wrap; - gap: 10px; -} - -.title-row { - border: solid 1px; - padding: 5px; - width: 200px; -} - -.title-row img { - width: 150px; -} - -.title-row h3 { - min-height: 65px; -} - -.title-item { -} - -.section-container { - margin-top: 20px; -} - -.trophies { - display: flex; - gap: 2px; -} - -.trophy { - border: solid 1px; - padding: 2px; - width: 100px; - text-align: center; -} - -.title-trophies { - margin-top: 10px; -} diff --git a/src/pages/PlaystationGamerInsights.js b/src/pages/PlaystationGamerInsights.js deleted file mode 100644 index 850b645..0000000 --- a/src/pages/PlaystationGamerInsights.js +++ /dev/null @@ -1,208 +0,0 @@ -import React, { useEffect, useState } from "react"; -import "./PlaystationGamerInsights.css"; - -const tileImageMap = { - "Cult of the Lamb": - "https://image.api.playstation.com/vulcan/ap/rnd/202303/0118/aad08988426ab337e52d795048a35821930cded408a54506.png", - "Little Nightmares II": - "https://image.api.playstation.com/vulcan/ap/rnd/202010/0108/uxdypYdPjRXXKfSc1CxiLClp.png?w=440&thumb=false", - - "Bloodborne™": - "https://image.api.playstation.com/vulcan/img/rnd/202011/2320/E3hXKQ8iL9BJtAT8gR9nmIMF.png?w=440&thumb=false", - "Detroit: Become Human™": - "https://image.api.playstation.com/vulcan/img/rnd/202010/2119/wl4DB5QGzlEHAXy1KLUVgOAu.png?w=440&thumb=false", - "STAR WARS Jedi: Fallen Order™": - "https://image.api.playstation.com/vulcan/img/rnd/202105/1714/WHeOu95nW2SZQy6H5IKgE2Bg.png?w=440&thumb=false", - "It Takes Two PS4™ & PS5™": - "https://image.api.playstation.com/vulcan/ap/rnd/202012/0815/7CRynuLSAb0vysSC4TmZy5e4.png?w=440&thumb=false", - "Lara Croft and the Temple of Osiris": - "https://image.api.playstation.com/cdn/EP0082/CUSA00806_00/nnjRpnMH63WwolTeln9pmdAmgyuj73bq.png?w=440&thumb=false", - "Middle-earth™: Shadow of Mordor™": - "https://image.api.playstation.com/cdn/EP1018/CUSA00053_00/aPFMbLkBLH4r9X13e2H7QwdL0l6BGoTu.png?w=440&thumb=false", - - "EA SPORTS™ FIFA 23": - "https://image.api.playstation.com/vulcan/ap/rnd/202301/0312/yM0eeJui8AFByeP5BC5XV5j9.png?w=440&thumb=false", - "God of War Ragnarök": - "https://image.api.playstation.com/vulcan/ap/rnd/202207/1210/4xJ8XB3bi888QTLZYdl7Oi0s.png?w=440&thumb=false", - Stray: - "https://image.api.playstation.com/vulcan/ap/rnd/202206/0300/E2vZwVaDJbhLZpJo7Q10IyYo.png?w=440&thumb=false", - "Shadow of the Tomb Raider": "", - "LEGO® Harry Potter™ Collection": "", - "Rocket League®": "", - "Rise of the Tomb Raider": "", - "Tomb Raider: Definitive Edition": "", - "Overcooked! All You Can Eat": "", - "NARUTO SHIPPUDEN: Ultimate Ninja STORM TRILOGY": "", - "Little Nightmares": "", - "inFAMOUS™ Second Son": "", -}; - -function PlaystationGamerInsights({ gamerId, gamerData }) { - return ( - <> -
- {/*
Gamer: {gamerId}
*/} - -
-

Gamer's Playstation Platform:

-
-
- Gamer's Device: {gamerData.account_devices[0].device_type}{" "} - {gamerData.account_devices[0].activation_type} -
-
- Activated On: {gamerData.account_devices[0].activation_date} -
-
Languages: {gamerData.profile_legacy.languages_used[0]}
-
Playstation Plus? : YES
-
-
- -
-

Gamer's Trophy Summary:

-
- {Object.keys(gamerData.trophy_summary).map((key, idx) => ( -
- {key} : {gamerData.trophy_summary[key]} -
- ))} -
-
- -
-

Gamer's Titles:

-
- {gamerData.title_stats.map((item, idx) => ( -
-

{item.name}

- -
Category: {item.category}
-
- First Played: {item.first_time_played} -
-
- Last Played: {item.last_time_played} -
-
- Played : {item.play_count} times -
-
Play Time :{item.play_time}
- -
-

Achievements:

- {(gamerData?.titleAndTrophies[item.name]?.trophies && ( -
-
- total_items_count:{" "} - { - gamerData.titleAndTrophies[item.name].trophies - .total_items_count - } -
-
- service:{" "} - {gamerData.titleAndTrophies[item.name].trophies.service} -
-
- id: {gamerData.titleAndTrophies[item.name].trophies.id} -
-
- detail:{" "} - {gamerData.titleAndTrophies[item.name].trophies.detail} -
-
- progress:{" "} - { - gamerData.titleAndTrophies[item.name].trophies - .progress - } -
-
- earned_bronze:{" "} - { - gamerData.titleAndTrophies[item.name].trophies - .earned_bronze - } -
-
- earned_silver:{" "} - { - gamerData.titleAndTrophies[item.name].trophies - .earned_silver - } -
-
- earned_gold:{" "} - { - gamerData.titleAndTrophies[item.name].trophies - .earned_gold - } -
-
- earned_platinum:{" "} - { - gamerData.titleAndTrophies[item.name].trophies - .earned_platinum - } -
-
- defined_bronze:{" "} - { - gamerData.titleAndTrophies[item.name].trophies - .defined_bronze - } -
-
- defined_silver:{" "} - { - gamerData.titleAndTrophies[item.name].trophies - .defined_silver - } -
-
- defined_gold:{" "} - { - gamerData.titleAndTrophies[item.name].trophies - .defined_gold - } -
-
- defined_platinum:{" "} - { - gamerData.titleAndTrophies[item.name].trophies - .defined_platinum - } -
-
- date_of_last_trophy:{" "} - { - gamerData.titleAndTrophies[item.name].trophies - .date_of_last_trophy - } -
-
- title_id:{" "} - { - gamerData.titleAndTrophies[item.name].trophies - .title_id - } -
-
- )) || - "None"} -
-
- ))} -
-
-
- - ); -} - -export default PlaystationGamerInsights; diff --git a/src/pages/Unlock.tsx b/src/pages/Unlock.tsx index a0f602b..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..5413379 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,6 +1,4 @@ -export * from "./CantinaCorner"; export * from "./GamerPassportGamer"; -export * from "./PlayStationGamer"; export * from "./Dashboard"; export * from "./EsdtBubble"; export * from "./MultiversxBubbles"; diff --git a/src/routes.ts b/src/routes.ts index 336a5a1..b1c0263 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,7 +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", @@ -58,24 +54,12 @@ 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", - component: PlayStationGamer, - authenticatedRoute: false, - }, { path: routeNames.itheumtrailblazer, title: "TrailBlazer", From 6cd4f9943f392ab4e4e3bd74fef37208a392a652 Mon Sep 17 00:00:00 2001 From: icegriffinguru Date: Tue, 12 Sep 2023 16:46:41 -0400 Subject: [PATCH 09/12] native-auth 2 --- src/pages/GamerPassportGamer.tsx | 317 ---------------------- src/pages/PlayStationGamer.tsx | 347 +++++++++++++++++++++++++ src/pages/PlaystationGamerInsights.css | 42 +++ src/pages/PlaystationGamerInsights.js | 208 +++++++++++++++ src/pages/index.tsx | 2 +- src/routes.ts | 9 +- 6 files changed, 602 insertions(+), 323 deletions(-) delete mode 100644 src/pages/GamerPassportGamer.tsx create mode 100644 src/pages/PlayStationGamer.tsx create mode 100644 src/pages/PlaystationGamerInsights.css create mode 100644 src/pages/PlaystationGamerInsights.js diff --git a/src/pages/GamerPassportGamer.tsx b/src/pages/GamerPassportGamer.tsx deleted file mode 100644 index d51b9de..0000000 --- a/src/pages/GamerPassportGamer.tsx +++ /dev/null @@ -1,317 +0,0 @@ -import React, { useEffect, useState } from "react"; -import { DataNft } from "@itheum/sdk-mx-data-nft"; -import { useGetLoginInfo } from "@multiversx/sdk-dapp/hooks"; -import { ModalBody } from "react-bootstrap"; -import ModalHeader from "react-bootstrap/esm/ModalHeader"; -import { IoClose } from "react-icons/io5"; -import Modal from "react-modal"; -import { DataNftCard, Loader } from "components"; -import { GAMER_PASSPORT_GAMER_NONCES } from "config"; -import { useGetAccount, useGetPendingTransactions } from "hooks"; -import { modalStyles } from "libs/ui"; -import { toastError } from "libs/utils"; -import { onChainDataInsights_LIB, thirdPartyDataInsights_LIB } from "libs/utils/core"; -import GamerInsights from "./GamerInsights"; - -export const GamerPassportGamer = () => { - const { address } = useGetAccount(); - const { hasPendingTransactions } = useGetPendingTransactions(); - const { tokenLogin } = useGetLoginInfo(); - - const [ccDataNfts, setCcDataNfts] = useState([]); - const [flags, setFlags] = useState([]); - const [isLoading, setIsLoading] = useState(true); - - 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.map(v => ({ nonce: v }))); - console.log("ccDataNfts", _nfts); - setCcDataNfts(_nfts); - - setIsLoading(false); - } - - async function fetchMyNfts() { - 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); - } - - 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); - openModal(); - - const dataNft = ccDataNfts[index]; - 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('res', res); - - fixData(res.data); - setData(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 ? ( -
-
- -

- {"Loading..."} -

-
-
- ) : ( -
- -
- )} -
-
-
- ); -}; diff --git a/src/pages/PlayStationGamer.tsx b/src/pages/PlayStationGamer.tsx new file mode 100644 index 0000000..f840c25 --- /dev/null +++ b/src/pages/PlayStationGamer.tsx @@ -0,0 +1,347 @@ +import React, { useEffect, useState } from "react"; +import { DataNft } from "@itheum/sdk-mx-data-nft"; +import { useGetLoginInfo } from "@multiversx/sdk-dapp/hooks"; +import { ModalBody } from "react-bootstrap"; +import ModalHeader from "react-bootstrap/esm/ModalHeader"; +import { IoClose } from "react-icons/io5"; +import Modal from "react-modal"; +import { DataNftCard, Loader } from "components"; +import { PLAYSTATION_GAMER_PASSPORT_NONCES } from "config"; +import { useGetAccount, useGetPendingTransactions } from "hooks"; +import { modalStyles } from "libs/ui"; +import { toastError } from "libs/utils"; +import { HeaderComponent } from "../components/Layout/HeaderComponent"; +import PlaystationGamerInsights from "./PlaystationGamerInsights"; + +export const PlayStationGamer = () => { + const { address } = useGetAccount(); + const { hasPendingTransactions } = useGetPendingTransactions(); + const { tokenLogin } = useGetLoginInfo(); + + const [ccDataNfts, setCcDataNfts] = useState([]); + const [flags, setFlags] = useState([]); + const [isLoading, setIsLoading] = useState(true); + + 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(PLAYSTATION_GAMER_PASSPORT_NONCES.map((nonce) => ({ nonce }))); + console.log("ccDataNfts", _nfts); + setCcDataNfts(_nfts); + + setIsLoading(false); + } + + async function fetchMyNfts() { + 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); + } + + 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); + openModal(); + + const dataNft = ccDataNfts[index]; + 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); + + fixData(res.data); + setData(res.data); + + setIsFetchingDataMarshal(false); + } else { + openModal(); + } + } + + const fixData = (rawData: any) => { + console.log("rawData", rawData); + + const titleAndTrophies = rawData.trophy_titles.reduce((total: any, item: any) => { + if (!total[item.name]) { + total[item.name] = {}; + } + + total[item.name].trophies = { + ...item, + }; + + return total; + }, {}); + + rawData.title_stats.forEach((title: any) => { + if (!titleAndTrophies[title.name]) { + titleAndTrophies[title.name] = { + trophies: null, + }; + } + + titleAndTrophies[title.name].title = { ...title }; + }); + + console.log("titleAndTrophies"); + console.log(titleAndTrophies); + + console.log(Object.keys(titleAndTrophies)); + + setActiveGamerData({ + account_devices: rawData.account_devices, + profile_legacy: rawData.profile_legacy, + title_stats: rawData.title_stats, + trophy_summary: rawData.trophy_summary, + trophy_titles: rawData.trophy_titles, + titleAndTrophies, + }); + + // 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 ( + + {ccDataNfts.length > 0 ? ( + ccDataNfts.map((dataNft, index) => ( + + )) + ) : ( +

No Data NFTs

+ )} + + +
+
+ +
+
+ +

PlayStation Gamer Passport

+
+ + {!owned ? ( +
+

You do not own this Data NFT

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

+ {"Loading..."} +

+
+
+ ) : ( +
+ +
+ )} +
+
+
+ ); +}; diff --git a/src/pages/PlaystationGamerInsights.css b/src/pages/PlaystationGamerInsights.css new file mode 100644 index 0000000..07c2a9a --- /dev/null +++ b/src/pages/PlaystationGamerInsights.css @@ -0,0 +1,42 @@ +.titles { + display: flex; + flex-wrap: wrap; + gap: 10px; +} + +.title-row { + border: solid 1px; + padding: 5px; + width: 200px; +} + +.title-row img { + width: 150px; +} + +.title-row h3 { + min-height: 65px; +} + +.title-item { +} + +.section-container { + margin-top: 20px; +} + +.trophies { + display: flex; + gap: 2px; +} + +.trophy { + border: solid 1px; + padding: 2px; + width: 100px; + text-align: center; +} + +.title-trophies { + margin-top: 10px; +} diff --git a/src/pages/PlaystationGamerInsights.js b/src/pages/PlaystationGamerInsights.js new file mode 100644 index 0000000..a6f76c0 --- /dev/null +++ b/src/pages/PlaystationGamerInsights.js @@ -0,0 +1,208 @@ +import React from "react"; +import "./PlaystationGamerInsights.css"; + +const tileImageMap = { + "Cult of the Lamb": + "https://image.api.playstation.com/vulcan/ap/rnd/202303/0118/aad08988426ab337e52d795048a35821930cded408a54506.png", + "Little Nightmares II": + "https://image.api.playstation.com/vulcan/ap/rnd/202010/0108/uxdypYdPjRXXKfSc1CxiLClp.png?w=440&thumb=false", + + "Bloodborne™": + "https://image.api.playstation.com/vulcan/img/rnd/202011/2320/E3hXKQ8iL9BJtAT8gR9nmIMF.png?w=440&thumb=false", + "Detroit: Become Human™": + "https://image.api.playstation.com/vulcan/img/rnd/202010/2119/wl4DB5QGzlEHAXy1KLUVgOAu.png?w=440&thumb=false", + "STAR WARS Jedi: Fallen Order™": + "https://image.api.playstation.com/vulcan/img/rnd/202105/1714/WHeOu95nW2SZQy6H5IKgE2Bg.png?w=440&thumb=false", + "It Takes Two PS4™ & PS5™": + "https://image.api.playstation.com/vulcan/ap/rnd/202012/0815/7CRynuLSAb0vysSC4TmZy5e4.png?w=440&thumb=false", + "Lara Croft and the Temple of Osiris": + "https://image.api.playstation.com/cdn/EP0082/CUSA00806_00/nnjRpnMH63WwolTeln9pmdAmgyuj73bq.png?w=440&thumb=false", + "Middle-earth™: Shadow of Mordor™": + "https://image.api.playstation.com/cdn/EP1018/CUSA00053_00/aPFMbLkBLH4r9X13e2H7QwdL0l6BGoTu.png?w=440&thumb=false", + + "EA SPORTS™ FIFA 23": + "https://image.api.playstation.com/vulcan/ap/rnd/202301/0312/yM0eeJui8AFByeP5BC5XV5j9.png?w=440&thumb=false", + "God of War Ragnarök": + "https://image.api.playstation.com/vulcan/ap/rnd/202207/1210/4xJ8XB3bi888QTLZYdl7Oi0s.png?w=440&thumb=false", + Stray: + "https://image.api.playstation.com/vulcan/ap/rnd/202206/0300/E2vZwVaDJbhLZpJo7Q10IyYo.png?w=440&thumb=false", + "Shadow of the Tomb Raider": "", + "LEGO® Harry Potter™ Collection": "", + "Rocket League®": "", + "Rise of the Tomb Raider": "", + "Tomb Raider: Definitive Edition": "", + "Overcooked! All You Can Eat": "", + "NARUTO SHIPPUDEN: Ultimate Ninja STORM TRILOGY": "", + "Little Nightmares": "", + "inFAMOUS™ Second Son": "", +}; + +function PlaystationGamerInsights({ gamerId, gamerData }) { + return ( + <> +
+ {/*
Gamer: {gamerId}
*/} + +
+

Gamer's Playstation Platform:

+
+
+ Gamer's Device: {gamerData.account_devices[0].device_type}{" "} + {gamerData.account_devices[0].activation_type} +
+
+ Activated On: {gamerData.account_devices[0].activation_date} +
+
Languages: {gamerData.profile_legacy.languages_used[0]}
+
Playstation Plus? : YES
+
+
+ +
+

Gamer's Trophy Summary:

+
+ {Object.keys(gamerData.trophy_summary).map((key, idx) => ( +
+ {key} : {gamerData.trophy_summary[key]} +
+ ))} +
+
+ +
+

Gamer's Titles:

+
+ {gamerData.title_stats.map((item, idx) => ( +
+

{item.name}

+ +
Category: {item.category}
+
+ First Played: {item.first_time_played} +
+
+ Last Played: {item.last_time_played} +
+
+ Played : {item.play_count} times +
+
Play Time :{item.play_time}
+ +
+

Achievements:

+ {(gamerData?.titleAndTrophies[item.name]?.trophies && ( +
+
+ total_items_count:{" "} + { + gamerData.titleAndTrophies[item.name].trophies + .total_items_count + } +
+
+ service:{" "} + {gamerData.titleAndTrophies[item.name].trophies.service} +
+
+ id: {gamerData.titleAndTrophies[item.name].trophies.id} +
+
+ detail:{" "} + {gamerData.titleAndTrophies[item.name].trophies.detail} +
+
+ progress:{" "} + { + gamerData.titleAndTrophies[item.name].trophies + .progress + } +
+
+ earned_bronze:{" "} + { + gamerData.titleAndTrophies[item.name].trophies + .earned_bronze + } +
+
+ earned_silver:{" "} + { + gamerData.titleAndTrophies[item.name].trophies + .earned_silver + } +
+
+ earned_gold:{" "} + { + gamerData.titleAndTrophies[item.name].trophies + .earned_gold + } +
+
+ earned_platinum:{" "} + { + gamerData.titleAndTrophies[item.name].trophies + .earned_platinum + } +
+
+ defined_bronze:{" "} + { + gamerData.titleAndTrophies[item.name].trophies + .defined_bronze + } +
+
+ defined_silver:{" "} + { + gamerData.titleAndTrophies[item.name].trophies + .defined_silver + } +
+
+ defined_gold:{" "} + { + gamerData.titleAndTrophies[item.name].trophies + .defined_gold + } +
+
+ defined_platinum:{" "} + { + gamerData.titleAndTrophies[item.name].trophies + .defined_platinum + } +
+
+ date_of_last_trophy:{" "} + { + gamerData.titleAndTrophies[item.name].trophies + .date_of_last_trophy + } +
+
+ title_id:{" "} + { + gamerData.titleAndTrophies[item.name].trophies + .title_id + } +
+
+ )) || + "None"} +
+
+ ))} +
+
+
+ + ); +} + +export default PlaystationGamerInsights; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 5413379..5cd35f5 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,4 +1,4 @@ -export * from "./GamerPassportGamer"; +export * from "./PlayStationGamer"; export * from "./Dashboard"; export * from "./EsdtBubble"; export * from "./MultiversxBubbles"; diff --git a/src/routes.ts b/src/routes.ts index b1c0263..06e37b9 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -3,7 +3,7 @@ import { RouteType } from "libs/types"; import { ItheumTrailblazer } from "pages/ItheumTrailblazer"; import { withPageTitle } from "./components/PageTitle"; import { - GamerPassportGamer, + PlayStationGamer, Home, MyListed, MyWallet, @@ -18,7 +18,6 @@ export const routeNames = { unlock: "/unlock", mylisted: "/my-listed", mywallet: "/my-wallet", - gamerpassportgamer: "/gamer-passport-gamer-poc", playstationgamerpassport: "/gamer-passport", itheumtrailblazer: "/project-trailblazer", esdtBubble: "/esdt-bubbles", @@ -55,9 +54,9 @@ export const routes: RouteWithTitleType[] = [ authenticatedRoute: true, }, { - path: routeNames.gamerpassportgamer, - title: "Web3 Gamer Passport", - component: GamerPassportGamer, + path: routeNames.playstationgamerpassport, + title: "PlayStation Gamer Passport", + component: PlayStationGamer, authenticatedRoute: false, }, { From f1d262877bc0f2c5eb3f9f0db97c6da4cde6225a Mon Sep 17 00:00:00 2001 From: Damian Date: Fri, 15 Sep 2023 00:39:10 +0300 Subject: [PATCH 10/12] solved redirect after connect: --- src/components/AuthRedirectWrapper.tsx | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/components/AuthRedirectWrapper.tsx b/src/components/AuthRedirectWrapper.tsx index abd5473..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 { useGetIsLoggedIn } from "hooks"; -// import { routeNames } from "routes"; +import { useNavigate } from "react-router-dom"; +import { useGetIsLoggedIn } from "hooks"; +import { routeNames } from "routes"; export const AuthRedirectWrapper = ({ children }: PropsWithChildren) => { - // const isLoggedIn = useGetIsLoggedIn(); + const isLoggedIn = useGetIsLoggedIn(); + const navigate = useNavigate(); - // if (isLoggedIn) { - // return ; - // } + if (isLoggedIn) { + navigate(routeNames.dashboard); + } return <>{children}; }; From c354668ddb20ccc0e11986ab4c3a61c3b9dde8e7 Mon Sep 17 00:00:00 2001 From: Mark Paul Date: Fri, 15 Sep 2023 13:30:14 +1000 Subject: [PATCH 11/12] v1.5.0 version bump and code cleanup --- package-lock.json | 4 +-- package.json | 2 +- .../MultiversxInfographics/index.tsx | 10 ++---- src/pages/EsdtBubble.tsx | 10 ++---- src/pages/GamerInsights.js | 34 ++++--------------- src/pages/ItheumTrailblazer.tsx | 12 ++----- src/pages/MultiversxBubbles.tsx | 15 +++----- src/pages/MultiversxInfographics.tsx | 8 ++--- src/pages/MyWallet.tsx | 18 ++++------ 9 files changed, 31 insertions(+), 82 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5d48f5f..5bc6fc9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "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", diff --git a/package.json b/package.json index 4203e43..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": { diff --git a/src/pages/AppMarketplace/MultiversxInfographics/index.tsx b/src/pages/AppMarketplace/MultiversxInfographics/index.tsx index 033cde7..e2525be 100644 --- a/src/pages/AppMarketplace/MultiversxInfographics/index.tsx +++ b/src/pages/AppMarketplace/MultiversxInfographics/index.tsx @@ -52,7 +52,7 @@ export const MultiversxInfographics = () => { const [file, setFile] = useState(null); const [numPages, setNumPages] = useState(0); const [pageNumber, setPageNumber] = useState(1); //setting 1 to show first page - + useEffect(() => { if (!hasPendingTransactions) { fetchDataNfts(); @@ -80,7 +80,7 @@ export const MultiversxInfographics = () => { async function fetchDataNfts() { setIsLoading(true); - const _nfts: DataNft[] = await DataNft.createManyFromApi(MULTIVERSX_INFOGRAPHICS_NONCES.map(v => ({ nonce: v }))); + const _nfts: DataNft[] = await DataNft.createManyFromApi(MULTIVERSX_INFOGRAPHICS_NONCES.map((v) => ({ nonce: v }))); setDataNfts(_nfts); setIsLoading(false); @@ -125,10 +125,8 @@ export const MultiversxInfographics = () => { "authorization": `Bearer ${tokenLogin.nativeAuthToken}`, }, }; - console.log('arg', arg); res = await dataNft.viewDataViaMVXNativeAuth(arg); - console.log('res', res); let blobDataType = BlobDataType.TEXT; @@ -265,9 +263,7 @@ export const MultiversxInfographics = () => { }}>
-

- {"Loading..."} -

+

{"Loading..."}

) : ( diff --git a/src/pages/EsdtBubble.tsx b/src/pages/EsdtBubble.tsx index 38730d0..e462ca5 100644 --- a/src/pages/EsdtBubble.tsx +++ b/src/pages/EsdtBubble.tsx @@ -184,7 +184,7 @@ export const EsdtBubble = () => { async function fetchDataNfts() { setIsLoading(true); - const _nfts: DataNft[] = await DataNft.createManyFromApi(ESDT_BUBBLE_NONCES.map(v => ({ nonce: v }))); + const _nfts: DataNft[] = await DataNft.createManyFromApi(ESDT_BUBBLE_NONCES.map((v) => ({ nonce: v }))); setDataNfts(_nfts); setIsLoading(false); @@ -227,7 +227,7 @@ export const EsdtBubble = () => { const dataNft = dataNfts[index]; setSelectedDataNft(dataNft); - + let res: any; if (!(tokenLogin && tokenLogin.nativeAuthToken)) { throw Error("No nativeAuth token"); @@ -240,12 +240,10 @@ export const EsdtBubble = () => { "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('res', res); processData(res.data); } else { @@ -375,9 +373,7 @@ export const EsdtBubble = () => { }}>
-

- {"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/ItheumTrailblazer.tsx b/src/pages/ItheumTrailblazer.tsx index 103f7ee..e87c716 100644 --- a/src/pages/ItheumTrailblazer.tsx +++ b/src/pages/ItheumTrailblazer.tsx @@ -45,7 +45,7 @@ export const ItheumTrailblazer = () => { async function fetchAppNfts() { setIsLoading(true); - const _nfts: DataNft[] = await DataNft.createManyFromApi(TRAILBLAZER_NONCES.map(v => ({ nonce: v }))); + const _nfts: DataNft[] = await DataNft.createManyFromApi(TRAILBLAZER_NONCES.map((v) => ({ nonce: v }))); setItDataNfts(_nfts); setIsLoading(false); @@ -90,12 +90,10 @@ export const ItheumTrailblazer = () => { "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('res', res); setData(res.data.data.reverse()); setIsFetchingDataMarshal(false); @@ -130,13 +128,7 @@ export const ItheumTrailblazer = () => {

No Data NFTs

)} - + ); }; diff --git a/src/pages/MultiversxBubbles.tsx b/src/pages/MultiversxBubbles.tsx index 56b84e6..0044886 100644 --- a/src/pages/MultiversxBubbles.tsx +++ b/src/pages/MultiversxBubbles.tsx @@ -59,7 +59,7 @@ export const MultiversxBubbles = () => { async function fetchDataNfts() { setIsLoading(true); - const _nfts: DataNft[] = await DataNft.createManyFromApi(MULTIVERSX_BUBBLE_NONCES.map(v => ({ nonce: v }))); + const _nfts: DataNft[] = await DataNft.createManyFromApi(MULTIVERSX_BUBBLE_NONCES.map((v) => ({ nonce: v }))); setDataNfts(_nfts); setIsLoading(false); @@ -92,7 +92,7 @@ export const MultiversxBubbles = () => { openModal(); const dataNft = dataNfts[index]; - + let res: any; if (!(tokenLogin && tokenLogin.nativeAuthToken)) { throw Error("No nativeAuth token"); @@ -106,10 +106,8 @@ export const MultiversxBubbles = () => { }, stream: true, }; - console.log('arg', arg); res = await dataNft.viewDataViaMVXNativeAuth(arg); - console.log('res', res); let blobDataType = BlobDataType.TEXT; if (!res.error) { @@ -224,9 +222,7 @@ export const MultiversxBubbles = () => {
-

- {"Loading..."} -

+

{"Loading..."}

) : ( @@ -237,10 +233,7 @@ export const MultiversxBubbles = () => { ) : viewDataRes.blobDataType === BlobDataType.SVG ? ( // preProcess(code)} style={{ width: "100%", height: "auto" }} /> - + ) : (

{viewDataRes.data} diff --git a/src/pages/MultiversxInfographics.tsx b/src/pages/MultiversxInfographics.tsx index 214a5c2..baf9c08 100644 --- a/src/pages/MultiversxInfographics.tsx +++ b/src/pages/MultiversxInfographics.tsx @@ -56,7 +56,7 @@ export const MultiversxInfographics = () => { async function fetchDataNfts() { setIsLoading(true); - const _nfts: DataNft[] = await DataNft.createManyFromApi(MULTIVERSX_INFOGRAPHICS_NONCES.map(v => ({ nonce: v }))); + const _nfts: DataNft[] = await DataNft.createManyFromApi(MULTIVERSX_INFOGRAPHICS_NONCES.map((v) => ({ nonce: v }))); setDataNfts(_nfts); setIsLoading(false); @@ -101,10 +101,8 @@ export const MultiversxInfographics = () => { "authorization": `Bearer ${tokenLogin.nativeAuthToken}`, }, }; - console.log('arg', arg); res = await dataNft.viewDataViaMVXNativeAuth(arg); - console.log('res', res); let blobDataType = BlobDataType.TEXT; @@ -224,9 +222,7 @@ export const MultiversxInfographics = () => { }}>

-

- {"Loading..."} -

+

{"Loading..."}

) : ( diff --git a/src/pages/MyWallet.tsx b/src/pages/MyWallet.tsx index ff55a2f..eefb833 100644 --- a/src/pages/MyWallet.tsx +++ b/src/pages/MyWallet.tsx @@ -24,7 +24,6 @@ export const MyWallet = () => { const { address } = useGetAccount(); const { hasPendingTransactions } = useGetPendingTransactions(); const { tokenLogin } = useGetLoginInfo(); - const [dataNftCount, setDataNftCount] = useState(0); const [dataNfts, setDataNfts] = useState([]); const [isLoading, setIsLoading] = useState(true); @@ -34,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); } @@ -55,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"); @@ -84,7 +83,6 @@ export const MyWallet = () => { "authorization": `Bearer ${tokenLogin.nativeAuthToken}`, }, }; - console.log('arg', arg); res = await dataNft.viewDataViaMVXNativeAuth(arg); @@ -204,9 +202,7 @@ export const MyWallet = () => { }}>
-

- {"Loading..."} -

+

{"Loading..."}

) : ( From e7c8f15a7f32c6c472a24454a5c776d170d608f1 Mon Sep 17 00:00:00 2001 From: Damian Date: Fri, 15 Sep 2023 09:33:18 +0300 Subject: [PATCH 12/12] infographics --- .../MultiversxInfographics/index.tsx | 39 ++++++------------- 1 file changed, 11 insertions(+), 28 deletions(-) diff --git a/src/pages/AppMarketplace/MultiversxInfographics/index.tsx b/src/pages/AppMarketplace/MultiversxInfographics/index.tsx index 033cde7..0b0dde6 100644 --- a/src/pages/AppMarketplace/MultiversxInfographics/index.tsx +++ b/src/pages/AppMarketplace/MultiversxInfographics/index.tsx @@ -52,7 +52,7 @@ export const MultiversxInfographics = () => { const [file, setFile] = useState(null); const [numPages, setNumPages] = useState(0); const [pageNumber, setPageNumber] = useState(1); //setting 1 to show first page - + useEffect(() => { if (!hasPendingTransactions) { fetchDataNfts(); @@ -80,7 +80,7 @@ export const MultiversxInfographics = () => { async function fetchDataNfts() { setIsLoading(true); - const _nfts: DataNft[] = await DataNft.createManyFromApi(MULTIVERSX_INFOGRAPHICS_NONCES.map(v => ({ nonce: v }))); + const _nfts: DataNft[] = await DataNft.createManyFromApi(MULTIVERSX_INFOGRAPHICS_NONCES.map((v) => ({ nonce: v }))); setDataNfts(_nfts); setIsLoading(false); @@ -125,35 +125,20 @@ export const MultiversxInfographics = () => { "authorization": `Bearer ${tokenLogin.nativeAuthToken}`, }, }; - console.log('arg', arg); + console.log("arg", arg); res = await dataNft.viewDataViaMVXNativeAuth(arg); - console.log('res', res); + console.log("res", res); 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); - } + 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); @@ -265,9 +250,7 @@ export const MultiversxInfographics = () => { }}>
-

- {"Loading..."} -

+

{"Loading..."}

) : (