From e0cae00d16edf98b1cebbca48bf9a8a534ba962c Mon Sep 17 00:00:00 2001 From: praptisharma28 <123169861+praptisharma28@users.noreply.github.com> Date: Thu, 1 Feb 2024 22:39:36 +0530 Subject: [PATCH] feat: messenger clone added on MERN stack closes #238 --- Messenger_Clone/.env | 20 + Messenger_Clone/.eslintrc.json | 3 + Messenger_Clone/.gitignore | 35 + Messenger_Clone/.vscode/settings.json | 4 + Messenger_Clone/LICENSE | 21 + Messenger_Clone/README.md | 75 + .../app/(site)/components/AuthForm.tsx | 214 + .../(site)/components/AuthSocialButton.tsx | 38 + Messenger_Clone/app/(site)/page.tsx | 44 + .../app/actions/getConversationById.ts | 30 + .../app/actions/getConversations.ts | 38 + Messenger_Clone/app/actions/getCurrentUser.ts | 28 + Messenger_Clone/app/actions/getMessages.ts | 26 + Messenger_Clone/app/actions/getSession.ts | 7 + Messenger_Clone/app/actions/getUsers.ts | 29 + .../app/api/auth/[...nextauth]/route.ts | 64 + .../conversations/[conversationId]/route.ts | 55 + .../[conversationId]/seen/route.ts | 89 + .../app/api/conversations/route.ts | 111 + Messenger_Clone/app/api/messages/route.ts | 84 + Messenger_Clone/app/api/register/route.ts | 27 + Messenger_Clone/app/api/settings/route.ts | 36 + .../app/components/ActiveStatus.tsx | 11 + Messenger_Clone/app/components/Avatar.tsx | 56 + .../app/components/AvatarGroup.tsx | 46 + Messenger_Clone/app/components/Button.tsx | 51 + Messenger_Clone/app/components/EmptyState.tsx | 26 + .../app/components/inputs/Input.tsx | 77 + .../app/components/inputs/Select.tsx | 53 + .../app/components/modals/GroupChatModal.tsx | 125 + .../app/components/modals/LoadingModal.tsx | 62 + .../app/components/modals/Modal.tsx | 118 + .../app/components/sidebar/DesktopItem.tsx | 52 + .../app/components/sidebar/DesktopSidebar.tsx | 68 + .../app/components/sidebar/MobileFooter.tsx | 43 + .../app/components/sidebar/MobileItem.tsx | 49 + .../app/components/sidebar/SettingsModal.tsx | 163 + .../app/components/sidebar/Sidebar.tsx | 22 + Messenger_Clone/app/context/AuthContext.tsx | 13 + .../app/context/ToasterContext.tsx | 11 + .../[conversationId]/components/Body.tsx | 79 + .../components/ConfirmModal.tsx | 105 + .../[conversationId]/components/Form.tsx | 101 + .../[conversationId]/components/Header.tsx | 99 + .../components/ImageModal.tsx | 35 + .../components/MessageBox.tsx | 92 + .../components/MessageInput.tsx | 48 + .../components/ProfileDrawer.tsx | 218 + .../conversations/[conversationId]/page.tsx | 38 + .../components/ConversationBox.tsx | 125 + .../components/ConversationList.tsx | 132 + Messenger_Clone/app/conversations/layout.tsx | 27 + Messenger_Clone/app/conversations/loading.tsx | 9 + Messenger_Clone/app/conversations/page.tsx | 21 + Messenger_Clone/app/favicon.ico | Bin 0 -> 25931 bytes Messenger_Clone/app/globals.css | 9 + Messenger_Clone/app/hooks/useActiveChannel.ts | 42 + Messenger_Clone/app/hooks/useActiveList.ts | 17 + Messenger_Clone/app/hooks/useConversation.ts | 23 + Messenger_Clone/app/hooks/useOtherUser.ts | 20 + Messenger_Clone/app/hooks/useRoutes.ts | 36 + Messenger_Clone/app/hooks/useSidebar.ts | 15 + Messenger_Clone/app/layout.tsx | 27 + Messenger_Clone/app/libs/prismadb.ts | 10 + Messenger_Clone/app/libs/pusher.ts | 21 + Messenger_Clone/app/types/index.ts | 11 + .../app/users/components/UserBox.tsx | 66 + .../app/users/components/UserList.tsx | 55 + Messenger_Clone/app/users/layout.tsx | 21 + Messenger_Clone/app/users/loading.tsx | 9 + Messenger_Clone/app/users/page.tsx | 11 + Messenger_Clone/middleware.ts | 14 + Messenger_Clone/next.config.js | 16 + Messenger_Clone/package-lock.json | 9133 +++++++++++++++++ Messenger_Clone/package.json | 53 + Messenger_Clone/pages/api/pusher/auth.ts | 25 + Messenger_Clone/postcss.config.js | 6 + Messenger_Clone/prisma/schema.prisma | 80 + Messenger_Clone/public/images/logo.png | Bin 0 -> 79521 bytes Messenger_Clone/public/images/placeholder.jpg | Bin 0 -> 6265 bytes Messenger_Clone/public/next.svg | 1 + Messenger_Clone/public/vercel.svg | 1 + Messenger_Clone/tailwind.config.js | 16 + Messenger_Clone/tsconfig.json | 28 + 84 files changed, 13019 insertions(+) create mode 100644 Messenger_Clone/.env create mode 100644 Messenger_Clone/.eslintrc.json create mode 100644 Messenger_Clone/.gitignore create mode 100644 Messenger_Clone/.vscode/settings.json create mode 100644 Messenger_Clone/LICENSE create mode 100644 Messenger_Clone/README.md create mode 100644 Messenger_Clone/app/(site)/components/AuthForm.tsx create mode 100644 Messenger_Clone/app/(site)/components/AuthSocialButton.tsx create mode 100644 Messenger_Clone/app/(site)/page.tsx create mode 100644 Messenger_Clone/app/actions/getConversationById.ts create mode 100644 Messenger_Clone/app/actions/getConversations.ts create mode 100644 Messenger_Clone/app/actions/getCurrentUser.ts create mode 100644 Messenger_Clone/app/actions/getMessages.ts create mode 100644 Messenger_Clone/app/actions/getSession.ts create mode 100644 Messenger_Clone/app/actions/getUsers.ts create mode 100644 Messenger_Clone/app/api/auth/[...nextauth]/route.ts create mode 100644 Messenger_Clone/app/api/conversations/[conversationId]/route.ts create mode 100644 Messenger_Clone/app/api/conversations/[conversationId]/seen/route.ts create mode 100644 Messenger_Clone/app/api/conversations/route.ts create mode 100644 Messenger_Clone/app/api/messages/route.ts create mode 100644 Messenger_Clone/app/api/register/route.ts create mode 100644 Messenger_Clone/app/api/settings/route.ts create mode 100644 Messenger_Clone/app/components/ActiveStatus.tsx create mode 100644 Messenger_Clone/app/components/Avatar.tsx create mode 100644 Messenger_Clone/app/components/AvatarGroup.tsx create mode 100644 Messenger_Clone/app/components/Button.tsx create mode 100644 Messenger_Clone/app/components/EmptyState.tsx create mode 100644 Messenger_Clone/app/components/inputs/Input.tsx create mode 100644 Messenger_Clone/app/components/inputs/Select.tsx create mode 100644 Messenger_Clone/app/components/modals/GroupChatModal.tsx create mode 100644 Messenger_Clone/app/components/modals/LoadingModal.tsx create mode 100644 Messenger_Clone/app/components/modals/Modal.tsx create mode 100644 Messenger_Clone/app/components/sidebar/DesktopItem.tsx create mode 100644 Messenger_Clone/app/components/sidebar/DesktopSidebar.tsx create mode 100644 Messenger_Clone/app/components/sidebar/MobileFooter.tsx create mode 100644 Messenger_Clone/app/components/sidebar/MobileItem.tsx create mode 100644 Messenger_Clone/app/components/sidebar/SettingsModal.tsx create mode 100644 Messenger_Clone/app/components/sidebar/Sidebar.tsx create mode 100644 Messenger_Clone/app/context/AuthContext.tsx create mode 100644 Messenger_Clone/app/context/ToasterContext.tsx create mode 100644 Messenger_Clone/app/conversations/[conversationId]/components/Body.tsx create mode 100644 Messenger_Clone/app/conversations/[conversationId]/components/ConfirmModal.tsx create mode 100644 Messenger_Clone/app/conversations/[conversationId]/components/Form.tsx create mode 100644 Messenger_Clone/app/conversations/[conversationId]/components/Header.tsx create mode 100644 Messenger_Clone/app/conversations/[conversationId]/components/ImageModal.tsx create mode 100644 Messenger_Clone/app/conversations/[conversationId]/components/MessageBox.tsx create mode 100644 Messenger_Clone/app/conversations/[conversationId]/components/MessageInput.tsx create mode 100644 Messenger_Clone/app/conversations/[conversationId]/components/ProfileDrawer.tsx create mode 100644 Messenger_Clone/app/conversations/[conversationId]/page.tsx create mode 100644 Messenger_Clone/app/conversations/components/ConversationBox.tsx create mode 100644 Messenger_Clone/app/conversations/components/ConversationList.tsx create mode 100644 Messenger_Clone/app/conversations/layout.tsx create mode 100644 Messenger_Clone/app/conversations/loading.tsx create mode 100644 Messenger_Clone/app/conversations/page.tsx create mode 100644 Messenger_Clone/app/favicon.ico create mode 100644 Messenger_Clone/app/globals.css create mode 100644 Messenger_Clone/app/hooks/useActiveChannel.ts create mode 100644 Messenger_Clone/app/hooks/useActiveList.ts create mode 100644 Messenger_Clone/app/hooks/useConversation.ts create mode 100644 Messenger_Clone/app/hooks/useOtherUser.ts create mode 100644 Messenger_Clone/app/hooks/useRoutes.ts create mode 100644 Messenger_Clone/app/hooks/useSidebar.ts create mode 100644 Messenger_Clone/app/layout.tsx create mode 100644 Messenger_Clone/app/libs/prismadb.ts create mode 100644 Messenger_Clone/app/libs/pusher.ts create mode 100644 Messenger_Clone/app/types/index.ts create mode 100644 Messenger_Clone/app/users/components/UserBox.tsx create mode 100644 Messenger_Clone/app/users/components/UserList.tsx create mode 100644 Messenger_Clone/app/users/layout.tsx create mode 100644 Messenger_Clone/app/users/loading.tsx create mode 100644 Messenger_Clone/app/users/page.tsx create mode 100644 Messenger_Clone/middleware.ts create mode 100644 Messenger_Clone/next.config.js create mode 100644 Messenger_Clone/package-lock.json create mode 100644 Messenger_Clone/package.json create mode 100644 Messenger_Clone/pages/api/pusher/auth.ts create mode 100644 Messenger_Clone/postcss.config.js create mode 100644 Messenger_Clone/prisma/schema.prisma create mode 100644 Messenger_Clone/public/images/logo.png create mode 100644 Messenger_Clone/public/images/placeholder.jpg create mode 100644 Messenger_Clone/public/next.svg create mode 100644 Messenger_Clone/public/vercel.svg create mode 100644 Messenger_Clone/tailwind.config.js create mode 100644 Messenger_Clone/tsconfig.json diff --git a/Messenger_Clone/.env b/Messenger_Clone/.env new file mode 100644 index 000000000..871bd11d4 --- /dev/null +++ b/Messenger_Clone/.env @@ -0,0 +1,20 @@ +# Environment variables declared in this file are automatically made available to Prisma. +# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema + +# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB. +# See the documentation for all the connection string options: https://pris.ly/d/connection-strings + +DATABASE_URL= +NEXTAUTH_SECRET= + +NEXT_PUBLIC_PUSHER_APP_KEY= +PUSHER_APP_ID= +PUSHER_SECRET= + +NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME= + +GITHUB_ID= +GITHUB_SECRET= + +GOOGLE_CLIENT_ID= +GOOGLE_CLIENT_SECRET= diff --git a/Messenger_Clone/.eslintrc.json b/Messenger_Clone/.eslintrc.json new file mode 100644 index 000000000..bffb357a7 --- /dev/null +++ b/Messenger_Clone/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/Messenger_Clone/.gitignore b/Messenger_Clone/.gitignore new file mode 100644 index 000000000..8f322f0d8 --- /dev/null +++ b/Messenger_Clone/.gitignore @@ -0,0 +1,35 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/Messenger_Clone/.vscode/settings.json b/Messenger_Clone/.vscode/settings.json new file mode 100644 index 000000000..d0679104b --- /dev/null +++ b/Messenger_Clone/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "typescript.tsdk": "node_modules/typescript/lib", + "typescript.enablePromptUseWorkspaceTsdk": true +} \ No newline at end of file diff --git a/Messenger_Clone/LICENSE b/Messenger_Clone/LICENSE new file mode 100644 index 000000000..bf3312c22 --- /dev/null +++ b/Messenger_Clone/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Antonio Erdeljac + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Messenger_Clone/README.md b/Messenger_Clone/README.md new file mode 100644 index 000000000..76b99b22e --- /dev/null +++ b/Messenger_Clone/README.md @@ -0,0 +1,75 @@ +# Messenger Clone +Fully responsive messenger clone on MERN Stack + +#### Tech Stack +-Next.js 13 +-React +-Tailwind +-Prisma +-MongoDB +-NextAuth +-Pusher + +#### Demo +Check out the demo of the Messenger clone on YouTube: [Messenger Clone Demo](https://www.youtube.com/watch?v=HHVamziJsWs) + +### Prerequisites + +**Node version 14.x** + +### Clone the Repository + ```bash + git clone https://github.com/Kritika30032002/ReactCreations.git + ``` + +### Navigate to the Project Directory + ```bash + cd ReactCreations\Messenger_Clone + ``` + +### Install packages + + ```shell + npm i + ``` + +### Setup .env file + + +```js +DATABASE_URL= +NEXTAUTH_SECRET= + +NEXT_PUBLIC_PUSHER_APP_KEY= +PUSHER_APP_ID= +PUSHER_SECRET= + +NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME= + +GITHUB_ID= +GITHUB_SECRET= + +GOOGLE_CLIENT_ID= +GOOGLE_CLIENT_SECRET= +``` + +### Setup Prisma + +```shell +npx prisma db push + +``` + +### Start the app + +```shell +npm run dev +``` + +## Available commands + +Running commands with npm `npm run [command]` + +| command | description | +| :-------------- | :--------------------------------------- | +| `dev` | Starts a development instance of the app | diff --git a/Messenger_Clone/app/(site)/components/AuthForm.tsx b/Messenger_Clone/app/(site)/components/AuthForm.tsx new file mode 100644 index 000000000..296d5a557 --- /dev/null +++ b/Messenger_Clone/app/(site)/components/AuthForm.tsx @@ -0,0 +1,214 @@ +'use client'; + +import axios from "axios"; +import { signIn, useSession } from 'next-auth/react'; +import { useCallback, useEffect, useState } from 'react'; +import { BsGithub, BsGoogle } from 'react-icons/bs'; +import { FieldValues, SubmitHandler, useForm } from 'react-hook-form'; +import { useRouter } from "next/navigation"; + +import Input from "@/app/components/inputs/Input"; +import AuthSocialButton from './AuthSocialButton'; +import Button from "@/app/components/Button"; +import { toast } from "react-hot-toast"; + +type Variant = 'LOGIN' | 'REGISTER'; + +const AuthForm = () => { + const session = useSession(); + const router = useRouter(); + const [variant, setVariant] = useState('LOGIN'); + const [isLoading, setIsLoading] = useState(false); + + useEffect(() => { + if (session?.status === 'authenticated') { + router.push('/conversations') + } + }, [session?.status, router]); + + const toggleVariant = useCallback(() => { + if (variant === 'LOGIN') { + setVariant('REGISTER'); + } else { + setVariant('LOGIN'); + } + }, [variant]); + + const { + register, + handleSubmit, + formState: { + errors, + } + } = useForm({ + defaultValues: { + name: '', + email: '', + password: '' + } + }); + + const onSubmit: SubmitHandler = (data) => { + setIsLoading(true); + + if (variant === 'REGISTER') { + axios.post('/api/register', data) + .then(() => signIn('credentials', { + ...data, + redirect: false, + })) + .then((callback) => { + if (callback?.error) { + toast.error('Invalid credentials!'); + } + + if (callback?.ok) { + router.push('/conversations') + } + }) + .catch(() => toast.error('Something went wrong!')) + .finally(() => setIsLoading(false)) + } + + if (variant === 'LOGIN') { + signIn('credentials', { + ...data, + redirect: false + }) + .then((callback) => { + if (callback?.error) { + toast.error('Invalid credentials!'); + } + + if (callback?.ok) { + router.push('/conversations') + } + }) + .finally(() => setIsLoading(false)) + } + } + + const socialAction = (action: string) => { + setIsLoading(true); + + signIn(action, { redirect: false }) + .then((callback) => { + if (callback?.error) { + toast.error('Invalid credentials!'); + } + + if (callback?.ok) { + router.push('/conversations') + } + }) + .finally(() => setIsLoading(false)); + } + + return ( +
+
+
+ {variant === 'REGISTER' && ( + + )} + + +
+ +
+
+ +
+
+
+
+
+
+ + Or continue with + +
+
+ +
+ socialAction('github')} + /> + socialAction('google')} + /> +
+
+
+
+ {variant === 'LOGIN' ? 'New to Messenger?' : 'Already have an account?'} +
+
+ {variant === 'LOGIN' ? 'Create an account' : 'Login'} +
+
+
+
+ ); +} + +export default AuthForm; diff --git a/Messenger_Clone/app/(site)/components/AuthSocialButton.tsx b/Messenger_Clone/app/(site)/components/AuthSocialButton.tsx new file mode 100644 index 000000000..971f7fdd1 --- /dev/null +++ b/Messenger_Clone/app/(site)/components/AuthSocialButton.tsx @@ -0,0 +1,38 @@ +import { IconType } from "react-icons"; + +interface AuthSocialButtonProps { + icon: IconType + onClick: () => void; +} + +const AuthSocialButton: React.FC = ({ + icon: Icon, + onClick, +}) => { + return ( + + ); +} + +export default AuthSocialButton; diff --git a/Messenger_Clone/app/(site)/page.tsx b/Messenger_Clone/app/(site)/page.tsx new file mode 100644 index 000000000..3fa6e4609 --- /dev/null +++ b/Messenger_Clone/app/(site)/page.tsx @@ -0,0 +1,44 @@ +import Image from "next/image"; +import AuthForm from "./components/AuthForm"; + +const Auth = () => { + return ( +
+
+ Logo +

+ Sign in to your account +

+
+ +
+ ) +} + +export default Auth; diff --git a/Messenger_Clone/app/actions/getConversationById.ts b/Messenger_Clone/app/actions/getConversationById.ts new file mode 100644 index 000000000..b7dceeab1 --- /dev/null +++ b/Messenger_Clone/app/actions/getConversationById.ts @@ -0,0 +1,30 @@ +import prisma from "@/app/libs/prismadb"; +import getCurrentUser from "./getCurrentUser"; + +const getConversationById = async ( + conversationId: string +) => { + try { + const currentUser = await getCurrentUser(); + + if (!currentUser?.email) { + return null; + } + + const conversation = await prisma.conversation.findUnique({ + where: { + id: conversationId + }, + include: { + users: true, + }, + }); + + return conversation; + } catch (error: any) { + console.log(error, 'SERVER_ERROR') + return null; + } +}; + +export default getConversationById; diff --git a/Messenger_Clone/app/actions/getConversations.ts b/Messenger_Clone/app/actions/getConversations.ts new file mode 100644 index 000000000..f5e7bc37c --- /dev/null +++ b/Messenger_Clone/app/actions/getConversations.ts @@ -0,0 +1,38 @@ +import prisma from "@/app/libs/prismadb"; +import getCurrentUser from "./getCurrentUser"; + +const getConversations = async () => { + const currentUser = await getCurrentUser(); + + if (!currentUser?.id) { + return []; + } + + try { + const conversations = await prisma.conversation.findMany({ + orderBy: { + lastMessageAt: 'desc', + }, + where: { + userIds: { + has: currentUser.id + } + }, + include: { + users: true, + messages: { + include: { + sender: true, + seen: true, + } + }, + } + }); + + return conversations; + } catch (error: any) { + return []; + } +}; + +export default getConversations; diff --git a/Messenger_Clone/app/actions/getCurrentUser.ts b/Messenger_Clone/app/actions/getCurrentUser.ts new file mode 100644 index 000000000..ed61bd555 --- /dev/null +++ b/Messenger_Clone/app/actions/getCurrentUser.ts @@ -0,0 +1,28 @@ +import prisma from "@/app/libs/prismadb"; +import getSession from "./getSession"; + +const getCurrentUser = async () => { + try { + const session = await getSession(); + + if (!session?.user?.email) { + return null; + } + + const currentUser = await prisma.user.findUnique({ + where: { + email: session.user.email as string + } + }); + + if (!currentUser) { + return null; + } + + return currentUser; + } catch (error: any) { + return null; + } +}; + +export default getCurrentUser; diff --git a/Messenger_Clone/app/actions/getMessages.ts b/Messenger_Clone/app/actions/getMessages.ts new file mode 100644 index 000000000..fc261717a --- /dev/null +++ b/Messenger_Clone/app/actions/getMessages.ts @@ -0,0 +1,26 @@ +import prisma from "@/app/libs/prismadb"; + +const getMessages = async ( + conversationId: string +) => { + try { + const messages = await prisma.message.findMany({ + where: { + conversationId: conversationId + }, + include: { + sender: true, + seen: true, + }, + orderBy: { + createdAt: 'asc' + } + }); + + return messages; + } catch (error: any) { + return []; + } +}; + +export default getMessages; diff --git a/Messenger_Clone/app/actions/getSession.ts b/Messenger_Clone/app/actions/getSession.ts new file mode 100644 index 000000000..b237ce645 --- /dev/null +++ b/Messenger_Clone/app/actions/getSession.ts @@ -0,0 +1,7 @@ +import { getServerSession } from "next-auth"; + +import { authOptions } from "@/app/api/auth/[...nextauth]/route"; + +export default async function getSession() { + return await getServerSession(authOptions); +} diff --git a/Messenger_Clone/app/actions/getUsers.ts b/Messenger_Clone/app/actions/getUsers.ts new file mode 100644 index 000000000..5171efc25 --- /dev/null +++ b/Messenger_Clone/app/actions/getUsers.ts @@ -0,0 +1,29 @@ +import prisma from "@/app/libs/prismadb"; +import getSession from "./getSession"; + +const getUsers = async () => { + const session = await getSession(); + + if (!session?.user?.email) { + return []; + } + + try { + const users = await prisma.user.findMany({ + orderBy: { + createdAt: 'desc' + }, + where: { + NOT: { + email: session.user.email + } + } + }); + + return users; + } catch (error: any) { + return []; + } +}; + +export default getUsers; diff --git a/Messenger_Clone/app/api/auth/[...nextauth]/route.ts b/Messenger_Clone/app/api/auth/[...nextauth]/route.ts new file mode 100644 index 000000000..4dad30d24 --- /dev/null +++ b/Messenger_Clone/app/api/auth/[...nextauth]/route.ts @@ -0,0 +1,64 @@ +import bcrypt from "bcrypt" +import NextAuth, { AuthOptions } from "next-auth" +import CredentialsProvider from "next-auth/providers/credentials" +import GithubProvider from "next-auth/providers/github" +import GoogleProvider from "next-auth/providers/google" +import { PrismaAdapter } from "@next-auth/prisma-adapter" + +import prisma from "@/app/libs/prismadb" + +export const authOptions: AuthOptions = { + adapter: PrismaAdapter(prisma), + providers: [ + GithubProvider({ + clientId: process.env.GITHUB_ID as string, + clientSecret: process.env.GITHUB_SECRET as string + }), + GoogleProvider({ + clientId: process.env.GOOGLE_CLIENT_ID as string, + clientSecret: process.env.GOOGLE_CLIENT_SECRET as string + }), + CredentialsProvider({ + name: 'credentials', + credentials: { + email: { label: 'email', type: 'text' }, + password: { label: 'password', type: 'password' } + }, + async authorize(credentials) { + if (!credentials?.email || !credentials?.password) { + throw new Error('Invalid credentials'); + } + + const user = await prisma.user.findUnique({ + where: { + email: credentials.email + } + }); + + if (!user || !user?.hashedPassword) { + throw new Error('Invalid credentials'); + } + + const isCorrectPassword = await bcrypt.compare( + credentials.password, + user.hashedPassword + ); + + if (!isCorrectPassword) { + throw new Error('Invalid credentials'); + } + + return user; + } + }) + ], + debug: process.env.NODE_ENV === 'development', + session: { + strategy: "jwt", + }, + secret: process.env.NEXTAUTH_SECRET, +} + +const handler = NextAuth(authOptions); + +export { handler as GET, handler as POST }; diff --git a/Messenger_Clone/app/api/conversations/[conversationId]/route.ts b/Messenger_Clone/app/api/conversations/[conversationId]/route.ts new file mode 100644 index 000000000..bed3125b6 --- /dev/null +++ b/Messenger_Clone/app/api/conversations/[conversationId]/route.ts @@ -0,0 +1,55 @@ +import getCurrentUser from "@/app/actions/getCurrentUser"; +import { NextResponse } from "next/server"; + +import prisma from "@/app/libs/prismadb"; +import { pusherServer } from "@/app/libs/pusher"; + +interface IParams { + conversationId?: string; +} + +export async function DELETE( + request: Request, + { params }: { params: IParams } +) { + try { + const { conversationId } = params; + const currentUser = await getCurrentUser(); + + if (!currentUser?.id) { + return NextResponse.json(null); + } + + const existingConversation = await prisma.conversation.findUnique({ + where: { + id: conversationId + }, + include: { + users: true + } + }); + + if (!existingConversation) { + return new NextResponse('Invalid ID', { status: 400 }); + } + + const deletedConversation = await prisma.conversation.deleteMany({ + where: { + id: conversationId, + userIds: { + hasSome: [currentUser.id] + }, + }, + }); + + existingConversation.users.forEach((user) => { + if (user.email) { + pusherServer.trigger(user.email, 'conversation:remove', existingConversation); + } + }); + + return NextResponse.json(deletedConversation) + } catch (error) { + return NextResponse.json(null); + } +} \ No newline at end of file diff --git a/Messenger_Clone/app/api/conversations/[conversationId]/seen/route.ts b/Messenger_Clone/app/api/conversations/[conversationId]/seen/route.ts new file mode 100644 index 000000000..8ae80ec76 --- /dev/null +++ b/Messenger_Clone/app/api/conversations/[conversationId]/seen/route.ts @@ -0,0 +1,89 @@ +import { NextResponse } from "next/server"; + +import getCurrentUser from "@/app/actions/getCurrentUser"; +import { pusherServer } from '@/app/libs/pusher' +import prisma from "@/app/libs/prismadb"; + +interface IParams { + conversationId?: string; +} + +export async function POST( + request: Request, + { params }: { params: IParams } +) { + try { + const currentUser = await getCurrentUser(); + const { + conversationId + } = params; + + + if (!currentUser?.id || !currentUser?.email) { + return new NextResponse('Unauthorized', { status: 401 }); + } + + // Find existing conversation + const conversation = await prisma.conversation.findUnique({ + where: { + id: conversationId, + }, + include: { + messages: { + include: { + seen: true + }, + }, + users: true, + }, + }); + + if (!conversation) { + return new NextResponse('Invalid ID', { status: 400 }); + } + + // Find last message + const lastMessage = conversation.messages[conversation.messages.length - 1]; + + if (!lastMessage) { + return NextResponse.json(conversation); + } + + // Update seen of last message + const updatedMessage = await prisma.message.update({ + where: { + id: lastMessage.id + }, + include: { + sender: true, + seen: true, + }, + data: { + seen: { + connect: { + id: currentUser.id + } + } + } + }); + + // Update all connections with new seen + await pusherServer.trigger(currentUser.email, 'conversation:update', { + id: conversationId, + messages: [updatedMessage] + }); + + // If user has already seen the message, no need to go further + if (lastMessage.seenIds.indexOf(currentUser.id) !== -1) { + return NextResponse.json(conversation); + } + + // Update last message seen + await pusherServer.trigger(conversationId!, 'message:update', updatedMessage); + + return new NextResponse('Success'); + } catch (error) { + console.log(error, 'ERROR_MESSAGES_SEEN') + return new NextResponse('Error', { status: 500 }); + } +} \ No newline at end of file diff --git a/Messenger_Clone/app/api/conversations/route.ts b/Messenger_Clone/app/api/conversations/route.ts new file mode 100644 index 000000000..3e39d6d03 --- /dev/null +++ b/Messenger_Clone/app/api/conversations/route.ts @@ -0,0 +1,111 @@ +import getCurrentUser from "@/app/actions/getCurrentUser"; +import { NextResponse } from "next/server"; + +import prisma from "@/app/libs/prismadb"; +import { pusherServer } from "@/app/libs/pusher"; + +export async function POST( + request: Request, +) { + try { + const currentUser = await getCurrentUser(); + const body = await request.json(); + const { + userId, + isGroup, + members, + name + } = body; + + if (!currentUser?.id || !currentUser?.email) { + return new NextResponse('Unauthorized', { status: 400 }); + } + + if (isGroup && (!members || members.length < 2 || !name)) { + return new NextResponse('Invalid data', { status: 400 }); + } + + if (isGroup) { + const newConversation = await prisma.conversation.create({ + data: { + name, + isGroup, + users: { + connect: [ + ...members.map((member: { value: string }) => ({ + id: member.value + })), + { + id: currentUser.id + } + ] + } + }, + include: { + users: true, + } + }); + + // Update all connections with new conversation + newConversation.users.forEach((user) => { + if (user.email) { + pusherServer.trigger(user.email, 'conversation:new', newConversation); + } + }); + + return NextResponse.json(newConversation); + } + + const existingConversations = await prisma.conversation.findMany({ + where: { + OR: [ + { + userIds: { + equals: [currentUser.id, userId] + } + }, + { + userIds: { + equals: [userId, currentUser.id] + } + } + ] + } + }); + + const singleConversation = existingConversations[0]; + + if (singleConversation) { + return NextResponse.json(singleConversation); + } + + const newConversation = await prisma.conversation.create({ + data: { + users: { + connect: [ + { + id: currentUser.id + }, + { + id: userId + } + ] + } + }, + include: { + users: true + } + }); + + // Update all connections with new conversation + newConversation.users.map((user) => { + if (user.email) { + pusherServer.trigger(user.email, 'conversation:new', newConversation); + } + }); + + return NextResponse.json(newConversation) + } catch (error) { + return new NextResponse('Internal Error', { status: 500 }); + } +} \ No newline at end of file diff --git a/Messenger_Clone/app/api/messages/route.ts b/Messenger_Clone/app/api/messages/route.ts new file mode 100644 index 000000000..df73ff34c --- /dev/null +++ b/Messenger_Clone/app/api/messages/route.ts @@ -0,0 +1,84 @@ +import { NextResponse } from "next/server"; + +import getCurrentUser from "@/app/actions/getCurrentUser"; +import { pusherServer } from '@/app/libs/pusher' +import prisma from "@/app/libs/prismadb"; + +export async function POST( + request: Request, +) { + try { + const currentUser = await getCurrentUser(); + const body = await request.json(); + const { + message, + image, + conversationId + } = body; + + if (!currentUser?.id || !currentUser?.email) { + return new NextResponse('Unauthorized', { status: 401 }); + } + + const newMessage = await prisma.message.create({ + include: { + seen: true, + sender: true + }, + data: { + body: message, + image: image, + conversation: { + connect: { id: conversationId } + }, + sender: { + connect: { id: currentUser.id } + }, + seen: { + connect: { + id: currentUser.id + } + }, + } + }); + + + const updatedConversation = await prisma.conversation.update({ + where: { + id: conversationId + }, + data: { + lastMessageAt: new Date(), + messages: { + connect: { + id: newMessage.id + } + } + }, + include: { + users: true, + messages: { + include: { + seen: true + } + } + } + }); + + await pusherServer.trigger(conversationId, 'messages:new', newMessage); + + const lastMessage = updatedConversation.messages[updatedConversation.messages.length - 1]; + + updatedConversation.users.map((user) => { + pusherServer.trigger(user.email!, 'conversation:update', { + id: conversationId, + messages: [lastMessage] + }); + }); + + return NextResponse.json(newMessage) + } catch (error) { + console.log(error, 'ERROR_MESSAGES') + return new NextResponse('Error', { status: 500 }); + } +} \ No newline at end of file diff --git a/Messenger_Clone/app/api/register/route.ts b/Messenger_Clone/app/api/register/route.ts new file mode 100644 index 000000000..c7cb9b1a9 --- /dev/null +++ b/Messenger_Clone/app/api/register/route.ts @@ -0,0 +1,27 @@ +import bcrypt from "bcrypt"; + +import prisma from "@/app/libs/prismadb"; +import { NextResponse } from "next/server"; + +export async function POST( + request: Request +) { + const body = await request.json(); + const { + email, + name, + password + } = body; + + const hashedPassword = await bcrypt.hash(password, 12); + + const user = await prisma.user.create({ + data: { + email, + name, + hashedPassword + } + }); + + return NextResponse.json(user); +} diff --git a/Messenger_Clone/app/api/settings/route.ts b/Messenger_Clone/app/api/settings/route.ts new file mode 100644 index 000000000..339a8c91e --- /dev/null +++ b/Messenger_Clone/app/api/settings/route.ts @@ -0,0 +1,36 @@ +import { NextResponse } from "next/server"; + +import getCurrentUser from "@/app/actions/getCurrentUser"; +import prisma from "@/app/libs/prismadb"; + +export async function POST( + request: Request, +) { + try { + const currentUser = await getCurrentUser(); + const body = await request.json(); + const { + name, + image, + } = body; + + if (!currentUser?.id) { + return new NextResponse('Unauthorized', { status: 401 }); + } + + const updatedUser = await prisma.user.update({ + where: { + id: currentUser.id + }, + data: { + image: image, + name: name + }, + }); + + return NextResponse.json(updatedUser) + } catch (error) { + console.log(error, 'ERROR_MESSAGES') + return new NextResponse('Error', { status: 500 }); + } +} \ No newline at end of file diff --git a/Messenger_Clone/app/components/ActiveStatus.tsx b/Messenger_Clone/app/components/ActiveStatus.tsx new file mode 100644 index 000000000..4a64c55c3 --- /dev/null +++ b/Messenger_Clone/app/components/ActiveStatus.tsx @@ -0,0 +1,11 @@ +'use client'; + +import useActiveChannel from "../hooks/useActiveChannel"; + +const ActiveStatus = () => { + useActiveChannel(); + + return null; +} + +export default ActiveStatus; diff --git a/Messenger_Clone/app/components/Avatar.tsx b/Messenger_Clone/app/components/Avatar.tsx new file mode 100644 index 000000000..31fcf4f99 --- /dev/null +++ b/Messenger_Clone/app/components/Avatar.tsx @@ -0,0 +1,56 @@ +'use client'; + +import { User } from "@prisma/client"; + +import useActiveList from "../hooks/useActiveList"; +import Image from "next/image"; + +interface AvatarProps { + user?: User; +}; + +const Avatar: React.FC = ({ user }) => { + const { members } = useActiveList(); + const isActive = members.indexOf(user?.email!) !== -1; + + return ( +
+
+ Avatar +
+ {isActive ? ( + + ) : null} +
+ ); +} + +export default Avatar; diff --git a/Messenger_Clone/app/components/AvatarGroup.tsx b/Messenger_Clone/app/components/AvatarGroup.tsx new file mode 100644 index 000000000..6c89dfa76 --- /dev/null +++ b/Messenger_Clone/app/components/AvatarGroup.tsx @@ -0,0 +1,46 @@ +'use client'; + +import { User } from "@prisma/client"; +import Image from "next/image"; + +interface AvatarGroupProps { + users?: User[]; +}; + +const AvatarGroup: React.FC = ({ + users = [] +}) => { + const slicedUsers = users.slice(0, 3); + + const positionMap = { + 0: 'top-0 left-[12px]', + 1: 'bottom-0', + 2: 'bottom-0 right-0' + } + + return ( +
+ {slicedUsers.map((user, index) => ( +
+ Avatar +
+ ))} +
+ ); +} + +export default AvatarGroup; diff --git a/Messenger_Clone/app/components/Button.tsx b/Messenger_Clone/app/components/Button.tsx new file mode 100644 index 000000000..7a9ce5128 --- /dev/null +++ b/Messenger_Clone/app/components/Button.tsx @@ -0,0 +1,51 @@ +import clsx from "clsx"; + +interface ButtonProps { + type?: "button" | "submit" | "reset" | undefined; + fullWidth?: boolean; + children?: React.ReactNode; + onClick?: () => void; + secondary?: boolean; + danger?: boolean; + disabled?: boolean; +} + +const Button: React.FC = ({ + type = "button", + fullWidth, + children, + onClick, + secondary, + danger, + disabled, +}) => { + return ( + + ); +} + +export default Button; \ No newline at end of file diff --git a/Messenger_Clone/app/components/EmptyState.tsx b/Messenger_Clone/app/components/EmptyState.tsx new file mode 100644 index 000000000..f6095b4b4 --- /dev/null +++ b/Messenger_Clone/app/components/EmptyState.tsx @@ -0,0 +1,26 @@ +const EmptyState = () => { + return ( +
+
+

+ Select a chat or start a new conversation +

+
+
+ ); +} + +export default EmptyState; diff --git a/Messenger_Clone/app/components/inputs/Input.tsx b/Messenger_Clone/app/components/inputs/Input.tsx new file mode 100644 index 000000000..994650aeb --- /dev/null +++ b/Messenger_Clone/app/components/inputs/Input.tsx @@ -0,0 +1,77 @@ +'use client'; + +import clsx from "clsx"; +import { + FieldErrors, + FieldValues, + UseFormRegister +} from "react-hook-form"; + +interface InputProps { + label: string; + id: string; + type?: string; + required?: boolean; + register: UseFormRegister, + errors: FieldErrors + disabled?: boolean; +} + +const Input: React.FC = ({ + label, + id, + register, + required, + errors, + type = 'text', + disabled, +}) => { + return ( +
+ +
+ +
+
+ ); +} + +export default Input; \ No newline at end of file diff --git a/Messenger_Clone/app/components/inputs/Select.tsx b/Messenger_Clone/app/components/inputs/Select.tsx new file mode 100644 index 000000000..32188d466 --- /dev/null +++ b/Messenger_Clone/app/components/inputs/Select.tsx @@ -0,0 +1,53 @@ +'use client'; + +import ReactSelect from 'react-select' + +interface SelectProps { + label: string; + value?: Record; + onChange: (value: Record) => void; + options: Record[]; + disabled?: boolean; +} + +const Select: React.FC = ({ + label, + value, + onChange, + options, + disabled, +}) => { + return ( +
+ +
+ ({ ...base, zIndex: 9999 }) + }} + classNames={{ + control: () => 'text-sm', + }} + /> +
+
+ ); +} + +export default Select; \ No newline at end of file diff --git a/Messenger_Clone/app/components/modals/GroupChatModal.tsx b/Messenger_Clone/app/components/modals/GroupChatModal.tsx new file mode 100644 index 000000000..62f1d6f75 --- /dev/null +++ b/Messenger_Clone/app/components/modals/GroupChatModal.tsx @@ -0,0 +1,125 @@ +'use client'; + +import axios from 'axios'; +import React, { useState } from 'react' +import { useRouter } from 'next/navigation'; +import { + FieldValues, + SubmitHandler, + useForm +} from 'react-hook-form'; +import { User } from '@prisma/client'; + +import Input from "../inputs/Input"; +import Select from '../inputs/Select'; +import Modal from './Modal'; +import Button from '../Button'; +import { toast } from 'react-hot-toast'; + +interface GroupChatModalProps { + isOpen?: boolean; + onClose: () => void; + users: User[]; +} + +const GroupChatModal: React.FC = ({ + isOpen, + onClose, + users = [] +}) => { + const router = useRouter(); + const [isLoading, setIsLoading] = useState(false); + + const { + register, + handleSubmit, + setValue, + watch, + formState: { + errors, + } + } = useForm({ + defaultValues: { + name: '', + members: [] + } + }); + + const members = watch('members'); + + const onSubmit: SubmitHandler = (data) => { + setIsLoading(true); + + axios.post('/api/conversations', { + ...data, + isGroup: true + }) + .then(() => { + router.refresh(); + onClose(); + }) + .catch(() => toast.error('Something went wrong!')) + .finally(() => setIsLoading(false)); + } + + return ( + +
+
+
+

+ Create a group chat +

+

+ Create a chat with more than 2 people. +

+
+ + +
+ +
+ Avatar + + + +
+
+
+
+
+ +
+ + +
+
+
+ ) +} + +export default SettingsModal; diff --git a/Messenger_Clone/app/components/sidebar/Sidebar.tsx b/Messenger_Clone/app/components/sidebar/Sidebar.tsx new file mode 100644 index 000000000..34687a13d --- /dev/null +++ b/Messenger_Clone/app/components/sidebar/Sidebar.tsx @@ -0,0 +1,22 @@ +import getCurrentUser from '@/app/actions/getCurrentUser'; + +import DesktopSidebar from './DesktopSidebar'; +import MobileFooter from './MobileFooter'; + +async function Sidebar({ children }: { + children: React.ReactNode, +}) { + const currentUser = await getCurrentUser(); + + return ( +
+ + +
+ {children} +
+
+ ) +} + +export default Sidebar; diff --git a/Messenger_Clone/app/context/AuthContext.tsx b/Messenger_Clone/app/context/AuthContext.tsx new file mode 100644 index 000000000..8e46de152 --- /dev/null +++ b/Messenger_Clone/app/context/AuthContext.tsx @@ -0,0 +1,13 @@ +"use client"; + +import { SessionProvider } from "next-auth/react"; + +export interface AuthContextProps { + children: React.ReactNode; +} + +export default function AuthContext({ + children +}: AuthContextProps) { + return {children}; +} diff --git a/Messenger_Clone/app/context/ToasterContext.tsx b/Messenger_Clone/app/context/ToasterContext.tsx new file mode 100644 index 000000000..7a7d433b7 --- /dev/null +++ b/Messenger_Clone/app/context/ToasterContext.tsx @@ -0,0 +1,11 @@ +'use client'; + +import { Toaster } from "react-hot-toast"; + +const ToasterContext = () => { + return ( + + ); +} + +export default ToasterContext; diff --git a/Messenger_Clone/app/conversations/[conversationId]/components/Body.tsx b/Messenger_Clone/app/conversations/[conversationId]/components/Body.tsx new file mode 100644 index 000000000..933ea6111 --- /dev/null +++ b/Messenger_Clone/app/conversations/[conversationId]/components/Body.tsx @@ -0,0 +1,79 @@ +'use client'; + +import axios from "axios"; +import { useEffect, useRef, useState } from "react"; + +import { pusherClient } from "@/app/libs/pusher"; +import useConversation from "@/app/hooks/useConversation"; +import MessageBox from "./MessageBox"; +import { FullMessageType } from "@/app/types"; +import { find } from "lodash"; + +interface BodyProps { + initialMessages: FullMessageType[]; +} + +const Body: React.FC = ({ initialMessages = [] }) => { + const bottomRef = useRef(null); + const [messages, setMessages] = useState(initialMessages); + + const { conversationId } = useConversation(); + + useEffect(() => { + axios.post(`/api/conversations/${conversationId}/seen`); + }, [conversationId]); + + useEffect(() => { + pusherClient.subscribe(conversationId) + bottomRef?.current?.scrollIntoView(); + + const messageHandler = (message: FullMessageType) => { + axios.post(`/api/conversations/${conversationId}/seen`); + + setMessages((current) => { + if (find(current, { id: message.id })) { + return current; + } + + return [...current, message] + }); + + bottomRef?.current?.scrollIntoView(); + }; + + const updateMessageHandler = (newMessage: FullMessageType) => { + setMessages((current) => current.map((currentMessage) => { + if (currentMessage.id === newMessage.id) { + return newMessage; + } + + return currentMessage; + })) + }; + + + pusherClient.bind('messages:new', messageHandler) + pusherClient.bind('message:update', updateMessageHandler); + + return () => { + pusherClient.unsubscribe(conversationId) + pusherClient.unbind('messages:new', messageHandler) + pusherClient.unbind('message:update', updateMessageHandler) + } + }, [conversationId]); + + return ( +
+ {messages.map((message, i) => ( + + ))} +
+
+ ); +} + +export default Body; \ No newline at end of file diff --git a/Messenger_Clone/app/conversations/[conversationId]/components/ConfirmModal.tsx b/Messenger_Clone/app/conversations/[conversationId]/components/ConfirmModal.tsx new file mode 100644 index 000000000..4b5767d3f --- /dev/null +++ b/Messenger_Clone/app/conversations/[conversationId]/components/ConfirmModal.tsx @@ -0,0 +1,105 @@ +'use client'; + +import React, { useCallback, useState } from 'react' +import { Dialog } from '@headlessui/react' +import { FiAlertTriangle } from 'react-icons/fi' +import axios from 'axios'; +import { useRouter } from 'next/navigation'; +import Modal from '@/app/components/modals/Modal'; +import Button from '@/app/components/Button'; +import useConversation from '@/app/hooks/useConversation'; +import { toast } from 'react-hot-toast'; + +interface ConfirmModalProps { + isOpen?: boolean; + onClose: () => void; +} + +const ConfirmModal: React.FC = ({ + isOpen, + onClose +}) => { + const router = useRouter(); + const { conversationId } = useConversation(); + const [isLoading, setIsLoading] = useState(false); + + const onDelete = useCallback(() => { + setIsLoading(true); + + axios.delete(`/api/conversations/${conversationId}`) + .then(() => { + onClose(); + router.push('/conversations'); + router.refresh(); + }) + .catch(() => toast.error('Something went wrong!')) + .finally(() => setIsLoading(false)) + }, [router, conversationId, onClose]); + + return ( + +
+
+
+
+ + Delete conversation + +
+

+ Are you sure you want to delete this conversation? This action cannot be undone. +

+
+
+
+
+ + +
+
+ ) +} + +export default ConfirmModal; diff --git a/Messenger_Clone/app/conversations/[conversationId]/components/Form.tsx b/Messenger_Clone/app/conversations/[conversationId]/components/Form.tsx new file mode 100644 index 000000000..163bc3725 --- /dev/null +++ b/Messenger_Clone/app/conversations/[conversationId]/components/Form.tsx @@ -0,0 +1,101 @@ +'use client'; + +import { + HiPaperAirplane, + HiPhoto +} from "react-icons/hi2"; +import MessageInput from "./MessageInput"; +import { + FieldValues, + SubmitHandler, + useForm +} from "react-hook-form"; +import axios from "axios"; +import { CldUploadButton } from "next-cloudinary"; +import useConversation from "@/app/hooks/useConversation"; + +const Form = () => { + const { conversationId } = useConversation(); + + const { + register, + handleSubmit, + setValue, + formState: { + errors, + } + } = useForm({ + defaultValues: { + message: '' + } + }); + + const onSubmit: SubmitHandler = (data) => { + setValue('message', '', { shouldValidate: true }); + axios.post('/api/messages', { + ...data, + conversationId: conversationId + }) + } + + const handleUpload = (result: any) => { + axios.post('/api/messages', { + image: result.info.secure_url, + conversationId: conversationId + }) + } + + return ( +
+ + + +
+ + + +
+ ); +} + +export default Form; \ No newline at end of file diff --git a/Messenger_Clone/app/conversations/[conversationId]/components/Header.tsx b/Messenger_Clone/app/conversations/[conversationId]/components/Header.tsx new file mode 100644 index 000000000..d506e1ce2 --- /dev/null +++ b/Messenger_Clone/app/conversations/[conversationId]/components/Header.tsx @@ -0,0 +1,99 @@ +'use client'; + +import { HiChevronLeft } from 'react-icons/hi' +import { HiEllipsisHorizontal } from 'react-icons/hi2'; +import { useMemo, useState } from "react"; +import Link from "next/link"; +import { Conversation, User } from "@prisma/client"; + +import useOtherUser from "@/app/hooks/useOtherUser"; +import useActiveList from "@/app/hooks/useActiveList"; + +import Avatar from "@/app/components/Avatar"; +import AvatarGroup from "@/app/components/AvatarGroup"; +import ProfileDrawer from "./ProfileDrawer"; + +interface HeaderProps { + conversation: Conversation & { + users: User[] + } +} + +const Header: React.FC = ({ conversation }) => { + const otherUser = useOtherUser(conversation); + const [drawerOpen, setDrawerOpen] = useState(false); + + const { members } = useActiveList(); + const isActive = members.indexOf(otherUser?.email!) !== -1; + const statusText = useMemo(() => { + if (conversation.isGroup) { + return `${conversation.users.length} members`; + } + + return isActive ? 'Active' : 'Offline' + }, [conversation, isActive]); + + return ( + <> + setDrawerOpen(false)} + /> +
+
+ + + + {conversation.isGroup ? ( + + ) : ( + + )} +
+
{conversation.name || otherUser.name}
+
+ {statusText} +
+
+
+ setDrawerOpen(true)} + className=" + text-sky-500 + cursor-pointer + hover:text-sky-600 + transition + " + /> +
+ + ); +} + +export default Header; diff --git a/Messenger_Clone/app/conversations/[conversationId]/components/ImageModal.tsx b/Messenger_Clone/app/conversations/[conversationId]/components/ImageModal.tsx new file mode 100644 index 000000000..dbcb54dab --- /dev/null +++ b/Messenger_Clone/app/conversations/[conversationId]/components/ImageModal.tsx @@ -0,0 +1,35 @@ +'use client'; + +import Modal from '@/app/components/modals/Modal'; +import Image from 'next/image'; + +interface ImageModalProps { + isOpen?: boolean; + onClose: () => void; + src?: string | null; +} + +const ImageModal: React.FC = ({ + isOpen, + onClose, + src +}) => { + if (!src) { + return null; + } + + return ( + +
+ Image +
+
+ ) +} + +export default ImageModal; diff --git a/Messenger_Clone/app/conversations/[conversationId]/components/MessageBox.tsx b/Messenger_Clone/app/conversations/[conversationId]/components/MessageBox.tsx new file mode 100644 index 000000000..aa8c95d67 --- /dev/null +++ b/Messenger_Clone/app/conversations/[conversationId]/components/MessageBox.tsx @@ -0,0 +1,92 @@ +'use client'; + +import clsx from "clsx"; +import Image from "next/image"; +import { useState } from "react"; +import { format } from "date-fns"; +import { useSession } from "next-auth/react"; +import { FullMessageType } from "@/app/types"; + +import Avatar from "@/app/components/Avatar"; +import ImageModal from "./ImageModal"; + +interface MessageBoxProps { + data: FullMessageType; + isLast?: boolean; +} + +const MessageBox: React.FC = ({ + data, + isLast +}) => { + const session = useSession(); + const [imageModalOpen, setImageModalOpen] = useState(false); + + + const isOwn = session.data?.user?.email === data?.sender?.email + const seenList = (data.seen || []) + .filter((user) => user.email !== data?.sender?.email) + .map((user) => user.name) + .join(', '); + + const container = clsx('flex gap-3 p-4', isOwn && 'justify-end'); + const avatar = clsx(isOwn && 'order-2'); + const body = clsx('flex flex-col gap-2', isOwn && 'items-end'); + const message = clsx( + 'text-sm w-fit overflow-hidden', + isOwn ? 'bg-sky-500 text-white' : 'bg-gray-100', + data.image ? 'rounded-md p-0' : 'rounded-full py-2 px-3' + ); + + return ( +
+
+ +
+
+
+
+ {data.sender.name} +
+
+ {format(new Date(data.createdAt), 'p')} +
+
+
+ setImageModalOpen(false)} /> + {data.image ? ( + Image setImageModalOpen(true)} + src={data.image} + className=" + object-cover + cursor-pointer + hover:scale-110 + transition + translate + " + /> + ) : ( +
{data.body}
+ )} +
+ {isLast && isOwn && seenList.length > 0 && ( +
+ {`Seen by ${seenList}`} +
+ )} +
+
+ ); +} + +export default MessageBox; diff --git a/Messenger_Clone/app/conversations/[conversationId]/components/MessageInput.tsx b/Messenger_Clone/app/conversations/[conversationId]/components/MessageInput.tsx new file mode 100644 index 000000000..c38db0a83 --- /dev/null +++ b/Messenger_Clone/app/conversations/[conversationId]/components/MessageInput.tsx @@ -0,0 +1,48 @@ +'use client'; + +import { + FieldErrors, + FieldValues, + UseFormRegister +} from "react-hook-form"; + +interface MessageInputProps { + placeholder?: string; + id: string; + type?: string; + required?: boolean; + register: UseFormRegister, + errors: FieldErrors +} + +const MessageInput: React.FC = ({ + placeholder, + id, + type, + required, + register, +}) => { + return ( +
+ +
+ ); +} + +export default MessageInput; \ No newline at end of file diff --git a/Messenger_Clone/app/conversations/[conversationId]/components/ProfileDrawer.tsx b/Messenger_Clone/app/conversations/[conversationId]/components/ProfileDrawer.tsx new file mode 100644 index 000000000..7e4783a38 --- /dev/null +++ b/Messenger_Clone/app/conversations/[conversationId]/components/ProfileDrawer.tsx @@ -0,0 +1,218 @@ +'use client'; + +import { Fragment, useMemo, useState } from 'react' +import { Dialog, Transition } from '@headlessui/react' +import { IoClose, IoTrash } from 'react-icons/io5' +import { Conversation, User } from '@prisma/client'; +import { format } from 'date-fns'; + +import useOtherUser from '@/app/hooks/useOtherUser'; +import useActiveList from '@/app/hooks/useActiveList'; + +import Avatar from '@/app/components/Avatar'; +import AvatarGroup from '@/app/components/AvatarGroup'; +import ConfirmModal from './ConfirmModal'; + +interface ProfileDrawerProps { + isOpen: boolean; + onClose: () => void; + data: Conversation & { + users: User[] + } +} + +const ProfileDrawer: React.FC = ({ + isOpen, + onClose, + data, +}) => { + const [confirmOpen, setConfirmOpen] = useState(false); + const otherUser = useOtherUser(data); + + const joinedDate = useMemo(() => { + return format(new Date(otherUser.createdAt), 'PP'); + }, [otherUser.createdAt]); + + const title = useMemo(() => { + return data.name || otherUser.name; + }, [data.name, otherUser.name]); + + const { members } = useActiveList(); + const isActive = members.indexOf(otherUser?.email!) !== -1; + + const statusText = useMemo(() => { + if (data.isGroup) { + return `${data.users.length} members`; + } + + return isActive ? 'Active' : 'Offline' + }, [data, isActive]); + + return ( + <> + setConfirmOpen(false)} + /> + + + +
+ + +
+
+
+ + +
+
+
+
+ +
+
+
+
+
+
+ {data.isGroup ? : } +
+
+ {title} +
+
+ {statusText} +
+
+
setConfirmOpen(true)} className="flex flex-col gap-3 items-center cursor-pointer hover:opacity-75"> +
+ +
+
+ Delete +
+
+
+
+
+ {data.isGroup && ( +
+
+ Emails +
+
+ {data.users.map((user) => user.email).join(', ')} +
+
+ )} + {!data.isGroup && ( +
+
+ Email +
+
+ {otherUser.email} +
+
+ )} + {!data.isGroup && ( + <> +
+
+
+ Joined +
+
+ +
+
+ + )} +
+
+
+
+
+
+
+
+
+
+
+
+ + ) +} + +export default ProfileDrawer; diff --git a/Messenger_Clone/app/conversations/[conversationId]/page.tsx b/Messenger_Clone/app/conversations/[conversationId]/page.tsx new file mode 100644 index 000000000..74aa218c7 --- /dev/null +++ b/Messenger_Clone/app/conversations/[conversationId]/page.tsx @@ -0,0 +1,38 @@ +import getConversationById from "@/app/actions/getConversationById"; +import getMessages from "@/app/actions/getMessages"; + +import Header from "./components/Header"; +import Body from "./components/Body"; +import Form from "./components/Form"; +import EmptyState from "@/app/components/EmptyState"; + +interface IParams { + conversationId: string; +} + +const ChatId = async ({ params }: { params: IParams }) => { + const conversation = await getConversationById(params.conversationId); + const messages = await getMessages(params.conversationId); + + if (!conversation) { + return ( +
+
+ +
+
+ ) + } + + return ( +
+
+
+ +
+
+
+ ); +} + +export default ChatId; \ No newline at end of file diff --git a/Messenger_Clone/app/conversations/components/ConversationBox.tsx b/Messenger_Clone/app/conversations/components/ConversationBox.tsx new file mode 100644 index 000000000..ae19a569c --- /dev/null +++ b/Messenger_Clone/app/conversations/components/ConversationBox.tsx @@ -0,0 +1,125 @@ +'use client'; + +import { useCallback, useMemo } from "react"; +import { useRouter } from "next/navigation"; +import { Conversation, Message, User } from "@prisma/client"; +import { format } from "date-fns"; +import { useSession } from "next-auth/react"; +import clsx from "clsx"; + +import Avatar from "@/app/components/Avatar"; +import useOtherUser from "@/app/hooks/useOtherUser"; +import AvatarGroup from "@/app/components/AvatarGroup"; +import { FullConversationType } from "@/app/types"; + +interface ConversationBoxProps { + data: FullConversationType, + selected?: boolean; +} + +const ConversationBox: React.FC = ({ + data, + selected +}) => { + const otherUser = useOtherUser(data); + const session = useSession(); + const router = useRouter(); + + const handleClick = useCallback(() => { + router.push(`/conversations/${data.id}`); + }, [data, router]); + + const lastMessage = useMemo(() => { + const messages = data.messages || []; + + return messages[messages.length - 1]; + }, [data.messages]); + + const userEmail = useMemo(() => session.data?.user?.email, + [session.data?.user?.email]); + + const hasSeen = useMemo(() => { + if (!lastMessage) { + return false; + } + + const seenArray = lastMessage.seen || []; + + if (!userEmail) { + return false; + } + + return seenArray + .filter((user) => user.email === userEmail).length !== 0; + }, [userEmail, lastMessage]); + + const lastMessageText = useMemo(() => { + if (lastMessage?.image) { + return 'Sent an image'; + } + + if (lastMessage?.body) { + return lastMessage?.body + } + + return 'Started a conversation'; + }, [lastMessage]); + + return ( +
+ {data.isGroup ? ( + + ) : ( + + )} +
+
+
+
+
+ ); +} + +export default ConversationBox; diff --git a/Messenger_Clone/app/conversations/components/ConversationList.tsx b/Messenger_Clone/app/conversations/components/ConversationList.tsx new file mode 100644 index 000000000..cb0db5775 --- /dev/null +++ b/Messenger_Clone/app/conversations/components/ConversationList.tsx @@ -0,0 +1,132 @@ +'use client'; + +import { User } from "@prisma/client"; +import { useRouter } from "next/navigation"; +import { useSession } from "next-auth/react"; +import { useEffect, useMemo, useState } from "react"; +import { MdOutlineGroupAdd } from 'react-icons/md'; +import clsx from "clsx"; +import { find, uniq } from 'lodash'; + +import useConversation from "@/app/hooks/useConversation"; +import { pusherClient } from "@/app/libs/pusher"; +import GroupChatModal from "@/app/components/modals/GroupChatModal"; +import ConversationBox from "./ConversationBox"; +import { FullConversationType } from "@/app/types"; + +interface ConversationListProps { + initialItems: FullConversationType[]; + users: User[]; + title?: string; +} + +const ConversationList: React.FC = ({ + initialItems, + users +}) => { + const [items, setItems] = useState(initialItems); + const [isModalOpen, setIsModalOpen] = useState(false); + + const router = useRouter(); + const session = useSession(); + + const { conversationId, isOpen } = useConversation(); + + const pusherKey = useMemo(() => { + return session.data?.user?.email + }, [session.data?.user?.email]) + + useEffect(() => { + if (!pusherKey) { + return; + } + + pusherClient.subscribe(pusherKey); + + const updateHandler = (conversation: FullConversationType) => { + setItems((current) => current.map((currentConversation) => { + if (currentConversation.id === conversation.id) { + return { + ...currentConversation, + messages: conversation.messages + }; + } + + return currentConversation; + })); + } + + const newHandler = (conversation: FullConversationType) => { + setItems((current) => { + if (find(current, { id: conversation.id })) { + return current; + } + + return [conversation, ...current] + }); + } + + const removeHandler = (conversation: FullConversationType) => { + setItems((current) => { + return [...current.filter((convo) => convo.id !== conversation.id)] + }); + } + + pusherClient.bind('conversation:update', updateHandler) + pusherClient.bind('conversation:new', newHandler) + pusherClient.bind('conversation:remove', removeHandler) + }, [pusherKey, router]); + + return ( + <> + setIsModalOpen(false)} + /> + + + ); +} + +export default ConversationList; diff --git a/Messenger_Clone/app/conversations/layout.tsx b/Messenger_Clone/app/conversations/layout.tsx new file mode 100644 index 000000000..2adca54d2 --- /dev/null +++ b/Messenger_Clone/app/conversations/layout.tsx @@ -0,0 +1,27 @@ +import getConversations from "../actions/getConversations"; +import getUsers from "../actions/getUsers"; +import Sidebar from "../components/sidebar/Sidebar"; +import ConversationList from "./components/ConversationList"; + +export default async function ConversationsLayout({ + children +}: { + children: React.ReactNode, +}) { + const conversations = await getConversations(); + const users = await getUsers(); + + return ( + // @ts-expect-error Server Component + +
+ + {children} +
+
+ ); +} diff --git a/Messenger_Clone/app/conversations/loading.tsx b/Messenger_Clone/app/conversations/loading.tsx new file mode 100644 index 000000000..6358715bc --- /dev/null +++ b/Messenger_Clone/app/conversations/loading.tsx @@ -0,0 +1,9 @@ +import LoadingModal from "../components/modals/LoadingModal"; + +const Loading = () => { + return ( + + ); +} + +export default Loading; diff --git a/Messenger_Clone/app/conversations/page.tsx b/Messenger_Clone/app/conversations/page.tsx new file mode 100644 index 000000000..6eec607ae --- /dev/null +++ b/Messenger_Clone/app/conversations/page.tsx @@ -0,0 +1,21 @@ +'use client'; + +import clsx from "clsx"; + +import useConversation from "../hooks/useConversation"; +import EmptyState from "../components/EmptyState"; + +const Home = () => { + const { isOpen } = useConversation(); + + return ( +
+ +
+ ) +} + +export default Home; diff --git a/Messenger_Clone/app/favicon.ico b/Messenger_Clone/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/Messenger_Clone/app/globals.css b/Messenger_Clone/app/globals.css new file mode 100644 index 000000000..53dfffafa --- /dev/null +++ b/Messenger_Clone/app/globals.css @@ -0,0 +1,9 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +html, +body, +:root { + height: 100%; +} diff --git a/Messenger_Clone/app/hooks/useActiveChannel.ts b/Messenger_Clone/app/hooks/useActiveChannel.ts new file mode 100644 index 000000000..eddf184af --- /dev/null +++ b/Messenger_Clone/app/hooks/useActiveChannel.ts @@ -0,0 +1,42 @@ +import { useEffect, useState } from "react"; +import { pusherClient } from "../libs/pusher"; +import { Channel, Members } from "pusher-js"; +import useActiveList from "./useActiveList"; + +const useActiveChannel = () => { + const { set, add, remove } = useActiveList(); + const [activeChannel, setActiveChannel] = useState(null); + + useEffect(() => { + let channel = activeChannel; + + if (!channel) { + channel = pusherClient.subscribe('presence-messenger'); + setActiveChannel(channel); + } + + channel.bind("pusher:subscription_succeeded", (members: Members) => { + const initialMembers: string[] = []; + + members.each((member: Record) => initialMembers.push(member.id)); + set(initialMembers); + }); + + channel.bind("pusher:member_added", (member: Record) => { + add(member.id) + }); + + channel.bind("pusher:member_removed", (member: Record) => { + remove(member.id); + }); + + return () => { + if (activeChannel) { + pusherClient.unsubscribe('presence-messenger'); + setActiveChannel(null); + } + } + }, [activeChannel, set, add, remove]); +} + +export default useActiveChannel; diff --git a/Messenger_Clone/app/hooks/useActiveList.ts b/Messenger_Clone/app/hooks/useActiveList.ts new file mode 100644 index 000000000..83bd374f3 --- /dev/null +++ b/Messenger_Clone/app/hooks/useActiveList.ts @@ -0,0 +1,17 @@ +import { create } from 'zustand' + +interface ActiveListStore { + members: string[]; + add: (id: string) => void; + remove: (id: string) => void; + set: (ids: string[]) => void; +} + +const useActiveList = create((set) => ({ + members: [], + add: (id) => set((state) => ({ members: [...state.members, id] })), + remove: (id) => set((state) => ({ members: state.members.filter((memberId) => memberId !== id) })), + set: (ids) => set({ members: ids }) +})); + +export default useActiveList; diff --git a/Messenger_Clone/app/hooks/useConversation.ts b/Messenger_Clone/app/hooks/useConversation.ts new file mode 100644 index 000000000..beb6232e0 --- /dev/null +++ b/Messenger_Clone/app/hooks/useConversation.ts @@ -0,0 +1,23 @@ +import { useParams } from "next/navigation"; +import { useMemo } from "react"; + +const useConversation = () => { + const params = useParams(); + + const conversationId = useMemo(() => { + if (!params?.conversationId) { + return ''; + } + + return params.conversationId as string; + }, [params?.conversationId]); + + const isOpen = useMemo(() => !!conversationId, [conversationId]); + + return useMemo(() => ({ + isOpen, + conversationId + }), [isOpen, conversationId]); +}; + +export default useConversation; diff --git a/Messenger_Clone/app/hooks/useOtherUser.ts b/Messenger_Clone/app/hooks/useOtherUser.ts new file mode 100644 index 000000000..239d4f668 --- /dev/null +++ b/Messenger_Clone/app/hooks/useOtherUser.ts @@ -0,0 +1,20 @@ +import { useSession } from "next-auth/react"; +import { useMemo } from "react"; +import { FullConversationType } from "../types"; +import { User } from "@prisma/client"; + +const useOtherUser = (conversation: FullConversationType | { users: User[] }) => { + const session = useSession(); + + const otherUser = useMemo(() => { + const currentUserEmail = session.data?.user?.email; + + const otherUser = conversation.users.filter((user) => user.email !== currentUserEmail); + + return otherUser[0]; + }, [session.data?.user?.email, conversation.users]); + + return otherUser; +}; + +export default useOtherUser; diff --git a/Messenger_Clone/app/hooks/useRoutes.ts b/Messenger_Clone/app/hooks/useRoutes.ts new file mode 100644 index 000000000..8eb6776d0 --- /dev/null +++ b/Messenger_Clone/app/hooks/useRoutes.ts @@ -0,0 +1,36 @@ +import { useMemo } from "react"; +import { usePathname } from "next/navigation"; +import { HiChat } from 'react-icons/hi'; +import { HiArrowLeftOnRectangle, HiUsers } from 'react-icons/hi2'; +import { signOut } from "next-auth/react"; +import useConversation from "./useConversation"; + +const useRoutes = () => { + const pathname = usePathname(); + const { conversationId } = useConversation(); + + const routes = useMemo(() => [ + { + label: 'Chat', + href: '/conversations', + icon: HiChat, + active: pathname === '/conversations' || !!conversationId + }, + { + label: 'Users', + href: '/users', + icon: HiUsers, + active: pathname === '/users' + }, + { + label: 'Logout', + onClick: () => signOut(), + href: '#', + icon: HiArrowLeftOnRectangle, + } + ], [pathname, conversationId]); + + return routes; +}; + +export default useRoutes; diff --git a/Messenger_Clone/app/hooks/useSidebar.ts b/Messenger_Clone/app/hooks/useSidebar.ts new file mode 100644 index 000000000..1e9c40d39 --- /dev/null +++ b/Messenger_Clone/app/hooks/useSidebar.ts @@ -0,0 +1,15 @@ +import { create } from 'zustand' + +interface SidebarStore { + isOpen: boolean; + onOpen: () => void; + onClose: () => void; +} + +const useSidebar = create((set) => ({ + isOpen: false, + onOpen: () => set({ isOpen: true }), + onClose: () => set({ isOpen: false }), +})); + +export default useSidebar; diff --git a/Messenger_Clone/app/layout.tsx b/Messenger_Clone/app/layout.tsx new file mode 100644 index 000000000..a738c70c8 --- /dev/null +++ b/Messenger_Clone/app/layout.tsx @@ -0,0 +1,27 @@ +import './globals.css' +import AuthContext from './context/AuthContext' +import ActiveStatus from './components/ActiveStatus' +import ToasterContext from './context/ToasterContext' + +export const metadata = { + title: 'Messenger', + description: 'Messenger Clone', +} + +export default function RootLayout({ + children, +}: { + children: React.ReactNode +}) { + return ( + + + + + + {children} + + + + ) +} diff --git a/Messenger_Clone/app/libs/prismadb.ts b/Messenger_Clone/app/libs/prismadb.ts new file mode 100644 index 000000000..d8d515e60 --- /dev/null +++ b/Messenger_Clone/app/libs/prismadb.ts @@ -0,0 +1,10 @@ +import { PrismaClient } from "@prisma/client" + +declare global { + var prisma: PrismaClient | undefined +} + +const client = globalThis.prisma || new PrismaClient() +if (process.env.NODE_ENV !== "production") globalThis.prisma = client + +export default client diff --git a/Messenger_Clone/app/libs/pusher.ts b/Messenger_Clone/app/libs/pusher.ts new file mode 100644 index 000000000..3c2c99f1a --- /dev/null +++ b/Messenger_Clone/app/libs/pusher.ts @@ -0,0 +1,21 @@ +import PusherServer from 'pusher' +import PusherClient from 'pusher-js' + +export const pusherServer = new PusherServer({ + appId: process.env.PUSHER_APP_ID!, + key: process.env.NEXT_PUBLIC_PUSHER_APP_KEY!, + secret: process.env.PUSHER_SECRET!, + cluster: 'eu', + useTLS: true, +}); + +export const pusherClient = new PusherClient( + process.env.NEXT_PUBLIC_PUSHER_APP_KEY!, + { + channelAuthorization: { + endpoint: '/api/pusher/auth', + transport: 'ajax', + }, + cluster: 'eu', + } +); diff --git a/Messenger_Clone/app/types/index.ts b/Messenger_Clone/app/types/index.ts new file mode 100644 index 000000000..dec831da6 --- /dev/null +++ b/Messenger_Clone/app/types/index.ts @@ -0,0 +1,11 @@ +import { Conversation, Message, User } from "@prisma/client"; + +export type FullMessageType = Message & { + sender: User, + seen: User[] +}; + +export type FullConversationType = Conversation & { + users: User[]; + messages: FullMessageType[] +}; diff --git a/Messenger_Clone/app/users/components/UserBox.tsx b/Messenger_Clone/app/users/components/UserBox.tsx new file mode 100644 index 000000000..d92b1a479 --- /dev/null +++ b/Messenger_Clone/app/users/components/UserBox.tsx @@ -0,0 +1,66 @@ +import axios from "axios"; +import { useCallback, useState } from "react"; +import { useRouter } from "next/navigation"; +import { User } from "@prisma/client"; + +import Avatar from "@/app/components/Avatar"; +import LoadingModal from "@/app/components/modals/LoadingModal"; + +interface UserBoxProps { + data: User +} + +const UserBox: React.FC = ({ + data +}) => { + const router = useRouter(); + const [isLoading, setIsLoading] = useState(false); + + const handleClick = useCallback(() => { + setIsLoading(true); + + axios.post('/api/conversations', { userId: data.id }) + .then((data) => { + router.push(`/conversations/${data.data.id}`); + }) + .finally(() => setIsLoading(false)); + }, [data, router]); + + return ( + <> + {isLoading && ( + + )} +
+ +
+
+
+
+
+ + ); +} + +export default UserBox; diff --git a/Messenger_Clone/app/users/components/UserList.tsx b/Messenger_Clone/app/users/components/UserList.tsx new file mode 100644 index 000000000..ee2122a51 --- /dev/null +++ b/Messenger_Clone/app/users/components/UserList.tsx @@ -0,0 +1,55 @@ +'use client'; + + +import { User } from "@prisma/client"; + +import UserBox from "./UserBox"; + +interface UserListProps { + items: User[]; +} + +const UserList: React.FC = ({ + items, +}) => { + return ( + + ); +} + +export default UserList; diff --git a/Messenger_Clone/app/users/layout.tsx b/Messenger_Clone/app/users/layout.tsx new file mode 100644 index 000000000..8aef34878 --- /dev/null +++ b/Messenger_Clone/app/users/layout.tsx @@ -0,0 +1,21 @@ +import getUsers from "../actions/getUsers"; +import Sidebar from "../components/sidebar/Sidebar"; +import UserList from "./components/UserList"; + +export default async function UsersLayout({ + children +}: { + children: React.ReactNode, +}) { + const users = await getUsers(); + + return ( + // @ts-expect-error Server Component + +
+ + {children} +
+
+ ); +} diff --git a/Messenger_Clone/app/users/loading.tsx b/Messenger_Clone/app/users/loading.tsx new file mode 100644 index 000000000..11dd29602 --- /dev/null +++ b/Messenger_Clone/app/users/loading.tsx @@ -0,0 +1,9 @@ +import LoadingModal from "../components/modals/LoadingModal"; + +const Loading = () => { + return ( + + ); +} + +export default Loading; \ No newline at end of file diff --git a/Messenger_Clone/app/users/page.tsx b/Messenger_Clone/app/users/page.tsx new file mode 100644 index 000000000..47946ef19 --- /dev/null +++ b/Messenger_Clone/app/users/page.tsx @@ -0,0 +1,11 @@ +import EmptyState from '../components/EmptyState'; + +const People = () => { + return ( +
+ +
+ ); +} + +export default People; diff --git a/Messenger_Clone/middleware.ts b/Messenger_Clone/middleware.ts new file mode 100644 index 000000000..9b425bdea --- /dev/null +++ b/Messenger_Clone/middleware.ts @@ -0,0 +1,14 @@ +import { withAuth } from "next-auth/middleware"; + +export default withAuth({ + pages: { + signIn: "/", + }, +}); + +export const config = { + matcher: [ + "/conversations/:path*", + "/users/:path*", + ] +}; diff --git a/Messenger_Clone/next.config.js b/Messenger_Clone/next.config.js new file mode 100644 index 000000000..e35d3a631 --- /dev/null +++ b/Messenger_Clone/next.config.js @@ -0,0 +1,16 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + experimental: { + appDir: true, + swcPlugins: [["next-superjson-plugin", {}]] + }, + images: { + domains: [ + 'res.cloudinary.com', + 'avatars.githubusercontent.com', + 'lh3.googleusercontent.com' + ] + } +} + +module.exports = nextConfig diff --git a/Messenger_Clone/package-lock.json b/Messenger_Clone/package-lock.json new file mode 100644 index 000000000..4731272ab --- /dev/null +++ b/Messenger_Clone/package-lock.json @@ -0,0 +1,9133 @@ +{ + "name": "whatsapp", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "whatsapp", + "version": "0.1.0", + "hasInstallScript": true, + "dependencies": { + "@headlessui/react": "^1.7.13", + "@next-auth/prisma-adapter": "^1.0.6", + "@prisma/client": "^4.13.0", + "@types/node": "18.15.11", + "@types/react": "18.0.33", + "@types/react-dom": "18.0.11", + "autoprefixer": "10.4.14", + "axios": "^1.3.6", + "bcrypt": "^5.1.0", + "clsx": "^1.2.1", + "date-fns": "^2.29.3", + "eslint": "8.38.0", + "eslint-config-next": "13.3.0", + "lodash": "^4.17.21", + "next": "13.3.1", + "next-auth": "^4.22.1", + "next-cloudinary": "^4.4.0", + "next-superjson-plugin": "^0.5.7", + "postcss": "8.4.21", + "pusher": "^5.1.2", + "pusher-js": "^8.0.2", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-hook-form": "^7.43.9", + "react-hot-toast": "^2.4.1", + "react-icons": "^4.8.0", + "react-loading-skeleton": "^3.2.1", + "react-select": "^5.7.2", + "react-spinners": "^0.13.8", + "superjson": "^1.12.3", + "tailwindcss": "3.3.1", + "typescript": "5.0.4", + "zustand": "^4.3.7" + }, + "devDependencies": { + "@tailwindcss/forms": "^0.5.3", + "@types/bcrypt": "^5.0.0", + "@types/lodash": "^4.14.194", + "prisma": "^4.13.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "dependencies": { + "@babel/types": "^7.21.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", + "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/runtime": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", + "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", + "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "dependencies": { + "@babel/helper-string-parser": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@cloudinary-util/url-loader": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@cloudinary-util/url-loader/-/url-loader-3.2.0.tgz", + "integrity": "sha512-jCgguukNTPLKGQZIVWRObXHySBde16wPvTs1S8J89/vtPhQsGxpE83jOVCll539ndm5qa5DrFfsgAsLd3g9CxQ==", + "dependencies": { + "@cloudinary-util/util": "2.0.1", + "@cloudinary/url-gen": "^1.8.7" + } + }, + "node_modules/@cloudinary-util/util": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@cloudinary-util/util/-/util-2.0.1.tgz", + "integrity": "sha512-d2imgUjYTLjv8ZhZPMAts/uPbMvIE71X4I/5hwdY/7vM4BuFQoJMSyq+h2pW1z1MyGG9BOWBm70vp082lSrbEQ==" + }, + "node_modules/@cloudinary/transformation-builder-sdk": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@cloudinary/transformation-builder-sdk/-/transformation-builder-sdk-1.2.7.tgz", + "integrity": "sha512-Q1fhw37BXXmN6/BCxdnw3OUJ6aAy/zpDWH5t+xIwmG5GtYUYMZqOjvdOkOhWBmus9ptq9znuGsYn8h5vtSjT+w==", + "dependencies": { + "@cloudinary/url-gen": "^1.7.0" + } + }, + "node_modules/@cloudinary/url-gen": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@cloudinary/url-gen/-/url-gen-1.10.0.tgz", + "integrity": "sha512-J3V+gzT6Tepw9bMrR3prWVbW22cIFJtPS8Wkt1WFSZVHWpZx8/vv9ACHaxUmRqaSkjhX8ErsuzDY5YxdWnaCbw==", + "dependencies": { + "@cloudinary/transformation-builder-sdk": "^1.2.7" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.10.8", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.8.tgz", + "integrity": "sha512-gxNky50AJL3AlkbjvTARiwAqei6/tNUxDZPSKd+3jqWVM3AmdVTTdpjHorR/an/M0VJqdsuq5oGcFH+rjtyujQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/serialize": "^1.1.1", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.1.4" + } + }, + "node_modules/@emotion/cache": { + "version": "11.10.8", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.8.tgz", + "integrity": "sha512-5fyqGHi51LU95o7qQ/vD1jyvC4uCY5GcBT+UgP4LHdpO9jPDlXqhrRr9/wCKmfoAvh5G/F7aOh4MwQa+8uEqhA==", + "dependencies": { + "@emotion/memoize": "^0.8.0", + "@emotion/sheet": "^1.2.1", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "stylis": "4.1.4" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz", + "integrity": "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==" + }, + "node_modules/@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" + }, + "node_modules/@emotion/react": { + "version": "11.10.8", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.8.tgz", + "integrity": "sha512-ZfGfiABtJ1P1OXqOBsW08EgCDp5fK6C5I8hUJauc/VcJBGSzqAirMnFslhFWnZJ/w5HxPI36XbvMV0l4KZHl+w==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.8", + "@emotion/cache": "^11.10.8", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==", + "dependencies": { + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/unitless": "^0.8.0", + "@emotion/utils": "^1.2.0", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz", + "integrity": "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==" + }, + "node_modules/@emotion/unitless": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", + "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", + "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz", + "integrity": "sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz", + "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==" + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.1", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", + "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.6.tgz", + "integrity": "sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==" + }, + "node_modules/@floating-ui/dom": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.7.tgz", + "integrity": "sha512-DyqylONj1ZaBnzj+uBnVfzdjjCkFCL2aA9ESHLyUOGSqb03RpbLMImP1ekIQXYs4KLk9jAjJfZAU8hXfWSahEg==", + "dependencies": { + "@floating-ui/core": "^1.2.6" + } + }, + "node_modules/@headlessui/react": { + "version": "1.7.14", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.14.tgz", + "integrity": "sha512-znzdq9PG8rkwcu9oQ2FwIy0ZFtP9Z7ycS+BAqJ3R5EIqC/0bJGvhT7193rFf+45i9nnPsYvCQVW4V/bB9Xc+gA==", + "dependencies": { + "client-only": "^0.0.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16 || ^17 || ^18", + "react-dom": "^16 || ^17 || ^18" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", + "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@next-auth/prisma-adapter": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@next-auth/prisma-adapter/-/prisma-adapter-1.0.6.tgz", + "integrity": "sha512-Z7agwfSZEeEcqKqrnisBun7VndRPshd6vyDsoRU68MXbkui8storkHgvN2hnNDrqr/hSCF9aRn56a1qpihaB4A==", + "peerDependencies": { + "@prisma/client": ">=2.26.0 || >=3", + "next-auth": "^4" + } + }, + "node_modules/@next/env": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.3.1.tgz", + "integrity": "sha512-EDtCoedIZC7JlUQ3uaQpSc4aVmyhbLHmQVALg7pFfQgOTjgSnn7mKtA0DiCMkYvvsx6aFb5octGMtWrOtGXW9A==" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.3.0.tgz", + "integrity": "sha512-wuGN5qSEjSgcq9fVkH0Y/qIPFjnZtW3ZPwfjJOn7l/rrf6y8J24h/lo61kwqunTyzZJm/ETGfGVU9PUs8cnzEA==", + "dependencies": { + "glob": "7.1.7" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.3.1.tgz", + "integrity": "sha512-UXPtriEc/pBP8luSLSCZBcbzPeVv+SSjs9cH/KygTbhmACye8/OOXRZO13Z2Wq1G0gLmEAIHQAOuF+vafPd2lw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.3.1.tgz", + "integrity": "sha512-lT36yYxosCfLtplFzJWgo0hrPu6/do8+msgM7oQkPeohDNdhjtjFUgOOwdSnPublLR6Mo2Ym4P/wl5OANuD2bw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.3.1.tgz", + "integrity": "sha512-wRb76nLWJhonH8s3kxC/1tFguEkeOPayIwe9mkaz1G/yeS3OrjeyKMJsb4+Kdg0zbTo53bNCOl59NNtDM7yyyw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.3.1.tgz", + "integrity": "sha512-qz3BzjJRZ16Iq/jrp+pjiYOc0jTjHlfmxQmZk9x/+5uhRP6/eWQSTAPVJ33BMo6oK5O5N4644OgTAbzXzorecg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.3.1.tgz", + "integrity": "sha512-6mgkLmwlyWlomQmpl21I3hxgqE5INoW4owTlcLpNsd1V4wP+J46BlI/5zV5KWWbzjfncIqzXoeGs5Eg+1GHODA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.3.1.tgz", + "integrity": "sha512-uqm5sielhQmKJM+qayIhgZv1KlS5pqTdQ99b+Z7hMWryXS96qE0DftTmMZowBcUL6x7s2vSXyH5wPtO1ON7LBg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.3.1.tgz", + "integrity": "sha512-WomIiTj/v3LevltlibNQKmvrOymNRYL+a0dp5R73IwPWN5FvXWwSELN/kiNALig/+T3luc4qHNTyvMCp9L6U5Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.3.1.tgz", + "integrity": "sha512-M+PoH+0+q658wRUbs285RIaSTYnGBSTdweH/0CdzDgA6Q4rBM0sQs4DHmO3BPP0ltCO/vViIoyG7ks66XmCA5g==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.3.1.tgz", + "integrity": "sha512-Sl1F4Vp5Z1rNXWZYqJwMuWRRol4bqOB6+/d7KqkgQ4AcafKPN1PZmpkCoxv4UFHtFNIB7EotnuIhtXu3zScicQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@panva/hkdf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.1.1.tgz", + "integrity": "sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/@pkgr/utils": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.3.1.tgz", + "integrity": "sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==", + "dependencies": { + "cross-spawn": "^7.0.3", + "is-glob": "^4.0.3", + "open": "^8.4.0", + "picocolors": "^1.0.0", + "tiny-glob": "^0.2.9", + "tslib": "^2.4.0" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@prisma/client": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-4.13.0.tgz", + "integrity": "sha512-YaiiICcRB2hatxsbnfB66uWXjcRw3jsZdlAVxmx0cFcTc/Ad/sKdHCcWSnqyDX47vAewkjRFwiLwrOUjswVvmA==", + "hasInstallScript": true, + "dependencies": { + "@prisma/engines-version": "4.13.0-50.1e7af066ee9cb95cf3a403c78d9aab3e6b04f37a" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "prisma": "*" + }, + "peerDependenciesMeta": { + "prisma": { + "optional": true + } + } + }, + "node_modules/@prisma/engines": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-4.13.0.tgz", + "integrity": "sha512-HrniowHRZXHuGT9XRgoXEaP2gJLXM5RMoItaY2PkjvuZ+iHc0Zjbm/302MB8YsPdWozAPHHn+jpFEcEn71OgPw==", + "devOptional": true, + "hasInstallScript": true + }, + "node_modules/@prisma/engines-version": { + "version": "4.13.0-50.1e7af066ee9cb95cf3a403c78d9aab3e6b04f37a", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-4.13.0-50.1e7af066ee9cb95cf3a403c78d9aab3e6b04f37a.tgz", + "integrity": "sha512-fsQlbkhPJf08JOzKoyoD9atdUijuGBekwoOPZC3YOygXEml1MTtgXVpnUNchQlRSY82OQ6pSGQ9PxUe4arcSLQ==" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz", + "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==" + }, + "node_modules/@swc/helpers": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.0.tgz", + "integrity": "sha512-SjY/p4MmECVVEWspzSRpQEM3sjR17sP8PbGxELWrT+YZMBfiUyt1MRUNjMV23zohwlG2HYtCQOsCwsTHguXkyg==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/forms": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.3.tgz", + "integrity": "sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==", + "dev": true, + "dependencies": { + "mini-svg-data-uri": "^1.2.3" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" + } + }, + "node_modules/@types/bcrypt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/bcrypt/-/bcrypt-5.0.0.tgz", + "integrity": "sha512-agtcFKaruL8TmcvqbndlqHPSJgsolhf/qPWchFlgnW1gECTN/nKbFcoFnvKAQRFfKbh+BO6A3SWdJu9t+xF3Lw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "node_modules/@types/lodash": { + "version": "4.14.194", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", + "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.15.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", + "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==" + }, + "node_modules/@types/node-fetch": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.3.tgz", + "integrity": "sha512-ETTL1mOEdq/sxUtgtOhKjyB2Irra4cjxksvcMUR5Zr4n+PxVhsCD9WS46oPbHL3et9Zde7CNRr+WUNlcHvsX+w==", + "dependencies": { + "@types/node": "*", + "form-data": "^3.0.0" + } + }, + "node_modules/@types/node-fetch/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "node_modules/@types/react": { + "version": "18.0.33", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.33.tgz", + "integrity": "sha512-sHxzVxeanvQyQ1lr8NSHaj0kDzcNiGpILEVt69g9S31/7PfMvNCKLKcsHw4lYKjs3cGNJjXSP4mYzX43QlnjNA==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.0.11", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", + "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.1.tgz", + "integrity": "sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==", + "dependencies": { + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/visitor-keys": "5.59.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.1.tgz", + "integrity": "sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz", + "integrity": "sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==", + "dependencies": { + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/visitor-keys": "5.59.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz", + "integrity": "sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==", + "dependencies": { + "@typescript-eslint/types": "5.59.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", + "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", + "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axobject-query": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", + "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/bcrypt": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz", + "integrity": "sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q==", + "hasInstallScript": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.10", + "node-addon-api": "^5.0.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001481", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz", + "integrity": "sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/copy-anything": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.3.tgz", + "integrity": "sha512-fpW2W/BqEzqPp29QS+MwwfisHCQZtiduTe/m8idFo0xbti9fIZ2WVhAsCv4ggFVH3AgCkVdpoOCtQC6gBrdhjw==", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-equal": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.1.tgz", + "integrity": "sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.0", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, + "node_modules/detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.377", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.377.tgz", + "integrity": "sha512-H3BYG6DW5Z+l0xcfXaicJGxrpA4kMlCxnN71+iNX+dBLkRMOdVJqFJiAmbNZZKA1zISpRg17JR03qGifXNsJtw==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/enhanced-resolve": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz", + "integrity": "sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", + "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.38.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-next": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.3.0.tgz", + "integrity": "sha512-6YEwmFBX0VjBd3ODGW9df0Is0FLaRFdMN8eAahQG9CN6LjQ28J8AFr19ngxqMSg7Qv6Uca/3VeeBosJh1bzu0w==", + "dependencies": { + "@next/eslint-plugin-next": "13.3.0", + "@rushstack/eslint-patch": "^1.1.3", + "@typescript-eslint/parser": "^5.42.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "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" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/parser": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.1.tgz", + "integrity": "sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/typescript-estree": "5.59.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-next/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-config-next/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/eslint-config-next/node_modules/eslint-import-resolver-typescript": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz", + "integrity": "sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==", + "dependencies": { + "debug": "^4.3.4", + "enhanced-resolve": "^5.12.0", + "eslint-module-utils": "^2.7.4", + "get-tsconfig": "^4.5.0", + "globby": "^13.1.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "synckit": "^0.8.5" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" + } + }, + "node_modules/eslint-config-next/node_modules/eslint-plugin-import": { + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-config-next/node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-config-next/node_modules/eslint-plugin-jsx-a11y": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", + "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", + "dependencies": { + "@babel/runtime": "^7.20.7", + "aria-query": "^5.1.3", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.6.2", + "axobject-query": "^3.1.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.3.3", + "language-tags": "=1.0.5", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-config-next/node_modules/eslint-plugin-react": { + "version": "7.32.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", + "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-config-next/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==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-config-next/node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-config-next/node_modules/globby": { + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", + "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-config-next/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-config-next/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/espree": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.5.0.tgz", + "integrity": "sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==", + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==" + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==" + }, + "node_modules/goober": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.13.tgz", + "integrity": "sha512-jFj3BQeleOoy7t93E9rZ2de+ScC4lQICLwiAQmKMg9F6roKGaLSHoCDYKkWlSafg138jejvq/mTdvmnwDQgqoQ==", + "peerDependencies": { + "csstype": "^3.0.10" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-base64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-base64/-/is-base64-1.1.0.tgz", + "integrity": "sha512-Nlhg7Z2dVC4/PTvIFkgVVNvPHSO2eR/Yd0XzhGiXCXEvWnptXlXa/clQ8aePPiMuxEGcWfzWbGw2Fe3d+Y3v1g==", + "bin": { + "is_base64": "bin/is-base64", + "is-base64": "bin/is-base64" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-what": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.8.tgz", + "integrity": "sha512-yq8gMao5upkPoGEU9LsB2P+K3Kt8Q3fQFCGyNCWOAnJAMzEXVV9drYb0TXr42TTliLLhKIBvulgAXgtLLnwzGA==", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/jiti": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", + "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/jose": { + "version": "4.14.4", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.14.4.tgz", + "integrity": "sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/js-sdsl": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", + "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "dependencies": { + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" + }, + "node_modules/language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "dependencies": { + "language-subtag-registry": "~0.3.2" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "dev": true, + "bin": { + "mini-svg-data-uri": "cli.js" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/next": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/next/-/next-13.3.1.tgz", + "integrity": "sha512-eByWRxPzKHs2oQz1yE41LX35umhz86ZSZ+mYyXBqn2IBi2hyUqxBA88avywdr4uyH+hCJczegGsDGWbzQA5Rqw==", + "dependencies": { + "@next/env": "13.3.1", + "@swc/helpers": "0.5.0", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001406", + "postcss": "8.4.14", + "styled-jsx": "5.1.1" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=14.18.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "13.3.1", + "@next/swc-darwin-x64": "13.3.1", + "@next/swc-linux-arm64-gnu": "13.3.1", + "@next/swc-linux-arm64-musl": "13.3.1", + "@next/swc-linux-x64-gnu": "13.3.1", + "@next/swc-linux-x64-musl": "13.3.1", + "@next/swc-win32-arm64-msvc": "13.3.1", + "@next/swc-win32-ia32-msvc": "13.3.1", + "@next/swc-win32-x64-msvc": "13.3.1" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "fibers": ">= 3.1.0", + "node-sass": "^6.0.0 || ^7.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next-auth": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.22.1.tgz", + "integrity": "sha512-NTR3f6W7/AWXKw8GSsgSyQcDW6jkslZLH8AiZa5PQ09w1kR8uHtR9rez/E9gAq/o17+p0JYHE8QjF3RoniiObA==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@panva/hkdf": "^1.0.2", + "cookie": "^0.5.0", + "jose": "^4.11.4", + "oauth": "^0.9.15", + "openid-client": "^5.4.0", + "preact": "^10.6.3", + "preact-render-to-string": "^5.1.19", + "uuid": "^8.3.2" + }, + "peerDependencies": { + "next": "^12.2.5 || ^13", + "nodemailer": "^6.6.5", + "react": "^17.0.2 || ^18", + "react-dom": "^17.0.2 || ^18" + }, + "peerDependenciesMeta": { + "nodemailer": { + "optional": true + } + } + }, + "node_modules/next-cloudinary": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/next-cloudinary/-/next-cloudinary-4.8.0.tgz", + "integrity": "sha512-Jzn0xdIz3EfDTNp9Y7UqCAy/b0Z4T/W4zJMdMGjHXNMHS3nNflVbd9jx5An9ZwYrW94WDJ7FScqWdmUt6Olfiw==", + "dependencies": { + "@cloudinary-util/url-loader": "^3.1.1", + "@cloudinary-util/util": "^2.0.1", + "@cloudinary/url-gen": "^1.8.6" + }, + "peerDependencies": { + "next": "^12 || ^13", + "react": "^17 || ^18" + } + }, + "node_modules/next-superjson-plugin": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/next-superjson-plugin/-/next-superjson-plugin-0.5.7.tgz", + "integrity": "sha512-bkF49B/Pcf0GCh10vXL+hjBodC404FgzEsl3wtrjwqvTkoWDnqBOgP2KqWR9sF1tz4MSMlo872Q4Srl/2XRFWw==", + "dependencies": { + "hoist-non-react-statics": "^3.3.2" + }, + "peerDependencies": { + "next": "^13", + "superjson": "^1" + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + }, + "node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/oauth": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", + "integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", + "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "dependencies": { + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/oidc-token-hash": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.3.tgz", + "integrity": "sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==", + "engines": { + "node": "^10.13.0 || >=12.0.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/openid-client": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.4.2.tgz", + "integrity": "sha512-lIhsdPvJ2RneBm3nGBBhQchpe3Uka//xf7WPHTIglery8gnckvW7Bd9IaQzekzXJvWthCMyi/xVEyGW0RFPytw==", + "dependencies": { + "jose": "^4.14.1", + "lru-cache": "^6.0.0", + "object-hash": "^2.2.0", + "oidc-token-hash": "^5.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.12.tgz", + "integrity": "sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/preact": { + "version": "10.13.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.13.2.tgz", + "integrity": "sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/preact-render-to-string": { + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz", + "integrity": "sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==", + "dependencies": { + "pretty-format": "^3.8.0" + }, + "peerDependencies": { + "preact": ">=10" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-format": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", + "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==" + }, + "node_modules/prisma": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-4.13.0.tgz", + "integrity": "sha512-L9mqjnSmvWIRCYJ9mQkwCtj4+JDYYTdhoyo8hlsHNDXaZLh/b4hR0IoKIBbTKxZuyHQzLopb/+0Rvb69uGV7uA==", + "devOptional": true, + "hasInstallScript": true, + "dependencies": { + "@prisma/engines": "4.13.0" + }, + "bin": { + "prisma": "build/index.js", + "prisma2": "build/index.js" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pusher": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/pusher/-/pusher-5.1.2.tgz", + "integrity": "sha512-uQTIVPUVrV78g/PnUT1gNBA63cKPCwEXlWlkdCuvL4Xo4QmWQyKsnkPIcIm7ArLkaTLDrtFPPK//NzHxm4N+cg==", + "dependencies": { + "@types/node-fetch": "^2.5.7", + "abort-controller": "^3.0.0", + "is-base64": "^1.1.0", + "node-fetch": "^2.6.1", + "tweetnacl": "^1.0.0", + "tweetnacl-util": "^0.15.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/pusher-js": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/pusher-js/-/pusher-js-8.0.2.tgz", + "integrity": "sha512-LLWUHLxraa2ro3iKKOg1cLcg7Qoz9NZyxQ+uwTGDEDNtLqsaD5pUK3zbWtMHPmav5d5E0bqpjuSc3y9ycqMtjA==", + "dependencies": { + "@types/express-serve-static-core": "4.17.28", + "@types/node": "^14.14.31", + "tweetnacl": "^1.0.3" + } + }, + "node_modules/pusher-js/node_modules/@types/node": { + "version": "14.18.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.43.tgz", + "integrity": "sha512-n3eFEaoem0WNwLux+k272P0+aq++5o05bA9CfiwKPdYPB5ZambWKdWoeHy7/OJiizMhzg27NLaZ6uzjLTzXceQ==" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-hook-form": { + "version": "7.43.9", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.43.9.tgz", + "integrity": "sha512-AUDN3Pz2NSeoxQ7Hs6OhQhDr6gtF9YRuutGDwPQqhSUAHJSgGl2VeY3qN19MG0SucpjgDiuMJ4iC5T5uB+eaNQ==", + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18" + } + }, + "node_modules/react-hot-toast": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.4.1.tgz", + "integrity": "sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ==", + "dependencies": { + "goober": "^2.1.10" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16", + "react-dom": ">=16" + } + }, + "node_modules/react-icons": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.8.0.tgz", + "integrity": "sha512-N6+kOLcihDiAnj5Czu637waJqSnwlMNROzVZMhfX68V/9bu9qHaMIJC4UdozWoOk57gahFCNHwVvWzm0MTzRjg==", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-loading-skeleton": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/react-loading-skeleton/-/react-loading-skeleton-3.2.1.tgz", + "integrity": "sha512-e1KwEOuBa1REXWoseELIJXlsqWTCHL5IQnqhVhI33WmnuTK7LK1DXl4mmcOLsWVcwqXeOATU9VFJEjz2ytZSng==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/react-select": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.7.2.tgz", + "integrity": "sha512-cTlJkQ8YjV6T/js8wW0owTzht0hHGABh29vjLscY4HfZGkv7hc3FFTmRp9NzY/Ib1uQ36GieAKEjxpHdpCFpcA==", + "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" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-spinners": { + "version": "0.13.8", + "resolved": "https://registry.npmjs.org/react-spinners/-/react-spinners-0.13.8.tgz", + "integrity": "sha512-3e+k56lUkPj0vb5NDXPVFAOkPC//XyhKPJjvcGjyMNPWsBKpplfeyialP74G7H7+It7KzhtET+MvGqbKgAqpZA==", + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/stylis": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.4.tgz", + "integrity": "sha512-USf5pszRYwuE6hg9by0OkKChkQYEXfkeTtm0xKw+jqQhwyjCVLdYyMBK7R+n7dhzsblAWJnGxju4vxq5eH20GQ==" + }, + "node_modules/sucrase": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz", + "integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/superjson": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-1.12.3.tgz", + "integrity": "sha512-0j+U70KUtP8+roVPbwfqkyQI7lBt7ETnuA7KXbTDX3mCKiD/4fXs2ldKSMdt0MCfpTwiMxo20yFU3vu6ewETpQ==", + "dependencies": { + "copy-anything": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/synckit": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", + "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", + "dependencies": { + "@pkgr/utils": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/tailwindcss": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.1.tgz", + "integrity": "sha512-Vkiouc41d4CEq0ujXl6oiGFQ7bA3WEhUZdTgXAhtKxSy49OmKs8rEfQmupsfF0IGW8fv2iQkp1EVUuapCFrZ9g==", + "dependencies": { + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.17.2", + "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.0.9", + "postcss-import": "^14.1.0", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.4", + "postcss-nested": "6.0.0", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.1", + "sucrase": "^3.29.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/tailwindcss/node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/tailwindcss/node_modules/postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/tailwindcss/node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/tailwindcss/node_modules/postcss-nested": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^4.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "dependencies": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-isomorphic-layout-effect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", + "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zustand": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.3.7.tgz", + "integrity": "sha512-dY8ERwB9Nd21ellgkBZFhudER8KVlelZm8388B5nDAXhO/+FZDhYMuRnqDgu5SYyRgz/iaf8RKnbUs/cHfOGlQ==", + "dependencies": { + "use-sync-external-store": "1.2.0" + }, + "engines": { + "node": ">=12.7.0" + }, + "peerDependencies": { + "immer": ">=9.0", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "immer": { + "optional": true + }, + "react": { + "optional": true + } + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz", + "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==", + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "requires": { + "@babel/types": "^7.21.4" + } + }, + "@babel/helper-string-parser": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", + "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==" + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/runtime": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", + "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@babel/types": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", + "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "requires": { + "@babel/helper-string-parser": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@cloudinary-util/url-loader": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@cloudinary-util/url-loader/-/url-loader-3.2.0.tgz", + "integrity": "sha512-jCgguukNTPLKGQZIVWRObXHySBde16wPvTs1S8J89/vtPhQsGxpE83jOVCll539ndm5qa5DrFfsgAsLd3g9CxQ==", + "requires": { + "@cloudinary-util/util": "2.0.1", + "@cloudinary/url-gen": "^1.8.7" + } + }, + "@cloudinary-util/util": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@cloudinary-util/util/-/util-2.0.1.tgz", + "integrity": "sha512-d2imgUjYTLjv8ZhZPMAts/uPbMvIE71X4I/5hwdY/7vM4BuFQoJMSyq+h2pW1z1MyGG9BOWBm70vp082lSrbEQ==" + }, + "@cloudinary/transformation-builder-sdk": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@cloudinary/transformation-builder-sdk/-/transformation-builder-sdk-1.2.7.tgz", + "integrity": "sha512-Q1fhw37BXXmN6/BCxdnw3OUJ6aAy/zpDWH5t+xIwmG5GtYUYMZqOjvdOkOhWBmus9ptq9znuGsYn8h5vtSjT+w==", + "requires": { + "@cloudinary/url-gen": "^1.7.0" + } + }, + "@cloudinary/url-gen": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@cloudinary/url-gen/-/url-gen-1.10.0.tgz", + "integrity": "sha512-J3V+gzT6Tepw9bMrR3prWVbW22cIFJtPS8Wkt1WFSZVHWpZx8/vv9ACHaxUmRqaSkjhX8ErsuzDY5YxdWnaCbw==", + "requires": { + "@cloudinary/transformation-builder-sdk": "^1.2.7" + } + }, + "@emotion/babel-plugin": { + "version": "11.10.8", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.8.tgz", + "integrity": "sha512-gxNky50AJL3AlkbjvTARiwAqei6/tNUxDZPSKd+3jqWVM3AmdVTTdpjHorR/an/M0VJqdsuq5oGcFH+rjtyujQ==", + "requires": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/serialize": "^1.1.1", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.1.4" + } + }, + "@emotion/cache": { + "version": "11.10.8", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.8.tgz", + "integrity": "sha512-5fyqGHi51LU95o7qQ/vD1jyvC4uCY5GcBT+UgP4LHdpO9jPDlXqhrRr9/wCKmfoAvh5G/F7aOh4MwQa+8uEqhA==", + "requires": { + "@emotion/memoize": "^0.8.0", + "@emotion/sheet": "^1.2.1", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "stylis": "4.1.4" + } + }, + "@emotion/hash": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz", + "integrity": "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==" + }, + "@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" + }, + "@emotion/react": { + "version": "11.10.8", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.8.tgz", + "integrity": "sha512-ZfGfiABtJ1P1OXqOBsW08EgCDp5fK6C5I8hUJauc/VcJBGSzqAirMnFslhFWnZJ/w5HxPI36XbvMV0l4KZHl+w==", + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.8", + "@emotion/cache": "^11.10.8", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "hoist-non-react-statics": "^3.3.1" + } + }, + "@emotion/serialize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==", + "requires": { + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/unitless": "^0.8.0", + "@emotion/utils": "^1.2.0", + "csstype": "^3.0.2" + } + }, + "@emotion/sheet": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz", + "integrity": "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==" + }, + "@emotion/unitless": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", + "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==" + }, + "@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", + "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==", + "requires": {} + }, + "@emotion/utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz", + "integrity": "sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==" + }, + "@emotion/weak-memoize": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz", + "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==" + }, + "@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==" + }, + "@eslint/eslintrc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.1", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@eslint/js": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", + "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==" + }, + "@floating-ui/core": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.2.6.tgz", + "integrity": "sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==" + }, + "@floating-ui/dom": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.2.7.tgz", + "integrity": "sha512-DyqylONj1ZaBnzj+uBnVfzdjjCkFCL2aA9ESHLyUOGSqb03RpbLMImP1ekIQXYs4KLk9jAjJfZAU8hXfWSahEg==", + "requires": { + "@floating-ui/core": "^1.2.6" + } + }, + "@headlessui/react": { + "version": "1.7.14", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.14.tgz", + "integrity": "sha512-znzdq9PG8rkwcu9oQ2FwIy0ZFtP9Z7ycS+BAqJ3R5EIqC/0bJGvhT7193rFf+45i9nnPsYvCQVW4V/bB9Xc+gA==", + "requires": { + "client-only": "^0.0.1" + } + }, + "@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==" + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + } + } + }, + "@mapbox/node-pre-gyp": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", + "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", + "requires": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + } + }, + "@next-auth/prisma-adapter": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@next-auth/prisma-adapter/-/prisma-adapter-1.0.6.tgz", + "integrity": "sha512-Z7agwfSZEeEcqKqrnisBun7VndRPshd6vyDsoRU68MXbkui8storkHgvN2hnNDrqr/hSCF9aRn56a1qpihaB4A==", + "requires": {} + }, + "@next/env": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.3.1.tgz", + "integrity": "sha512-EDtCoedIZC7JlUQ3uaQpSc4aVmyhbLHmQVALg7pFfQgOTjgSnn7mKtA0DiCMkYvvsx6aFb5octGMtWrOtGXW9A==" + }, + "@next/eslint-plugin-next": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.3.0.tgz", + "integrity": "sha512-wuGN5qSEjSgcq9fVkH0Y/qIPFjnZtW3ZPwfjJOn7l/rrf6y8J24h/lo61kwqunTyzZJm/ETGfGVU9PUs8cnzEA==", + "requires": { + "glob": "7.1.7" + } + }, + "@next/swc-darwin-arm64": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.3.1.tgz", + "integrity": "sha512-UXPtriEc/pBP8luSLSCZBcbzPeVv+SSjs9cH/KygTbhmACye8/OOXRZO13Z2Wq1G0gLmEAIHQAOuF+vafPd2lw==", + "optional": true + }, + "@next/swc-darwin-x64": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.3.1.tgz", + "integrity": "sha512-lT36yYxosCfLtplFzJWgo0hrPu6/do8+msgM7oQkPeohDNdhjtjFUgOOwdSnPublLR6Mo2Ym4P/wl5OANuD2bw==", + "optional": true + }, + "@next/swc-linux-arm64-gnu": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.3.1.tgz", + "integrity": "sha512-wRb76nLWJhonH8s3kxC/1tFguEkeOPayIwe9mkaz1G/yeS3OrjeyKMJsb4+Kdg0zbTo53bNCOl59NNtDM7yyyw==", + "optional": true + }, + "@next/swc-linux-arm64-musl": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.3.1.tgz", + "integrity": "sha512-qz3BzjJRZ16Iq/jrp+pjiYOc0jTjHlfmxQmZk9x/+5uhRP6/eWQSTAPVJ33BMo6oK5O5N4644OgTAbzXzorecg==", + "optional": true + }, + "@next/swc-linux-x64-gnu": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.3.1.tgz", + "integrity": "sha512-6mgkLmwlyWlomQmpl21I3hxgqE5INoW4owTlcLpNsd1V4wP+J46BlI/5zV5KWWbzjfncIqzXoeGs5Eg+1GHODA==", + "optional": true + }, + "@next/swc-linux-x64-musl": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.3.1.tgz", + "integrity": "sha512-uqm5sielhQmKJM+qayIhgZv1KlS5pqTdQ99b+Z7hMWryXS96qE0DftTmMZowBcUL6x7s2vSXyH5wPtO1ON7LBg==", + "optional": true + }, + "@next/swc-win32-arm64-msvc": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.3.1.tgz", + "integrity": "sha512-WomIiTj/v3LevltlibNQKmvrOymNRYL+a0dp5R73IwPWN5FvXWwSELN/kiNALig/+T3luc4qHNTyvMCp9L6U5Q==", + "optional": true + }, + "@next/swc-win32-ia32-msvc": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.3.1.tgz", + "integrity": "sha512-M+PoH+0+q658wRUbs285RIaSTYnGBSTdweH/0CdzDgA6Q4rBM0sQs4DHmO3BPP0ltCO/vViIoyG7ks66XmCA5g==", + "optional": true + }, + "@next/swc-win32-x64-msvc": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.3.1.tgz", + "integrity": "sha512-Sl1F4Vp5Z1rNXWZYqJwMuWRRol4bqOB6+/d7KqkgQ4AcafKPN1PZmpkCoxv4UFHtFNIB7EotnuIhtXu3zScicQ==", + "optional": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@panva/hkdf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.1.1.tgz", + "integrity": "sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==" + }, + "@pkgr/utils": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.3.1.tgz", + "integrity": "sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==", + "requires": { + "cross-spawn": "^7.0.3", + "is-glob": "^4.0.3", + "open": "^8.4.0", + "picocolors": "^1.0.0", + "tiny-glob": "^0.2.9", + "tslib": "^2.4.0" + } + }, + "@prisma/client": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-4.13.0.tgz", + "integrity": "sha512-YaiiICcRB2hatxsbnfB66uWXjcRw3jsZdlAVxmx0cFcTc/Ad/sKdHCcWSnqyDX47vAewkjRFwiLwrOUjswVvmA==", + "requires": { + "@prisma/engines-version": "4.13.0-50.1e7af066ee9cb95cf3a403c78d9aab3e6b04f37a" + } + }, + "@prisma/engines": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-4.13.0.tgz", + "integrity": "sha512-HrniowHRZXHuGT9XRgoXEaP2gJLXM5RMoItaY2PkjvuZ+iHc0Zjbm/302MB8YsPdWozAPHHn+jpFEcEn71OgPw==", + "devOptional": true + }, + "@prisma/engines-version": { + "version": "4.13.0-50.1e7af066ee9cb95cf3a403c78d9aab3e6b04f37a", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-4.13.0-50.1e7af066ee9cb95cf3a403c78d9aab3e6b04f37a.tgz", + "integrity": "sha512-fsQlbkhPJf08JOzKoyoD9atdUijuGBekwoOPZC3YOygXEml1MTtgXVpnUNchQlRSY82OQ6pSGQ9PxUe4arcSLQ==" + }, + "@rushstack/eslint-patch": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz", + "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==" + }, + "@swc/helpers": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.0.tgz", + "integrity": "sha512-SjY/p4MmECVVEWspzSRpQEM3sjR17sP8PbGxELWrT+YZMBfiUyt1MRUNjMV23zohwlG2HYtCQOsCwsTHguXkyg==", + "requires": { + "tslib": "^2.4.0" + } + }, + "@tailwindcss/forms": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.3.tgz", + "integrity": "sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==", + "dev": true, + "requires": { + "mini-svg-data-uri": "^1.2.3" + } + }, + "@types/bcrypt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/bcrypt/-/bcrypt-5.0.0.tgz", + "integrity": "sha512-agtcFKaruL8TmcvqbndlqHPSJgsolhf/qPWchFlgnW1gECTN/nKbFcoFnvKAQRFfKbh+BO6A3SWdJu9t+xF3Lw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "@types/lodash": { + "version": "4.14.194", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", + "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==", + "dev": true + }, + "@types/node": { + "version": "18.15.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", + "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==" + }, + "@types/node-fetch": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.3.tgz", + "integrity": "sha512-ETTL1mOEdq/sxUtgtOhKjyB2Irra4cjxksvcMUR5Zr4n+PxVhsCD9WS46oPbHL3et9Zde7CNRr+WUNlcHvsX+w==", + "requires": { + "@types/node": "*", + "form-data": "^3.0.0" + }, + "dependencies": { + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "@types/react": { + "version": "18.0.33", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.33.tgz", + "integrity": "sha512-sHxzVxeanvQyQ1lr8NSHaj0kDzcNiGpILEVt69g9S31/7PfMvNCKLKcsHw4lYKjs3cGNJjXSP4mYzX43QlnjNA==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "18.0.11", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", + "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", + "requires": { + "@types/react": "*" + } + }, + "@types/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "requires": { + "@types/react": "*" + } + }, + "@types/scheduler": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" + }, + "@typescript-eslint/scope-manager": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.1.tgz", + "integrity": "sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==", + "requires": { + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/visitor-keys": "5.59.1" + } + }, + "@typescript-eslint/types": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.1.tgz", + "integrity": "sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==" + }, + "@typescript-eslint/typescript-estree": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz", + "integrity": "sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==", + "requires": { + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/visitor-keys": "5.59.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz", + "integrity": "sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==", + "requires": { + "@typescript-eslint/types": "5.59.1", + "eslint-visitor-keys": "^3.3.0" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "requires": {} + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "requires": { + "deep-equal": "^2.0.5" + } + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.tosorted": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", + "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + } + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "requires": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + }, + "axe-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", + "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==" + }, + "axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "axobject-query": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", + "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "requires": { + "deep-equal": "^2.0.5" + } + }, + "babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "requires": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "bcrypt": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz", + "integrity": "sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q==", + "requires": { + "@mapbox/node-pre-gyp": "^1.0.10", + "node-addon-api": "^5.0.0" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "requires": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + } + }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "requires": { + "streamsearch": "^1.1.0" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" + }, + "caniuse-lite": { + "version": "1.0.30001481", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz", + "integrity": "sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "copy-anything": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.3.tgz", + "integrity": "sha512-fpW2W/BqEzqPp29QS+MwwfisHCQZtiduTe/m8idFo0xbti9fIZ2WVhAsCv4ggFVH3AgCkVdpoOCtQC6gBrdhjw==", + "requires": { + "is-what": "^4.1.8" + } + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + }, + "date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "requires": { + "@babel/runtime": "^7.21.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "deep-equal": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.1.tgz", + "integrity": "sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ==", + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.0", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, + "detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==" + }, + "didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + } + }, + "dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "electron-to-chromium": { + "version": "1.4.377", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.377.tgz", + "integrity": "sha512-H3BYG6DW5Z+l0xcfXaicJGxrpA4kMlCxnN71+iNX+dBLkRMOdVJqFJiAmbNZZKA1zISpRg17JR03qGifXNsJtw==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "enhanced-resolve": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.13.0.tgz", + "integrity": "sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==", + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.21.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz", + "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==", + "requires": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "eslint": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", + "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.38.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "dependencies": { + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + } + } + }, + "eslint-config-next": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.3.0.tgz", + "integrity": "sha512-6YEwmFBX0VjBd3ODGW9df0Is0FLaRFdMN8eAahQG9CN6LjQ28J8AFr19ngxqMSg7Qv6Uca/3VeeBosJh1bzu0w==", + "requires": { + "@next/eslint-plugin-next": "13.3.0", + "@rushstack/eslint-patch": "^1.1.3", + "@typescript-eslint/parser": "^5.42.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "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" + }, + "dependencies": { + "@typescript-eslint/parser": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.1.tgz", + "integrity": "sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==", + "requires": { + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/typescript-estree": "5.59.1", + "debug": "^4.3.4" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "eslint-import-resolver-typescript": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz", + "integrity": "sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==", + "requires": { + "debug": "^4.3.4", + "enhanced-resolve": "^5.12.0", + "eslint-module-utils": "^2.7.4", + "get-tsconfig": "^4.5.0", + "globby": "^13.1.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "synckit": "^0.8.5" + } + }, + "eslint-plugin-import": { + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz", + "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==", + "requires": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", + "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", + "requires": { + "@babel/runtime": "^7.20.7", + "aria-query": "^5.1.3", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.6.2", + "axobject-query": "^3.1.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.3.3", + "language-tags": "=1.0.5", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "semver": "^6.3.0" + } + }, + "eslint-plugin-react": { + "version": "7.32.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", + "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", + "requires": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.8" + }, + "dependencies": { + "resolve": { + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + } + } + }, + "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==", + "requires": {} + }, + "globby": { + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", + "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" + } + } + }, + "eslint-import-resolver-node": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", + "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", + "requires": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==" + }, + "espree": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.0" + } + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + }, + "gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + } + }, + "get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "get-tsconfig": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.5.0.tgz", + "integrity": "sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==" + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "requires": { + "type-fest": "^0.20.2" + } + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "requires": { + "define-properties": "^1.1.3" + } + }, + "globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==" + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==" + }, + "goober": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.13.tgz", + "integrity": "sha512-jFj3BQeleOoy7t93E9rZ2de+ScC4lQICLwiAQmKMg9F6roKGaLSHoCDYKkWlSafg138jejvq/mTdvmnwDQgqoQ==", + "requires": {} + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==" + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "is-base64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-base64/-/is-base64-1.1.0.tgz", + "integrity": "sha512-Nlhg7Z2dVC4/PTvIFkgVVNvPHSO2eR/Yd0XzhGiXCXEvWnptXlXa/clQ8aePPiMuxEGcWfzWbGw2Fe3d+Y3v1g==" + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" + }, + "is-core-module": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==" + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "is-what": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.8.tgz", + "integrity": "sha512-yq8gMao5upkPoGEU9LsB2P+K3Kt8Q3fQFCGyNCWOAnJAMzEXVV9drYb0TXr42TTliLLhKIBvulgAXgtLLnwzGA==" + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "jiti": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", + "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==" + }, + "jose": { + "version": "4.14.4", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.14.4.tgz", + "integrity": "sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==" + }, + "js-sdsl": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", + "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "requires": { + "minimist": "^1.2.0" + } + }, + "jsx-ast-utils": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "requires": { + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" + } + }, + "language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" + }, + "language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "requires": { + "language-subtag-registry": "~0.3.2" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==" + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==" + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "next": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/next/-/next-13.3.1.tgz", + "integrity": "sha512-eByWRxPzKHs2oQz1yE41LX35umhz86ZSZ+mYyXBqn2IBi2hyUqxBA88avywdr4uyH+hCJczegGsDGWbzQA5Rqw==", + "requires": { + "@next/env": "13.3.1", + "@next/swc-darwin-arm64": "13.3.1", + "@next/swc-darwin-x64": "13.3.1", + "@next/swc-linux-arm64-gnu": "13.3.1", + "@next/swc-linux-arm64-musl": "13.3.1", + "@next/swc-linux-x64-gnu": "13.3.1", + "@next/swc-linux-x64-musl": "13.3.1", + "@next/swc-win32-arm64-msvc": "13.3.1", + "@next/swc-win32-ia32-msvc": "13.3.1", + "@next/swc-win32-x64-msvc": "13.3.1", + "@swc/helpers": "0.5.0", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001406", + "postcss": "8.4.14", + "styled-jsx": "5.1.1" + }, + "dependencies": { + "postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + } + } + }, + "next-auth": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.22.1.tgz", + "integrity": "sha512-NTR3f6W7/AWXKw8GSsgSyQcDW6jkslZLH8AiZa5PQ09w1kR8uHtR9rez/E9gAq/o17+p0JYHE8QjF3RoniiObA==", + "requires": { + "@babel/runtime": "^7.20.13", + "@panva/hkdf": "^1.0.2", + "cookie": "^0.5.0", + "jose": "^4.11.4", + "oauth": "^0.9.15", + "openid-client": "^5.4.0", + "preact": "^10.6.3", + "preact-render-to-string": "^5.1.19", + "uuid": "^8.3.2" + } + }, + "next-cloudinary": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/next-cloudinary/-/next-cloudinary-4.8.0.tgz", + "integrity": "sha512-Jzn0xdIz3EfDTNp9Y7UqCAy/b0Z4T/W4zJMdMGjHXNMHS3nNflVbd9jx5An9ZwYrW94WDJ7FScqWdmUt6Olfiw==", + "requires": { + "@cloudinary-util/url-loader": "^3.1.1", + "@cloudinary-util/util": "^2.0.1", + "@cloudinary/url-gen": "^1.8.6" + } + }, + "next-superjson-plugin": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/next-superjson-plugin/-/next-superjson-plugin-0.5.7.tgz", + "integrity": "sha512-bkF49B/Pcf0GCh10vXL+hjBodC404FgzEsl3wtrjwqvTkoWDnqBOgP2KqWR9sF1tz4MSMlo872Q4Srl/2XRFWw==", + "requires": { + "hoist-non-react-statics": "^3.3.2" + } + }, + "node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + }, + "node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" + }, + "npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "requires": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "oauth": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", + "integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==" + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "object.fromentries": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "object.hasown": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", + "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "requires": { + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "oidc-token-hash": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.3.tgz", + "integrity": "sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "openid-client": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.4.2.tgz", + "integrity": "sha512-lIhsdPvJ2RneBm3nGBBhQchpe3Uka//xf7WPHTIglery8gnckvW7Bd9IaQzekzXJvWthCMyi/xVEyGW0RFPytw==", + "requires": { + "jose": "^4.14.1", + "lru-cache": "^6.0.0", + "object-hash": "^2.2.0", + "oidc-token-hash": "^5.0.3" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" + }, + "postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-selector-parser": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.12.tgz", + "integrity": "sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==", + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "preact": { + "version": "10.13.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.13.2.tgz", + "integrity": "sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw==" + }, + "preact-render-to-string": { + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz", + "integrity": "sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==", + "requires": { + "pretty-format": "^3.8.0" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + }, + "pretty-format": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", + "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==" + }, + "prisma": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-4.13.0.tgz", + "integrity": "sha512-L9mqjnSmvWIRCYJ9mQkwCtj4+JDYYTdhoyo8hlsHNDXaZLh/b4hR0IoKIBbTKxZuyHQzLopb/+0Rvb69uGV7uA==", + "devOptional": true, + "requires": { + "@prisma/engines": "4.13.0" + } + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" + }, + "pusher": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/pusher/-/pusher-5.1.2.tgz", + "integrity": "sha512-uQTIVPUVrV78g/PnUT1gNBA63cKPCwEXlWlkdCuvL4Xo4QmWQyKsnkPIcIm7ArLkaTLDrtFPPK//NzHxm4N+cg==", + "requires": { + "@types/node-fetch": "^2.5.7", + "abort-controller": "^3.0.0", + "is-base64": "^1.1.0", + "node-fetch": "^2.6.1", + "tweetnacl": "^1.0.0", + "tweetnacl-util": "^0.15.0" + } + }, + "pusher-js": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/pusher-js/-/pusher-js-8.0.2.tgz", + "integrity": "sha512-LLWUHLxraa2ro3iKKOg1cLcg7Qoz9NZyxQ+uwTGDEDNtLqsaD5pUK3zbWtMHPmav5d5E0bqpjuSc3y9ycqMtjA==", + "requires": { + "@types/express-serve-static-core": "4.17.28", + "@types/node": "^14.14.31", + "tweetnacl": "^1.0.3" + }, + "dependencies": { + "@types/node": { + "version": "14.18.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.43.tgz", + "integrity": "sha512-n3eFEaoem0WNwLux+k272P0+aq++5o05bA9CfiwKPdYPB5ZambWKdWoeHy7/OJiizMhzg27NLaZ6uzjLTzXceQ==" + } + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, + "react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + } + }, + "react-hook-form": { + "version": "7.43.9", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.43.9.tgz", + "integrity": "sha512-AUDN3Pz2NSeoxQ7Hs6OhQhDr6gtF9YRuutGDwPQqhSUAHJSgGl2VeY3qN19MG0SucpjgDiuMJ4iC5T5uB+eaNQ==", + "requires": {} + }, + "react-hot-toast": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.4.1.tgz", + "integrity": "sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ==", + "requires": { + "goober": "^2.1.10" + } + }, + "react-icons": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.8.0.tgz", + "integrity": "sha512-N6+kOLcihDiAnj5Czu637waJqSnwlMNROzVZMhfX68V/9bu9qHaMIJC4UdozWoOk57gahFCNHwVvWzm0MTzRjg==", + "requires": {} + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-loading-skeleton": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/react-loading-skeleton/-/react-loading-skeleton-3.2.1.tgz", + "integrity": "sha512-e1KwEOuBa1REXWoseELIJXlsqWTCHL5IQnqhVhI33WmnuTK7LK1DXl4mmcOLsWVcwqXeOATU9VFJEjz2ytZSng==", + "requires": {} + }, + "react-select": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.7.2.tgz", + "integrity": "sha512-cTlJkQ8YjV6T/js8wW0owTzht0hHGABh29vjLscY4HfZGkv7hc3FFTmRp9NzY/Ib1uQ36GieAKEjxpHdpCFpcA==", + "requires": { + "@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-spinners": { + "version": "0.13.8", + "resolved": "https://registry.npmjs.org/react-spinners/-/react-spinners-0.13.8.tgz", + "integrity": "sha512-3e+k56lUkPj0vb5NDXPVFAOkPC//XyhKPJjvcGjyMNPWsBKpplfeyialP74G7H7+It7KzhtET+MvGqbKgAqpZA==", + "requires": {} + }, + "react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "requires": { + "pify": "^2.3.0" + } + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "regexp.prototype.flags": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + } + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "requires": { + "internal-slot": "^1.0.4" + } + }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.matchall": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4" + } + }, + "string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, + "styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "requires": { + "client-only": "0.0.1" + } + }, + "stylis": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.4.tgz", + "integrity": "sha512-USf5pszRYwuE6hg9by0OkKChkQYEXfkeTtm0xKw+jqQhwyjCVLdYyMBK7R+n7dhzsblAWJnGxju4vxq5eH20GQ==" + }, + "sucrase": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz", + "integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "superjson": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-1.12.3.tgz", + "integrity": "sha512-0j+U70KUtP8+roVPbwfqkyQI7lBt7ETnuA7KXbTDX3mCKiD/4fXs2ldKSMdt0MCfpTwiMxo20yFU3vu6ewETpQ==", + "requires": { + "copy-anything": "^3.0.2" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "synckit": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", + "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", + "requires": { + "@pkgr/utils": "^2.3.1", + "tslib": "^2.5.0" + } + }, + "tailwindcss": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.1.tgz", + "integrity": "sha512-Vkiouc41d4CEq0ujXl6oiGFQ7bA3WEhUZdTgXAhtKxSy49OmKs8rEfQmupsfF0IGW8fv2iQkp1EVUuapCFrZ9g==", + "requires": { + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.17.2", + "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.0.9", + "postcss-import": "^14.1.0", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.4", + "postcss-nested": "6.0.0", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.1", + "sucrase": "^3.29.0" + }, + "dependencies": { + "object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + }, + "postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "requires": { + "camelcase-css": "^2.0.1" + } + }, + "postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + } + }, + "postcss-nested": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", + "requires": { + "postcss-selector-parser": "^6.0.10" + } + } + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" + }, + "tar": { + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^4.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "requires": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==" + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "use-isomorphic-layout-effect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", + "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "requires": {} + }, + "use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "requires": {} + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "requires": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + } + }, + "which-typed-array": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + }, + "zustand": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.3.7.tgz", + "integrity": "sha512-dY8ERwB9Nd21ellgkBZFhudER8KVlelZm8388B5nDAXhO/+FZDhYMuRnqDgu5SYyRgz/iaf8RKnbUs/cHfOGlQ==", + "requires": { + "use-sync-external-store": "1.2.0" + } + } + } +} diff --git a/Messenger_Clone/package.json b/Messenger_Clone/package.json new file mode 100644 index 000000000..aba7c6480 --- /dev/null +++ b/Messenger_Clone/package.json @@ -0,0 +1,53 @@ +{ + "name": "whatsapp", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint", + "postinstall": "prisma generate" + }, + "dependencies": { + "@headlessui/react": "^1.7.13", + "@next-auth/prisma-adapter": "^1.0.6", + "@prisma/client": "^4.13.0", + "@types/node": "18.15.11", + "@types/react": "18.0.33", + "@types/react-dom": "18.0.11", + "autoprefixer": "10.4.14", + "axios": "^1.3.6", + "bcrypt": "^5.1.0", + "clsx": "^1.2.1", + "date-fns": "^2.29.3", + "eslint": "8.38.0", + "eslint-config-next": "13.3.0", + "lodash": "^4.17.21", + "next": "13.3.1", + "next-auth": "^4.22.1", + "next-cloudinary": "^4.4.0", + "next-superjson-plugin": "^0.5.7", + "postcss": "8.4.21", + "pusher": "^5.1.2", + "pusher-js": "^8.0.2", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-hook-form": "^7.43.9", + "react-hot-toast": "^2.4.1", + "react-icons": "^4.8.0", + "react-loading-skeleton": "^3.2.1", + "react-select": "^5.7.2", + "react-spinners": "^0.13.8", + "superjson": "^1.12.3", + "tailwindcss": "3.3.1", + "typescript": "5.0.4", + "zustand": "^4.3.7" + }, + "devDependencies": { + "@tailwindcss/forms": "^0.5.3", + "@types/bcrypt": "^5.0.0", + "@types/lodash": "^4.14.194", + "prisma": "^4.13.0" + } +} diff --git a/Messenger_Clone/pages/api/pusher/auth.ts b/Messenger_Clone/pages/api/pusher/auth.ts new file mode 100644 index 000000000..b08a39fb8 --- /dev/null +++ b/Messenger_Clone/pages/api/pusher/auth.ts @@ -0,0 +1,25 @@ +import { NextApiRequest, NextApiResponse } from "next" +import { getServerSession } from "next-auth"; + +import { pusherServer } from "@/app/libs/pusher"; +import { authOptions } from "@/app/api/auth/[...nextauth]/route"; + +export default async function handler( + request: NextApiRequest, + response: NextApiResponse +) { + const session = await getServerSession(request, response, authOptions); + + if (!session?.user?.email) { + return response.status(401); + } + + const socketId = request.body.socket_id; + const channel = request.body.channel_name; + const data = { + user_id: session.user.email, + }; + + const authResponse = pusherServer.authorizeChannel(socketId, channel, data); + return response.send(authResponse); +}; diff --git a/Messenger_Clone/postcss.config.js b/Messenger_Clone/postcss.config.js new file mode 100644 index 000000000..33ad091d2 --- /dev/null +++ b/Messenger_Clone/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/Messenger_Clone/prisma/schema.prisma b/Messenger_Clone/prisma/schema.prisma new file mode 100644 index 000000000..18ee60b1c --- /dev/null +++ b/Messenger_Clone/prisma/schema.prisma @@ -0,0 +1,80 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +generator client { + provider = "prisma-client-js" +} + +datasource db { + provider = "mongodb" + url = env("DATABASE_URL") +} + +model User { + id String @id @default(auto()) @map("_id") @db.ObjectId + name String? + email String? @unique + emailVerified DateTime? + image String? + hashedPassword String? + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + conversationIds String[] @db.ObjectId + conversations Conversation[] @relation(fields: [conversationIds], references: [id]) + + seenMessageIds String[] @db.ObjectId + seenMessages Message[] @relation("Seen", fields: [seenMessageIds], references: [id]) + + accounts Account[] + messages Message[] +} + +model Account { + id String @id @default(auto()) @map("_id") @db.ObjectId + userId String @db.ObjectId + type String + provider String + providerAccountId String + refresh_token String? @db.String + access_token String? @db.String + expires_at Int? + token_type String? + scope String? + id_token String? @db.String + session_state String? + + user User @relation(fields: [userId], references: [id], onDelete: Cascade) + + @@unique([provider, providerAccountId]) +} + +model Conversation { + id String @id @default(auto()) @map("_id") @db.ObjectId + createdAt DateTime @default(now()) + lastMessageAt DateTime @default(now()) + name String? + isGroup Boolean? + + messagesIds String[] @db.ObjectId + messages Message[] + + userIds String[] @db.ObjectId + users User[] @relation(fields: [userIds], references: [id]) +} + +model Message { + id String @id @default(auto()) @map("_id") @db.ObjectId + body String? + image String? + createdAt DateTime @default(now()) + + seenIds String[] @db.ObjectId + seen User[] @relation("Seen", fields: [seenIds], references: [id]) + + conversationId String @db.ObjectId + conversation Conversation @relation(fields: [conversationId], references: [id], onDelete: Cascade) + + senderId String @db.ObjectId + sender User @relation(fields: [senderId], references: [id], onDelete: Cascade) +} diff --git a/Messenger_Clone/public/images/logo.png b/Messenger_Clone/public/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bb610ee7f1b43f393dfe4243c2ace03ca743805d GIT binary patch literal 79521 zcmYg&2|U!>`~Q)mMci(S>~*`{auHf6Ld%UxD6(XoQWPRF)YztP+r3w4MTBZXV;Cbl z4bv@DL>j|bhHA2nVJZd@{?BJ-`29ck_0sh@=X1`pzMtnj=N$hWwzgQhSa~r*Xz79d zf7v3m5dL=|S||hmJj-P2!9Vl8cU$d7C@*fw&*KZ=_cfmTZLJU@{DBbh3PKa`ir9w` z9{Tcd2pJ_Jq&0D)p+y3_9tg062@d@Kqe#H47?xg&0m-UG1?pW1b`}%)z z-~I20qq`0gZ=Uq(5@;;4y>qCw`(oW-Q3=v_weI==55iz2T~&P;)GXYlQ(^{#$@g| zeOU_raoVZH<+&B^ZD+m62|0(~Z|O#Fe4&FsN4iY$4d-;}nq*fx<98*ffAr{nW~RaG zdY|kc-0$@1G0)P?$f)EgxxsM4)z0H|q3%}URo)hlu`!lu%lWhbM~~B`y1~cOd?!bC z9DsS8wnkone;9sk`tcJ(R2G%W@@etmDaXj?$e-JM)-2WBr{SneF;H2Y~}d_P3Y600#!u7r91m9e8J+5vwq{ z%$nqD-{KRT6JO>)@---Puxp`GHI=vUnK7oErp$q7U5=GK0wI}amoxfiRB*@S!o-u4 zFiN(eH2g%P^%uFs5Ij8ue>uL)+OFkH;ea8YW8QLxS7zl_8Q6L$%45tgjO`O*Abew< zmOagV=8@)8#&00m6t!(|8CtG0reSiSZ2x9#sJobak%s`!Wtetta~YC}@n@It$H*#2 z4YU2>0NsG@jOgJRm;=gF!pY^qU?C?Llj)fo8N zZ?_pf_FIa%7mEJ;Jg{)nP=-!uzC-yLJHsshqY>?=Dq(=b8`kG`BbH@+vvjoT_1Urapv`Wg!J0wu-Uz;C^hy;M%iu&YW$YtES;=mM?;GIuZ!5f zdt{k*G+mz#TcanuWUj%lji3!Oul|bBZHg&{7!y2NvU@T#nn!b}?0+~jF;6P!3~zbY zR=L#?w6hTpuOFJ(1ctycpBjdVh=ur}67vX-)(^p9PDPnLe%mFYPS0bWC+i0*EK8xN zO}4#RcJfpIE0_!_#?yhZF#Uzc)~V}{=MjSBI(J(b4_fB%J1_T!L8m@lL0hZQ|j%s%x0`cBl} zq56D#**;6oqcWK0EH5O+KUr&1%IjTk(nPO=apgpB{Nzm5SnzQTzsUkib%bzQTQI2= z#XH8T7?edYqbhID$g|wCD1S@qwQM4HcBLE2xDtY3GJ4@yk*D)LS%lb&v8jkvBbC)w z?W{qSh_D3p?@`^1uH9yg=I>QJdQ2y$=?AOanfFsZZQ4p1W@%iF%`$xU6u;{dCyO=I zY#ZtuJjt_W;a^F8TpV6OaP%nE$B~N*q5=kFGjtCELv>o1&~TCAgTg6N`8Iqp&w%x8 zJIcOgb2I>)Ha%|H_UFUN8Ecn<>IXywwGNl%_g=Ikr6w=-G) zA%^?pi3C%Fj{=Hep+{89-i)XOh->WSm`^cQPQIl~4!Gxp2r`BoIQ5kq5RMb^n6Ou9 zUJSm2%3mt*fr#8tuu#P@juofeGWT0$DE_G)qV-oe(dp#kt%SXk!l%aTJqrE#S~_4fIAmRRh(R zA}R#birk4#UMkBT0J52_m}O`%5v4O$tTPseVK7jU7=cltN2&O}c&1yO-FL}t;?J4O zSEP^u`zp&th5m?Or8q_~1UWPOFvunz%k$L6xA;492A)aJ$l70DERE_CbseHwnta<> zz66T^-0qlPh`1wYw@_imWa0M5#RgV;fdcjgksNN- zs~h^4$`&?BtC&12O9eUn@5dOgkmXU_jK5e1;FS(08ObT_uB8fdCy!2o{T*geGdeqYr!Ett z!y?)}U$cL7>qm}nJB9zSA%kr>~VqKyaX(U!`Tm%u$ z1aqD7e;s3zizy(bPciC8)z-kMhbGPouVvJq4Ysy8q;U&o$7IBQE5cF>%c*lh2G9R7 zAX54;#j&`pl%8)`2uL^|Z2L7fc}_Qr+m;hjX@1=i{`+?xqV38sZSBiVBH)FNCVpkR zRsg`(7rzAQ_qp#Faxy7kskb$8veqAg_g9usD#`Ag^SvSCBl;k9r<0f}wNrB|+h+de z8NjsfTTK7___~w5bt%^TyQuk^V;rS`BD+=iGA8yZRSOc`gjy04uoHA+}SVW0lv#aN}Z*VhkyVp^<+KI%#^kDiD7Hvi7PM=`O~q5d#ugqmOch^hB; z$qXGInRz1xF7x%JEd3hmM&RPoU$6bqf zJ`v4Z=|-Qy5E?W~YZYl>r>ZmKym4Gig-!XeMjg5$`qA=z;GD{s(N@PX^Pg zLHyn*gjOZ%!~Z8&!w;gc_q_&&KQJS4=_z=_m~a9B=$cA0Dr-E#D%=Ot)+SAyBn3J9 zr0b3qpG^z-2WW1KY6oNS?YHO3=Zq%u@>omfgM9~l|HjL9FwS2W=E>apJAA2wF+vl7 z%bhK?aIksmzYelRevyKscR|}X44>q|)URS<3G00jn3JL2+2lzHo9F~-jkf+^{WHjW zrEVIr2kUiL;{zDYq(e2Uz4H1td@xBPy9g*jzW#+1<>nhgc4dxz>>tKtVvNb8Zo_P@IKTz)fjH+zf+#WO3Wu zSo$n3rF}8<2<9YoL zUWA<-$>V)7*9EVUT_A-LJute4`<@5x@)&xQ;P!21FY6f?CBxJ?XF7v?r>ta4yQv$1 z4I>=0!^91}H`?vve0dg>frTKm>^lt(TCB8?FC!s4Ai!WtBSyAyfNM@P;iT{tuN-E8 zpka2jCRD6)V4zOK!`p_u9z+> zlXSvEc+0p!uoQl#e$bp^jO>F6y+jjgZ};vfn`q2PJ?dtOjb$B9H6k@GG4>%8tAgu@ z^q8N0W2(LR<)*O08R_r<;JL1}c&qUGltm`ybI?ttLE%0GxHd{nOdBgNCe@uIqU*&^ z3sORHj-v2=|6U;8PZg7X3=P6v?~sQ{dgCpY0e~KHL9z3c6-hBP#=TMO?Af|lN8!lZ zK)QKcz=$X79rzq7deT^vbw_3Dh(em_p9{f#vE0B(A$N5sCDq>KS(^=zPt4ln&%4Kp z4s*&qn{*A(z!wYNxSZ@8lwuDvTNBbm$ZmK+eLtCGRKc2lPRg*Ul>)!T9BGubgKN#o zPa>Se-&_N~hkdbRow1tQZE;9&TN>d67(()6)I73I@W@=DNJs{rMmYzB*V+Mk}Re(FKU$5pVp0eHfCOqUmgSs;t5`)b(FKBPXDra&oibUuFGh7Erq`3 zU}S}p?&U?b6P)bKjzz?+ffrl42f?roY$%K5su(;Z0Fz@m_>n-e}dV%?UXqT+TX+sn2P@h7WJw*@3F5 zuOmu303!Z_>DbECCpw<6QkhM6vi4%V*uR=~^;HeF2q5I>L$7_9A8Hpl#<~~~%!PN& zWiha!t#@-xX>3|zbixS026qG#L3IC0u0Jb3%fh}ElhWZFhu&=y!q}u~Yv>_ba71^5 zATv^3rf3*eyHd%94wbDhjf&4;vXB0zBM@SH_s zT{C6%#U&GtTUe#VO9L2Svi!L{tfPROc6#Jh1{G`?p#iUvstotG`pDuzW+e<>Ck=*z z8=a~ek2N>r^xa}bipILM=?rfqM3`)Hf)EEYYGY}SSIZ7=Co70@eY^rPeWH~?)(op} zfk`-lg!TA-IT+!JZs-f&MwYN5sb%GB;FG$Ch6QZ_BY*er)Py|r1okF2zeYNFLdYwB z1;63spOYpEWBJ*zs0Q^LV6+59bg!HtdH9T^V3g=x?>uJG1)j(D!}#eL=h@E~XO&}G zV$8eXC^V+$-+|i6Tljh__O<6A2KLvtPIQ}xE(3rjE*Kf&6}Pu)Lb!zt!*7MCQ+W5s zs6r3&kTxa~7e-iC*JkKz@Glq$ts>+``Vjji#e?jxC2D^EgB73*^9{U%&Q2O0CgU?K zo&iSOE)74Pp>YAXysN+ttU%-{zO^sRpvg6_@wzi_!8IV$853S}HI&fYGCi}>a{YC% zVO_}zhC&rlJBHn(?;I7TqaKyrTLZt)YM^!?2;CLcd^s~39A`8hBPzoRZ8K_&fmu2+?;5RJZI|1(j5Qp@!idPe9z~6$hlZRt&aemT;$X3tUm;S! zJ0A4}{KhB?3l(aqZA;NyAP)CLtr232$t`>{w^!1Jb1mVky((7+OwMsa@EX{gZcfYlv13Nhz2lmQ}5 zDjIW-wut6hRh>!c^7oEn!&(^Y1bh&4zU=d?q_!_tp0dTS+l?`H9I8zogYRPnBF_{p z6p1-FNN|h^C+#Y2IeWk+5qooIOJ9Of);*E^Mq>uDiqpy+VhIfJHX`{%CrxBJOukV! zrMt@^r!Trc5aWaqM8w8n3JH@i%2G~g_h~pYIih<4F+O9o?91OwZ9Q*hXHsso3!CJl zimNR>+ihx3d!`N8dGt$cma4bx%JkH>rdZx#j9jADxBD59`3*u@lj9T5RFU2cL>yda zjK1(+^~SyhtmBxuqOiWMq=~9n{u2?o!&vO?Y1OI@Ep8JyjA5w@Vp|0G^ENJ=iCVJE$wxznIJ&&h_cCzr8;B$*axO-WKf-=tPIk#saI?1dz|VrOD`_P^+TVH z%g{x&9T5)lC{Y0vuBYI>b#$Q330vSDF@lnNo-jQz0P922I`fs8w$-R zE|@1GzuRMm!eO=6V^&Pa3cc>YySl9Wno#>nJB|ewQE}!!BPdfREo=gA&qH2V4qBI# zUt>j4JZkpYcN=ujyKIj4sh#q}7FsaE^}P#F;z}*gnRtSaT|=(?D$Mi}13j`L%Nxf2 zm#P%Ivam-0jP>-|~3}WSdP)eM!7%-1<9TL=jnmLKcpjy$3QcUs( znLj{>UJ*NFkU{4^+$^`kH0rbkp11~vVEnJ-Nn_e*cVwPtW&@bG3MPDm4yj+bh!h9_sKk|I zMCp!vwk{(M9MbpYi}@(~s$$GknS)tpQ?A2xECoe0mkOsTYgwU+Sj}uh;DVN0udcxV zFfbi}#VDvGU5p}mkBNeWC<|hAIx89aly*H;Ungo;UY*k3#0(oB$p!JI0-6#{giw34 z8Qa=2g&A#jw61+62as-%Sp{Mn67>kIF9{`?xg(hG>H>(O-@X7*&;?du<+0aQ*$JV@Gq8JprDhy zx)5POkxd#*>aj`+M==gk<=94j=xY;MY~3Sr!_gTMiEx0qb-omCAo9R`Vh(R5chw-T zAxl=|U9?}^J=9v(Wz5(tMn%5?=|!oS^1RF%0aSKjri50#O;DNgB6$Q%2Ir|FKgHXvY;jmJ%C zQM$$W?4mU0Pfl)EQ)>&@~R4M9>2t^Vio^`&BACIZ!x#&@9Ur0FU5EaD2mI&Qu3w%dz(=_ zhFiqiZFsNpiM%448DJxNxO*vJ=rQgKR&~_a=~mgCTz!pK>Kh z6Lt$%U`USGo_5|LN6b1QrT<5Y5gv6wns_m!XL}jhj7k;RDVqFfreZ=TWo}7_nh4~K zdTH)Es4eTK0)^*9BRK8tE%K-l()zi!NG~A%cZ3^yup`#rTTuTAi`K|jaJ~G=Sn%lA zk^`tG7FJk^8s2d#TPN=D7K$lAz1#4v*y>~f8fGj7w5!n1s8@|UJ2Ip?joBV8P`#s% zlVXzkVYU0wMU1-Ps>Q_C(SHN;Lxi_^mqZGq{WEQ2XVd?QS$R;3k$oP%${)!7_9a9} zl??HtqO#H0IB4hY#ZYF!XfWx$F;LVNO}Q=>wA@5(Mk@PdrVR*M8xwTVgKg@rQy1~l zA{rBq&$RYws+rJj;rpwgn*2{+0t@B&#gt6I5s<3t4)PSi8LPX^Bfi75-D4cokxyPu zagnr7oTHdj3^KcbJ}+<#-0<_${FZH#KQba8Ig0?BxTDB<>WE{%H{omWEig;09%E3m zgWK*h_=Hz4=5kjj$0rVgYKSIcpT^8G8zeP!pB3OBD}p7)yt1c_!^%_GqUt=N9RUwx zZ}*N%E^1rE8WS_R>MN9f+3GtYb}dE*|J|MstEVkBo-TuKJATRnBe;PQ?^=4{y>BaE ziiQ60A|mI;z)@ZQS!F#l?=9@OLl_@fq>r3*frjj~Ej0@Ex;g%9;1`5O(qd9OM*Hn; z5ltPYcM8i@y&im^lKGkiQh^#n-ELxuhKCxMGloN>uGM zPLHr-Q#+wZ=R4ND05$*j*2$lzNbz_oc0Hn2A%zf0@;D2dFY;&`o0M(-?R^CjO)!$eY-&xOkupMIh}5r;4vyB{ z=jO#sYhIthzNfhly{C3|yuA>=0`V6a!iz9#b;kkXbheSXh)wnyQhs~x20T=W^-;-Y z5S?o&jV^kEvTD6_Eh@~LHLbQcjILOaa+Y;fr7**T?L3Q!@-xv#n^6X=y7o&E9Yg0G_KqdBH@Azuj?wX>KBKek7}rS?ftVQ%qt60yvSZ1tEutKe zxWf={OHpfqgjF9E@e<~tq6}tDj>}LTFIF@;iJs%)J z7VV_+f({pB-<__Di8(cZ94>EQOSpm^(ETnW*ZS4RYyX1&DU(aX|t3)wc z_><=yUXM8pQRl3;(3hU+aR#;6mRSVEB$P{oVNg0^*pFC+4rXjLtE1 z<@G^~_-z3r9AolgX!Z6C)~vBII!l9u@ebG8_eu3U0Br1G4OADIvW8Vm97VQ@TY4kI zogF2#Q!{k?O_uQ!#!R%xj8Q4-IEV)a#)PnKbb@EmW;#{A0u2LKxXuSVhFbfwc`{-N z41D40;E%>7PVZh!{E_#&6hrlxlFgZsGO?MUfq`o|qs1xukw>BVlMK*zu5TCyMaF7FIKw3mAMr*F;!Bb+Ycy zO4y*)B5Pf{DSaQrjRKhchO?3l**#e-U7SJ36T)8a8=mPX(Fy=BaT^qdCr&`lVIkI! z*Zb4FVuFoX3zRtJiLJ*W0$Ms$$7DGk?Gh!gNRL~e6MGicW}2enAR~KwL+o-9E` zy$zinYK^1);hM;x3)H*i35-2e*Dhf61c8%y!Ty@nlryPU z?80?NQ@)e8G_S}Gi)X9C0pdD4Rz|6g3Xa- zM#V-)#oE8*mQSwa*M0K?`eQ91=v--uIUA9sXfUBK9$%*?ofTIcQRcLmC_Dw$*lDfQ za=NmfIwZ=2A-SjL89f_hZb(N?Wk|43kTyisvkjtGMotHv%l7(chL7TlYMivX~u zS=XzM`H?GY#bCXQrQ^)ga8^>d1c3>)XqTWdRvse^tv7L?S=xc;>d>#bx}@=82Mt#F9 ztkZyiE=X{)uiDiJ+nTjhBH~08LP_&yMr6q#^ZFCSHnjW|@kz{@;^K}jV^PRNY^~ye zk+>9t3dhC72u~1zu0!?ZB*I?&7Lk0=Xj`E(FBeq2ZULhcvUs)&xU%7d2a6>(Ft)es z(ahj#HdsLC{oi3X6?SVHbL|^eiU1bprrPB_nFoh~KmcPv9{-v=@PU+}rM{+SnH(P6!ZNt|fpx)2_rlr-`VE0HG^)MC>FR<(G+5b_hdR zEG?smpCv0$Lc=-;A@}q%90=~honq#_-fE0?rZT~I787$}_OCGx)zdkn&ob1-&cl#P zGRoH-Wn;@!Ib!bA$U=rA{e)`Udivu=QLzR*@=O%7=?J#@u|TwFsQ6qE_%hxox9pCX zfuK*EoY9Z5_f3CWKm_{Itu?wjn=Z1fL=cY>wKM{FYtN>2ZdyQNf%W@c%#49OziSfg zsUxWv5CB^t#ISjCfd7Lx0{twfPT}!l`g@w!vM5FoJ8c(>PI(kj0hxJMe9R=Rozqq+ zZA#qCC#Wdvz&u>75@vk%4a>!H?ZQFyqqaLJwrgpH3%;img}?uc=h6DK2F5BGOQM^(^jBa+N z5xCNFnEB1`QZzkl4KsJT9`_GSHYlXwY2;%I>q^}Pw1uj-rJ_F-eCy!FMYxM4t8j=V zz*k?m1OtcLN+)`F9?BVUiHSTYk}Dd0v1IaADr@UfP2xpBq`F+#eWy+rkT;0dM2Mlh zJ#Rqx3fsGzmuMja`%KPClf{%fNo`_8MZSF_rY)Yv{$+nH#&v>ThI;`r(gY)tBp5l# z_7-A3=eBWyo(&kyk7t|Z{R=Cfs*7`AG|(p;lYF4hfI{X*#*27Lncb@^~xEYF~WBoS&WMZ$jJ9S)saJpz^{`Ge^TVq z{oEm2l>ZhS%qlZxvZ!q!%U2?w8ztt#C}*Xv4GZ+5fxOnBHdw^xQsuEqDVVKN(0)ov z3z@qcKCgz)bu!~%lR}qrS&U~mbGP(#cg`8^BWMRpNK}J%s{0YOjiPvkwhR$7>iGqM zPgXFpp%&!zvY*?>d%#0t;u4on8sfb&<18$t>gIvd45yf?A4_o_6bBO&$v{Gvon`~=xk!W#)7!RDOv4W9r^EHX@PC}$gW!Bgw5%L=LVPqq1VmB{6#US;M z1+-(TWm3u9k#9}BhH!OJn7~~+WJRYjYx18UgUgon4?R#=RQKyjc(9t{hT6K1ayk|hA@ zN?Hc-5>!+e+IGQOGAyxHKg&C`ZsfWx@_hpy?~)m_!9n-ij|C!nsqddgKKINpyED&8 zOTLd-7{t5aYFFcEDaI4VJ>{6x52OsUgn3R&V5YY1XLmj}%4z#UtU7*?TZ}rBl)-!= zT6oa})@l}8@m}Io2H^r+ZA~6~W;h;@!cJJ>x*nLqvYV16ErtUkJtPo+wC2!^CD${AOV*Ps-#xfwG!06vabq zH!ZHgATNM2Al5P(7`meq+ErxJYbnK-2MWfrZ@9RJj7RO2Oz`rjMQwyfduCMpJZ#Oz zxaXqO71H`?=ADGWrDL~h&5_3Kc_qI=>q_H`9VOkRiV7`ZyD20 z*!Br96lB*h1fH`{%H;h>vj+jof?am%tD;&_Sua+=tF2UPiPz`}LXgEcMT z^*<;)?+t4jakOPLdqSXWJi`skYB?$^MliIb*OGPF$O~4_w8GV}>CO0!q=)+!25N~^iQB@5TCg3@@z=7gPXe#(^fwsKt721Alm9F-_T#CeN5%pD- zl}U+bM$18|=oi=?4VhcSQla>Y^9#h!Xs{oH1jIO9bowJ2cgi)>jZSXV5j!0keP5GQ zW>EuM74v%9Z_n53b*SDw$g`IiJ&_(vGVc{W3w*jluL~rR3LBk+{3dfrbpf$uyE>&( zm~Yu0i?L%PdJX;@fuqGjF}vB9Ch-S!edXeoUEcxbI1FZYhqdL3h$+-u*F-X+d#sw* zBiy?>(JV8@Vyn@*b#Pi29-PS`6FOiZG!E`nOw`Sc2{RyA;ctrbNrq8ttF6M|EvCmo zso|Hf9)6?ArDaT0%c!&MP!Zl`=)J!()4H@DP`N|CTY-sn4`{ zLTv5*@dW)~My8Bx@;^-vIHC1KSu$s$9BpW4G9sTw3F592kIfuj-~~argx4V9*z1)<#c)89cnsfmVL!>y zp;qiKXv>L0vPE#+$YM?0DA25J1Q`LjGKc!7*y8j&H~H}*)wWDsUZLlLP5NN7e_N9o z>@AATC-F$y=|aH}yPsss;5*$$Ua#M7e@f1mEFn={kxD@m#W=9!-D)p@in@O>gZ<8v z022!OSU=eEPt2$0z{F*sL@jH<4_3%pv9L<@jk4^*Qh(7?$qvM=dayZ`TK`oa&W^!T z_o%Un6xI}+w1QTuYVe)ZwjAx7b^wl)vN<-Z{`)ss5y{%L#-?>)m@oOM z%HE{ivQ`N_Q#j-3W-rn03pb~TfVk97XqN+A*$8m&_92;)EWua5WixF}VISR3z{o8zcgFCnHTI>`BM0ZvvwpE(t4oUJ>TK6GNe#6L#wYVvO z9fEOA8bw`4VmMb#itMUw-k<^B+o-vb%>CQk+uKj9Tv}VxG7}#{;R>25sGj~{r+-&d zm%XDz^$)X_D03*DnV|=ye8F6sU;e`_(;4gGWk@V5JVl`>UoaHN%uFX1b~~SU^37Fg zZ);YPfFT-pkoR@*F4!Co&ETcJgIw5rnOrP(;d7qIKFC(Ij7v4DmDh5qeNSoLot zIWQx2dkHznS;-M=mO^}reug~1+iEtN5=}yqH}zksJ{PuwzYa9vm??~A9oZwA81W0Q z<9*E5N%K{-l-Y`zv9jAHYJHB0RY;6@*4DHauoNOsCtxWZ|F-0e(1ukg!8@nrGb}2c zMzDr7VDtgd)#;=pYu`JoL7a|Tes_H-Ut5N~7Zhl?sow_9eTaoY>lx};Pv0-Y4uY0U zYo&&4bzQOc7-bg^ZHUvjBQ;w0yA=PDU5$zIRF_Yb*bz`OYrPex5<6u$58DOgQxjqa ziai3z{*r{7ac%ss+6ZsJ;DmWpjHICpjqKbh=Q&ZCm+dY$%D?w1#ET8rPiV%}Hi3PY zmSpN{<=%?Ic}gGOLUqOUzFjp*B}H4(^oOzuwdT-<#Zn1i7}VDXxYky5@@!!M4iEnq zU+!3QDB#Y#ifz)UWM}3L->n2oe2|1}um36wqPki~`-5y5hAy{J#Z~m9~_z*a@%c!}Z@wTx9bm5|=rEG{yV zM%(eOxvWkH&Mpa6r6U5j4{n72Mg+FBdmu`ec7T1K4U$4LL_W95DdY5epNhPTwo0R- zB9}rE;h{LSLP7q)Gn;s&d&D0C=ubKi7T#Mg2}dW`t+rzWN0=&4a9W$8$^iWKf9`bW z9G1*{^?PFooIJz$EmDqyEgmIL-edP92@VqX1#{z#AL&0|oupF(iB|93$TITFt71oR za#HATN?j}M62n^JQu~Hmo@ID+Qj%iP80L!hV|;z4OBIfy2g6=y-Ci(7@SW3d5wTG= zsm!;=I!*C%4r3i+8;uUwoR_4cH2fh*cmMeX+g|lsnt3DBp+*wbY2AK;FW*R;X)7$8glIL@eR-^I#f{;;LJ?toJ#VXfO~ZYg(XnaSb*$x_O>arp`EmJ*_| zi-cy$Wh99dT{??H11mR4N7t=GPOh0ZWDSj4CU=M#O;BR(H4ZUyT)gVm!U>uS~cw1*jS9_z6xYzblP&n+eAie5x~yS; zQDKo7pctkT)7C>ZCvmCAXnK{_s>QxM9oB9M9@Athj&cgY{%~BVeEC$jbdS52E`C{t>eBAi(3Pjo7HW%A6EuJ; zOdo0?WwuzpfTAL{IqGXAd?bJQ+giEiH6t5#S-jd8am{svRG#vz zfc`OUZwd|Oj~vlVwD(825ZKUbvYex|$GD*JTg<0@&2`#vsHa8Kq;O)bgw(`k3cN3= z8>RE#8eMG-{#5+ywI)rO-br>uZJ=pHw(&R#smf#uOCLpH|b&xX0EMH{9 z_FX>r17*hJw#3umI)lA(%6nL%{O{Ot#Nd~V@Mgkh&BS#zhZIdH`=xF%jBD^=Rsmi4^f&zNdC!TkV{Hf0iG# zq(9MrzA)L!6Q=E)XOP<4Wod$Z3s-U#anEU;kxW zS|bo#T|UxwhdZ14GCr63luvAln}^#1uK&$?=nX4Ef}XhDCQp}#Wy|?(r7SmSKERcU z>9lj(D@J9siXBy$(>{i!dN>kL8?$ZV&YXdbQ(MAh>`6^?ZWK}*j)NE_79GtUwRDHY&B-c=y;^p}Y>v?8pvy%N$gypG z+*Hc;ArE@>By9I#k4w{OvMioI;;iXpBY*Okhpw_?|HDpuHA&eAxit4psWqiw6;GLg zDgZza+0lVH7@{PX*?SBnT){$B`{?2^T@0Pef+Na!6#~swC_9YhUo{kyP9P21baawqvJad$u!@#K(r9p zk@qberl?4YKgf}{&h3L5;dAh%71;|6p@T!%?%6SMp`0gE6DyURv|z5YA{HxapGv%b z^p%e#mLXRr{4b)L79TMN$GFnnzf6f&F=&)+OQAo7O*31XKyZkbYx==vYgxX8Nt)vj z+X7sWuLVqYshatJIN$3yTg5)l$KpK>0XBT zDY|1pbF9W#aVn(4uKmL2lq>Mb2{A5(O~!MmK-?C(8($8|#G%EbSAe3R+NtAnU(!`= zr{d-Knjk!HchlH2yrU8T!=+f6Jgl*fS~tIZW|MUJKsxtkk+73zF7aH3kxEL}K29k& z!}1j_6rx;tfJ^0Uf&x}-S1fp#sww`K+s&1?qUW?h-Cgvs^%Rd54+O$lkB@J`jW}C` z|IHbfx$%>Uvr25J@VJ&H#Cc{-N&pHDyd_$zjwM{u;x2qaQqmp7`$&cFKc-!7|<-vQiOeFRkbU&Ko(WWZ6(Y9B4> z_q6?*1LV}gX~fyoAFfruh>5h2*%YUORrgjaP^R~Y7nCSb-%g<~kJ+{Gg<+*H!*Jqd z;4Vjj8!P9Pm`CFM;R@3hwXmMxTPwnK;?T!rwYH!+g7SIIYHj%^KdO{U!R6EMC4uD= zGg*{>#UUFmAuSo?8<+%6l&lE93KJ8ICkN*QlxERC(#wwV4YjVeC(z$xU=S;+=<52d^(oqYJbEjcRz zijU1^j)t?c>8XcOkX2kt#m1`U9vS50VwN@=O%fdqeG1cVNf{zPd`;X-=OGi8_+%Fx zrRpf7vHZK1XDC?a;Y+0$VGKc!WI2p_IJ|a?yrpfsIG^EAuvvb{ zlAc?3Nt|aR+Bwr^+v5H_reZqVxdYKwy0IJPbi0Zb<2<-yv!97SV*6OHHuM>3U_q5t z^boHKuf~_-v4pFt`I8JW$E(movbznt5@nZN1`|$+M!fetxP#o?ne<6qOhA4M%9T0k z8{j6*3Ey+SJin(sX585$9+P%TySPbEOT%xM>--byOS$SBCEWR~B~6BY9+z5MBohbM z%;5s22TzTqHfu^cy>w22aY*Hv%oWk^mLiuISJe_`wZP8uZ@C`!Ke_0Jr6}4TZi6OF zB=88cP8u&v8|1}fdDg#G-7>^|p~uZ6Csbfhn+JC#8{&`Wl}h1mrEI6R`^?y?K@nW^ z_+9kqyY1h4Cv)cJ34N@?AkT3&DkE3k$I$`BlTNPw$m!^Y8!m=~(84r{#2KeHohfY} zOYHY};@nBQAVO9V~)ZLQkH^oi;nTq2$@d>dkb(jXOwRhd#rXvk->UjVMZiFRfKkH&EZiNl<}vLbcU7Sz|{hX9H;VElXuikw%K?#;Tuz(u|)I_hx|x`TAC7L>{>Id@<%y@#Y4BUXj9!6U`t1ot{FSugGaFx{e@CsIBYddzh6&|MzwXETjiDv#N(Xb}2 z+(2m486s|B7%At3B&2Sq@BR13C;KnMUOdM+K+Mi1ztKU%W9FWb&;7z3g$kW;t_OP< zGOJl*BUfO9C{Y21)UAx4wS1iCA*-p|a>FAso~F;kJ1C7RSHzzngQmWrslE|~J$0sr zsIEblHN0=OrK3qVT2D9NPp__T+-WPig9OZRc84N7;?mr8U-<<|Gs465Ol%~siDSxn z#}6~0yh```iNkA1q9f5Nc*fmeNb9BF7Pto=zg0XwLwo$xBCljPk7^wGa~D2zwzJZ? zv{;R<4KLxKQ{pK*Gu?UO?s{85z*kyN!5#Wo4TbCq$60EwbyOzAO}^GkmP1~wCf$D} z)Ym;|)csp8`Hw|j?`x|gC@r%9UiXAmQM|!A;Fl9cB~rLmOB=Am;Mn8Ewl&lJj}MB? z-Vq6BTMcJ(jk*GI*x2}+)*d-%<44@&{~`$?i5E#}E01Ht#6S1zpidajvasVD2QGA2 zD0x9f=v6!XyLbXPOW3FQSE3qdX61$(lnSy*u-Ao*> zVWYhZ`MEuNqSq&R7IPkyJz@E??qo#WJ28BL^`j@uf6mc=6nWU0X};_^FU{~Gw3bAY z6znBu8K78QsvCOXI=*9Mk*2|Q6=cBd^PY1W?Q7EQmELb@7r}>*S+8#Kanzv7OA5`% z>6bJC(Z89L*|0zF8`dF2$e;6@=x!gkCgw@DDufle4RI8F;Ec1Hq-Kw3I8#=Uf3s(% z?!mk~_)=+8KY2DON2{2H?W{W|*%#o;(^1>y`#zdF&6b1^Za4ht7^7^+x1O-KV;yA2 z68~?`!Ro=5xYx8iInh-P;p~E$sPoZ#lkvJ!mscadCtTylWpqgn3)^36YF!F%X@S@m zO*a2Xr0l0;*Rb+97rNgy(-03MHYX=xKU9Ay#ex0@lFbdTzDO*rmC$ zC{c&^*!;Ti6&y^@*2q2R5m0NQH5Ue&Lv{(bDm4R)H8U-1)>=)u;GfP~z^bwPoA~X7 zwvh#z&7jI=xMn%0%ER~=d4AyLYz;${od8*dBEbWnDEScCN6;>pC!_il(iehff*lXG-)|6ER z7u2zb(XDLaa;4Dl0IeF#z0+2ZJ6nE4h$Hznq>BLS=zlE4njq9tvuR!07CLe=->QYga{Q)dfm*lpYW?S%iy`NH{H z-&3cwLw5^u{UzHC*wMLj*Mn<|Y|5XoLm{+jDF**F$MEQ@cV!Q+zor=g1NB?hi|L2^ z2KCM@e_OyIyM!3y;PwFL zRq`6QG-jynPDb&fyk2m@vF_AObN!PENejc0V@<|3aFx~GTTm#HT^>Y(zXBG_P2D<` zup$h|3*-L(0vDb;Y!{bsya5=t!LEHi8FQRlxY6XzHTp=LGB^ynx*Tjij8{E%cuwNY z4NW=|Me4u5O4Uc~;n0H2Sx2M|J$N^?7P7(Rx*El&9R;=LW{Icg6t(GqXRXx?iMz}< z$)jZYNIZ+SHr{z?yHZG+3JPg~1>};6{dk>O@fp0zbmskmUCLYGSWjsUZRs`sW7f5h zN`KoR@3azZMKFev2w9RigjD><8j8oqF3gARhyL+;o`xh-hd(YvDj$8)e|C?nKIpL1 zm>Kw+MD>128!XRtcc62p+>PYP(@~>C#_mH|^)usPJ@F%Z_86@XUU((x{n}p^u9^2? z*^=pyBl8|Vr2gw0LoIts(b~ADiL;XSm`bIV9Td__;{@B8=r52ajuck@tBct!8dq?2>bJaxkT_JJKmTW$Vb=^Kw*Y4n|XS6g%+1&A9V z9X}9z@Oy-&L)|h&v3&-A$3*n(T6!*c^3T=C>HbVM|K>>*Nx(xBoPzM&XDM=8UI=&U z&p-A{`13K}QS%S&#QH@JIR8_BC4E1Ad+iBHQ`41%EqZspQ$JYRKEJPq9G++jVyi^Q z!J*>mym{-ApaQvCZ-lFgy(jtNVb6m#FTN`wr&NJMi1o8V2{@x|-jwjlXLPv$nEQu) z=LU)DcfBLz&JS?7{c&miQ@MA+E*5BR??wMuc(!q=`5$R@2j+~MuwuI$M zq=fKXjo&ZCs3ADS`5`Ic`~KVdb8KJTz)UUNQeN=aVq^5Yr%LtLXi4IZgeP5-f{1eV zGARDfZl`6EDR_sfoCUVAX#ee*tV7meL(!Kc_C_QyQ_nZon#HScA}n0e$;y0bc3Kio z4ksjiNcB8P>r1I4-@WtG%w~ajFrtzDTeBy&nm^^oWl-~*y59%J%_P!#=zsR6z`NzK zg&ul;YivA9GSb7Lm63zRY?n0;jwmHbUEKNR@Qm&(?}Z8Z8<(Fy(ck@8X5*+lk`6jL zXFgm1_vp;K7yIN7^QDOY>a3A`p}hZ53;Z#l`HU$0KQc|CEF0r?OIl8=s-0;d+;<~9 z{X4Xx#26KH&s2Su)OUBS)69GjsyJ4!cqHBSAh|@rNc_>Rmw$GfkdH3DsDB}7t;Sb@ zxA|?M$*_cO<$CiUar_5g-ah7hJ28X~zYW{jJKN;2w&hB6@!*Rc_tqY}TXRQl_<>|K zdV0UEm-`=I)}=4lSH`Srm%<&9|7Xr5%?*BgdH!(YP%zw8xscgAM}$^K+qt}0v^{^b z!MlrF59H6a?De&D`J?;F2fKZxFRR+59_|qQJvZ2Ir>%oxH-1pt)V2&2%}A!-7`rED znPTrkV*Z~h>6%f(pAw+jc=Mpao51uv*((*jWr;ni-1~471bYtarK`H#EqA^lMLd{( z_h9FzxrXh6gXy+^bG}9EqpuwP?UNA=zT!`a|F!CMy&K(ELaJJgHuk2ZGR5!F0{ffW zxYb=fAD@cmNi$b`VD`U$QnyLx%opRTB9P{WA@o z2a-&}B!oLv-!Aal(`iR2Y8-O%976Bo*Ud3YH1vJ*Shel%&}@BKbZ|~>xCP3=R;Ax! z(Rke3SHWLCZRNpUg81REZk=zg&r7dS?zg_D^7XjU=2fCQ5zy+CcmB_qP`O>}Hr>_e zFP%+(4%(mpi^NHp6bvJ$w0d{Y->^u;=1ZYnV$-G{(f3H;HiW`VrS#6gUxUGAGk5+yp_H4p0Brf zHS1|8#nDsw9hGxRH=rq+LHA z{&2+4r0buFE~$rQD=+^agN{KmUmg-Fm&cr&&sdupEtx;q(qbytq-AUw3es9<`_}G& zvx$m?$-Zm*&b&=jb@_ix{dYiA$?`r9H_j^SB5*gs0s^~B7!&~|3J8pstK=Y{C@fS)m2YDRo#

N`QM6n0 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Ⓢ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 literal 0 HcmV?d00001 diff --git a/Messenger_Clone/public/next.svg b/Messenger_Clone/public/next.svg new file mode 100644 index 000000000..5174b28c5 --- /dev/null +++ b/Messenger_Clone/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Messenger_Clone/public/vercel.svg b/Messenger_Clone/public/vercel.svg new file mode 100644 index 000000000..d2f842227 --- /dev/null +++ b/Messenger_Clone/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Messenger_Clone/tailwind.config.js b/Messenger_Clone/tailwind.config.js new file mode 100644 index 000000000..8dd2fd6a6 --- /dev/null +++ b/Messenger_Clone/tailwind.config.js @@ -0,0 +1,16 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + './pages/**/*.{js,ts,jsx,tsx}', + './components/**/*.{js,ts,jsx,tsx}', + './app/**/*.{js,ts,jsx,tsx}', + ], + theme: { + extend: {}, + }, + plugins: [ + require('@tailwindcss/forms')({ + strategy: 'class' + }) + ], +} diff --git a/Messenger_Clone/tsconfig.json b/Messenger_Clone/tsconfig.json new file mode 100644 index 000000000..e06a4454a --- /dev/null +++ b/Messenger_Clone/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +}