├── .gitignore
├── .vscode
└── settings.json
├── README.md
├── app
├── QueryHydrate.tsx
├── api
│ ├── add-like
│ │ └── route.ts
│ ├── clerk-webhooks
│ │ └── route.ts
│ ├── create-post
│ │ └── route.ts
│ └── get-feed
│ │ └── route.ts
├── dashboard
│ └── page.tsx
├── favicon.ico
├── getQueryClient.tsx
├── globals.css
├── header.tsx
├── layout.tsx
├── page.tsx
├── providers.tsx
├── sign-in
│ └── page.tsx
└── sign-up
│ └── page.tsx
├── auth
└── SignIn.tsx
├── components
├── Like.tsx
├── Post.tsx
├── PostForm.tsx
├── Posts.tsx
└── SubmitButton.tsx
├── hook
├── usePosts.ts
├── useSubmitLike.ts
└── useSubmitPost.ts
├── middleware.ts
├── next.config.js
├── package-lock.json
├── package.json
├── postcss.config.js
├── prisma
├── client.ts
├── migrations
│ ├── 20230421172749_posts
│ │ └── migration.sql
│ ├── 20230421191015_added_user
│ │ └── migration.sql
│ ├── 20230422000105_add_like_and_comment_models
│ │ └── migration.sql
│ ├── 20230422015102_added_more_user_info
│ │ └── migration.sql
│ ├── 20230425235700_string_ids
│ │ └── migration.sql
│ ├── 20230426102757_layoutid
│ │ └── migration.sql
│ ├── 20230506192917_
│ │ └── migration.sql
│ ├── 20230506193555_revert
│ │ └── migration.sql
│ └── migration_lock.toml
└── schema.prisma
├── public
├── heart.json
├── next.svg
├── paperplane.json
└── vercel.svg
├── sentry.server.config.js
├── tailwind.config.js
├── tsconfig.json
└── types
├── PostSubmit.ts
└── PostsType.ts
/.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 |
8 | # testing
9 | /coverage
10 |
11 | # next.js
12 | /.next/
13 | /out/
14 |
15 | # production
16 | /build
17 |
18 | # misc
19 | .DS_Store
20 | *.pem
21 |
22 | # debug
23 | npm-debug.log*
24 | yarn-debug.log*
25 | yarn-error.log*
26 |
27 | # local env files
28 | .env*.local
29 | .env
30 |
31 | # vercel
32 | .vercel
33 |
34 | # typescript
35 | *.tsbuildinfo
36 | next-env.d.ts
37 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "typescript.tsdk": "node_modules\\typescript\\lib",
3 | "typescript.enablePromptUseWorkspaceTsdk": true
4 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
2 |
3 | ## Getting Started
4 |
5 | First, run the development server:
6 |
7 | ```bash
8 | npm run dev
9 | # or
10 | yarn dev
11 | # or
12 | pnpm dev
13 | ```
14 |
15 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
16 |
17 | You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
18 |
19 | [http://localhost:3000/api/hello](http://localhost:3000/api/hello) is an endpoint that uses [Route Handlers](https://beta.nextjs.org/docs/routing/route-handlers). This endpoint can be edited in `app/api/hello/route.ts`.
20 |
21 | This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
22 |
23 | ## Learn More
24 |
25 | To learn more about Next.js, take a look at the following resources:
26 |
27 | - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
28 | - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
29 |
30 | You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
31 |
32 | ## Deploy on Vercel
33 |
34 | The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
35 |
36 | Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
37 |
--------------------------------------------------------------------------------
/app/QueryHydrate.tsx:
--------------------------------------------------------------------------------
1 | "use client"
2 |
3 | import { Hydrate as RQHydrate, HydrateProps } from "@tanstack/react-query"
4 |
5 | function Hydrate(props: HydrateProps) {
6 | return
7 | }
8 | export default Hydrate
9 |
--------------------------------------------------------------------------------
/app/api/add-like/route.ts:
--------------------------------------------------------------------------------
1 | import { NextResponse, NextRequest } from "next/server"
2 | import { auth } from "@clerk/nextjs/app-beta"
3 | import { prisma } from "../../../prisma/client"
4 |
5 | export async function POST(req: NextRequest, res: NextResponse) {
6 | //test speed
7 |
8 | const start = Date.now()
9 | const body = await req.json()
10 | try {
11 | const { userId } = auth()
12 | //Throw error if not logged
13 | if (!userId) {
14 | NextResponse.json({ error: "Please log in to post ❣️" }, { status: 401 })
15 | return
16 | }
17 | const liked = await prisma.like.findFirst({
18 | where: {
19 | authorId: userId,
20 | postId: body.postId,
21 | },
22 | })
23 |
24 | if (!liked) {
25 | await prisma.$transaction([
26 | prisma.like.create({
27 | data: {
28 | authorId: userId,
29 | postId: body.postId,
30 | },
31 | }),
32 | ])
33 | } else {
34 | await prisma.$transaction([
35 | prisma.like.delete({
36 | where: {
37 | id: liked.id,
38 | },
39 | }),
40 | ])
41 | }
42 | const end = Date.now()
43 | console.log(`Time to add like: ${end - start}ms`)
44 | // retrieve data from your database
45 | return NextResponse.json("Liked 👍")
46 | } catch (error) {
47 | return NextResponse.json({ error: "Something went wrong ❣️" })
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/app/api/clerk-webhooks/route.ts:
--------------------------------------------------------------------------------
1 | import type { WebhookEvent } from "@clerk/clerk-sdk-node"
2 | import { NextResponse, NextRequest } from "next/server"
3 | import { prisma } from "../../../prisma/client"
4 |
5 | export async function POST(req: NextRequest, res: NextResponse) {
6 | const { data, object, type }: WebhookEvent = await req.json()
7 | console.log(type)
8 | switch (type) {
9 | case "user.created":
10 | try {
11 | await prisma.user.create({
12 | data: {
13 | id: data.id,
14 | profile_image_url: data.profile_image_url,
15 | name: data.first_name,
16 | },
17 | })
18 | } catch (e) {
19 | console.log(e)
20 | }
21 | case "user.updated":
22 | try {
23 | await prisma.user.update({
24 | where: { id: data.id },
25 | data: {
26 | profile_image_url: data.profile_image_url,
27 | name: data.first_name,
28 | },
29 | })
30 | } catch (e) {
31 | console.log(e)
32 | }
33 | }
34 | return NextResponse.json({ event: type })
35 | }
36 |
--------------------------------------------------------------------------------
/app/api/create-post/route.ts:
--------------------------------------------------------------------------------
1 | import { NextResponse, NextRequest } from "next/server"
2 | import { auth } from "@clerk/nextjs/app-beta"
3 | import { prisma } from "../../../prisma/client"
4 |
5 | export async function POST(req: NextRequest, res: NextResponse) {
6 | try {
7 | const { userId, user } = auth()
8 | //Throw error if not logged
9 | if (!userId) {
10 | NextResponse.json({ error: "Please log in to post ❣️" }, { status: 401 })
11 | return
12 | }
13 | //Get Body Data
14 | const body = await req.json()
15 |
16 | //Check if body is empty
17 | if (body.content.length > 300) {
18 | return NextResponse.json(
19 | { error: "Please post a shorter message 🙏" },
20 | { status: 403, statusText: "Too short" }
21 | )
22 | }
23 |
24 | if (body.content.length < 1) {
25 | return NextResponse.json(
26 | { error: "Please post a longer message 🙏" },
27 | { status: 403 }
28 | )
29 | }
30 |
31 | const { author } = body
32 | const post = await prisma.post.create({
33 | data: {
34 | content: body.content,
35 | authorId: userId,
36 | layoutId: body.layoutId,
37 | },
38 | })
39 | // retrieve data from your database
40 | return NextResponse.json({ user, post, author })
41 | } catch (error) {
42 | return NextResponse.json({ error: "Something went wrong ❣️" })
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/app/api/get-feed/route.ts:
--------------------------------------------------------------------------------
1 | import { NextResponse } from "next/server"
2 | import { prisma } from "../../../prisma/client"
3 |
4 | export const dynamic = "force-dynamic"
5 |
6 | export async function GET(req: Request) {
7 | try {
8 | const posts = await prisma.post.findMany({
9 | include: { author: true, likes: true },
10 | orderBy: { createdAt: "asc" },
11 | })
12 |
13 | return NextResponse.json(posts)
14 | } catch (error) {
15 | return NextResponse.json({ error: "Something went wrong ❣️" })
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/dashboard/page.tsx:
--------------------------------------------------------------------------------
1 | export default function Dashboard() {
2 | return (
3 |
4 |
Dashboard
5 |
Here are your courses ✨
6 |
7 | )
8 | }
9 |
--------------------------------------------------------------------------------
/app/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/developedbyed/Fancy-Next-SSR/b6b29d31d3d483e12838b2cf9b3e4451d67db0c4/app/favicon.ico
--------------------------------------------------------------------------------
/app/getQueryClient.tsx:
--------------------------------------------------------------------------------
1 | import { QueryClient } from "@tanstack/query-core"
2 | import { cache } from "react"
3 |
4 | const getQueryClient = cache(() => new QueryClient())
5 | export default getQueryClient
6 |
--------------------------------------------------------------------------------
/app/globals.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | :root {
6 | --foreground-rgb: 0, 0, 0;
7 | --background-start-rgb: 214, 219, 220;
8 | --background-end-rgb: 255, 255, 255;
9 | }
10 |
11 | @media (prefers-color-scheme: dark) {
12 | :root {
13 | --foreground-rgb: 255, 255, 255;
14 | --background-start-rgb: 0, 0, 0;
15 | --background-end-rgb: 0, 0, 0;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/header.tsx:
--------------------------------------------------------------------------------
1 | "use client"
2 | import { SignInButton, useUser, UserButton } from "@clerk/nextjs"
3 | import Link from "next/link"
4 |
5 | function Header() {
6 | const { isSignedIn } = useUser()
7 |
8 | return (
9 |
10 |
23 |
24 | )
25 | }
26 |
27 | export default Header
28 |
--------------------------------------------------------------------------------
/app/layout.tsx:
--------------------------------------------------------------------------------
1 | import "./globals.css"
2 | import { ClerkProvider } from "@clerk/nextjs"
3 | import Providers from "./providers"
4 | import Header from "./header"
5 |
6 | export const metadata = {
7 | title: "Buzz ⚡",
8 | description: "Built with Next 13",
9 | }
10 |
11 | export default function RootLayout({
12 | children,
13 | }: {
14 | children: React.ReactNode
15 | }) {
16 | return (
17 |
18 |
19 |
20 |
21 |
22 | {children}
23 |
24 |
25 |
26 |
27 | )
28 | }
29 |
--------------------------------------------------------------------------------
/app/page.tsx:
--------------------------------------------------------------------------------
1 | import getQueryClient from "./getQueryClient"
2 | import Hydrate from "./QueryHydrate"
3 | import { dehydrate } from "@tanstack/query-core"
4 | import { prisma } from "../prisma/client"
5 |
6 | import Posts from "@/components/Posts"
7 | import PostForm from "@/components/PostForm"
8 |
9 | export default async function Home() {
10 | const queryClient = getQueryClient()
11 | await queryClient.prefetchQuery(["posts"], async () => {
12 | const posts = await prisma.post.findMany({
13 | include: { author: true, likes: true },
14 | orderBy: { createdAt: "asc" },
15 | })
16 | return posts
17 | })
18 | const dehydratedState = dehydrate(queryClient)
19 |
20 | return (
21 |
22 |
23 |
24 |
25 |
26 |
27 | )
28 | }
29 |
--------------------------------------------------------------------------------
/app/providers.tsx:
--------------------------------------------------------------------------------
1 | "use client"
2 |
3 | import { QueryClient, QueryClientProvider } from "@tanstack/react-query"
4 | import { useState } from "react"
5 |
6 | const Providers = ({ children }: { children: React.ReactNode }) => {
7 | const [queryClient] = useState(() => new QueryClient())
8 |
9 | return (
10 | {children}
11 | )
12 | }
13 |
14 | export default Providers
15 |
--------------------------------------------------------------------------------
/app/sign-in/page.tsx:
--------------------------------------------------------------------------------
1 | import { SignIn } from "@clerk/nextjs/app-beta"
2 |
3 | export default function Page() {
4 | return (
5 |
6 |
7 |
8 | )
9 | }
10 |
--------------------------------------------------------------------------------
/app/sign-up/page.tsx:
--------------------------------------------------------------------------------
1 | import { SignUp } from "@clerk/nextjs/app-beta"
2 |
3 | export default function Page() {
4 | return
5 | }
6 |
--------------------------------------------------------------------------------
/auth/SignIn.tsx:
--------------------------------------------------------------------------------
1 | "use client"
2 | import { SignInButton } from "@clerk/nextjs/"
3 |
4 | const SignIn = () => {
5 | return (
6 | <>
7 |
8 |
11 |
12 | >
13 | )
14 | }
15 |
16 | export default SignIn
17 |
--------------------------------------------------------------------------------
/components/Like.tsx:
--------------------------------------------------------------------------------
1 | "use client"
2 |
3 | import useSubmitLike from "@/hook/useSubmitLike"
4 | import { PostsType } from "@/types/PostsType"
5 | import { useUser } from "@clerk/nextjs"
6 | import { motion } from "framer-motion"
7 | import UseAnimations from "react-useanimations"
8 | import heart from "react-useanimations/lib/heart"
9 | import { useState } from "react"
10 |
11 | export default function Like({ post }: { post: PostsType }) {
12 | const mutation = useSubmitLike()
13 | const { user } = useUser()
14 | const userHasLiked = post.likes.some((like) => like.authorId === user?.id)
15 | const [checked, setChecked] = useState(true)
16 | return (
17 |
36 | )
37 | }
38 |
--------------------------------------------------------------------------------
/components/Post.tsx:
--------------------------------------------------------------------------------
1 | "use client"
2 | import Image from "next/image"
3 | import { motion } from "framer-motion"
4 | import { PostsType } from "@/types/PostsType"
5 | import Like from "../components/Like"
6 |
7 | const Post = ({ post }: { post: PostsType }) => {
8 | return (
9 |
16 |
17 |
24 |
25 |
26 | {post.author.name}
27 |
28 | {post.content}
29 |
30 |
31 |
32 |
33 | )
34 | }
35 |
36 | export default Post
37 |
--------------------------------------------------------------------------------
/components/PostForm.tsx:
--------------------------------------------------------------------------------
1 | "use client"
2 | import { useState, useEffect } from "react"
3 | import useSubmitPost from "@/hook/useSubmitPost"
4 | import { useUser } from "@clerk/nextjs/app-beta/client"
5 | import { motion } from "framer-motion"
6 | import SubmitButton from "./SubmitButton"
7 |
8 | const PostForm = () => {
9 | const [content, setContent] = useState("")
10 | const [postError, setPostError] = useState("")
11 | const { user } = useUser()
12 | const mutation = useSubmitPost()
13 |
14 | const submitPost = async () => {
15 | mutation.mutate({
16 | content,
17 | author: {
18 | name: user?.fullName,
19 | profile_image_url: user?.profileImageUrl,
20 | id: user?.id,
21 | },
22 | likes: [],
23 | id: crypto.randomUUID(),
24 | layoutId: crypto.randomUUID(),
25 | })
26 | }
27 |
28 | useEffect(() => {
29 | if (mutation.isError) {
30 | const error = mutation.error as Error
31 | setPostError(error.message)
32 | }
33 | if (mutation.isSuccess) {
34 | setContent("")
35 | setPostError("")
36 | }
37 | }, [mutation.isError, mutation.isSuccess])
38 |
39 | return (
40 | {
43 | e.preventDefault()
44 | submitPost()
45 | }}
46 | >
47 |
62 | )
63 | }
64 | export default PostForm
65 |
--------------------------------------------------------------------------------
/components/Posts.tsx:
--------------------------------------------------------------------------------
1 | "use client"
2 | import { AnimatePresence, motion } from "framer-motion"
3 | import usePosts from "@/hook/usePosts"
4 | import Post from "./Post"
5 |
6 | const Posts = () => {
7 | const { data, isLoading, error } = usePosts()
8 |
9 | if (isLoading) return Loading...
10 | if (error) return Something went wrong 😅
11 |
12 | return (
13 |
14 |
15 | {data?.map((post) => (
16 |
17 | ))}
18 |
19 |
20 | )
21 | }
22 | export default Posts
23 |
--------------------------------------------------------------------------------
/components/SubmitButton.tsx:
--------------------------------------------------------------------------------
1 | import Lottie from "lottie-react"
2 | import paperplane from "../public/paperplane.json"
3 | import { useRef } from "react"
4 | import { motion } from "framer-motion"
5 |
6 | export default function SubmitButton() {
7 | const lottiePlane = useRef() as React.MutableRefObject
8 |
9 | return (
10 | lottiePlane.current.goToAndPlay(25, true)}
14 | type="submit"
15 | className="w-16"
16 | >
17 | lottiePlane.current.goToAndStop(0, true)}
23 | />
24 |
25 | )
26 | }
27 |
--------------------------------------------------------------------------------
/hook/usePosts.ts:
--------------------------------------------------------------------------------
1 | import { useQuery } from "@tanstack/react-query"
2 | import { PostsType } from "@/types/PostsType"
3 |
4 | const usePosts = () => {
5 | return useQuery({
6 | queryKey: ["posts"],
7 | queryFn: () =>
8 | fetch("/api/get-feed")
9 | .then((res) => res.json())
10 | .catch((error) => {
11 | throw new Error(error.message)
12 | }),
13 | })
14 | }
15 |
16 | export default usePosts
17 |
--------------------------------------------------------------------------------
/hook/useSubmitLike.ts:
--------------------------------------------------------------------------------
1 | import { useMutation, useQueryClient } from "@tanstack/react-query"
2 | import { useUser } from "@clerk/nextjs"
3 | import { PostsType } from "@/types/PostsType"
4 |
5 | const useSubmitLike = () => {
6 | const { user } = useUser()
7 | const queryClient = useQueryClient()
8 |
9 | const mutation = useMutation({
10 | mutationFn: async (postId: string) => {
11 | const res = await fetch("/api/add-like", {
12 | method: "POST",
13 | headers: {
14 | "Content-Type": "application/json",
15 | },
16 | body: JSON.stringify({ postId }),
17 | })
18 |
19 | const data = await res.json()
20 |
21 | if (!res.ok) {
22 | throw new Error(data.error)
23 | }
24 |
25 | return data
26 | },
27 | onMutate: async (postId) => {
28 | await queryClient.cancelQueries({ queryKey: ["posts"] })
29 | const prevPost = queryClient.getQueryData(["posts"])
30 | queryClient.setQueryData(["posts"], (old: any) => {
31 | return old.map((post: PostsType) => {
32 | if (post.id === postId) {
33 | const userHasLiked = post.likes.find(
34 | (like) => like.authorId === user?.id
35 | )
36 | if (userHasLiked) {
37 | return {
38 | ...post,
39 | likes: post.likes.filter((like) => like.authorId !== user?.id),
40 | }
41 | } else {
42 | return {
43 | ...post,
44 | likes: [
45 | ...post.likes,
46 | {
47 | id: crypto.randomUUID(),
48 | authorId: user?.id,
49 | postId: postId,
50 | },
51 | ],
52 | }
53 | }
54 | }
55 | return post
56 | })
57 | })
58 | return { prevPost }
59 | },
60 | onError: async (context: any) => {
61 | // Revert the specific post to its previous state
62 | await queryClient.setQueryData(["posts"], context.prevPost)
63 | },
64 | onSettled: async () => {
65 | // Invalidate the specific post
66 | queryClient.invalidateQueries(["posts"])
67 | },
68 | })
69 | return mutation
70 | }
71 |
72 | export default useSubmitLike
73 |
--------------------------------------------------------------------------------
/hook/useSubmitPost.ts:
--------------------------------------------------------------------------------
1 | import { useMutation, useQueryClient } from "@tanstack/react-query"
2 | import { PostSubmit } from "@/types/PostSubmit"
3 |
4 | const useSubmitPost = () => {
5 | const queryClient = useQueryClient()
6 | const mutation = useMutation({
7 | mutationFn: async ({ content, author, layoutId }: PostSubmit) => {
8 | const res = await fetch("/api/create-post", {
9 | method: "POST",
10 | headers: {
11 | "Content-Type": "application/json",
12 | },
13 | body: JSON.stringify({ content, layoutId, author }),
14 | })
15 |
16 | const data = await res.json()
17 |
18 | if (!res.ok) {
19 | throw new Error(data.error)
20 | }
21 |
22 | return data
23 | },
24 | onMutate: async (newPost) => {
25 | await queryClient.cancelQueries(["posts"])
26 | const previousPosts = queryClient.getQueryData(["posts"])
27 |
28 | queryClient.setQueryData(["posts"], (old: any) => [...old, newPost])
29 | //Set Delay
30 | await new Promise((resolve) => setTimeout(resolve, 300))
31 | return { previousPosts }
32 | },
33 | onError: async (err, newPost, context: any) => {
34 | console.log(err + "Error 👎")
35 | await queryClient.setQueryData(["posts"], context.previousPosts)
36 | },
37 | onSettled: async (data, error, variables, context) => {
38 | queryClient.invalidateQueries(["posts"])
39 | },
40 | })
41 | return mutation
42 | }
43 |
44 | export default useSubmitPost
45 |
--------------------------------------------------------------------------------
/middleware.ts:
--------------------------------------------------------------------------------
1 | import { authMiddleware } from "@clerk/nextjs"
2 |
3 | export default authMiddleware({
4 | // Make the homepage accessible while signed out
5 | publicRoutes: ["/", "/api/get-feed"],
6 | })
7 |
8 | export const config = {
9 | matcher: ["/((?!.*\\..*|_next).*)"],
10 | }
11 |
--------------------------------------------------------------------------------
/next.config.js:
--------------------------------------------------------------------------------
1 | const nextConfig = {
2 | experimental: {
3 | appDir: true,
4 | },
5 | images: { domains: ["lh3.googleusercontent.com", "images.clerk.dev"] },
6 | }
7 |
8 | module.exports = nextConfig
9 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "clerk-auth",
3 | "version": "0.1.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "clerk-auth",
9 | "version": "0.1.0",
10 | "dependencies": {
11 | "@clerk/nextjs": "^4.17.1",
12 | "@lottiefiles/react-lottie-player": "^3.5.3",
13 | "@prisma/client": "^4.13.0",
14 | "@prisma/extension-accelerate": "^0.1.1",
15 | "@tanstack/react-query": "^4.29.3",
16 | "@tanstack/react-query-devtools": "^4.29.5",
17 | "@types/node": "18.15.12",
18 | "@types/react": "18.0.37",
19 | "@types/react-dom": "18.0.11",
20 | "@vercel/analytics": "^1.0.0",
21 | "autoprefixer": "10.4.14",
22 | "framer-motion": "^10.12.4",
23 | "lottie-react": "^2.4.0",
24 | "micro": "^10.0.1",
25 | "next": "^13.3.4",
26 | "postcss": "8.4.23",
27 | "react": "18.2.0",
28 | "react-dom": "18.2.0",
29 | "react-icons": "^4.8.0",
30 | "react-useanimations": "^2.10.0",
31 | "tailwindcss": "3.3.1",
32 | "typescript": "5.0.4"
33 | },
34 | "devDependencies": {
35 | "prisma": "^4.13.0"
36 | }
37 | },
38 | "node_modules/@clerk/backend": {
39 | "version": "0.18.0",
40 | "resolved": "https://registry.npmjs.org/@clerk/backend/-/backend-0.18.0.tgz",
41 | "integrity": "sha512-d3YoDBK56XLdoAkLq7wCyY9B3Qxd1DG0+snXTXE7qWQtG6AFJEQ7FKFRFEsNzMZaWRfiiE9jQ9GJMjWEVvLAUA==",
42 | "dependencies": {
43 | "@clerk/types": "^3.36.0",
44 | "@peculiar/webcrypto": "1.4.1",
45 | "@types/node": "16.18.6",
46 | "deepmerge": "4.2.2",
47 | "node-fetch-native": "1.0.1",
48 | "snakecase-keys": "5.4.4",
49 | "tslib": "2.4.1"
50 | },
51 | "engines": {
52 | "node": ">=14"
53 | }
54 | },
55 | "node_modules/@clerk/backend/node_modules/@types/node": {
56 | "version": "16.18.6",
57 | "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.6.tgz",
58 | "integrity": "sha512-vmYJF0REqDyyU0gviezF/KHq/fYaUbFhkcNbQCuPGFQj6VTbXuHZoxs/Y7mutWe73C8AC6l9fFu8mSYiBAqkGA=="
59 | },
60 | "node_modules/@clerk/clerk-react": {
61 | "version": "4.15.4",
62 | "resolved": "https://registry.npmjs.org/@clerk/clerk-react/-/clerk-react-4.15.4.tgz",
63 | "integrity": "sha512-OSimB3ua3hJtlau3qUWIhIGIOoRZVEUMBuyVSkCkEEyjCGhHnSyO81Vcbv9slUtlP3DWlxeppMpdA62KZ6L1iA==",
64 | "dependencies": {
65 | "@clerk/shared": "^0.15.7",
66 | "@clerk/types": "^3.36.0",
67 | "swr": "1.3.0",
68 | "tslib": "2.4.1"
69 | },
70 | "engines": {
71 | "node": ">=14"
72 | },
73 | "peerDependencies": {
74 | "react": ">=16"
75 | }
76 | },
77 | "node_modules/@clerk/clerk-sdk-node": {
78 | "version": "4.8.7",
79 | "resolved": "https://registry.npmjs.org/@clerk/clerk-sdk-node/-/clerk-sdk-node-4.8.7.tgz",
80 | "integrity": "sha512-fOlfPOL7XhBR9Jg9RnUnYqRB6yXlE+3/kVZ4RG0CcWNVLwLwGIgHz0C3+Sa3e3g+UAVpuvvnXq2/42rstm/ADA==",
81 | "dependencies": {
82 | "@clerk/backend": "^0.18.0",
83 | "@clerk/types": "^3.36.0",
84 | "@types/cookies": "0.7.7",
85 | "@types/express": "4.17.14",
86 | "@types/node-fetch": "2.6.2",
87 | "camelcase-keys": "6.2.2",
88 | "cookie": "0.5.0",
89 | "snakecase-keys": "3.2.1",
90 | "tslib": "2.4.1"
91 | },
92 | "engines": {
93 | "node": ">=14"
94 | }
95 | },
96 | "node_modules/@clerk/clerk-sdk-node/node_modules/snakecase-keys": {
97 | "version": "3.2.1",
98 | "resolved": "https://registry.npmjs.org/snakecase-keys/-/snakecase-keys-3.2.1.tgz",
99 | "integrity": "sha512-CjU5pyRfwOtaOITYv5C8DzpZ8XA/ieRsDpr93HI2r6e3YInC6moZpSQbmUtg8cTk58tq2x3jcG2gv+p1IZGmMA==",
100 | "dependencies": {
101 | "map-obj": "^4.1.0",
102 | "to-snake-case": "^1.0.0"
103 | },
104 | "engines": {
105 | "node": ">=8"
106 | }
107 | },
108 | "node_modules/@clerk/nextjs": {
109 | "version": "4.17.1",
110 | "resolved": "https://registry.npmjs.org/@clerk/nextjs/-/nextjs-4.17.1.tgz",
111 | "integrity": "sha512-v6UPYUkwktUmZT01nJFWQvrWSyVJx6CYa/KVHo6gmSTyUFX7p7Tpfoknq1VCvqp6DCHdbJC1uHbXmjUd4AhwBQ==",
112 | "dependencies": {
113 | "@clerk/backend": "^0.18.0",
114 | "@clerk/clerk-react": "^4.15.4",
115 | "@clerk/clerk-sdk-node": "^4.8.7",
116 | "@clerk/types": "^3.36.0",
117 | "path-to-regexp": "6.2.1",
118 | "tslib": "2.4.1"
119 | },
120 | "engines": {
121 | "node": ">=14"
122 | },
123 | "peerDependencies": {
124 | "next": ">=10",
125 | "react": "^17.0.2 || ^18.0.0-0",
126 | "react-dom": "^17.0.2 || ^18.0.0-0"
127 | }
128 | },
129 | "node_modules/@clerk/shared": {
130 | "version": "0.15.7",
131 | "resolved": "https://registry.npmjs.org/@clerk/shared/-/shared-0.15.7.tgz",
132 | "integrity": "sha512-8kinCWFF28K8N/OCqfZYIEzxpyH8+HFZ1BmfloQLDSsiy8kpUljk3qbKkBRoHAxJKohSjZL6ax+IpBzt2FmkZw==",
133 | "peerDependencies": {
134 | "react": ">=16"
135 | }
136 | },
137 | "node_modules/@clerk/types": {
138 | "version": "3.36.0",
139 | "resolved": "https://registry.npmjs.org/@clerk/types/-/types-3.36.0.tgz",
140 | "integrity": "sha512-bsOIud1h3Tkvd9F0CGTqqD7NicvAF3O0hFQ2lGjuETFrNqV8houorrGM9d0ZMU72vsyzwTQ/Jw8vB4mIHIXHMQ==",
141 | "dependencies": {
142 | "csstype": "3.1.1"
143 | },
144 | "engines": {
145 | "node": ">=14"
146 | }
147 | },
148 | "node_modules/@emotion/is-prop-valid": {
149 | "version": "0.8.8",
150 | "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz",
151 | "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==",
152 | "optional": true,
153 | "dependencies": {
154 | "@emotion/memoize": "0.7.4"
155 | }
156 | },
157 | "node_modules/@emotion/memoize": {
158 | "version": "0.7.4",
159 | "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
160 | "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==",
161 | "optional": true
162 | },
163 | "node_modules/@jridgewell/gen-mapping": {
164 | "version": "0.3.3",
165 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
166 | "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
167 | "dependencies": {
168 | "@jridgewell/set-array": "^1.0.1",
169 | "@jridgewell/sourcemap-codec": "^1.4.10",
170 | "@jridgewell/trace-mapping": "^0.3.9"
171 | },
172 | "engines": {
173 | "node": ">=6.0.0"
174 | }
175 | },
176 | "node_modules/@jridgewell/resolve-uri": {
177 | "version": "3.1.0",
178 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
179 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
180 | "engines": {
181 | "node": ">=6.0.0"
182 | }
183 | },
184 | "node_modules/@jridgewell/set-array": {
185 | "version": "1.1.2",
186 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
187 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
188 | "engines": {
189 | "node": ">=6.0.0"
190 | }
191 | },
192 | "node_modules/@jridgewell/sourcemap-codec": {
193 | "version": "1.4.15",
194 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
195 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
196 | },
197 | "node_modules/@jridgewell/trace-mapping": {
198 | "version": "0.3.18",
199 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
200 | "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
201 | "dependencies": {
202 | "@jridgewell/resolve-uri": "3.1.0",
203 | "@jridgewell/sourcemap-codec": "1.4.14"
204 | }
205 | },
206 | "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": {
207 | "version": "1.4.14",
208 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
209 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
210 | },
211 | "node_modules/@lottiefiles/react-lottie-player": {
212 | "version": "3.5.3",
213 | "resolved": "https://registry.npmjs.org/@lottiefiles/react-lottie-player/-/react-lottie-player-3.5.3.tgz",
214 | "integrity": "sha512-6pGbiTMjGnPddR1ur8M/TIDCiogZMc1aKIUbMEKXKAuNeYwZ2hvqwBJ+w5KRm88ccdcU88C2cGyLVsboFlSdVQ==",
215 | "dependencies": {
216 | "lottie-web": "^5.10.2"
217 | },
218 | "peerDependencies": {
219 | "react": "16 - 18"
220 | }
221 | },
222 | "node_modules/@next/env": {
223 | "version": "13.3.4",
224 | "resolved": "https://registry.npmjs.org/@next/env/-/env-13.3.4.tgz",
225 | "integrity": "sha512-oTK/wRV2qga86m/4VdrR1+/56UA6U1Qv3sIgowB+bZjahniZLEG5BmmQjfoGv7ZuLXBZ8Eec6hkL9BqJcrEL2g=="
226 | },
227 | "node_modules/@next/swc-darwin-arm64": {
228 | "version": "13.3.4",
229 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.3.4.tgz",
230 | "integrity": "sha512-vux7RWfzxy1lD21CMwZsy9Ej+0+LZdIIj1gEhVmzOQqQZ5N56h8JamrjIVCfDL+Lpj8KwOmFZbPHE8qaYnL2pg==",
231 | "cpu": [
232 | "arm64"
233 | ],
234 | "optional": true,
235 | "os": [
236 | "darwin"
237 | ],
238 | "engines": {
239 | "node": ">= 10"
240 | }
241 | },
242 | "node_modules/@next/swc-darwin-x64": {
243 | "version": "13.3.4",
244 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.3.4.tgz",
245 | "integrity": "sha512-1tb+6JT98+t7UIhVQpKL7zegKnCs9RKU6cKNyj+DYKuC/NVl49/JaIlmwCwK8Ibl+RXxJrK7uSXSIO71feXsgw==",
246 | "cpu": [
247 | "x64"
248 | ],
249 | "optional": true,
250 | "os": [
251 | "darwin"
252 | ],
253 | "engines": {
254 | "node": ">= 10"
255 | }
256 | },
257 | "node_modules/@next/swc-linux-arm64-gnu": {
258 | "version": "13.3.4",
259 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.3.4.tgz",
260 | "integrity": "sha512-UqcKkYTKslf5YAJNtZ5XV1D5MQJIkVtDHL8OehDZERHzqOe7jvy41HFto33IDPPU8gJiP5eJb3V9U26uifqHjw==",
261 | "cpu": [
262 | "arm64"
263 | ],
264 | "optional": true,
265 | "os": [
266 | "linux"
267 | ],
268 | "engines": {
269 | "node": ">= 10"
270 | }
271 | },
272 | "node_modules/@next/swc-linux-arm64-musl": {
273 | "version": "13.3.4",
274 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.3.4.tgz",
275 | "integrity": "sha512-HE/FmE8VvstAfehyo/XsrhGgz97cEr7uf9IfkgJ/unqSXE0CDshDn/4as6rRid74eDR8/exi7c2tdo49Tuqxrw==",
276 | "cpu": [
277 | "arm64"
278 | ],
279 | "optional": true,
280 | "os": [
281 | "linux"
282 | ],
283 | "engines": {
284 | "node": ">= 10"
285 | }
286 | },
287 | "node_modules/@next/swc-linux-x64-gnu": {
288 | "version": "13.3.4",
289 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.3.4.tgz",
290 | "integrity": "sha512-xU+ugaupGA4SL5aK1ZYEqVHrW3TPOhxVcpaJLfpANm2443J4GfxCmOacu9XcSgy5c51Mq7C9uZ1LODKHfZosRQ==",
291 | "cpu": [
292 | "x64"
293 | ],
294 | "optional": true,
295 | "os": [
296 | "linux"
297 | ],
298 | "engines": {
299 | "node": ">= 10"
300 | }
301 | },
302 | "node_modules/@next/swc-linux-x64-musl": {
303 | "version": "13.3.4",
304 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.3.4.tgz",
305 | "integrity": "sha512-cZvmf5KcYeTfIK6bCypfmxGUjme53Ep7hx94JJtGrYgCA1VwEuYdh+KouubJaQCH3aqnNE7+zGnVEupEKfoaaA==",
306 | "cpu": [
307 | "x64"
308 | ],
309 | "optional": true,
310 | "os": [
311 | "linux"
312 | ],
313 | "engines": {
314 | "node": ">= 10"
315 | }
316 | },
317 | "node_modules/@next/swc-win32-arm64-msvc": {
318 | "version": "13.3.4",
319 | "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.3.4.tgz",
320 | "integrity": "sha512-7dL+CAUAjmgnVbjXPIpdj7/AQKFqEUL3bKtaOIE1JzJ5UMHHAXCPwzQtibrsvQpf9MwcAmiv8aburD3xH1xf8w==",
321 | "cpu": [
322 | "arm64"
323 | ],
324 | "optional": true,
325 | "os": [
326 | "win32"
327 | ],
328 | "engines": {
329 | "node": ">= 10"
330 | }
331 | },
332 | "node_modules/@next/swc-win32-ia32-msvc": {
333 | "version": "13.3.4",
334 | "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.3.4.tgz",
335 | "integrity": "sha512-qplTyzEl1vPkS+/DRK3pKSL0HeXrPHkYsV7U6gboHYpfqoHY+bcLUj3gwVUa9PEHRIoq4vXvPzx/WtzE6q52ng==",
336 | "cpu": [
337 | "ia32"
338 | ],
339 | "optional": true,
340 | "os": [
341 | "win32"
342 | ],
343 | "engines": {
344 | "node": ">= 10"
345 | }
346 | },
347 | "node_modules/@next/swc-win32-x64-msvc": {
348 | "version": "13.3.4",
349 | "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.3.4.tgz",
350 | "integrity": "sha512-usdvZT7JHrTuXC+4OKN5mCzUkviFkCyJJTkEz8jhBpucg+T7s83e7owm3oNFzmj5iKfvxU2St6VkcnSgpFvEYA==",
351 | "cpu": [
352 | "x64"
353 | ],
354 | "optional": true,
355 | "os": [
356 | "win32"
357 | ],
358 | "engines": {
359 | "node": ">= 10"
360 | }
361 | },
362 | "node_modules/@nodelib/fs.scandir": {
363 | "version": "2.1.5",
364 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
365 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
366 | "dependencies": {
367 | "@nodelib/fs.stat": "2.0.5",
368 | "run-parallel": "^1.1.9"
369 | },
370 | "engines": {
371 | "node": ">= 8"
372 | }
373 | },
374 | "node_modules/@nodelib/fs.stat": {
375 | "version": "2.0.5",
376 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
377 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
378 | "engines": {
379 | "node": ">= 8"
380 | }
381 | },
382 | "node_modules/@nodelib/fs.walk": {
383 | "version": "1.2.8",
384 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
385 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
386 | "dependencies": {
387 | "@nodelib/fs.scandir": "2.1.5",
388 | "fastq": "^1.6.0"
389 | },
390 | "engines": {
391 | "node": ">= 8"
392 | }
393 | },
394 | "node_modules/@peculiar/asn1-schema": {
395 | "version": "2.3.6",
396 | "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz",
397 | "integrity": "sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA==",
398 | "dependencies": {
399 | "asn1js": "^3.0.5",
400 | "pvtsutils": "^1.3.2",
401 | "tslib": "^2.4.0"
402 | }
403 | },
404 | "node_modules/@peculiar/json-schema": {
405 | "version": "1.1.12",
406 | "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz",
407 | "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==",
408 | "dependencies": {
409 | "tslib": "^2.0.0"
410 | },
411 | "engines": {
412 | "node": ">=8.0.0"
413 | }
414 | },
415 | "node_modules/@peculiar/webcrypto": {
416 | "version": "1.4.1",
417 | "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz",
418 | "integrity": "sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw==",
419 | "dependencies": {
420 | "@peculiar/asn1-schema": "^2.3.0",
421 | "@peculiar/json-schema": "^1.1.12",
422 | "pvtsutils": "^1.3.2",
423 | "tslib": "^2.4.1",
424 | "webcrypto-core": "^1.7.4"
425 | },
426 | "engines": {
427 | "node": ">=10.12.0"
428 | }
429 | },
430 | "node_modules/@prisma/client": {
431 | "version": "4.13.0",
432 | "resolved": "https://registry.npmjs.org/@prisma/client/-/client-4.13.0.tgz",
433 | "integrity": "sha512-YaiiICcRB2hatxsbnfB66uWXjcRw3jsZdlAVxmx0cFcTc/Ad/sKdHCcWSnqyDX47vAewkjRFwiLwrOUjswVvmA==",
434 | "hasInstallScript": true,
435 | "dependencies": {
436 | "@prisma/engines-version": "4.13.0-50.1e7af066ee9cb95cf3a403c78d9aab3e6b04f37a"
437 | },
438 | "engines": {
439 | "node": ">=14.17"
440 | },
441 | "peerDependencies": {
442 | "prisma": "*"
443 | },
444 | "peerDependenciesMeta": {
445 | "prisma": {
446 | "optional": true
447 | }
448 | }
449 | },
450 | "node_modules/@prisma/engines": {
451 | "version": "4.13.0",
452 | "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-4.13.0.tgz",
453 | "integrity": "sha512-HrniowHRZXHuGT9XRgoXEaP2gJLXM5RMoItaY2PkjvuZ+iHc0Zjbm/302MB8YsPdWozAPHHn+jpFEcEn71OgPw==",
454 | "devOptional": true,
455 | "hasInstallScript": true
456 | },
457 | "node_modules/@prisma/engines-version": {
458 | "version": "4.13.0-50.1e7af066ee9cb95cf3a403c78d9aab3e6b04f37a",
459 | "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-4.13.0-50.1e7af066ee9cb95cf3a403c78d9aab3e6b04f37a.tgz",
460 | "integrity": "sha512-fsQlbkhPJf08JOzKoyoD9atdUijuGBekwoOPZC3YOygXEml1MTtgXVpnUNchQlRSY82OQ6pSGQ9PxUe4arcSLQ=="
461 | },
462 | "node_modules/@prisma/extension-accelerate": {
463 | "version": "0.1.1",
464 | "resolved": "https://registry.npmjs.org/@prisma/extension-accelerate/-/extension-accelerate-0.1.1.tgz",
465 | "integrity": "sha512-8FXVDQhsuB+59uCqQgjQE2AwhsrdLc+/N5jbR0vdstqI6AQLe6qdI53iipiXrb6b+Yoqpu2Y4lu9A6F/fyhkCg==",
466 | "peerDependencies": {
467 | "@prisma/client": ">=4.10.0"
468 | }
469 | },
470 | "node_modules/@swc/helpers": {
471 | "version": "0.5.1",
472 | "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.1.tgz",
473 | "integrity": "sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==",
474 | "dependencies": {
475 | "tslib": "^2.4.0"
476 | }
477 | },
478 | "node_modules/@tanstack/match-sorter-utils": {
479 | "version": "8.8.4",
480 | "resolved": "https://registry.npmjs.org/@tanstack/match-sorter-utils/-/match-sorter-utils-8.8.4.tgz",
481 | "integrity": "sha512-rKH8LjZiszWEvmi01NR72QWZ8m4xmXre0OOwlRGnjU01Eqz/QnN+cqpty2PJ0efHblq09+KilvyR7lsbzmXVEw==",
482 | "dependencies": {
483 | "remove-accents": "0.4.2"
484 | },
485 | "engines": {
486 | "node": ">=12"
487 | },
488 | "funding": {
489 | "type": "github",
490 | "url": "https://github.com/sponsors/kentcdodds"
491 | }
492 | },
493 | "node_modules/@tanstack/query-core": {
494 | "version": "4.29.5",
495 | "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.29.5.tgz",
496 | "integrity": "sha512-xXIiyQ/4r9KfaJ3k6kejqcaqFXXBTzN2aOJ5H1J6aTJE9hl/nbgAdfF6oiIu0CD5xowejJEJ6bBg8TO7BN4NuQ==",
497 | "funding": {
498 | "type": "github",
499 | "url": "https://github.com/sponsors/tannerlinsley"
500 | }
501 | },
502 | "node_modules/@tanstack/react-query": {
503 | "version": "4.29.5",
504 | "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.29.5.tgz",
505 | "integrity": "sha512-F87cibC3s3eG0Q90g2O+hqntpCrudKFnR8P24qkH9uccEhXErnJxBC/AAI4cJRV2bfMO8IeGZQYf3WyYgmSg0w==",
506 | "dependencies": {
507 | "@tanstack/query-core": "4.29.5",
508 | "use-sync-external-store": "^1.2.0"
509 | },
510 | "funding": {
511 | "type": "github",
512 | "url": "https://github.com/sponsors/tannerlinsley"
513 | },
514 | "peerDependencies": {
515 | "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
516 | "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
517 | "react-native": "*"
518 | },
519 | "peerDependenciesMeta": {
520 | "react-dom": {
521 | "optional": true
522 | },
523 | "react-native": {
524 | "optional": true
525 | }
526 | }
527 | },
528 | "node_modules/@tanstack/react-query-devtools": {
529 | "version": "4.29.6",
530 | "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-4.29.6.tgz",
531 | "integrity": "sha512-qpYI41a69MWmrllcGiSE1KlpmnwJY/w0yKMnmp6VXn7nVy0i5TMMAT4u8D48F1Ipv/BKIDI1lqxPAvB4MqryBg==",
532 | "dependencies": {
533 | "@tanstack/match-sorter-utils": "^8.7.0",
534 | "superjson": "^1.10.0",
535 | "use-sync-external-store": "^1.2.0"
536 | },
537 | "funding": {
538 | "type": "github",
539 | "url": "https://github.com/sponsors/tannerlinsley"
540 | },
541 | "peerDependencies": {
542 | "@tanstack/react-query": "4.29.5",
543 | "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
544 | "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
545 | }
546 | },
547 | "node_modules/@types/body-parser": {
548 | "version": "1.19.2",
549 | "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
550 | "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
551 | "dependencies": {
552 | "@types/connect": "*",
553 | "@types/node": "*"
554 | }
555 | },
556 | "node_modules/@types/connect": {
557 | "version": "3.4.35",
558 | "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
559 | "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
560 | "dependencies": {
561 | "@types/node": "*"
562 | }
563 | },
564 | "node_modules/@types/cookies": {
565 | "version": "0.7.7",
566 | "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.7.tgz",
567 | "integrity": "sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==",
568 | "dependencies": {
569 | "@types/connect": "*",
570 | "@types/express": "*",
571 | "@types/keygrip": "*",
572 | "@types/node": "*"
573 | }
574 | },
575 | "node_modules/@types/express": {
576 | "version": "4.17.14",
577 | "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz",
578 | "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==",
579 | "dependencies": {
580 | "@types/body-parser": "*",
581 | "@types/express-serve-static-core": "^4.17.18",
582 | "@types/qs": "*",
583 | "@types/serve-static": "*"
584 | }
585 | },
586 | "node_modules/@types/express-serve-static-core": {
587 | "version": "4.17.34",
588 | "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.34.tgz",
589 | "integrity": "sha512-fvr49XlCGoUj2Pp730AItckfjat4WNb0lb3kfrLWffd+RLeoGAMsq7UOy04PAPtoL01uKwcp6u8nhzpgpDYr3w==",
590 | "dependencies": {
591 | "@types/node": "*",
592 | "@types/qs": "*",
593 | "@types/range-parser": "*",
594 | "@types/send": "*"
595 | }
596 | },
597 | "node_modules/@types/keygrip": {
598 | "version": "1.0.2",
599 | "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz",
600 | "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw=="
601 | },
602 | "node_modules/@types/mime": {
603 | "version": "1.3.2",
604 | "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
605 | "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="
606 | },
607 | "node_modules/@types/node": {
608 | "version": "18.15.12",
609 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.12.tgz",
610 | "integrity": "sha512-Wha1UwsB3CYdqUm2PPzh/1gujGCNtWVUYF0mB00fJFoR4gTyWTDPjSm+zBF787Ahw8vSGgBja90MkgFwvB86Dg=="
611 | },
612 | "node_modules/@types/node-fetch": {
613 | "version": "2.6.2",
614 | "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz",
615 | "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==",
616 | "dependencies": {
617 | "@types/node": "*",
618 | "form-data": "^3.0.0"
619 | }
620 | },
621 | "node_modules/@types/prop-types": {
622 | "version": "15.7.5",
623 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
624 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
625 | },
626 | "node_modules/@types/qs": {
627 | "version": "6.9.7",
628 | "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
629 | "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw=="
630 | },
631 | "node_modules/@types/range-parser": {
632 | "version": "1.2.4",
633 | "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
634 | "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
635 | },
636 | "node_modules/@types/react": {
637 | "version": "18.0.37",
638 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.37.tgz",
639 | "integrity": "sha512-4yaZZtkRN3ZIQD3KSEwkfcik8s0SWV+82dlJot1AbGYHCzJkWP3ENBY6wYeDRmKZ6HkrgoGAmR2HqdwYGp6OEw==",
640 | "dependencies": {
641 | "@types/prop-types": "*",
642 | "@types/scheduler": "*",
643 | "csstype": "^3.0.2"
644 | }
645 | },
646 | "node_modules/@types/react-dom": {
647 | "version": "18.0.11",
648 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz",
649 | "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==",
650 | "dependencies": {
651 | "@types/react": "*"
652 | }
653 | },
654 | "node_modules/@types/scheduler": {
655 | "version": "0.16.3",
656 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz",
657 | "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ=="
658 | },
659 | "node_modules/@types/send": {
660 | "version": "0.17.1",
661 | "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz",
662 | "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==",
663 | "dependencies": {
664 | "@types/mime": "^1",
665 | "@types/node": "*"
666 | }
667 | },
668 | "node_modules/@types/serve-static": {
669 | "version": "1.15.1",
670 | "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz",
671 | "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==",
672 | "dependencies": {
673 | "@types/mime": "*",
674 | "@types/node": "*"
675 | }
676 | },
677 | "node_modules/@vercel/analytics": {
678 | "version": "1.0.0",
679 | "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.0.0.tgz",
680 | "integrity": "sha512-RQmj7pv82JwGDHrnKeRc6TtSw2U7rWNubc2IH0ernTzWTj02yr9zvIYiYJeztsBzrJtWv7m8Nz6vxxb+cdEtJw==",
681 | "peerDependencies": {
682 | "react": "^16.8||^17||^18"
683 | }
684 | },
685 | "node_modules/any-promise": {
686 | "version": "1.3.0",
687 | "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
688 | "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
689 | },
690 | "node_modules/anymatch": {
691 | "version": "3.1.3",
692 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
693 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
694 | "dependencies": {
695 | "normalize-path": "^3.0.0",
696 | "picomatch": "^2.0.4"
697 | },
698 | "engines": {
699 | "node": ">= 8"
700 | }
701 | },
702 | "node_modules/arg": {
703 | "version": "4.1.0",
704 | "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz",
705 | "integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg=="
706 | },
707 | "node_modules/asn1js": {
708 | "version": "3.0.5",
709 | "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz",
710 | "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==",
711 | "dependencies": {
712 | "pvtsutils": "^1.3.2",
713 | "pvutils": "^1.1.3",
714 | "tslib": "^2.4.0"
715 | },
716 | "engines": {
717 | "node": ">=12.0.0"
718 | }
719 | },
720 | "node_modules/asynckit": {
721 | "version": "0.4.0",
722 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
723 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
724 | },
725 | "node_modules/autoprefixer": {
726 | "version": "10.4.14",
727 | "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz",
728 | "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==",
729 | "funding": [
730 | {
731 | "type": "opencollective",
732 | "url": "https://opencollective.com/postcss/"
733 | },
734 | {
735 | "type": "tidelift",
736 | "url": "https://tidelift.com/funding/github/npm/autoprefixer"
737 | }
738 | ],
739 | "dependencies": {
740 | "browserslist": "^4.21.5",
741 | "caniuse-lite": "^1.0.30001464",
742 | "fraction.js": "^4.2.0",
743 | "normalize-range": "^0.1.2",
744 | "picocolors": "^1.0.0",
745 | "postcss-value-parser": "^4.2.0"
746 | },
747 | "bin": {
748 | "autoprefixer": "bin/autoprefixer"
749 | },
750 | "engines": {
751 | "node": "^10 || ^12 || >=14"
752 | },
753 | "peerDependencies": {
754 | "postcss": "^8.1.0"
755 | }
756 | },
757 | "node_modules/balanced-match": {
758 | "version": "1.0.2",
759 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
760 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
761 | },
762 | "node_modules/binary-extensions": {
763 | "version": "2.2.0",
764 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
765 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
766 | "engines": {
767 | "node": ">=8"
768 | }
769 | },
770 | "node_modules/brace-expansion": {
771 | "version": "1.1.11",
772 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
773 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
774 | "dependencies": {
775 | "balanced-match": "^1.0.0",
776 | "concat-map": "0.0.1"
777 | }
778 | },
779 | "node_modules/braces": {
780 | "version": "3.0.2",
781 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
782 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
783 | "dependencies": {
784 | "fill-range": "^7.0.1"
785 | },
786 | "engines": {
787 | "node": ">=8"
788 | }
789 | },
790 | "node_modules/browserslist": {
791 | "version": "4.21.5",
792 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
793 | "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
794 | "funding": [
795 | {
796 | "type": "opencollective",
797 | "url": "https://opencollective.com/browserslist"
798 | },
799 | {
800 | "type": "tidelift",
801 | "url": "https://tidelift.com/funding/github/npm/browserslist"
802 | }
803 | ],
804 | "dependencies": {
805 | "caniuse-lite": "^1.0.30001449",
806 | "electron-to-chromium": "^1.4.284",
807 | "node-releases": "^2.0.8",
808 | "update-browserslist-db": "^1.0.10"
809 | },
810 | "bin": {
811 | "browserslist": "cli.js"
812 | },
813 | "engines": {
814 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
815 | }
816 | },
817 | "node_modules/busboy": {
818 | "version": "1.6.0",
819 | "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
820 | "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
821 | "dependencies": {
822 | "streamsearch": "^1.1.0"
823 | },
824 | "engines": {
825 | "node": ">=10.16.0"
826 | }
827 | },
828 | "node_modules/bytes": {
829 | "version": "3.1.0",
830 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
831 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
832 | "engines": {
833 | "node": ">= 0.8"
834 | }
835 | },
836 | "node_modules/camelcase": {
837 | "version": "5.3.1",
838 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
839 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
840 | "engines": {
841 | "node": ">=6"
842 | }
843 | },
844 | "node_modules/camelcase-css": {
845 | "version": "2.0.1",
846 | "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
847 | "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
848 | "engines": {
849 | "node": ">= 6"
850 | }
851 | },
852 | "node_modules/camelcase-keys": {
853 | "version": "6.2.2",
854 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
855 | "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
856 | "dependencies": {
857 | "camelcase": "^5.3.1",
858 | "map-obj": "^4.0.0",
859 | "quick-lru": "^4.0.1"
860 | },
861 | "engines": {
862 | "node": ">=8"
863 | },
864 | "funding": {
865 | "url": "https://github.com/sponsors/sindresorhus"
866 | }
867 | },
868 | "node_modules/caniuse-lite": {
869 | "version": "1.0.30001481",
870 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz",
871 | "integrity": "sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==",
872 | "funding": [
873 | {
874 | "type": "opencollective",
875 | "url": "https://opencollective.com/browserslist"
876 | },
877 | {
878 | "type": "tidelift",
879 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
880 | },
881 | {
882 | "type": "github",
883 | "url": "https://github.com/sponsors/ai"
884 | }
885 | ]
886 | },
887 | "node_modules/chokidar": {
888 | "version": "3.5.3",
889 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
890 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
891 | "funding": [
892 | {
893 | "type": "individual",
894 | "url": "https://paulmillr.com/funding/"
895 | }
896 | ],
897 | "dependencies": {
898 | "anymatch": "~3.1.2",
899 | "braces": "~3.0.2",
900 | "glob-parent": "~5.1.2",
901 | "is-binary-path": "~2.1.0",
902 | "is-glob": "~4.0.1",
903 | "normalize-path": "~3.0.0",
904 | "readdirp": "~3.6.0"
905 | },
906 | "engines": {
907 | "node": ">= 8.10.0"
908 | },
909 | "optionalDependencies": {
910 | "fsevents": "~2.3.2"
911 | }
912 | },
913 | "node_modules/chokidar/node_modules/glob-parent": {
914 | "version": "5.1.2",
915 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
916 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
917 | "dependencies": {
918 | "is-glob": "^4.0.1"
919 | },
920 | "engines": {
921 | "node": ">= 6"
922 | }
923 | },
924 | "node_modules/client-only": {
925 | "version": "0.0.1",
926 | "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
927 | "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
928 | },
929 | "node_modules/color-name": {
930 | "version": "1.1.4",
931 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
932 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
933 | },
934 | "node_modules/combined-stream": {
935 | "version": "1.0.8",
936 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
937 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
938 | "dependencies": {
939 | "delayed-stream": "~1.0.0"
940 | },
941 | "engines": {
942 | "node": ">= 0.8"
943 | }
944 | },
945 | "node_modules/commander": {
946 | "version": "4.1.1",
947 | "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
948 | "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
949 | "engines": {
950 | "node": ">= 6"
951 | }
952 | },
953 | "node_modules/concat-map": {
954 | "version": "0.0.1",
955 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
956 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
957 | },
958 | "node_modules/content-type": {
959 | "version": "1.0.4",
960 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
961 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
962 | "engines": {
963 | "node": ">= 0.6"
964 | }
965 | },
966 | "node_modules/cookie": {
967 | "version": "0.5.0",
968 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
969 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
970 | "engines": {
971 | "node": ">= 0.6"
972 | }
973 | },
974 | "node_modules/copy-anything": {
975 | "version": "3.0.3",
976 | "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.3.tgz",
977 | "integrity": "sha512-fpW2W/BqEzqPp29QS+MwwfisHCQZtiduTe/m8idFo0xbti9fIZ2WVhAsCv4ggFVH3AgCkVdpoOCtQC6gBrdhjw==",
978 | "dependencies": {
979 | "is-what": "^4.1.8"
980 | },
981 | "engines": {
982 | "node": ">=12.13"
983 | },
984 | "funding": {
985 | "url": "https://github.com/sponsors/mesqueeb"
986 | }
987 | },
988 | "node_modules/cssesc": {
989 | "version": "3.0.0",
990 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
991 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
992 | "bin": {
993 | "cssesc": "bin/cssesc"
994 | },
995 | "engines": {
996 | "node": ">=4"
997 | }
998 | },
999 | "node_modules/csstype": {
1000 | "version": "3.1.1",
1001 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
1002 | "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
1003 | },
1004 | "node_modules/deepmerge": {
1005 | "version": "4.2.2",
1006 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
1007 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
1008 | "engines": {
1009 | "node": ">=0.10.0"
1010 | }
1011 | },
1012 | "node_modules/delayed-stream": {
1013 | "version": "1.0.0",
1014 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
1015 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
1016 | "engines": {
1017 | "node": ">=0.4.0"
1018 | }
1019 | },
1020 | "node_modules/depd": {
1021 | "version": "1.1.2",
1022 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
1023 | "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
1024 | "engines": {
1025 | "node": ">= 0.6"
1026 | }
1027 | },
1028 | "node_modules/didyoumean": {
1029 | "version": "1.2.2",
1030 | "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
1031 | "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
1032 | },
1033 | "node_modules/dlv": {
1034 | "version": "1.1.3",
1035 | "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
1036 | "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
1037 | },
1038 | "node_modules/dot-case": {
1039 | "version": "3.0.4",
1040 | "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
1041 | "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
1042 | "dependencies": {
1043 | "no-case": "^3.0.4",
1044 | "tslib": "^2.0.3"
1045 | }
1046 | },
1047 | "node_modules/electron-to-chromium": {
1048 | "version": "1.4.377",
1049 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.377.tgz",
1050 | "integrity": "sha512-H3BYG6DW5Z+l0xcfXaicJGxrpA4kMlCxnN71+iNX+dBLkRMOdVJqFJiAmbNZZKA1zISpRg17JR03qGifXNsJtw=="
1051 | },
1052 | "node_modules/escalade": {
1053 | "version": "3.1.1",
1054 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
1055 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
1056 | "engines": {
1057 | "node": ">=6"
1058 | }
1059 | },
1060 | "node_modules/fast-glob": {
1061 | "version": "3.2.12",
1062 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
1063 | "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
1064 | "dependencies": {
1065 | "@nodelib/fs.stat": "^2.0.2",
1066 | "@nodelib/fs.walk": "^1.2.3",
1067 | "glob-parent": "^5.1.2",
1068 | "merge2": "^1.3.0",
1069 | "micromatch": "^4.0.4"
1070 | },
1071 | "engines": {
1072 | "node": ">=8.6.0"
1073 | }
1074 | },
1075 | "node_modules/fast-glob/node_modules/glob-parent": {
1076 | "version": "5.1.2",
1077 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1078 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1079 | "dependencies": {
1080 | "is-glob": "^4.0.1"
1081 | },
1082 | "engines": {
1083 | "node": ">= 6"
1084 | }
1085 | },
1086 | "node_modules/fastq": {
1087 | "version": "1.15.0",
1088 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
1089 | "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
1090 | "dependencies": {
1091 | "reusify": "^1.0.4"
1092 | }
1093 | },
1094 | "node_modules/fill-range": {
1095 | "version": "7.0.1",
1096 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
1097 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
1098 | "dependencies": {
1099 | "to-regex-range": "^5.0.1"
1100 | },
1101 | "engines": {
1102 | "node": ">=8"
1103 | }
1104 | },
1105 | "node_modules/form-data": {
1106 | "version": "3.0.1",
1107 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
1108 | "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
1109 | "dependencies": {
1110 | "asynckit": "^0.4.0",
1111 | "combined-stream": "^1.0.8",
1112 | "mime-types": "^2.1.12"
1113 | },
1114 | "engines": {
1115 | "node": ">= 6"
1116 | }
1117 | },
1118 | "node_modules/fraction.js": {
1119 | "version": "4.2.0",
1120 | "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
1121 | "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
1122 | "engines": {
1123 | "node": "*"
1124 | },
1125 | "funding": {
1126 | "type": "patreon",
1127 | "url": "https://www.patreon.com/infusion"
1128 | }
1129 | },
1130 | "node_modules/framer-motion": {
1131 | "version": "10.12.4",
1132 | "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.12.4.tgz",
1133 | "integrity": "sha512-9gLtv8T6dui0tujHROR+VM3kdJyKiFCFiD94IQE+0OuX6LaIyXtdVpviokVdrHSb1giWhmmX4yzoucALMx6mtw==",
1134 | "dependencies": {
1135 | "tslib": "^2.4.0"
1136 | },
1137 | "optionalDependencies": {
1138 | "@emotion/is-prop-valid": "^0.8.2"
1139 | },
1140 | "peerDependencies": {
1141 | "react": "^18.0.0",
1142 | "react-dom": "^18.0.0"
1143 | },
1144 | "peerDependenciesMeta": {
1145 | "react": {
1146 | "optional": true
1147 | },
1148 | "react-dom": {
1149 | "optional": true
1150 | }
1151 | }
1152 | },
1153 | "node_modules/fs.realpath": {
1154 | "version": "1.0.0",
1155 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1156 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
1157 | },
1158 | "node_modules/fsevents": {
1159 | "version": "2.3.2",
1160 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
1161 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
1162 | "hasInstallScript": true,
1163 | "optional": true,
1164 | "os": [
1165 | "darwin"
1166 | ],
1167 | "engines": {
1168 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1169 | }
1170 | },
1171 | "node_modules/function-bind": {
1172 | "version": "1.1.1",
1173 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1174 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
1175 | },
1176 | "node_modules/glob": {
1177 | "version": "7.1.6",
1178 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
1179 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
1180 | "dependencies": {
1181 | "fs.realpath": "^1.0.0",
1182 | "inflight": "^1.0.4",
1183 | "inherits": "2",
1184 | "minimatch": "^3.0.4",
1185 | "once": "^1.3.0",
1186 | "path-is-absolute": "^1.0.0"
1187 | },
1188 | "engines": {
1189 | "node": "*"
1190 | },
1191 | "funding": {
1192 | "url": "https://github.com/sponsors/isaacs"
1193 | }
1194 | },
1195 | "node_modules/glob-parent": {
1196 | "version": "6.0.2",
1197 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
1198 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
1199 | "dependencies": {
1200 | "is-glob": "^4.0.3"
1201 | },
1202 | "engines": {
1203 | "node": ">=10.13.0"
1204 | }
1205 | },
1206 | "node_modules/has": {
1207 | "version": "1.0.3",
1208 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1209 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1210 | "dependencies": {
1211 | "function-bind": "^1.1.1"
1212 | },
1213 | "engines": {
1214 | "node": ">= 0.4.0"
1215 | }
1216 | },
1217 | "node_modules/http-errors": {
1218 | "version": "1.7.3",
1219 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
1220 | "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
1221 | "dependencies": {
1222 | "depd": "~1.1.2",
1223 | "inherits": "2.0.4",
1224 | "setprototypeof": "1.1.1",
1225 | "statuses": ">= 1.5.0 < 2",
1226 | "toidentifier": "1.0.0"
1227 | },
1228 | "engines": {
1229 | "node": ">= 0.6"
1230 | }
1231 | },
1232 | "node_modules/iconv-lite": {
1233 | "version": "0.4.24",
1234 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1235 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1236 | "dependencies": {
1237 | "safer-buffer": ">= 2.1.2 < 3"
1238 | },
1239 | "engines": {
1240 | "node": ">=0.10.0"
1241 | }
1242 | },
1243 | "node_modules/inflight": {
1244 | "version": "1.0.6",
1245 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1246 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
1247 | "dependencies": {
1248 | "once": "^1.3.0",
1249 | "wrappy": "1"
1250 | }
1251 | },
1252 | "node_modules/inherits": {
1253 | "version": "2.0.4",
1254 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1255 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
1256 | },
1257 | "node_modules/is-binary-path": {
1258 | "version": "2.1.0",
1259 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1260 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1261 | "dependencies": {
1262 | "binary-extensions": "^2.0.0"
1263 | },
1264 | "engines": {
1265 | "node": ">=8"
1266 | }
1267 | },
1268 | "node_modules/is-core-module": {
1269 | "version": "2.12.0",
1270 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz",
1271 | "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==",
1272 | "dependencies": {
1273 | "has": "^1.0.3"
1274 | },
1275 | "funding": {
1276 | "url": "https://github.com/sponsors/ljharb"
1277 | }
1278 | },
1279 | "node_modules/is-extglob": {
1280 | "version": "2.1.1",
1281 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1282 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
1283 | "engines": {
1284 | "node": ">=0.10.0"
1285 | }
1286 | },
1287 | "node_modules/is-glob": {
1288 | "version": "4.0.3",
1289 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
1290 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
1291 | "dependencies": {
1292 | "is-extglob": "^2.1.1"
1293 | },
1294 | "engines": {
1295 | "node": ">=0.10.0"
1296 | }
1297 | },
1298 | "node_modules/is-number": {
1299 | "version": "7.0.0",
1300 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1301 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1302 | "engines": {
1303 | "node": ">=0.12.0"
1304 | }
1305 | },
1306 | "node_modules/is-what": {
1307 | "version": "4.1.8",
1308 | "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.8.tgz",
1309 | "integrity": "sha512-yq8gMao5upkPoGEU9LsB2P+K3Kt8Q3fQFCGyNCWOAnJAMzEXVV9drYb0TXr42TTliLLhKIBvulgAXgtLLnwzGA==",
1310 | "engines": {
1311 | "node": ">=12.13"
1312 | },
1313 | "funding": {
1314 | "url": "https://github.com/sponsors/mesqueeb"
1315 | }
1316 | },
1317 | "node_modules/jiti": {
1318 | "version": "1.18.2",
1319 | "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz",
1320 | "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==",
1321 | "bin": {
1322 | "jiti": "bin/jiti.js"
1323 | }
1324 | },
1325 | "node_modules/js-tokens": {
1326 | "version": "4.0.0",
1327 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1328 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
1329 | },
1330 | "node_modules/lilconfig": {
1331 | "version": "2.1.0",
1332 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
1333 | "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
1334 | "engines": {
1335 | "node": ">=10"
1336 | }
1337 | },
1338 | "node_modules/lines-and-columns": {
1339 | "version": "1.2.4",
1340 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
1341 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
1342 | },
1343 | "node_modules/loose-envify": {
1344 | "version": "1.4.0",
1345 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
1346 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
1347 | "dependencies": {
1348 | "js-tokens": "^3.0.0 || ^4.0.0"
1349 | },
1350 | "bin": {
1351 | "loose-envify": "cli.js"
1352 | }
1353 | },
1354 | "node_modules/lottie-react": {
1355 | "version": "2.4.0",
1356 | "resolved": "https://registry.npmjs.org/lottie-react/-/lottie-react-2.4.0.tgz",
1357 | "integrity": "sha512-pDJGj+AQlnlyHvOHFK7vLdsDcvbuqvwPZdMlJ360wrzGFurXeKPr8SiRCjLf3LrNYKANQtSsh5dz9UYQHuqx4w==",
1358 | "dependencies": {
1359 | "lottie-web": "^5.10.2"
1360 | },
1361 | "peerDependencies": {
1362 | "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
1363 | "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
1364 | }
1365 | },
1366 | "node_modules/lottie-web": {
1367 | "version": "5.11.0",
1368 | "resolved": "https://registry.npmjs.org/lottie-web/-/lottie-web-5.11.0.tgz",
1369 | "integrity": "sha512-9vSt0AtdOH98GKDXwD5LPfFg9Pcmxt5+1BllAbudKM5iqPxpJnJUfuGaP45OyudDrESCOBgsjnntVUTygBNlzw=="
1370 | },
1371 | "node_modules/lower-case": {
1372 | "version": "2.0.2",
1373 | "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
1374 | "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
1375 | "dependencies": {
1376 | "tslib": "^2.0.3"
1377 | }
1378 | },
1379 | "node_modules/map-obj": {
1380 | "version": "4.3.0",
1381 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
1382 | "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
1383 | "engines": {
1384 | "node": ">=8"
1385 | },
1386 | "funding": {
1387 | "url": "https://github.com/sponsors/sindresorhus"
1388 | }
1389 | },
1390 | "node_modules/merge2": {
1391 | "version": "1.4.1",
1392 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
1393 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
1394 | "engines": {
1395 | "node": ">= 8"
1396 | }
1397 | },
1398 | "node_modules/micro": {
1399 | "version": "10.0.1",
1400 | "resolved": "https://registry.npmjs.org/micro/-/micro-10.0.1.tgz",
1401 | "integrity": "sha512-9uwZSsUrqf6+4FLLpiPj5TRWQv5w5uJrJwsx1LR/TjqvQmKC1XnGQ9OHrFwR3cbZ46YqPqxO/XJCOpWnqMPw2Q==",
1402 | "dependencies": {
1403 | "arg": "4.1.0",
1404 | "content-type": "1.0.4",
1405 | "raw-body": "2.4.1"
1406 | },
1407 | "bin": {
1408 | "micro": "dist/src/bin/micro.js"
1409 | },
1410 | "engines": {
1411 | "node": ">= 16.0.0"
1412 | }
1413 | },
1414 | "node_modules/micromatch": {
1415 | "version": "4.0.5",
1416 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
1417 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
1418 | "dependencies": {
1419 | "braces": "^3.0.2",
1420 | "picomatch": "^2.3.1"
1421 | },
1422 | "engines": {
1423 | "node": ">=8.6"
1424 | }
1425 | },
1426 | "node_modules/mime-db": {
1427 | "version": "1.52.0",
1428 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
1429 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
1430 | "engines": {
1431 | "node": ">= 0.6"
1432 | }
1433 | },
1434 | "node_modules/mime-types": {
1435 | "version": "2.1.35",
1436 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
1437 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
1438 | "dependencies": {
1439 | "mime-db": "1.52.0"
1440 | },
1441 | "engines": {
1442 | "node": ">= 0.6"
1443 | }
1444 | },
1445 | "node_modules/minimatch": {
1446 | "version": "3.1.2",
1447 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1448 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1449 | "dependencies": {
1450 | "brace-expansion": "^1.1.7"
1451 | },
1452 | "engines": {
1453 | "node": "*"
1454 | }
1455 | },
1456 | "node_modules/mz": {
1457 | "version": "2.7.0",
1458 | "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
1459 | "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
1460 | "dependencies": {
1461 | "any-promise": "^1.0.0",
1462 | "object-assign": "^4.0.1",
1463 | "thenify-all": "^1.0.0"
1464 | }
1465 | },
1466 | "node_modules/nanoid": {
1467 | "version": "3.3.6",
1468 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
1469 | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
1470 | "funding": [
1471 | {
1472 | "type": "github",
1473 | "url": "https://github.com/sponsors/ai"
1474 | }
1475 | ],
1476 | "bin": {
1477 | "nanoid": "bin/nanoid.cjs"
1478 | },
1479 | "engines": {
1480 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1481 | }
1482 | },
1483 | "node_modules/next": {
1484 | "version": "13.3.4",
1485 | "resolved": "https://registry.npmjs.org/next/-/next-13.3.4.tgz",
1486 | "integrity": "sha512-sod7HeokBSvH5QV0KB+pXeLfcXUlLrGnVUXxHpmhilQ+nQYT3Im2O8DswD5e4uqbR8Pvdu9pcWgb1CbXZQZlmQ==",
1487 | "dependencies": {
1488 | "@next/env": "13.3.4",
1489 | "@swc/helpers": "0.5.1",
1490 | "busboy": "1.6.0",
1491 | "caniuse-lite": "^1.0.30001406",
1492 | "postcss": "8.4.14",
1493 | "styled-jsx": "5.1.1"
1494 | },
1495 | "bin": {
1496 | "next": "dist/bin/next"
1497 | },
1498 | "engines": {
1499 | "node": ">=16.8.0"
1500 | },
1501 | "optionalDependencies": {
1502 | "@next/swc-darwin-arm64": "13.3.4",
1503 | "@next/swc-darwin-x64": "13.3.4",
1504 | "@next/swc-linux-arm64-gnu": "13.3.4",
1505 | "@next/swc-linux-arm64-musl": "13.3.4",
1506 | "@next/swc-linux-x64-gnu": "13.3.4",
1507 | "@next/swc-linux-x64-musl": "13.3.4",
1508 | "@next/swc-win32-arm64-msvc": "13.3.4",
1509 | "@next/swc-win32-ia32-msvc": "13.3.4",
1510 | "@next/swc-win32-x64-msvc": "13.3.4"
1511 | },
1512 | "peerDependencies": {
1513 | "@opentelemetry/api": "^1.1.0",
1514 | "fibers": ">= 3.1.0",
1515 | "node-sass": "^6.0.0 || ^7.0.0",
1516 | "react": "^18.2.0",
1517 | "react-dom": "^18.2.0",
1518 | "sass": "^1.3.0"
1519 | },
1520 | "peerDependenciesMeta": {
1521 | "@opentelemetry/api": {
1522 | "optional": true
1523 | },
1524 | "fibers": {
1525 | "optional": true
1526 | },
1527 | "node-sass": {
1528 | "optional": true
1529 | },
1530 | "sass": {
1531 | "optional": true
1532 | }
1533 | }
1534 | },
1535 | "node_modules/next/node_modules/postcss": {
1536 | "version": "8.4.14",
1537 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
1538 | "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
1539 | "funding": [
1540 | {
1541 | "type": "opencollective",
1542 | "url": "https://opencollective.com/postcss/"
1543 | },
1544 | {
1545 | "type": "tidelift",
1546 | "url": "https://tidelift.com/funding/github/npm/postcss"
1547 | }
1548 | ],
1549 | "dependencies": {
1550 | "nanoid": "^3.3.4",
1551 | "picocolors": "^1.0.0",
1552 | "source-map-js": "^1.0.2"
1553 | },
1554 | "engines": {
1555 | "node": "^10 || ^12 || >=14"
1556 | }
1557 | },
1558 | "node_modules/no-case": {
1559 | "version": "3.0.4",
1560 | "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
1561 | "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
1562 | "dependencies": {
1563 | "lower-case": "^2.0.2",
1564 | "tslib": "^2.0.3"
1565 | }
1566 | },
1567 | "node_modules/node-fetch-native": {
1568 | "version": "1.0.1",
1569 | "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.0.1.tgz",
1570 | "integrity": "sha512-VzW+TAk2wE4X9maiKMlT+GsPU4OMmR1U9CrHSmd3DFLn2IcZ9VJ6M6BBugGfYUnPCLSYxXdZy17M0BEJyhUTwg=="
1571 | },
1572 | "node_modules/node-releases": {
1573 | "version": "2.0.10",
1574 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz",
1575 | "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w=="
1576 | },
1577 | "node_modules/normalize-path": {
1578 | "version": "3.0.0",
1579 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1580 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1581 | "engines": {
1582 | "node": ">=0.10.0"
1583 | }
1584 | },
1585 | "node_modules/normalize-range": {
1586 | "version": "0.1.2",
1587 | "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
1588 | "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
1589 | "engines": {
1590 | "node": ">=0.10.0"
1591 | }
1592 | },
1593 | "node_modules/object-assign": {
1594 | "version": "4.1.1",
1595 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1596 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
1597 | "engines": {
1598 | "node": ">=0.10.0"
1599 | }
1600 | },
1601 | "node_modules/object-hash": {
1602 | "version": "3.0.0",
1603 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
1604 | "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
1605 | "engines": {
1606 | "node": ">= 6"
1607 | }
1608 | },
1609 | "node_modules/once": {
1610 | "version": "1.4.0",
1611 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1612 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1613 | "dependencies": {
1614 | "wrappy": "1"
1615 | }
1616 | },
1617 | "node_modules/path-is-absolute": {
1618 | "version": "1.0.1",
1619 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1620 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
1621 | "engines": {
1622 | "node": ">=0.10.0"
1623 | }
1624 | },
1625 | "node_modules/path-parse": {
1626 | "version": "1.0.7",
1627 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1628 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
1629 | },
1630 | "node_modules/path-to-regexp": {
1631 | "version": "6.2.1",
1632 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
1633 | "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw=="
1634 | },
1635 | "node_modules/picocolors": {
1636 | "version": "1.0.0",
1637 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
1638 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
1639 | },
1640 | "node_modules/picomatch": {
1641 | "version": "2.3.1",
1642 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1643 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1644 | "engines": {
1645 | "node": ">=8.6"
1646 | },
1647 | "funding": {
1648 | "url": "https://github.com/sponsors/jonschlinkert"
1649 | }
1650 | },
1651 | "node_modules/pify": {
1652 | "version": "2.3.0",
1653 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
1654 | "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
1655 | "engines": {
1656 | "node": ">=0.10.0"
1657 | }
1658 | },
1659 | "node_modules/pirates": {
1660 | "version": "4.0.5",
1661 | "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
1662 | "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
1663 | "engines": {
1664 | "node": ">= 6"
1665 | }
1666 | },
1667 | "node_modules/postcss": {
1668 | "version": "8.4.23",
1669 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz",
1670 | "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==",
1671 | "funding": [
1672 | {
1673 | "type": "opencollective",
1674 | "url": "https://opencollective.com/postcss/"
1675 | },
1676 | {
1677 | "type": "tidelift",
1678 | "url": "https://tidelift.com/funding/github/npm/postcss"
1679 | },
1680 | {
1681 | "type": "github",
1682 | "url": "https://github.com/sponsors/ai"
1683 | }
1684 | ],
1685 | "dependencies": {
1686 | "nanoid": "^3.3.6",
1687 | "picocolors": "^1.0.0",
1688 | "source-map-js": "^1.0.2"
1689 | },
1690 | "engines": {
1691 | "node": "^10 || ^12 || >=14"
1692 | }
1693 | },
1694 | "node_modules/postcss-import": {
1695 | "version": "14.1.0",
1696 | "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz",
1697 | "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==",
1698 | "dependencies": {
1699 | "postcss-value-parser": "^4.0.0",
1700 | "read-cache": "^1.0.0",
1701 | "resolve": "^1.1.7"
1702 | },
1703 | "engines": {
1704 | "node": ">=10.0.0"
1705 | },
1706 | "peerDependencies": {
1707 | "postcss": "^8.0.0"
1708 | }
1709 | },
1710 | "node_modules/postcss-js": {
1711 | "version": "4.0.1",
1712 | "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
1713 | "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
1714 | "dependencies": {
1715 | "camelcase-css": "^2.0.1"
1716 | },
1717 | "engines": {
1718 | "node": "^12 || ^14 || >= 16"
1719 | },
1720 | "funding": {
1721 | "type": "opencollective",
1722 | "url": "https://opencollective.com/postcss/"
1723 | },
1724 | "peerDependencies": {
1725 | "postcss": "^8.4.21"
1726 | }
1727 | },
1728 | "node_modules/postcss-nested": {
1729 | "version": "6.0.0",
1730 | "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz",
1731 | "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==",
1732 | "dependencies": {
1733 | "postcss-selector-parser": "^6.0.10"
1734 | },
1735 | "engines": {
1736 | "node": ">=12.0"
1737 | },
1738 | "funding": {
1739 | "type": "opencollective",
1740 | "url": "https://opencollective.com/postcss/"
1741 | },
1742 | "peerDependencies": {
1743 | "postcss": "^8.2.14"
1744 | }
1745 | },
1746 | "node_modules/postcss-selector-parser": {
1747 | "version": "6.0.12",
1748 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.12.tgz",
1749 | "integrity": "sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==",
1750 | "dependencies": {
1751 | "cssesc": "^3.0.0",
1752 | "util-deprecate": "^1.0.2"
1753 | },
1754 | "engines": {
1755 | "node": ">=4"
1756 | }
1757 | },
1758 | "node_modules/postcss-value-parser": {
1759 | "version": "4.2.0",
1760 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
1761 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
1762 | },
1763 | "node_modules/prisma": {
1764 | "version": "4.13.0",
1765 | "resolved": "https://registry.npmjs.org/prisma/-/prisma-4.13.0.tgz",
1766 | "integrity": "sha512-L9mqjnSmvWIRCYJ9mQkwCtj4+JDYYTdhoyo8hlsHNDXaZLh/b4hR0IoKIBbTKxZuyHQzLopb/+0Rvb69uGV7uA==",
1767 | "devOptional": true,
1768 | "hasInstallScript": true,
1769 | "dependencies": {
1770 | "@prisma/engines": "4.13.0"
1771 | },
1772 | "bin": {
1773 | "prisma": "build/index.js",
1774 | "prisma2": "build/index.js"
1775 | },
1776 | "engines": {
1777 | "node": ">=14.17"
1778 | }
1779 | },
1780 | "node_modules/pvtsutils": {
1781 | "version": "1.3.2",
1782 | "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.2.tgz",
1783 | "integrity": "sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==",
1784 | "dependencies": {
1785 | "tslib": "^2.4.0"
1786 | }
1787 | },
1788 | "node_modules/pvutils": {
1789 | "version": "1.1.3",
1790 | "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz",
1791 | "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==",
1792 | "engines": {
1793 | "node": ">=6.0.0"
1794 | }
1795 | },
1796 | "node_modules/queue-microtask": {
1797 | "version": "1.2.3",
1798 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
1799 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
1800 | "funding": [
1801 | {
1802 | "type": "github",
1803 | "url": "https://github.com/sponsors/feross"
1804 | },
1805 | {
1806 | "type": "patreon",
1807 | "url": "https://www.patreon.com/feross"
1808 | },
1809 | {
1810 | "type": "consulting",
1811 | "url": "https://feross.org/support"
1812 | }
1813 | ]
1814 | },
1815 | "node_modules/quick-lru": {
1816 | "version": "4.0.1",
1817 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
1818 | "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
1819 | "engines": {
1820 | "node": ">=8"
1821 | }
1822 | },
1823 | "node_modules/raw-body": {
1824 | "version": "2.4.1",
1825 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz",
1826 | "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==",
1827 | "dependencies": {
1828 | "bytes": "3.1.0",
1829 | "http-errors": "1.7.3",
1830 | "iconv-lite": "0.4.24",
1831 | "unpipe": "1.0.0"
1832 | },
1833 | "engines": {
1834 | "node": ">= 0.8"
1835 | }
1836 | },
1837 | "node_modules/react": {
1838 | "version": "18.2.0",
1839 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
1840 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
1841 | "dependencies": {
1842 | "loose-envify": "^1.1.0"
1843 | },
1844 | "engines": {
1845 | "node": ">=0.10.0"
1846 | }
1847 | },
1848 | "node_modules/react-dom": {
1849 | "version": "18.2.0",
1850 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
1851 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
1852 | "dependencies": {
1853 | "loose-envify": "^1.1.0",
1854 | "scheduler": "^0.23.0"
1855 | },
1856 | "peerDependencies": {
1857 | "react": "^18.2.0"
1858 | }
1859 | },
1860 | "node_modules/react-icons": {
1861 | "version": "4.8.0",
1862 | "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.8.0.tgz",
1863 | "integrity": "sha512-N6+kOLcihDiAnj5Czu637waJqSnwlMNROzVZMhfX68V/9bu9qHaMIJC4UdozWoOk57gahFCNHwVvWzm0MTzRjg==",
1864 | "peerDependencies": {
1865 | "react": "*"
1866 | }
1867 | },
1868 | "node_modules/react-useanimations": {
1869 | "version": "2.10.0",
1870 | "resolved": "https://registry.npmjs.org/react-useanimations/-/react-useanimations-2.10.0.tgz",
1871 | "integrity": "sha512-MzGNv8vkvb6qEvMBCj+O6nUloUHSJRubMAH3uE7J4M+pjt5ud5xDaXBrQgv5GbvBg29XzviKWHTfvvkofDEu+Q==",
1872 | "dependencies": {
1873 | "lottie-web": "^5.5.7"
1874 | },
1875 | "peerDependencies": {
1876 | "react": ">=16",
1877 | "react-dom": ">=16"
1878 | }
1879 | },
1880 | "node_modules/read-cache": {
1881 | "version": "1.0.0",
1882 | "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
1883 | "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
1884 | "dependencies": {
1885 | "pify": "^2.3.0"
1886 | }
1887 | },
1888 | "node_modules/readdirp": {
1889 | "version": "3.6.0",
1890 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1891 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1892 | "dependencies": {
1893 | "picomatch": "^2.2.1"
1894 | },
1895 | "engines": {
1896 | "node": ">=8.10.0"
1897 | }
1898 | },
1899 | "node_modules/remove-accents": {
1900 | "version": "0.4.2",
1901 | "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz",
1902 | "integrity": "sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA=="
1903 | },
1904 | "node_modules/resolve": {
1905 | "version": "1.22.2",
1906 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
1907 | "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
1908 | "dependencies": {
1909 | "is-core-module": "^2.11.0",
1910 | "path-parse": "^1.0.7",
1911 | "supports-preserve-symlinks-flag": "^1.0.0"
1912 | },
1913 | "bin": {
1914 | "resolve": "bin/resolve"
1915 | },
1916 | "funding": {
1917 | "url": "https://github.com/sponsors/ljharb"
1918 | }
1919 | },
1920 | "node_modules/reusify": {
1921 | "version": "1.0.4",
1922 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
1923 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
1924 | "engines": {
1925 | "iojs": ">=1.0.0",
1926 | "node": ">=0.10.0"
1927 | }
1928 | },
1929 | "node_modules/run-parallel": {
1930 | "version": "1.2.0",
1931 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
1932 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
1933 | "funding": [
1934 | {
1935 | "type": "github",
1936 | "url": "https://github.com/sponsors/feross"
1937 | },
1938 | {
1939 | "type": "patreon",
1940 | "url": "https://www.patreon.com/feross"
1941 | },
1942 | {
1943 | "type": "consulting",
1944 | "url": "https://feross.org/support"
1945 | }
1946 | ],
1947 | "dependencies": {
1948 | "queue-microtask": "^1.2.2"
1949 | }
1950 | },
1951 | "node_modules/safer-buffer": {
1952 | "version": "2.1.2",
1953 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1954 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1955 | },
1956 | "node_modules/scheduler": {
1957 | "version": "0.23.0",
1958 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
1959 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
1960 | "dependencies": {
1961 | "loose-envify": "^1.1.0"
1962 | }
1963 | },
1964 | "node_modules/setprototypeof": {
1965 | "version": "1.1.1",
1966 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
1967 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
1968 | },
1969 | "node_modules/snake-case": {
1970 | "version": "3.0.4",
1971 | "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz",
1972 | "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==",
1973 | "dependencies": {
1974 | "dot-case": "^3.0.4",
1975 | "tslib": "^2.0.3"
1976 | }
1977 | },
1978 | "node_modules/snakecase-keys": {
1979 | "version": "5.4.4",
1980 | "resolved": "https://registry.npmjs.org/snakecase-keys/-/snakecase-keys-5.4.4.tgz",
1981 | "integrity": "sha512-YTywJG93yxwHLgrYLZjlC75moVEX04LZM4FHfihjHe1FCXm+QaLOFfSf535aXOAd0ArVQMWUAe8ZPm4VtWyXaA==",
1982 | "dependencies": {
1983 | "map-obj": "^4.1.0",
1984 | "snake-case": "^3.0.4",
1985 | "type-fest": "^2.5.2"
1986 | },
1987 | "engines": {
1988 | "node": ">=12"
1989 | }
1990 | },
1991 | "node_modules/source-map-js": {
1992 | "version": "1.0.2",
1993 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
1994 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
1995 | "engines": {
1996 | "node": ">=0.10.0"
1997 | }
1998 | },
1999 | "node_modules/statuses": {
2000 | "version": "1.5.0",
2001 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
2002 | "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
2003 | "engines": {
2004 | "node": ">= 0.6"
2005 | }
2006 | },
2007 | "node_modules/streamsearch": {
2008 | "version": "1.1.0",
2009 | "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
2010 | "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
2011 | "engines": {
2012 | "node": ">=10.0.0"
2013 | }
2014 | },
2015 | "node_modules/styled-jsx": {
2016 | "version": "5.1.1",
2017 | "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
2018 | "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
2019 | "dependencies": {
2020 | "client-only": "0.0.1"
2021 | },
2022 | "engines": {
2023 | "node": ">= 12.0.0"
2024 | },
2025 | "peerDependencies": {
2026 | "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0"
2027 | },
2028 | "peerDependenciesMeta": {
2029 | "@babel/core": {
2030 | "optional": true
2031 | },
2032 | "babel-plugin-macros": {
2033 | "optional": true
2034 | }
2035 | }
2036 | },
2037 | "node_modules/sucrase": {
2038 | "version": "3.32.0",
2039 | "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz",
2040 | "integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==",
2041 | "dependencies": {
2042 | "@jridgewell/gen-mapping": "^0.3.2",
2043 | "commander": "^4.0.0",
2044 | "glob": "7.1.6",
2045 | "lines-and-columns": "^1.1.6",
2046 | "mz": "^2.7.0",
2047 | "pirates": "^4.0.1",
2048 | "ts-interface-checker": "^0.1.9"
2049 | },
2050 | "bin": {
2051 | "sucrase": "bin/sucrase",
2052 | "sucrase-node": "bin/sucrase-node"
2053 | },
2054 | "engines": {
2055 | "node": ">=8"
2056 | }
2057 | },
2058 | "node_modules/superjson": {
2059 | "version": "1.12.3",
2060 | "resolved": "https://registry.npmjs.org/superjson/-/superjson-1.12.3.tgz",
2061 | "integrity": "sha512-0j+U70KUtP8+roVPbwfqkyQI7lBt7ETnuA7KXbTDX3mCKiD/4fXs2ldKSMdt0MCfpTwiMxo20yFU3vu6ewETpQ==",
2062 | "dependencies": {
2063 | "copy-anything": "^3.0.2"
2064 | },
2065 | "engines": {
2066 | "node": ">=10"
2067 | }
2068 | },
2069 | "node_modules/supports-preserve-symlinks-flag": {
2070 | "version": "1.0.0",
2071 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
2072 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
2073 | "engines": {
2074 | "node": ">= 0.4"
2075 | },
2076 | "funding": {
2077 | "url": "https://github.com/sponsors/ljharb"
2078 | }
2079 | },
2080 | "node_modules/swr": {
2081 | "version": "1.3.0",
2082 | "resolved": "https://registry.npmjs.org/swr/-/swr-1.3.0.tgz",
2083 | "integrity": "sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw==",
2084 | "peerDependencies": {
2085 | "react": "^16.11.0 || ^17.0.0 || ^18.0.0"
2086 | }
2087 | },
2088 | "node_modules/tailwindcss": {
2089 | "version": "3.3.1",
2090 | "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.1.tgz",
2091 | "integrity": "sha512-Vkiouc41d4CEq0ujXl6oiGFQ7bA3WEhUZdTgXAhtKxSy49OmKs8rEfQmupsfF0IGW8fv2iQkp1EVUuapCFrZ9g==",
2092 | "dependencies": {
2093 | "arg": "^5.0.2",
2094 | "chokidar": "^3.5.3",
2095 | "color-name": "^1.1.4",
2096 | "didyoumean": "^1.2.2",
2097 | "dlv": "^1.1.3",
2098 | "fast-glob": "^3.2.12",
2099 | "glob-parent": "^6.0.2",
2100 | "is-glob": "^4.0.3",
2101 | "jiti": "^1.17.2",
2102 | "lilconfig": "^2.0.6",
2103 | "micromatch": "^4.0.5",
2104 | "normalize-path": "^3.0.0",
2105 | "object-hash": "^3.0.0",
2106 | "picocolors": "^1.0.0",
2107 | "postcss": "^8.0.9",
2108 | "postcss-import": "^14.1.0",
2109 | "postcss-js": "^4.0.0",
2110 | "postcss-load-config": "^3.1.4",
2111 | "postcss-nested": "6.0.0",
2112 | "postcss-selector-parser": "^6.0.11",
2113 | "postcss-value-parser": "^4.2.0",
2114 | "quick-lru": "^5.1.1",
2115 | "resolve": "^1.22.1",
2116 | "sucrase": "^3.29.0"
2117 | },
2118 | "bin": {
2119 | "tailwind": "lib/cli.js",
2120 | "tailwindcss": "lib/cli.js"
2121 | },
2122 | "engines": {
2123 | "node": ">=12.13.0"
2124 | },
2125 | "peerDependencies": {
2126 | "postcss": "^8.0.9"
2127 | }
2128 | },
2129 | "node_modules/tailwindcss/node_modules/arg": {
2130 | "version": "5.0.2",
2131 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
2132 | "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
2133 | },
2134 | "node_modules/tailwindcss/node_modules/postcss-load-config": {
2135 | "version": "3.1.4",
2136 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz",
2137 | "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==",
2138 | "dependencies": {
2139 | "lilconfig": "^2.0.5",
2140 | "yaml": "^1.10.2"
2141 | },
2142 | "engines": {
2143 | "node": ">= 10"
2144 | },
2145 | "funding": {
2146 | "type": "opencollective",
2147 | "url": "https://opencollective.com/postcss/"
2148 | },
2149 | "peerDependencies": {
2150 | "postcss": ">=8.0.9",
2151 | "ts-node": ">=9.0.0"
2152 | },
2153 | "peerDependenciesMeta": {
2154 | "postcss": {
2155 | "optional": true
2156 | },
2157 | "ts-node": {
2158 | "optional": true
2159 | }
2160 | }
2161 | },
2162 | "node_modules/tailwindcss/node_modules/quick-lru": {
2163 | "version": "5.1.1",
2164 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
2165 | "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
2166 | "engines": {
2167 | "node": ">=10"
2168 | },
2169 | "funding": {
2170 | "url": "https://github.com/sponsors/sindresorhus"
2171 | }
2172 | },
2173 | "node_modules/thenify": {
2174 | "version": "3.3.1",
2175 | "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
2176 | "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
2177 | "dependencies": {
2178 | "any-promise": "^1.0.0"
2179 | }
2180 | },
2181 | "node_modules/thenify-all": {
2182 | "version": "1.6.0",
2183 | "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
2184 | "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
2185 | "dependencies": {
2186 | "thenify": ">= 3.1.0 < 4"
2187 | },
2188 | "engines": {
2189 | "node": ">=0.8"
2190 | }
2191 | },
2192 | "node_modules/to-no-case": {
2193 | "version": "1.0.2",
2194 | "resolved": "https://registry.npmjs.org/to-no-case/-/to-no-case-1.0.2.tgz",
2195 | "integrity": "sha512-Z3g735FxuZY8rodxV4gH7LxClE4H0hTIyHNIHdk+vpQxjLm0cwnKXq/OFVZ76SOQmto7txVcwSCwkU5kqp+FKg=="
2196 | },
2197 | "node_modules/to-regex-range": {
2198 | "version": "5.0.1",
2199 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
2200 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
2201 | "dependencies": {
2202 | "is-number": "^7.0.0"
2203 | },
2204 | "engines": {
2205 | "node": ">=8.0"
2206 | }
2207 | },
2208 | "node_modules/to-snake-case": {
2209 | "version": "1.0.0",
2210 | "resolved": "https://registry.npmjs.org/to-snake-case/-/to-snake-case-1.0.0.tgz",
2211 | "integrity": "sha512-joRpzBAk1Bhi2eGEYBjukEWHOe/IvclOkiJl3DtA91jV6NwQ3MwXA4FHYeqk8BNp/D8bmi9tcNbRu/SozP0jbQ==",
2212 | "dependencies": {
2213 | "to-space-case": "^1.0.0"
2214 | }
2215 | },
2216 | "node_modules/to-space-case": {
2217 | "version": "1.0.0",
2218 | "resolved": "https://registry.npmjs.org/to-space-case/-/to-space-case-1.0.0.tgz",
2219 | "integrity": "sha512-rLdvwXZ39VOn1IxGL3V6ZstoTbwLRckQmn/U8ZDLuWwIXNpuZDhQ3AiRUlhTbOXFVE9C+dR51wM0CBDhk31VcA==",
2220 | "dependencies": {
2221 | "to-no-case": "^1.0.0"
2222 | }
2223 | },
2224 | "node_modules/toidentifier": {
2225 | "version": "1.0.0",
2226 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
2227 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
2228 | "engines": {
2229 | "node": ">=0.6"
2230 | }
2231 | },
2232 | "node_modules/ts-interface-checker": {
2233 | "version": "0.1.13",
2234 | "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
2235 | "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
2236 | },
2237 | "node_modules/tslib": {
2238 | "version": "2.4.1",
2239 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
2240 | "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
2241 | },
2242 | "node_modules/type-fest": {
2243 | "version": "2.19.0",
2244 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
2245 | "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
2246 | "engines": {
2247 | "node": ">=12.20"
2248 | },
2249 | "funding": {
2250 | "url": "https://github.com/sponsors/sindresorhus"
2251 | }
2252 | },
2253 | "node_modules/typescript": {
2254 | "version": "5.0.4",
2255 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
2256 | "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
2257 | "bin": {
2258 | "tsc": "bin/tsc",
2259 | "tsserver": "bin/tsserver"
2260 | },
2261 | "engines": {
2262 | "node": ">=12.20"
2263 | }
2264 | },
2265 | "node_modules/unpipe": {
2266 | "version": "1.0.0",
2267 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
2268 | "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
2269 | "engines": {
2270 | "node": ">= 0.8"
2271 | }
2272 | },
2273 | "node_modules/update-browserslist-db": {
2274 | "version": "1.0.11",
2275 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
2276 | "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
2277 | "funding": [
2278 | {
2279 | "type": "opencollective",
2280 | "url": "https://opencollective.com/browserslist"
2281 | },
2282 | {
2283 | "type": "tidelift",
2284 | "url": "https://tidelift.com/funding/github/npm/browserslist"
2285 | },
2286 | {
2287 | "type": "github",
2288 | "url": "https://github.com/sponsors/ai"
2289 | }
2290 | ],
2291 | "dependencies": {
2292 | "escalade": "^3.1.1",
2293 | "picocolors": "^1.0.0"
2294 | },
2295 | "bin": {
2296 | "update-browserslist-db": "cli.js"
2297 | },
2298 | "peerDependencies": {
2299 | "browserslist": ">= 4.21.0"
2300 | }
2301 | },
2302 | "node_modules/use-sync-external-store": {
2303 | "version": "1.2.0",
2304 | "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
2305 | "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
2306 | "peerDependencies": {
2307 | "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
2308 | }
2309 | },
2310 | "node_modules/util-deprecate": {
2311 | "version": "1.0.2",
2312 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2313 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
2314 | },
2315 | "node_modules/webcrypto-core": {
2316 | "version": "1.7.7",
2317 | "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.7.tgz",
2318 | "integrity": "sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==",
2319 | "dependencies": {
2320 | "@peculiar/asn1-schema": "^2.3.6",
2321 | "@peculiar/json-schema": "^1.1.12",
2322 | "asn1js": "^3.0.1",
2323 | "pvtsutils": "^1.3.2",
2324 | "tslib": "^2.4.0"
2325 | }
2326 | },
2327 | "node_modules/wrappy": {
2328 | "version": "1.0.2",
2329 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2330 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
2331 | },
2332 | "node_modules/yaml": {
2333 | "version": "1.10.2",
2334 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
2335 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
2336 | "engines": {
2337 | "node": ">= 6"
2338 | }
2339 | }
2340 | }
2341 | }
2342 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "clerk-auth",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next dev",
7 | "build": "prisma generate && next build",
8 | "start": "next start",
9 | "lint": "next lint"
10 | },
11 | "dependencies": {
12 | "@clerk/nextjs": "^4.17.1",
13 | "@lottiefiles/react-lottie-player": "^3.5.3",
14 | "@prisma/client": "^4.13.0",
15 | "@prisma/extension-accelerate": "^0.1.1",
16 | "@tanstack/react-query": "^4.29.3",
17 | "@tanstack/react-query-devtools": "^4.29.5",
18 | "@types/node": "18.15.12",
19 | "@types/react": "18.0.37",
20 | "@types/react-dom": "18.0.11",
21 | "@vercel/analytics": "^1.0.0",
22 | "autoprefixer": "10.4.14",
23 | "framer-motion": "^10.12.4",
24 | "lottie-react": "^2.4.0",
25 | "micro": "^10.0.1",
26 | "next": "^13.3.4",
27 | "postcss": "8.4.23",
28 | "react": "18.2.0",
29 | "react-dom": "18.2.0",
30 | "react-icons": "^4.8.0",
31 | "react-useanimations": "^2.10.0",
32 | "tailwindcss": "3.3.1",
33 | "typescript": "5.0.4"
34 | },
35 | "devDependencies": {
36 | "prisma": "^4.13.0"
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/prisma/client.ts:
--------------------------------------------------------------------------------
1 | import { PrismaClient } from "@prisma/client"
2 |
3 | const globalForPrisma = global as unknown as {
4 | prisma: PrismaClient | undefined
5 | }
6 |
7 | export const prisma = globalForPrisma.prisma ?? new PrismaClient({})
8 |
9 | if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma
10 |
--------------------------------------------------------------------------------
/prisma/migrations/20230421172749_posts/migration.sql:
--------------------------------------------------------------------------------
1 | -- CreateTable
2 | CREATE TABLE "Post" (
3 | "id" SERIAL NOT NULL,
4 | "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
5 | "updatedAt" TIMESTAMP(3) NOT NULL,
6 | "title" TEXT NOT NULL,
7 | "content" TEXT NOT NULL,
8 | "published" BOOLEAN NOT NULL DEFAULT false,
9 | "authorId" TEXT NOT NULL,
10 |
11 | CONSTRAINT "Post_pkey" PRIMARY KEY ("id")
12 | );
13 |
--------------------------------------------------------------------------------
/prisma/migrations/20230421191015_added_user/migration.sql:
--------------------------------------------------------------------------------
1 | -- CreateTable
2 | CREATE TABLE "User" (
3 | "id" TEXT NOT NULL,
4 |
5 | CONSTRAINT "User_pkey" PRIMARY KEY ("id")
6 | );
7 |
8 | -- AddForeignKey
9 | ALTER TABLE "Post" ADD CONSTRAINT "Post_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
10 |
--------------------------------------------------------------------------------
/prisma/migrations/20230422000105_add_like_and_comment_models/migration.sql:
--------------------------------------------------------------------------------
1 | /*
2 | Warnings:
3 |
4 | - You are about to drop the column `title` on the `Post` table. All the data in the column will be lost.
5 |
6 | */
7 | -- AlterTable
8 | ALTER TABLE "Post" DROP COLUMN "title";
9 |
10 | -- CreateTable
11 | CREATE TABLE "Comment" (
12 | "id" SERIAL NOT NULL,
13 | "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
14 | "updatedAt" TIMESTAMP(3) NOT NULL,
15 | "content" TEXT NOT NULL,
16 | "authorId" TEXT NOT NULL,
17 | "postId" INTEGER NOT NULL,
18 |
19 | CONSTRAINT "Comment_pkey" PRIMARY KEY ("id")
20 | );
21 |
22 | -- CreateTable
23 | CREATE TABLE "Like" (
24 | "id" SERIAL NOT NULL,
25 | "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
26 | "authorId" TEXT NOT NULL,
27 | "postId" INTEGER NOT NULL,
28 |
29 | CONSTRAINT "Like_pkey" PRIMARY KEY ("id")
30 | );
31 |
32 | -- AddForeignKey
33 | ALTER TABLE "Comment" ADD CONSTRAINT "Comment_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
34 |
35 | -- AddForeignKey
36 | ALTER TABLE "Comment" ADD CONSTRAINT "Comment_postId_fkey" FOREIGN KEY ("postId") REFERENCES "Post"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
37 |
38 | -- AddForeignKey
39 | ALTER TABLE "Like" ADD CONSTRAINT "Like_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
40 |
41 | -- AddForeignKey
42 | ALTER TABLE "Like" ADD CONSTRAINT "Like_postId_fkey" FOREIGN KEY ("postId") REFERENCES "Post"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
43 |
--------------------------------------------------------------------------------
/prisma/migrations/20230422015102_added_more_user_info/migration.sql:
--------------------------------------------------------------------------------
1 | /*
2 | Warnings:
3 |
4 | - Added the required column `name` to the `User` table without a default value. This is not possible if the table is not empty.
5 | - Added the required column `profile_image_url` to the `User` table without a default value. This is not possible if the table is not empty.
6 |
7 | */
8 | -- AlterTable
9 | ALTER TABLE "User" ADD COLUMN "name" TEXT NOT NULL,
10 | ADD COLUMN "profile_image_url" TEXT NOT NULL;
11 |
--------------------------------------------------------------------------------
/prisma/migrations/20230425235700_string_ids/migration.sql:
--------------------------------------------------------------------------------
1 | /*
2 | Warnings:
3 |
4 | - The primary key for the `Comment` table will be changed. If it partially fails, the table could be left without primary key constraint.
5 | - The primary key for the `Like` table will be changed. If it partially fails, the table could be left without primary key constraint.
6 | - The primary key for the `Post` table will be changed. If it partially fails, the table could be left without primary key constraint.
7 |
8 | */
9 | -- DropForeignKey
10 | ALTER TABLE "Comment" DROP CONSTRAINT "Comment_postId_fkey";
11 |
12 | -- DropForeignKey
13 | ALTER TABLE "Like" DROP CONSTRAINT "Like_postId_fkey";
14 |
15 | -- AlterTable
16 | ALTER TABLE "Comment" DROP CONSTRAINT "Comment_pkey",
17 | ALTER COLUMN "id" DROP DEFAULT,
18 | ALTER COLUMN "id" SET DATA TYPE TEXT,
19 | ALTER COLUMN "postId" SET DATA TYPE TEXT,
20 | ADD CONSTRAINT "Comment_pkey" PRIMARY KEY ("id");
21 | DROP SEQUENCE "Comment_id_seq";
22 |
23 | -- AlterTable
24 | ALTER TABLE "Like" DROP CONSTRAINT "Like_pkey",
25 | ALTER COLUMN "id" DROP DEFAULT,
26 | ALTER COLUMN "id" SET DATA TYPE TEXT,
27 | ALTER COLUMN "postId" SET DATA TYPE TEXT,
28 | ADD CONSTRAINT "Like_pkey" PRIMARY KEY ("id");
29 | DROP SEQUENCE "Like_id_seq";
30 |
31 | -- AlterTable
32 | ALTER TABLE "Post" DROP CONSTRAINT "Post_pkey",
33 | ALTER COLUMN "id" DROP DEFAULT,
34 | ALTER COLUMN "id" SET DATA TYPE TEXT,
35 | ADD CONSTRAINT "Post_pkey" PRIMARY KEY ("id");
36 | DROP SEQUENCE "Post_id_seq";
37 |
38 | -- AddForeignKey
39 | ALTER TABLE "Comment" ADD CONSTRAINT "Comment_postId_fkey" FOREIGN KEY ("postId") REFERENCES "Post"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
40 |
41 | -- AddForeignKey
42 | ALTER TABLE "Like" ADD CONSTRAINT "Like_postId_fkey" FOREIGN KEY ("postId") REFERENCES "Post"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
43 |
--------------------------------------------------------------------------------
/prisma/migrations/20230426102757_layoutid/migration.sql:
--------------------------------------------------------------------------------
1 | /*
2 | Warnings:
3 |
4 | - The required column `layoutId` was added to the `Post` table with a prisma-level default value. This is not possible if the table is not empty. Please add this column as optional, then populate it before making it required.
5 |
6 | */
7 | -- AlterTable
8 | ALTER TABLE "Post" ADD COLUMN "layoutId" TEXT NOT NULL;
9 |
--------------------------------------------------------------------------------
/prisma/migrations/20230506192917_/migration.sql:
--------------------------------------------------------------------------------
1 | /*
2 | Warnings:
3 |
4 | - A unique constraint covering the columns `[authorId]` on the table `Like` will be added. If there are existing duplicate values, this will fail.
5 |
6 | */
7 | -- CreateIndex
8 | CREATE UNIQUE INDEX "Like_authorId_key" ON "Like"("authorId");
9 |
--------------------------------------------------------------------------------
/prisma/migrations/20230506193555_revert/migration.sql:
--------------------------------------------------------------------------------
1 | -- DropIndex
2 | DROP INDEX "Like_authorId_key";
3 |
--------------------------------------------------------------------------------
/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/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 | previewFeatures = ["jsonProtocol"]
7 | }
8 |
9 | datasource db {
10 | provider = "postgresql"
11 | url = env("DATABASE_URL")
12 | }
13 |
14 | model Post {
15 | id String @id @default(uuid())
16 | createdAt DateTime @default(now())
17 | updatedAt DateTime @updatedAt
18 | content String
19 | layoutId String
20 | published Boolean @default(false)
21 | author User @relation(fields: [authorId], references: [id])
22 | authorId String
23 | comments Comment[]
24 | likes Like[]
25 | }
26 |
27 | model User {
28 | id String @id
29 | name String
30 | profile_image_url String
31 | posts Post[]
32 | comments Comment[]
33 | likes Like[]
34 | }
35 |
36 | model Comment {
37 | id String @id @default(uuid())
38 | createdAt DateTime @default(now())
39 | updatedAt DateTime @updatedAt
40 | content String
41 | author User @relation(fields: [authorId], references: [id])
42 | authorId String
43 | post Post @relation(fields: [postId], references: [id])
44 | postId String
45 | }
46 |
47 | model Like {
48 | id String @id @default(uuid())
49 | createdAt DateTime @default(now())
50 | author User @relation(fields: [authorId], references: [id])
51 | authorId String
52 | post Post @relation(fields: [postId], references: [id])
53 | postId String
54 | }
55 |
--------------------------------------------------------------------------------
/public/heart.json:
--------------------------------------------------------------------------------
1 | {"v":"4.8.0","meta":{"g":"LottieFiles AE ","a":"","k":"","d":"","tc":""},"fr":20,"ip":0,"op":20,"w":100,"h":100,"nm":"MAin","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"shape - 1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":4,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":5,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[0]},{"t":41,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[49.606,49.877,0],"ix":2},"a":{"a":0,"k":[12.5,11.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.27,0.27,0.27],"y":[1.619,1.619,1]},"o":{"x":[0.68,0.68,0.68],"y":[-1.164,-1.164,0]},"t":2,"s":[130,130,100]},{"i":{"x":[0.357,0.357,0.27],"y":[3.154,3.154,1]},"o":{"x":[0.485,0.485,0.68],"y":[-0.948,-0.948,0]},"t":5,"s":[90,90,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":11,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":38,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":41,"s":[90,90,100]},{"t":46,"s":[130,130,100]}],"ix":6,"x":"var $bm_rt;\nvar $bm_rt;\nvar bla, bla, t, t, v, amp, freq, decay;\n$bm_rt = $bm_rt = bla = 0;\nif (numKeys > 0) {\n $bm_rt = $bm_rt = bla = nearestKey(time).index;\n if (key(bla).time > time) {\n bla--;\n }\n}\nif (bla == 0) {\n $bm_rt = $bm_rt = t = 0;\n} else {\n $bm_rt = $bm_rt = t = sub(time, key(bla).time);\n}\nif (bla > 0) {\n v = velocityAtTime(sub(key(bla).time, div(thisComp.frameDuration, 10)));\n amp = 2;\n freq = 5;\n decay = 5;\n $bm_rt = $bm_rt = add(value, div(mul(mul(div(v, 100), amp), Math.sin(mul(mul(mul(freq, t), 2), Math.PI))), Math.exp(mul(decay, t))));\n} else {\n $bm_rt = $bm_rt = value;\n}"}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.575,0],[1.215,-1.544],[1.986,0],[0,-3.68],[-0.837,-1.235],[-0.26,-0.188],[-0.497,0.364],[-2.435,3.595],[0,2.196]],"o":[[-1.984,0],[-1.215,-1.544],[-3.578,0],[0,2.196],[2.434,3.595],[0.496,0.364],[0.26,-0.188],[0.839,-1.238],[-0.003,-3.68]],"v":[[5.043,-10.133],[-0.001,-7.652],[-5.045,-10.133],[-11.531,-3.46],[-9.652,1.513],[-0.835,9.769],[0.833,9.769],[9.65,1.513],[11.531,-3.46]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.9058823529411765,0.2235294117647059,0.30196078431372547,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[12.781,11.633],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"组 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":20,"st":3,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"shape - 2","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12.5,11.5,0],"ix":2},"a":{"a":0,"k":[12.5,11.5,0],"ix":1},"s":{"a":0,"k":[107.692,107.692,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.575,0],[1.215,-1.544],[1.986,0],[0,-3.68],[-0.837,-1.235],[-0.26,-0.188],[-0.497,0.364],[-2.435,3.595],[0,2.196]],"o":[[-1.984,0],[-1.215,-1.544],[-3.578,0],[0,2.196],[2.434,3.595],[0.496,0.364],[0.26,-0.188],[0.839,-1.238],[-0.003,-3.68]],"v":[[5.043,-10.133],[-0.001,-7.652],[-5.045,-10.133],[-11.531,-3.46],[-9.652,1.513],[-0.835,9.769],[0.833,9.769],[9.65,1.513],[11.531,-3.46]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568627451,0.121568627451,0.290196078431,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.781,11.633],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"组 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":5,"op":20,"st":3,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"shape - 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[15,15,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,-181.38],[0,-1]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.637],"y":[0.325]},"o":{"x":[0.397],"y":[0]},"t":2,"s":[100]},{"i":{"x":[0.551],"y":[1]},"o":{"x":[0.247],"y":[0.784]},"t":7,"s":[46.882]},{"t":11,"s":[22]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.454],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":1,"s":[100]},{"t":10,"s":[22]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.921568627451,0.121568627451,0.290196078431,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"rp","c":{"a":0,"k":6,"ix":1},"o":{"a":0,"k":0,"ix":2},"m":1,"ix":4,"tr":{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":72,"ix":4},"so":{"a":0,"k":100,"ix":5},"eo":{"a":0,"k":100,"ix":6},"nm":"Transform"},"nm":"Repeater 1","mn":"ADBE Vector Filter - Repeater","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"t":10,"s":[211,211],"h":1},{"t":11,"s":[0,0],"h":1}],"ix":3},"r":{"a":0,"k":180,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,56.073],"ix":2},"a":{"a":0,"k":[0,56.073],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Front","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":12,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"shape - 4","sr":1,"ks":{"o":{"a":0,"k":10,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[50,50,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[15,15,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.353,0.353],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":3,"s":[0,0]},{"t":16,"s":[329,329]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.217,0.217],"y":[1,1]},"o":{"x":[0.163,0.163],"y":[0,0]},"t":9,"s":[0,0]},{"t":17,"s":[331,331]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 2","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.921568627451,0.121568627451,0.290196078431,1],"ix":4,"x":"var $bm_rt;\nvar $bm_rt;\ntry {\n $bm_rt = $bm_rt = thisComp.layer('Controller').effect('Color')('ADBE Color Control-0001');\n} catch (e) {\n $bm_rt = $bm_rt = value;\n}"},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[199,199],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 2","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Front","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":9,"op":16.6669921875,"st":3,"bm":0}],"markers":[]}
--------------------------------------------------------------------------------
/public/next.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/paperplane.json:
--------------------------------------------------------------------------------
1 | {"nm":"preview","ddd":0,"h":128,"w":128,"meta":{"g":"@lottiefiles/toolkit-js 0.26.1"},"layers":[{"ty":0,"nm":"Comp 1","sr":1,"st":0,"op":120,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[128,128,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[64,64,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"w":256,"h":256,"refId":"comp_0","ind":1}],"v":"5.4.3","fr":30,"op":120,"ip":0,"assets":[{"nm":"","id":"comp_0","layers":[{"ty":4,"nm":"confirm Outlines","sr":1,"st":34,"op":99,"ip":54,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[24,24,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[100,100,100],"t":54},{"o":{"x":0.167,"y":0},"i":{"x":0.667,"y":1},"s":[200,200,100],"t":62},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[200,200,100],"t":95},{"s":[100,100,100],"t":99}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[128,128,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[180],"t":54},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[368],"t":62},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[356],"t":67},{"o":{"x":0.167,"y":0},"i":{"x":0.667,"y":1},"s":[362],"t":71},{"o":{"x":0.167,"y":0},"i":{"x":0.667,"y":1},"s":[359],"t":74},{"s":[360],"t":77}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[-0.408,-0.413],[0,0],[-0.407,0.413],[0,0],[0.407,0.413],[0,0],[0.407,-0.412],[0,0],[0,0],[0.407,-0.413],[0,0]],"o":[[0,0],[0.407,0.413],[0,0],[0.407,-0.412],[0,0],[-0.408,-0.412],[0,0],[0,0],[-0.407,-0.413],[0,0],[-0.408,0.413]],"v":[[-15.694,3.946],[-7.057,12.69],[-5.582,12.69],[15.695,-8.852],[15.695,-10.346],[13.379,-12.691],[11.903,-12.691],[-6.319,5.758],[-11.902,0.107],[-13.377,0.107],[-15.694,2.452]]}],"t":90},{"s":[{"c":true,"i":[[-0.368,-0.019],[0,0],[-0.293,0.091],[0,0],[-0.07,0.143],[0,0],[0.035,-0.012],[0,0],[0,0],[-0.058,-0.029],[0,0]],"o":[[0,0],[0.057,0.028],[0,0],[-0.007,-0.023],[0,0],[-0.004,-0.075],[0,0],[0,0],[-0.16,0.025],[0,0],[0.007,0.126]],"v":[[-20.366,2.956],[-6.057,1.737],[-6.02,1.737],[9.133,0.57],[9.445,0.638],[9.441,-0.019],[9.09,-0.144],[-6.069,-1.633],[-20.324,-2.9],[-20.488,-2.784],[-20.491,2.811]]}],"t":95}],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[24,24],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":1},{"ty":4,"nm":"send Outlines 2","sr":1,"st":25,"op":57,"ip":28,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[12,12,0],"ix":1},"s":{"a":0,"k":[400,400,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[128,128,0],"t":35,"ti":[-26.6666660308838,0,0],"to":[10,0,0]},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[188,128,0],"t":50,"ti":[-16.6666660308838,0,0],"to":[26.6666660308838,0,0]},{"s":[288,128,0],"t":57}],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-0.624],[0,0],[-0.207,-0.016],[0,0],[0,0],[-0.001,-0.208],[0,0],[-0.558,0.28],[0,0],[0.619,0.31],[0,0]],"o":[[0,0],[-0.001,0.208],[0,0],[0,0],[-0.207,0.016],[0,0],[0,0.624],[0,0],[0.619,-0.309],[0,0],[-0.558,-0.279]],"v":[[-10.068,-9.161],[-10.076,-1.538],[-9.71,-1.141],[4.949,-0.001],[-9.71,1.139],[-10.076,1.536],[-10.068,9.16],[-8.854,9.91],[9.458,0.751],[9.458,-0.751],[-8.854,-9.911]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[12.077,12],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":2},{"ty":4,"nm":"send Outlines","sr":1,"st":-5,"op":28,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[12,12,0],"ix":1},"s":{"a":0,"k":[400,400,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[128,128,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-0.624],[0,0],[-0.207,-0.016],[0,0],[0,0],[-0.001,-0.208],[0,0],[-0.558,0.28],[0,0],[0.619,0.31],[0,0]],"o":[[0,0],[-0.001,0.208],[0,0],[0,0],[-0.207,0.016],[0,0],[0,0.624],[0,0],[0.619,-0.309],[0,0],[-0.558,-0.279]],"v":[[-10.068,-9.161],[-10.076,-1.538],[-9.71,-1.141],[4.949,-0.001],[-9.71,1.139],[-10.076,1.536],[-10.068,9.16],[-8.854,9.91],[9.458,0.751],[9.458,-0.751],[-8.854,-9.911]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[12.077,12],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":3},{"ty":4,"nm":"send Outlines","sr":1,"st":-5,"op":96,"ip":28,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[40,40,100],"t":28},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[110,110,100],"t":35},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[100,100,100],"t":39},{"o":{"x":0.333,"y":0},"i":{"x":0.833,"y":1},"s":[100,100,100],"t":90},{"s":[17,17,100],"t":96}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[128,128,0],"t":90,"ti":[-1.66666662693024,0,0],"to":[1.66666662693024,0,0]},{"s":[138,128,0],"t":96}],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 2","ix":1,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[0,-9.941],[9.941,0],[0,9.941],[-9.941,0]],"o":[[0,9.941],[-9.941,0],[0,-9.941],[9.941,0]],"v":[[18,0],[0,18],[-18,0],[0,-18]]}],"t":41},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[0,-5.75],[9.941,0],[0,9.941],[-9.941,0]],"o":[[0,5.125],[-9.941,0],[0,-9.941],[9.941,0]],"v":[[27,0],[0,16.75],[-18,0],[0,-16.375]]}],"t":47},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[0,-9.941],[9.941,0],[0,9.941],[-9.941,0]],"o":[[0,9.941],[-9.941,0],[0,-9.941],[9.941,0]],"v":[[16.125,0],[0,18],[-18,0],[0,-18]]}],"t":53},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[{"c":true,"i":[[0,-9.941],[9.941,0],[0,9.941],[-9.941,0]],"o":[[0,9.941],[-9.941,0],[0,-9.941],[9.941,0]],"v":[[18.625,0.125],[0,18],[-18,0],[0,-18]]}],"t":57},{"s":[{"c":true,"i":[[0,-9.941],[9.941,0],[0,9.941],[-9.941,0]],"o":[[0,9.941],[-9.941,0],[0,-9.941],[9.941,0]],"v":[[18,0],[0,18],[-18,0],[0,-18]]}],"t":60}],"ix":2}},{"ty":"mm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Merge","nm":"Merge Paths 1","mm":4},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,0.6941,0.3882],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[400,400],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":4},{"ty":4,"nm":"send Outlines 3","sr":1,"st":85,"op":120,"ip":90,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[12,12,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[200,200,100],"t":90},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[400,400,100],"t":98},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[440,440,100],"t":104},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[380,380,100],"t":109},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[410,410,100],"t":112},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[395,395,100],"t":115},{"s":[400,400,100],"t":118}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[148,128,0],"t":90,"ti":[3.33333325386047,0,0],"to":[-3.33333325386047,0,0]},{"s":[128,128,0],"t":98}],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Group 1","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-0.624],[0,0],[-0.207,-0.016],[0,0],[0,0],[-0.001,-0.208],[0,0],[-0.558,0.28],[0,0],[0.619,0.31],[0,0]],"o":[[0,0],[-0.001,0.208],[0,0],[0,0],[-0.207,0.016],[0,0],[0,0.624],[0,0],[0.619,-0.309],[0,0],[-0.558,-0.279]],"v":[[-10.068,-9.161],[-10.076,-1.538],[-9.71,-1.141],[4.949,-0.001],[-9.71,1.139],[-10.076,1.536],[-10.068,9.16],[-8.854,9.91],[9.458,0.751],[9.458,-0.751],[-8.854,-9.911]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[1,1,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[12.077,12],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":5}]}]}
--------------------------------------------------------------------------------
/public/vercel.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/sentry.server.config.js:
--------------------------------------------------------------------------------
1 | import * as Sentry from "@sentry/nextjs"
2 |
3 | Sentry.init({
4 | dsn: "https://7e2b56737a4b4703a0c7e2c21254d099@o4505096963031040.ingest.sentry.io/4505096965652480",
5 |
6 | // We recommend adjusting this value in production, or using tracesSampler
7 | // for finer control
8 | tracesSampleRate: 1.0,
9 | })
10 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | module.exports = {
3 | content: [
4 | "./pages/**/*.{js,ts,jsx,tsx}",
5 | "./components/**/*.{js,ts,jsx,tsx}",
6 | "./app/**/*.{js,ts,jsx,tsx}",
7 | ],
8 | theme: {
9 | extend: {
10 | colors: {
11 | "black-100": "#0F0F0F",
12 | "black-200": "#161616",
13 | "primary-color-100": "#FF954F",
14 | "primary-color-200": "#FF885A",
15 | },
16 | },
17 | },
18 | plugins: [],
19 | }
20 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": ["dom", "dom.iterable", "esnext"],
5 | "allowJs": true,
6 | "skipLibCheck": true,
7 | "strict": true,
8 | "forceConsistentCasingInFileNames": true,
9 | "noEmit": true,
10 | "esModuleInterop": true,
11 | "module": "esnext",
12 | "moduleResolution": "node",
13 | "resolveJsonModule": true,
14 | "isolatedModules": true,
15 | "jsx": "preserve",
16 | "incremental": true,
17 | "plugins": [
18 | {
19 | "name": "next"
20 | }
21 | ],
22 | "paths": {
23 | "@/*": ["./*"]
24 | }
25 | },
26 | "include": [
27 | "next-env.d.ts",
28 | "middleware.ts",
29 | "**/*.ts",
30 | "**/*.tsx",
31 | ".next/types/**/*.ts"
32 | ],
33 | "exclude": ["node_modules"]
34 | }
35 |
--------------------------------------------------------------------------------
/types/PostSubmit.ts:
--------------------------------------------------------------------------------
1 | export type PostSubmit = {
2 | content: string
3 | id: string
4 | layoutId: string
5 | author: Author
6 | likes: Likes[]
7 | }
8 | type Author = {
9 | name: string | null | undefined
10 | profile_image_url: string | null | undefined
11 | id: string | null | undefined
12 | }
13 |
14 | type Likes = {
15 | authorId: string | undefined
16 | }
17 |
--------------------------------------------------------------------------------
/types/PostsType.ts:
--------------------------------------------------------------------------------
1 | type AuthorType = {
2 | id: string
3 | name: string
4 | profile_image_url: string
5 | }
6 | type LikesType = {
7 | id: string
8 | postId: string
9 | authorId: string
10 | createdAt: string
11 | }
12 |
13 | export type PostsType = {
14 | id: string
15 | content: string
16 | author: AuthorType
17 | likes: LikesType[]
18 | createdAt: string
19 | layoutId: string
20 | }
21 |
--------------------------------------------------------------------------------