From de10c572c2951cece76fd8ac9ba4e96051697bbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yusuf=20Akg=C3=BCl?= <s86116@bht-berlin.de> Date: Sat, 8 Jul 2023 04:30:25 +0200 Subject: [PATCH] profile page done, missing followers following --- .../[username]/(profile)/games/page.tsx | 10 + .../(user)/[username]/(profile)/layout.tsx | 5 +- .../[username]/(profile)/likes/page.tsx | 14 +- .../[username]/(profile)/media/page.tsx | 14 +- .../(user)/[username]/(profile)/page.tsx | 14 +- .../(profile)/with_replies/page.tsx | 7 - .../{(profile) => }/followers/page.tsx | 0 .../{(profile) => }/following/page.tsx | 0 app/api/gweets/route.ts | 23 +- app/api/users/[username]/route.ts | 10 +- .../gweets/components/infinite-gweets.tsx | 8 +- components/nav-sidebar.tsx | 2 +- components/profile/api/update-profile.ts | 6 +- .../profile/components/edit-profile-modal.tsx | 48 +- .../profile/components/profile-navbar.tsx | 40 + .../profile/components/profile-user-info.tsx | 10 +- ...rofile-user-content.tsx => user-games.tsx} | 25 +- components/profile/components/user-gweets.tsx | 69 ++ components/profile/types/index.ts | 1 + package-lock.json | 760 +++++++++--------- package.json | 14 +- 21 files changed, 626 insertions(+), 454 deletions(-) create mode 100644 app/(content)/(user)/[username]/(profile)/games/page.tsx delete mode 100644 app/(content)/(user)/[username]/(profile)/with_replies/page.tsx rename app/(content)/(user)/[username]/{(profile) => }/followers/page.tsx (100%) rename app/(content)/(user)/[username]/{(profile) => }/following/page.tsx (100%) create mode 100644 components/profile/components/profile-navbar.tsx rename components/profile/components/{profile-user-content.tsx => user-games.tsx} (87%) create mode 100644 components/profile/components/user-gweets.tsx diff --git a/app/(content)/(user)/[username]/(profile)/games/page.tsx b/app/(content)/(user)/[username]/(profile)/games/page.tsx new file mode 100644 index 0000000..802d5a5 --- /dev/null +++ b/app/(content)/(user)/[username]/(profile)/games/page.tsx @@ -0,0 +1,10 @@ +import { UserGames } from "@/components/profile/components/user-games" +import { TabsContent } from "@/components/ui/tabs" + +export default async function Games({ params }: { params: { username: string } }) { + return ( + <TabsContent value="games"> + <UserGames username={params.username} /> + </TabsContent> + ) +} \ No newline at end of file diff --git a/app/(content)/(user)/[username]/(profile)/layout.tsx b/app/(content)/(user)/[username]/(profile)/layout.tsx index 9595b88..2b95743 100644 --- a/app/(content)/(user)/[username]/(profile)/layout.tsx +++ b/app/(content)/(user)/[username]/(profile)/layout.tsx @@ -1,4 +1,5 @@ import { GlobalLayout } from "@/components/global-layout" +import { ProfileNavbar } from "@/components/profile/components/profile-navbar" import { ProfileSideContent } from "@/components/profile/components/profile-side-content" import { ProfileUserInfo } from "@/components/profile/components/profile-user-info" import { Card } from "@/components/ui/card" @@ -26,7 +27,9 @@ export default async function ProfileLayout({ : <> <ProfileUserInfo user={user} /> - {children} + <ProfileNavbar param={params.username}> + {children} + </ProfileNavbar> </> } </Card> diff --git a/app/(content)/(user)/[username]/(profile)/likes/page.tsx b/app/(content)/(user)/[username]/(profile)/likes/page.tsx index d1050ff..4d50675 100644 --- a/app/(content)/(user)/[username]/(profile)/likes/page.tsx +++ b/app/(content)/(user)/[username]/(profile)/likes/page.tsx @@ -1,7 +1,13 @@ -export default async function Likes() { +import { UserGweets } from "@/components/profile/components/user-gweets" +import { TabsContent } from "@/components/ui/tabs" +import { getCurrentUser } from "@/lib/session" + +export default async function Likes({ params }: { params: { username: string } }) { + const session = await getCurrentUser() + return ( - <div> - <h1>Likes Page WIP</h1> - </div> + <TabsContent value="likes"> + <UserGweets username={params.username} sessionname={session?.username as string} /> + </TabsContent> ) } \ No newline at end of file diff --git a/app/(content)/(user)/[username]/(profile)/media/page.tsx b/app/(content)/(user)/[username]/(profile)/media/page.tsx index 0d06dc6..05724bd 100644 --- a/app/(content)/(user)/[username]/(profile)/media/page.tsx +++ b/app/(content)/(user)/[username]/(profile)/media/page.tsx @@ -1,7 +1,13 @@ -export default async function Media() { +import { UserGweets } from "@/components/profile/components/user-gweets" +import { TabsContent } from "@/components/ui/tabs" +import { getCurrentUser } from "@/lib/session" + +export default async function Media({ params }: { params: { username: string } }) { + const session = await getCurrentUser() + return ( - <div> - <h1>Media Page WIP</h1> - </div> + <TabsContent value="media"> + <UserGweets username={params.username} sessionname={session?.username as string} /> + </TabsContent> ) } \ No newline at end of file diff --git a/app/(content)/(user)/[username]/(profile)/page.tsx b/app/(content)/(user)/[username]/(profile)/page.tsx index b418baa..35111b1 100644 --- a/app/(content)/(user)/[username]/(profile)/page.tsx +++ b/app/(content)/(user)/[username]/(profile)/page.tsx @@ -1,9 +1,13 @@ -import { ProfileUserContent } from "@/components/profile/components/profile-user-content" +import { UserGweets } from "@/components/profile/components/user-gweets" +import { TabsContent } from "@/components/ui/tabs" +import { getCurrentUser } from "@/lib/session" + +export default async function Gweets({ params }: { params: { username: string } }) { + const session = await getCurrentUser() -export default async function User({ params }: { params: { username: string } }) { return ( - <div className="space-y-6 w-full"> - {/* <ProfileUserContent userid={params.username} /> */} - </div> + <TabsContent value="gweets"> + <UserGweets username={params.username} sessionname={session?.username as string} /> + </TabsContent> ) } \ No newline at end of file diff --git a/app/(content)/(user)/[username]/(profile)/with_replies/page.tsx b/app/(content)/(user)/[username]/(profile)/with_replies/page.tsx deleted file mode 100644 index 83676c5..0000000 --- a/app/(content)/(user)/[username]/(profile)/with_replies/page.tsx +++ /dev/null @@ -1,7 +0,0 @@ -export default async function WithReplies() { - return ( - <div> - <h1>WithReplies Page WIP</h1> - </div> - ) -} \ No newline at end of file diff --git a/app/(content)/(user)/[username]/(profile)/followers/page.tsx b/app/(content)/(user)/[username]/followers/page.tsx similarity index 100% rename from app/(content)/(user)/[username]/(profile)/followers/page.tsx rename to app/(content)/(user)/[username]/followers/page.tsx diff --git a/app/(content)/(user)/[username]/(profile)/following/page.tsx b/app/(content)/(user)/[username]/following/page.tsx similarity index 100% rename from app/(content)/(user)/[username]/(profile)/following/page.tsx rename to app/(content)/(user)/[username]/following/page.tsx diff --git a/app/api/gweets/route.ts b/app/api/gweets/route.ts index cf5ae72..9cdd2ab 100644 --- a/app/api/gweets/route.ts +++ b/app/api/gweets/route.ts @@ -30,7 +30,7 @@ export async function GET(request: Request) { // if (gweet && gweet.replyToGweetId) thread = await fetchThread(gweet.replyToGweetId) // } - // // logic correct TODO + // // logic correct TODO get all gweets above comment // const prevId = thread.length < 4 ? undefined : thread[thread.length - 1].id // return NextResponse.json({ gweets: thread, prevId }) // } @@ -53,20 +53,35 @@ export async function GET(request: Request) { }), ...(type === "user_gweets" && { - authorId: id, + author: { + username: id, + }, }), ...(type === "user_replies" && { - authorId: id, + author: { + username: id, + }, NOT: { replyToGweetId: null, }, }), + ...(type === "user_media" && { + author: { + username: id, + }, + media: { + some: {}, + }, + }), + ...(type === "user_likes" && { likes: { some: { - userId: id, + user: { + username: id, + }, }, }, }), diff --git a/app/api/users/[username]/route.ts b/app/api/users/[username]/route.ts index fde9970..e089b9b 100644 --- a/app/api/users/[username]/route.ts +++ b/app/api/users/[username]/route.ts @@ -63,11 +63,11 @@ export async function PUT(request: Request) { .object({ userId: z.string().cuid(), name: z.string().min(1).max(50), - bio: z.string().max(160), - location: z.string().max(30), - website: z.string().max(100), - banner: z.string(), - image: z.string(), + bio: z.string().max(160).optional(), + location: z.string().max(30).optional(), + website: z.string().max(100).optional(), + banner: z.string().optional(), + image: z.string().optional(), }) .strict() diff --git a/components/gweets/components/infinite-gweets.tsx b/components/gweets/components/infinite-gweets.tsx index 2e8f73d..8952722 100644 --- a/components/gweets/components/infinite-gweets.tsx +++ b/components/gweets/components/infinite-gweets.tsx @@ -49,9 +49,11 @@ export const InfiniteGweets = ({ key={gweet.id} > <Gweet gweet={gweet} /> - <div className="px-6"> - <Separator className="my-3" /> - </div> + {index !== page.gweets.length - 1 && ( + <div className="px-6"> + <Separator className="my-3" /> + </div> + )} </div> )) })} diff --git a/components/nav-sidebar.tsx b/components/nav-sidebar.tsx index 7d5808a..b8f579a 100644 --- a/components/nav-sidebar.tsx +++ b/components/nav-sidebar.tsx @@ -31,7 +31,7 @@ export const Sidebar = ({ items, user }: { items: SidebarNavItem[], user: User | <span className={cn( "group flex items-center rounded-md px-3 py-2 font-medium hover:bg-accent hover:text-accent-foreground", - path === item.href ? "bg-accent" : "transparent", + path.startsWith(item.href) ? "bg-accent" : "transparent", item.disabled && "cursor-not-allowed opacity-80" )} > diff --git a/components/profile/api/update-profile.ts b/components/profile/api/update-profile.ts index f3a100e..861e2c8 100644 --- a/components/profile/api/update-profile.ts +++ b/components/profile/api/update-profile.ts @@ -21,7 +21,7 @@ export const updateProfile = async ({ if (profile.image.file) { [imagefileprops] = await uploadFiles({ files: [profile.image.file], endpoint: 'imageUploader' }) } - + console.log('bannerfileprops', profile.banner.removed) const data = await fetch(`/api/users/${userId}`, { method: 'PUT', body: JSON.stringify({ @@ -30,8 +30,8 @@ export const updateProfile = async ({ bio: profile.bio, location: profile.location, website: profile.website, - banner: bannerfileprops.fileUrl !== "" ? bannerfileprops.fileUrl : profile?.banner?.url, - image: imagefileprops.fileUrl !== "" ? imagefileprops.fileUrl : profile?.image?.url, + banner: profile.banner.removed ? "" : bannerfileprops.fileUrl !== "" ? bannerfileprops.fileUrl : undefined, + image: imagefileprops.fileUrl !== "" ? imagefileprops.fileUrl : undefined, }) }).then((result) => result.json()) diff --git a/components/profile/components/edit-profile-modal.tsx b/components/profile/components/edit-profile-modal.tsx index ba74fcc..bf4dbc6 100644 --- a/components/profile/components/edit-profile-modal.tsx +++ b/components/profile/components/edit-profile-modal.tsx @@ -22,7 +22,7 @@ import { UserAvatar } from "@/components/user-avatar" import { zodResolver } from "@hookform/resolvers/zod" import Image from "next/image" import { useRouter } from "next/navigation" -import { useEffect, useRef, useState } from "react" +import { use, useEffect, useRef, useState } from "react" import { useForm } from "react-hook-form" import { z } from "zod" import { useUpdateProfile } from "../hooks/use-update-profile" @@ -55,7 +55,7 @@ export const EditProfileModal = ({ user }: { user: IUser }) => { const [open, setOpen] = useState(false) const [imageErrorMessage, setImageErrorMessage] = useState("") const [chosenBanner, setChosenBanner] = useState<Partial<IProfile>>({ - banner: { url: user?.banner || "", file: undefined }, + banner: { removed: false, url: user?.banner || "", file: undefined }, }) const [chosenImages, setChosenImages] = useState<Partial<IProfile>>({ image: { url: user?.image || "", file: undefined }, @@ -69,21 +69,46 @@ export const EditProfileModal = ({ user }: { user: IUser }) => { async function onSave(formData: z.infer<typeof FormSchema>) { if (!user) return null + const dirty = form.formState.dirtyFields const profile: IProfile = { name: formData.name, - bio: formData.bio, - location: formData.location, - website: formData.website, - banner: { url: user?.banner || "", file: chosenBanner.banner?.file }, + bio: dirty.bio ? formData.bio : undefined, + location: dirty.location ? formData.location : undefined, + website: dirty.website ? formData.website : undefined, + banner: { removed: chosenBanner.banner?.removed, url: user?.banner || "", file: chosenBanner.banner?.file }, image: { url: user?.image || "", file: chosenImages.image?.file }, } - // TODO dont send everything, only send what has changed + mutate({ profile, userId: user.id, }) } + let disable = true + if (!isLoading) { + if (chosenBanner.banner?.file !== undefined || chosenImages.image?.file !== undefined || form.formState.isDirty) { + disable = false + } + } + + useEffect(() => { + if (!open) { + form.reset() + form.setValue("name", user?.name) + form.setValue("bio", user?.bio || "") + form.setValue("location", user?.location || "") + form.setValue("website", user?.website || "") + + // wait 150ms for dialog to close before resetting image + setTimeout(() => { + setImageErrorMessage("") + setChosenBanner({ banner: { removed: false, url: user?.banner || "", file: undefined } }) + setChosenImages({ image: { url: user?.image || "", file: undefined } }) + }, 150) + } + }, [form, open, user]) + useEffect(() => { if (isSuccess) { toast({ @@ -112,7 +137,7 @@ export const EditProfileModal = ({ user }: { user: IUser }) => { bannerInputRef.current.value = "" reader.onloadend = () => { setChosenBanner({ - ["banner"]: { url: reader.result as string, file }, + ["banner"]: { removed: false, url: reader.result as string, file }, }) } } @@ -146,7 +171,6 @@ export const EditProfileModal = ({ user }: { user: IUser }) => { <Form {...form}> <form onSubmit={form.handleSubmit(onSave)}> <div className="grid gap-3 py-3"> - <div className="space-y-2"> <div className="grid grid-cols-4 items-center gap-4"> <div className="col-span-1 relative w-full overflow-hidden items-center"> @@ -163,7 +187,7 @@ export const EditProfileModal = ({ user }: { user: IUser }) => { alt={"user image"} fill priority - className="object-center object-cover w-full h-full " + className="object-center object-cover w-full h-full" /> </AspectRatio> } @@ -228,7 +252,7 @@ export const EditProfileModal = ({ user }: { user: IUser }) => { variant="outline" size="icon" className="bg-opacity-50 dark:bg-opacity-50" - onClick={() => setChosenBanner({ banner: { url: "", file: undefined } })} + onClick={() => setChosenBanner({ banner: { removed: true, url: "", file: undefined } })} disabled={isLoading} > <Icons.close /> @@ -320,7 +344,7 @@ export const EditProfileModal = ({ user }: { user: IUser }) => { </div> </div> <DialogFooter> - <Button type="submit" disabled={isLoading || !form.formState.isDirty}> + <Button type="submit" disabled={disable}> {isLoading && ( <Icons.spinner className="mr-2 h-4 w-4 animate-spin" /> )} diff --git a/components/profile/components/profile-navbar.tsx b/components/profile/components/profile-navbar.tsx new file mode 100644 index 0000000..774b4e1 --- /dev/null +++ b/components/profile/components/profile-navbar.tsx @@ -0,0 +1,40 @@ +"use client" + +import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs" +import Link from "next/link" +import { usePathname } from "next/navigation" + +export const ProfileNavbar = ({ children, param }: { children: React.ReactNode, param: string }) => { + const pathValue = usePathname().split("/")[2] || "gweets" + + return ( + <Tabs defaultValue={"gweets"} value={pathValue} className="w-full h-full p-6 md:p-12 "> + <TabsList className="grid w-full grid-cols-4"> + <Link href={`/${param}`} className="w-full inline-flex items-center justify-center"> + <TabsTrigger value="gweets" className="w-full"> + Gweets + </TabsTrigger> + </Link> + + <Link href={`/${param}/games`} className="w-full inline-flex items-center justify-center"> + <TabsTrigger value="games" className="w-full"> + Games + </TabsTrigger> + </Link> + + <Link href={`/${param}/media`} className="w-full inline-flex items-center justify-center"> + <TabsTrigger value="media" className="w-full"> + Media + </TabsTrigger> + </Link> + + <Link href={`/${param}/likes`} className="w-full inline-flex items-center justify-center"> + <TabsTrigger value="likes" className="w-full"> + Likes + </TabsTrigger> + </Link> + </TabsList> + {children} + </Tabs> + ) +} \ No newline at end of file diff --git a/components/profile/components/profile-user-info.tsx b/components/profile/components/profile-user-info.tsx index e2e6924..914b6fd 100644 --- a/components/profile/components/profile-user-info.tsx +++ b/components/profile/components/profile-user-info.tsx @@ -60,7 +60,7 @@ export const ProfileUserInfo = async ({ user }: { user: IUser }) => { <h1 className="text-2xl font-bold">{user.name}</h1> <h1 className="text-md text-sky-500">@{user.username}</h1> </div> - {user.bio && <h1 className="">{user.bio}</h1>} + {user.bio && <h1 className="break-words">{user.bio}</h1>} <div className="flex whitespace-nowrap items-center space-x-6 text-muted-foreground"> {user.location && @@ -80,13 +80,13 @@ export const ProfileUserInfo = async ({ user }: { user: IUser }) => { <div className="flex whitespace-nowrap items-center space-x-6"> <Link href={`/${user.username}/following`}> - <span className="text-sm font-bold">{user._count?.following}</span> - <span className="text-sm text-muted-foreground"> Following</span> + <span className="font-bold">{user._count?.following}</span> + <span className="text-muted-foreground"> Following</span> </Link> <Link href={`/${user.username}/followers`}> - <span className="text-sm font-bold">{user._count?.followers}</span> - <span className="text-sm text-muted-foreground"> Followers</span> + <span className="font-bold">{user._count?.followers}</span> + <span className="text-muted-foreground"> Followers</span> </Link> </div> </div> diff --git a/components/profile/components/profile-user-content.tsx b/components/profile/components/user-games.tsx similarity index 87% rename from components/profile/components/profile-user-content.tsx rename to components/profile/components/user-games.tsx index 47642e3..4f9d414 100644 --- a/components/profile/components/profile-user-content.tsx +++ b/components/profile/components/user-games.tsx @@ -1,12 +1,11 @@ import GameItem from "@/components/game-item" -import { Card } from "@/components/ui/card" import { db } from "@/lib/db" import { getFavoriteGames } from "@/lib/igdb" import { getCurrentUser } from "@/lib/session" import { IGame } from "@/types/igdb-types" import { redirect } from "next/navigation" -export const ProfileUserContent = async ({ userid }: { userid: string }) => { +export const UserGames = async ({ username }: { username: string }) => { const user = await getCurrentUser() const sessionUser = await db.user.findFirst({ @@ -21,7 +20,7 @@ export const ProfileUserContent = async ({ userid }: { userid: string }) => { const fullUser = await db.user.findFirst({ where: { - username: userid + username: username }, include: { following: true, @@ -52,8 +51,8 @@ export const ProfileUserContent = async ({ userid }: { userid: string }) => { } return ( - <> - <Card className="overflow-hidden p-6 md:p-12" > + <div className="p-3 space-y-12"> + <div> <h1 className="text-2xl font-bold pb-3">Favorite Games</h1> <div className="grid grid-cols-1 ss:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5 gap-4 lg:gap-8 items-center"> {favoritegames ? favoritegames.map((game: IGame) => ( @@ -62,9 +61,9 @@ export const ProfileUserContent = async ({ userid }: { userid: string }) => { : <p>No favorites currently...</p>} </div> - </Card> + </div> - <Card className="overflow-hidden p-6 md:p-12" > + <div> <h1 className="text-2xl font-bold pb-3">Currently playing</h1> <div className="grid grid-cols-1 ss:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5 gap-4 lg:gap-8 items-center"> {playingGames ? playingGames.map((game: IGame) => ( @@ -73,9 +72,9 @@ export const ProfileUserContent = async ({ userid }: { userid: string }) => { : <p>Currently not playing any games...</p>} </div> - </Card> + </div> - <Card className="overflow-hidden p-6 md:p-12" > + <div> <h1 className="text-2xl font-bold pb-3">Planning to play</h1> <div className="grid grid-cols-1 ss:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5 gap-4 lg:gap-8 items-center"> {planningGames ? planningGames.map((game: IGame) => ( @@ -84,9 +83,9 @@ export const ProfileUserContent = async ({ userid }: { userid: string }) => { : <p>Currently not planning to play any games...</p>} </div> - </Card> + </div> - <Card className="overflow-hidden p-6 md:p-12" > + <div> <h1 className="text-2xl font-bold pb-3">Finished Games</h1> <div className="grid grid-cols-1 ss:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5 gap-4 lg:gap-8 items-center"> {finishedGames ? finishedGames.map((game: IGame) => ( @@ -95,7 +94,7 @@ export const ProfileUserContent = async ({ userid }: { userid: string }) => { : <p>No finished games...</p>} </div> - </Card> - </ > + </div> + </div > ) } \ No newline at end of file diff --git a/components/profile/components/user-gweets.tsx b/components/profile/components/user-gweets.tsx new file mode 100644 index 0000000..6f53a74 --- /dev/null +++ b/components/profile/components/user-gweets.tsx @@ -0,0 +1,69 @@ +"use client" + +import { InfiniteGweets } from "@/components/gweets/components/infinite-gweets" +import { useGweets } from "@/components/gweets/hooks/use-gweets" +import LoadingItem from "@/components/loading-item" +import { TryAgain } from "@/components/try-again" +import { usePathname } from "next/navigation" + +export const UserGweets = ({ username, sessionname }: { username: string, sessionname: string }) => { + const pathValue = usePathname().split("/")[2] || "gweets" + + const { + data: gweets, + isLoading, + isError, + isSuccess, + isFetchingNextPage, + fetchNextPage, + hasNextPage, + } = useGweets({ + queryKey: ["gweets", username, pathValue], + type: "user_" + pathValue, + id: username, + }) + + if (isLoading) { + return ( + <LoadingItem /> + ) + } + + if (isError) { + return ( + <TryAgain /> + ) + } + + if (gweets?.pages[0].gweets.length === 0) { + if (sessionname === username) { + return ( + <div className="m-6 flex justify-center"> + <div className="font-bold"> + <h1>You haven't gweeted anything yet.</h1> + <p>When you do, it'll show up here.</p> + </div> + </div> + ) + } else { + return ( + <div className="m-6 flex justify-center"> + <div className="font-bold"> + <h1><span className="text-sky-500">@{username}</span> hasn't gweeted anything yet.</h1> + <p>When they do, it'll show up here.</p> + </div> + </div> + ) + } + } + + return ( + <InfiniteGweets + gweets={gweets} + hasNextPage={hasNextPage} + fetchNextPage={fetchNextPage} + isFetchingNextPage={isFetchingNextPage} + isSuccess={isSuccess} + /> + ) +} \ No newline at end of file diff --git a/components/profile/types/index.ts b/components/profile/types/index.ts index c557032..ae11567 100644 --- a/components/profile/types/index.ts +++ b/components/profile/types/index.ts @@ -19,6 +19,7 @@ export interface IProfile { location: string | undefined website: string | undefined banner: { + removed: boolean | undefined url: string | undefined file: File | undefined } diff --git a/package-lock.json b/package-lock.json index 53f161a..f9117fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,8 +31,8 @@ "class-variance-authority": "^0.6.1", "clsx": "^1.2.1", "dayjs": "^1.11.9", - "lucide-react": "^0.258.0", - "next": "^13.4.8", + "lucide-react": "^0.259.0", + "next": "^13.4.9", "next-auth": "^4.22.1", "next-themes": "^0.2.1", "normalize-diacritics": "^4.0.0", @@ -53,15 +53,15 @@ "@testing-library/react": "^14.0.0", "@types/bcrypt": "^5.0.0", "@types/jest": "^29.5.2", - "@types/node": "^20.3.3", + "@types/node": "^20.4.0", "@types/react": "^18.2.14", "@types/react-dom": "^18.2.6", "autoprefixer": "10.4.14", "eslint": "^8.44.0", - "eslint-config-next": "^13.4.8", - "jest": "^29.6.0", - "jest-environment-jsdom": "^29.6.0", - "postcss": "8.4.24", + "eslint-config-next": "^13.4.9", + "jest": "^29.6.1", + "jest-environment-jsdom": "^29.6.1", + "postcss": "8.4.25", "prisma": "^4.16.2", "tailwindcss": "3.3.2", "typescript": "^5.1.6" @@ -160,20 +160,20 @@ } }, "node_modules/@babel/core": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.6.tgz", - "integrity": "sha512-HPIyDa6n+HKw5dEuway3vVAhBboYCtREBMp+IWeseZy6TFtzn6MHkCH2KKYUOC/vKKwgSMHQW4htBOrmuRPXfw==", + "version": "7.22.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.8.tgz", + "integrity": "sha512-75+KxFB4CZqYRXjx4NlR4J7yGvKumBuZTmV4NV6v09dVXXkuYVYLT68N6HCzLvfJ+fWCxQsntNzKwwIXL4bHnw==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", + "@babel/generator": "^7.22.7", "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-module-transforms": "^7.22.5", "@babel/helpers": "^7.22.6", - "@babel/parser": "^7.22.6", + "@babel/parser": "^7.22.7", "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.6", + "@babel/traverse": "^7.22.8", "@babel/types": "^7.22.5", "@nicolo-ribaudo/semver-v6": "^6.3.3", "convert-source-map": "^1.7.0", @@ -196,9 +196,9 @@ "dev": true }, "node_modules/@babel/generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", - "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.7.tgz", + "integrity": "sha512-p+jPjMG+SI8yvIaxGgeW24u7q9+5+TGpZh8/CuB7RhBKd7RCy8FayNEFNNKrNK/eUcY/4ExQqLmyrvBXKsIcwQ==", "dev": true, "dependencies": { "@babel/types": "^7.22.5", @@ -454,9 +454,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.6.tgz", - "integrity": "sha512-EIQu22vNkceq3LbjAq7knDf/UmtI2qbcNI8GRBlijez6TpQLvSodJPYfydQmNA5buwkxxxa/PVI44jjYZ+/cLw==", + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -668,18 +668,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.6.tgz", - "integrity": "sha512-53CijMvKlLIDlOTrdWiHileRddlIiwUIyCKqYa7lYnnPldXCG5dUSN38uT0cA6i7rHWNKJLH0VU/Kxdr1GzB3w==", + "version": "7.22.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz", + "integrity": "sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", + "@babel/generator": "^7.22.7", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.6", + "@babel/parser": "^7.22.7", "@babel/types": "^7.22.5", "debug": "^4.1.0", "globals": "^11.1.0" @@ -948,16 +948,16 @@ } }, "node_modules/@jest/console": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.6.0.tgz", - "integrity": "sha512-anb6L1yg7uPQpytNVA5skRaXy3BmrsU8icRhTVNbWdjYWDDfy8M1Kq5HIVRpYoABdbpqsc5Dr+jtu4+qWRQBiQ==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.6.1.tgz", + "integrity": "sha512-Aj772AYgwTSr5w8qnyoJ0eDYvN6bMsH3ORH1ivMotrInHLKdUz6BDlaEXHdM6kODaBIkNIyQGzsMvRdOv7VG7Q==", "dev": true, "dependencies": { - "@jest/types": "^29.6.0", + "@jest/types": "^29.6.1", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.6.0", - "jest-util": "^29.6.0", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1", "slash": "^3.0.0" }, "engines": { @@ -981,16 +981,16 @@ } }, "node_modules/@jest/core": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.6.0.tgz", - "integrity": "sha512-5dbMHfY/5R9m8NbgmB3JlxQqooZ/ooPSOiwEQZZ+HODwJTbIu37seVcZNBK29aMdXtjvTRB3f6LCvkKq+r8uQA==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.6.1.tgz", + "integrity": "sha512-CcowHypRSm5oYQ1obz1wfvkjZZ2qoQlrKKvlfPwh5jUXVU12TWr2qMeH8chLMuTFzHh5a1g2yaqlqDICbr+ukQ==", "dev": true, "dependencies": { - "@jest/console": "^29.6.0", - "@jest/reporters": "^29.6.0", - "@jest/test-result": "^29.6.0", - "@jest/transform": "^29.6.0", - "@jest/types": "^29.6.0", + "@jest/console": "^29.6.1", + "@jest/reporters": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", @@ -998,20 +998,20 @@ "exit": "^0.1.2", "graceful-fs": "^4.2.9", "jest-changed-files": "^29.5.0", - "jest-config": "^29.6.0", - "jest-haste-map": "^29.6.0", - "jest-message-util": "^29.6.0", + "jest-config": "^29.6.1", + "jest-haste-map": "^29.6.1", + "jest-message-util": "^29.6.1", "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.0", - "jest-resolve-dependencies": "^29.6.0", - "jest-runner": "^29.6.0", - "jest-runtime": "^29.6.0", - "jest-snapshot": "^29.6.0", - "jest-util": "^29.6.0", - "jest-validate": "^29.6.0", - "jest-watcher": "^29.6.0", + "jest-resolve": "^29.6.1", + "jest-resolve-dependencies": "^29.6.1", + "jest-runner": "^29.6.1", + "jest-runtime": "^29.6.1", + "jest-snapshot": "^29.6.1", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", + "jest-watcher": "^29.6.1", "micromatch": "^4.0.4", - "pretty-format": "^29.6.0", + "pretty-format": "^29.6.1", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -1044,9 +1044,9 @@ } }, "node_modules/@jest/core/node_modules/pretty-format": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.0.tgz", - "integrity": "sha512-XH+D4n7Ey0iSR6PdAnBs99cWMZdGsdKrR33iUHQNr79w1szKTCIZDVdXuccAsHVwDBp0XeWPfNEoaxP9EZgRmQ==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", "dev": true, "dependencies": { "@jest/schemas": "^29.6.0", @@ -1076,37 +1076,37 @@ "dev": true }, "node_modules/@jest/environment": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.6.0.tgz", - "integrity": "sha512-bUZLYUxYlUIsslBbxII0fq0kr1+friI3Gty+cRLmocGB1jdcAHs7FS8QdCDqedE8q4DZE1g/AJHH6OJZBLGGsg==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.6.1.tgz", + "integrity": "sha512-RMMXx4ws+Gbvw3DfLSuo2cfQlK7IwGbpuEWXCqyYDcqYTI+9Ju3a5hDnXaxjNsa6uKh9PQF2v+qg+RLe63tz5A==", "dev": true, "dependencies": { - "@jest/fake-timers": "^29.6.0", - "@jest/types": "^29.6.0", + "@jest/fake-timers": "^29.6.1", + "@jest/types": "^29.6.1", "@types/node": "*", - "jest-mock": "^29.6.0" + "jest-mock": "^29.6.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.6.0.tgz", - "integrity": "sha512-a7pISPW28Q3c0/pLwz4mQ6tbAI+hc8/0CJp9ix6e9U4dQ6TiHQX82CT5DV5BMWaw8bFH4E6zsfZxXdn6Ka23Bw==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.6.1.tgz", + "integrity": "sha512-N5xlPrAYaRNyFgVf2s9Uyyvr795jnB6rObuPx4QFvNJz8aAjpZUDfO4bh5G/xuplMID8PrnuF1+SfSyDxhsgYg==", "dev": true, "dependencies": { - "expect": "^29.6.0", - "jest-snapshot": "^29.6.0" + "expect": "^29.6.1", + "jest-snapshot": "^29.6.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.0.tgz", - "integrity": "sha512-LLSQQN7oypMSETKoPWpsWYVKJd9LQWmSDDAc4hUQ4JocVC7LAMy9R3ZMhlnLwbcFvQORZnZR7HM893Px6cJhvA==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.1.tgz", + "integrity": "sha512-o319vIf5pEMx0LmzSxxkYYxo4wrRLKHq9dP1yJU7FoPTB0LfAKSz8SWD6D/6U3v/O52t9cF5t+MeJiRsfk7zMw==", "dev": true, "dependencies": { "jest-get-type": "^29.4.3" @@ -1116,48 +1116,48 @@ } }, "node_modules/@jest/fake-timers": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.6.0.tgz", - "integrity": "sha512-nuCU46AsZoskthWSDS2Aj6LARgyNcp5Fjx2qxsO/fPl1Wp1CJ+dBDqs0OkEcJK8FBeV/MbjH5efe79M2sHcV+A==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.6.1.tgz", + "integrity": "sha512-RdgHgbXyosCDMVYmj7lLpUwXA4c69vcNzhrt69dJJdf8azUrpRh3ckFCaTPNjsEeRi27Cig0oKDGxy5j7hOgHg==", "dev": true, "dependencies": { - "@jest/types": "^29.6.0", + "@jest/types": "^29.6.1", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.6.0", - "jest-mock": "^29.6.0", - "jest-util": "^29.6.0" + "jest-message-util": "^29.6.1", + "jest-mock": "^29.6.1", + "jest-util": "^29.6.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/globals": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.6.0.tgz", - "integrity": "sha512-IQQ3hZ2D/hwEwXSMv5GbfhzdH0nTQR3KPYxnuW6gYWbd6+7/zgMz7Okn6EgBbNtJNONq03k5EKA6HqGyzRbpeg==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.6.1.tgz", + "integrity": "sha512-2VjpaGy78JY9n9370H8zGRCFbYVWwjY6RdDMhoJHa1sYfwe6XM/azGN0SjY8kk7BOZApIejQ1BFPyH7FPG0w3A==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.0", - "@jest/expect": "^29.6.0", - "@jest/types": "^29.6.0", - "jest-mock": "^29.6.0" + "@jest/environment": "^29.6.1", + "@jest/expect": "^29.6.1", + "@jest/types": "^29.6.1", + "jest-mock": "^29.6.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.6.0.tgz", - "integrity": "sha512-dWEq4HI0VvHcAD6XTtyBKKARLytyyWPIy1SvGOcU91106MfvHPdxZgupFwVHd8TFpZPpA3SebYjtwS5BUS76Rw==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.6.1.tgz", + "integrity": "sha512-9zuaI9QKr9JnoZtFQlw4GREQbxgmNYXU6QuWtmuODvk5nvPUeBYapVR/VYMyi2WSx3jXTLJTJji8rN6+Cm4+FA==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.6.0", - "@jest/test-result": "^29.6.0", - "@jest/transform": "^29.6.0", - "@jest/types": "^29.6.0", + "@jest/console": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", @@ -1170,9 +1170,9 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.6.0", - "jest-util": "^29.6.0", - "jest-worker": "^29.6.0", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1", + "jest-worker": "^29.6.1", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -1233,13 +1233,13 @@ } }, "node_modules/@jest/test-result": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.6.0.tgz", - "integrity": "sha512-9qLb7xITeyWhM4yatn2muqfomuoCTOhv0QV9i7XiIyYi3QLfnvPv5NeJp5u0PZeutAOROMLKakOkmoAisOr3YQ==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.6.1.tgz", + "integrity": "sha512-Ynr13ZRcpX6INak0TPUukU8GWRfm/vAytE3JbJNGAvINySWYdfE7dGZMbk36oVuK4CigpbhMn8eg1dixZ7ZJOw==", "dev": true, "dependencies": { - "@jest/console": "^29.6.0", - "@jest/types": "^29.6.0", + "@jest/console": "^29.6.1", + "@jest/types": "^29.6.1", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, @@ -1248,14 +1248,14 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.6.0.tgz", - "integrity": "sha512-HYCS3LKRQotKWj2mnA3AN13PPevYZu8MJKm12lzYojpJNnn6kI/3PWmr1At/e3tUu+FHQDiOyaDVuR4EV3ezBw==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.6.1.tgz", + "integrity": "sha512-oBkC36PCDf/wb6dWeQIhaviU0l5u6VCsXa119yqdUosYAt7/FbQU2M2UoziO3igj/HBDEgp57ONQ3fm0v9uyyg==", "dev": true, "dependencies": { - "@jest/test-result": "^29.6.0", + "@jest/test-result": "^29.6.1", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.0", + "jest-haste-map": "^29.6.1", "slash": "^3.0.0" }, "engines": { @@ -1263,22 +1263,22 @@ } }, "node_modules/@jest/transform": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.6.0.tgz", - "integrity": "sha512-bhP/KxPo3e322FJ0nKAcb6WVK76ZYyQd1lWygJzoSqP8SYMSLdxHqP4wnPTI4WvbB8PKPDV30y5y7Tya4RHOBA==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.6.1.tgz", + "integrity": "sha512-URnTneIU3ZjRSaf906cvf6Hpox3hIeJXRnz3VDSw5/X93gR8ycdfSIEy19FlVx8NFmpN7fe3Gb1xF+NjXaQLWg==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/types": "^29.6.0", + "@jest/types": "^29.6.1", "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.0", + "jest-haste-map": "^29.6.1", "jest-regex-util": "^29.4.3", - "jest-util": "^29.6.0", + "jest-util": "^29.6.1", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -1305,9 +1305,9 @@ } }, "node_modules/@jest/types": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.0.tgz", - "integrity": "sha512-8XCgL9JhqbJTFnMRjEAO+TuW251+MoMd5BSzLiE3vvzpQ8RlBxy8NoyNkDhs3K3OL3HeVinlOl9or5p7GTeOLg==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", + "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", "dev": true, "dependencies": { "@jest/schemas": "^29.6.0", @@ -1405,23 +1405,23 @@ } }, "node_modules/@next/env": { - "version": "13.4.8", - "resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.8.tgz", - "integrity": "sha512-twuSf1klb3k9wXI7IZhbZGtFCWvGD4wXTY2rmvzIgVhXhs7ISThrbNyutBx3jWIL8Y/Hk9+woytFz5QsgtcRKQ==" + "version": "13.4.9", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.9.tgz", + "integrity": "sha512-vuDRK05BOKfmoBYLNi2cujG2jrYbEod/ubSSyqgmEx9n/W3eZaJQdRNhTfumO+qmq/QTzLurW487n/PM/fHOkw==" }, "node_modules/@next/eslint-plugin-next": { - "version": "13.4.8", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.4.8.tgz", - "integrity": "sha512-cmfVHpxWjjcETFt2WHnoFU6EmY69QcPJRlRNAooQlNe53Ke90vg1Ci/dkPffryJZaxxiRziP9bQrV8lDVCn3Fw==", + "version": "13.4.9", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.4.9.tgz", + "integrity": "sha512-nDtGpa992tNyAkT/KmSMy7QkHfNZmGCBYhHtafU97DubqxzNdvLsqRtliQ4FU04CysRCtvP2hg8rRC1sAKUTUA==", "dev": true, "dependencies": { "glob": "7.1.7" } }, "node_modules/@next/swc-darwin-arm64": { - "version": "13.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.8.tgz", - "integrity": "sha512-MSFplVM4dTWOuKAUv0XR9gY7AWtMSBu9os9f+kp+s5rWhM1I2CdR3obFttd6366nS/W/VZxbPM5oEIdlIa46zA==", + "version": "13.4.9", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.9.tgz", + "integrity": "sha512-TVzGHpZoVBk3iDsTOQA/R6MGmFp0+17SWXMEWd6zG30AfuELmSSMe2SdPqxwXU0gbpWkJL1KgfLzy5ReN0crqQ==", "cpu": [ "arm64" ], @@ -1434,9 +1434,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "13.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.8.tgz", - "integrity": "sha512-Reox+UXgonon9P0WNDE6w85DGtyBqGitl/ryznOvn6TvfxEaZIpTgeu3ZrJLU9dHSMhiK7YAM793mE/Zii2/Qw==", + "version": "13.4.9", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.9.tgz", + "integrity": "sha512-aSfF1fhv28N2e7vrDZ6zOQ+IIthocfaxuMWGReB5GDriF0caTqtHttAvzOMgJgXQtQx6XhyaJMozLTSEXeNN+A==", "cpu": [ "x64" ], @@ -1449,9 +1449,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "13.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.8.tgz", - "integrity": "sha512-kdyzYvAYtqQVgzIKNN7e1rLU8aZv86FDSRqPlOkKZlvqudvTO0iohuTPmnEEDlECeBM6qRPShNffotDcU/R2KA==", + "version": "13.4.9", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.9.tgz", + "integrity": "sha512-JhKoX5ECzYoTVyIy/7KykeO4Z2lVKq7HGQqvAH+Ip9UFn1MOJkOnkPRB7v4nmzqAoY+Je05Aj5wNABR1N18DMg==", "cpu": [ "arm64" ], @@ -1464,9 +1464,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "13.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.8.tgz", - "integrity": "sha512-oWxx4yRkUGcR81XwbI+T0zhZ3bDF6V1aVLpG+C7hSG50ULpV8gC39UxVO22/bv93ZlcfMY4zl8xkz9Klct6dpQ==", + "version": "13.4.9", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.9.tgz", + "integrity": "sha512-OOn6zZBIVkm/4j5gkPdGn4yqQt+gmXaLaSjRSO434WplV8vo2YaBNbSHaTM9wJpZTHVDYyjzuIYVEzy9/5RVZw==", "cpu": [ "arm64" ], @@ -1479,9 +1479,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "13.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.8.tgz", - "integrity": "sha512-anhtvuO6eE9YRhYnaEGTfbpH3L5gT/9qPFcNoi6xS432r/4DAtpJY8kNktqkTVevVIC/pVumqO8tV59PR3zbNg==", + "version": "13.4.9", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.9.tgz", + "integrity": "sha512-iA+fJXFPpW0SwGmx/pivVU+2t4zQHNOOAr5T378PfxPHY6JtjV6/0s1vlAJUdIHeVpX98CLp9k5VuKgxiRHUpg==", "cpu": [ "x64" ], @@ -1494,9 +1494,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "13.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.8.tgz", - "integrity": "sha512-aR+J4wWfNgH1DwCCBNjan7Iumx0lLtn+2/rEYuhIrYLY4vnxqSVGz9u3fXcgUwo6Q9LT8NFkaqK1vPprdq+BXg==", + "version": "13.4.9", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.9.tgz", + "integrity": "sha512-rlNf2WUtMM+GAQrZ9gMNdSapkVi3koSW3a+dmBVp42lfugWVvnyzca/xJlN48/7AGx8qu62WyO0ya1ikgOxh6A==", "cpu": [ "x64" ], @@ -1509,9 +1509,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "13.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.8.tgz", - "integrity": "sha512-OWBKIrJwQBTqrat0xhxEB/jcsjJR3+diD9nc/Y8F1mRdQzsn4bPsomgJyuqPVZs6Lz3K18qdIkvywmfSq75SsQ==", + "version": "13.4.9", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.9.tgz", + "integrity": "sha512-5T9ybSugXP77nw03vlgKZxD99AFTHaX8eT1ayKYYnGO9nmYhJjRPxcjU5FyYI+TdkQgEpIcH7p/guPLPR0EbKA==", "cpu": [ "arm64" ], @@ -1524,9 +1524,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "13.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.8.tgz", - "integrity": "sha512-agiPWGjUndXGTOn4ChbKipQXRA6/UPkywAWIkx7BhgGv48TiJfHTK6MGfBoL9tS6B4mtW39++uy0wFPnfD0JWg==", + "version": "13.4.9", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.9.tgz", + "integrity": "sha512-ojZTCt1lP2ucgpoiFgrFj07uq4CZsq4crVXpLGgQfoFq00jPKRPgesuGPaz8lg1yLfvafkU3Jd1i8snKwYR3LA==", "cpu": [ "ia32" ], @@ -1539,9 +1539,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "13.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.8.tgz", - "integrity": "sha512-UIRKoByVKbuR6SnFG4JM8EMFlJrfEGuUQ1ihxzEleWcNwRMMiVaCj1KyqfTOW8VTQhJ0u8P1Ngg6q1RwnIBTtw==", + "version": "13.4.9", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.9.tgz", + "integrity": "sha512-QbT03FXRNdpuL+e9pLnu+XajZdm/TtIXVYY4lA9t+9l0fLZbHXDYEKitAqxrOj37o3Vx5ufxiRAniaIebYDCgw==", "cpu": [ "x64" ], @@ -2905,9 +2905,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.3.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.3.tgz", - "integrity": "sha512-wheIYdr4NYML61AjC8MKj/2jrR/kDQri/CIpVoZwldwhnIrD/j9jIU5bJ8yBKuB2VhpFV7Ab6G2XkBjv9r9Zzw==", + "version": "20.4.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.0.tgz", + "integrity": "sha512-jfT7iTf/4kOQ9S7CHV9BIyRaQqHu67mOjsIQBC3BKZvzvUB6zLxEwJ6sBE3ozcvP8kF6Uk5PXN0Q+c0dfhGX0g==", "dev": true }, "node_modules/@types/prettier": { @@ -3484,12 +3484,12 @@ } }, "node_modules/babel-jest": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.0.tgz", - "integrity": "sha512-Jj8Bq2yKsk11XLk06Nm8SdvYkAcecH+GuhxB8DnK5SncjHnJ88TQjSnGgE7jpajpnSvz9DZ6X8hXrDkD/6/TPQ==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.1.tgz", + "integrity": "sha512-qu+3bdPEQC6KZSPz+4Fyjbga5OODNcp49j6GKzG1EKbkfyJBxEYGVUmVGpwCSeGouG52R4EgYMLb6p9YeEEQ4A==", "dev": true, "dependencies": { - "@jest/transform": "^29.6.0", + "@jest/transform": "^29.6.1", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", "babel-preset-jest": "^29.5.0", @@ -3925,9 +3925,9 @@ } }, "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true }, "node_modules/color-convert": { @@ -4702,12 +4702,12 @@ } }, "node_modules/eslint-config-next": { - "version": "13.4.8", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.4.8.tgz", - "integrity": "sha512-2hE0b6lHuhtHBX8VgEXi8v4G8PVrPUBMOSLCTq8qtcQ2qQOX7+uBOLK2kU4FD2qDZzyXNlhmuH+WLT5ptY4XLA==", + "version": "13.4.9", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.4.9.tgz", + "integrity": "sha512-0fLtKRR268NArpqeXXwnLgMXPvF64YESQvptVg+RMLCaijKm3FICN9Y7Jc1p2o+yrWwE4DufJXDM/Vo53D1L7g==", "dev": true, "dependencies": { - "@next/eslint-plugin-next": "13.4.8", + "@next/eslint-plugin-next": "13.4.9", "@rushstack/eslint-patch": "^1.1.3", "@typescript-eslint/parser": "^5.42.0", "eslint-import-resolver-node": "^0.3.6", @@ -4715,7 +4715,7 @@ "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-react": "^7.31.7", - "eslint-plugin-react-hooks": "^4.5.0" + "eslint-plugin-react-hooks": "5.0.0-canary-7118f5dd7-20230705" }, "peerDependencies": { "eslint": "^7.23.0 || ^8.0.0", @@ -4940,9 +4940,9 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "version": "5.0.0-canary-7118f5dd7-20230705", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz", + "integrity": "sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==", "dev": true, "engines": { "node": ">=10" @@ -5129,17 +5129,17 @@ } }, "node_modules/expect": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.6.0.tgz", - "integrity": "sha512-AV+HaBtnDJ2YEUhPPo25HyUHBLaetM+y/Dq6pEC8VPQyt1dK+k8MfGkMy46djy2bddcqESc1kl4/K1uLWSfk9g==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.6.1.tgz", + "integrity": "sha512-XEdDLonERCU1n9uR56/Stx9OqojaLAQtZf9PrCHH9Hl8YXiEIka3H4NXJ3NOIBmQJTg7+j7buh34PMHfJujc8g==", "dev": true, "dependencies": { - "@jest/expect-utils": "^29.6.0", + "@jest/expect-utils": "^29.6.1", "@types/node": "*", "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.6.0", - "jest-message-util": "^29.6.0", - "jest-util": "^29.6.0" + "jest-matcher-utils": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -6332,15 +6332,15 @@ } }, "node_modules/jest": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.6.0.tgz", - "integrity": "sha512-do1J9gGrQ68E4UfMz/4OM71p9qCqQxu32N/9ZfeYFSSlx0uUOuxeyZxtJZNaUTW12ZA11ERhmBjBhy1Ho96R4g==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.6.1.tgz", + "integrity": "sha512-Nirw5B4nn69rVUZtemCQhwxOBhm0nsp3hmtF4rzCeWD7BkjAXRIji7xWQfnTNbz9g0aVsBX6aZK3n+23LM6uDw==", "dev": true, "dependencies": { - "@jest/core": "^29.6.0", - "@jest/types": "^29.6.0", + "@jest/core": "^29.6.1", + "@jest/types": "^29.6.1", "import-local": "^3.0.2", - "jest-cli": "^29.6.0" + "jest-cli": "^29.6.1" }, "bin": { "jest": "bin/jest.js" @@ -6371,28 +6371,28 @@ } }, "node_modules/jest-circus": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.6.0.tgz", - "integrity": "sha512-LtG45qEKhse2Ws5zNR4DnZATReLGQXzBZGZnJ0DU37p6d4wDhu41vvczCQ3Ou+llR6CRYDBshsubV7H4jZvIkw==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.6.1.tgz", + "integrity": "sha512-tPbYLEiBU4MYAL2XoZme/bgfUeotpDBd81lgHLCbDZZFaGmECk0b+/xejPFtmiBP87GgP/y4jplcRpbH+fgCzQ==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.0", - "@jest/expect": "^29.6.0", - "@jest/test-result": "^29.6.0", - "@jest/types": "^29.6.0", + "@jest/environment": "^29.6.1", + "@jest/expect": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/types": "^29.6.1", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^0.7.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.6.0", - "jest-matcher-utils": "^29.6.0", - "jest-message-util": "^29.6.0", - "jest-runtime": "^29.6.0", - "jest-snapshot": "^29.6.0", - "jest-util": "^29.6.0", + "jest-each": "^29.6.1", + "jest-matcher-utils": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-runtime": "^29.6.1", + "jest-snapshot": "^29.6.1", + "jest-util": "^29.6.1", "p-limit": "^3.1.0", - "pretty-format": "^29.6.0", + "pretty-format": "^29.6.1", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" @@ -6418,9 +6418,9 @@ } }, "node_modules/jest-circus/node_modules/pretty-format": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.0.tgz", - "integrity": "sha512-XH+D4n7Ey0iSR6PdAnBs99cWMZdGsdKrR33iUHQNr79w1szKTCIZDVdXuccAsHVwDBp0XeWPfNEoaxP9EZgRmQ==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", "dev": true, "dependencies": { "@jest/schemas": "^29.6.0", @@ -6450,21 +6450,21 @@ "dev": true }, "node_modules/jest-cli": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.6.0.tgz", - "integrity": "sha512-WvZIaanK/abkw6s01924DQ2QLwM5Q4Y4iPbSDb9Zg6smyXGqqcPQ7ft9X8D7B0jICz312eSzM6UlQNxuZJBrMw==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.6.1.tgz", + "integrity": "sha512-607dSgTA4ODIN6go9w6xY3EYkyPFGicx51a69H7yfvt7lN53xNswEVLovq+E77VsTRi5fWprLH0yl4DJgE8Ing==", "dev": true, "dependencies": { - "@jest/core": "^29.6.0", - "@jest/test-result": "^29.6.0", - "@jest/types": "^29.6.0", + "@jest/core": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/types": "^29.6.1", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.6.0", - "jest-util": "^29.6.0", - "jest-validate": "^29.6.0", + "jest-config": "^29.6.1", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", "prompts": "^2.0.1", "yargs": "^17.3.1" }, @@ -6500,31 +6500,31 @@ } }, "node_modules/jest-config": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.6.0.tgz", - "integrity": "sha512-fKA4jM91PDqWVkMpb1FVKxIuhg3hC6hgaen57cr1rRZkR96dCatvJZsk3ik7/GNu9ERj9wgAspOmyvkFoGsZhA==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.6.1.tgz", + "integrity": "sha512-XdjYV2fy2xYixUiV2Wc54t3Z4oxYPAELUzWnV6+mcbq0rh742X2p52pii5A3oeRzYjLnQxCsZmp0qpI6klE2cQ==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.6.0", - "@jest/types": "^29.6.0", - "babel-jest": "^29.6.0", + "@jest/test-sequencer": "^29.6.1", + "@jest/types": "^29.6.1", + "babel-jest": "^29.6.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.6.0", - "jest-environment-node": "^29.6.0", + "jest-circus": "^29.6.1", + "jest-environment-node": "^29.6.1", "jest-get-type": "^29.4.3", "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.0", - "jest-runner": "^29.6.0", - "jest-util": "^29.6.0", - "jest-validate": "^29.6.0", + "jest-resolve": "^29.6.1", + "jest-runner": "^29.6.1", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.6.0", + "pretty-format": "^29.6.1", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -6561,9 +6561,9 @@ } }, "node_modules/jest-config/node_modules/pretty-format": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.0.tgz", - "integrity": "sha512-XH+D4n7Ey0iSR6PdAnBs99cWMZdGsdKrR33iUHQNr79w1szKTCIZDVdXuccAsHVwDBp0XeWPfNEoaxP9EZgRmQ==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", "dev": true, "dependencies": { "@jest/schemas": "^29.6.0", @@ -6593,15 +6593,15 @@ "dev": true }, "node_modules/jest-diff": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.0.tgz", - "integrity": "sha512-ZRm7cd2m9YyZ0N3iMyuo1iUiprxQ/MFpYWXzEEj7hjzL3WnDffKW8192XBDcrAI8j7hnrM1wed3bL/oEnYF/8w==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.1.tgz", + "integrity": "sha512-FsNCvinvl8oVxpNLttNQX7FAq7vR+gMDGj90tiP7siWw1UdakWUGqrylpsYrpvj908IYckm5Y0Q7azNAozU1Kg==", "dev": true, "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.4.3", "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.0" + "pretty-format": "^29.6.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -6624,9 +6624,9 @@ } }, "node_modules/jest-diff/node_modules/pretty-format": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.0.tgz", - "integrity": "sha512-XH+D4n7Ey0iSR6PdAnBs99cWMZdGsdKrR33iUHQNr79w1szKTCIZDVdXuccAsHVwDBp0XeWPfNEoaxP9EZgRmQ==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", "dev": true, "dependencies": { "@jest/schemas": "^29.6.0", @@ -6668,16 +6668,16 @@ } }, "node_modules/jest-each": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.6.0.tgz", - "integrity": "sha512-d0Jem4RBAlFUyV6JSXPSHVUpNo5RleSj+iJEy1G3+ZCrzHDjWs/1jUfrbnJKHdJdAx5BCEce/Ju379WqHhQk4w==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.6.1.tgz", + "integrity": "sha512-n5eoj5eiTHpKQCAVcNTT7DRqeUmJ01hsAL0Q1SMiBHcBcvTKDELixQOGMCpqhbIuTcfC4kMfSnpmDqRgRJcLNQ==", "dev": true, "dependencies": { - "@jest/types": "^29.6.0", + "@jest/types": "^29.6.1", "chalk": "^4.0.0", "jest-get-type": "^29.4.3", - "jest-util": "^29.6.0", - "pretty-format": "^29.6.0" + "jest-util": "^29.6.1", + "pretty-format": "^29.6.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -6700,9 +6700,9 @@ } }, "node_modules/jest-each/node_modules/pretty-format": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.0.tgz", - "integrity": "sha512-XH+D4n7Ey0iSR6PdAnBs99cWMZdGsdKrR33iUHQNr79w1szKTCIZDVdXuccAsHVwDBp0XeWPfNEoaxP9EZgRmQ==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", "dev": true, "dependencies": { "@jest/schemas": "^29.6.0", @@ -6732,18 +6732,18 @@ "dev": true }, "node_modules/jest-environment-jsdom": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.6.0.tgz", - "integrity": "sha512-/cOhoyv+uMbOh4nQPyqtkPas/uUxr5AbK6TPqMMFyj1qEJURY78RhqgBjOFIX02+Lvu5V0RWLq2qKY1dHubFOQ==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.6.1.tgz", + "integrity": "sha512-PoY+yLaHzVRhVEjcVKSfJ7wXmJW4UqPYNhR05h7u/TK0ouf6DmRNZFBL/Z00zgQMyWGMBXn69/FmOvhEJu8cIw==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.0", - "@jest/fake-timers": "^29.6.0", - "@jest/types": "^29.6.0", + "@jest/environment": "^29.6.1", + "@jest/fake-timers": "^29.6.1", + "@jest/types": "^29.6.1", "@types/jsdom": "^20.0.0", "@types/node": "*", - "jest-mock": "^29.6.0", - "jest-util": "^29.6.0", + "jest-mock": "^29.6.1", + "jest-util": "^29.6.1", "jsdom": "^20.0.0" }, "engines": { @@ -6759,17 +6759,17 @@ } }, "node_modules/jest-environment-node": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.6.0.tgz", - "integrity": "sha512-BOf5Q2/nFCdBOnyBM5c5/6DbdQYgc+0gyUQ8l8qhUAB8O7pM+4QJXIXJsRZJaxd5SHV6y5VArTVhOfogoqcP8Q==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.6.1.tgz", + "integrity": "sha512-ZNIfAiE+foBog24W+2caIldl4Irh8Lx1PUhg/GZ0odM1d/h2qORAsejiFc7zb+SEmYPn1yDZzEDSU5PmDkmVLQ==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.0", - "@jest/fake-timers": "^29.6.0", - "@jest/types": "^29.6.0", + "@jest/environment": "^29.6.1", + "@jest/fake-timers": "^29.6.1", + "@jest/types": "^29.6.1", "@types/node": "*", - "jest-mock": "^29.6.0", - "jest-util": "^29.6.0" + "jest-mock": "^29.6.1", + "jest-util": "^29.6.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -6785,20 +6785,20 @@ } }, "node_modules/jest-haste-map": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.0.tgz", - "integrity": "sha512-dY1DKufptj7hcJSuhpqlYPGcnN3XjlOy/g0jinpRTMsbb40ivZHiuIPzeminOZkrek8C+oDxC54ILGO3vMLojg==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.1.tgz", + "integrity": "sha512-0m7f9PZXxOCk1gRACiVgX85knUKPKLPg4oRCjLoqIm9brTHXaorMA0JpmtmVkQiT8nmXyIVoZd/nnH1cfC33ig==", "dev": true, "dependencies": { - "@jest/types": "^29.6.0", + "@jest/types": "^29.6.1", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", "jest-regex-util": "^29.4.3", - "jest-util": "^29.6.0", - "jest-worker": "^29.6.0", + "jest-util": "^29.6.1", + "jest-worker": "^29.6.1", "micromatch": "^4.0.4", "walker": "^1.0.8" }, @@ -6810,13 +6810,13 @@ } }, "node_modules/jest-leak-detector": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.6.0.tgz", - "integrity": "sha512-JdV6EZOPxHR1gd6ccxjNowuROkT2jtGU5G/g58RcJX1xe5mrtLj0g6/ZkyMoXF4cs+tTkHMFX6pcIrB1QPQwCw==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.6.1.tgz", + "integrity": "sha512-OrxMNyZirpOEwkF3UHnIkAiZbtkBWiye+hhBweCHkVbCgyEy71Mwbb5zgeTNYWJBi1qgDVfPC1IwO9dVEeTLwQ==", "dev": true, "dependencies": { "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.0" + "pretty-format": "^29.6.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -6835,9 +6835,9 @@ } }, "node_modules/jest-leak-detector/node_modules/pretty-format": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.0.tgz", - "integrity": "sha512-XH+D4n7Ey0iSR6PdAnBs99cWMZdGsdKrR33iUHQNr79w1szKTCIZDVdXuccAsHVwDBp0XeWPfNEoaxP9EZgRmQ==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", "dev": true, "dependencies": { "@jest/schemas": "^29.6.0", @@ -6855,15 +6855,15 @@ "dev": true }, "node_modules/jest-matcher-utils": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.0.tgz", - "integrity": "sha512-oSlqfGN+sbkB2Q5um/zL7z80w84FEAcLKzXBZIPyRk2F2Srg1ubhrHVKW68JCvb2+xKzAeGw35b+6gciS24PHw==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.1.tgz", + "integrity": "sha512-SLaztw9d2mfQQKHmJXKM0HCbl2PPVld/t9Xa6P9sgiExijviSp7TnZZpw2Fpt+OI3nwUO/slJbOfzfUMKKC5QA==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^29.6.0", + "jest-diff": "^29.6.1", "jest-get-type": "^29.4.3", - "pretty-format": "^29.6.0" + "pretty-format": "^29.6.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -6886,9 +6886,9 @@ } }, "node_modules/jest-matcher-utils/node_modules/pretty-format": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.0.tgz", - "integrity": "sha512-XH+D4n7Ey0iSR6PdAnBs99cWMZdGsdKrR33iUHQNr79w1szKTCIZDVdXuccAsHVwDBp0XeWPfNEoaxP9EZgRmQ==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", "dev": true, "dependencies": { "@jest/schemas": "^29.6.0", @@ -6918,18 +6918,18 @@ "dev": true }, "node_modules/jest-message-util": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.6.0.tgz", - "integrity": "sha512-mkCp56cETbpoNtsaeWVy6SKzk228mMi9FPHSObaRIhbR2Ujw9PqjW/yqVHD2tN1bHbC8ol6h3UEo7dOPmIYwIA==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.6.1.tgz", + "integrity": "sha512-KoAW2zAmNSd3Gk88uJ56qXUWbFk787QKmjjJVOjtGFmmGSZgDBrlIL4AfQw1xyMYPNVD7dNInfIbur9B2rd/wQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.0", + "@jest/types": "^29.6.1", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.6.0", + "pretty-format": "^29.6.1", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -6954,9 +6954,9 @@ } }, "node_modules/jest-message-util/node_modules/pretty-format": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.0.tgz", - "integrity": "sha512-XH+D4n7Ey0iSR6PdAnBs99cWMZdGsdKrR33iUHQNr79w1szKTCIZDVdXuccAsHVwDBp0XeWPfNEoaxP9EZgRmQ==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", "dev": true, "dependencies": { "@jest/schemas": "^29.6.0", @@ -6986,14 +6986,14 @@ "dev": true }, "node_modules/jest-mock": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.6.0.tgz", - "integrity": "sha512-2Pb7R2w24Q0aUVn+2/vdRDL6CqGqpheDZy7zrXav8FotOpSGw/4bS2hyVoKHMEx4xzOn6EyCAGwc5czWxXeN7w==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.6.1.tgz", + "integrity": "sha512-brovyV9HBkjXAEdRooaTQK42n8usKoSRR3gihzUpYeV/vwqgSoNfrksO7UfSACnPmxasO/8TmHM3w9Hp3G1dgw==", "dev": true, "dependencies": { - "@jest/types": "^29.6.0", + "@jest/types": "^29.6.1", "@types/node": "*", - "jest-util": "^29.6.0" + "jest-util": "^29.6.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -7026,17 +7026,17 @@ } }, "node_modules/jest-resolve": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.6.0.tgz", - "integrity": "sha512-+hrpY4LzAONoZA/rvB6rnZLkOSA6UgJLpdCWrOZNSgGxWMumzRLu7dLUSCabAHzoHIDQ9qXfr3th1zYNJ0E8sQ==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.6.1.tgz", + "integrity": "sha512-AeRkyS8g37UyJiP9w3mmI/VXU/q8l/IH52vj/cDAyScDcemRbSBhfX/NMYIGilQgSVwsjxrCHf3XJu4f+lxCMg==", "dev": true, "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.0", + "jest-haste-map": "^29.6.1", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.6.0", - "jest-validate": "^29.6.0", + "jest-util": "^29.6.1", + "jest-validate": "^29.6.1", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" @@ -7046,13 +7046,13 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.0.tgz", - "integrity": "sha512-eOfPog9K3hJdJk/3i6O6bQhXS+3uXhMDkLJGX+xmMPp7T1d/zdcFofbDnHgNoEkhD/mSimC5IagLEP7lpLLu/A==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.1.tgz", + "integrity": "sha512-BbFvxLXtcldaFOhNMXmHRWx1nXQO5LoXiKSGQcA1LxxirYceZT6ch8KTE1bK3X31TNG/JbkI7OkS/ABexVahiw==", "dev": true, "dependencies": { "jest-regex-util": "^29.4.3", - "jest-snapshot": "^29.6.0" + "jest-snapshot": "^29.6.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -7075,30 +7075,30 @@ } }, "node_modules/jest-runner": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.6.0.tgz", - "integrity": "sha512-4fZuGV2lOxS2BiqEG9/AI8E6O+jo+QZjMVcgi1x5E6aDql0Gd/EFIbUQ0pSS09y8cya1vJB/qC2xsE468jqtSg==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.6.1.tgz", + "integrity": "sha512-tw0wb2Q9yhjAQ2w8rHRDxteryyIck7gIzQE4Reu3JuOBpGp96xWgF0nY8MDdejzrLCZKDcp8JlZrBN/EtkQvPQ==", "dev": true, "dependencies": { - "@jest/console": "^29.6.0", - "@jest/environment": "^29.6.0", - "@jest/test-result": "^29.6.0", - "@jest/transform": "^29.6.0", - "@jest/types": "^29.6.0", + "@jest/console": "^29.6.1", + "@jest/environment": "^29.6.1", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", "jest-docblock": "^29.4.3", - "jest-environment-node": "^29.6.0", - "jest-haste-map": "^29.6.0", - "jest-leak-detector": "^29.6.0", - "jest-message-util": "^29.6.0", - "jest-resolve": "^29.6.0", - "jest-runtime": "^29.6.0", - "jest-util": "^29.6.0", - "jest-watcher": "^29.6.0", - "jest-worker": "^29.6.0", + "jest-environment-node": "^29.6.1", + "jest-haste-map": "^29.6.1", + "jest-leak-detector": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-resolve": "^29.6.1", + "jest-runtime": "^29.6.1", + "jest-util": "^29.6.1", + "jest-watcher": "^29.6.1", + "jest-worker": "^29.6.1", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -7123,31 +7123,31 @@ } }, "node_modules/jest-runtime": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.6.0.tgz", - "integrity": "sha512-5FavYo3EeXLHIvnJf+r7Cj0buePAbe4mzRB9oeVxDS0uVmouSBjWeGgyRjZkw7ArxOoZI8gO6f8SGMJ2HFlwwg==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.6.1.tgz", + "integrity": "sha512-D6/AYOA+Lhs5e5il8+5pSLemjtJezUr+8zx+Sn8xlmOux3XOqx4d8l/2udBea8CRPqqrzhsKUsN/gBDE/IcaPQ==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.0", - "@jest/fake-timers": "^29.6.0", - "@jest/globals": "^29.6.0", + "@jest/environment": "^29.6.1", + "@jest/fake-timers": "^29.6.1", + "@jest/globals": "^29.6.1", "@jest/source-map": "^29.6.0", - "@jest/test-result": "^29.6.0", - "@jest/transform": "^29.6.0", - "@jest/types": "^29.6.0", + "@jest/test-result": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.0", - "jest-message-util": "^29.6.0", - "jest-mock": "^29.6.0", + "jest-haste-map": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-mock": "^29.6.1", "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.6.0", - "jest-snapshot": "^29.6.0", - "jest-util": "^29.6.0", + "jest-resolve": "^29.6.1", + "jest-snapshot": "^29.6.1", + "jest-util": "^29.6.1", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -7172,9 +7172,9 @@ } }, "node_modules/jest-snapshot": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.6.0.tgz", - "integrity": "sha512-H3kUE9NwWDEDoutcOSS921IqdlkdjgnMdj1oMyxAHNflscdLc9dB8OudZHV6kj4OHJxbMxL8CdI5DlwYrs4wQg==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.6.1.tgz", + "integrity": "sha512-G4UQE1QQ6OaCgfY+A0uR1W2AY0tGXUPQpoUClhWHq1Xdnx1H6JOrC2nH5lqnOEqaDgbHFgIwZ7bNq24HpB180A==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", @@ -7182,21 +7182,21 @@ "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.6.0", - "@jest/transform": "^29.6.0", - "@jest/types": "^29.6.0", + "@jest/expect-utils": "^29.6.1", + "@jest/transform": "^29.6.1", + "@jest/types": "^29.6.1", "@types/prettier": "^2.1.5", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.6.0", + "expect": "^29.6.1", "graceful-fs": "^4.2.9", - "jest-diff": "^29.6.0", + "jest-diff": "^29.6.1", "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.6.0", - "jest-message-util": "^29.6.0", - "jest-util": "^29.6.0", + "jest-matcher-utils": "^29.6.1", + "jest-message-util": "^29.6.1", + "jest-util": "^29.6.1", "natural-compare": "^1.4.0", - "pretty-format": "^29.6.0", + "pretty-format": "^29.6.1", "semver": "^7.5.3" }, "engines": { @@ -7220,9 +7220,9 @@ } }, "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.0.tgz", - "integrity": "sha512-XH+D4n7Ey0iSR6PdAnBs99cWMZdGsdKrR33iUHQNr79w1szKTCIZDVdXuccAsHVwDBp0XeWPfNEoaxP9EZgRmQ==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", "dev": true, "dependencies": { "@jest/schemas": "^29.6.0", @@ -7252,12 +7252,12 @@ "dev": true }, "node_modules/jest-util": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.0.tgz", - "integrity": "sha512-S0USx9YwcvEm4pQ5suisVm/RVxBmi0GFR7ocJhIeaCuW5AXnAnffXbaVKvIFodyZNOc9ygzVtTxmBf40HsHXaA==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.1.tgz", + "integrity": "sha512-NRFCcjc+/uO3ijUVyNOQJluf8PtGCe/W6cix36+M3cTFgiYqFOOW5MgN4JOOcvbUhcKTYVd1CvHz/LWi8d16Mg==", "dev": true, "dependencies": { - "@jest/types": "^29.6.0", + "@jest/types": "^29.6.1", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -7285,17 +7285,17 @@ } }, "node_modules/jest-validate": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.0.tgz", - "integrity": "sha512-MLTrAJsb1+W7svbeZ+A7pAnyXMaQrjvPDKCy7OlfsfB6TMVc69v7WjUWfiR6r3snULFWZASiKgvNVDuATta1dg==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.1.tgz", + "integrity": "sha512-r3Ds69/0KCN4vx4sYAbGL1EVpZ7MSS0vLmd3gV78O+NAx3PDQQukRU5hNHPXlyqCgFY8XUk7EuTMLugh0KzahA==", "dev": true, "dependencies": { - "@jest/types": "^29.6.0", + "@jest/types": "^29.6.1", "camelcase": "^6.2.0", "chalk": "^4.0.0", "jest-get-type": "^29.4.3", "leven": "^3.1.0", - "pretty-format": "^29.6.0" + "pretty-format": "^29.6.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -7330,9 +7330,9 @@ } }, "node_modules/jest-validate/node_modules/pretty-format": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.0.tgz", - "integrity": "sha512-XH+D4n7Ey0iSR6PdAnBs99cWMZdGsdKrR33iUHQNr79w1szKTCIZDVdXuccAsHVwDBp0XeWPfNEoaxP9EZgRmQ==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.1.tgz", + "integrity": "sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==", "dev": true, "dependencies": { "@jest/schemas": "^29.6.0", @@ -7362,18 +7362,18 @@ "dev": true }, "node_modules/jest-watcher": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.6.0.tgz", - "integrity": "sha512-LdsQqFNX60mRdRRe+zsELnYRH1yX6KL+ukbh+u6WSQeTheZZe1TlLJNKRQiZ7e0VbvMkywmMWL/KV35noOJCcw==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.6.1.tgz", + "integrity": "sha512-d4wpjWTS7HEZPaaj8m36QiaP856JthRZkrgcIY/7ISoUWPIillrXM23WPboZVLbiwZBt4/qn2Jke84Sla6JhFA==", "dev": true, "dependencies": { - "@jest/test-result": "^29.6.0", - "@jest/types": "^29.6.0", + "@jest/test-result": "^29.6.1", + "@jest/types": "^29.6.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.6.0", + "jest-util": "^29.6.1", "string-length": "^4.0.1" }, "engines": { @@ -7397,13 +7397,13 @@ } }, "node_modules/jest-worker": { - "version": "29.6.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.0.tgz", - "integrity": "sha512-oiQHH1SnKmZIwwPnpOrXTq4kHBk3lKGY/07DpnH0sAu+x7J8rXlbLDROZsU6vy9GwB0hPiZeZpu6YlJ48QoKcA==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.1.tgz", + "integrity": "sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA==", "dev": true, "dependencies": { "@types/node": "*", - "jest-util": "^29.6.0", + "jest-util": "^29.6.1", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -7668,9 +7668,9 @@ } }, "node_modules/lucide-react": { - "version": "0.258.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.258.0.tgz", - "integrity": "sha512-3evnpKadBrjLr2HHJ66eDZ1y0vPS6pm8NiNDaLqhddUUyJGnA+lfDPZfbVkuAFq7Xaa1TEy7Sg17sM7mHpMKrA==", + "version": "0.259.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.259.0.tgz", + "integrity": "sha512-dFBLc6jRDfcpD9NQ7NyFVa+YR3RHX6+bs+f/UiotvNPho+kd4WyeXWMCCchUf7i/pq3BAaHkbmtkbx/GxxHVUw==", "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0" } @@ -7878,11 +7878,11 @@ "dev": true }, "node_modules/next": { - "version": "13.4.8", - "resolved": "https://registry.npmjs.org/next/-/next-13.4.8.tgz", - "integrity": "sha512-lxUjndYKjZHGK3CWeN2RI+/6ni6EUvjiqGWXAYPxUfGIdFGQ5XoisrqAJ/dF74aP27buAfs8MKIbIMMdxjqSBg==", + "version": "13.4.9", + "resolved": "https://registry.npmjs.org/next/-/next-13.4.9.tgz", + "integrity": "sha512-vtefFm/BWIi/eWOqf1GsmKG3cjKw1k3LjuefKRcL3iiLl3zWzFdPG3as6xtxrGO6gwTzzaO1ktL4oiHt/uvTjA==", "dependencies": { - "@next/env": "13.4.8", + "@next/env": "13.4.9", "@swc/helpers": "0.5.1", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001406", @@ -7898,15 +7898,15 @@ "node": ">=16.8.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "13.4.8", - "@next/swc-darwin-x64": "13.4.8", - "@next/swc-linux-arm64-gnu": "13.4.8", - "@next/swc-linux-arm64-musl": "13.4.8", - "@next/swc-linux-x64-gnu": "13.4.8", - "@next/swc-linux-x64-musl": "13.4.8", - "@next/swc-win32-arm64-msvc": "13.4.8", - "@next/swc-win32-ia32-msvc": "13.4.8", - "@next/swc-win32-x64-msvc": "13.4.8" + "@next/swc-darwin-arm64": "13.4.9", + "@next/swc-darwin-x64": "13.4.9", + "@next/swc-linux-arm64-gnu": "13.4.9", + "@next/swc-linux-arm64-musl": "13.4.9", + "@next/swc-linux-x64-gnu": "13.4.9", + "@next/swc-linux-x64-musl": "13.4.9", + "@next/swc-win32-arm64-msvc": "13.4.9", + "@next/swc-win32-ia32-msvc": "13.4.9", + "@next/swc-win32-x64-msvc": "13.4.9" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", @@ -8573,9 +8573,9 @@ } }, "node_modules/postcss": { - "version": "8.4.24", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", - "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", + "version": "8.4.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.25.tgz", + "integrity": "sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw==", "funding": [ { "type": "opencollective", diff --git a/package.json b/package.json index 446beda..ca89017 100644 --- a/package.json +++ b/package.json @@ -37,8 +37,8 @@ "class-variance-authority": "^0.6.1", "clsx": "^1.2.1", "dayjs": "^1.11.9", - "lucide-react": "^0.258.0", - "next": "^13.4.8", + "lucide-react": "^0.259.0", + "next": "^13.4.9", "next-auth": "^4.22.1", "next-themes": "^0.2.1", "normalize-diacritics": "^4.0.0", @@ -59,15 +59,15 @@ "@testing-library/react": "^14.0.0", "@types/bcrypt": "^5.0.0", "@types/jest": "^29.5.2", - "@types/node": "^20.3.3", + "@types/node": "^20.4.0", "@types/react": "^18.2.14", "@types/react-dom": "^18.2.6", "autoprefixer": "10.4.14", "eslint": "^8.44.0", - "eslint-config-next": "^13.4.8", - "jest": "^29.6.0", - "jest-environment-jsdom": "^29.6.0", - "postcss": "8.4.24", + "eslint-config-next": "^13.4.9", + "jest": "^29.6.1", + "jest-environment-jsdom": "^29.6.1", + "postcss": "8.4.25", "prisma": "^4.16.2", "tailwindcss": "3.3.2", "typescript": "^5.1.6" -- GitLab