diff --git a/.gitignore b/.gitignore index 124c4b0..5789513 100644 --- a/.gitignore +++ b/.gitignore @@ -22,7 +22,7 @@ dist/ # Maven target/ dist/ - +package-lock.json # JetBrains IDE .idea/ diff --git a/package-lock.json b/package-lock.json index eaf8fc2..44d66ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,6 +21,7 @@ "axios": "^1.7.7", "bip39": "^3.1.0", "blobshape": "^1.0.0", + "bs58": "^6.0.0", "copy-to-clipboard": "^3.3.3", "ethers": "^6.13.4", "motion": "^12.4.5", @@ -35,11 +36,13 @@ "react-spring": "^9.7.4", "stream-http": "^3.2.0", "typescript": "^4.9.5", + "uuid62": "^1.0.2", "web-vitals": "^2.1.4" }, "devDependencies": { "@types/async": "^3.2.24", "@types/blobshape": "^1.0.3", + "@types/bs58": "^4.0.4", "@types/node": "^22.9.3" } }, @@ -4693,6 +4696,15 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@solana/web3.js/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, "node_modules/@solana/web3.js/node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", @@ -5409,6 +5421,17 @@ "@types/node": "*" } }, + "node_modules/@types/bs58": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/bs58/-/bs58-4.0.4.tgz", + "integrity": "sha512-0IEpMFXXQi2zXaXl9GJ3sRwQo0uEkD+yFOv+FnAU5lkPtcu6h61xb7jc2CFPEZ5BUOaiP13ThuGc9HD4R8lR5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "base-x": "^3.0.6" + } + }, "node_modules/@types/connect": { "version": "3.4.38", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", @@ -7355,6 +7378,15 @@ "text-encoding-utf-8": "^1.0.2" } }, + "node_modules/borsh/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -7416,13 +7448,20 @@ } }, "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz", + "integrity": "sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==", + "license": "MIT", "dependencies": { - "base-x": "^3.0.2" + "base-x": "^5.0.0" } }, + "node_modules/bs58/node_modules/base-x": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.1.tgz", + "integrity": "sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==", + "license": "MIT" + }, "node_modules/bser": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", @@ -23177,6 +23216,50 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/uuid62": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uuid62/-/uuid62-1.0.2.tgz", + "integrity": "sha512-vI7jxJboVd6eFRpyZn5ONx5DAQgu7hO0TcE6Qy+riw/XSw8A8+qc3SplJPZ9+nKqlAuN7RMriSn2ehMWeIPCiA==", + "license": "MIT", + "dependencies": { + "base-x": "3.0.9", + "buffer": "6.0.3", + "uuid": "8.3.2" + } + }, + "node_modules/uuid62/node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/uuid62/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/v8-to-istanbul": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", diff --git a/package.json b/package.json index a6081ef..6f74fd2 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "axios": "^1.7.7", "bip39": "^3.1.0", "blobshape": "^1.0.0", + "bs58": "^6.0.0", "copy-to-clipboard": "^3.3.3", "ethers": "^6.13.4", "motion": "^12.4.5", @@ -30,6 +31,7 @@ "react-spring": "^9.7.4", "stream-http": "^3.2.0", "typescript": "^4.9.5", + "uuid62": "^1.0.2", "web-vitals": "^2.1.4" }, "scripts": { @@ -59,6 +61,7 @@ "devDependencies": { "@types/async": "^3.2.24", "@types/blobshape": "^1.0.3", + "@types/bs58": "^4.0.4", "@types/node": "^22.9.3" } } diff --git a/public/assets/dentro.svg b/public/assets/dentro.svg new file mode 100644 index 0000000..1d542d3 --- /dev/null +++ b/public/assets/dentro.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/assets/purchase-check.svg b/public/assets/purchase-check.svg new file mode 100644 index 0000000..6dd889c --- /dev/null +++ b/public/assets/purchase-check.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/App.css b/src/App.css index 79d39b6..cd8619b 100644 --- a/src/App.css +++ b/src/App.css @@ -11,6 +11,31 @@ color: white; } +button { + background: 0; + border: 0; + display: flex; + align-items: center; + color: #FFFFFF; + gap: 12px; +} + +button img { + height: 16px; + width: 16px; +} + +.option-wrapper { + height: 53px; + overflow: hidden; + + transition: height .12s ease; +} + +.option-wrapper.open { + height: 212px; +} + .header { width: 100%; display: flex; @@ -41,5 +66,10 @@ .page-container { width: 100%; + flex: 1; + + display: flex; + flex-direction: column; + padding: 42px 16px 100px; } \ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx index df96e68..a8c7f58 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,69 +1,24 @@ import { useEffect } from "react"; import "./App.css"; import { HashRouter as Router, Route, Routes } from "react-router-dom"; -import { Home, Region } from "./pages"; import { useDaemonContext } from "./providers/DaemonProvider"; -import { createOrGetWallet, getFreePassportInfo, tryToRequireFreePassport } from "./services/wallets"; +import { createOrGetWallet, tryToRequireFreePassport } from "./services/wallets"; import { getAllNodes, startMiningV2 } from "./services/mining"; import { CoNET_Data, setCoNET_Data } from "./utils/globals"; import { listenProfileVer } from "./services/listeners"; -import Vip from './pages/Vip'; import Wallet from './pages/Wallet'; -import Settings from './pages/Settings'; -import Languages from './pages/Languages'; -import Applications from './pages/Applications'; -import Subscription from './pages/Subscription'; -import Support from './pages/Support'; -import FAQ from './pages/FAQ'; -import ConfigDevice from './pages/ConfigDevice'; -import Passcode from './pages/Passcode'; import { getServerIpAddress } from "./api"; import { parseQueryParams } from "./utils/utils"; +import Subscription from './pages/Subscription'; +import Management from './pages/Management'; +import Recover from './pages/Recover'; global.Buffer = require('buffer').Buffer; function App() { - const { setProfiles, setMiningData, allRegions, setClosestRegion, setaAllNodes, setServerIpAddress, setServerPort, _vpnTimeUsedInMin, setActivePassportUpdated } = useDaemonContext(); - + const { setProfiles, _vpnTimeUsedInMin } = useDaemonContext(); + let process = false useEffect(() => { - const handlePassport = async () => { - await tryToRequireFreePassport(); - const info = await getFreePassportInfo(); - - const tmpData = CoNET_Data; - - if (!tmpData) { - return; - } - - tmpData.profiles[0] = { - ...tmpData?.profiles[0], - activeFreePassport: { - nftID: info?.nftIDs?.[0]?.toString(), - expires: info?.expires?.[0]?.toString(), - expiresDays: info?.expiresDays?.[0]?.toString() - }, - }; - - setCoNET_Data(tmpData); - - if (!CoNET_Data) return; - - setProfiles(CoNET_Data?.profiles); - setActivePassportUpdated(true); - } - - const _getServerIpAddress = async () => { - try { - const response = await getServerIpAddress(); - const tmpIpAddress = response.data; - - setServerIpAddress(tmpIpAddress?.ip || ""); - setServerPort('3002'); - } catch (ex) { - console.log(ex) - } - }; const init = async () => { const vpnTimeUsedInMin = parseInt(localStorage.getItem("vpnTimeUsedInMin") || "0"); @@ -77,26 +32,24 @@ function App() { secretPhrase = secretPhrase ? secretPhrase.replaceAll("-", " ") : null; } - await createOrGetWallet(secretPhrase); + const profiles = await createOrGetWallet(secretPhrase); + setProfiles(profiles) listenProfileVer(setProfiles); - if (!window?.webkit) { - _getServerIpAddress(); - } - - await getAllNodes(allRegions, setClosestRegion, (allNodes: nodes_info[]) => { - setaAllNodes(allNodes) + // await getAllNodes(allRegions, setClosestRegion, (allNodes: nodes_info[]) => { + // setaAllNodes(allNodes) - if (!CoNET_Data || !CoNET_Data?.profiles) { - return - } + // if (!CoNET_Data || !CoNET_Data?.profiles) { + // return + // } - startMiningV2(CoNET_Data?.profiles?.[0], allRegions, setMiningData); - }); - - await handlePassport(); + // startMiningV2(CoNET_Data?.profiles?.[0], allRegions, setMiningData); + // }); }; - + if (process) { + return + } + process = true init(); }, []); @@ -104,19 +57,21 @@ function App() {
- }> + {/* }> }> }> - }> - }> - }> + }> */} + }> + {/* }> }> }> }> - }> + }> */} }> - }> - }> + }> + }> + {/* }> + }> */}
diff --git a/src/components/AccountList/CopyAccountInfo.tsx b/src/components/AccountList/CopyAccountInfo.tsx index a187651..f67a27d 100644 --- a/src/components/AccountList/CopyAccountInfo.tsx +++ b/src/components/AccountList/CopyAccountInfo.tsx @@ -8,7 +8,7 @@ import { ReactComponent as VisibilityOffIcon } from "./assets/visibility-off.svg let copyTimeoutId: NodeJS.Timeout; -export default function CopyAccountInfo({ wallet }: any) { +export default function CopyAccountInfo({ wallet, noRecoveryPhrase = false }: any) { const [copied, setCopied] = useState({ address: "", info: "", @@ -110,41 +110,47 @@ export default function CopyAccountInfo({ wallet }: any) { : } - -
- {CoNET_Data?.mnemonicPhrase ? + { + !noRecoveryPhrase && ( <> -
-

Recovery Phrase

- { - isWordsHidden ? -
- {CoNET_Data?.mnemonicPhrase || ''} + +
+ {CoNET_Data?.mnemonicPhrase ? + <> +
+

Recovery Phrase

+ { + isWordsHidden ? +
+ {CoNET_Data?.mnemonicPhrase || ''} +
+ : + {CoNET_Data?.mnemonicPhrase || ''} + }
- : - {CoNET_Data?.mnemonicPhrase || ''} +
+ + +
+ + : }
-
- - -
- : - } -
+ ) + } ) } \ No newline at end of file diff --git a/src/components/AccountList/index.css b/src/components/AccountList/index.css index 8eadf1f..ec2c4e3 100644 --- a/src/components/AccountList/index.css +++ b/src/components/AccountList/index.css @@ -13,27 +13,35 @@ transition: height 0.2s ease; } -.account-wrapper .account-main-card img { +.simplified.account-wrapper { + height: 90px; +} + +.account-wrapper .account-main-card .name img { transform: rotate(90deg); transition: transform 0.12s ease-in-out; } -.account-wrapper.active .account-main-card img { +.account-wrapper.active .account-main-card .name img { transform: rotate(270deg); } .account-wrapper.active { /* should create the animation */ - height: 480px; + height: fit-content; } .solana.account-wrapper.active { - height: 400px; + height: 320px; +} + +.simplified.account-wrapper.active { + height: 240px; } .referral-program.account-wrapper.active { - height: 230px; + height: fit-content; } .account-wrapper.active .account-main-card { @@ -58,12 +66,18 @@ z-index: 1; } +.simplified .account-main-card { + height: 90px; + display: flex; + flex-direction: column; + gap: 8px; +} + .account-main-card div:last-child { width: 100%; padding-right: 12px; display: flex; - justify-content: space-between; align-items: center; } @@ -107,6 +121,39 @@ padding: 12px 16px; } +.info-wrapper div p:last-child { + width: fit-content; +} + +.simplified .info-wrapper > div { + padding-left: 16px; +} + +.simplified .info-wrapper > div:not(:last-child) { + margin-bottom: 16px; +} + +.simplified .info-wrapper svg { + width: 32px; + height: 32px; + + margin-right: 8px; +} + +.simplified .info-wrapper div div div { + display: flex; + flex-direction: column; + gap: 2px; +} + +.simplified .info-wrapper div div div p:first-child { + color: #ffffff; +} + +.simplified .info-wrapper div div div p:last-child { + font-size: 12px; +} + .info-wrapper > p { margin-bottom: 8px; } @@ -142,6 +189,7 @@ align-items: center; padding: 16px; text-align: left; + gap: 8px; } .copy-div button { @@ -186,6 +234,10 @@ gap: 4px; } +.fit-content.account-wrapper.active { + height: fit-content !important; +} + .referral-program .info-wrapper { display: flex; flex-direction: column; @@ -230,3 +282,46 @@ background: #191919 !important; color: #5a5a5afe !important; } + +.name { + display: flex; + justify-content: space-between; + width: 100%; +} + +.copy { + display: flex; + gap: 8px; +} + +.copy p { + font-size: 12px; + color: #989899; + + width: fit-content; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.token-assets-title { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + margin-bottom: 8px; +} + +.token-assets-title > .title { + color: #ffffff !important; +} + +.token-assets-title > .refresh.disabled { + color: #5a5a5afe !important; + cursor: not-allowed; +} + +.token-assets-title > .refresh { + color: #9fbfe5fe !important; + cursor: pointer; +} diff --git a/src/components/AccountList/index.tsx b/src/components/AccountList/index.tsx index 4954c6a..1e9f407 100644 --- a/src/components/AccountList/index.tsx +++ b/src/components/AccountList/index.tsx @@ -5,16 +5,30 @@ import CopyAccountInfo from './CopyAccountInfo'; import { useDaemonContext } from '../../providers/DaemonProvider'; import Skeleton from '../Skeleton'; -import { ReactComponent as ConetToken } from './assets/conet-token.svg' -import { ReactComponent as EthToken } from './assets/eth-token.svg' -import { ReactComponent as ConetEthToken } from './assets/conet-eth-token.svg' -import { ReactComponent as SolanaToken } from './assets/solana-token.svg' -import { ReactComponent as SpToken } from './assets/sp-token.svg' -import { getRemainingTime } from '../../utils/utils'; - -export default function AccountList() { +import { ReactComponent as ConetToken } from './assets/conet-token.svg'; +import { ReactComponent as ConetEthToken } from './assets/conet-eth-token.svg'; +import { ReactComponent as SolanaToken } from './assets/solana-token.svg'; +import { ReactComponent as SpToken } from './assets/sp-token.svg'; +import { CoNET_Data } from '../../utils/globals'; +import { useNavigate } from 'react-router-dom'; + +interface AccountListProps { + showMainWallet?: boolean; + simplifiedView?: boolean; + spInUsd?: number; + solInUsd?: number; +} + +export default function AccountList({ showMainWallet = true, simplifiedView = false, spInUsd = 0, solInUsd = 0 }: AccountListProps) { const [openAccountList, setOpenAccountList] = useState([]); - const { profiles } = useDaemonContext(); + const { profiles, setProfiles, randomSolanaRPC, getAllNodes } = useDaemonContext(); + + const [mainAccountAddressCopied, setMainAccountAddressCopied] = useState(false); + const [solanaAccountAddressCopied, setSolanaAccountAddressCopied] = useState(false); + const [passportToChange, setPassportToChange] = useState(); + const [isRefreshingSolanaBalances, setIsRefreshingSolanaBalances] = useState(false); + + const navigate = useNavigate(); function toggleAccount(accountAddress: string) { setOpenAccountList((prev) => ( @@ -22,86 +36,184 @@ export default function AccountList() { )) } + function handleCopy(e: any, account: 'main' | 'solana') { + e.preventDefault(); + + if (account === 'main') { + navigator.clipboard.writeText(profiles?.[0]?.keyID); + setMainAccountAddressCopied(true); + } + + if (account === 'solana') { + navigator.clipboard.writeText(profiles?.[1]?.keyID); + setSolanaAccountAddressCopied(true); + } + + setTimeout(() => { + setMainAccountAddressCopied(false); + setSolanaAccountAddressCopied(false); + }, 2000) + } + + const renderRefreshButton = () => { + if (!profiles?.[1]?.keyID) { + return

Refresh

+ } + + if (isRefreshingSolanaBalances) { + return

Refreshing...

+ } + + return

Refresh

+ } + return (
-
-
toggleAccount(profiles?.[0]?.keyID)}> -
-

Main Wallet

- + {showMainWallet && +
+
toggleAccount(profiles?.[0]?.keyID)}> +
+

Main Wallet

+ +
+ { + simplifiedView && ( +
+ { + profiles?.[0].keyID ? ( +

{profiles?.[0]?.keyID?.slice(0, 5)}...{profiles?.[0]?.keyID?.slice(-5)}

+ ) : ( + + ) + } + +
+ ) + }
-
-
-
-

Tokens

-
-
- -

$CONET

+
+
+
+

Token assets

-

{profiles?.[0]?.tokens?.conetDepin?.balance || (0.0).toFixed(6)}

-
-
-
- -

$ETH

+
+
+ +

$CONET

+
+

{profiles?.[0]?.tokens?.conetDepin?.balance || (0.0).toFixed(6)}

+
+
+
+ +

$ETH

+
+

{profiles?.[0]?.tokens?.conet_eth?.balance || (0.0).toFixed(6)}

-

{profiles?.[0]?.tokens?.conet_eth?.balance || (0.0).toFixed(6)}

-
-
- -
-

Silent Pass Passport

-
-

Freemium

- { - profiles?.[0]?.activeFreePassport?.expires ? -

{getRemainingTime(profiles?.[0]?.activeFreePassport?.expires)}

- : - }
+
- -
-
+ } -
-
- -
-
- -
+
toggleAccount("123")}> -
+

Solana Wallet

- +
+ { + simplifiedView && ( +
+ { + profiles?.[1].keyID ? ( +

{profiles?.[1]?.keyID?.slice(0, 5)}...{profiles?.[1]?.keyID?.slice(-5)}

+ ) : ( + + ) + } + +
+ ) + }
-

Tokens

+
+

Token assets

+ {renderRefreshButton()} +
-

$SP

+ { + simplifiedView ? ( +
+

Silent Pass

+

{profiles?.[1]?.tokens?.sp?.balance || (0.0).toFixed(6)}

+
+ ) : ( +

$SP

+ ) + }
-

{profiles?.[1]?.tokens?.conetDepin?.balance || (0.0).toFixed(6)}

+ { + simplifiedView ? ( +

${(spInUsd * parseFloat(profiles?.[1]?.tokens?.sp?.balance || '0')).toFixed(2)}

+ ) : ( +

{profiles?.[1]?.tokens?.sp?.balance || (0.0).toFixed(6)}

+ ) + }
+
-

$SOL

+ { + simplifiedView ? ( +
+

Solana

+

{profiles?.[1]?.tokens?.sol?.balance || (0.0).toFixed(6)}

+
+ ) : ( +

$SOL

+ ) + }
-

{profiles?.[1]?.tokens?.conetDepin?.balance || (0.0).toFixed(6)}

