diff --git a/chakra-theme.ts b/chakra-theme.ts new file mode 100644 index 0000000..b5dc156 --- /dev/null +++ b/chakra-theme.ts @@ -0,0 +1,31 @@ +import { extendTheme, ThemeOverride } from "@chakra-ui/react"; + +export const chakraTheme: ThemeOverride = extendTheme({ + fonts: { + heading: `'Director-regular', sans-serif`, + body: `'Switzer', sans-serif`, + }, + fontSizes: { + lg: "24px", + }, + lineHeights: { + base: "1", + }, + components: { + Button: { + baseStyle: { + borderRadius: "0", + }, + }, + Input: { + baseStyle: { + field: { + borderRadius: "0", + }, + addon: { + borderRadius: "0", + }, + }, + }, + }, +} as ThemeOverride); diff --git a/components/GenericModal.tsx b/components/GenericModal.tsx new file mode 100644 index 0000000..3d4d249 --- /dev/null +++ b/components/GenericModal.tsx @@ -0,0 +1,28 @@ +import { + ModalBody, + ModalCloseButton, + ModalContent, + ModalHeader, + ModalOverlay, + ModalProps, +} from "@chakra-ui/modal"; +import { Flex, Modal } from "@chakra-ui/react"; + +export const GenericModal = ({ + title, + children, + ...modalProps +}: ModalProps & { title: string }) => { + return ( + + + + {title} + + + {children} + + + + ); +}; diff --git a/components/Layout.tsx b/components/Layout.tsx index ee4d53a..d50e2bc 100644 --- a/components/Layout.tsx +++ b/components/Layout.tsx @@ -3,6 +3,8 @@ import { Box, Flex, Heading, HStack, Text } from "@chakra-ui/react"; import Link from "next/link"; import { ConnectButton } from "@/components/ConnectButton"; +export const headerHeight = "80px"; + export const Layout = ({ children }: PropsWithChildren) => { return ( { > {children} - + {/**/} ); }; @@ -22,7 +24,7 @@ const Header = () => { return ( { ); }; -const Footer = () => { - return ( - - Footer - - ); -}; +// const Footer = () => { +// return ( +// +// Footer +// +// ); +// }; diff --git a/components/admin/create-hyperboard-modal.tsx b/components/admin/create-hyperboard-modal.tsx new file mode 100644 index 0000000..37e3c6b --- /dev/null +++ b/components/admin/create-hyperboard-modal.tsx @@ -0,0 +1,113 @@ +import { ModalProps } from "@chakra-ui/modal"; +import { useToast } from "@chakra-ui/react"; +import { useGetAuthenticatedClient } from "@/hooks/useGetAuthenticatedClient"; +import { useAddress } from "@/hooks/useAddress"; +import { + CreateOrUpdateHyperboardForm, + CreateOrUpdateHyperboardFormValues, +} from "@/components/forms/create-or-update-hyperboard-form"; +import { GenericModal } from "@/components/GenericModal"; +import { useMyHyperboards } from "@/hooks/useMyHyperboards"; +import { useAddRegistriesToHyperboard } from "@/hooks/useAddRegistriesToHyperboard"; +import { useChainId } from "wagmi"; + +export const CreateHyperboardModal = ({ + ...modalProps +}: Omit) => { + const getClient = useGetAuthenticatedClient(); + const address = useAddress(); + const toast = useToast(); + const chainId = useChainId(); + + const { refetch } = useMyHyperboards(); + const { mutateAsync: addRegistriesToHyperboard } = + useAddRegistriesToHyperboard(); + + const onConfirm = async (values: CreateOrUpdateHyperboardFormValues) => { + if (!address) { + toast({ + title: "Error", + description: "You must be connected to create a hyperboard", + status: "error", + duration: 9000, + isClosable: true, + }); + return; + } + const supabase = await getClient(); + + if (!supabase) { + return; + } + + if (!chainId) { + return; + } + + const { data: insertedHyperboard, error } = await supabase + .from("hyperboards") + .insert({ + name: values.name, + chain_id: chainId, + admin_id: address, + }) + .select(); + + if (error) { + toast({ + title: "Error", + description: error.message, + status: "error", + duration: 9000, + isClosable: true, + }); + return; + } + + const insertedHyperboardId = insertedHyperboard?.[0]?.id; + if (!insertedHyperboardId) { + toast({ + title: "Error", + description: "Could not create hyperboard", + status: "error", + duration: 9000, + isClosable: true, + }); + return; + } + + if (values.registries?.length) { + try { + await addRegistriesToHyperboard({ + hyperboardId: insertedHyperboardId, + registryIds: values.registries.map(({ id }) => id), + }); + } catch (e) { + console.error(e); + toast({ + title: "Error", + description: "Could not add registries to hyperboard", + status: "error", + duration: 9000, + isClosable: true, + }); + return; + } + } + + toast({ + title: "Success", + description: "Hyperboard created", + status: "success", + }); + + await refetch(); + modalProps.onClose(); + }; + + return ( + + + + ); +}; diff --git a/components/admin/create-registry-modal.tsx b/components/admin/create-registry-modal.tsx new file mode 100644 index 0000000..9fdbbbf --- /dev/null +++ b/components/admin/create-registry-modal.tsx @@ -0,0 +1,121 @@ +import { ModalProps } from "@chakra-ui/modal"; +import { useToast } from "@chakra-ui/react"; +import { useGetAuthenticatedClient } from "@/hooks/useGetAuthenticatedClient"; +import { useAddress } from "@/hooks/useAddress"; +import { GenericModal } from "@/components/GenericModal"; +import { useMyRegistries } from "@/hooks/useMyRegistries"; +import { ClaimInsert } from "@/types/database-entities"; +import { + CreateOrUpdateRegistryForm, + CreateUpdateRegistryFormValues, +} from "@/components/forms/create-or-update-registry-form"; +import { useChainId } from "wagmi"; + +export const CreateRegistryModal = ({ + initialValues, + ...modalProps +}: Omit & { + initialValues: CreateUpdateRegistryFormValues | undefined; +}) => { + const getClient = useGetAuthenticatedClient(); + const address = useAddress(); + const toast = useToast(); + const chainId = useChainId(); + + const { refetch } = useMyRegistries(); + + const onConfirm = async ({ + claims, + ...registry + }: CreateUpdateRegistryFormValues) => { + if (!address) { + toast({ + title: "Error", + description: "You must be connected to create a registry", + status: "error", + duration: 9000, + isClosable: true, + }); + return; + } + + const supabase = await getClient(); + + if (!supabase) { + return; + } + + const admin_id = registry.admin_id || address; + const chain_id = registry.chain_id || chainId; + + const { error, data } = await supabase + .from("registries") + .upsert([{ ...registry, admin_id, chain_id }]) + .select(); + + if (error) { + toast({ + title: "Error", + description: error.message, + status: "error", + duration: 9000, + isClosable: true, + }); + return; + } + + const insertedRegistry = data[0]; + + if (!insertedRegistry) { + toast({ + title: "Error", + description: "Something went wrong with inserting a registry", + status: "error", + duration: 9000, + isClosable: true, + }); + return; + } + + toast({ + title: "Success", + description: "Registry created", + status: "success", + }); + + const claimInserts: ClaimInsert[] = claims.map(({ hypercert_id }) => ({ + registry_id: insertedRegistry.id, + hypercert_id, + chain_id: chainId, + admin_id: address, + })); + + const { error: insertClaimsError } = await supabase + .from("claims") + .insert(claimInserts) + .select(); + + if (insertClaimsError) { + toast({ + title: "Error", + description: insertClaimsError.message, + status: "error", + duration: 9000, + isClosable: true, + }); + return; + } + + await refetch(); + modalProps.onClose(); + }; + + return ( + + + + ); +}; diff --git a/components/admin/delete-claim-button.tsx b/components/admin/delete-claim-button.tsx new file mode 100644 index 0000000..cf61f94 --- /dev/null +++ b/components/admin/delete-claim-button.tsx @@ -0,0 +1,59 @@ +import { IconButton, useDisclosure, useToast } from "@chakra-ui/react"; +import { useMyRegistries } from "@/hooks/useMyRegistries"; +import { AiFillDelete } from "react-icons/ai"; +import { AlertDialog } from "@/components/dialogs/alert-confirmation-dialog"; +import { useDeleteClaim } from "@/hooks/useDeleteClaim"; + +export const DeleteClaimButton = ({ + claimId, + size = "md", +}: { + claimId: string; + size?: string; +}) => { + const { refetch } = useMyRegistries(); + const { onClose, onOpen, isOpen } = useDisclosure(); + + const toast = useToast(); + const { mutateAsync: deleteClaimAsync } = useDeleteClaim(); + + const onDeleteClaim = async (claimId: string) => { + try { + await deleteClaimAsync(claimId); + } catch (e) { + console.error(e); + toast({ + title: "Error", + description: "Could not delete claim", + status: "error", + duration: 9000, + isClosable: true, + }); + } + + await refetch(); + toast({ + title: "Success", + description: "Claim deleted", + status: "success", + }); + }; + + return ( + <> + } + colorScheme="red" + onClick={onOpen} + size={size} + /> + onDeleteClaim(claimId)} + onClose={onClose} + isOpen={isOpen} + /> + > + ); +}; diff --git a/components/admin/delete-hyperboard-button.tsx b/components/admin/delete-hyperboard-button.tsx new file mode 100644 index 0000000..b070d49 --- /dev/null +++ b/components/admin/delete-hyperboard-button.tsx @@ -0,0 +1,56 @@ +import { IconButton, useDisclosure, useToast } from "@chakra-ui/react"; +import { AiFillDelete } from "react-icons/ai"; +import { AlertDialog } from "@/components/dialogs/alert-confirmation-dialog"; +import { useMyHyperboards } from "@/hooks/useMyHyperboards"; +import { useDeleteHyperboard } from "@/hooks/useDeleteHyperboard"; + +export const DeleteHyperboardButton = ({ + hyperboardId, +}: { + hyperboardId: string; +}) => { + const { refetch } = useMyHyperboards(); + const { onClose, onOpen, isOpen } = useDisclosure(); + + const toast = useToast(); + const { mutateAsync: deleteHyperboardAsync } = useDeleteHyperboard(); + + const onDeleteHyperboard = async (hyperboardId: string) => { + try { + await deleteHyperboardAsync(hyperboardId); + } catch (e) { + console.error(e); + toast({ + title: "Error", + description: "Could not delete hyperboard", + status: "error", + duration: 9000, + isClosable: true, + }); + } + + await refetch(); + toast({ + title: "Success", + description: "Hyperboard deleted", + status: "success", + }); + }; + + return ( + <> + } + colorScheme="red" + onClick={onOpen} + /> + onDeleteHyperboard(hyperboardId)} + onClose={onClose} + isOpen={isOpen} + /> + > + ); +}; diff --git a/components/admin/delete-registry-button.tsx b/components/admin/delete-registry-button.tsx new file mode 100644 index 0000000..92da530 --- /dev/null +++ b/components/admin/delete-registry-button.tsx @@ -0,0 +1,56 @@ +import { IconButton, useDisclosure, useToast } from "@chakra-ui/react"; +import { useDeleteRegistry } from "@/hooks/useDeleteRegistry"; +import { useMyRegistries } from "@/hooks/useMyRegistries"; +import { AiFillDelete } from "react-icons/ai"; +import { AlertDialog } from "@/components/dialogs/alert-confirmation-dialog"; + +export const DeleteRegistryButton = ({ + registryId, +}: { + registryId: string; +}) => { + const { refetch } = useMyRegistries(); + const { onClose, onOpen, isOpen } = useDisclosure(); + + const toast = useToast(); + const { mutateAsync: deleteRegistryAsync } = useDeleteRegistry(); + + const onDeleteRegistry = async (registryId: string) => { + try { + await deleteRegistryAsync(registryId); + } catch (e) { + console.error(e); + toast({ + title: "Error", + description: "Could not delete registry", + status: "error", + duration: 9000, + isClosable: true, + }); + } + + await refetch(); + toast({ + title: "Success", + description: "Registry deleted", + status: "success", + }); + }; + + return ( + <> + } + colorScheme="red" + onClick={onOpen} + /> + onDeleteRegistry(registryId)} + onClose={onClose} + isOpen={isOpen} + /> + > + ); +}; diff --git a/components/admin/hyperboards-admin.tsx b/components/admin/hyperboards-admin.tsx new file mode 100644 index 0000000..4a671da --- /dev/null +++ b/components/admin/hyperboards-admin.tsx @@ -0,0 +1,85 @@ +import { + Button, + Card, + Flex, + Heading, + Table, + TableContainer, + Tbody, + Td, + Th, + Thead, + Tr, + useDisclosure, + VStack, +} from "@chakra-ui/react"; +import { CreateHyperboardModal } from "@/components/admin/create-hyperboard-modal"; +import { useMyHyperboards } from "@/hooks/useMyHyperboards"; +import { DeleteHyperboardButton } from "@/components/admin/delete-hyperboard-button"; +import { RemoveRegistryFromHyperboardButton } from "@/components/admin/remove-registry-from-hyperboard-button"; +import { headerHeight } from "@/components/Layout"; + +export const HyperboardsAdmin = () => { + const { + isOpen: createIsOpen, + onClose: createOnClose, + onOpen: createOnOpen, + } = useDisclosure(); + + const { data } = useMyHyperboards(); + + return ( + + + + Create Hyperboard + + {data?.data?.map((hyperboard) => ( + + + {hyperboard.name} + + + {!!hyperboard.registries.length && ( + + + + + Name + Chain ID + + + + {hyperboard.registries.map((registry) => ( + + {registry.name} + {registry.chain_id} + + + + + ))} + + + + )} + + ))} + + + + ); +}; diff --git a/components/admin/registries-admin.tsx b/components/admin/registries-admin.tsx new file mode 100644 index 0000000..746ac72 --- /dev/null +++ b/components/admin/registries-admin.tsx @@ -0,0 +1,147 @@ +import { + Button, + Card, + Flex, + Heading, + HStack, + IconButton, + TableContainer, + Td, + Tr, + Table, + useDisclosure, + VStack, + Thead, + Tbody, + Th, + Link, +} from "@chakra-ui/react"; +import { useMyRegistries } from "@/hooks/useMyRegistries"; +import { CreateRegistryModal } from "@/components/admin/create-registry-modal"; +import { useState } from "react"; +import { AiFillEdit } from "react-icons/ai"; +import { CreateUpdateRegistryFormValues } from "@/components/forms/create-or-update-registry-form"; +import { DeleteRegistryButton } from "@/components/admin/delete-registry-button"; +import { ClaimEntity } from "@/types/database-entities"; +import { useHypercertById } from "@/hooks/useHypercertById"; +import { formatAddress } from "@/utils/formatting"; +import { DeleteClaimButton } from "@/components/admin/delete-claim-button"; + +export const RegistriesAdmin = () => { + const { + isOpen: createIsOpen, + onClose: createOnClose, + onOpen: createOnOpen, + } = useDisclosure(); + + const { data } = useMyRegistries(); + + const [selectedRegistry, setSelectedRegistry] = + useState(); + + const onModalClose = () => { + createOnClose(); + setSelectedRegistry(undefined); + }; + + return ( + + + + Create Registry + + {data?.data?.map((registry) => ( + + + + {registry.name} + + { + setSelectedRegistry({ + ...registry, + claims: registry.claims.map((claim) => ({ + claim_id: claim.id, + hypercert_id: claim.hypercert_id, + })), + }); + createOnOpen(); + }} + aria-label="Edit registry" + icon={} + /> + + + + + + + + Name + Chain + Owner + External url + Description + + + + {registry.claims.map((claim) => ( + + ))} + + + + + + ))} + + + + ); +}; + +const ClaimRow = ({ hypercert_id, chain_id, id }: {} & ClaimEntity) => { + const { data } = useHypercertById(hypercert_id); + + if (!data) { + return Hypercert not found; + } + + return ( + + + + {data.metadata.name} + + + {chain_id} + {formatAddress(data.owner)} + + + {data.metadata.external_url} + + + {data.metadata.description} + + + + + ); +}; diff --git a/components/admin/registry-selector.tsx b/components/admin/registry-selector.tsx new file mode 100644 index 0000000..a6bb723 --- /dev/null +++ b/components/admin/registry-selector.tsx @@ -0,0 +1,26 @@ +import AsyncSelect from "react-select/async"; +import { supabase } from "@/lib/supabase"; + +const getRegistryOptions = async (name: string) => { + return supabase + .from("registries") + .select("id, name") + .ilike("name", `%${name}%`) + .then(({ data }) => { + return data?.map(({ id, name }) => ({ value: id, label: name })) || []; + }); +}; + +export const RegistrySelector = ({ + onChange, +}: { + onChange: (value: { value: string; label: string }[]) => void; +}) => { + return ( + onChange([...e])} + isMulti + loadOptions={getRegistryOptions} + /> + ); +}; diff --git a/components/admin/remove-registry-from-hyperboard-button.tsx b/components/admin/remove-registry-from-hyperboard-button.tsx new file mode 100644 index 0000000..305e6c8 --- /dev/null +++ b/components/admin/remove-registry-from-hyperboard-button.tsx @@ -0,0 +1,62 @@ +import { IconButton, useDisclosure, useToast } from "@chakra-ui/react"; +import { AiOutlineLink } from "react-icons/ai"; +import { AlertDialog } from "@/components/dialogs/alert-confirmation-dialog"; +import { useMyHyperboards } from "@/hooks/useMyHyperboards"; +import { useRemoveRegistryFromHyperboard } from "@/hooks/useRemoveRegistryFromHyperboard"; + +export const RemoveRegistryFromHyperboardButton = ({ + hyperboardId, + registryId, + size = "md", +}: { + hyperboardId: string; + registryId: string; + size?: string; +}) => { + const { refetch } = useMyHyperboards(); + const { onClose, onOpen, isOpen } = useDisclosure(); + + const toast = useToast(); + const { mutateAsync: removeRegistryFromHyperboard } = + useRemoveRegistryFromHyperboard(); + + const onConfirm = async () => { + try { + await removeRegistryFromHyperboard({ hyperboardId, registryId }); + } catch (e) { + console.error(e); + toast({ + title: "Error", + description: "Could not remove registry from hyperboard", + status: "error", + duration: 9000, + isClosable: true, + }); + } + + await refetch(); + toast({ + title: "Success", + description: "Registry removed from hyperboard", + status: "success", + }); + }; + + return ( + <> + } + colorScheme="red" + onClick={onOpen} + size={size} + /> + + > + ); +}; diff --git a/components/admin/sidebar.tsx b/components/admin/sidebar.tsx new file mode 100644 index 0000000..e88604d --- /dev/null +++ b/components/admin/sidebar.tsx @@ -0,0 +1,154 @@ +import React from "react"; +import { + IconButton, + Box, + CloseButton, + Flex, + Icon, + useColorModeValue, + Text, + Drawer, + DrawerContent, + useDisclosure, + BoxProps, + FlexProps, +} from "@chakra-ui/react"; +import { FiMenu } from "react-icons/fi"; +import { IconType } from "react-icons"; +import Link from "next/link"; +import { useRouter } from "next/router"; + +interface LinkItemProps { + name: string; + icon: IconType; + href: string; +} + +export default function SimpleSidebar({ + linkItems, +}: { + linkItems: LinkItemProps[]; +}) { + const { isOpen, onOpen, onClose } = useDisclosure(); + return ( + + onClose} + display={{ base: "none", md: "block" }} + linkItems={linkItems} + /> + + + + + + {/* mobilenav */} + + + ); +} + +interface SidebarProps extends BoxProps { + onClose: () => void; + linkItems: LinkItemProps[]; +} + +const SidebarContent = ({ onClose, linkItems, ...rest }: SidebarProps) => { + return ( + + {linkItems.map((link) => ( + + {link.name} + + ))} + + + + + ); +}; + +interface NavItemProps extends FlexProps { + icon: IconType; + children: string | number; + href: string; +} +const NavItem = ({ icon, children, href, ...rest }: NavItemProps) => { + const { asPath } = useRouter(); + return ( + + + + {icon && ( + + )} + {children} + + + + ); +}; + +interface MobileProps extends FlexProps { + onOpen: () => void; +} +const MobileNav = ({ onOpen, ...rest }: MobileProps) => { + return ( + + } + /> + + + Logo + + + ); +}; diff --git a/components/alerts/connect-wallet-alert.tsx b/components/alerts/connect-wallet-alert.tsx new file mode 100644 index 0000000..9299a92 --- /dev/null +++ b/components/alerts/connect-wallet-alert.tsx @@ -0,0 +1,20 @@ +import { + Alert, + AlertDescription, + AlertIcon, + AlertTitle, +} from "@chakra-ui/alert"; + +export const ConnectWalletAlert = ({ + description, +}: { + description?: string; +}) => { + return ( + + + Connect your wallet + {description && {description}} + + ); +}; diff --git a/components/dialogs/alert-confirmation-dialog.tsx b/components/dialogs/alert-confirmation-dialog.tsx new file mode 100644 index 0000000..b0339ab --- /dev/null +++ b/components/dialogs/alert-confirmation-dialog.tsx @@ -0,0 +1,56 @@ +import { + AlertDialog as ChakraAlertDialog, + AlertDialogBody, + AlertDialogContent, + AlertDialogFooter, + AlertDialogHeader, + AlertDialogOverlay, + Button, +} from "@chakra-ui/react"; +import { useRef } from "react"; +import { FocusableElement } from "@chakra-ui/utils"; +import { ModalProps } from "@chakra-ui/modal"; + +export function AlertDialog({ + onConfirm, + isOpen, + onClose, + title, +}: { onConfirm: () => Promise; title: string } & Omit< + ModalProps, + "children" +>) { + const cancelRef = useRef(null); + + const onClickConfirm = async () => { + await onConfirm(); + onClose(); + }; + + return ( + + + + + {title} + + + + Are you sure? You can{"'"}t undo this action afterwards. + + + + Cancel + + Delete + + + + + + ); +} diff --git a/components/forms/create-or-update-hyperboard-form.tsx b/components/forms/create-or-update-hyperboard-form.tsx new file mode 100644 index 0000000..a1bda49 --- /dev/null +++ b/components/forms/create-or-update-hyperboard-form.tsx @@ -0,0 +1,68 @@ +import { + Button, + FormControl, + FormErrorMessage, + FormLabel, + Input, +} from "@chakra-ui/react"; +import { useForm } from "react-hook-form"; +import { RegistrySelector } from "@/components/admin/registry-selector"; + +export interface CreateOrUpdateHyperboardFormValues { + name: string; + registries: { id: string }[]; +} + +export interface CreateOrUpdateHyperboardFormProps { + onSubmitted: (values: CreateOrUpdateHyperboardFormValues) => void; + initialValues?: Partial; +} + +export const CreateOrUpdateHyperboardForm = ({ + onSubmitted, + initialValues = {}, +}: CreateOrUpdateHyperboardFormProps) => { + const { + handleSubmit, + register, + formState: { errors, isSubmitting }, + setValue, + } = useForm({ + defaultValues: initialValues, + }); + return ( + + + Name + + + {errors.name && errors.name.message} + + + + Registries + + setValue( + "registries", + value.map(({ value }) => ({ id: value })), + ) + } + /> + + + Submit + + + ); +}; diff --git a/components/forms/create-or-update-registry-form.tsx b/components/forms/create-or-update-registry-form.tsx new file mode 100644 index 0000000..18a0753 --- /dev/null +++ b/components/forms/create-or-update-registry-form.tsx @@ -0,0 +1,133 @@ +import { + Button, + FormControl, + FormErrorMessage, + FormLabel, + HStack, + Input, + Textarea, + VStack, +} from "@chakra-ui/react"; +import { + Control, + useFieldArray, + useForm, + UseFormRegister, +} from "react-hook-form"; +import { RegistryInsert } from "@/types/database-entities"; +import { DeleteClaimButton } from "@/components/admin/delete-claim-button"; + +export interface CreateOrUpdateHyperboardFormProps { + onSubmitted: (values: CreateUpdateRegistryFormValues) => void; + initialValues?: Partial; +} + +const minimumCharacters = 40; + +export type CreateUpdateRegistryFormValues = RegistryInsert & { + claims: { claim_id?: string; hypercert_id: string }[]; +}; + +export const CreateOrUpdateRegistryForm = ({ + onSubmitted, + initialValues = {}, +}: CreateOrUpdateHyperboardFormProps) => { + const { + handleSubmit, + register, + formState: { errors, isSubmitting }, + control, + } = useForm({ + defaultValues: { claims: [], ...initialValues }, + }); + + return ( + + + + Name + + + {errors.name && errors.name.message} + + + + Description + + + {errors.description && errors.description.message} + + + + Claims + + + {errors.claims && errors.claims.message} + + + + + Submit + + + ); +}; + +const ClaimsField = ({ + register, + control, +}: { + control: Control; + register: UseFormRegister; +}) => { + const { fields, append, remove } = useFieldArray({ + control, + name: "claims", + }); + + console.log(fields); + + return ( + + {fields.map((item, index) => ( + + + {item.claim_id ? ( + + ) : ( + remove(index)} + > + Delete + + )} + + ))} + append({ hypercert_id: "" })}> + + add another claim + + + ); +}; diff --git a/components/forms/register-form.tsx b/components/forms/register-form.tsx new file mode 100644 index 0000000..ce5910a --- /dev/null +++ b/components/forms/register-form.tsx @@ -0,0 +1,80 @@ +import { useForm } from "react-hook-form"; +import { + Button, + FormControl, + FormErrorMessage, + FormLabel, + Input, + useToast, + VStack, +} from "@chakra-ui/react"; +import { useRegister } from "@/hooks/useRegister"; +import { useRouter } from "next/router"; + +export const RegisterForm = ({}: {}) => { + const { + handleSubmit, + register, + formState: { errors, isSubmitting }, + } = useForm<{ email: string }>(); + + const { mutateAsync: registerAsync } = useRegister(); + const toast = useToast(); + const { push } = useRouter(); + + const onSubmitted = async ({ email }: { email: string }) => { + try { + await registerAsync(email); + toast({ + title: "Registration successful", + description: "You are now able to use the admin panel", + status: "success", + duration: 5000, + isClosable: true, + }); + await push("/admin/hyperboards"); + } catch (e) { + console.error(e); + toast({ + title: "Registration error", + description: "There was an error registering your email.", + status: "error", + duration: 5000, + isClosable: true, + }); + return; + } + }; + + return ( + + + + Email + + + {errors.email && errors.email.message} + + + + Register + + + + ); +}; diff --git a/components/providers.tsx b/components/providers.tsx index a251495..1c68f7e 100644 --- a/components/providers.tsx +++ b/components/providers.tsx @@ -1,15 +1,30 @@ -import { PropsWithChildren } from "react"; -import { configureChains, createConfig, WagmiConfig } from "wagmi"; -import { goerli } from "viem/chains"; +import React, { PropsWithChildren, useEffect, useState } from "react"; +import { + configureChains, + createConfig, + useChainId, + useWalletClient, + WagmiConfig, + WalletClient, +} from "wagmi"; +import { goerli, optimism } from "viem/chains"; +import { alchemyProvider } from "wagmi/providers/alchemy"; import { publicProvider } from "wagmi/providers/public"; import { getDefaultWallets, RainbowKitProvider } from "@rainbow-me/rainbowkit"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { ChakraProvider } from "@chakra-ui/react"; import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; +import { HypercertClient } from "@hypercerts-org/sdk"; +import { providers } from "ethers"; const { chains, publicClient, webSocketPublicClient } = configureChains( - [goerli], - [publicProvider()], + [goerli, optimism], + [ + alchemyProvider({ + apiKey: process.env.NEXT_PUBLIC_ALCHEMY_KEY_GOERLI!, + }), + publicProvider(), + ], ); const { connectors } = getDefaultWallets({ @@ -24,22 +39,75 @@ const config = createConfig({ webSocketPublicClient, connectors, }); -const queryClient = new QueryClient(); export const Providers = ({ showReactQueryDevtools = true, children, }: PropsWithChildren<{ showReactQueryDevtools?: boolean }>) => { + const [queryClient] = React.useState(() => new QueryClient()); + return ( - - {children} - {showReactQueryDevtools && ( - - )} - + + + {children} + {showReactQueryDevtools && ( + + )} + + ); }; + +const HypercertClientContext = React.createContext( + undefined, +); + +export const HypercertClientProvider = ({ children }: PropsWithChildren) => { + const chainId = useChainId(); + const { data: walletClient } = useWalletClient(); + + const [client, setClient] = useState(); + + useEffect(() => { + console.log("creating hypercert client", chainId, walletClient); + + const walletClientToSigner = (walletClient: WalletClient) => { + const { account, chain, transport } = walletClient; + const network = { + chainId: chain.id, + name: chain.name, + ensAddress: chain.contracts?.ensRegistry?.address, + }; + const provider = new providers.Web3Provider(transport, network); + const signer = provider.getSigner(account.address); + console.log("signer", signer); + return signer; + }; + + const operator = walletClient + ? walletClientToSigner(walletClient) + : undefined; + + const hypercertClient = new HypercertClient({ + chainId, + nftStorageToken: process.env.NEXT_PUBLIC_NFT_STORAGE_TOKEN!, + operator, + }); + + setClient(hypercertClient); + }, [chainId, walletClient]); + + return ( + + {children} + + ); +}; + +export const useHypercertClient = () => { + return React.useContext(HypercertClientContext); +}; diff --git a/components/zuconnect-retroactive-fund/await-transaction-modal.tsx b/components/zuconnect-retroactive-fund/await-transaction-modal.tsx new file mode 100644 index 0000000..7465dbf --- /dev/null +++ b/components/zuconnect-retroactive-fund/await-transaction-modal.tsx @@ -0,0 +1,25 @@ +import { + ModalBody, + ModalContent, + ModalOverlay, + ModalProps, +} from "@chakra-ui/modal"; +import { HStack, Modal, Spinner, Text } from "@chakra-ui/react"; + +export const AwaitTransactionModal = ({ + ...modalProps +}: Omit) => { + return ( + + + + + + + Waiting for transaction + + + + + ); +}; diff --git a/components/zuconnect-retroactive-fund/connect-button.tsx b/components/zuconnect-retroactive-fund/connect-button.tsx new file mode 100644 index 0000000..da3a72a --- /dev/null +++ b/components/zuconnect-retroactive-fund/connect-button.tsx @@ -0,0 +1,80 @@ +import { ConnectButton } from "@rainbow-me/rainbowkit"; +import { Button } from "@chakra-ui/react"; +export const ZuzaluConnectButton = () => { + return ( + + {({ + account, + chain, + openAccountModal, + openChainModal, + openConnectModal, + authenticationStatus, + mounted, + }) => { + // Note: If your app doesn't use authentication, you + // can remove all 'authenticationStatus' checks + const ready = mounted && authenticationStatus !== "loading"; + const connected = + ready && + account && + chain && + (!authenticationStatus || authenticationStatus === "authenticated"); + return ( + + {(() => { + if (!connected) { + return ( + + Connect Wallet + + ); + } + if (chain.unsupported) { + return ( + + Wrong network + + ); + } + return ( + + + Disconnect {account.displayName} + {account.displayBalance + ? ` (${account.displayBalance})` + : ""} + + + ); + })()} + + ); + }} + + ); +}; diff --git a/components/zuconnect-retroactive-fund/donation-form.tsx b/components/zuconnect-retroactive-fund/donation-form.tsx new file mode 100644 index 0000000..9b52ea7 --- /dev/null +++ b/components/zuconnect-retroactive-fund/donation-form.tsx @@ -0,0 +1,317 @@ +import { + Box, + Button, + Checkbox, + Flex, + FormControl, + FormErrorMessage, + Heading, + HStack, + Input, + InputGroup, + InputRightAddon, + Text, + useDisclosure, + useToast, + VStack, +} from "@chakra-ui/react"; +import { useForm } from "react-hook-form"; +import "@rainbow-me/rainbowkit/styles.css"; +import { usePublicClient, useSendTransaction } from "wagmi"; +import { requireEnv } from "@/config"; +import { parseEther } from "viem"; +import { supabase } from "@/lib/supabase"; +import { useAddress } from "@/hooks/useAddress"; +import { MoreInformationModal } from "@/components/zuconnect-retroactive-fund/more-information-modal"; +import { TransactionHistory } from "@/components/zuconnect-retroactive-fund/transaction-history"; +import { useRouter } from "next/router"; +import { ZuzaluConnectButton } from "@/components/zuconnect-retroactive-fund/connect-button"; +import { useQuery } from "@tanstack/react-query"; +import { AwaitTransactionModal } from "@/components/zuconnect-retroactive-fund/await-transaction-modal"; +import { toPrecision } from "@chakra-ui/utils"; +import { isValidEmail } from "@/utils/validation"; +import Head from "next/head"; +import { useIsMobile } from "@/hooks/useIsMobile"; + +type FormValues = { + amount: number; + email: string; + agreement: boolean; +}; + +export const SAFE_ADDRESS = requireEnv( + process.env.NEXT_PUBLIC_ZUZALU_DONATION_SAFE, + "NEXT_PUBLIC_ZUZALU_DONATION_SAFE", +); + +export const DonationForm = () => { + const isMobile = useIsMobile(); + const toast = useToast(); + const address = useAddress(); + const { + isOpen: moreInfoModalOpen, + onClose: moreInfoOnClose, + onOpen: moreInfoOnOpen, + } = useDisclosure(); + + const { + isOpen: transactionIsOpen, + onOpen: transactionOnOpen, + onClose: transactionOnClose, + } = useDisclosure(); + + const { data: ethPrice } = useCurrentEthPrice(); + + const { push } = useRouter(); + + const { + handleSubmit, + register, + formState: { isValid, errors, isSubmitting }, + getValues, + watch, + } = useForm({ + defaultValues: {}, + reValidateMode: "onChange", + }); + + const handleEmailValidation = (email: string) => { + return isValidEmail(email); + }; + + const amount = watch("amount"); + + const sendDonation = useSendDonation({ + amount, + }); + + const onSubmit = async () => { + if (!address) { + console.log("no address"); + return; + } + + transactionOnOpen(); + const { amount, email } = getValues(); + + try { + await addEmailToDonationList(address, email, amount); + } catch (e) { + console.log(e); + toast({ + title: "Error", + description: "There was an error adding your email to the list", + status: "error", + duration: 5000, + isClosable: true, + }); + transactionOnClose(); + return; + } + + let txHash = ""; + + try { + txHash = await sendDonation(); + } catch (e) { + console.log(e); + toast({ + title: "Error", + description: "There was an error sending your transaction", + status: "error", + duration: 5000, + isClosable: true, + }); + transactionOnClose(); + return; + } + + toast({ + title: "Transaction confirmed", + description: "Your transaction has been confirmed", + status: "success", + duration: 5000, + isClosable: true, + }); + + transactionOnClose(); + await push(`/?page=thank-you&txHash=${txHash}`); + }; + + return ( + <> + + Donate - Zuconnect Retroactive Fund + + + + + + + ZuConnect + Retroactive Fund + + + Commit funds now and distribute them to your most valued + experiences after the event + + + More information + + + + + + ETH + + {errors.amount?.message} + {ethPrice && ( + + ≈ $ + {!isNaN(amount) ? toPrecision(ethPrice * amount, 2) : 0} + + )} + + + + To notify you about the next steps + + + + + {errors.email?.message || "Invalid email"} + + + + + + + + I agree to the{" "} + + Terms & Conditions + + + + + + + + + Confirm + + + + + + + + + + > + ); +}; + +const useSendDonation = ({ amount }: { amount: number }) => { + const toast = useToast(); + let valueInWei = parseEther("0"); + if (!isNaN(amount)) { + try { + valueInWei = parseEther(amount.toString()); + } catch (e) { + console.log(e); + } + } + const publicClient = usePublicClient(); + + const { sendTransactionAsync } = useSendTransaction({ + to: SAFE_ADDRESS, + value: valueInWei, + onSuccess: async (data) => { + console.log(data); + toast({ + title: "Transaction sent", + description: "Your donation is pending", + status: "success", + duration: 5000, + isClosable: true, + }); + }, + }); + + return async () => { + const hash = await sendTransactionAsync(); + await publicClient.waitForTransactionReceipt(hash); + return hash.hash; + }; +}; + +const addEmailToDonationList = ( + address: string, + email: string, + amount: number, +) => + supabase.from("zuzalu_donations").insert({ + address, + email, + amount: amount.toString(), + }); + +const useCurrentEthPrice = () => { + return useQuery(["current-eth-price"], async () => + fetch( + "https://api.coingecko.com/api/v3/simple/price?ids=ethereum&vs_currencies=usd", + { method: "GET" }, + ) + .then((res) => res.json() as Promise<{ ethereum: { usd: number } }>) + .then((res) => res.ethereum.usd), + ); +}; diff --git a/components/zuconnect-retroactive-fund/index.tsx b/components/zuconnect-retroactive-fund/index.tsx new file mode 100644 index 0000000..65c69f5 --- /dev/null +++ b/components/zuconnect-retroactive-fund/index.tsx @@ -0,0 +1,15 @@ +import { useRouter } from "next/router"; +import { ThankYou } from "@/components/zuconnect-retroactive-fund/thank-you"; +import { DonationForm } from "@/components/zuconnect-retroactive-fund/donation-form"; + +export const ZuconnectRetroactiveFund = () => { + const { query } = useRouter(); + + const page = query["page"]; + + if (page === "thank-you") { + return ; + } + + return ; +}; diff --git a/components/zuconnect-retroactive-fund/more-information-modal.tsx b/components/zuconnect-retroactive-fund/more-information-modal.tsx new file mode 100644 index 0000000..2b79602 --- /dev/null +++ b/components/zuconnect-retroactive-fund/more-information-modal.tsx @@ -0,0 +1,158 @@ +import { + ModalBody, + ModalContent, + ModalOverlay, + ModalProps, +} from "@chakra-ui/modal"; +import { + Box, + Button, + ListItem, + Modal, + OrderedList, + Text, + UnorderedList, + VStack, +} from "@chakra-ui/react"; +import { SAFE_ADDRESS } from "@/components/zuconnect-retroactive-fund/donation-form"; +import { useEffect, useRef } from "react"; +import { useIsMobile } from "@/hooks/useIsMobile"; + +export const MoreInformationModal = ({ + ...modalProps +}: Omit) => { + const ref = useRef(null); + const isMobile = useIsMobile(); + + const hasRef = !!ref.current; + + useEffect(() => { + if (typeof window === "undefined") { + return; + } + if (!hasRef) { + return; + } + if (modalProps.isOpen) { + window.document.body.scroll(0, 0); + ref.current.scrollTop = 0; + } + }, [modalProps.isOpen, hasRef]); + + return ( + + + + + + + ZuConnect Retroactive Fund + + + Goal: We fund and reward the experiences that the community + valued most + + + + Steps + + + Funders commit ETH to the retroactive fund + + Contributors organize experiences at ZuConnect with the + potential of receiving funds retroactively + + + Contributors create{" "} + + hypercerts + {" "} + for each experience + + Zuconnect core team attests hypercerts + Funders allocate their funds to hypercerts + + Funders receive parts of the funded hypercerts + + + + + All funds that are not allocated by the funders directly, will be + distributed as a{" "} + + quadratic matching fund + + . + + + + Please note + + + + This fund is set up by the Zuzalu community for the Zuzalu + community: If you are not connected to Zuzalu, please email us + before committing funds. + + + Please use a wallet that you have used to interact with Zuzalu + before. If that is not possible, please send an email to us + after committing funds. + + The minimum contribution is 0.01 ETH. + + + + + Multi-sig that stores the funds + + + Address: {SAFE_ADDRESS} + + Signer 1: Vitalik Buterin, vitalik.eth, + 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 + + + Signer 2: Janine Ledger (Core organizer, Zuzalu), + 0x510e221C48ee37DAfc0d3802b43679Cf5d78561f + + + Signer 3: Gary Sheng (Community organizer, Zuzalu), + 0x2a81C13F9366395c8FD1EA24912294230d062Db3 + + + Signer 4: Holke Brammer, hypercerts.holke.eth, (Director, + Hypercerts Foundation), + 0x676703E18b2d03Aa36d6A3124B4F58716dBf61dB + + + + + Contact: zuzalu [at] hypercerts.org + + + Close + + + + + + ); +}; diff --git a/components/zuconnect-retroactive-fund/thank-you.tsx b/components/zuconnect-retroactive-fund/thank-you.tsx new file mode 100644 index 0000000..6f87436 --- /dev/null +++ b/components/zuconnect-retroactive-fund/thank-you.tsx @@ -0,0 +1,60 @@ +import { Heading, VStack, Text, Button, Stack } from "@chakra-ui/react"; +import { useRouter } from "next/router"; +import { TransactionHistory } from "@/components/zuconnect-retroactive-fund/transaction-history"; +import Link from "next/link"; +import Head from "next/head"; +import { useIsMobile } from "@/hooks/useIsMobile"; + +export const ThankYou = () => { + const { query } = useRouter(); + const isMobile = useIsMobile(); + + const txHash = query["txHash"]; + return ( + <> + + Thank you - Zuconnect Retroactive Fund + + + + Thank you + + + We are excited for your contribution and are looking forward to + collectively recognize and reward those who are making ZuConnect + special. + + + We will email you about the next steps. If you have questions, please + reach out to zuzalu [at] hypercerts.org. + + + View your transaction on{" "} + + etherscan + + . + + + + + + Back to the form + + + + + zuzalu.city + + + + + hypercerts.org + + + + + + > + ); +}; diff --git a/components/zuconnect-retroactive-fund/transaction-history.tsx b/components/zuconnect-retroactive-fund/transaction-history.tsx new file mode 100644 index 0000000..9c6e753 --- /dev/null +++ b/components/zuconnect-retroactive-fund/transaction-history.tsx @@ -0,0 +1,100 @@ +import { useTransactionHistory } from "@/hooks/useTransactionHistory"; +import React from "react"; +import { + Text, + Flex, + Heading, + Spinner, + VStack, + Divider, + Center, +} from "@chakra-ui/react"; +import { useEnsName } from "wagmi"; +import { formatAddress } from "@/utils/formatting"; +import { SAFE_ADDRESS } from "@/components/zuconnect-retroactive-fund/donation-form"; +import { useIsMobile } from "@/hooks/useIsMobile"; + +export const TransactionHistory = () => { + const { data, isLoading } = useTransactionHistory(SAFE_ADDRESS); + const isMobile = useIsMobile(); + + if (isLoading) { + return ( + + + + ); + } + + if (!data) { + return null; + } + + return ( + + + Contributors + + + Contributor + ETH + + } + spacing={4} + alignItems={"flex-start"} + w={"100%"} + > + {data.map((transaction) => ( + + ))} + + + ); +}; + +const TransactionRow = ({ + value, + from, + txHash, +}: { + value: number; + from: `0x${string}`; + txHash: string; +}) => { + const { data, isFetched } = useEnsName({ + address: from, + }); + + if (!isFetched) { + return null; + } + + return ( + + + + {data || formatAddress(from)} + + + {value} + + + + ); +}; diff --git a/hooks/registry.ts b/hooks/registry.ts index 8885f93..bbaeb70 100644 --- a/hooks/registry.ts +++ b/hooks/registry.ts @@ -4,16 +4,7 @@ import { supabase } from "@/lib/supabase"; import { ClaimToken } from "@hypercerts-org/sdk"; import _ from "lodash"; import { HyperboardEntry } from "@/types/Hyperboard"; -import { client } from "@/lib/hypercert-client"; - -interface RegistryWithClaims { - id: string; - name: string; - "hyperboard-claims": { - id: string; - hypercert_id: string; - }[]; -} +import { useHypercertClient } from "@/components/providers"; interface EntryDisplayData { image: string; @@ -36,68 +27,82 @@ interface RegistryContentItem { export const useListRegistries = () => { return useQuery(["list-registries"], async () => - supabase.from("registries-optimism").select("*").neq("hidden", true), + supabase.from("registries").select("*").neq("hidden", true), ); }; export const useRegistryContents = (registryId: string) => { - return useQuery(["registry", registryId], async () => { - return getRegistryWithClaims(registryId).then(async (registry) => { - if (!registry?.data) { - return null; - } + const client = useHypercertClient(); - // Create one big list of all fractions, for all hypercerts in registry - const allFractions = await Promise.all( - registry.data["hyperboard-claims"].map((claim) => { - return client.indexer.fractionsByClaim(claim.hypercert_id); - }), - ); - const fractions = _.chain(allFractions) - .flatMap((res) => res.claimTokens) - .value(); + return useQuery( + ["registry", registryId], + async () => { + return getRegistryWithClaims(registryId).then(async (registry) => { + if (!registry?.data) { + return null; + } - // Get display data for all owners and convert to dictionary - const ownerAddresses = _.uniq(fractions.map((x) => x.owner)) as string[]; - const claimDisplayDataResponse = - await getEntryDisplayData(ownerAddresses); - const claimDisplayData = _.keyBy( - claimDisplayDataResponse?.data || [], - (x) => x.address.toLowerCase(), - ); + if (!client) { + return null; + } - // Group by owner, merge with display data and calculate total value of all fractions per owner - const content = _.chain(fractions) - .groupBy((fraction) => fraction.owner) - .mapValues((fractionsPerOwner, owner) => { - return { - fractions: fractionsPerOwner, - displayData: claimDisplayData[owner], - totalValue: _.sum( - fractionsPerOwner.map((x) => parseInt(x.units, 10)), - ), - }; - }) - .value(); + // Create one big list of all fractions, for all hypercerts in registry + const allFractions = await Promise.all( + registry.data["claims"].map((claim) => { + return client.indexer.fractionsByClaim(claim.hypercert_id); + }), + ); + const fractions = _.chain(allFractions) + .flatMap((res) => res.claimTokens) + .value(); - return { - registry: registry.data, - content, - }; - }); - }); + // Get display data for all owners and convert to dictionary + const ownerAddresses = _.uniq( + fractions.map((x) => x.owner), + ) as string[]; + const claimDisplayDataResponse = + await getEntryDisplayData(ownerAddresses); + const claimDisplayData = _.keyBy( + claimDisplayDataResponse?.data || [], + (x) => x.address.toLowerCase(), + ); + + // Group by owner, merge with display data and calculate total value of all fractions per owner + const content = _.chain(fractions) + .groupBy((fraction) => fraction.owner) + .mapValues((fractionsPerOwner, owner) => { + return { + fractions: fractionsPerOwner, + displayData: claimDisplayData[owner], + totalValue: _.sum( + fractionsPerOwner.map((x) => parseInt(x.units, 10)), + ), + }; + }) + .value(); + + return { + registry: registry.data, + content, + }; + }); + }, + { + enabled: !!registryId && !!client, + }, + ); }; const getRegistryWithClaims = async (registryId: string) => supabase - .from("registries-optimism") - .select("*, hyperboard-claims ( * )") + .from("registries") + .select("*, claims ( * )") .eq("id", registryId) - .single(); + .single(); const getEntryDisplayData = async (addresses: string[]) => { return supabase - .from("hyperboard-sponsor-metadata") + .from("sponsor_metadata") .select<"*", EntryDisplayData>("*") .in("address", addresses); }; diff --git a/hooks/store.ts b/hooks/store.ts index 70b3c25..7e87607 100644 --- a/hooks/store.ts +++ b/hooks/store.ts @@ -1,11 +1,11 @@ import { supabase } from "@/lib/supabase"; import { useQuery } from "@tanstack/react-query"; -import { client } from "@/lib/hypercert-client"; import { Claim } from "@hypercerts-org/sdk"; import { createPublicClient, getContract, http } from "viem"; import { goerli } from "viem/chains"; import { TRADER_CONTRACT } from "@/config"; import IHypercertTrader from "@/abi/IHypercertTrader.json"; +import { useHypercertClient } from "@/components/providers"; export interface OfferFromContract { id: string; @@ -74,69 +74,80 @@ const offersQuery = ` `; export const useStoreHypercerts = () => { - return useQuery(["store-hypercerts"], async () => { - const offers = await fetch( - "https://api.thegraph.com/subgraphs/name/hypercerts-admin/hypercerts-testnet", - { - method: "POST", - body: JSON.stringify({ - query: offersQuery, - }), - }, - ) - .then((res) => res.json()) - .then((res) => res.data.offers as Offer[]); + const client = useHypercertClient(); - const offersFromContract = await getOfferPrices( - offers.map((offer) => parseInt(offer.id.split("-")[1], 10)), - ); + return useQuery( + ["store-hypercerts"], + async () => { + if (!client) { + return null; + } + const offers = await fetch( + "https://api.thegraph.com/subgraphs/name/hypercerts-admin/hypercerts-testnet", + { + method: "POST", + body: JSON.stringify({ + query: offersQuery, + }), + }, + ) + .then((res) => res.json()) + .then((res) => res.data.offers as Offer[]); - return supabase - .from("hypercerts-store") - .select("*") - .neq("hidden", true) - .then(async (res) => { - if (!res.data) { - return; - } + const offersFromContract = await getOfferPrices( + offers.map((offer) => parseInt(offer.id.split("-")[1], 10)), + ); - return await Promise.all( - res.data - .filter((x) => x.claimId !== null) - .map(async ({ claimId }) => { - const [claim, fractions] = await Promise.all([ - client.indexer.claimById(claimId!).then(async (res) => { - const metadata = await client.storage.getMetadata( - res.claim?.uri || "", - ); - return { - claim: res.claim, - metadata, - }; - }), - client.indexer - .fractionsByClaim(claimId!) - .then((res) => res.claimTokens), - ]); + return supabase + .from("hypercerts-store") + .select("*") + .neq("hidden", true) + .then(async (res) => { + if (!res.data) { + return; + } - return { - ...claim, - fractions, - offer: offers.find( - (offer) => offer.fractionID.claim.id === claimId, - ), - offerFromContract: offersFromContract.find((offer) => - fractions - .map((fraction) => - BigInt((fraction.id as string).split("-")[1]), - ) - .includes(offer.fractionID), - ), - }; - }), - ); - }); - }); + return await Promise.all( + res.data + .filter((x) => x.claimId !== null) + .map(async ({ claimId }) => { + const [claim, fractions] = await Promise.all([ + client.indexer.claimById(claimId!).then(async (res) => { + const metadata = await client.storage.getMetadata( + res.claim?.uri || "", + ); + return { + claim: res.claim, + metadata, + }; + }), + client.indexer + .fractionsByClaim(claimId!) + .then((res) => res.claimTokens), + ]); + + return { + ...claim, + fractions, + offer: offers.find( + (offer) => offer.fractionID.claim.id === claimId, + ), + offerFromContract: offersFromContract.find((offer) => + fractions + .map((fraction) => + BigInt((fraction.id as string).split("-")[1]), + ) + .includes(offer.fractionID), + ), + }; + }), + ); + }); + }, + { + enabled: !!client, + }, + ); }; const getOfferPrices = async (offerIds: number[]) => { diff --git a/hooks/useAddRegistriesToHyperboard.ts b/hooks/useAddRegistriesToHyperboard.ts new file mode 100644 index 0000000..1909e00 --- /dev/null +++ b/hooks/useAddRegistriesToHyperboard.ts @@ -0,0 +1,33 @@ +import { useGetAuthenticatedClient } from "@/hooks/useGetAuthenticatedClient"; +import { useMutation } from "wagmi"; +import { HyperboardRegistryInsert } from "@/types/database-entities"; +import { uniq } from "lodash"; + +export const useAddRegistriesToHyperboard = () => { + const getClient = useGetAuthenticatedClient(); + + return useMutation( + async ({ + hyperboardId, + registryIds, + }: { + hyperboardId: string; + registryIds: string[]; + }) => { + const client = await getClient(); + + if (!client) { + return; + } + + const inserts: HyperboardRegistryInsert[] = uniq(registryIds).map( + (registryId) => ({ + hyperboard_id: hyperboardId, + registry_id: registryId, + }), + ); + + return client.from("hyperboard_registries").insert(inserts).select("*"); + }, + ); +}; diff --git a/hooks/useAddress.ts b/hooks/useAddress.ts new file mode 100644 index 0000000..7cd0c2e --- /dev/null +++ b/hooks/useAddress.ts @@ -0,0 +1,6 @@ +import { useAccount } from "wagmi"; + +export const useAddress = () => { + const { address } = useAccount(); + return address?.toLowerCase(); +}; diff --git a/hooks/useDeleteClaim.ts b/hooks/useDeleteClaim.ts new file mode 100644 index 0000000..b3c41c1 --- /dev/null +++ b/hooks/useDeleteClaim.ts @@ -0,0 +1,11 @@ +import { useGetAuthenticatedClient } from "@/hooks/useGetAuthenticatedClient"; +import { useMutation } from "wagmi"; + +export const useDeleteClaim = () => { + const getClient = useGetAuthenticatedClient(); + return useMutation(async (claimId: string) => { + const client = await getClient(); + + return client?.from("claims").delete().eq("id", claimId); + }); +}; diff --git a/hooks/useDeleteHyperboard.ts b/hooks/useDeleteHyperboard.ts new file mode 100644 index 0000000..d5fbc06 --- /dev/null +++ b/hooks/useDeleteHyperboard.ts @@ -0,0 +1,11 @@ +import { useGetAuthenticatedClient } from "@/hooks/useGetAuthenticatedClient"; +import { useMutation } from "wagmi"; + +export const useDeleteHyperboard = () => { + const getClient = useGetAuthenticatedClient(); + return useMutation(async (hyperboardId: string) => { + const client = await getClient(); + + return client?.from("hyperboards").delete().eq("id", hyperboardId); + }); +}; diff --git a/hooks/useDeleteRegistry.ts b/hooks/useDeleteRegistry.ts new file mode 100644 index 0000000..9a2b220 --- /dev/null +++ b/hooks/useDeleteRegistry.ts @@ -0,0 +1,11 @@ +import { useGetAuthenticatedClient } from "@/hooks/useGetAuthenticatedClient"; +import { useMutation } from "wagmi"; + +export const useDeleteRegistry = () => { + const getClient = useGetAuthenticatedClient(); + return useMutation(async (registryId: string) => { + const client = await getClient(); + + return client?.from("registries").delete().eq("id", registryId); + }); +}; diff --git a/hooks/useGetAuthenticatedClient.ts b/hooks/useGetAuthenticatedClient.ts new file mode 100644 index 0000000..5db94c9 --- /dev/null +++ b/hooks/useGetAuthenticatedClient.ts @@ -0,0 +1,108 @@ +import { useSignMessage } from "wagmi"; +import { getSupabaseAuthenticatedClient } from "@/lib/supabase"; +import { useToast } from "@chakra-ui/react"; +import { useAddress } from "@/hooks/useAddress"; +import { useRouter } from "next/router"; + +export const fetchNonce = async (address: string) => { + const res = await fetch("/api/auth/nonce", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ address }), + }); + const { nonce } = await res.json(); + return nonce; +}; + +const fetchLogin = async (address: string, signed: string, nonce: string) => + fetch("/api/auth/login", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ address, signed, nonce }), + }); + +export const readableMessageToSign = "Sign in to Hypercerts"; + +export const useGetAuthenticatedClient = () => { + const address = useAddress(); + const toast = useToast(); + const { push } = useRouter(); + + const { signMessageAsync } = useSignMessage({ + onSuccess: (signature) => { + console.log("Signature: ", signature); + }, + }); + + return async () => { + if (!address) { + throw new Error("No address found"); + } + + let nonce: string | undefined; + + try { + nonce = await fetchNonce(address); + } catch (e) { + console.error("Error requesting nonce", e); + toast({ + title: "Authentication failed", + status: "error", + }); + return; + } + + if (!nonce) { + throw new Error("Nonce not found"); + } + + let signed: string | undefined; + + try { + signed = await signMessageAsync({ + message: readableMessageToSign, + }); + } catch (e) { + console.error("Error signing message", e); + toast({ + title: "Authentication failed", + description: "Please sign message", + status: "error", + }); + return; + } + + if (!signed) { + throw new Error("Signed message not found"); + } + + let token: string | undefined; + try { + const result = await fetchLogin(address, signed, nonce); + + if (result.status === 307) { + const redirectResponse = await result.json(); + await push(redirectResponse.redirectUrl); + return; + } + token = (await result.json()).token; + } catch (e) { + console.error("Error logging in", e); + toast({ + title: "Authentication failed", + status: "error", + }); + return; + } + + if (!token) { + throw new Error("Token not found"); + } + + return getSupabaseAuthenticatedClient(token); + }; +}; diff --git a/hooks/useHypercertById.ts b/hooks/useHypercertById.ts new file mode 100644 index 0000000..37de0de --- /dev/null +++ b/hooks/useHypercertById.ts @@ -0,0 +1,37 @@ +import { useHypercertClient } from "@/components/providers"; +import { useQuery } from "@tanstack/react-query"; +import { useChainId } from "wagmi"; + +export const useHypercertById = (hypercertId: string) => { + const client = useHypercertClient(); + const chainId = useChainId(); + + return useQuery( + ["hypercert", "id", hypercertId, "chain", chainId], + async () => { + if (!client) { + console.log("no client"); + return null; + } + + if (!chainId) { + console.log("no chainId"); + return null; + } + + const claim = await client.indexer.claimById(hypercertId); + + if (!claim?.claim?.uri) { + console.log("no claim"); + return null; + } + + const metadata = await client.storage.getMetadata(claim.claim.uri); + + return { + ...claim.claim, + metadata, + }; + }, + ); +}; diff --git a/hooks/useIsMobile.ts b/hooks/useIsMobile.ts new file mode 100644 index 0000000..67dc851 --- /dev/null +++ b/hooks/useIsMobile.ts @@ -0,0 +1,3 @@ +import { useMediaQuery } from "@chakra-ui/react"; + +export const useIsMobile = () => useMediaQuery("(max-width: 700px)")[0]; diff --git a/hooks/useMyHyperboards.ts b/hooks/useMyHyperboards.ts new file mode 100644 index 0000000..9b84e47 --- /dev/null +++ b/hooks/useMyHyperboards.ts @@ -0,0 +1,23 @@ +import { useAddress } from "@/hooks/useAddress"; +import { useQuery } from "@tanstack/react-query"; +import { supabase } from "@/lib/supabase"; + +export const useMyHyperboards = () => { + const address = useAddress(); + + return useQuery( + ["myHyperboards", address], + async () => { + if (!address) { + throw new Error("No address found"); + } + return supabase + .from("hyperboards") + .select("*, registries (*)") + .eq("admin_id", address); + }, + { + enabled: !!address, + }, + ); +}; diff --git a/hooks/useMyRegistries.ts b/hooks/useMyRegistries.ts new file mode 100644 index 0000000..db20d3c --- /dev/null +++ b/hooks/useMyRegistries.ts @@ -0,0 +1,23 @@ +import { useAddress } from "@/hooks/useAddress"; +import { useQuery } from "@tanstack/react-query"; +import { supabase } from "@/lib/supabase"; + +export const useMyRegistries = () => { + const address = useAddress(); + + return useQuery( + ["myRegistries", address], + async () => { + if (!address) { + throw new Error("No address found"); + } + return supabase + .from("registries") + .select("*, claims ( * )") + .eq("admin_id", address); + }, + { + enabled: !!address, + }, + ); +}; diff --git a/hooks/useRegister.ts b/hooks/useRegister.ts new file mode 100644 index 0000000..b672bde --- /dev/null +++ b/hooks/useRegister.ts @@ -0,0 +1,84 @@ +import { useAddress } from "@/hooks/useAddress"; +import { useMutation, useSignMessage } from "wagmi"; +import { + fetchNonce, + readableMessageToSign, +} from "@/hooks/useGetAuthenticatedClient"; +import { useToast } from "@chakra-ui/react"; + +const fetchRegister = async ( + address: string, + email: string, + signed: string, + nonce: string, +) => { + const res = await fetch("/api/auth/register", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ address, email, signed, nonce }), + }); + return await res.json(); +}; + +export const useRegister = () => { + const address = useAddress(); + const toast = useToast(); + + const { signMessageAsync } = useSignMessage({ + onSuccess: (signature) => { + console.log("Signature: ", signature); + }, + }); + + return useMutation(async (email: string) => { + if (!address) { + throw new Error("No address found"); + } + + let nonce: string | undefined; + + try { + nonce = await fetchNonce(address); + } catch (e) { + console.error("Error requesting nonce", e); + toast({ + title: "Authentication failed", + status: "error", + }); + return; + } + + if (!nonce) { + throw new Error("Nonce not found"); + } + + let signed: string | undefined; + + try { + signed = await signMessageAsync({ + message: readableMessageToSign, + }); + } catch (e) { + console.error("Error signing message", e); + toast({ + title: "Signing failed", + description: "Please sign message", + status: "error", + }); + return; + } + + try { + return await fetchRegister(address, email, signed, nonce); + } catch (e) { + console.error("Error registering", e); + toast({ + title: "Registration failed", + status: "error", + }); + return; + } + }); +}; diff --git a/hooks/useRemoveRegistryFromHyperboard.ts b/hooks/useRemoveRegistryFromHyperboard.ts new file mode 100644 index 0000000..d2ca49a --- /dev/null +++ b/hooks/useRemoveRegistryFromHyperboard.ts @@ -0,0 +1,23 @@ +import { useGetAuthenticatedClient } from "@/hooks/useGetAuthenticatedClient"; +import { useMutation } from "wagmi"; + +export const useRemoveRegistryFromHyperboard = () => { + const getClient = useGetAuthenticatedClient(); + return useMutation( + async ({ + hyperboardId, + registryId, + }: { + hyperboardId: string; + registryId: string; + }) => { + const client = await getClient(); + + return client + ?.from("hyperboard_registries") + .delete() + .eq("hyperboard_id", hyperboardId) + .eq("registry_id", registryId); + }, + ); +}; diff --git a/hooks/useTransactionHistory.ts b/hooks/useTransactionHistory.ts new file mode 100644 index 0000000..959a271 --- /dev/null +++ b/hooks/useTransactionHistory.ts @@ -0,0 +1,53 @@ +import { useQuery } from "@tanstack/react-query"; +import { toHex } from "viem"; + +const START_BLOCK = 9898972; +const apiKey = process.env.NEXT_PUBLIC_ALCHEMY_KEY_GOERLI; +const baseURL = `https://eth-mainnet.alchemyapi.io/v2/${apiKey}`; + +const fetchHistoryToAddress = (address: string) => + fetch(baseURL, { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + jsonrpc: "2.0", + id: 1, + method: "alchemy_getAssetTransfers", + params: [ + { + category: ["external"], + fromBlock: toHex(START_BLOCK), + toAddress: address, + }, + ], + }), + redirect: "follow", + }) + .then((res) => { + return res.json() as Promise<{ + result: { + transfers: { + value: number; + from: `0x${string}`; + hash: string; + }[]; + }; + }>; + }) + .then((res) => res.result.transfers); + +export const useTransactionHistory = (address: string) => { + return useQuery( + ["transactionHistoryTo", address], + async () => { + return fetchHistoryToAddress(address); + }, + { + select: (data) => { + const copiedData = [...data]; + copiedData.sort((a, b) => b.value - a.value); + return copiedData; + }, + }, + ); +}; diff --git a/lib/hypercert-client.ts b/lib/hypercert-client.ts deleted file mode 100644 index eb08275..0000000 --- a/lib/hypercert-client.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { HypercertClient } from "@hypercerts-org/sdk"; - -export const client = new HypercertClient({ - chainId: 5, - nftStorageToken: process.env.NEXT_PUBLIC_NFT_STORAGE_TOKEN!, -}); diff --git a/lib/supabase.ts b/lib/supabase.ts index de537db..7cf0f1c 100644 --- a/lib/supabase.ts +++ b/lib/supabase.ts @@ -2,6 +2,10 @@ import { createClient } from "@supabase/supabase-js"; import { Database } from "@/types/database"; export const supabase = createClient( - "https://clagjjfinooizoqdkvqc.supabase.co", - process.env.NEXT_PUBLIC_SUPABASE_PRIVATE_KEY!, + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, ); + +export const getSupabaseAuthenticatedClient = (token: string) => { + return createClient(process.env.NEXT_PUBLIC_SUPABASE_URL!, token); +}; diff --git a/next.config.js b/next.config.js index 6147374..c8856ce 100644 --- a/next.config.js +++ b/next.config.js @@ -8,6 +8,16 @@ const nextConfig = { config.resolve.fallback = { fs: false, net: false, tls: false }; return config; }, + pageExtensions: (() => { + const { NEXT_PUBLIC_BUILDTYPE } = process.env; + switch (NEXT_PUBLIC_BUILDTYPE) { + case "zuzalu": + console.log("zuzalu build"); + return ["zuzalu.tsx"]; + default: + return ["tsx", "ts", "jsx", "js"]; + } + })(), async headers() { return [ { diff --git a/package.json b/package.json index dc8b0f3..aee6fc2 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "lint": "next lint", "supabase:init": "supabase init", "supabase:start": "supabase start", - "supabase:types": "supabase gen types typescript --project-id clagjjfinooizoqdkvqc > ./types/database.ts", + "supabase:types": "supabase gen types typescript --local > ./types/database.ts", "supabase:migration:new": "supabase migration new", "supabase:migration:push": "supabase migration up", "supabase:migration:diff": "supabase db diff --schema public", @@ -19,7 +19,7 @@ "@chakra-ui/react": "^2.8.0", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", - "@hypercerts-org/sdk": "0.8.8", + "@hypercerts-org/sdk": "^0.8.16", "@plasmicapp/cli": "^0.1.307", "@plasmicapp/loader-nextjs": "^1.0.309", "@plasmicapp/react-web": "^0.2.248", @@ -34,17 +34,18 @@ "@supabase/supabase-js": "^2.33.1", "@tanstack/react-query": "^4.33.0", "@tanstack/react-query-devtools": "^4.33.0", - "@types/node": "20.5.6", - "@types/react": "18.2.21", - "@types/react-dom": "18.2.7", "d3": "^7.8.5", "eslint": "8.48.0", "eslint-config-next": "13.4.19", "framer-motion": "^10.16.2", + "jsonwebtoken": "^9.0.2", "lodash": "^4.17.21", "next": "13.4.19", "react": "18.2.0", "react-dom": "18.2.0", + "react-hook-form": "^7.47.0", + "react-icons": "^4.11.0", + "react-select": "^5.7.7", "react-slick": "^0.29.0", "slick-carousel": "^1.8.1", "supabase": "^1.106.1", @@ -54,6 +55,10 @@ }, "devDependencies": { "@types/d3": "^7.4.0", + "@types/jsonwebtoken": "^9.0.4", + "@types/node": "20.5.6", + "@types/react": "18.2.21", + "@types/react-dom": "18.2.7", "prettier": "^3.0.3" } } diff --git a/pages/_app.zuzalu.tsx b/pages/_app.zuzalu.tsx new file mode 100644 index 0000000..7bee799 --- /dev/null +++ b/pages/_app.zuzalu.tsx @@ -0,0 +1,7 @@ +import "styles/globals.css"; +import "@rainbow-me/rainbowkit/styles.css"; +import type { AppProps } from "next/app"; + +export default function MyApp({ Component, pageProps }: AppProps) { + return ; +} diff --git a/pages/_document.zuzalu.tsx b/pages/_document.zuzalu.tsx new file mode 100644 index 0000000..2cfe5d7 --- /dev/null +++ b/pages/_document.zuzalu.tsx @@ -0,0 +1,28 @@ +import { Html, Head, Main, NextScript } from "next/document"; + +export default function Document() { + return ( + + + + + + + + + + + ); +} diff --git a/pages/admin/[page].tsx b/pages/admin/[page].tsx new file mode 100644 index 0000000..36f9368 --- /dev/null +++ b/pages/admin/[page].tsx @@ -0,0 +1,30 @@ +import { Flex, useColorModeValue } from "@chakra-ui/react"; +import SimpleSidebar from "@/components/admin/sidebar"; +import { FiCompass, FiHome, FiTrendingUp } from "react-icons/fi"; +import { useRouter } from "next/router"; +import { HyperboardsAdmin } from "@/components/admin/hyperboards-admin"; +import { RegistriesAdmin } from "@/components/admin/registries-admin"; +import { headerHeight } from "@/components/Layout"; + +const SIDEBAR_ITEMS = [ + { name: "Hyperboards", icon: FiHome, href: "/admin/hyperboards/" }, + { name: "Registries", icon: FiTrendingUp, href: "/admin/registries/" }, + { name: "Blueprints", icon: FiCompass, href: "/admin/blueprints/" }, +]; + +const Admin = () => { + const router = useRouter(); + const page = router.query["page"]; + + return ( + + + + {page === "hyperboards" && } + {page === "registries" && } + + + ); +}; + +export default Admin; diff --git a/pages/api/auth/login.ts b/pages/api/auth/login.ts new file mode 100644 index 0000000..8b5b1cf --- /dev/null +++ b/pages/api/auth/login.ts @@ -0,0 +1,116 @@ +// Next.js API route support: https://nextjs.org/docs/api-routes/introduction +import type { NextApiRequest, NextApiResponse } from "next"; +import { readableMessageToSign } from "@/hooks/useGetAuthenticatedClient"; +import { ethers } from "ethers"; +import { createClient } from "@supabase/supabase-js"; +import { Database } from "@/types/database"; +import jwt from "jsonwebtoken"; + +type Data = + | { + token: string; + } + | { + redirectUrl: string; + }; + +export default async function handler( + req: NextApiRequest, + res: NextApiResponse, +) { + /* + 1. verify the signed message matches the requested address + 2. select * from public.user table where address matches + 3. verify the nonce included in the request matches what's + already in public.users table for that address + 4. if there's no public.users.id for that address, then you + need to create a user in the auth.users table + */ + + const { address, nonce, signed } = req.body; + + const lowerCaseAddress = address.toLowerCase(); + + const supabase = createClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_SERVICE_ROLE_KEY!, + ); + + // 1. verify the signed message matches the requested address + const recoveredAddress = ethers.utils.verifyMessage( + readableMessageToSign, + signed, + ); + + if ( + !recoveredAddress || + recoveredAddress.toLowerCase() !== lowerCaseAddress + ) { + return res.status(401).json({ error: "Invalid signature" }); + } + + // 2. select * from public.user table where address matches + const { data: user, error } = await supabase + .from("users") + .select("*") + .eq("address", lowerCaseAddress) + .single(); + + if (error) { + console.log("Error selecting user", error); + return res.status(500).json({ error: error.message }); + } + + if (!user) { + return res.status(500).json({ error: "User not found" }); + } + + // 3. verify the nonce included in the request matches what's + // already in public.users table for that address + // @ts-ignore + const userNonce = user.auth?.genNonce; + if (userNonce !== nonce) { + return res.status(401).json({ error: "Invalid nonce" }); + } + + let userId = user.id; + + // 4. if there's no public.users.id for that address, then you + // need to create a user in the auth.users table + const newNonce = Math.floor(Math.random() * 1000000); + if (!user.id) { + return res.status(307).json({ redirectUrl: "/register" }); + } else { + // Otherwise just update the nonce + await supabase + .from("users") + .update({ + auth: { + genNonce: newNonce, // update the nonce, so it can't be reused + lastAuth: new Date().toISOString(), + lastAuthStatus: "success", + }, + }) + .eq("address", lowerCaseAddress); // primary key + } + // 6. lastly, we sign the token, then return it to client + const JWT = process.env.NEXT_PUBLIC_JWT_SECRET; + + if (!JWT) { + console.error("JWT not set"); + return res.status(500).json({ error: "JWT not set" }); + } + + const token = jwt.sign( + { + address: lowerCaseAddress, // this will be read by RLS policy + sub: userId, + aud: "authenticated", + role: "authenticated", + }, + JWT, + { expiresIn: 60 * 2 }, + ); + + return res.status(200).send({ token }); +} diff --git a/pages/api/auth/nonce.ts b/pages/api/auth/nonce.ts new file mode 100644 index 0000000..e84bf5a --- /dev/null +++ b/pages/api/auth/nonce.ts @@ -0,0 +1,42 @@ +// Next.js API route support: https://nextjs.org/docs/api-routes/introduction +import type { NextApiRequest, NextApiResponse } from "next"; +import { createClient } from "@supabase/supabase-js"; +import { Database } from "@/types/database"; + +type Data = { + nonce: number; +}; + +export default async function handler( + req: NextApiRequest, + res: NextApiResponse, +) { + const { address } = req.body; + const nonce = Math.floor(Math.random() * 1000000); + + const supabase = createClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_SERVICE_ROLE_KEY!, + ); + + const { data, error } = await supabase + .from("users") + .update({ + auth: { + genNonce: nonce, + lastAuth: new Date().toISOString(), + lastAuthStatus: "pending", + }, + }) + .eq("address", address) + .select(); + + console.log("update nonce for", address, data); + + if (error) { + console.log("Error updating nonce", error); + return res.status(500).json({ error: error.message }); + } + + return res.status(200).json({ nonce }); +} diff --git a/pages/api/auth/register.ts b/pages/api/auth/register.ts new file mode 100644 index 0000000..305a3e4 --- /dev/null +++ b/pages/api/auth/register.ts @@ -0,0 +1,65 @@ +import { NextApiRequest, NextApiResponse } from "next"; +import { createClient } from "@supabase/supabase-js"; +import { Database } from "@/types/database"; + +export default async function handler( + req: NextApiRequest, + res: NextApiResponse<{} | { error: string }>, +) { + const { address, nonce, signed, email } = req.body; + const lowerCaseAddress = address.toLowerCase(); + + // Handle inputs + if (!email) { + return res.status(400).json({ error: "Email is required" }); + } + + if (!address) { + return res.status(400).json({ error: "Address is required" }); + } + + if (!signed) { + return res.status(400).json({ error: "Signed is required" }); + } + + if (!nonce) { + return res.status(400).json({ error: "Nonce is required" }); + } + + const supabase = createClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_SERVICE_ROLE_KEY!, + ); + + // Create a new user with correct email. + const { data: authUser, error } = await supabase.auth.admin.createUser({ + email, + user_metadata: { address: lowerCaseAddress }, + email_confirm: true, + }); + + if (error) { + return res.status(500).json({ error: error.message }); + } + + // 5. insert response into public.users table with id with a new nonce + const newNonce = Math.floor(Math.random() * 1000000); + const { error: updateUserError } = await supabase + .from("users") + .update({ + auth: { + genNonce: newNonce, // update the nonce, so it can't be reused + lastAuth: new Date().toISOString(), + lastAuthStatus: "success", + }, + id: authUser.user.id, + }) + .eq("address", lowerCaseAddress); // primary key + + if (updateUserError) { + console.log("Error updating user", updateUserError); + return res.status(500).json({ error: updateUserError.message }); + } + + return res.status(307).json({ redirectUrl: "/admin/hyperboards" }); +} diff --git a/pages/api/hello.ts b/pages/api/hello.ts deleted file mode 100644 index f8bcc7e..0000000 --- a/pages/api/hello.ts +++ /dev/null @@ -1,13 +0,0 @@ -// Next.js API route support: https://nextjs.org/docs/api-routes/introduction -import type { NextApiRequest, NextApiResponse } from 'next' - -type Data = { - name: string -} - -export default function handler( - req: NextApiRequest, - res: NextApiResponse -) { - res.status(200).json({ name: 'John Doe' }) -} diff --git a/pages/index.zuzalu.tsx b/pages/index.zuzalu.tsx new file mode 100644 index 0000000..f2a6f48 --- /dev/null +++ b/pages/index.zuzalu.tsx @@ -0,0 +1,57 @@ +import { ZuconnectRetroactiveFund } from "@/components/zuconnect-retroactive-fund"; +import { Box, Center, ChakraProvider } from "@chakra-ui/react"; +import { configureChains, createConfig, WagmiConfig } from "wagmi"; +import { goerli, mainnet } from "viem/chains"; +import { alchemyProvider } from "wagmi/providers/alchemy"; +import { publicProvider } from "wagmi/providers/public"; +import { getDefaultWallets, RainbowKitProvider } from "@rainbow-me/rainbowkit"; +import React from "react"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { chakraTheme } from "@/chakra-theme"; +import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; + +const { chains, publicClient, webSocketPublicClient } = configureChains( + [mainnet, goerli], + [ + alchemyProvider({ + apiKey: process.env.NEXT_PUBLIC_ALCHEMY_KEY_GOERLI!, + }), + publicProvider(), + ], +); + +const { connectors } = getDefaultWallets({ + appName: "Hyperboards", + projectId: process.env.NEXT_PUBLIC_WALLETCONNECT_ID!, + chains, +}); + +const config = createConfig({ + autoConnect: true, + publicClient, + webSocketPublicClient, + connectors, +}); + +export const ZuconnectRetroactiveFundPage = () => { + const [queryClient] = React.useState(() => new QueryClient()); + + return ( + + + + + + + + + + + + + + + ); +}; + +export default ZuconnectRetroactiveFundPage; diff --git a/pages/register.tsx b/pages/register.tsx new file mode 100644 index 0000000..63fbe2f --- /dev/null +++ b/pages/register.tsx @@ -0,0 +1,7 @@ +import { RegisterForm } from "@/components/forms/register-form"; + +export const RegisterPage = () => { + return ; +}; + +export default RegisterPage; diff --git a/public/favicon.ico b/public/favicon.ico index 718d6fe..4e644f7 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/styles/Zuzalu.module.css b/styles/Zuzalu.module.css new file mode 100644 index 0000000..8a4973e --- /dev/null +++ b/styles/Zuzalu.module.css @@ -0,0 +1,17 @@ +@import url('https://fonts.cdnfonts.com/css/switzer'); + +@font-face { + font-family: "Director-Regular"; + font-style: normal; + font-weight: 100 900; + font-display: optional; + src: url(/fonts/Director-regular.woff2) format("woff2"); +} + +@font-face { + font-family: "Director-Variable"; + font-style: normal; + font-weight: 100 900; + font-display: optional; + src: url(/fonts/Director-Variable.woff2) format("woff2"); +} diff --git a/styles/globals.css b/styles/globals.css index e425315..be372dc 100644 --- a/styles/globals.css +++ b/styles/globals.css @@ -5,7 +5,7 @@ font-style: normal; font-weight: 100 900; font-display: optional; - src: url(/fonts/Director-regular.woff2) format("woff2"); + src: url(/fonts/Director-Regular.woff2) format("woff2"); } @font-face { diff --git a/supabase/migrations/20231018133039_add_authentication.sql b/supabase/migrations/20231018133039_add_authentication.sql new file mode 100644 index 0000000..644f5bf --- /dev/null +++ b/supabase/migrations/20231018133039_add_authentication.sql @@ -0,0 +1,38 @@ +create table "public"."users" ( + "id" uuid, + "created_at" timestamp with time zone not null default now(), + "auth" json not null, + "email" text, + "address" text not null +); + + +alter table "public"."users" enable row level security; + +CREATE UNIQUE INDEX users_pkey ON public.users USING btree (address); + +alter table "public"."users" add constraint "users_pkey" PRIMARY KEY using index "users_pkey"; + +create policy "Enable insert for authenticated users only" +on "public"."hyperboards" +as permissive +for insert +to authenticated +with check (true); + + +create policy "Enable read access for all users" +on "public"."hyperboards" +as permissive +for select +to public +using (true); + + +create policy "Enable update for users based on address" +on "public"."hyperboards" +as permissive +for update +to public +using (((auth.jwt() ->> 'address'::text) = admin_id)) +with check (((auth.jwt() ->> 'address'::text) = admin_id)); diff --git a/supabase/migrations/20231019083311_enable_rls.sql b/supabase/migrations/20231019083311_enable_rls.sql new file mode 100644 index 0000000..de7f556 --- /dev/null +++ b/supabase/migrations/20231019083311_enable_rls.sql @@ -0,0 +1,36 @@ +alter table "public"."hyperboard_claims" enable row level security; + +alter table "public"."hyperboard_sponsor_metadata" enable row level security; + +alter table "public"."registries" enable row level security; + +create policy "Enable read access for all users" +on "public"."hyperboard_claims" +as permissive +for select +to public +using (true); + + +create policy "Enable read access for all users" +on "public"."hyperboard_registries" +as permissive +for select +to public +using (true); + + +create policy "Enable read access for all users" +on "public"."hyperboard_sponsor_metadata" +as permissive +for select +to public +using (true); + + +create policy "Enable read access for all users" +on "public"."registries" +as permissive +for select +to public +using (true); diff --git a/supabase/migrations/20231019083656_rename_tables.sql b/supabase/migrations/20231019083656_rename_tables.sql new file mode 100644 index 0000000..65e9d36 --- /dev/null +++ b/supabase/migrations/20231019083656_rename_tables.sql @@ -0,0 +1,3 @@ +ALTER TABLE hyperboard_claims RENAME TO claims; + +ALTER TABLE hyperboard_sponsor_metadata RENAME TO sponsor_metadata; diff --git a/supabase/migrations/20231019185743_add_registry_policies.sql b/supabase/migrations/20231019185743_add_registry_policies.sql new file mode 100644 index 0000000..313b0a4 --- /dev/null +++ b/supabase/migrations/20231019185743_add_registry_policies.sql @@ -0,0 +1,37 @@ +alter table "public"."claims" drop constraint "hyperboard_claims_registry_id_fkey"; + +alter table "public"."claims" add constraint "claims_registry_id_fkey" FOREIGN KEY (registry_id) REFERENCES registries(id) ON DELETE CASCADE not valid; + +alter table "public"."claims" validate constraint "claims_registry_id_fkey"; + +create policy "Enable insert for authenticated users only" +on "public"."claims" +as permissive +for insert +to authenticated +with check (true); + + +create policy "Allow owners of registries to delete them based on address" +on "public"."registries" +as permissive +for delete +to public +using (((auth.jwt() ->> 'address'::text) = admin_id)); + + +create policy "Allow owners of registries to update based on address" +on "public"."registries" +as permissive +for update +to public +using (((auth.jwt() ->> 'address'::text) = admin_id)) +with check (((auth.jwt() ->> 'address'::text) = admin_id)); + + +create policy "Enable insert for authenticated users only" +on "public"."registries" +as permissive +for insert +to authenticated +with check (true); diff --git a/supabase/migrations/20231020090638_add_zuzalu_donations_registry.sql b/supabase/migrations/20231020090638_add_zuzalu_donations_registry.sql new file mode 100644 index 0000000..98ac579 --- /dev/null +++ b/supabase/migrations/20231020090638_add_zuzalu_donations_registry.sql @@ -0,0 +1,22 @@ +create table "public"."zuzalu_donations" ( + "id" bigint generated by default as identity not null, + "created_at" timestamp with time zone not null default now(), + "address" text not null, + "email" text not null, + "amount" text +); + + +alter table "public"."zuzalu_donations" enable row level security; + +CREATE UNIQUE INDEX zuzalu_donations_pkey ON public.zuzalu_donations USING btree (id); + +alter table "public"."zuzalu_donations" add constraint "zuzalu_donations_pkey" PRIMARY KEY using index "zuzalu_donations_pkey"; + + +create policy "Allow insert for everybody" +on "public"."zuzalu_donations" +as permissive +for insert +to public +with check (true); diff --git a/supabase/migrations/20231024065840_add_delete_claim_policy.sql b/supabase/migrations/20231024065840_add_delete_claim_policy.sql new file mode 100644 index 0000000..b43cc6c --- /dev/null +++ b/supabase/migrations/20231024065840_add_delete_claim_policy.sql @@ -0,0 +1,8 @@ +alter table "public"."claims" add column "admin_id" text not null; + +create policy "Delete claims when you are the owner" +on "public"."claims" +as permissive +for delete +to public +using (((auth.jwt() ->> 'address'::text) = admin_id)); diff --git a/supabase/migrations/20231024084351_add_rls_for_hyperboard_registries.sql b/supabase/migrations/20231024084351_add_rls_for_hyperboard_registries.sql new file mode 100644 index 0000000..f68eac7 --- /dev/null +++ b/supabase/migrations/20231024084351_add_rls_for_hyperboard_registries.sql @@ -0,0 +1,26 @@ +alter table "public"."hyperboard_registries" drop constraint "hyperboard_registries_registries_id_fkey"; + +alter table "public"."hyperboard_registries" drop constraint "hyperboard_registries_pkey"; + +drop index if exists "public"."hyperboard_registries_pkey"; + +alter table "public"."hyperboard_registries" drop column "registries_id"; + +alter table "public"."hyperboard_registries" add column "registry_id" uuid not null; + +CREATE UNIQUE INDEX hyperboard_registries_pkey ON public.hyperboard_registries USING btree (hyperboard_id, registry_id); + +alter table "public"."hyperboard_registries" add constraint "hyperboard_registries_pkey" PRIMARY KEY using index "hyperboard_registries_pkey"; + +alter table "public"."hyperboard_registries" add constraint "hyperboard_registries_registry_id_fkey" FOREIGN KEY (registry_id) REFERENCES registries(id) not valid; + +alter table "public"."hyperboard_registries" validate constraint "hyperboard_registries_registry_id_fkey"; + +create policy "Only allow for owner of the hyperboard" +on "public"."hyperboard_registries" +as permissive +for insert +to public +with check (((auth.jwt() ->> 'address'::text) IN ( SELECT hyperboards.admin_id + FROM hyperboards + WHERE (hyperboard_registries.hyperboard_id = hyperboards.id)))); diff --git a/supabase/migrations/20231024120828_add_rls_for_hyperboards.sql b/supabase/migrations/20231024120828_add_rls_for_hyperboards.sql new file mode 100644 index 0000000..85737a2 --- /dev/null +++ b/supabase/migrations/20231024120828_add_rls_for_hyperboards.sql @@ -0,0 +1,16 @@ +create policy "Only allow for owner of hyperboard" +on "public"."hyperboard_registries" +as permissive +for delete +to public +using (((auth.jwt() ->> 'address'::text) IN ( SELECT hyperboards.admin_id + FROM hyperboards + WHERE (hyperboard_registries.hyperboard_id = hyperboards.id)))); + + +create policy "Enable delete for users based on address" +on "public"."hyperboards" +as permissive +for delete +to public +using (((auth.jwt() ->> 'address'::text) = admin_id)); diff --git a/supabase/migrations/20231025103020_add_claim_id_to_registry.sql b/supabase/migrations/20231025103020_add_claim_id_to_registry.sql new file mode 100644 index 0000000..d4ff9c6 --- /dev/null +++ b/supabase/migrations/20231025103020_add_claim_id_to_registry.sql @@ -0,0 +1,3 @@ +alter table "public"."hyperboards" add column "chain_id" integer not null; + +alter table "public"."users" alter column "auth" set default '{}'::json; diff --git a/types/database-entities.ts b/types/database-entities.ts new file mode 100644 index 0000000..94586e4 --- /dev/null +++ b/types/database-entities.ts @@ -0,0 +1,18 @@ +import { Database } from "@/types/database"; + +export type HyperboardEntity = + Database["public"]["Tables"]["hyperboards"]["Row"]; +export type HyperboardInsert = + Database["public"]["Tables"]["hyperboards"]["Insert"]; + +export type RegistryEntity = Database["public"]["Tables"]["registries"]["Row"]; +export type RegistryInsert = + Database["public"]["Tables"]["registries"]["Insert"]; + +export type ClaimEntity = Database["public"]["Tables"]["claims"]["Row"]; +export type ClaimInsert = Database["public"]["Tables"]["claims"]["Insert"]; + +export type HyperboardRegistryEntity = + Database["public"]["Tables"]["hyperboard_registries"]["Row"]; +export type HyperboardRegistryInsert = + Database["public"]["Tables"]["hyperboard_registries"]["Insert"]; diff --git a/types/database.ts b/types/database.ts index 1b3dd44..dd27191 100644 --- a/types/database.ts +++ b/types/database.ts @@ -7,302 +7,153 @@ export type Json = | Json[] export interface Database { - public: { + graphql_public: { Tables: { - allowlistCache: { - Row: { - address: string | null - claimId: string | null - created_at: string | null - fractionCounter: number | null - hidden: boolean - id: number - } - Insert: { - address?: string | null - claimId?: string | null - created_at?: string | null - fractionCounter?: number | null - hidden?: boolean - id?: number - } - Update: { - address?: string | null - claimId?: string | null - created_at?: string | null - fractionCounter?: number | null - hidden?: boolean - id?: number - } - Relationships: [] - } - "allowlistCache-goerli": { - Row: { - address: string | null - claimId: string | null - created_at: string | null - fractionCounter: number | null - hidden: boolean - id: number - } - Insert: { - address?: string | null - claimId?: string | null - created_at?: string | null - fractionCounter?: number | null - hidden?: boolean - id?: number - } - Update: { - address?: string | null - claimId?: string | null - created_at?: string | null - fractionCounter?: number | null - hidden?: boolean - id?: number - } - Relationships: [] - } - "allowlistCache-optimism": { - Row: { - address: string | null - claimId: string | null - created_at: string | null - fractionCounter: number | null - hidden: boolean - id: number - } - Insert: { - address?: string | null - claimId?: string | null - created_at?: string | null - fractionCounter?: number | null - hidden?: boolean - id?: number - } - Update: { - address?: string | null - claimId?: string | null - created_at?: string | null - fractionCounter?: number | null - hidden?: boolean - id?: number + [_ in never]: never + } + Views: { + [_ in never]: never + } + Functions: { + graphql: { + Args: { + operationName?: string + query?: string + variables?: Json + extensions?: Json } - Relationships: [] + Returns: Json } - "claim-blueprints-optimism": { + } + Enums: { + [_ in never]: never + } + CompositeTypes: { + [_ in never]: never + } + } + public: { + Tables: { + claims: { Row: { + admin_id: string + chain_id: number created_at: string - form_values: string + hypercert_id: string id: string - minter_address: string registry_id: string } Insert: { + admin_id: string + chain_id: number created_at?: string - form_values: string + hypercert_id: string id?: string - minter_address: string registry_id: string } Update: { + admin_id?: string + chain_id?: number created_at?: string - form_values?: string + hypercert_id?: string id?: string - minter_address?: string registry_id?: string } Relationships: [ { - foreignKeyName: "claim-blueprints-optimism_registry_id_fkey" + foreignKeyName: "claims_registry_id_fkey" columns: ["registry_id"] - referencedRelation: "registries-optimism" + referencedRelation: "registries" referencedColumns: ["id"] } ] } - "claims-metadata-mapping": { - Row: { - chainId: number | null - claimId: string - collectionName: string | null - collision: string | null - createdAt: number | null - creatorAddress: string | null - date: string | null - featured: boolean | null - hidden: boolean - hypercert: Json | null - id: number - properties: Json | null - title: string | null - totalPrice: number | null - totalUnits: number | null - } - Insert: { - chainId?: number | null - claimId: string - collectionName?: string | null - collision?: string | null - createdAt?: number | null - creatorAddress?: string | null - date?: string | null - featured?: boolean | null - hidden?: boolean - hypercert?: Json | null - id?: number - properties?: Json | null - title?: string | null - totalPrice?: number | null - totalUnits?: number | null - } - Update: { - chainId?: number | null - claimId?: string - collectionName?: string | null - collision?: string | null - createdAt?: number | null - creatorAddress?: string | null - date?: string | null - featured?: boolean | null - hidden?: boolean - hypercert?: Json | null - id?: number - properties?: Json | null - title?: string | null - totalPrice?: number | null - totalUnits?: number | null - } - Relationships: [] - } - collections: { + hyperboard_registries: { Row: { - chainId: number | null - claimId: string | null - collectionName: string | null created_at: string | null - featured: boolean | null - id: number + hyperboard_id: string + registry_id: string } Insert: { - chainId?: number | null - claimId?: string | null - collectionName?: string | null created_at?: string | null - featured?: boolean | null - id?: number + hyperboard_id: string + registry_id: string } Update: { - chainId?: number | null - claimId?: string | null - collectionName?: string | null created_at?: string | null - featured?: boolean | null - id?: number - } - Relationships: [] - } - "ftc-purchase": { - Row: { - address: string - ethValue: number - id: number - textForSponsor: string | null - timestamp: string - values: Json - } - Insert: { - address: string - ethValue: number - id?: number - textForSponsor?: string | null - timestamp?: string - values: Json - } - Update: { - address?: string - ethValue?: number - id?: number - textForSponsor?: string | null - timestamp?: string - values?: Json - } - Relationships: [] - } - "gtc-alpha-allowlist": { - Row: { - address: string | null - id: number - project: string | null - units: number | null - } - Insert: { - address?: string | null - id: number - project?: string | null - units?: number | null - } - Update: { - address?: string | null - id?: number - project?: string | null - units?: number | null + hyperboard_id?: string + registry_id?: string } - Relationships: [] + Relationships: [ + { + foreignKeyName: "hyperboard_registries_hyperboard_id_fkey" + columns: ["hyperboard_id"] + referencedRelation: "hyperboards" + referencedColumns: ["id"] + }, + { + foreignKeyName: "hyperboard_registries_registry_id_fkey" + columns: ["registry_id"] + referencedRelation: "registries" + referencedColumns: ["id"] + } + ] } - "hidden-hypercerts": { + hyperboards: { Row: { - chainId: number | null - claimId: string | null - entry_created_at: string - hidden: boolean - id: number + admin_id: string + chain_id: number + created_at: string | null + id: string + name: string } Insert: { - chainId?: number | null - claimId?: string | null - entry_created_at?: string - hidden?: boolean - id?: number + admin_id: string + chain_id: number + created_at?: string | null + id?: string + name: string } Update: { - chainId?: number | null - claimId?: string | null - entry_created_at?: string - hidden?: boolean - id?: number + admin_id?: string + chain_id?: number + created_at?: string | null + id?: string + name?: string } Relationships: [] } - "hyperboard-claims": { + registries: { Row: { + admin_id: string + chain_id: number created_at: string - hypercert_id: string + description: string + hidden: boolean id: string - registry_id: string + name: string } Insert: { + admin_id: string + chain_id: number created_at?: string - hypercert_id: string + description: string + hidden?: boolean id?: string - registry_id: string + name: string } Update: { + admin_id?: string + chain_id?: number created_at?: string - hypercert_id?: string + description?: string + hidden?: boolean id?: string - registry_id?: string + name?: string } - Relationships: [ - { - foreignKeyName: "hyperboard-claims_registry_id_fkey" - columns: ["registry_id"] - referencedRelation: "registries-optimism" - referencedColumns: ["id"] - } - ] + Relationships: [] } - "hyperboard-sponsor-metadata": { + sponsor_metadata: { Row: { address: string companyName: string | null @@ -335,239 +186,238 @@ export interface Database { } Relationships: [] } - "hypercert-projects": { + users: { Row: { - date_to_order: string | null - description: string | null - hidden: boolean - id: number - link: string | null - link_display_text: string | null - name: string | null - organization: string | null - stage: string | null - time_created: string | null - type: string | null - visible_date: string | null + address: string + auth: Json + created_at: string + email: string | null + id: string | null } Insert: { - date_to_order?: string | null - description?: string | null - hidden?: boolean - id?: number - link?: string | null - link_display_text?: string | null - name?: string | null - organization?: string | null - stage?: string | null - time_created?: string | null - type?: string | null - visible_date?: string | null + address: string + auth?: Json + created_at?: string + email?: string | null + id?: string | null } Update: { - date_to_order?: string | null - description?: string | null - hidden?: boolean - id?: number - link?: string | null - link_display_text?: string | null - name?: string | null - organization?: string | null - stage?: string | null - time_created?: string | null - type?: string | null - visible_date?: string | null + address?: string + auth?: Json + created_at?: string + email?: string | null + id?: string | null } Relationships: [] } - "hypercerts-store": { + zuzalu_donations: { Row: { - chainId: number | null - claimId: string | null - collectionName: string | null + address: string + amount: string | null created_at: string - hidden: boolean + email: string id: number - maxPurchase: number } Insert: { - chainId?: number | null - claimId?: string | null - collectionName?: string | null + address: string + amount?: string | null created_at?: string - hidden?: boolean + email: string id?: number - maxPurchase?: number } Update: { - chainId?: number | null - claimId?: string | null - collectionName?: string | null + address?: string + amount?: string | null created_at?: string - hidden?: boolean + email?: string id?: number - maxPurchase?: number } Relationships: [] } - "registries-optimism": { + } + Views: { + [_ in never]: never + } + Functions: { + [_ in never]: never + } + Enums: { + [_ in never]: never + } + CompositeTypes: { + [_ in never]: never + } + } + storage: { + Tables: { + buckets: { Row: { - admin_id: string - created_at: string - description: string - hidden: boolean + allowed_mime_types: string[] | null + avif_autodetection: boolean | null + created_at: string | null + file_size_limit: number | null id: string name: string + owner: string | null + public: boolean | null + updated_at: string | null } Insert: { - admin_id: string - created_at?: string - description: string - hidden?: boolean - id?: string + allowed_mime_types?: string[] | null + avif_autodetection?: boolean | null + created_at?: string | null + file_size_limit?: number | null + id: string name: string + owner?: string | null + public?: boolean | null + updated_at?: string | null } Update: { - admin_id?: string - created_at?: string - description?: string - hidden?: boolean + allowed_mime_types?: string[] | null + avif_autodetection?: boolean | null + created_at?: string | null + file_size_limit?: number | null id?: string name?: string + owner?: string | null + public?: boolean | null + updated_at?: string | null } - Relationships: [] + Relationships: [ + { + foreignKeyName: "buckets_owner_fkey" + columns: ["owner"] + referencedRelation: "users" + referencedColumns: ["id"] + } + ] } - "zuzalu-community-hypercerts": { + migrations: { Row: { - chainId: number | null - claimId: string - collectionName: string | null - collision: string | null - createdAt: number | null - creatorAddress: string | null - date: string | null - featured: boolean | null - hidden: boolean - hypercert: Json | null + executed_at: string | null + hash: string id: number - properties: Json | null - title: string | null - totalUnits: number | null + name: string } Insert: { - chainId?: number | null - claimId: string - collectionName?: string | null - collision?: string | null - createdAt?: number | null - creatorAddress?: string | null - date?: string | null - featured?: boolean | null - hidden?: boolean - hypercert?: Json | null - id?: number - properties?: Json | null - title?: string | null - totalUnits?: number | null + executed_at?: string | null + hash: string + id: number + name: string } Update: { - chainId?: number | null - claimId?: string - collectionName?: string | null - collision?: string | null - createdAt?: number | null - creatorAddress?: string | null - date?: string | null - featured?: boolean | null - hidden?: boolean - hypercert?: Json | null + executed_at?: string | null + hash?: string id?: number - properties?: Json | null - title?: string | null - totalUnits?: number | null + name?: string } Relationships: [] } - "zuzalu-purchase": { + objects: { Row: { - address: string - ethValue: number - id: number - textForSponsor: string | null - timestamp: string - values: Json + bucket_id: string | null + created_at: string | null + id: string + last_accessed_at: string | null + metadata: Json | null + name: string | null + owner: string | null + path_tokens: string[] | null + updated_at: string | null + version: string | null } Insert: { - address: string - ethValue: number - id?: number - textForSponsor?: string | null - timestamp?: string - values: Json + bucket_id?: string | null + created_at?: string | null + id?: string + last_accessed_at?: string | null + metadata?: Json | null + name?: string | null + owner?: string | null + path_tokens?: string[] | null + updated_at?: string | null + version?: string | null } Update: { - address?: string - ethValue?: number - id?: number - textForSponsor?: string | null - timestamp?: string - values?: Json + bucket_id?: string | null + created_at?: string | null + id?: string + last_accessed_at?: string | null + metadata?: Json | null + name?: string | null + owner?: string | null + path_tokens?: string[] | null + updated_at?: string | null + version?: string | null } - Relationships: [] + Relationships: [ + { + foreignKeyName: "objects_bucketId_fkey" + columns: ["bucket_id"] + referencedRelation: "buckets" + referencedColumns: ["id"] + } + ] } } Views: { [_ in never]: never } Functions: { - citext: - | { - Args: { - "": string - } - Returns: string - } - | { - Args: { - "": boolean - } - Returns: string - } - | { - Args: { - "": unknown - } - Returns: string - } - citext_hash: { + can_insert_object: { Args: { - "": string + bucketid: string + name: string + owner: string + metadata: Json } - Returns: number + Returns: undefined } - citextin: { + extension: { Args: { - "": unknown + name: string } Returns: string } - citextout: { + filename: { Args: { - "": string + name: string } - Returns: unknown + Returns: string } - citextrecv: { + foldername: { Args: { - "": unknown + name: string } - Returns: string + Returns: unknown + } + get_size_by_bucket: { + Args: Record + Returns: { + size: number + bucket_id: string + }[] } - citextsend: { + search: { Args: { - "": string - } - Returns: string + prefix: string + bucketname: string + limits?: number + levels?: number + offsets?: number + search?: string + sortcolumn?: string + sortorder?: string + } + Returns: { + name: string + id: string + updated_at: string + created_at: string + last_accessed_at: string + metadata: Json + }[] } } Enums: { @@ -578,3 +428,4 @@ export interface Database { } } } + diff --git a/utils/formatting.ts b/utils/formatting.ts new file mode 100644 index 0000000..9e35866 --- /dev/null +++ b/utils/formatting.ts @@ -0,0 +1,3 @@ +export const formatAddress = (address: string) => { + return `${address.slice(0, 6)}...${address.slice(-4)}`; +}; diff --git a/utils/validation.ts b/utils/validation.ts new file mode 100644 index 0000000..1866901 --- /dev/null +++ b/utils/validation.ts @@ -0,0 +1,5 @@ +export const isValidEmail = (email: string) => + // eslint-disable-next-line no-useless-escape + /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test( + email, + ); diff --git a/yarn.lock b/yarn.lock index aa2ae88..1c25e05 100644 --- a/yarn.lock +++ b/yarn.lock @@ -99,37 +99,24 @@ resize-observer-polyfill "^1.5.1" throttle-debounce "^5.0.0" -"@ardatan/fast-json-stringify@^0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@ardatan/fast-json-stringify/-/fast-json-stringify-0.0.6.tgz#bf26082c878408eaa6328a9212d073aed606e62c" - integrity sha512-//BefMIP6U1ptNeBf44Le4vqThejTwZndtYLtAuFBwA/DmbVbbYTCLNIMhZ96WZnhI92EvTXneT5tKJrgINE9A== - dependencies: - "@fastify/deepmerge" "^1.0.0" - fast-deep-equal "^3.1.3" - rfdc "^1.2.0" - -"@ardatan/relay-compiler@12.0.0": - version "12.0.0" - resolved "https://registry.yarnpkg.com/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz#2e4cca43088e807adc63450e8cab037020e91106" - integrity sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q== +"@apollo/client@~3.2.5 || ~3.3.0 || ~3.4.0 || ~3.5.0 || ~3.6.0 || ~3.7.0 || ~3.8.0": + version "3.8.6" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.8.6.tgz#d90f2a9b0147d8fc96c7a867588b5b2165cc4085" + integrity sha512-FnHg3vhQP8tQzgBs6oTJCFFIbovelDGYujj6MK7CJneiHf62TJstCIO0Ot4A1h7XrgFEtgl8a/OgajQWqrTuYw== dependencies: - "@babel/core" "^7.14.0" - "@babel/generator" "^7.14.0" - "@babel/parser" "^7.14.0" - "@babel/runtime" "^7.0.0" - "@babel/traverse" "^7.14.0" - "@babel/types" "^7.0.0" - babel-preset-fbjs "^3.4.0" - chalk "^4.0.0" - fb-watchman "^2.0.0" - fbjs "^3.0.0" - glob "^7.1.1" - immutable "~3.7.6" - invariant "^2.2.4" - nullthrows "^1.1.1" - relay-runtime "12.0.0" - signedsource "^1.0.0" - yargs "^15.3.1" + "@graphql-typed-document-node/core" "^3.1.1" + "@wry/context" "^0.7.3" + "@wry/equality" "^0.5.6" + "@wry/trie" "^0.4.3" + graphql-tag "^2.12.6" + hoist-non-react-statics "^3.3.2" + optimism "^0.17.5" + prop-types "^15.7.2" + response-iterator "^0.2.6" + symbol-observable "^4.0.0" + ts-invariant "^0.10.3" + tslib "^2.3.0" + zen-observable-ts "^1.2.5" "@ardatan/sync-fetch@^0.0.1": version "0.0.1" @@ -151,12 +138,12 @@ "@babel/highlight" "^7.22.13" chalk "^2.4.2" -"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.9": +"@babel/compat-data@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.14.0": +"@babel/core@^7.11.6", "@babel/core@^7.12.3": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.11.tgz#8033acaa2aa24c3f814edaaa057f3ce0ba559c24" integrity sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ== @@ -177,7 +164,7 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.14.0", "@babel/generator@^7.22.10", "@babel/generator@^7.7.2": +"@babel/generator@^7.22.10", "@babel/generator@^7.7.2": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722" integrity sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A== @@ -187,14 +174,7 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" - integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.10", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": +"@babel/helper-compilation-targets@^7.22.10": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz#01d648bbc25dd88f513d862ee0df27b7d4e67024" integrity sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q== @@ -205,21 +185,6 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.11.tgz#4078686740459eeb4af3494a273ac09148dfb213" - integrity sha512-y1grdYL4WzmUDBRGK0pDbIoFd7UZKoDurDzWEoNMYoj1EL+foGRQNyPWDcC+YyegN5y1DUsFFmzjGijB3nSVAQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - semver "^6.3.1" - "@babel/helper-environment-visitor@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" @@ -240,13 +205,6 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-member-expression-to-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" - integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" @@ -265,27 +223,11 @@ "@babel/helper-split-export-declaration" "^7.22.6" "@babel/helper-validator-identifier" "^7.22.5" -"@babel/helper-optimise-call-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" - integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz#cbdc27d6d8d18cd22c81ae4293765a5d9afd0779" - integrity sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-simple-access@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" @@ -293,13 +235,6 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" - integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== - dependencies: - "@babel/types" "^7.22.5" - "@babel/helper-split-export-declaration@^7.22.6": version "7.22.6" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" @@ -340,30 +275,11 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.8", "@babel/parser@^7.20.7", "@babel/parser@^7.22.11", "@babel/parser@^7.22.5": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.11", "@babel/parser@^7.22.5": version "7.22.14" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.14.tgz#c7de58e8de106e88efca42ce17f0033209dfd245" integrity sha512-1KucTHgOvaw/LzCVrEOAyXkr9rQlp0A1HiHRYnSUE9dmb8PvPW7o5sscg+5169r54n3vGlbx6GevTE/Iw/P3AQ== -"@babel/plugin-proposal-class-properties@^7.0.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-object-rest-spread@^7.0.0": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -378,27 +294,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.8.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" - integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-import-assertions@^7.20.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" - integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" @@ -413,7 +315,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.22.5", "@babel/plugin-syntax-jsx@^7.7.2": +"@babel/plugin-syntax-jsx@^7.7.2": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== @@ -441,7 +343,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== @@ -476,166 +378,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-arrow-functions@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" - integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-block-scoped-functions@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" - integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-block-scoping@^7.0.0": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz#88a1dccc3383899eb5e660534a76a22ecee64faa" - integrity sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-classes@^7.0.0": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz#e04d7d804ed5b8501311293d1a0e6d43e94c3363" - integrity sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" - integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/template" "^7.22.5" - -"@babel/plugin-transform-destructuring@^7.0.0": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz#38e2273814a58c810b6c34ea293be4973c4eb5e2" - integrity sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-flow-strip-types@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz#0bb17110c7bf5b35a60754b2f00c58302381dee2" - integrity sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-flow" "^7.22.5" - -"@babel/plugin-transform-for-of@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" - integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-function-name@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" - integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== - dependencies: - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-literals@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" - integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-member-expression-literals@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" - integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-modules-commonjs@^7.0.0": - version "7.22.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.11.tgz#d7991d3abad199c03b68ee66a64f216c47ffdfae" - integrity sha512-o2+bg7GDS60cJMgz9jWqRUsWkMzLCxp+jFDeDUT5sjRlAxcJWZ2ylNdI7QQ2+CH5hWu7OnN+Cv3htt7AkSf96g== - dependencies: - "@babel/helper-module-transforms" "^7.22.9" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - -"@babel/plugin-transform-object-super@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" - integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - -"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18" - integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-property-literals@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" - integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-react-display-name@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz#3c4326f9fce31c7968d6cb9debcaf32d9e279a2b" - integrity sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-react-jsx@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz#932c291eb6dd1153359e2a90cb5e557dcf068416" - integrity sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-jsx" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/plugin-transform-shorthand-properties@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" - integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-spread@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" - integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - -"@babel/plugin-transform-template-literals@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" - integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/runtime@^7.0.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.7": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.11.tgz#7a9ba3bbe406ad6f9e8dd4da2ece453eb23a77a4" @@ -650,6 +392,13 @@ dependencies: regenerator-runtime "^0.14.0" +"@babel/runtime@^7.12.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" + integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/template@^7.22.5", "@babel/template@^7.3.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" @@ -659,7 +408,7 @@ "@babel/parser" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.22.11": +"@babel/traverse@^7.22.11": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.11.tgz#71ebb3af7a05ff97280b83f05f8865ac94b2027c" integrity sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ== @@ -675,7 +424,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.8", "@babel/types@^7.20.7", "@babel/types@^7.22.10", "@babel/types@^7.22.11", "@babel/types@^7.22.5", "@babel/types@^7.3.3": +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.10", "@babel/types@^7.22.11", "@babel/types@^7.22.5", "@babel/types@^7.3.3": version "7.22.11" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.11.tgz#0e65a6a1d4d9cbaa892b2213f6159485fe632ea2" integrity sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg== @@ -1620,13 +1369,6 @@ stream-browserify "^3.0.0" util "^0.12.4" -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - "@ctrl/tinycolor@^3.4.0", "@ctrl/tinycolor@^3.6.0": version "3.6.1" resolved "https://registry.yarnpkg.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz#b6c75a56a1947cc916ea058772d666a2c8932f31" @@ -1649,7 +1391,7 @@ source-map "^0.5.7" stylis "4.2.0" -"@emotion/cache@^11.11.0": +"@emotion/cache@^11.11.0", "@emotion/cache@^11.4.0": version "11.11.0" resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.11.0.tgz#809b33ee6b1cb1a625fef7a45bc568ccd9b8f3ff" integrity sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ== @@ -1694,7 +1436,7 @@ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== -"@emotion/react@^11.11.1": +"@emotion/react@^11.11.1", "@emotion/react@^11.8.1": version "11.11.1" resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.1.tgz#b2c36afac95b184f73b08da8c214fdf861fa4157" integrity sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA== @@ -1761,36 +1503,36 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== -"@envelop/core@^3.0.4", "@envelop/core@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@envelop/core/-/core-3.0.6.tgz#e55c3564d05d648b0356a1c465aa90b0c51f485d" - integrity sha512-06t1xCPXq6QFN7W1JUEf68aCwYN0OUDNAIoJe7bAqhaoa2vn7NCcuX1VHkJ/OWpmElUgCsRO6RiBbIru1in0Ig== +"@envelop/core@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@envelop/core/-/core-5.0.0.tgz#131616ad9685599e501b14fdf1a983cfd3b72020" + integrity sha512-aJdnH/ptv+cvwfvciCBe7TSvccBwo9g0S5f6u35TBVzRVqIGkK03lFlIL+x1cnfZgN9EfR2b1PH2galrT1CdCQ== dependencies: - "@envelop/types" "3.0.2" + "@envelop/types" "5.0.0" tslib "^2.5.0" -"@envelop/extended-validation@^2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@envelop/extended-validation/-/extended-validation-2.0.6.tgz#0dd156d3cbabb5659af6dcd868cc0d1a090f4935" - integrity sha512-aXAf1bg5Z71YfEKLCZ8OMUZAOYPGHV/a+7avd5TIMFNDxl5wJTmIonep3T+kdMpwRInDphfNPGFD0GcGdGxpHg== +"@envelop/extended-validation@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@envelop/extended-validation/-/extended-validation-4.0.0.tgz#5c445a86d37a3143bc9e87dfe34563a2c6e3f8eb" + integrity sha512-pvJ/OL+C+lpNiiCXezHT+vP3PTq37MQicoOB1l5MdgOOZZWRAp0NDOgvEKcXUY7AWNpvNHgSE0QFSRfGwsfwFQ== dependencies: - "@graphql-tools/utils" "^8.8.0" + "@graphql-tools/utils" "^10.0.0" tslib "^2.5.0" -"@envelop/types@3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@envelop/types/-/types-3.0.2.tgz#a4b29375b7fcee39bb5830f87f66bbc815cf305e" - integrity sha512-pOFea9ha0EkURWxJ/35axoH9fDGP5S2cUu/5Mmo9pb8zUf+TaEot8vB670XXihFEn/92759BMjLJNWBKmNhyng== +"@envelop/graphql-jit@^8.0.0": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@envelop/graphql-jit/-/graphql-jit-8.0.1.tgz#a87f2e03b0dd9eb6404d8a98b1db6176d9df00bf" + integrity sha512-91AcH3W9qGaY3B2ynCLdAbOzPBqLIcsTOzjFUfbKPBxe4d18qKpgjnBPrZ7s0XcN0DD5SDRq61bkvowg2E2BGQ== dependencies: + graphql-jit "0.8.2" tslib "^2.5.0" + value-or-promise "^1.0.12" -"@envelop/validation-cache@^5.1.2": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@envelop/validation-cache/-/validation-cache-5.1.3.tgz#8348453183af348147e2b690a431b6ca81d2a6bc" - integrity sha512-MkzcScQHJJQ/9YCAPdWShEi3xZv4F4neTs+NszzSrZOdlU8z/THuRt7gZ0sO0y2be+sx+SKjHQP8Gq3VXXcTTg== +"@envelop/types@5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@envelop/types/-/types-5.0.0.tgz#3ae59b50ec31d4bdcc7bd0b47e9c8cf2ac44b0ff" + integrity sha512-IPjmgSc4KpQRlO4qbEDnBEixvtb06WDmjKfi/7fkZaryh5HuOmTtixe1EupQI5XfXO8joc3d27uUZ0QdC++euA== dependencies: - hash-it "^6.0.0" - lru-cache "^6.0.0" tslib "^2.5.0" "@eslint-community/eslint-utils@^4.2.0": @@ -2186,10 +1928,25 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@fastify/deepmerge@^1.0.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@fastify/deepmerge/-/deepmerge-1.3.0.tgz#8116858108f0c7d9fd460d05a7d637a13fe3239a" - integrity sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A== +"@floating-ui/core@^1.4.2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.0.tgz#5c05c60d5ae2d05101c3021c1a2a350ddc027f8c" + integrity sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg== + dependencies: + "@floating-ui/utils" "^0.1.3" + +"@floating-ui/dom@^1.0.1": + version "1.5.3" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.3.tgz#54e50efcb432c06c23cd33de2b575102005436fa" + integrity sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA== + dependencies: + "@floating-ui/core" "^1.4.2" + "@floating-ui/utils" "^0.1.3" + +"@floating-ui/utils@^0.1.3": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.6.tgz#22958c042e10b67463997bd6ea7115fe28cbcaf9" + integrity sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A== "@formatjs/ecma402-abstract@1.17.0": version "1.17.0" @@ -2230,7 +1987,7 @@ dependencies: tslib "^2.4.0" -"@graphprotocol/client-add-source-name@^1.0.16", "@graphprotocol/client-add-source-name@^1.0.20": +"@graphprotocol/client-add-source-name@^1.0.16": version "1.0.20" resolved "https://registry.yarnpkg.com/@graphprotocol/client-add-source-name/-/client-add-source-name-1.0.20.tgz#3064ab8297efaad6facc6c583cc7f5daced29bda" integrity sha512-JJ++BVg4fhNCbLej105uHpabZesLsCSo9p43ZKSTT1VUdbuZtarzyIHC3uUmbvCfWQMVTCJEBZGx4l41oooOiw== @@ -2238,619 +1995,294 @@ lodash "^4.17.21" tslib "^2.4.0" -"@graphprotocol/client-auto-pagination@^1.1.18": - version "1.1.18" - resolved "https://registry.yarnpkg.com/@graphprotocol/client-auto-pagination/-/client-auto-pagination-1.1.18.tgz#1c96cd200c48416c0a65225fc90368ad040932c3" - integrity sha512-p8eEyeBcqxCXLxC7CNgIhLSCd7bjiKToKnrwYPShVb26gIG2JdAmD3/mpjuR+QaMA4chN/EO5t+TGvq6KnFx9g== - dependencies: - lodash "^4.17.21" - tslib "^2.4.0" - -"@graphprotocol/client-auto-type-merging@^1.0.25": - version "1.0.25" - resolved "https://registry.yarnpkg.com/@graphprotocol/client-auto-type-merging/-/client-auto-type-merging-1.0.25.tgz#c40a5cf5e76a48bec0f4166db442a1b28c6d81a5" - integrity sha512-kpiX2s804mpP3EVL0EdJfxeHWBTdg6SglIyEvSZ5T1OWyGDeMhr19D+gVIAlo22/PiBUkBDd0JfqppLsliPZ1A== - dependencies: - "@graphql-mesh/transform-type-merging" "^0.93.0" - tslib "^2.4.0" - -"@graphprotocol/client-block-tracking@^1.0.14": - version "1.0.14" - resolved "https://registry.yarnpkg.com/@graphprotocol/client-block-tracking/-/client-block-tracking-1.0.14.tgz#8ff37c7a01872412df318053cf6247894fe1b0b9" - integrity sha512-Eim0fZ0AgukHt5770j/UYDxfrqJroOhDe8FfNKKN7mDVRoMBoCsNknH47i03fh4A/kE8R+J6Job/zEJZPTtKnQ== - dependencies: - "@graphql-tools/utils" "^9.2.1" - tslib "^2.4.0" - -"@graphprotocol/client-cli@^2.2.15": - version "2.2.22" - resolved "https://registry.yarnpkg.com/@graphprotocol/client-cli/-/client-cli-2.2.22.tgz#a82bd843d049e9414fbb0aa82e1db74b0e3043e6" - integrity sha512-PIi8rFibYZVup+0jb08399RmbGF1ZrqUe6RXzLtKZBT57OWIMWwsFvdJyUAdr8Y8f0rrMn6A+Oy4nP1lf3hc1g== - dependencies: - "@graphprotocol/client-add-source-name" "^1.0.20" - "@graphprotocol/client-auto-pagination" "^1.1.18" - "@graphprotocol/client-auto-type-merging" "^1.0.25" - "@graphprotocol/client-block-tracking" "^1.0.14" - "@graphprotocol/client-polling-live" "^1.1.1" - "@graphql-mesh/cli" "^0.82.33" - "@graphql-mesh/graphql" "^0.93.0" - tslib "^2.4.0" - -"@graphprotocol/client-polling-live@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@graphprotocol/client-polling-live/-/client-polling-live-1.1.1.tgz#69bfd2c1683bc699966eddd6f40b6be688160364" - integrity sha512-/XKnXNTts1VCUqwN2TCuPzQBfMGusL8vtamACKUeX65WxVy/H/Wjpcxq+w/XbyqNsQdG5QOoxY+AS/vKMhUcDQ== +"@graphprotocol/client-polling-live@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@graphprotocol/client-polling-live/-/client-polling-live-2.0.0.tgz#3ee4e0f1b8208275bf0ab400c56e0a13ee12d40a" + integrity sha512-JQ0sKiFCX+ErR0fynBNUg/WDiVaaEndlS12fkgrFZrQA2vVpSyow9pW0nKMGVZJa4cN+VDskgwqK5BWXMvdeRA== dependencies: "@repeaterjs/repeater" "^3.0.4" tslib "^2.4.0" -"@graphql-codegen/core@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@graphql-codegen/core/-/core-3.1.0.tgz#ad859d52d509a4eb2ebe5aabba6543a628fb181b" - integrity sha512-DH1/yaR7oJE6/B+c6ZF2Tbdh7LixF1K8L+8BoSubjNyQ8pNwR4a70mvc1sv6H7qgp6y1bPQ9tKE+aazRRshysw== - dependencies: - "@graphql-codegen/plugin-helpers" "^4.1.0" - "@graphql-tools/schema" "^9.0.0" - "@graphql-tools/utils" "^9.1.1" - tslib "~2.5.0" - -"@graphql-codegen/plugin-helpers@^2.7.2": - version "2.7.2" - resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.2.tgz#6544f739d725441c826a8af6a49519f588ff9bed" - integrity sha512-kln2AZ12uii6U59OQXdjLk5nOlh1pHis1R98cDZGFnfaiAbX9V3fxcZ1MMJkB7qFUymTALzyjZoXXdyVmPMfRg== - dependencies: - "@graphql-tools/utils" "^8.8.0" - change-case-all "1.0.14" - common-tags "1.8.2" - import-from "4.0.0" - lodash "~4.17.0" - tslib "~2.4.0" - -"@graphql-codegen/plugin-helpers@^3.0.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz#69a2e91178f478ea6849846ade0a59a844d34389" - integrity sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg== - dependencies: - "@graphql-tools/utils" "^9.0.0" - change-case-all "1.0.15" - common-tags "1.8.2" - import-from "4.0.0" - lodash "~4.17.0" - tslib "~2.4.0" - -"@graphql-codegen/plugin-helpers@^4.1.0", "@graphql-codegen/plugin-helpers@^4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-4.2.0.tgz#8324914d0f99162a223cfa01796cdd6be972d2ae" - integrity sha512-THFTCfg+46PXlXobYJ/OoCX6pzjI+9woQqCjdyKtgoI0tn3Xq2HUUCiidndxUpEYVrXb5pRiRXb7b/ZbMQqD0A== - dependencies: - "@graphql-tools/utils" "^9.0.0" - change-case-all "1.0.15" - common-tags "1.8.2" - import-from "4.0.0" - lodash "~4.17.0" - tslib "~2.5.0" - -"@graphql-codegen/schema-ast@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@graphql-codegen/schema-ast/-/schema-ast-3.0.1.tgz#37b458bb57b95715a9eb4259341c856dae2a461d" - integrity sha512-rTKTi4XiW4QFZnrEqetpiYEWVsOFNoiR/v3rY9mFSttXFbIwNXPme32EspTiGWmEEdHY8UuTDtZN3vEcs/31zw== - dependencies: - "@graphql-codegen/plugin-helpers" "^4.1.0" - "@graphql-tools/utils" "^9.0.0" - tslib "~2.5.0" - -"@graphql-codegen/typed-document-node@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@graphql-codegen/typed-document-node/-/typed-document-node-4.0.1.tgz#6522a605d032fd9d10c7cac36b4a8728a83a957f" - integrity sha512-mQNYCd12JsFSaK6xLry4olY9TdYG7GxQPexU6qU4Om++eKhseGwk2eGmQDRG4Qp8jEDFLMXuHMVUKqMQ1M+F/A== - dependencies: - "@graphql-codegen/plugin-helpers" "^4.2.0" - "@graphql-codegen/visitor-plugin-common" "3.1.1" - auto-bind "~4.0.0" - change-case-all "1.0.15" - tslib "~2.5.0" - -"@graphql-codegen/typescript-generic-sdk@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-generic-sdk/-/typescript-generic-sdk-3.1.0.tgz#6380c19dd0fafc160cf80b859b50013217973499" - integrity sha512-nQZi/YGRI1+qCZZsh0V5nz6+hCHSN4OU9tKyOTDsEPyDFnGEukDuRdCH2IZasGn22a3Iu5TUDkgp5w9wEQwGmg== - dependencies: - "@graphql-codegen/plugin-helpers" "^3.0.0" - "@graphql-codegen/visitor-plugin-common" "2.13.1" - auto-bind "~4.0.0" - tslib "~2.4.0" - -"@graphql-codegen/typescript-operations@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-operations/-/typescript-operations-3.0.4.tgz#60163c07f0ef73655779ece450d02c1172c44027" - integrity sha512-6yE2OL2+WJ1vd5MwFEGXpaxsFGzjAGUytPVHDML3Bi3TwP1F3lnQlIko4untwvHW0JhZEGQ7Ck30H9HjcxpdKA== - dependencies: - "@graphql-codegen/plugin-helpers" "^4.2.0" - "@graphql-codegen/typescript" "^3.0.4" - "@graphql-codegen/visitor-plugin-common" "3.1.1" - auto-bind "~4.0.0" - tslib "~2.5.0" - -"@graphql-codegen/typescript-resolvers@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-resolvers/-/typescript-resolvers-3.2.1.tgz#d0e6aca10d2417b67267f53f3e0304c7be4cbd84" - integrity sha512-2ZIHk5J6HTuylse5ZIxw+aega54prHxvj7vM8hiKJ6vejZ94kvVPAq4aWmSFOkZ5lqU3YnM/ZyWfnhT5CUDj1g== - dependencies: - "@graphql-codegen/plugin-helpers" "^4.2.0" - "@graphql-codegen/typescript" "^3.0.4" - "@graphql-codegen/visitor-plugin-common" "3.1.1" - "@graphql-tools/utils" "^9.0.0" - auto-bind "~4.0.0" - tslib "~2.5.0" - -"@graphql-codegen/typescript@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-3.0.4.tgz#e12dc106a2722ebc7d18556980ccf47fa9d0805f" - integrity sha512-x4O47447DZrWNtE/l5CU9QzzW4m1RbmCEdijlA3s2flG/y1Ckqdemob4CWfilSm5/tZ3w1junVDY616RDTSvZw== - dependencies: - "@graphql-codegen/plugin-helpers" "^4.2.0" - "@graphql-codegen/schema-ast" "^3.0.1" - "@graphql-codegen/visitor-plugin-common" "3.1.1" - auto-bind "~4.0.0" - tslib "~2.5.0" - -"@graphql-codegen/visitor-plugin-common@2.13.1": - version "2.13.1" - resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.1.tgz#2228660f6692bcdb96b1f6d91a0661624266b76b" - integrity sha512-mD9ufZhDGhyrSaWQGrU1Q1c5f01TeWtSWy/cDwXYjJcHIj1Y/DG2x0tOflEfCvh5WcnmHNIw4lzDsg1W7iFJEg== - dependencies: - "@graphql-codegen/plugin-helpers" "^2.7.2" - "@graphql-tools/optimize" "^1.3.0" - "@graphql-tools/relay-operation-optimizer" "^6.5.0" - "@graphql-tools/utils" "^8.8.0" - auto-bind "~4.0.0" - change-case-all "1.0.14" - dependency-graph "^0.11.0" - graphql-tag "^2.11.0" - parse-filepath "^1.0.2" - tslib "~2.4.0" - -"@graphql-codegen/visitor-plugin-common@3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-3.1.1.tgz#50c2aa3c537a805ce68d2f115d0a9811b151428c" - integrity sha512-uAfp+zu/009R3HUAuTK2AamR1bxIltM6rrYYI6EXSmkM3rFtFsLTuJhjUDj98HcUCszJZrADppz8KKLGRUVlNg== - dependencies: - "@graphql-codegen/plugin-helpers" "^4.2.0" - "@graphql-tools/optimize" "^1.3.0" - "@graphql-tools/relay-operation-optimizer" "^6.5.0" - "@graphql-tools/utils" "^9.0.0" - auto-bind "~4.0.0" - change-case-all "1.0.15" - dependency-graph "^0.11.0" - graphql-tag "^2.11.0" - parse-filepath "^1.0.2" - tslib "~2.5.0" - -"@graphql-inspector/core@3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@graphql-inspector/core/-/core-3.3.0.tgz#3982909cec46a5b3050a8265569503f20a3b5742" - integrity sha512-LRtk9sHgj9qqVPIkkThAVq3iZ7QxgHCx6elEwd0eesZBCmaIYQxD/BFu+VT8jr10YfOURBZuAnVdyGu64vYpBg== +"@graphql-inspector/core@5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@graphql-inspector/core/-/core-5.0.1.tgz#68bc8be7ff7c0374072eedafa4e0795d62b634b6" + integrity sha512-1CWfFYucnRdULGiN1NDSinlNlpucBT+0x4i4AIthKe5n5jD9RIVyJtkA8zBbujUFrP++YE3l+TQifwbN1yTQsw== dependencies: dependency-graph "0.11.0" - object-inspect "1.10.3" - tslib "^2.0.0" + object-inspect "1.12.3" + tslib "2.6.0" -"@graphql-mesh/cache-localforage@^0.93.1": - version "0.93.1" - resolved "https://registry.yarnpkg.com/@graphql-mesh/cache-localforage/-/cache-localforage-0.93.1.tgz#77686c6b681ee5284652ec801cca3f8f0f351a27" - integrity sha512-cY/LJ+XC8kiyPoLxqPAMlOAvaeB81CZafdadLNyNDFuu66qDiZqWTYPw/lnhp2nyeukC8o/P69oP7d2OqVaCZA== +"@graphql-mesh/cache-localforage@^0.95.7": + version "0.95.7" + resolved "https://registry.yarnpkg.com/@graphql-mesh/cache-localforage/-/cache-localforage-0.95.7.tgz#edfb4b2f05369c2f4549c7164ef8c645c563beb0" + integrity sha512-/e9sFn0kgSxGE6O/GWfdGnFMOIfk1Y+IZwRqPIofHmIPdyC5cZ/gnkN6oRQv7nnx+c9hzQQ5OnxiOGdOKwb1cg== dependencies: localforage "1.10.0" -"@graphql-mesh/cli@^0.82.33": - version "0.82.35" - resolved "https://registry.yarnpkg.com/@graphql-mesh/cli/-/cli-0.82.35.tgz#1578271bf9dfecb9e939abed389197243fa89344" - integrity sha512-5IuXpk+Zpg05u6qNPX19VzC5/HCiLdDRF6EPZ3ze57FIRgGA3YsB1CUGga6Ky3inalURYwx0kWqmdjbdKZYx1w== - dependencies: - "@graphql-codegen/core" "^3.1.0" - "@graphql-codegen/typed-document-node" "^4.0.1" - "@graphql-codegen/typescript" "^3.0.4" - "@graphql-codegen/typescript-generic-sdk" "^3.1.0" - "@graphql-codegen/typescript-operations" "^3.0.4" - "@graphql-codegen/typescript-resolvers" "^3.2.1" - "@graphql-mesh/config" "^0.93.1" - "@graphql-mesh/cross-helpers" "^0.3.4" - "@graphql-mesh/http" "^0.93.1" - "@graphql-mesh/runtime" "^0.93.1" - "@graphql-mesh/store" "^0.93.1" - "@graphql-mesh/types" "^0.93.1" - "@graphql-mesh/utils" "^0.93.1" - "@graphql-tools/utils" "^9.2.1" - ajv "^8.12.0" - change-case "^4.1.2" - cosmiconfig "^8.1.3" - dnscache "^1.0.2" - dotenv "^16.0.3" - graphql-import-node "^0.0.5" - graphql-ws "^5.12.1" - json-bigint-patch "^0.0.8" - json5 "^2.2.3" - mkdirp "^3.0.0" - open "^7.4.2" - pascal-case "^3.1.2" - rimraf "^5.0.0" - ts-node "^10.9.1" - tsconfig-paths "^4.2.0" - tslib "^2.4.0" - typescript "^5.0.4" - ws "^8.13.0" - yargs "^17.7.1" - -"@graphql-mesh/config@^0.93.1": - version "0.93.1" - resolved "https://registry.yarnpkg.com/@graphql-mesh/config/-/config-0.93.1.tgz#15c933c67f6ffb932a8c5aca69cb4cbf50669db1" - integrity sha512-g4omjuBBVPtyhEDeEa6uwfSSvUehV3zcwZVNbk+UJuFJEYPO4yBLsxfEZBpoeO6EriiPX2WnQyn5kiHbC3YTRA== - dependencies: - "@envelop/core" "^3.0.6" - "@graphql-mesh/cache-localforage" "^0.93.1" - "@graphql-mesh/merger-bare" "^0.93.1" - "@graphql-mesh/merger-stitching" "^0.93.1" - "@graphql-tools/code-file-loader" "^7.3.22" - "@graphql-tools/graphql-file-loader" "^7.5.17" - "@graphql-tools/load" "^7.8.14" - "@whatwg-node/fetch" "^0.8.3" - camel-case "^4.1.2" - param-case "^3.0.4" - pascal-case "^3.1.2" - -"@graphql-mesh/cross-helpers@^0.3.4": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@graphql-mesh/cross-helpers/-/cross-helpers-0.3.4.tgz#72ec33359f0dd87a796bd2e91b4c9abb4164725d" - integrity sha512-jseNppSNEwNWjcjDDwsxmRBK+ub8tz2qc/ca2ZfCTebuCk/+D3dI3LJ95ceNFOIhInK0g2HVq8BO8lMMX1pQtg== +"@graphql-mesh/cross-helpers@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@graphql-mesh/cross-helpers/-/cross-helpers-0.4.1.tgz#bae978cb7ee09943666c18c88e81c87d644dfa6b" + integrity sha512-NkLzFuY72tmmKO7gKWoDzoYcRVf3lLoCdlw30fSNKFKEWDAV3Tyh4v0fPvU3SEmoTJio7v0TIYZqtVt3dBBDFw== dependencies: path-browserify "1.0.1" - react-native-fs "2.20.0" - react-native-path "0.0.5" - -"@graphql-mesh/graphql@^0.93.0": - version "0.93.1" - resolved "https://registry.yarnpkg.com/@graphql-mesh/graphql/-/graphql-0.93.1.tgz#f4dd490e8999080293660e346909f8e443726fd6" - integrity sha512-1G2/1jkl1VPWhsZsUBwFQI5d9OxxEc+CMxy5ef0qI2WEXqIocOxMhEY53cc+tCSbuXR99rxos+KD/8Z6ZasaOQ== - dependencies: - "@graphql-mesh/string-interpolation" "^0.4.4" - "@graphql-tools/delegate" "^9.0.32" - "@graphql-tools/url-loader" "^7.17.18" - "@graphql-tools/wrap" "^9.4.2" + +"@graphql-mesh/graphql@^0.95.7": + version "0.95.7" + resolved "https://registry.yarnpkg.com/@graphql-mesh/graphql/-/graphql-0.95.7.tgz#603393a5b35ba8bdef549a883121afe827e92627" + integrity sha512-Fjf1Ti2HYOEP+dFLVnVxafD/Z4Ev+sR6BUbx3E7Mw8r/XGY28KmCA/QftBOB6BRNKMLe5w7RsgjCrO+Qp0klNg== + dependencies: + "@graphql-mesh/string-interpolation" "^0.5.2" + "@graphql-tools/delegate" "^10.0.0" + "@graphql-tools/federation" "^1.1.0" + "@graphql-tools/url-loader" "^8.0.0" lodash.get "^4.4.2" -"@graphql-mesh/http@^0.93.1": - version "0.93.2" - resolved "https://registry.yarnpkg.com/@graphql-mesh/http/-/http-0.93.2.tgz#c24d8d6a0b1c99f02cf0580e856f7dda4aa7b564" - integrity sha512-tdGEvijb3w2YJsncoh59ZobWLWpYPDmTd07XOYroJTg3m95zloFRJr/IzklKOsAa57zVIuRLCOfDju5m1m47CQ== - dependencies: - fets "^0.1.1" - graphql-yoga "^3.9.1" - -"@graphql-mesh/merger-bare@^0.93.1": - version "0.93.1" - resolved "https://registry.yarnpkg.com/@graphql-mesh/merger-bare/-/merger-bare-0.93.1.tgz#005af8ed3d546b1092009a26f0d7fabe15c6318f" - integrity sha512-S/G3WSSa4+9YT320iRL/tODK4hTvepkQNUSzmddf3oz10xeyQD7hPJyOAnB6D+2dGVhaOTwmXJIueqevcAcP6Q== - dependencies: - "@graphql-mesh/merger-stitching" "0.93.1" - "@graphql-tools/schema" "9.0.19" - -"@graphql-mesh/merger-stitching@0.93.1", "@graphql-mesh/merger-stitching@^0.93.1": - version "0.93.1" - resolved "https://registry.yarnpkg.com/@graphql-mesh/merger-stitching/-/merger-stitching-0.93.1.tgz#446ef327dd96125a2dcd8bde9b8cc153b0b2fd12" - integrity sha512-8km5UFhKQGd0XY8bTBpHoBhVx/7qCkflPHLoTAguIWN8nJrcXJoqPamodci/U+2hudLAtRqhWosHu/8z7ctZpg== - dependencies: - "@graphql-tools/delegate" "^9.0.32" - "@graphql-tools/schema" "^9.0.18" - "@graphql-tools/stitch" "^8.7.48" - "@graphql-tools/stitching-directives" "^2.3.34" - -"@graphql-mesh/runtime@^0.93.1": - version "0.93.2" - resolved "https://registry.yarnpkg.com/@graphql-mesh/runtime/-/runtime-0.93.2.tgz#1400cd1cf0378dc9b22c2e340be0c20f7ca5c4f9" - integrity sha512-8z9ag3jZLmkzawMzF6+i/+P1nQai+HmSZzNeJJen6fRkwprSM1Z7B4lfYBYhdiCbK11HHubDfw4LYwRuBcISMQ== - dependencies: - "@envelop/core" "^3.0.6" - "@envelop/extended-validation" "^2.0.6" - "@graphql-mesh/string-interpolation" "^0.4.4" - "@graphql-tools/batch-delegate" "^8.4.25" - "@graphql-tools/batch-execute" "^8.5.19" - "@graphql-tools/delegate" "^9.0.32" - "@graphql-tools/wrap" "^9.4.2" - "@whatwg-node/fetch" "^0.8.3" - -"@graphql-mesh/store@^0.93.1": - version "0.93.1" - resolved "https://registry.yarnpkg.com/@graphql-mesh/store/-/store-0.93.1.tgz#d350a9f337943d01dd9a4504a02b2067991300a2" - integrity sha512-OEljVuaZn2htU1rt4Yll/aJmynw3/Kvhd6eE8V0/del0u9iuLJqiKkzFJl8HUSMh0IkO10OnficJnTM0tCmxRw== - dependencies: - "@graphql-inspector/core" "3.3.0" - -"@graphql-mesh/string-interpolation@^0.4.4": - version "0.4.4" - resolved "https://registry.yarnpkg.com/@graphql-mesh/string-interpolation/-/string-interpolation-0.4.4.tgz#82a41f4d02863f28a12dfef48af58501a976cf26" - integrity sha512-IotswBYZRaPswOebcr2wuOFuzD3dHIJxVEkPiiQubqjUIR8HhQI22XHJv0WNiQZ65z8NR9+GYWwEDIc2JRCNfQ== - dependencies: - dayjs "1.11.7" +"@graphql-mesh/http@^0.96.13": + version "0.96.13" + resolved "https://registry.yarnpkg.com/@graphql-mesh/http/-/http-0.96.13.tgz#738e8afdebf2c47b10e0948cc58a6ea6b9dc6a29" + integrity sha512-WNiOJkwuRKoVCv/+9bp8/PFdclyTN0COIwSXjzIf36QICPtUXhokPLkXKhR7Xdtk175aIIpUHYRRwlgQw3BC1w== + dependencies: + "@whatwg-node/server" "^0.9.0" + graphql-yoga "^5.0.0" + +"@graphql-mesh/merger-bare@^0.95.7": + version "0.95.7" + resolved "https://registry.yarnpkg.com/@graphql-mesh/merger-bare/-/merger-bare-0.95.7.tgz#093d123ce27ee863356a8b2d7cba05f8f099996a" + integrity sha512-QNLm5otrzcpClR8Puks4Md7Mh6AON+EWK+l3NBKvEkiOINFcnDRFv4FrSEXSfrAv/vHrSBbxAEXGUWHjjbQ8Kw== + dependencies: + "@graphql-mesh/merger-stitching" "0.95.7" + "@graphql-tools/schema" "10.0.0" + +"@graphql-mesh/merger-stitching@0.95.7": + version "0.95.7" + resolved "https://registry.yarnpkg.com/@graphql-mesh/merger-stitching/-/merger-stitching-0.95.7.tgz#97899f9db80595bca41cc320b09e4c6c8183cfb9" + integrity sha512-0fooZHNseNrrVIm+OPfy7NdN1f/Cq6yhpW7d9lXjB8kPWjRGaX6gBUxpfCsRqSrfBDP1VwusZ6Z9EmW+84AtCQ== + dependencies: + "@graphql-tools/delegate" "^10.0.0" + "@graphql-tools/schema" "^10.0.0" + "@graphql-tools/stitch" "^9.0.0" + +"@graphql-mesh/runtime@^0.96.12": + version "0.96.12" + resolved "https://registry.yarnpkg.com/@graphql-mesh/runtime/-/runtime-0.96.12.tgz#f371043e9640fa0e7d3c896ba9ecbb8fc1cca605" + integrity sha512-b3a/XjbTtS8gF30wu35M4pA2KyUYkYcWlnYNGXWOObtdEtEXjj+GkX//yO2XzTGI/sGWKElAAKIv4asPsye4jA== + dependencies: + "@envelop/core" "^5.0.0" + "@envelop/extended-validation" "^4.0.0" + "@envelop/graphql-jit" "^8.0.0" + "@graphql-mesh/string-interpolation" "^0.5.2" + "@graphql-tools/batch-delegate" "^9.0.0" + "@graphql-tools/delegate" "^10.0.0" + "@graphql-tools/executor" "^1.2.0" + "@graphql-tools/wrap" "^10.0.0" + "@whatwg-node/fetch" "^0.9.0" + graphql-jit "0.8.2" + +"@graphql-mesh/store@^0.95.7": + version "0.95.7" + resolved "https://registry.yarnpkg.com/@graphql-mesh/store/-/store-0.95.7.tgz#fbff20229528e8a88d4481e0c86ea2d270a63c01" + integrity sha512-4T5MnkdV70gPzM3Hj+Er2Qg4FTzePzbzGdHdWRSbW++4K+05Hbe1gKPix2f3s3BGkAO4Et5XkkdILL5QynhQFw== + dependencies: + "@graphql-inspector/core" "5.0.1" + +"@graphql-mesh/string-interpolation@^0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@graphql-mesh/string-interpolation/-/string-interpolation-0.5.2.tgz#af89cd63b27e7c2c85e994872be2ed18eaad07e1" + integrity sha512-TkSAJ9pj1zesQyDlHrEUevVGOc1s/z9IQC0AONcpMHAunb8uYGO4Yryl8JIRIvDl5DlexHt3z8kLDNCInRGWNQ== + dependencies: + dayjs "1.11.10" json-pointer "0.6.2" lodash.get "4.4.2" -"@graphql-mesh/transform-type-merging@^0.93.0": - version "0.93.1" - resolved "https://registry.yarnpkg.com/@graphql-mesh/transform-type-merging/-/transform-type-merging-0.93.1.tgz#849103d2ad662b1169425e62493d63a83bdc6667" - integrity sha512-CUrqCMaEqO1LDusv59UPqmQju3f+LpEGxFu7CydMiIvbfKDDDrf8+dF3OVU7d/ZOMRxB6hR80JsQF0SVeXPCOQ== +"@graphql-mesh/types@^0.95.7": + version "0.95.7" + resolved "https://registry.yarnpkg.com/@graphql-mesh/types/-/types-0.95.7.tgz#24b2c07e1a8af40edc11a50c77f31c08f607e4e0" + integrity sha512-afM2uuGR//lBoDrQvyfDmCcPwObpouRauahKVrXGyxkWe9LuIBG+scBZcynSbKotO1SgFcbJtToafMAIk5CefQ== dependencies: - "@graphql-tools/delegate" "^9.0.32" - "@graphql-tools/stitching-directives" "^2.3.34" - -"@graphql-mesh/types@^0.93.1": - version "0.93.2" - resolved "https://registry.yarnpkg.com/@graphql-mesh/types/-/types-0.93.2.tgz#053a41567234af72bbc65acf4a2e88126132d9d3" - integrity sha512-113DuJzmR7aj2EMnLPu33ktCe5k7+Mk0BxFfmQViUH+mkr6i4JMsWvPKs9dTODSYuSuwvAZ90Vw2l3QyMrbFVA== - dependencies: - "@graphql-tools/batch-delegate" "^8.4.25" - "@graphql-tools/delegate" "^9.0.32" + "@graphql-tools/batch-delegate" "^9.0.0" + "@graphql-tools/delegate" "^10.0.0" "@graphql-typed-document-node/core" "^3.2.0" -"@graphql-mesh/utils@^0.93.1": - version "0.93.2" - resolved "https://registry.yarnpkg.com/@graphql-mesh/utils/-/utils-0.93.2.tgz#153b0f09f202c86160beba046c3eaeaceaa5c10d" - integrity sha512-U+VytfSoqPofH/pmYZHFY10SkIFtHKrvE7Isxv1d0DiweVjdH3Qtojw13DWFpu/EKtgJY5bqoVnlcsZJYlKQoA== +"@graphql-mesh/utils@^0.95.7": + version "0.95.7" + resolved "https://registry.yarnpkg.com/@graphql-mesh/utils/-/utils-0.95.7.tgz#471c835f2dc676cbeb231a68a2d695b87fe49b13" + integrity sha512-6YQTMTrLt6m/cAdesrBgbGVSrLd+68xTo1dRIhxUFHSgucSAqA47Q8E71Lc9cLHh80HQT+/pauKHHG40csy1Ng== dependencies: - "@graphql-mesh/string-interpolation" "^0.4.4" - "@graphql-tools/delegate" "^9.0.32" + "@graphql-mesh/string-interpolation" "^0.5.2" + "@graphql-tools/delegate" "^10.0.0" + "@whatwg-node/fetch" "^0.9.13" dset "^3.1.2" js-yaml "^4.1.0" lodash.get "^4.4.2" lodash.topath "^4.5.2" - tiny-lru "^8.0.2" + tiny-lru "^11.0.0" -"@graphql-tools/batch-delegate@^8.4.25", "@graphql-tools/batch-delegate@^8.4.27": - version "8.4.27" - resolved "https://registry.yarnpkg.com/@graphql-tools/batch-delegate/-/batch-delegate-8.4.27.tgz#af6fd26ba02ef03b6a3c63a106b47175188bbd97" - integrity sha512-efgDDJhljma9d3Ky/LswIu1xm/if2oS27XA1sOcxcShW+Ze+Qxi0hZZ6iyI4eQxVDX5Lyy/n+NvQEZAK1riqnQ== +"@graphql-tools/batch-delegate@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/batch-delegate/-/batch-delegate-9.0.0.tgz#dd9e87466f450bae61a20525a2a8d8b0d257df37" + integrity sha512-23NmxcHQeKcfhMQyrRPTZfW4/+bSpAyR/qAhRjx+/hikDIa1Uv2XVgV9jIitSgM0OEk/KGPB4VQv+LCOWvAYiw== dependencies: - "@graphql-tools/delegate" "^9.0.35" - "@graphql-tools/utils" "^9.2.1" + "@graphql-tools/delegate" "^10.0.0" + "@graphql-tools/utils" "^10.0.0" dataloader "2.2.2" tslib "^2.4.0" value-or-promise "^1.0.12" -"@graphql-tools/batch-execute@^8.5.19", "@graphql-tools/batch-execute@^8.5.22": - version "8.5.22" - resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.22.tgz#a742aa9d138fe794e786d8fb6429665dc7df5455" - integrity sha512-hcV1JaY6NJQFQEwCKrYhpfLK8frSXDbtNMoTur98u10Cmecy1zrqNKSqhEyGetpgHxaJRqszGzKeI3RuroDN6A== +"@graphql-tools/batch-execute@^9.0.1": + version "9.0.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-9.0.2.tgz#5ac3257501e7941fad40661bb5e1110d6312f58b" + integrity sha512-Y2uwdZI6ZnatopD/SYfZ1eGuQFI7OU2KGZ2/B/7G9ISmgMl5K+ZZWz/PfIEXeiHirIDhyk54s4uka5rj2xwKqQ== dependencies: - "@graphql-tools/utils" "^9.2.1" + "@graphql-tools/utils" "^10.0.5" dataloader "^2.2.2" tslib "^2.4.0" value-or-promise "^1.0.12" -"@graphql-tools/code-file-loader@^7.3.22": - version "7.3.23" - resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.23.tgz#33793f9a1f8e74981f8ae6ec4ab7061f9713db15" - integrity sha512-8Wt1rTtyTEs0p47uzsPJ1vAtfAx0jmxPifiNdmo9EOCuUPyQGEbMaik/YkqZ7QUFIEYEQu+Vgfo8tElwOPtx5Q== - dependencies: - "@graphql-tools/graphql-tag-pluck" "7.5.2" - "@graphql-tools/utils" "^9.2.1" - globby "^11.0.3" - tslib "^2.4.0" - unixify "^1.0.0" - -"@graphql-tools/delegate@^9.0.31", "@graphql-tools/delegate@^9.0.32", "@graphql-tools/delegate@^9.0.35": - version "9.0.35" - resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.35.tgz#94683f4bcec63520b4a6c8b2abf2e2e9324ea4f1" - integrity sha512-jwPu8NJbzRRMqi4Vp/5QX1vIUeUPpWmlQpOkXQD2r1X45YsVceyUUBnktCrlJlDB4jPRVy7JQGwmYo3KFiOBMA== +"@graphql-tools/delegate@^10.0.0", "@graphql-tools/delegate@^10.0.1", "@graphql-tools/delegate@^10.0.3": + version "10.0.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-10.0.3.tgz#2d0e133da94ca92c24e0c7360414e5592321cf2d" + integrity sha512-Jor9oazZ07zuWkykD3OOhT/2XD74Zm6Ar0ENZMk75MDD51wB2UWUIMljtHxbJhV5A6UBC2v8x6iY0xdCGiIlyw== dependencies: - "@graphql-tools/batch-execute" "^8.5.22" - "@graphql-tools/executor" "^0.0.20" - "@graphql-tools/schema" "^9.0.19" - "@graphql-tools/utils" "^9.2.1" + "@graphql-tools/batch-execute" "^9.0.1" + "@graphql-tools/executor" "^1.0.0" + "@graphql-tools/schema" "^10.0.0" + "@graphql-tools/utils" "^10.0.5" dataloader "^2.2.2" tslib "^2.5.0" - value-or-promise "^1.0.12" -"@graphql-tools/executor-graphql-ws@^0.0.14": - version "0.0.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.14.tgz#e0f53fc4cfc8a06cc461b2bc1edb4bb9a8e837ed" - integrity sha512-P2nlkAsPZKLIXImFhj0YTtny5NQVGSsKnhi7PzXiaHSXc6KkzqbWZHKvikD4PObanqg+7IO58rKFpGXP7eeO+w== +"@graphql-tools/executor-graphql-ws@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-1.1.0.tgz#7727159ebaa9df4dc793d0d02e74dd1ca4a7cc60" + integrity sha512-yM67SzwE8rYRpm4z4AuGtABlOp9mXXVy6sxXnTJRoYIdZrmDbKVfIY+CpZUJCqS0FX3xf2+GoHlsj7Qswaxgcg== dependencies: - "@graphql-tools/utils" "^9.2.1" - "@repeaterjs/repeater" "3.0.4" + "@graphql-tools/utils" "^10.0.2" "@types/ws" "^8.0.0" - graphql-ws "5.12.1" - isomorphic-ws "5.0.0" + graphql-ws "^5.14.0" + isomorphic-ws "^5.0.0" tslib "^2.4.0" - ws "8.13.0" + ws "^8.13.0" -"@graphql-tools/executor-http@^0.1.7": - version "0.1.10" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.1.10.tgz#faf48e18e62a925796c9653c2f50cf2095bc8e6f" - integrity sha512-hnAfbKv0/lb9s31LhWzawQ5hghBfHS+gYWtqxME6Rl0Aufq9GltiiLBcl7OVVOnkLF0KhwgbYP1mB5VKmgTGpg== +"@graphql-tools/executor-http@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-1.0.3.tgz#6ee9e43287ef86fd3588a5d4d2398604234d958d" + integrity sha512-5WZIMBevRaxMabZ8U2Ty0dTUPy/PpeYSlMNEmC/YJjKKykgSfc/AwSejx2sE4FFKZ0I2kxRKRenyoWMHRAV49Q== dependencies: - "@graphql-tools/utils" "^9.2.1" + "@graphql-tools/utils" "^10.0.2" "@repeaterjs/repeater" "^3.0.4" - "@whatwg-node/fetch" "^0.8.1" - dset "^3.1.2" + "@whatwg-node/fetch" "^0.9.0" extract-files "^11.0.0" meros "^1.2.1" tslib "^2.4.0" value-or-promise "^1.0.12" -"@graphql-tools/executor-legacy-ws@^0.0.11": - version "0.0.11" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.11.tgz#a1e12be8279e92a363a23d4105461a34cd9e389e" - integrity sha512-4ai+NnxlNfvIQ4c70hWFvOZlSUN8lt7yc+ZsrwtNFbFPH/EroIzFMapAxM9zwyv9bH38AdO3TQxZ5zNxgBdvUw== +"@graphql-tools/executor-legacy-ws@^1.0.0": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-1.0.4.tgz#27fcccba782daf605d4cf34ffa85a675f43c33f6" + integrity sha512-b7aGuRekZDS+m3af3BIvMKxu15bmVPMt5eGQVuP2v5pxmbaPTh+iv5mx9b3Plt32z5Ke5tycBnNm5urSFtW8ng== dependencies: - "@graphql-tools/utils" "^9.2.1" + "@graphql-tools/utils" "^10.0.0" "@types/ws" "^8.0.0" isomorphic-ws "5.0.0" tslib "^2.4.0" - ws "8.13.0" + ws "8.14.2" -"@graphql-tools/executor@^0.0.18": - version "0.0.18" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.18.tgz#5b9f881d59484ea55278de3b4743ece8d68bc6e7" - integrity sha512-xZC0C+/npXoSHBB5bsJdwxDLgtl1Gu4fL9J2TPQmXoZC3L2N506KJoppf9LgWdHU/xK04luJrhP6WjhfkIN0pQ== - dependencies: - "@graphql-tools/utils" "^9.2.1" - "@graphql-typed-document-node/core" "3.2.0" - "@repeaterjs/repeater" "3.0.4" - tslib "^2.4.0" - value-or-promise "1.0.12" - -"@graphql-tools/executor@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.20.tgz#d51d159696e839522dd49d936636af251670e425" - integrity sha512-GdvNc4vszmfeGvUqlcaH1FjBoguvMYzxAfT6tDd4/LgwymepHhinqLNA5otqwVLW+JETcDaK7xGENzFomuE6TA== +"@graphql-tools/executor@^1.0.0", "@graphql-tools/executor@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-1.2.0.tgz#6c45f4add765769d9820c4c4405b76957ba39c79" + integrity sha512-SKlIcMA71Dha5JnEWlw4XxcaJ+YupuXg0QCZgl2TOLFz4SkGCwU/geAsJvUJFwK2RbVLpQv/UMq67lOaBuwDtg== dependencies: - "@graphql-tools/utils" "^9.2.1" + "@graphql-tools/utils" "^10.0.0" "@graphql-typed-document-node/core" "3.2.0" "@repeaterjs/repeater" "^3.0.4" tslib "^2.4.0" value-or-promise "^1.0.12" -"@graphql-tools/graphql-file-loader@^7.5.17": - version "7.5.17" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.17.tgz#7c281617ea3ab4db4d42a2bdb49850f2b937f0f9" - integrity sha512-hVwwxPf41zOYgm4gdaZILCYnKB9Zap7Ys9OhY1hbwuAuC4MMNY9GpUjoTU3CQc3zUiPoYStyRtUGkHSJZ3HxBw== - dependencies: - "@graphql-tools/import" "6.7.18" - "@graphql-tools/utils" "^9.2.1" - globby "^11.0.3" - tslib "^2.4.0" - unixify "^1.0.0" - -"@graphql-tools/graphql-tag-pluck@7.5.2": - version "7.5.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.5.2.tgz#502f1e066e19d832ebdeba5f571d7636dc27572d" - integrity sha512-RW+H8FqOOLQw0BPXaahYepVSRjuOHw+7IL8Opaa5G5uYGOBxoXR7DceyQ7BcpMgktAOOmpDNQ2WtcboChOJSRA== - dependencies: - "@babel/parser" "^7.16.8" - "@babel/plugin-syntax-import-assertions" "^7.20.0" - "@babel/traverse" "^7.16.8" - "@babel/types" "^7.16.8" - "@graphql-tools/utils" "^9.2.1" - tslib "^2.4.0" - -"@graphql-tools/import@6.7.18": - version "6.7.18" - resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.7.18.tgz#ad092d8a4546bb6ffc3e871e499eec7ac368680b" - integrity sha512-XQDdyZTp+FYmT7as3xRWH/x8dx0QZA2WZqfMF5EWb36a0PiH7WwlRQYIdyYXj8YCLpiWkeBXgBRHmMnwEYR8iQ== - dependencies: - "@graphql-tools/utils" "^9.2.1" - resolve-from "5.0.0" - tslib "^2.4.0" - -"@graphql-tools/load@^7.8.14": - version "7.8.14" - resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.14.tgz#f2356f9a5f658a42e33934ae036e4b2cadf2d1e9" - integrity sha512-ASQvP+snHMYm+FhIaLxxFgVdRaM0vrN9wW2BKInQpktwWTXVyk+yP5nQUCEGmn0RTdlPKrffBaigxepkEAJPrg== - dependencies: - "@graphql-tools/schema" "^9.0.18" - "@graphql-tools/utils" "^9.2.1" - p-limit "3.1.0" - tslib "^2.4.0" - -"@graphql-tools/merge@^8.4.1", "@graphql-tools/merge@^8.4.2": - version "8.4.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.4.2.tgz#95778bbe26b635e8d2f60ce9856b388f11fe8288" - integrity sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw== - dependencies: - "@graphql-tools/utils" "^9.2.1" - tslib "^2.4.0" - -"@graphql-tools/optimize@^1.3.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@graphql-tools/optimize/-/optimize-1.4.0.tgz#20d6a9efa185ef8fc4af4fd409963e0907c6e112" - integrity sha512-dJs/2XvZp+wgHH8T5J2TqptT9/6uVzIYvA6uFACha+ufvdMBedkfR4b4GbT8jAKLRARiqRTxy3dctnwkTM2tdw== - dependencies: +"@graphql-tools/federation@^1.1.0": + version "1.1.10" + resolved "https://registry.yarnpkg.com/@graphql-tools/federation/-/federation-1.1.10.tgz#999f78d9790e9e8ce2607c9f8601d233c7916366" + integrity sha512-H51qTYwbtfIYBO1uHXlImRWzo9tknSoIGBgJckDh+hdxJx43sZaMjJiLHc2DjRc/A8d2Bf0bi0HbH++HqOos/w== + dependencies: + "@graphql-tools/delegate" "^10.0.1" + "@graphql-tools/executor-http" "^1.0.0" + "@graphql-tools/merge" "^9.0.0" + "@graphql-tools/schema" "^10.0.0" + "@graphql-tools/stitch" "^9.0.2" + "@graphql-tools/utils" "^10.0.0" + "@graphql-tools/wrap" "^10.0.0" tslib "^2.4.0" + value-or-promise "^1.0.12" + optionalDependencies: + "@apollo/client" "~3.2.5 || ~3.3.0 || ~3.4.0 || ~3.5.0 || ~3.6.0 || ~3.7.0 || ~3.8.0" -"@graphql-tools/relay-operation-optimizer@^6.5.0": - version "6.5.18" - resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.18.tgz#a1b74a8e0a5d0c795b8a4d19629b654cf66aa5ab" - integrity sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg== +"@graphql-tools/merge@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-9.0.0.tgz#b0a3636c82716454bff88e9bb40108b0471db281" + integrity sha512-J7/xqjkGTTwOJmaJQJ2C+VDBDOWJL3lKrHJN4yMaRLAJH3PosB7GiPRaSDZdErs0+F77sH2MKs2haMMkywzx7Q== dependencies: - "@ardatan/relay-compiler" "12.0.0" - "@graphql-tools/utils" "^9.2.1" + "@graphql-tools/utils" "^10.0.0" tslib "^2.4.0" -"@graphql-tools/schema@9.0.19", "@graphql-tools/schema@^9.0.0", "@graphql-tools/schema@^9.0.18", "@graphql-tools/schema@^9.0.19": - version "9.0.19" - resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.19.tgz#c4ad373b5e1b8a0cf365163435b7d236ebdd06e7" - integrity sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w== +"@graphql-tools/schema@10.0.0", "@graphql-tools/schema@^10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-10.0.0.tgz#7b5f6b6a59f51c927de8c9069bde4ebbfefc64b3" + integrity sha512-kf3qOXMFcMs2f/S8Y3A8fm/2w+GaHAkfr3Gnhh2LOug/JgpY/ywgFVxO3jOeSpSEdoYcDKLcXVjMigNbY4AdQg== dependencies: - "@graphql-tools/merge" "^8.4.1" - "@graphql-tools/utils" "^9.2.1" + "@graphql-tools/merge" "^9.0.0" + "@graphql-tools/utils" "^10.0.0" tslib "^2.4.0" value-or-promise "^1.0.12" -"@graphql-tools/stitch@^8.7.48": - version "8.7.50" - resolved "https://registry.yarnpkg.com/@graphql-tools/stitch/-/stitch-8.7.50.tgz#bcadf4b0dd20e22fb568042e94d711750c10f122" - integrity sha512-VB1/uZyXjj1P5Wj0c4EKX3q8Q1Maj4dy6uNwodEPaO3EHMpaJU/DqyN0Bvnhxu0ol7RzdY3kgsvsdUjU2QMImw== - dependencies: - "@graphql-tools/batch-delegate" "^8.4.27" - "@graphql-tools/delegate" "^9.0.35" - "@graphql-tools/executor" "^0.0.20" - "@graphql-tools/merge" "^8.4.2" - "@graphql-tools/schema" "^9.0.18" - "@graphql-tools/utils" "^9.2.1" - "@graphql-tools/wrap" "^9.4.2" +"@graphql-tools/stitch@^9.0.0", "@graphql-tools/stitch@^9.0.2": + version "9.0.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/stitch/-/stitch-9.0.3.tgz#6164333ecf3317d9a5e1a7e5567ae37ca936a8ac" + integrity sha512-G03XahiHDu1pnaS8z2GNfsV/5BribMEUATT5dCHBAqj13Te5y1amZNQePrmw8DLtbf5qDbU6CO7kGHPxv0XO9A== + dependencies: + "@graphql-tools/batch-delegate" "^9.0.0" + "@graphql-tools/delegate" "^10.0.1" + "@graphql-tools/executor" "^1.0.0" + "@graphql-tools/merge" "^9.0.0" + "@graphql-tools/schema" "^10.0.0" + "@graphql-tools/utils" "^10.0.0" + "@graphql-tools/wrap" "^10.0.0" tslib "^2.4.0" value-or-promise "^1.0.11" -"@graphql-tools/stitching-directives@^2.3.34": - version "2.3.34" - resolved "https://registry.yarnpkg.com/@graphql-tools/stitching-directives/-/stitching-directives-2.3.34.tgz#b0fc9e71843e8b1729e253f54117321c445ba0bc" - integrity sha512-DVlo1/SW9jN6jN1IL279c7voEJiEHsLbYRD7tYsAW472zrHqn0rpB6jRzZDzLOlCpm7JRWPsegXVlkqf0qvqFQ== - dependencies: - "@graphql-tools/delegate" "^9.0.31" - "@graphql-tools/utils" "^9.2.1" - tslib "^2.4.0" - -"@graphql-tools/url-loader@^7.17.18": - version "7.17.18" - resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.17.18.tgz#3e253594d23483e4c0dd3a4c3dd2ad5cd0141192" - integrity sha512-ear0CiyTj04jCVAxi7TvgbnGDIN2HgqzXzwsfcqiVg9cvjT40NcMlZ2P1lZDgqMkZ9oyLTV8Bw6j+SyG6A+xPw== +"@graphql-tools/url-loader@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-8.0.0.tgz#8d952d5ebb7325e587cb914aaebded3dbd078cf6" + integrity sha512-rPc9oDzMnycvz+X+wrN3PLrhMBQkG4+sd8EzaFN6dypcssiefgWKToXtRKI8HHK68n2xEq1PyrOpkjHFJB+GwA== dependencies: "@ardatan/sync-fetch" "^0.0.1" - "@graphql-tools/delegate" "^9.0.31" - "@graphql-tools/executor-graphql-ws" "^0.0.14" - "@graphql-tools/executor-http" "^0.1.7" - "@graphql-tools/executor-legacy-ws" "^0.0.11" - "@graphql-tools/utils" "^9.2.1" - "@graphql-tools/wrap" "^9.4.2" + "@graphql-tools/delegate" "^10.0.0" + "@graphql-tools/executor-graphql-ws" "^1.0.0" + "@graphql-tools/executor-http" "^1.0.0" + "@graphql-tools/executor-legacy-ws" "^1.0.0" + "@graphql-tools/utils" "^10.0.0" + "@graphql-tools/wrap" "^10.0.0" "@types/ws" "^8.0.0" - "@whatwg-node/fetch" "^0.8.0" + "@whatwg-node/fetch" "^0.9.0" isomorphic-ws "^5.0.0" tslib "^2.4.0" value-or-promise "^1.0.11" ws "^8.12.0" -"@graphql-tools/utils@^8.8.0": - version "8.13.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.13.1.tgz#b247607e400365c2cd87ff54654d4ad25a7ac491" - integrity sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw== - dependencies: - tslib "^2.4.0" - -"@graphql-tools/utils@^9.0.0", "@graphql-tools/utils@^9.1.1", "@graphql-tools/utils@^9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.1.tgz#1b3df0ef166cfa3eae706e3518b17d5922721c57" - integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A== +"@graphql-tools/utils@^10.0.0", "@graphql-tools/utils@^10.0.2", "@graphql-tools/utils@^10.0.5": + version "10.0.7" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-10.0.7.tgz#ed88968b5ce53dabacbdd185df967aaab35f8549" + integrity sha512-KOdeMj6Hd/MENDaqPbws3YJl3wVy0DeYnL7PyUms5Skyf7uzI9INynDwPMhLXfSb0/ph6BXTwMd5zBtWbF8tBQ== dependencies: "@graphql-typed-document-node/core" "^3.1.1" + dset "^3.1.2" tslib "^2.4.0" -"@graphql-tools/wrap@^9.4.2": - version "9.4.2" - resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.4.2.tgz#30835587c4c73be1780908a7cb077d8013aa2703" - integrity sha512-DFcd9r51lmcEKn0JW43CWkkI2D6T9XI1juW/Yo86i04v43O9w2/k4/nx2XTJv4Yv+iXwUw7Ok81PGltwGJSDSA== +"@graphql-tools/wrap@^10.0.0": + version "10.0.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-10.0.1.tgz#9e3d27d2723962c26c4377d5d7ab0d3038bf728c" + integrity sha512-Cw6hVrKGM2OKBXeuAGltgy4tzuqQE0Nt7t/uAqnuokSXZhMHXJUb124Bnvxc2gPZn5chfJSDafDe4Cp8ZAVJgg== dependencies: - "@graphql-tools/delegate" "^9.0.31" - "@graphql-tools/schema" "^9.0.18" - "@graphql-tools/utils" "^9.2.1" + "@graphql-tools/delegate" "^10.0.3" + "@graphql-tools/schema" "^10.0.0" + "@graphql-tools/utils" "^10.0.0" tslib "^2.4.0" value-or-promise "^1.0.12" @@ -2859,30 +2291,30 @@ resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== -"@graphql-yoga/logger@^0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@graphql-yoga/logger/-/logger-0.0.1.tgz#48504fa6ecaee487d9df00fd44c28e356635a324" - integrity sha512-6npFz7eZz33mXgSm1waBLMjUNG0D5hTc/p5Hcs1mojkT3KsLpCOFokzTEKboNsBhKevYcaVa/xeA7WBj4UYMLg== +"@graphql-yoga/logger@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@graphql-yoga/logger/-/logger-2.0.0.tgz#51c91cf07fc42b0d100d887315a20a4c9cac342e" + integrity sha512-Mg8psdkAp+YTG1OGmvU+xa6xpsAmSir0hhr3yFYPyLNwzUj95DdIwsMpKadDj9xDpYgJcH3Hp/4JMal9DhQimA== dependencies: - tslib "^2.3.1" + tslib "^2.5.2" -"@graphql-yoga/subscription@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@graphql-yoga/subscription/-/subscription-3.1.0.tgz#4a0bb0b9db2602d02c68f9828603e1e40329140b" - integrity sha512-Vc9lh8KzIHyS3n4jBlCbz7zCjcbtQnOBpsymcRvHhFr2cuH+knmRn0EmzimMQ58jQ8kxoRXXC3KJS3RIxSdPIg== +"@graphql-yoga/subscription@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@graphql-yoga/subscription/-/subscription-5.0.0.tgz#c0aedd3f7c0c0564a2fe687e9f45c16f70bdffc5" + integrity sha512-Ri7sK8hmxd/kwaEa0YT8uqQUb2wOLsmBMxI90QDyf96lzOMJRgBuNYoEkU1pSgsgmW2glceZ96sRYfaXqwVxUw== dependencies: - "@graphql-yoga/typed-event-target" "^1.0.0" + "@graphql-yoga/typed-event-target" "^3.0.0" "@repeaterjs/repeater" "^3.0.4" - "@whatwg-node/events" "0.0.2" - tslib "^2.3.1" + "@whatwg-node/events" "^0.1.0" + tslib "^2.5.2" -"@graphql-yoga/typed-event-target@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@graphql-yoga/typed-event-target/-/typed-event-target-1.0.0.tgz#dae3c0146f08a4dc30b5b890f8bab706c2b62199" - integrity sha512-Mqni6AEvl3VbpMtKw+TIjc9qS9a8hKhiAjFtqX488yq5oJtj9TkNlFTIacAVS3vnPiswNsmDiQqvwUOcJgi1DA== +"@graphql-yoga/typed-event-target@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@graphql-yoga/typed-event-target/-/typed-event-target-3.0.0.tgz#57dc42e052d8294555d26ee61854d72a0236fee0" + integrity sha512-w+liuBySifrstuHbFrHoHAEyVnDFVib+073q8AeAJ/qqJfvFvAwUPLLtNohR/WDVRgSasfXtl3dcNuVJWN+rjg== dependencies: "@repeaterjs/repeater" "^3.0.4" - tslib "^2.3.1" + tslib "^2.5.2" "@humanwhocodes/config-array@^0.11.10": version "0.11.10" @@ -2903,22 +2335,33 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@hypercerts-org/contracts@0.8.7": - version "0.8.7" - resolved "https://registry.yarnpkg.com/@hypercerts-org/contracts/-/contracts-0.8.7.tgz#208e19021a9b2b9977689e9fd6c97a2abc268714" - integrity sha512-vs4sC51cZT2t5/TOQh57Wqx9oofRFX3tLkAQbQ6737uqxFIKKZWAb3vgbSEHrch7gSxJMPIht4AxKqI/nbjzUg== +"@hypercerts-org/contracts@0.8.11": + version "0.8.11" + resolved "https://registry.yarnpkg.com/@hypercerts-org/contracts/-/contracts-0.8.11.tgz#e8e5f9277f54b5d38c0a79ea9ba3ba5e051a38d0" + integrity sha512-n6fwMsaoR50VITM2upR4OOi4EZJmZvU6vvXrHWCSakP9e1OeDuAOk+kHiK+egqDRYj6uKtg9VTUFKZBYvu3jRg== -"@hypercerts-org/sdk@0.8.8": - version "0.8.8" - resolved "https://registry.yarnpkg.com/@hypercerts-org/sdk/-/sdk-0.8.8.tgz#88d67ae00287723b4c4079e51ac50cffc923491b" - integrity sha512-IvezK/sywmTkG/Ped7UP5Kc+c2dR8GjF6r9OjQkasfFstjgvdJRReAcbCsiQul1V/Yc2SvE4uZfNilURoOn+Fw== +"@hypercerts-org/sdk@^0.8.16": + version "0.8.16" + resolved "https://registry.yarnpkg.com/@hypercerts-org/sdk/-/sdk-0.8.16.tgz#3772afa93f92f706492b0152b33260519a30fbbf" + integrity sha512-WkxYb5RYhv3QI7+N5y4xg5IL4azLqCq4ia1/bgFB55vWJLjnmoMj3VYbiybMxyfgnPfh5O8n2DU86u8ClLgyhg== dependencies: "@ethereum-attestation-service/eas-sdk" "^0.28.3" "@ethersproject/abstract-signer" "^5.7.0" "@graphprotocol/client-add-source-name" "^1.0.16" - "@graphprotocol/client-cli" "^2.2.15" - "@hypercerts-org/contracts" "0.8.7" + "@graphprotocol/client-polling-live" "^2.0.0" + "@graphql-mesh/cache-localforage" "^0.95.7" + "@graphql-mesh/cross-helpers" "^0.4.1" + "@graphql-mesh/graphql" "^0.95.7" + "@graphql-mesh/http" "^0.96.13" + "@graphql-mesh/merger-bare" "^0.95.7" + "@graphql-mesh/runtime" "^0.96.12" + "@graphql-mesh/store" "^0.95.7" + "@graphql-mesh/types" "^0.95.7" + "@graphql-mesh/utils" "^0.95.7" + "@graphql-typed-document-node/core" "^3.2.0" + "@hypercerts-org/contracts" "0.8.11" "@openzeppelin/merkle-tree" "^1.0.4" + "@whatwg-node/fetch" "^0.9.13" ajv "^8.11.2" axios "^1.2.2" dotenv "^16.0.3" @@ -3033,18 +2476,6 @@ dependencies: multiformats "^11.0.0" -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -3262,7 +2693,7 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": +"@jridgewell/resolve-uri@^3.1.0": version "3.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== @@ -3277,14 +2708,6 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": version "0.3.19" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" @@ -4552,38 +3975,6 @@ "@ethersproject/abi" "^5.7.0" ethereum-cryptography "^1.1.2" -"@peculiar/asn1-schema@^2.3.6": - version "2.3.6" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz#3dd3c2ade7f702a9a94dfb395c192f5fa5d6b922" - integrity sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA== - dependencies: - asn1js "^3.0.5" - pvtsutils "^1.3.2" - tslib "^2.4.0" - -"@peculiar/json-schema@^1.1.12": - version "1.1.12" - resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" - integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== - dependencies: - tslib "^2.0.0" - -"@peculiar/webcrypto@^1.4.0": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz#078b3e8f598e847b78683dc3ba65feb5029b93a7" - integrity sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A== - dependencies: - "@peculiar/asn1-schema" "^2.3.6" - "@peculiar/json-schema" "^1.1.12" - pvtsutils "^1.3.2" - tslib "^2.5.0" - webcrypto-core "^1.7.7" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - "@plasmicapp/auth-api@0.0.5": version "0.0.5" resolved "https://registry.yarnpkg.com/@plasmicapp/auth-api/-/auth-api-0.0.5.tgz#8936eb8cd2c5e8d5bdfb8bc04da050fc635cb1de" @@ -5329,7 +4720,7 @@ "@react-types/checkbox" "^3.5.0" "@react-types/shared" "^3.19.0" -"@repeaterjs/repeater@3.0.4", "@repeaterjs/repeater@^3.0.4": +"@repeaterjs/repeater@^3.0.4": version "3.0.4" resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.0.4.tgz#a04d63f4d1bf5540a41b01a921c9a7fddc3bd1ca" integrity sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA== @@ -5776,26 +5167,6 @@ "@tanstack/query-core" "4.33.0" use-sync-external-store "^1.2.0" -"@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - "@typechain/ethers-v5@^10.2.0": version "10.2.1" resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz#50241e6957683281ecfa03fb5a6724d8a3ce2391" @@ -6120,16 +5491,18 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/json-schema@^7.0.9": - version "7.0.12" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" - integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== - "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== +"@types/jsonwebtoken@^9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.4.tgz#8b74bbe87bde81a3469d4b32a80609bec62c23ec" + integrity sha512-8UYapdmR0QlxgvJmyE8lP7guxD0UGVMfknsdtCFZh4ovShdBl3iOI4zdvqBHrB/IS+xUj3PSx73Qkey1fhWz+g== + dependencies: + "@types/node" "*" + "@types/lodash.mergewith@4.6.7": version "4.6.7" resolved "https://registry.yarnpkg.com/@types/lodash.mergewith/-/lodash.mergewith-4.6.7.tgz#eaa65aa5872abdd282f271eae447b115b2757212" @@ -6239,6 +5612,13 @@ dependencies: "@types/react" "*" +"@types/react-transition-group@^4.4.0": + version "4.4.8" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.8.tgz#46f87d80512959cac793ecc610a93d80ef241ccf" + integrity sha512-QmQ22q+Pb+HQSn04NL3HtrqHwYMf4h3QKArOy5F8U5nEVMaihBs3SR10WiOM1iwPz5jIo8x/u11al+iEGZZrvg== + dependencies: + "@types/react" "*" + "@types/react@*", "@types/react@18.2.21": version "18.2.21" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.21.tgz#774c37fd01b522d0b91aed04811b58e4e0514ed9" @@ -6842,54 +6222,59 @@ resolved "https://registry.yarnpkg.com/@web3-storage/parse-link-header/-/parse-link-header-3.1.0.tgz#4562724987649dd6d3e07c87be1826804d212ef7" integrity sha512-K1undnK70vLLauqdE8bq/l98isTF2FDhcP0UPpXVSjkSWe3xhAn5eRXk5jfA1E5ycNm84Ws/rQFUD7ue11nciw== -"@whatwg-node/cookie-store@^0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@whatwg-node/cookie-store/-/cookie-store-0.0.1.tgz#1893f861706f35c5d0475d85f3793f9f568e4fd6" - integrity sha512-uoti8QU5xd+X+9PULOGpPpOqPDdwkz+ukMc4kyQG1GwXeKVGktr4FSllr6dBotjOjNVPSBPpmj5V6zrUdDcLaw== - dependencies: - "@whatwg-node/events" "^0.0.3" - tslib "^2.3.1" - -"@whatwg-node/events@0.0.2": - version "0.0.2" - resolved "https://registry.yarnpkg.com/@whatwg-node/events/-/events-0.0.2.tgz#7b7107268d2982fc7b7aff5ee6803c64018f84dd" - integrity sha512-WKj/lI4QjnLuPrim0cfO7i+HsDSXHxNv1y0CrJhdntuO3hxWZmnXCwNDnwOvry11OjRin6cgWNF+j/9Pn8TN4w== - -"@whatwg-node/events@^0.0.3": - version "0.0.3" - resolved "https://registry.yarnpkg.com/@whatwg-node/events/-/events-0.0.3.tgz#13a65dd4f5893f55280f766e29ae48074927acad" - integrity sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA== +"@whatwg-node/events@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@whatwg-node/events/-/events-0.1.1.tgz#0ca718508249419587e130da26d40e29d99b5356" + integrity sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w== -"@whatwg-node/fetch@^0.8.0", "@whatwg-node/fetch@^0.8.1", "@whatwg-node/fetch@^0.8.2", "@whatwg-node/fetch@^0.8.3", "@whatwg-node/fetch@^0.8.4": - version "0.8.8" - resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.8.8.tgz#48c6ad0c6b7951a73e812f09dd22d75e9fa18cae" - integrity sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg== +"@whatwg-node/fetch@^0.9.0", "@whatwg-node/fetch@^0.9.10", "@whatwg-node/fetch@^0.9.13", "@whatwg-node/fetch@^0.9.7": + version "0.9.13" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.9.13.tgz#1d084cd546b9cd425ae89cbb1252a3e47a9a2e1c" + integrity sha512-PPtMwhjtS96XROnSpowCQM85gCUG2m7AXZFw0PZlGbhzx2GK7f2iOXilfgIJ0uSlCuuGbOIzfouISkA7C4FJOw== dependencies: - "@peculiar/webcrypto" "^1.4.0" - "@whatwg-node/node-fetch" "^0.3.6" - busboy "^1.6.0" - urlpattern-polyfill "^8.0.0" - web-streams-polyfill "^3.2.1" + "@whatwg-node/node-fetch" "^0.4.17" + urlpattern-polyfill "^9.0.0" -"@whatwg-node/node-fetch@^0.3.6": - version "0.3.6" - resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.3.6.tgz#e28816955f359916e2d830b68a64493124faa6d0" - integrity sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA== +"@whatwg-node/node-fetch@^0.4.17": + version "0.4.19" + resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.4.19.tgz#29c72ff65a8e450949238612ff17a3d3717736d3" + integrity sha512-AW7/m2AuweAoSXmESrYQr/KBafueScNbn2iNO0u6xFr2JZdPmYsSm5yvAXYk6yDLv+eDmSSKrf7JnFZ0CsJIdA== dependencies: - "@whatwg-node/events" "^0.0.3" + "@whatwg-node/events" "^0.1.0" busboy "^1.6.0" fast-querystring "^1.1.1" fast-url-parser "^1.1.3" tslib "^2.3.1" -"@whatwg-node/server@^0.7.3", "@whatwg-node/server@^0.7.4": - version "0.7.7" - resolved "https://registry.yarnpkg.com/@whatwg-node/server/-/server-0.7.7.tgz#daaae73999cf8ea4d4f7e617276dcb8e84a6e49e" - integrity sha512-aHURgNDFm/48WVV3vhTMfnEKCYwYgdaRdRhZsQZx4UVFjGGkGay7Ys0+AYu9QT/jpoImv2oONkstoTMUprDofg== +"@whatwg-node/server@^0.9.0", "@whatwg-node/server@^0.9.1": + version "0.9.16" + resolved "https://registry.yarnpkg.com/@whatwg-node/server/-/server-0.9.16.tgz#96789f68d3214a50c437480a4d237e91ab81ea34" + integrity sha512-gktQkRyONEw2EGpx7UZaC6zNlUm21CGlqAHQXU3QC6W0zlLM5ZQNDCeD66q/nsPHDV08X2NTHlABsuAEk5rh/w== dependencies: - "@whatwg-node/fetch" "^0.8.3" + "@whatwg-node/fetch" "^0.9.10" tslib "^2.3.1" +"@wry/context@^0.7.0", "@wry/context@^0.7.3": + version "0.7.4" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.4.tgz#e32d750fa075955c4ab2cfb8c48095e1d42d5990" + integrity sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ== + dependencies: + tslib "^2.3.0" + +"@wry/equality@^0.5.6": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.7.tgz#72ec1a73760943d439d56b7b1e9985aec5d497bb" + integrity sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw== + dependencies: + tslib "^2.3.0" + +"@wry/trie@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.4.3.tgz#077d52c22365871bf3ffcbab8e95cb8bc5689af4" + integrity sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w== + dependencies: + tslib "^2.3.0" + "@zag-js/dom-query@0.10.5": version "0.10.5" resolved "https://registry.yarnpkg.com/@zag-js/dom-query/-/dom-query-0.10.5.tgz#9fc02a51383989667694d8747925e6d20294af9e" @@ -6971,12 +6356,7 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^8.4.1, acorn@^8.9.0: +acorn@^8.9.0: version "8.10.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== @@ -7030,14 +6410,7 @@ ahocorasick@1.0.2: resolved "https://registry.yarnpkg.com/ahocorasick/-/ahocorasick-1.0.2.tgz#9eee93aef9d02bfb476d9b648d9b7a40ef2fd500" integrity sha512-hCOfMzbFx5IDutmWLAt6MZwOUjIfSM9G9FyVxytmE4Rs/5YDPWQrD/+IR1w+FweD9H2oOZEnv36TmkjhNURBVA== -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== - dependencies: - ajv "^8.0.0" - -ajv@^6.12.4: +ajv@^6.11.0, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -7047,7 +6420,7 @@ ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.11.2, ajv@^8.12.0: +ajv@^8.11.2: version "8.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -7079,11 +6452,6 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -7103,11 +6471,6 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - antd@^5.7.3: version "5.8.6" resolved "https://registry.yarnpkg.com/antd/-/antd-5.8.6.tgz#48af8d4221098dbd1faa5e56f0a1344741e2a3dc" @@ -7188,11 +6551,6 @@ anymatch@^3.0.3, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -7322,20 +6680,6 @@ arrify@^1.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== -asap@^2.0.6, asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== - -asn1js@^3.0.1, asn1js@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" - integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== - dependencies: - pvtsutils "^1.3.2" - pvutils "^1.1.3" - tslib "^2.4.0" - ast-types-flow@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" @@ -7375,11 +6719,6 @@ atomic-sleep@^1.0.0: resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== -auto-bind@~4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-4.0.0.tgz#e3589fc6c2da8f7ca43ba9f84fa52a744fc997fb" - integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ== - available-typed-arrays@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" @@ -7449,11 +6788,6 @@ babel-plugin-macros@^3.1.0: cosmiconfig "^7.0.0" resolve "^1.19.0" -babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: - version "7.0.0-beta.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" - integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== - babel-preset-current-node-syntax@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" @@ -7472,39 +6806,6 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-fbjs@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" - integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== - dependencies: - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-syntax-class-properties" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-block-scoped-functions" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-for-of" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-member-expression-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-object-super" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-property-literals" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" - babel-preset-jest@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" @@ -7518,11 +6819,6 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base-64@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb" - integrity sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA== - base-x@^3.0.2: version "3.0.9" resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" @@ -7772,6 +7068,11 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -7829,14 +7130,6 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camel-case@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" - integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== - dependencies: - pascal-case "^3.1.2" - tslib "^2.0.3" - camelcase-keys@^6.2.2: version "6.2.2" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" @@ -7866,15 +7159,6 @@ caniuse-lite@^1.0.30001517: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001525.tgz#d2e8fdec6116ffa36284ca2c33ef6d53612fe1c8" integrity sha512-/3z+wB4icFt3r0USMwxujAqRvaD/B7rvGTsKhbhSQErVrJvkZCLhgNLJxU8MevahQVH6hCU9FsHdNUFbiwmE7Q== -capital-case@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" - integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - upper-case-first "^2.0.2" - carbites@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/carbites/-/carbites-1.0.6.tgz#0eac206c87b60e09b758a4e820af000dda4f8dd1" @@ -7922,56 +7206,6 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: ansi-styles "^4.1.0" supports-color "^7.1.0" -change-case-all@1.0.14: - version "1.0.14" - resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.14.tgz#bac04da08ad143278d0ac3dda7eccd39280bfba1" - integrity sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA== - dependencies: - change-case "^4.1.2" - is-lower-case "^2.0.2" - is-upper-case "^2.0.2" - lower-case "^2.0.2" - lower-case-first "^2.0.2" - sponge-case "^1.0.1" - swap-case "^2.0.2" - title-case "^3.0.3" - upper-case "^2.0.2" - upper-case-first "^2.0.2" - -change-case-all@1.0.15: - version "1.0.15" - resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.15.tgz#de29393167fc101d646cd76b0ef23e27d09756ad" - integrity sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ== - dependencies: - change-case "^4.1.2" - is-lower-case "^2.0.2" - is-upper-case "^2.0.2" - lower-case "^2.0.2" - lower-case-first "^2.0.2" - sponge-case "^1.0.1" - swap-case "^2.0.2" - title-case "^3.0.3" - upper-case "^2.0.2" - upper-case-first "^2.0.2" - -change-case@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" - integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== - dependencies: - camel-case "^4.1.2" - capital-case "^1.0.4" - constant-case "^3.0.4" - dot-case "^3.0.4" - header-case "^2.0.4" - no-case "^3.0.4" - param-case "^3.0.4" - pascal-case "^3.1.2" - path-case "^3.0.4" - sentence-case "^3.0.4" - snake-case "^3.0.4" - tslib "^2.0.3" - char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" @@ -8184,11 +7418,6 @@ commander@^2.20.3: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -common-tags@1.8.2: - version "1.8.2" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" - integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== - compute-scroll-into-view@1.0.20: version "1.0.20" resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43" @@ -8204,15 +7433,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -constant-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" - integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - upper-case "^2.0.2" - constate@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/constate/-/constate-3.3.2.tgz#a6cd2f3c203da2cb863f47d22a330b833936c449" @@ -8258,16 +7478,6 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" -cosmiconfig@^8.1.3: - version "8.3.2" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.2.tgz#020213ad7387482a1f3fdd5c77c300ed2c72e162" - integrity sha512-/PvU3MjSLVKJMRHsL6GW+wHQ9RaJuMW6fnn56sXNy+kP1L8nI/SHk9F9giIA+dnfzjKNJAulRjOR/fi9kzGuNA== - dependencies: - import-fresh "^3.3.0" - js-yaml "^4.1.0" - parse-json "^5.2.0" - path-type "^4.0.0" - crc-32@^1.2.0: version "1.2.2" resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" @@ -8296,11 +7506,6 @@ create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - cross-fetch@^3.1.4, cross-fetch@^3.1.5: version "3.1.8" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" @@ -8308,7 +7513,7 @@ cross-fetch@^3.1.4, cross-fetch@^3.1.5: dependencies: node-fetch "^2.6.12" -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -8679,10 +7884,10 @@ datastore-pubsub@^6.0.0: interface-datastore "^7.0.0" uint8arrays "^4.0.2" -dayjs@1.11.7: - version "1.11.7" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" - integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== +dayjs@1.11.10: + version "1.11.10" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" + integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== dayjs@^1.11.1: version "1.11.9" @@ -8800,7 +8005,7 @@ depd@2.0.0: resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -dependency-graph@0.11.0, dependency-graph@^0.11.0: +dependency-graph@0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27" integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== @@ -8835,11 +8040,6 @@ diff@5.0.0: resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - dijkstrajs@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz#4c8dbdea1f0f6478bff94d9c49c784d623e4fc23" @@ -8883,14 +8083,6 @@ dns-packet@^5.2.2: dependencies: "@leichtgewicht/ip-codec" "^2.0.1" -dnscache@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/dnscache/-/dnscache-1.0.2.tgz#fd3c24d66c141625f594c77be7a8dafee2a66c8a" - integrity sha512-2FFKzmLGOnD+Y378bRKH+gTjRMuSpH7OKgPy31KjjfCoKZx7tU8Dmqfd/3fhG2d/4bppuN8/KtWMUZBAcUCRnQ== - dependencies: - asap "^2.0.6" - lodash.clone "^4.5.0" - doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -8910,13 +8102,13 @@ dom-align@^1.7.0: resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.12.4.tgz#3503992eb2a7cfcb2ed3b2a6d21e0b9c00d54511" integrity sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw== -dot-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" - integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== +dom-helpers@^5.0.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== dependencies: - no-case "^3.0.4" - tslib "^2.0.3" + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" dotenv@^16.0.3: version "16.3.1" @@ -8938,10 +8130,12 @@ duplexify@^4.1.2: readable-stream "^3.1.1" stream-shift "^1.0.0" -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" electron-fetch@^1.7.2: version "1.9.1" @@ -9680,6 +8874,15 @@ fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== +fast-json-stringify@^1.21.0: + version "1.21.0" + resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-1.21.0.tgz#51bc8c6d77d8c7b2cc7e5fa754f7f909f9e1262f" + integrity sha512-xY6gyjmHN3AK1Y15BCbMpeO9+dea5ePVsp3BouHCdukcx0hOHbXwFhRodhcI0NpZIgDChSeAKkHW9YjKvhwKBA== + dependencies: + ajv "^6.11.0" + deepmerge "^4.2.2" + string-similarity "^4.0.1" + fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" @@ -9738,24 +8941,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fbjs-css-vars@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" - integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== - -fbjs@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.5.tgz#aa0edb7d5caa6340011790bd9249dbef8a81128d" - integrity sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg== - dependencies: - cross-fetch "^3.1.5" - fbjs-css-vars "^1.0.0" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^1.0.35" - fetch-blob@^3.1.2, fetch-blob@^3.1.4: version "3.2.0" resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" @@ -9764,24 +8949,6 @@ fetch-blob@^3.1.2, fetch-blob@^3.1.4: node-domexception "^1.0.0" web-streams-polyfill "^3.0.3" -fets@^0.1.1: - version "0.1.5" - resolved "https://registry.yarnpkg.com/fets/-/fets-0.1.5.tgz#da509e868d2b51fee534f7c7100586e5802eee54" - integrity sha512-mL/ya591WOgCP1yBBPbp8E37nynj8QQF6iQCUVl0aHDL80BZ9SOL4BcKBy0dnKdC+clnnAkMm05KB9hsj4m4jQ== - dependencies: - "@ardatan/fast-json-stringify" "^0.0.6" - "@whatwg-node/cookie-store" "^0.0.1" - "@whatwg-node/fetch" "^0.8.2" - "@whatwg-node/server" "^0.7.4" - ajv "^8.12.0" - ajv-formats "^2.1.1" - hotscript "^1.0.11" - json-schema-to-ts "^2.7.2" - openapi-types "^12.1.0" - tslib "^2.3.1" - zod "^3.21.4" - zod-to-json-schema "^3.20.5" - file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -9899,14 +9066,6 @@ foreach@^2.0.4: resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.6.tgz#87bcc8a1a0e74000ff2bf9802110708cfb02eb6e" integrity sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg== -foreground-child@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" - integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^4.0.1" - form-data@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -10026,6 +9185,13 @@ functions-have-names@^1.2.2, functions-have-names@^1.2.3: resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== +generate-function@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" + integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ== + dependencies: + is-property "^1.0.2" + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -10129,18 +9295,7 @@ glob@7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^10.2.5: - version "10.3.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.4.tgz#c85c9c7ab98669102b6defda76d35c5b1ef9766f" - integrity sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ== - dependencies: - foreground-child "^3.1.0" - jackspeak "^2.0.3" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" - -glob@^7.1.1, glob@^7.1.3, glob@^7.1.4: +glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -10171,7 +9326,7 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" -globby@^11.0.3, globby@^11.1.0: +globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -10200,45 +9355,47 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -graphql-import-node@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/graphql-import-node/-/graphql-import-node-0.0.5.tgz#caf76a6cece10858b14f27cce935655398fc1bf0" - integrity sha512-OXbou9fqh9/Lm7vwXT0XoRN9J5+WCYKnbiTalgFDvkQERITRmcfncZs6aVABedd5B85yQU5EULS4a5pnbpuI0Q== +graphql-jit@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/graphql-jit/-/graphql-jit-0.8.2.tgz#384676573bab3a7bad6ba785afa06b6310c5e843" + integrity sha512-P9KtM/UY4JTtHVRqRlZzFXPmDEtps1Bd27Mvj/naQIa5d0j83zPxAx4jewq1wueF3UEZu1JFZwX1XVBBkoo1Mg== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + fast-json-stringify "^1.21.0" + generate-function "^2.3.1" + json-schema "^0.4.0" + lodash.memoize "^4.1.2" + lodash.merge "4.6.2" + lodash.mergewith "4.6.2" -graphql-tag@^2.11.0: +graphql-tag@^2.12.6: version "2.12.6" resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== dependencies: tslib "^2.1.0" -graphql-ws@5.12.1: - version "5.12.1" - resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.12.1.tgz#c62d5ac54dbd409cc6520b0b39de374b3d59d0dd" - integrity sha512-umt4f5NnMK46ChM2coO36PTFhHouBrK9stWWBczERguwYrGnPNxJ9dimU6IyOBfOkC6Izhkg4H8+F51W/8CYDg== +graphql-ws@^5.14.0: + version "5.14.2" + resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.14.2.tgz#7db6f6138717a544d9480f0213f65f2841ed1c52" + integrity sha512-LycmCwhZ+Op2GlHz4BZDsUYHKRiiUz+3r9wbhBATMETNlORQJAaFlAgTFoeRh6xQoQegwYwIylVD1Qns9/DA3w== -graphql-ws@^5.12.1: - version "5.14.0" - resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.14.0.tgz#766f249f3974fc2c48fae0d1fb20c2c4c79cd591" - integrity sha512-itrUTQZP/TgswR4GSSYuwWUzrE/w5GhbwM2GX3ic2U7aw33jgEsayfIlvaj7/GcIvZgNMzsPTrE5hqPuFUiE5g== - -graphql-yoga@^3.9.1: - version "3.9.1" - resolved "https://registry.yarnpkg.com/graphql-yoga/-/graphql-yoga-3.9.1.tgz#e35c959fac5c1d81e2244a0665b5da6357d4e637" - integrity sha512-BB6EkN64VBTXWmf9Kym2OsVZFzBC0mAsQNo9eNB5xIr3t+x7qepQ34xW5A353NWol3Js3xpzxwIKFVF6l9VsPg== - dependencies: - "@envelop/core" "^3.0.4" - "@envelop/validation-cache" "^5.1.2" - "@graphql-tools/executor" "^0.0.18" - "@graphql-tools/schema" "^9.0.18" - "@graphql-tools/utils" "^9.2.1" - "@graphql-yoga/logger" "^0.0.1" - "@graphql-yoga/subscription" "^3.1.0" - "@whatwg-node/fetch" "^0.8.4" - "@whatwg-node/server" "^0.7.3" +graphql-yoga@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/graphql-yoga/-/graphql-yoga-5.0.0.tgz#446c9cc1d336b550394b6a17703d7fc1acdda18e" + integrity sha512-ZvZlO8MHMDWuLRoDhvJQnXg8SOJD0iDaCA+M/zWuD26AlhEugOEbpnhw/645oqXTYtvHsM91WyxtV7p5XJWYMg== + dependencies: + "@envelop/core" "^5.0.0" + "@graphql-tools/executor" "^1.0.0" + "@graphql-tools/schema" "^10.0.0" + "@graphql-tools/utils" "^10.0.0" + "@graphql-yoga/logger" "^2.0.0" + "@graphql-yoga/subscription" "^5.0.0" + "@whatwg-node/fetch" "^0.9.7" + "@whatwg-node/server" "^0.9.1" dset "^3.1.1" - lru-cache "^7.14.1" - tslib "^2.3.1" + lru-cache "^10.0.0" + tslib "^2.5.2" graphql@^16.6.0: version "16.8.0" @@ -10377,11 +9534,6 @@ hash-base@^3.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" -hash-it@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/hash-it/-/hash-it-6.0.0.tgz#188df5a8ca2f8e036690e35f2ef88bd9417ff334" - integrity sha512-KHzmSFx1KwyMPw0kXeeUD752q/Kfbzhy6dAZrjXV9kAIXGqzGvv8vhkUqj+2MGZldTo0IBpw6v7iWE7uxsvH0w== - 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" @@ -10400,14 +9552,6 @@ he@1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -header-case@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" - integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== - dependencies: - capital-case "^1.0.4" - tslib "^2.0.3" - hey-listen@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" @@ -10422,7 +9566,7 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.3.1: +hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -10441,11 +9585,6 @@ hosted-git-info@^4.0.1: dependencies: lru-cache "^6.0.0" -hotscript@^1.0.11: - version "1.0.13" - resolved "https://registry.yarnpkg.com/hotscript/-/hotscript-1.0.13.tgz#6eb5de757e9b33444ffc22555e98dbc17fa31fb4" - integrity sha512-C++tTF1GqkGYecL+2S1wJTfoH6APGAsbb7PAWQ3iVIwgG/EFseAfEVOKFgAFq4yK3+6j1EjUD4UQ9dRJHX/sSQ== - html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" @@ -10534,12 +9673,7 @@ immutable@^4.0.0-rc.12: resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== -immutable@~3.7.6: - version "3.7.6" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" - integrity sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw== - -import-fresh@^3.2.1, import-fresh@^3.3.0: +import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -10547,11 +9681,6 @@ import-fresh@^3.2.1, import-fresh@^3.3.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-from@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-4.0.0.tgz#2710b8d66817d232e16f4166e319248d3d5492e2" - integrity sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ== - import-local@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" @@ -11188,14 +10317,6 @@ ipns@^4.0.0: timestamp-nano "^1.0.0" uint8arrays "^4.0.2" -is-absolute@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" - integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== - dependencies: - is-relative "^1.0.0" - is-windows "^1.0.1" - is-arguments@^1.0.4: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" @@ -11271,11 +10392,6 @@ is-date-object@^1.0.1, is-date-object@^1.0.5: dependencies: has-tostringtag "^1.0.0" -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - is-domain-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-domain-name/-/is-domain-name-1.0.1.tgz#f6eb33b14a497541dca58335137d4466e0c20da1" @@ -11350,13 +10466,6 @@ is-loopback-addr@^2.0.1: resolved "https://registry.yarnpkg.com/is-loopback-addr/-/is-loopback-addr-2.0.2.tgz#70a6668fa3555d47caebdcee045745ab80adf5e4" integrity sha512-26POf2KRCno/KTNL5Q0b/9TYnL00xEsSaLfiFRmjM7m7Lw7ZMmFybzzuX4CcsLAluZGd+niLUiMRxEooVE3aqg== -is-lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-2.0.2.tgz#1c0884d3012c841556243483aa5d522f47396d2a" - integrity sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ== - dependencies: - tslib "^2.0.3" - is-map@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" @@ -11399,6 +10508,11 @@ is-plain-obj@^4.0.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== +is-property@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + integrity sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g== + is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -11407,13 +10521,6 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" - integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== - dependencies: - is-unc-path "^1.0.0" - is-set@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" @@ -11462,24 +10569,10 @@ is-typedarray@1.0.0, is-typedarray@^1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== -is-unc-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" - integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== - dependencies: - unc-path-regex "^0.1.2" - is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -is-upper-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-2.0.2.tgz#f1105ced1fe4de906a5f39553e7d3803fd804649" - integrity sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ== - dependencies: - tslib "^2.0.3" + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== is-weakmap@^2.0.1: version "2.0.1" @@ -11506,18 +10599,6 @@ is-what@^4.1.8: resolved "https://registry.yarnpkg.com/is-what/-/is-what-4.1.15.tgz#de43a81090417a425942d67b1ae86e7fae2eee0e" integrity sha512-uKua1wfy3Yt+YqsD6mTUEa2zSi3G1oPlqTflgaPJ7z63vUGN5pxFpnQfeSLMFnJDEsdvOtkp1rUWkYjB4YfhgA== -is-windows@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" @@ -11935,15 +11016,6 @@ iterator.prototype@^1.1.0: has-tostringtag "^1.0.0" reflect.getprototypeof "^1.0.3" -jackspeak@^2.0.3: - version "2.3.1" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.1.tgz#ce2effa4c458e053640e61938865a5b5fae98456" - integrity sha512-4iSY3Bh1Htv+kLhiiZunUhQ+OYXIn0ze3ulq8JeWrFKmhPAJSySV2+kdtRh2pGcCeF0s6oR8Oc+pYZynJj4t8A== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - jayson@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.1.0.tgz#60dc946a85197317f2b1439d672a8b0a99cea2f9" @@ -12361,11 +11433,6 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== -json-bigint-patch@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/json-bigint-patch/-/json-bigint-patch-0.0.8.tgz#45d954da1f21c6d4f3ae9ef64c9ac227cd0ab0fe" - integrity sha512-xa0LTQsyaq8awYyZyuUsporWisZFiyqzxGW8CKM3t7oouf0GFAKYJnqAm6e9NLNBQOCtOLvy614DEiRX/rPbnA== - json-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" @@ -12401,15 +11468,6 @@ json-rpc-random-id@^1.0.0, json-rpc-random-id@^1.0.1: resolved "https://registry.yarnpkg.com/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz#ba49d96aded1444dbb8da3d203748acbbcdec8c8" integrity sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA== -json-schema-to-ts@^2.7.2: - version "2.9.2" - resolved "https://registry.yarnpkg.com/json-schema-to-ts/-/json-schema-to-ts-2.9.2.tgz#a054bc6410f13c7a2fc51aeabac52292e885b98d" - integrity sha512-h9WqLkTVpBbiaPb5OmeUpz/FBLS/kvIJw4oRCPiEisIu2WjMh+aai0QIY2LoOhRFx5r92taGLcerIrzxKBAP6g== - dependencies: - "@babel/runtime" "^7.18.3" - "@types/json-schema" "^7.0.9" - ts-algebra "^1.2.0" - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -12420,6 +11478,11 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== +json-schema@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" @@ -12444,7 +11507,7 @@ json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.2.2, json5@^2.2.3: +json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -12477,6 +11540,22 @@ jsonparse@^1.2.0: resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== +jsonwebtoken@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3" + integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^7.5.4" + "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: version "3.3.5" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" @@ -12502,6 +11581,23 @@ just-safe-set@^4.0.2, just-safe-set@^4.1.1: resolved "https://registry.yarnpkg.com/just-safe-set/-/just-safe-set-4.2.1.tgz#aa2d26abedc670ef247c1eaabeba73dc07a05cea" integrity sha512-La5CP41Ycv52+E4g7w1sRV8XXk7Sp8a/TwWQAYQKn6RsQz1FD4Z/rDRRmqV3wJznS1MDF3YxK7BCudX1J8FxLg== +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + k-bucket@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/k-bucket/-/k-bucket-5.1.0.tgz#db2c9e72bd168b432e3f3e8fc092e2ccb61bff89" @@ -12758,11 +11854,6 @@ lodash.camelcase@^4.3.0: resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== -lodash.clone@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" - integrity sha512-GhrVeweiTD6uTmmn5hV/lzgCQhccwReIVRLHp7LT4SopOjqEZ5BbX8b5WWEtAKasjmy8hR7ZPwsYlxRCku5odg== - lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -12773,12 +11864,47 @@ lodash.get@4.4.2, lodash.get@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + lodash.isequal@4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== -lodash.merge@^4.6.2: +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.merge@4.6.2, lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== @@ -12788,12 +11914,17 @@ lodash.mergewith@4.6.2: resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== + lodash.topath@^4.5.2: version "4.5.2" resolved "https://registry.yarnpkg.com/lodash.topath/-/lodash.topath-4.5.2.tgz#3616351f3bba61994a0931989660bd03254fd009" integrity sha512-1/W4dM+35DwvE/iEd1M9ekewOSTlpFekhw9mhAtrwjVqUr83/ilQiyAvmg4tVX7Unkcfl1KC+i9WdaT4B6aQcg== -lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.21, lodash@^4.17.4, lodash@~4.17.0: +lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -12836,19 +11967,10 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -lower-case-first@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-2.0.2.tgz#64c2324a2250bf7c37c5901e76a5b5309301160b" - integrity sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg== - dependencies: - tslib "^2.0.3" - -lower-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" - integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== - dependencies: - tslib "^2.0.3" +lru-cache@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.1.tgz#0a3be479df549cca0e5d693ac402ff19537a6b7a" + integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== lru-cache@^5.1.1: version "5.1.1" @@ -12864,16 +11986,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^7.14.1: - version "7.18.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" - integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== - -"lru-cache@^9.1.1 || ^10.0.0": - version "10.0.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.1.tgz#0a3be479df549cca0e5d693ac402ff19537a6b7a" - integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== - lru_map@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" @@ -12886,11 +11998,6 @@ make-dir@^4.0.0: dependencies: semver "^7.5.3" -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - makeerror@1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" @@ -12898,11 +12005,6 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" -map-cache@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== - map-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" @@ -12934,6 +12036,11 @@ media-query-parser@^2.0.2: dependencies: "@babel/runtime" "^7.12.5" +memoize-one@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045" + integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== + memory-level@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/memory-level/-/memory-level-1.0.0.tgz#7323c3fd368f9af2f71c3cd76ba403a17ac41692" @@ -13052,13 +12159,6 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -13085,11 +12185,6 @@ minipass@^5.0.0: resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.0.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.3.tgz#05ea638da44e475037ed94d1c7efcc76a25e1974" - integrity sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg== - minizlib@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" @@ -13103,11 +12198,6 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" - integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== - mnemonist@^0.38.0: version "0.38.5" resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.38.5.tgz#4adc7f4200491237fe0fa689ac0b86539685cade" @@ -13346,14 +12436,6 @@ nft.storage@^7.1.1: streaming-iterables "^6.0.0" throttled-queue "^2.1.2" -no-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" - integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== - dependencies: - lower-case "^2.0.2" - tslib "^2.0.3" - node-addon-api@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" @@ -13425,13 +12507,6 @@ normalize-package-data@^3.0.0: semver "^7.3.4" validate-npm-package-license "^3.0.1" -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== - dependencies: - remove-trailing-separator "^1.0.1" - normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -13456,22 +12531,12 @@ npm-run-path@^5.1.0: dependencies: path-key "^4.0.0" -nullthrows@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" - integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== - -object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@1.10.3: - version "1.10.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" - integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== - -object-inspect@^1.12.3, object-inspect@^1.9.0: +object-inspect@1.12.3, object-inspect@^1.12.3, object-inspect@^1.9.0: version "1.12.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== @@ -13572,18 +12637,14 @@ onetime@^6.0.0: dependencies: mimic-fn "^4.0.0" -open@^7.4.2: - version "7.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" - integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== +optimism@^0.17.5: + version "0.17.5" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.17.5.tgz#a4c78b3ad12c58623abedbebb4f2f2c19b8e8816" + integrity sha512-TEcp8ZwK1RczmvMnvktxHSF2tKgMWjJ71xEFGX5ApLh67VsMSTy1ZUlipJw8W+KaqgOmQ+4pqwkeivY89j+4Vw== dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - -openapi-types@^12.1.0: - version "12.1.3" - resolved "https://registry.yarnpkg.com/openapi-types/-/openapi-types-12.1.3.tgz#471995eb26c4b97b7bd356aacf7b91b73e777dd3" - integrity sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw== + "@wry/context" "^0.7.0" + "@wry/trie" "^0.4.3" + tslib "^2.3.0" optionator@^0.9.3: version "0.9.3" @@ -13632,13 +12693,6 @@ p-fifo@^1.0.0: fast-fifo "^1.0.0" p-defer "^3.0.0" -p-limit@3.1.0, p-limit@^3.0.2, p-limit@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -13653,6 +12707,13 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" +p-limit@^3.0.2, p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + p-limit@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" @@ -13750,14 +12811,6 @@ pako@^2.0.4: resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== -param-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" - integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -13770,15 +12823,6 @@ parse-duration@^1.0.0: resolved "https://registry.yarnpkg.com/parse-duration/-/parse-duration-1.1.0.tgz#5192084c5d8f2a3fd676d04a451dbd2e05a1819c" integrity sha512-z6t9dvSJYaPoQq7quMzdEagSFtpGu+utzHqqxmpVWNNZRIXnvqyCvn9XsTdh7c/w0Bqmdz3RB3YnRaKtpRtEXQ== -parse-filepath@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" - integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q== - dependencies: - is-absolute "^1.0.0" - map-cache "^0.2.0" - path-root "^0.1.1" - parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -13789,14 +12833,6 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -pascal-case@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" - integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - pascalcase@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-1.0.0.tgz#d2fd7d73f2969606d2b56e17f5261be41c43c381" @@ -13807,14 +12843,6 @@ path-browserify@1.0.1: resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== -path-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" - integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -13845,26 +12873,6 @@ path-parse@^1.0.6, path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-root-regex@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" - integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ== - -path-root@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" - integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg== - dependencies: - path-root-regex "^0.1.0" - -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== - dependencies: - lru-cache "^9.1.1 || ^10.0.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -14032,13 +13040,6 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== - dependencies: - asap "~2.0.3" - prompts@^2.0.1: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" @@ -14047,7 +13048,7 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types@^15.6.2, prop-types@^15.8.1: +prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -14143,18 +13144,6 @@ pure-rand@^6.0.0: resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.2.tgz#a9c2ddcae9b68d736a8163036f088a2781c8b306" integrity sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ== -pvtsutils@^1.3.2: - version "1.3.5" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.5.tgz#b8705b437b7b134cd7fd858f025a23456f1ce910" - integrity sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA== - dependencies: - tslib "^2.6.1" - -pvutils@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" - integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== - qrcode.react@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/qrcode.react/-/qrcode.react-3.1.0.tgz#5c91ddc0340f768316fbdb8fff2765134c2aecd8" @@ -14652,6 +13641,16 @@ react-focus-lock@^2.9.4: use-callback-ref "^1.3.0" use-sidecar "^1.1.2" +react-hook-form@^7.47.0: + version "7.47.0" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.47.0.tgz#a42f07266bd297ddf1f914f08f4b5f9783262f31" + integrity sha512-F/TroLjTICipmHeFlMrLtNLceO2xr1jU3CyiNla5zdwsGUGu2UOxxR4UyJgLlhMwLW/Wzp4cpJ7CPfgJIeKdSg== + +react-icons@^4.11.0: + version "4.11.0" + resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.11.0.tgz#4b0e31c9bfc919608095cc429c4f1846f4d66c65" + integrity sha512-V+4khzYcE5EBk/BvcuYRq6V/osf11ODUM2J8hg2FDSswRrGvqiYUYPRy4OdrWaQOBj4NcpJfmHZLNaD+VH0TyA== + react-is@^16.12.0, react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" @@ -14669,19 +13668,6 @@ react-native-fetch-api@^3.0.0: dependencies: p-defer "^3.0.0" -react-native-fs@2.20.0: - version "2.20.0" - resolved "https://registry.yarnpkg.com/react-native-fs/-/react-native-fs-2.20.0.tgz#05a9362b473bfc0910772c0acbb73a78dbc810f6" - integrity sha512-VkTBzs7fIDUiy/XajOSNk0XazFE9l+QlMAce7lGuebZcag5CnjszB+u4BdqzwaQOdcYb5wsJIsqq4kxInIRpJQ== - dependencies: - base-64 "^0.1.0" - utf8 "^3.0.0" - -react-native-path@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/react-native-path/-/react-native-path-0.0.5.tgz#a04e4b73a535a8a7cf15c6e760e27db7789afb13" - integrity sha512-WJr256xBquk7X2O83QYWKqgLg43Zg3SrgjPc/kr0gCD2LoXA+2L72BW4cmstH12GbGeutqs/eXk3jgDQ2iCSvQ== - react-remove-scroll-bar@^2.3.3, react-remove-scroll-bar@^2.3.4: version "2.3.4" resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz#53e272d7a5cb8242990c7f144c44d8bd8ab5afd9" @@ -14712,6 +13698,21 @@ react-remove-scroll@^2.5.5: use-callback-ref "^1.3.0" use-sidecar "^1.1.2" +react-select@^5.7.7: + version "5.7.7" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.7.7.tgz#dbade9dbf711ef2a181970c10f8ab319ac37fbd0" + integrity sha512-HhashZZJDRlfF/AKj0a0Lnfs3sRdw/46VJIRd8IbB9/Ovr74+ZIwkAdSBjSPXsFMG+u72c5xShqwLSKIJllzqw== + dependencies: + "@babel/runtime" "^7.12.0" + "@emotion/cache" "^11.4.0" + "@emotion/react" "^11.8.1" + "@floating-ui/dom" "^1.0.1" + "@types/react-transition-group" "^4.4.0" + memoize-one "^6.0.0" + prop-types "^15.6.0" + react-transition-group "^4.3.0" + use-isomorphic-layout-effect "^1.1.2" + react-slick@^0.29.0: version "0.29.0" resolved "https://registry.yarnpkg.com/react-slick/-/react-slick-0.29.0.tgz#0bed5ea42bf75a23d40c0259b828ed27627b51bb" @@ -14732,6 +13733,16 @@ react-style-singleton@^2.2.1: invariant "^2.2.4" tslib "^2.0.0" +react-transition-group@^4.3.0: + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + react-twitter-widgets@^1.10.0: version "1.11.0" resolved "https://registry.yarnpkg.com/react-twitter-widgets/-/react-twitter-widgets-1.11.0.tgz#77daa682e15a0839d9a4124dd0958995f3438a43" @@ -14848,25 +13859,11 @@ regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: define-properties "^1.2.0" functions-have-names "^1.2.3" -relay-runtime@12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/relay-runtime/-/relay-runtime-12.0.0.tgz#1e039282bdb5e0c1b9a7dc7f6b9a09d4f4ff8237" - integrity sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug== - dependencies: - "@babel/runtime" "^7.0.0" - fbjs "^3.0.0" - invariant "^2.2.4" - remove-accents@0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/remove-accents/-/remove-accents-0.4.2.tgz#0a43d3aaae1e80db919e07ae254b285d9e1c7bb5" integrity sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA== -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -14894,16 +13891,16 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" -resolve-from@5.0.0, resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + resolve-pkg-maps@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" @@ -14939,6 +13936,11 @@ resolve@^2.0.0-next.4: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +response-iterator@^0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/response-iterator/-/response-iterator-0.2.6.tgz#249005fb14d2e4eeb478a3f735a28fd8b4c9f3da" + integrity sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw== + retimer@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/retimer/-/retimer-2.0.0.tgz#e8bd68c5e5a8ec2f49ccb5c636db84c04063bbca" @@ -14964,11 +13966,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rfdc@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== - rimraf@^2.2.8: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -14983,13 +13980,6 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rimraf@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.1.tgz#0881323ab94ad45fec7c0221f27ea1a142f3f0d0" - integrity sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg== - dependencies: - glob "^10.2.5" - ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -15155,15 +14145,6 @@ semver@^7.3.4, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4: dependencies: lru-cache "^6.0.0" -sentence-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" - integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== - dependencies: - no-case "^3.0.4" - tslib "^2.0.3" - upper-case-first "^2.0.2" - serialize-javascript@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" @@ -15235,11 +14216,6 @@ signal-exit@^4.0.1: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== -signedsource@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/signedsource/-/signedsource-1.0.0.tgz#1ddace4981798f93bd833973803d80d52e93ad6a" - integrity sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww== - sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -15255,14 +14231,6 @@ slick-carousel@^1.8.1: resolved "https://registry.yarnpkg.com/slick-carousel/-/slick-carousel-1.8.1.tgz#a4bfb29014887bb66ce528b90bd0cda262cc8f8d" integrity sha512-XB9Ftrf2EEKfzoQXt3Nitrt/IPbT+f1fgqBdoxO3W/+JYvtEOW6EgxnWfr9GH6nmULv7Y2tPmEX3koxThVmebA== -snake-case@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" - integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== - dependencies: - dot-case "^3.0.4" - tslib "^2.0.3" - socket.io-client@^4.1.2: version "4.7.2" resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.7.2.tgz#f2f13f68058bd4e40f94f2a1541f275157ff2c08" @@ -15382,13 +14350,6 @@ split2@^4.0.0: resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== -sponge-case@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sponge-case/-/sponge-case-1.0.1.tgz#260833b86453883d974f84854cdb63aecc5aef4c" - integrity sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA== - dependencies: - tslib "^2.0.3" - sprintf-js@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" @@ -15471,7 +14432,12 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +string-similarity@^4.0.1: + version "4.0.4" + resolved "https://registry.yarnpkg.com/string-similarity/-/string-similarity-4.0.4.tgz#42d01ab0b34660ea8a018da8f56a3309bb8b2a5b" + integrity sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ== + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -15480,15 +14446,6 @@ string-length@^4.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - string.prototype.matchall@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" @@ -15537,20 +14494,13 @@ string_decoder@^1.1.1, string_decoder@^1.3.0: dependencies: safe-buffer "~5.2.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.0.1: - version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== - dependencies: - ansi-regex "^6.0.1" - strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -15660,18 +14610,16 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -swap-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-2.0.2.tgz#671aedb3c9c137e2985ef51c51f9e98445bf70d9" - integrity sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw== - dependencies: - tslib "^2.0.3" - swr@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/swr/-/swr-1.3.0.tgz#c6531866a35b4db37b38b72c45a63171faf9f4e8" integrity sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw== +symbol-observable@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" + integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== + table-layout@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" @@ -15770,17 +14718,10 @@ tiny-invariant@^1.0.6: resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== -tiny-lru@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-8.0.2.tgz#812fccbe6e622ded552e3ff8a4c3b5ff34a85e4c" - integrity sha512-ApGvZ6vVvTNdsmt676grvCkUCGwzG9IqXma5Z07xJgiC5L7akUMof5U8G2JTI9Rz/ovtVhJBlY6mNhEvtjzOIg== - -title-case@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/title-case/-/title-case-3.0.3.tgz#bc689b46f02e411f1d1e1d081f7c3deca0489982" - integrity sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA== - dependencies: - tslib "^2.0.3" +tiny-lru@^11.0.0: + version "11.2.3" + resolved "https://registry.yarnpkg.com/tiny-lru/-/tiny-lru-11.2.3.tgz#9dc04c9bd48b1e196e999e11eee71bc249466145" + integrity sha512-mF9jPTrvN7UHk0bekOk3RlFdFwfyS4CJYVsGc7nInL3pVgUCYj5r9X6GpZBFQgLr0TKJo8Dp+F3oRvYzxU9xiA== tmp@0.0.33: version "0.0.33" @@ -15833,11 +14774,6 @@ truncate-utf8-bytes@^1.0.0: dependencies: utf8-byte-length "^1.0.1" -ts-algebra@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ts-algebra/-/ts-algebra-1.2.1.tgz#8cefa656b0563f207da2cb01e7094e178649ba0e" - integrity sha512-W6JPG/+6DqG8+pGALWtju1YGDZGmZ+JqGSq4qrbF1hiBUf5x+uYhQyluIbTtrcVmKsWGoOziKlZNNsdrQ8Yzrg== - ts-api-utils@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.2.tgz#7c094f753b6705ee4faee25c3c684ade52d66d99" @@ -15858,24 +14794,12 @@ ts-essentials@^7.0.1: resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38" integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== -ts-node@^10.9.1: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" +ts-invariant@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c" + integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ== + dependencies: + tslib "^2.1.0" tsconfig-paths@^3.14.2: version "3.14.2" @@ -15887,15 +14811,6 @@ tsconfig-paths@^3.14.2: minimist "^1.2.6" strip-bom "^3.0.0" -tsconfig-paths@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c" - integrity sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg== - dependencies: - json5 "^2.2.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - tslib@1.14.1, tslib@^1.9.0, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" @@ -15906,21 +14821,16 @@ tslib@2.4.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== -tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.1: +tslib@2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" + integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== + +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.5.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tslib@~2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" - integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== - -tslib@~2.5.0: - version "2.5.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" - integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== - tsort@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" @@ -16050,7 +14960,7 @@ typedarray-to-buffer@3.1.5, typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@5.2.2, typescript@^5.0.4: +typescript@5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== @@ -16065,11 +14975,6 @@ typical@^5.2.0: resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== -ua-parser-js@^1.0.35: - version "1.0.35" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.35.tgz#c4ef44343bc3db0a3cbefdf21822f1b1fc1ab011" - integrity sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA== - uint8-varint@^1.0.1, uint8-varint@^1.0.2: version "1.0.8" resolved "https://registry.yarnpkg.com/uint8-varint/-/uint8-varint-1.0.8.tgz#3f6c268e4c1a1ece232f660ec37729faca7cc7d0" @@ -16119,11 +15024,6 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -unc-path-regex@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== - undici@^5.12.0, undici@^5.14.0: version "5.23.0" resolved "https://registry.yarnpkg.com/undici/-/undici-5.23.0.tgz#e7bdb0ed42cebe7b7aca87ced53e6eaafb8f8ca0" @@ -16146,13 +15046,6 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unixify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unixify/-/unixify-1.0.0.tgz#3a641c8c2ffbce4da683a5c70f03a462940c2090" - integrity sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg== - dependencies: - normalize-path "^2.1.1" - unpipe@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" @@ -16166,20 +15059,6 @@ update-browserslist-db@^1.0.11: escalade "^3.1.1" picocolors "^1.0.0" -upper-case-first@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" - integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== - dependencies: - tslib "^2.0.3" - -upper-case@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" - integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== - dependencies: - tslib "^2.0.3" - uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -16187,10 +15066,10 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urlpattern-polyfill@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz#99f096e35eff8bf4b5a2aa7d58a1523d6ebc7ce5" - integrity sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ== +urlpattern-polyfill@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz#bc7e386bb12fd7898b58d1509df21d3c29ab3460" + integrity sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g== use-callback-ref@^1.3.0: version "1.3.0" @@ -16199,6 +15078,11 @@ use-callback-ref@^1.3.0: dependencies: tslib "^2.0.0" +use-isomorphic-layout-effect@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" + integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== + use-sidecar@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.1.2.tgz#2f43126ba2d7d7e117aa5855e5d8f0276dfe73c2" @@ -16224,11 +15108,6 @@ utf8-byte-length@^1.0.1: resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" integrity sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA== -utf8@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" - integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== - util-deprecate@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -16250,11 +15129,6 @@ uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - v8-to-istanbul@^9.0.1: version "9.1.0" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz#1b83ed4e397f58c85c266a570fc2558b5feb9265" @@ -16288,7 +15162,7 @@ valtio@^1.6.3: proxy-compare "2.5.1" use-sync-external-store "1.2.0" -value-or-promise@1.0.12, value-or-promise@^1.0.11, value-or-promise@^1.0.12: +value-or-promise@^1.0.11, value-or-promise@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== @@ -16373,7 +15247,7 @@ web-encoding@1.1.5: optionalDependencies: "@zxing/text-encoding" "0.9.0" -web-streams-polyfill@^3.0.3, web-streams-polyfill@^3.1.1, web-streams-polyfill@^3.2.1: +web-streams-polyfill@^3.0.3, web-streams-polyfill@^3.1.1: version "3.2.1" resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== @@ -16400,17 +15274,6 @@ web3.storage@^4.5.5: uint8arrays "^3.0.0" w3name "^1.0.6" -webcrypto-core@^1.7.7: - version "1.7.7" - resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.7.tgz#06f24b3498463e570fed64d7cab149e5437b162c" - integrity sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g== - dependencies: - "@peculiar/asn1-schema" "^2.3.6" - "@peculiar/json-schema" "^1.1.12" - asn1js "^3.0.1" - pvtsutils "^1.3.2" - tslib "^2.4.0" - webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -16523,15 +15386,6 @@ workerpool@6.2.1: resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -16541,14 +15395,14 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" wrappy@1: version "1.0.2" @@ -16581,6 +15435,11 @@ ws@8.13.0, ws@^8.12.0, ws@^8.12.1, ws@^8.13.0, ws@^8.4.0, ws@^8.5.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== +ws@8.14.2: + version "8.14.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== + ws@^7.4.5, ws@^7.4.6, ws@^7.5.1: version "7.5.9" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" @@ -16720,7 +15579,7 @@ yargs@^15.3.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^17.3.1, yargs@^17.7.1: +yargs@^17.3.1: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== @@ -16733,11 +15592,6 @@ yargs@^17.3.1, yargs@^17.7.1: y18n "^5.0.5" yargs-parser "^21.1.1" -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" @@ -16748,21 +15602,23 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== -zod-to-json-schema@^3.20.5: - version "3.21.4" - resolved "https://registry.yarnpkg.com/zod-to-json-schema/-/zod-to-json-schema-3.21.4.tgz#de97c5b6d4a25e9d444618486cb55c0c7fb949fd" - integrity sha512-fjUZh4nQ1s6HMccgIeE0VP4QG/YRGPmyjO9sAh890aQKPEk3nqbfUXhMFaC+Dr5KvYBm8BCyvfpZf2jY9aGSsw== +zen-observable-ts@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz#6c6d9ea3d3a842812c6e9519209365a122ba8b58" + integrity sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg== + dependencies: + zen-observable "0.8.15" + +zen-observable@0.8.15: + version "0.8.15" + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== zod@3.21.4: version "3.21.4" resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db" integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw== -zod@^3.21.4: - version "3.22.2" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.2.tgz#3add8c682b7077c05ac6f979fea6998b573e157b" - integrity sha512-wvWkphh5WQsJbVk1tbx1l1Ly4yg+XecD+Mq280uBGt9wa5BKSWf4Mhp6GmrkPixhMxmabYY7RbzlwVP32pbGCg== - zustand@^4.3.1: version "4.4.1" resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.4.1.tgz#0cd3a3e4756f21811bd956418fdc686877e8b3b0"