diff --git a/src/components/PushNotificationZone.tsx b/src/components/PushNotificationZone.tsx
new file mode 100644
index 0000000..9150380
--- /dev/null
+++ b/src/components/PushNotificationZone.tsx
@@ -0,0 +1,649 @@
+import React, { useEffect, useState, useMemo } from 'react';
+
+import { PushAPI, CONSTANTS } from '@pushprotocol/restapi';
+
+import dayjs from 'dayjs';
+import advancedFormat from 'dayjs/plugin/advancedFormat';
+
+import {
+ useEthersSigner
+} from '../hooks';
+
+import { useAccount } from 'wagmi';
+
+import { toast } from 'sonner';
+
+import { Theme } from '@mui/material/styles';
+import createStyles from '@mui/styles/createStyles';
+import makeStyles from '@mui/styles/makeStyles';
+import Typography from '@mui/material/Typography';
+import IconButton from '@mui/material/IconButton';
+import InboxIcon from '@mui/icons-material/Inbox';
+import Menu from '@mui/material/Menu';
+import CircularProgress from '@mui/material/CircularProgress';
+
+import LinkWrapper from './LinkWrapper';
+
+import ActionButton from './ActionButton';
+
+import PropyLogo from '../assets/img/propy-house-only.png';
+
+import {
+ PROPY_LIGHT_BLUE,
+ NETWORK_NAME_TO_ID,
+} from '../utils/constants';
+
+import {
+ useUnifiedWriteContract,
+} from '../hooks';
+
+import { PropsFromRedux } from '../containers/PushNotificationZoneContainer';
+
+dayjs.extend(advancedFormat);
+
+const useStyles = makeStyles((theme: Theme) =>
+ createStyles({
+ margin: {
+ margin: theme.spacing(1),
+ },
+ notificationIndicator: {
+ height: '10px',
+ width: '10px',
+ position: 'absolute',
+ backgroundColor: PROPY_LIGHT_BLUE,
+ borderRadius: '50%',
+ top: '11px',
+ left: '11px',
+ },
+ acceptButton: {
+ marginTop: theme.spacing(1),
+ color: 'white',
+ width: '100%',
+ },
+ errorText: {
+ color: 'orangered',
+ marginTop: theme.spacing(1),
+ },
+ chatProfileEntry: {
+ display: 'flex',
+ padding: theme.spacing(1),
+ borderRadius: '10px',
+ transition: 'all 0.2s ease-in-out',
+ '&:hover': {
+ backgroundColor: '#f3f3f3',
+ },
+ position: 'relative',
+ width: '100%',
+ },
+ chatProfileNotificationIndicator: {
+ height: '10px',
+ width: '10px',
+ position: 'absolute',
+ backgroundColor: PROPY_LIGHT_BLUE,
+ borderRadius: '50%',
+ top: '10px',
+ left: '8px',
+ },
+ chatProfilePicContainer: {
+ width: 40,
+ minWidth: 40,
+ height: 40,
+ display: 'flex',
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: '50%',
+ border: '1px solid #d5d5d5',
+ overflow: 'hidden',
+ },
+ chatProfilePic: {
+ width: '100%',
+ height: '100%',
+ },
+ chatProfileEntryTypography: {
+ display: 'flex',
+ flexDirection: 'column',
+ marginLeft: theme.spacing(1.5),
+ justifyContent: 'center',
+ width: '100%',
+ },
+ profileTag: {
+ marginRight: theme.spacing(1.5),
+ },
+ titleRow: {
+ marginBottom: theme.spacing(1),
+ display: 'flex',
+ justifyContent: 'start',
+ alignItems: 'center',
+ },
+ subtitleRow: {
+ marginTop: theme.spacing(1),
+ marginBottom: theme.spacing(0.5),
+ display: 'flex',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ },
+ actionRow: {
+ marginBottom: theme.spacing(1),
+ display: 'flex',
+ justifyContent: 'start',
+ alignItems: 'center',
+ },
+ inboxHeading: {
+ fontWeight: 'bold',
+ },
+ actionButtonSpacer: {
+ marginRight: 8
+ },
+ loadingOverlay: {
+ position: 'absolute',
+ width: '100%',
+ height: '100%',
+ backgroundColor: '#ffffffbf',
+ zIndex: 1,
+ display: 'flex',
+ justifyContent: 'center',
+ alignItems: 'center',
+ }
+ }),
+);
+
+interface IChatProfile {
+ profileTag: string;
+ chatLink: string;
+ profilePic: string;
+}
+
+const chatProfileConfigs : {[key: string]: IChatProfile} = {
+ "0x48608159077516aFE77A04ebC0448eC32E6670c1": {
+ profileTag: "General Propy Support",
+ chatLink: `https://app.push.org/chat/0x48608159077516aFE77A04ebC0448eC32E6670c1`,
+ profilePic: PropyLogo,
+ },
+ "0x527C37417d25213868F76127021FeBa80dc85B0E": {
+ profileTag: "PropyKeys Support",
+ chatLink: `https://app.push.org/chat/0x527C37417d25213868F76127021FeBa80dc85B0E`,
+ profilePic: PropyLogo,
+ }
+}
+
+interface IChannelProfile {
+ channelTag: string;
+ profilePic: string;
+}
+
+const channelConfigs : {[key: string]: IChannelProfile} = {
+ "0x48608159077516aFE77A04ebC0448eC32E6670c1": {
+ channelTag: "Propy",
+ profilePic: PropyLogo,
+ }
+}
+
+let pushUser : any;
+
+const PushNotificationZone = (props: PropsFromRedux) => {
+
+ let {
+ setSupportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX,
+ supportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX,
+ } = props;
+
+ const classes = useStyles();
+
+ const [showNotificationZone, setShowNotificationZone] = useState(false);
+ const [hasPendingSupportRequest, setHasPendingSupportRequest] = useState(false);
+ const [hasSomeMessages, setHasSomeMessages] = useState(false);
+ const [forceUpdateCounter, setForceUpdateCounter] = useState(0);
+ const [anchorEl, setAnchorEl] = React.useState
(null);
+ const [hasUnreadMessage, setHasUnreadMessage] = useState(false);
+ const [unreadMessageAccounts, setUnreadMessageAccounts] = useState([]);
+ const [supportAddressToLatestMessageEntry, setSupportAddressToLatestMessageEntry] = useState<{[key: string]: any}>({});
+ const [supportChannelAddressToSubscriptionStatus, setSupportChannelAddressToSubscriptionStatus] = useState<{[key: string]: boolean}>({});
+ const [supportChannelAddressToLatestNotificationEntries, setSupportChannelAddressToLatestNotificationEntries] = useState<{[key: string]: any[]}>({});
+ const [unlockingProfile, setUnlockingProfile] = useState(false);
+ const [unlockedProfile, setUnlockedProfile] = useState(false);
+ const [initiatingSupportChatAddresses, setInitiatingSupportChatAddresses] = useState([]);
+ const [initiatingChannelSubscriptionAddresses, setInitiatingChannelSubscriptionAddresses] = useState([]);
+ const [loading, setIsLoading] = useState(false);
+
+ const openMenu = Boolean(anchorEl);
+
+ const handleClick = (event: React.MouseEvent) => {
+ setAnchorEl(event.currentTarget);
+ };
+
+ useEffect(() => {
+ let allMessagesUnlocked = true;
+ for(let supportAddress of Object.keys(supportAddressToLatestMessageEntry)) {
+ if(!supportAddressToLatestMessageEntry[supportAddress]?.messageObj?.content) {
+ allMessagesUnlocked = false;
+ }
+ }
+ if(allMessagesUnlocked) {
+ setUnlockedProfile(true);
+ } else {
+ setUnlockedProfile(false);
+ }
+ }, [supportAddressToLatestMessageEntry])
+
+ const getUnlockMessagesButtonText = () => {
+ if(unlockingProfile) {
+ return "Unlocking Messages"
+ }
+ if(unlockedProfile) {
+ return "Unlocked Messages"
+ }
+ return "Unlock Messages";
+ }
+
+ const handleDismissChatNotification = () => {
+ if(address) {
+ let newWalletTimestamp : {[key: string]: {[key: string]: number}} = {};
+ for(let propySupportAddress of Object.keys(chatProfileConfigs)) {
+ newWalletTimestamp[propySupportAddress] = {};
+ newWalletTimestamp[propySupportAddress][address] = Math.floor(new Date().getTime() / 1000);
+ }
+ setSupportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX(newWalletTimestamp);
+ }
+ }
+
+ const handleClose = () => {
+ setAnchorEl(null);
+ };
+
+ const signer = useEthersSigner();
+
+ const { address } = useAccount();
+
+ const { capabilities } = useUnifiedWriteContract({});
+
+ const memoizedCapabilities = useMemo(() => capabilities, [capabilities]);
+
+ const unlockPushProfile = async () => {
+ try {
+ if(address) {
+ setUnlockingProfile(true);
+ pushUser = await PushAPI.initialize(signer, {
+ env: CONSTANTS.ENV.PROD,
+ })
+ setUnlockingProfile(false);
+ setForceUpdateCounter((currentValue) => currentValue + 1);
+ }
+ } catch (e) {
+ console.error({'unlockPushProfile PushAPI.initialize error': e});
+ toast.error("Unable to unlock push.org profile");
+ }
+ }
+
+ const initiateChat = async (initChatAddress: string) => {
+ setInitiatingSupportChatAddresses((currentValues) => [initChatAddress, ...currentValues.filter((currentValue) => currentValue !== initChatAddress)]);
+ if (!pushUser || !pushUser?.signer) {
+ pushUser = await PushAPI.initialize(signer, {
+ env: CONSTANTS.ENV.PROD,
+ });
+ }
+ await pushUser.chat.send(
+ initChatAddress,
+ {content: "Support chat successfully opened!"}
+ );
+ setInitiatingSupportChatAddresses((currentValues) => [...currentValues.filter((currentValue) => currentValue !== initChatAddress)]);
+ setForceUpdateCounter((currentValue) => currentValue + 1);
+ }
+
+ const initiateChannelSubscription = async (initChannelAddress: string) => {
+ setInitiatingChannelSubscriptionAddresses((currentValues) => [initChannelAddress, ...currentValues.filter((currentValue) => currentValue !== initChannelAddress)]);
+ if (!pushUser || !pushUser?.signer) {
+ pushUser = await PushAPI.initialize(signer, {
+ env: CONSTANTS.ENV.PROD,
+ });
+ }
+ await pushUser.notification.subscribe(
+ `eip155:${NETWORK_NAME_TO_ID["base"]}:${initChannelAddress}`
+ );
+ setInitiatingChannelSubscriptionAddresses((currentValues) => [...currentValues.filter((currentValue) => currentValue !== initChannelAddress)]);
+ setForceUpdateCounter((currentValue) => currentValue + 1);
+ }
+
+ useEffect(() => {
+ const checkPendingSupportRequest = async () => {
+ setIsLoading(true);
+ let shouldShowNotificationZone = true;
+ let hasSupportMessageRequest = false;
+ let lastMessageFromSupport = false;
+ let supportAddressToLatestMessageTimestamp : {[key: string]: number} = {};
+ let hasMessages = false;
+ let unreadMessageStatus = false;
+ let supportAddressesToLatestMessageEntries = Object.assign({}, supportAddressToLatestMessageEntry);
+ let supportAddressesToLatestNotificationEntries = Object.assign({}, supportChannelAddressToLatestNotificationEntries);
+ let latestUnreadMessageAccounts = [];
+ try {
+ if(address) {
+ if (!pushUser || (pushUser?.account !== address)) {
+ pushUser = await PushAPI.initialize(null, {
+ env: CONSTANTS.ENV.PROD,
+ account: address,
+ })
+ }
+ // TODO ADD PAGINATION ON SUBSCRIPTIONS FOR HEAVY PUSH USERS
+ const connectedAddressSubscriptions = await pushUser.notification.subscriptions({
+ account: address,
+ });
+ for(let propyNotificationChannelAddress of Object.keys(channelConfigs)) {
+ const isSubscribedToPropyChannel = connectedAddressSubscriptions.find((subscription: {channel: string, user_settings: string}) => subscription.channel === propyNotificationChannelAddress) ? true : false;
+ const notificationFromPropyChannel = await pushUser.notification.list('INBOX', {
+ channels: [`eip155:${NETWORK_NAME_TO_ID["base"]}:${propyNotificationChannelAddress}`, `eip155:${NETWORK_NAME_TO_ID["ethereum"]}:${propyNotificationChannelAddress}`],
+ raw: true,
+ });
+ const notificationFromPropyChannelSpam = await pushUser.notification.list('SPAM', {
+ channels: [`eip155:${NETWORK_NAME_TO_ID["base"]}:${propyNotificationChannelAddress}`, `eip155:${NETWORK_NAME_TO_ID["ethereum"]}:${propyNotificationChannelAddress}`],
+ raw: true,
+ });
+ console.log({notificationFromPropyChannel, notificationFromPropyChannelSpam})
+ let useNotifications = [...notificationFromPropyChannel, ...notificationFromPropyChannelSpam];
+ setSupportChannelAddressToSubscriptionStatus((currentStatuses) => {
+ let newStatuses = Object.assign({}, currentStatuses);
+ newStatuses[propyNotificationChannelAddress] = isSubscribedToPropyChannel;
+ return newStatuses;
+ })
+ if(isSubscribedToPropyChannel && useNotifications?.length > 0) {
+ supportAddressesToLatestNotificationEntries[propyNotificationChannelAddress] = useNotifications;
+ } else {
+ supportAddressesToLatestNotificationEntries[propyNotificationChannelAddress] = [];
+ }
+ }
+ for(let propySupportAddress of Object.keys(chatProfileConfigs)) {
+ try {
+ let newLatestMessageTimestamp = 0;
+ const latestSupportMessages : any = await pushUser.chat.latest(propySupportAddress);
+ let isSmartWallet = false;
+ if (memoizedCapabilities && (Object.keys(memoizedCapabilities).length > 0)) {
+ isSmartWallet = true;
+ }
+ if(!isSmartWallet) {
+ if(latestSupportMessages?.length > 0) {
+ hasSupportMessageRequest = latestSupportMessages.some((entry: any) => entry?.listType === "REQUESTS" && entry?.fromDID.indexOf(propySupportAddress) > -1);
+ newLatestMessageTimestamp = Math.floor(latestSupportMessages[0].timestamp / 1000);
+ shouldShowNotificationZone = true;
+ if(latestSupportMessages[0]) {
+ supportAddressesToLatestMessageEntries[propySupportAddress] = latestSupportMessages[0]
+ } else {
+ delete supportAddressesToLatestMessageEntries[propySupportAddress];
+ }
+ } else {
+ if (Object.keys(latestSupportMessages).length > 0) {
+ supportAddressesToLatestMessageEntries[propySupportAddress] = latestSupportMessages;
+ } else {
+ delete supportAddressesToLatestMessageEntries[propySupportAddress];
+ }
+ newLatestMessageTimestamp = Math.floor(latestSupportMessages?.timestamp / 1000);
+ if (latestSupportMessages?.listType === "REQUESTS" && latestSupportMessages?.fromDID.indexOf(propySupportAddress) > -1) {
+ hasSupportMessageRequest = true;
+ shouldShowNotificationZone = true;
+ } else if (latestSupportMessages?.listType === "CHATS") {
+ shouldShowNotificationZone = true;
+ }
+ }
+ supportAddressToLatestMessageTimestamp[propySupportAddress] = newLatestMessageTimestamp;
+ if (Object.keys(latestSupportMessages).length > 0) {
+ supportAddressesToLatestMessageEntries[propySupportAddress] = latestSupportMessages[0];
+ shouldShowNotificationZone = true;
+ hasMessages = true;
+ }
+ }
+ } catch(e) {
+ console.error({
+ "Support Address": propySupportAddress,
+ "Support Account": chatProfileConfigs[propySupportAddress].profileTag,
+ "Error handling latest message state": e,
+ })
+ }
+ }
+ } else {
+ pushUser = undefined;
+ }
+ } catch (e) {
+ console.error({'PushAPI.initialize error': e})
+ shouldShowNotificationZone = false;
+ } finally {
+ setShowNotificationZone(shouldShowNotificationZone);
+ setHasPendingSupportRequest(hasSupportMessageRequest);
+ setHasSomeMessages(hasMessages);
+ for(let propySupportAddress of Object.keys(chatProfileConfigs)) {
+ if(
+ (supportAddressesToLatestMessageEntries[propySupportAddress]?.signature !== supportAddressToLatestMessageEntry[propySupportAddress]?.signature)
+ || (supportAddressesToLatestMessageEntries[propySupportAddress]?.messageObj?.content && !supportAddressToLatestMessageEntry[propySupportAddress]?.messageObj?.content)
+ ) {
+ setSupportAddressToLatestMessageEntry(supportAddressesToLatestMessageEntries);
+ }
+ if(supportAddressesToLatestMessageEntries[propySupportAddress]?.fromDID && (supportAddressesToLatestMessageEntries[propySupportAddress]?.fromDID.indexOf(propySupportAddress) > -1)) {
+ lastMessageFromSupport = true;
+ }
+ if(address && supportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX?.[propySupportAddress]?.[address]) {
+ if(lastMessageFromSupport && (supportAddressToLatestMessageTimestamp[propySupportAddress] > supportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX[propySupportAddress][address])) {
+ unreadMessageStatus = true;
+ latestUnreadMessageAccounts.push(propySupportAddress);
+ }
+ } else if(address && !supportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX?.[propySupportAddress]?.[address] && lastMessageFromSupport) {
+ unreadMessageStatus = true;
+ latestUnreadMessageAccounts.push(propySupportAddress);
+ }
+ }
+ for(let propyNotificationChannelAddress of Object.keys(channelConfigs)) {
+ if(
+ ((supportAddressesToLatestNotificationEntries[propyNotificationChannelAddress]?.length > 0 && supportChannelAddressToLatestNotificationEntries[propyNotificationChannelAddress]?.length > 0) &&
+ Math.floor(new Date(supportAddressesToLatestNotificationEntries[propyNotificationChannelAddress][0].timestamp).getTime() / 1000) > Math.floor(new Date(supportChannelAddressToLatestNotificationEntries[propyNotificationChannelAddress][0].timestamp).getTime() / 1000))
+ || (supportAddressesToLatestNotificationEntries[propyNotificationChannelAddress]?.length > 0 && (!supportChannelAddressToLatestNotificationEntries[propyNotificationChannelAddress] || supportChannelAddressToLatestNotificationEntries[propyNotificationChannelAddress]?.length === 0))
+ ) {
+ setSupportChannelAddressToLatestNotificationEntries(supportAddressesToLatestNotificationEntries);
+ }
+ if(address && supportAddressesToLatestNotificationEntries[propyNotificationChannelAddress]) {
+ for(let newNotification of supportAddressesToLatestNotificationEntries[propyNotificationChannelAddress]) {
+ if((Math.floor(new Date(newNotification.timestamp).getTime() / 1000) > supportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX?.[propyNotificationChannelAddress]?.[address]) || !supportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX?.[propyNotificationChannelAddress]?.[address]) {
+ unreadMessageStatus = true;
+ }
+ }
+ }
+ }
+ setHasUnreadMessage(unreadMessageStatus);
+ setUnreadMessageAccounts(latestUnreadMessageAccounts);
+ setIsLoading(false);
+ }
+ };
+ checkPendingSupportRequest();
+ }, [address, forceUpdateCounter, memoizedCapabilities, signer, supportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX, supportAddressToLatestMessageEntry, supportChannelAddressToLatestNotificationEntries])
+
+ return (
+ <>
+ {address && showNotificationZone &&
+ <>
+
+ {(hasPendingSupportRequest || hasUnreadMessage) &&
+
+ }
+
+
+
+ >
+ }
+ >
+ );
+}
+
+export default PushNotificationZone
\ No newline at end of file
diff --git a/src/containers/MapOverlaySearchFieldContainer.tsx b/src/containers/MapOverlaySearchFieldContainer.tsx
new file mode 100644
index 0000000..402f07b
--- /dev/null
+++ b/src/containers/MapOverlaySearchFieldContainer.tsx
@@ -0,0 +1,19 @@
+import { connect, ConnectedProps } from 'react-redux';
+
+import MapOverlaySearchField from '../components/MapOverlaySearchField';
+
+interface RootState {
+ isConsideredMobile: boolean
+ isConsideredMedium: boolean
+}
+
+const mapStateToProps = (state: RootState) => ({
+ isConsideredMobile: state.isConsideredMobile,
+ isConsideredMedium: state.isConsideredMedium,
+})
+
+const connector = connect(mapStateToProps, {})
+
+export type PropsFromRedux = ConnectedProps
+
+export default connector(MapOverlaySearchField)
\ No newline at end of file
diff --git a/src/containers/PushNotificationZoneContainer.tsx b/src/containers/PushNotificationZoneContainer.tsx
new file mode 100644
index 0000000..80d51a8
--- /dev/null
+++ b/src/containers/PushNotificationZoneContainer.tsx
@@ -0,0 +1,31 @@
+import { connect, ConnectedProps } from 'react-redux';
+
+import {
+ setSupportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX,
+} from '../state/actions';
+
+import PushNotificationZone from '../components/PushNotificationZone';
+
+interface RootState {
+ isConsideredMobile: boolean
+ isConsideredMedium: boolean
+ darkMode: boolean
+ supportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX: {[key: string]: {[key: string]: number}}
+}
+
+const mapStateToProps = (state: RootState) => ({
+ isConsideredMobile: state.isConsideredMobile,
+ isConsideredMedium: state.isConsideredMedium,
+ darkMode: state.darkMode,
+ supportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX: state.supportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX,
+})
+
+const mapDispatchToProps = {
+ setSupportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX,
+}
+
+const connector = connect(mapStateToProps, mapDispatchToProps)
+
+export type PropsFromRedux = ConnectedProps
+
+export default connector(PushNotificationZone)
\ No newline at end of file
diff --git a/src/hooks/index.ts b/src/hooks/index.ts
index 8384ca2..437e2a7 100644
--- a/src/hooks/index.ts
+++ b/src/hooks/index.ts
@@ -10,6 +10,7 @@ import useTotalStakingBalancePRO from './useTotalStakingBalancePRO';
import useApproxLeaveAmountFromShareAmount from './useApproxLeaveAmountFromShareAmount';
import useApproxStakerRewardsPending from './useApproxStakerRewardsPending';
import useUnifiedWriteContract from './useUnifiedWriteContract';
+import useEthersSigner from './useEthersSigner';
export {
useWindowSize,
@@ -24,4 +25,5 @@ export {
useApproxLeaveAmountFromShareAmount,
useApproxStakerRewardsPending,
useUnifiedWriteContract,
+ useEthersSigner,
}
\ No newline at end of file
diff --git a/src/hooks/useEthersSigner.ts b/src/hooks/useEthersSigner.ts
index b3dc50b..83766c7 100644
--- a/src/hooks/useEthersSigner.ts
+++ b/src/hooks/useEthersSigner.ts
@@ -1,10 +1,10 @@
-import * as React from 'react'
-import { useWalletClient } from 'wagmi'
import { providers } from 'ethers'
-
-//@ts-ignore
-export function walletClientToSigner(walletClient) {
- const { account, chain, transport } = walletClient
+import { useMemo } from 'react'
+import type { Account, Chain, Client, Transport } from 'viem'
+import { Config, useConnectorClient } from 'wagmi'
+
+export function clientToSigner(client: Client) {
+ const { account, chain, transport } = client
const network = {
chainId: chain.id,
name: chain.name,
@@ -14,12 +14,9 @@ export function walletClientToSigner(walletClient) {
const signer = provider.getSigner(account.address)
return signer
}
-
-/** Hook to convert a viem Wallet Client to an ethers.js Signer. */
-export function useEthersSigner({ chainId }: { chainId?: number } = {}) {
- const { data: walletClient } = useWalletClient({ chainId })
- return React.useMemo(
- () => (walletClient ? walletClientToSigner(walletClient) : undefined),
- [walletClient],
- )
+
+/** Hook to convert a Viem Client to an ethers.js Signer. */
+export default function useEthersSigner({ chainId }: { chainId?: number } = {}) {
+ const { data: client } = useConnectorClient({ chainId })
+ return useMemo(() => (client ? clientToSigner(client) : undefined), [client])
}
\ No newline at end of file
diff --git a/src/hooks/useUnifiedWriteContract.ts b/src/hooks/useUnifiedWriteContract.ts
index cd276fe..10782b0 100644
--- a/src/hooks/useUnifiedWriteContract.ts
+++ b/src/hooks/useUnifiedWriteContract.ts
@@ -216,6 +216,7 @@ export function useUnifiedWriteContract({
isLoading: transactionType === 'traditional' ? isLoadingTraditional : isLoadingAA,
txId: transactionType === 'traditional' ? null : txId,
txHash: transactionType === 'traditional' ? traditionalData : null,
+ capabilities,
};
}
diff --git a/src/interfaces/index.ts b/src/interfaces/index.ts
index 2c416b3..3f492bd 100644
--- a/src/interfaces/index.ts
+++ b/src/interfaces/index.ts
@@ -21,6 +21,13 @@ export interface IEVMTransactionRecord {
value: string;
}
+export interface ISelectedPopupConfig {
+ type: "listing" | "token" | false,
+ asset_address: string | false;
+ network: string | false;
+ token_id: string | false;
+}
+
export type L1Networks = 'ethereum' | 'goerli' | 'sepolia'
export type L2Networks = 'arbitrum' | 'base' | 'base-sepolia' | 'base-goerli'
diff --git a/src/services/api.ts b/src/services/api.ts
index c637c37..c56c00e 100644
--- a/src/services/api.ts
+++ b/src/services/api.ts
@@ -175,6 +175,13 @@ export const NFTService = {
}
return ApiService.get(`/nft/coordinates-postgis-points/${network}`, `${contractNameOrCollectionNameOrAddress}${queryString}`)
},
+ async getSearchOptionsWithPostGISPoints(
+ network: string,
+ contractNameOrCollectionNameOrAddress: string,
+ queryString: string
+ ) : Promise {
+ return ApiService.get(`/nft/coordinates-postgis-points-via-string-query/${network}`, `${contractNameOrCollectionNameOrAddress}?query=${queryString}`)
+ },
async getCoordinatesPostGISClusters(
network: string,
contractNameOrCollectionNameOrAddress: string,
diff --git a/src/state/actions/index.ts b/src/state/actions/index.ts
index 277c9ef..6d19c8b 100644
--- a/src/state/actions/index.ts
+++ b/src/state/actions/index.ts
@@ -42,4 +42,9 @@ export const setPropyKeysMapFilterOptions = (filterOptions: IPropyKeysMapFilterO
export const setFullScreenGalleryConfig = (fullScreenGalleryConfig: IFullScreenGalleryConfig) => ({
type: "SET_FULL_SCREEN_GALLERY_CONFIG",
fullScreenGalleryConfig: fullScreenGalleryConfig,
+})
+
+export const setSupportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX = (supportAddressToWalletToTimestamp: {[key: string]: {[key: string]: number}}) => ({
+ type: "SET_SUPPORT_ADDRESS_TO_WALLET_ADDRESS_TO_LAST_PUSH_CHAT_DISMISSED_TIMESTAMP_UNIX",
+ supportAddressToWalletToTimestamp,
})
\ No newline at end of file
diff --git a/src/state/reducers/index.ts b/src/state/reducers/index.ts
index 3439e97..2fd09dc 100644
--- a/src/state/reducers/index.ts
+++ b/src/state/reducers/index.ts
@@ -7,6 +7,7 @@ import isConsideredMedium from './isConsideredMedium';
import activeNetwork from './activeNetwork';
import propyKeysMapFilterOptions from './propyKeysMapFilterOptions';
import fullScreenGalleryConfig from './fullScreenGalleryConfig';
+import supportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX from './supportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX';
const rootReducer = combineReducers({
showLeftMenu,
@@ -17,6 +18,7 @@ const rootReducer = combineReducers({
activeNetwork,
propyKeysMapFilterOptions,
fullScreenGalleryConfig,
+ supportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX,
});
export default rootReducer;
diff --git a/src/state/reducers/supportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX.ts b/src/state/reducers/supportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX.ts
new file mode 100644
index 0000000..a2ca929
--- /dev/null
+++ b/src/state/reducers/supportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX.ts
@@ -0,0 +1,23 @@
+interface ISetWalletToTimstamp {
+ type: string;
+ supportAddressToWalletToTimestamp: {[key: string]: {[key: string]: number}}
+}
+
+const supportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX = (state = {}, action: ISetWalletToTimstamp) => {
+ switch (action.type) {
+ case 'SET_SUPPORT_ADDRESS_TO_WALLET_ADDRESS_TO_LAST_PUSH_CHAT_DISMISSED_TIMESTAMP_UNIX':
+ const freshStateFromCurrentState = JSON.parse(JSON.stringify(state));
+ // Merge the new data into the fresh state
+ Object.entries(action.supportAddressToWalletToTimestamp).forEach(([supportAddress, walletToTimestamp]) => {
+ if (!freshStateFromCurrentState[supportAddress]) {
+ freshStateFromCurrentState[supportAddress] = {};
+ }
+ Object.assign(freshStateFromCurrentState[supportAddress], walletToTimestamp);
+ });
+ return freshStateFromCurrentState;
+ default:
+ return state
+ }
+}
+
+export default supportAddressToWalletAddressToLastPushChatDismissedTimestampUNIX;
\ No newline at end of file
diff --git a/src/styles/App.scss b/src/styles/App.scss
index 0e5ad1d..76f8a6b 100644
--- a/src/styles/App.scss
+++ b/src/styles/App.scss
@@ -17,6 +17,12 @@
width: 100%;
}
+.flex-center {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
.flex-column {
display: flex;
flex-direction: column;
@@ -160,4 +166,12 @@ w3m-modal {
.hide-body-overflow {
overflow: hidden!important;
+}
+
+.space-between {
+ justify-content: space-between;
+}
+
+.relative {
+ position: relative;
}
\ No newline at end of file
diff --git a/src/utils/constants.ts b/src/utils/constants.ts
index 41641aa..e81c27a 100644
--- a/src/utils/constants.ts
+++ b/src/utils/constants.ts
@@ -278,8 +278,15 @@ export const BRIDGE_SELECTION_TO_ORIGIN_AND_DESTINATION_NETWORK : {[key: string]
export const IS_GLOBAL_TOP_BANNER_ENABLED = true;
export const GLOBAL_TOP_BANNER_HEIGHT = 28;
export const GLOBAL_PAGE_HEIGHT = IS_GLOBAL_TOP_BANNER_ENABLED ? `calc(100vh - ${64 + GLOBAL_TOP_BANNER_HEIGHT}px)` : 'calc(100vh - 64px)';
+export const getGlobalPageHeight = (isConsideredMobile: boolean) => {
+ if(isConsideredMobile) {
+ return IS_GLOBAL_TOP_BANNER_ENABLED ? `calc(100vh - ${(64 * 2) + GLOBAL_TOP_BANNER_HEIGHT}px)` : 'calc(100vh - 64px)';
+ }
+ return GLOBAL_PAGE_HEIGHT;
+}
+
-interface ICollectionEntry {
+export interface ICollectionEntry {
network: string;
address: string;
slug: string;
diff --git a/yarn.lock b/yarn.lock
index 29ef866..4cf08df 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1577,7 +1577,7 @@
"@ethereumjs/util" "^8.1.0"
ethereum-cryptography "^2.0.0"
-"@ethereumjs/util@^8.1.0":
+"@ethereumjs/util@^8.0.6", "@ethereumjs/util@^8.1.0":
version "8.1.0"
resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4"
integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==
@@ -2300,6 +2300,18 @@
resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.1.tgz#16308cea045f0fc777b6ff20a9f25474dd8293d2"
integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==
+"@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0":
+ version "9.3.0"
+ resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb"
+ integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==
+
+"@hapi/topo@^5.1.0":
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012"
+ integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==
+ dependencies:
+ "@hapi/hoek" "^9.0.0"
+
"@humanwhocodes/config-array@^0.11.13":
version "0.11.14"
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b"
@@ -2675,6 +2687,17 @@
dependencies:
"@lit-labs/ssr-dom-shim" "^1.2.0"
+"@livepeer/core@^1.9.2":
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/@livepeer/core/-/core-1.9.2.tgz#47b14b4a06ee5249ac3fcd10b119cbe9723ebd8f"
+ integrity sha512-b97YpsxEDStZs8JHj4MCoMK1SJ80hRLcPOHlQohpZSp/Guvx56j/SNbCTLclmJFWBu5+ddtSpWzCXsr0moI8/g==
+ dependencies:
+ cross-fetch "^4.0.0"
+ ms "^3.0.0-canary.1"
+ multiformats "9.9.0"
+ tus-js-client "^3.1.0"
+ zustand "^4.3.9"
+
"@metamask/detect-provider@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@metamask/detect-provider/-/detect-provider-2.0.0.tgz#4bc2795e5e6f7d8b84b2e845058d2f222c99917d"
@@ -2689,6 +2712,18 @@
"@metamask/safe-event-emitter" "^3.0.0"
"@metamask/utils" "^5.0.1"
+"@metamask/eth-sig-util@^5.0.2":
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-5.1.0.tgz#a47f62800ee1917fef976ba67544a0ccd7d1bd6b"
+ integrity sha512-mlgziIHYlA9pi/XZerChqg4NocdOgBPB9NmxgXWQO2U2hH8RGOJQrz6j/AIKkYxgCMIE2PY000+joOwXfzeTDQ==
+ dependencies:
+ "@ethereumjs/util" "^8.0.6"
+ bn.js "^4.12.0"
+ ethereum-cryptography "^2.0.0"
+ ethjs-util "^0.1.6"
+ tweetnacl "^1.0.3"
+ tweetnacl-util "^0.15.1"
+
"@metamask/jazzicon@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@metamask/jazzicon/-/jazzicon-2.0.0.tgz#5615528e91c0fc5c9d79202d1f0954a7922525a0"
@@ -3277,6 +3312,28 @@
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f"
integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
+"@pushprotocol/restapi@^1.7.25":
+ version "1.7.25"
+ resolved "https://registry.yarnpkg.com/@pushprotocol/restapi/-/restapi-1.7.25.tgz#cbdb0e4369581ae1eee15110a5ae4e8caa9987e4"
+ integrity sha512-GFkGoctHw+bHUV/2Ff0zFc6ZJMFu/7k2L+VhLtkeb16Sh7HBojk7c4ktdiGgRm/kWLjDp1IDFjUXR+PLFziPAA==
+ dependencies:
+ "@metamask/eth-sig-util" "^5.0.2"
+ axios "^0.27.2"
+ buffer "^6.0.3"
+ crypto-js "^4.1.1"
+ immer "^10.0.2"
+ joi "^17.9.2"
+ livepeer "^2.5.8"
+ lru-cache "^10.1.0"
+ openpgp "^5.5.0"
+ simple-peer "^9.11.1"
+ socket.io-client "^4.7.2"
+ tslib "^2.3.0"
+ unique-names-generator "^4.7.1"
+ uuid "^9.0.0"
+ video-stream-merger "^4.0.1"
+ viem "^1.20.3"
+
"@react-leaflet/core@^2.1.0":
version "2.1.0"
resolved "https://registry.yarnpkg.com/@react-leaflet/core/-/core-2.1.0.tgz#383acd31259d7c9ae8fb1b02d5e18fe613c2a13d"
@@ -3490,6 +3547,23 @@
"@noble/hashes" "~1.4.0"
"@scure/base" "~1.1.6"
+"@sideway/address@^4.1.5":
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.5.tgz#4bc149a0076623ced99ca8208ba780d65a99b9d5"
+ integrity sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==
+ dependencies:
+ "@hapi/hoek" "^9.0.0"
+
+"@sideway/formula@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f"
+ integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==
+
+"@sideway/pinpoint@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df"
+ integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==
+
"@sinclair/typebox@^0.24.1":
version "0.24.51"
resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f"
@@ -3653,6 +3727,11 @@
"@stablelib/random" "^1.0.2"
"@stablelib/wipe" "^1.0.1"
+"@stitches/core@^1.2.8":
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/@stitches/core/-/core-1.2.8.tgz#dce3b8fdc764fbc6dbea30c83b73bfb52cf96173"
+ integrity sha512-Gfkvwk9o9kE9r9XNBmJRfV8zONvXThnm1tcuojL04Uy5uRyqg93DC83lDebl0rocZCfKSjUv+fWYtMQmEDJldg==
+
"@surma/rollup-plugin-off-main-thread@^2.2.3":
version "2.2.3"
resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053"
@@ -5996,6 +6075,25 @@ asap@~2.0.6:
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==
+asn1.js@^4.10.1:
+ version "4.10.1"
+ resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
+ integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==
+ dependencies:
+ bn.js "^4.0.0"
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+
+asn1.js@^5.0.0:
+ version "5.4.1"
+ resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
+ integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
+ dependencies:
+ bn.js "^4.0.0"
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+ safer-buffer "^2.1.0"
+
asn1@~0.2.3:
version "0.2.6"
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d"
@@ -6121,6 +6219,14 @@ axe-core@=4.7.0:
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.0.tgz#34ba5a48a8b564f67e103f0aa5768d76e15bbbbf"
integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==
+axios@^0.27.2:
+ version "0.27.2"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972"
+ integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==
+ dependencies:
+ follow-redirects "^1.14.9"
+ form-data "^4.0.0"
+
axios@^1.4.0:
version "1.6.7"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7"
@@ -6376,12 +6482,12 @@ bn.js@4.11.8:
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
-bn.js@^4.11.0, bn.js@^4.11.8, bn.js@^4.11.9:
+bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.0, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.12.0:
version "4.12.0"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
-bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1:
+bn.js@^5.0.0, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70"
integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==
@@ -6444,7 +6550,7 @@ braces@^3.0.2, braces@^3.0.3, braces@~3.0.2:
dependencies:
fill-range "^7.1.1"
-brorand@^1.1.0:
+brorand@^1.0.1, brorand@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==
@@ -6454,7 +6560,7 @@ browser-process-hrtime@^1.0.0:
resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
-browserify-aes@^1.2.0:
+browserify-aes@^1.0.4, browserify-aes@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
@@ -6466,6 +6572,56 @@ browserify-aes@^1.2.0:
inherits "^2.0.1"
safe-buffer "^5.0.1"
+browserify-cipher@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
+ integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
+ dependencies:
+ browserify-aes "^1.0.4"
+ browserify-des "^1.0.0"
+ evp_bytestokey "^1.0.0"
+
+browserify-des@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
+ integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
+ dependencies:
+ cipher-base "^1.0.1"
+ des.js "^1.0.0"
+ inherits "^2.0.1"
+ safe-buffer "^5.1.2"
+
+browserify-rsa@^4.0.0, browserify-rsa@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d"
+ integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==
+ dependencies:
+ bn.js "^5.0.0"
+ randombytes "^2.0.1"
+
+browserify-sign@^4.0.0:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.3.tgz#7afe4c01ec7ee59a89a558a4b75bd85ae62d4208"
+ integrity sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==
+ dependencies:
+ bn.js "^5.2.1"
+ browserify-rsa "^4.1.0"
+ create-hash "^1.2.0"
+ create-hmac "^1.1.7"
+ elliptic "^6.5.5"
+ hash-base "~3.0"
+ inherits "^2.0.4"
+ parse-asn1 "^5.1.7"
+ readable-stream "^2.3.8"
+ safe-buffer "^5.2.1"
+
+browserify-zlib@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
+ integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
+ dependencies:
+ pako "~1.0.5"
+
browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.22.2:
version "4.22.3"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.3.tgz#299d11b7e947a6b843981392721169e27d60c5a6"
@@ -6522,7 +6678,7 @@ buffer-fill@^1.0.0:
resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==
-buffer-from@^1.0.0, buffer-from@^1.1.1:
+buffer-from@^1.0.0, buffer-from@^1.1.1, buffer-from@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
@@ -6983,6 +7139,14 @@ colorette@^2.0.10:
resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a"
integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
+combine-errors@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/combine-errors/-/combine-errors-3.0.3.tgz#f4df6740083e5703a3181110c2b10551f003da86"
+ integrity sha512-C8ikRNRMygCwaTx+Ek3Yr+OuZzgZjduCOfSQBjbM8V3MfgcjSTeto/GXP6PAwKvJz/v15b7GHZvx5rOlczFw/Q==
+ dependencies:
+ custom-error-instance "2.1.1"
+ lodash.uniqby "4.5.0"
+
combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
version "1.0.8"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
@@ -7145,6 +7309,11 @@ core-js@^3.0.0, core-js@^3.19.2:
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.35.1.tgz#9c28f8b7ccee482796f8590cc8d15739eaaf980c"
integrity sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==
+core-js@^3.31.1:
+ version "3.38.1"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.38.1.tgz#aa375b79a286a670388a1a363363d53677c0383e"
+ integrity sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==
+
core-util-is@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -7182,6 +7351,14 @@ crc-32@^1.2.0:
resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff"
integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==
+create-ecdh@^4.0.0:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
+ integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==
+ dependencies:
+ bn.js "^4.1.0"
+ elliptic "^6.5.3"
+
create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
@@ -7193,7 +7370,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
ripemd160 "^2.0.1"
sha.js "^2.4.0"
-create-hmac@^1.1.4, create-hmac@^1.1.7:
+create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
@@ -7241,7 +7418,24 @@ crossws@^0.2.0, crossws@^0.2.4:
resolved "https://registry.yarnpkg.com/crossws/-/crossws-0.2.4.tgz#82a8b518bff1018ab1d21ced9e35ffbe1681ad03"
integrity sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg==
-crypto-js@^4.2.0:
+crypto-browserify@^3.12.0:
+ version "3.12.0"
+ resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
+ integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
+ dependencies:
+ browserify-cipher "^1.0.0"
+ browserify-sign "^4.0.0"
+ create-ecdh "^4.0.0"
+ create-hash "^1.1.0"
+ create-hmac "^1.1.0"
+ diffie-hellman "^5.0.0"
+ inherits "^2.0.1"
+ pbkdf2 "^3.0.3"
+ public-encrypt "^4.0.0"
+ randombytes "^2.0.0"
+ randomfill "^1.0.3"
+
+crypto-js@^4.1.1, crypto-js@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631"
integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==
@@ -7477,6 +7671,11 @@ csstype@^3.0.2, csstype@^3.1.2, csstype@^3.1.3:
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
+custom-error-instance@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/custom-error-instance/-/custom-error-instance-2.1.1.tgz#3cf6391487a6629a6247eb0ca0ce00081b7e361a"
+ integrity sha512-p6JFxJc3M4OTD2li2qaHkDCw9SfMw82Ldr6OC9Je1aXiGfhx2W8p3GaoeaGrPJTUN9NirTM/KTxHWMUdR1rsUg==
+
d3-array@2, d3-array@^2.3.0:
version "2.12.1"
resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81"
@@ -7827,6 +8026,14 @@ dequal@^2.0.3:
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
+des.js@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da"
+ integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==
+ dependencies:
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+
destr@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/destr/-/destr-2.0.3.tgz#7f9e97cb3d16dbdca7be52aca1644ce402cfe449"
@@ -7890,6 +8097,15 @@ diff-sequences@^29.6.3:
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921"
integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==
+diffie-hellman@^5.0.0:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
+ integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
+ dependencies:
+ bn.js "^4.1.0"
+ miller-rabin "^4.0.0"
+ randombytes "^2.0.0"
+
dijkstrajs@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz#4c8dbdea1f0f6478bff94d9c49c784d623e4fc23"
@@ -8114,6 +8330,19 @@ elliptic@6.5.4, elliptic@^6.5.2:
minimalistic-assert "^1.0.1"
minimalistic-crypto-utils "^1.0.1"
+elliptic@^6.5.3, elliptic@^6.5.5:
+ version "6.5.7"
+ resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.7.tgz#8ec4da2cb2939926a1b9a73619d768207e647c8b"
+ integrity sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==
+ dependencies:
+ bn.js "^4.11.9"
+ brorand "^1.1.0"
+ hash.js "^1.0.0"
+ hmac-drbg "^1.0.1"
+ inherits "^2.0.4"
+ minimalistic-assert "^1.0.1"
+ minimalistic-crypto-utils "^1.0.1"
+
elliptic@^6.5.4:
version "6.5.5"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.5.tgz#c715e09f78b6923977610d4c2346d6ce22e6dded"
@@ -9037,7 +9266,7 @@ ethjs-unit@0.1.6:
bn.js "4.11.6"
number-to-bn "1.7.0"
-ethjs-util@0.1.6, ethjs-util@^0.1.3:
+ethjs-util@0.1.6, ethjs-util@^0.1.3, ethjs-util@^0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536"
integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==
@@ -9070,7 +9299,7 @@ events@3.3.0, events@^3.0.0, events@^3.2.0, events@^3.3.0:
resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
-evp_bytestokey@^1.0.3:
+evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
@@ -9382,6 +9611,11 @@ follow-redirects@^1.0.0, follow-redirects@^1.15.4:
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020"
integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==
+follow-redirects@^1.14.9:
+ version "1.15.9"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1"
+ integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==
+
for-each@^0.3.3:
version "0.3.3"
resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
@@ -9551,6 +9785,11 @@ gensync@^1.0.0-beta.2:
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+get-browser-rtc@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz#d1494e299b00f33fc8e9d6d3343ba4ba99711a2c"
+ integrity sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ==
+
get-caller-file@^2.0.1, get-caller-file@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
@@ -9830,6 +10069,14 @@ hash-base@^3.0.0:
readable-stream "^3.6.0"
safe-buffer "^5.2.0"
+hash-base@~3.0:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918"
+ integrity sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==
+ dependencies:
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
@@ -9863,6 +10110,11 @@ hey-listen@^1.0.8:
resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68"
integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==
+hls.js@^1.4.12:
+ version "1.5.15"
+ resolved "https://registry.yarnpkg.com/hls.js/-/hls.js-1.5.15.tgz#dbceb45492dcbdce9659e0d43cffa6c5cebaefb7"
+ integrity sha512-6cD7xN6bycBHaXz2WyPIaHn/iXFizE5au2yvY5q9aC4wfihxAr16C9fUy4nxh2a3wOw0fEgLRa9dN6wsYjlpNg==
+
hmac-drbg@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
@@ -10112,6 +10364,11 @@ immediate@^3.2.3:
resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266"
integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==
+immer@^10.0.2:
+ version "10.1.1"
+ resolved "https://registry.yarnpkg.com/immer/-/immer-10.1.1.tgz#206f344ea372d8ea176891545ee53ccc062db7bc"
+ integrity sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==
+
immer@^9.0.7:
version "9.0.21"
resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176"
@@ -11241,6 +11498,22 @@ jiti@^1.21.0:
resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268"
integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==
+joi@^17.9.2:
+ version "17.13.3"
+ resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.3.tgz#0f5cc1169c999b30d344366d384b12d92558bcec"
+ integrity sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==
+ dependencies:
+ "@hapi/hoek" "^9.3.0"
+ "@hapi/topo" "^5.1.0"
+ "@sideway/address" "^4.1.5"
+ "@sideway/formula" "^3.0.1"
+ "@sideway/pinpoint" "^2.0.0"
+
+js-base64@^3.7.2:
+ version "3.7.7"
+ resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.7.tgz#e51b84bf78fbf5702b9541e2cb7bfcb893b43e79"
+ integrity sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==
+
js-sha3@0.8.0, js-sha3@^0.8.0:
version "0.8.0"
resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840"
@@ -11736,6 +12009,20 @@ lit@3.1.0:
lit-element "^4.0.0"
lit-html "^3.1.0"
+livepeer@^2.5.8:
+ version "2.9.2"
+ resolved "https://registry.yarnpkg.com/livepeer/-/livepeer-2.9.2.tgz#12a6080a875401ea630cc3367a44c8f392fe1a23"
+ integrity sha512-bkFLjw/+wFFNI5TT9z2Fa1yNEByGxBtkA1IoEWHytvkJtA2ifoiT676sZYpy+D+nZp1XdLEBdvudkDwM/SlPhg==
+ dependencies:
+ "@livepeer/core" "^1.9.2"
+ "@stitches/core" "^1.2.8"
+ core-js "^3.31.1"
+ cross-fetch "^4.0.0"
+ hls.js "^1.4.12"
+ ms "^3.0.0-canary.1"
+ tus-js-client "^3.1.0"
+ zustand "^4.3.9"
+
loader-runner@^4.2.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1"
@@ -11782,6 +12069,43 @@ lodash-es@^4.17.21:
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
+lodash._baseiteratee@~4.7.0:
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/lodash._baseiteratee/-/lodash._baseiteratee-4.7.0.tgz#34a9b5543572727c3db2e78edae3c0e9e66bd102"
+ integrity sha512-nqB9M+wITz0BX/Q2xg6fQ8mLkyfF7MU7eE+MNBNjTHFKeKaZAPEzEg+E8LWxKWf1DQVflNEn9N49yAuqKh2mWQ==
+ dependencies:
+ lodash._stringtopath "~4.8.0"
+
+lodash._basetostring@~4.12.0:
+ version "4.12.0"
+ resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz#9327c9dc5158866b7fa4b9d42f4638e5766dd9df"
+ integrity sha512-SwcRIbyxnN6CFEEK4K1y+zuApvWdpQdBHM/swxP962s8HIxPO3alBH5t3m/dl+f4CMUug6sJb7Pww8d13/9WSw==
+
+lodash._baseuniq@~4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz#0ebb44e456814af7905c6212fa2c9b2d51b841e8"
+ integrity sha512-Ja1YevpHZctlI5beLA7oc5KNDhGcPixFhcqSiORHNsp/1QTv7amAXzw+gu4YOvErqVlMVyIJGgtzeepCnnur0A==
+ dependencies:
+ lodash._createset "~4.0.0"
+ lodash._root "~3.0.0"
+
+lodash._createset@~4.0.0:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26"
+ integrity sha512-GTkC6YMprrJZCYU3zcqZj+jkXkrXzq3IPBcF/fIPpNEAB4hZEtXU8zp/RwKOvZl43NUmwDbyRk3+ZTbeRdEBXA==
+
+lodash._root@~3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692"
+ integrity sha512-O0pWuFSK6x4EXhM1dhZ8gchNtG7JMqBtrHdoUFUWXD7dJnNSUze1GuyQr5sOs0aCvgGeI3o/OJW8f4ca7FDxmQ==
+
+lodash._stringtopath@~4.8.0:
+ version "4.8.0"
+ resolved "https://registry.yarnpkg.com/lodash._stringtopath/-/lodash._stringtopath-4.8.0.tgz#941bcf0e64266e5fc1d66fed0a6959544c576824"
+ integrity sha512-SXL66C731p0xPDC5LZg4wI5H+dJo/EO4KTqOMwLYCH3+FmmfAKJEZCm6ohGpI+T1xwsDsJCfL4OnhorllvlTPQ==
+ dependencies:
+ lodash._basetostring "~4.12.0"
+
lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
@@ -11812,11 +12136,24 @@ lodash.sortby@^4.7.0:
resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==
+lodash.throttle@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
+ integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==
+
lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==
+lodash.uniqby@4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.5.0.tgz#a3a17bbf62eeb6240f491846e97c1c4e2a5e1e21"
+ integrity sha512-IRt7cfTtHy6f1aRVA5n7kT8rgN3N1nH6MOWLcHfpWG2SH19E3JksLK38MktLxZDhlAjCP9jpIXkOnRXlu6oByQ==
+ dependencies:
+ lodash._baseiteratee "~4.7.0"
+ lodash._baseuniq "~4.6.0"
+
lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
@@ -11843,7 +12180,7 @@ lower-case@^2.0.2:
dependencies:
tslib "^2.0.3"
-lru-cache@^10.2.0:
+lru-cache@^10.1.0, lru-cache@^10.2.0:
version "10.4.3"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119"
integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==
@@ -12043,6 +12380,14 @@ micromatch@^4.0.5:
braces "^3.0.3"
picomatch "^2.3.1"
+miller-rabin@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
+ integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
+ dependencies:
+ bn.js "^4.0.0"
+ brorand "^1.0.1"
+
mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
version "1.52.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
@@ -12191,6 +12536,11 @@ ms@2.1.3, ms@^2.1.1:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+ms@^3.0.0-canary.1:
+ version "3.0.0-canary.1"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-3.0.0-canary.1.tgz#c7b34fbce381492fd0b345d1cf56e14d67b77b80"
+ integrity sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==
+
multicast-dns@^7.2.5:
version "7.2.5"
resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced"
@@ -12199,6 +12549,11 @@ multicast-dns@^7.2.5:
dns-packet "^5.2.2"
thunky "^1.0.2"
+multiformats@9.9.0, multiformats@^9.4.2:
+ version "9.9.0"
+ resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37"
+ integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==
+
multiformats@^11.0.0:
version "11.0.2"
resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-11.0.2.tgz#b14735efc42cd8581e73895e66bebb9752151b60"
@@ -12214,11 +12569,6 @@ multiformats@^13.0.0:
resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-13.0.1.tgz#c0622affa5171189eacd57c06f977195ca7acb08"
integrity sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA==
-multiformats@^9.4.2:
- version "9.9.0"
- resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37"
- integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==
-
mz@^2.7.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
@@ -12563,6 +12913,13 @@ open@^8.0.9, open@^8.4.0:
is-docker "^2.1.1"
is-wsl "^2.2.0"
+openpgp@^5.5.0:
+ version "5.11.2"
+ resolved "https://registry.yarnpkg.com/openpgp/-/openpgp-5.11.2.tgz#2c035a26b13feb3b0bb5180718ec91c8e65cc686"
+ integrity sha512-f8dJFVLwdkvPvW3VPFs6q9Vs2+HNhdvwls7a/MIFcQUB+XiQzRe7alfa3RtwfGJU7oUDDMAWPZ0nYsHa23Az+A==
+ dependencies:
+ asn1.js "^5.0.0"
+
optionator@^0.8.1:
version "0.8.3"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
@@ -12645,6 +13002,11 @@ p-try@^2.0.0:
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+pako@~1.0.5:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
+ integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
+
param-case@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5"
@@ -12660,6 +13022,18 @@ parent-module@^1.0.0:
dependencies:
callsites "^3.0.0"
+parse-asn1@^5.0.0, parse-asn1@^5.1.7:
+ version "5.1.7"
+ resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.7.tgz#73cdaaa822125f9647165625eb45f8a051d2df06"
+ integrity sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==
+ dependencies:
+ asn1.js "^4.10.1"
+ browserify-aes "^1.2.0"
+ evp_bytestokey "^1.0.3"
+ hash-base "~3.0"
+ pbkdf2 "^3.1.2"
+ safe-buffer "^5.2.1"
+
parse-headers@^2.0.0:
version "2.0.5"
resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.5.tgz#069793f9356a54008571eb7f9761153e6c770da9"
@@ -12764,7 +13138,7 @@ pathval@^1.1.1:
resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d"
integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==
-pbkdf2@^3.0.17:
+pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==
@@ -13573,6 +13947,15 @@ prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.7, prop-types@^15.6.0,
object-assign "^4.1.1"
react-is "^16.13.1"
+proper-lockfile@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f"
+ integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==
+ dependencies:
+ graceful-fs "^4.2.4"
+ retry "^0.12.0"
+ signal-exit "^3.0.2"
+
property-expr@^2.0.5:
version "2.0.6"
resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.6.tgz#f77bc00d5928a6c748414ad12882e83f24aec1e8"
@@ -13606,6 +13989,18 @@ psl@^1.1.28, psl@^1.1.33:
resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
+public-encrypt@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
+ integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
+ dependencies:
+ bn.js "^4.1.0"
+ browserify-rsa "^4.0.0"
+ create-hash "^1.1.0"
+ parse-asn1 "^5.0.0"
+ randombytes "^2.0.1"
+ safe-buffer "^5.1.2"
+
pump@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
@@ -13717,7 +14112,7 @@ querystringify@^2.1.1:
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
-queue-microtask@^1.2.2:
+queue-microtask@^1.2.2, queue-microtask@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
@@ -13739,13 +14134,21 @@ raf@^3.4.1:
dependencies:
performance-now "^2.1.0"
-randombytes@^2.1.0:
+randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
dependencies:
safe-buffer "^5.1.0"
+randomfill@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
+ integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
+ dependencies:
+ randombytes "^2.0.5"
+ safe-buffer "^5.1.0"
+
range-parser@^1.2.1, range-parser@~1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
@@ -13851,6 +14254,11 @@ react-fast-marquee@^1.6.2:
resolved "https://registry.yarnpkg.com/react-fast-marquee/-/react-fast-marquee-1.6.3.tgz#a1f3a0ce3b298c395766d19051aa8fa3af9f1a1c"
integrity sha512-oEISmNElv6lua/4i4uPYIteUKDxU0hAKKjH/tY2icje4GCns1rX6pIrkwVhjX0FMCIepUVqeyCchvqkiO/s2vw==
+react-ga4@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/react-ga4/-/react-ga4-2.1.0.tgz#56601f59d95c08466ebd6edfbf8dede55c4678f9"
+ integrity sha512-ZKS7PGNFqqMd3PJ6+C2Jtz/o1iU9ggiy8Y8nUeksgVuvNISbmrQtJiZNvC/TjDsqD0QlU5Wkgs7i+w9+OjHhhQ==
+
react-google-recaptcha-v3@^1.10.1:
version "1.10.1"
resolved "https://registry.yarnpkg.com/react-google-recaptcha-v3/-/react-google-recaptcha-v3-1.10.1.tgz#5b125bc0dec123206431860e8800e188fc735aff"
@@ -14051,7 +14459,7 @@ readable-stream@^1.0.33:
isarray "0.0.1"
string_decoder "~0.10.x"
-readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.2.9, readable-stream@^2.3.3:
+readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.8:
version "2.3.8"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
@@ -14348,6 +14756,11 @@ resolve@^2.0.0-next.4:
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
+retry@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
+ integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==
+
retry@^0.13.1:
version "0.13.1"
resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658"
@@ -14434,7 +14847,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
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.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
+safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
@@ -14786,6 +15199,19 @@ signal-exit@^4.0.1, signal-exit@^4.1.0:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+simple-peer@^9.11.1:
+ version "9.11.1"
+ resolved "https://registry.yarnpkg.com/simple-peer/-/simple-peer-9.11.1.tgz#9814d5723f821b778b7fb011bdefcbd1e788e6cc"
+ integrity sha512-D1SaWpOW8afq1CZGWB8xTfrT3FekjQmPValrqncJMX7QFl8YwhrPTZvMCANLtgBwwdS+7zURyqxDDEmY558tTw==
+ dependencies:
+ buffer "^6.0.3"
+ debug "^4.3.2"
+ err-code "^3.0.1"
+ get-browser-rtc "^1.1.0"
+ queue-microtask "^1.2.3"
+ randombytes "^2.1.0"
+ readable-stream "^3.6.0"
+
sisteransi@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
@@ -14809,7 +15235,7 @@ snake-case@^3.0.4:
dot-case "^3.0.4"
tslib "^2.0.3"
-socket.io-client@^4.5.1:
+socket.io-client@^4.5.1, socket.io-client@^4.7.2:
version "4.7.5"
resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.7.5.tgz#919be76916989758bdc20eec63f7ee0ae45c05b7"
integrity sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==
@@ -15620,6 +16046,11 @@ tslib@^2.0.3:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
+tslib@^2.3.0:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01"
+ integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==
+
tsutils@^3.21.0:
version "3.21.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
@@ -15634,11 +16065,34 @@ tunnel-agent@^0.6.0:
dependencies:
safe-buffer "^5.0.1"
+tus-js-client@^3.1.0:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/tus-js-client/-/tus-js-client-3.1.3.tgz#bac62c14c770ba71492072179b55292baa19a074"
+ integrity sha512-n9k6rI/nPOuP2TaqPG6Ogz3a3V1cSH9en7N0VH4gh95jmG8JA58TJzLms2lBfb7aKVb3fdUunqYEG3WnQnZRvQ==
+ dependencies:
+ buffer-from "^1.1.2"
+ combine-errors "^3.0.3"
+ is-stream "^2.0.0"
+ js-base64 "^3.7.2"
+ lodash.throttle "^4.1.1"
+ proper-lockfile "^4.1.2"
+ url-parse "^1.5.7"
+
+tweetnacl-util@^0.15.1:
+ version "0.15.1"
+ resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b"
+ integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==
+
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
version "0.14.5"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==
+tweetnacl@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596"
+ integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==
+
type-check@^0.4.0, type-check@~0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
@@ -15856,6 +16310,11 @@ unicode-property-aliases-ecmascript@^2.0.0:
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd"
integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==
+unique-names-generator@^4.7.1:
+ version "4.7.1"
+ resolved "https://registry.yarnpkg.com/unique-names-generator/-/unique-names-generator-4.7.1.tgz#966407b12ba97f618928f77322cfac8c80df5597"
+ integrity sha512-lMx9dX+KRmG8sq6gulYYpKWZc9RlGsgBR6aoO8Qsm3qvkSJ+3rAymr+TnV8EDMrIrwuFJ4kruzMWM/OpYzPoow==
+
unique-string@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
@@ -15947,7 +16406,7 @@ uri-js@^4.2.2:
dependencies:
punycode "^2.1.0"
-url-parse@^1.5.3:
+url-parse@^1.5.3, url-parse@^1.5.7:
version "1.5.10"
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1"
integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==
@@ -15973,6 +16432,11 @@ use-sync-external-store@1.2.0:
resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a"
integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==
+use-sync-external-store@1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz#c3b6390f3a30eba13200d2302dcdf1e7b57b2ef9"
+ integrity sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==
+
utf-8-validate@^5.0.2:
version "5.0.10"
resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2"
@@ -16031,7 +16495,7 @@ uuid@^8.3.2:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
-uuid@^9.0.1:
+uuid@^9.0.0, uuid@^9.0.1:
version "9.0.1"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30"
integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==
@@ -16072,7 +16536,12 @@ verror@1.10.0:
core-util-is "1.0.2"
extsprintf "^1.2.0"
-viem@^1.0.0, viem@^1.1.4, viem@^1.16.6:
+video-stream-merger@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/video-stream-merger/-/video-stream-merger-4.0.1.tgz#b0061251bd211121d1256ccf9e2be9477e59d5cb"
+ integrity sha512-VazYSr8tk6S/zkOq5jpR/ryy1HnGxm5XCw+d2Ejpqy1m6d71oZpyFG82dUkgAo7dg/lk3k4TqvJPtuRUtR8URA==
+
+viem@^1.0.0, viem@^1.1.4, viem@^1.16.6, viem@^1.20.3:
version "1.21.4"
resolved "https://registry.yarnpkg.com/viem/-/viem-1.21.4.tgz#883760e9222540a5a7e0339809202b45fe6a842d"
integrity sha512-BNVYdSaUjeS2zKQgPs+49e5JKocfo60Ib2yiXOWBT6LuVxY1I/6fFX3waEtpXvL1Xn4qu+BVitVtMh9lyThyhQ==
@@ -16100,6 +16569,11 @@ viem@^2.16.2:
isows "1.0.4"
ws "8.17.1"
+vm-browserify@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
+ integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
+
vue@>=3:
version "3.4.15"
resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.15.tgz#91f979844ffca9239dff622ba4c79c5d5524b88c"
@@ -16954,3 +17428,10 @@ zustand@4.4.1:
integrity sha512-QCPfstAS4EBiTQzlaGP1gmorkh/UL1Leaj2tdj+zZCZ/9bm0WS7sI2wnfD5lpOszFqWJ1DcPnGoY8RDL61uokw==
dependencies:
use-sync-external-store "1.2.0"
+
+zustand@^4.3.9:
+ version "4.5.5"
+ resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.5.5.tgz#f8c713041543715ec81a2adda0610e1dc82d4ad1"
+ integrity sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q==
+ dependencies:
+ use-sync-external-store "1.2.2"