+ { + simplifiedView ? ( +

${(solInUsd * parseFloat(profiles?.[1]?.tokens?.sol?.balance || '0')).toFixed(2)}

+ ) : ( +

{profiles?.[1]?.tokens?.sol?.balance || (0.0).toFixed(6)}

+ ) + }
- - + { + !simplifiedView && ( + <> + + + + ) + }
diff --git a/src/components/AffiliateOptions/index.css b/src/components/AffiliateOptions/index.css new file mode 100644 index 0000000..70639f4 --- /dev/null +++ b/src/components/AffiliateOptions/index.css @@ -0,0 +1,37 @@ +.affiliate-options { + display: flex; + flex-direction: column; + justify-content: space-between; + + flex: 1; +} + +.affiliate-options .copy-button { + width: 100%; + border-radius: 16px; + + display: flex; + padding: 16px 8px; + justify-content: center; + align-items: center; + gap: 16px; + + color: #FFFFFF; + background: #4E72B6; + font-weight: 700; + + cursor: pointer; + + margin-top: 32px; +} + +.affiliate-footer { + display: flex; + flex-direction: column; + gap: 16px; +} + +.affiliate-footer > p { + font-size: 12px; + color: #989899; +} \ No newline at end of file diff --git a/src/components/AffiliateOptions/index.tsx b/src/components/AffiliateOptions/index.tsx new file mode 100644 index 0000000..e3c780a --- /dev/null +++ b/src/components/AffiliateOptions/index.tsx @@ -0,0 +1,55 @@ +import { useState } from 'react'; +import './index.css' +import { useDaemonContext } from '../../providers/DaemonProvider'; +import { useNavigate } from 'react-router-dom'; +import ChoosePlan from '../ChoosePlan'; + +interface AffiliateOptionsProps { + isAffiliate: boolean; +} + +export default function AffiliateOptions({ isAffiliate }: AffiliateOptionsProps) { + const navigate = useNavigate(); + + const { profiles } = useDaemonContext(); + const [isKeyCopied, setIsKeyCopied] = useState(false); + + function handleCopyKey() { + navigator.clipboard.writeText(profiles[0].keyID) + setIsKeyCopied(true) + + setTimeout(() => { + setIsKeyCopied(false) + }, 2000) + } + + function subscribe() { + navigate("/subscription"); + } + + return ( +
+ { + isAffiliate ? :
+ } + +
+ + { + !isAffiliate && ( +

Copy your CoNET wallet public key and submit it to the Silent Pass Team to complete your Affiliate Program registration.

+ ) + } +
+
+ ) +} \ No newline at end of file diff --git a/src/components/ChoosePlan/index.css b/src/components/ChoosePlan/index.css new file mode 100644 index 0000000..70676cd --- /dev/null +++ b/src/components/ChoosePlan/index.css @@ -0,0 +1,80 @@ +.choose-plan-container { + width: 100%; + + display: flex; + flex-direction: column; + gap: 20px; +} + +.choose-plan-container h2 { + text-align: left; +} + +.choose-plan-options { + display: flex; + flex-direction: column; + gap: 8px; +} + +.plan-option { + display: flex; + justify-content: space-between; + + background: #191919; + padding: 16px; + border-radius: 16px; +} + +.plan-option { + text-align: left; +} + +.plan-option div p { + color: #FFFFFF; + font-size: 24px; +} + +.plan-option div span { + color: #989899; + font-size: 14px; +} + +.plan-option div:nth-child(1) { + width: 90px; +} + +.plan-option div:nth-child(3) { + width: 65px; +} + +.plan-option div:nth-child(2) { + display: flex; + align-items: center; + gap: 16px; +} + +.plan-option div:nth-child(2) button { + border-radius: 4px; + + color: #FFFFFF; + background: #9FBFE5FE; + + width: 32px; + height: 32px; + + display: flex; + justify-content: center; + align-items: center; + + font-size: 18px; + font-weight: 700; + + cursor: pointer; +} + +.plan-option div:nth-child(2) button:disabled { + color: #5B5B5B; + background: #262626; + + cursor: not-allowed; +} \ No newline at end of file diff --git a/src/components/ChoosePlan/index.tsx b/src/components/ChoosePlan/index.tsx new file mode 100644 index 0000000..617b249 --- /dev/null +++ b/src/components/ChoosePlan/index.tsx @@ -0,0 +1,45 @@ +import { useState } from 'react' + +import './index.css'; + +export default function ChoosePlan() { + const [monthly, setMonthly] = useState(0); + const [yearly, setYearly] = useState(0); + return ( +
+

Choose plan

+
+
+
+

Monthly

+ Premium +
+
+ +
{monthly}
+ +
+
+ $USD +

{monthly !== 0 ? (9.99 * monthly).toFixed(2) : 9.99}

+
+
+
+
+

Yearly

+ Premium +
+
+ +
{yearly}
+ +
+
+ $USD +

{yearly !== 0 ? (24.99 * yearly).toFixed(2) : 24.99}

+
+
+
+
+ ) +} \ No newline at end of file diff --git a/src/components/Footer/index.tsx b/src/components/Footer/index.tsx index ed30b9b..b8647ea 100644 --- a/src/components/Footer/index.tsx +++ b/src/components/Footer/index.tsx @@ -1,11 +1,11 @@ import Menu from '../Menu'; import './index.css'; -export default function Footer() { +export default function Footer({ disableManagement }: any) { return (
- +
) diff --git a/src/components/LoadingRing/index.css b/src/components/LoadingRing/index.css new file mode 100644 index 0000000..6b40fc5 --- /dev/null +++ b/src/components/LoadingRing/index.css @@ -0,0 +1,45 @@ +@keyframes rotationClock { + from { + transform: translateX(-50%) rotate(0deg); + } + to { + transform: translateX(-50%) rotate(360deg); + } +} + +@keyframes rotation { + from { + transform: translateX(-50%) rotate(0deg); + } + to { + transform: translateX(-50%) rotate(-360deg); + } +} + +.rotationClock { + animation: rotationClock 2s infinite linear; + top: calc(50% - 48px); + left: 50%; + position: absolute; + display: flex; + justify-content: center; + align-items: center; + text-align: center; +} + +.rotation { + animation: rotation 2s infinite linear; + top: calc(50% - 72px); + left: 50%; + position: absolute; + display: flex; + justify-content: center; + align-items: center; + text-align: center; +} + +.loading-ring { + height: 160px; + position: relative; + margin-bottom: 24px; +} \ No newline at end of file diff --git a/src/components/LoadingRing/index.tsx b/src/components/LoadingRing/index.tsx new file mode 100644 index 0000000..07211d3 --- /dev/null +++ b/src/components/LoadingRing/index.tsx @@ -0,0 +1,10 @@ +import './index.css'; + +export default function LoadingRing() { + return ( +
+ + +
+ ) +} \ No newline at end of file diff --git a/src/components/Menu/assets/management-blue.svg b/src/components/Menu/assets/management-blue.svg new file mode 100644 index 0000000..b5fa0e4 --- /dev/null +++ b/src/components/Menu/assets/management-blue.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/components/Menu/assets/management-grey.svg b/src/components/Menu/assets/management-grey.svg new file mode 100644 index 0000000..1907fdf --- /dev/null +++ b/src/components/Menu/assets/management-grey.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/components/Menu/index.css b/src/components/Menu/index.css index a8b9258..f47995e 100644 --- a/src/components/Menu/index.css +++ b/src/components/Menu/index.css @@ -31,4 +31,9 @@ .menu button.active { color: #9FBFE5FE; +} + +.menu button:disabled { + opacity: .3; + cursor: not-allowed; } \ No newline at end of file diff --git a/src/components/Menu/index.tsx b/src/components/Menu/index.tsx index bffe359..ddb6d64 100644 --- a/src/components/Menu/index.tsx +++ b/src/components/Menu/index.tsx @@ -1,36 +1,24 @@ import { useLocation, useNavigate } from 'react-router-dom'; import './index.css'; -import { ReactComponent as HomeIconGrey } from "./assets/home-icon-grey.svg" -import { ReactComponent as HomeBlueIcon } from "./assets/home-icon-blue.svg" -import { ReactComponent as WalletIconGrey } from "./assets/wallet-icon-grey.svg" -import { ReactComponent as WalletBlueIcon } from "./assets/wallet-icon-blue.svg" -import { ReactComponent as SettingsIconBlue } from "./assets/settings-icon-blue.svg" -import { ReactComponent as SettingsIconGrey } from "./assets/settings-icon-grey.svg" -import { ReactComponent as SupportIconGrey } from "./assets/support-icon-grey.svg" -import { ReactComponent as SupportIconBlue } from "./assets/support-icon-blue.svg" +import { ReactComponent as WalletIconGrey } from "./assets/wallet-icon-grey.svg"; +import { ReactComponent as WalletBlueIcon } from "./assets/wallet-icon-blue.svg"; +import { ReactComponent as ManagementIconGrey } from "./assets/management-grey.svg"; +import { ReactComponent as ManagementBlueIcon } from "./assets/management-blue.svg"; -export default function Menu() { +export default function Menu({ disableManagement }: any) { const navigate = useNavigate(); const location = useLocation(); return (
- - -
) diff --git a/src/components/MiningStatus/index.tsx b/src/components/MiningStatus/index.tsx index 1e36e01..d378b71 100644 --- a/src/components/MiningStatus/index.tsx +++ b/src/components/MiningStatus/index.tsx @@ -6,7 +6,7 @@ import Skeleton from '../Skeleton'; const OneDayInSeconds = 86400; const MiningStatus = () => { - const { miningData, profiles, setIsPassportInfoOpen, activePassportUpdated } = useDaemonContext(); + const { miningData, profiles, activePassportUpdated } = useDaemonContext(); const [isMiningUp, setIsMiningUp] = useState(false); const [passportTimeLeft, setPassportTimeLeft] = useState(0); @@ -24,9 +24,6 @@ const MiningStatus = () => { } }, [activePassportUpdated, profiles]) - const openPassportInfo = () => { - setIsPassportInfoOpen(true) - } return (
@@ -34,12 +31,6 @@ const MiningStatus = () => { Miners: {miningData?.online ? miningData.online : }
-
-
- Freemium - Info icon -
-
Users: {miningData?.totalUsers ? miningData.totalUsers : }
); diff --git a/src/components/PassportInfoPopup/index.tsx b/src/components/PassportInfoPopup/index.tsx index 08a60e7..75aa1e0 100644 --- a/src/components/PassportInfoPopup/index.tsx +++ b/src/components/PassportInfoPopup/index.tsx @@ -1,41 +1,10 @@ import { useDaemonContext } from "../../providers/DaemonProvider"; -import { getRemainingTime } from "../../utils/utils"; import './index.css'; -import Skeleton from "../Skeleton"; const PassportInfoPopup = () => { - const { profiles, isPassportInfoOpen, setIsPassportInfoOpen } = useDaemonContext(); + const { profiles } = useDaemonContext(); - return isPassportInfoOpen ? ( -
setIsPassportInfoOpen(false)}> -
-
-
- Silent Pass Passport -

Freemium

-
- -
- Expiration date - { - profiles?.[0]?.activeFreePassport?.expires ? -

{getRemainingTime(profiles?.[0]?.activeFreePassport?.expires)}

- : - } -
-
- -
- - - -
-
-
- ) : <> + return <> }; export default PassportInfoPopup; \ No newline at end of file diff --git a/src/components/SimpleLoadingRing/index.css b/src/components/SimpleLoadingRing/index.css new file mode 100644 index 0000000..3bd83bc --- /dev/null +++ b/src/components/SimpleLoadingRing/index.css @@ -0,0 +1,20 @@ +@keyframes rotation { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +.loading-ring-container { + display: flex; + flex-direction: row !important; + justify-content: center !important; + align-items: center !important; + width: 100% !important; +} + +.loading-ring-container img { + animation: rotation 2s infinite linear !important; +} \ No newline at end of file diff --git a/src/components/SimpleLoadingRing/index.tsx b/src/components/SimpleLoadingRing/index.tsx new file mode 100644 index 0000000..ac9c8db --- /dev/null +++ b/src/components/SimpleLoadingRing/index.tsx @@ -0,0 +1,9 @@ +import './index.css'; + +export default function SimpleLoadingRing() { + return ( +
+ +
+ ); +} \ No newline at end of file diff --git a/src/components/global-steps/Declined.tsx b/src/components/global-steps/Declined.tsx new file mode 100644 index 0000000..8b5b685 --- /dev/null +++ b/src/components/global-steps/Declined.tsx @@ -0,0 +1,17 @@ +export default function Declined() { + return ( + <> + + +
+
+ X +
+
+

Purchase declined

+

Please contact us on Discord or Telegram.

+
+
+ + ) +} \ No newline at end of file diff --git a/src/components/global-steps/Loading.tsx b/src/components/global-steps/Loading.tsx new file mode 100644 index 0000000..f30765b --- /dev/null +++ b/src/components/global-steps/Loading.tsx @@ -0,0 +1,10 @@ +import LoadingRing from '../LoadingRing'; + +export default function Loading() { + return ( +
+ +

Please wait, this may take a few seconds.

+
+ ) +} \ No newline at end of file diff --git a/src/pages/Management/assets/arrow.svg b/src/pages/Management/assets/arrow.svg new file mode 100644 index 0000000..405110d --- /dev/null +++ b/src/pages/Management/assets/arrow.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/pages/Management/assets/refresh-icon.svg b/src/pages/Management/assets/refresh-icon.svg new file mode 100644 index 0000000..4af60e4 --- /dev/null +++ b/src/pages/Management/assets/refresh-icon.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/pages/Management/assets/visibility-off.svg b/src/pages/Management/assets/visibility-off.svg new file mode 100644 index 0000000..a70619c --- /dev/null +++ b/src/pages/Management/assets/visibility-off.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/pages/Management/assets/visibility-on.svg b/src/pages/Management/assets/visibility-on.svg new file mode 100644 index 0000000..7e5c3c0 --- /dev/null +++ b/src/pages/Management/assets/visibility-on.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/pages/Management/index.css b/src/pages/Management/index.css new file mode 100644 index 0000000..d248e5f --- /dev/null +++ b/src/pages/Management/index.css @@ -0,0 +1,276 @@ +h2 { + font-size: 20px; + font-weight: bold; + text-align: left; + margin-bottom: 10px; +} + +.sub-heading { + display: flex; + align-items: center; + justify-content: space-between; + + margin: 0 0 24px; + + height: 37px; +} + +.sub-heading button { + background: #9FBFE5FE; + color: #3F3F40; +} + +.main-content-wrapper { + display: flex; + flex-direction: column; + gap: 16px; + + background: #191919; + border-radius: 16px; +} + +.generate-btn { + background-color: #007bff; + padding: 10px 15px; + font-weight: bold; + font-size: 14px; + border-radius: 8px; + float: right; + cursor: pointer; +} + +.category-switch { + display: flex; + gap: 16px; + + border-radius: 16px; + background: #3F3F40; + padding: 16px; +} + +.category-switch button { + flex: 1; + padding: 12px; + font-size: 24px; + border-radius: 8px; + + padding: 4px 16px; + border-radius: 8px; + + cursor: pointer; + + background: #3F3F40; + transition: background .12s ease; +} + +.category-switch button:hover { + background: #2F2F2F; +} + +.category-switch button.active { + background: #191919; +} + +.filters { + display: flex; + gap: 4px; + margin-top: 10px; + + padding: 0 16px; +} + +.filters button { + flex: 1; + padding: 8px; + border-radius: 8px; + + padding: 4px 6px; + border-radius: 12px; + + font-size: 12px; + + cursor: pointer; + + color: #B1B1B2; + background: #191919; + transition: background .12s ease; +} + +.filters button:hover { + background: #2F2F2F; +} + +.filters button.active { + background: #3F3F40; +} + +.filters button, .category-switch button { + display: flex; + justify-content: center; + align-items: center; +} + +.management-heading { + display: flex; + align-items: center; + justify-content: space-between; + + margin-bottom: 32px; +} + +.management-heading button { + gap: 8px; + + border: 1px solid #9FBFE5FE; + padding: 4px 8px; + border-radius: 8px; + cursor: pointer; +} + +.management-heading button p { + color: #9FBFE5FE; + font-weight: 700; +} + +.quantity-selector { + display: flex; + align-items: center; + justify-content: space-between; + background: #1a1a1a; + padding: 8px; + border-radius: 8px; + margin-top: 10px; +} + +.quantity-selector p { + font-size: 14px; +} + +.quantity-selector span { + padding: 0 10px; + font-size: 18px; +} + +.quantity-selector div { + display: flex; + align-items: center; + + gap: 8px; +} + +.quantity-selector div button { + border-radius: 4px; + + color: #1C1B1F; + background: #9FBFE5FE; + + width: 32px; + height: 32px; + + display: flex; + justify-content: center; + align-items: center; + + font-size: 18px; + font-weight: 700; + + cursor: pointer; +} + +.quantity-selector div button:disabled { + color: #5B5B5B; + background: #262626; + + cursor: not-allowed; +} + +.nft-list { + margin-top: 15px; +} + +.nft-item { + padding: 15px; + display: flex; + align-items: center; + justify-content: space-between; + + border-top: 1px solid #3F3F40; +} + +.nft-info { + text-align: left; + + display: flex; + flex-direction: column; + gap: 8px; +} + +.nft-id { + font-size: 14px; + font-weight: bold; +} + +.redeem-code { + font-size: 12px; + color: #676768; + word-break: break-all; +} + +.nft-actions { + display: flex; + gap: 8px; +} + +.icon-btn { + background: none; + border: none; + font-size: 16px; + color: white; + cursor: pointer; +} + +.icon-btn.hidden svg { + margin-top: 2px; +} + +.icon-btn img { + width: 20px; + height: 20px; + filter: grayscale(.8); + margin-right: 4px; +} + +.refresh { + color: #9fbfe5fe !important; + cursor: pointer; + padding-bottom: 0.5rem; +} +.refreshing { + color: #748dabfe !important; + padding-bottom: 0.5rem; +} + +.pagination-controls { + display: flex; + justify-content: space-between; + align-items: center; + gap: 12px; + + margin: 8px 0; + padding: 12px; + + background: #191919; + border-radius: 12px; +} + +.pagination-controls button { + width: 40px; + height: 40px; + + display: flex; + justify-content: center; + align-items: center; + + background: #494849; + border-radius: 4px; +} \ No newline at end of file diff --git a/src/pages/Management/index.tsx b/src/pages/Management/index.tsx new file mode 100644 index 0000000..396969f --- /dev/null +++ b/src/pages/Management/index.tsx @@ -0,0 +1,332 @@ +import { useState, useEffect } from 'react'; +import Footer from '../../components/Footer'; + +import { ReactComponent as VisibilityOnIcon } from "./assets/visibility-on.svg"; +import { ReactComponent as VisibilityOffIcon } from "./assets/visibility-off.svg"; +import { ReactComponent as RefreshIcon } from "./assets/refresh-icon.svg"; +import { ReactComponent as ArrowIcon } from "./assets/arrow.svg"; + +import {NFTsProcess, getNFTs, distributorNFTItem, distributorNFTObj, redeemProcess } from '../../services/wallets' +import './index.css'; + +type NFTCategory = "monthly" | "yearly"; +type NFTFilter = "all" | "used" | "to be used" | "no redeem"; + +const ITEMS_PER_PAGE = 10; + + +export default function Management() { + const [category, setCategory] = useState("monthly"); + const [filter, setFilter] = useState("all"); + const [generateQuantity, setGenerateQuantity] = useState(5); + const [isGetNFTs, setisGetNFTs] = useState(false); + const [isReflashNFTs, setisReflashNFTs] = useState(false); + const [allNFTs, setAllNFTs] = useState(null); + const [clickRedeem, setClickRedeem] = useState(false); + const [redeemProcessing, setRedeemProcessing] = useState(false); + const [currentPage, setCurrentPage] = useState(1); + const [hiddenCodes, setHiddenCodes] = useState>({}); + const [copiedStates, setCopiedStates] = useState>({}); + + useEffect(() => { + getNFTs().then(nfts => { + if (!nfts) return; + + setAllNFTs(nfts) + const plainNFTIDList = [...nfts?.monthly?.nfts, ...nfts?.yearly.nfts].map((nft) => nft.id); + const hiddenCodesMapping: Record = {}; + + plainNFTIDList.forEach((nftId) => hiddenCodesMapping[nftId] = true); + + setHiddenCodes(hiddenCodesMapping); + }) + }, []) + + useEffect(() => { + const doRedeem = async () => { + await getRedeem() + + } + if (clickRedeem) { + doRedeem() + } + }, [clickRedeem]) + + const getRedeem = async () => { + if (!allNFTs||!getAvailableRedeem()) { + return + } + + const _category = category + const allItems = allNFTs[category].nfts.filter(n => !n.code && !n.showRedeemProcess) + + if (allItems.length === 0) { + return + } + const item = allItems[0] + const newItem: distributorNFTItem = {id: item.id, code: item.code, showRedeemProcess: true, used: false} + + setAllNFTs(currentItems => { + if (!currentItems) { + return currentItems + } + currentItems[_category].nfts = currentItems[_category].nfts.map(n => n.id === item.id ? newItem: n) + return currentItems + }) + setRedeemProcessing(true) + const code = await redeemProcess(item.id, _category === 'monthly' ? true : false) + + if (code) { + newItem.code = code + newItem.showRedeemProcess = false + setAllNFTs(currentItems => { + if (!currentItems) { + return currentItems + } + currentItems[_category].nfts = currentItems[_category].nfts.map(n => n.id === item.id ? newItem: n) + return currentItems + }) + } + setRedeemProcessing(false) + setClickRedeem(false) + } + + const getAvailableRedeem = () => { + const items = getFilteredNFTs() + const availableItems = items.filter(n => !n.code && !n.showRedeemProcess) + return availableItems.length > 0 + } + + const newNFTsProcessUI = async () => { + if (isGetNFTs) { + return + } + setisGetNFTs(true) + await NFTsProcess() + setisGetNFTs(false) + } + + + const renderNewNFTsButton = () => { + + if (isGetNFTs) { + return

new NFTs...

+ } + + return

newNFTsProcessUI()}>get new NFTs

+ } + + const reflashNftsProcess = async () => { + if (isReflashNFTs) { + return + } + setisReflashNFTs(true) + const result = await getNFTs () + + setAllNFTs(result) + setisReflashNFTs(false) + } + + console.log("NFTS: ", allNFTs); + + const getFilteredNFTs = (): distributorNFTItem[] => { + if (!allNFTs || !allNFTs[category].nfts) { + return [] + } + if (filter === "all") { + const ret = allNFTs[category].nfts + + return ret + } + + if (filter === 'to be used') { + const ret = allNFTs[category].nfts.filter(n => n.code && !n.used) + + return ret + } + + if (filter === 'used') { + const ret = allNFTs[category].nfts.filter(n => n.used) + + return ret + } + + const ret = allNFTs[category].nfts.filter(n => !n.code) + + return ret + } + + const copyCode = (id: string, code: string) => { + navigator.clipboard.writeText(code); + setCopiedStates((prev) => ({ ...prev, [id]: true })); + + setTimeout(() => { + setCopiedStates((prev) => ({ ...prev, [id]: false })); + }, 2000); + }; + + const toggleVisibility = (id: string) => { + setHiddenCodes((prev) => ({ ...prev, [id]: !prev[id] })); + }; + + console.log("ALL NFTS: ", allNFTs); + + const filteredNFTs = getFilteredNFTs(); + const totalPages = Math.ceil(filteredNFTs.length / ITEMS_PER_PAGE); + const paginatedNFTs = filteredNFTs.slice((currentPage - 1) * ITEMS_PER_PAGE, currentPage * ITEMS_PER_PAGE); + + return ( +
+
+

Management

+ +
+ {/* {renderNewNFTsButton()} */} +
+

Your NFTs

+ { + filter === 'no redeem' && getAvailableRedeem() && !redeemProcessing && + + } +
+
+
+ + +
+ +
+ + + + + +
+ + {/*
+

Select quantity

+
+ + {generateQuantity} + +
+
*/} + + {/*
+ {getFilteredNFTs().map((n, index) => ( +
+
+

{n.id}

+
+
+

{n.code}

+
+ { + n.showRedeemProcess ? +

Redeem...

: +

+ } +
+ ))} +
*/} + +
+ {paginatedNFTs.map((nft) => ( +
+
+

{nft.id}

+ {nft.code &&

Redeem code

} + {nft.code &&

{hiddenCodes[nft.id] ? "••••••••••••••••" : nft.code}

} +
+ { + nft.showRedeemProcess && ( +

Redeeming code...

+ ) + } + { + nft.code && ( +
+ + +
+ ) + } +
+ ))} +
+
+ { + !!totalPages && ( +
+ + Page {currentPage} of {totalPages} + +
+ ) + } +
+
+ ) +} \ No newline at end of file diff --git a/src/pages/Recover/assets/lightbulb.svg b/src/pages/Recover/assets/lightbulb.svg new file mode 100644 index 0000000..6c8ecf7 --- /dev/null +++ b/src/pages/Recover/assets/lightbulb.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/pages/Recover/index.css b/src/pages/Recover/index.css new file mode 100644 index 0000000..4ddbaa6 --- /dev/null +++ b/src/pages/Recover/index.css @@ -0,0 +1,121 @@ +.recover-page { + display: flex; + flex-direction: column; + gap: 32px; +} + +.descriptions { + text-align: left; +} + +.descriptions p:first-child { + font-size: 28px; + + margin-bottom: 8px; +} + +.descriptions p:first-child b { + color: #9FBFE5FE; +} + +.warning { + display: flex; + align-items: center; + gap: 4px; + + width: fit-content; + margin: 0 auto; + + padding: 4px 8px; + + border: 1px solid #9FBFE5FE; + border-radius: 8px; + background: #191919; +} + +.warning p { + font-size: 12px; + margin-top: -2px; +} + +.word-grid { + display: flex; + flex-direction: column; + gap: 8px; +} + +.word-grid .list { + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-template-rows: repeat(4, 1fr); + gap: 16px; +} + +.word-list-item { + padding: 8px 16px; + border: 1px solid #4C4C4C; + border-radius: 8px; + background: #191919; + + position: relative; + +} + +.word-list-item input { + width: 100%; + height: 100%; + + background: none; + border: none; + + color: #FFFFFF; +} + +.word-list-item p { + position: absolute; + top: -10px; + left: 0; + + font-size: 12px; +} + +.recover-button { + width: 210px; + height: 60px; + + border-radius: 16px; + margin: 0 auto; + + display: flex; + justify-content: center; + align-items: center; + + background: #9FBFE5FE; + color: #0D0D0D; + + font-size: 16px; + font-weight: 700; + + cursor: pointer; +} + +.recover-button img { + width: 30px; + height: 30px; +} + +.recover-button:disabled { + background: #4C4C4C; + + cursor: not-allowed; +} + +span.error-warn { + color: #B3261E; + font-size: 12px; + + display: block; + margin: -12px 0 12px; + + text-align: left; +} \ No newline at end of file diff --git a/src/pages/Recover/index.tsx b/src/pages/Recover/index.tsx new file mode 100644 index 0000000..391516f --- /dev/null +++ b/src/pages/Recover/index.tsx @@ -0,0 +1,115 @@ +import { useState, useRef } from 'react'; +import BackButton from '../../components/BackButton'; + +import './index.css'; + +import { ReactComponent as LightbulbIcon } from "./assets/lightbulb.svg"; +import { createOrGetWallet } from '../../services/wallets'; +import { useNavigate } from 'react-router-dom'; +import SimpleLoadingRing from '../../components/SimpleLoadingRing'; + +export default function Recover() { + const [phrases, setPhrases] = useState(Array(12).fill('')); + const inputsRef = useRef<(HTMLInputElement | null)[]>([]); + + const [errorRecovering, setErrorRecovering] = useState(false); + const [isLoading, setIsLoading] = useState(false); + + const navigate = useNavigate(); + + function handleWordChange(index: number, value: string) { + if (value.includes(' ')) { + const words = value.trim().split(/\s+/); + const newPhrases = [...phrases]; + words.forEach((word, i) => { + if (index + i < 12) { + newPhrases[index + i] = word; + } + }); + setPhrases(newPhrases); + + if (index + words.length < 12) { + inputsRef.current[index + words.length]?.focus(); + } + } else { + const newPhrases = [...phrases]; + newPhrases[index] = value; + setPhrases(newPhrases); + } + } + + function handlePaste(event: React.ClipboardEvent, index: number) { + event.preventDefault(); + const pasteData = event.clipboardData.getData('text').trim(); + const words = pasteData.split(/\s+/); + if (words.length === 12) { + setPhrases(words); + } else { + const newPhrases = [...phrases]; + words.forEach((word, i) => { + if (index + i < 12) { + newPhrases[index + i] = word; + } + }); + setPhrases(newPhrases); + } + } + + async function handleRecoverWallet() { + if (isButtonDisabled) return; + + try { + setIsLoading(true); + const joinedPhrases = phrases.join(" "); + + await createOrGetWallet(joinedPhrases); + navigate("/") + } catch (err) { + console.log("ERROR: ", err); + setErrorRecovering(true); + } finally { + setIsLoading(false); + } + } + + const isButtonDisabled = phrases.some(phrase => phrase.trim() === ''); + + return ( +
+
+ +

Recover your account

+
+
+

Write or paste your phrase to recover your account

+

Make sure you’re using the correct Secret Recovery Phrase before proceeding. You will not be able to undo this and restore your account.

+
+ +
+
+ {phrases.map((phrase, i) => ( +
+

{i + 1}

+ (inputsRef.current[i] = el)} + value={phrase} + onChange={(e) => handleWordChange(i, e.target.value)} + onPaste={(e) => handlePaste(e, i)} + /> +
+ ))} +
+
+ +

Never lose your Secret Recovery Phrase

+
+
+ + {errorRecovering && An error occurred during recover. Check the phrase or try again later.} + + +
+ ); +} \ No newline at end of file diff --git a/src/pages/Subscription/assets/sp-token.svg b/src/pages/Subscription/assets/sp-token.svg new file mode 100644 index 0000000..96de727 --- /dev/null +++ b/src/pages/Subscription/assets/sp-token.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/pages/Subscription/index.css b/src/pages/Subscription/index.css index aaade92..51c2350 100644 --- a/src/pages/Subscription/index.css +++ b/src/pages/Subscription/index.css @@ -13,7 +13,7 @@ .subscription-header p { font-size: 14px; - color: #CACACC; + color: #cacacc; } .subscription-header h1 { @@ -40,7 +40,7 @@ gap: 8px; background-color: #282930; - color: #FFFFFF; + color: #ffffff; font-weight: 700; cursor: pointer; @@ -51,18 +51,30 @@ color: #282930; } +.subscription-footer button.step-1 { + height: 60px; + background-color: #4e72b6; + color: #ffffff; + font-size: 16px; + font-weight: 700; +} + +.subscription-footer button.step-4 { + margin-top: 24px; +} + .subscription-footer button.step-3 svg { animation: rotate 1.4s linear infinite; } .subscription-footer button.step-5 { background: none; - color: #9FBFE5FE; + color: #9fbfe5fe; } .subscription-footer p { font-size: 11px; - color: #CACACC; + color: #cacacc; text-align: left; } @@ -123,7 +135,7 @@ .plan-options button { flex: 1; - color: #FFFFFF; + color: #ffffff; padding: 4px 16px; border-radius: 4px; @@ -140,7 +152,7 @@ } .plan-options button.active { - background-color: #3F3F40; + background-color: #3f3f40; } .plan-cards { @@ -159,6 +171,13 @@ border-radius: 16px; text-align: left; + + border: 1.5px solid #191919; + cursor: pointer; +} + +.plan-cards .plan.active { + border-color: #9fbfe5fe; } .plan-cards .plan > div { @@ -167,6 +186,10 @@ justify-content: space-between; } +.plan-cards .plan > div:last-child { + width: 71px; +} + .plan-cards .plan p { font-size: 24px; } @@ -196,7 +219,8 @@ gap: 8px; } -.transaction-info > div, .summary-table { +.transaction-info > div, +.summary-table { background-color: #191919; padding: 14px 16px; @@ -238,7 +262,7 @@ } .summary-heading p { - width: fit-content + width: fit-content; } .summary-table { @@ -266,4 +290,74 @@ .quotes p { margin-bottom: 3px; -} \ No newline at end of file +} + +.blue-text { + font-weight: 700; + color: #4e72b6; +} + +.declined-wrapper { + width: 110px; + height: 110px; + margin: 0 auto; + padding: 32px; + border: 4px solid #ffedea; + border-radius: 9999px; + + display: flex; + justify-content: center; + align-items: center; + + margin-bottom: 32px; +} + +.declined-description { + display: flex; + flex-direction: column; + gap: 8px; +} + +.declined-description p:first-child { + font-size: 24px; + font-weight: 700; + color: #ffb4ab; +} + +.purchase-details { + background: #262626; + padding: 16px; + + display: flex; + flex-direction: column; + gap: 12px; + + border-radius: 16px; +} + +.detail p, +.purchase-success p { + width: fit-content; +} + +.detail { + display: flex; + justify-content: space-between; +} + +.purchase-success { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 16px; + margin-bottom: 60px; +} + +.purchase-success p { + font-size: 24px; +} + +.purchase-success p:last-child { + color: #9fbfe5fe; + font-weight: 700; +} diff --git a/src/pages/Subscription/index.tsx b/src/pages/Subscription/index.tsx index 7301558..92cd28b 100644 --- a/src/pages/Subscription/index.tsx +++ b/src/pages/Subscription/index.tsx @@ -1,40 +1,94 @@ -import { useState } from 'react'; -import ClickableItem from '../../components/ClickableItem'; +import { useEffect, useState } from 'react'; import { useNavigate } from 'react-router-dom'; -import faqIcon from "./assets/faq-icon.svg"; import FirstStep from './page-components/FirstStep'; import Header from './page-components/Header'; -import Footer from './page-components/Footer'; +import PageFooter from './page-components/Footer'; +import SecondStep from './page-components/SecondStep'; +import FourthStep from './page-components/FourthStep'; import './index.css'; -import SecondStep from './page-components/SecondStep'; +import { useDaemonContext } from '../../providers/DaemonProvider'; +import Loading from '../../components/global-steps/Loading'; +import Declined from '../../components/global-steps/Declined'; -export type Step = number /* 1 | 2 | 3 | 4 | 5 */; +export type Step = 2 | 3 | 4 | 5; export default function Subscription() { const [step, setStep] = useState(2); + const [price, setPriceInSp] = useState('0'); + const [gasfee, setGasfee] = useState('0'); + const [updateCounter, setUpdateCounter] = useState(0); + const [spInUsd, setSpInUsd] = useState(0); + const [solInUsd, setSolInUsd] = useState(0); + const [isSubmitButtonDisabled, setIsSubmitButtonDisabled] = useState(false); + + const { profiles } = useDaemonContext(); const navigate = useNavigate(); function nextStep() { - if (step === 5) return; - setStep((prev) => prev + 1); + if (step > 4) return; + setStep((prev) => (prev + 1 as Step)); } + useEffect(() => { + const interval = setInterval(() => setUpdateCounter((prev) => prev - 1), 1000); + return () => clearInterval(interval); + }, []) + + + async function handleButtonAction() { + /* if (step === 1) { + nextStep(); + return; + } */ + + if (step === 2) { + try { + nextStep(); + setStep(4); + } catch (error) { + setStep(5); + console.log('error purchasing passport') + } + + return + } + + if (step === 4 || step === 5) { + navigate("/") + return; + } + } + + useEffect(() => { + /* if (step === 1) { + const result = (!profiles?.[1]?.tokens?.sp?.balance || Number(price) > profiles?.[1]?.tokens?.sp?.balance); + return setIsSubmitButtonDisabled(result); + } */ + + if (step === 2) { + const result = (!profiles?.[1]?.tokens?.sp?.balance || (Number(price) > profiles?.[1]?.tokens?.sp?.balance) || (Number(gasfee) > profiles?.[1]?.tokens?.sol?.balance)); + return setIsSubmitButtonDisabled(result); + } + + return setIsSubmitButtonDisabled(false); + }, [step, price, gasfee, profiles]); + return ( -
-

{step}

- - -
+
+ {step === 4 &&
} - {step === 1 && } - {step === 2 && } +
-
navigate("/wallet")} /> + {/* {step === 1 && } */} + {step === 2 && } {/* Purchase confirmation */} + {step === 3 && } {/* Purchase loading */} + {step === 4 && } {/* Purchase successful */} + {step === 5 && } {/* Purchase declined */} - {step === 1 && navigate("/about")} />} +
) } \ No newline at end of file diff --git a/src/pages/Subscription/page-components/FirstStep.tsx b/src/pages/Subscription/page-components/FirstStep.tsx index be1d0f2..704e784 100644 --- a/src/pages/Subscription/page-components/FirstStep.tsx +++ b/src/pages/Subscription/page-components/FirstStep.tsx @@ -1,9 +1,11 @@ +import AccountList from '../../../components/AccountList'; import BuyMore from './BuyMore'; import CurrentSubscription from './CurrentSubscription'; -export default function FirstStep() { +export default function FirstStep({ spInUsd, solInUsd }: any) { return (
+
diff --git a/src/pages/Subscription/page-components/Footer.tsx b/src/pages/Subscription/page-components/Footer.tsx index 135cc12..71d8a8b 100644 --- a/src/pages/Subscription/page-components/Footer.tsx +++ b/src/pages/Subscription/page-components/Footer.tsx @@ -1,35 +1,21 @@ -import { useNavigate } from 'react-router-dom'; -import { Step } from '..'; - -import { ReactComponent as ProgressIcon} from "../assets/progress-activity.svg"; +import { Step } from '../'; +import { ReactComponent as ProgressIcon } from "../assets/progress-activity.svg"; interface FooterProps { step: Step; - nextStep: () => void; - backToMyWallet: () => void; + isSubmitButtonDisabled: boolean; + handleButtonAction: () => void; } -export default function Footer({ step, nextStep, backToMyWallet }: FooterProps) { - const navigate = useNavigate(); - - function handleButtonAction() { - if (step === 4 || step === 5) { - navigate("/wallet") - return; - } - - if (step === 1 || step === 2) { - nextStep(); - return; - } - } - +export default function Footer({ step, isSubmitButtonDisabled, handleButtonAction }: FooterProps) { return (
{(step === 2 || step === 3) &&

Your transaction completion time may vary and can take up to 24 hours. Confirmation of Transaction Hash will display on completion.

} - +
-
-
- -
-
- -

*Open CoNET Platform - Redeem Silent Pass passport and transfer Silent Pass passport to Silent Pass Account (public wallet address) if user has guardian NFT or CoNETian NFT.

-
-
- -

**Open CoNET Website - Fill in the purchase form of Subscribe Standard Plan or Premium Plan and finish the payment with $SP token), get the silent pass passport in Silent Pass Account (public wallet address).

-
-
- - + -
+
) } \ No newline at end of file diff --git a/src/providers/DaemonProvider.tsx b/src/providers/DaemonProvider.tsx index 1fab1c5..330e3cf 100644 --- a/src/providers/DaemonProvider.tsx +++ b/src/providers/DaemonProvider.tsx @@ -26,10 +26,20 @@ type DaemonContext = { serverPac: string setServerPac: (pac: string) => void _vpnTimeUsedInMin: React.MutableRefObject - isPassportInfoOpen: boolean - setIsPassportInfoOpen: (val: boolean) => void + isPassportInfoPopupOpen: boolean + setIsPassportInfoPopupOpen: (val: boolean) => void activePassportUpdated: boolean setActivePassportUpdated: (val: boolean) => void + activePassport: any + setActivePassport: (val: any) => void + isSelectPassportPopupOpen: any + setIsSelectPassportPopupOpen: (val: any) => void + purchasingPlan: string + setPurchasingPlan: (val: string) => void + purchasingPlanPaymentTime: string + setPurchasingPlanPaymentTime: (val: string) => void + randomSolanaRPC: nodes_info | null + setRandomSolanaRPC: (val: nodes_info) => void; }; type DaemonProps = { @@ -62,10 +72,20 @@ const defaultContextValue: DaemonContext = { serverPac: "", setServerPac: () => { }, _vpnTimeUsedInMin: { current: 0 }, - isPassportInfoOpen: false, - setIsPassportInfoOpen: () => { }, + isPassportInfoPopupOpen: false, + setIsPassportInfoPopupOpen: () => { }, activePassportUpdated: false, - setActivePassportUpdated: () => { } + setActivePassportUpdated: () => { }, + activePassport: null, + setActivePassport: () => { }, + isSelectPassportPopupOpen: false, + setIsSelectPassportPopupOpen: () => { }, + purchasingPlan: "premium", + setPurchasingPlan: () => { }, + purchasingPlanPaymentTime: "monthly", + setPurchasingPlanPaymentTime: () => { }, + setRandomSolanaRPC: () => { }, + randomSolanaRPC: null }; const Daemon = createContext(defaultContextValue); @@ -89,8 +109,13 @@ export function DaemonProvider({ children }: DaemonProps) { const [serverPort, setServerPort] = useState(defaultContextValue.serverPort); const [serverPac, setServerPac] = useState(""); const _vpnTimeUsedInMin = useRef(0); - const [isPassportInfoOpen, setIsPassportInfoOpen] = useState(false); + const [isPassportInfoPopupOpen, setIsPassportInfoPopupOpen] = useState(false); + const [isSelectPassportPopupOpen, setIsSelectPassportPopupOpen] = useState(false); const [activePassportUpdated, setActivePassportUpdated] = useState(false); + const [activePassport, setActivePassport] = useState(null); + const [purchasingPlan, setPurchasingPlan] = useState("premium"); + const [purchasingPlanPaymentTime, setPurchasingPlanPaymentTime] = useState("monthly"); + const [randomSolanaRPC, setRandomSolanaRPC] = useState(null); useEffect(() => { { @@ -101,7 +126,7 @@ export function DaemonProvider({ children }: DaemonProps) { return ( - + {children} ); diff --git a/src/services/listeners.ts b/src/services/listeners.ts index 7363001..9b0f230 100644 --- a/src/services/listeners.ts +++ b/src/services/listeners.ts @@ -15,11 +15,30 @@ import contracts from "../utils/contracts"; import { initProfileTokens } from "../utils/utils"; import { getVpnTimeUsed } from "./wallets"; -let epoch = 0; +let epoch = 0 +const screanAssets = async (callback: (profiles: profile[]) => void) => { + setProcessingBlock(true); + + const profiles = CoNET_Data?.profiles; + if (!profiles) { + return; + } + const runningList: any[] = []; + + runningList.push(getProfileAssets(profiles[0])); + + await Promise.all(runningList); + + await getVpnTimeUsed(); + + if (CoNET_Data?.profiles[0]) callback(CoNET_Data?.profiles); + + setProcessingBlock(false); +} const listenProfileVer = async (callback: (profiles: profile[]) => void) => { epoch = await conetProvider.getBlockNumber(); - + screanAssets(callback) conetProvider.on("block", async (block) => { if (block === epoch + 1) { epoch++; @@ -27,23 +46,7 @@ const listenProfileVer = async (callback: (profiles: profile[]) => void) => { if (processingBlock === true) return; if (block % 10 === 0) { - setProcessingBlock(true); - - const profiles = CoNET_Data?.profiles; - if (!profiles) { - return; - } - const runningList: any[] = []; - - runningList.push(getProfileAssets(profiles[0])); - - await Promise.all(runningList); - - await getVpnTimeUsed(); - - if (CoNET_Data?.profiles[0]) callback(CoNET_Data?.profiles); - - setProcessingBlock(false); + screanAssets(callback) } } }); diff --git a/src/services/wallets.ts b/src/services/wallets.ts index f1d6241..eb9a76b 100644 --- a/src/services/wallets.ts +++ b/src/services/wallets.ts @@ -4,17 +4,24 @@ import { customJsonStringify, initProfileTokens, postToEndpoint, + aesGcmEncrypt, + aesGcmDecrypt } from "../utils/utils"; import { apiv4_endpoint, + conetDepinProvider, conetProvider, localDatabaseName, } from "../utils/constants"; import contracts from "../utils/contracts"; import { CoNET_Data, setCoNET_Data } from "../utils/globals"; -import { Keypair } from "@solana/web3.js"; -import { mnemonicToSeedSync } from "bip39"; +import { Keypair, PublicKey } from "@solana/web3.js"; import { sha512 } from "@noble/hashes/sha512"; +import {mapLimit} from 'async' +import * as Bip39 from "bip39" +import Bs58 from "bs58" + +const uuid62 = require('uuid62') const PouchDB = require("pouchdb").default; @@ -22,17 +29,22 @@ let isGetFaucetProcess = false; let getFaucetRoop = 0; -// Function to derive the keypair from mnemonic -async function getSolanaKeypairFromMnemonic(mnemonic: string) { - // Convert mnemonic to seed - const seed = mnemonicToSeedSync(mnemonic); - - // Derive the seed for the first account using Solana's HD wallet path - const derivedSeed = await deriveSolanaSeed(seed); +interface SolanaWallet { + publicKey: string; + privateKey: string; + } - // Generate a Keypair from the derived seed - return Keypair.fromSeed(derivedSeed); -} +const initSolana = async (mnemonic: string): Promise => { + if (!Bip39.validateMnemonic(mnemonic)) return false; + + const seed = (await Bip39.mnemonicToSeed(mnemonic)).slice(0, 32); + const keypair = Keypair.fromSeed(new Uint8Array(seed)); + const ret: SolanaWallet = { + publicKey: keypair.publicKey.toBase58(), + privateKey: Bs58.encode(keypair.secretKey), + } + return ret + }; // Function to derive the seed for the given derivation path async function deriveSolanaSeed(seed: any) { @@ -41,15 +53,16 @@ async function deriveSolanaSeed(seed: any) { return hash.slice(0, 32); // Take the first 32 bytes as the private key } -const convertSecretKeyToPrivateKey = (secretKey: any) => { - // Extract the first 32 bytes (private key) - const privateKey = secretKey.slice(0, 32); - // Convert to a 64-character hex string (Ethereum format) - const privateKeyHex = Buffer.from(privateKey).toString("hex"); - return privateKeyHex; -}; +const testSolana = (solanaPublicKey: string) => { + try { + const key = new PublicKey(solanaPublicKey) + } catch (ex) { + return false + } + return true +} const createOrGetWallet = async (secretPhrase: string | null) => { await checkStorage(); @@ -89,18 +102,15 @@ const createOrGetWallet = async (secretPhrase: string | null) => { }; if (acc?.mnemonic?.phrase) { - const secondaryWallet: Keypair = await getSolanaKeypairFromMnemonic( + const secondaryWallet = await initSolana( acc?.mnemonic?.phrase ); - const privateKeyHex = convertSecretKeyToPrivateKey( - secondaryWallet.secretKey - ); const profile2: profile = { tokens: initProfileTokens(), publicKeyArmor: secondaryWallet.publicKey.toString(), - keyID: secondaryWallet.publicKey.toBase58(), + keyID: secondaryWallet.publicKey, isPrimary: true, referrer: null, isNode: false, @@ -108,7 +118,7 @@ const createOrGetWallet = async (secretPhrase: string | null) => { privateKeyArmor: key.privateKey, publicKeyArmor: key.publicKey, }, - privateKeyArmor: privateKeyHex, + privateKeyArmor: secondaryWallet.secretKey, hdPath: null, index: 0, type: "solana", @@ -124,23 +134,19 @@ const createOrGetWallet = async (secretPhrase: string | null) => { if (tmpData) tmpData.profiles.length = 2; if ( - tmpData && - (tmpData?.profiles.length < 2 || tmpData?.profiles[1]?.type !== "solana") + tmpData && ( tmpData?.profiles.length < 2 || + tmpData?.profiles[1]?.type !== "solana" || !testSolana(tmpData?.profiles[1]?.keyID)) ) { - const secondaryWallet = await getSolanaKeypairFromMnemonic( + const secondaryWallet = await initSolana( tmpData.mnemonicPhrase ); - const privateKeyHex = convertSecretKeyToPrivateKey( - secondaryWallet.secretKey - ); - const key = await createGPGKey("", "", ""); const profile2: profile = { tokens: initProfileTokens(), publicKeyArmor: secondaryWallet.publicKey.toString(), - keyID: secondaryWallet.publicKey.toBase58(), + keyID: secondaryWallet.publicKey, isPrimary: true, referrer: null, isNode: false, @@ -148,7 +154,7 @@ const createOrGetWallet = async (secretPhrase: string | null) => { privateKeyArmor: key.privateKey, publicKeyArmor: key.publicKey, }, - privateKeyArmor: privateKeyHex, + privateKeyArmor: secondaryWallet.privateKey, hdPath: null, index: 0, type: "solana", @@ -157,10 +163,10 @@ const createOrGetWallet = async (secretPhrase: string | null) => { tmpData.profiles[1] = profile2; } - tmpData?.profiles.forEach(async (n: profile) => { - n.keyID = n.keyID.toLocaleLowerCase(); - n.tokens.cCNTP.unlocked = false; - }); +// tmpData?.profiles.forEach(async (n: profile) => { +// n.keyID = n.keyID.toLocaleLowerCase(); +// n.tokens.cCNTP.unlocked = false; +// }); setCoNET_Data(tmpData); @@ -383,6 +389,233 @@ const getVpnTimeUsed = async () => { setCoNET_Data(temp); }; +const NFTsProcess = async () => { + if (!CoNET_Data?.profiles[0]) { + return; + } + const profile = CoNET_Data.profiles[0]; + const message = JSON.stringify({ walletAddress: profile.keyID }) + const wallet = new ethers.Wallet(profile.privateKeyArmor) + const signMessage = await wallet.signMessage(message) + const sendData = { + message, signMessage + } + const url = `${apiv4_endpoint}getTestNFTsNew`; + try { + const result: any = await postToEndpoint(url, true, sendData); + return true + } catch(ex) { + return false + } +} +const contract_distributor = new ethers.Contract(contracts.distributor.address, contracts.distributor.abi, conetDepinProvider) +const _getMonthlyNFTs = async(start: number, key: string, privateKeyArmor: string, monthly: distributorNFTs) => { + let _monthly: any = null + try { + _monthly = await contract_distributor.getListOfMonthly(key, start, start + 200) + } catch (ex) { + + } + if (!_monthly) { + return + } + + let index = 0 + await mapLimit(_monthly.used, 1, async (n: boolean, next) => { + + const item: distributorNFTItem = { + id: parseInt(_monthly.nfts[index].toString()), + used: n, + code: _monthly.code[index] ? await aesGcmDecrypt(_monthly.code[index], privateKeyArmor): '', + showRedeemProcess: false + } + monthly.nfts.push(item) + index ++ + + }) + monthly.current = parseInt(_monthly.current.toString()) + monthly.total = parseInt(_monthly.total.toString()) + if (monthly.total > start + _monthly.used.length) { + await _getMonthlyNFTs (start + _monthly.used.length, key, privateKeyArmor, monthly) + } +} + +const _getAnnualNFTs = async(start: number, key: string, privateKeyArmor: string, yearly: distributorNFTs) => { + let _yearly: any = null + try { + _yearly = await contract_distributor.getListOfMonthly(key, start, start + 200) + } catch (ex) { + + } + if (!_yearly) { + return + } + + let index = 0 + await mapLimit(_yearly.used, 1, async (n: boolean, next) => { + const item: distributorNFTItem = { + id: parseInt(_yearly.nfts[index].toString()), + used: n, + code: _yearly.code[index] ? await aesGcmDecrypt(_yearly.code[index], privateKeyArmor): '', + showRedeemProcess: false + } + yearly.nfts.push(item) + index ++ + + }) + yearly.current = parseInt(_yearly.current.toString()) + yearly.total = parseInt(_yearly.total.toString()) + if (_yearly.total > start + _yearly.used.length) { + await _getAnnualNFTs (start + _yearly.used.length, key, privateKeyArmor, yearly) + } +} + +const getNFTs = async () => { + if (!CoNET_Data?.profiles[0]) { + return null; + } + const profile = CoNET_Data.profiles[0] + + + const monthly: distributorNFTs = { + nfts: [], + current: 0, + total: 0 + } + + + const yearly: distributorNFTs = { + nfts: [], + current: 0, + total: 0 + } + + let key = profile.keyID + + await Promise.all([ + _getAnnualNFTs(0, key, profile.privateKeyArmor, yearly), + _getMonthlyNFTs(0, key, profile.privateKeyArmor, monthly) + ]) + + + const ret: distributorNFTObj = {monthly, yearly} + return ret +} + +const checkApprovedForAll = async (wallet: ethers.Wallet) => { + const passport_contract = new ethers.Contract(contracts.SPPassport.address, contracts.testPassport.abi, wallet) + try { + const approved = await passport_contract.isApprovedForAll(wallet.address, contracts.distributor.address) + if (!approved) { + const tx = await passport_contract.setApprovalForAll(contracts.distributor.address, true) + await tx.wait() + } + } catch (ex) { + return false + } + return true +} + +const redeemProcess = async(id: number, monthly: boolean) => { + if (!CoNET_Data?.profiles[0]) { + return null; + } + const profile = CoNET_Data.profiles[0] + const wallet = new ethers.Wallet(profile.privateKeyArmor, conetDepinProvider) + if (!await checkApprovedForAll(wallet)) { + return null + } + const contract_distributor = new ethers.Contract(contracts.distributor.address, contracts.distributor.abi, wallet) + const RedeemCode = uuid62.v4() + const encrypto = await aesGcmEncrypt(RedeemCode, profile.privateKeyArmor) + const _hash = ethers.solidityPacked(['string'], [RedeemCode]) + const hash = ethers.zeroPadBytes(_hash, 32) + try { + const tx = await contract_distributor._generatorCode(monthly, hash, encrypto) + await tx.wait() + } catch (ex) { + return null + } + return RedeemCode +} + +const RealizationRedeem_withSmartContract = async (profile: profile, solana: string, code: string) => { + const wallet = new ethers.Wallet(profile.privateKeyArmor, conetProvider) + const contract_distributor = new ethers.Contract(contracts.distributor.address, contracts.distributor.abi, wallet) + try { + const tx = await contract_distributor.codeToClient(code, solana) + await tx.wait() + } catch (ex) { + return null + } + return true +} + +const RealizationRedeem = async (code: string) => { + if (!CoNET_Data?.profiles?.length) { + return null; + } + const profile = CoNET_Data?.profiles[0] + const solanaWallet = CoNET_Data?.profiles[1].keyID + if (!solanaWallet||!profile) { + return null; + } + const ethBalance = parseInt(profile.tokens.conet_eth.balance) + if (ethBalance > 0.000001) { + return await RealizationRedeem_withSmartContract(profile, solanaWallet, code) + } + const url = `${apiv4_endpoint}codeToClient` + const message = JSON.stringify({ walletAddress: profile.keyID, solanaWallet }) + const wallet = new ethers.Wallet(profile.privateKeyArmor) + const signMessage = await wallet.signMessage(message) + const sendData = { + message, signMessage + } + try { + const result: any = await postToEndpoint(url, true, sendData); + + } catch(ex) { + return null + } + return true +} + +const recoverWallet = async (phrases: string[]) => { + if (phrases.length !== 12) return; + + const fullPhrases = phrases.join(" "); + const recoveredAccount = await ethers.Wallet.fromPhrase(fullPhrases); + + return recoveredAccount; +} + +interface _distributorNFTs { + nfts: BigInt[] + used: boolean[] + code: string[] + current: BigInt + total: BigInt +} + +export interface distributorNFTItem { + id: number + used: boolean + code: string + showRedeemProcess: boolean +} + +export interface distributorNFTs { + nfts: distributorNFTItem[] + current: number + total: number +} + +export interface distributorNFTObj { + monthly: distributorNFTs + yearly: distributorNFTs +} + + export { createOrGetWallet, createGPGKey, @@ -391,4 +624,8 @@ export { getFreePassportInfo, getFaucet, getVpnTimeUsed, + NFTsProcess, + getNFTs, + redeemProcess, + recoverWallet }; diff --git a/src/utils/abis.ts b/src/utils/abis.ts index 752599c..38e66eb 100644 --- a/src/utils/abis.ts +++ b/src/utils/abis.ts @@ -2942,5 +2942,958 @@ export const FreePassportAbi = [ type: "function", }, ]; - +export const Distributor = [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "Passport_Expired", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "SP_passport", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "Solana", + "type": "string" + } + ], + "name": "Reddem", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "NFTsBlacklist", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "_changeActiveNFT", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "hash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "string", + "name": "solana", + "type": "string" + } + ], + "name": "_codeToClient", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "_currentPassport", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "_expires", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "_freeUserOwnerShip", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "monthly", + "type": "bool" + }, + { + "internalType": "bytes32", + "name": "code", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "_code", + "type": "string" + } + ], + "name": "_generatorCode", + "outputs": [ + { + "internalType": "uint256", + "name": "nftID", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "account_nft_monthly", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "account_nft_yearly", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "adminList", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "total", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "monthly", + "type": "bool" + } + ], + "name": "betchMintToDistributor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "certificationStatus", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "changeActiveNFT", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "bool", + "name": "status", + "type": "bool" + } + ], + "name": "changeAddressInAdminlist", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "ID", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "status", + "type": "bool" + } + ], + "name": "changeBlacklist", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "uint256", + "name": "status", + "type": "uint256" + } + ], + "name": "changeCertificationStatus", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "bool", + "name": "status", + "type": "bool" + } + ], + "name": "changeDistributorCertification", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + }, + { + "internalType": "string", + "name": "metadata", + "type": "string" + } + ], + "name": "changeDistributorMetadata", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_days", + "type": "uint256" + } + ], + "name": "changeFreePassportExpiresDays", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "codeStorage", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "code", + "type": "string" + }, + { + "internalType": "string", + "name": "solana", + "type": "string" + } + ], + "name": "codeToClient", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "code_monthly_current", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "code_yearly_current", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "distributorCertification", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "distributorMetadata", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "distributorOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "distributorToClient", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "distributorToClients", + "outputs": [ + { + "internalType": "uint256", + "name": "nftNo", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "string", + "name": "solana", + "type": "string" + }, + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "to", + "type": "address[]" + } + ], + "name": "freePassport", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "getCurrentPassport", + "outputs": [ + { + "internalType": "uint256", + "name": "nftID", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expires", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiresDays", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "premium", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFreePassport", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "startAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "stopAt", + "type": "uint256" + } + ], + "name": "getListOfAnnual", + "outputs": [ + { + "internalType": "uint256[]", + "name": "nfts", + "type": "uint256[]" + }, + { + "internalType": "bool[]", + "name": "used", + "type": "bool[]" + }, + { + "internalType": "string[]", + "name": "code", + "type": "string[]" + }, + { + "internalType": "uint256", + "name": "current", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "total", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "nftNo", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "string", + "name": "solana", + "type": "string" + }, + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "internalType": "struct passport_distributor[]", + "name": "usedTo", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "startAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "stopAt", + "type": "uint256" + } + ], + "name": "getListOfMonthly", + "outputs": [ + { + "internalType": "uint256[]", + "name": "nfts", + "type": "uint256[]" + }, + { + "internalType": "bool[]", + "name": "used", + "type": "bool[]" + }, + { + "internalType": "string[]", + "name": "code", + "type": "string[]" + }, + { + "internalType": "uint256", + "name": "current", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "total", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "nftNo", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "string", + "name": "solana", + "type": "string" + }, + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + } + ], + "internalType": "struct passport_distributor[]", + "name": "usedTo", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "getUserInfo", + "outputs": [ + { + "internalType": "uint256[]", + "name": "nftIDs", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "expires", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "expiresDays", + "type": "uint256[]" + }, + { + "internalType": "bool[]", + "name": "premium", + "type": "bool[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "code", + "type": "string" + } + ], + "name": "hashCode", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "lastestAddressToSolana", + "outputs": [ + { + "internalType": "string", + "name": "solana", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "expiresDayes", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "premium", + "type": "bool" + } + ], + "name": "mintPassport", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "sp_passport", + "outputs": [ + { + "internalType": "contract CoNETDePIN_Passport", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_code", + "type": "string" + }, + { + "internalType": "uint256", + "name": "nftID", + "type": "uint256" + } + ], + "name": "storeCode", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "code", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "_code", + "type": "string" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "transferCode", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } +] export const ConetDepinAbi = []; diff --git a/src/utils/contracts.ts b/src/utils/contracts.ts index c5bbd3d..aaa89a7 100644 --- a/src/utils/contracts.ts +++ b/src/utils/contracts.ts @@ -6,6 +6,7 @@ import { ConetStorageAbi, FreePassportAbi, ConetDepinAbi, + Distributor } from "./abis"; const contracts = { @@ -37,6 +38,18 @@ const contracts = { address: "0xC6edDb4Bc6161259325cf56AEf8b0D4fb289898A", abi: ConetDepinAbi, }, + distributor: { + address: '0x40d64D88A86D6efb721042225B812379dc97bc89', + abi: Distributor + }, + testPassport: { + address: '0x871Bde7837d001c9c02e487f015AD9d0C23Bd5f9', + abi: FreePassportAbi, + }, + SPPassport: { + address: '0x054498c353452A6F29FcA5E7A0c4D13b2D77fF08', + abi: FreePassportAbi, + } }; export default contracts; diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 613cc61..fb8ba60 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -160,3 +160,47 @@ export const parseQueryParams = (queryString: string) => { return params; }; + +export const aesGcmEncrypt = async (plaintext: string, password: string) => { + const pwUtf8 = new TextEncoder().encode(password) // encode password as UTF-8 + const pwHash = await crypto.subtle.digest('SHA-256', pwUtf8) // hash the password + + const iv = crypto.getRandomValues(new Uint8Array(12)) // get 96-bit random iv + const ivStr = Array.from(iv).map(b => String.fromCharCode(b)).join('') // iv as utf-8 string + + const alg = { name: 'AES-GCM', iv: iv } // specify algorithm to use + + const key = await crypto.subtle.importKey('raw', pwHash, alg, false, ['encrypt']) // generate key from pw + + const ptUint8 = new TextEncoder().encode(plaintext) // encode plaintext as UTF-8 + const ctBuffer = await crypto.subtle.encrypt(alg, key, ptUint8) // encrypt plaintext using key + + const ctArray = Array.from(new Uint8Array(ctBuffer)) // ciphertext as byte array + const ctStr = ctArray.map(byte => String.fromCharCode(byte)).join('') // ciphertext as string + + return btoa(ivStr+ctStr) +} + +export const aesGcmDecrypt= async (ciphertext: string, password: string) => { + const pwUtf8 = new TextEncoder().encode(password) // encode password as UTF-8 + const pwHash = await crypto.subtle.digest('SHA-256', pwUtf8) // hash the password + + const ivStr = atob(ciphertext).slice(0,12) // decode base64 iv + const iv = new Uint8Array(Array.from(ivStr).map(ch => ch.charCodeAt(0))) // iv as Uint8Array + + const alg = { name: 'AES-GCM', iv: iv } // specify algorithm to use + + const key = await crypto.subtle.importKey('raw', pwHash, alg, false, ['decrypt']) // generate key from pw + + const ctStr = atob(ciphertext).slice(12) // decode base64 ciphertext + const ctUint8 = new Uint8Array(Array.from(ctStr).map(ch => ch.charCodeAt(0))) // ciphertext as Uint8Array + // note: why doesn't ctUint8 = new TextEncoder().encode(ctStr) work? + + try { + const plainBuffer = await crypto.subtle.decrypt(alg, key, ctUint8) // decrypt ciphertext using key + const plaintext = new TextDecoder().decode(plainBuffer) // plaintext from ArrayBuffer + return plaintext // return the plaintext + } catch (e) { + throw new Error('Decrypt failed') + } +} diff --git a/tsconfig.json b/tsconfig.json index ac64759..b30137c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -19,7 +19,7 @@ "module": "esnext", "moduleResolution": "node", "resolveJsonModule": true, - "isolatedModules": true, + "isolatedModules": false, "noEmit": true, "jsx": "react-jsx" }, diff --git a/yarn.lock b/yarn.lock index bac31ad..28fbffe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34,7 +34,7 @@ jsonpointer "^5.0.0" leven "^3.1.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.24.7", "@babel/code-frame@^7.25.7", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.25.7", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.8.3": version "7.26.2" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz" integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== @@ -48,7 +48,7 @@ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.8.tgz" integrity sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA== -"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.1.0", "@babel/core@^7.11.0", "@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.13.0", "@babel/core@^7.13.16", "@babel/core@^7.16.0", "@babel/core@^7.25.2", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.7.2", "@babel/core@^7.8.0": +"@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.12.3", "@babel/core@^7.16.0", "@babel/core@^7.7.2", "@babel/core@^7.8.0": version "7.25.8" resolved "https://registry.npmjs.org/@babel/core/-/core-7.25.8.tgz" integrity sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg== @@ -78,7 +78,7 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.1" -"@babel/generator@^7.25.0", "@babel/generator@^7.25.7", "@babel/generator@^7.25.9", "@babel/generator@^7.7.2": +"@babel/generator@^7.25.7", "@babel/generator@^7.7.2": version "7.26.2" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz" integrity sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw== @@ -230,7 +230,7 @@ resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz" integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== -"@babel/helper-validator-option@^7.25.7", "@babel/helper-validator-option@^7.25.9": +"@babel/helper-validator-option@^7.25.7": version "7.25.9" resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz" integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== @@ -252,7 +252,7 @@ "@babel/template" "^7.25.7" "@babel/types" "^7.25.7" -"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.25.3", "@babel/parser@^7.25.7", "@babel/parser@^7.25.8", "@babel/parser@^7.25.9", "@babel/parser@^7.26.2": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.25.7", "@babel/parser@^7.25.8", "@babel/parser@^7.25.9", "@babel/parser@^7.26.2": version "7.26.2" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz" integrity sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ== @@ -298,7 +298,7 @@ "@babel/helper-plugin-utils" "^7.25.7" "@babel/traverse" "^7.25.7" -"@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.16.0": +"@babel/plugin-proposal-class-properties@^7.16.0": 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== @@ -315,14 +315,7 @@ "@babel/helper-plugin-utils" "^7.25.7" "@babel/plugin-syntax-decorators" "^7.25.7" -"@babel/plugin-proposal-export-default-from@^7.24.7": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.25.9.tgz" - integrity sha512-ykqgwNfSnNOB+C8fV5X4mG3AVmvu+WVxcaU9xHHtBb7PCrPeweMmPjGsn8eMaeJg6SJuoUuZENeeSWaarWqonQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0": +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0": 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== @@ -338,7 +331,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.16.0": +"@babel/plugin-proposal-optional-chaining@^7.16.0": 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== @@ -395,21 +388,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-default-from@^7.24.7": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.25.9.tgz" - integrity sha512-9MhJ/SMTsVqsd69GyQg89lYR4o9T+oDGv5F6IsigxxqFVOyR/IflDLYP8WDI1l8fkhNGGktqkvL5qwNCtGEpgQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-syntax-flow@^7.12.1", "@babel/plugin-syntax-flow@^7.14.5", "@babel/plugin-syntax-flow@^7.25.9": +"@babel/plugin-syntax-flow@^7.25.9": version "7.26.0" resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.26.0.tgz" integrity sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg== @@ -522,14 +501,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.24.7", "@babel/plugin-transform-arrow-functions@^7.25.7": +"@babel/plugin-transform-arrow-functions@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.7.tgz" integrity sha512-EJN2mKxDwfOUCPxMO6MUI58RN3ganiRAG/MS/S3HfB6QFNjroAMelQo/gybyYq97WerCBAZoyrAoW8Tzdq2jWg== dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-async-generator-functions@^7.25.4", "@babel/plugin-transform-async-generator-functions@^7.25.8": +"@babel/plugin-transform-async-generator-functions@^7.25.8": version "7.25.8" resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.8.tgz" integrity sha512-9ypqkozyzpG+HxlH4o4gdctalFGIjjdufzo7I2XPda0iBnZ6a+FO0rIEQcdSPXp02CkvGsII1exJhmROPQd5oA== @@ -538,7 +517,7 @@ "@babel/helper-remap-async-to-generator" "^7.25.7" "@babel/traverse" "^7.25.7" -"@babel/plugin-transform-async-to-generator@^7.24.7", "@babel/plugin-transform-async-to-generator@^7.25.7": +"@babel/plugin-transform-async-to-generator@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.7.tgz" integrity sha512-ZUCjAavsh5CESCmi/xCpX1qcCaAglzs/7tmuvoFnJgA1dM7gQplsguljoTg+Ru8WENpX89cQyAtWoaE0I3X3Pg== @@ -554,14 +533,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-block-scoping@^7.25.0", "@babel/plugin-transform-block-scoping@^7.25.7": +"@babel/plugin-transform-block-scoping@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.7.tgz" integrity sha512-ZEPJSkVZaeTFG/m2PARwLZQ+OG0vFIhPlKHK/JdIMy8DbRJ/htz6LRrTFtdzxi9EHmcwbNPAKDnadpNSIW+Aow== dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-class-properties@^7.25.4", "@babel/plugin-transform-class-properties@^7.25.7": +"@babel/plugin-transform-class-properties@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.7.tgz" integrity sha512-mhyfEW4gufjIqYFo9krXHJ3ElbFLIze5IDp+wQTxoPd+mwFb1NxatNAwmv8Q8Iuxv7Zc+q8EkiMQwc9IhyGf4g== @@ -577,7 +556,7 @@ "@babel/helper-create-class-features-plugin" "^7.25.7" "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-classes@^7.25.4", "@babel/plugin-transform-classes@^7.25.7": +"@babel/plugin-transform-classes@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.7.tgz" integrity sha512-9j9rnl+YCQY0IGoeipXvnk3niWicIB6kCsWRGLwX241qSXpbA4MKxtp/EdvFxsc4zI5vqfLxzOd0twIJ7I99zg== @@ -589,7 +568,7 @@ "@babel/traverse" "^7.25.7" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.24.7", "@babel/plugin-transform-computed-properties@^7.25.7": +"@babel/plugin-transform-computed-properties@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.7.tgz" integrity sha512-QIv+imtM+EtNxg/XBKL3hiWjgdLjMOmZ+XzQwSgmBfKbfxUjBzGgVPklUuE55eq5/uVoh8gg3dqlrwR/jw3ZeA== @@ -597,7 +576,7 @@ "@babel/helper-plugin-utils" "^7.25.7" "@babel/template" "^7.25.7" -"@babel/plugin-transform-destructuring@^7.24.8", "@babel/plugin-transform-destructuring@^7.25.7": +"@babel/plugin-transform-destructuring@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.7.tgz" integrity sha512-xKcfLTlJYUczdaM1+epcdh1UGewJqr9zATgrNHcLBcV2QmfvPPEixo/sK/syql9cEmbr7ulu5HMFG5vbbt/sEA== @@ -649,7 +628,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-flow-strip-types@^7.16.0", "@babel/plugin-transform-flow-strip-types@^7.25.2", "@babel/plugin-transform-flow-strip-types@^7.25.9": +"@babel/plugin-transform-flow-strip-types@^7.16.0": version "7.25.9" resolved "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.9.tgz" integrity sha512-/VVukELzPDdci7UUsWQaSkhgnjIWXnIyRpM02ldxaVoFK96c41So8JcKT3m0gYjyv7j5FNPGS5vfELrWalkbDA== @@ -657,7 +636,7 @@ "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-syntax-flow" "^7.25.9" -"@babel/plugin-transform-for-of@^7.24.7", "@babel/plugin-transform-for-of@^7.25.7": +"@babel/plugin-transform-for-of@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.7.tgz" integrity sha512-n/TaiBGJxYFWvpJDfsxSj9lEEE44BFM1EPGz4KEiTipTgkoFVVcCmzAL3qA7fdQU96dpo4gGf5HBx/KnDvqiHw== @@ -665,7 +644,7 @@ "@babel/helper-plugin-utils" "^7.25.7" "@babel/helper-skip-transparent-expression-wrappers" "^7.25.7" -"@babel/plugin-transform-function-name@^7.25.1", "@babel/plugin-transform-function-name@^7.25.7": +"@babel/plugin-transform-function-name@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.7.tgz" integrity sha512-5MCTNcjCMxQ63Tdu9rxyN6cAWurqfrDZ76qvVPrGYdBxIj+EawuuxTu/+dgJlhK5eRz3v1gLwp6XwS8XaX2NiQ== @@ -681,14 +660,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-literals@^7.25.2", "@babel/plugin-transform-literals@^7.25.7": +"@babel/plugin-transform-literals@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.7.tgz" integrity sha512-fwzkLrSu2fESR/cm4t6vqd7ebNIopz2QHGtjoU+dswQo/P6lwAG04Q98lliE3jkz/XqnbGFLnUcE0q0CVUf92w== dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-logical-assignment-operators@^7.24.7", "@babel/plugin-transform-logical-assignment-operators@^7.25.8": +"@babel/plugin-transform-logical-assignment-operators@^7.25.8": version "7.25.8" resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.8.tgz" integrity sha512-f5W0AhSbbI+yY6VakT04jmxdxz+WsID0neG7+kQZbCOjuyJNdL5Nn4WIBm4hRpKnUcO9lP0eipUhFN12JpoH8g== @@ -710,7 +689,7 @@ "@babel/helper-module-transforms" "^7.25.7" "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.24.8", "@babel/plugin-transform-modules-commonjs@^7.25.7": +"@babel/plugin-transform-modules-commonjs@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.7.tgz" integrity sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg== @@ -737,7 +716,7 @@ "@babel/helper-module-transforms" "^7.25.7" "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-named-capturing-groups-regex@^7.24.7", "@babel/plugin-transform-named-capturing-groups-regex@^7.25.7": +"@babel/plugin-transform-named-capturing-groups-regex@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.7.tgz" integrity sha512-BtAT9LzCISKG3Dsdw5uso4oV1+v2NlVXIIomKJgQybotJY3OwCwJmkongjHgwGKoZXd0qG5UZ12JUlDQ07W6Ow== @@ -752,21 +731,21 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-nullish-coalescing-operator@^7.24.7", "@babel/plugin-transform-nullish-coalescing-operator@^7.25.8": +"@babel/plugin-transform-nullish-coalescing-operator@^7.25.8": version "7.25.8" resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.8.tgz" integrity sha512-Z7WJJWdQc8yCWgAmjI3hyC+5PXIubH9yRKzkl9ZEG647O9szl9zvmKLzpbItlijBnVhTUf1cpyWBsZ3+2wjWPQ== dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-numeric-separator@^7.24.7", "@babel/plugin-transform-numeric-separator@^7.25.8": +"@babel/plugin-transform-numeric-separator@^7.25.8": version "7.25.8" resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.8.tgz" integrity sha512-rm9a5iEFPS4iMIy+/A/PiS0QN0UyjPIeVvbU5EMZFKJZHt8vQnasbpo3T3EFcxzCeYO0BHfc4RqooCZc51J86Q== dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-object-rest-spread@^7.24.7", "@babel/plugin-transform-object-rest-spread@^7.25.8": +"@babel/plugin-transform-object-rest-spread@^7.25.8": version "7.25.8" resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.8.tgz" integrity sha512-LkUu0O2hnUKHKE7/zYOIjByMa4VRaV2CD/cdGz0AxU9we+VA3kDDggKEzI0Oz1IroG+6gUP6UmWEHBMWZU316g== @@ -783,14 +762,14 @@ "@babel/helper-plugin-utils" "^7.25.7" "@babel/helper-replace-supers" "^7.25.7" -"@babel/plugin-transform-optional-catch-binding@^7.24.7", "@babel/plugin-transform-optional-catch-binding@^7.25.8": +"@babel/plugin-transform-optional-catch-binding@^7.25.8": version "7.25.8" resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.8.tgz" integrity sha512-EbQYweoMAHOn7iJ9GgZo14ghhb9tTjgOc88xFgYngifx7Z9u580cENCV159M4xDh3q/irbhSjZVpuhpC2gKBbg== dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-optional-chaining@^7.24.8", "@babel/plugin-transform-optional-chaining@^7.25.7", "@babel/plugin-transform-optional-chaining@^7.25.8": +"@babel/plugin-transform-optional-chaining@^7.25.7", "@babel/plugin-transform-optional-chaining@^7.25.8": version "7.25.8" resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.8.tgz" integrity sha512-q05Bk7gXOxpTHoQ8RSzGSh/LHVB9JEIkKnk3myAWwZHnYiTGYtbdrYkIsS8Xyh4ltKf7GNUSgzs/6P2bJtBAQg== @@ -798,14 +777,14 @@ "@babel/helper-plugin-utils" "^7.25.7" "@babel/helper-skip-transparent-expression-wrappers" "^7.25.7" -"@babel/plugin-transform-parameters@^7.24.7", "@babel/plugin-transform-parameters@^7.25.7": +"@babel/plugin-transform-parameters@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.7.tgz" integrity sha512-FYiTvku63me9+1Nz7TOx4YMtW3tWXzfANZtrzHhUZrz4d47EEtMQhzFoZWESfXuAMMT5mwzD4+y1N8ONAX6lMQ== dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-private-methods@^7.24.7", "@babel/plugin-transform-private-methods@^7.25.7": +"@babel/plugin-transform-private-methods@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.7.tgz" integrity sha512-KY0hh2FluNxMLwOCHbxVOKfdB5sjWG4M183885FmaqWWiGMhRZq4DQRKH6mHdEucbJnyDyYiZNwNG424RymJjA== @@ -813,7 +792,7 @@ "@babel/helper-create-class-features-plugin" "^7.25.7" "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-private-property-in-object@^7.24.7", "@babel/plugin-transform-private-property-in-object@^7.25.8": +"@babel/plugin-transform-private-property-in-object@^7.25.8": version "7.25.8" resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.8.tgz" integrity sha512-8Uh966svuB4V8RHHg0QJOB32QK287NBksJOByoKmHMp1TAobNniNalIkI2i5IPj5+S9NYCG4VIjbEuiSN8r+ow== @@ -836,7 +815,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.24.7", "@babel/plugin-transform-react-display-name@^7.25.7": +"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.7.tgz" integrity sha512-r0QY7NVU8OnrwE+w2IWiRom0wwsTbjx4+xH2RTd7AVdof3uurXOF+/mXHQDRk+2jIvWgSaCHKMgggfvM4dyUGA== @@ -850,21 +829,7 @@ dependencies: "@babel/plugin-transform-react-jsx" "^7.25.7" -"@babel/plugin-transform-react-jsx-self@^7.24.7": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz" - integrity sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-react-jsx-source@^7.24.7": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz" - integrity sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-transform-react-jsx@^7.14.9", "@babel/plugin-transform-react-jsx@^7.25.2", "@babel/plugin-transform-react-jsx@^7.25.7": +"@babel/plugin-transform-react-jsx@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.7.tgz" integrity sha512-vILAg5nwGlR9EXE8JIOX4NHXd49lrYbN8hnjffDtoULwpL9hUx/N55nqh2qd0q6FyNDfjl9V79ecKGvFbcSA0Q== @@ -883,7 +848,7 @@ "@babel/helper-annotate-as-pure" "^7.25.7" "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-regenerator@^7.24.7", "@babel/plugin-transform-regenerator@^7.25.7": +"@babel/plugin-transform-regenerator@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.7.tgz" integrity sha512-mgDoQCRjrY3XK95UuV60tZlFCQGXEtMg8H+IsW72ldw1ih1jZhzYXbJvghmAEpg5UVhhnCeia1CkGttUvCkiMQ== @@ -898,7 +863,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-runtime@^7.16.4", "@babel/plugin-transform-runtime@^7.24.7": +"@babel/plugin-transform-runtime@^7.16.4": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.7.tgz" integrity sha512-Y9p487tyTzB0yDYQOtWnC+9HGOuogtP3/wNpun1xJXEEvI6vip59BSBTsHnekZLqxmPcgsrAKt46HAAb//xGhg== @@ -910,14 +875,14 @@ babel-plugin-polyfill-regenerator "^0.6.1" semver "^6.3.1" -"@babel/plugin-transform-shorthand-properties@^7.24.7", "@babel/plugin-transform-shorthand-properties@^7.25.7": +"@babel/plugin-transform-shorthand-properties@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.7.tgz" integrity sha512-uBbxNwimHi5Bv3hUccmOFlUy3ATO6WagTApenHz9KzoIdn0XeACdB12ZJ4cjhuB2WSi80Ez2FWzJnarccriJeA== dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-spread@^7.24.7", "@babel/plugin-transform-spread@^7.25.7": +"@babel/plugin-transform-spread@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.7.tgz" integrity sha512-Mm6aeymI0PBh44xNIv/qvo8nmbkpZze1KvR8MkEqbIREDxoiWTi18Zr2jryfRMwDfVZF9foKh060fWgni44luw== @@ -925,7 +890,7 @@ "@babel/helper-plugin-utils" "^7.25.7" "@babel/helper-skip-transparent-expression-wrappers" "^7.25.7" -"@babel/plugin-transform-sticky-regex@^7.24.7", "@babel/plugin-transform-sticky-regex@^7.25.7": +"@babel/plugin-transform-sticky-regex@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.7.tgz" integrity sha512-ZFAeNkpGuLnAQ/NCsXJ6xik7Id+tHuS+NT+ue/2+rn/31zcdnupCdmunOizEaP0JsUmTFSTOPoQY7PkK2pttXw== @@ -946,7 +911,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-typescript@^7.25.2", "@babel/plugin-transform-typescript@^7.25.7": +"@babel/plugin-transform-typescript@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.7.tgz" integrity sha512-VKlgy2vBzj8AmEzunocMun2fF06bsSWV+FvVXohtL6FGve/+L217qhHxRTVGHEDO/YR8IANcjzgJsd04J8ge5Q== @@ -972,7 +937,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.25.7" "@babel/helper-plugin-utils" "^7.25.7" -"@babel/plugin-transform-unicode-regex@^7.24.7", "@babel/plugin-transform-unicode-regex@^7.25.7": +"@babel/plugin-transform-unicode-regex@^7.25.7": version "7.25.7" resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.7.tgz" integrity sha512-8JKfg/hiuA3qXnlLx8qtv5HWRbgyFx2hMMtpDDuU2rTckpKkGu4ycK5yYHwuEa16/quXfoxHBIApEsNyMWnt0g== @@ -988,7 +953,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.25.7" "@babel/helper-plugin-utils" "^7.25.7" -"@babel/preset-env@^7.1.6", "@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4": +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4": version "7.25.8" resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.8.tgz" integrity sha512-58T2yulDHMN8YMUxiLq5YmWUnlDCyY1FsHM+v12VMx+1/FlrUj5tY50iDCpofFQEM8fMYOaY9YRvym2jcjn1Dg== @@ -1062,15 +1027,6 @@ core-js-compat "^3.38.1" semver "^6.3.1" -"@babel/preset-flow@^7.13.13": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.25.9.tgz" - integrity sha512-EASHsAhE+SSlEzJ4bzfusnXSHiU+JfAYzj+jbw2vgQKgq5HrUr8qs+vgtiEL5dOH6sEweI+PNt2D7AqrDSHyqQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - "@babel/helper-validator-option" "^7.25.9" - "@babel/plugin-transform-flow-strip-types" "^7.25.9" - "@babel/preset-modules@0.1.6-no-external-plugins": version "0.1.6-no-external-plugins" resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz" @@ -1092,7 +1048,7 @@ "@babel/plugin-transform-react-jsx-development" "^7.25.7" "@babel/plugin-transform-react-pure-annotations" "^7.25.7" -"@babel/preset-typescript@^7.13.0", "@babel/preset-typescript@^7.16.0": +"@babel/preset-typescript@^7.16.0": version "7.25.7" resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.25.7.tgz" integrity sha512-rkkpaXJZOFN45Fb+Gki0c+KMIglk4+zZXOoMJuyEK8y8Kkc8Jd3BDmP7qPsz0zQMJj+UD7EprF+AqAXcILnexw== @@ -1103,25 +1059,14 @@ "@babel/plugin-transform-modules-commonjs" "^7.25.7" "@babel/plugin-transform-typescript" "^7.25.7" -"@babel/register@^7.13.16": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/register/-/register-7.25.9.tgz" - integrity sha512-8D43jXtGsYmEeDvm4MWHYUpWf8iiXgWYx3fW7E7Wb7Oe6FWqJPl5K6TuFW0dOwNZzEE5rjlaSJYH9JjrUKJszA== - dependencies: - clone-deep "^4.0.1" - find-cache-dir "^2.0.0" - make-dir "^2.1.0" - pirates "^4.0.6" - source-map-support "^0.5.16" - -"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.8", "@babel/runtime@^7.25.0", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.25.0", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": version "7.25.7" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz" integrity sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.25.0", "@babel/template@^7.25.7", "@babel/template@^7.25.9", "@babel/template@^7.3.3": +"@babel/template@^7.25.7", "@babel/template@^7.3.3": version "7.25.9" resolved "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz" integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== @@ -1130,20 +1075,7 @@ "@babel/parser" "^7.25.9" "@babel/types" "^7.25.9" -"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz" - integrity sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw== - dependencies: - "@babel/code-frame" "^7.25.9" - "@babel/generator" "^7.25.9" - "@babel/parser" "^7.25.9" - "@babel/template" "^7.25.9" - "@babel/types" "^7.25.9" - debug "^4.3.1" - globals "^11.1.0" - -"@babel/traverse@^7.25.3", "@babel/traverse@^7.25.7", "@babel/traverse@^7.7.2": +"@babel/traverse@^7.25.7", "@babel/traverse@^7.7.2": version "7.25.7" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz" integrity sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg== @@ -1156,7 +1088,7 @@ debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.25.2", "@babel/types@^7.25.7", "@babel/types@^7.25.8", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.25.7", "@babel/types@^7.25.8", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.26.0" resolved "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz" integrity sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA== @@ -1343,11 +1275,6 @@ wrap-ansi "^8.1.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" -"@isaacs/ttlcache@^1.4.1": - version "1.4.1" - resolved "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz" - integrity sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA== - "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" @@ -1422,13 +1349,6 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/create-cache-key-function@^29.6.3": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz" - integrity sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA== - dependencies: - "@jest/types" "^29.6.3" - "@jest/environment@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz" @@ -1439,16 +1359,6 @@ "@types/node" "*" jest-mock "^27.5.1" -"@jest/environment@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz" - integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== - dependencies: - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - "@jest/fake-timers@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz" @@ -1461,18 +1371,6 @@ jest-mock "^27.5.1" jest-util "^27.5.1" -"@jest/fake-timers@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz" - integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== - dependencies: - "@jest/types" "^29.6.3" - "@sinonjs/fake-timers" "^10.0.2" - "@types/node" "*" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-util "^29.7.0" - "@jest/globals@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz" @@ -1520,13 +1418,6 @@ dependencies: "@sinclair/typebox" "^0.24.1" -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== - dependencies: - "@sinclair/typebox" "^0.27.8" - "@jest/source-map@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz" @@ -1587,27 +1478,6 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/transform@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz" - integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.2" - "@jest/types@^27.5.1": version "27.5.1" resolved "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz" @@ -1631,18 +1501,6 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jest/types@^29.6.3": - version "29.6.3" - resolved "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz" - integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== - dependencies: - "@jest/schemas" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - "@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": version "0.3.5" resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" @@ -1675,7 +1533,7 @@ resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== -"@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": +"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": version "0.3.25" resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== @@ -1695,13 +1553,6 @@ dependencies: eslint-scope "5.1.1" -"@noble/curves@^1.4.2": - version "1.8.1" - resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz" - integrity sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ== - dependencies: - "@noble/hashes" "1.7.1" - "@noble/curves@1.2.0": version "1.2.0" resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz" @@ -1709,21 +1560,28 @@ dependencies: "@noble/hashes" "1.3.2" +"@noble/curves@^1.4.2": + version "1.8.1" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz" + integrity sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ== + dependencies: + "@noble/hashes" "1.7.1" + "@noble/ed25519@^2.2.3": version "2.2.3" resolved "https://registry.npmjs.org/@noble/ed25519/-/ed25519-2.2.3.tgz" integrity sha512-iHV8eI2mRcUmOx159QNrU8vTpQ/Xm70yJ2cTk3Trc86++02usfqFoNl6x0p3JN81ZDS/1gx6xiK0OwrgqCT43g== -"@noble/hashes@^1.2.0", "@noble/hashes@^1.4.0", "@noble/hashes@^1.7.1", "@noble/hashes@1.7.1": - version "1.7.1" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz" - integrity sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ== - "@noble/hashes@1.3.2": version "1.3.2" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz" integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== +"@noble/hashes@1.7.1", "@noble/hashes@^1.2.0", "@noble/hashes@^1.4.0", "@noble/hashes@^1.7.1": + version "1.7.1" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz" + integrity sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" @@ -1732,7 +1590,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -1763,155 +1621,6 @@ schema-utils "^4.2.0" source-map "^0.7.3" -"@react-native/assets-registry@0.76.3": - version "0.76.3" - resolved "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.76.3.tgz" - integrity sha512-7Fnc3lzCFFpnoyL1egua6d/qUp0KiIpeSLbfOMln4nI2g2BMzyFHdPjJnpLV2NehmS0omOOkrfRqK5u1F/MXzA== - -"@react-native/babel-plugin-codegen@0.76.3": - version "0.76.3" - resolved "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.76.3.tgz" - integrity sha512-mZ7jmIIg4bUnxCqY3yTOkoHvvzsDyrZgfnIKiTGm5QACrsIGa5eT3pMFpMm2OpxGXRDrTMsYdPXE2rCyDX52VQ== - dependencies: - "@react-native/codegen" "0.76.3" - -"@react-native/babel-preset@0.76.3": - version "0.76.3" - resolved "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.76.3.tgz" - integrity sha512-zi2nPlQf9q2fmfPyzwWEj6DU96v8ziWtEfG7CTAX2PG/Vjfsr94vn/wWrCdhBVvLRQ6Kvd/MFAuDYpxmQwIiVQ== - dependencies: - "@babel/core" "^7.25.2" - "@babel/plugin-proposal-export-default-from" "^7.24.7" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-default-from" "^7.24.7" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-transform-arrow-functions" "^7.24.7" - "@babel/plugin-transform-async-generator-functions" "^7.25.4" - "@babel/plugin-transform-async-to-generator" "^7.24.7" - "@babel/plugin-transform-block-scoping" "^7.25.0" - "@babel/plugin-transform-class-properties" "^7.25.4" - "@babel/plugin-transform-classes" "^7.25.4" - "@babel/plugin-transform-computed-properties" "^7.24.7" - "@babel/plugin-transform-destructuring" "^7.24.8" - "@babel/plugin-transform-flow-strip-types" "^7.25.2" - "@babel/plugin-transform-for-of" "^7.24.7" - "@babel/plugin-transform-function-name" "^7.25.1" - "@babel/plugin-transform-literals" "^7.25.2" - "@babel/plugin-transform-logical-assignment-operators" "^7.24.7" - "@babel/plugin-transform-modules-commonjs" "^7.24.8" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.24.7" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.7" - "@babel/plugin-transform-numeric-separator" "^7.24.7" - "@babel/plugin-transform-object-rest-spread" "^7.24.7" - "@babel/plugin-transform-optional-catch-binding" "^7.24.7" - "@babel/plugin-transform-optional-chaining" "^7.24.8" - "@babel/plugin-transform-parameters" "^7.24.7" - "@babel/plugin-transform-private-methods" "^7.24.7" - "@babel/plugin-transform-private-property-in-object" "^7.24.7" - "@babel/plugin-transform-react-display-name" "^7.24.7" - "@babel/plugin-transform-react-jsx" "^7.25.2" - "@babel/plugin-transform-react-jsx-self" "^7.24.7" - "@babel/plugin-transform-react-jsx-source" "^7.24.7" - "@babel/plugin-transform-regenerator" "^7.24.7" - "@babel/plugin-transform-runtime" "^7.24.7" - "@babel/plugin-transform-shorthand-properties" "^7.24.7" - "@babel/plugin-transform-spread" "^7.24.7" - "@babel/plugin-transform-sticky-regex" "^7.24.7" - "@babel/plugin-transform-typescript" "^7.25.2" - "@babel/plugin-transform-unicode-regex" "^7.24.7" - "@babel/template" "^7.25.0" - "@react-native/babel-plugin-codegen" "0.76.3" - babel-plugin-syntax-hermes-parser "^0.25.1" - babel-plugin-transform-flow-enums "^0.0.2" - react-refresh "^0.14.0" - -"@react-native/codegen@0.76.3": - version "0.76.3" - resolved "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.76.3.tgz" - integrity sha512-oJCH/jbYeGmFJql8/y76gqWCCd74pyug41yzYAjREso1Z7xL88JhDyKMvxEnfhSdMOZYVl479N80xFiXPy3ZYA== - dependencies: - "@babel/parser" "^7.25.3" - glob "^7.1.1" - hermes-parser "0.23.1" - invariant "^2.2.4" - jscodeshift "^0.14.0" - mkdirp "^0.5.1" - nullthrows "^1.1.1" - yargs "^17.6.2" - -"@react-native/community-cli-plugin@0.76.3": - version "0.76.3" - resolved "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.76.3.tgz" - integrity sha512-vgsLixHS24jR0d0QqPykBWFaC+V8x9cM3cs4oYXw3W199jgBNGP9MWcUJLazD2vzrT/lUTVBVg0rBeB+4XR6fg== - dependencies: - "@react-native/dev-middleware" "0.76.3" - "@react-native/metro-babel-transformer" "0.76.3" - chalk "^4.0.0" - execa "^5.1.1" - invariant "^2.2.4" - metro "^0.81.0" - metro-config "^0.81.0" - metro-core "^0.81.0" - node-fetch "^2.2.0" - readline "^1.3.0" - semver "^7.1.3" - -"@react-native/debugger-frontend@0.76.3": - version "0.76.3" - resolved "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.76.3.tgz" - integrity sha512-pMHQ3NpPB28RxXciSvm2yD+uDx3pkhzfuWkc7VFgOduyzPSIr0zotUiOJzsAtrj8++bPbOsAraCeQhCqoOTWQw== - -"@react-native/dev-middleware@0.76.3": - version "0.76.3" - resolved "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.76.3.tgz" - integrity sha512-b+2IpW40z1/S5Jo5JKrWPmucYU/PzeGyGBZZ/SJvmRnBDaP3txb9yIqNZAII1EWsKNhedh8vyRO5PSuJ9Juqzw== - dependencies: - "@isaacs/ttlcache" "^1.4.1" - "@react-native/debugger-frontend" "0.76.3" - chrome-launcher "^0.15.2" - chromium-edge-launcher "^0.2.0" - connect "^3.6.5" - debug "^2.2.0" - nullthrows "^1.1.1" - open "^7.0.3" - selfsigned "^2.4.1" - serve-static "^1.13.1" - ws "^6.2.3" - -"@react-native/gradle-plugin@0.76.3": - version "0.76.3" - resolved "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.76.3.tgz" - integrity sha512-t0aYZ8ND7+yc+yIm6Yp52bInneYpki6RSIFZ9/LMUzgMKvEB62ptt/7sfho9QkKHCNxE1DJSWIqLIGi/iHHkyg== - -"@react-native/js-polyfills@0.76.3": - version "0.76.3" - resolved "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.76.3.tgz" - integrity sha512-pubJFArMMrdZiytH+W95KngcSQs+LsxOBsVHkwgMnpBfRUxXPMK4fudtBwWvhnwN76Oe+WhxSq7vOS5XgoPhmw== - -"@react-native/metro-babel-transformer@0.76.3": - version "0.76.3" - resolved "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.76.3.tgz" - integrity sha512-b2zQPXmW7avw/7zewc9nzMULPIAjsTwN03hskhxHUJH5pzUf7pIklB3FrgYPZrRhJgzHiNl3tOPu7vqiKzBYPg== - dependencies: - "@babel/core" "^7.25.2" - "@react-native/babel-preset" "0.76.3" - hermes-parser "0.23.1" - nullthrows "^1.1.1" - -"@react-native/normalize-colors@0.76.3": - version "0.76.3" - resolved "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.76.3.tgz" - integrity sha512-Yrpmrh4IDEupUUM/dqVxhAN8QW1VEUR3Qrk2lzJC1jB2s46hDe0hrMP2vs12YJqlzshteOthjwXQlY0TgIzgbg== - -"@react-native/virtualized-lists@0.76.3": - version "0.76.3" - resolved "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.76.3.tgz" - integrity sha512-wTGv9pVh3vAOWb29xFm+J9VRe9dUcUcb9FyaMLT/Hxa88W4wqa5ZMe1V9UvrrBiA1G5DKjv8/1ZcDsJhyugVKA== - dependencies: - invariant "^2.2.4" - nullthrows "^1.1.1" - "@react-spring/animated@~9.7.5": version "9.7.5" resolved "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.5.tgz" @@ -1997,24 +1706,6 @@ "@react-spring/shared" "~9.7.5" "@react-spring/types" "~9.7.5" -"@react-three/fiber@>=6.0": - version "8.17.10" - resolved "https://registry.npmjs.org/@react-three/fiber/-/fiber-8.17.10.tgz" - integrity sha512-S6bqa4DqUooEkInYv/W+Jklv2zjSYCXAhm6qKpAQyOXhTEt5gBXnA7W6aoJ0bjmp9pAeaSj/AZUoz1HCSof/uA== - dependencies: - "@babel/runtime" "^7.17.8" - "@types/debounce" "^1.2.1" - "@types/react-reconciler" "^0.26.7" - "@types/webxr" "*" - base64-js "^1.5.1" - buffer "^6.0.3" - debounce "^1.2.1" - its-fine "^1.0.6" - react-reconciler "^0.27.0" - scheduler "^0.21.0" - suspend-react "^0.1.3" - zustand "^3.7.1" - "@remix-run/router@1.20.0": version "1.20.0" resolved "https://registry.npmjs.org/@remix-run/router/-/router-1.20.0.tgz" @@ -2072,11 +1763,6 @@ resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz" integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== - "@sinonjs/commons@^1.7.0": version "1.8.6" resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz" @@ -2084,20 +1770,6 @@ dependencies: type-detect "4.0.8" -"@sinonjs/commons@^3.0.0": - version "3.0.1" - resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz" - integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^10.0.2": - version "10.3.0" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz" - integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== - dependencies: - "@sinonjs/commons" "^3.0.0" - "@sinonjs/fake-timers@^8.0.1": version "8.1.0" resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz" @@ -2267,20 +1939,6 @@ lz-string "^1.5.0" pretty-format "^27.0.2" -"@testing-library/dom@>=7.21.4": - version "10.4.0" - resolved "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz" - integrity sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.12.5" - "@types/aria-query" "^5.0.1" - aria-query "5.3.0" - chalk "^4.1.0" - dom-accessibility-api "^0.5.9" - lz-string "^1.5.0" - pretty-format "^27.0.2" - "@testing-library/jest-dom@^5.17.0": version "5.17.0" resolved "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz" @@ -2332,7 +1990,7 @@ resolved "https://registry.npmjs.org/@types/async/-/async-3.2.24.tgz" integrity sha512-8iHVLHsCCOBKjCF2KwFe0p9Z3rfM9mL+sSP8btyR5vTjJRAqpBYD28/ZLgXPf0pjG1VxOvtCV/BgXkQbpSe8Hw== -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.1.9": +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": version "7.20.5" resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz" integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== @@ -2385,6 +2043,14 @@ dependencies: "@types/node" "*" +"@types/bs58@^4.0.4": + version "4.0.4" + resolved "https://registry.npmjs.org/@types/bs58/-/bs58-4.0.4.tgz" + integrity sha512-0IEpMFXXQi2zXaXl9GJ3sRwQo0uEkD+yFOv+FnAU5lkPtcu6h61xb7jc2CFPEZ5BUOaiP13ThuGc9HD4R8lR5g== + dependencies: + "@types/node" "*" + base-x "^3.0.6" + "@types/connect-history-api-fallback@^1.3.5": version "1.5.4" resolved "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz" @@ -2400,11 +2066,6 @@ dependencies: "@types/node" "*" -"@types/debounce@^1.2.1": - version "1.2.4" - resolved "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.4.tgz" - integrity sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw== - "@types/eslint@^7.29.0 || ^8.4.1": version "8.56.12" resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.12.tgz" @@ -2453,7 +2114,7 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/graceful-fs@^4.1.2", "@types/graceful-fs@^4.1.3": +"@types/graceful-fs@^4.1.2": version "4.1.9" resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz" integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== @@ -2533,11 +2194,6 @@ dependencies: undici-types "~6.19.8" -"@types/node@^12.12.54": - version "12.20.55" - resolved "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz" - integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - "@types/node@22.7.5": version "22.7.5" resolved "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz" @@ -2545,6 +2201,11 @@ dependencies: undici-types "~6.19.2" +"@types/node@^12.12.54": + version "12.20.55" + resolved "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz" + integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== + "@types/parse-json@^4.0.0": version "4.0.2" resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz" @@ -2582,28 +2243,7 @@ dependencies: "@types/react" "*" -"@types/react-reconciler@^0.26.7": - version "0.26.7" - resolved "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.26.7.tgz" - integrity sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ== - dependencies: - "@types/react" "*" - -"@types/react-reconciler@^0.28.0": - version "0.28.8" - resolved "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.8.tgz" - integrity sha512-SN9c4kxXZonFhbX4hJrZy37yw9e7EIxcpHCxQv5JUS18wDE5ovkQKlqQEkufdJCCMfuI9BnjUJvhYeJ9x5Ra7g== - dependencies: - "@types/react" "*" - -"@types/react-reconciler@^0.28.2": - version "0.28.8" - resolved "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.8.tgz" - integrity sha512-SN9c4kxXZonFhbX4hJrZy37yw9e7EIxcpHCxQv5JUS18wDE5ovkQKlqQEkufdJCCMfuI9BnjUJvhYeJ9x5Ra7g== - dependencies: - "@types/react" "*" - -"@types/react@*", "@types/react@^18.2.6", "@types/react@^18.3.11": +"@types/react@*", "@types/react@^18.3.11": version "18.3.11" resolved "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz" integrity sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ== @@ -2681,11 +2321,6 @@ resolved "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz" integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== -"@types/webxr@*": - version "0.5.20" - resolved "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.20.tgz" - integrity sha512-JGpU6qiIJQKUuVSKx1GtQnHJGxRjtfGIhzO2ilq43VZZS//f1h1Sgexbdk+Lq+7569a6EYhOWrUpIruR/1Enmg== - "@types/ws@^7.4.4": version "7.4.7" resolved "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz" @@ -2719,7 +2354,7 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.0.0 || ^5.0.0", "@typescript-eslint/eslint-plugin@^5.5.0": +"@typescript-eslint/eslint-plugin@^5.5.0": version "5.62.0" resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz" integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== @@ -2742,7 +2377,7 @@ dependencies: "@typescript-eslint/utils" "5.62.0" -"@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.5.0": +"@typescript-eslint/parser@^5.5.0": version "5.62.0" resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz" integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== @@ -2788,7 +2423,7 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@^5.58.0", "@typescript-eslint/utils@5.62.0": +"@typescript-eslint/utils@5.62.0", "@typescript-eslint/utils@^5.58.0": version "5.62.0" resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz" integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== @@ -2815,7 +2450,7 @@ resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== -"@webassemblyjs/ast@^1.12.1", "@webassemblyjs/ast@1.12.1": +"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": version "1.12.1" resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz" integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== @@ -2916,7 +2551,7 @@ "@webassemblyjs/wasm-gen" "1.12.1" "@webassemblyjs/wasm-parser" "1.12.1" -"@webassemblyjs/wasm-parser@^1.12.1", "@webassemblyjs/wasm-parser@1.12.1": +"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1": version "1.12.1" resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz" integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== @@ -2946,18 +2581,19 @@ resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + abab@^2.0.3, abab@^2.0.5: version "2.0.6" resolved "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz" integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - abstract-leveldown@^6.2.1, abstract-leveldown@~6.2.1, abstract-leveldown@~6.2.3: version "6.2.3" resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz" @@ -2981,7 +2617,7 @@ abstract-leveldown@^7.2.0: level-supports "^2.0.1" queue-microtask "^1.2.3" -accepts@^1.3.7, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== @@ -3012,16 +2648,16 @@ acorn-walk@^7.1.1: resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8, acorn@^8.2.4, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: - version "8.13.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz" - integrity sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w== - acorn@^7.1.1: version "7.4.1" resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn@^8.2.4, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: + version "8.13.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz" + integrity sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w== + address@^1.0.1, address@^1.1.2: version "1.2.2" resolved "https://registry.npmjs.org/address/-/address-1.2.2.tgz" @@ -3073,7 +2709,7 @@ ajv-keywords@^5.1.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1: +ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -3083,27 +2719,7 @@ ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0: - version "8.17.1" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz" - integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== - dependencies: - fast-deep-equal "^3.1.3" - fast-uri "^3.0.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - -ajv@^8.6.0, ajv@>=8: - version "8.17.1" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz" - integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== - dependencies: - fast-deep-equal "^3.1.3" - fast-uri "^3.0.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - -ajv@^8.8.2, ajv@^8.9.0: +ajv@^8.0.0, ajv@^8.6.0, ajv@^8.9.0: version "8.17.1" resolved "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz" integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== @@ -3113,11 +2729,6 @@ ajv@^8.8.2, ajv@^8.9.0: json-schema-traverse "^1.0.0" require-from-string "^2.0.2" -anser@^1.4.9: - version "1.4.10" - resolved "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz" - integrity sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww== - ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: version "4.3.2" resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" @@ -3135,7 +2746,7 @@ ansi-html@^0.0.9: resolved "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.9.tgz" integrity sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg== -ansi-regex@^5.0.0, ansi-regex@^5.0.1: +ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== @@ -3152,14 +2763,7 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^4.1.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -3206,20 +2810,13 @@ argparse@^2.0.1: resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -aria-query@^5.0.0, aria-query@~5.1.3, aria-query@5.1.3: +aria-query@5.1.3, aria-query@^5.0.0, aria-query@~5.1.3: version "5.1.3" resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz" integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== dependencies: deep-equal "^2.0.5" -aria-query@5.3.0: - version "5.3.0" - resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz" - integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== - dependencies: - dequal "^2.0.3" - array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz" @@ -3342,18 +2939,6 @@ ast-types-flow@^0.0.8: resolved "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz" integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== -ast-types@0.15.2: - version "0.15.2" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz" - integrity sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg== - dependencies: - tslib "^2.0.1" - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - async@^3.2.3, async@^3.2.6: version "3.2.6" resolved "https://registry.npmjs.org/async/-/async-3.2.6.tgz" @@ -3407,11 +2992,6 @@ axobject-query@^4.1.0: resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz" integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ== -babel-core@^7.0.0-bridge.0: - version "7.0.0-bridge.0" - resolved "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz" - integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== - babel-jest@^27.4.2, babel-jest@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz" @@ -3426,19 +3006,6 @@ babel-jest@^27.4.2, babel-jest@^27.5.1: graceful-fs "^4.2.9" slash "^3.0.0" -babel-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz" - integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== - dependencies: - "@jest/transform" "^29.7.0" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.6.3" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - babel-loader@^8.2.3: version "8.4.1" resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz" @@ -3470,16 +3037,6 @@ babel-plugin-jest-hoist@^27.5.1: "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -babel-plugin-jest-hoist@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz" - integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - babel-plugin-macros@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz" @@ -3518,27 +3075,6 @@ babel-plugin-polyfill-regenerator@^0.6.1: dependencies: "@babel/helper-define-polyfill-provider" "^0.6.2" -babel-plugin-syntax-hermes-parser@^0.23.1: - version "0.23.1" - resolved "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.23.1.tgz" - integrity sha512-uNLD0tk2tLUjGFdmCk+u/3FEw2o+BAwW4g+z2QVlxJrzZYOOPADroEcNtTPt5lNiScctaUmnsTkVEnOwZUOLhA== - dependencies: - hermes-parser "0.23.1" - -babel-plugin-syntax-hermes-parser@^0.25.1: - version "0.25.1" - resolved "https://registry.npmjs.org/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.25.1.tgz" - integrity sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ== - dependencies: - hermes-parser "0.25.1" - -babel-plugin-transform-flow-enums@^0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz" - integrity sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ== - dependencies: - "@babel/plugin-syntax-flow" "^7.12.1" - babel-plugin-transform-react-remove-prop-types@^0.4.24: version "0.4.24" resolved "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz" @@ -3573,14 +3109,6 @@ babel-preset-jest@^27.5.1: babel-plugin-jest-hoist "^27.5.1" babel-preset-current-node-syntax "^1.0.0" -babel-preset-jest@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz" - integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== - dependencies: - babel-plugin-jest-hoist "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" - babel-preset-react-app@^10.0.1: version "10.0.1" resolved "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz" @@ -3608,14 +3136,26 @@ balanced-match@^1.0.0: resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base-x@^3.0.2: +base-x@3.0.9: + version "3.0.9" + resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + +base-x@^3.0.2, base-x@^3.0.6: version "3.0.10" resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz" integrity sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ== dependencies: safe-buffer "^5.0.1" -base64-js@^1.3.1, base64-js@^1.5.1: +base-x@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/base-x/-/base-x-5.0.1.tgz" + integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== + +base64-js@^1.3.1: version "1.5.1" resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -3749,7 +3289,7 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.23.3, browserslist@^4.24.0, "browserslist@>= 4", "browserslist@>= 4.21.0", browserslist@>=4: +browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.23.3, browserslist@^4.24.0: version "4.24.0" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz" integrity sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A== @@ -3766,6 +3306,13 @@ bs58@^4.0.0, bs58@^4.0.1: dependencies: base-x "^3.0.2" +bs58@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz" + integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== + dependencies: + base-x "^5.0.0" + bser@2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" @@ -3778,23 +3325,7 @@ buffer-from@^1.0.0: resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer@^5.5.0, buffer@^5.6.0: - version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -buffer@^6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -buffer@~6.0.3: +buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: version "6.0.3" resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== @@ -3802,13 +3333,13 @@ buffer@~6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -buffer@6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== +buffer@^5.5.0, buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: base64-js "^1.3.1" - ieee754 "^1.2.1" + ieee754 "^1.1.13" bufferutil@^4.0.1: version "4.0.9" @@ -3848,25 +3379,6 @@ call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: get-intrinsic "^1.2.4" set-function-length "^1.2.1" -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz" - integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz" - integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz" - integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== - callsites@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" @@ -3937,31 +3449,7 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.2: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.1.2: +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -3999,38 +3487,11 @@ chokidar@^3.4.2, chokidar@^3.5.3: optionalDependencies: fsevents "~2.3.2" -chrome-launcher@^0.15.2: - version "0.15.2" - resolved "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz" - integrity sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ== - dependencies: - "@types/node" "*" - escape-string-regexp "^4.0.0" - is-wsl "^2.2.0" - lighthouse-logger "^1.0.0" - chrome-trace-event@^1.0.2: version "1.0.4" resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz" integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== -chromium-edge-launcher@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-0.2.0.tgz" - integrity sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg== - dependencies: - "@types/node" "*" - escape-string-regexp "^4.0.0" - is-wsl "^2.2.0" - lighthouse-logger "^1.0.0" - mkdirp "^1.0.4" - rimraf "^3.0.2" - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - ci-info@^3.2.0: version "3.9.0" resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz" @@ -4057,24 +3518,6 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - co@^4.6.0: version "4.6.0" resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" @@ -4108,16 +3551,16 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - color-name@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + colord@^2.9.1: version "2.9.3" resolved "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz" @@ -4135,17 +3578,7 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" -commander@^12.0.0: - version "12.1.0" - resolved "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz" - integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^2.20.3: +commander@^2.20.0, commander@^2.20.3: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -4210,16 +3643,6 @@ connect-history-api-fallback@^2.0.0: resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz" integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== -connect@^3.6.5: - version "3.7.0" - resolved "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz" - integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== - dependencies: - debug "2.6.9" - finalhandler "1.1.2" - parseurl "~1.3.3" - utils-merge "1.0.1" - content-disposition@0.5.4: version "0.5.4" resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" @@ -4232,17 +3655,7 @@ content-type@~1.0.4, content-type@~1.0.5: resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -convert-source-map@^1.4.0: - version "1.9.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -convert-source-map@^1.6.0: - version "1.9.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -convert-source-map@^1.7.0: +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== @@ -4291,16 +3704,6 @@ core-util-is@~1.0.0: resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cosmiconfig@^5.0.5: - version "5.2.1" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - cosmiconfig@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz" @@ -4413,15 +3816,15 @@ css-select@^4.1.3: domutils "^2.8.0" nth-check "^2.0.1" -css-tree@^1.1.2: - version "1.1.3" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" - integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== dependencies: - mdn-data "2.0.14" + mdn-data "2.0.4" source-map "^0.6.1" -css-tree@^1.1.3: +css-tree@^1.1.2, css-tree@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz" integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== @@ -4429,14 +3832,6 @@ css-tree@^1.1.3: mdn-data "2.0.14" source-map "^0.6.1" -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - css-what@^3.2.1: version "3.4.2" resolved "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz" @@ -4581,31 +3976,19 @@ data-view-byte-offset@^1.0.0: es-errors "^1.3.0" is-data-view "^1.0.1" -debounce@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz" - integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== - -debug@^2.2.0: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^2.6.0: +debug@2.6.9, debug@^2.6.0: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.7" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== dependencies: - ms "2.0.0" + ms "^2.1.3" debug@^3.2.7: version "3.2.7" @@ -4614,20 +3997,6 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@4: - version "4.3.7" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz" - integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== - dependencies: - ms "^2.1.3" - -debug@2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - decimal.js@^10.2.1: version "10.4.3" resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz" @@ -4720,25 +4089,15 @@ delayed-stream@~1.0.0: resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -denodeify@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz" - integrity sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg== - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - depd@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -dequal@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" - integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== destroy@1.2.0: version "1.2.0" @@ -4818,6 +4177,14 @@ dom-converter@^0.2.0: dependencies: utila "~0.4" +dom-serializer@0: + version "0.2.2" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + dom-serializer@^1.0.1: version "1.4.1" resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz" @@ -4827,24 +4194,16 @@ dom-serializer@^1.0.1: domhandler "^4.2.0" entities "^2.0.0" -dom-serializer@0: - version "0.2.2" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" +domelementtype@1: + version "1.3.1" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.3.0" resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== -domelementtype@1: - version "1.3.1" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - domexception@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz" @@ -5347,7 +4706,7 @@ eslint-plugin-testing-library@^5.0.1: dependencies: "@typescript-eslint/utils" "^5.58.0" -eslint-scope@^5.1.1: +eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -5363,14 +4722,6 @@ eslint-scope@^7.2.2: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-scope@5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - eslint-visitor-keys@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" @@ -5392,7 +4743,7 @@ eslint-webpack-plugin@^3.1.1: normalize-path "^3.0.0" schema-utils "^4.0.0" -eslint@*, "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.5.0 || ^8.0.0", "eslint@^7.5.0 || ^8.0.0 || ^9.0.0", eslint@^8.0.0, eslint@^8.1.0, eslint@^8.3.0, "eslint@>= 6": +eslint@^8.3.0: version "8.57.1" resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz" integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== @@ -5445,16 +4796,16 @@ espree@^9.6.0, espree@^9.6.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - esprima@1.2.2: version "1.2.2" resolved "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz" integrity sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A== +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + esquery@^1.4.2: version "1.6.0" resolved "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz" @@ -5469,12 +4820,7 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^4.2.0: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -5512,11 +4858,6 @@ ethers@^6.13.4: tslib "2.7.0" ws "8.17.1" -event-target-shim@^5.0.0, event-target-shim@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - eventemitter3@^4.0.0: version "4.0.7" resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" @@ -5532,7 +4873,7 @@ events@^3.2.0: resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -execa@^5.0.0, execa@^5.1.1: +execa@^5.0.0: version "5.1.1" resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -5562,11 +4903,6 @@ expect@^27.5.1: jest-matcher-utils "^27.5.1" jest-message-util "^27.5.1" -exponential-backoff@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz" - integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== - express@^4.17.3: version "4.21.1" resolved "https://registry.npmjs.org/express/-/express-4.21.1.tgz" @@ -5713,19 +5049,6 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - finalhandler@1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz" @@ -5739,15 +5062,6 @@ finalhandler@1.3.1: statuses "2.0.1" unpipe "~1.0.0" -find-cache-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - find-cache-dir@^3.3.1: version "3.3.2" resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz" @@ -5794,16 +5108,6 @@ flatted@^3.2.9: resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz" integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== -flow-enums-runtime@^0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz" - integrity sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw== - -flow-parser@0.*: - version "0.254.2" - resolved "https://registry.npmjs.org/flow-parser/-/flow-parser-0.254.2.tgz" - integrity sha512-18xCQaVdKNCY0TAEhwUdk1HmRdgsPSraWwu0Zifqo5M4Ubi9LjWTAdlfBFb07Os+fQ9TmzxlyZN6OxK0m9xrBw== - follow-redirects@^1.0.0, follow-redirects@^1.15.6: version "1.15.9" resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz" @@ -5894,17 +5198,7 @@ fs-extra@^10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^9.0.0: - version "9.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@^9.0.1: +fs-extra@^9.0.0, fs-extra@^9.0.1: version "9.1.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -5924,6 +5218,11 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== +fsevents@^2.3.2, fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" @@ -5989,7 +5288,7 @@ get-symbol-description@^1.0.2: es-errors "^1.3.0" get-intrinsic "^1.2.4" -glob-parent@^5.1.2: +glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -6003,13 +5302,6 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" @@ -6094,7 +5386,7 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -6172,42 +5464,6 @@ he@^1.2.0: resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hermes-estree@0.23.1: - version "0.23.1" - resolved "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.1.tgz" - integrity sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg== - -hermes-estree@0.24.0: - version "0.24.0" - resolved "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.24.0.tgz" - integrity sha512-LyoXLB7IFzeZW0EvAbGZacbxBN7t6KKSDqFJPo3Ydow7wDlrDjXwsdiAHV6XOdvEN9MEuWXsSIFN4tzpyrXIHw== - -hermes-estree@0.25.1: - version "0.25.1" - resolved "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz" - integrity sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw== - -hermes-parser@0.23.1: - version "0.23.1" - resolved "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.1.tgz" - integrity sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA== - dependencies: - hermes-estree "0.23.1" - -hermes-parser@0.24.0: - version "0.24.0" - resolved "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.24.0.tgz" - integrity sha512-IJooSvvu2qNRe7oo9Rb04sUT4omtZqZqf9uq9WM25Tb6v3usmvA93UqfnnoWs5V0uYjEl9Al6MNU10MCGKLwpg== - dependencies: - hermes-estree "0.24.0" - -hermes-parser@0.25.1: - version "0.25.1" - resolved "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz" - integrity sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA== - dependencies: - hermes-estree "0.25.1" - hoopy@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz" @@ -6279,16 +5535,6 @@ http-deceiver@^1.2.7: resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - http-errors@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" @@ -6300,6 +5546,16 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + http-parser-js@>=0.5.1: version "0.5.8" resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz" @@ -6354,13 +5610,6 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -iconv-lite@^0.6.3: - version "0.6.3" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" @@ -6368,6 +5617,13 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + icss-utils@^5.0.0, icss-utils@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz" @@ -6395,13 +5651,6 @@ ignore@^5.2.0: resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== -image-size@^1.0.2: - version "1.1.1" - resolved "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz" - integrity sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ== - dependencies: - queue "6.0.2" - immediate@^3.2.3: version "3.3.0" resolved "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz" @@ -6412,14 +5661,6 @@ immer@^9.0.7: resolved "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz" integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz" - integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" @@ -6454,7 +5695,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@2, inherits@2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -6478,23 +5719,16 @@ internal-slot@^1.0.4, internal-slot@^1.0.7: hasown "^2.0.0" side-channel "^1.0.4" -invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== ipaddr.js@^2.0.1: version "2.2.0" resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz" integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - is-arguments@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" @@ -6576,11 +5810,6 @@ is-date-object@^1.0.1, is-date-object@^1.0.5: dependencies: has-tostringtag "^1.0.0" -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz" - integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== - is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" @@ -6664,13 +5893,6 @@ is-plain-obj@^3.0.0: resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz" integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== -is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" @@ -6757,13 +5979,18 @@ is-weakset@^2.0.3: call-bind "^1.0.7" get-intrinsic "^1.2.4" -is-wsl@^2.1.1, is-wsl@^2.2.0: +is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + isarray@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" @@ -6774,21 +6001,11 @@ isarray@~1.0.0: resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - isomorphic-ws@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz" @@ -6847,13 +6064,6 @@ iterator.prototype@^1.1.3: reflect.getprototypeof "^1.0.4" set-function-name "^2.0.1" -its-fine@^1.0.6, its-fine@^1.1.1: - version "1.2.5" - resolved "https://registry.npmjs.org/its-fine/-/its-fine-1.2.5.tgz" - integrity sha512-fXtDA0X0t0eBYAGLVM5YsgJGsJ5jEmqZEPrGbzdf5awjv0xE7nqv3TVnvtUF060Tkes15DbDAKW/I48vsb6SyA== - dependencies: - "@types/react-reconciler" "^0.28.0" - jackspeak@^3.1.2: version "3.4.3" resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz" @@ -6881,13 +6091,13 @@ jayson@^4.1.1: "@types/connect" "^3.4.33" "@types/node" "^12.12.54" "@types/ws" "^7.4.4" + JSONStream "^1.3.5" commander "^2.20.3" delay "^5.0.0" es6-promisify "^5.0.0" eyes "^0.1.8" isomorphic-ws "^4.0.1" json-stringify-safe "^5.0.1" - JSONStream "^1.3.5" uuid "^8.3.2" ws "^7.5.10" @@ -7026,28 +6236,11 @@ jest-environment-node@^27.5.1: jest-mock "^27.5.1" jest-util "^27.5.1" -jest-environment-node@^29.6.3: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz" - integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - jest-util "^29.7.0" - jest-get-type@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz" integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== -jest-get-type@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz" - integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== - jest-haste-map@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz" @@ -7068,25 +6261,6 @@ jest-haste-map@^27.5.1: optionalDependencies: fsevents "^2.3.2" -jest-haste-map@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz" - integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== - dependencies: - "@jest/types" "^29.6.3" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - jest-worker "^29.7.0" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - jest-jasmine2@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz" @@ -7158,21 +6332,6 @@ jest-message-util@^28.1.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-message-util@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz" - integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - stack-utils "^2.0.3" - jest-mock@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz" @@ -7181,15 +6340,6 @@ jest-mock@^27.5.1: "@jest/types" "^27.5.1" "@types/node" "*" -jest-mock@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz" - integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-util "^29.7.0" - jest-pnp-resolver@^1.2.2: version "1.2.3" resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz" @@ -7205,11 +6355,6 @@ jest-regex-util@^28.0.0: resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz" integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== -jest-regex-util@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz" - integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== - jest-resolve-dependencies@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz" @@ -7219,7 +6364,7 @@ jest-resolve-dependencies@^27.5.1: jest-regex-util "^27.5.1" jest-snapshot "^27.5.1" -jest-resolve@*, jest-resolve@^27.4.2, jest-resolve@^27.5.1: +jest-resolve@^27.4.2, jest-resolve@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz" integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== @@ -7350,18 +6495,6 @@ jest-util@^28.1.3: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-util@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz" - integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - jest-validate@^27.5.1: version "27.5.1" resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz" @@ -7374,18 +6507,6 @@ jest-validate@^27.5.1: leven "^3.1.0" pretty-format "^27.5.1" -jest-validate@^29.6.3: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz" - integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== - dependencies: - "@jest/types" "^29.6.3" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^29.6.3" - leven "^3.1.0" - pretty-format "^29.7.0" - jest-watch-typeahead@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz" @@ -7453,27 +6574,7 @@ jest-worker@^28.0.2: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.6.3: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz" - integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== - dependencies: - "@types/node" "*" - jest-util "^29.7.0" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest-worker@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz" - integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== - dependencies: - "@types/node" "*" - jest-util "^29.7.0" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -"jest@^27.0.0 || ^28.0.0", jest@^27.4.3: +jest@^27.4.3: version "27.5.1" resolved "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz" integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== @@ -7507,41 +6608,6 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsc-android@^250231.0.0: - version "250231.0.0" - resolved "https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz" - integrity sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw== - -jsc-safe-url@^0.2.2: - version "0.2.4" - resolved "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz" - integrity sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q== - -jscodeshift@^0.14.0: - version "0.14.0" - resolved "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz" - integrity sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA== - dependencies: - "@babel/core" "^7.13.16" - "@babel/parser" "^7.13.16" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" - "@babel/plugin-proposal-optional-chaining" "^7.13.12" - "@babel/plugin-transform-modules-commonjs" "^7.13.8" - "@babel/preset-flow" "^7.13.13" - "@babel/preset-typescript" "^7.13.0" - "@babel/register" "^7.13.16" - babel-core "^7.0.0-bridge.0" - chalk "^4.1.2" - flow-parser "0.*" - graceful-fs "^4.2.4" - micromatch "^4.0.4" - neo-async "^2.5.0" - node-dir "^0.1.17" - recast "^0.21.0" - temp "^0.8.4" - write-file-atomic "^2.3.0" - jsdom@^16.6.0: version "16.7.0" resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz" @@ -7585,11 +6651,6 @@ json-buffer@3.0.1: resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" @@ -7660,14 +6721,6 @@ jsonpointer@^5.0.0: resolved "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz" integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== -JSONStream@^1.3.5: - version "1.3.5" - resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5: version "3.3.5" resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz" @@ -7700,11 +6753,6 @@ klona@^2.0.4, klona@^2.0.5: resolved "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz" integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== -"konva@^8.0.1 || ^7.2.5 || ^9.0.0", konva@>=2.6: - version "9.3.16" - resolved "https://registry.npmjs.org/konva/-/konva-9.3.16.tgz" - integrity sha512-qa47cefGDDHzkToGRGDsy24f/Njrz7EHP56jQ8mlDcjAPO7vkfTDeoBDIfmF7PZtpfzDdooafQmEUJMDU2F7FQ== - language-subtag-registry@^0.3.20: version "0.3.23" resolved "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz" @@ -7725,7 +6773,7 @@ launch-editor@^2.6.0: picocolors "^1.0.0" shell-quote "^1.8.1" -level-codec@^9.0.0, level-codec@9.0.2: +level-codec@9.0.2, level-codec@^9.0.0: version "9.0.2" resolved "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz" integrity sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ== @@ -7806,15 +6854,6 @@ level@6.0.1: level-packager "^5.1.0" leveldown "^5.4.0" -leveldown@^5.4.0: - version "5.6.0" - resolved "https://registry.npmjs.org/leveldown/-/leveldown-5.6.0.tgz" - integrity sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ== - dependencies: - abstract-leveldown "~6.2.1" - napi-macros "~2.0.0" - node-gyp-build "~4.1.0" - leveldown@6.1.1: version "6.1.1" resolved "https://registry.npmjs.org/leveldown/-/leveldown-6.1.1.tgz" @@ -7824,7 +6863,16 @@ leveldown@6.1.1: napi-macros "~2.0.0" node-gyp-build "^4.3.0" -levelup@^4.3.2, levelup@4.4.0: +leveldown@^5.4.0: + version "5.6.0" + resolved "https://registry.npmjs.org/leveldown/-/leveldown-5.6.0.tgz" + integrity sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ== + dependencies: + abstract-leveldown "~6.2.1" + napi-macros "~2.0.0" + node-gyp-build "~4.1.0" + +levelup@4.4.0, levelup@^4.3.2: version "4.4.0" resolved "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz" integrity sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ== @@ -7856,14 +6904,6 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lighthouse-logger@^1.0.0: - version "1.4.2" - resolved "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz" - integrity sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g== - dependencies: - debug "^2.6.9" - marky "^1.2.2" - lilconfig@^2.0.3, lilconfig@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz" @@ -7940,11 +6980,6 @@ lodash.sortby@^4.7.0: resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz" integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== -lodash.throttle@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz" - integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== - lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" @@ -7955,7 +6990,7 @@ lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -7981,7 +7016,7 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -ltgt@^2.1.2, ltgt@2.2.1: +ltgt@2.2.1, ltgt@^2.1.2: version "2.2.1" resolved "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz" integrity sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA== @@ -7998,14 +7033,6 @@ magic-string@^0.25.0, magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.8" -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" @@ -8027,11 +7054,6 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" -marky@^1.2.2: - version "1.2.5" - resolved "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz" - integrity sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q== - mdn-data@2.0.14: version "2.0.14" resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" @@ -8054,11 +7076,6 @@ memfs@^3.1.2, memfs@^3.4.3: dependencies: fs-monkey "^1.0.4" -memoize-one@^5.0.0: - version "5.2.1" - resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz" - integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== - merge-descriptors@1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz" @@ -8079,205 +7096,6 @@ methods@~1.1.2: resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -metro-babel-transformer@0.81.0: - version "0.81.0" - resolved "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.81.0.tgz" - integrity sha512-Dc0QWK4wZIeHnyZ3sevWGTnnSkIDDn/SWyfrn99zbKbDOCoCYy71PAn9uCRrP/hduKLJQOy+tebd63Rr9D8tXg== - dependencies: - "@babel/core" "^7.25.2" - flow-enums-runtime "^0.0.6" - hermes-parser "0.24.0" - nullthrows "^1.1.1" - -metro-cache-key@0.81.0: - version "0.81.0" - resolved "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.81.0.tgz" - integrity sha512-qX/IwtknP9bQZL78OK9xeSvLM/xlGfrs6SlUGgHvrxtmGTRSsxcyqxR+c+7ch1xr05n62Gin/O44QKg5V70rNQ== - dependencies: - flow-enums-runtime "^0.0.6" - -metro-cache@0.81.0: - version "0.81.0" - resolved "https://registry.npmjs.org/metro-cache/-/metro-cache-0.81.0.tgz" - integrity sha512-DyuqySicHXkHUDZFVJmh0ygxBSx6pCKUrTcSgb884oiscV/ROt1Vhye+x+OIHcsodyA10gzZtrVtxIFV4l9I4g== - dependencies: - exponential-backoff "^3.1.1" - flow-enums-runtime "^0.0.6" - metro-core "0.81.0" - -metro-config@^0.81.0, metro-config@0.81.0: - version "0.81.0" - resolved "https://registry.npmjs.org/metro-config/-/metro-config-0.81.0.tgz" - integrity sha512-6CinEaBe3WLpRlKlYXXu8r1UblJhbwD6Gtnoib5U8j6Pjp7XxMG9h/DGMeNp9aGLDu1OieUqiXpFo7O0/rR5Kg== - dependencies: - connect "^3.6.5" - cosmiconfig "^5.0.5" - flow-enums-runtime "^0.0.6" - jest-validate "^29.6.3" - metro "0.81.0" - metro-cache "0.81.0" - metro-core "0.81.0" - metro-runtime "0.81.0" - -metro-core@^0.81.0, metro-core@0.81.0: - version "0.81.0" - resolved "https://registry.npmjs.org/metro-core/-/metro-core-0.81.0.tgz" - integrity sha512-CVkM5YCOAFkNMvJai6KzA0RpztzfEKRX62/PFMOJ9J7K0uq/UkOFLxcgpcncMIrfy0PbfEj811b69tjULUQe1Q== - dependencies: - flow-enums-runtime "^0.0.6" - lodash.throttle "^4.1.1" - metro-resolver "0.81.0" - -metro-file-map@0.81.0: - version "0.81.0" - resolved "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.81.0.tgz" - integrity sha512-zMDI5uYhQCyxbye/AuFx/pAbsz9K+vKL7h1ShUXdN2fz4VUPiyQYRsRqOoVG1DsiCgzd5B6LW0YW77NFpjDQeg== - dependencies: - anymatch "^3.0.3" - debug "^2.2.0" - fb-watchman "^2.0.0" - flow-enums-runtime "^0.0.6" - graceful-fs "^4.2.4" - invariant "^2.2.4" - jest-worker "^29.6.3" - micromatch "^4.0.4" - node-abort-controller "^3.1.1" - nullthrows "^1.1.1" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - -metro-minify-terser@0.81.0: - version "0.81.0" - resolved "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.81.0.tgz" - integrity sha512-U2ramh3W822ZR1nfXgIk+emxsf5eZSg10GbQrT0ZizImK8IZ5BmJY+BHRIkQgHzWFpExOVxC7kWbGL1bZALswA== - dependencies: - flow-enums-runtime "^0.0.6" - terser "^5.15.0" - -metro-resolver@0.81.0: - version "0.81.0" - resolved "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.81.0.tgz" - integrity sha512-Uu2Q+buHhm571cEwpPek8egMbdSTqmwT/5U7ZVNpK6Z2ElQBBCxd7HmFAslKXa7wgpTO2FAn6MqGeERbAtVDUA== - dependencies: - flow-enums-runtime "^0.0.6" - -metro-runtime@^0.81.0, metro-runtime@0.81.0: - version "0.81.0" - resolved "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.81.0.tgz" - integrity sha512-6oYB5HOt37RuGz2eV4A6yhcl+PUTwJYLDlY9vhT+aVjbUWI6MdBCf69vc4f5K5Vpt+yOkjy+2LDwLS0ykWFwYw== - dependencies: - "@babel/runtime" "^7.25.0" - flow-enums-runtime "^0.0.6" - -metro-source-map@^0.81.0, metro-source-map@0.81.0: - version "0.81.0" - resolved "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.81.0.tgz" - integrity sha512-TzsVxhH83dyxg4A4+L1nzNO12I7ps5IHLjKGZH3Hrf549eiZivkdjYiq/S5lOB+p2HiQ+Ykcwtmcja95LIC62g== - dependencies: - "@babel/traverse" "^7.25.3" - "@babel/traverse--for-generate-function-map" "npm:@babel/traverse@^7.25.3" - "@babel/types" "^7.25.2" - flow-enums-runtime "^0.0.6" - invariant "^2.2.4" - metro-symbolicate "0.81.0" - nullthrows "^1.1.1" - ob1 "0.81.0" - source-map "^0.5.6" - vlq "^1.0.0" - -metro-symbolicate@0.81.0: - version "0.81.0" - resolved "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.81.0.tgz" - integrity sha512-C/1rWbNTPYp6yzID8IPuQPpVGzJ2rbWYBATxlvQ9dfK5lVNoxcwz77hjcY8ISLsRRR15hyd/zbjCNKPKeNgE1Q== - dependencies: - flow-enums-runtime "^0.0.6" - invariant "^2.2.4" - metro-source-map "0.81.0" - nullthrows "^1.1.1" - source-map "^0.5.6" - through2 "^2.0.1" - vlq "^1.0.0" - -metro-transform-plugins@0.81.0: - version "0.81.0" - resolved "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.81.0.tgz" - integrity sha512-uErLAPBvttGCrmGSCa0dNHlOTk3uJFVEVWa5WDg6tQ79PRmuYRwzUgLhVzn/9/kyr75eUX3QWXN79Jvu4txt6Q== - dependencies: - "@babel/core" "^7.25.2" - "@babel/generator" "^7.25.0" - "@babel/template" "^7.25.0" - "@babel/traverse" "^7.25.3" - flow-enums-runtime "^0.0.6" - nullthrows "^1.1.1" - -metro-transform-worker@0.81.0: - version "0.81.0" - resolved "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.81.0.tgz" - integrity sha512-HrQ0twiruhKy0yA+9nK5bIe3WQXZcC66PXTvRIos61/EASLAP2DzEmW7IxN/MGsfZegN2UzqL2CG38+mOB45vg== - dependencies: - "@babel/core" "^7.25.2" - "@babel/generator" "^7.25.0" - "@babel/parser" "^7.25.3" - "@babel/types" "^7.25.2" - flow-enums-runtime "^0.0.6" - metro "0.81.0" - metro-babel-transformer "0.81.0" - metro-cache "0.81.0" - metro-cache-key "0.81.0" - metro-minify-terser "0.81.0" - metro-source-map "0.81.0" - metro-transform-plugins "0.81.0" - nullthrows "^1.1.1" - -metro@^0.81.0, metro@0.81.0: - version "0.81.0" - resolved "https://registry.npmjs.org/metro/-/metro-0.81.0.tgz" - integrity sha512-kzdzmpL0gKhEthZ9aOV7sTqvg6NuTxDV8SIm9pf9sO8VVEbKrQk5DNcwupOUjgPPFAuKUc2NkT0suyT62hm2xg== - dependencies: - "@babel/code-frame" "^7.24.7" - "@babel/core" "^7.25.2" - "@babel/generator" "^7.25.0" - "@babel/parser" "^7.25.3" - "@babel/template" "^7.25.0" - "@babel/traverse" "^7.25.3" - "@babel/types" "^7.25.2" - accepts "^1.3.7" - chalk "^4.0.0" - ci-info "^2.0.0" - connect "^3.6.5" - debug "^2.2.0" - denodeify "^1.2.1" - error-stack-parser "^2.0.6" - flow-enums-runtime "^0.0.6" - graceful-fs "^4.2.4" - hermes-parser "0.24.0" - image-size "^1.0.2" - invariant "^2.2.4" - jest-worker "^29.6.3" - jsc-safe-url "^0.2.2" - lodash.throttle "^4.1.1" - metro-babel-transformer "0.81.0" - metro-cache "0.81.0" - metro-cache-key "0.81.0" - metro-config "0.81.0" - metro-core "0.81.0" - metro-file-map "0.81.0" - metro-resolver "0.81.0" - metro-runtime "0.81.0" - metro-source-map "0.81.0" - metro-symbolicate "0.81.0" - metro-transform-plugins "0.81.0" - metro-transform-worker "0.81.0" - mime-types "^2.1.27" - nullthrows "^1.1.1" - serialize-error "^2.1.0" - source-map "^0.5.6" - strip-ansi "^6.0.0" - throat "^5.0.0" - ws "^7.5.10" - yargs "^17.6.2" - micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.8" resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" @@ -8286,7 +7104,7 @@ micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: braces "^3.0.3" picomatch "^2.3.1" -"mime-db@>= 1.43.0 < 2", mime-db@1.52.0: +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== @@ -8326,7 +7144,7 @@ minimalistic-assert@^1.0.0: resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -8357,18 +7175,13 @@ minimist@^1.2.0, minimist@^1.2.6: resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== -mkdirp@^0.5.1, mkdirp@~0.5.1: +mkdirp@~0.5.1: version "0.5.6" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: minimist "^1.2.6" -mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - motion-dom@^12.4.5: version "12.4.5" resolved "https://registry.npmjs.org/motion-dom/-/motion-dom-12.4.5.tgz" @@ -8389,16 +7202,16 @@ motion@^12.4.5: framer-motion "^12.4.5" tslib "^2.4.0" -ms@^2.0.0, ms@^2.1.1, ms@^2.1.3, ms@2.1.3: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - ms@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== +ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + multicast-dns@^7.2.5: version "7.2.5" resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz" @@ -8441,7 +7254,7 @@ negotiator@0.6.3: resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.5.0, neo-async@^2.6.2: +neo-async@^2.6.2: version "2.6.2" resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -8454,19 +7267,7 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" -node-abort-controller@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz" - integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== - -node-dir@^0.1.17: - version "0.1.17" - resolved "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz" - integrity sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg== - dependencies: - minimatch "^3.0.2" - -node-fetch@^2.2.0, node-fetch@2.6.9: +node-fetch@2.6.9: version "2.6.9" resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz" integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== @@ -8541,23 +7342,11 @@ nth-check@^2.0.1: dependencies: boolbase "^1.0.0" -nullthrows@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz" - integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== - nwsapi@^2.2.0: version "2.2.13" resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.13.tgz" integrity sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ== -ob1@0.81.0: - version "0.81.0" - resolved "https://registry.npmjs.org/ob1/-/ob1-0.81.0.tgz" - integrity sha512-6Cvrkxt1tqaRdWqTAMcVYEiO5i1xcF9y7t06nFdjFqkfPsEloCf8WwhXdwBpNUkVYSQlSGS7cDgVQR86miBfBQ== - dependencies: - flow-enums-runtime "^0.0.6" - object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" @@ -8651,13 +7440,6 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" - integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== - dependencies: - ee-first "1.1.1" - on-finished@2.4.1: version "2.4.1" resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" @@ -8684,14 +7466,6 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -open@^7.0.3: - version "7.4.2" - resolved "https://registry.npmjs.org/open/-/open-7.4.2.tgz" - integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - open@^8.0.9, open@^8.4.0: version "8.4.2" resolved "https://registry.npmjs.org/open/-/open-8.4.2.tgz" @@ -8798,14 +7572,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" @@ -8902,23 +7668,11 @@ pify@^2.3.0: resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pirates@^4.0.1, pirates@^4.0.4, pirates@^4.0.6: +pirates@^4.0.1, pirates@^4.0.4: version "4.0.6" resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" @@ -9473,15 +8227,6 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^ resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -"postcss@^7.0.0 || ^8.0.1", postcss@^8, postcss@^8.0.0, postcss@^8.0.3, postcss@^8.0.9, postcss@^8.1.0, postcss@^8.1.4, postcss@^8.2, postcss@^8.2.14, postcss@^8.2.15, postcss@^8.2.2, postcss@^8.3, postcss@^8.3.5, postcss@^8.4, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.33, postcss@^8.4.4, postcss@^8.4.6, "postcss@>= 8", postcss@>=8, postcss@>=8.0.9: - version "8.4.47" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz" - integrity sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ== - dependencies: - nanoid "^3.3.7" - picocolors "^1.1.0" - source-map-js "^1.2.1" - postcss@^7.0.35: version "7.0.39" resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz" @@ -9490,6 +8235,15 @@ postcss@^7.0.35: picocolors "^0.2.1" source-map "^0.6.1" +postcss@^8.3.5, postcss@^8.4.23, postcss@^8.4.33, postcss@^8.4.4: + version "8.4.47" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz" + integrity sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ== + dependencies: + nanoid "^3.3.7" + picocolors "^1.1.0" + source-map-js "^1.2.1" + pouchdb@^9.0.0: version "9.0.0" resolved "https://registry.npmjs.org/pouchdb/-/pouchdb-9.0.0.tgz" @@ -9552,21 +8306,12 @@ pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-format@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -promise@^8.1.0, promise@^8.3.0: +promise@^8.1.0: version "8.3.0" resolved "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz" integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== @@ -9640,13 +8385,6 @@ queue-microtask@^1.2.2, queue-microtask@^1.2.3: resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -queue@6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz" - integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== - dependencies: - inherits "~2.0.3" - raf@^3.4.1: version "3.4.1" resolved "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz" @@ -9723,15 +8461,7 @@ react-dev-utils@^12.0.1: strip-ansi "^6.0.1" text-table "^0.2.0" -react-devtools-core@^5.3.1: - version "5.3.2" - resolved "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-5.3.2.tgz" - integrity sha512-crr9HkVrDiJ0A4zot89oS0Cgv0Oa4OG1Em4jit3P3ZxZSKPMYyMjfwMqgcJna9o625g8oN87rBm8SWWrSTBZxg== - dependencies: - shell-quote "^1.6.1" - ws "^7" - -"react-dom@^16.8.0 || ^17.0.0 || ^18.0.0", react-dom@^18.0.0, "react-dom@^18.0.0 || ^19.0.0", react-dom@^18.2.0, react-dom@^18.3.1, react-dom@>=16.8, react-dom@>=18.0, react-dom@>=18.0.0: +react-dom@^18.3.1: version "18.3.1" resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz" integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== @@ -9764,86 +8494,11 @@ react-is@^18.0.0: resolved "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz" integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== -"react-konva@^16.8.0 || ^16.8.7-0 || ^16.9.0-0 || ^16.10.1-0 || ^16.12.0-0 || ^16.13.0-0 || ^17.0.0-0 || ^17.0.1-0 || ^17.0.2-0 || ^18.0.0-0": - version "18.2.10" - resolved "https://registry.npmjs.org/react-konva/-/react-konva-18.2.10.tgz" - integrity sha512-ohcX1BJINL43m4ynjZ24MxFI1syjBdrXhqVxYVDw2rKgr3yuS0x/6m1Y2Z4sl4T/gKhfreBx8KHisd0XC6OT1g== - dependencies: - "@types/react-reconciler" "^0.28.2" - its-fine "^1.1.1" - react-reconciler "~0.29.0" - scheduler "^0.23.0" - -react-native@*, react-native@>=0.58, react-native@>=0.64: - version "0.76.3" - resolved "https://registry.npmjs.org/react-native/-/react-native-0.76.3.tgz" - integrity sha512-0TUhgmlouRNf6yuDIIAdbQl0g1VsONgCMsLs7Et64hjj5VLMCA7np+4dMrZvGZ3wRNqzgeyT9oWJsUm49AcwSQ== - dependencies: - "@jest/create-cache-key-function" "^29.6.3" - "@react-native/assets-registry" "0.76.3" - "@react-native/codegen" "0.76.3" - "@react-native/community-cli-plugin" "0.76.3" - "@react-native/gradle-plugin" "0.76.3" - "@react-native/js-polyfills" "0.76.3" - "@react-native/normalize-colors" "0.76.3" - "@react-native/virtualized-lists" "0.76.3" - abort-controller "^3.0.0" - anser "^1.4.9" - ansi-regex "^5.0.0" - babel-jest "^29.7.0" - babel-plugin-syntax-hermes-parser "^0.23.1" - base64-js "^1.5.1" - chalk "^4.0.0" - commander "^12.0.0" - event-target-shim "^5.0.1" - flow-enums-runtime "^0.0.6" - glob "^7.1.1" - invariant "^2.2.4" - jest-environment-node "^29.6.3" - jsc-android "^250231.0.0" - memoize-one "^5.0.0" - metro-runtime "^0.81.0" - metro-source-map "^0.81.0" - mkdirp "^0.5.1" - nullthrows "^1.1.1" - pretty-format "^29.7.0" - promise "^8.3.0" - react-devtools-core "^5.3.1" - react-refresh "^0.14.0" - regenerator-runtime "^0.13.2" - scheduler "0.24.0-canary-efb381bbf-20230505" - semver "^7.1.3" - stacktrace-parser "^0.1.10" - whatwg-fetch "^3.0.0" - ws "^6.2.3" - yargs "^17.6.2" - -react-reconciler@^0.27.0: - version "0.27.0" - resolved "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.27.0.tgz" - integrity sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA== - dependencies: - loose-envify "^1.1.0" - scheduler "^0.21.0" - -react-reconciler@~0.29.0: - version "0.29.2" - resolved "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.2.tgz" - integrity sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg== - dependencies: - loose-envify "^1.1.0" - scheduler "^0.23.2" - -react-refresh@^0.11.0, "react-refresh@>=0.10.0 <1.0.0": +react-refresh@^0.11.0: version "0.11.0" resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz" integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== -react-refresh@^0.14.0: - version "0.14.2" - resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz" - integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== - react-router-dom@^6.27.0: version "6.27.0" resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.27.0.tgz" @@ -9926,16 +8581,7 @@ react-spring@^9.7.4: "@react-spring/web" "~9.7.4" "@react-spring/zdog" "~9.7.4" -react-zdog@>=1.0: - version "1.2.2" - resolved "https://registry.npmjs.org/react-zdog/-/react-zdog-1.2.2.tgz" - integrity sha512-Ix7ALha91aOEwiHuxumCeYbARS5XNpc/w0v145oGkM6poF/CvhKJwzLhM5sEZbtrghMA+psAhOJkCTzJoseicA== - dependencies: - react "^18.2.0" - react-dom "^18.2.0" - resize-observer-polyfill "^1.5.1" - -react@*, "react@^16.8.0 || ^17.0.0 || ^18.0.0", react@^18.0.0, "react@^18.0.0 || ^19.0.0", react@^18.2.0, react@^18.3.1, "react@>= 16", react@>=16, react@>=16.8, react@>=17.0, react@>=18.0, react@>=18.0.0, "react@16.8.0 || >=17.0.0 || >=18.0.0": +react@^18.3.1: version "18.3.1" resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz" integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== @@ -9949,20 +8595,17 @@ read-cache@^1.0.0: dependencies: pify "^2.3.0" -readable-stream@^2.0.1: - version "2.3.8" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== +readable-stream@1.1.14: + version "1.1.14" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" + integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== dependencies: core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" -readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.6.0, "readable-stream@2 || 3": +"readable-stream@2 || 3", readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -9971,12 +8614,7 @@ readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.6.0, "readabl string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@~0.0.2: - version "0.0.4" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-0.0.4.tgz" - integrity sha512-azrivNydKRYt7zwLV5wWUK7YzKTWs3q87xSmY6DlHapPrCvaT6ZrukvM5erV+yCSSPmZT8zkSdttOHQpWWm9zw== - -readable-stream@~2.3.6: +readable-stream@^2.0.1: version "2.3.8" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -9989,15 +8627,10 @@ readable-stream@~2.3.6: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@1.1.14: - version "1.1.14" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" - integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" +readable-stream@~0.0.2: + version "0.0.4" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-0.0.4.tgz" + integrity sha512-azrivNydKRYt7zwLV5wWUK7YzKTWs3q87xSmY6DlHapPrCvaT6ZrukvM5erV+yCSSPmZT8zkSdttOHQpWWm9zw== readdirp@~3.6.0: version "3.6.0" @@ -10006,21 +8639,6 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -readline@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz" - integrity sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg== - -recast@^0.21.0: - version "0.21.5" - resolved "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz" - integrity sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg== - dependencies: - ast-types "0.15.2" - esprima "~4.0.0" - source-map "~0.6.1" - tslib "^2.0.1" - recursive-readdir@^2.2.2: version "2.2.3" resolved "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz" @@ -10061,11 +8679,6 @@ regenerate@^1.4.2: resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.13.2: - version "0.13.11" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== - regenerator-runtime@^0.13.9: version "0.13.11" resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" @@ -10153,11 +8766,6 @@ requires-port@^1.0.0: resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== -resize-observer-polyfill@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" @@ -10165,11 +8773,6 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz" - integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" @@ -10231,13 +8834,6 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" -rimraf@~2.6.2: - version "2.6.3" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - rollup-plugin-terser@^7.0.0: version "7.0.2" resolved "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz" @@ -10248,7 +8844,7 @@ rollup-plugin-terser@^7.0.0: serialize-javascript "^4.0.0" terser "^5.0.0" -"rollup@^1.20.0 || ^2.0.0", rollup@^1.20.0||^2.0.0, rollup@^2.0.0, rollup@^2.43.1: +rollup@^2.43.1: version "2.79.2" resolved "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz" integrity sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ== @@ -10288,20 +8884,15 @@ safe-array-concat@^1.1.2: has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@>=5.1.0, safe-buffer@~5.2.0, safe-buffer@5.2.1: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.3: version "1.0.3" @@ -10342,26 +8933,21 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" -scheduler@^0.21.0: - version "0.21.0" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz" - integrity sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ== - dependencies: - loose-envify "^1.1.0" - -scheduler@^0.23.0, scheduler@^0.23.2: +scheduler@^0.23.2: version "0.23.2" resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz" integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== dependencies: loose-envify "^1.1.0" -scheduler@0.24.0-canary-efb381bbf-20230505: - version "0.24.0-canary-efb381bbf-20230505" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz" - integrity sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA== +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== dependencies: - loose-envify "^1.1.0" + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" schema-utils@^2.6.5: version "2.7.1" @@ -10372,25 +8958,7 @@ schema-utils@^2.6.5: ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0.0: - version "3.3.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^3.1.1: - version "3.3.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^3.2.0: +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: version "3.3.0" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== @@ -10409,21 +8977,12 @@ schema-utils@^4.0.0, schema-utils@^4.2.0: ajv-formats "^2.1.1" ajv-keywords "^5.1.0" -schema-utils@2.7.0: - version "2.7.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz" - integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== - dependencies: - "@types/json-schema" "^7.0.4" - ajv "^6.12.2" - ajv-keywords "^3.4.1" - select-hose@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== -selfsigned@^2.1.1, selfsigned@^2.4.1: +selfsigned@^2.1.1: version "2.4.1" resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz" integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== @@ -10431,27 +8990,12 @@ selfsigned@^2.1.1, selfsigned@^2.4.1: "@types/node-forge" "^1.3.0" node-forge "^1" -semver@^5.6.0: - version "5.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^6.0.0: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^6.3.0: +semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^6.3.1: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.1.3, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4: +semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4: version "7.6.3" resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== @@ -10475,11 +9019,6 @@ send@0.19.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-error@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz" - integrity sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw== - serialize-javascript@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz" @@ -10507,7 +9046,7 @@ serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@^1.13.1, serve-static@1.16.2: +serve-static@1.16.2: version "1.16.2" resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz" integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== @@ -10554,13 +9093,6 @@ setprototypeof@1.2.0: resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" @@ -10573,7 +9105,7 @@ shebang-regex@^3.0.0: resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.6.1, shell-quote@^1.7.3, shell-quote@^1.8.1: +shell-quote@^1.7.3, shell-quote@^1.8.1: version "1.8.1" resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz" integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== @@ -10588,7 +9120,7 @@ side-channel@^1.0.4, side-channel@^1.0.6: get-intrinsic "^1.2.4" object-inspect "^1.13.1" -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -10641,7 +9173,7 @@ source-map-loader@^3.0.0: iconv-lite "^0.6.3" source-map-js "^1.0.1" -source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.20: +source-map-support@^0.5.6, source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -10649,17 +9181,7 @@ source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.2 buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - -source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.6.1, source-map@0.6.1: +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -10676,16 +9198,6 @@ source-map@^0.8.0-beta.0: dependencies: whatwg-url "^7.0.0" -source-map@~0.6.0: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - sourcemap-codec@^1.4.8: version "1.4.8" resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" @@ -10741,13 +9253,6 @@ stackframe@^1.3.4: resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz" integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== -stacktrace-parser@^0.1.10: - version "0.1.10" - resolved "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz" - integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== - dependencies: - type-fest "^0.7.1" - static-eval@2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz" @@ -10755,21 +9260,16 @@ static-eval@2.0.2: dependencies: escodegen "^1.8.1" -"statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - -statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - statuses@2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + stop-iteration-iterator@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz" @@ -10787,25 +9287,6 @@ stream-http@^3.2.0: readable-stream "^3.6.0" xtend "^4.0.2" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - string-length@^4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" @@ -10836,7 +9317,7 @@ string-natural-compare@^3.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -10917,6 +9398,25 @@ string.prototype.trimstart@^1.0.8: define-properties "^1.2.1" es-object-atoms "^1.0.0" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + stringify-object@^3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz" @@ -11017,14 +9517,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^7.1.0: +supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -11051,11 +9544,6 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -suspend-react@^0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/suspend-react/-/suspend-react-0.1.3.tgz" - integrity sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ== - svg-parser@^2.0.2: version "2.0.4" resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz" @@ -11141,13 +9629,6 @@ temp-dir@^2.0.0: resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz" integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== -temp@^0.8.4: - version "0.8.4" - resolved "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz" - integrity sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg== - dependencies: - rimraf "~2.6.2" - tempy@^0.6.0: version "0.6.0" resolved "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz" @@ -11177,7 +9658,7 @@ terser-webpack-plugin@^5.2.5, terser-webpack-plugin@^5.3.10: serialize-javascript "^6.0.1" terser "^5.26.0" -terser@^5.0.0, terser@^5.10.0, terser@^5.15.0, terser@^5.26.0: +terser@^5.0.0, terser@^5.10.0, terser@^5.26.0: version "5.36.0" resolved "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz" integrity sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w== @@ -11220,34 +9701,11 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" -three@>=0.126, three@>=0.133: - version "0.170.0" - resolved "https://registry.npmjs.org/three/-/three-0.170.0.tgz" - integrity sha512-FQK+LEpYc0fBD+J8g6oSEyyNzjp+Q7Ks1C568WWaoMRLW+TkNNWmenWeGgJjV105Gd+p/2ql1ZcjYvNiPZBhuQ== - -throat@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz" - integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== - throat@^6.0.1: version "6.0.2" resolved "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz" integrity sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ== -"through@>=2.2.7 <3": - version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -through2@^2.0.1: - version "2.0.5" - resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - through2@3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz" @@ -11256,6 +9714,11 @@ through2@3.0.2: inherits "^2.0.4" readable-stream "2 || 3" +"through@>=2.2.7 <3": + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + thunky@^1.0.2: version "1.1.0" resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" @@ -11332,21 +9795,21 @@ tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" +tslib@2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz" + integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== + tslib@^1.8.1: version "1.14.1" resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.1, tslib@^2.0.3, tslib@^2.4.0, tslib@^2.8.0: +tslib@^2.0.3, tslib@^2.4.0, tslib@^2.8.0: version "2.8.0" resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz" integrity sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA== -tslib@2.7.0: - version "2.7.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz" - integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== - tsutils@^3.21.0: version "3.21.0" resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" @@ -11383,16 +9846,11 @@ type-fest@^0.20.2: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^0.21.3, "type-fest@>=0.17.0 <5.0.0": +type-fest@^0.21.3: version "0.21.3" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -type-fest@^0.7.1: - version "0.7.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz" - integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== - type-is@~1.6.18: version "1.6.18" resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" @@ -11452,7 +9910,7 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -"typescript@^3.2.1 || ^4", typescript@^4.9.5, "typescript@>= 2.7", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta": +typescript@^4.9.5: version "4.9.5" resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== @@ -11517,7 +9975,7 @@ universalify@^2.0.0: resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@~1.0.0, unpipe@1.0.0: +unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== @@ -11555,7 +10013,7 @@ url-parse@^1.5.3: querystringify "^2.1.1" requires-port "^1.0.0" -utf-8-validate@^5.0.2, utf-8-validate@>=5.0.2: +utf-8-validate@^5.0.2: version "5.0.10" resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz" integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== @@ -11587,7 +10045,16 @@ utils-merge@1.0.1: resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -uuid@^8.3.2, uuid@8.3.2: +uuid62@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/uuid62/-/uuid62-1.0.2.tgz" + integrity sha512-vI7jxJboVd6eFRpyZn5ONx5DAQgu7hO0TcE6Qy+riw/XSw8A8+qc3SplJPZ9+nKqlAuN7RMriSn2ehMWeIPCiA== + dependencies: + base-x "3.0.9" + buffer "6.0.3" + uuid "8.3.2" + +uuid@8.3.2, uuid@^8.3.2: version "8.3.2" resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== @@ -11606,11 +10073,6 @@ vary@~1.1.2: resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -vlq@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz" - integrity sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w== - vuvuzela@1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/vuvuzela/-/vuvuzela-1.0.3.tgz" @@ -11630,7 +10092,7 @@ w3c-xmlserializer@^2.0.0: dependencies: xml-name-validator "^3.0.0" -walker@^1.0.7, walker@^1.0.8: +walker@^1.0.7: version "1.0.8" resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== @@ -11688,7 +10150,7 @@ webpack-dev-middleware@^5.3.4: range-parser "^1.2.1" schema-utils "^4.0.0" -webpack-dev-server@^4.6.0, "webpack-dev-server@3.x || 4.x || 5.x": +webpack-dev-server@^4.6.0: version "4.15.2" resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz" integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== @@ -11753,7 +10215,7 @@ webpack-sources@^3.2.3: resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -"webpack@^4.0.0 || ^5.0.0", "webpack@^4.37.0 || ^5.0.0", "webpack@^4.4.0 || ^5.9.0", "webpack@^4.44.2 || ^5.47.0", webpack@^5.0.0, webpack@^5.1.0, webpack@^5.20.0, webpack@^5.64.4, "webpack@>= 4", webpack@>=2, "webpack@>=4.43.0 <6.0.0": +webpack@^5.64.4: version "5.95.0" resolved "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz" integrity sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q== @@ -11782,7 +10244,7 @@ webpack-sources@^3.2.3: watchpack "^2.4.1" webpack-sources "^3.2.3" -websocket-driver@^0.7.4, websocket-driver@>=0.5.1: +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== @@ -11803,7 +10265,7 @@ whatwg-encoding@^1.0.5: dependencies: iconv-lite "0.4.24" -whatwg-fetch@^3.0.0, whatwg-fetch@^3.6.2: +whatwg-fetch@^3.6.2: version "3.6.20" resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz" integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== @@ -12109,15 +10571,6 @@ wrappy@1: resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^2.3.0: - version "2.4.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - write-file-atomic@^3.0.0: version "3.0.3" resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" @@ -12128,14 +10581,6 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -write-file-atomic@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - write-stream@~0.4.3: version "0.4.3" resolved "https://registry.npmjs.org/write-stream/-/write-stream-0.4.3.tgz" @@ -12143,33 +10588,21 @@ write-stream@~0.4.3: dependencies: readable-stream "~0.0.2" -ws@*, ws@^7, ws@^7.4.6, ws@^7.5.10: +ws@8.17.1: + version "8.17.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== + +ws@^7.4.6, ws@^7.5.10: version "7.5.10" resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== -ws@^6.2.3: - version "6.2.3" - resolved "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz" - integrity sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA== - dependencies: - async-limiter "~1.0.0" - -ws@^8.13.0: +ws@^8.13.0, ws@^8.5.0: version "8.18.0" resolved "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz" integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== -ws@^8.5.0: - version "8.18.0" - resolved "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz" - integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== - -ws@8.17.1: - version "8.17.1" - resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz" - integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== - xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" @@ -12180,7 +10613,7 @@ xmlchars@^2.2.0: resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: +xtend@^4.0.2, xtend@~4.0.0: version "4.0.2" resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -12210,11 +10643,6 @@ yargs-parser@^20.2.2: resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - yargs@^16.2.0: version "16.2.0" resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" @@ -12228,30 +10656,7 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.6.2: - version "17.7.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -zdog@>=1.0: - version "1.1.3" - resolved "https://registry.npmjs.org/zdog/-/zdog-1.1.3.tgz" - integrity sha512-raRj6r0gPzopFm5XWBJZr/NuV4EEnT4iE+U3dp5FV5pCb588Gmm3zLIp/j9yqqcMiHH8VNQlerLTgOqL7krh6w== - -zustand@^3.7.1: - version "3.7.2" - resolved "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz" - integrity sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==