From f76f84ab51d2fe4e9d6cb1af0d259d6e1e05308e Mon Sep 17 00:00:00 2001 From: Abhishek <224abhishekjha@gmail.com> Date: Thu, 7 Dec 2023 22:49:28 +0000 Subject: [PATCH 1/4] Starter --- src/app/globals.css | 65 + src/app/layout.js | 24 +- src/app/page.jsx | 18 +- src/components/CardList/CardList.jsx | 16 + src/components/CardList/cardList.module.css | 3 + src/components/CategoryList/CategoryList.jsx | 8 + .../CategoryList/categoryList.module.css | 3 + src/components/Featured/Featured.jsx | 8 + src/components/Featured/featured.module.css | 3 + src/components/Footer/Footer.jsx | 8 + src/components/Footer/footer.module.css | 3 + src/components/Menu/Menu.jsx | 8 + src/components/Menu/menu.module.css | 3 + src/components/Navbar/Navbar.jsx | 31 + src/components/Navbar/navbar.module.css | 30 + src/components/Pagination/Pagination.jsx | 8 + .../Pagination/pagination.module.css | 3 + src/components/authLinks/AuthLinks.jsx | 21 + src/components/authLinks/authLinks.module.css | 3 + src/components/themeToggle/ThemeToggle.jsx | 15 + .../themeToggle/themeToggle.module.css | 20 + yarn.lock | 2100 +++++++++++++++++ 22 files changed, 2392 insertions(+), 9 deletions(-) create mode 100644 src/components/CardList/CardList.jsx create mode 100644 src/components/CardList/cardList.module.css create mode 100644 src/components/CategoryList/CategoryList.jsx create mode 100644 src/components/CategoryList/categoryList.module.css create mode 100644 src/components/Featured/Featured.jsx create mode 100644 src/components/Featured/featured.module.css create mode 100644 src/components/Footer/Footer.jsx create mode 100644 src/components/Footer/footer.module.css create mode 100644 src/components/Menu/Menu.jsx create mode 100644 src/components/Menu/menu.module.css create mode 100644 src/components/Navbar/Navbar.jsx create mode 100644 src/components/Navbar/navbar.module.css create mode 100644 src/components/Pagination/Pagination.jsx create mode 100644 src/components/Pagination/pagination.module.css create mode 100644 src/components/authLinks/AuthLinks.jsx create mode 100644 src/components/authLinks/authLinks.module.css create mode 100644 src/components/themeToggle/ThemeToggle.jsx create mode 100644 src/components/themeToggle/themeToggle.module.css create mode 100644 yarn.lock diff --git a/src/app/globals.css b/src/app/globals.css index e69de29bb..924e44a47 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -0,0 +1,65 @@ +:root { + --bg: white; + --textColor: black; + --softBg: #f0f0f0; + --softTextColor: #626262; +} + +* { + padding: 0; + margin: 0; + box-sizing: border-box; +} + +body { + max-width: 100vw; + overflow-x: hidden; +} + +a { + color: inherit; + text-decoration: none; +} + +.container { + min-height: 100vh; + background-color: var(--bg); + color: var(--textColor); +} + +.wrapper { + max-width: 1536px; + margin-left: auto; + margin-right: auto; + + padding-left: 80px; + padding-right: 80px; +} + +@media screen and (max-width: 1536px) { + .wrapper { + max-width: 1366px; + } +} +@media screen and (max-width: 1280px) { + .wrapper { + max-width: 1024px; + } +} +@media screen and (max-width: 1024px) { + .wrapper { + max-width: 768px; + padding-left: 40px; + padding-right: 40px; + } +} +@media screen and (max-width: 768px) { + .wrapper { + max-width: 640px; + } +} +@media screen and (max-width: 640px) { + .wrapper { + max-width: 475px; + } +} diff --git a/src/app/layout.js b/src/app/layout.js index 507fb0619..d9d17fb11 100644 --- a/src/app/layout.js +++ b/src/app/layout.js @@ -1,17 +1,27 @@ -import './globals.css' -import { Inter } from 'next/font/google' +import './globals.css'; +import { Inter } from 'next/font/google'; +import Navbar from '@/components/Navbar/Navbar'; +import Footer from '@/components/Footer/Footer'; -const inter = Inter({ subsets: ['latin'] }) +const inter = Inter({ subsets: ['latin'] }); export const metadata = { - title: 'Blog App', + title: 'Abedium', description: 'The best blog app!', -} +}; export default function RootLayout({ children }) { return ( -
{children} + ++ Lorem ipsum dolor sit, amet consectetur adipisicing elit. + Cupiditate, quam nisi magni ea laborum inventore voluptatum + laudantium repellat ducimus unde aspernatur fuga. Quo, accusantium + quisquam! Harum unde sit culpa debitis. +
+ ++ Lorem ipsum dolor sit amet consectetur adipisicing elit. Illum magnam + minus cupiditate quia quaerat aperiam. Veritatis laboriosam architecto + animi dignissimos labore officiis? +
+ Read More ++ Lorem, ipsum dolor sit amet consectetur adipisicing elit. Enim + necessitatibus similique aspernatur obcaecati veritatis. Aperiam cum + porro sequi, totam minima consequuntur, aspernatur deleniti vero + repellendus dorales. +
+@U*}Mt^Zq$&e{B#&bl0b6et7Ja->KB_S1Vcv z?!@&Aw^TkhQl3@Rw#};o<5Laj)6R3OKcbrL?M3at1`MV|ZKiWpZvLV7tL7CY1>-xh z=85JjKOCYjn}9voIGg$k=RQ~5S|>Ol9I!hoYM(e{QFwD_$qxA)Ov6;iCtxc|w7?t# z;otbehqum3cwgabmgf`;`sqME(7o?;R9ki06UT;M*d2~ruEpe^s~lIna4T9w+t|B( zjf$DLwf|BRgio4fohQUK9be^E8Ws*CSk~PfUM)2Gx6F)6SOK zuY&KV%yysQ@as%qyQL@VqQR|oNdQgFw{#gFuVlY2YtdH|SXF&pY3pmZRujqt`fkkd zu5tw0P?0;i&%}4x?zK*P(<(8YW#Z*0l305*c3ghC5T(s(sol<>#$E8G6W4U}@_UaY z{JY6~&n@Gv1|iOUNfBIMn*6LhhX^0`3pz1yTz)Vb2 RJ-R7kiT6W+54~K51c~gV|*5}{X_fC zc$H7@PRw1q$feYhdN^cXoB2?6{Pm;_1bSY9;QOYE)8{?2P`Rn~$6ho)x>YCvQlcZy zPRp3le}j;A#Gxm2Q;No}MUs_?o)e89nBK6o+nCRCzMlTtzQZw2oaHv5B-Ya9o^)!R zXRPbqWj6A<8UkyI=%{#k{ExW^>df12<7T3=yA71Q>_)rtBRJwbS6;#E-Lz}h`oRIF zhWFr5rajiBG}_YD0Vp$L1&f22KtZ4aXKp*at+5zWa4#Np5~+Wae>VR6uW4S !Wwc$dd+p@F_Y{WJtgCOjqbmqJHBJ<0>1q`w?-wuE7=F4)*kBdxst-$U (Ah>P3`v?w*@iQ>ewZ)l=3HStKa&&< ^digB5Gla~sN5uWyt;Z2UQ|>0NGf%qo8ROOFdr-zY5S8ae1UAvVR_QQ7wl zI{3mdPnRlZKy#VE`mOB}{BjF2u85Z7IvF?jR|-#Y$`oqG8()pOKxOeHJ|LLwuxYGWeIU>oIbx@*C)kTbJnOH9)Hoi&iiUC z61E)Zu1O AqQc}-T8fQHOjv@u0qZXm`A{D_9P?WO*lM~FkB zdEi#z{k*1&H+zvJb8Z#lfQP)u-UBsP++5LSPp=)8p2QAE!Yk4%&;5JhwdBH JmzeBj{^0n VNe`T!Ewz0`hKF#2&jyLM{TmrtBrN~{ literal 0 HcmV?d00001 diff --git a/public/plus.png b/public/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..19c093a76156c26f4d295672dcf66fdb2fc2bc80 GIT binary patch literal 1627 zcmb_dU1-x#6pqq~4kvq3a4!Xw3YzAx?V6az)pgU#95SoUJ$c*Qc9As6lG`@Ei3%!$ zg5ZNN(5ERr3?CHVgfU+fe 70hxJsAe8U-Li%GDN1%Fd|QSHgx#`kIFg%+cpehIComIHTEq39Y^z0SAk$lS z#ZRfoFhZ8ZFtu7OS`(tCU1B&<6d9Ihc%H@{v~%1*z@-gm6J`ohWuQ~AH4AB`5hm0i zZ&pw$67jtjLQ)I Oay+hOj19eDraTqSj1)@|764H b*+KHLxQBtZ;tld8Zup`2x)|DE$<6qI8ops z6{21g7nT7kk%A3Kv9L=@t4>4UB$EShqzS=d5Q7D52j-4jFcleqj#;q_u(1Q`gxxj- z2&xLt@&e5!X+9}4O(wsHa^2A5qO7U_K9PV}Xj+W%DjnmvA}!{HBAr)(*a_l!P~=&k zYhlY0rrtazit}+k5f`}_*D1!6i+eodk}Wy2QWz#_DZJ0Vh%LJRq0B+Kex(|e^* 2n!BCtyYRX^(4LvPc4*?fC{K)s#`N2AHru1&_+@-gQ@buxS zmhanQC)Q6bXUX&TuFnjGW?#14m=v7Hk2Yni-(F6eZ)RsUOi@E!&zG?#SAP0(_|nDA eGarS~%{%X$?YJ_wb_@AvP}!dT%=oUOCw~H&%JeA! literal 0 HcmV?d00001 diff --git a/public/video.png b/public/video.png new file mode 100644 index 0000000000000000000000000000000000000000..f0d8b431ecdc357bc783c0042128fde02c64594f GIT binary patch literal 2322 zcmb_ec~BE~6yAVT3<{2bbdVw)t5G3r*c^~0Ajlyog2>TuRM})V5D7`h?vhnI5UCD2 zYP~=OJX%E|PC;}~rVb$3);sFNt5vBG2RmY;R9g`h>?UGL(DskEnc3`b-|@ZozW4Uc zu3MBiZvxYs2>`%^__*lB^gY6IIe$R^ACedTOy9<-<1%mnaQ)tLF)I9Br_jPsB1TL^ zsR{}(B>_+x7=@!FV{t7 rIcf
9GMl?8 n(sit^ZS_)g#_2OP8&$tEIoR zg6=QZuD`SljwFdZl_op^DM0+9u_BSh@U3uEVgG#$>1AOzgSPA_ME%b6(Z;ZKQdF8$ zl}ZsFg(!;<5ja}>Pf6NVkCk0|_l%fY(6+n6oAc*Z0)S(Ad~{?gwaZ+cw026G&zU(H zRl#d6MhtaqCzH6o<-L*1kd74#B2=YWP33!<)|Hl- yF2{Z7uz>vk4j>Tw`=F zqE2xxaoarUMX@kl*QDbKfu8$&^@0mGb-}trb;(bD*WGTtzB_-$hp)G%D2tEW3b;Eq zk)d6+6dRoMOGcMZV`o;UusSQxP~y@ug)|HluWbA{U Y3;Khx92 zFiBe-11>XSy4KZg8NX?jX;;%4UIybm@mWS^J#W4$bI*(M)V|Q}G_zYt!ZfY-q`i#u z1}}C}y`w;VNq;-5BKARk&;9lBxk*tbCvn4U2Nuc7zPh__dV90zk0r-4h7K5Kwr(Sa zPHyS-{c5m#|J^yS_WP0sryO+ovVyPqC71P{muemy@!GPm@viTk-ug$PsicAI>Y+03 zY!*+J IeH$=(tylR(ZHA zYJijFb ; { + return ( + ++ ); +}; + +export default singlePage; diff --git a/src/app/[slug]/singlePage.module.css b/src/app/[slug]/singlePage.module.css new file mode 100644 index 000000000..8878f8737 --- /dev/null +++ b/src/app/[slug]/singlePage.module.css @@ -0,0 +1,95 @@ +.infoContainer { + display: flex; + align-items: center; + gap: 50px; +} + +.textContainer { + flex: 1; +} + +.title { + font-size: 64px; + margin-bottom: 50px; +} + +.user { + display: flex; + + align-items: center; + gap: 40px; +} + +.userImageContainer { + width: 50px; + height: 50px; + position: relative; +} + +.avatar { + border-radius: 50%; + object-fit: cover; +} + +.userTextContainer { + display: flex; + flex-direction: column; + gap: 5px; + color: var(--softTextColor); +} + +.username { + font-size: 20px; + font-weight: 500; +} + +.imageContainer { + flex: 1; + height: 350px; + position: relative; +} + +.image { + object-fit: cover; +} + +.content { + display: flex; + gap: 50px; +} + +.post { + flex: 5; + margin-top: 60px; +} + +.description p { + font-size: 20px; + font-weight: 300; + margin-bottom: 20px; +} + +@media screen and (max-width: 1536px) { + .title { + font-size: 54px; + } +} +@media screen and (max-width: 1280px) { + .title { + font-size: 48px; + } +} +@media screen and (max-width: 1024px) { + .imageContainer { + display: none; + } +} +@media screen and (max-width: 640px) { + .title { + font-size: 36px; + } + + .description p { + font-size: 18px; + } +} diff --git a/src/app/api/auth/[...nextauth]/route.js b/src/app/api/auth/[...nextauth]/route.js new file mode 100644 index 000000000..35abae1bc --- /dev/null +++ b/src/app/api/auth/[...nextauth]/route.js @@ -0,0 +1,6 @@ +import { authOptions } from '@/utils/auth'; +import NextAuth from 'next-auth'; + +const handler = NextAuth(authOptions); + +export { handler as GET, handler as POST }; diff --git a/src/app/globals.css b/src/app/globals.css index 528837d50..315274904 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -41,6 +41,13 @@ a { padding-left: 80px; padding-right: 80px; } +.ql-container { + font-size: 28px !important; +} + +.quill > .ql-container > .ql-editor.ql-blank::before { + color: #b3b3b1; +} @media screen and (max-width: 1536px) { .wrapper { diff --git a/src/app/layout.js b/src/app/layout.js index 8ca3cd134..e099516f1 100644 --- a/src/app/layout.js +++ b/src/app/layout.js @@ -4,6 +4,7 @@ import Navbar from '@/components/Navbar/Navbar'; import Footer from '@/components/Footer/Footer'; import { ThemeContextProvider } from '@/context/ThemeContext'; import ThemeProvider from '@/providers/ThemeProvider'; +import AuthProvider from '@/providers/AuthProvider'; const inter = Inter({ subsets: ['latin'] }); @@ -16,17 +17,19 @@ export default function RootLayout({ children }) { return ( -++++Lorem ipsum dolor sit amet consectetur adipisicing elit.
+++++ ++ + Abhishek + 12.08.2023 +++++ ++++ + ++++ Lorem ipsum, dolor sit amet consectetur adipisicing elit. Tenetur, + magnam fugiat. Natus eaque harum ex at cum aperiam atque fugiat + adipisci ut corporis sint quidem inventore, soluta animi beatae + ipsam nam omnis ullam odit, non culpa sed? Rem quae asperiores + aperiam, deleniti laboriosam veritatis Lorem +
+ +Lorem ipsum dolor sit amet consectetur.
++ Lorem ipsum, dolor sit amet consectetur adipisicing elit. Tenetur, + magnam fugiat. Natus eaque harum ex at cum aperiam atque fugiat + adipisci ut corporis sint quidem inventore, soluta animi beatae + ipsam nam omnis ullam odit, non culpa sed? Rem quae asperiores + aperiam, deleniti laboriosam veritatis Lorem +
+Lorem ipsum dolor sit amet consectetur.
++ Lorem ipsum, dolor sit amet consectetur adipisicing elit. Tenetur, + magnam fugiat. Natus eaque harum ex at cum aperiam atque fugiat + adipisci ut corporis sint quidem inventore, soluta animi beatae + ipsam nam omnis ullam odit, non culpa sed? Rem quae asperiores + aperiam, deleniti laboriosam veritatis Lorem +
+Lorem ipsum dolor sit amet consectetur.
++ Lorem ipsum, dolor sit amet consectetur adipisicing elit. Tenetur, + magnam fugiat. Natus eaque harum ex at cum aperiam atque fugiat + adipisci ut corporis sint quidem inventore, soluta animi beatae + ipsam nam omnis ullam odit, non culpa sed? Rem quae asperiores + aperiam, deleniti laboriosam veritatis Lorem +
+++ ++ - - --- - + + + ); diff --git a/src/app/login/login.module.css b/src/app/login/login.module.css new file mode 100644 index 000000000..3b5ae5710 --- /dev/null +++ b/src/app/login/login.module.css @@ -0,0 +1,55 @@ +.container { + display: flex; + align-items: center; + justify-content: center; + margin-top: 60px; + } + + .wrapper { + background-color: var(--softBg); + padding: 150px 200px; + display: flex; + flex-direction: column; + gap: 50px; + border-radius: 10px; + } + + .socialButton { + padding: 20px; + border-radius: 5px; + border: none; + color: white; + font-weight: bold; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + } + + .socialButton:first-child { + background-color: #ff5555; + } + + .socialButton:nth-child(2) { + background-color: #111; + } + + .socialButton:nth-child(3) { + background-color: #087bea; + } + + @media screen and (max-width: 768px) { + .wrapper { + padding: 50px 100px; + } + } + @media screen and (max-width: 640px) { + .wrapper { + padding: 30px; + } + + .socialButton{ + font-weight: 400; + font-size: 14px; + } + } \ No newline at end of file diff --git a/src/app/login/page.jsx b/src/app/login/page.jsx new file mode 100644 index 000000000..b9f1684e3 --- /dev/null +++ b/src/app/login/page.jsx @@ -0,0 +1,32 @@ +'use client'; + +import React from 'react'; +import styles from './login.module.css'; +import { signIn, useSession } from 'next-auth/react'; +import { useRouter } from 'next/navigation'; + +const LoginPage = () => { + const { data, status } = useSession(); + + const router = useRouter(); + if (status === 'loading') { + return- {children} - + + + + +-++ {children} + + Loading...; + } + if (status === 'authenticated') { + router.push('/'); + } + + return ( +++ ); +}; + +export default LoginPage; diff --git a/src/app/write/page.jsx b/src/app/write/page.jsx new file mode 100644 index 000000000..3d1a3a5b7 --- /dev/null +++ b/src/app/write/page.jsx @@ -0,0 +1,50 @@ +'use client'; + +import React, { useState } from 'react'; +import styles from './writePage.module.css'; +import ReactQuill from 'react-quill'; +import Image from 'next/image'; +import 'react-quill/dist/quill.bubble.css'; + +const WritePage = () => { + const [open, setOpen] = useState(false); + const [value, setValue] = useState(''); + return ( +++signIn('google')}> + Sign in With Google ++Sign in with Github+Sign in with Facebook++ ++ ); +}; + +export default WritePage; diff --git a/src/app/write/writePage.module.css b/src/app/write/writePage.module.css new file mode 100644 index 000000000..428c43aeb --- /dev/null +++ b/src/app/write/writePage.module.css @@ -0,0 +1,76 @@ +.container{ + position: relative; + display: flex; + flex-direction: column; + } + + .select{ + margin-bottom: 50px; + padding: 10px 20px; + margin-left: 50px; + width: max-content; + } + + .editor { + display: flex; + gap: 20px; + height: 700px; + position: relative; + + } + + .button, + .addButton { + width: 36px; + height: 36px; + border-radius: 50%; + background-color: transparent; + border: 1px solid var(--textColor); + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + } + + .addButton { + border-color: #1a8917; + } + + .add { + display: flex; + gap: 20px; + background-color: var(--bg); + position: absolute; + z-index: 999; + width: 100%; + left: 50px; + } + + .input{ + padding: 50px; + font-size: 64px; + border: none; + outline: none; + background-color: transparent; + color: var(--textColor); + } + + .input::placeholder{ + color: #b3b3b1; + } + + .textArea { + width: 100%; + } + + .publish{ + position: absolute; + top: 0px; + right: 0px; + padding: 10px 20px; + border: none; + background-color: #1a8917; + color: white; + cursor: pointer; + border-radius: 20px; + } \ No newline at end of file diff --git a/src/components/authLinks/AuthLinks.jsx b/src/components/authLinks/AuthLinks.jsx index 840177f01..8c55f690b 100644 --- a/src/components/authLinks/AuthLinks.jsx +++ b/src/components/authLinks/AuthLinks.jsx @@ -1,15 +1,16 @@ 'use client'; +import Link from 'next/link'; import React, { useState } from 'react'; import styles from './authLinks.module.css'; -import Link from 'next/link'; +import { signOut } from 'next-auth/react'; const AuthLinks = () => { const [open, setOpen] = useState(false); - const status = 'notAuthenticated'; + const status = 'notAuthenticated'; // Make sure the case matches return ( <> - {status === 'notauthenticated' ? ( + {status !== 'notAuthenticated' ? ( Login @@ -18,7 +19,8 @@ const AuthLinks = () => { Write - Logout + + Logout > )}+ + {open && ( ++ ++ + + ++ )} ++ setOpen(!open)}> @@ -31,12 +33,12 @@ const AuthLinks = () => { Homepage About Contact - {status === 'notauthenticated' ? ( + {status !== 'notAuthenticated' ? ( Login ) : ( <> Write - Logout + Logout > )}diff --git a/src/components/comments/Comments.jsx b/src/components/comments/Comments.jsx new file mode 100644 index 000000000..41850571b --- /dev/null +++ b/src/components/comments/Comments.jsx @@ -0,0 +1,46 @@ +import React from 'react'; +import styles from './comments.module.css'; +import Link from 'next/link'; +import Image from 'next/image'; + +const Comments = () => { + const status = 'authenticated'; + return ( +++ ); +}; + +export default Comments; diff --git a/src/components/comments/comments.module.css b/src/components/comments/comments.module.css new file mode 100644 index 000000000..1883b9652 --- /dev/null +++ b/src/components/comments/comments.module.css @@ -0,0 +1,70 @@ +.container { + margin-top: 50px; + } + + .title { + color: var(--softTextColor); + margin-bottom: 30px; + } + + .write { + display: flex; + align-items: center; + justify-content: space-between; + gap: 30px; + } + + .input { + padding: 20px; + width: 100%; + } + + .button { + padding: 16px 20px; + background-color: teal; + color: white; + font-weight: bold; + border: none; + border-radius: 5px; + cursor: pointer; + } + + .comments{ + margin-top: 50px; + } + + .comment{ + margin-bottom: 50px; + } + + .user { + display: flex; + align-items: center; + gap: 20px; + margin-bottom: 20px; + } + + .image { + border-radius: 50%; + object-fit: cover; + } + + .userInfo { + display: flex; + flex-direction: column; + gap: 5px; + color: var(--softTextColor); + } + + .username { + font-weight: 500; + } + + .date{ + font-size: 14px; + } + + .desc{ + font-size: 18px; + font-weight: 300; + } \ No newline at end of file diff --git a/src/providers/AuthProvider.jsx b/src/providers/AuthProvider.jsx new file mode 100644 index 000000000..b9410faaa --- /dev/null +++ b/src/providers/AuthProvider.jsx @@ -0,0 +1,14 @@ +'use client'; + +import React from 'react'; +import { SessionProvider } from 'next-auth/react'; + +const AuthProvider = ({ children }) => { + return ( +Comments
+ {status === 'authenticated' ? ( ++ + ++ ) : ( + Login to write comment + )} + ++++++++ + Abhishek + 12.09.2023 +++ Lorem ipsum dolor sit amet consectetur adipisicing elit. Minus harum + officiis aspernatur mollitia ratione nihil labore consectetur + tempora est veniam, animi dolores. +
+++ ); +}; + +export default AuthProvider; diff --git a/src/utils/auth.js b/src/utils/auth.js new file mode 100644 index 000000000..250fb3194 --- /dev/null +++ b/src/utils/auth.js @@ -0,0 +1,15 @@ +import GithubProvider from 'next-auth/providers/github'; +import GoogleProvider from 'next-auth/providers/google'; + +export const authOptions = { + providers: [ + GithubProvider({ + clientId: process.env.GITHUB_ID, + clientSecret: process.env.GITHUB_SECRET, + }), + GoogleProvider({ + clientId: process.env.GOOGLE_ID, + clientSecret: process.env.GOOGLE_SECRET, + }), + ], +}; diff --git a/yarn.lock b/yarn.lock index 2f4b54357..58f54fb53 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,6 +7,13 @@ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== +"@babel/runtime@^7.20.13": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.6.tgz#c05e610dc228855dc92ef1b53d07389ed8ab521d" + integrity sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/runtime@^7.23.2": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.5.tgz#11edb98f8aeec529b82b211028177679144242db" @@ -143,6 +150,11 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@panva/hkdf@^1.0.2": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@panva/hkdf/-/hkdf-1.1.1.tgz#ab9cd8755d1976e72fc77a00f7655a64efe6cd5d" + integrity sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA== + "@rushstack/eslint-patch@^1.1.3": version "1.6.0" resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.6.0.tgz#1898e7a7b943680d757417a47fb10f5fcc230b39" @@ -160,6 +172,13 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== +"@types/quill@^1.3.10": + version "1.3.10" + resolved "https://registry.yarnpkg.com/@types/quill/-/quill-1.3.10.tgz#dc1f7b6587f7ee94bdf5291bc92289f6f0497613" + integrity sha512-IhW3fPW+bkt9MLNlycw8u8fWb7oO7W5URC9MfZYHBlA24rex9rs23D5DETChu1zvgVdc5ka64ICjJOgQMr6Shw== + dependencies: + parchment "^1.1.2" + "@typescript-eslint/parser@^5.4.2 || ^6.0.0": version "6.13.2" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.13.2.tgz#390b79cc9a57a5f904d197a201cc4b6bc4f9afb9" @@ -416,6 +435,11 @@ client-only@0.0.1: resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== +clone@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== + color-convert@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" @@ -433,6 +457,11 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +cookie@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -461,6 +490,18 @@ debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: dependencies: ms "2.1.2" +deep-equal@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.2.tgz#78a561b7830eef3134c7f6f3a3d6af272a678761" + integrity sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg== + dependencies: + is-arguments "^1.1.1" + is-date-object "^1.0.5" + is-regex "^1.1.4" + object-is "^1.1.5" + object-keys "^1.1.1" + regexp.prototype.flags "^1.5.1" + deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -823,11 +864,26 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +eventemitter3@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" + integrity sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg== + +extend@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== +fast-diff@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154" + integrity sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig== + fast-glob@^3.2.9, fast-glob@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" @@ -1116,6 +1172,14 @@ internal-slot@^1.0.5: hasown "^2.0.0" side-channel "^1.0.4" +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" @@ -1301,6 +1365,11 @@ iterator.prototype@^1.1.2: reflect.getprototypeof "^1.0.4" set-function-name "^2.0.1" +jose@^4.11.4, jose@^4.15.1: + version "4.15.4" + resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.4.tgz#02a9a763803e3872cf55f29ecef0dfdcc218cc03" + integrity sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ== + "js-tokens@^3.0.0 || ^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -1384,6 +1453,11 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash@^4.17.4: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -1443,6 +1517,21 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +next-auth@^4.24.5: + version "4.24.5" + resolved "https://registry.yarnpkg.com/next-auth/-/next-auth-4.24.5.tgz#1fd1bfc0603c61fd2ba6fd81b976af690edbf07e" + integrity sha512-3RafV3XbfIKk6rF6GlLE4/KxjTcuMCifqrmD+98ejFq73SRoj2rmzoca8u764977lH/Q7jo6Xu6yM+Re1Mz/Og== + dependencies: + "@babel/runtime" "^7.20.13" + "@panva/hkdf" "^1.0.2" + cookie "^0.5.0" + jose "^4.11.4" + oauth "^0.9.15" + openid-client "^5.4.0" + preact "^10.6.3" + preact-render-to-string "^5.1.19" + uuid "^8.3.2" + next@13.4.19: version "13.4.19" resolved "https://registry.yarnpkg.com/next/-/next-13.4.19.tgz#2326e02aeedee2c693d4f37b90e4f0ed6882b35f" @@ -1467,16 +1556,34 @@ next@13.4.19: "@next/swc-win32-ia32-msvc" "13.4.19" "@next/swc-win32-x64-msvc" "13.4.19" +oauth@^0.9.15: + version "0.9.15" + resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" + integrity sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA== + object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== +object-hash@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" + integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== + object-inspect@^1.13.1, object-inspect@^1.9.0: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -1537,6 +1644,11 @@ object.values@^1.1.6, object.values@^1.1.7: define-properties "^1.2.0" es-abstract "^1.22.1" +oidc-token-hash@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/oidc-token-hash/-/oidc-token-hash-5.0.3.tgz#9a229f0a1ce9d4fc89bcaee5478c97a889e7b7b6" + integrity sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw== + once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -1544,6 +1656,16 @@ once@^1.3.0: dependencies: wrappy "1" +openid-client@^5.4.0: + version "5.6.1" + resolved "https://registry.yarnpkg.com/openid-client/-/openid-client-5.6.1.tgz#8f7526a50c290a5e28a7fe21b3ece3107511bc73" + integrity sha512-PtrWsY+dXg6y8mtMPyL/namZSYVz8pjXz3yJiBNZsEdCnu9miHLB4ELVC85WvneMKo2Rg62Ay7NkuCpM0bgiLQ== + dependencies: + jose "^4.15.1" + lru-cache "^6.0.0" + object-hash "^2.2.0" + oidc-token-hash "^5.0.3" + optionator@^0.9.3: version "0.9.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" @@ -1570,6 +1692,11 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" +parchment@^1.1.2, parchment@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/parchment/-/parchment-1.1.4.tgz#aeded7ab938fe921d4c34bc339ce1168bc2ffde5" + integrity sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg== + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -1621,11 +1748,28 @@ postcss@8.4.14: picocolors "^1.0.0" source-map-js "^1.0.2" +preact-render-to-string@^5.1.19: + version "5.2.6" + resolved "https://registry.yarnpkg.com/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz#0ff0c86cd118d30affb825193f18e92bd59d0604" + integrity sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw== + dependencies: + pretty-format "^3.8.0" + +preact@^10.6.3: + version "10.19.3" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.19.3.tgz#7a7107ed2598a60676c943709ea3efb8aaafa899" + integrity sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ== + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== +pretty-format@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-3.8.0.tgz#bfbed56d5e9a776645f4b1ff7aa1a3ac4fa3c385" + integrity sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew== + prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" @@ -1645,6 +1789,27 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +quill-delta@^3.6.2: + version "3.6.3" + resolved "https://registry.yarnpkg.com/quill-delta/-/quill-delta-3.6.3.tgz#b19fd2b89412301c60e1ff213d8d860eac0f1032" + integrity sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg== + dependencies: + deep-equal "^1.0.1" + extend "^3.0.2" + fast-diff "1.1.2" + +quill@^1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/quill/-/quill-1.3.7.tgz#da5b2f3a2c470e932340cdbf3668c9f21f9286e8" + integrity sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g== + dependencies: + clone "^2.1.1" + deep-equal "^1.0.1" + eventemitter3 "^2.0.3" + extend "^3.0.2" + parchment "^1.1.4" + quill-delta "^3.6.2" + react-dom@18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" @@ -1658,6 +1823,15 @@ react-is@^16.13.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== +react-quill@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/react-quill/-/react-quill-2.0.0.tgz#67a0100f58f96a246af240c9fa6841b363b3e017" + integrity sha512-4qQtv1FtCfLgoD3PXAur5RyxuUbPXQGOHgTlFie3jtxp43mXDtzCKaOgQ3mLyZfi1PUlyjycfivKelFhy13QUg== + dependencies: + "@types/quill" "^1.3.10" + lodash "^4.17.4" + quill "^1.3.7" + react@18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" @@ -2014,6 +2188,11 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + watchpack@2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d"{children} +