├── .eslintrc.json
├── .gitignore
├── Makefile
├── README.md
├── app
├── api
│ ├── auth
│ │ └── [...nextauth]
│ │ │ └── route.ts
│ ├── register
│ │ └── route.ts
│ └── session
│ │ └── route.ts
├── client-side
│ └── page.tsx
├── favicon.ico
├── globals.css
├── layout.tsx
├── login
│ ├── login-form.tsx
│ └── page.tsx
├── page.tsx
├── profile
│ └── page.tsx
└── register
│ ├── page.tsx
│ └── register-form.tsx
├── auth.ts
├── components
└── header.tsx
├── docker-compose.yml
├── example.env
├── lib
└── user-schema.ts
├── middleware.ts
├── next.config.mjs
├── package.json
├── pnpm-lock.yaml
├── postcss.config.js
├── prisma
├── migrations
│ ├── 20240207160257_init
│ │ └── migration.sql
│ └── migration_lock.toml
├── prisma.ts
├── schema.prisma
└── seed.ts
├── public
├── images
│ ├── default.png
│ ├── github.svg
│ └── google.svg
├── next.svg
└── vercel.svg
├── tailwind.config.ts
└── tsconfig.json
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "next/core-web-vitals"
3 | }
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 | .yarn/install-state.gz
8 |
9 | # testing
10 | /coverage
11 |
12 | # next.js
13 | /.next/
14 | /out/
15 |
16 | # production
17 | /build
18 |
19 | # misc
20 | .DS_Store
21 | *.pem
22 |
23 | # debug
24 | npm-debug.log*
25 | yarn-debug.log*
26 | yarn-error.log*
27 |
28 | # local env files
29 | .env*.local
30 | .env
31 | toc.txt
32 |
33 | # vercel
34 | .vercel
35 |
36 | # typescript
37 | *.tsbuildinfo
38 | next-env.d.ts
39 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | setup:
2 | pnpm create next-app nextauth-nextjs14-prisma
3 | install dependecies:
4 | pnpm add next-auth@beta @auth/prisma-adapter
5 | pnpm add @prisma/client
6 | pnpm add bcryptjs
7 | pnpm add -D prisma ts-node @types/bcryptjs
8 |
9 | pnpm add zod @hookform/resolvers react-hook-form tailwind-merge
10 | pnpm add react-hot-toast
11 |
12 | commands:
13 | docker-compose up -d
14 | docker-compose down
15 | pnpm prisma init --datasource-provider postgresql
16 | pnpm prisma migrate dev --name init
17 |
18 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## 1. Setup and Use NextAuth.js in Next.js 14 App Directory
2 |
3 | In this tutorial, you will learn how to set up NextAuth v5 in Next.js 14. With the release of NextAuth v5, a couple of breaking changes have been introduced, and getting NextAuth up and running in a Next.js 14 project requires a bit of setup.
4 |
5 | 
6 |
7 | ### Topics Covered
8 |
9 | - How to Run the Next.js Application on Your Machine
10 | - Bootstrap the Next.js 14 Project
11 | - Install the Required Dependencies
12 | - Initialize NextAuth.js in Next.js 14
13 | - Set up Prisma for Database Interactions
14 | - Set up PostgreSQL with Docker
15 | - Set up Prisma and Prisma Client
16 | - Hack Around the Account Registration
17 | - Implement Credentials Authentication
18 | - Implement Google and GitHub OAuth
19 | - Three Ways of Fetching the NextAuth Session Data
20 | - Retrieving the Session in a React Server Component
21 | - Retrieving the Session in an API Route
22 | - Retrieving the Session in a React Client Component
23 | - How to Add Custom Data to the Session Data
24 | - Three Ways of Protecting Routes with NextAuth
25 | - Client-Side Route Protection
26 | - Server-Side Route Protection
27 | - Middleware Route Protection
28 | - Creating a Custom Registration Page
29 | - Create the Account Registration API Route
30 | - Create the Form Component
31 | - Create the Page Component
32 | - Conclusion
33 |
34 | Read the entire article here: [https://codevoweb.com/setup-and-use-nextauth-in-nextjs-14-app-directory/](https://codevoweb.com/setup-and-use-nextauth-in-nextjs-14-app-directory/)
35 |
36 | ## 2. Implement Authentication with NextAuth in Next.js 14
37 |
38 | In this tutorial, you'll discover how to set up NextAuth v5 in Next.js 14, configure Prisma ORM for database interactions, implement user registration and login, and secure routes using Next.js middleware with NextAuth.
39 |
40 | 
41 |
42 | ### Topics Covered
43 |
44 | - Running the Project on Your Computer
45 | - Demo of the Authentication Flow
46 | - Configuring Tailwind CSS
47 | - Setting up a PostgreSQL Server with Docker Compose
48 | - Creating Prisma Models for NextAuth
49 | - Initializing NextAuth.js in Next.js 14
50 | - Implementing Credentials Authentication with NextAuth
51 | - Creating a Header Component
52 | - Creating Zod Validation Schemas
53 | - Implementing Account Registration
54 | - Creating the Account Registration API Route
55 | - Creating the Account Registration Form
56 | - Creating the Page Component
57 | - Implementing User Sign-in with NextAuth
58 | - Creating the Account Login Form
59 | - Creating the Page Component
60 | - Protecting Routes with NextAuth Middleware
61 | - Creating a Protected Page
62 | - Conclusion
63 |
64 | Read the entire article here: [https://codevoweb.com/implement-authentication-with-nextauth-in-nextjs-14/](https://codevoweb.com/implement-authentication-with-nextauth-in-nextjs-14/)
65 |
66 | ## 3. Set up Google and GitHub OAuth with NextAuth in Next.js 14
67 |
68 | In this comprehensive guide, you will learn how to set up Google and GitHub OAuth with NextAuth v5 in your Next.js 14 project. Incorporating OAuth sign-in options into your application can eliminate the need for users to sign in with their email and password.
69 |
70 | 
71 |
72 | ### Topics Covered
73 |
74 | - How to Run the Project on Your Computer
75 | - Demo of the OAuth Flow
76 | - Obtaining Google and GitHub OAuth Credentials
77 | - Google OAuth Client ID and Secret
78 | - GitHub OAuth Client ID and Secret
79 | - Initializing NextAuth.js in Next.js 14
80 | - Adding Google and GitHub Providers to NextAuth
81 | - Modifying the JWT Payload and Session Data
82 | - Implementing Google and GitHub OAuth Sign-in Options
83 | - Protecting Routes with NextAuth Middleware
84 | - Conclusion
85 |
86 | Read the entire article here: [https://codevoweb.com/google-and-github-oauth-with-nextauth-in-nextjs-14/](https://codevoweb.com/google-and-github-oauth-with-nextauth-in-nextjs-14/)
87 |
88 |
--------------------------------------------------------------------------------
/app/api/auth/[...nextauth]/route.ts:
--------------------------------------------------------------------------------
1 | import { handlers } from '@/auth';
2 |
3 | export const { GET, POST } = handlers;
4 |
--------------------------------------------------------------------------------
/app/api/register/route.ts:
--------------------------------------------------------------------------------
1 | import { hash } from "bcryptjs";
2 | import { NextResponse } from "next/server";
3 | import prisma from "@/prisma/prisma";
4 | import { createUserSchema } from "@/lib/user-schema";
5 | import { ZodError } from "zod";
6 |
7 | export async function POST(req: Request) {
8 | try {
9 | const { name, email, password } = createUserSchema.parse(await req.json());
10 |
11 | const hashed_password = await hash(password, 12);
12 |
13 | const user = await prisma.user.create({
14 | data: {
15 | name,
16 | email: email.toLowerCase(),
17 | password: hashed_password,
18 | },
19 | });
20 |
21 | return NextResponse.json({
22 | user: {
23 | name: user.name,
24 | email: user.email,
25 | },
26 | });
27 | } catch (error: any) {
28 | if (error instanceof ZodError) {
29 | return NextResponse.json(
30 | {
31 | status: "error",
32 | message: "Validation failed",
33 | errors: error.errors,
34 | },
35 | { status: 400 }
36 | );
37 | }
38 |
39 | if (error.code === "P2002") {
40 | return NextResponse.json(
41 | {
42 | status: "fail",
43 | message: "user with that email already exists",
44 | },
45 | { status: 409 }
46 | );
47 | }
48 |
49 | return NextResponse.json(
50 | {
51 | status: "error",
52 | message: error.message || "Internal Server Error",
53 | },
54 | { status: 500 }
55 | );
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/app/api/session/route.ts:
--------------------------------------------------------------------------------
1 | import { auth } from "@/auth";
2 | import { NextResponse } from "next/server";
3 |
4 | export async function GET(_request: Request) {
5 | const session = await auth();
6 |
7 | if (!session?.user) {
8 | return new NextResponse(
9 | JSON.stringify({ status: "fail", message: "You are not logged in" }),
10 | { status: 401 }
11 | );
12 | }
13 |
14 | return NextResponse.json({
15 | authenticated: !!session,
16 | session,
17 | });
18 | }
19 |
--------------------------------------------------------------------------------
/app/client-side/page.tsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import { useSession } from "next-auth/react";
4 | import Image from "next/image";
5 | import { useRouter } from "next/navigation";
6 |
7 | export default function Profile() {
8 | const router = useRouter();
9 | const { data } = useSession({
10 | required: true,
11 | // onUnauthenticated() {
12 | // router.push('/api/auth/signin');
13 | // },
14 | });
15 |
16 | const user = data?.user;
17 |
18 | return (
19 | <>
20 |
21 |
22 |
23 |
24 | Profile Page
25 |
26 | {!user ? (
27 |
Loading...
28 | ) : (
29 |
30 |
31 |
37 |
38 |
39 |
ID: {user.id}
40 |
Name: {user.name}
41 |
Email: {user.email}
42 |
43 |
44 | )}
45 |
46 |
47 |
48 | >
49 | );
50 | }
51 |
--------------------------------------------------------------------------------
/app/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wpcodevo/nextauth-nextjs14-prisma/ba55c0240c13df80fdd43e553f41468da90897c7/app/favicon.ico
--------------------------------------------------------------------------------
/app/globals.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
--------------------------------------------------------------------------------
/app/layout.tsx:
--------------------------------------------------------------------------------
1 | import type { Metadata } from "next";
2 | import { Inter } from "next/font/google";
3 | import "./globals.css";
4 | import { Toaster } from "react-hot-toast";
5 | import { SessionProvider } from "next-auth/react";
6 |
7 | const inter = Inter({ subsets: ["latin"] });
8 |
9 | export const metadata: Metadata = {
10 | title: "Create Next App",
11 | description: "Generated by create next app",
12 | };
13 |
14 | export default function RootLayout({
15 | children,
16 | }: Readonly<{
17 | children: React.ReactNode;
18 | }>) {
19 | return (
20 |
21 |
22 | {children}
23 |
24 |
25 |
26 | );
27 | }
28 |
--------------------------------------------------------------------------------
/app/login/login-form.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import { zodResolver } from '@hookform/resolvers/zod';
4 | import Image from 'next/image';
5 | import { useRouter, useSearchParams } from 'next/navigation';
6 | import { useState } from 'react';
7 | import { SubmitHandler, useForm } from 'react-hook-form';
8 | import toast from 'react-hot-toast';
9 | import { signIn } from 'next-auth/react';
10 | import { LoginUserInput, loginUserSchema } from '@/lib/user-schema';
11 |
12 |
13 |
14 | export const LoginForm = () => {
15 | const router = useRouter();
16 | const [error, setError] = useState('');
17 | const [submitting, setSubmitting] = useState(false);
18 |
19 | const searchParams = useSearchParams();
20 | const callbackUrl = searchParams.get('callbackUrl') || '/profile';
21 |
22 | const methods = useForm({
23 | resolver: zodResolver(loginUserSchema),
24 | });
25 |
26 | const {
27 | reset,
28 | handleSubmit,
29 | register,
30 | formState: { errors },
31 | } = methods;
32 |
33 | const onSubmitHandler: SubmitHandler = async (values) => {
34 | try {
35 | setSubmitting(true);
36 |
37 | const res = await signIn('credentials', {
38 | redirect: false,
39 | email: values.email,
40 | password: values.password,
41 | redirectTo: callbackUrl,
42 | });
43 |
44 | setSubmitting(false);
45 |
46 | if (!res?.error) {
47 | toast.success('successfully logged in');
48 | router.push(callbackUrl);
49 | } else {
50 | reset({ password: '' });
51 | const message = 'invalid email or password';
52 | toast.error(message);
53 | setError(message);
54 | }
55 | } catch (error: any) {
56 | toast.error(error.message);
57 | setError(error.message);
58 | } finally {
59 | setSubmitting(false);
60 | }
61 | };
62 |
63 | const input_style =
64 | 'form-control block w-full px-4 py-5 text-sm font-normal text-gray-700 bg-white bg-clip-padding border border-solid border-gray-300 rounded transition ease-in-out m-0 focus:text-gray-700 focus:bg-white focus:border-blue-600 focus:outline-none';
65 |
66 | return (
67 |
142 | );
143 | };
144 |
--------------------------------------------------------------------------------
/app/login/page.tsx:
--------------------------------------------------------------------------------
1 | import Header from '@/components/header';
2 | import { LoginForm } from './login-form';
3 | import { Suspense } from 'react';
4 |
5 | export default async function LoginPage() {
6 | return (
7 | <>
8 |
9 |
10 |
11 |
12 |
13 | Loading...>}>
14 |
15 |
16 |
17 |
18 |
19 | >
20 | );
21 | }
22 |
--------------------------------------------------------------------------------
/app/page.tsx:
--------------------------------------------------------------------------------
1 | import Header from '@/components/header';
2 |
3 | export default function Home() {
4 | return (
5 | <>
6 |
7 |
8 |
9 |
10 | Implement Authentication with NextAuth in Next.js 14
11 |
12 |
13 |
14 | >
15 | );
16 | }
17 |
--------------------------------------------------------------------------------
/app/profile/page.tsx:
--------------------------------------------------------------------------------
1 | import { auth } from "@/auth";
2 | import Header from "@/components/header";
3 | import Image from "next/image";
4 | import { redirect } from "next/navigation";
5 |
6 | export default async function ProfilePage() {
7 | const session = await auth();
8 |
9 | // if (!session?.user) {
10 | // return redirect("/api/auth/signin");
11 | // }
12 |
13 | const user = session?.user;
14 |
15 | return (
16 | <>
17 |
18 |
19 |
20 |
21 |
22 | Profile Page
23 |
24 |
25 |
26 |
32 |
33 |
34 |
ID: {user?.id}
35 |
Name: {user?.name}
36 |
Email: {user?.email}
37 |
38 |
39 |
40 |
41 |
42 | >
43 | );
44 | }
45 |
--------------------------------------------------------------------------------
/app/register/page.tsx:
--------------------------------------------------------------------------------
1 | import Header from '@/components/header';
2 | import { RegisterForm } from './register-form';
3 |
4 | export default async function RegisterPage() {
5 | return (
6 | <>
7 |
8 |
9 |
16 | >
17 | );
18 | }
19 |
--------------------------------------------------------------------------------
/app/register/register-form.tsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import { zodResolver } from "@hookform/resolvers/zod";
4 | import { SubmitHandler, useForm } from "react-hook-form";
5 | import toast from "react-hot-toast";
6 | import { useState } from "react";
7 | import { signIn } from "next-auth/react";
8 | import { CreateUserInput, createUserSchema } from "@/lib/user-schema";
9 |
10 | export const RegisterForm = () => {
11 | const [submitting, setSubmitting] = useState(false);
12 |
13 | const methods = useForm({
14 | resolver: zodResolver(createUserSchema),
15 | });
16 |
17 | const {
18 | handleSubmit,
19 | register,
20 | formState: { errors },
21 | } = methods;
22 |
23 | const onSubmitHandler: SubmitHandler = async (values) => {
24 | try {
25 | setSubmitting(true);
26 | const res = await fetch("/api/register", {
27 | method: "POST",
28 | body: JSON.stringify(values),
29 | headers: {
30 | "Content-Type": "application/json",
31 | },
32 | });
33 |
34 | if (!res.ok) {
35 | const errorData = await res.json();
36 |
37 | if (Array.isArray(errorData.errors) && errorData.errors.length > 0) {
38 | errorData.errors.forEach((error: any) => {
39 | toast.error(error.message);
40 | });
41 |
42 | return;
43 | }
44 |
45 | toast.error(errorData.message);
46 | return;
47 | }
48 |
49 | signIn(undefined, { callbackUrl: "/" });
50 | } catch (error: any) {
51 | toast.error(error.message);
52 | } finally {
53 | setSubmitting(false);
54 | }
55 | };
56 |
57 | const input_style =
58 | "form-control block w-full px-4 py-5 text-sm font-normal text-gray-700 bg-white bg-clip-padding border border-solid border-gray-300 rounded transition ease-in-out m-0 focus:text-gray-700 focus:bg-white focus:border-blue-600 focus:outline-none";
59 |
60 | return (
61 |
122 | );
123 | };
124 |
--------------------------------------------------------------------------------
/auth.ts:
--------------------------------------------------------------------------------
1 | import NextAuth from 'next-auth';
2 | import { PrismaAdapter } from '@auth/prisma-adapter';
3 | import prisma from './prisma/prisma';
4 | import github from 'next-auth/providers/github';
5 | import google from 'next-auth/providers/google';
6 | import CredentialsProvider from 'next-auth/providers/credentials';
7 | import bcrypt from 'bcryptjs';
8 |
9 | export const { handlers, auth, signIn, signOut } = NextAuth({
10 | session: { strategy: 'jwt' },
11 | adapter: PrismaAdapter(prisma),
12 | pages: {
13 | signIn: '/login',
14 | },
15 | providers: [
16 | github,
17 | google,
18 | CredentialsProvider({
19 | name: 'Sign in',
20 | id: 'credentials',
21 | credentials: {
22 | email: {
23 | label: 'Email',
24 | type: 'email',
25 | placeholder: 'example@example.com',
26 | },
27 | password: { label: 'Password', type: 'password' },
28 | },
29 | async authorize(credentials) {
30 | if (!credentials?.email || !credentials.password) {
31 | return null;
32 | }
33 |
34 | const user = await prisma.user.findUnique({
35 | where: {
36 | email: String(credentials.email),
37 | },
38 | });
39 |
40 | if (
41 | !user ||
42 | !(await bcrypt.compare(String(credentials.password), user.password!))
43 | ) {
44 | return null;
45 | }
46 |
47 | return {
48 | id: user.id,
49 | email: user.email,
50 | name: user.name,
51 | randomKey: 'Hey cool',
52 | };
53 | },
54 | }),
55 | ],
56 | callbacks: {
57 | authorized({ auth, request: { nextUrl } }) {
58 | const isLoggedIn = !!auth?.user;
59 | const paths = ['/profile', '/client-side'];
60 | const isProtected = paths.some((path) =>
61 | nextUrl.pathname.startsWith(path)
62 | );
63 |
64 | if (isProtected && !isLoggedIn) {
65 | const redirectUrl = new URL('/api/auth/signin', nextUrl.origin);
66 | redirectUrl.searchParams.append('callbackUrl', nextUrl.href);
67 | return Response.redirect(redirectUrl);
68 | }
69 | return true;
70 | },
71 | jwt: ({ token, user }) => {
72 | if (user) {
73 | const u = user as unknown as any;
74 | return {
75 | ...token,
76 | id: u.id,
77 | randomKey: u.randomKey,
78 | };
79 | }
80 | return token;
81 | },
82 | session(params) {
83 | return {
84 | ...params.session,
85 | user: {
86 | ...params.session.user,
87 | id: params.token.id as string,
88 | randomKey: params.token.randomKey,
89 | },
90 | };
91 | },
92 | },
93 | });
94 |
--------------------------------------------------------------------------------
/components/header.tsx:
--------------------------------------------------------------------------------
1 | import { auth, signOut } from '@/auth';
2 | import Link from 'next/link';
3 |
4 | const Header = async () => {
5 | const session = await auth();
6 | const user = session?.user;
7 |
8 | const logoutAction = async () => {
9 | 'use server';
10 | await signOut();
11 | };
12 |
13 | return (
14 |
61 | );
62 | };
63 |
64 | export default Header;
65 |
--------------------------------------------------------------------------------
/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: '3'
2 | services:
3 | postgres:
4 | image: postgres:latest
5 | container_name: postgres
6 | ports:
7 | - '6500:5432'
8 | volumes:
9 | - progresDB:/var/lib/postgresql/data
10 | env_file:
11 | - ./.env
12 | volumes:
13 | progresDB:
14 |
--------------------------------------------------------------------------------
/example.env:
--------------------------------------------------------------------------------
1 | AUTH_GITHUB_ID=
2 | AUTH_GITHUB_SECRET=
3 |
4 | AUTH_GOOGLE_ID=
5 | AUTH_GOOGLE_SECRET=
6 |
7 | AUTH_SECRET=my_ultra_secure_nextauth_secret
8 | # NEXTAUTH_URL=http://localhost:3000 this is causing a webpack error in the beta v8 of NextAuth
9 |
10 | POSTGRES_HOST=127.0.0.1
11 | POSTGRES_PORT=6500
12 | POSTGRES_USER=admin
13 | POSTGRES_PASSWORD=password123
14 | POSTGRES_DB=nextauth_prisma
15 |
16 | DATABASE_URL="postgresql://admin:password123@localhost:6500/nextauth_prisma?schema=public"
--------------------------------------------------------------------------------
/lib/user-schema.ts:
--------------------------------------------------------------------------------
1 | import { TypeOf, object, string } from "zod";
2 |
3 | export const createUserSchema = object({
4 | name: string({ required_error: "Name is required" }).min(
5 | 1,
6 | "Name is required"
7 | ),
8 | email: string({ required_error: "Email is required" })
9 | .min(1, "Email is required")
10 | .email("Invalid email"),
11 | photo: string().optional(),
12 | password: string({ required_error: "Password is required" })
13 | .min(1, "Password is required")
14 | .min(8, "Password must be more than 8 characters")
15 | .max(32, "Password must be less than 32 characters"),
16 | passwordConfirm: string({
17 | required_error: "Please confirm your password",
18 | }).min(1, "Please confirm your password"),
19 | }).refine((data) => data.password === data.passwordConfirm, {
20 | path: ["passwordConfirm"],
21 | message: "Passwords do not match",
22 | });
23 |
24 | export const loginUserSchema = object({
25 | email: string({ required_error: "Email is required" })
26 | .min(1, "Email is required")
27 | .email("Invalid email or password"),
28 | password: string({ required_error: "Password is required" }).min(
29 | 1,
30 | "Password is required"
31 | ),
32 | });
33 |
34 | export type LoginUserInput = TypeOf;
35 | export type CreateUserInput = TypeOf;
36 |
--------------------------------------------------------------------------------
/middleware.ts:
--------------------------------------------------------------------------------
1 | export { auth as middleware } from './auth';
2 |
3 | export const config = {
4 | matcher: ['/((?!api|_next/static|_next/image|favicon.ico).*)'],
5 | };
6 |
--------------------------------------------------------------------------------
/next.config.mjs:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | const nextConfig = {
3 | images: {
4 | remotePatterns: [
5 | {
6 | protocol: 'https',
7 | hostname: 'avatars.githubusercontent.com',
8 | },
9 | {
10 | protocol: 'https',
11 | hostname: 'lh3.googleusercontent.com',
12 | },
13 | ],
14 | },
15 | };
16 |
17 | export default nextConfig;
18 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "nextauth-nextjs14-prisma",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next dev",
7 | "build": "next build",
8 | "start": "next start",
9 | "lint": "next lint"
10 | },
11 | "prisma": {
12 | "seed": "ts-node --compiler-options {\"module\":\"CommonJS\"} prisma/seed.ts"
13 | },
14 | "dependencies": {
15 | "@auth/prisma-adapter": "^1.3.3",
16 | "@hookform/resolvers": "^3.3.4",
17 | "@prisma/client": "^5.9.1",
18 | "bcryptjs": "^2.4.3",
19 | "next": "14.1.0",
20 | "next-auth": "5.0.0-beta.5",
21 | "react": "^18",
22 | "react-dom": "^18",
23 | "react-hook-form": "^7.50.1",
24 | "react-hot-toast": "^2.4.1",
25 | "tailwind-merge": "^2.2.1",
26 | "zod": "^3.22.4"
27 | },
28 | "devDependencies": {
29 | "@types/bcryptjs": "^2.4.6",
30 | "@types/node": "^20",
31 | "@types/react": "^18",
32 | "@types/react-dom": "^18",
33 | "autoprefixer": "^10.4.17",
34 | "eslint": "^8",
35 | "eslint-config-next": "14.1.0",
36 | "postcss": "^8",
37 | "prisma": "^5.9.1",
38 | "tailwindcss": "^3.4.1",
39 | "ts-node": "^10.9.2",
40 | "typescript": "^5"
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '6.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | dependencies:
8 | '@auth/prisma-adapter':
9 | specifier: ^1.3.3
10 | version: 1.3.3(@prisma/client@5.9.1)
11 | '@hookform/resolvers':
12 | specifier: ^3.3.4
13 | version: 3.3.4(react-hook-form@7.50.1)
14 | '@prisma/client':
15 | specifier: ^5.9.1
16 | version: 5.9.1(prisma@5.9.1)
17 | bcryptjs:
18 | specifier: ^2.4.3
19 | version: 2.4.3
20 | next:
21 | specifier: 14.1.0
22 | version: 14.1.0(react-dom@18.2.0)(react@18.2.0)
23 | next-auth:
24 | specifier: 5.0.0-beta.5
25 | version: 5.0.0-beta.5(next@14.1.0)(react@18.2.0)
26 | react:
27 | specifier: ^18
28 | version: 18.2.0
29 | react-dom:
30 | specifier: ^18
31 | version: 18.2.0(react@18.2.0)
32 | react-hook-form:
33 | specifier: ^7.50.1
34 | version: 7.50.1(react@18.2.0)
35 | react-hot-toast:
36 | specifier: ^2.4.1
37 | version: 2.4.1(csstype@3.1.3)(react-dom@18.2.0)(react@18.2.0)
38 | tailwind-merge:
39 | specifier: ^2.2.1
40 | version: 2.2.1
41 | zod:
42 | specifier: ^3.22.4
43 | version: 3.22.4
44 |
45 | devDependencies:
46 | '@types/bcryptjs':
47 | specifier: ^2.4.6
48 | version: 2.4.6
49 | '@types/node':
50 | specifier: ^20
51 | version: 20.11.16
52 | '@types/react':
53 | specifier: ^18
54 | version: 18.2.55
55 | '@types/react-dom':
56 | specifier: ^18
57 | version: 18.2.18
58 | autoprefixer:
59 | specifier: ^10.4.17
60 | version: 10.4.17(postcss@8.4.34)
61 | eslint:
62 | specifier: ^8
63 | version: 8.56.0
64 | eslint-config-next:
65 | specifier: 14.1.0
66 | version: 14.1.0(eslint@8.56.0)(typescript@5.3.3)
67 | postcss:
68 | specifier: ^8
69 | version: 8.4.34
70 | prisma:
71 | specifier: ^5.9.1
72 | version: 5.9.1
73 | tailwindcss:
74 | specifier: ^3.4.1
75 | version: 3.4.1(ts-node@10.9.2)
76 | ts-node:
77 | specifier: ^10.9.2
78 | version: 10.9.2(@types/node@20.11.16)(typescript@5.3.3)
79 | typescript:
80 | specifier: ^5
81 | version: 5.3.3
82 |
83 | packages:
84 |
85 | /@aashutoshrathi/word-wrap@1.2.6:
86 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
87 | engines: {node: '>=0.10.0'}
88 | dev: true
89 |
90 | /@alloc/quick-lru@5.2.0:
91 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
92 | engines: {node: '>=10'}
93 | dev: true
94 |
95 | /@auth/core@0.21.0:
96 | resolution: {integrity: sha512-jUWYs8gjy2GvtP9dd/4S9KcwZ660Cm/IkybiAq96/2Ooku9SKk5SUG+UTEwkyLuaQ38ZgfwggfpDOgzsXEcufA==}
97 | peerDependencies:
98 | nodemailer: ^6.8.0
99 | peerDependenciesMeta:
100 | nodemailer:
101 | optional: true
102 | dependencies:
103 | '@panva/hkdf': 1.1.1
104 | '@types/cookie': 0.6.0
105 | cookie: 0.6.0
106 | jose: 5.2.1
107 | oauth4webapi: 2.10.2
108 | preact: 10.11.3
109 | preact-render-to-string: 5.2.3(preact@10.11.3)
110 | dev: false
111 |
112 | /@auth/core@0.26.3:
113 | resolution: {integrity: sha512-Ka6rMjWMdiQCvLW/CnYZxj4Rq2bhQ/ZtU32NLxmtyAaixGb0mRXQ9MxJUBZA7GHovbghdzu55p2Cb54qNlVFzw==}
114 | peerDependencies:
115 | '@simplewebauthn/browser': ^9.0.1
116 | '@simplewebauthn/server': ^9.0.1
117 | nodemailer: ^6.8.0
118 | peerDependenciesMeta:
119 | '@simplewebauthn/browser':
120 | optional: true
121 | '@simplewebauthn/server':
122 | optional: true
123 | nodemailer:
124 | optional: true
125 | dependencies:
126 | '@panva/hkdf': 1.1.1
127 | '@types/cookie': 0.6.0
128 | cookie: 0.6.0
129 | jose: 5.2.1
130 | oauth4webapi: 2.10.2
131 | preact: 10.11.3
132 | preact-render-to-string: 5.2.3(preact@10.11.3)
133 | dev: false
134 |
135 | /@auth/prisma-adapter@1.3.3(@prisma/client@5.9.1):
136 | resolution: {integrity: sha512-KVR4a6ekgVzaX2i62XgWbKThOFOhB22bEVsITbMrA9kDZM4dHOZ9QOBbzpXP/e6hSUxTdO97zy1LZ8pASR1Ybw==}
137 | peerDependencies:
138 | '@prisma/client': '>=2.26.0 || >=3 || >=4 || >=5'
139 | dependencies:
140 | '@auth/core': 0.26.3
141 | '@prisma/client': 5.9.1(prisma@5.9.1)
142 | transitivePeerDependencies:
143 | - '@simplewebauthn/browser'
144 | - '@simplewebauthn/server'
145 | - nodemailer
146 | dev: false
147 |
148 | /@babel/runtime@7.23.9:
149 | resolution: {integrity: sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==}
150 | engines: {node: '>=6.9.0'}
151 | dependencies:
152 | regenerator-runtime: 0.14.1
153 |
154 | /@cspotcode/source-map-support@0.8.1:
155 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
156 | engines: {node: '>=12'}
157 | dependencies:
158 | '@jridgewell/trace-mapping': 0.3.9
159 | dev: true
160 |
161 | /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0):
162 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
163 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
164 | peerDependencies:
165 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
166 | dependencies:
167 | eslint: 8.56.0
168 | eslint-visitor-keys: 3.4.3
169 | dev: true
170 |
171 | /@eslint-community/regexpp@4.10.0:
172 | resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
173 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
174 | dev: true
175 |
176 | /@eslint/eslintrc@2.1.4:
177 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
178 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
179 | dependencies:
180 | ajv: 6.12.6
181 | debug: 4.3.4
182 | espree: 9.6.1
183 | globals: 13.24.0
184 | ignore: 5.3.1
185 | import-fresh: 3.3.0
186 | js-yaml: 4.1.0
187 | minimatch: 3.1.2
188 | strip-json-comments: 3.1.1
189 | transitivePeerDependencies:
190 | - supports-color
191 | dev: true
192 |
193 | /@eslint/js@8.56.0:
194 | resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==}
195 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
196 | dev: true
197 |
198 | /@hookform/resolvers@3.3.4(react-hook-form@7.50.1):
199 | resolution: {integrity: sha512-o5cgpGOuJYrd+iMKvkttOclgwRW86EsWJZZRC23prf0uU2i48Htq4PuT73AVb9ionFyZrwYEITuOFGF+BydEtQ==}
200 | peerDependencies:
201 | react-hook-form: ^7.0.0
202 | dependencies:
203 | react-hook-form: 7.50.1(react@18.2.0)
204 | dev: false
205 |
206 | /@humanwhocodes/config-array@0.11.14:
207 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
208 | engines: {node: '>=10.10.0'}
209 | dependencies:
210 | '@humanwhocodes/object-schema': 2.0.2
211 | debug: 4.3.4
212 | minimatch: 3.1.2
213 | transitivePeerDependencies:
214 | - supports-color
215 | dev: true
216 |
217 | /@humanwhocodes/module-importer@1.0.1:
218 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
219 | engines: {node: '>=12.22'}
220 | dev: true
221 |
222 | /@humanwhocodes/object-schema@2.0.2:
223 | resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
224 | dev: true
225 |
226 | /@isaacs/cliui@8.0.2:
227 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
228 | engines: {node: '>=12'}
229 | dependencies:
230 | string-width: 5.1.2
231 | string-width-cjs: /string-width@4.2.3
232 | strip-ansi: 7.1.0
233 | strip-ansi-cjs: /strip-ansi@6.0.1
234 | wrap-ansi: 8.1.0
235 | wrap-ansi-cjs: /wrap-ansi@7.0.0
236 | dev: true
237 |
238 | /@jridgewell/gen-mapping@0.3.3:
239 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
240 | engines: {node: '>=6.0.0'}
241 | dependencies:
242 | '@jridgewell/set-array': 1.1.2
243 | '@jridgewell/sourcemap-codec': 1.4.15
244 | '@jridgewell/trace-mapping': 0.3.22
245 | dev: true
246 |
247 | /@jridgewell/resolve-uri@3.1.1:
248 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
249 | engines: {node: '>=6.0.0'}
250 | dev: true
251 |
252 | /@jridgewell/set-array@1.1.2:
253 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
254 | engines: {node: '>=6.0.0'}
255 | dev: true
256 |
257 | /@jridgewell/sourcemap-codec@1.4.15:
258 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
259 | dev: true
260 |
261 | /@jridgewell/trace-mapping@0.3.22:
262 | resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==}
263 | dependencies:
264 | '@jridgewell/resolve-uri': 3.1.1
265 | '@jridgewell/sourcemap-codec': 1.4.15
266 | dev: true
267 |
268 | /@jridgewell/trace-mapping@0.3.9:
269 | resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
270 | dependencies:
271 | '@jridgewell/resolve-uri': 3.1.1
272 | '@jridgewell/sourcemap-codec': 1.4.15
273 | dev: true
274 |
275 | /@next/env@14.1.0:
276 | resolution: {integrity: sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==}
277 | dev: false
278 |
279 | /@next/eslint-plugin-next@14.1.0:
280 | resolution: {integrity: sha512-x4FavbNEeXx/baD/zC/SdrvkjSby8nBn8KcCREqk6UuwvwoAPZmaV8TFCAuo/cpovBRTIY67mHhe86MQQm/68Q==}
281 | dependencies:
282 | glob: 10.3.10
283 | dev: true
284 |
285 | /@next/swc-darwin-arm64@14.1.0:
286 | resolution: {integrity: sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==}
287 | engines: {node: '>= 10'}
288 | cpu: [arm64]
289 | os: [darwin]
290 | requiresBuild: true
291 | dev: false
292 | optional: true
293 |
294 | /@next/swc-darwin-x64@14.1.0:
295 | resolution: {integrity: sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==}
296 | engines: {node: '>= 10'}
297 | cpu: [x64]
298 | os: [darwin]
299 | requiresBuild: true
300 | dev: false
301 | optional: true
302 |
303 | /@next/swc-linux-arm64-gnu@14.1.0:
304 | resolution: {integrity: sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==}
305 | engines: {node: '>= 10'}
306 | cpu: [arm64]
307 | os: [linux]
308 | requiresBuild: true
309 | dev: false
310 | optional: true
311 |
312 | /@next/swc-linux-arm64-musl@14.1.0:
313 | resolution: {integrity: sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==}
314 | engines: {node: '>= 10'}
315 | cpu: [arm64]
316 | os: [linux]
317 | requiresBuild: true
318 | dev: false
319 | optional: true
320 |
321 | /@next/swc-linux-x64-gnu@14.1.0:
322 | resolution: {integrity: sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==}
323 | engines: {node: '>= 10'}
324 | cpu: [x64]
325 | os: [linux]
326 | requiresBuild: true
327 | dev: false
328 | optional: true
329 |
330 | /@next/swc-linux-x64-musl@14.1.0:
331 | resolution: {integrity: sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==}
332 | engines: {node: '>= 10'}
333 | cpu: [x64]
334 | os: [linux]
335 | requiresBuild: true
336 | dev: false
337 | optional: true
338 |
339 | /@next/swc-win32-arm64-msvc@14.1.0:
340 | resolution: {integrity: sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==}
341 | engines: {node: '>= 10'}
342 | cpu: [arm64]
343 | os: [win32]
344 | requiresBuild: true
345 | dev: false
346 | optional: true
347 |
348 | /@next/swc-win32-ia32-msvc@14.1.0:
349 | resolution: {integrity: sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==}
350 | engines: {node: '>= 10'}
351 | cpu: [ia32]
352 | os: [win32]
353 | requiresBuild: true
354 | dev: false
355 | optional: true
356 |
357 | /@next/swc-win32-x64-msvc@14.1.0:
358 | resolution: {integrity: sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==}
359 | engines: {node: '>= 10'}
360 | cpu: [x64]
361 | os: [win32]
362 | requiresBuild: true
363 | dev: false
364 | optional: true
365 |
366 | /@nodelib/fs.scandir@2.1.5:
367 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
368 | engines: {node: '>= 8'}
369 | dependencies:
370 | '@nodelib/fs.stat': 2.0.5
371 | run-parallel: 1.2.0
372 | dev: true
373 |
374 | /@nodelib/fs.stat@2.0.5:
375 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
376 | engines: {node: '>= 8'}
377 | dev: true
378 |
379 | /@nodelib/fs.walk@1.2.8:
380 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
381 | engines: {node: '>= 8'}
382 | dependencies:
383 | '@nodelib/fs.scandir': 2.1.5
384 | fastq: 1.17.1
385 | dev: true
386 |
387 | /@panva/hkdf@1.1.1:
388 | resolution: {integrity: sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==}
389 | dev: false
390 |
391 | /@pkgjs/parseargs@0.11.0:
392 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
393 | engines: {node: '>=14'}
394 | requiresBuild: true
395 | dev: true
396 | optional: true
397 |
398 | /@prisma/client@5.9.1(prisma@5.9.1):
399 | resolution: {integrity: sha512-caSOnG4kxcSkhqC/2ShV7rEoWwd3XrftokxJqOCMVvia4NYV/TPtJlS9C2os3Igxw/Qyxumj9GBQzcStzECvtQ==}
400 | engines: {node: '>=16.13'}
401 | requiresBuild: true
402 | peerDependencies:
403 | prisma: '*'
404 | peerDependenciesMeta:
405 | prisma:
406 | optional: true
407 | dependencies:
408 | prisma: 5.9.1
409 | dev: false
410 |
411 | /@prisma/debug@5.9.1:
412 | resolution: {integrity: sha512-yAHFSFCg8KVoL0oRUno3m60GAjsUKYUDkQ+9BA2X2JfVR3kRVSJFc/GpQ2fSORi4pSHZR9orfM4UC9OVXIFFTA==}
413 |
414 | /@prisma/engines-version@5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64:
415 | resolution: {integrity: sha512-HFl7275yF0FWbdcNvcSRbbu9JCBSLMcurYwvWc8WGDnpu7APxQo2ONtZrUggU3WxLxUJ2uBX+0GOFIcJeVeOOQ==}
416 |
417 | /@prisma/engines@5.9.1:
418 | resolution: {integrity: sha512-gkdXmjxQ5jktxWNdDA5aZZ6R8rH74JkoKq6LD5mACSvxd2vbqWeWIOV0Py5wFC8vofOYShbt6XUeCIUmrOzOnQ==}
419 | requiresBuild: true
420 | dependencies:
421 | '@prisma/debug': 5.9.1
422 | '@prisma/engines-version': 5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64
423 | '@prisma/fetch-engine': 5.9.1
424 | '@prisma/get-platform': 5.9.1
425 |
426 | /@prisma/fetch-engine@5.9.1:
427 | resolution: {integrity: sha512-l0goQOMcNVOJs1kAcwqpKq3ylvkD9F04Ioe1oJoCqmz05mw22bNAKKGWuDd3zTUoUZr97va0c/UfLNru+PDmNA==}
428 | dependencies:
429 | '@prisma/debug': 5.9.1
430 | '@prisma/engines-version': 5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64
431 | '@prisma/get-platform': 5.9.1
432 |
433 | /@prisma/get-platform@5.9.1:
434 | resolution: {integrity: sha512-6OQsNxTyhvG+T2Ksr8FPFpuPeL4r9u0JF0OZHUBI/Uy9SS43sPyAIutt4ZEAyqWQt104ERh70EZedkHZKsnNbg==}
435 | dependencies:
436 | '@prisma/debug': 5.9.1
437 |
438 | /@rushstack/eslint-patch@1.7.2:
439 | resolution: {integrity: sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA==}
440 | dev: true
441 |
442 | /@swc/helpers@0.5.2:
443 | resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
444 | dependencies:
445 | tslib: 2.6.2
446 | dev: false
447 |
448 | /@tsconfig/node10@1.0.9:
449 | resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
450 | dev: true
451 |
452 | /@tsconfig/node12@1.0.11:
453 | resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
454 | dev: true
455 |
456 | /@tsconfig/node14@1.0.3:
457 | resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
458 | dev: true
459 |
460 | /@tsconfig/node16@1.0.4:
461 | resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
462 | dev: true
463 |
464 | /@types/bcryptjs@2.4.6:
465 | resolution: {integrity: sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==}
466 | dev: true
467 |
468 | /@types/cookie@0.6.0:
469 | resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
470 | dev: false
471 |
472 | /@types/json5@0.0.29:
473 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
474 | dev: true
475 |
476 | /@types/node@20.11.16:
477 | resolution: {integrity: sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==}
478 | dependencies:
479 | undici-types: 5.26.5
480 | dev: true
481 |
482 | /@types/prop-types@15.7.11:
483 | resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==}
484 | dev: true
485 |
486 | /@types/react-dom@18.2.18:
487 | resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==}
488 | dependencies:
489 | '@types/react': 18.2.55
490 | dev: true
491 |
492 | /@types/react@18.2.55:
493 | resolution: {integrity: sha512-Y2Tz5P4yz23brwm2d7jNon39qoAtMMmalOQv6+fEFt1mT+FcM3D841wDpoUvFXhaYenuROCy3FZYqdTjM7qVyA==}
494 | dependencies:
495 | '@types/prop-types': 15.7.11
496 | '@types/scheduler': 0.16.8
497 | csstype: 3.1.3
498 | dev: true
499 |
500 | /@types/scheduler@0.16.8:
501 | resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==}
502 | dev: true
503 |
504 | /@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3):
505 | resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
506 | engines: {node: ^16.0.0 || >=18.0.0}
507 | peerDependencies:
508 | eslint: ^7.0.0 || ^8.0.0
509 | typescript: '*'
510 | peerDependenciesMeta:
511 | typescript:
512 | optional: true
513 | dependencies:
514 | '@typescript-eslint/scope-manager': 6.21.0
515 | '@typescript-eslint/types': 6.21.0
516 | '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3)
517 | '@typescript-eslint/visitor-keys': 6.21.0
518 | debug: 4.3.4
519 | eslint: 8.56.0
520 | typescript: 5.3.3
521 | transitivePeerDependencies:
522 | - supports-color
523 | dev: true
524 |
525 | /@typescript-eslint/scope-manager@6.21.0:
526 | resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==}
527 | engines: {node: ^16.0.0 || >=18.0.0}
528 | dependencies:
529 | '@typescript-eslint/types': 6.21.0
530 | '@typescript-eslint/visitor-keys': 6.21.0
531 | dev: true
532 |
533 | /@typescript-eslint/types@6.21.0:
534 | resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==}
535 | engines: {node: ^16.0.0 || >=18.0.0}
536 | dev: true
537 |
538 | /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3):
539 | resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
540 | engines: {node: ^16.0.0 || >=18.0.0}
541 | peerDependencies:
542 | typescript: '*'
543 | peerDependenciesMeta:
544 | typescript:
545 | optional: true
546 | dependencies:
547 | '@typescript-eslint/types': 6.21.0
548 | '@typescript-eslint/visitor-keys': 6.21.0
549 | debug: 4.3.4
550 | globby: 11.1.0
551 | is-glob: 4.0.3
552 | minimatch: 9.0.3
553 | semver: 7.6.0
554 | ts-api-utils: 1.2.1(typescript@5.3.3)
555 | typescript: 5.3.3
556 | transitivePeerDependencies:
557 | - supports-color
558 | dev: true
559 |
560 | /@typescript-eslint/visitor-keys@6.21.0:
561 | resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==}
562 | engines: {node: ^16.0.0 || >=18.0.0}
563 | dependencies:
564 | '@typescript-eslint/types': 6.21.0
565 | eslint-visitor-keys: 3.4.3
566 | dev: true
567 |
568 | /@ungap/structured-clone@1.2.0:
569 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
570 | dev: true
571 |
572 | /acorn-jsx@5.3.2(acorn@8.11.3):
573 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
574 | peerDependencies:
575 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
576 | dependencies:
577 | acorn: 8.11.3
578 | dev: true
579 |
580 | /acorn-walk@8.3.2:
581 | resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
582 | engines: {node: '>=0.4.0'}
583 | dev: true
584 |
585 | /acorn@8.11.3:
586 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
587 | engines: {node: '>=0.4.0'}
588 | hasBin: true
589 | dev: true
590 |
591 | /ajv@6.12.6:
592 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
593 | dependencies:
594 | fast-deep-equal: 3.1.3
595 | fast-json-stable-stringify: 2.1.0
596 | json-schema-traverse: 0.4.1
597 | uri-js: 4.4.1
598 | dev: true
599 |
600 | /ansi-regex@5.0.1:
601 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
602 | engines: {node: '>=8'}
603 | dev: true
604 |
605 | /ansi-regex@6.0.1:
606 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
607 | engines: {node: '>=12'}
608 | dev: true
609 |
610 | /ansi-styles@4.3.0:
611 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
612 | engines: {node: '>=8'}
613 | dependencies:
614 | color-convert: 2.0.1
615 | dev: true
616 |
617 | /ansi-styles@6.2.1:
618 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
619 | engines: {node: '>=12'}
620 | dev: true
621 |
622 | /any-promise@1.3.0:
623 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
624 | dev: true
625 |
626 | /anymatch@3.1.3:
627 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
628 | engines: {node: '>= 8'}
629 | dependencies:
630 | normalize-path: 3.0.0
631 | picomatch: 2.3.1
632 | dev: true
633 |
634 | /arg@4.1.3:
635 | resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
636 | dev: true
637 |
638 | /arg@5.0.2:
639 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
640 | dev: true
641 |
642 | /argparse@2.0.1:
643 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
644 | dev: true
645 |
646 | /aria-query@5.3.0:
647 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
648 | dependencies:
649 | dequal: 2.0.3
650 | dev: true
651 |
652 | /array-buffer-byte-length@1.0.1:
653 | resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
654 | engines: {node: '>= 0.4'}
655 | dependencies:
656 | call-bind: 1.0.6
657 | is-array-buffer: 3.0.4
658 | dev: true
659 |
660 | /array-includes@3.1.7:
661 | resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==}
662 | engines: {node: '>= 0.4'}
663 | dependencies:
664 | call-bind: 1.0.6
665 | define-properties: 1.2.1
666 | es-abstract: 1.22.3
667 | get-intrinsic: 1.2.4
668 | is-string: 1.0.7
669 | dev: true
670 |
671 | /array-union@2.1.0:
672 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
673 | engines: {node: '>=8'}
674 | dev: true
675 |
676 | /array.prototype.filter@1.0.3:
677 | resolution: {integrity: sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==}
678 | engines: {node: '>= 0.4'}
679 | dependencies:
680 | call-bind: 1.0.6
681 | define-properties: 1.2.1
682 | es-abstract: 1.22.3
683 | es-array-method-boxes-properly: 1.0.0
684 | is-string: 1.0.7
685 | dev: true
686 |
687 | /array.prototype.findlastindex@1.2.4:
688 | resolution: {integrity: sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==}
689 | engines: {node: '>= 0.4'}
690 | dependencies:
691 | call-bind: 1.0.6
692 | define-properties: 1.2.1
693 | es-abstract: 1.22.3
694 | es-errors: 1.3.0
695 | es-shim-unscopables: 1.0.2
696 | dev: true
697 |
698 | /array.prototype.flat@1.3.2:
699 | resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
700 | engines: {node: '>= 0.4'}
701 | dependencies:
702 | call-bind: 1.0.6
703 | define-properties: 1.2.1
704 | es-abstract: 1.22.3
705 | es-shim-unscopables: 1.0.2
706 | dev: true
707 |
708 | /array.prototype.flatmap@1.3.2:
709 | resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
710 | engines: {node: '>= 0.4'}
711 | dependencies:
712 | call-bind: 1.0.6
713 | define-properties: 1.2.1
714 | es-abstract: 1.22.3
715 | es-shim-unscopables: 1.0.2
716 | dev: true
717 |
718 | /array.prototype.tosorted@1.1.3:
719 | resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==}
720 | dependencies:
721 | call-bind: 1.0.6
722 | define-properties: 1.2.1
723 | es-abstract: 1.22.3
724 | es-errors: 1.3.0
725 | es-shim-unscopables: 1.0.2
726 | dev: true
727 |
728 | /arraybuffer.prototype.slice@1.0.3:
729 | resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
730 | engines: {node: '>= 0.4'}
731 | dependencies:
732 | array-buffer-byte-length: 1.0.1
733 | call-bind: 1.0.6
734 | define-properties: 1.2.1
735 | es-abstract: 1.22.3
736 | es-errors: 1.3.0
737 | get-intrinsic: 1.2.4
738 | is-array-buffer: 3.0.4
739 | is-shared-array-buffer: 1.0.2
740 | dev: true
741 |
742 | /ast-types-flow@0.0.8:
743 | resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
744 | dev: true
745 |
746 | /asynciterator.prototype@1.0.0:
747 | resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==}
748 | dependencies:
749 | has-symbols: 1.0.3
750 | dev: true
751 |
752 | /autoprefixer@10.4.17(postcss@8.4.34):
753 | resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==}
754 | engines: {node: ^10 || ^12 || >=14}
755 | hasBin: true
756 | peerDependencies:
757 | postcss: ^8.1.0
758 | dependencies:
759 | browserslist: 4.22.3
760 | caniuse-lite: 1.0.30001585
761 | fraction.js: 4.3.7
762 | normalize-range: 0.1.2
763 | picocolors: 1.0.0
764 | postcss: 8.4.34
765 | postcss-value-parser: 4.2.0
766 | dev: true
767 |
768 | /available-typed-arrays@1.0.6:
769 | resolution: {integrity: sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==}
770 | engines: {node: '>= 0.4'}
771 | dev: true
772 |
773 | /axe-core@4.7.0:
774 | resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
775 | engines: {node: '>=4'}
776 | dev: true
777 |
778 | /axobject-query@3.2.1:
779 | resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
780 | dependencies:
781 | dequal: 2.0.3
782 | dev: true
783 |
784 | /balanced-match@1.0.2:
785 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
786 | dev: true
787 |
788 | /bcryptjs@2.4.3:
789 | resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==}
790 | dev: false
791 |
792 | /binary-extensions@2.2.0:
793 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
794 | engines: {node: '>=8'}
795 | dev: true
796 |
797 | /brace-expansion@1.1.11:
798 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
799 | dependencies:
800 | balanced-match: 1.0.2
801 | concat-map: 0.0.1
802 | dev: true
803 |
804 | /brace-expansion@2.0.1:
805 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
806 | dependencies:
807 | balanced-match: 1.0.2
808 | dev: true
809 |
810 | /braces@3.0.2:
811 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
812 | engines: {node: '>=8'}
813 | dependencies:
814 | fill-range: 7.0.1
815 | dev: true
816 |
817 | /browserslist@4.22.3:
818 | resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==}
819 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
820 | hasBin: true
821 | dependencies:
822 | caniuse-lite: 1.0.30001585
823 | electron-to-chromium: 1.4.659
824 | node-releases: 2.0.14
825 | update-browserslist-db: 1.0.13(browserslist@4.22.3)
826 | dev: true
827 |
828 | /busboy@1.6.0:
829 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
830 | engines: {node: '>=10.16.0'}
831 | dependencies:
832 | streamsearch: 1.1.0
833 | dev: false
834 |
835 | /call-bind@1.0.6:
836 | resolution: {integrity: sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==}
837 | engines: {node: '>= 0.4'}
838 | dependencies:
839 | es-errors: 1.3.0
840 | function-bind: 1.1.2
841 | get-intrinsic: 1.2.4
842 | set-function-length: 1.2.1
843 | dev: true
844 |
845 | /callsites@3.1.0:
846 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
847 | engines: {node: '>=6'}
848 | dev: true
849 |
850 | /camelcase-css@2.0.1:
851 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
852 | engines: {node: '>= 6'}
853 | dev: true
854 |
855 | /caniuse-lite@1.0.30001585:
856 | resolution: {integrity: sha512-yr2BWR1yLXQ8fMpdS/4ZZXpseBgE7o4g41x3a6AJOqZuOi+iE/WdJYAuZ6Y95i4Ohd2Y+9MzIWRR+uGABH4s3Q==}
857 |
858 | /chalk@4.1.2:
859 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
860 | engines: {node: '>=10'}
861 | dependencies:
862 | ansi-styles: 4.3.0
863 | supports-color: 7.2.0
864 | dev: true
865 |
866 | /chokidar@3.6.0:
867 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
868 | engines: {node: '>= 8.10.0'}
869 | dependencies:
870 | anymatch: 3.1.3
871 | braces: 3.0.2
872 | glob-parent: 5.1.2
873 | is-binary-path: 2.1.0
874 | is-glob: 4.0.3
875 | normalize-path: 3.0.0
876 | readdirp: 3.6.0
877 | optionalDependencies:
878 | fsevents: 2.3.3
879 | dev: true
880 |
881 | /client-only@0.0.1:
882 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
883 | dev: false
884 |
885 | /color-convert@2.0.1:
886 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
887 | engines: {node: '>=7.0.0'}
888 | dependencies:
889 | color-name: 1.1.4
890 | dev: true
891 |
892 | /color-name@1.1.4:
893 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
894 | dev: true
895 |
896 | /commander@4.1.1:
897 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
898 | engines: {node: '>= 6'}
899 | dev: true
900 |
901 | /concat-map@0.0.1:
902 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
903 | dev: true
904 |
905 | /cookie@0.6.0:
906 | resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
907 | engines: {node: '>= 0.6'}
908 | dev: false
909 |
910 | /create-require@1.1.1:
911 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
912 | dev: true
913 |
914 | /cross-spawn@7.0.3:
915 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
916 | engines: {node: '>= 8'}
917 | dependencies:
918 | path-key: 3.1.1
919 | shebang-command: 2.0.0
920 | which: 2.0.2
921 | dev: true
922 |
923 | /cssesc@3.0.0:
924 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
925 | engines: {node: '>=4'}
926 | hasBin: true
927 | dev: true
928 |
929 | /csstype@3.1.3:
930 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
931 |
932 | /damerau-levenshtein@1.0.8:
933 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
934 | dev: true
935 |
936 | /debug@3.2.7:
937 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
938 | peerDependencies:
939 | supports-color: '*'
940 | peerDependenciesMeta:
941 | supports-color:
942 | optional: true
943 | dependencies:
944 | ms: 2.1.3
945 | dev: true
946 |
947 | /debug@4.3.4:
948 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
949 | engines: {node: '>=6.0'}
950 | peerDependencies:
951 | supports-color: '*'
952 | peerDependenciesMeta:
953 | supports-color:
954 | optional: true
955 | dependencies:
956 | ms: 2.1.2
957 | dev: true
958 |
959 | /deep-is@0.1.4:
960 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
961 | dev: true
962 |
963 | /define-data-property@1.1.2:
964 | resolution: {integrity: sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==}
965 | engines: {node: '>= 0.4'}
966 | dependencies:
967 | es-errors: 1.3.0
968 | get-intrinsic: 1.2.4
969 | gopd: 1.0.1
970 | has-property-descriptors: 1.0.1
971 | dev: true
972 |
973 | /define-properties@1.2.1:
974 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
975 | engines: {node: '>= 0.4'}
976 | dependencies:
977 | define-data-property: 1.1.2
978 | has-property-descriptors: 1.0.1
979 | object-keys: 1.1.1
980 | dev: true
981 |
982 | /dequal@2.0.3:
983 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
984 | engines: {node: '>=6'}
985 | dev: true
986 |
987 | /didyoumean@1.2.2:
988 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
989 | dev: true
990 |
991 | /diff@4.0.2:
992 | resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
993 | engines: {node: '>=0.3.1'}
994 | dev: true
995 |
996 | /dir-glob@3.0.1:
997 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
998 | engines: {node: '>=8'}
999 | dependencies:
1000 | path-type: 4.0.0
1001 | dev: true
1002 |
1003 | /dlv@1.1.3:
1004 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
1005 | dev: true
1006 |
1007 | /doctrine@2.1.0:
1008 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
1009 | engines: {node: '>=0.10.0'}
1010 | dependencies:
1011 | esutils: 2.0.3
1012 | dev: true
1013 |
1014 | /doctrine@3.0.0:
1015 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
1016 | engines: {node: '>=6.0.0'}
1017 | dependencies:
1018 | esutils: 2.0.3
1019 | dev: true
1020 |
1021 | /eastasianwidth@0.2.0:
1022 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
1023 | dev: true
1024 |
1025 | /electron-to-chromium@1.4.659:
1026 | resolution: {integrity: sha512-sRJ3nV3HowrYpBtPF9bASQV7OW49IgZC01Xiq43WfSE3RTCkK0/JidoCmR73Hyc1mN+l/H4Yqx0eNiomvExFZg==}
1027 | dev: true
1028 |
1029 | /emoji-regex@8.0.0:
1030 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
1031 | dev: true
1032 |
1033 | /emoji-regex@9.2.2:
1034 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
1035 | dev: true
1036 |
1037 | /enhanced-resolve@5.15.0:
1038 | resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==}
1039 | engines: {node: '>=10.13.0'}
1040 | dependencies:
1041 | graceful-fs: 4.2.11
1042 | tapable: 2.2.1
1043 | dev: true
1044 |
1045 | /es-abstract@1.22.3:
1046 | resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==}
1047 | engines: {node: '>= 0.4'}
1048 | dependencies:
1049 | array-buffer-byte-length: 1.0.1
1050 | arraybuffer.prototype.slice: 1.0.3
1051 | available-typed-arrays: 1.0.6
1052 | call-bind: 1.0.6
1053 | es-set-tostringtag: 2.0.2
1054 | es-to-primitive: 1.2.1
1055 | function.prototype.name: 1.1.6
1056 | get-intrinsic: 1.2.4
1057 | get-symbol-description: 1.0.1
1058 | globalthis: 1.0.3
1059 | gopd: 1.0.1
1060 | has-property-descriptors: 1.0.1
1061 | has-proto: 1.0.1
1062 | has-symbols: 1.0.3
1063 | hasown: 2.0.0
1064 | internal-slot: 1.0.7
1065 | is-array-buffer: 3.0.4
1066 | is-callable: 1.2.7
1067 | is-negative-zero: 2.0.2
1068 | is-regex: 1.1.4
1069 | is-shared-array-buffer: 1.0.2
1070 | is-string: 1.0.7
1071 | is-typed-array: 1.1.13
1072 | is-weakref: 1.0.2
1073 | object-inspect: 1.13.1
1074 | object-keys: 1.1.1
1075 | object.assign: 4.1.5
1076 | regexp.prototype.flags: 1.5.1
1077 | safe-array-concat: 1.1.0
1078 | safe-regex-test: 1.0.3
1079 | string.prototype.trim: 1.2.8
1080 | string.prototype.trimend: 1.0.7
1081 | string.prototype.trimstart: 1.0.7
1082 | typed-array-buffer: 1.0.1
1083 | typed-array-byte-length: 1.0.0
1084 | typed-array-byte-offset: 1.0.0
1085 | typed-array-length: 1.0.4
1086 | unbox-primitive: 1.0.2
1087 | which-typed-array: 1.1.14
1088 | dev: true
1089 |
1090 | /es-array-method-boxes-properly@1.0.0:
1091 | resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==}
1092 | dev: true
1093 |
1094 | /es-errors@1.3.0:
1095 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
1096 | engines: {node: '>= 0.4'}
1097 | dev: true
1098 |
1099 | /es-iterator-helpers@1.0.15:
1100 | resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==}
1101 | dependencies:
1102 | asynciterator.prototype: 1.0.0
1103 | call-bind: 1.0.6
1104 | define-properties: 1.2.1
1105 | es-abstract: 1.22.3
1106 | es-set-tostringtag: 2.0.2
1107 | function-bind: 1.1.2
1108 | get-intrinsic: 1.2.4
1109 | globalthis: 1.0.3
1110 | has-property-descriptors: 1.0.1
1111 | has-proto: 1.0.1
1112 | has-symbols: 1.0.3
1113 | internal-slot: 1.0.7
1114 | iterator.prototype: 1.1.2
1115 | safe-array-concat: 1.1.0
1116 | dev: true
1117 |
1118 | /es-set-tostringtag@2.0.2:
1119 | resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==}
1120 | engines: {node: '>= 0.4'}
1121 | dependencies:
1122 | get-intrinsic: 1.2.4
1123 | has-tostringtag: 1.0.2
1124 | hasown: 2.0.0
1125 | dev: true
1126 |
1127 | /es-shim-unscopables@1.0.2:
1128 | resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
1129 | dependencies:
1130 | hasown: 2.0.0
1131 | dev: true
1132 |
1133 | /es-to-primitive@1.2.1:
1134 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
1135 | engines: {node: '>= 0.4'}
1136 | dependencies:
1137 | is-callable: 1.2.7
1138 | is-date-object: 1.0.5
1139 | is-symbol: 1.0.4
1140 | dev: true
1141 |
1142 | /escalade@3.1.2:
1143 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
1144 | engines: {node: '>=6'}
1145 | dev: true
1146 |
1147 | /escape-string-regexp@4.0.0:
1148 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
1149 | engines: {node: '>=10'}
1150 | dev: true
1151 |
1152 | /eslint-config-next@14.1.0(eslint@8.56.0)(typescript@5.3.3):
1153 | resolution: {integrity: sha512-SBX2ed7DoRFXC6CQSLc/SbLY9Ut6HxNB2wPTcoIWjUMd7aF7O/SIE7111L8FdZ9TXsNV4pulUDnfthpyPtbFUg==}
1154 | peerDependencies:
1155 | eslint: ^7.23.0 || ^8.0.0
1156 | typescript: '>=3.3.1'
1157 | peerDependenciesMeta:
1158 | typescript:
1159 | optional: true
1160 | dependencies:
1161 | '@next/eslint-plugin-next': 14.1.0
1162 | '@rushstack/eslint-patch': 1.7.2
1163 | '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3)
1164 | eslint: 8.56.0
1165 | eslint-import-resolver-node: 0.3.9
1166 | eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0)
1167 | eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
1168 | eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0)
1169 | eslint-plugin-react: 7.33.2(eslint@8.56.0)
1170 | eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0)
1171 | typescript: 5.3.3
1172 | transitivePeerDependencies:
1173 | - eslint-import-resolver-webpack
1174 | - supports-color
1175 | dev: true
1176 |
1177 | /eslint-import-resolver-node@0.3.9:
1178 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
1179 | dependencies:
1180 | debug: 3.2.7
1181 | is-core-module: 2.13.1
1182 | resolve: 1.22.8
1183 | transitivePeerDependencies:
1184 | - supports-color
1185 | dev: true
1186 |
1187 | /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0):
1188 | resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
1189 | engines: {node: ^14.18.0 || >=16.0.0}
1190 | peerDependencies:
1191 | eslint: '*'
1192 | eslint-plugin-import: '*'
1193 | dependencies:
1194 | debug: 4.3.4
1195 | enhanced-resolve: 5.15.0
1196 | eslint: 8.56.0
1197 | eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
1198 | eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
1199 | fast-glob: 3.3.2
1200 | get-tsconfig: 4.7.2
1201 | is-core-module: 2.13.1
1202 | is-glob: 4.0.3
1203 | transitivePeerDependencies:
1204 | - '@typescript-eslint/parser'
1205 | - eslint-import-resolver-node
1206 | - eslint-import-resolver-webpack
1207 | - supports-color
1208 | dev: true
1209 |
1210 | /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0):
1211 | resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
1212 | engines: {node: '>=4'}
1213 | peerDependencies:
1214 | '@typescript-eslint/parser': '*'
1215 | eslint: '*'
1216 | eslint-import-resolver-node: '*'
1217 | eslint-import-resolver-typescript: '*'
1218 | eslint-import-resolver-webpack: '*'
1219 | peerDependenciesMeta:
1220 | '@typescript-eslint/parser':
1221 | optional: true
1222 | eslint:
1223 | optional: true
1224 | eslint-import-resolver-node:
1225 | optional: true
1226 | eslint-import-resolver-typescript:
1227 | optional: true
1228 | eslint-import-resolver-webpack:
1229 | optional: true
1230 | dependencies:
1231 | '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3)
1232 | debug: 3.2.7
1233 | eslint: 8.56.0
1234 | eslint-import-resolver-node: 0.3.9
1235 | eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0)
1236 | transitivePeerDependencies:
1237 | - supports-color
1238 | dev: true
1239 |
1240 | /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0):
1241 | resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
1242 | engines: {node: '>=4'}
1243 | peerDependencies:
1244 | '@typescript-eslint/parser': '*'
1245 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
1246 | peerDependenciesMeta:
1247 | '@typescript-eslint/parser':
1248 | optional: true
1249 | dependencies:
1250 | '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3)
1251 | array-includes: 3.1.7
1252 | array.prototype.findlastindex: 1.2.4
1253 | array.prototype.flat: 1.3.2
1254 | array.prototype.flatmap: 1.3.2
1255 | debug: 3.2.7
1256 | doctrine: 2.1.0
1257 | eslint: 8.56.0
1258 | eslint-import-resolver-node: 0.3.9
1259 | eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
1260 | hasown: 2.0.0
1261 | is-core-module: 2.13.1
1262 | is-glob: 4.0.3
1263 | minimatch: 3.1.2
1264 | object.fromentries: 2.0.7
1265 | object.groupby: 1.0.2
1266 | object.values: 1.1.7
1267 | semver: 6.3.1
1268 | tsconfig-paths: 3.15.0
1269 | transitivePeerDependencies:
1270 | - eslint-import-resolver-typescript
1271 | - eslint-import-resolver-webpack
1272 | - supports-color
1273 | dev: true
1274 |
1275 | /eslint-plugin-jsx-a11y@6.8.0(eslint@8.56.0):
1276 | resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
1277 | engines: {node: '>=4.0'}
1278 | peerDependencies:
1279 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
1280 | dependencies:
1281 | '@babel/runtime': 7.23.9
1282 | aria-query: 5.3.0
1283 | array-includes: 3.1.7
1284 | array.prototype.flatmap: 1.3.2
1285 | ast-types-flow: 0.0.8
1286 | axe-core: 4.7.0
1287 | axobject-query: 3.2.1
1288 | damerau-levenshtein: 1.0.8
1289 | emoji-regex: 9.2.2
1290 | es-iterator-helpers: 1.0.15
1291 | eslint: 8.56.0
1292 | hasown: 2.0.0
1293 | jsx-ast-utils: 3.3.5
1294 | language-tags: 1.0.9
1295 | minimatch: 3.1.2
1296 | object.entries: 1.1.7
1297 | object.fromentries: 2.0.7
1298 | dev: true
1299 |
1300 | /eslint-plugin-react-hooks@4.6.0(eslint@8.56.0):
1301 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
1302 | engines: {node: '>=10'}
1303 | peerDependencies:
1304 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
1305 | dependencies:
1306 | eslint: 8.56.0
1307 | dev: true
1308 |
1309 | /eslint-plugin-react@7.33.2(eslint@8.56.0):
1310 | resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==}
1311 | engines: {node: '>=4'}
1312 | peerDependencies:
1313 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
1314 | dependencies:
1315 | array-includes: 3.1.7
1316 | array.prototype.flatmap: 1.3.2
1317 | array.prototype.tosorted: 1.1.3
1318 | doctrine: 2.1.0
1319 | es-iterator-helpers: 1.0.15
1320 | eslint: 8.56.0
1321 | estraverse: 5.3.0
1322 | jsx-ast-utils: 3.3.5
1323 | minimatch: 3.1.2
1324 | object.entries: 1.1.7
1325 | object.fromentries: 2.0.7
1326 | object.hasown: 1.1.3
1327 | object.values: 1.1.7
1328 | prop-types: 15.8.1
1329 | resolve: 2.0.0-next.5
1330 | semver: 6.3.1
1331 | string.prototype.matchall: 4.0.10
1332 | dev: true
1333 |
1334 | /eslint-scope@7.2.2:
1335 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
1336 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1337 | dependencies:
1338 | esrecurse: 4.3.0
1339 | estraverse: 5.3.0
1340 | dev: true
1341 |
1342 | /eslint-visitor-keys@3.4.3:
1343 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
1344 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1345 | dev: true
1346 |
1347 | /eslint@8.56.0:
1348 | resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==}
1349 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1350 | hasBin: true
1351 | dependencies:
1352 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
1353 | '@eslint-community/regexpp': 4.10.0
1354 | '@eslint/eslintrc': 2.1.4
1355 | '@eslint/js': 8.56.0
1356 | '@humanwhocodes/config-array': 0.11.14
1357 | '@humanwhocodes/module-importer': 1.0.1
1358 | '@nodelib/fs.walk': 1.2.8
1359 | '@ungap/structured-clone': 1.2.0
1360 | ajv: 6.12.6
1361 | chalk: 4.1.2
1362 | cross-spawn: 7.0.3
1363 | debug: 4.3.4
1364 | doctrine: 3.0.0
1365 | escape-string-regexp: 4.0.0
1366 | eslint-scope: 7.2.2
1367 | eslint-visitor-keys: 3.4.3
1368 | espree: 9.6.1
1369 | esquery: 1.5.0
1370 | esutils: 2.0.3
1371 | fast-deep-equal: 3.1.3
1372 | file-entry-cache: 6.0.1
1373 | find-up: 5.0.0
1374 | glob-parent: 6.0.2
1375 | globals: 13.24.0
1376 | graphemer: 1.4.0
1377 | ignore: 5.3.1
1378 | imurmurhash: 0.1.4
1379 | is-glob: 4.0.3
1380 | is-path-inside: 3.0.3
1381 | js-yaml: 4.1.0
1382 | json-stable-stringify-without-jsonify: 1.0.1
1383 | levn: 0.4.1
1384 | lodash.merge: 4.6.2
1385 | minimatch: 3.1.2
1386 | natural-compare: 1.4.0
1387 | optionator: 0.9.3
1388 | strip-ansi: 6.0.1
1389 | text-table: 0.2.0
1390 | transitivePeerDependencies:
1391 | - supports-color
1392 | dev: true
1393 |
1394 | /espree@9.6.1:
1395 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
1396 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1397 | dependencies:
1398 | acorn: 8.11.3
1399 | acorn-jsx: 5.3.2(acorn@8.11.3)
1400 | eslint-visitor-keys: 3.4.3
1401 | dev: true
1402 |
1403 | /esquery@1.5.0:
1404 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
1405 | engines: {node: '>=0.10'}
1406 | dependencies:
1407 | estraverse: 5.3.0
1408 | dev: true
1409 |
1410 | /esrecurse@4.3.0:
1411 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
1412 | engines: {node: '>=4.0'}
1413 | dependencies:
1414 | estraverse: 5.3.0
1415 | dev: true
1416 |
1417 | /estraverse@5.3.0:
1418 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
1419 | engines: {node: '>=4.0'}
1420 | dev: true
1421 |
1422 | /esutils@2.0.3:
1423 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
1424 | engines: {node: '>=0.10.0'}
1425 | dev: true
1426 |
1427 | /fast-deep-equal@3.1.3:
1428 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
1429 | dev: true
1430 |
1431 | /fast-glob@3.3.2:
1432 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
1433 | engines: {node: '>=8.6.0'}
1434 | dependencies:
1435 | '@nodelib/fs.stat': 2.0.5
1436 | '@nodelib/fs.walk': 1.2.8
1437 | glob-parent: 5.1.2
1438 | merge2: 1.4.1
1439 | micromatch: 4.0.5
1440 | dev: true
1441 |
1442 | /fast-json-stable-stringify@2.1.0:
1443 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
1444 | dev: true
1445 |
1446 | /fast-levenshtein@2.0.6:
1447 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
1448 | dev: true
1449 |
1450 | /fastq@1.17.1:
1451 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
1452 | dependencies:
1453 | reusify: 1.0.4
1454 | dev: true
1455 |
1456 | /file-entry-cache@6.0.1:
1457 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
1458 | engines: {node: ^10.12.0 || >=12.0.0}
1459 | dependencies:
1460 | flat-cache: 3.2.0
1461 | dev: true
1462 |
1463 | /fill-range@7.0.1:
1464 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
1465 | engines: {node: '>=8'}
1466 | dependencies:
1467 | to-regex-range: 5.0.1
1468 | dev: true
1469 |
1470 | /find-up@5.0.0:
1471 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
1472 | engines: {node: '>=10'}
1473 | dependencies:
1474 | locate-path: 6.0.0
1475 | path-exists: 4.0.0
1476 | dev: true
1477 |
1478 | /flat-cache@3.2.0:
1479 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
1480 | engines: {node: ^10.12.0 || >=12.0.0}
1481 | dependencies:
1482 | flatted: 3.2.9
1483 | keyv: 4.5.4
1484 | rimraf: 3.0.2
1485 | dev: true
1486 |
1487 | /flatted@3.2.9:
1488 | resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
1489 | dev: true
1490 |
1491 | /for-each@0.3.3:
1492 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
1493 | dependencies:
1494 | is-callable: 1.2.7
1495 | dev: true
1496 |
1497 | /foreground-child@3.1.1:
1498 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
1499 | engines: {node: '>=14'}
1500 | dependencies:
1501 | cross-spawn: 7.0.3
1502 | signal-exit: 4.1.0
1503 | dev: true
1504 |
1505 | /fraction.js@4.3.7:
1506 | resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
1507 | dev: true
1508 |
1509 | /fs.realpath@1.0.0:
1510 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
1511 | dev: true
1512 |
1513 | /fsevents@2.3.3:
1514 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
1515 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1516 | os: [darwin]
1517 | requiresBuild: true
1518 | dev: true
1519 | optional: true
1520 |
1521 | /function-bind@1.1.2:
1522 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
1523 | dev: true
1524 |
1525 | /function.prototype.name@1.1.6:
1526 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
1527 | engines: {node: '>= 0.4'}
1528 | dependencies:
1529 | call-bind: 1.0.6
1530 | define-properties: 1.2.1
1531 | es-abstract: 1.22.3
1532 | functions-have-names: 1.2.3
1533 | dev: true
1534 |
1535 | /functions-have-names@1.2.3:
1536 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
1537 | dev: true
1538 |
1539 | /get-intrinsic@1.2.4:
1540 | resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
1541 | engines: {node: '>= 0.4'}
1542 | dependencies:
1543 | es-errors: 1.3.0
1544 | function-bind: 1.1.2
1545 | has-proto: 1.0.1
1546 | has-symbols: 1.0.3
1547 | hasown: 2.0.0
1548 | dev: true
1549 |
1550 | /get-symbol-description@1.0.1:
1551 | resolution: {integrity: sha512-KmuibvwbWaM4BHcBRYwJfZ1JxyJeBwB8ct9YYu67SvYdbEIlcQ2e56dHxfbobqW38GXo8/zDFqJeGtHiVbWyQw==}
1552 | engines: {node: '>= 0.4'}
1553 | dependencies:
1554 | call-bind: 1.0.6
1555 | es-errors: 1.3.0
1556 | dev: true
1557 |
1558 | /get-tsconfig@4.7.2:
1559 | resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==}
1560 | dependencies:
1561 | resolve-pkg-maps: 1.0.0
1562 | dev: true
1563 |
1564 | /glob-parent@5.1.2:
1565 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1566 | engines: {node: '>= 6'}
1567 | dependencies:
1568 | is-glob: 4.0.3
1569 | dev: true
1570 |
1571 | /glob-parent@6.0.2:
1572 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
1573 | engines: {node: '>=10.13.0'}
1574 | dependencies:
1575 | is-glob: 4.0.3
1576 | dev: true
1577 |
1578 | /glob@10.3.10:
1579 | resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
1580 | engines: {node: '>=16 || 14 >=14.17'}
1581 | hasBin: true
1582 | dependencies:
1583 | foreground-child: 3.1.1
1584 | jackspeak: 2.3.6
1585 | minimatch: 9.0.3
1586 | minipass: 7.0.4
1587 | path-scurry: 1.10.1
1588 | dev: true
1589 |
1590 | /glob@7.2.3:
1591 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
1592 | dependencies:
1593 | fs.realpath: 1.0.0
1594 | inflight: 1.0.6
1595 | inherits: 2.0.4
1596 | minimatch: 3.1.2
1597 | once: 1.4.0
1598 | path-is-absolute: 1.0.1
1599 | dev: true
1600 |
1601 | /globals@13.24.0:
1602 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
1603 | engines: {node: '>=8'}
1604 | dependencies:
1605 | type-fest: 0.20.2
1606 | dev: true
1607 |
1608 | /globalthis@1.0.3:
1609 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
1610 | engines: {node: '>= 0.4'}
1611 | dependencies:
1612 | define-properties: 1.2.1
1613 | dev: true
1614 |
1615 | /globby@11.1.0:
1616 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
1617 | engines: {node: '>=10'}
1618 | dependencies:
1619 | array-union: 2.1.0
1620 | dir-glob: 3.0.1
1621 | fast-glob: 3.3.2
1622 | ignore: 5.3.1
1623 | merge2: 1.4.1
1624 | slash: 3.0.0
1625 | dev: true
1626 |
1627 | /goober@2.1.14(csstype@3.1.3):
1628 | resolution: {integrity: sha512-4UpC0NdGyAFqLNPnhCT2iHpza2q+RAY3GV85a/mRPdzyPQMsj0KmMMuetdIkzWRbJ+Hgau1EZztq8ImmiMGhsg==}
1629 | peerDependencies:
1630 | csstype: ^3.0.10
1631 | dependencies:
1632 | csstype: 3.1.3
1633 | dev: false
1634 |
1635 | /gopd@1.0.1:
1636 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
1637 | dependencies:
1638 | get-intrinsic: 1.2.4
1639 | dev: true
1640 |
1641 | /graceful-fs@4.2.11:
1642 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
1643 |
1644 | /graphemer@1.4.0:
1645 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
1646 | dev: true
1647 |
1648 | /has-bigints@1.0.2:
1649 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
1650 | dev: true
1651 |
1652 | /has-flag@4.0.0:
1653 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1654 | engines: {node: '>=8'}
1655 | dev: true
1656 |
1657 | /has-property-descriptors@1.0.1:
1658 | resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==}
1659 | dependencies:
1660 | get-intrinsic: 1.2.4
1661 | dev: true
1662 |
1663 | /has-proto@1.0.1:
1664 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
1665 | engines: {node: '>= 0.4'}
1666 | dev: true
1667 |
1668 | /has-symbols@1.0.3:
1669 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
1670 | engines: {node: '>= 0.4'}
1671 | dev: true
1672 |
1673 | /has-tostringtag@1.0.2:
1674 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
1675 | engines: {node: '>= 0.4'}
1676 | dependencies:
1677 | has-symbols: 1.0.3
1678 | dev: true
1679 |
1680 | /hasown@2.0.0:
1681 | resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
1682 | engines: {node: '>= 0.4'}
1683 | dependencies:
1684 | function-bind: 1.1.2
1685 | dev: true
1686 |
1687 | /ignore@5.3.1:
1688 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
1689 | engines: {node: '>= 4'}
1690 | dev: true
1691 |
1692 | /import-fresh@3.3.0:
1693 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
1694 | engines: {node: '>=6'}
1695 | dependencies:
1696 | parent-module: 1.0.1
1697 | resolve-from: 4.0.0
1698 | dev: true
1699 |
1700 | /imurmurhash@0.1.4:
1701 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1702 | engines: {node: '>=0.8.19'}
1703 | dev: true
1704 |
1705 | /inflight@1.0.6:
1706 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
1707 | dependencies:
1708 | once: 1.4.0
1709 | wrappy: 1.0.2
1710 | dev: true
1711 |
1712 | /inherits@2.0.4:
1713 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1714 | dev: true
1715 |
1716 | /internal-slot@1.0.7:
1717 | resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
1718 | engines: {node: '>= 0.4'}
1719 | dependencies:
1720 | es-errors: 1.3.0
1721 | hasown: 2.0.0
1722 | side-channel: 1.0.5
1723 | dev: true
1724 |
1725 | /is-array-buffer@3.0.4:
1726 | resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
1727 | engines: {node: '>= 0.4'}
1728 | dependencies:
1729 | call-bind: 1.0.6
1730 | get-intrinsic: 1.2.4
1731 | dev: true
1732 |
1733 | /is-async-function@2.0.0:
1734 | resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
1735 | engines: {node: '>= 0.4'}
1736 | dependencies:
1737 | has-tostringtag: 1.0.2
1738 | dev: true
1739 |
1740 | /is-bigint@1.0.4:
1741 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
1742 | dependencies:
1743 | has-bigints: 1.0.2
1744 | dev: true
1745 |
1746 | /is-binary-path@2.1.0:
1747 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
1748 | engines: {node: '>=8'}
1749 | dependencies:
1750 | binary-extensions: 2.2.0
1751 | dev: true
1752 |
1753 | /is-boolean-object@1.1.2:
1754 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
1755 | engines: {node: '>= 0.4'}
1756 | dependencies:
1757 | call-bind: 1.0.6
1758 | has-tostringtag: 1.0.2
1759 | dev: true
1760 |
1761 | /is-callable@1.2.7:
1762 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
1763 | engines: {node: '>= 0.4'}
1764 | dev: true
1765 |
1766 | /is-core-module@2.13.1:
1767 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
1768 | dependencies:
1769 | hasown: 2.0.0
1770 | dev: true
1771 |
1772 | /is-date-object@1.0.5:
1773 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
1774 | engines: {node: '>= 0.4'}
1775 | dependencies:
1776 | has-tostringtag: 1.0.2
1777 | dev: true
1778 |
1779 | /is-extglob@2.1.1:
1780 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1781 | engines: {node: '>=0.10.0'}
1782 | dev: true
1783 |
1784 | /is-finalizationregistry@1.0.2:
1785 | resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
1786 | dependencies:
1787 | call-bind: 1.0.6
1788 | dev: true
1789 |
1790 | /is-fullwidth-code-point@3.0.0:
1791 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
1792 | engines: {node: '>=8'}
1793 | dev: true
1794 |
1795 | /is-generator-function@1.0.10:
1796 | resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
1797 | engines: {node: '>= 0.4'}
1798 | dependencies:
1799 | has-tostringtag: 1.0.2
1800 | dev: true
1801 |
1802 | /is-glob@4.0.3:
1803 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1804 | engines: {node: '>=0.10.0'}
1805 | dependencies:
1806 | is-extglob: 2.1.1
1807 | dev: true
1808 |
1809 | /is-map@2.0.2:
1810 | resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==}
1811 | dev: true
1812 |
1813 | /is-negative-zero@2.0.2:
1814 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
1815 | engines: {node: '>= 0.4'}
1816 | dev: true
1817 |
1818 | /is-number-object@1.0.7:
1819 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
1820 | engines: {node: '>= 0.4'}
1821 | dependencies:
1822 | has-tostringtag: 1.0.2
1823 | dev: true
1824 |
1825 | /is-number@7.0.0:
1826 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1827 | engines: {node: '>=0.12.0'}
1828 | dev: true
1829 |
1830 | /is-path-inside@3.0.3:
1831 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
1832 | engines: {node: '>=8'}
1833 | dev: true
1834 |
1835 | /is-regex@1.1.4:
1836 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
1837 | engines: {node: '>= 0.4'}
1838 | dependencies:
1839 | call-bind: 1.0.6
1840 | has-tostringtag: 1.0.2
1841 | dev: true
1842 |
1843 | /is-set@2.0.2:
1844 | resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==}
1845 | dev: true
1846 |
1847 | /is-shared-array-buffer@1.0.2:
1848 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
1849 | dependencies:
1850 | call-bind: 1.0.6
1851 | dev: true
1852 |
1853 | /is-string@1.0.7:
1854 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
1855 | engines: {node: '>= 0.4'}
1856 | dependencies:
1857 | has-tostringtag: 1.0.2
1858 | dev: true
1859 |
1860 | /is-symbol@1.0.4:
1861 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
1862 | engines: {node: '>= 0.4'}
1863 | dependencies:
1864 | has-symbols: 1.0.3
1865 | dev: true
1866 |
1867 | /is-typed-array@1.1.13:
1868 | resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
1869 | engines: {node: '>= 0.4'}
1870 | dependencies:
1871 | which-typed-array: 1.1.14
1872 | dev: true
1873 |
1874 | /is-weakmap@2.0.1:
1875 | resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==}
1876 | dev: true
1877 |
1878 | /is-weakref@1.0.2:
1879 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
1880 | dependencies:
1881 | call-bind: 1.0.6
1882 | dev: true
1883 |
1884 | /is-weakset@2.0.2:
1885 | resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==}
1886 | dependencies:
1887 | call-bind: 1.0.6
1888 | get-intrinsic: 1.2.4
1889 | dev: true
1890 |
1891 | /isarray@2.0.5:
1892 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
1893 | dev: true
1894 |
1895 | /isexe@2.0.0:
1896 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1897 | dev: true
1898 |
1899 | /iterator.prototype@1.1.2:
1900 | resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
1901 | dependencies:
1902 | define-properties: 1.2.1
1903 | get-intrinsic: 1.2.4
1904 | has-symbols: 1.0.3
1905 | reflect.getprototypeof: 1.0.5
1906 | set-function-name: 2.0.1
1907 | dev: true
1908 |
1909 | /jackspeak@2.3.6:
1910 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
1911 | engines: {node: '>=14'}
1912 | dependencies:
1913 | '@isaacs/cliui': 8.0.2
1914 | optionalDependencies:
1915 | '@pkgjs/parseargs': 0.11.0
1916 | dev: true
1917 |
1918 | /jiti@1.21.0:
1919 | resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
1920 | hasBin: true
1921 | dev: true
1922 |
1923 | /jose@5.2.1:
1924 | resolution: {integrity: sha512-qiaQhtQRw6YrOaOj0v59h3R6hUY9NvxBmmnMfKemkqYmBB0tEc97NbLP7ix44VP5p9/0YHG8Vyhzuo5YBNwviA==}
1925 | dev: false
1926 |
1927 | /js-tokens@4.0.0:
1928 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1929 |
1930 | /js-yaml@4.1.0:
1931 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1932 | hasBin: true
1933 | dependencies:
1934 | argparse: 2.0.1
1935 | dev: true
1936 |
1937 | /json-buffer@3.0.1:
1938 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
1939 | dev: true
1940 |
1941 | /json-schema-traverse@0.4.1:
1942 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1943 | dev: true
1944 |
1945 | /json-stable-stringify-without-jsonify@1.0.1:
1946 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1947 | dev: true
1948 |
1949 | /json5@1.0.2:
1950 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
1951 | hasBin: true
1952 | dependencies:
1953 | minimist: 1.2.8
1954 | dev: true
1955 |
1956 | /jsx-ast-utils@3.3.5:
1957 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
1958 | engines: {node: '>=4.0'}
1959 | dependencies:
1960 | array-includes: 3.1.7
1961 | array.prototype.flat: 1.3.2
1962 | object.assign: 4.1.5
1963 | object.values: 1.1.7
1964 | dev: true
1965 |
1966 | /keyv@4.5.4:
1967 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
1968 | dependencies:
1969 | json-buffer: 3.0.1
1970 | dev: true
1971 |
1972 | /language-subtag-registry@0.3.22:
1973 | resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
1974 | dev: true
1975 |
1976 | /language-tags@1.0.9:
1977 | resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
1978 | engines: {node: '>=0.10'}
1979 | dependencies:
1980 | language-subtag-registry: 0.3.22
1981 | dev: true
1982 |
1983 | /levn@0.4.1:
1984 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1985 | engines: {node: '>= 0.8.0'}
1986 | dependencies:
1987 | prelude-ls: 1.2.1
1988 | type-check: 0.4.0
1989 | dev: true
1990 |
1991 | /lilconfig@2.1.0:
1992 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
1993 | engines: {node: '>=10'}
1994 | dev: true
1995 |
1996 | /lilconfig@3.0.0:
1997 | resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==}
1998 | engines: {node: '>=14'}
1999 | dev: true
2000 |
2001 | /lines-and-columns@1.2.4:
2002 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
2003 | dev: true
2004 |
2005 | /locate-path@6.0.0:
2006 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
2007 | engines: {node: '>=10'}
2008 | dependencies:
2009 | p-locate: 5.0.0
2010 | dev: true
2011 |
2012 | /lodash.merge@4.6.2:
2013 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
2014 | dev: true
2015 |
2016 | /loose-envify@1.4.0:
2017 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
2018 | hasBin: true
2019 | dependencies:
2020 | js-tokens: 4.0.0
2021 |
2022 | /lru-cache@10.2.0:
2023 | resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
2024 | engines: {node: 14 || >=16.14}
2025 | dev: true
2026 |
2027 | /lru-cache@6.0.0:
2028 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
2029 | engines: {node: '>=10'}
2030 | dependencies:
2031 | yallist: 4.0.0
2032 | dev: true
2033 |
2034 | /make-error@1.3.6:
2035 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
2036 | dev: true
2037 |
2038 | /merge2@1.4.1:
2039 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
2040 | engines: {node: '>= 8'}
2041 | dev: true
2042 |
2043 | /micromatch@4.0.5:
2044 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
2045 | engines: {node: '>=8.6'}
2046 | dependencies:
2047 | braces: 3.0.2
2048 | picomatch: 2.3.1
2049 | dev: true
2050 |
2051 | /minimatch@3.1.2:
2052 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
2053 | dependencies:
2054 | brace-expansion: 1.1.11
2055 | dev: true
2056 |
2057 | /minimatch@9.0.3:
2058 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
2059 | engines: {node: '>=16 || 14 >=14.17'}
2060 | dependencies:
2061 | brace-expansion: 2.0.1
2062 | dev: true
2063 |
2064 | /minimist@1.2.8:
2065 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
2066 | dev: true
2067 |
2068 | /minipass@7.0.4:
2069 | resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
2070 | engines: {node: '>=16 || 14 >=14.17'}
2071 | dev: true
2072 |
2073 | /ms@2.1.2:
2074 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
2075 | dev: true
2076 |
2077 | /ms@2.1.3:
2078 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
2079 | dev: true
2080 |
2081 | /mz@2.7.0:
2082 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
2083 | dependencies:
2084 | any-promise: 1.3.0
2085 | object-assign: 4.1.1
2086 | thenify-all: 1.6.0
2087 | dev: true
2088 |
2089 | /nanoid@3.3.7:
2090 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
2091 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
2092 | hasBin: true
2093 |
2094 | /natural-compare@1.4.0:
2095 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
2096 | dev: true
2097 |
2098 | /next-auth@5.0.0-beta.5(next@14.1.0)(react@18.2.0):
2099 | resolution: {integrity: sha512-tEYIPhm/i0byW4xf9Ldlsnh7ckBQfNvMjOA3B3eXQX9taAQWb8earravSn1fjk4fKfKvaOApFJkks0VeI7Vy/A==}
2100 | peerDependencies:
2101 | next: ^14
2102 | nodemailer: ^6.6.5
2103 | react: ^18.2.0
2104 | peerDependenciesMeta:
2105 | nodemailer:
2106 | optional: true
2107 | dependencies:
2108 | '@auth/core': 0.21.0
2109 | next: 14.1.0(react-dom@18.2.0)(react@18.2.0)
2110 | react: 18.2.0
2111 | dev: false
2112 |
2113 | /next@14.1.0(react-dom@18.2.0)(react@18.2.0):
2114 | resolution: {integrity: sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==}
2115 | engines: {node: '>=18.17.0'}
2116 | hasBin: true
2117 | peerDependencies:
2118 | '@opentelemetry/api': ^1.1.0
2119 | react: ^18.2.0
2120 | react-dom: ^18.2.0
2121 | sass: ^1.3.0
2122 | peerDependenciesMeta:
2123 | '@opentelemetry/api':
2124 | optional: true
2125 | sass:
2126 | optional: true
2127 | dependencies:
2128 | '@next/env': 14.1.0
2129 | '@swc/helpers': 0.5.2
2130 | busboy: 1.6.0
2131 | caniuse-lite: 1.0.30001585
2132 | graceful-fs: 4.2.11
2133 | postcss: 8.4.31
2134 | react: 18.2.0
2135 | react-dom: 18.2.0(react@18.2.0)
2136 | styled-jsx: 5.1.1(react@18.2.0)
2137 | optionalDependencies:
2138 | '@next/swc-darwin-arm64': 14.1.0
2139 | '@next/swc-darwin-x64': 14.1.0
2140 | '@next/swc-linux-arm64-gnu': 14.1.0
2141 | '@next/swc-linux-arm64-musl': 14.1.0
2142 | '@next/swc-linux-x64-gnu': 14.1.0
2143 | '@next/swc-linux-x64-musl': 14.1.0
2144 | '@next/swc-win32-arm64-msvc': 14.1.0
2145 | '@next/swc-win32-ia32-msvc': 14.1.0
2146 | '@next/swc-win32-x64-msvc': 14.1.0
2147 | transitivePeerDependencies:
2148 | - '@babel/core'
2149 | - babel-plugin-macros
2150 | dev: false
2151 |
2152 | /node-releases@2.0.14:
2153 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
2154 | dev: true
2155 |
2156 | /normalize-path@3.0.0:
2157 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
2158 | engines: {node: '>=0.10.0'}
2159 | dev: true
2160 |
2161 | /normalize-range@0.1.2:
2162 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
2163 | engines: {node: '>=0.10.0'}
2164 | dev: true
2165 |
2166 | /oauth4webapi@2.10.2:
2167 | resolution: {integrity: sha512-ib0x1f4tCaZkTEEnRpkt96D8F2e38AFWzTOwpha1Wmme5kD+RFFgDVkrXyBSxBefFeQUoODVaieS/w9QmkZbnQ==}
2168 | dev: false
2169 |
2170 | /object-assign@4.1.1:
2171 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
2172 | engines: {node: '>=0.10.0'}
2173 | dev: true
2174 |
2175 | /object-hash@3.0.0:
2176 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
2177 | engines: {node: '>= 6'}
2178 | dev: true
2179 |
2180 | /object-inspect@1.13.1:
2181 | resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
2182 | dev: true
2183 |
2184 | /object-keys@1.1.1:
2185 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
2186 | engines: {node: '>= 0.4'}
2187 | dev: true
2188 |
2189 | /object.assign@4.1.5:
2190 | resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
2191 | engines: {node: '>= 0.4'}
2192 | dependencies:
2193 | call-bind: 1.0.6
2194 | define-properties: 1.2.1
2195 | has-symbols: 1.0.3
2196 | object-keys: 1.1.1
2197 | dev: true
2198 |
2199 | /object.entries@1.1.7:
2200 | resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==}
2201 | engines: {node: '>= 0.4'}
2202 | dependencies:
2203 | call-bind: 1.0.6
2204 | define-properties: 1.2.1
2205 | es-abstract: 1.22.3
2206 | dev: true
2207 |
2208 | /object.fromentries@2.0.7:
2209 | resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==}
2210 | engines: {node: '>= 0.4'}
2211 | dependencies:
2212 | call-bind: 1.0.6
2213 | define-properties: 1.2.1
2214 | es-abstract: 1.22.3
2215 | dev: true
2216 |
2217 | /object.groupby@1.0.2:
2218 | resolution: {integrity: sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==}
2219 | dependencies:
2220 | array.prototype.filter: 1.0.3
2221 | call-bind: 1.0.6
2222 | define-properties: 1.2.1
2223 | es-abstract: 1.22.3
2224 | es-errors: 1.3.0
2225 | dev: true
2226 |
2227 | /object.hasown@1.1.3:
2228 | resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==}
2229 | dependencies:
2230 | define-properties: 1.2.1
2231 | es-abstract: 1.22.3
2232 | dev: true
2233 |
2234 | /object.values@1.1.7:
2235 | resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==}
2236 | engines: {node: '>= 0.4'}
2237 | dependencies:
2238 | call-bind: 1.0.6
2239 | define-properties: 1.2.1
2240 | es-abstract: 1.22.3
2241 | dev: true
2242 |
2243 | /once@1.4.0:
2244 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
2245 | dependencies:
2246 | wrappy: 1.0.2
2247 | dev: true
2248 |
2249 | /optionator@0.9.3:
2250 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
2251 | engines: {node: '>= 0.8.0'}
2252 | dependencies:
2253 | '@aashutoshrathi/word-wrap': 1.2.6
2254 | deep-is: 0.1.4
2255 | fast-levenshtein: 2.0.6
2256 | levn: 0.4.1
2257 | prelude-ls: 1.2.1
2258 | type-check: 0.4.0
2259 | dev: true
2260 |
2261 | /p-limit@3.1.0:
2262 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
2263 | engines: {node: '>=10'}
2264 | dependencies:
2265 | yocto-queue: 0.1.0
2266 | dev: true
2267 |
2268 | /p-locate@5.0.0:
2269 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
2270 | engines: {node: '>=10'}
2271 | dependencies:
2272 | p-limit: 3.1.0
2273 | dev: true
2274 |
2275 | /parent-module@1.0.1:
2276 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
2277 | engines: {node: '>=6'}
2278 | dependencies:
2279 | callsites: 3.1.0
2280 | dev: true
2281 |
2282 | /path-exists@4.0.0:
2283 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
2284 | engines: {node: '>=8'}
2285 | dev: true
2286 |
2287 | /path-is-absolute@1.0.1:
2288 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
2289 | engines: {node: '>=0.10.0'}
2290 | dev: true
2291 |
2292 | /path-key@3.1.1:
2293 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
2294 | engines: {node: '>=8'}
2295 | dev: true
2296 |
2297 | /path-parse@1.0.7:
2298 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
2299 | dev: true
2300 |
2301 | /path-scurry@1.10.1:
2302 | resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
2303 | engines: {node: '>=16 || 14 >=14.17'}
2304 | dependencies:
2305 | lru-cache: 10.2.0
2306 | minipass: 7.0.4
2307 | dev: true
2308 |
2309 | /path-type@4.0.0:
2310 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
2311 | engines: {node: '>=8'}
2312 | dev: true
2313 |
2314 | /picocolors@1.0.0:
2315 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
2316 |
2317 | /picomatch@2.3.1:
2318 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
2319 | engines: {node: '>=8.6'}
2320 | dev: true
2321 |
2322 | /pify@2.3.0:
2323 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
2324 | engines: {node: '>=0.10.0'}
2325 | dev: true
2326 |
2327 | /pirates@4.0.6:
2328 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
2329 | engines: {node: '>= 6'}
2330 | dev: true
2331 |
2332 | /postcss-import@15.1.0(postcss@8.4.34):
2333 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
2334 | engines: {node: '>=14.0.0'}
2335 | peerDependencies:
2336 | postcss: ^8.0.0
2337 | dependencies:
2338 | postcss: 8.4.34
2339 | postcss-value-parser: 4.2.0
2340 | read-cache: 1.0.0
2341 | resolve: 1.22.8
2342 | dev: true
2343 |
2344 | /postcss-js@4.0.1(postcss@8.4.34):
2345 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
2346 | engines: {node: ^12 || ^14 || >= 16}
2347 | peerDependencies:
2348 | postcss: ^8.4.21
2349 | dependencies:
2350 | camelcase-css: 2.0.1
2351 | postcss: 8.4.34
2352 | dev: true
2353 |
2354 | /postcss-load-config@4.0.2(postcss@8.4.34)(ts-node@10.9.2):
2355 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
2356 | engines: {node: '>= 14'}
2357 | peerDependencies:
2358 | postcss: '>=8.0.9'
2359 | ts-node: '>=9.0.0'
2360 | peerDependenciesMeta:
2361 | postcss:
2362 | optional: true
2363 | ts-node:
2364 | optional: true
2365 | dependencies:
2366 | lilconfig: 3.0.0
2367 | postcss: 8.4.34
2368 | ts-node: 10.9.2(@types/node@20.11.16)(typescript@5.3.3)
2369 | yaml: 2.3.4
2370 | dev: true
2371 |
2372 | /postcss-nested@6.0.1(postcss@8.4.34):
2373 | resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
2374 | engines: {node: '>=12.0'}
2375 | peerDependencies:
2376 | postcss: ^8.2.14
2377 | dependencies:
2378 | postcss: 8.4.34
2379 | postcss-selector-parser: 6.0.15
2380 | dev: true
2381 |
2382 | /postcss-selector-parser@6.0.15:
2383 | resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==}
2384 | engines: {node: '>=4'}
2385 | dependencies:
2386 | cssesc: 3.0.0
2387 | util-deprecate: 1.0.2
2388 | dev: true
2389 |
2390 | /postcss-value-parser@4.2.0:
2391 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
2392 | dev: true
2393 |
2394 | /postcss@8.4.31:
2395 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
2396 | engines: {node: ^10 || ^12 || >=14}
2397 | dependencies:
2398 | nanoid: 3.3.7
2399 | picocolors: 1.0.0
2400 | source-map-js: 1.0.2
2401 | dev: false
2402 |
2403 | /postcss@8.4.34:
2404 | resolution: {integrity: sha512-4eLTO36woPSocqZ1zIrFD2K1v6wH7pY1uBh0JIM2KKfrVtGvPFiAku6aNOP0W1Wr9qwnaCsF0Z+CrVnryB2A8Q==}
2405 | engines: {node: ^10 || ^12 || >=14}
2406 | dependencies:
2407 | nanoid: 3.3.7
2408 | picocolors: 1.0.0
2409 | source-map-js: 1.0.2
2410 | dev: true
2411 |
2412 | /preact-render-to-string@5.2.3(preact@10.11.3):
2413 | resolution: {integrity: sha512-aPDxUn5o3GhWdtJtW0svRC2SS/l8D9MAgo2+AWml+BhDImb27ALf04Q2d+AHqUUOc6RdSXFIBVa2gxzgMKgtZA==}
2414 | peerDependencies:
2415 | preact: '>=10'
2416 | dependencies:
2417 | preact: 10.11.3
2418 | pretty-format: 3.8.0
2419 | dev: false
2420 |
2421 | /preact@10.11.3:
2422 | resolution: {integrity: sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==}
2423 | dev: false
2424 |
2425 | /prelude-ls@1.2.1:
2426 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
2427 | engines: {node: '>= 0.8.0'}
2428 | dev: true
2429 |
2430 | /pretty-format@3.8.0:
2431 | resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==}
2432 | dev: false
2433 |
2434 | /prisma@5.9.1:
2435 | resolution: {integrity: sha512-Hy/8KJZz0ELtkw4FnG9MS9rNWlXcJhf98Z2QMqi0QiVMoS8PzsBkpla0/Y5hTlob8F3HeECYphBjqmBxrluUrQ==}
2436 | engines: {node: '>=16.13'}
2437 | hasBin: true
2438 | requiresBuild: true
2439 | dependencies:
2440 | '@prisma/engines': 5.9.1
2441 |
2442 | /prop-types@15.8.1:
2443 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
2444 | dependencies:
2445 | loose-envify: 1.4.0
2446 | object-assign: 4.1.1
2447 | react-is: 16.13.1
2448 | dev: true
2449 |
2450 | /punycode@2.3.1:
2451 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
2452 | engines: {node: '>=6'}
2453 | dev: true
2454 |
2455 | /queue-microtask@1.2.3:
2456 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
2457 | dev: true
2458 |
2459 | /react-dom@18.2.0(react@18.2.0):
2460 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
2461 | peerDependencies:
2462 | react: ^18.2.0
2463 | dependencies:
2464 | loose-envify: 1.4.0
2465 | react: 18.2.0
2466 | scheduler: 0.23.0
2467 | dev: false
2468 |
2469 | /react-hook-form@7.50.1(react@18.2.0):
2470 | resolution: {integrity: sha512-3PCY82oE0WgeOgUtIr3nYNNtNvqtJ7BZjsbxh6TnYNbXButaD5WpjOmTjdxZfheuHKR68qfeFnEDVYoSSFPMTQ==}
2471 | engines: {node: '>=12.22.0'}
2472 | peerDependencies:
2473 | react: ^16.8.0 || ^17 || ^18
2474 | dependencies:
2475 | react: 18.2.0
2476 | dev: false
2477 |
2478 | /react-hot-toast@2.4.1(csstype@3.1.3)(react-dom@18.2.0)(react@18.2.0):
2479 | resolution: {integrity: sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ==}
2480 | engines: {node: '>=10'}
2481 | peerDependencies:
2482 | react: '>=16'
2483 | react-dom: '>=16'
2484 | dependencies:
2485 | goober: 2.1.14(csstype@3.1.3)
2486 | react: 18.2.0
2487 | react-dom: 18.2.0(react@18.2.0)
2488 | transitivePeerDependencies:
2489 | - csstype
2490 | dev: false
2491 |
2492 | /react-is@16.13.1:
2493 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
2494 | dev: true
2495 |
2496 | /react@18.2.0:
2497 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
2498 | engines: {node: '>=0.10.0'}
2499 | dependencies:
2500 | loose-envify: 1.4.0
2501 | dev: false
2502 |
2503 | /read-cache@1.0.0:
2504 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
2505 | dependencies:
2506 | pify: 2.3.0
2507 | dev: true
2508 |
2509 | /readdirp@3.6.0:
2510 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
2511 | engines: {node: '>=8.10.0'}
2512 | dependencies:
2513 | picomatch: 2.3.1
2514 | dev: true
2515 |
2516 | /reflect.getprototypeof@1.0.5:
2517 | resolution: {integrity: sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==}
2518 | engines: {node: '>= 0.4'}
2519 | dependencies:
2520 | call-bind: 1.0.6
2521 | define-properties: 1.2.1
2522 | es-abstract: 1.22.3
2523 | es-errors: 1.3.0
2524 | get-intrinsic: 1.2.4
2525 | globalthis: 1.0.3
2526 | which-builtin-type: 1.1.3
2527 | dev: true
2528 |
2529 | /regenerator-runtime@0.14.1:
2530 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
2531 |
2532 | /regexp.prototype.flags@1.5.1:
2533 | resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==}
2534 | engines: {node: '>= 0.4'}
2535 | dependencies:
2536 | call-bind: 1.0.6
2537 | define-properties: 1.2.1
2538 | set-function-name: 2.0.1
2539 | dev: true
2540 |
2541 | /resolve-from@4.0.0:
2542 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
2543 | engines: {node: '>=4'}
2544 | dev: true
2545 |
2546 | /resolve-pkg-maps@1.0.0:
2547 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
2548 | dev: true
2549 |
2550 | /resolve@1.22.8:
2551 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
2552 | hasBin: true
2553 | dependencies:
2554 | is-core-module: 2.13.1
2555 | path-parse: 1.0.7
2556 | supports-preserve-symlinks-flag: 1.0.0
2557 | dev: true
2558 |
2559 | /resolve@2.0.0-next.5:
2560 | resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
2561 | hasBin: true
2562 | dependencies:
2563 | is-core-module: 2.13.1
2564 | path-parse: 1.0.7
2565 | supports-preserve-symlinks-flag: 1.0.0
2566 | dev: true
2567 |
2568 | /reusify@1.0.4:
2569 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
2570 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
2571 | dev: true
2572 |
2573 | /rimraf@3.0.2:
2574 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
2575 | hasBin: true
2576 | dependencies:
2577 | glob: 7.2.3
2578 | dev: true
2579 |
2580 | /run-parallel@1.2.0:
2581 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
2582 | dependencies:
2583 | queue-microtask: 1.2.3
2584 | dev: true
2585 |
2586 | /safe-array-concat@1.1.0:
2587 | resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==}
2588 | engines: {node: '>=0.4'}
2589 | dependencies:
2590 | call-bind: 1.0.6
2591 | get-intrinsic: 1.2.4
2592 | has-symbols: 1.0.3
2593 | isarray: 2.0.5
2594 | dev: true
2595 |
2596 | /safe-regex-test@1.0.3:
2597 | resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
2598 | engines: {node: '>= 0.4'}
2599 | dependencies:
2600 | call-bind: 1.0.6
2601 | es-errors: 1.3.0
2602 | is-regex: 1.1.4
2603 | dev: true
2604 |
2605 | /scheduler@0.23.0:
2606 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
2607 | dependencies:
2608 | loose-envify: 1.4.0
2609 | dev: false
2610 |
2611 | /semver@6.3.1:
2612 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
2613 | hasBin: true
2614 | dev: true
2615 |
2616 | /semver@7.6.0:
2617 | resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
2618 | engines: {node: '>=10'}
2619 | hasBin: true
2620 | dependencies:
2621 | lru-cache: 6.0.0
2622 | dev: true
2623 |
2624 | /set-function-length@1.2.1:
2625 | resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==}
2626 | engines: {node: '>= 0.4'}
2627 | dependencies:
2628 | define-data-property: 1.1.2
2629 | es-errors: 1.3.0
2630 | function-bind: 1.1.2
2631 | get-intrinsic: 1.2.4
2632 | gopd: 1.0.1
2633 | has-property-descriptors: 1.0.1
2634 | dev: true
2635 |
2636 | /set-function-name@2.0.1:
2637 | resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==}
2638 | engines: {node: '>= 0.4'}
2639 | dependencies:
2640 | define-data-property: 1.1.2
2641 | functions-have-names: 1.2.3
2642 | has-property-descriptors: 1.0.1
2643 | dev: true
2644 |
2645 | /shebang-command@2.0.0:
2646 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
2647 | engines: {node: '>=8'}
2648 | dependencies:
2649 | shebang-regex: 3.0.0
2650 | dev: true
2651 |
2652 | /shebang-regex@3.0.0:
2653 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
2654 | engines: {node: '>=8'}
2655 | dev: true
2656 |
2657 | /side-channel@1.0.5:
2658 | resolution: {integrity: sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==}
2659 | engines: {node: '>= 0.4'}
2660 | dependencies:
2661 | call-bind: 1.0.6
2662 | es-errors: 1.3.0
2663 | get-intrinsic: 1.2.4
2664 | object-inspect: 1.13.1
2665 | dev: true
2666 |
2667 | /signal-exit@4.1.0:
2668 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
2669 | engines: {node: '>=14'}
2670 | dev: true
2671 |
2672 | /slash@3.0.0:
2673 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
2674 | engines: {node: '>=8'}
2675 | dev: true
2676 |
2677 | /source-map-js@1.0.2:
2678 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
2679 | engines: {node: '>=0.10.0'}
2680 |
2681 | /streamsearch@1.1.0:
2682 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
2683 | engines: {node: '>=10.0.0'}
2684 | dev: false
2685 |
2686 | /string-width@4.2.3:
2687 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
2688 | engines: {node: '>=8'}
2689 | dependencies:
2690 | emoji-regex: 8.0.0
2691 | is-fullwidth-code-point: 3.0.0
2692 | strip-ansi: 6.0.1
2693 | dev: true
2694 |
2695 | /string-width@5.1.2:
2696 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
2697 | engines: {node: '>=12'}
2698 | dependencies:
2699 | eastasianwidth: 0.2.0
2700 | emoji-regex: 9.2.2
2701 | strip-ansi: 7.1.0
2702 | dev: true
2703 |
2704 | /string.prototype.matchall@4.0.10:
2705 | resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==}
2706 | dependencies:
2707 | call-bind: 1.0.6
2708 | define-properties: 1.2.1
2709 | es-abstract: 1.22.3
2710 | get-intrinsic: 1.2.4
2711 | has-symbols: 1.0.3
2712 | internal-slot: 1.0.7
2713 | regexp.prototype.flags: 1.5.1
2714 | set-function-name: 2.0.1
2715 | side-channel: 1.0.5
2716 | dev: true
2717 |
2718 | /string.prototype.trim@1.2.8:
2719 | resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==}
2720 | engines: {node: '>= 0.4'}
2721 | dependencies:
2722 | call-bind: 1.0.6
2723 | define-properties: 1.2.1
2724 | es-abstract: 1.22.3
2725 | dev: true
2726 |
2727 | /string.prototype.trimend@1.0.7:
2728 | resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==}
2729 | dependencies:
2730 | call-bind: 1.0.6
2731 | define-properties: 1.2.1
2732 | es-abstract: 1.22.3
2733 | dev: true
2734 |
2735 | /string.prototype.trimstart@1.0.7:
2736 | resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==}
2737 | dependencies:
2738 | call-bind: 1.0.6
2739 | define-properties: 1.2.1
2740 | es-abstract: 1.22.3
2741 | dev: true
2742 |
2743 | /strip-ansi@6.0.1:
2744 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
2745 | engines: {node: '>=8'}
2746 | dependencies:
2747 | ansi-regex: 5.0.1
2748 | dev: true
2749 |
2750 | /strip-ansi@7.1.0:
2751 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
2752 | engines: {node: '>=12'}
2753 | dependencies:
2754 | ansi-regex: 6.0.1
2755 | dev: true
2756 |
2757 | /strip-bom@3.0.0:
2758 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
2759 | engines: {node: '>=4'}
2760 | dev: true
2761 |
2762 | /strip-json-comments@3.1.1:
2763 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
2764 | engines: {node: '>=8'}
2765 | dev: true
2766 |
2767 | /styled-jsx@5.1.1(react@18.2.0):
2768 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
2769 | engines: {node: '>= 12.0.0'}
2770 | peerDependencies:
2771 | '@babel/core': '*'
2772 | babel-plugin-macros: '*'
2773 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
2774 | peerDependenciesMeta:
2775 | '@babel/core':
2776 | optional: true
2777 | babel-plugin-macros:
2778 | optional: true
2779 | dependencies:
2780 | client-only: 0.0.1
2781 | react: 18.2.0
2782 | dev: false
2783 |
2784 | /sucrase@3.35.0:
2785 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
2786 | engines: {node: '>=16 || 14 >=14.17'}
2787 | hasBin: true
2788 | dependencies:
2789 | '@jridgewell/gen-mapping': 0.3.3
2790 | commander: 4.1.1
2791 | glob: 10.3.10
2792 | lines-and-columns: 1.2.4
2793 | mz: 2.7.0
2794 | pirates: 4.0.6
2795 | ts-interface-checker: 0.1.13
2796 | dev: true
2797 |
2798 | /supports-color@7.2.0:
2799 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
2800 | engines: {node: '>=8'}
2801 | dependencies:
2802 | has-flag: 4.0.0
2803 | dev: true
2804 |
2805 | /supports-preserve-symlinks-flag@1.0.0:
2806 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
2807 | engines: {node: '>= 0.4'}
2808 | dev: true
2809 |
2810 | /tailwind-merge@2.2.1:
2811 | resolution: {integrity: sha512-o+2GTLkthfa5YUt4JxPfzMIpQzZ3adD1vLVkvKE1Twl9UAhGsEbIZhHHZVRttyW177S8PDJI3bTQNaebyofK3Q==}
2812 | dependencies:
2813 | '@babel/runtime': 7.23.9
2814 | dev: false
2815 |
2816 | /tailwindcss@3.4.1(ts-node@10.9.2):
2817 | resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
2818 | engines: {node: '>=14.0.0'}
2819 | hasBin: true
2820 | dependencies:
2821 | '@alloc/quick-lru': 5.2.0
2822 | arg: 5.0.2
2823 | chokidar: 3.6.0
2824 | didyoumean: 1.2.2
2825 | dlv: 1.1.3
2826 | fast-glob: 3.3.2
2827 | glob-parent: 6.0.2
2828 | is-glob: 4.0.3
2829 | jiti: 1.21.0
2830 | lilconfig: 2.1.0
2831 | micromatch: 4.0.5
2832 | normalize-path: 3.0.0
2833 | object-hash: 3.0.0
2834 | picocolors: 1.0.0
2835 | postcss: 8.4.34
2836 | postcss-import: 15.1.0(postcss@8.4.34)
2837 | postcss-js: 4.0.1(postcss@8.4.34)
2838 | postcss-load-config: 4.0.2(postcss@8.4.34)(ts-node@10.9.2)
2839 | postcss-nested: 6.0.1(postcss@8.4.34)
2840 | postcss-selector-parser: 6.0.15
2841 | resolve: 1.22.8
2842 | sucrase: 3.35.0
2843 | transitivePeerDependencies:
2844 | - ts-node
2845 | dev: true
2846 |
2847 | /tapable@2.2.1:
2848 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
2849 | engines: {node: '>=6'}
2850 | dev: true
2851 |
2852 | /text-table@0.2.0:
2853 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
2854 | dev: true
2855 |
2856 | /thenify-all@1.6.0:
2857 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
2858 | engines: {node: '>=0.8'}
2859 | dependencies:
2860 | thenify: 3.3.1
2861 | dev: true
2862 |
2863 | /thenify@3.3.1:
2864 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
2865 | dependencies:
2866 | any-promise: 1.3.0
2867 | dev: true
2868 |
2869 | /to-regex-range@5.0.1:
2870 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
2871 | engines: {node: '>=8.0'}
2872 | dependencies:
2873 | is-number: 7.0.0
2874 | dev: true
2875 |
2876 | /ts-api-utils@1.2.1(typescript@5.3.3):
2877 | resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==}
2878 | engines: {node: '>=16'}
2879 | peerDependencies:
2880 | typescript: '>=4.2.0'
2881 | dependencies:
2882 | typescript: 5.3.3
2883 | dev: true
2884 |
2885 | /ts-interface-checker@0.1.13:
2886 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
2887 | dev: true
2888 |
2889 | /ts-node@10.9.2(@types/node@20.11.16)(typescript@5.3.3):
2890 | resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
2891 | hasBin: true
2892 | peerDependencies:
2893 | '@swc/core': '>=1.2.50'
2894 | '@swc/wasm': '>=1.2.50'
2895 | '@types/node': '*'
2896 | typescript: '>=2.7'
2897 | peerDependenciesMeta:
2898 | '@swc/core':
2899 | optional: true
2900 | '@swc/wasm':
2901 | optional: true
2902 | dependencies:
2903 | '@cspotcode/source-map-support': 0.8.1
2904 | '@tsconfig/node10': 1.0.9
2905 | '@tsconfig/node12': 1.0.11
2906 | '@tsconfig/node14': 1.0.3
2907 | '@tsconfig/node16': 1.0.4
2908 | '@types/node': 20.11.16
2909 | acorn: 8.11.3
2910 | acorn-walk: 8.3.2
2911 | arg: 4.1.3
2912 | create-require: 1.1.1
2913 | diff: 4.0.2
2914 | make-error: 1.3.6
2915 | typescript: 5.3.3
2916 | v8-compile-cache-lib: 3.0.1
2917 | yn: 3.1.1
2918 | dev: true
2919 |
2920 | /tsconfig-paths@3.15.0:
2921 | resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
2922 | dependencies:
2923 | '@types/json5': 0.0.29
2924 | json5: 1.0.2
2925 | minimist: 1.2.8
2926 | strip-bom: 3.0.0
2927 | dev: true
2928 |
2929 | /tslib@2.6.2:
2930 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
2931 | dev: false
2932 |
2933 | /type-check@0.4.0:
2934 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
2935 | engines: {node: '>= 0.8.0'}
2936 | dependencies:
2937 | prelude-ls: 1.2.1
2938 | dev: true
2939 |
2940 | /type-fest@0.20.2:
2941 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
2942 | engines: {node: '>=10'}
2943 | dev: true
2944 |
2945 | /typed-array-buffer@1.0.1:
2946 | resolution: {integrity: sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==}
2947 | engines: {node: '>= 0.4'}
2948 | dependencies:
2949 | call-bind: 1.0.6
2950 | es-errors: 1.3.0
2951 | is-typed-array: 1.1.13
2952 | dev: true
2953 |
2954 | /typed-array-byte-length@1.0.0:
2955 | resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
2956 | engines: {node: '>= 0.4'}
2957 | dependencies:
2958 | call-bind: 1.0.6
2959 | for-each: 0.3.3
2960 | has-proto: 1.0.1
2961 | is-typed-array: 1.1.13
2962 | dev: true
2963 |
2964 | /typed-array-byte-offset@1.0.0:
2965 | resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==}
2966 | engines: {node: '>= 0.4'}
2967 | dependencies:
2968 | available-typed-arrays: 1.0.6
2969 | call-bind: 1.0.6
2970 | for-each: 0.3.3
2971 | has-proto: 1.0.1
2972 | is-typed-array: 1.1.13
2973 | dev: true
2974 |
2975 | /typed-array-length@1.0.4:
2976 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
2977 | dependencies:
2978 | call-bind: 1.0.6
2979 | for-each: 0.3.3
2980 | is-typed-array: 1.1.13
2981 | dev: true
2982 |
2983 | /typescript@5.3.3:
2984 | resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==}
2985 | engines: {node: '>=14.17'}
2986 | hasBin: true
2987 | dev: true
2988 |
2989 | /unbox-primitive@1.0.2:
2990 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
2991 | dependencies:
2992 | call-bind: 1.0.6
2993 | has-bigints: 1.0.2
2994 | has-symbols: 1.0.3
2995 | which-boxed-primitive: 1.0.2
2996 | dev: true
2997 |
2998 | /undici-types@5.26.5:
2999 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
3000 | dev: true
3001 |
3002 | /update-browserslist-db@1.0.13(browserslist@4.22.3):
3003 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
3004 | hasBin: true
3005 | peerDependencies:
3006 | browserslist: '>= 4.21.0'
3007 | dependencies:
3008 | browserslist: 4.22.3
3009 | escalade: 3.1.2
3010 | picocolors: 1.0.0
3011 | dev: true
3012 |
3013 | /uri-js@4.4.1:
3014 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
3015 | dependencies:
3016 | punycode: 2.3.1
3017 | dev: true
3018 |
3019 | /util-deprecate@1.0.2:
3020 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
3021 | dev: true
3022 |
3023 | /v8-compile-cache-lib@3.0.1:
3024 | resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
3025 | dev: true
3026 |
3027 | /which-boxed-primitive@1.0.2:
3028 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
3029 | dependencies:
3030 | is-bigint: 1.0.4
3031 | is-boolean-object: 1.1.2
3032 | is-number-object: 1.0.7
3033 | is-string: 1.0.7
3034 | is-symbol: 1.0.4
3035 | dev: true
3036 |
3037 | /which-builtin-type@1.1.3:
3038 | resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
3039 | engines: {node: '>= 0.4'}
3040 | dependencies:
3041 | function.prototype.name: 1.1.6
3042 | has-tostringtag: 1.0.2
3043 | is-async-function: 2.0.0
3044 | is-date-object: 1.0.5
3045 | is-finalizationregistry: 1.0.2
3046 | is-generator-function: 1.0.10
3047 | is-regex: 1.1.4
3048 | is-weakref: 1.0.2
3049 | isarray: 2.0.5
3050 | which-boxed-primitive: 1.0.2
3051 | which-collection: 1.0.1
3052 | which-typed-array: 1.1.14
3053 | dev: true
3054 |
3055 | /which-collection@1.0.1:
3056 | resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==}
3057 | dependencies:
3058 | is-map: 2.0.2
3059 | is-set: 2.0.2
3060 | is-weakmap: 2.0.1
3061 | is-weakset: 2.0.2
3062 | dev: true
3063 |
3064 | /which-typed-array@1.1.14:
3065 | resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==}
3066 | engines: {node: '>= 0.4'}
3067 | dependencies:
3068 | available-typed-arrays: 1.0.6
3069 | call-bind: 1.0.6
3070 | for-each: 0.3.3
3071 | gopd: 1.0.1
3072 | has-tostringtag: 1.0.2
3073 | dev: true
3074 |
3075 | /which@2.0.2:
3076 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
3077 | engines: {node: '>= 8'}
3078 | hasBin: true
3079 | dependencies:
3080 | isexe: 2.0.0
3081 | dev: true
3082 |
3083 | /wrap-ansi@7.0.0:
3084 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
3085 | engines: {node: '>=10'}
3086 | dependencies:
3087 | ansi-styles: 4.3.0
3088 | string-width: 4.2.3
3089 | strip-ansi: 6.0.1
3090 | dev: true
3091 |
3092 | /wrap-ansi@8.1.0:
3093 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
3094 | engines: {node: '>=12'}
3095 | dependencies:
3096 | ansi-styles: 6.2.1
3097 | string-width: 5.1.2
3098 | strip-ansi: 7.1.0
3099 | dev: true
3100 |
3101 | /wrappy@1.0.2:
3102 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
3103 | dev: true
3104 |
3105 | /yallist@4.0.0:
3106 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
3107 | dev: true
3108 |
3109 | /yaml@2.3.4:
3110 | resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==}
3111 | engines: {node: '>= 14'}
3112 | dev: true
3113 |
3114 | /yn@3.1.1:
3115 | resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
3116 | engines: {node: '>=6'}
3117 | dev: true
3118 |
3119 | /yocto-queue@0.1.0:
3120 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
3121 | engines: {node: '>=10'}
3122 | dev: true
3123 |
3124 | /zod@3.22.4:
3125 | resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
3126 | dev: false
3127 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | };
7 |
--------------------------------------------------------------------------------
/prisma/migrations/20240207160257_init/migration.sql:
--------------------------------------------------------------------------------
1 | -- CreateTable
2 | CREATE TABLE "users" (
3 | "id" TEXT NOT NULL,
4 | "name" TEXT NOT NULL,
5 | "email" TEXT,
6 | "password" TEXT,
7 | "email_verified" TIMESTAMP(3),
8 | "image" TEXT,
9 | "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
10 | "updatedAt" TIMESTAMP(3) NOT NULL,
11 |
12 | CONSTRAINT "users_pkey" PRIMARY KEY ("id")
13 | );
14 |
15 | -- CreateTable
16 | CREATE TABLE "accounts" (
17 | "id" TEXT NOT NULL,
18 | "user_id" TEXT NOT NULL,
19 | "type" TEXT,
20 | "provider" TEXT NOT NULL,
21 | "provider_account_id" TEXT NOT NULL,
22 | "token_type" TEXT,
23 | "refresh_token" TEXT,
24 | "access_token" TEXT,
25 | "expires_at" INTEGER,
26 | "scope" TEXT,
27 | "id_token" TEXT,
28 | "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
29 | "updatedAt" TIMESTAMP(3) NOT NULL,
30 |
31 | CONSTRAINT "accounts_pkey" PRIMARY KEY ("id")
32 | );
33 |
34 | -- CreateTable
35 | CREATE TABLE "sessions" (
36 | "id" TEXT NOT NULL,
37 | "user_id" TEXT,
38 | "session_token" TEXT NOT NULL,
39 | "access_token" TEXT,
40 | "expires" TIMESTAMP(3) NOT NULL,
41 | "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
42 | "updatedAt" TIMESTAMP(3) NOT NULL,
43 |
44 | CONSTRAINT "sessions_pkey" PRIMARY KEY ("id")
45 | );
46 |
47 | -- CreateTable
48 | CREATE TABLE "VerificationRequest" (
49 | "id" TEXT NOT NULL,
50 | "identifier" TEXT NOT NULL,
51 | "token" TEXT NOT NULL,
52 | "expires" TIMESTAMP(3) NOT NULL,
53 | "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
54 | "updatedAt" TIMESTAMP(3) NOT NULL,
55 |
56 | CONSTRAINT "VerificationRequest_pkey" PRIMARY KEY ("id")
57 | );
58 |
59 | -- CreateIndex
60 | CREATE UNIQUE INDEX "users_email_key" ON "users"("email");
61 |
62 | -- CreateIndex
63 | CREATE UNIQUE INDEX "accounts_provider_provider_account_id_key" ON "accounts"("provider", "provider_account_id");
64 |
65 | -- CreateIndex
66 | CREATE UNIQUE INDEX "sessions_session_token_key" ON "sessions"("session_token");
67 |
68 | -- CreateIndex
69 | CREATE UNIQUE INDEX "VerificationRequest_token_key" ON "VerificationRequest"("token");
70 |
71 | -- CreateIndex
72 | CREATE UNIQUE INDEX "VerificationRequest_identifier_token_key" ON "VerificationRequest"("identifier", "token");
73 |
74 | -- AddForeignKey
75 | ALTER TABLE "accounts" ADD CONSTRAINT "accounts_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
76 |
77 | -- AddForeignKey
78 | ALTER TABLE "sessions" ADD CONSTRAINT "sessions_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
79 |
--------------------------------------------------------------------------------
/prisma/migrations/migration_lock.toml:
--------------------------------------------------------------------------------
1 | # Please do not edit this file manually
2 | # It should be added in your version-control system (i.e. Git)
3 | provider = "postgresql"
--------------------------------------------------------------------------------
/prisma/prisma.ts:
--------------------------------------------------------------------------------
1 | import { PrismaClient } from '@prisma/client';
2 |
3 | const prismaClientSingleton = () => {
4 | return new PrismaClient();
5 | };
6 |
7 | declare global {
8 | var prisma: undefined | ReturnType;
9 | }
10 |
11 | const prisma = globalThis.prisma ?? prismaClientSingleton();
12 |
13 | export default prisma;
14 |
15 | if (process.env.NODE_ENV !== 'production') globalThis.prisma = prisma;
16 |
--------------------------------------------------------------------------------
/prisma/schema.prisma:
--------------------------------------------------------------------------------
1 | // This is your Prisma schema file,
2 | // learn more about it in the docs: https://pris.ly/d/prisma-schema
3 |
4 | generator client {
5 | provider = "prisma-client-js"
6 | }
7 |
8 | datasource db {
9 | provider = "postgresql"
10 | url = env("DATABASE_URL")
11 | }
12 |
13 | model User {
14 | id String @id @default(uuid())
15 | name String
16 | email String? @unique
17 | password String?
18 | emailVerified DateTime? @map("email_verified")
19 | image String?
20 | createdAt DateTime @default(now())
21 | updatedAt DateTime @updatedAt
22 | accounts Account[]
23 | sessions Session[]
24 |
25 | @@map("users")
26 | }
27 |
28 | model Account {
29 | id String @id @default(cuid())
30 | userId String @map("user_id")
31 | type String?
32 | provider String
33 | providerAccountId String @map("provider_account_id")
34 | token_type String?
35 | refresh_token String? @db.Text
36 | access_token String? @db.Text
37 | expires_at Int?
38 | scope String?
39 | id_token String? @db.Text
40 | createdAt DateTime @default(now())
41 | updatedAt DateTime @updatedAt
42 | user User @relation(fields: [userId], references: [id], onDelete: Cascade)
43 |
44 | @@unique([provider, providerAccountId])
45 | @@map("accounts")
46 | }
47 |
48 | model Session {
49 | id String @id @default(cuid())
50 | userId String? @map("user_id")
51 | sessionToken String @unique @map("session_token") @db.Text
52 | accessToken String? @map("access_token") @db.Text
53 | expires DateTime
54 | user User? @relation(fields: [userId], references: [id], onDelete: Cascade)
55 | createdAt DateTime @default(now())
56 | updatedAt DateTime @updatedAt
57 |
58 | @@map("sessions")
59 | }
60 |
61 | model VerificationRequest {
62 | id String @id @default(cuid())
63 | identifier String
64 | token String @unique
65 | expires DateTime
66 | createdAt DateTime @default(now())
67 | updatedAt DateTime @updatedAt
68 |
69 | @@unique([identifier, token])
70 | }
71 |
--------------------------------------------------------------------------------
/prisma/seed.ts:
--------------------------------------------------------------------------------
1 | import { PrismaClient } from '@prisma/client';
2 | import { hash } from 'bcryptjs';
3 |
4 | const prisma = new PrismaClient();
5 |
6 | async function main() {
7 | const password = await hash('password123', 12);
8 | const user = await prisma.user.upsert({
9 | where: { email: 'admin@admin.com' },
10 | update: {},
11 | create: {
12 | email: 'admin@admin.com',
13 | name: 'Admin',
14 | password,
15 | },
16 | });
17 | console.log({ user });
18 | }
19 | main()
20 | .then(() => prisma.$disconnect())
21 | .catch(async (e) => {
22 | console.error(e);
23 | await prisma.$disconnect();
24 | process.exit(1);
25 | });
26 |
--------------------------------------------------------------------------------
/public/images/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wpcodevo/nextauth-nextjs14-prisma/ba55c0240c13df80fdd43e553f41468da90897c7/public/images/default.png
--------------------------------------------------------------------------------
/public/images/github.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/images/google.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/next.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/vercel.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/tailwind.config.ts:
--------------------------------------------------------------------------------
1 | import type { Config } from 'tailwindcss';
2 |
3 | const config: Config = {
4 | content: [
5 | './pages/**/*.{js,ts,jsx,tsx,mdx}',
6 | './components/**/*.{js,ts,jsx,tsx,mdx}',
7 | './app/**/*.{js,ts,jsx,tsx,mdx}',
8 | ],
9 | theme: {
10 | extend: {
11 | colors: {
12 | 'ct-dark-600': '#222',
13 | 'ct-dark-200': '#e5e7eb',
14 | 'ct-dark-100': '#f5f6f7',
15 | 'ct-blue-600': '#2363eb',
16 | 'ct-yellow-600': '#f9d13e',
17 | },
18 | fontFamily: {
19 | Poppins: ['Poppins, sans-serif'],
20 | },
21 | container: {
22 | center: true,
23 | padding: '1rem',
24 | screens: {
25 | lg: '1125px',
26 | xl: '1125px',
27 | '2xl': '1125px',
28 | },
29 | },
30 | },
31 | },
32 | plugins: [],
33 | };
34 | export default config;
35 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "lib": ["dom", "dom.iterable", "esnext"],
4 | "allowJs": true,
5 | "skipLibCheck": true,
6 | "strict": true,
7 | "noEmit": true,
8 | "esModuleInterop": true,
9 | "module": "esnext",
10 | "moduleResolution": "bundler",
11 | "resolveJsonModule": true,
12 | "isolatedModules": true,
13 | "jsx": "preserve",
14 | "incremental": true,
15 | "plugins": [
16 | {
17 | "name": "next"
18 | }
19 | ],
20 | "paths": {
21 | "@/*": ["./*"]
22 | }
23 | },
24 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
25 | "exclude": ["node_modules"]
26 | }
27 |
--------------------------------------------------------------------------------