├── public
├── robots.txt
├── icons.png
├── phone.png
├── favicon.ico
├── icons-2.png
├── loading.gif
├── Grandista.ttf
├── Grandista.woff
├── ig-mocked.png
├── instakilo.jpg
├── Grandista.woff2
├── google-play.png
├── favicon-16x16.png
├── favicon-32x32.png
├── microsoft-store.png
├── apple-touch-icon.png
├── complete-loading.gif
├── android-chrome-192x192.png
├── android-chrome-512x512.png
├── site.webmanifest
├── home.svg
├── vercel.svg
└── instagram-logo-icon.svg
├── screenshots
├── preview.jpg
├── screenshot-1.png
├── screenshot-2.png
├── screenshot-3.png
└── screenshot-4.png
├── postcss.config.js
├── atoms
└── modalAtom.tsx
├── next.config.js
├── components
├── feed
│ ├── Comment.tsx
│ ├── Story.tsx
│ ├── Feed.tsx
│ ├── Profile.tsx
│ ├── Stories.tsx
│ ├── Posts.tsx
│ ├── Suggestions.tsx
│ ├── Footer.tsx
│ └── Post.tsx
├── sidebar
│ ├── SidebarRow.tsx
│ ├── Sidebar.tsx
│ └── More.tsx
└── modal
│ ├── DisclaimerModal.tsx
│ └── InputModal.tsx
├── pages
├── _app.tsx
├── api
│ └── auth
│ │ └── [...nextauth].ts
├── index.tsx
└── login.tsx
├── .gitignore
├── tailwind.config.js
├── tsconfig.json
├── .env.local.example
├── firebase.js
├── package.json
├── styles
└── globals.css
├── README.md
└── yarn.lock
/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow:
--------------------------------------------------------------------------------
/public/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/public/icons.png
--------------------------------------------------------------------------------
/public/phone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/public/phone.png
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/public/favicon.ico
--------------------------------------------------------------------------------
/public/icons-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/public/icons-2.png
--------------------------------------------------------------------------------
/public/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/public/loading.gif
--------------------------------------------------------------------------------
/public/Grandista.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/public/Grandista.ttf
--------------------------------------------------------------------------------
/public/Grandista.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/public/Grandista.woff
--------------------------------------------------------------------------------
/public/ig-mocked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/public/ig-mocked.png
--------------------------------------------------------------------------------
/public/instakilo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/public/instakilo.jpg
--------------------------------------------------------------------------------
/public/Grandista.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/public/Grandista.woff2
--------------------------------------------------------------------------------
/public/google-play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/public/google-play.png
--------------------------------------------------------------------------------
/screenshots/preview.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/screenshots/preview.jpg
--------------------------------------------------------------------------------
/public/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/public/favicon-16x16.png
--------------------------------------------------------------------------------
/public/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/public/favicon-32x32.png
--------------------------------------------------------------------------------
/public/microsoft-store.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/public/microsoft-store.png
--------------------------------------------------------------------------------
/public/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/public/apple-touch-icon.png
--------------------------------------------------------------------------------
/public/complete-loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/public/complete-loading.gif
--------------------------------------------------------------------------------
/screenshots/screenshot-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/screenshots/screenshot-1.png
--------------------------------------------------------------------------------
/screenshots/screenshot-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/screenshots/screenshot-2.png
--------------------------------------------------------------------------------
/screenshots/screenshot-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/screenshots/screenshot-3.png
--------------------------------------------------------------------------------
/screenshots/screenshot-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/screenshots/screenshot-4.png
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/public/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/public/android-chrome-192x192.png
--------------------------------------------------------------------------------
/public/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/salimi-my/instagram-clone/main/public/android-chrome-512x512.png
--------------------------------------------------------------------------------
/atoms/modalAtom.tsx:
--------------------------------------------------------------------------------
1 | import { atom } from 'recoil';
2 |
3 | export const modalState = atom({
4 | key: 'modalState',
5 | default: false
6 | });
7 |
--------------------------------------------------------------------------------
/public/site.webmanifest:
--------------------------------------------------------------------------------
1 | {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
--------------------------------------------------------------------------------
/next.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | module.exports = {
3 | reactStrictMode: true,
4 | images: {
5 | domains: [
6 | 'firebasestorage.googleapis.com',
7 | 'cloudflare-ipfs.com',
8 | 'lh3.googleusercontent.com'
9 | ]
10 | }
11 | };
12 |
--------------------------------------------------------------------------------
/components/feed/Comment.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | function Comment({ username, comment }: any) {
4 | return (
5 |
6 | {username}
7 | {comment}
8 |
9 | );
10 | }
11 |
12 | export default Comment;
13 |
--------------------------------------------------------------------------------
/public/home.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/pages/_app.tsx:
--------------------------------------------------------------------------------
1 | import '../styles/globals.css';
2 | import type { AppProps } from 'next/app';
3 | import { SessionProvider } from 'next-auth/react';
4 | import { RecoilRoot } from 'recoil';
5 |
6 | function MyApp({ Component, pageProps: { session, ...pageProps } }: AppProps) {
7 | return (
8 |
9 |
10 |
11 |
12 |
13 | );
14 | }
15 |
16 | export default MyApp;
17 |
--------------------------------------------------------------------------------
/.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 | .pnpm-debug.log*
27 |
28 | # local env files
29 | .env*.local
30 |
31 | # vercel
32 | .vercel
33 |
34 | # typescript
35 | *.tsbuildinfo
36 | next-env.d.ts
37 |
--------------------------------------------------------------------------------
/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 | fontFamily: {
11 | grandista: ['Grandista', 'cursive']
12 | },
13 | screens: {
14 | '3xl': '1920px'
15 | }
16 | }
17 | },
18 | plugins: [
19 | require('@tailwindcss/line-clamp'),
20 | require('tailwind-scrollbar-hide')
21 | ]
22 | };
23 |
--------------------------------------------------------------------------------
/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 | },
18 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "pages/api/auth/[...nextauth].ts"],
19 | "exclude": ["node_modules"]
20 | }
21 |
--------------------------------------------------------------------------------
/pages/api/auth/[...nextauth].ts:
--------------------------------------------------------------------------------
1 | import NextAuth from 'next-auth';
2 | import GoogleProvider from 'next-auth/providers/google';
3 |
4 | export default NextAuth({
5 | providers: [
6 | GoogleProvider({
7 | clientId: process.env.GOOGLE_CLIENT_ID!,
8 | clientSecret: process.env.GOOGLE_CLIENT_SECRET!
9 | })
10 | ],
11 | secret: process.env.NEXT_PUBLIC_SECRET,
12 | pages: {
13 | signIn: '/login'
14 | },
15 | callbacks: {
16 | async session({ session, token }:any) {
17 | session.user.username = session.user.name.split(' ').join('').toLocaleLowerCase();
18 | session.user.uid = token.sub;
19 | return session;
20 | }
21 | }
22 | });
--------------------------------------------------------------------------------
/components/feed/Story.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Image from 'next/image';
3 |
4 | function Story({ username, avatar }: any) {
5 | return (
6 |
7 |
18 |
{username.toLowerCase()}
19 |
20 | );
21 | }
22 |
23 | export default Story;
24 |
--------------------------------------------------------------------------------
/.env.local.example:
--------------------------------------------------------------------------------
1 | # Firebase Configurations
2 | NEXT_PUBLIC_FIREBASE_API_KEY=Add your API key here
3 | NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=Add your Auth Domain here
4 | NEXT_PUBLIC_FIREBASE_PROJECT_ID=Add your Project ID here
5 | NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=Add your Storage Bucket here
6 | NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=Add your Messenging Sender ID here
7 | NEXT_PUBLIC_FIREBASE_APP_ID=Add your APP ID here
8 |
9 | # NextAuth Configurations
10 | GOOGLE_CLIENT_ID=Add your Google Client ID here
11 | GOOGLE_CLIENT_SECRET=Add Google Client Secret here
12 | NEXTAUTH_URL=Add your url here | exmple: http://localhost:3000
13 | NEXT_PUBLIC_SECRET=Add your created secret here | To create secret run this command: openssl rand -base64 32
14 | RECOIL_DUPLICATE_ATOM_KEY_CHECKING_ENABLED=false
--------------------------------------------------------------------------------
/firebase.js:
--------------------------------------------------------------------------------
1 | import { initializeApp, getApp, getApps } from 'firebase/app';
2 | import { getFirestore } from 'firebase/firestore';
3 | import { getStorage } from 'firebase/storage';
4 |
5 | const firebaseConfig = {
6 | apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY,
7 | authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN,
8 | projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID,
9 | storageBucket: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET,
10 | messagingSenderId: process.env.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID,
11 | appId: process.env.NEXT_PUBLIC_FIREBASE_APP_ID
12 | };
13 |
14 | const app = !getApps().length ? initializeApp(firebaseConfig) : getApp();
15 | const db = getFirestore(app);
16 | const storage = getStorage(app);
17 |
18 | export { app, db, storage };
19 |
--------------------------------------------------------------------------------
/components/feed/Feed.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Footer from './Footer';
3 | import Posts from './Posts';
4 | import Profile from './Profile';
5 | import Stories from './Stories';
6 | import Suggestions from './Suggestions';
7 |
8 | function Feed({ ssrPosts }: any) {
9 | return (
10 |
22 | );
23 | }
24 |
25 | export default Feed;
26 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "scripts": {
4 | "dev": "next dev",
5 | "build": "next build",
6 | "start": "next start"
7 | },
8 | "dependencies": {
9 | "@faker-js/faker": "^7.6.0",
10 | "@headlessui/react": "^1.7.4",
11 | "@heroicons/react": "^2.0.13",
12 | "@tailwindcss/line-clamp": "^0.4.2",
13 | "firebase": "^10.12.2",
14 | "moment": "^2.29.4",
15 | "next": "latest",
16 | "next-auth": "^4.24.10",
17 | "react": "18.2.0",
18 | "react-dom": "18.2.0",
19 | "react-moment": "^1.1.2",
20 | "recoil": "^0.7.6",
21 | "swiper": "^8.4.4",
22 | "tailwind-scrollbar-hide": "^1.1.7"
23 | },
24 | "devDependencies": {
25 | "@types/node": "18.11.3",
26 | "@types/react": "18.0.21",
27 | "@types/react-dom": "18.0.6",
28 | "autoprefixer": "^10.4.12",
29 | "postcss": "^8.4.31",
30 | "tailwindcss": "^3.2.1",
31 | "typescript": "4.8.4"
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/components/feed/Profile.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Image from 'next/image';
3 | import { useSession } from 'next-auth/react';
4 |
5 | function Profile() {
6 | const { data: session }: any = useSession();
7 | return (
8 |
9 |
10 |
17 |
18 |
{session?.user?.username}
19 |
20 | {session?.user?.name}
21 |
22 |
23 |
24 |
25 | Switch
26 |
27 |
28 | );
29 | }
30 |
31 | export default Profile;
32 |
--------------------------------------------------------------------------------
/public/vercel.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/components/sidebar/SidebarRow.tsx:
--------------------------------------------------------------------------------
1 | import Image from 'next/image';
2 | import React from 'react';
3 |
4 | function SidebarRow({ src, path, title, active }: any) {
5 | return (
6 |
7 | {src && (
8 |
15 | )}
16 | {path && (
17 |
29 | )}
30 | {active && (
31 |
32 | {title}
33 |
34 | )}
35 | {!active && (
36 |
37 | {title}
38 |
39 | )}
40 |
41 | );
42 | }
43 |
44 | export default SidebarRow;
45 |
--------------------------------------------------------------------------------
/components/feed/Stories.tsx:
--------------------------------------------------------------------------------
1 | import React, { useEffect, useState } from 'react';
2 | import { faker } from '@faker-js/faker/locale/en_US';
3 | import { Swiper, SwiperSlide } from 'swiper/react';
4 | import { Navigation } from 'swiper';
5 | import 'swiper/css';
6 | import 'swiper/css/navigation';
7 | import Story from './Story';
8 |
9 | function Stories() {
10 | const [users, setUsers] = useState([]);
11 |
12 | useEffect(() => {
13 | const fakers = [...Array(24)].map((_, i) => ({
14 | id: i,
15 | username: faker.internet.userName(),
16 | avatar: faker.image.avatar()
17 | }));
18 |
19 | setUsers(fakers);
20 | }, []);
21 |
22 | return (
23 |
24 |
33 | {users.map(({ id, username, avatar }: any) => {
34 | return (
35 |
36 |
37 |
38 | );
39 | })}
40 |
41 |
42 | );
43 | }
44 |
45 | export default Stories;
46 |
--------------------------------------------------------------------------------
/styles/globals.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | @font-face {
6 | font-family: 'Grandista';
7 | src: url('../public/Grandista.woff2') format('woff2'),
8 | url('../public/Grandista.woff') format('woff'),
9 | url('../public/Grandista.ttf') format('truetype');
10 | }
11 |
12 | :root {
13 | --swiper-navigation-size: 12px !important;
14 | }
15 |
16 | .swiper-button-next,
17 | .swiper-button-prev {
18 | background-image: url('/icons.png');
19 | border: none !important;
20 | justify-self: center !important;
21 | outline: none !important;
22 | padding: 16px 8px !important;
23 | position: absolute !important;
24 | top: 50% !important;
25 | transform: translateY(-50%) !important;
26 | margin: 0 !important;
27 | }
28 |
29 | .swiper-button-next {
30 | background-repeat: no-repeat;
31 | background-position: -294px -273px;
32 | height: 45px !important;
33 | width: 45px !important;
34 | }
35 |
36 | .swiper-button-prev {
37 | background-repeat: no-repeat;
38 | background-position: -294px -226px;
39 | height: 45px !important;
40 | width: 45px !important;
41 | }
42 |
43 | .swiper-button-next.swiper-button-disabled,
44 | .swiper-button-prev.swiper-button-disabled {
45 | opacity: 0 !important;
46 | cursor: auto;
47 | pointer-events: none;
48 | }
49 |
50 | .swiper-slide {
51 | width: 14.6% !important;
52 | }
53 |
54 | .swiper-button-next:after,
55 | .swiper-button-prev:after {
56 | display: none;
57 | }
58 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # [Instakilo](https://instakilo.salimi.my) · [](https://www.linkedin.com/in/mohamad-salimi/)
2 |
3 | This is Instagram clone created using Next.js for educational purposes. User can login using Google login API, make posts with images, like posts and comment on posts.
4 |
5 | ## Exact copy of Instagram UI
6 |
7 | - This is a clone of Instagram app
8 | - Login using NextAuth.js through Google login API
9 | - Realtime database using Firebase
10 | - NextJS Server-side Rendering
11 | - Hosted in Vercel
12 |
13 | ## Tech/framework used
14 |
15 | - Next.js
16 | - NextAuth.js
17 | - Tailwind CSS
18 | - Tailwind UI
19 | - Firebase
20 | - Recoil
21 | - Vercel
22 |
23 | ## Starting the project
24 |
25 | Open the [.env.local.example](/.env.local.example) and fill in your Firebase Configurations & NextAuth Configurations then save it as .env.local the run the following command:
26 |
27 | ```bash
28 | npm run dev
29 | # or
30 | yarn run dev
31 | ```
32 |
33 | ## Demo
34 |
35 | The app hosted on Vercel. [Click here](https://instakilo.salimi.my) to visit.
36 |
37 | Direct link: `https://instakilo.salimi.my`
38 |
39 | ## Screenshots
40 |
41 | #### Login
42 |
43 | 
44 |
45 | #### Feed
46 |
47 | 
48 |
49 | #### Menu
50 |
51 | 
52 |
53 | #### Create new post
54 |
55 | 
56 |
--------------------------------------------------------------------------------
/components/feed/Posts.tsx:
--------------------------------------------------------------------------------
1 | import React, { useEffect, useState } from 'react';
2 | import Post from './Post';
3 | import { db } from '../../firebase';
4 | import { collection, query, orderBy, onSnapshot } from 'firebase/firestore';
5 |
6 | function Posts({ ssrPosts }: any) {
7 | const [posts, setPosts] = useState([]);
8 |
9 | useEffect(
10 | () =>
11 | onSnapshot(
12 | query(collection(db, 'posts'), orderBy('timestamp', 'desc')),
13 | (snapshot: any) => {
14 | setPosts(
15 | snapshot.docs.map((doc: any) => ({ ...doc.data(), id: doc.id }))
16 | );
17 | }
18 | ),
19 | []
20 | );
21 |
22 | return (
23 | <>
24 | {posts
25 | ? posts.map((post: any) => (
26 |
35 | ))
36 | : ssrPosts.map((post: any) => (
37 |
46 | ))}
47 | >
48 | );
49 | }
50 |
51 | export default Posts;
52 |
--------------------------------------------------------------------------------
/public/instagram-logo-icon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/components/feed/Suggestions.tsx:
--------------------------------------------------------------------------------
1 | import React, { useEffect, useState } from 'react';
2 | import { faker } from '@faker-js/faker/locale/en_US';
3 | import Image from 'next/image';
4 |
5 | function Suggestions() {
6 | const [users, setUsers] = useState([]);
7 |
8 | useEffect(() => {
9 | const fakers = [...Array(5)].map((_, i) => ({
10 | id: i,
11 | username: faker.internet.userName(),
12 | avatar: faker.image.avatar(),
13 | firstname: faker.name.firstName()
14 | }));
15 |
16 | setUsers(fakers);
17 | }, []);
18 | return (
19 |
20 |
21 |
22 | Suggestions For You
23 |
24 |
See All
25 |
26 |
27 | {users.map(({ id, username, avatar, firstname }: any) => (
28 |
29 |
30 |
37 |
38 |
{username.toLowerCase()}
39 |
40 | Followed by {firstname.toLowerCase()}
41 |
42 |
43 |
44 |
45 | Follow
46 |
47 |
48 | ))}
49 |
50 |
51 | );
52 | }
53 |
54 | export default Suggestions;
55 |
--------------------------------------------------------------------------------
/components/feed/Footer.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | function Footer() {
4 | const currentDate = new Date();
5 | let year = currentDate.getFullYear();
6 | return (
7 |
73 | );
74 | }
75 |
76 | export default Footer;
77 |
--------------------------------------------------------------------------------
/pages/index.tsx:
--------------------------------------------------------------------------------
1 | import { getSession, GetSessionParams } from 'next-auth/react';
2 | import type { NextPage } from 'next';
3 | import { Fragment } from 'react';
4 | import Head from 'next/head';
5 | import Feed from '../components/feed/Feed';
6 | import Sidebar from '../components/sidebar/Sidebar';
7 | import InputModal from '../components/modal/InputModal';
8 | import { db } from '../firebase';
9 | import { collection, query, orderBy, getDocs } from 'firebase/firestore';
10 |
11 | const Home: NextPage = ({ ssrPosts }: any) => {
12 | return (
13 |
14 |
15 | Instakilo | Login
16 |
17 |
21 |
22 |
23 |
24 |
25 |
29 |
30 |
31 |
32 |
33 |
34 |
38 |
39 |
40 |
45 |
51 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 | );
70 | };
71 |
72 | export default Home;
73 |
74 | export async function getServerSideProps(
75 | context: GetSessionParams | undefined
76 | ) {
77 | // Get the user
78 | const session = await getSession(context);
79 |
80 | const posts = await getDocs(
81 | query(collection(db, 'posts'), orderBy('timestamp', 'desc'))
82 | );
83 |
84 | const docs = posts.docs.map((post) => ({
85 | id: post.id,
86 | ...post.data(),
87 | timestamp: null
88 | }));
89 |
90 | if (session) {
91 | return {
92 | props: {
93 | session,
94 | ssrPosts: docs
95 | }
96 | };
97 | } else if (!session) {
98 | return {
99 | redirect: {
100 | permanent: false,
101 | destination: '/login'
102 | }
103 | };
104 | }
105 | }
106 |
--------------------------------------------------------------------------------
/components/modal/DisclaimerModal.tsx:
--------------------------------------------------------------------------------
1 | import { Dialog, Transition } from '@headlessui/react';
2 | import { Fragment, useState } from 'react';
3 |
4 | export default function MyModal() {
5 | let [isOpen, setIsOpen] = useState(true);
6 |
7 | function closeModal() {
8 | setIsOpen(false);
9 | }
10 |
11 | function openModal() {
12 | setIsOpen(true);
13 | }
14 |
15 | return (
16 | <>
17 |
18 |
75 |
76 | >
77 | );
78 | }
79 |
80 | function Alert() {
81 | return (
82 |
96 | );
97 | }
98 |
--------------------------------------------------------------------------------
/components/sidebar/Sidebar.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Image from 'next/image';
3 | import SidebarRow from './SidebarRow';
4 | import More from './More';
5 | import { useSession } from 'next-auth/react';
6 | import { useSetRecoilState } from 'recoil';
7 | import { modalState } from '../../atoms/modalAtom';
8 |
9 | function Sidebar() {
10 | const { data: session } = useSession();
11 | const setOpen = useSetRecoilState(modalState);
12 |
13 | return (
14 |
15 |
20 |
21 |
27 |
28 |
29 |
30 | } title='Home' active={true} />
31 | } title='Search' />
32 | } title='Explore' />
33 | } title='Messages' />
34 | } title='Notifications' />
35 |
44 |
45 |
46 |
47 |
48 | );
49 | }
50 |
51 | export default Sidebar;
52 |
53 | function HomeIcon() {
54 | return (
55 |
56 | );
57 | }
58 |
59 | function SearchIcon() {
60 | return (
61 | <>
62 |
70 |
81 | >
82 | );
83 | }
84 |
85 | function ExploreIcon() {
86 | return (
87 | <>
88 |
96 |
100 |
110 | >
111 | );
112 | }
113 |
114 | function MessagesIcon() {
115 | return (
116 | <>
117 |
124 |
128 | >
129 | );
130 | }
131 |
132 | function NotificationsIcon() {
133 | return (
134 |
135 | );
136 | }
137 |
138 | function CreateIcon() {
139 | return (
140 | <>
141 |
149 |
160 |
171 | >
172 | );
173 | }
174 |
--------------------------------------------------------------------------------
/components/sidebar/More.tsx:
--------------------------------------------------------------------------------
1 | import { Menu, Transition } from '@headlessui/react';
2 | import { Fragment } from 'react';
3 | import { signOut } from 'next-auth/react';
4 |
5 | export default function More() {
6 | return (
7 |
8 |
104 |
105 | );
106 | }
107 |
108 | function SettingsIcon() {
109 | return (
110 |
138 | );
139 | }
140 |
141 | function SavedIcon() {
142 | return (
143 |
162 | );
163 | }
164 |
165 | function ReportIcon() {
166 | return (
167 |
179 | );
180 | }
181 |
182 | function MenuIcon() {
183 | return (
184 |
228 | );
229 | }
230 |
--------------------------------------------------------------------------------
/pages/login.tsx:
--------------------------------------------------------------------------------
1 | import React, { useState } from 'react';
2 | import { getProviders, signIn } from 'next-auth/react';
3 | import Head from 'next/head';
4 | import Image from 'next/image';
5 | import DisclaimerModal from '../components/modal/DisclaimerModal';
6 |
7 | export default function login({ providers }: any) {
8 | const [loggingIn, setLoggingIn] = useState(false);
9 | const currentDate = new Date();
10 | let year = currentDate.getFullYear();
11 | return (
12 | <>
13 |
14 | Instakilo
15 |
16 |
20 |
21 |
22 |
23 |
24 |
28 |
29 |
30 |
31 |
32 |
33 |
37 |
38 |
39 |
44 |
50 |
56 |
57 |
58 |
59 |
60 |
61 |
72 |
73 |
154 |
160 |
161 |
Get the app
162 |
163 |
170 |
177 |
178 |
179 |
180 |
181 |
201 |
202 |
203 | >
204 | );
205 | }
206 |
207 | export async function getServerSideProps() {
208 | const providers = await getProviders();
209 |
210 | return {
211 | props: {
212 | providers
213 | }
214 | };
215 | }
216 |
--------------------------------------------------------------------------------
/components/feed/Post.tsx:
--------------------------------------------------------------------------------
1 | import React, { useEffect, useRef, useState } from 'react';
2 | import { useSession } from 'next-auth/react';
3 | import Moment from 'react-moment';
4 | import Image from 'next/image';
5 | import { db } from '../../firebase';
6 | import {
7 | addDoc,
8 | collection,
9 | deleteDoc,
10 | doc,
11 | onSnapshot,
12 | orderBy,
13 | query,
14 | setDoc,
15 | serverTimestamp
16 | } from 'firebase/firestore';
17 | import Comment from './Comment';
18 |
19 | function Post({ id, username, avatar, image, caption, timestamp }: any) {
20 | const { data: session }: any = useSession();
21 | const [comments, setComments] = useState([]);
22 | const [likes, setLikes] = useState([]);
23 | const [hasLiked, setHasLiked] = useState(false);
24 | const [buttonEnable, setButtonEnable] = useState(false);
25 | const [showComment, setShowComment] = useState(false);
26 | const commentRef: any = useRef(null);
27 |
28 | useEffect(
29 | () =>
30 | onSnapshot(
31 | query(
32 | collection(db, 'posts', id, 'comments'),
33 | orderBy('timestamp', 'desc')
34 | ),
35 | (snapshot) => {
36 | setComments(
37 | snapshot.docs.map((doc) => ({ ...doc.data(), id: doc.id }))
38 | );
39 | }
40 | ),
41 | [id]
42 | );
43 |
44 | useEffect(
45 | () =>
46 | onSnapshot(collection(db, 'posts', id, 'likes'), (snapshot) =>
47 | setLikes(snapshot.docs)
48 | ),
49 | [id]
50 | );
51 |
52 | useEffect(
53 | () =>
54 | setHasLiked(
55 | likes.findIndex((like) => like.id === session.user.uid) !== -1
56 | ),
57 | [likes, session]
58 | );
59 |
60 | const buttonHandler = (e: any) => {
61 | if (e.target.value.length > 0) {
62 | setButtonEnable(true);
63 | } else {
64 | setButtonEnable(false);
65 | }
66 | };
67 |
68 | const sendComment = async (e: any) => {
69 | e.preventDefault();
70 |
71 | if (!commentRef.current.value.trim()) return;
72 |
73 | const commentToSend = commentRef.current.value;
74 | commentRef.current.value = '';
75 |
76 | await addDoc(collection(db, 'posts', id, 'comments'), {
77 | comment: commentToSend,
78 | username: session.user.username,
79 | avatar: session.user.image,
80 | timestamp: serverTimestamp()
81 | });
82 | };
83 |
84 | const likePost = async () => {
85 | if (hasLiked) {
86 | await deleteDoc(doc(db, 'posts', id, 'likes', session.user.uid));
87 | } else {
88 | await setDoc(doc(db, 'posts', id, 'likes', session.user.uid), {
89 | username: session.user.username
90 | });
91 | }
92 | };
93 |
94 | return (
95 |
96 |
97 |
98 |
109 |
{username.toLowerCase()}
110 |
111 |
112 |
113 |
120 |
121 |
122 |
130 |
131 |
132 |
133 |
134 |
135 | {likes.length > 0 && (
136 |
137 | {likes.length} Likes
138 |
139 | )}
140 |
141 | {username}
142 | {caption}
143 |
144 | {comments.length > 0 && (
145 |
159 | )}
160 |
161 | {showComment &&
162 | comments.length > 0 &&
163 | comments.map((comment: any) => (
164 |
169 | ))}
170 |
171 | {timestamp ? (
172 |
173 |
174 | {timestamp?.toDate()}
175 | {' '}
176 | AGO
177 |
178 | ) : (
179 |
180 | LOADING...
181 |
182 | )}
183 |
184 |
201 |
202 | );
203 | }
204 |
205 | export default Post;
206 |
207 | function DotIcon() {
208 | return (
209 |
223 | );
224 | }
225 |
226 | function LikeIcon({ css }: any) {
227 | return (
228 |
240 | );
241 | }
242 |
243 | function HasLikeIcon({ css }: any) {
244 | return (
245 |
257 | );
258 | }
259 |
260 | function CommentIcon({ css }: any) {
261 | return (
262 |
280 | );
281 | }
282 |
283 | function ShareIcon({ css }: any) {
284 | return (
285 |
313 | );
314 | }
315 |
316 | function SaveIcon({ css }: any) {
317 | return (
318 |
337 | );
338 | }
339 |
340 | function EmojiIcon({ css }: any) {
341 | return (
342 |
354 | );
355 | }
356 |
--------------------------------------------------------------------------------
/components/modal/InputModal.tsx:
--------------------------------------------------------------------------------
1 | import { Dialog, Transition } from '@headlessui/react';
2 | import { Fragment, useRef, useState } from 'react';
3 | import { useSession } from 'next-auth/react';
4 | import { useRecoilState } from 'recoil';
5 | import { modalState } from '../../atoms/modalAtom';
6 | import Image from 'next/image';
7 | import { db, storage } from '../../firebase';
8 | import {
9 | addDoc,
10 | collection,
11 | doc,
12 | serverTimestamp,
13 | updateDoc
14 | } from 'firebase/firestore';
15 | import { ref, getDownloadURL, uploadString } from 'firebase/storage';
16 |
17 | export default function InputModal() {
18 | const { data: session }: any = useSession();
19 | const [open, setOpen] = useRecoilState(modalState);
20 | const [buttonEnable, setButtonEnable] = useState(false);
21 | const [loading, setLoading] = useState(false);
22 | const [completeLoading, setCompleteLoading] = useState(false);
23 | const [textCount, setTextCount] = useState(0);
24 | const [imageToPost, setImageToPost] = useState(null);
25 | const captionRef: any = useRef('');
26 | const filePickerRef: any = useRef(null);
27 |
28 | const uploadPost = async (e: any) => {
29 | e.preventDefault();
30 |
31 | if (!(captionRef.current.value.length > 0 && imageToPost)) return;
32 |
33 | setLoading(true);
34 |
35 | const docRef = await addDoc(collection(db, 'posts'), {
36 | username: session.user.username,
37 | caption: captionRef.current.value,
38 | avatar: session.user.image,
39 | timestamp: serverTimestamp()
40 | });
41 |
42 | const imageRef = ref(storage, `post/${docRef.id}`);
43 |
44 | await uploadString(imageRef, imageToPost, 'data_url').then(async () => {
45 | const downloadURL = await getDownloadURL(imageRef);
46 |
47 | await updateDoc(doc(db, 'posts', docRef.id), {
48 | image: downloadURL
49 | });
50 | });
51 |
52 | setLoading(false);
53 | setCompleteLoading(true);
54 | };
55 |
56 | const buttonHandler = () => {
57 | if (captionRef.current.value.length > 0 && imageToPost) {
58 | setButtonEnable(true);
59 | } else {
60 | setButtonEnable(false);
61 | }
62 | };
63 |
64 | const textHandler = (e: any) => {
65 | setTextCount(e.target.value.length);
66 | buttonHandler();
67 | };
68 |
69 | const addImageToPost = (e: any) => {
70 | const reader = new FileReader();
71 | if (e.target.files[0]) {
72 | reader.readAsDataURL(e.target.files[0]);
73 | }
74 |
75 | reader.onload = (readerEvent: any) => {
76 | setImageToPost(readerEvent.target.result);
77 | };
78 |
79 | buttonHandler();
80 | };
81 |
82 | const removeImage = () => {
83 | setImageToPost(null);
84 | };
85 |
86 | const closeModal = () => {
87 | setOpen(false);
88 | removeImage();
89 | if (!loading && !completeLoading) captionRef.current.value = '';
90 | setTextCount(0);
91 | setLoading(false);
92 | setCompleteLoading(false);
93 | setButtonEnable(false);
94 | };
95 |
96 | return (
97 | <>
98 |
99 |
247 |
248 | >
249 | );
250 | }
251 |
252 | function EmojiIcon() {
253 | return (
254 |
266 | );
267 | }
268 |
269 | function LocationIcon() {
270 | return (
271 |
283 | );
284 | }
285 |
286 | function CaretIcon() {
287 | return (
288 |
300 | );
301 | }
302 |
303 | function PlaceholderIcon() {
304 | return (
305 |
328 | );
329 | }
330 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/runtime@^7.20.13":
6 | version "7.27.0"
7 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.0.tgz#fbee7cf97c709518ecc1f590984481d5460d4762"
8 | integrity sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==
9 | dependencies:
10 | regenerator-runtime "^0.14.0"
11 |
12 | "@emnapi/runtime@^1.4.0":
13 | version "1.4.3"
14 | resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.4.3.tgz#c0564665c80dc81c448adac23f9dfbed6c838f7d"
15 | integrity sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==
16 | dependencies:
17 | tslib "^2.4.0"
18 |
19 | "@faker-js/faker@^7.6.0":
20 | version "7.6.0"
21 | resolved "https://registry.npmjs.org/@faker-js/faker/-/faker-7.6.0.tgz"
22 | integrity sha512-XK6BTq1NDMo9Xqw/YkYyGjSsg44fbNwYRx7QK2CuoQgyy+f1rrTDHoExVM5PsyXCtfl2vs2vVJ0MN0yN6LppRw==
23 |
24 | "@fastify/busboy@^2.0.0":
25 | version "2.1.1"
26 | resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d"
27 | integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==
28 |
29 | "@firebase/analytics-compat@0.2.10":
30 | version "0.2.10"
31 | resolved "https://registry.yarnpkg.com/@firebase/analytics-compat/-/analytics-compat-0.2.10.tgz#c98005075c019eb8255764a5279f0ff86b36b863"
32 | integrity sha512-ia68RcLQLLMFWrM10JfmFod7eJGwqr4/uyrtzHpTDnxGX/6gNCBTOuxdAbyWIqXI5XmcMQdz9hDijGKOHgDfPw==
33 | dependencies:
34 | "@firebase/analytics" "0.10.4"
35 | "@firebase/analytics-types" "0.8.2"
36 | "@firebase/component" "0.6.7"
37 | "@firebase/util" "1.9.6"
38 | tslib "^2.1.0"
39 |
40 | "@firebase/analytics-types@0.8.2":
41 | version "0.8.2"
42 | resolved "https://registry.yarnpkg.com/@firebase/analytics-types/-/analytics-types-0.8.2.tgz#947f85346e404332aac6c996d71fd4a89cd7f87a"
43 | integrity sha512-EnzNNLh+9/sJsimsA/FGqzakmrAUKLeJvjRHlg8df1f97NLUlFidk9600y0ZgWOp3CAxn6Hjtk+08tixlUOWyw==
44 |
45 | "@firebase/analytics@0.10.4":
46 | version "0.10.4"
47 | resolved "https://registry.yarnpkg.com/@firebase/analytics/-/analytics-0.10.4.tgz#dc68a86774f9ee4f980708e824157617fd2b8ef7"
48 | integrity sha512-OJEl/8Oye/k+vJ1zV/1L6eGpc1XzAj+WG2TPznJ7PszL7sOFLBXkL9IjHfOCGDGpXeO3btozy/cYUqv4zgNeHg==
49 | dependencies:
50 | "@firebase/component" "0.6.7"
51 | "@firebase/installations" "0.6.7"
52 | "@firebase/logger" "0.4.2"
53 | "@firebase/util" "1.9.6"
54 | tslib "^2.1.0"
55 |
56 | "@firebase/app-check-compat@0.3.11":
57 | version "0.3.11"
58 | resolved "https://registry.yarnpkg.com/@firebase/app-check-compat/-/app-check-compat-0.3.11.tgz#0a5d1c72c91ba239e4dabf6fd698b27f082030ca"
59 | integrity sha512-t01zaH3RJpKEey0nGduz3Is+uSz7Sj4U5nwOV6lWb+86s5xtxpIvBJzu/lKxJfYyfZ29eJwpdjEgT1/lm4iQyA==
60 | dependencies:
61 | "@firebase/app-check" "0.8.4"
62 | "@firebase/app-check-types" "0.5.2"
63 | "@firebase/component" "0.6.7"
64 | "@firebase/logger" "0.4.2"
65 | "@firebase/util" "1.9.6"
66 | tslib "^2.1.0"
67 |
68 | "@firebase/app-check-interop-types@0.3.2":
69 | version "0.3.2"
70 | resolved "https://registry.yarnpkg.com/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.2.tgz#455b6562c7a3de3ef75ea51f72dfec5829ad6997"
71 | integrity sha512-LMs47Vinv2HBMZi49C09dJxp0QT5LwDzFaVGf/+ITHe3BlIhUiLNttkATSXplc89A2lAaeTqjgqVkiRfUGyQiQ==
72 |
73 | "@firebase/app-check-types@0.5.2":
74 | version "0.5.2"
75 | resolved "https://registry.yarnpkg.com/@firebase/app-check-types/-/app-check-types-0.5.2.tgz#1221bd09b471e11bb149252f16640a0a51043cbc"
76 | integrity sha512-FSOEzTzL5bLUbD2co3Zut46iyPWML6xc4x+78TeaXMSuJap5QObfb+rVvZJtla3asN4RwU7elaQaduP+HFizDA==
77 |
78 | "@firebase/app-check@0.8.4":
79 | version "0.8.4"
80 | resolved "https://registry.yarnpkg.com/@firebase/app-check/-/app-check-0.8.4.tgz#1c965d34527d1b924fc7bd51789119b3f817bf94"
81 | integrity sha512-2tjRDaxcM5G7BEpytiDcIl+NovV99q8yEqRMKDbn4J4i/XjjuThuB4S+4PkmTnZiCbdLXQiBhkVxNlUDcfog5Q==
82 | dependencies:
83 | "@firebase/component" "0.6.7"
84 | "@firebase/logger" "0.4.2"
85 | "@firebase/util" "1.9.6"
86 | tslib "^2.1.0"
87 |
88 | "@firebase/app-compat@0.2.35":
89 | version "0.2.35"
90 | resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.2.35.tgz#ca918736e6b06bdd63eaed24ba213059ecd55f88"
91 | integrity sha512-vgay/WRjeH0r97/Q6L6df2CMx7oyNFDsE5yPQ9oR1G+zx2eT0s8vNNh0WlKqQxUEWaOLRnXhQ8gy7uu0cBgTRg==
92 | dependencies:
93 | "@firebase/app" "0.10.5"
94 | "@firebase/component" "0.6.7"
95 | "@firebase/logger" "0.4.2"
96 | "@firebase/util" "1.9.6"
97 | tslib "^2.1.0"
98 |
99 | "@firebase/app-types@0.9.2":
100 | version "0.9.2"
101 | resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.9.2.tgz#8cbcceba784753a7c0066a4809bc22f93adee080"
102 | integrity sha512-oMEZ1TDlBz479lmABwWsWjzHwheQKiAgnuKxE0pz0IXCVx7/rtlkx1fQ6GfgK24WCrxDKMplZrT50Kh04iMbXQ==
103 |
104 | "@firebase/app@0.10.5":
105 | version "0.10.5"
106 | resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.10.5.tgz#84d3c99b253366844335a411b568dd258800c794"
107 | integrity sha512-iY/fNot+hWPk9sTX8aHMqlcX9ynRvpGkskWAdUZ2eQQdLo8d1hSFYcYNwPv0Q/frGMasw8udKWMcFOEpC9fG8g==
108 | dependencies:
109 | "@firebase/component" "0.6.7"
110 | "@firebase/logger" "0.4.2"
111 | "@firebase/util" "1.9.6"
112 | idb "7.1.1"
113 | tslib "^2.1.0"
114 |
115 | "@firebase/auth-compat@0.5.9":
116 | version "0.5.9"
117 | resolved "https://registry.yarnpkg.com/@firebase/auth-compat/-/auth-compat-0.5.9.tgz#ab925dbe8baf0911fb4836c14403706132d751e8"
118 | integrity sha512-RX8Zh/3zz2CsVbmYfgHkfUm4fAEPCl+KHVIImNygV5jTGDF6oKOhBIpf4Yigclyu8ESQKZ4elyN0MBYm9/7zGw==
119 | dependencies:
120 | "@firebase/auth" "1.7.4"
121 | "@firebase/auth-types" "0.12.2"
122 | "@firebase/component" "0.6.7"
123 | "@firebase/util" "1.9.6"
124 | tslib "^2.1.0"
125 | undici "5.28.4"
126 |
127 | "@firebase/auth-interop-types@0.2.3":
128 | version "0.2.3"
129 | resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.2.3.tgz#927f1f2139a680b55fef0bddbff2c982b08587e8"
130 | integrity sha512-Fc9wuJGgxoxQeavybiuwgyi+0rssr76b+nHpj+eGhXFYAdudMWyfBHvFL/I5fEHniUM/UQdFzi9VXJK2iZF7FQ==
131 |
132 | "@firebase/auth-types@0.12.2":
133 | version "0.12.2"
134 | resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.12.2.tgz#f12d890585866e53b6ab18b16fa4d425c52eee6e"
135 | integrity sha512-qsEBaRMoGvHO10unlDJhaKSuPn4pyoTtlQuP1ghZfzB6rNQPuhp/N/DcFZxm9i4v0SogjCbf9reWupwIvfmH6w==
136 |
137 | "@firebase/auth@1.7.4":
138 | version "1.7.4"
139 | resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-1.7.4.tgz#0dc8083314a61598c91cfe00cb96cf2cb3d74336"
140 | integrity sha512-d2Fw17s5QesojwebrA903el20Li9/YGgkoOGJjagM4I1qAT36APa/FcZ+OX86KxbYKCtQKTMqraU8pxG7C2JWA==
141 | dependencies:
142 | "@firebase/component" "0.6.7"
143 | "@firebase/logger" "0.4.2"
144 | "@firebase/util" "1.9.6"
145 | tslib "^2.1.0"
146 | undici "5.28.4"
147 |
148 | "@firebase/component@0.6.7":
149 | version "0.6.7"
150 | resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.6.7.tgz#6fbffddb26833e1ed58bf296ad587cb330aee716"
151 | integrity sha512-baH1AA5zxfaz4O8w0vDwETByrKTQqB5CDjRls79Sa4eAGAoERw4Tnung7XbMl3jbJ4B/dmmtsMrdki0KikwDYA==
152 | dependencies:
153 | "@firebase/util" "1.9.6"
154 | tslib "^2.1.0"
155 |
156 | "@firebase/database-compat@1.0.5":
157 | version "1.0.5"
158 | resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-1.0.5.tgz#18c2314f169942ac315e46b68f86cbe64bafe063"
159 | integrity sha512-NDSMaDjQ+TZEMDMmzJwlTL05kh1+0Y84C+kVMaOmNOzRGRM7VHi29I6YUhCetXH+/b1Wh4ZZRyp1CuWkd8s6hg==
160 | dependencies:
161 | "@firebase/component" "0.6.7"
162 | "@firebase/database" "1.0.5"
163 | "@firebase/database-types" "1.0.3"
164 | "@firebase/logger" "0.4.2"
165 | "@firebase/util" "1.9.6"
166 | tslib "^2.1.0"
167 |
168 | "@firebase/database-types@1.0.3":
169 | version "1.0.3"
170 | resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-1.0.3.tgz#1b764212dce88eca74b16da9d220cfea6814858e"
171 | integrity sha512-39V/Riv2R3O/aUjYKh0xypj7NTNXNAK1bcgY5Kx+hdQPRS/aPTS8/5c0CGFYKgVuFbYlnlnhrCTYsh2uNhGwzA==
172 | dependencies:
173 | "@firebase/app-types" "0.9.2"
174 | "@firebase/util" "1.9.6"
175 |
176 | "@firebase/database@1.0.5":
177 | version "1.0.5"
178 | resolved "https://registry.yarnpkg.com/@firebase/database/-/database-1.0.5.tgz#09d7162b7dbc4533f17498ac6a76d5e757ab45be"
179 | integrity sha512-cAfwBqMQuW6HbhwI3Cb/gDqZg7aR0OmaJ85WUxlnoYW2Tm4eR0hFl5FEijI3/gYPUiUcUPQvTkGV222VkT7KPw==
180 | dependencies:
181 | "@firebase/app-check-interop-types" "0.3.2"
182 | "@firebase/auth-interop-types" "0.2.3"
183 | "@firebase/component" "0.6.7"
184 | "@firebase/logger" "0.4.2"
185 | "@firebase/util" "1.9.6"
186 | faye-websocket "0.11.4"
187 | tslib "^2.1.0"
188 |
189 | "@firebase/firestore-compat@0.3.32":
190 | version "0.3.32"
191 | resolved "https://registry.yarnpkg.com/@firebase/firestore-compat/-/firestore-compat-0.3.32.tgz#1357ba5f80b83f33210d4fb49a1cd346cf95b291"
192 | integrity sha512-at71mwK7a/mUXH0OgyY0+gUzedm/EUydDFYSFsBoO8DYowZ23Mgd6P4Rzq/Ll3zI/3xJN7LGe7Qp4iE/V/3Arg==
193 | dependencies:
194 | "@firebase/component" "0.6.7"
195 | "@firebase/firestore" "4.6.3"
196 | "@firebase/firestore-types" "3.0.2"
197 | "@firebase/util" "1.9.6"
198 | tslib "^2.1.0"
199 |
200 | "@firebase/firestore-types@3.0.2":
201 | version "3.0.2"
202 | resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-3.0.2.tgz#75c301acc5fa33943eaaa9570b963c55398cad2a"
203 | integrity sha512-wp1A+t5rI2Qc/2q7r2ZpjUXkRVPtGMd6zCLsiWurjsQpqPgFin3AhNibKcIzoF2rnToNa/XYtyWXuifjOOwDgg==
204 |
205 | "@firebase/firestore@4.6.3":
206 | version "4.6.3"
207 | resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-4.6.3.tgz#87ad38dfd0a0f16e79682177102ee1328d59af44"
208 | integrity sha512-d/+N2iUsiJ/Dc7fApdpdmmTXzwuTCromsdA1lKwYfZtMIOd1fI881NSLwK2wV4I38wkLnvfKJUV6WpU1f3/ONg==
209 | dependencies:
210 | "@firebase/component" "0.6.7"
211 | "@firebase/logger" "0.4.2"
212 | "@firebase/util" "1.9.6"
213 | "@firebase/webchannel-wrapper" "1.0.0"
214 | "@grpc/grpc-js" "~1.9.0"
215 | "@grpc/proto-loader" "^0.7.8"
216 | tslib "^2.1.0"
217 | undici "5.28.4"
218 |
219 | "@firebase/functions-compat@0.3.11":
220 | version "0.3.11"
221 | resolved "https://registry.yarnpkg.com/@firebase/functions-compat/-/functions-compat-0.3.11.tgz#9fdff8b174879b404501df7b8b519e5fb6d0b8ec"
222 | integrity sha512-Qn+ts/M6Lj2/6i1cp5V5TRR+Hi9kyXyHbo+w9GguINJ87zxrCe6ulx3TI5AGQkoQa8YFHUhT3DMGmLFiJjWTSQ==
223 | dependencies:
224 | "@firebase/component" "0.6.7"
225 | "@firebase/functions" "0.11.5"
226 | "@firebase/functions-types" "0.6.2"
227 | "@firebase/util" "1.9.6"
228 | tslib "^2.1.0"
229 |
230 | "@firebase/functions-types@0.6.2":
231 | version "0.6.2"
232 | resolved "https://registry.yarnpkg.com/@firebase/functions-types/-/functions-types-0.6.2.tgz#03b4ec9259d2f57548a3909d6a35ae35ad243552"
233 | integrity sha512-0KiJ9lZ28nS2iJJvimpY4nNccV21rkQyor5Iheu/nq8aKXJqtJdeSlZDspjPSBBiHRzo7/GMUttegnsEITqR+w==
234 |
235 | "@firebase/functions@0.11.5":
236 | version "0.11.5"
237 | resolved "https://registry.yarnpkg.com/@firebase/functions/-/functions-0.11.5.tgz#e4187ae3ae262b0482114f7ad418600ca84f3459"
238 | integrity sha512-qrHJ+l62mZiU5UZiVi84t/iLXZlhRuSvBQsa2qvNLgPsEWR7wdpWhRmVdB7AU8ndkSHJjGlMICqrVnz47sgU7Q==
239 | dependencies:
240 | "@firebase/app-check-interop-types" "0.3.2"
241 | "@firebase/auth-interop-types" "0.2.3"
242 | "@firebase/component" "0.6.7"
243 | "@firebase/messaging-interop-types" "0.2.2"
244 | "@firebase/util" "1.9.6"
245 | tslib "^2.1.0"
246 | undici "5.28.4"
247 |
248 | "@firebase/installations-compat@0.2.7":
249 | version "0.2.7"
250 | resolved "https://registry.yarnpkg.com/@firebase/installations-compat/-/installations-compat-0.2.7.tgz#c430f34bfcfc008c92ca32fd11d6c84ab5dd7888"
251 | integrity sha512-RPcbD+3nqHbnhVjIOpWK2H5qzZ8pAAAScceiWph0VNTqpKyPQ5tDcp4V5fS0ELpfgsHYvroMLDKfeHxpfvm8cw==
252 | dependencies:
253 | "@firebase/component" "0.6.7"
254 | "@firebase/installations" "0.6.7"
255 | "@firebase/installations-types" "0.5.2"
256 | "@firebase/util" "1.9.6"
257 | tslib "^2.1.0"
258 |
259 | "@firebase/installations-types@0.5.2":
260 | version "0.5.2"
261 | resolved "https://registry.yarnpkg.com/@firebase/installations-types/-/installations-types-0.5.2.tgz#4d4949e0e83ced7f36cbee009355cd305a36e158"
262 | integrity sha512-que84TqGRZJpJKHBlF2pkvc1YcXrtEDOVGiDjovP/a3s6W4nlbohGXEsBJo0JCeeg/UG9A+DEZVDUV9GpklUzA==
263 |
264 | "@firebase/installations@0.6.7":
265 | version "0.6.7"
266 | resolved "https://registry.yarnpkg.com/@firebase/installations/-/installations-0.6.7.tgz#4fc60ca86e838d7c45dfd1d4926d000060bd1079"
267 | integrity sha512-i6iGoXRu5mX4rTsiMSSKrgh9pSEzD4hwBEzRh5kEhOTr8xN/wvQcCPZDSMVYKwM2XyCPBLVq0JzjyerwL0Rihg==
268 | dependencies:
269 | "@firebase/component" "0.6.7"
270 | "@firebase/util" "1.9.6"
271 | idb "7.1.1"
272 | tslib "^2.1.0"
273 |
274 | "@firebase/logger@0.4.2":
275 | version "0.4.2"
276 | resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.4.2.tgz#74dfcfeedee810deb8a7080d5b7eba56aa16ffa2"
277 | integrity sha512-Q1VuA5M1Gjqrwom6I6NUU4lQXdo9IAQieXlujeHZWvRt1b7qQ0KwBaNAjgxG27jgF9/mUwsNmO8ptBCGVYhB0A==
278 | dependencies:
279 | tslib "^2.1.0"
280 |
281 | "@firebase/messaging-compat@0.2.9":
282 | version "0.2.9"
283 | resolved "https://registry.yarnpkg.com/@firebase/messaging-compat/-/messaging-compat-0.2.9.tgz#a4cae54c9caf10a3a6c811152d5bd58f165337b7"
284 | integrity sha512-5jN6wyhwPgBH02zOtmmoOeyfsmoD7ty48D1m0vVPsFg55RqN2Z3Q9gkZ5GmPklFPjTPLcxB1ObcHOZvThTkm7g==
285 | dependencies:
286 | "@firebase/component" "0.6.7"
287 | "@firebase/messaging" "0.12.9"
288 | "@firebase/util" "1.9.6"
289 | tslib "^2.1.0"
290 |
291 | "@firebase/messaging-interop-types@0.2.2":
292 | version "0.2.2"
293 | resolved "https://registry.yarnpkg.com/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.2.tgz#81042f7e9739733fa4571d17f6eb6869522754d0"
294 | integrity sha512-l68HXbuD2PPzDUOFb3aG+nZj5KA3INcPwlocwLZOzPp9rFM9yeuI9YLl6DQfguTX5eAGxO0doTR+rDLDvQb5tA==
295 |
296 | "@firebase/messaging@0.12.9":
297 | version "0.12.9"
298 | resolved "https://registry.yarnpkg.com/@firebase/messaging/-/messaging-0.12.9.tgz#c3cb7a26a3488161273839bf65237f8c485ba661"
299 | integrity sha512-IH+JJmzbFGZXV3+TDyKdqqKPVfKRqBBg2BfYYOy7cm7J+SwV+uJMe8EnDKYeQLEQhtpwciPfJ3qQXJs2lbxDTw==
300 | dependencies:
301 | "@firebase/component" "0.6.7"
302 | "@firebase/installations" "0.6.7"
303 | "@firebase/messaging-interop-types" "0.2.2"
304 | "@firebase/util" "1.9.6"
305 | idb "7.1.1"
306 | tslib "^2.1.0"
307 |
308 | "@firebase/performance-compat@0.2.7":
309 | version "0.2.7"
310 | resolved "https://registry.yarnpkg.com/@firebase/performance-compat/-/performance-compat-0.2.7.tgz#30e29934326888b164c67e5f3709c3a8e580a8d6"
311 | integrity sha512-cb8ge/5iTstxfIGW+iiY+7l3FtN8gobNh9JSQNZgLC9xmcfBYWEs8IeEWMI6S8T+At0oHc3lv+b2kpRMUWr8zQ==
312 | dependencies:
313 | "@firebase/component" "0.6.7"
314 | "@firebase/logger" "0.4.2"
315 | "@firebase/performance" "0.6.7"
316 | "@firebase/performance-types" "0.2.2"
317 | "@firebase/util" "1.9.6"
318 | tslib "^2.1.0"
319 |
320 | "@firebase/performance-types@0.2.2":
321 | version "0.2.2"
322 | resolved "https://registry.yarnpkg.com/@firebase/performance-types/-/performance-types-0.2.2.tgz#7b78cd2ab2310bac89a63348d93e67e01eb06dd7"
323 | integrity sha512-gVq0/lAClVH5STrIdKnHnCo2UcPLjJlDUoEB/tB4KM+hAeHUxWKnpT0nemUPvxZ5nbdY/pybeyMe8Cs29gEcHA==
324 |
325 | "@firebase/performance@0.6.7":
326 | version "0.6.7"
327 | resolved "https://registry.yarnpkg.com/@firebase/performance/-/performance-0.6.7.tgz#7d6c4e5ec61df7369d87fb4a5c0af4e0cedee69b"
328 | integrity sha512-d+Q4ltjdJZqjzcdms5i0UC9KLYX7vKGcygZ+7zHA/Xk+bAbMD2CPU0nWTnlNFWifZWIcXZ/2mAMvaGMW3lypUA==
329 | dependencies:
330 | "@firebase/component" "0.6.7"
331 | "@firebase/installations" "0.6.7"
332 | "@firebase/logger" "0.4.2"
333 | "@firebase/util" "1.9.6"
334 | tslib "^2.1.0"
335 |
336 | "@firebase/remote-config-compat@0.2.7":
337 | version "0.2.7"
338 | resolved "https://registry.yarnpkg.com/@firebase/remote-config-compat/-/remote-config-compat-0.2.7.tgz#8a7ac7658a7c9cc29a4ad5884bc224eaae950c38"
339 | integrity sha512-Fq0oneQ4SluLnfr5/HfzRS1TZf1ANj1rWbCCW3+oC98An3nE+sCdp+FSuHsEVNwgMg4Tkwx9Oom2lkKeU+Vn+w==
340 | dependencies:
341 | "@firebase/component" "0.6.7"
342 | "@firebase/logger" "0.4.2"
343 | "@firebase/remote-config" "0.4.7"
344 | "@firebase/remote-config-types" "0.3.2"
345 | "@firebase/util" "1.9.6"
346 | tslib "^2.1.0"
347 |
348 | "@firebase/remote-config-types@0.3.2":
349 | version "0.3.2"
350 | resolved "https://registry.yarnpkg.com/@firebase/remote-config-types/-/remote-config-types-0.3.2.tgz#a5d1009c6fd08036c5cd4f28764e3cd694f966d5"
351 | integrity sha512-0BC4+Ud7y2aPTyhXJTMTFfrGGLqdYXrUB9sJVAB8NiqJswDTc4/2qrE/yfUbnQJhbSi6ZaTTBKyG3n1nplssaA==
352 |
353 | "@firebase/remote-config@0.4.7":
354 | version "0.4.7"
355 | resolved "https://registry.yarnpkg.com/@firebase/remote-config/-/remote-config-0.4.7.tgz#1afd6f3089e3c66ed6909eb60d0eb1329d27c9ff"
356 | integrity sha512-5oPNrPFLsbsjpq0lUEIXoDF2eJK7vAbyXe/DEuZQxnwJlfR7aQbtUlEkRgQWcicXpyDmAmDLo7q7lDbCYa6CpA==
357 | dependencies:
358 | "@firebase/component" "0.6.7"
359 | "@firebase/installations" "0.6.7"
360 | "@firebase/logger" "0.4.2"
361 | "@firebase/util" "1.9.6"
362 | tslib "^2.1.0"
363 |
364 | "@firebase/storage-compat@0.3.8":
365 | version "0.3.8"
366 | resolved "https://registry.yarnpkg.com/@firebase/storage-compat/-/storage-compat-0.3.8.tgz#0d6d66a683713953b2bd24494e83bddcbb562f3a"
367 | integrity sha512-qDfY9kMb6Ch2hZb40sBjDQ8YPxbjGOxuT+gU1Z0iIVSSpSX0f4YpGJCypUXiA0T11n6InCXB+T/Dknh2yxVTkg==
368 | dependencies:
369 | "@firebase/component" "0.6.7"
370 | "@firebase/storage" "0.12.5"
371 | "@firebase/storage-types" "0.8.2"
372 | "@firebase/util" "1.9.6"
373 | tslib "^2.1.0"
374 |
375 | "@firebase/storage-types@0.8.2":
376 | version "0.8.2"
377 | resolved "https://registry.yarnpkg.com/@firebase/storage-types/-/storage-types-0.8.2.tgz#edb321b8a3872a9f74e1f27de046f160021c8e1f"
378 | integrity sha512-0vWu99rdey0g53lA7IShoA2Lol1jfnPovzLDUBuon65K7uKG9G+L5uO05brD9pMw+l4HRFw23ah3GwTGpEav6g==
379 |
380 | "@firebase/storage@0.12.5":
381 | version "0.12.5"
382 | resolved "https://registry.yarnpkg.com/@firebase/storage/-/storage-0.12.5.tgz#9277b4f838572ba78f017aa6207c6d7545400846"
383 | integrity sha512-nGWBOGFNr10j0LA4NJ3/Yh3us/lb0Q1xSIKZ38N6FcS+vY54nqJ7k3zE3PENregHC8+8txRow++A568G3v8hOA==
384 | dependencies:
385 | "@firebase/component" "0.6.7"
386 | "@firebase/util" "1.9.6"
387 | tslib "^2.1.0"
388 | undici "5.28.4"
389 |
390 | "@firebase/util@1.9.6":
391 | version "1.9.6"
392 | resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.9.6.tgz#56dc34e20fcbc0dd07b11b800f95f5d0417cbfb4"
393 | integrity sha512-IBr1MZbp4d5MjBCXL3TW1dK/PDXX4yOGbiwRNh1oAbE/+ci5Uuvy9KIrsFYY80as1I0iOaD5oOMA9Q8j4TJWcw==
394 | dependencies:
395 | tslib "^2.1.0"
396 |
397 | "@firebase/vertexai-preview@0.0.2":
398 | version "0.0.2"
399 | resolved "https://registry.yarnpkg.com/@firebase/vertexai-preview/-/vertexai-preview-0.0.2.tgz#a17454e4899bf4b3fa07322fb204659e7cfa5868"
400 | integrity sha512-NOOL63kFQRq45ioi5P+hlqj/4LNmvn1URhGjQdvyV54c1Irvoq26aW861PRRLjrSMIeNeiLtCLD5pe+ediepAg==
401 | dependencies:
402 | "@firebase/app-check-interop-types" "0.3.2"
403 | "@firebase/component" "0.6.7"
404 | "@firebase/logger" "0.4.2"
405 | "@firebase/util" "1.9.6"
406 | tslib "^2.1.0"
407 |
408 | "@firebase/webchannel-wrapper@1.0.0":
409 | version "1.0.0"
410 | resolved "https://registry.yarnpkg.com/@firebase/webchannel-wrapper/-/webchannel-wrapper-1.0.0.tgz#a0e11b39fa3ef56ed5333bf321f581037aeda033"
411 | integrity sha512-zuWxyfXNbsKbm96HhXzainONPFqRcoZblQ++e9cAIGUuHfl2cFSBzW01jtesqWG/lqaUyX3H8O1y9oWboGNQBA==
412 |
413 | "@grpc/grpc-js@~1.9.0":
414 | version "1.9.15"
415 | resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.9.15.tgz#433d7ac19b1754af690ea650ab72190bd700739b"
416 | integrity sha512-nqE7Hc0AzI+euzUwDAy0aY5hCp10r734gMGRdU+qOPX0XSceI2ULrcXB5U2xSc5VkWwalCj4M7GzCAygZl2KoQ==
417 | dependencies:
418 | "@grpc/proto-loader" "^0.7.8"
419 | "@types/node" ">=12.12.47"
420 |
421 | "@grpc/proto-loader@^0.7.8":
422 | version "0.7.13"
423 | resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.13.tgz#f6a44b2b7c9f7b609f5748c6eac2d420e37670cf"
424 | integrity sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==
425 | dependencies:
426 | lodash.camelcase "^4.3.0"
427 | long "^5.0.0"
428 | protobufjs "^7.2.5"
429 | yargs "^17.7.2"
430 |
431 | "@headlessui/react@^1.7.4":
432 | version "1.7.4"
433 | resolved "https://registry.npmjs.org/@headlessui/react/-/react-1.7.4.tgz"
434 | integrity sha512-D8n5yGCF3WIkPsjEYeM8knn9jQ70bigGGb5aUvN6y4BGxcT3OcOQOKcM3zRGllRCZCFxCZyQvYJF6ZE7bQUOyQ==
435 | dependencies:
436 | client-only "^0.0.1"
437 |
438 | "@heroicons/react@^2.0.13":
439 | version "2.0.13"
440 | resolved "https://registry.npmjs.org/@heroicons/react/-/react-2.0.13.tgz"
441 | integrity sha512-iSN5XwmagrnirWlYEWNPdCDj9aRYVD/lnK3JlsC9/+fqGF80k8C7rl+1HCvBX0dBoagKqOFBs6fMhJJ1hOg1EQ==
442 |
443 | "@img/sharp-darwin-arm64@0.34.1":
444 | version "0.34.1"
445 | resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.1.tgz#e79a4756bea9a06a7aadb4391ee53cb154a4968c"
446 | integrity sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==
447 | optionalDependencies:
448 | "@img/sharp-libvips-darwin-arm64" "1.1.0"
449 |
450 | "@img/sharp-darwin-x64@0.34.1":
451 | version "0.34.1"
452 | resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.1.tgz#f1f1d386719f6933796415d84937502b7199a744"
453 | integrity sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==
454 | optionalDependencies:
455 | "@img/sharp-libvips-darwin-x64" "1.1.0"
456 |
457 | "@img/sharp-libvips-darwin-arm64@1.1.0":
458 | version "1.1.0"
459 | resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz#843f7c09c7245dc0d3cfec2b3c83bb08799a704f"
460 | integrity sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==
461 |
462 | "@img/sharp-libvips-darwin-x64@1.1.0":
463 | version "1.1.0"
464 | resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz#1239c24426c06a8e833815562f78047a3bfbaaf8"
465 | integrity sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==
466 |
467 | "@img/sharp-libvips-linux-arm64@1.1.0":
468 | version "1.1.0"
469 | resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz#20d276cefd903ee483f0441ba35961679c286315"
470 | integrity sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==
471 |
472 | "@img/sharp-libvips-linux-arm@1.1.0":
473 | version "1.1.0"
474 | resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz#067c0b566eae8063738cf1b1db8f8a8573b5465c"
475 | integrity sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==
476 |
477 | "@img/sharp-libvips-linux-ppc64@1.1.0":
478 | version "1.1.0"
479 | resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz#682334595f2ca00e0a07a675ba170af165162802"
480 | integrity sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==
481 |
482 | "@img/sharp-libvips-linux-s390x@1.1.0":
483 | version "1.1.0"
484 | resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz#82fcd68444b3666384235279c145c2b28d8ee302"
485 | integrity sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==
486 |
487 | "@img/sharp-libvips-linux-x64@1.1.0":
488 | version "1.1.0"
489 | resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz#65b2b908bf47156b0724fde9095676c83a18cf5a"
490 | integrity sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==
491 |
492 | "@img/sharp-libvips-linuxmusl-arm64@1.1.0":
493 | version "1.1.0"
494 | resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz#72accf924e80b081c8db83b900b444a67c203f01"
495 | integrity sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==
496 |
497 | "@img/sharp-libvips-linuxmusl-x64@1.1.0":
498 | version "1.1.0"
499 | resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz#1fa052737e203f46bf44192acd01f9faf11522d7"
500 | integrity sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==
501 |
502 | "@img/sharp-linux-arm64@0.34.1":
503 | version "0.34.1"
504 | resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.1.tgz#c36ef964499b8cfc2d2ed88fe68f27ce41522c80"
505 | integrity sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==
506 | optionalDependencies:
507 | "@img/sharp-libvips-linux-arm64" "1.1.0"
508 |
509 | "@img/sharp-linux-arm@0.34.1":
510 | version "0.34.1"
511 | resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.1.tgz#c96e38ff028d645912bb0aa132a7178b96997866"
512 | integrity sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==
513 | optionalDependencies:
514 | "@img/sharp-libvips-linux-arm" "1.1.0"
515 |
516 | "@img/sharp-linux-s390x@0.34.1":
517 | version "0.34.1"
518 | resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.1.tgz#8ac58d9a49dcb08215e76c8d450717979b7815c3"
519 | integrity sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==
520 | optionalDependencies:
521 | "@img/sharp-libvips-linux-s390x" "1.1.0"
522 |
523 | "@img/sharp-linux-x64@0.34.1":
524 | version "0.34.1"
525 | resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.1.tgz#3d8652efac635f0dba39d5e3b8b49515a2b2dee1"
526 | integrity sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==
527 | optionalDependencies:
528 | "@img/sharp-libvips-linux-x64" "1.1.0"
529 |
530 | "@img/sharp-linuxmusl-arm64@0.34.1":
531 | version "0.34.1"
532 | resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.1.tgz#b267e6a3e06f9e4d345cde471e5480c5c39e6969"
533 | integrity sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==
534 | optionalDependencies:
535 | "@img/sharp-libvips-linuxmusl-arm64" "1.1.0"
536 |
537 | "@img/sharp-linuxmusl-x64@0.34.1":
538 | version "0.34.1"
539 | resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.1.tgz#a8dee4b6227f348c4bbacaa6ac3dc584a1a80391"
540 | integrity sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==
541 | optionalDependencies:
542 | "@img/sharp-libvips-linuxmusl-x64" "1.1.0"
543 |
544 | "@img/sharp-wasm32@0.34.1":
545 | version "0.34.1"
546 | resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.34.1.tgz#f7dfd66b6c231269042d3d8750c90f28b9ddcba1"
547 | integrity sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==
548 | dependencies:
549 | "@emnapi/runtime" "^1.4.0"
550 |
551 | "@img/sharp-win32-ia32@0.34.1":
552 | version "0.34.1"
553 | resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.1.tgz#4bc293705df76a5f0a02df66ca3dc12e88f61332"
554 | integrity sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==
555 |
556 | "@img/sharp-win32-x64@0.34.1":
557 | version "0.34.1"
558 | resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.1.tgz#8a7922fec949f037c204c79f6b83238d2482384b"
559 | integrity sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==
560 |
561 | "@next/env@15.3.1":
562 | version "15.3.1"
563 | resolved "https://registry.yarnpkg.com/@next/env/-/env-15.3.1.tgz#fca98dcb90d92d555972cdbf03adf9aa982e2115"
564 | integrity sha512-cwK27QdzrMblHSn9DZRV+DQscHXRuJv6MydlJRpFSqJWZrTYMLzKDeyueJNN9MGd8NNiUKzDQADAf+dMLXX7YQ==
565 |
566 | "@next/swc-darwin-arm64@15.3.1":
567 | version "15.3.1"
568 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.1.tgz#8f9589aed9f6816687440aa36a86376b3a16af58"
569 | integrity sha512-hjDw4f4/nla+6wysBL07z52Gs55Gttp5Bsk5/8AncQLJoisvTBP0pRIBK/B16/KqQyH+uN4Ww8KkcAqJODYH3w==
570 |
571 | "@next/swc-darwin-x64@15.3.1":
572 | version "15.3.1"
573 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.1.tgz#2df013226d848394ed7307188c141f0e6da4ab3e"
574 | integrity sha512-q+aw+cJ2ooVYdCEqZVk+T4Ni10jF6Fo5DfpEV51OupMaV5XL6pf3GCzrk6kSSZBsMKZtVC1Zm/xaNBFpA6bJ2g==
575 |
576 | "@next/swc-linux-arm64-gnu@15.3.1":
577 | version "15.3.1"
578 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.1.tgz#d1c4e24b2b27c36a7ebc21ae0573e9e98f794143"
579 | integrity sha512-wBQ+jGUI3N0QZyWmmvRHjXjTWFy8o+zPFLSOyAyGFI94oJi+kK/LIZFJXeykvgXUk1NLDAEFDZw/NVINhdk9FQ==
580 |
581 | "@next/swc-linux-arm64-musl@15.3.1":
582 | version "15.3.1"
583 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.1.tgz#bce27533f9f046800f850a9c20832e8c15b10955"
584 | integrity sha512-IIxXEXRti/AulO9lWRHiCpUUR8AR/ZYLPALgiIg/9ENzMzLn3l0NSxVdva7R/VDcuSEBo0eGVCe3evSIHNz0Hg==
585 |
586 | "@next/swc-linux-x64-gnu@15.3.1":
587 | version "15.3.1"
588 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.1.tgz#f90558d93bc25e01b0b271725e291863286753c4"
589 | integrity sha512-bfI4AMhySJbyXQIKH5rmLJ5/BP7bPwuxauTvVEiJ/ADoddaA9fgyNNCcsbu9SlqfHDoZmfI6g2EjzLwbsVTr5A==
590 |
591 | "@next/swc-linux-x64-musl@15.3.1":
592 | version "15.3.1"
593 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.1.tgz#639f143bd0f3fd6e1bde4b383dc6cd8a8ff12628"
594 | integrity sha512-FeAbR7FYMWR+Z+M5iSGytVryKHiAsc0x3Nc3J+FD5NVbD5Mqz7fTSy8CYliXinn7T26nDMbpExRUI/4ekTvoiA==
595 |
596 | "@next/swc-win32-arm64-msvc@15.3.1":
597 | version "15.3.1"
598 | resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.1.tgz#52ee1e63b192fec8f0230caf839cfc308d0d44d1"
599 | integrity sha512-yP7FueWjphQEPpJQ2oKmshk/ppOt+0/bB8JC8svPUZNy0Pi3KbPx2Llkzv1p8CoQa+D2wknINlJpHf3vtChVBw==
600 |
601 | "@next/swc-win32-x64-msvc@15.3.1":
602 | version "15.3.1"
603 | resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.1.tgz#df5ceb9c3b97bf0d61cb6e84f79bbf9e91a89d29"
604 | integrity sha512-3PMvF2zRJAifcRNni9uMk/gulWfWS+qVI/pagd+4yLF5bcXPZPPH2xlYRYOsUjmCJOXSTAC2PjRzbhsRzR2fDQ==
605 |
606 | "@nodelib/fs.scandir@2.1.5":
607 | version "2.1.5"
608 | resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
609 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
610 | dependencies:
611 | "@nodelib/fs.stat" "2.0.5"
612 | run-parallel "^1.1.9"
613 |
614 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
615 | version "2.0.5"
616 | resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
617 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
618 |
619 | "@nodelib/fs.walk@^1.2.3":
620 | version "1.2.8"
621 | resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
622 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
623 | dependencies:
624 | "@nodelib/fs.scandir" "2.1.5"
625 | fastq "^1.6.0"
626 |
627 | "@panva/hkdf@^1.0.2":
628 | version "1.0.2"
629 | resolved "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.0.2.tgz"
630 | integrity sha512-MSAs9t3Go7GUkMhpKC44T58DJ5KGk2vBo+h1cqQeqlMfdGkxaVB78ZWpv9gYi/g2fa4sopag9gJsNvS8XGgWJA==
631 |
632 | "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":
633 | version "1.1.2"
634 | resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz"
635 | integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==
636 |
637 | "@protobufjs/base64@^1.1.2":
638 | version "1.1.2"
639 | resolved "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz"
640 | integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==
641 |
642 | "@protobufjs/codegen@^2.0.4":
643 | version "2.0.4"
644 | resolved "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz"
645 | integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==
646 |
647 | "@protobufjs/eventemitter@^1.1.0":
648 | version "1.1.0"
649 | resolved "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz"
650 | integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==
651 |
652 | "@protobufjs/fetch@^1.1.0":
653 | version "1.1.0"
654 | resolved "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz"
655 | integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==
656 | dependencies:
657 | "@protobufjs/aspromise" "^1.1.1"
658 | "@protobufjs/inquire" "^1.1.0"
659 |
660 | "@protobufjs/float@^1.0.2":
661 | version "1.0.2"
662 | resolved "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz"
663 | integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==
664 |
665 | "@protobufjs/inquire@^1.1.0":
666 | version "1.1.0"
667 | resolved "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz"
668 | integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==
669 |
670 | "@protobufjs/path@^1.1.2":
671 | version "1.1.2"
672 | resolved "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz"
673 | integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==
674 |
675 | "@protobufjs/pool@^1.1.0":
676 | version "1.1.0"
677 | resolved "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz"
678 | integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==
679 |
680 | "@protobufjs/utf8@^1.1.0":
681 | version "1.1.0"
682 | resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz"
683 | integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==
684 |
685 | "@swc/counter@0.1.3":
686 | version "0.1.3"
687 | resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9"
688 | integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==
689 |
690 | "@swc/helpers@0.5.15":
691 | version "0.5.15"
692 | resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.15.tgz#79efab344c5819ecf83a43f3f9f811fc84b516d7"
693 | integrity sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==
694 | dependencies:
695 | tslib "^2.8.0"
696 |
697 | "@tailwindcss/line-clamp@^0.4.2":
698 | version "0.4.2"
699 | resolved "https://registry.npmjs.org/@tailwindcss/line-clamp/-/line-clamp-0.4.2.tgz"
700 | integrity sha512-HFzAQuqYCjyy/SX9sLGB1lroPzmcnWv1FHkIpmypte10hptf4oPUfucryMKovZh2u0uiS9U5Ty3GghWfEJGwVw==
701 |
702 | "@types/node@18.11.3", "@types/node@>=12.12.47", "@types/node@>=13.7.0":
703 | version "18.11.3"
704 | resolved "https://registry.npmjs.org/@types/node/-/node-18.11.3.tgz"
705 | integrity sha512-fNjDQzzOsZeKZu5NATgXUPsaFaTxeRgFXoosrHivTl8RGeV733OLawXsGfEk9a8/tySyZUyiZ6E8LcjPFZ2y1A==
706 |
707 | "@types/prop-types@*":
708 | version "15.7.5"
709 | resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz"
710 | integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
711 |
712 | "@types/react-dom@18.0.6":
713 | version "18.0.6"
714 | resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.6.tgz"
715 | integrity sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==
716 | dependencies:
717 | "@types/react" "*"
718 |
719 | "@types/react@*":
720 | version "18.0.25"
721 | resolved "https://registry.npmjs.org/@types/react/-/react-18.0.25.tgz"
722 | integrity sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g==
723 | dependencies:
724 | "@types/prop-types" "*"
725 | "@types/scheduler" "*"
726 | csstype "^3.0.2"
727 |
728 | "@types/react@18.0.21":
729 | version "18.0.21"
730 | resolved "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz"
731 | integrity sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==
732 | dependencies:
733 | "@types/prop-types" "*"
734 | "@types/scheduler" "*"
735 | csstype "^3.0.2"
736 |
737 | "@types/scheduler@*":
738 | version "0.16.2"
739 | resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz"
740 | integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
741 |
742 | acorn-node@^1.8.2:
743 | version "1.8.2"
744 | resolved "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz"
745 | integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
746 | dependencies:
747 | acorn "^7.0.0"
748 | acorn-walk "^7.0.0"
749 | xtend "^4.0.2"
750 |
751 | acorn-walk@^7.0.0:
752 | version "7.2.0"
753 | resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz"
754 | integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
755 |
756 | acorn@^7.0.0:
757 | version "7.4.1"
758 | resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz"
759 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
760 |
761 | ansi-regex@^5.0.1:
762 | version "5.0.1"
763 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
764 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
765 |
766 | ansi-styles@^4.0.0:
767 | version "4.3.0"
768 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
769 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
770 | dependencies:
771 | color-convert "^2.0.1"
772 |
773 | anymatch@~3.1.2:
774 | version "3.1.2"
775 | resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz"
776 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
777 | dependencies:
778 | normalize-path "^3.0.0"
779 | picomatch "^2.0.4"
780 |
781 | arg@^5.0.2:
782 | version "5.0.2"
783 | resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz"
784 | integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
785 |
786 | autoprefixer@^10.4.12:
787 | version "10.4.13"
788 | resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz"
789 | integrity sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==
790 | dependencies:
791 | browserslist "^4.21.4"
792 | caniuse-lite "^1.0.30001426"
793 | fraction.js "^4.2.0"
794 | normalize-range "^0.1.2"
795 | picocolors "^1.0.0"
796 | postcss-value-parser "^4.2.0"
797 |
798 | binary-extensions@^2.0.0:
799 | version "2.2.0"
800 | resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
801 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
802 |
803 | braces@^3.0.3, braces@~3.0.2:
804 | version "3.0.3"
805 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
806 | integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
807 | dependencies:
808 | fill-range "^7.1.1"
809 |
810 | browserslist@^4.21.4:
811 | version "4.21.4"
812 | resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz"
813 | integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
814 | dependencies:
815 | caniuse-lite "^1.0.30001400"
816 | electron-to-chromium "^1.4.251"
817 | node-releases "^2.0.6"
818 | update-browserslist-db "^1.0.9"
819 |
820 | busboy@1.6.0:
821 | version "1.6.0"
822 | resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893"
823 | integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==
824 | dependencies:
825 | streamsearch "^1.1.0"
826 |
827 | camelcase-css@^2.0.1:
828 | version "2.0.1"
829 | resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz"
830 | integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
831 |
832 | caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426, caniuse-lite@^1.0.30001579:
833 | version "1.0.30001617"
834 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001617.tgz#809bc25f3f5027ceb33142a7d6c40759d7a901eb"
835 | integrity sha512-mLyjzNI9I+Pix8zwcrpxEbGlfqOkF9kM3ptzmKNw5tizSyYwMe+nGLTqMK9cO+0E+Bh6TsBxNAaHWEM8xwSsmA==
836 |
837 | chokidar@^3.5.3:
838 | version "3.5.3"
839 | resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz"
840 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
841 | dependencies:
842 | anymatch "~3.1.2"
843 | braces "~3.0.2"
844 | glob-parent "~5.1.2"
845 | is-binary-path "~2.1.0"
846 | is-glob "~4.0.1"
847 | normalize-path "~3.0.0"
848 | readdirp "~3.6.0"
849 | optionalDependencies:
850 | fsevents "~2.3.2"
851 |
852 | client-only@0.0.1, client-only@^0.0.1:
853 | version "0.0.1"
854 | resolved "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz"
855 | integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==
856 |
857 | cliui@^8.0.1:
858 | version "8.0.1"
859 | resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz"
860 | integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
861 | dependencies:
862 | string-width "^4.2.0"
863 | strip-ansi "^6.0.1"
864 | wrap-ansi "^7.0.0"
865 |
866 | color-convert@^2.0.1:
867 | version "2.0.1"
868 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
869 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
870 | dependencies:
871 | color-name "~1.1.4"
872 |
873 | color-name@^1.0.0, color-name@^1.1.4, color-name@~1.1.4:
874 | version "1.1.4"
875 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
876 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
877 |
878 | color-string@^1.9.0:
879 | version "1.9.1"
880 | resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4"
881 | integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==
882 | dependencies:
883 | color-name "^1.0.0"
884 | simple-swizzle "^0.2.2"
885 |
886 | color@^4.2.3:
887 | version "4.2.3"
888 | resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a"
889 | integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==
890 | dependencies:
891 | color-convert "^2.0.1"
892 | color-string "^1.9.0"
893 |
894 | cookie@^0.7.0:
895 | version "0.7.2"
896 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7"
897 | integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
898 |
899 | cssesc@^3.0.0:
900 | version "3.0.0"
901 | resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
902 | integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
903 |
904 | csstype@^3.0.2:
905 | version "3.1.1"
906 | resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz"
907 | integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==
908 |
909 | defined@^1.0.0:
910 | version "1.0.1"
911 | resolved "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz"
912 | integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==
913 |
914 | detect-libc@^2.0.3:
915 | version "2.0.3"
916 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700"
917 | integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==
918 |
919 | detective@^5.2.1:
920 | version "5.2.1"
921 | resolved "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz"
922 | integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==
923 | dependencies:
924 | acorn-node "^1.8.2"
925 | defined "^1.0.0"
926 | minimist "^1.2.6"
927 |
928 | didyoumean@^1.2.2:
929 | version "1.2.2"
930 | resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz"
931 | integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
932 |
933 | dlv@^1.1.3:
934 | version "1.1.3"
935 | resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz"
936 | integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
937 |
938 | dom7@^4.0.4:
939 | version "4.0.4"
940 | resolved "https://registry.npmjs.org/dom7/-/dom7-4.0.4.tgz"
941 | integrity sha512-DSSgBzQ4rJWQp1u6o+3FVwMNnT5bzQbMb+o31TjYYeRi05uAcpF8koxdfzeoe5ElzPmua7W7N28YJhF7iEKqIw==
942 | dependencies:
943 | ssr-window "^4.0.0"
944 |
945 | electron-to-chromium@^1.4.251:
946 | version "1.4.284"
947 | resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz"
948 | integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==
949 |
950 | emoji-regex@^8.0.0:
951 | version "8.0.0"
952 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"
953 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
954 |
955 | escalade@^3.1.1:
956 | version "3.1.1"
957 | resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
958 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
959 |
960 | fast-glob@^3.2.12:
961 | version "3.2.12"
962 | resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz"
963 | integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==
964 | dependencies:
965 | "@nodelib/fs.stat" "^2.0.2"
966 | "@nodelib/fs.walk" "^1.2.3"
967 | glob-parent "^5.1.2"
968 | merge2 "^1.3.0"
969 | micromatch "^4.0.4"
970 |
971 | fastq@^1.6.0:
972 | version "1.13.0"
973 | resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz"
974 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
975 | dependencies:
976 | reusify "^1.0.4"
977 |
978 | faye-websocket@0.11.4:
979 | version "0.11.4"
980 | resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz"
981 | integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==
982 | dependencies:
983 | websocket-driver ">=0.5.1"
984 |
985 | fill-range@^7.1.1:
986 | version "7.1.1"
987 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
988 | integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
989 | dependencies:
990 | to-regex-range "^5.0.1"
991 |
992 | firebase@^10.12.2:
993 | version "10.12.2"
994 | resolved "https://registry.yarnpkg.com/firebase/-/firebase-10.12.2.tgz#9049286c5fafb6d686bb19ad93c7bb4a9e8756c0"
995 | integrity sha512-ZxEdtSvP1I9su1yf32D8TIdgxtPgxwr6z3jYAR1TXS/t+fVfpoPc/N1/N2bxOco9mNjUoc+od34v5Fn4GeKs6Q==
996 | dependencies:
997 | "@firebase/analytics" "0.10.4"
998 | "@firebase/analytics-compat" "0.2.10"
999 | "@firebase/app" "0.10.5"
1000 | "@firebase/app-check" "0.8.4"
1001 | "@firebase/app-check-compat" "0.3.11"
1002 | "@firebase/app-compat" "0.2.35"
1003 | "@firebase/app-types" "0.9.2"
1004 | "@firebase/auth" "1.7.4"
1005 | "@firebase/auth-compat" "0.5.9"
1006 | "@firebase/database" "1.0.5"
1007 | "@firebase/database-compat" "1.0.5"
1008 | "@firebase/firestore" "4.6.3"
1009 | "@firebase/firestore-compat" "0.3.32"
1010 | "@firebase/functions" "0.11.5"
1011 | "@firebase/functions-compat" "0.3.11"
1012 | "@firebase/installations" "0.6.7"
1013 | "@firebase/installations-compat" "0.2.7"
1014 | "@firebase/messaging" "0.12.9"
1015 | "@firebase/messaging-compat" "0.2.9"
1016 | "@firebase/performance" "0.6.7"
1017 | "@firebase/performance-compat" "0.2.7"
1018 | "@firebase/remote-config" "0.4.7"
1019 | "@firebase/remote-config-compat" "0.2.7"
1020 | "@firebase/storage" "0.12.5"
1021 | "@firebase/storage-compat" "0.3.8"
1022 | "@firebase/util" "1.9.6"
1023 | "@firebase/vertexai-preview" "0.0.2"
1024 |
1025 | fraction.js@^4.2.0:
1026 | version "4.2.0"
1027 | resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz"
1028 | integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
1029 |
1030 | fsevents@~2.3.2:
1031 | version "2.3.2"
1032 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
1033 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
1034 |
1035 | function-bind@^1.1.1:
1036 | version "1.1.1"
1037 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
1038 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
1039 |
1040 | get-caller-file@^2.0.5:
1041 | version "2.0.5"
1042 | resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
1043 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
1044 |
1045 | glob-parent@^5.1.2, glob-parent@~5.1.2:
1046 | version "5.1.2"
1047 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
1048 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
1049 | dependencies:
1050 | is-glob "^4.0.1"
1051 |
1052 | glob-parent@^6.0.2:
1053 | version "6.0.2"
1054 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz"
1055 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
1056 | dependencies:
1057 | is-glob "^4.0.3"
1058 |
1059 | hamt_plus@1.0.2:
1060 | version "1.0.2"
1061 | resolved "https://registry.npmjs.org/hamt_plus/-/hamt_plus-1.0.2.tgz"
1062 | integrity sha512-t2JXKaehnMb9paaYA7J0BX8QQAY8lwfQ9Gjf4pg/mk4krt+cmwmU652HOoWonf+7+EQV97ARPMhhVgU1ra2GhA==
1063 |
1064 | has@^1.0.3:
1065 | version "1.0.3"
1066 | resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
1067 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
1068 | dependencies:
1069 | function-bind "^1.1.1"
1070 |
1071 | http-parser-js@>=0.5.1:
1072 | version "0.5.8"
1073 | resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz"
1074 | integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==
1075 |
1076 | idb@7.1.1:
1077 | version "7.1.1"
1078 | resolved "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz"
1079 | integrity sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==
1080 |
1081 | is-arrayish@^0.3.1:
1082 | version "0.3.2"
1083 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
1084 | integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
1085 |
1086 | is-binary-path@~2.1.0:
1087 | version "2.1.0"
1088 | resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
1089 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
1090 | dependencies:
1091 | binary-extensions "^2.0.0"
1092 |
1093 | is-core-module@^2.9.0:
1094 | version "2.11.0"
1095 | resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz"
1096 | integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==
1097 | dependencies:
1098 | has "^1.0.3"
1099 |
1100 | is-extglob@^2.1.1:
1101 | version "2.1.1"
1102 | resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
1103 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
1104 |
1105 | is-fullwidth-code-point@^3.0.0:
1106 | version "3.0.0"
1107 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
1108 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
1109 |
1110 | is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
1111 | version "4.0.3"
1112 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
1113 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
1114 | dependencies:
1115 | is-extglob "^2.1.1"
1116 |
1117 | is-number@^7.0.0:
1118 | version "7.0.0"
1119 | resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
1120 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1121 |
1122 | jose@^4.10.0, jose@^4.15.5:
1123 | version "4.15.9"
1124 | resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.9.tgz#9b68eda29e9a0614c042fa29387196c7dd800100"
1125 | integrity sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==
1126 |
1127 | "js-tokens@^3.0.0 || ^4.0.0":
1128 | version "4.0.0"
1129 | resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
1130 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1131 |
1132 | lilconfig@^2.0.5, lilconfig@^2.0.6:
1133 | version "2.0.6"
1134 | resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz"
1135 | integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==
1136 |
1137 | lodash.camelcase@^4.3.0:
1138 | version "4.3.0"
1139 | resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz"
1140 | integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==
1141 |
1142 | long@^5.0.0:
1143 | version "5.2.3"
1144 | resolved "https://registry.npmjs.org/long/-/long-5.2.3.tgz"
1145 | integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==
1146 |
1147 | loose-envify@^1.1.0:
1148 | version "1.4.0"
1149 | resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
1150 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
1151 | dependencies:
1152 | js-tokens "^3.0.0 || ^4.0.0"
1153 |
1154 | lru-cache@^6.0.0:
1155 | version "6.0.0"
1156 | resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
1157 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
1158 | dependencies:
1159 | yallist "^4.0.0"
1160 |
1161 | merge2@^1.3.0:
1162 | version "1.4.1"
1163 | resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
1164 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
1165 |
1166 | micromatch@^4.0.4, micromatch@^4.0.5:
1167 | version "4.0.8"
1168 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
1169 | integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
1170 | dependencies:
1171 | braces "^3.0.3"
1172 | picomatch "^2.3.1"
1173 |
1174 | minimist@^1.2.6:
1175 | version "1.2.7"
1176 | resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz"
1177 | integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
1178 |
1179 | moment@^2.29.4:
1180 | version "2.29.4"
1181 | resolved "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz"
1182 | integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
1183 |
1184 | nanoid@^3.3.6:
1185 | version "3.3.11"
1186 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b"
1187 | integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==
1188 |
1189 | next-auth@^4.24.10:
1190 | version "4.24.10"
1191 | resolved "https://registry.yarnpkg.com/next-auth/-/next-auth-4.24.10.tgz#343d5de8067fde5dae1111ca6b7bef1fbe4d78fe"
1192 | integrity sha512-8NGqiRO1GXBcVfV8tbbGcUgQkAGsX4GRzzXXea4lDikAsJtD5KiEY34bfhUOjHLvr6rT6afpcxw2H8EZqOV6aQ==
1193 | dependencies:
1194 | "@babel/runtime" "^7.20.13"
1195 | "@panva/hkdf" "^1.0.2"
1196 | cookie "^0.7.0"
1197 | jose "^4.15.5"
1198 | oauth "^0.9.15"
1199 | openid-client "^5.4.0"
1200 | preact "^10.6.3"
1201 | preact-render-to-string "^5.1.19"
1202 | uuid "^8.3.2"
1203 |
1204 | next@latest:
1205 | version "15.3.1"
1206 | resolved "https://registry.yarnpkg.com/next/-/next-15.3.1.tgz#69cf2c124e504db64e14fc75eb29bd64c0c787a7"
1207 | integrity sha512-8+dDV0xNLOgHlyBxP1GwHGVaNXsmp+2NhZEYrXr24GWLHtt27YrBPbPuHvzlhi7kZNYjeJNR93IF5zfFu5UL0g==
1208 | dependencies:
1209 | "@next/env" "15.3.1"
1210 | "@swc/counter" "0.1.3"
1211 | "@swc/helpers" "0.5.15"
1212 | busboy "1.6.0"
1213 | caniuse-lite "^1.0.30001579"
1214 | postcss "8.4.31"
1215 | styled-jsx "5.1.6"
1216 | optionalDependencies:
1217 | "@next/swc-darwin-arm64" "15.3.1"
1218 | "@next/swc-darwin-x64" "15.3.1"
1219 | "@next/swc-linux-arm64-gnu" "15.3.1"
1220 | "@next/swc-linux-arm64-musl" "15.3.1"
1221 | "@next/swc-linux-x64-gnu" "15.3.1"
1222 | "@next/swc-linux-x64-musl" "15.3.1"
1223 | "@next/swc-win32-arm64-msvc" "15.3.1"
1224 | "@next/swc-win32-x64-msvc" "15.3.1"
1225 | sharp "^0.34.1"
1226 |
1227 | node-releases@^2.0.6:
1228 | version "2.0.6"
1229 | resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz"
1230 | integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==
1231 |
1232 | normalize-path@^3.0.0, normalize-path@~3.0.0:
1233 | version "3.0.0"
1234 | resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
1235 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
1236 |
1237 | normalize-range@^0.1.2:
1238 | version "0.1.2"
1239 | resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz"
1240 | integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
1241 |
1242 | oauth@^0.9.15:
1243 | version "0.9.15"
1244 | resolved "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz"
1245 | integrity sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==
1246 |
1247 | object-hash@^2.0.1:
1248 | version "2.2.0"
1249 | resolved "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz"
1250 | integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==
1251 |
1252 | object-hash@^3.0.0:
1253 | version "3.0.0"
1254 | resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz"
1255 | integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==
1256 |
1257 | oidc-token-hash@^5.0.1:
1258 | version "5.0.1"
1259 | resolved "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.1.tgz"
1260 | integrity sha512-EvoOtz6FIEBzE+9q253HsLCVRiK/0doEJ2HCvvqMQb3dHZrP3WlJKYtJ55CRTw4jmYomzH4wkPuCj/I3ZvpKxQ==
1261 |
1262 | openid-client@^5.4.0:
1263 | version "5.4.0"
1264 | resolved "https://registry.npmjs.org/openid-client/-/openid-client-5.4.0.tgz"
1265 | integrity sha512-hgJa2aQKcM2hn3eyVtN12tEA45ECjTJPXCgUh5YzTzy9qwapCvmDTVPWOcWVL0d34zeQoQ/hbG9lJhl3AYxJlQ==
1266 | dependencies:
1267 | jose "^4.10.0"
1268 | lru-cache "^6.0.0"
1269 | object-hash "^2.0.1"
1270 | oidc-token-hash "^5.0.1"
1271 |
1272 | path-parse@^1.0.7:
1273 | version "1.0.7"
1274 | resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
1275 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1276 |
1277 | picocolors@^1.0.0:
1278 | version "1.0.0"
1279 | resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
1280 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
1281 |
1282 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
1283 | version "2.3.1"
1284 | resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
1285 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
1286 |
1287 | pify@^2.3.0:
1288 | version "2.3.0"
1289 | resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
1290 | integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
1291 |
1292 | postcss-import@^14.1.0:
1293 | version "14.1.0"
1294 | resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz"
1295 | integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==
1296 | dependencies:
1297 | postcss-value-parser "^4.0.0"
1298 | read-cache "^1.0.0"
1299 | resolve "^1.1.7"
1300 |
1301 | postcss-js@^4.0.0:
1302 | version "4.0.0"
1303 | resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz"
1304 | integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==
1305 | dependencies:
1306 | camelcase-css "^2.0.1"
1307 |
1308 | postcss-load-config@^3.1.4:
1309 | version "3.1.4"
1310 | resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz"
1311 | integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==
1312 | dependencies:
1313 | lilconfig "^2.0.5"
1314 | yaml "^1.10.2"
1315 |
1316 | postcss-nested@6.0.0:
1317 | version "6.0.0"
1318 | resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz"
1319 | integrity sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==
1320 | dependencies:
1321 | postcss-selector-parser "^6.0.10"
1322 |
1323 | postcss-selector-parser@^6.0.10:
1324 | version "6.0.10"
1325 | resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz"
1326 | integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==
1327 | dependencies:
1328 | cssesc "^3.0.0"
1329 | util-deprecate "^1.0.2"
1330 |
1331 | postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
1332 | version "4.2.0"
1333 | resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
1334 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
1335 |
1336 | postcss@8.4.31, postcss@^8.4.18, postcss@^8.4.31:
1337 | version "8.4.31"
1338 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
1339 | integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==
1340 | dependencies:
1341 | nanoid "^3.3.6"
1342 | picocolors "^1.0.0"
1343 | source-map-js "^1.0.2"
1344 |
1345 | preact-render-to-string@^5.1.19:
1346 | version "5.2.6"
1347 | resolved "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz"
1348 | integrity sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==
1349 | dependencies:
1350 | pretty-format "^3.8.0"
1351 |
1352 | preact@^10.6.3:
1353 | version "10.11.2"
1354 | resolved "https://registry.npmjs.org/preact/-/preact-10.11.2.tgz"
1355 | integrity sha512-skAwGDFmgxhq1DCBHke/9e12ewkhc7WYwjuhHB8HHS8zkdtITXLRmUMTeol2ldxvLwYtwbFeifZ9uDDWuyL4Iw==
1356 |
1357 | pretty-format@^3.8.0:
1358 | version "3.8.0"
1359 | resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz"
1360 | integrity sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==
1361 |
1362 | protobufjs@^7.2.5:
1363 | version "7.3.2"
1364 | resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.2.tgz#60f3b7624968868f6f739430cfbc8c9370e26df4"
1365 | integrity sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==
1366 | dependencies:
1367 | "@protobufjs/aspromise" "^1.1.2"
1368 | "@protobufjs/base64" "^1.1.2"
1369 | "@protobufjs/codegen" "^2.0.4"
1370 | "@protobufjs/eventemitter" "^1.1.0"
1371 | "@protobufjs/fetch" "^1.1.0"
1372 | "@protobufjs/float" "^1.0.2"
1373 | "@protobufjs/inquire" "^1.1.0"
1374 | "@protobufjs/path" "^1.1.2"
1375 | "@protobufjs/pool" "^1.1.0"
1376 | "@protobufjs/utf8" "^1.1.0"
1377 | "@types/node" ">=13.7.0"
1378 | long "^5.0.0"
1379 |
1380 | queue-microtask@^1.2.2:
1381 | version "1.2.3"
1382 | resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
1383 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
1384 |
1385 | quick-lru@^5.1.1:
1386 | version "5.1.1"
1387 | resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz"
1388 | integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
1389 |
1390 | react-dom@18.2.0:
1391 | version "18.2.0"
1392 | resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz"
1393 | integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
1394 | dependencies:
1395 | loose-envify "^1.1.0"
1396 | scheduler "^0.23.0"
1397 |
1398 | react-moment@^1.1.2:
1399 | version "1.1.2"
1400 | resolved "https://registry.npmjs.org/react-moment/-/react-moment-1.1.2.tgz"
1401 | integrity sha512-lfb+shYXI2tXlQrNUpNr05/1D/kzFj8Isbfp89DQrpZk0fs2JIAnLHWETR0hQS9zvtzwLWlVv0wKLffbue5HoA==
1402 |
1403 | react@18.2.0:
1404 | version "18.2.0"
1405 | resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz"
1406 | integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
1407 | dependencies:
1408 | loose-envify "^1.1.0"
1409 |
1410 | read-cache@^1.0.0:
1411 | version "1.0.0"
1412 | resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz"
1413 | integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
1414 | dependencies:
1415 | pify "^2.3.0"
1416 |
1417 | readdirp@~3.6.0:
1418 | version "3.6.0"
1419 | resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
1420 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
1421 | dependencies:
1422 | picomatch "^2.2.1"
1423 |
1424 | recoil@^0.7.6:
1425 | version "0.7.6"
1426 | resolved "https://registry.npmjs.org/recoil/-/recoil-0.7.6.tgz"
1427 | integrity sha512-hsBEw7jFdpBCY/tu2GweiyaqHKxVj6EqF2/SfrglbKvJHhpN57SANWvPW+gE90i3Awi+A5gssOd3u+vWlT+g7g==
1428 | dependencies:
1429 | hamt_plus "1.0.2"
1430 |
1431 | regenerator-runtime@^0.14.0:
1432 | version "0.14.1"
1433 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f"
1434 | integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
1435 |
1436 | require-directory@^2.1.1:
1437 | version "2.1.1"
1438 | resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
1439 | integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
1440 |
1441 | resolve@^1.1.7, resolve@^1.22.1:
1442 | version "1.22.1"
1443 | resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz"
1444 | integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
1445 | dependencies:
1446 | is-core-module "^2.9.0"
1447 | path-parse "^1.0.7"
1448 | supports-preserve-symlinks-flag "^1.0.0"
1449 |
1450 | reusify@^1.0.4:
1451 | version "1.0.4"
1452 | resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
1453 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
1454 |
1455 | run-parallel@^1.1.9:
1456 | version "1.2.0"
1457 | resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
1458 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
1459 | dependencies:
1460 | queue-microtask "^1.2.2"
1461 |
1462 | safe-buffer@>=5.1.0:
1463 | version "5.2.1"
1464 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
1465 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
1466 |
1467 | scheduler@^0.23.0:
1468 | version "0.23.0"
1469 | resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz"
1470 | integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==
1471 | dependencies:
1472 | loose-envify "^1.1.0"
1473 |
1474 | semver@^7.7.1:
1475 | version "7.7.1"
1476 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f"
1477 | integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
1478 |
1479 | sharp@^0.34.1:
1480 | version "0.34.1"
1481 | resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.34.1.tgz#e5922894b0cc7ddf159eeabc6d5668e4e8b11d61"
1482 | integrity sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==
1483 | dependencies:
1484 | color "^4.2.3"
1485 | detect-libc "^2.0.3"
1486 | semver "^7.7.1"
1487 | optionalDependencies:
1488 | "@img/sharp-darwin-arm64" "0.34.1"
1489 | "@img/sharp-darwin-x64" "0.34.1"
1490 | "@img/sharp-libvips-darwin-arm64" "1.1.0"
1491 | "@img/sharp-libvips-darwin-x64" "1.1.0"
1492 | "@img/sharp-libvips-linux-arm" "1.1.0"
1493 | "@img/sharp-libvips-linux-arm64" "1.1.0"
1494 | "@img/sharp-libvips-linux-ppc64" "1.1.0"
1495 | "@img/sharp-libvips-linux-s390x" "1.1.0"
1496 | "@img/sharp-libvips-linux-x64" "1.1.0"
1497 | "@img/sharp-libvips-linuxmusl-arm64" "1.1.0"
1498 | "@img/sharp-libvips-linuxmusl-x64" "1.1.0"
1499 | "@img/sharp-linux-arm" "0.34.1"
1500 | "@img/sharp-linux-arm64" "0.34.1"
1501 | "@img/sharp-linux-s390x" "0.34.1"
1502 | "@img/sharp-linux-x64" "0.34.1"
1503 | "@img/sharp-linuxmusl-arm64" "0.34.1"
1504 | "@img/sharp-linuxmusl-x64" "0.34.1"
1505 | "@img/sharp-wasm32" "0.34.1"
1506 | "@img/sharp-win32-ia32" "0.34.1"
1507 | "@img/sharp-win32-x64" "0.34.1"
1508 |
1509 | simple-swizzle@^0.2.2:
1510 | version "0.2.2"
1511 | resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
1512 | integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==
1513 | dependencies:
1514 | is-arrayish "^0.3.1"
1515 |
1516 | source-map-js@^1.0.2:
1517 | version "1.0.2"
1518 | resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz"
1519 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
1520 |
1521 | ssr-window@^4.0.0, ssr-window@^4.0.2:
1522 | version "4.0.2"
1523 | resolved "https://registry.npmjs.org/ssr-window/-/ssr-window-4.0.2.tgz"
1524 | integrity sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ==
1525 |
1526 | streamsearch@^1.1.0:
1527 | version "1.1.0"
1528 | resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
1529 | integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
1530 |
1531 | string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
1532 | version "4.2.3"
1533 | resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
1534 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
1535 | dependencies:
1536 | emoji-regex "^8.0.0"
1537 | is-fullwidth-code-point "^3.0.0"
1538 | strip-ansi "^6.0.1"
1539 |
1540 | strip-ansi@^6.0.0, strip-ansi@^6.0.1:
1541 | version "6.0.1"
1542 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
1543 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
1544 | dependencies:
1545 | ansi-regex "^5.0.1"
1546 |
1547 | styled-jsx@5.1.6:
1548 | version "5.1.6"
1549 | resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.6.tgz#83b90c077e6c6a80f7f5e8781d0f311b2fe41499"
1550 | integrity sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==
1551 | dependencies:
1552 | client-only "0.0.1"
1553 |
1554 | supports-preserve-symlinks-flag@^1.0.0:
1555 | version "1.0.0"
1556 | resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
1557 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
1558 |
1559 | swiper@^8.4.4:
1560 | version "8.4.4"
1561 | resolved "https://registry.npmjs.org/swiper/-/swiper-8.4.4.tgz"
1562 | integrity sha512-jA/8BfOZwT8PqPSnMX0TENZYitXEhNa7ZSNj1Diqh5LZyUJoBQaZcqAiPQ/PIg1+IPaRn/V8ZYVb0nxHMh51yw==
1563 | dependencies:
1564 | dom7 "^4.0.4"
1565 | ssr-window "^4.0.2"
1566 |
1567 | tailwind-scrollbar-hide@^1.1.7:
1568 | version "1.1.7"
1569 | resolved "https://registry.npmjs.org/tailwind-scrollbar-hide/-/tailwind-scrollbar-hide-1.1.7.tgz"
1570 | integrity sha512-X324n9OtpTmOMqEgDUEA/RgLrNfBF/jwJdctaPZDzB3mppxJk7TLIDmOreEDm1Bq4R9LSPu4Epf8VSdovNU+iA==
1571 |
1572 | tailwindcss@^3.2.1:
1573 | version "3.2.2"
1574 | resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.2.tgz"
1575 | integrity sha512-c2GtSdqg+harR4QeoTmex0Ngfg8IIHNeLQH5yr2B9uZbZR1Xt1rYbjWOWTcj3YLTZhrmZnPowoQDbSRFyZHQ5Q==
1576 | dependencies:
1577 | arg "^5.0.2"
1578 | chokidar "^3.5.3"
1579 | color-name "^1.1.4"
1580 | detective "^5.2.1"
1581 | didyoumean "^1.2.2"
1582 | dlv "^1.1.3"
1583 | fast-glob "^3.2.12"
1584 | glob-parent "^6.0.2"
1585 | is-glob "^4.0.3"
1586 | lilconfig "^2.0.6"
1587 | micromatch "^4.0.5"
1588 | normalize-path "^3.0.0"
1589 | object-hash "^3.0.0"
1590 | picocolors "^1.0.0"
1591 | postcss "^8.4.18"
1592 | postcss-import "^14.1.0"
1593 | postcss-js "^4.0.0"
1594 | postcss-load-config "^3.1.4"
1595 | postcss-nested "6.0.0"
1596 | postcss-selector-parser "^6.0.10"
1597 | postcss-value-parser "^4.2.0"
1598 | quick-lru "^5.1.1"
1599 | resolve "^1.22.1"
1600 |
1601 | to-regex-range@^5.0.1:
1602 | version "5.0.1"
1603 | resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
1604 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1605 | dependencies:
1606 | is-number "^7.0.0"
1607 |
1608 | tslib@^2.1.0, tslib@^2.4.0:
1609 | version "2.4.1"
1610 | resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz"
1611 | integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==
1612 |
1613 | tslib@^2.8.0:
1614 | version "2.8.1"
1615 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
1616 | integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
1617 |
1618 | typescript@4.8.4:
1619 | version "4.8.4"
1620 | resolved "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz"
1621 | integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==
1622 |
1623 | undici@5.28.4:
1624 | version "5.28.4"
1625 | resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.4.tgz#6b280408edb6a1a604a9b20340f45b422e373068"
1626 | integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==
1627 | dependencies:
1628 | "@fastify/busboy" "^2.0.0"
1629 |
1630 | update-browserslist-db@^1.0.9:
1631 | version "1.0.10"
1632 | resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz"
1633 | integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==
1634 | dependencies:
1635 | escalade "^3.1.1"
1636 | picocolors "^1.0.0"
1637 |
1638 | util-deprecate@^1.0.2:
1639 | version "1.0.2"
1640 | resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
1641 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
1642 |
1643 | uuid@^8.3.2:
1644 | version "8.3.2"
1645 | resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz"
1646 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
1647 |
1648 | websocket-driver@>=0.5.1:
1649 | version "0.7.4"
1650 | resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz"
1651 | integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==
1652 | dependencies:
1653 | http-parser-js ">=0.5.1"
1654 | safe-buffer ">=5.1.0"
1655 | websocket-extensions ">=0.1.1"
1656 |
1657 | websocket-extensions@>=0.1.1:
1658 | version "0.1.4"
1659 | resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz"
1660 | integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
1661 |
1662 | wrap-ansi@^7.0.0:
1663 | version "7.0.0"
1664 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
1665 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
1666 | dependencies:
1667 | ansi-styles "^4.0.0"
1668 | string-width "^4.1.0"
1669 | strip-ansi "^6.0.0"
1670 |
1671 | xtend@^4.0.2:
1672 | version "4.0.2"
1673 | resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
1674 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
1675 |
1676 | y18n@^5.0.5:
1677 | version "5.0.8"
1678 | resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz"
1679 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
1680 |
1681 | yallist@^4.0.0:
1682 | version "4.0.0"
1683 | resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
1684 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
1685 |
1686 | yaml@^1.10.2:
1687 | version "1.10.2"
1688 | resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
1689 | integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
1690 |
1691 | yargs-parser@^21.1.1:
1692 | version "21.1.1"
1693 | resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz"
1694 | integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
1695 |
1696 | yargs@^17.7.2:
1697 | version "17.7.2"
1698 | resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz"
1699 | integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
1700 | dependencies:
1701 | cliui "^8.0.1"
1702 | escalade "^3.1.1"
1703 | get-caller-file "^2.0.5"
1704 | require-directory "^2.1.1"
1705 | string-width "^4.2.3"
1706 | y18n "^5.0.5"
1707 | yargs-parser "^21.1.1"
1708 |
--------------------------------------------------------------------------------