From 51737338b82a9381bbf5ade8182f9a62ad7a2f5d Mon Sep 17 00:00:00 2001
From: r-freeman
Date: Mon, 10 Apr 2023 01:08:52 +0100
Subject: [PATCH] Added real-time page views
---
components/layouts/ArticleLayout.tsx | 4 +-
components/ui/Views.tsx | 58 +-
lib/dashboard.ts | 15 +-
lib/prisma.ts | 11 -
lib/supabase.ts | 6 +
lib/views.ts | 13 -
package-lock.json | 1137 +++++++++++++++-----------
package.json | 11 +-
pages/api/auth/[...nextauth].ts | 18 -
pages/api/views/[slug].ts | 63 +-
pages/index.tsx | 2 +-
pages/writing/index.tsx | 2 +-
prisma/schema.prisma | 69 --
13 files changed, 728 insertions(+), 681 deletions(-)
delete mode 100644 lib/prisma.ts
create mode 100644 lib/supabase.ts
delete mode 100644 lib/views.ts
delete mode 100644 pages/api/auth/[...nextauth].ts
delete mode 100644 prisma/schema.prisma
diff --git a/components/layouts/ArticleLayout.tsx b/components/layouts/ArticleLayout.tsx
index fb47e7a..9938d2b 100644
--- a/components/layouts/ArticleLayout.tsx
+++ b/components/layouts/ArticleLayout.tsx
@@ -18,8 +18,6 @@ type ArticleLayout = {
slug: string
}
-const isProd = process.env.NODE_ENV === 'production'
-
export function ArticleLayout({
children,
isRssFeed = false,
@@ -109,7 +107,7 @@ export function ArticleLayout({
-
+
{children}
diff --git a/components/ui/Views.tsx b/components/ui/Views.tsx
index 7f62412..9394a99 100644
--- a/components/ui/Views.tsx
+++ b/components/ui/Views.tsx
@@ -1,11 +1,7 @@
-import useSWR from 'swr'
-import {ElementType, useEffect} from 'react'
+import {ElementType, useEffect, useState} from 'react'
import fetcher from '@/lib/fetcher'
import {numberFormat} from '@/lib/numberFormat'
-
-type ViewsResponse = {
- views: string
-}
+import {supabase} from '@/lib/supabase'
type ViewsProps = {
as?: ElementType
@@ -14,20 +10,52 @@ type ViewsProps = {
shouldUpdateViews?: boolean
}
-const updateViews = (slug: string) => fetcher(`/api/views/${slug}`, {method: 'POST'})
+const NEXT_PUBLIC_SITE_URL = process.env.NEXT_PUBLIC_SITE_URL
-export function Views({as: Component = 'span', slug, className, shouldUpdateViews = true}: ViewsProps) {
- const {data} = useSWR(`/api/views/${slug}`, fetcher, {
- revalidateOnFocus: false,
- revalidateOnMount: true
- })
- const views = Number(data?.views)
+export function Views({as: Component = 'span', slug, className, shouldUpdateViews = false}: ViewsProps) {
+ const [views, setViews] = useState(0)
+
+ useEffect(() => {
+ const sub = supabase
+ .channel('any')
+ .on('postgres_changes', {
+ event: 'UPDATE',
+ schema: 'public',
+ table: 'analytics',
+ filter: `slug=eq.${slug}`
+ }, payload => {
+ setViews(payload.new.views)
+ })
+ .subscribe();
+
+ return () => {
+ sub.unsubscribe()
+ }
+ }, [])
+
+ useEffect(() => {
+ const getViews = async () => {
+ const {views} = await fetcher(`${NEXT_PUBLIC_SITE_URL}/api/views/${slug}`)
+
+ setViews(views)
+ };
+
+ getViews()
+ }, [])
useEffect(() => {
if (shouldUpdateViews) {
- updateViews(slug).then(r => r);
+ const registerView = async () => {
+ const {views} = await fetcher(`${NEXT_PUBLIC_SITE_URL}/api/views/${slug}`,
+ {
+ method: 'POST'
+ }
+ )
+ };
+
+ registerView()
}
- }, [slug, shouldUpdateViews])
+ }, [])
return (
diff --git a/lib/dashboard.ts b/lib/dashboard.ts
index b39b589..bd9a286 100644
--- a/lib/dashboard.ts
+++ b/lib/dashboard.ts
@@ -7,7 +7,6 @@ import {
} from '@/lib/github'
import {getAllArticles} from '@/lib/getAllArticles'
import {getTopArtist, getTopGenre} from '@/lib/spotify'
-import {getViews} from '@/lib/views'
import {getStats} from '@/lib/statsfm'
import {Metric} from '@/types'
@@ -21,7 +20,7 @@ export async function getDashboardData() {
const totalStars = await getTotalStars(totalRepos)
const totalForks = await getTotalForks(totalRepos)
const totalArticles = (await getAllArticles()).length
- const totalArticleViews = (await getViews()).views
+ // const totalArticleViews = (await getViews()).views
const topArtist = await getTopArtist()
const {genre} = await getTopGenre()
const {hoursListened, minutesListened, streams} = await getStats()
@@ -93,12 +92,12 @@ export async function getDashboardData() {
group: "Blog",
href: "/writing"
},
- {
- title: "Total article views",
- value: +totalArticleViews,
- group: "Blog",
- href: "/writing"
- }
+ // {
+ // title: "Total article views",
+ // value: +totalArticleViews,
+ // group: "Blog",
+ // href: "/writing"
+ // }
]
// sort metrics into named groups
diff --git a/lib/prisma.ts b/lib/prisma.ts
deleted file mode 100644
index 9cdb7b6..0000000
--- a/lib/prisma.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {PrismaClient} from '@prisma/client'
-
-const globalForPrisma = global as unknown as { prisma: PrismaClient }
-
-export const prisma =
- globalForPrisma.prisma ||
- new PrismaClient({
- log: ['query']
- })
-
-if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma
\ No newline at end of file
diff --git a/lib/supabase.ts b/lib/supabase.ts
new file mode 100644
index 0000000..c4fa992
--- /dev/null
+++ b/lib/supabase.ts
@@ -0,0 +1,6 @@
+import {createClient} from '@supabase/supabase-js'
+
+export const supabase = createClient(
+ process.env.NEXT_PUBLIC_SUPABASE_URL ?? "",
+ process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY ?? ""
+)
\ No newline at end of file
diff --git a/lib/views.ts b/lib/views.ts
deleted file mode 100644
index 1dead0a..0000000
--- a/lib/views.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import {prisma} from '@/lib/prisma'
-
-export async function getViews() {
- const totalViews: { _sum: { count: any } } = await prisma.views.aggregate({
- _sum: {
- count: true
- }
- })
-
- return {
- views: totalViews._sum.count.toString()
- }
-}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index d4a74aa..7a00e0f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,9 +10,8 @@
"dependencies": {
"@headlessui/react": "^1.7.7",
"@mapbox/rehype-prism": "^0.7.0",
- "@next-auth/prisma-adapter": "^1.0.5",
"@next/mdx": "^13.1.1",
- "@prisma/client": "^4.12.0",
+ "@supabase/supabase-js": "^2.15.0",
"@tailwindcss/typography": "^0.5.8",
"@types/mdx": "^2.0.3",
"@types/node": "^18.11.18",
@@ -21,22 +20,20 @@
"autoprefixer": "^10.4.13",
"clsx": "^1.2.1",
"eslint": "8.31.0",
- "eslint-config-next": "^13.2.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.2.0",
- "next-auth": "^4.21.1",
+ "next": "^13.3.0",
"node-fetch": "^3.3.0",
"postcss": "^8.4.21",
"postcss-focus-visible": "^7.1.0",
- "prisma": "^4.12.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"remark-gfm": "^3.0.1",
"sharp": "^0.31.3",
- "swr": "^2.0.0",
+ "swr": "^2.1.2",
"tailwind-merge": "^1.9.0",
"tailwindcss": "^3.3.0",
"ts-node": "^10.9.1",
@@ -364,24 +361,15 @@
"tslib": "^2.3.1"
}
},
- "node_modules/@next-auth/prisma-adapter": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@next-auth/prisma-adapter/-/prisma-adapter-1.0.5.tgz",
- "integrity": "sha512-VqMS11IxPXrPGXw6Oul6jcyS/n8GLOWzRMrPr3EMdtD6eOalM6zz05j08PcNiis8QzkfuYnCv49OvufTuaEwYQ==",
- "peerDependencies": {
- "@prisma/client": ">=2.26.0 || >=3",
- "next-auth": "^4"
- }
- },
"node_modules/@next/env": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-13.2.0.tgz",
- "integrity": "sha512-yv9oaRVa+AxFa27uQOVecS931NrE+GcQSqcL2HaRxL8NunStLtPiyNm/VixvdzfiWLabMz4dXvbXfwCNaECzcw=="
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-13.3.0.tgz",
+ "integrity": "sha512-AjppRV4uG3No7L1plinoTQETH+j2F10TEnrMfzbTUYwze5sBUPveeeBAPZPm8OkJZ1epq9OyYKhZrvbD6/9HCQ=="
},
"node_modules/@next/eslint-plugin-next": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.2.0.tgz",
- "integrity": "sha512-/UW29MPgX5P1J1AVIj9g1TCv4BKzUTBB54wgtEp7X15pEKerACGYv9iny44KGZxSJDizWD2+Zaw6+E7do4kwRA==",
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.3.0.tgz",
+ "integrity": "sha512-wuGN5qSEjSgcq9fVkH0Y/qIPFjnZtW3ZPwfjJOn7l/rrf6y8J24h/lo61kwqunTyzZJm/ETGfGVU9PUs8cnzEA==",
"dependencies": {
"glob": "7.1.7"
}
@@ -398,40 +386,10 @@
"@mdx-js/react": "*"
}
},
- "node_modules/@next/swc-android-arm-eabi": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.2.0.tgz",
- "integrity": "sha512-VMetUwBWtDBGzNiOkhiWTP+99ZYW5NVRpIGlUsldEtY8IQIqleaUgW9iamsO0kDSjhWNdCQCB+xu5HcCvmDTww==",
- "cpu": [
- "arm"
- ],
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-android-arm64": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-13.2.0.tgz",
- "integrity": "sha512-fAiP54Om3fSj5aKntxEvW5fWzyMUzLzjFrHuUt5jBnTRWM4QikhLy547OZDoxycyk4GoQVHmNMSA3hILsrV/dQ==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
"node_modules/@next/swc-darwin-arm64": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.2.0.tgz",
- "integrity": "sha512-F4zbvPnq3zCTqyyM6WN8ledazzJx3OrxIdc2ewnqnfk6tjBZ/aq1M27GhEfylGjZG1KvbtJCxUqi7dR/6R94bA==",
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.3.0.tgz",
+ "integrity": "sha512-DmIQCNq6JtccLPPBzf0dgh2vzMWt5wjxbP71pCi5EWpWYE3MsP6FcRXi4MlAmFNDQOfcFXR2r7kBeG1LpZUh1w==",
"cpu": [
"arm64"
],
@@ -444,9 +402,9 @@
}
},
"node_modules/@next/swc-darwin-x64": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.2.0.tgz",
- "integrity": "sha512-Y9+fB7TLAAnkCZQXWjwJg5bi1pT5NuNkI+HoKYp26U1J0SxW5vZWFGc31WFmmHIz3wA0zlaQfRa4mF7cpZL5yw==",
+ "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==",
"cpu": [
"x64"
],
@@ -458,40 +416,10 @@
"node": ">= 10"
}
},
- "node_modules/@next/swc-freebsd-x64": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.2.0.tgz",
- "integrity": "sha512-b9bCLlfznbV6e6Vg9wKYZJs7Uz8z/Py9105MYq95a3JlHiI3e/fvBpm1c7fe5QlvWJlqyNav6Clyu1W+lDk+IQ==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm-gnueabihf": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.2.0.tgz",
- "integrity": "sha512-jY/2JjDVVyktzRtMclAIVLgOxk5Ut9NKu8kKMCPdKMf9/ila37UpRfIh2fOXtRhv8AK7Lq/iSI/v2vjopZxZgQ==",
- "cpu": [
- "arm"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
"node_modules/@next/swc-linux-arm64-gnu": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.2.0.tgz",
- "integrity": "sha512-EKjWU3/lSBhOwPQRQLbySUnATnXygCjGd8ag3rP6d7kTIhfuPO4pY+DYW+wHOt5qB1ULNRmW0sXZ/ZKnQrVszw==",
+ "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==",
"cpu": [
"arm64"
],
@@ -504,9 +432,9 @@
}
},
"node_modules/@next/swc-linux-arm64-musl": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.2.0.tgz",
- "integrity": "sha512-T5R9r23Docwo6PYZRzndeFB5WUN3+smMbyk25K50MAngCiSydr82/YfAetcp7Ov7Shp4a8xXP9DHDIsBas6wbQ==",
+ "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==",
"cpu": [
"arm64"
],
@@ -519,9 +447,9 @@
}
},
"node_modules/@next/swc-linux-x64-gnu": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.2.0.tgz",
- "integrity": "sha512-FeXTc2KFvUSnTJmkpNMKoBHmNA1Ujr3QdfcKnVm/gXWqK+rfuEhAiRNOo+6mPcQ0noEge1j8Ai+W1LTbdDwPZQ==",
+ "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==",
"cpu": [
"x64"
],
@@ -534,9 +462,9 @@
}
},
"node_modules/@next/swc-linux-x64-musl": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.2.0.tgz",
- "integrity": "sha512-7Y0XMUzWDWI94pxC0xWGMWrgTFKHu/myc+GTNVEwvLtI9WA0brKqZrL1tCQW/+t6J+5XqS7w+AHbViaF+muu1A==",
+ "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==",
"cpu": [
"x64"
],
@@ -549,9 +477,9 @@
}
},
"node_modules/@next/swc-win32-arm64-msvc": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.2.0.tgz",
- "integrity": "sha512-NM5h2gEMe8EtvOeRU3vRM83tq1xo6Qvhuz0xJem/176SAMxbqzAz4LLP3l9VyUI3SIzGyiztvF/1c0jqeq7UEA==",
+ "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==",
"cpu": [
"arm64"
],
@@ -564,9 +492,9 @@
}
},
"node_modules/@next/swc-win32-ia32-msvc": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.2.0.tgz",
- "integrity": "sha512-G7YEJZX9wkcUaBOvXQSCF9Wb2sqP8hhsmFXF6po7M3llw4b+2ut2DXLf+UMdthOdUK0u+Ijhy5F7SbW9HOn2ig==",
+ "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==",
"cpu": [
"ia32"
],
@@ -579,9 +507,9 @@
}
},
"node_modules/@next/swc-win32-x64-msvc": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.2.0.tgz",
- "integrity": "sha512-QTAjSuPevnZnlHfC4600+4NvxRuPar6tWdYbPum9vnk3OIH1xu9YLK+2ArPGFd0bB2K8AoY2SIMbs1dhK0GjQQ==",
+ "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==",
"cpu": [
"x64"
],
@@ -625,14 +553,6 @@
"node": ">= 8"
}
},
- "node_modules/@panva/hkdf": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.0.4.tgz",
- "integrity": "sha512-003xWiCuvePbLaPHT+CRuaV4GlyCAVm6XYSbBZDHoWZGn1mNkVKFaDbGJjjxmEFvizUwlCoM6O18FCBMMky2zQ==",
- "funding": {
- "url": "https://github.com/sponsors/panva"
- }
- },
"node_modules/@pkgr/utils": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.3.1.tgz",
@@ -652,42 +572,66 @@
"url": "https://opencollective.com/unts"
}
},
- "node_modules/@prisma/client": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@prisma/client/-/client-4.12.0.tgz",
- "integrity": "sha512-j9/ighfWwux97J2dS15nqhl60tYoH8V0IuSsgZDb6bCFcQD3fXbXmxjYC8GHhIgOk3lB7Pq+8CwElz2MiDpsSg==",
- "hasInstallScript": true,
- "dependencies": {
- "@prisma/engines-version": "4.12.0-67.659ef412370fa3b41cd7bf6e94587c1dfb7f67e7"
- },
- "engines": {
- "node": ">=14.17"
- },
- "peerDependencies": {
- "prisma": "*"
- },
- "peerDependenciesMeta": {
- "prisma": {
- "optional": true
- }
- }
- },
- "node_modules/@prisma/engines": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-4.12.0.tgz",
- "integrity": "sha512-0alKtnxhNB5hYU+ymESBlGI4b9XrGGSdv7Ud+8TE/fBNOEhIud0XQsAR+TrvUZgS4na5czubiMsODw0TUrgkIA==",
- "hasInstallScript": true
- },
- "node_modules/@prisma/engines-version": {
- "version": "4.12.0-67.659ef412370fa3b41cd7bf6e94587c1dfb7f67e7",
- "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-4.12.0-67.659ef412370fa3b41cd7bf6e94587c1dfb7f67e7.tgz",
- "integrity": "sha512-JIHNj5jlXb9mcaJwakM0vpgRYJIAurxTUqM0iX0tfEQA5XLZ9ONkIckkhuAKdAzocZ+80GYg7QSsfpjg7OxbOA=="
- },
"node_modules/@rushstack/eslint-patch": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz",
"integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg=="
},
+ "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==",
+ "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==",
+ "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==",
+ "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==",
+ "dependencies": {
+ "@types/phoenix": "^1.5.4",
+ "@types/websocket": "^1.0.3",
+ "websocket": "^1.0.34"
+ }
+ },
+ "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==",
+ "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==",
+ "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",
+ "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",
@@ -824,6 +768,11 @@
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
"integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA=="
},
+ "node_modules/@types/phoenix": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.5.5.tgz",
+ "integrity": "sha512-1eWWT19k0L4ZiTvdXjAvJ9KvW0B8SdiVftQmFPJGTEx78Q4PCSIQDpz+EfkFVR1N4U9gREjlW4JXL8YCIlY0bw=="
+ },
"node_modules/@types/prop-types": {
"version": "15.7.5",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
@@ -857,6 +806,14 @@
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz",
"integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ=="
},
+ "node_modules/@types/websocket": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.5.tgz",
+ "integrity": "sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/@typescript-eslint/parser": {
"version": "5.48.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.48.1.tgz",
@@ -1492,6 +1449,29 @@
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
"peer": true
},
+ "node_modules/bufferutil": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz",
+ "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "node-gyp-build": "^4.3.0"
+ },
+ "engines": {
+ "node": ">=6.14.2"
+ }
+ },
+ "node_modules/busboy": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
+ "dependencies": {
+ "streamsearch": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=10.16.0"
+ }
+ },
"node_modules/call-bind": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
@@ -1718,19 +1698,38 @@
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
- "node_modules/cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/create-require": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
"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==",
+ "dependencies": {
+ "node-fetch": "2.6.7"
+ }
+ },
+ "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==",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
"node_modules/cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -1760,6 +1759,15 @@
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
"integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
},
+ "node_modules/d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "dependencies": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
"node_modules/damerau-levenshtein": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
@@ -2058,6 +2066,39 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/es5-ext": {
+ "version": "0.10.62",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz",
+ "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "es6-iterator": "^2.0.3",
+ "es6-symbol": "^3.1.3",
+ "next-tick": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "node_modules/es6-symbol": {
+ "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==",
+ "dependencies": {
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
+ }
+ },
"node_modules/escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -2133,11 +2174,11 @@
}
},
"node_modules/eslint-config-next": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.2.0.tgz",
- "integrity": "sha512-nZfIQG5m82xwgGO8EjakbF5qjnXADcveGxOxlg5J1jZ9MQlESvqqRrvl4+KHE+JKRgFD2h0q5xwDDWfFbtZmMA==",
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.3.0.tgz",
+ "integrity": "sha512-6YEwmFBX0VjBd3ODGW9df0Is0FLaRFdMN8eAahQG9CN6LjQ28J8AFr19ngxqMSg7Qv6Uca/3VeeBosJh1bzu0w==",
"dependencies": {
- "@next/eslint-plugin-next": "13.2.0",
+ "@next/eslint-plugin-next": "13.3.0",
"@rushstack/eslint-patch": "^1.1.3",
"@typescript-eslint/parser": "^5.42.0",
"eslint-import-resolver-node": "^0.3.6",
@@ -2607,6 +2648,19 @@
"node": ">=6"
}
},
+ "node_modules/ext": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
+ "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
+ "dependencies": {
+ "type": "^2.7.2"
+ }
+ },
+ "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=="
+ },
"node_modules/extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
@@ -3610,6 +3664,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
+ },
"node_modules/is-weakmap": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
@@ -3699,14 +3758,6 @@
"jiti": "bin/jiti.js"
}
},
- "node_modules/jose": {
- "version": "4.13.1",
- "resolved": "https://registry.npmjs.org/jose/-/jose-4.13.1.tgz",
- "integrity": "sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ==",
- "funding": {
- "url": "https://github.com/sponsors/panva"
- }
- },
"node_modules/js-sdsl": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
@@ -5135,12 +5186,13 @@
"peer": true
},
"node_modules/next": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/next/-/next-13.2.0.tgz",
- "integrity": "sha512-vhByvKHedsaMwNTwXKzK4IMmNp7XI7vN4etcGUoIpLrIuDfoYA3bS0ImS4X9F6lKzopG5aVp7a1CjuzF2NGkvA==",
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/next/-/next-13.3.0.tgz",
+ "integrity": "sha512-OVTw8MpIPa12+DCUkPqRGPS3thlJPcwae2ZL4xti3iBff27goH024xy4q2lhlsdoYiKOi8Kz6uJoLW/GXwgfOA==",
"dependencies": {
- "@next/env": "13.2.0",
+ "@next/env": "13.3.0",
"@swc/helpers": "0.4.14",
+ "busboy": "1.6.0",
"caniuse-lite": "^1.0.30001406",
"postcss": "8.4.14",
"styled-jsx": "5.1.1"
@@ -5152,22 +5204,18 @@
"node": ">=14.6.0"
},
"optionalDependencies": {
- "@next/swc-android-arm-eabi": "13.2.0",
- "@next/swc-android-arm64": "13.2.0",
- "@next/swc-darwin-arm64": "13.2.0",
- "@next/swc-darwin-x64": "13.2.0",
- "@next/swc-freebsd-x64": "13.2.0",
- "@next/swc-linux-arm-gnueabihf": "13.2.0",
- "@next/swc-linux-arm64-gnu": "13.2.0",
- "@next/swc-linux-arm64-musl": "13.2.0",
- "@next/swc-linux-x64-gnu": "13.2.0",
- "@next/swc-linux-x64-musl": "13.2.0",
- "@next/swc-win32-arm64-msvc": "13.2.0",
- "@next/swc-win32-ia32-msvc": "13.2.0",
- "@next/swc-win32-x64-msvc": "13.2.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"
},
"peerDependencies": {
- "@opentelemetry/api": "^1.4.0",
+ "@opentelemetry/api": "^1.1.0",
"fibers": ">= 3.1.0",
"node-sass": "^6.0.0 || ^7.0.0",
"react": "^18.2.0",
@@ -5189,32 +5237,10 @@
}
}
},
- "node_modules/next-auth": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.21.1.tgz",
- "integrity": "sha512-NYkU4jAPSVxWhCblE8dDFAnKM7kOoO/QEobQ0RoEVP9Wox99A3PKHwOAsWhSg8ahJG/iKIWk2Bo1xHvsS4R39Q==",
- "dependencies": {
- "@babel/runtime": "^7.20.13",
- "@panva/hkdf": "^1.0.2",
- "cookie": "^0.5.0",
- "jose": "^4.11.4",
- "oauth": "^0.9.15",
- "openid-client": "^5.4.0",
- "preact": "^10.6.3",
- "preact-render-to-string": "^5.1.19",
- "uuid": "^8.3.2"
- },
- "peerDependencies": {
- "next": "^12.2.5 || ^13",
- "nodemailer": "^6.6.5",
- "react": "^17.0.2 || ^18",
- "react-dom": "^17.0.2 || ^18"
- },
- "peerDependenciesMeta": {
- "nodemailer": {
- "optional": true
- }
- }
+ "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=="
},
"node_modules/next/node_modules/postcss": {
"version": "8.4.14",
@@ -5290,6 +5316,16 @@
"url": "https://opencollective.com/node-fetch"
}
},
+ "node_modules/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==",
+ "bin": {
+ "node-gyp-build": "bin.js",
+ "node-gyp-build-optional": "optional.js",
+ "node-gyp-build-test": "build-test.js"
+ }
+ },
"node_modules/node-releases": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz",
@@ -5311,11 +5347,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/oauth": {
- "version": "0.9.15",
- "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
- "integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA=="
- },
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -5437,14 +5468,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/oidc-token-hash": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.1.tgz",
- "integrity": "sha512-EvoOtz6FIEBzE+9q253HsLCVRiK/0doEJ2HCvvqMQb3dHZrP3WlJKYtJ55CRTw4jmYomzH4wkPuCj/I3ZvpKxQ==",
- "engines": {
- "node": "^10.13.0 || >=12.0.0"
- }
- },
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -5469,28 +5492,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/openid-client": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.4.0.tgz",
- "integrity": "sha512-hgJa2aQKcM2hn3eyVtN12tEA45ECjTJPXCgUh5YzTzy9qwapCvmDTVPWOcWVL0d34zeQoQ/hbG9lJhl3AYxJlQ==",
- "dependencies": {
- "jose": "^4.10.0",
- "lru-cache": "^6.0.0",
- "object-hash": "^2.0.1",
- "oidc-token-hash": "^5.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/panva"
- }
- },
- "node_modules/openid-client/node_modules/object-hash": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
- "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==",
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/optionator": {
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
@@ -5797,26 +5798,6 @@
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
},
- "node_modules/preact": {
- "version": "10.13.2",
- "resolved": "https://registry.npmjs.org/preact/-/preact-10.13.2.tgz",
- "integrity": "sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw==",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/preact"
- }
- },
- "node_modules/preact-render-to-string": {
- "version": "5.2.6",
- "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz",
- "integrity": "sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==",
- "dependencies": {
- "pretty-format": "^3.8.0"
- },
- "peerDependencies": {
- "preact": ">=10"
- }
- },
"node_modules/prebuild-install": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz",
@@ -5850,27 +5831,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/pretty-format": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz",
- "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew=="
- },
- "node_modules/prisma": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/prisma/-/prisma-4.12.0.tgz",
- "integrity": "sha512-xqVper4mbwl32BWzLpdznHAYvYDWQQWK2tBfXjdUD397XaveRyAP7SkBZ6kFlIg8kKayF4hvuaVtYwXd9BodAg==",
- "hasInstallScript": true,
- "dependencies": {
- "@prisma/engines": "4.12.0"
- },
- "bin": {
- "prisma": "build/index.js",
- "prisma2": "build/index.js"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
"node_modules/prismjs": {
"version": "1.27.0",
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz",
@@ -6503,6 +6463,14 @@
"node": ">= 0.4"
}
},
+ "node_modules/streamsearch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
"node_modules/string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
@@ -6702,15 +6670,12 @@
}
},
"node_modules/swr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/swr/-/swr-2.0.0.tgz",
- "integrity": "sha512-IhUx5yPkX+Fut3h0SqZycnaNLXLXsb2ECFq0Y29cxnK7d8r7auY2JWNbCW3IX+EqXUg3rwNJFlhrw5Ye/b6k7w==",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/swr/-/swr-2.1.2.tgz",
+ "integrity": "sha512-ocfaD2rnYZKqTDplCEX2bH5Z1++n2JSej9oYi7hVfXXWYm+0RP+H6fVrogWB0mtMclv1guk9kEnAzNLygOy9Hw==",
"dependencies": {
"use-sync-external-store": "^1.2.0"
},
- "engines": {
- "pnpm": "7"
- },
"peerDependencies": {
"react": "^16.11.0 || ^17.0.0 || ^18.0.0"
}
@@ -6918,6 +6883,11 @@
"node": ">=8.0"
}
},
+ "node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "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",
@@ -7059,6 +7029,11 @@
"node": "*"
}
},
+ "node_modules/type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
+ },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -7094,6 +7069,14 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/typedarray-to-buffer": {
+ "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==",
+ "dependencies": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
"node_modules/typescript": {
"version": "4.9.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
@@ -7327,19 +7310,23 @@
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
+ "node_modules/utf-8-validate": {
+ "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==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "node-gyp-build": "^4.3.0"
+ },
+ "engines": {
+ "node": ">=6.14.2"
+ }
+ },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
- "node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/uvu": {
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz",
@@ -7433,6 +7420,11 @@
"node": ">= 8"
}
},
+ "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=="
+ },
"node_modules/webpack": {
"version": "5.76.3",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.3.tgz",
@@ -7517,6 +7509,44 @@
"node": ">=4.0"
}
},
+ "node_modules/websocket": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz",
+ "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==",
+ "dependencies": {
+ "bufferutil": "^4.0.1",
+ "debug": "^2.2.0",
+ "es5-ext": "^0.10.50",
+ "typedarray-to-buffer": "^3.1.5",
+ "utf-8-validate": "^5.0.2",
+ "yaeti": "^0.0.6"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/websocket/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "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=="
+ },
+ "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==",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -7611,6 +7641,14 @@
"node": ">=0.4"
}
},
+ "node_modules/yaeti": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz",
+ "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==",
+ "engines": {
+ "node": ">=0.10.32"
+ }
+ },
"node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
@@ -7908,21 +7946,15 @@
"tslib": "^2.3.1"
}
},
- "@next-auth/prisma-adapter": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@next-auth/prisma-adapter/-/prisma-adapter-1.0.5.tgz",
- "integrity": "sha512-VqMS11IxPXrPGXw6Oul6jcyS/n8GLOWzRMrPr3EMdtD6eOalM6zz05j08PcNiis8QzkfuYnCv49OvufTuaEwYQ==",
- "requires": {}
- },
"@next/env": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-13.2.0.tgz",
- "integrity": "sha512-yv9oaRVa+AxFa27uQOVecS931NrE+GcQSqcL2HaRxL8NunStLtPiyNm/VixvdzfiWLabMz4dXvbXfwCNaECzcw=="
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-13.3.0.tgz",
+ "integrity": "sha512-AjppRV4uG3No7L1plinoTQETH+j2F10TEnrMfzbTUYwze5sBUPveeeBAPZPm8OkJZ1epq9OyYKhZrvbD6/9HCQ=="
},
"@next/eslint-plugin-next": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.2.0.tgz",
- "integrity": "sha512-/UW29MPgX5P1J1AVIj9g1TCv4BKzUTBB54wgtEp7X15pEKerACGYv9iny44KGZxSJDizWD2+Zaw6+E7do4kwRA==",
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.3.0.tgz",
+ "integrity": "sha512-wuGN5qSEjSgcq9fVkH0Y/qIPFjnZtW3ZPwfjJOn7l/rrf6y8J24h/lo61kwqunTyzZJm/ETGfGVU9PUs8cnzEA==",
"requires": {
"glob": "7.1.7"
}
@@ -7935,82 +7967,58 @@
"source-map": "^0.7.0"
}
},
- "@next/swc-android-arm-eabi": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.2.0.tgz",
- "integrity": "sha512-VMetUwBWtDBGzNiOkhiWTP+99ZYW5NVRpIGlUsldEtY8IQIqleaUgW9iamsO0kDSjhWNdCQCB+xu5HcCvmDTww==",
- "optional": true
- },
- "@next/swc-android-arm64": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-13.2.0.tgz",
- "integrity": "sha512-fAiP54Om3fSj5aKntxEvW5fWzyMUzLzjFrHuUt5jBnTRWM4QikhLy547OZDoxycyk4GoQVHmNMSA3hILsrV/dQ==",
- "optional": true
- },
"@next/swc-darwin-arm64": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.2.0.tgz",
- "integrity": "sha512-F4zbvPnq3zCTqyyM6WN8ledazzJx3OrxIdc2ewnqnfk6tjBZ/aq1M27GhEfylGjZG1KvbtJCxUqi7dR/6R94bA==",
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.3.0.tgz",
+ "integrity": "sha512-DmIQCNq6JtccLPPBzf0dgh2vzMWt5wjxbP71pCi5EWpWYE3MsP6FcRXi4MlAmFNDQOfcFXR2r7kBeG1LpZUh1w==",
"optional": true
},
"@next/swc-darwin-x64": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.2.0.tgz",
- "integrity": "sha512-Y9+fB7TLAAnkCZQXWjwJg5bi1pT5NuNkI+HoKYp26U1J0SxW5vZWFGc31WFmmHIz3wA0zlaQfRa4mF7cpZL5yw==",
- "optional": true
- },
- "@next/swc-freebsd-x64": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.2.0.tgz",
- "integrity": "sha512-b9bCLlfznbV6e6Vg9wKYZJs7Uz8z/Py9105MYq95a3JlHiI3e/fvBpm1c7fe5QlvWJlqyNav6Clyu1W+lDk+IQ==",
- "optional": true
- },
- "@next/swc-linux-arm-gnueabihf": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.2.0.tgz",
- "integrity": "sha512-jY/2JjDVVyktzRtMclAIVLgOxk5Ut9NKu8kKMCPdKMf9/ila37UpRfIh2fOXtRhv8AK7Lq/iSI/v2vjopZxZgQ==",
+ "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==",
"optional": true
},
"@next/swc-linux-arm64-gnu": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.2.0.tgz",
- "integrity": "sha512-EKjWU3/lSBhOwPQRQLbySUnATnXygCjGd8ag3rP6d7kTIhfuPO4pY+DYW+wHOt5qB1ULNRmW0sXZ/ZKnQrVszw==",
+ "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==",
"optional": true
},
"@next/swc-linux-arm64-musl": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.2.0.tgz",
- "integrity": "sha512-T5R9r23Docwo6PYZRzndeFB5WUN3+smMbyk25K50MAngCiSydr82/YfAetcp7Ov7Shp4a8xXP9DHDIsBas6wbQ==",
+ "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==",
"optional": true
},
"@next/swc-linux-x64-gnu": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.2.0.tgz",
- "integrity": "sha512-FeXTc2KFvUSnTJmkpNMKoBHmNA1Ujr3QdfcKnVm/gXWqK+rfuEhAiRNOo+6mPcQ0noEge1j8Ai+W1LTbdDwPZQ==",
+ "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==",
"optional": true
},
"@next/swc-linux-x64-musl": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.2.0.tgz",
- "integrity": "sha512-7Y0XMUzWDWI94pxC0xWGMWrgTFKHu/myc+GTNVEwvLtI9WA0brKqZrL1tCQW/+t6J+5XqS7w+AHbViaF+muu1A==",
+ "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==",
"optional": true
},
"@next/swc-win32-arm64-msvc": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.2.0.tgz",
- "integrity": "sha512-NM5h2gEMe8EtvOeRU3vRM83tq1xo6Qvhuz0xJem/176SAMxbqzAz4LLP3l9VyUI3SIzGyiztvF/1c0jqeq7UEA==",
+ "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==",
"optional": true
},
"@next/swc-win32-ia32-msvc": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.2.0.tgz",
- "integrity": "sha512-G7YEJZX9wkcUaBOvXQSCF9Wb2sqP8hhsmFXF6po7M3llw4b+2ut2DXLf+UMdthOdUK0u+Ijhy5F7SbW9HOn2ig==",
+ "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==",
"optional": true
},
"@next/swc-win32-x64-msvc": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.2.0.tgz",
- "integrity": "sha512-QTAjSuPevnZnlHfC4600+4NvxRuPar6tWdYbPum9vnk3OIH1xu9YLK+2ArPGFd0bB2K8AoY2SIMbs1dhK0GjQQ==",
+ "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==",
"optional": true
},
"@nodelib/fs.scandir": {
@@ -8036,11 +8044,6 @@
"fastq": "^1.6.0"
}
},
- "@panva/hkdf": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.0.4.tgz",
- "integrity": "sha512-003xWiCuvePbLaPHT+CRuaV4GlyCAVm6XYSbBZDHoWZGn1mNkVKFaDbGJjjxmEFvizUwlCoM6O18FCBMMky2zQ=="
- },
"@pkgr/utils": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.3.1.tgz",
@@ -8054,29 +8057,66 @@
"tslib": "^2.4.0"
}
},
- "@prisma/client": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@prisma/client/-/client-4.12.0.tgz",
- "integrity": "sha512-j9/ighfWwux97J2dS15nqhl60tYoH8V0IuSsgZDb6bCFcQD3fXbXmxjYC8GHhIgOk3lB7Pq+8CwElz2MiDpsSg==",
- "requires": {
- "@prisma/engines-version": "4.12.0-67.659ef412370fa3b41cd7bf6e94587c1dfb7f67e7"
- }
- },
- "@prisma/engines": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-4.12.0.tgz",
- "integrity": "sha512-0alKtnxhNB5hYU+ymESBlGI4b9XrGGSdv7Ud+8TE/fBNOEhIud0XQsAR+TrvUZgS4na5czubiMsODw0TUrgkIA=="
- },
- "@prisma/engines-version": {
- "version": "4.12.0-67.659ef412370fa3b41cd7bf6e94587c1dfb7f67e7",
- "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-4.12.0-67.659ef412370fa3b41cd7bf6e94587c1dfb7f67e7.tgz",
- "integrity": "sha512-JIHNj5jlXb9mcaJwakM0vpgRYJIAurxTUqM0iX0tfEQA5XLZ9ONkIckkhuAKdAzocZ+80GYg7QSsfpjg7OxbOA=="
- },
"@rushstack/eslint-patch": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz",
"integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg=="
},
+ "@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==",
+ "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==",
+ "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==",
+ "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==",
+ "requires": {
+ "@types/phoenix": "^1.5.4",
+ "@types/websocket": "^1.0.3",
+ "websocket": "^1.0.34"
+ }
+ },
+ "@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==",
+ "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==",
+ "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",
+ "cross-fetch": "^3.1.5"
+ }
+ },
"@swc/helpers": {
"version": "0.4.14",
"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz",
@@ -8210,6 +8250,11 @@
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
"integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA=="
},
+ "@types/phoenix": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.5.5.tgz",
+ "integrity": "sha512-1eWWT19k0L4ZiTvdXjAvJ9KvW0B8SdiVftQmFPJGTEx78Q4PCSIQDpz+EfkFVR1N4U9gREjlW4JXL8YCIlY0bw=="
+ },
"@types/prop-types": {
"version": "15.7.5",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
@@ -8243,6 +8288,14 @@
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz",
"integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ=="
},
+ "@types/websocket": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.5.tgz",
+ "integrity": "sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
"@typescript-eslint/parser": {
"version": "5.48.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.48.1.tgz",
@@ -8696,6 +8749,22 @@
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
"peer": true
},
+ "bufferutil": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz",
+ "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==",
+ "requires": {
+ "node-gyp-build": "^4.3.0"
+ }
+ },
+ "busboy": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
+ "requires": {
+ "streamsearch": "^1.1.0"
+ }
+ },
"call-bind": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
@@ -8849,16 +8918,29 @@
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
- "cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
- },
"create-require": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
"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==",
+ "requires": {
+ "node-fetch": "2.6.7"
+ },
+ "dependencies": {
+ "node-fetch": {
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+ "requires": {
+ "whatwg-url": "^5.0.0"
+ }
+ }
+ }
+ },
"cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -8879,6 +8961,15 @@
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
"integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
},
+ "d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "requires": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
"damerau-levenshtein": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
@@ -9111,6 +9202,35 @@
"is-symbol": "^1.0.2"
}
},
+ "es5-ext": {
+ "version": "0.10.62",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz",
+ "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==",
+ "requires": {
+ "es6-iterator": "^2.0.3",
+ "es6-symbol": "^3.1.3",
+ "next-tick": "^1.1.0"
+ }
+ },
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "es6-symbol": {
+ "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==",
+ "requires": {
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
+ }
+ },
"escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -9168,11 +9288,11 @@
}
},
"eslint-config-next": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.2.0.tgz",
- "integrity": "sha512-nZfIQG5m82xwgGO8EjakbF5qjnXADcveGxOxlg5J1jZ9MQlESvqqRrvl4+KHE+JKRgFD2h0q5xwDDWfFbtZmMA==",
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.3.0.tgz",
+ "integrity": "sha512-6YEwmFBX0VjBd3ODGW9df0Is0FLaRFdMN8eAahQG9CN6LjQ28J8AFr19ngxqMSg7Qv6Uca/3VeeBosJh1bzu0w==",
"requires": {
- "@next/eslint-plugin-next": "13.2.0",
+ "@next/eslint-plugin-next": "13.3.0",
"@rushstack/eslint-patch": "^1.1.3",
"@typescript-eslint/parser": "^5.42.0",
"eslint-import-resolver-node": "^0.3.6",
@@ -9511,6 +9631,21 @@
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="
},
+ "ext": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
+ "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
+ "requires": {
+ "type": "^2.7.2"
+ },
+ "dependencies": {
+ "type": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz",
+ "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw=="
+ }
+ }
+ },
"extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
@@ -10181,6 +10316,11 @@
"has-tostringtag": "^1.0.0"
}
},
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
+ },
"is-weakmap": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
@@ -10248,11 +10388,6 @@
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz",
"integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg=="
},
- "jose": {
- "version": "4.13.1",
- "resolved": "https://registry.npmjs.org/jose/-/jose-4.13.1.tgz",
- "integrity": "sha512-MSJQC5vXco5Br38mzaQKiq9mwt7lwj2eXpgpRyQYNHYt2lq1PjkWa7DLXX0WVcQLE9HhMh3jPiufS7fhJf+CLQ=="
- },
"js-sdsl": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
@@ -11221,25 +11356,22 @@
"peer": true
},
"next": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/next/-/next-13.2.0.tgz",
- "integrity": "sha512-vhByvKHedsaMwNTwXKzK4IMmNp7XI7vN4etcGUoIpLrIuDfoYA3bS0ImS4X9F6lKzopG5aVp7a1CjuzF2NGkvA==",
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/next/-/next-13.3.0.tgz",
+ "integrity": "sha512-OVTw8MpIPa12+DCUkPqRGPS3thlJPcwae2ZL4xti3iBff27goH024xy4q2lhlsdoYiKOi8Kz6uJoLW/GXwgfOA==",
"requires": {
- "@next/env": "13.2.0",
- "@next/swc-android-arm-eabi": "13.2.0",
- "@next/swc-android-arm64": "13.2.0",
- "@next/swc-darwin-arm64": "13.2.0",
- "@next/swc-darwin-x64": "13.2.0",
- "@next/swc-freebsd-x64": "13.2.0",
- "@next/swc-linux-arm-gnueabihf": "13.2.0",
- "@next/swc-linux-arm64-gnu": "13.2.0",
- "@next/swc-linux-arm64-musl": "13.2.0",
- "@next/swc-linux-x64-gnu": "13.2.0",
- "@next/swc-linux-x64-musl": "13.2.0",
- "@next/swc-win32-arm64-msvc": "13.2.0",
- "@next/swc-win32-ia32-msvc": "13.2.0",
- "@next/swc-win32-x64-msvc": "13.2.0",
+ "@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",
+ "busboy": "1.6.0",
"caniuse-lite": "^1.0.30001406",
"postcss": "8.4.14",
"styled-jsx": "5.1.1"
@@ -11257,21 +11389,10 @@
}
}
},
- "next-auth": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.21.1.tgz",
- "integrity": "sha512-NYkU4jAPSVxWhCblE8dDFAnKM7kOoO/QEobQ0RoEVP9Wox99A3PKHwOAsWhSg8ahJG/iKIWk2Bo1xHvsS4R39Q==",
- "requires": {
- "@babel/runtime": "^7.20.13",
- "@panva/hkdf": "^1.0.2",
- "cookie": "^0.5.0",
- "jose": "^4.11.4",
- "oauth": "^0.9.15",
- "openid-client": "^5.4.0",
- "preact": "^10.6.3",
- "preact-render-to-string": "^5.1.19",
- "uuid": "^8.3.2"
- }
+ "next-tick": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
+ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
},
"node-abi": {
"version": "3.31.0",
@@ -11301,6 +11422,11 @@
"formdata-polyfill": "^4.0.10"
}
},
+ "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=="
+ },
"node-releases": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz",
@@ -11316,11 +11442,6 @@
"resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
"integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="
},
- "oauth": {
- "version": "0.9.15",
- "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
- "integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA=="
- },
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -11400,11 +11521,6 @@
"es-abstract": "^1.20.4"
}
},
- "oidc-token-hash": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.1.tgz",
- "integrity": "sha512-EvoOtz6FIEBzE+9q253HsLCVRiK/0doEJ2HCvvqMQb3dHZrP3WlJKYtJ55CRTw4jmYomzH4wkPuCj/I3ZvpKxQ=="
- },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -11423,24 +11539,6 @@
"is-wsl": "^2.2.0"
}
},
- "openid-client": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.4.0.tgz",
- "integrity": "sha512-hgJa2aQKcM2hn3eyVtN12tEA45ECjTJPXCgUh5YzTzy9qwapCvmDTVPWOcWVL0d34zeQoQ/hbG9lJhl3AYxJlQ==",
- "requires": {
- "jose": "^4.10.0",
- "lru-cache": "^6.0.0",
- "object-hash": "^2.0.1",
- "oidc-token-hash": "^5.0.1"
- },
- "dependencies": {
- "object-hash": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
- "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw=="
- }
- }
- },
"optionator": {
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
@@ -11627,19 +11725,6 @@
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
},
- "preact": {
- "version": "10.13.2",
- "resolved": "https://registry.npmjs.org/preact/-/preact-10.13.2.tgz",
- "integrity": "sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw=="
- },
- "preact-render-to-string": {
- "version": "5.2.6",
- "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz",
- "integrity": "sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==",
- "requires": {
- "pretty-format": "^3.8.0"
- }
- },
"prebuild-install": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz",
@@ -11664,19 +11749,6 @@
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
},
- "pretty-format": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz",
- "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew=="
- },
- "prisma": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/prisma/-/prisma-4.12.0.tgz",
- "integrity": "sha512-xqVper4mbwl32BWzLpdznHAYvYDWQQWK2tBfXjdUD397XaveRyAP7SkBZ6kFlIg8kKayF4hvuaVtYwXd9BodAg==",
- "requires": {
- "@prisma/engines": "4.12.0"
- }
- },
"prismjs": {
"version": "1.27.0",
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz",
@@ -12094,6 +12166,11 @@
"internal-slot": "^1.0.4"
}
},
+ "streamsearch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg=="
+ },
"string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
@@ -12232,9 +12309,9 @@
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
},
"swr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/swr/-/swr-2.0.0.tgz",
- "integrity": "sha512-IhUx5yPkX+Fut3h0SqZycnaNLXLXsb2ECFq0Y29cxnK7d8r7auY2JWNbCW3IX+EqXUg3rwNJFlhrw5Ye/b6k7w==",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/swr/-/swr-2.1.2.tgz",
+ "integrity": "sha512-ocfaD2rnYZKqTDplCEX2bH5Z1++n2JSej9oYi7hVfXXWYm+0RP+H6fVrogWB0mtMclv1guk9kEnAzNLygOy9Hw==",
"requires": {
"use-sync-external-store": "^1.2.0"
}
@@ -12386,6 +12463,11 @@
"is-number": "^7.0.0"
}
},
+ "tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ },
"trim-lines": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
@@ -12485,6 +12567,11 @@
"safe-buffer": "^5.0.1"
}
},
+ "type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
+ },
"type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -12508,6 +12595,14 @@
"is-typed-array": "^1.1.9"
}
},
+ "typedarray-to-buffer": {
+ "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==",
+ "requires": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
"typescript": {
"version": "4.9.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
@@ -12665,16 +12760,19 @@
"integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
"requires": {}
},
+ "utf-8-validate": {
+ "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==",
+ "requires": {
+ "node-gyp-build": "^4.3.0"
+ }
+ },
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
- "uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
- },
"uvu": {
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz",
@@ -12743,6 +12841,11 @@
"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
"integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q=="
},
+ "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=="
+ },
"webpack": {
"version": "5.76.3",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.3.tgz",
@@ -12805,6 +12908,43 @@
"integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
"peer": true
},
+ "websocket": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz",
+ "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==",
+ "requires": {
+ "bufferutil": "^4.0.1",
+ "debug": "^2.2.0",
+ "es5-ext": "^0.10.50",
+ "typedarray-to-buffer": "^3.1.5",
+ "utf-8-validate": "^5.0.2",
+ "yaeti": "^0.0.6"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ }
+ }
+ },
+ "whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "requires": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -12872,6 +13012,11 @@
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
},
+ "yaeti": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz",
+ "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug=="
+ },
"yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
diff --git a/package.json b/package.json
index e13a5bb..53f31f8 100644
--- a/package.json
+++ b/package.json
@@ -12,9 +12,8 @@
"dependencies": {
"@headlessui/react": "^1.7.7",
"@mapbox/rehype-prism": "^0.7.0",
- "@next-auth/prisma-adapter": "^1.0.5",
"@next/mdx": "^13.1.1",
- "@prisma/client": "^4.12.0",
+ "@supabase/supabase-js": "^2.15.0",
"@tailwindcss/typography": "^0.5.8",
"@types/mdx": "^2.0.3",
"@types/node": "^18.11.18",
@@ -23,22 +22,20 @@
"autoprefixer": "^10.4.13",
"clsx": "^1.2.1",
"eslint": "8.31.0",
- "eslint-config-next": "^13.2.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.2.0",
- "next-auth": "^4.21.1",
+ "next": "^13.3.0",
"node-fetch": "^3.3.0",
"postcss": "^8.4.21",
"postcss-focus-visible": "^7.1.0",
- "prisma": "^4.12.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"remark-gfm": "^3.0.1",
"sharp": "^0.31.3",
- "swr": "^2.0.0",
+ "swr": "^2.1.2",
"tailwind-merge": "^1.9.0",
"tailwindcss": "^3.3.0",
"ts-node": "^10.9.1",
diff --git a/pages/api/auth/[...nextauth].ts b/pages/api/auth/[...nextauth].ts
deleted file mode 100644
index b9ee78c..0000000
--- a/pages/api/auth/[...nextauth].ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import NextAuth from 'next-auth'
-import GithubProvider from 'next-auth/providers/github'
-import {PrismaAdapter} from '@next-auth/prisma-adapter'
-import {PrismaClient} from '@prisma/client'
-
-const GITHUB_CLIENT_ID = process.env.GITHUB_CLIENT_ID ?? ""
-const GITHUB_SECRET = process.env.GITHUB_SECRET ?? ""
-const prisma = new PrismaClient()
-
-export default NextAuth({
- adapter: PrismaAdapter(prisma),
- providers: [
- GithubProvider({
- clientId: GITHUB_CLIENT_ID,
- clientSecret: GITHUB_SECRET
- })
- ],
-})
\ No newline at end of file
diff --git a/pages/api/views/[slug].ts b/pages/api/views/[slug].ts
index a1ef382..1622db8 100644
--- a/pages/api/views/[slug].ts
+++ b/pages/api/views/[slug].ts
@@ -1,47 +1,32 @@
-import type {NextApiRequest, NextApiResponse} from 'next'
-import {prisma} from '@/lib/prisma'
+import {NextApiRequest, NextApiResponse} from 'next'
+import {supabase} from '@/lib/supabase'
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
- try {
+ if (req.method === 'POST') {
if (req.query.slug !== undefined) {
const slug: string = req.query.slug.toString()
+ await supabase.rpc('increment_views', {page_slug: slug})
- if (req.method === 'POST') {
- const newOrUpdatedViews = await prisma.views.upsert({
- where: {slug},
- create: {
- slug
- },
- update: {
- count: {
- increment: 1
- }
- }
- })
-
- return res.status(200).json({
- views: newOrUpdatedViews.count.toString()
- })
- }
-
- if (req.method === 'GET') {
- const views = await prisma.views.findUnique({
- where: {
- slug
- }
- })
-
- let count = null
- if (views !== null) {
- count = views.count.toString()
- }
-
- return res.status(200).json({
- views: count
- });
- }
+ return res.status(200).json({})
}
- } catch (e: any) {
- return res.status(500).json({message: e.message})
+
+ return res.status(400).json({})
+ } else if (req.method === 'GET') {
+ if (req.query.slug !== undefined) {
+ const slug: string = req.query.slug.toString()
+ const response = await supabase
+ .from('analytics')
+ .select('views')
+ .eq('slug', slug)
+ .returns()
+
+ const {views} = response.data[0]
+
+ return res.status(200).json({views})
+ }
+
+ return res.status(400).json({})
}
+
+ return res.status(405).json({})
}
\ No newline at end of file
diff --git a/pages/index.tsx b/pages/index.tsx
index e951ec1..9965920 100644
--- a/pages/index.tsx
+++ b/pages/index.tsx
@@ -28,7 +28,7 @@ function Article(article: Article) {
{formatDate(article.date)}
-
+
diff --git a/pages/writing/index.tsx b/pages/writing/index.tsx
index 44b2277..1a59ce8 100644
--- a/pages/writing/index.tsx
+++ b/pages/writing/index.tsx
@@ -19,7 +19,7 @@ function Article({article}: { article: Article }) {
{formatDate(article.date)}
-
+
diff --git a/prisma/schema.prisma b/prisma/schema.prisma
deleted file mode 100644
index 6e03a98..0000000
--- a/prisma/schema.prisma
+++ /dev/null
@@ -1,69 +0,0 @@
-// This is your Prisma schema file,
-// learn more about it in the docs: https://pris.ly/d/prisma-schema
-
-generator client {
- provider = "prisma-client-js"
- previewFeatures = ["multiSchema"]
-}
-
-datasource db {
- provider = "postgresql"
- url = env("DATABASE_URL")
- shadowDatabaseUrl = env("SHADOW_DATABASE_URL")
- schemas = ["public", "auth"]
-}
-
-model Views {
- slug String @id
- count BigInt @default(1)
- @@schema("public")
-}
-
-model Account {
- id String @id @default(cuid())
- userId String
- type String
- provider String
- providerAccountId String
- refresh_token String? @db.Text
- access_token String? @db.Text
- expires_at Int?
- token_type String?
- scope String?
- id_token String? @db.Text
- session_state String?
-
- user User @relation(fields: [userId], references: [id], onDelete: Cascade)
-
- @@unique([provider, providerAccountId])
- @@schema("auth")
-}
-
-model Session {
- id String @id @default(cuid())
- sessionToken String @unique
- userId String
- expires DateTime
- user User @relation(fields: [userId], references: [id], onDelete: Cascade)
- @@schema("auth")
-}
-
-model User {
- id String @id @default(cuid())
- name String?
- email String? @unique
- emailVerified DateTime?
- image String?
- accounts Account[]
- sessions Session[]
- @@schema("auth")
-}
-
-model VerificationToken {
- identifier String
- token String @unique
- expires DateTime
-
- @@unique([identifier, token])
- @@schema("auth")
-}
\ No newline at end of file