diff --git a/app/about/page.tsx b/app/about/page.tsx new file mode 100644 index 0000000..3025c80 --- /dev/null +++ b/app/about/page.tsx @@ -0,0 +1,134 @@ +import React, {ElementType, ReactNode} from 'react' +import Link from 'next/link' +import Image from 'next/image' +import {Container} from '@/components/common/Container' +import {MailIcon} from '@/components/icons/MailIcon' +import {GitHubIcon, LinkedInIcon} from '@/components/icons/SocialIcons' +import clsx from 'clsx' +import me from '@/public/images/me.jpg' +import awsCCPBadge from '@/public/images/aws-certified-cloud-practitioner-badge.png' + +export const metadata = { + title: 'About - Ryan Freeman', + description: 'I’m Ryan. I live in Dublin, Ireland where I work as a software engineer.' +} + +function SocialLink({ + className, + href, + children, + icon: Icon + }: + { + className: string, + href: string, + children: ReactNode, + icon: ElementType + }) { + return ( +
  • + + + {children} + +
  • + ) +} + +export default async function About() { + return ( + +
    +
    +
    + +
    +
    +
    +

    + I’m Ryan. I live in Dublin, Ireland where I work as a software engineer. +

    +
    +

    + I've always had an affinity for technology, and loved making things for as long as I can + remember. My first computer was an Amstrad CPC 464 way back in the 90s, which is ancient by modern + standards. My passion for tinkering continued through my teens and into adulthood where I + eventually found my way into software engineering. +

    +

    + In terms of my experience to date, I have a strong foundation in both front-end and back-end + development. I enjoy working with React to create dynamic and responsive user interfaces, + and I have a deep understanding of Java for building robust and scalable applications. + Recently, I achieved one of my milestones which was to get AWS certified by the end of 2022. +

    +

    + Currently, I work in the aviation industry for Aer Lingus as a software engineer where I work + on exciting software projects for the airline. This includes everything from bug fixing, to + working on legacy code and greenfield projects, to building customer-facing websites and services. + I am responsible for ensuring that our software is of the highest quality, and that it meets the + needs of our customers and stakeholders. The most fulfilling part of my job is knowing that the + software I contribute to will be used by many thousands of people. +

    +

    + In my free time, I enjoy staying up-to-date on the latest developments in the world of software + engineering, and I am always looking for new ways to push the boundaries of what is possible with + technology. I'm a huge advocate of free and open-source software and maintain a small + Raspberry Pi server which I use to experiment with Docker containers for self-hosted + services like Bitwarden, Nextcloud and Octoprint. +

    +

    + On the hardware side, I build and maintain my own computers and I like to upgrade and modernise + retro video game systems. When I'm not tinkering, I mostly spend time with my + family and enjoy travelling whenever I can get away. +

    +

    + That's me in a nutshell, thank you for visiting my website, I hope that you find the + information here to be insightful. If you have any questions or would like to work with me, please + don't hesitate to get in touch. +

    +
    +
    +
    +
      + + Follow on GitHub + + + Follow on LinkedIn + + + hello@ryanfreeman.dev + +
    + + AWS Certified Cloud Practitioner + +
    +
    +
    + ) +} \ No newline at end of file diff --git a/app/api/rpi/[slug]/route.ts b/app/api/rpi/[slug]/route.ts new file mode 100644 index 0000000..8af2230 --- /dev/null +++ b/app/api/rpi/[slug]/route.ts @@ -0,0 +1,26 @@ +import {NextResponse} from 'next/server' +import {getRamUsage, getRootFsUsage, getSysLoad, getTemp, getUptime} from '@/lib/grafana' + +export const fetchCache = 'force-no-store' + +export async function GET(request: Request, {params}: { params: { slug: string } }) { + const slug = params.slug + let response + if (slug === 'ram') { + response = await getRamUsage() + } else if (slug === 'rootfs') { + response = await getRootFsUsage() + } else if (slug === 'sysload') { + response = await getSysLoad() + } else if (slug === 'temp') { + response = await getTemp() + } else if (slug === 'uptime') { + response = await getUptime() + } else { + return new Response('Not Found', { + status: 404 + }) + } + + return NextResponse.json(response) +} \ No newline at end of file diff --git a/pages/api/spotify/currently-playing.ts b/app/api/spotify/currently-playing/route.ts similarity index 74% rename from pages/api/spotify/currently-playing.ts rename to app/api/spotify/currently-playing/route.ts index 62c212b..1539053 100644 --- a/pages/api/spotify/currently-playing.ts +++ b/app/api/spotify/currently-playing/route.ts @@ -1,5 +1,5 @@ +import {NextResponse} from 'next/server' import {getCurrentlyPlaying} from '@/lib/spotify' -import {NextApiRequest, NextApiResponse} from 'next' type Song = { item: { @@ -24,24 +24,18 @@ type Song = { is_playing: boolean } -export default async function handler(req: NextApiRequest, res: NextApiResponse) { +export async function GET(request: Request) { const response = await getCurrentlyPlaying() if (response.status === 204 || response.status > 400) { - return res.status(200).json({ - isPlaying: false + return new Response(JSON.stringify({isPlaying: false}), { + status: 200 }) } const song = await response.json() as Song const {item} = song - if (item === null) { - return res.status(200).json({ - isPlaying: false - }) - } - const artist = item.artists.map(artist => artist.name).join(', ') const title = item.name; const songUrl = item.external_urls.spotify @@ -49,7 +43,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) const albumImageUrl = item.album.images[0].url const isPlaying = song.is_playing; - return res.status(200).json({ + return NextResponse.json({ artist, title, songUrl, diff --git a/pages/api/spotify/last-played.ts b/app/api/spotify/last-played/route.ts similarity index 80% rename from pages/api/spotify/last-played.ts rename to app/api/spotify/last-played/route.ts index 88d611e..4a910af 100644 --- a/pages/api/spotify/last-played.ts +++ b/app/api/spotify/last-played/route.ts @@ -1,5 +1,5 @@ +import {NextResponse} from 'next/server' import {getRecentlyPlayed} from '@/lib/spotify' -import {NextApiRequest, NextApiResponse} from 'next' type Tracks = { items: [ @@ -28,19 +28,16 @@ type Tracks = { ] } -export default async function handler(req: NextApiRequest, res: NextApiResponse) { +export async function GET(request: Request) { const response = await getRecentlyPlayed() if (response.status > 400) { - return res.status(200).json({}) + return new Response(JSON.stringify({status: response.statusText}), { + status: response.status + }) } const tracks = await response.json() as Tracks - - if (tracks === null) { - return res.status(200).json({}) - } - const {track} = tracks.items.reduce((r, a) => r.played_at > a.played_at ? r : a) const title = track.name; @@ -49,7 +46,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) const album = track.album.name const albumImageUrl = track.album.images[0].url - return res.status(200).json({ + return NextResponse.json({ artist, title, songUrl, diff --git a/app/api/views/[slug]/route.ts b/app/api/views/[slug]/route.ts new file mode 100644 index 0000000..a211c8b --- /dev/null +++ b/app/api/views/[slug]/route.ts @@ -0,0 +1,41 @@ +import {NextResponse} from 'next/server' +import {cookies} from 'next/headers' +import {createServerComponentClient} from '@supabase/auth-helpers-nextjs' +import type {Database} from '@/types/database.types' + +export async function GET(request: Request, {params}: { params: { slug: string } }) { + if (typeof params.slug !== 'undefined') { + try { + const supabase = createServerComponentClient({cookies}) + const slug = params.slug.toString() + const response = await supabase + .from('analytics') + .select('views') + .eq('slug', slug) + .returns() + + const {views} = response.data[0] + if (typeof views !== 'undefined') { + return NextResponse.json({views}) + } + } catch (e) { + return new Response(JSON.stringify({status: 'Internal Server Error'}), {status: 500}) + } + } + return new Response(JSON.stringify({status: 'Not Found'}), {status: 404}) +} + +export async function POST(request: Request, {params}: { params: { slug: string } }) { + if (typeof params.slug !== 'undefined') { + try { + const supabase = createServerComponentClient({cookies}) + const slug = params.slug.toString() + // @ts-ignore + await supabase.rpc('increment_views', {page_slug: slug}) + return NextResponse.json({}) + } catch (e) { + return new Response(JSON.stringify({status: 'Internal Server Error'}), {status: 500}) + } + } + return new Response(JSON.stringify({status: 'Not Found'}), {status: 404}) +} \ No newline at end of file diff --git a/app/dashboard/loading.tsx b/app/dashboard/loading.tsx new file mode 100644 index 0000000..7300483 --- /dev/null +++ b/app/dashboard/loading.tsx @@ -0,0 +1,12 @@ +import {metadata} from './page' +import {SimpleLayout} from '@/components/layouts/SimpleLayout' + +export default function LoadingSkeleton() { + return ( + + + + ) +} \ No newline at end of file diff --git a/app/dashboard/page.tsx b/app/dashboard/page.tsx new file mode 100644 index 0000000..4df6d09 --- /dev/null +++ b/app/dashboard/page.tsx @@ -0,0 +1,88 @@ +import {SimpleLayout} from '@/components/layouts/SimpleLayout' +import {Card} from '@/components/ui/Card' +import {CardGroup} from '@/components/ui/CardGroup' +import {getDashboardData} from '@/lib/dashboard' +import {numberFormat} from '@/lib/numberFormat' + +export const metadata = { + title: 'Dashboard - Ryan Freeman', + description: 'This is my digital life in numbers, I use this dashboard to keep track of various metrics across platforms like Spotify, GitHub, Twitter and for monitoring the performance of my Raspberry Pi using Grafana and Prometheus.' +} + +const config = { + refreshInterval: 30000 +} + +export const dynamic = 'force-dynamic' + +export default async function Dashboard() { + const metrics = await getDashboardData() + // const tempData = (useSWR('api/grafana/temp', fetcher, config)).data as { temp: string } + // const sysLoadData = (useSWR('api/grafana/sysload', fetcher, config)).data as { sysLoad: string } + // const ramData = (useSWR('api/grafana/ram', fetcher, config)).data as { ramUsage: string } + // const rootFsData = (useSWR('api/grafana/rootfs', fetcher, config)).data as { rootFsUsage: string } + // const uptimeData = (useSWR('api/grafana/uptime', fetcher, config)).data as { days: number } + + return ( + + {metrics.map(({groupName, groupItems}) => ( + + {groupItems.map((item) => ( + +

    + {item.title} +

    + + {typeof item.value === "number" ? numberFormat(item.value) : item.value} + +
    + ))} +
    + ))} + {/**/} + {/* */} + {/*

    */} + {/* Temperature*/} + {/*

    */} + {/* */} + {/* {tempData ? `${tempData.temp}℃` : "—"}*/} + {/* */} + {/*
    */} + {/* */} + {/*

    */} + {/* Sys load (5m avg)*/} + {/*

    */} + {/* */} + {/* {sysLoadData ? `${sysLoadData.sysLoad}%` : "—"}*/} + {/* */} + {/*
    */} + {/* */} + {/*

    */} + {/* RAM usage*/} + {/*

    */} + {/* */} + {/* {ramData ? `${ramData.ramUsage}%` : "—"}*/} + {/* */} + {/*
    */} + {/* */} + {/*

    */} + {/* Root FS usage*/} + {/*

    */} + {/* */} + {/* {rootFsData ? `${rootFsData.rootFsUsage}%` : "—"}*/} + {/* */} + {/*
    */} + {/* */} + {/*

    */} + {/* Uptime days*/} + {/*

    */} + {/* */} + {/* {uptimeData ? `${numberFormat(uptimeData.days)}` : "—"}*/} + {/* */} + {/*
    */} + {/*
    */} +
    + ) +} \ No newline at end of file diff --git a/app/favicon.ico b/app/favicon.ico new file mode 100644 index 0000000..69f6ccc Binary files /dev/null and b/app/favicon.ico differ diff --git a/app/layout.tsx b/app/layout.tsx new file mode 100644 index 0000000..4e773bd --- /dev/null +++ b/app/layout.tsx @@ -0,0 +1,34 @@ +import {ReactNode} from 'react' +import {Providers} from '@/app/providers' +import {Header} from '@/components/common/Header' +import {Footer} from '@/components/common/Footer' + +import '@/styles/tailwind.css' + +export const metadata = { + title: 'Ryan Freeman - Full-stack software engineer from Dublin, Ireland.', + description: 'Full-stack software engineer who enjoys building cloud-native applications.' +} + +export default function RootLayout({children}: { children: ReactNode }) { + return ( + + +
    +
    +
    +
    +
    +
    + +
    +
    + {children} +
    +
    + +
    + + + ) +} \ No newline at end of file diff --git a/pages/index.tsx b/app/page.tsx similarity index 56% rename from pages/index.tsx rename to app/page.tsx index dac658e..8fa7c83 100644 --- a/pages/index.tsx +++ b/app/page.tsx @@ -1,20 +1,13 @@ import React from 'react' -import Head from 'next/head' -import {GetStaticProps} from 'next' import {Card} from '@/components/ui/Card' -import {Resume} from '@/components/ui/Resume' -import {Container} from '@/components/common/Container' -import { - GitHubIcon, - LinkedInIcon -} from '@/components/icons/SocialIcons' -import {SocialLink} from '@/components/ui/SocialLink' import {Views} from '@/components/ui/Views' -import {formatDate} from '@/lib/formatDate' -import {generateRssFeed} from '@/lib/generateRssFeed' -import {generateSitemap} from '@/lib/generateSitemap' +import {Resume} from '@/components/ui/Resume' +import {SocialLink} from '@/components/ui/SocialLink' +import {Container} from '@/components/common/Container' +import {GitHubIcon, LinkedInIcon} from '@/components/icons/SocialIcons' import {getAllArticles} from '@/lib/getAllArticles' -import {Article} from 'types' +import {formatDate} from '@/lib/formatDate' +import type {Article} from '@/types' function Article(article: Article) { return ( @@ -38,58 +31,13 @@ function Article(article: Article) { ) } -export default function Home({articles}: { articles: Article[] }) { +export default async function Home() { + const articles = (await getAllArticles()) + .slice(0, 3) + .map(component => component) + return ( <> - - - Ryan Freeman - Full-stack software engineer from Dublin, Ireland. - - - - - - - - - - - - - -

    @@ -135,19 +83,4 @@ export default function Home({articles}: { articles: Article[] }) { ) -} - -export const getStaticProps: GetStaticProps = async () => { - if (process.env.NODE_ENV === 'production') { - await generateRssFeed() - await generateSitemap() - } - - return { - props: { - articles: (await getAllArticles()) - .slice(0, 3) - .map(({component, ...meta}) => meta), - } - } -} +} \ No newline at end of file diff --git a/app/projects/page.tsx b/app/projects/page.tsx new file mode 100644 index 0000000..5cbeb03 --- /dev/null +++ b/app/projects/page.tsx @@ -0,0 +1,57 @@ +import {ShareIcon} from '@/components/icons/ShareIcon' +import {SparklesIcon} from '@/components/icons/SparklesIcon' +import {SimpleLayout} from '@/components/layouts/SimpleLayout' +import {Card} from '@/components/ui/Card' +import {getPinnedRepos} from '@/lib/github' +import {numberFormat} from '@/lib/numberFormat' + +export const metadata = { + title: 'Projects - Ryan Freeman', + description: 'Here\'s a selection of academic and personal projects that I have worked on. Many of them are open-source, so if you see something that piques your interest, check out the code and contribute if you have ideas for how it can be improved.' +} + +export default async function Projects() { + const pinnedRepos = (await getPinnedRepos()).sort((a, b) => b.stargazerCount - a.stargazerCount) + + return ( + +
      + {pinnedRepos.map((repo) => ( + +

      + {repo.name} +

      + {repo.description} +
      +

      + {repo.primaryLanguage.name} + +

      +
      +

      + {numberFormat(repo.stargazerCount)} + +

      +

      + {numberFormat(repo.forkCount)} + +

      +
      +
      +
      + ))} +
    +
    + ) +} \ No newline at end of file diff --git a/app/providers.tsx b/app/providers.tsx new file mode 100644 index 0000000..fb49c44 --- /dev/null +++ b/app/providers.tsx @@ -0,0 +1,15 @@ +'use client' + +import {ReactNode} from 'react' +import {ThemeProvider} from 'next-themes' + +export function Providers({children}: { + children: ReactNode +}) { + + return ( + + {children} + + ) +} \ No newline at end of file diff --git a/app/sitemap.ts b/app/sitemap.ts new file mode 100644 index 0000000..baacad6 --- /dev/null +++ b/app/sitemap.ts @@ -0,0 +1,18 @@ +import { MetadataRoute } from 'next' + +export default function sitemap(): MetadataRoute.Sitemap { + return [ + { + url: 'https://acme.com', + lastModified: new Date(), + }, + { + url: 'https://acme.com/about', + lastModified: new Date(), + }, + { + url: 'https://acme.com/blog', + lastModified: new Date(), + }, + ] +} \ No newline at end of file diff --git a/app/uses/page.tsx b/app/uses/page.tsx new file mode 100644 index 0000000..d3c61ba --- /dev/null +++ b/app/uses/page.tsx @@ -0,0 +1,107 @@ +import {ReactNode} from 'react' +import {SimpleLayout} from '@/components/layouts/SimpleLayout' +import {Card} from '@/components/ui/Card' +import {Section} from '@/components/ui/Section' + +export const metadata = { + title: 'Uses - Ryan Freeman', + description: 'Software I use, equipment that makes my job easier, and other things I recommend.' +} + +function ToolsSection({children, title}: { children: ReactNode, title: string }) { + return ( +
    +
      + {children} +
    +
    + ) +} + +function Tool({title, href, children}: { title: string, href: string, children: ReactNode }) { + return ( + + + {title} + + {children} + + ) +} + +export default function Uses() { + return ( + +
    + + + This is my main Intel-based computer which I built in 2022. I've recently added more storage and + a new monitor. Click here to see a comprehensive listing of all the parts used in this build on + PCPartPicker. + + + I bought this chair second-hand when I started working for Apple, it's extremely comfortable and + ergonomic for those long hours spent at the desk. + + + + + I use a mix of JetBrain apps for my IDEs depending on what I'm working on. For JavaScript + projects, I use WebStorm. PyCharm for python and IntelliJ IDEA Ultimate for Java. I use the same + keyboard shortcuts across these apps which is great for productivity. + + + Good tool for designing and testing REST APIs. I used to use Postman but I found the interface too + cluttered and prefer the simplicity of Insomnia. + + + + + Great app for Windows which allows you share a region of the screen, handy for single monitor + set ups such as ultrawides when you don't want to share the entire screen. + + + + + I use this software for creating low-fidelity wireframes and interfaces. It's great for + experimenting with ideas. + + + Color Picker is included in the PowerToys set of enhancements for Windows. Using the eye dropper you + can easily identify colours on the screen and copy the colour's code to your clipboard for use + in other applications. + + + + + AutoHotKey features it's own scripting language and allows you to create keyboard macros for + automating common tasks. For example, I use AutoHotKey to toggle between dark and light themes in + Windows on the fly. + + + + + Bitwarden is a free, open-source password manager, this Chrome Extension connects to a self-hosted + instance of Bitwarden which lives on my Raspberry Pi. It is really useful for syncing passwords across + devices. + + + Great extension for blocking those annoying YouTube ads and nasty tracking scripts. + + + Floccus syncs your bookmarks across browsers and devices. It connects to my Nextcloud server via + WebDAV and keeps my bookmarks in sync, so no matter which device I'm using, I always have the + same set of bookmarks. + + +
    +
    + ) +} \ No newline at end of file diff --git a/pages/writing/a-personal-journey-in-software-engineering.mdx b/app/writing/a-personal-journey-in-software-engineering/page.mdx similarity index 81% rename from pages/writing/a-personal-journey-in-software-engineering.mdx rename to app/writing/a-personal-journey-in-software-engineering/page.mdx index 68ac9cd..4d635e2 100644 --- a/pages/writing/a-personal-journey-in-software-engineering.mdx +++ b/app/writing/a-personal-journey-in-software-engineering/page.mdx @@ -1,19 +1,18 @@ -import {ArticleLayout} from '@/components/layouts/ArticleLayout' -import {createSlug} from '@/lib/createSlug' +import {ArticleLayout} from '../../../components/layouts/ArticleLayout' +import {createSlug} from '../../../lib/createSlug' -export const meta = { - author: 'Ryan Freeman', - date: '2022-12-04', +export const metadata = { + authors: 'Ryan Freeman', title: 'A personal journey in software engineering', - description: 'Hello there! If you\'re reading this, you\'ve likely stumbled upon my website — welcome! My name is Ryan Freeman, and I\'m a full-stack developer with a passion for creating intuitive and dynamic web applications.', + date: '2022-12-04', + description: 'Hello there! If you\'re reading this, you\'ve likely stumbled upon my website — welcome! My name is Ryan Freeman, and I\'m a full-stack developer with a passion for creating intuitive and dynamic web applications.' } export default (props) => Hello there! diff --git a/pages/writing/docker-cheat-sheet/ian-taylor-jOqJbvo1P9g-unsplash.jpg b/app/writing/docker-cheat-sheet/ian-taylor-jOqJbvo1P9g-unsplash.jpg similarity index 100% rename from pages/writing/docker-cheat-sheet/ian-taylor-jOqJbvo1P9g-unsplash.jpg rename to app/writing/docker-cheat-sheet/ian-taylor-jOqJbvo1P9g-unsplash.jpg diff --git a/pages/writing/docker-cheat-sheet/index.mdx b/app/writing/docker-cheat-sheet/page.mdx similarity index 82% rename from pages/writing/docker-cheat-sheet/index.mdx rename to app/writing/docker-cheat-sheet/page.mdx index fd1cc2c..cefcf82 100644 --- a/pages/writing/docker-cheat-sheet/index.mdx +++ b/app/writing/docker-cheat-sheet/page.mdx @@ -1,23 +1,23 @@ import Image from 'next/image' -import {ArticleLayout} from '@/components/layouts/ArticleLayout' -import {createSlug} from '@/lib/createSlug' +import {ArticleLayout} from '../../../components/layouts/ArticleLayout' +import {createSlug} from '../../../lib/createSlug' import cargoShipImage from './ian-taylor-jOqJbvo1P9g-unsplash.jpg' -export const meta = { +export const metadata = { author: 'Ryan Freeman', date: '2023-02-11', title: 'Docker cheat sheet', description: 'This is a living document of useful commands for maintaining and using Docker, and should function as a handy reference for developers and DevOps engineers.', - ogImage: '/static/images/ian-taylor-jOqJbvo1P9g-unsplash.jpg' + ogImage: '/images/ian-taylor-jOqJbvo1P9g-unsplash.jpg' } export default (props) => This is a living document of useful commands for maintaining and using Docker, and should function as a handy reference for developers and DevOps engineers. diff --git a/pages/writing/how-to-add-typescript-to-an-existing-next-js-project.mdx b/app/writing/how-to-add-typescript-to-an-existing-next-js-project/page.mdx similarity index 82% rename from pages/writing/how-to-add-typescript-to-an-existing-next-js-project.mdx rename to app/writing/how-to-add-typescript-to-an-existing-next-js-project/page.mdx index 7fbdb87..6c21337 100644 --- a/pages/writing/how-to-add-typescript-to-an-existing-next-js-project.mdx +++ b/app/writing/how-to-add-typescript-to-an-existing-next-js-project/page.mdx @@ -1,7 +1,7 @@ -import {ArticleLayout} from '@/components/layouts/ArticleLayout' -import {createSlug} from '@/lib/createSlug' +import {ArticleLayout} from '../../../components/layouts/ArticleLayout' +import {createSlug} from '../../../lib/createSlug' -export const meta = { +export const metadata = { author: 'Ryan Freeman', date: '2023-01-02', title: 'How to add TypeScript to an existing Next.js project', @@ -9,11 +9,11 @@ export const meta = { } export default (props) => # Next.js includes support for TypeScript by default. To add TypeScript to an existing Next.js project create a _tsconfig.json_ file in the project root with `touch tsconfig.json`. diff --git a/app/writing/page.tsx b/app/writing/page.tsx new file mode 100644 index 0000000..332d2f4 --- /dev/null +++ b/app/writing/page.tsx @@ -0,0 +1,54 @@ +import React from 'react' +import {SimpleLayout} from '@/components/layouts/SimpleLayout' +import {Card} from '@/components/ui/Card' +import {Views} from '@/components/ui/Views' +import {formatDate} from '@/lib/formatDate' +import {getAllArticles} from '@/lib/getAllArticles' +import type {Article} from '@/types' + +export const metadata = { + title: 'Writing - Ryan Freeman', + description: 'All of my long-form thoughts on software engineering, and more, displayed in chronological order.' +} + +function Article({article}: { article: Article }) { + return ( +
    + + + {article.title} + +

    + + {formatDate(article.date)} + + +

    +
    +
    + ) +} + +export default async function Writing() { + const articles = (await getAllArticles()).map(({component, ...meta}) => meta) + + return ( + +
    +
    + {articles.map((article) => ( +
    + ))} +
    +
    +
    + ) +} \ No newline at end of file diff --git a/components/common/Header.tsx b/components/common/Header.tsx index 980c1c8..a4b9060 100644 --- a/components/common/Header.tsx +++ b/components/common/Header.tsx @@ -1,47 +1,11 @@ -import {useRouter} from 'next/router' +'use client' + import {useEffect, useRef} from 'react' +import {usePathname} from 'next/navigation' import {Container} from './Container' -import {MobileNavigation, DesktopNavigation} from '@/components/ui/Navigation' +import {ThemeButton} from '@/components/ui/ThemeButton' +import {DesktopNavigation, MobileNavigation} from '@/components/ui/Navigation' import {Avatar, AvatarContainer} from '@/components/ui/Avatar' -import {MoonIcon} from '@/components/icons/MoonIcon' -import {SunIcon} from '@/components/icons/SunIcon' - -function ModeToggle() { - function disableTransitionsTemporarily() { - document.documentElement.classList.add('[&_*]:!transition-none') - window.setTimeout(() => { - document.documentElement.classList.remove('[&_*]:!transition-none') - }, 0) - } - - function toggleMode() { - disableTransitionsTemporarily() - - let darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)') - let isSystemDarkMode = darkModeMediaQuery.matches - let isDarkMode = document.documentElement.classList.toggle('dark') - - if (isDarkMode === isSystemDarkMode) { - delete window.localStorage.isDarkMode - } else { - window.localStorage.isDarkMode = isDarkMode - } - } - - return ( - - ) -} function clamp(num: number, a: number, b: number) { let min = Math.min(a, b) @@ -50,8 +14,8 @@ function clamp(num: number, a: number, b: number) { } export function Header() { - const router = useRouter() - const isHomePage = router.pathname === '/' + const pathname = usePathname() + const isHomePage = pathname === '/' const headerRef = useRef(null) const avatarRef = useRef(null) @@ -227,7 +191,7 @@ export function Header() {

    - +
    diff --git a/components/layouts/ArticleLayout.tsx b/components/layouts/ArticleLayout.tsx index 8a15351..ee669ee 100644 --- a/components/layouts/ArticleLayout.tsx +++ b/components/layouts/ArticleLayout.tsx @@ -1,6 +1,4 @@ import React, {ReactNode} from 'react' -import * as process from 'process' -import Head from 'next/head' import Link from 'next/link' import {Container} from '@/components/common/Container' import {Prose} from '@/components/ui/Prose' @@ -9,112 +7,66 @@ import {ArrowDownIcon} from '@/components/icons/ArrowDownIcon' import {formatDate} from '@/lib/formatDate' type ArticleLayout = { - children?: ReactNode - isRssFeed: boolean title: string - description: string - ogImage: string date: string + description: string slug: string + children?: ReactNode + ogImage?: string + isRssFeed?: boolean } +const gradients = [ + 'bg-gradient-to-r from-blue-500 to-blue-600', + 'bg-[conic-gradient(at_left,_var(--tw-gradient-stops))] from-rose-500 to-indigo-700', + 'bg-[conic-gradient(at_left,_var(--tw-gradient-stops))] from-sky-400 to-blue-800', + 'bg-gradient-to-r from-orange-400 to-rose-400', + 'bg-gradient-to-r from-sky-400 to-blue-500' +] + export function ArticleLayout({ - children, - isRssFeed = false, title, - description, - ogImage, date, - slug + description, + slug, + children, + ogImage, + isRssFeed = false }: ArticleLayout) { if (isRssFeed) { return children } return ( - <> - - {`${title} - Ryan Freeman`} - - - - - - {ogImage && - <> - - - - - } - - - - - - -
    -
    - - - -
    -
    -

    - {title} -

    -

    - - -

    -
    - {children} -
    -
    + +
    +
    + + + +
    +
    +

    + {title} +

    +

    + + +

    +
    + {children} +
    - - +
    +
    ) } diff --git a/components/layouts/SimpleLayout.tsx b/components/layouts/SimpleLayout.tsx index d65f16d..898c116 100644 --- a/components/layouts/SimpleLayout.tsx +++ b/components/layouts/SimpleLayout.tsx @@ -2,19 +2,19 @@ import {ReactNode} from 'react' import {Container} from '@/components/common/Container' import {twMerge} from 'tailwind-merge' -type SimpleLayout = { - title: string - intro: string +export type SimpleLayoutProps = { + heading: string + description: string children: ReactNode gradient: string } export function SimpleLayout({ - title, - intro, + heading, + description, children, gradient - }: SimpleLayout) { + }: SimpleLayoutProps) { return (
    @@ -28,10 +28,10 @@ export function SimpleLayout({ sm:text-5xl ${gradient ? `${gradient} bg-clip-text dark:text-transparent` : ''} `)}> - {title} + {heading}

    - {intro} + {description}

    {children}
    diff --git a/components/ui/Avatar.tsx b/components/ui/Avatar.tsx index 6320932..cec7945 100644 --- a/components/ui/Avatar.tsx +++ b/components/ui/Avatar.tsx @@ -2,7 +2,7 @@ import {Props} from '@/types' import clsx from 'clsx' import Link from 'next/link' import Image from 'next/image' -import avatar from '@/public/static/images/avatar.jpg' +import me from '/public/images/me.jpg' export function AvatarContainer({className, ...props}: { style?: Object } & Props) { return ( @@ -25,7 +25,7 @@ export function Avatar({large = false, className, ...props}: { large?: boolean, {...props} > diff --git a/components/ui/SpotifyPlayer.tsx b/components/ui/SpotifyPlayer.tsx index 7f39de1..43076ef 100644 --- a/components/ui/SpotifyPlayer.tsx +++ b/components/ui/SpotifyPlayer.tsx @@ -1,3 +1,5 @@ +'use client' + import useSWR from 'swr' import fetcher from '@/lib/fetcher' import Image from 'next/image' diff --git a/components/ui/ThemeButton.tsx b/components/ui/ThemeButton.tsx new file mode 100644 index 0000000..2f078a7 --- /dev/null +++ b/components/ui/ThemeButton.tsx @@ -0,0 +1,62 @@ +'use client' + +import {useEffect, useState} from 'react' +import {useTheme} from 'next-themes' +import {SunIcon} from '@/components/icons/SunIcon' +import {MoonIcon} from '@/components/icons/MoonIcon' + +export function ThemeButton() { + const [mounted, setMounted] = useState(false) + const {theme, setTheme} = useTheme() + + useEffect(() => { + const timeout = setTimeout(() => setMounted(true), 500) + return () => clearTimeout(timeout) + }, []) + + function disableTransitionsTemporarily() { + document.documentElement.classList.add('[&_*]:!transition-none') + window.setTimeout(() => { + document.documentElement.classList.remove('[&_*]:!transition-none') + }, 0) + } + + function toggleTheme() { + disableTransitionsTemporarily() + + let darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)') + let isSystemDarkMode = darkModeMediaQuery.matches + let isDarkMode = theme === 'dark' + + if (isDarkMode === isSystemDarkMode) { + setTheme('light') + } else { + setTheme('dark') + } + } + + if (!mounted) return + + return ( + + ) +} + +ThemeButton.Skeleton = function ThemeButtonSkeleton() { + return ( +
    +
    +
    + ) +} \ No newline at end of file diff --git a/components/ui/Views.tsx b/components/ui/Views.tsx index a9ae7b5..25c00da 100644 --- a/components/ui/Views.tsx +++ b/components/ui/Views.tsx @@ -1,4 +1,6 @@ -import {useSupabaseClient} from '@supabase/auth-helpers-react' +'use client' + +import {createPagesBrowserClient} from '@supabase/auth-helpers-nextjs' import {ElementType, useEffect} from 'react' import useSWR, {useSWRConfig} from 'swr' import fetcher from '@/lib/fetcher' @@ -12,15 +14,16 @@ type ViewsProps = { shouldRender?: boolean } +const supabase = createPagesBrowserClient() + export function Views({as: Component = 'span', slug, className, shouldUpdateViews = true, shouldRender = true}: ViewsProps) { - const supabaseClient = useSupabaseClient() const {data} = useSWR(`/api/views/${slug}`, fetcher) as { data: { views: number } } const {mutate} = useSWRConfig() useEffect(() => { if (shouldUpdateViews) { // subscribe to analytics table and react to updates at row level - const sub = supabaseClient + const sub = supabase .channel('any') .on('postgres_changes', { event: 'UPDATE', diff --git a/lib/dashboard.ts b/lib/dashboard.ts index cc7d318..ab3716e 100644 --- a/lib/dashboard.ts +++ b/lib/dashboard.ts @@ -1,20 +1,14 @@ -import {GetServerSidePropsContext} from 'next' -import {createServerSupabaseClient} from '@supabase/auth-helpers-nextjs' -import { - getTopRepo, - getTotalFollowers, - getTotalForks, - getTotalRepos, - getTotalStars -} from '@/lib/github' +import {cookies} from 'next/headers' +import {createServerComponentClient} from '@supabase/auth-helpers-nextjs' +import {getTopRepo, getTotalFollowers, getTotalForks, getTotalRepos, getTotalStars} from '@/lib/github' import {getAllArticles} from '@/lib/getAllArticles' import {getTopArtist, getTopGenre} from '@/lib/spotify' -import {getStats} from '@/lib/statsfm' import {Metric} from '@/types' +import {getStats} from "@/lib/statsfm"; -export async function getDashboardData(context: GetServerSidePropsContext) { - const supabaseClient = createServerSupabaseClient(context) - const {data: views} = await supabaseClient.rpc('total_views') +export async function getDashboardData() { + const supabase = createServerComponentClient({cookies}) + const {data: views} = await supabase.rpc('total_views') const [totalRepos, totalFollowers] = await Promise.all([ getTotalRepos(), getTotalFollowers() @@ -26,27 +20,27 @@ export async function getDashboardData(context: GetServerSidePropsContext) { const totalArticles = (await getAllArticles()).length const topArtist = await getTopArtist() const {genre} = await getTopGenre() - // const {hoursListened, minutesListened, streams} = await getStats() + const {hoursListened, minutesListened, streams} = await getStats() const metrics: Metric[] = [ - // { - // title: "Streams", - // value: +streams, - // group: "Spotify", - // href: "https://open.spotify.com/?" - // }, - // { - // title: "Hours listened", - // value: +hoursListened, - // group: "Spotify", - // href: "https://open.spotify.com/?" - // }, - // { - // title: "Minutes listened", - // value: +minutesListened, - // group: "Spotify", - // href: "https://open.spotify.com/?" - // }, + { + title: "Streams", + value: +streams, + group: "Spotify", + href: "https://open.spotify.com/?" + }, + { + title: "Hours listened", + value: +hoursListened, + group: "Spotify", + href: "https://open.spotify.com/?" + }, + { + title: "Minutes listened", + value: +minutesListened, + group: "Spotify", + href: "https://open.spotify.com/?" + }, { title: "Top genre", value: genre, diff --git a/lib/generateRssFeed.tsx b/lib/generateRssFeed.tsx index 4b3c7e2..10342e0 100644 --- a/lib/generateRssFeed.tsx +++ b/lib/generateRssFeed.tsx @@ -18,8 +18,8 @@ export async function generateRssFeed() { author, id: siteUrl!, link: siteUrl, - image: `${siteUrl}/static/icons/favicon.ico`, - favicon: `${siteUrl}/static/icons/favicon.ico`, + image: `${siteUrl}/favicon.ico`, + favicon: `${siteUrl}/favicon.ico`, copyright: `All rights reserved ${new Date().getFullYear()}`, feedLinks: { rss2: `${siteUrl}/rss/feed.xml`, diff --git a/lib/getAllArticles.ts b/lib/getAllArticles.ts index fe5b0cb..fcbac42 100644 --- a/lib/getAllArticles.ts +++ b/lib/getAllArticles.ts @@ -2,19 +2,19 @@ import glob from 'fast-glob' import * as path from 'path' async function importArticle(articleFilename: string) { - let {meta, default: component} = await import( - `/pages/writing/${articleFilename}` + let {metadata, default: component} = await import( + `/app/writing/${articleFilename}` ) return { - slug: articleFilename.replace(/(\/index)?\.mdx$/, ''), - ...meta, + slug: articleFilename.replace(/(\/page)?\.mdx$/, ''), + ...metadata, component, } } export async function getAllArticles() { - let articleFilenames = await glob(['*.mdx', '*/index.mdx'], { - cwd: path.join(process.cwd(), './pages/writing'), + let articleFilenames = await glob(['*.mdx', '*/page.mdx'], { + cwd: path.join(process.cwd(), './app/writing'), }) let articles = await Promise.all(articleFilenames.map(importArticle)) diff --git a/mdx-components.tsx b/mdx-components.tsx new file mode 100644 index 0000000..2592b0d --- /dev/null +++ b/mdx-components.tsx @@ -0,0 +1,15 @@ +import type { MDXComponents } from 'mdx/types' + +// This file allows you to provide custom React components +// to be used in MDX files. You can import and use any +// React component you want, including components from +// other libraries. + +// This file is required to use MDX in `app` directory. +export function useMDXComponents(components: MDXComponents): MDXComponents { + return { + // Allows customizing built-in components, e.g. to add styling. + // h1: ({ children }) =>

    {children}

    , + ...components, + } +} \ No newline at end of file diff --git a/middleware.ts b/middleware.ts new file mode 100644 index 0000000..73ea1f6 --- /dev/null +++ b/middleware.ts @@ -0,0 +1,11 @@ +import {createMiddlewareClient} from '@supabase/auth-helpers-nextjs' +import type {NextRequest} from 'next/server' +import {NextResponse} from 'next/server' +import type {Database} from '@/types/database.types' + +export async function middleware(req: NextRequest) { + const res = NextResponse.next() + const supabase = createMiddlewareClient({req, res}) + await supabase.auth.getSession() + return res +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 74842b9..5843a7a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,25 +10,28 @@ "dependencies": { "@headlessui/react": "^1.7.7", "@mapbox/rehype-prism": "^0.7.0", - "@next/mdx": "^13.1.1", - "@supabase/auth-helpers-nextjs": "^0.6.0", - "@supabase/auth-helpers-react": "^0.3.1", + "@mdx-js/loader": "^2.3.0", + "@mdx-js/react": "^2.3.0", + "@next/mdx": "^13.4.10", + "@supabase/auth-helpers-nextjs": "^0.7.3", + "@supabase/supabase-js": "^2.27.0", "@tailwindcss/typography": "^0.5.8", - "@types/mdx": "^2.0.3", + "@types/mdx": "^2.0.5", "@types/node": "^18.11.18", "@types/nprogress": "^0.2.0", "@types/react": "18.0.26", "@types/react-dom": "18.0.10", "autoprefixer": "^10.4.13", "clsx": "^1.2.1", + "encoding": "^0.1.13", "eslint": "8.31.0", "eslint-config-next": "^13.3.0", "fast-glob": "^3.2.12", "feed": "^4.2.2", "focus-visible": "^5.2.0", "motion": "^10.15.5", - "next": "^13.3.0", - "node-fetch": "^3.3.0", + "next": "^13.4.10", + "next-themes": "^0.2.1", "nprogress": "^0.2.0", "postcss": "^8.4.21", "postcss-focus-visible": "^7.1.0", @@ -36,14 +39,12 @@ "react-dom": "^18.2.0", "remark-gfm": "^3.0.1", "sharp": "^0.31.3", + "supabase": "^1.50.2", "swr": "^2.1.2", "tailwind-merge": "^1.9.0", "tailwindcss": "^3.3.0", "ts-node": "^10.9.1", "typescript": "4.9.4" - }, - "devDependencies": { - "supabase": "^1.50.2" } }, "node_modules/@babel/runtime": { @@ -214,10 +215,9 @@ } }, "node_modules/@mdx-js/loader": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-2.2.1.tgz", - "integrity": "sha512-J4E8A5H+xtk4otZiEZ5AXl61Tj04Avm5MqLQazITdI3+puVXVnTTuZUKM1oNHTtfDIfOl0uMt+o/Ij+x6Fvf+g==", - "peer": true, + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-2.3.0.tgz", + "integrity": "sha512-IqsscXh7Q3Rzb+f5DXYk0HU71PK+WuFsEhf+mSV3fOhpLcEpgsHvTQ2h0T6TlZ5gHOaBeFjkXwB52by7ypMyNg==", "dependencies": { "@mdx-js/mdx": "^2.0.0", "source-map": "^0.7.0" @@ -234,7 +234,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-2.2.1.tgz", "integrity": "sha512-hZ3ex7exYLJn6FfReq8yTvA6TE53uW9UHJQM9IlSauOuS55J9y8RtA7W+dzp6Yrzr00/U1sd7q+Wf61q6SfiTQ==", - "peer": true, "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/mdx": "^2.0.0", @@ -263,7 +262,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0", @@ -275,10 +273,9 @@ } }, "node_modules/@mdx-js/react": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-2.2.1.tgz", - "integrity": "sha512-YdXcMcEnqZhzql98RNrqYo9cEhTTesBiCclEtoiQUbJwx87q9453GTapYU6kJ8ZZ2ek1Vp25SiAXEFy5O/eAPw==", - "peer": true, + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-2.3.0.tgz", + "integrity": "sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==", "dependencies": { "@types/mdx": "^2.0.0", "@types/react": ">=16" @@ -368,9 +365,9 @@ } }, "node_modules/@next/env": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/env/-/env-13.3.0.tgz", - "integrity": "sha512-AjppRV4uG3No7L1plinoTQETH+j2F10TEnrMfzbTUYwze5sBUPveeeBAPZPm8OkJZ1epq9OyYKhZrvbD6/9HCQ==" + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.10.tgz", + "integrity": "sha512-3G1yD/XKTSLdihyDSa8JEsaWOELY+OWe08o0LUYzfuHp1zHDA8SObQlzKt+v+wrkkPcnPweoLH1ImZeUa0A1NQ==" }, "node_modules/@next/eslint-plugin-next": { "version": "13.3.0", @@ -381,21 +378,29 @@ } }, "node_modules/@next/mdx": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-13.1.2.tgz", - "integrity": "sha512-7SDyXOqTUHeklV2aJOTWEIW6x8E8i4agKwQVXrPtpZiTkIjR9v7155oMCV48fpwxjQCoH/5ek3EwzbXwO0qzHw==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-13.4.10.tgz", + "integrity": "sha512-0ZbUIr3yuFFfkaYth2kNFAT0fbyylJTMqZy5zTdb7YGqvYjKFD8n75L3UYAX0g5mibGp3iETJ0I7730sW13PKQ==", "dependencies": { "source-map": "^0.7.0" }, "peerDependencies": { "@mdx-js/loader": ">=0.15.0", - "@mdx-js/react": "*" + "@mdx-js/react": ">=0.15.0" + }, + "peerDependenciesMeta": { + "@mdx-js/loader": { + "optional": true + }, + "@mdx-js/react": { + "optional": true + } } }, "node_modules/@next/swc-darwin-arm64": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.3.0.tgz", - "integrity": "sha512-DmIQCNq6JtccLPPBzf0dgh2vzMWt5wjxbP71pCi5EWpWYE3MsP6FcRXi4MlAmFNDQOfcFXR2r7kBeG1LpZUh1w==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.10.tgz", + "integrity": "sha512-4bsdfKmmg7mgFGph0UorD1xWfZ5jZEw4kKRHYEeTK9bT1QnMbPVPlVXQRIiFPrhoDQnZUoa6duuPUJIEGLV1Jg==", "cpu": [ "arm64" ], @@ -408,9 +413,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.3.0.tgz", - "integrity": "sha512-oQoqFa88OGgwnYlnAGHVct618FRI/749se0N3S8t9Bzdv5CRbscnO0RcX901+YnNK4Q6yeiizfgO3b7kogtsZg==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.10.tgz", + "integrity": "sha512-ngXhUBbcZIWZWqNbQSNxQrB9T1V+wgfCzAor2olYuo/YpaL6mUYNUEgeBMhr8qwV0ARSgKaOp35lRvB7EmCRBg==", "cpu": [ "x64" ], @@ -423,9 +428,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.3.0.tgz", - "integrity": "sha512-Wzz2p/WqAJUqTVoLo6H18WMeAXo3i+9DkPDae4oQG8LMloJ3if4NEZTnOnTUlro6cq+S/W4pTGa97nWTrOjbGw==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.10.tgz", + "integrity": "sha512-SjCZZCOmHD4uyM75MVArSAmF5Y+IJSGroPRj2v9/jnBT36SYFTORN8Ag/lhw81W9EeexKY/CUg2e9mdebZOwsg==", "cpu": [ "arm64" ], @@ -438,9 +443,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.3.0.tgz", - "integrity": "sha512-xPVrIQOQo9WXJYgmoTlMnAD/HlR/1e1ZIWGbwIzEirXBVBqMARUulBEIKdC19zuvoJ477qZJgBDCKtKEykCpyQ==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.10.tgz", + "integrity": "sha512-F+VlcWijX5qteoYIOxNiBbNE8ruaWuRlcYyIRK10CugqI/BIeCDzEDyrHIHY8AWwbkTwe6GRHabMdE688Rqq4Q==", "cpu": [ "arm64" ], @@ -453,9 +458,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.3.0.tgz", - "integrity": "sha512-jOFlpGuPD7W2tuXVJP4wt9a3cpNxWAPcloq5EfMJRiXsBBOjLVFZA7boXYxEBzSVgUiVVr1V9T0HFM7pULJ1qA==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.10.tgz", + "integrity": "sha512-WDv1YtAV07nhfy3i1visr5p/tjiH6CeXp4wX78lzP1jI07t4PnHHG1WEDFOduXh3WT4hG6yN82EQBQHDi7hBrQ==", "cpu": [ "x64" ], @@ -468,9 +473,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.3.0.tgz", - "integrity": "sha512-2OwKlzaBgmuet9XYHc3KwsEilzb04F540rlRXkAcjMHL7eCxB7uZIGtsVvKOnQLvC/elrUegwSw1+5f7WmfyOw==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.10.tgz", + "integrity": "sha512-zFkzqc737xr6qoBgDa3AwC7jPQzGLjDlkNmt/ljvQJ/Veri5ECdHjZCUuiTUfVjshNIIpki6FuP0RaQYK9iCRg==", "cpu": [ "x64" ], @@ -483,9 +488,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.3.0.tgz", - "integrity": "sha512-OeHiA6YEvndxT46g+rzFK/MQTfftKxJmzslERMu9LDdC6Kez0bdrgEYed5eXFK2Z1viKZJCGRlhd06rBusyztA==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.10.tgz", + "integrity": "sha512-IboRS8IWz5mWfnjAdCekkl8s0B7ijpWeDwK2O8CdgZkoCDY0ZQHBSGiJ2KViAG6+BJVfLvcP+a2fh6cdyBr9QQ==", "cpu": [ "arm64" ], @@ -498,9 +503,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.3.0.tgz", - "integrity": "sha512-4aB7K9mcVK1lYEzpOpqWrXHEZympU3oK65fnNcY1Qc4HLJFLJj8AViuqQd4jjjPNuV4sl8jAwTz3gN5VNGWB7w==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.10.tgz", + "integrity": "sha512-bSA+4j8jY4EEiwD/M2bol4uVEu1lBlgsGdvM+mmBm/BbqofNBfaZ2qwSbwE2OwbAmzNdVJRFRXQZ0dkjopTRaQ==", "cpu": [ "ia32" ], @@ -513,9 +518,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.3.0.tgz", - "integrity": "sha512-Reer6rkLLcoOvB0dd66+Y7WrWVFH7sEEkF/4bJCIfsSKnTStTYaHtwIJAwbqnt9I392Tqvku0KkoqZOryWV9LQ==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.10.tgz", + "integrity": "sha512-g2+tU63yTWmcVQKDGY0MV1PjjqgZtwM4rB1oVVi/v0brdZAcrcTV+04agKzWtvWroyFz6IqtT0MoZJA7PNyLVw==", "cpu": [ "x64" ], @@ -584,67 +589,56 @@ "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==" }, "node_modules/@supabase/auth-helpers-nextjs": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@supabase/auth-helpers-nextjs/-/auth-helpers-nextjs-0.6.0.tgz", - "integrity": "sha512-f1e5blmpt9F/Bnb2hKreWHqf3zEhl29P357d5fnXzQ3Ph7DuW2Wha7uwQVTgE2QH3niqVpJpY0Pg0zBT5NmNWQ==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@supabase/auth-helpers-nextjs/-/auth-helpers-nextjs-0.7.3.tgz", + "integrity": "sha512-ikuBGHFnvyfneToj0Y2EfiqUnEr1bdqR6JZiFydPnzACQ2Q7TkcOhkoUSc9/sMEeG7EKX5PhH8riAz42oPdKRg==", "dependencies": { - "@supabase/auth-helpers-shared": "0.3.3" + "@supabase/auth-helpers-shared": "0.4.1", + "set-cookie-parser": "^2.6.0" }, "peerDependencies": { - "@supabase/supabase-js": "^2.0.4" - } - }, - "node_modules/@supabase/auth-helpers-react": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@supabase/auth-helpers-react/-/auth-helpers-react-0.3.1.tgz", - "integrity": "sha512-g3SFv08Dz9FapNif/ZY1b7qKGlMJDyTLSayHBz3kb3FuYxg7aLWgQtydDhm5AGbc0XtvpIBuhGTIOVevwpdosA==", - "peerDependencies": { - "@supabase/supabase-js": "^2.0.4" + "@supabase/supabase-js": "^2.19.0" } }, "node_modules/@supabase/auth-helpers-shared": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@supabase/auth-helpers-shared/-/auth-helpers-shared-0.3.3.tgz", - "integrity": "sha512-ZwZGffApfyz9MiT3knnZoF1DMWE56H/Q0Mrsn22J9ubhss7/+e7TP3dChxxwlUYqtDmjmLV6OV8W0BANENfUew==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@supabase/auth-helpers-shared/-/auth-helpers-shared-0.4.1.tgz", + "integrity": "sha512-IEDX9JzWkIjQiLUaP4Qy5YDiG0jFQatWfS+jw8cCQs6QfbNdEPd2Y3qonwGHnM90CZom9SvjuylBv2pFVAL7Lw==", "dependencies": { - "js-base64": "^3.7.5" + "jose": "^4.14.3" }, "peerDependencies": { - "@supabase/supabase-js": "^2.0.4" + "@supabase/supabase-js": "^2.19.0" } }, "node_modules/@supabase/functions-js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.1.0.tgz", - "integrity": "sha512-vRziB+AqRXRaGHjEFHwBo0kuNDTuAxI7VUeqU24Fe86ISoD8YEQm0dGdpleJEcqgDGWaO6pxT1tfj1BRY5PwMg==", - "peer": true, + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.1.2.tgz", + "integrity": "sha512-QCR6pwJs9exCl37bmpMisUd6mf+0SUBJ6mUpiAjEkSJ/+xW8TCuO14bvkWHADd5hElJK9MxNlMQXxSA4DRz9nQ==", "dependencies": { "cross-fetch": "^3.1.5" } }, "node_modules/@supabase/gotrue-js": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-2.20.1.tgz", - "integrity": "sha512-TvXAhLpB/ghLAMNRX5Du3EAc9t0W1w9OFKFn9FNgX3mCAvyhJOni2DVdeSYas4xKbUuyMt4Mp3NDSculLtD0DA==", - "peer": true, + "version": "2.45.0", + "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-2.45.0.tgz", + "integrity": "sha512-ctHQqk9foMHvU9pyGXbSbyalmyJ4dkpK/72jIytH5DbXxawqPIjUmJ+Ww9yyJLFP6wCsjPdeYBI+NW070WESvg==", "dependencies": { "cross-fetch": "^3.1.5" } }, "node_modules/@supabase/postgrest-js": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.5.0.tgz", - "integrity": "sha512-YaU1HBE43Ba+FGmnXuvK+xYeHylkDKd04PYeKDUCoE2bUHoxSDqnjHbOwmLjnusGZi3X1MrFeUH1Wwb4bHYyIg==", - "peer": true, + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.7.2.tgz", + "integrity": "sha512-GK80JpRq8l6Qll85erICypAfQCied8tdlXfsDN14W844HqXCSOisk8AaE01DAwGJanieaoN5fuqhzA2yKxDvEQ==", "dependencies": { "cross-fetch": "^3.1.5" } }, "node_modules/@supabase/realtime-js": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.7.2.tgz", - "integrity": "sha512-Fi6xAl5PUkqnjl3wo4rdcQIbMG3+yTRX1aUZe/yfvTG84RMvmCXJ1yN6MmafVLeZpU1xkaz5Vx4L0tnHcLiy6w==", - "peer": true, + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.7.3.tgz", + "integrity": "sha512-c7TzL81sx2kqyxsxcDduJcHL9KJdCOoKimGP6lQSqiZKX42ATlBZpWbyy9KFGFBjAP4nyopMf5JhPi2ZH9jyNw==", "dependencies": { "@types/phoenix": "^1.5.4", "@types/websocket": "^1.0.3", @@ -652,32 +646,30 @@ } }, "node_modules/@supabase/storage-js": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.4.0.tgz", - "integrity": "sha512-uCT6WjeZsyxH/Br1MnXieJnXrYxS3DpIkdNxEFTKCoaPX/KZ2t62v++R2IMNB/XGI1LMuJfN5wM28uuK6DMpfw==", - "peer": true, + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.5.1.tgz", + "integrity": "sha512-nkR0fQA9ScAtIKA3vNoPEqbZv1k5B5HVRYEvRWdlP6mUpFphM9TwPL2jZ/ztNGMTG5xT6SrHr+H7Ykz8qzbhjw==", "dependencies": { "cross-fetch": "^3.1.5" } }, "node_modules/@supabase/supabase-js": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.15.0.tgz", - "integrity": "sha512-gtgq8Tyb4AJoTGeUH3EISOiobdSYwUPcjV+mqL8zGMND+mfqh6l90fnxVPxepnIFXeppJh67YIFTu2bZhr6AMA==", - "peer": true, + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.27.0.tgz", + "integrity": "sha512-XGDBcjmOqa4z9RtY6wJtAArCdD4yPV38dUQdEddenZE8fwubIBnEu4IOHElrWI64rxWIhhEG9HXNQrmSQhutdA==", "dependencies": { "@supabase/functions-js": "^2.1.0", - "@supabase/gotrue-js": "^2.18.1", - "@supabase/postgrest-js": "^1.1.1", - "@supabase/realtime-js": "^2.7.1", - "@supabase/storage-js": "^2.4.0", + "@supabase/gotrue-js": "^2.45.0", + "@supabase/postgrest-js": "^1.7.0", + "@supabase/realtime-js": "^2.7.3", + "@supabase/storage-js": "^2.5.1", "cross-fetch": "^3.1.5" } }, "node_modules/@swc/helpers": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", - "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.1.tgz", + "integrity": "sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==", "dependencies": { "tslib": "^2.4.0" } @@ -720,7 +712,6 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", - "peer": true, "dependencies": { "@types/estree": "*" } @@ -756,14 +747,12 @@ "node_modules/@types/estree": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", - "peer": true + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==" }, "node_modules/@types/estree-jsx": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.0.tgz", "integrity": "sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==", - "peer": true, "dependencies": { "@types/estree": "*" } @@ -796,9 +785,9 @@ } }, "node_modules/@types/mdx": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.3.tgz", - "integrity": "sha512-IgHxcT3RC8LzFLhKwP3gbMPeaK7BM9eBH46OdapPA7yvuIUJ8H6zHZV53J8hGZcTSnt95jANt+rTBNUUc22ACQ==" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.5.tgz", + "integrity": "sha512-76CqzuD6Q7LC+AtbPqrvD9AqsN0k8bsYo2bM2J8pmNldP1aIPAbzUQ7QbobyXL4eLr1wK5x8FZFe8eF/ubRuBg==" }, "node_modules/@types/ms": { "version": "0.7.31", @@ -816,10 +805,9 @@ "integrity": "sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A==" }, "node_modules/@types/phoenix": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.5.5.tgz", - "integrity": "sha512-1eWWT19k0L4ZiTvdXjAvJ9KvW0B8SdiVftQmFPJGTEx78Q4PCSIQDpz+EfkFVR1N4U9gREjlW4JXL8YCIlY0bw==", - "peer": true + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.0.tgz", + "integrity": "sha512-qwfpsHmFuhAS/dVd4uBIraMxRd56vwBUYQGZ6GpXnFuM2XMRFJbIyruFKKlW2daQliuYZwe0qfn/UjFCDKic5g==" }, "node_modules/@types/prop-types": { "version": "15.7.5", @@ -858,7 +846,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.5.tgz", "integrity": "sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==", - "peer": true, "dependencies": { "@types/node": "*" } @@ -1307,7 +1294,6 @@ "version": "1.8.4", "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.4.tgz", "integrity": "sha512-97a+l2LBU3Op3bBQEff79i/E4jMD2ZLFD8rHx9B6mXyB2uQwhJQYfiDqUwtfjF4QA1F2qs//N6Cw8LetMbQjcw==", - "peer": true, "bin": { "astring": "bin/astring" } @@ -1408,7 +1394,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-4.0.1.tgz", "integrity": "sha512-bmFEM39CyX336ZGGRsGPlc6jZHriIoHacOQcTt72MktIjpPhZoP4te2jOyUXF3BLILmJ8aNLncoPVeIIFlrDeA==", - "dev": true, "dependencies": { "cmd-shim": "^6.0.0", "npm-normalize-package-bin": "^3.0.0", @@ -1518,7 +1503,6 @@ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", "hasInstallScript": true, - "peer": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -1566,9 +1550,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001444", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001444.tgz", - "integrity": "sha512-ecER9xgJQVMqcrxThKptsW0pPxSae8R2RB87LNa+ivW9ppNWRHEplXcDzkCOP4LYWGj8hunXLqaiC41iBATNyg==", + "version": "1.0.30001517", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", + "integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==", "funding": [ { "type": "opencollective", @@ -1577,6 +1561,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -1617,7 +1605,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -1709,7 +1696,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.1.tgz", "integrity": "sha512-S9iI9y0nKR4hwEQsVWpyxld/6kRfGepGfzff83FcaiEBpmvlbA2nnGe7Cylgrx2f/p1P5S5wpRm9oL8z1PbS3Q==", - "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -1755,7 +1741,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -1778,19 +1763,17 @@ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" }, "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "peer": true, + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", "dependencies": { - "node-fetch": "2.6.7" + "node-fetch": "^2.6.12" } }, "node_modules/cross-fetch/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "peer": true, + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -1839,7 +1822,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "peer": true, "dependencies": { "es5-ext": "^0.10.50", "type": "^1.0.1" @@ -2015,6 +1997,14 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -2148,7 +2138,6 @@ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", "hasInstallScript": true, - "peer": true, "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", @@ -2162,7 +2151,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "peer": true, "dependencies": { "d": "1", "es5-ext": "^0.10.35", @@ -2173,7 +2161,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "peer": true, "dependencies": { "d": "^1.0.1", "ext": "^1.1.2" @@ -2634,7 +2621,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-2.1.0.tgz", "integrity": "sha512-rJz6I4L0GaXYtHpoMScgDIwM0/Vwbu5shbMeER596rB2D1EWF6+Gj0e0UKzJPZrpoOc87+Q2kgVFHfjAymIqmw==", - "peer": true, "dependencies": { "@types/estree": "^1.0.0" }, @@ -2647,7 +2633,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-2.2.2.tgz", "integrity": "sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==", - "peer": true, "dependencies": { "@types/estree-jsx": "^1.0.0", "estree-util-is-identifier-name": "^2.0.0", @@ -2662,7 +2647,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.0.1.tgz", "integrity": "sha512-rxZj1GkQhY4x1j/CSnybK9cGuMFQYFPLq0iNyopqf14aOVLFtMv7Esika+ObJWPWiOHuMOAHz3YkWoLYYRnzWQ==", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -2672,7 +2656,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-1.1.0.tgz", "integrity": "sha512-490lbfCcpLk+ofK6HCgqDfYs4KAfq6QVvDw3+Bm1YoKRgiOjKiKYGAVQE1uwh7zVxBgWhqp4FDtp5SqunpUk1A==", - "peer": true, "dependencies": { "@types/estree-jsx": "^1.0.0", "astring": "^1.8.0", @@ -2687,7 +2670,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-1.2.0.tgz", "integrity": "sha512-wdsoqhWueuJKsh5hqLw3j8lwFqNStm92VcwtAOAny8g/KS/l5Y8RISjR4k5W6skCj3Nirag/WUCMS0Nfy3sgsg==", - "peer": true, "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/unist": "^2.0.0" @@ -2700,8 +2682,7 @@ "node_modules/estree-walker": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.2.tgz", - "integrity": "sha512-C03BvXCQIH/po+PNPONx/zSM9ziPr9weX8xNhYb/IJtdJ9z+L4z9VKPTB+UTHdmhnIopA2kc419ueyVyHVktwA==", - "peer": true + "integrity": "sha512-C03BvXCQIH/po+PNPONx/zSM9ziPr9weX8xNhYb/IJtdJ9z+L4z9VKPTB+UTHdmhnIopA2kc419ueyVyHVktwA==" }, "node_modules/esutils": { "version": "2.0.3", @@ -2732,7 +2713,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "peer": true, "dependencies": { "type": "^2.7.2" } @@ -2740,8 +2720,7 @@ "node_modules/ext/node_modules/type": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "peer": true + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" }, "node_modules/extend": { "version": "3.0.2", @@ -2929,7 +2908,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, "dependencies": { "minipass": "^3.0.0" }, @@ -2941,7 +2919,6 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -3071,8 +3048,7 @@ "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "peer": true + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" }, "node_modules/globals": { "version": "13.19.0", @@ -3239,7 +3215,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-2.2.0.tgz", "integrity": "sha512-QFMTJsd3+lr0TKiObJ6PWwpWqFjD+T28dVSazcPAslHjHGMXxs5xFvjLbUf6e6O3/dfHb9iourepMlSh5x7lIA==", - "peer": true, "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", @@ -3275,7 +3250,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -3332,6 +3306,17 @@ "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -3404,8 +3389,7 @@ "node_modules/inline-style-parser": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", - "peer": true + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" }, "node_modules/internal-slot": { "version": "1.0.4", @@ -3685,7 +3669,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.1.tgz", "integrity": "sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==", - "peer": true, "dependencies": { "@types/estree": "*" } @@ -3773,8 +3756,7 @@ "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "peer": true + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, "node_modules/is-weakmap": { "version": "2.0.1", @@ -3865,10 +3847,13 @@ "jiti": "bin/jiti.js" } }, - "node_modules/js-base64": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz", - "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" + "node_modules/jose": { + "version": "4.14.4", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.14.4.tgz", + "integrity": "sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==", + "funding": { + "url": "https://github.com/sponsors/panva" + } }, "node_modules/js-sdsl": { "version": "4.2.0", @@ -4050,7 +4035,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-1.1.1.tgz", "integrity": "sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -4068,7 +4052,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz", "integrity": "sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ==", - "peer": true, "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -4083,7 +4066,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0", @@ -4234,7 +4216,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-2.0.0.tgz", "integrity": "sha512-M09lW0CcBT1VrJUaF/PYxemxxHa7SLDHdSn94Q9FhxjCQfuW7nMAWKWimTmA3OyDMSTH981NN1csW1X+HPSluw==", - "peer": true, "dependencies": { "mdast-util-mdx-expression": "^1.0.0", "mdast-util-mdx-jsx": "^2.0.0", @@ -4249,7 +4230,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.1.tgz", "integrity": "sha512-TTb6cKyTA1RD+1su1iStZ5PAv3rFfOUKcoU5EstUpv/IZo63uDX03R8+jXjMEhcobXnNOiG6/ccekvVl4eV1zQ==", - "peer": true, "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^2.0.0", @@ -4266,7 +4246,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.0.tgz", "integrity": "sha512-KzgzfWMhdteDkrY4mQtyvTU5bc/W4ppxhe9SzelO6QUUiwLAM+Et2Dnjjprik74a336kHdo0zKm7Tp+n6FFeRg==", - "peer": true, "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^2.0.0", @@ -4288,7 +4267,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4298,7 +4276,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4308,7 +4285,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4318,7 +4294,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", - "peer": true, "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" @@ -4332,7 +4307,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4342,7 +4316,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4352,7 +4325,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.0.tgz", "integrity": "sha512-5nk9Fn03x3rEhGaX1FU6IDwG/k+GxLXlFAkgrbM1asuAFl3BhdQWvASaIsmwWypRNcZKHPYnIuOSfIWEyEQnPQ==", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "character-entities": "^2.0.0", @@ -4372,7 +4344,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.0.tgz", "integrity": "sha512-7N5ihsOkAEGjFotIX9p/YPdl4TqUoMxL4ajNz7PbT89BqsdWJuBC9rvgt6wpbwTZqWWR0jKWqQbwsOWDBUZv4g==", - "peer": true, "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^2.0.0", @@ -4402,7 +4373,6 @@ "version": "12.2.5", "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.2.5.tgz", "integrity": "sha512-EFNhT35ZR/VZ85/EedDdCNTq0oFM+NM/+qBomVGQ0+Lcg0nhI8xIwmdCzNMlVlCJNXRprpobtKP/IUh8cfz6zQ==", - "peer": true, "dependencies": { "@types/hast": "^2.0.0", "@types/mdast": "^3.0.0", @@ -4423,7 +4393,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0", @@ -4686,7 +4655,6 @@ "url": "https://opencollective.com/unified" } ], - "peer": true, "dependencies": { "micromark-factory-mdx-expression": "^1.0.0", "micromark-factory-space": "^1.0.0", @@ -4701,7 +4669,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-1.0.3.tgz", "integrity": "sha512-VfA369RdqUISF0qGgv2FfV7gGjHDfn9+Qfiv5hEwpyr1xscRj/CiVRkU7rywGFCO7JwJ5L0e7CJz60lY52+qOA==", - "peer": true, "dependencies": { "@types/acorn": "^4.0.0", "estree-util-is-identifier-name": "^2.0.0", @@ -4722,7 +4689,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-1.0.0.tgz", "integrity": "sha512-xaRAMoSkKdqZXDAoSgp20Azm0aRQKGOl0RrS81yGu8Hr/JhMsBmfs4wR7m9kgVUIO36cMUQjNyiyDKPrsv8gOw==", - "peer": true, "dependencies": { "micromark-util-types": "^1.0.0" }, @@ -4735,7 +4701,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-1.0.0.tgz", "integrity": "sha512-TZZRZgeHvtgm+IhtgC2+uDMR7h8eTKF0QUX9YsgoL9+bADBpBY6SiLvWqnBlLbCEevITmTqmEuY3FoxMKVs1rQ==", - "peer": true, "dependencies": { "acorn": "^8.0.0", "acorn-jsx": "^5.0.0", @@ -4755,7 +4720,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-1.0.3.tgz", "integrity": "sha512-2N13ol4KMoxb85rdDwTAC6uzs8lMX0zeqpcyx7FhS7PxXomOnLactu8WI8iBNXW8AVyea3KIJd/1CKnUmwrK9A==", - "peer": true, "dependencies": { "micromark-core-commonmark": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -4826,7 +4790,6 @@ "url": "https://opencollective.com/unified" } ], - "peer": true, "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -5044,7 +5007,6 @@ "url": "https://opencollective.com/unified" } ], - "peer": true, "dependencies": { "@types/acorn": "^4.0.0", "@types/estree": "^1.0.0", @@ -5233,7 +5195,6 @@ "version": "4.2.8", "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", - "dev": true, "engines": { "node": ">=8" } @@ -5242,7 +5203,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -5255,7 +5215,6 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -5267,7 +5226,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -5344,38 +5302,39 @@ "peer": true }, "node_modules/next": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/next/-/next-13.3.0.tgz", - "integrity": "sha512-OVTw8MpIPa12+DCUkPqRGPS3thlJPcwae2ZL4xti3iBff27goH024xy4q2lhlsdoYiKOi8Kz6uJoLW/GXwgfOA==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/next/-/next-13.4.10.tgz", + "integrity": "sha512-4ep6aKxVTQ7rkUW2fBLhpBr/5oceCuf4KmlUpvG/aXuDTIf9mexNSpabUD6RWPspu6wiJJvozZREhXhueYO36A==", "dependencies": { - "@next/env": "13.3.0", - "@swc/helpers": "0.4.14", + "@next/env": "13.4.10", + "@swc/helpers": "0.5.1", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001406", "postcss": "8.4.14", - "styled-jsx": "5.1.1" + "styled-jsx": "5.1.1", + "watchpack": "2.4.0", + "zod": "3.21.4" }, "bin": { "next": "dist/bin/next" }, "engines": { - "node": ">=14.6.0" + "node": ">=16.8.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "13.3.0", - "@next/swc-darwin-x64": "13.3.0", - "@next/swc-linux-arm64-gnu": "13.3.0", - "@next/swc-linux-arm64-musl": "13.3.0", - "@next/swc-linux-x64-gnu": "13.3.0", - "@next/swc-linux-x64-musl": "13.3.0", - "@next/swc-win32-arm64-msvc": "13.3.0", - "@next/swc-win32-ia32-msvc": "13.3.0", - "@next/swc-win32-x64-msvc": "13.3.0" + "@next/swc-darwin-arm64": "13.4.10", + "@next/swc-darwin-x64": "13.4.10", + "@next/swc-linux-arm64-gnu": "13.4.10", + "@next/swc-linux-arm64-musl": "13.4.10", + "@next/swc-linux-x64-gnu": "13.4.10", + "@next/swc-linux-x64-musl": "13.4.10", + "@next/swc-win32-arm64-msvc": "13.4.10", + "@next/swc-win32-ia32-msvc": "13.4.10", + "@next/swc-win32-x64-msvc": "13.4.10" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "fibers": ">= 3.1.0", - "node-sass": "^6.0.0 || ^7.0.0", "react": "^18.2.0", "react-dom": "^18.2.0", "sass": "^1.3.0" @@ -5387,19 +5346,25 @@ "fibers": { "optional": true }, - "node-sass": { - "optional": true - }, "sass": { "optional": true } } }, + "node_modules/next-themes": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.2.1.tgz", + "integrity": "sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==", + "peerDependencies": { + "next": "*", + "react": "*", + "react-dom": "*" + } + }, "node_modules/next-tick": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "peer": true + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" }, "node_modules/next/node_modules/postcss": { "version": "8.4.14", @@ -5479,7 +5444,6 @@ "version": "4.6.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", - "peer": true, "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -5511,7 +5475,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==", - "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -5788,7 +5751,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.0.4.tgz", "integrity": "sha512-SFx68DxCv0Iyo6APZuw/AKewkkThGwssmU0QWtTlvov3VAtPX+QJ4CadwSaz8nrT5jPIuxdvJWB4PnD2KNDxQg==", - "peer": true, "dependencies": { "estree-walker": "^3.0.0", "is-reference": "^3.0.0" @@ -6027,7 +5989,6 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.2.0.tgz", "integrity": "sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6151,7 +6112,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz", "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==", - "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -6245,7 +6205,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-2.2.1.tgz", "integrity": "sha512-R9wcN+/THRXTKyRBp6Npo/mcbGA2iT3N4G8qUqLA5pOEg7kBidHv8K2hHidCMYZ6DXmwK18umu0K4cicgA2PPQ==", - "peer": true, "dependencies": { "mdast-util-mdx": "^2.0.0", "micromark-extension-mdxjs": "^1.0.0" @@ -6259,7 +6218,6 @@ "version": "10.0.1", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", - "peer": true, "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-from-markdown": "^1.0.0", @@ -6274,7 +6232,6 @@ "version": "10.1.0", "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", - "peer": true, "dependencies": { "@types/hast": "^2.0.0", "@types/mdast": "^3.0.0", @@ -6398,6 +6355,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -6452,6 +6414,11 @@ "randombytes": "^2.1.0" } }, + "node_modules/set-cookie-parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", + "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==" + }, "node_modules/sharp": { "version": "0.31.3", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.31.3.tgz", @@ -6509,8 +6476,7 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/simple-concat": { "version": "1.0.1", @@ -6635,7 +6601,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6716,7 +6681,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz", "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==", - "peer": true, "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" @@ -6730,7 +6694,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6762,7 +6725,6 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.0.tgz", "integrity": "sha512-dAjq2m87tPn/TcYTeqMhXJRhu96WYWcxMFQxs3Y9jfYpq2jG+38u4tj0Lst6DOiYXmDuNxVJ2b1Z2uPC6wTEeg==", - "peer": true, "dependencies": { "inline-style-parser": "0.1.1" } @@ -6840,7 +6802,6 @@ "version": "1.50.2", "resolved": "https://registry.npmjs.org/supabase/-/supabase-1.50.2.tgz", "integrity": "sha512-LTUXxkEQQf53sG0dr9arY6bcxNA9envsc0436Nsh5K6500QYYwEF/DokXXxmY6DjJt3OGdTnMICDpGFNAcim3g==", - "dev": true, "hasInstallScript": true, "dependencies": { "bin-links": "^4.0.1", @@ -6969,7 +6930,6 @@ "version": "6.1.13", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", - "dev": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -7012,7 +6972,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, "engines": { "node": ">=10" } @@ -7116,14 +7075,12 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "peer": true + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7263,8 +7220,7 @@ "node_modules/type": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "peer": true + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" }, "node_modules/type-check": { "version": "0.4.0", @@ -7305,7 +7261,6 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "peer": true, "dependencies": { "is-typedarray": "^1.0.0" } @@ -7358,7 +7313,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-3.0.0.tgz", "integrity": "sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==", - "peer": true, "dependencies": { "@types/unist": "^2.0.0" }, @@ -7371,7 +7325,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz", "integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -7390,7 +7343,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.3.tgz", "integrity": "sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==", - "peer": true, "dependencies": { "@types/unist": "^2.0.0" }, @@ -7403,7 +7355,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-1.1.1.tgz", "integrity": "sha512-xtoY50b5+7IH8tFbkw64gisG9tMSpxDjhX9TmaJJae/XuxQ9R/Kc8Nv1eOsf43Gt4KV/LkriMy9mptDr7XLcaw==", - "peer": true, "dependencies": { "@types/unist": "^2.0.0" }, @@ -7416,7 +7367,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-4.0.1.tgz", "integrity": "sha512-0yDkppiIhDlPrfHELgB+NLQD5mfjup3a8UYclHruTJWmY74je8g+CIFr79x5f6AkmzSwlvKLbs63hC0meOMowQ==", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-visit": "^4.0.0" @@ -7430,7 +7380,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0", @@ -7548,7 +7497,6 @@ "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", "hasInstallScript": true, - "peer": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -7610,7 +7558,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", - "peer": true, "dependencies": { "@types/unist": "^2.0.0", "vfile": "^5.0.0" @@ -7637,7 +7584,6 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "peer": true, "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -7657,8 +7603,7 @@ "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "peer": true + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "node_modules/webpack": { "version": "5.76.3", @@ -7748,7 +7693,6 @@ "version": "1.0.34", "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "peer": true, "dependencies": { "bufferutil": "^4.0.1", "debug": "^2.2.0", @@ -7765,7 +7709,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "peer": true, "dependencies": { "ms": "2.0.0" } @@ -7773,14 +7716,12 @@ "node_modules/websocket/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "peer": true + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "peer": true, "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -7865,7 +7806,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.0.tgz", "integrity": "sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w==", - "dev": true, "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -7897,7 +7837,6 @@ "version": "0.0.6", "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", - "peer": true, "engines": { "node": ">=0.10.32" } @@ -7926,6 +7865,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/zod": { + "version": "3.21.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz", + "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", @@ -8066,10 +8013,9 @@ } }, "@mdx-js/loader": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-2.2.1.tgz", - "integrity": "sha512-J4E8A5H+xtk4otZiEZ5AXl61Tj04Avm5MqLQazITdI3+puVXVnTTuZUKM1oNHTtfDIfOl0uMt+o/Ij+x6Fvf+g==", - "peer": true, + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-2.3.0.tgz", + "integrity": "sha512-IqsscXh7Q3Rzb+f5DXYk0HU71PK+WuFsEhf+mSV3fOhpLcEpgsHvTQ2h0T6TlZ5gHOaBeFjkXwB52by7ypMyNg==", "requires": { "@mdx-js/mdx": "^2.0.0", "source-map": "^0.7.0" @@ -8079,7 +8025,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-2.2.1.tgz", "integrity": "sha512-hZ3ex7exYLJn6FfReq8yTvA6TE53uW9UHJQM9IlSauOuS55J9y8RtA7W+dzp6Yrzr00/U1sd7q+Wf61q6SfiTQ==", - "peer": true, "requires": { "@types/estree-jsx": "^1.0.0", "@types/mdx": "^2.0.0", @@ -8104,7 +8049,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", - "peer": true, "requires": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0", @@ -8114,10 +8058,9 @@ } }, "@mdx-js/react": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-2.2.1.tgz", - "integrity": "sha512-YdXcMcEnqZhzql98RNrqYo9cEhTTesBiCclEtoiQUbJwx87q9453GTapYU6kJ8ZZ2ek1Vp25SiAXEFy5O/eAPw==", - "peer": true, + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-2.3.0.tgz", + "integrity": "sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==", "requires": { "@types/mdx": "^2.0.0", "@types/react": ">=16" @@ -8200,9 +8143,9 @@ } }, "@next/env": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/env/-/env-13.3.0.tgz", - "integrity": "sha512-AjppRV4uG3No7L1plinoTQETH+j2F10TEnrMfzbTUYwze5sBUPveeeBAPZPm8OkJZ1epq9OyYKhZrvbD6/9HCQ==" + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.10.tgz", + "integrity": "sha512-3G1yD/XKTSLdihyDSa8JEsaWOELY+OWe08o0LUYzfuHp1zHDA8SObQlzKt+v+wrkkPcnPweoLH1ImZeUa0A1NQ==" }, "@next/eslint-plugin-next": { "version": "13.3.0", @@ -8213,65 +8156,65 @@ } }, "@next/mdx": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-13.1.2.tgz", - "integrity": "sha512-7SDyXOqTUHeklV2aJOTWEIW6x8E8i4agKwQVXrPtpZiTkIjR9v7155oMCV48fpwxjQCoH/5ek3EwzbXwO0qzHw==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-13.4.10.tgz", + "integrity": "sha512-0ZbUIr3yuFFfkaYth2kNFAT0fbyylJTMqZy5zTdb7YGqvYjKFD8n75L3UYAX0g5mibGp3iETJ0I7730sW13PKQ==", "requires": { "source-map": "^0.7.0" } }, "@next/swc-darwin-arm64": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.3.0.tgz", - "integrity": "sha512-DmIQCNq6JtccLPPBzf0dgh2vzMWt5wjxbP71pCi5EWpWYE3MsP6FcRXi4MlAmFNDQOfcFXR2r7kBeG1LpZUh1w==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.10.tgz", + "integrity": "sha512-4bsdfKmmg7mgFGph0UorD1xWfZ5jZEw4kKRHYEeTK9bT1QnMbPVPlVXQRIiFPrhoDQnZUoa6duuPUJIEGLV1Jg==", "optional": true }, "@next/swc-darwin-x64": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.3.0.tgz", - "integrity": "sha512-oQoqFa88OGgwnYlnAGHVct618FRI/749se0N3S8t9Bzdv5CRbscnO0RcX901+YnNK4Q6yeiizfgO3b7kogtsZg==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.10.tgz", + "integrity": "sha512-ngXhUBbcZIWZWqNbQSNxQrB9T1V+wgfCzAor2olYuo/YpaL6mUYNUEgeBMhr8qwV0ARSgKaOp35lRvB7EmCRBg==", "optional": true }, "@next/swc-linux-arm64-gnu": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.3.0.tgz", - "integrity": "sha512-Wzz2p/WqAJUqTVoLo6H18WMeAXo3i+9DkPDae4oQG8LMloJ3if4NEZTnOnTUlro6cq+S/W4pTGa97nWTrOjbGw==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.10.tgz", + "integrity": "sha512-SjCZZCOmHD4uyM75MVArSAmF5Y+IJSGroPRj2v9/jnBT36SYFTORN8Ag/lhw81W9EeexKY/CUg2e9mdebZOwsg==", "optional": true }, "@next/swc-linux-arm64-musl": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.3.0.tgz", - "integrity": "sha512-xPVrIQOQo9WXJYgmoTlMnAD/HlR/1e1ZIWGbwIzEirXBVBqMARUulBEIKdC19zuvoJ477qZJgBDCKtKEykCpyQ==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.10.tgz", + "integrity": "sha512-F+VlcWijX5qteoYIOxNiBbNE8ruaWuRlcYyIRK10CugqI/BIeCDzEDyrHIHY8AWwbkTwe6GRHabMdE688Rqq4Q==", "optional": true }, "@next/swc-linux-x64-gnu": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.3.0.tgz", - "integrity": "sha512-jOFlpGuPD7W2tuXVJP4wt9a3cpNxWAPcloq5EfMJRiXsBBOjLVFZA7boXYxEBzSVgUiVVr1V9T0HFM7pULJ1qA==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.10.tgz", + "integrity": "sha512-WDv1YtAV07nhfy3i1visr5p/tjiH6CeXp4wX78lzP1jI07t4PnHHG1WEDFOduXh3WT4hG6yN82EQBQHDi7hBrQ==", "optional": true }, "@next/swc-linux-x64-musl": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.3.0.tgz", - "integrity": "sha512-2OwKlzaBgmuet9XYHc3KwsEilzb04F540rlRXkAcjMHL7eCxB7uZIGtsVvKOnQLvC/elrUegwSw1+5f7WmfyOw==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.10.tgz", + "integrity": "sha512-zFkzqc737xr6qoBgDa3AwC7jPQzGLjDlkNmt/ljvQJ/Veri5ECdHjZCUuiTUfVjshNIIpki6FuP0RaQYK9iCRg==", "optional": true }, "@next/swc-win32-arm64-msvc": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.3.0.tgz", - "integrity": "sha512-OeHiA6YEvndxT46g+rzFK/MQTfftKxJmzslERMu9LDdC6Kez0bdrgEYed5eXFK2Z1viKZJCGRlhd06rBusyztA==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.10.tgz", + "integrity": "sha512-IboRS8IWz5mWfnjAdCekkl8s0B7ijpWeDwK2O8CdgZkoCDY0ZQHBSGiJ2KViAG6+BJVfLvcP+a2fh6cdyBr9QQ==", "optional": true }, "@next/swc-win32-ia32-msvc": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.3.0.tgz", - "integrity": "sha512-4aB7K9mcVK1lYEzpOpqWrXHEZympU3oK65fnNcY1Qc4HLJFLJj8AViuqQd4jjjPNuV4sl8jAwTz3gN5VNGWB7w==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.10.tgz", + "integrity": "sha512-bSA+4j8jY4EEiwD/M2bol4uVEu1lBlgsGdvM+mmBm/BbqofNBfaZ2qwSbwE2OwbAmzNdVJRFRXQZ0dkjopTRaQ==", "optional": true }, "@next/swc-win32-x64-msvc": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.3.0.tgz", - "integrity": "sha512-Reer6rkLLcoOvB0dd66+Y7WrWVFH7sEEkF/4bJCIfsSKnTStTYaHtwIJAwbqnt9I392Tqvku0KkoqZOryWV9LQ==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.10.tgz", + "integrity": "sha512-g2+tU63yTWmcVQKDGY0MV1PjjqgZtwM4rB1oVVi/v0brdZAcrcTV+04agKzWtvWroyFz6IqtT0MoZJA7PNyLVw==", "optional": true }, "@nodelib/fs.scandir": { @@ -8316,59 +8259,50 @@ "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==" }, "@supabase/auth-helpers-nextjs": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@supabase/auth-helpers-nextjs/-/auth-helpers-nextjs-0.6.0.tgz", - "integrity": "sha512-f1e5blmpt9F/Bnb2hKreWHqf3zEhl29P357d5fnXzQ3Ph7DuW2Wha7uwQVTgE2QH3niqVpJpY0Pg0zBT5NmNWQ==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@supabase/auth-helpers-nextjs/-/auth-helpers-nextjs-0.7.3.tgz", + "integrity": "sha512-ikuBGHFnvyfneToj0Y2EfiqUnEr1bdqR6JZiFydPnzACQ2Q7TkcOhkoUSc9/sMEeG7EKX5PhH8riAz42oPdKRg==", "requires": { - "@supabase/auth-helpers-shared": "0.3.3" + "@supabase/auth-helpers-shared": "0.4.1", + "set-cookie-parser": "^2.6.0" } }, - "@supabase/auth-helpers-react": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@supabase/auth-helpers-react/-/auth-helpers-react-0.3.1.tgz", - "integrity": "sha512-g3SFv08Dz9FapNif/ZY1b7qKGlMJDyTLSayHBz3kb3FuYxg7aLWgQtydDhm5AGbc0XtvpIBuhGTIOVevwpdosA==", - "requires": {} - }, "@supabase/auth-helpers-shared": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@supabase/auth-helpers-shared/-/auth-helpers-shared-0.3.3.tgz", - "integrity": "sha512-ZwZGffApfyz9MiT3knnZoF1DMWE56H/Q0Mrsn22J9ubhss7/+e7TP3dChxxwlUYqtDmjmLV6OV8W0BANENfUew==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@supabase/auth-helpers-shared/-/auth-helpers-shared-0.4.1.tgz", + "integrity": "sha512-IEDX9JzWkIjQiLUaP4Qy5YDiG0jFQatWfS+jw8cCQs6QfbNdEPd2Y3qonwGHnM90CZom9SvjuylBv2pFVAL7Lw==", "requires": { - "js-base64": "^3.7.5" + "jose": "^4.14.3" } }, "@supabase/functions-js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.1.0.tgz", - "integrity": "sha512-vRziB+AqRXRaGHjEFHwBo0kuNDTuAxI7VUeqU24Fe86ISoD8YEQm0dGdpleJEcqgDGWaO6pxT1tfj1BRY5PwMg==", - "peer": true, + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.1.2.tgz", + "integrity": "sha512-QCR6pwJs9exCl37bmpMisUd6mf+0SUBJ6mUpiAjEkSJ/+xW8TCuO14bvkWHADd5hElJK9MxNlMQXxSA4DRz9nQ==", "requires": { "cross-fetch": "^3.1.5" } }, "@supabase/gotrue-js": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-2.20.1.tgz", - "integrity": "sha512-TvXAhLpB/ghLAMNRX5Du3EAc9t0W1w9OFKFn9FNgX3mCAvyhJOni2DVdeSYas4xKbUuyMt4Mp3NDSculLtD0DA==", - "peer": true, + "version": "2.45.0", + "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-2.45.0.tgz", + "integrity": "sha512-ctHQqk9foMHvU9pyGXbSbyalmyJ4dkpK/72jIytH5DbXxawqPIjUmJ+Ww9yyJLFP6wCsjPdeYBI+NW070WESvg==", "requires": { "cross-fetch": "^3.1.5" } }, "@supabase/postgrest-js": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.5.0.tgz", - "integrity": "sha512-YaU1HBE43Ba+FGmnXuvK+xYeHylkDKd04PYeKDUCoE2bUHoxSDqnjHbOwmLjnusGZi3X1MrFeUH1Wwb4bHYyIg==", - "peer": true, + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.7.2.tgz", + "integrity": "sha512-GK80JpRq8l6Qll85erICypAfQCied8tdlXfsDN14W844HqXCSOisk8AaE01DAwGJanieaoN5fuqhzA2yKxDvEQ==", "requires": { "cross-fetch": "^3.1.5" } }, "@supabase/realtime-js": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.7.2.tgz", - "integrity": "sha512-Fi6xAl5PUkqnjl3wo4rdcQIbMG3+yTRX1aUZe/yfvTG84RMvmCXJ1yN6MmafVLeZpU1xkaz5Vx4L0tnHcLiy6w==", - "peer": true, + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.7.3.tgz", + "integrity": "sha512-c7TzL81sx2kqyxsxcDduJcHL9KJdCOoKimGP6lQSqiZKX42ATlBZpWbyy9KFGFBjAP4nyopMf5JhPi2ZH9jyNw==", "requires": { "@types/phoenix": "^1.5.4", "@types/websocket": "^1.0.3", @@ -8376,32 +8310,30 @@ } }, "@supabase/storage-js": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.4.0.tgz", - "integrity": "sha512-uCT6WjeZsyxH/Br1MnXieJnXrYxS3DpIkdNxEFTKCoaPX/KZ2t62v++R2IMNB/XGI1LMuJfN5wM28uuK6DMpfw==", - "peer": true, + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.5.1.tgz", + "integrity": "sha512-nkR0fQA9ScAtIKA3vNoPEqbZv1k5B5HVRYEvRWdlP6mUpFphM9TwPL2jZ/ztNGMTG5xT6SrHr+H7Ykz8qzbhjw==", "requires": { "cross-fetch": "^3.1.5" } }, "@supabase/supabase-js": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.15.0.tgz", - "integrity": "sha512-gtgq8Tyb4AJoTGeUH3EISOiobdSYwUPcjV+mqL8zGMND+mfqh6l90fnxVPxepnIFXeppJh67YIFTu2bZhr6AMA==", - "peer": true, + "version": "2.27.0", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.27.0.tgz", + "integrity": "sha512-XGDBcjmOqa4z9RtY6wJtAArCdD4yPV38dUQdEddenZE8fwubIBnEu4IOHElrWI64rxWIhhEG9HXNQrmSQhutdA==", "requires": { "@supabase/functions-js": "^2.1.0", - "@supabase/gotrue-js": "^2.18.1", - "@supabase/postgrest-js": "^1.1.1", - "@supabase/realtime-js": "^2.7.1", - "@supabase/storage-js": "^2.4.0", + "@supabase/gotrue-js": "^2.45.0", + "@supabase/postgrest-js": "^1.7.0", + "@supabase/realtime-js": "^2.7.3", + "@supabase/storage-js": "^2.5.1", "cross-fetch": "^3.1.5" } }, "@swc/helpers": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz", - "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.1.tgz", + "integrity": "sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==", "requires": { "tslib": "^2.4.0" } @@ -8441,7 +8373,6 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", - "peer": true, "requires": { "@types/estree": "*" } @@ -8477,14 +8408,12 @@ "@types/estree": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", - "peer": true + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==" }, "@types/estree-jsx": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.0.tgz", "integrity": "sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==", - "peer": true, "requires": { "@types/estree": "*" } @@ -8517,9 +8446,9 @@ } }, "@types/mdx": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.3.tgz", - "integrity": "sha512-IgHxcT3RC8LzFLhKwP3gbMPeaK7BM9eBH46OdapPA7yvuIUJ8H6zHZV53J8hGZcTSnt95jANt+rTBNUUc22ACQ==" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.5.tgz", + "integrity": "sha512-76CqzuD6Q7LC+AtbPqrvD9AqsN0k8bsYo2bM2J8pmNldP1aIPAbzUQ7QbobyXL4eLr1wK5x8FZFe8eF/ubRuBg==" }, "@types/ms": { "version": "0.7.31", @@ -8537,10 +8466,9 @@ "integrity": "sha512-1cYJrqq9GezNFPsWTZpFut/d4CjpZqA0vhqDUPFWYKF1oIyBz5qnoYMzR+0C/T96t3ebLAC1SSnwrVOm5/j74A==" }, "@types/phoenix": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.5.5.tgz", - "integrity": "sha512-1eWWT19k0L4ZiTvdXjAvJ9KvW0B8SdiVftQmFPJGTEx78Q4PCSIQDpz+EfkFVR1N4U9gREjlW4JXL8YCIlY0bw==", - "peer": true + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.0.tgz", + "integrity": "sha512-qwfpsHmFuhAS/dVd4uBIraMxRd56vwBUYQGZ6GpXnFuM2XMRFJbIyruFKKlW2daQliuYZwe0qfn/UjFCDKic5g==" }, "@types/prop-types": { "version": "15.7.5", @@ -8579,7 +8507,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.5.tgz", "integrity": "sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==", - "peer": true, "requires": { "@types/node": "*" } @@ -8930,8 +8857,7 @@ "astring": { "version": "1.8.4", "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.4.tgz", - "integrity": "sha512-97a+l2LBU3Op3bBQEff79i/E4jMD2ZLFD8rHx9B6mXyB2uQwhJQYfiDqUwtfjF4QA1F2qs//N6Cw8LetMbQjcw==", - "peer": true + "integrity": "sha512-97a+l2LBU3Op3bBQEff79i/E4jMD2ZLFD8rHx9B6mXyB2uQwhJQYfiDqUwtfjF4QA1F2qs//N6Cw8LetMbQjcw==" }, "autoprefixer": { "version": "10.4.13", @@ -8983,7 +8909,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-4.0.1.tgz", "integrity": "sha512-bmFEM39CyX336ZGGRsGPlc6jZHriIoHacOQcTt72MktIjpPhZoP4te2jOyUXF3BLILmJ8aNLncoPVeIIFlrDeA==", - "dev": true, "requires": { "cmd-shim": "^6.0.0", "npm-normalize-package-bin": "^3.0.0", @@ -9053,7 +8978,6 @@ "version": "4.0.7", "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", - "peer": true, "requires": { "node-gyp-build": "^4.3.0" } @@ -9086,9 +9010,9 @@ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" }, "caniuse-lite": { - "version": "1.0.30001444", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001444.tgz", - "integrity": "sha512-ecER9xgJQVMqcrxThKptsW0pPxSae8R2RB87LNa+ivW9ppNWRHEplXcDzkCOP4LYWGj8hunXLqaiC41iBATNyg==" + "version": "1.0.30001517", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz", + "integrity": "sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==" }, "ccount": { "version": "2.0.1", @@ -9112,8 +9036,7 @@ "character-entities-html4": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "peer": true + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==" }, "character-entities-legacy": { "version": "1.1.4", @@ -9174,8 +9097,7 @@ "cmd-shim": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.1.tgz", - "integrity": "sha512-S9iI9y0nKR4hwEQsVWpyxld/6kRfGepGfzff83FcaiEBpmvlbA2nnGe7Cylgrx2f/p1P5S5wpRm9oL8z1PbS3Q==", - "dev": true + "integrity": "sha512-S9iI9y0nKR4hwEQsVWpyxld/6kRfGepGfzff83FcaiEBpmvlbA2nnGe7Cylgrx2f/p1P5S5wpRm9oL8z1PbS3Q==" }, "color": { "version": "4.2.3", @@ -9211,8 +9133,7 @@ "comma-separated-tokens": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "peer": true + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==" }, "commander": { "version": "2.20.3", @@ -9231,19 +9152,17 @@ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" }, "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "peer": true, + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", "requires": { - "node-fetch": "2.6.7" + "node-fetch": "^2.6.12" }, "dependencies": { "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "peer": true, + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", "requires": { "whatwg-url": "^5.0.0" } @@ -9274,7 +9193,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "peer": true, "requires": { "es5-ext": "^0.10.50", "type": "^1.0.1" @@ -9405,6 +9323,14 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "requires": { + "iconv-lite": "^0.6.2" + } + }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -9516,7 +9442,6 @@ "version": "0.10.62", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "peer": true, "requires": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", @@ -9527,7 +9452,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "peer": true, "requires": { "d": "1", "es5-ext": "^0.10.35", @@ -9538,7 +9462,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "peer": true, "requires": { "d": "^1.0.1", "ext": "^1.1.2" @@ -9879,7 +9802,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-2.1.0.tgz", "integrity": "sha512-rJz6I4L0GaXYtHpoMScgDIwM0/Vwbu5shbMeER596rB2D1EWF6+Gj0e0UKzJPZrpoOc87+Q2kgVFHfjAymIqmw==", - "peer": true, "requires": { "@types/estree": "^1.0.0" } @@ -9888,7 +9810,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-2.2.2.tgz", "integrity": "sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==", - "peer": true, "requires": { "@types/estree-jsx": "^1.0.0", "estree-util-is-identifier-name": "^2.0.0", @@ -9898,14 +9819,12 @@ "estree-util-is-identifier-name": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.0.1.tgz", - "integrity": "sha512-rxZj1GkQhY4x1j/CSnybK9cGuMFQYFPLq0iNyopqf14aOVLFtMv7Esika+ObJWPWiOHuMOAHz3YkWoLYYRnzWQ==", - "peer": true + "integrity": "sha512-rxZj1GkQhY4x1j/CSnybK9cGuMFQYFPLq0iNyopqf14aOVLFtMv7Esika+ObJWPWiOHuMOAHz3YkWoLYYRnzWQ==" }, "estree-util-to-js": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-1.1.0.tgz", "integrity": "sha512-490lbfCcpLk+ofK6HCgqDfYs4KAfq6QVvDw3+Bm1YoKRgiOjKiKYGAVQE1uwh7zVxBgWhqp4FDtp5SqunpUk1A==", - "peer": true, "requires": { "@types/estree-jsx": "^1.0.0", "astring": "^1.8.0", @@ -9916,7 +9835,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-1.2.0.tgz", "integrity": "sha512-wdsoqhWueuJKsh5hqLw3j8lwFqNStm92VcwtAOAny8g/KS/l5Y8RISjR4k5W6skCj3Nirag/WUCMS0Nfy3sgsg==", - "peer": true, "requires": { "@types/estree-jsx": "^1.0.0", "@types/unist": "^2.0.0" @@ -9925,8 +9843,7 @@ "estree-walker": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.2.tgz", - "integrity": "sha512-C03BvXCQIH/po+PNPONx/zSM9ziPr9weX8xNhYb/IJtdJ9z+L4z9VKPTB+UTHdmhnIopA2kc419ueyVyHVktwA==", - "peer": true + "integrity": "sha512-C03BvXCQIH/po+PNPONx/zSM9ziPr9weX8xNhYb/IJtdJ9z+L4z9VKPTB+UTHdmhnIopA2kc419ueyVyHVktwA==" }, "esutils": { "version": "2.0.3", @@ -9948,7 +9865,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "peer": true, "requires": { "type": "^2.7.2" }, @@ -9956,8 +9872,7 @@ "type": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "peer": true + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" } } }, @@ -10102,7 +10017,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, "requires": { "minipass": "^3.0.0" }, @@ -10111,7 +10025,6 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -10203,8 +10116,7 @@ "glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "peer": true + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" }, "globals": { "version": "13.19.0", @@ -10316,7 +10228,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-2.2.0.tgz", "integrity": "sha512-QFMTJsd3+lr0TKiObJ6PWwpWqFjD+T28dVSazcPAslHjHGMXxs5xFvjLbUf6e6O3/dfHb9iourepMlSh5x7lIA==", - "peer": true, "requires": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", @@ -10343,8 +10254,7 @@ "hast-util-whitespace": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", - "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==", - "peer": true + "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==" }, "hastscript": { "version": "6.0.0", @@ -10383,6 +10293,14 @@ "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==" }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -10429,8 +10347,7 @@ "inline-style-parser": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", - "peer": true + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" }, "internal-slot": { "version": "1.0.4", @@ -10596,7 +10513,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.1.tgz", "integrity": "sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==", - "peer": true, "requires": { "@types/estree": "*" } @@ -10654,8 +10570,7 @@ "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "peer": true + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, "is-weakmap": { "version": "2.0.1", @@ -10724,10 +10639,10 @@ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==" }, - "js-base64": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz", - "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" + "jose": { + "version": "4.14.4", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.14.4.tgz", + "integrity": "sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==" }, "js-sdsl": { "version": "4.2.0", @@ -10870,8 +10785,7 @@ "markdown-extensions": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-1.1.1.tgz", - "integrity": "sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==", - "peer": true + "integrity": "sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==" }, "markdown-table": { "version": "3.0.3", @@ -10882,7 +10796,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz", "integrity": "sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ==", - "peer": true, "requires": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -10893,7 +10806,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", - "peer": true, "requires": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0", @@ -11006,7 +10918,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-2.0.0.tgz", "integrity": "sha512-M09lW0CcBT1VrJUaF/PYxemxxHa7SLDHdSn94Q9FhxjCQfuW7nMAWKWimTmA3OyDMSTH981NN1csW1X+HPSluw==", - "peer": true, "requires": { "mdast-util-mdx-expression": "^1.0.0", "mdast-util-mdx-jsx": "^2.0.0", @@ -11017,7 +10928,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.1.tgz", "integrity": "sha512-TTb6cKyTA1RD+1su1iStZ5PAv3rFfOUKcoU5EstUpv/IZo63uDX03R8+jXjMEhcobXnNOiG6/ccekvVl4eV1zQ==", - "peer": true, "requires": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^2.0.0", @@ -11030,7 +10940,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.0.tgz", "integrity": "sha512-KzgzfWMhdteDkrY4mQtyvTU5bc/W4ppxhe9SzelO6QUUiwLAM+Et2Dnjjprik74a336kHdo0zKm7Tp+n6FFeRg==", - "peer": true, "requires": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^2.0.0", @@ -11047,26 +10956,22 @@ "character-entities-legacy": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "peer": true + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==" }, "character-reference-invalid": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", - "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", - "peer": true + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==" }, "is-alphabetical": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", - "peer": true + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==" }, "is-alphanumerical": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", - "peer": true, "requires": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" @@ -11075,20 +10980,17 @@ "is-decimal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", - "peer": true + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==" }, "is-hexadecimal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", - "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", - "peer": true + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==" }, "parse-entities": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.0.tgz", "integrity": "sha512-5nk9Fn03x3rEhGaX1FU6IDwG/k+GxLXlFAkgrbM1asuAFl3BhdQWvASaIsmwWypRNcZKHPYnIuOSfIWEyEQnPQ==", - "peer": true, "requires": { "@types/unist": "^2.0.0", "character-entities": "^2.0.0", @@ -11106,7 +11008,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.0.tgz", "integrity": "sha512-7N5ihsOkAEGjFotIX9p/YPdl4TqUoMxL4ajNz7PbT89BqsdWJuBC9rvgt6wpbwTZqWWR0jKWqQbwsOWDBUZv4g==", - "peer": true, "requires": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^2.0.0", @@ -11128,7 +11029,6 @@ "version": "12.2.5", "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.2.5.tgz", "integrity": "sha512-EFNhT35ZR/VZ85/EedDdCNTq0oFM+NM/+qBomVGQ0+Lcg0nhI8xIwmdCzNMlVlCJNXRprpobtKP/IUh8cfz6zQ==", - "peer": true, "requires": { "@types/hast": "^2.0.0", "@types/mdast": "^3.0.0", @@ -11145,7 +11045,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", - "peer": true, "requires": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0", @@ -11335,7 +11234,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-1.0.3.tgz", "integrity": "sha512-TjYtjEMszWze51NJCZmhv7MEBcgYRgb3tJeMAJ+HQCAaZHHRBaDCccqQzGizR/H4ODefP44wRTgOn2vE5I6nZA==", - "peer": true, "requires": { "micromark-factory-mdx-expression": "^1.0.0", "micromark-factory-space": "^1.0.0", @@ -11350,7 +11248,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-1.0.3.tgz", "integrity": "sha512-VfA369RdqUISF0qGgv2FfV7gGjHDfn9+Qfiv5hEwpyr1xscRj/CiVRkU7rywGFCO7JwJ5L0e7CJz60lY52+qOA==", - "peer": true, "requires": { "@types/acorn": "^4.0.0", "estree-util-is-identifier-name": "^2.0.0", @@ -11367,7 +11264,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-1.0.0.tgz", "integrity": "sha512-xaRAMoSkKdqZXDAoSgp20Azm0aRQKGOl0RrS81yGu8Hr/JhMsBmfs4wR7m9kgVUIO36cMUQjNyiyDKPrsv8gOw==", - "peer": true, "requires": { "micromark-util-types": "^1.0.0" } @@ -11376,7 +11272,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-1.0.0.tgz", "integrity": "sha512-TZZRZgeHvtgm+IhtgC2+uDMR7h8eTKF0QUX9YsgoL9+bADBpBY6SiLvWqnBlLbCEevITmTqmEuY3FoxMKVs1rQ==", - "peer": true, "requires": { "acorn": "^8.0.0", "acorn-jsx": "^5.0.0", @@ -11392,7 +11287,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-1.0.3.tgz", "integrity": "sha512-2N13ol4KMoxb85rdDwTAC6uzs8lMX0zeqpcyx7FhS7PxXomOnLactu8WI8iBNXW8AVyea3KIJd/1CKnUmwrK9A==", - "peer": true, "requires": { "micromark-core-commonmark": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -11429,7 +11323,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-1.0.6.tgz", "integrity": "sha512-WRQIc78FV7KrCfjsEf/sETopbYjElh3xAmNpLkd1ODPqxEngP42eVRGbiPEQWpRV27LzqW+XVTvQAMIIRLPnNA==", - "peer": true, "requires": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -11537,7 +11430,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-1.2.0.tgz", "integrity": "sha512-WWp3bf7xT9MppNuw3yPjpnOxa8cj5ACivEzXJKu0WwnjBYfzaBvIAT9KfeyI0Qkll+bfQtfftSwdgTH6QhTOKw==", - "peer": true, "requires": { "@types/acorn": "^4.0.0", "@types/estree": "^1.0.0", @@ -11640,14 +11532,12 @@ "minipass": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", - "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", - "dev": true + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==" }, "minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -11657,7 +11547,6 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, "requires": { "yallist": "^4.0.0" } @@ -11667,8 +11556,7 @@ "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, "mkdirp-classic": { "version": "0.5.3", @@ -11730,25 +11618,27 @@ "peer": true }, "next": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/next/-/next-13.3.0.tgz", - "integrity": "sha512-OVTw8MpIPa12+DCUkPqRGPS3thlJPcwae2ZL4xti3iBff27goH024xy4q2lhlsdoYiKOi8Kz6uJoLW/GXwgfOA==", + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/next/-/next-13.4.10.tgz", + "integrity": "sha512-4ep6aKxVTQ7rkUW2fBLhpBr/5oceCuf4KmlUpvG/aXuDTIf9mexNSpabUD6RWPspu6wiJJvozZREhXhueYO36A==", "requires": { - "@next/env": "13.3.0", - "@next/swc-darwin-arm64": "13.3.0", - "@next/swc-darwin-x64": "13.3.0", - "@next/swc-linux-arm64-gnu": "13.3.0", - "@next/swc-linux-arm64-musl": "13.3.0", - "@next/swc-linux-x64-gnu": "13.3.0", - "@next/swc-linux-x64-musl": "13.3.0", - "@next/swc-win32-arm64-msvc": "13.3.0", - "@next/swc-win32-ia32-msvc": "13.3.0", - "@next/swc-win32-x64-msvc": "13.3.0", - "@swc/helpers": "0.4.14", + "@next/env": "13.4.10", + "@next/swc-darwin-arm64": "13.4.10", + "@next/swc-darwin-x64": "13.4.10", + "@next/swc-linux-arm64-gnu": "13.4.10", + "@next/swc-linux-arm64-musl": "13.4.10", + "@next/swc-linux-x64-gnu": "13.4.10", + "@next/swc-linux-x64-musl": "13.4.10", + "@next/swc-win32-arm64-msvc": "13.4.10", + "@next/swc-win32-ia32-msvc": "13.4.10", + "@next/swc-win32-x64-msvc": "13.4.10", + "@swc/helpers": "0.5.1", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001406", "postcss": "8.4.14", - "styled-jsx": "5.1.1" + "styled-jsx": "5.1.1", + "watchpack": "2.4.0", + "zod": "3.21.4" }, "dependencies": { "postcss": { @@ -11763,11 +11653,16 @@ } } }, + "next-themes": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.2.1.tgz", + "integrity": "sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==", + "requires": {} + }, "next-tick": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "peer": true + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" }, "node-abi": { "version": "3.31.0", @@ -11800,8 +11695,7 @@ "node-gyp-build": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", - "peer": true + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==" }, "node-releases": { "version": "2.0.8", @@ -11821,8 +11715,7 @@ "npm-normalize-package-bin": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", - "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==", - "dev": true + "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==" }, "nprogress": { "version": "0.2.0", @@ -12012,7 +11905,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.0.4.tgz", "integrity": "sha512-SFx68DxCv0Iyo6APZuw/AKewkkThGwssmU0QWtTlvov3VAtPX+QJ4CadwSaz8nrT5jPIuxdvJWB4PnD2KNDxQg==", - "peer": true, "requires": { "estree-walker": "^3.0.0", "is-reference": "^3.0.0" @@ -12154,8 +12046,7 @@ "property-information": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.2.0.tgz", - "integrity": "sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==", - "peer": true + "integrity": "sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==" }, "pump": { "version": "3.0.0", @@ -12241,8 +12132,7 @@ "read-cmd-shim": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz", - "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==", - "dev": true + "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==" }, "readable-stream": { "version": "3.6.0", @@ -12307,7 +12197,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-2.2.1.tgz", "integrity": "sha512-R9wcN+/THRXTKyRBp6Npo/mcbGA2iT3N4G8qUqLA5pOEg7kBidHv8K2hHidCMYZ6DXmwK18umu0K4cicgA2PPQ==", - "peer": true, "requires": { "mdast-util-mdx": "^2.0.0", "micromark-extension-mdxjs": "^1.0.0" @@ -12317,7 +12206,6 @@ "version": "10.0.1", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", - "peer": true, "requires": { "@types/mdast": "^3.0.0", "mdast-util-from-markdown": "^1.0.0", @@ -12328,7 +12216,6 @@ "version": "10.1.0", "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", - "peer": true, "requires": { "@types/hast": "^2.0.0", "@types/mdast": "^3.0.0", @@ -12395,6 +12282,11 @@ "is-regex": "^1.1.4" } }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -12436,6 +12328,11 @@ "randombytes": "^2.1.0" } }, + "set-cookie-parser": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", + "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==" + }, "sharp": { "version": "0.31.3", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.31.3.tgz", @@ -12477,8 +12374,7 @@ "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "simple-concat": { "version": "1.0.1", @@ -12554,8 +12450,7 @@ "space-separated-tokens": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "peer": true + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==" }, "stop-iteration-iterator": { "version": "1.0.0", @@ -12617,7 +12512,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz", "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==", - "peer": true, "requires": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" @@ -12626,8 +12520,7 @@ "character-entities-legacy": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "peer": true + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==" } } }, @@ -12648,7 +12541,6 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.0.tgz", "integrity": "sha512-dAjq2m87tPn/TcYTeqMhXJRhu96WYWcxMFQxs3Y9jfYpq2jG+38u4tj0Lst6DOiYXmDuNxVJ2b1Z2uPC6wTEeg==", - "peer": true, "requires": { "inline-style-parser": "0.1.1" } @@ -12698,7 +12590,6 @@ "version": "1.50.2", "resolved": "https://registry.npmjs.org/supabase/-/supabase-1.50.2.tgz", "integrity": "sha512-LTUXxkEQQf53sG0dr9arY6bcxNA9envsc0436Nsh5K6500QYYwEF/DokXXxmY6DjJt3OGdTnMICDpGFNAcim3g==", - "dev": true, "requires": { "bin-links": "^4.0.1", "node-fetch": "^3.2.10", @@ -12791,7 +12682,6 @@ "version": "6.1.13", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", - "dev": true, "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -12804,8 +12694,7 @@ "chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" } } }, @@ -12898,14 +12787,12 @@ "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "peer": true + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "peer": true + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==" }, "trough": { "version": "2.1.0", @@ -13003,8 +12890,7 @@ "type": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "peer": true + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" }, "type-check": { "version": "0.4.0", @@ -13033,7 +12919,6 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "peer": true, "requires": { "is-typedarray": "^1.0.0" } @@ -13072,7 +12957,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-3.0.0.tgz", "integrity": "sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==", - "peer": true, "requires": { "@types/unist": "^2.0.0" } @@ -13080,8 +12964,7 @@ "unist-util-generated": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz", - "integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==", - "peer": true + "integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==" }, "unist-util-is": { "version": "5.1.1", @@ -13092,7 +12975,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.3.tgz", "integrity": "sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==", - "peer": true, "requires": { "@types/unist": "^2.0.0" } @@ -13101,7 +12983,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-1.1.1.tgz", "integrity": "sha512-xtoY50b5+7IH8tFbkw64gisG9tMSpxDjhX9TmaJJae/XuxQ9R/Kc8Nv1eOsf43Gt4KV/LkriMy9mptDr7XLcaw==", - "peer": true, "requires": { "@types/unist": "^2.0.0" } @@ -13110,7 +12991,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-4.0.1.tgz", "integrity": "sha512-0yDkppiIhDlPrfHELgB+NLQD5mfjup3a8UYclHruTJWmY74je8g+CIFr79x5f6AkmzSwlvKLbs63hC0meOMowQ==", - "peer": true, "requires": { "@types/unist": "^2.0.0", "unist-util-visit": "^4.0.0" @@ -13120,7 +13000,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.1.tgz", "integrity": "sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==", - "peer": true, "requires": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0", @@ -13199,7 +13078,6 @@ "version": "5.0.10", "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "peer": true, "requires": { "node-gyp-build": "^4.3.0" } @@ -13247,7 +13125,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.0.1.tgz", "integrity": "sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw==", - "peer": true, "requires": { "@types/unist": "^2.0.0", "vfile": "^5.0.0" @@ -13266,7 +13143,6 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "peer": true, "requires": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -13280,8 +13156,7 @@ "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "peer": true + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "webpack": { "version": "5.76.3", @@ -13349,7 +13224,6 @@ "version": "1.0.34", "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "peer": true, "requires": { "bufferutil": "^4.0.1", "debug": "^2.2.0", @@ -13363,7 +13237,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "peer": true, "requires": { "ms": "2.0.0" } @@ -13371,8 +13244,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "peer": true + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, @@ -13380,7 +13252,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "peer": true, "requires": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -13444,7 +13315,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.0.tgz", "integrity": "sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w==", - "dev": true, "requires": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -13466,8 +13336,7 @@ "yaeti": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", - "peer": true + "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==" }, "yallist": { "version": "4.0.0", @@ -13484,6 +13353,11 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" }, + "zod": { + "version": "3.21.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz", + "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==" + }, "zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/package.json b/package.json index 5fd289a..cac9880 100644 --- a/package.json +++ b/package.json @@ -12,25 +12,28 @@ "dependencies": { "@headlessui/react": "^1.7.7", "@mapbox/rehype-prism": "^0.7.0", - "@next/mdx": "^13.1.1", - "@supabase/auth-helpers-nextjs": "^0.6.0", - "@supabase/auth-helpers-react": "^0.3.1", + "@mdx-js/loader": "^2.3.0", + "@mdx-js/react": "^2.3.0", + "@next/mdx": "^13.4.10", + "@supabase/auth-helpers-nextjs": "^0.7.3", + "@supabase/supabase-js": "^2.27.0", "@tailwindcss/typography": "^0.5.8", - "@types/mdx": "^2.0.3", + "@types/mdx": "^2.0.5", "@types/node": "^18.11.18", "@types/nprogress": "^0.2.0", "@types/react": "18.0.26", "@types/react-dom": "18.0.10", "autoprefixer": "^10.4.13", "clsx": "^1.2.1", + "encoding": "^0.1.13", "eslint": "8.31.0", "eslint-config-next": "^13.3.0", "fast-glob": "^3.2.12", "feed": "^4.2.2", "focus-visible": "^5.2.0", "motion": "^10.15.5", - "next": "^13.3.0", - "node-fetch": "^3.3.0", + "next": "^13.4.10", + "next-themes": "^0.2.1", "nprogress": "^0.2.0", "postcss": "^8.4.21", "postcss-focus-visible": "^7.1.0", @@ -38,13 +41,11 @@ "react-dom": "^18.2.0", "remark-gfm": "^3.0.1", "sharp": "^0.31.3", + "supabase": "^1.50.2", "swr": "^2.1.2", "tailwind-merge": "^1.9.0", "tailwindcss": "^3.3.0", "ts-node": "^10.9.1", "typescript": "4.9.4" - }, - "devDependencies": { - "supabase": "^1.50.2" } } diff --git a/pages/_app.tsx b/pages/_app.tsx deleted file mode 100644 index e2ba7cd..0000000 --- a/pages/_app.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import type {AppProps} from 'next/app' -import {useRouter} from 'next/router' -import NProgress from 'nprogress' -import {createBrowserSupabaseClient} from '@supabase/auth-helpers-nextjs' -import {SessionContextProvider, Session} from '@supabase/auth-helpers-react' -import {useEffect, useState} from 'react' -import {Header} from '@/components/common/Header' -import {Footer} from '@/components/common/Footer' - -import '../styles/nprogress.css' -import '../styles/tailwind.css' -import 'focus-visible' - -export default function App({Component, pageProps}: AppProps<{ initialSession: Session }>) { - const [supabaseClient] = useState(() => createBrowserSupabaseClient()) - const router = useRouter() - NProgress.configure({showSpinner: false}) - - useEffect(() => { - const handleRouteStart = () => NProgress.start() - const handleRouteDone = () => NProgress.done() - - router.events.on("routeChangeStart", handleRouteStart) - router.events.on("routeChangeComplete", handleRouteDone) - router.events.on("routeChangeError", handleRouteDone) - - return () => { - router.events.off("routeChangeStart", handleRouteStart) - router.events.off("routeChangeComplete", handleRouteDone) - router.events.off("routeChangeError", handleRouteDone) - } - }) - - return ( - -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    - - ) -} diff --git a/pages/_document.tsx b/pages/_document.tsx deleted file mode 100644 index bdd84d2..0000000 --- a/pages/_document.tsx +++ /dev/null @@ -1,79 +0,0 @@ -import {Html, Head, Main, NextScript} from 'next/document' - -const modeScript = ` - darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)') - - updateMode() - darkModeMediaQuery.addEventListener('change', updateModeWithoutTransitions) - window.addEventListener('storage', updateModeWithoutTransitions) - - function updateMode() { - let isSystemDarkMode = darkModeMediaQuery.matches - let isDarkMode = window.localStorage.isDarkMode === 'true' || (!('isDarkMode' in window.localStorage) && isSystemDarkMode) - - if (isDarkMode) { - document.documentElement.classList.add('dark') - } else { - document.documentElement.classList.remove('dark') - } - - if (isDarkMode === isSystemDarkMode) { - delete window.localStorage.isDarkMode - } - } - - function disableTransitionsTemporarily() { - document.documentElement.classList.add('[&_*]:!transition-none') - window.setTimeout(() => { - document.documentElement.classList.remove('[&_*]:!transition-none') - }, 0) - } - - function updateModeWithoutTransitions() { - disableTransitionsTemporarily() - updateMode() - } -` - -export default function Document() { - return ( - - -