Merge pull request 'feat: basic login'
Reviewed-on: #7 Reviewed-by: Dominik <mail@dominikstahl.dev>
This commit is contained in:
commit
347f845e0c
18 changed files with 753 additions and 2 deletions
7
.vscode/extensions.json
vendored
Normal file
7
.vscode/extensions.json
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"recommendations": [
|
||||
"esbenp.prettier-vscode",
|
||||
"vivaxy.vscode-conventional-commits",
|
||||
"dbaeumer.vscode-eslint"
|
||||
]
|
||||
}
|
|
@ -10,7 +10,13 @@
|
|||
"format": "prettier --write ."
|
||||
},
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-svg-core": "^6.7.2",
|
||||
"@fortawesome/free-brands-svg-icons": "^6.7.2",
|
||||
"@fortawesome/free-regular-svg-icons": "^6.7.2",
|
||||
"@fortawesome/free-solid-svg-icons": "^6.7.2",
|
||||
"@fortawesome/react-fontawesome": "^0.2.2",
|
||||
"next": "15.3.2",
|
||||
"next-auth": "^5.0.0-beta.25",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0"
|
||||
},
|
||||
|
@ -23,6 +29,7 @@
|
|||
"eslint-config-next": "15.3.2",
|
||||
"eslint-config-prettier": "10.1.3",
|
||||
"prettier": "3.5.3",
|
||||
"prisma": "^6.7.0",
|
||||
"typescript": "5.8.3"
|
||||
},
|
||||
"packageManager": "yarn@1.22.22+sha1.ac34549e6aa8e7ead463a7407e1c7390f61a6610"
|
||||
|
|
15
prisma/schema.prisma
Normal file
15
prisma/schema.prisma
Normal file
|
@ -0,0 +1,15 @@
|
|||
// This is your Prisma schema file,
|
||||
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
||||
|
||||
// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
|
||||
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init
|
||||
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
output = "../generated/prisma"
|
||||
}
|
||||
|
||||
datasource db {
|
||||
provider = "postgresql"
|
||||
url = env("DATABASE_URL")
|
||||
}
|
3
src/app/api/auth/[...nextauth]/route.ts
Normal file
3
src/app/api/auth/[...nextauth]/route.ts
Normal file
|
@ -0,0 +1,3 @@
|
|||
import { handlers } from '@/auth';
|
||||
|
||||
export const { GET, POST } = handlers;
|
|
@ -1,12 +1,48 @@
|
|||
:root {
|
||||
--background: #ffffff;
|
||||
--foreground: #171717;
|
||||
--foreground: #3a3a3a;
|
||||
|
||||
--neutral: #808080;
|
||||
|
||||
--primary-50: rgba(59, 130, 246, 0.5);
|
||||
--primary-75: rgba(59, 130, 246, 0.75);
|
||||
--primary-100: rgba(59, 130, 246, 1);
|
||||
|
||||
--warning-50: rgba(245, 158, 11, 0.5);
|
||||
--warning-75: rgba(245, 158, 11, 0.75);
|
||||
--warning-100: rgba(245, 158, 11, 1);
|
||||
|
||||
--success-50: rgba(22, 163, 74, 0.5);
|
||||
--success-75: rgba(22, 163, 74, 0.75);
|
||||
--success-100: rgba(22, 163, 74, 1);
|
||||
|
||||
--danger-50: rgba(220, 38, 38, 0.5);
|
||||
--danger-75: rgba(220, 38, 38, 0.75);
|
||||
--danger-100: rgba(220, 38, 38, 1);
|
||||
|
||||
--button-text-size: 18px;
|
||||
|
||||
--neutral-50: rgb(204, 204, 204, 0.5);
|
||||
--neutral-75: rgb(204, 204, 204, 0.75);
|
||||
--neutral-100: rgb(204, 204, 204, 1);
|
||||
|
||||
--textbox-50: rgb(204, 204, 204, 0.5);
|
||||
--textbox-75: rgb(204, 204, 204, 0.75);
|
||||
--textbox-100: rgb(204, 204, 204, 1);
|
||||
|
||||
--base-1: #f3f3f3;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--background: #0a0a0a;
|
||||
--foreground: #ededed;
|
||||
--foreground: #e5e7eb;
|
||||
|
||||
--textbox-50: rgb(75, 85, 99, 0.5);
|
||||
--textbox-75: rgb(75, 85, 99, 0.75);
|
||||
--textbox-100: rgb(75, 85, 99, 1);
|
||||
|
||||
--base-1: #111111;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
10
src/app/home/page.tsx
Normal file
10
src/app/home/page.tsx
Normal file
|
@ -0,0 +1,10 @@
|
|||
import { Logout } from '@/components/user/sso-logout-button';
|
||||
|
||||
export default function Home() {
|
||||
return (
|
||||
<div>
|
||||
<h1>Home</h1>
|
||||
<Logout />
|
||||
</div>
|
||||
);
|
||||
}
|
30
src/app/login/login.module.css
Normal file
30
src/app/login/login.module.css
Normal file
|
@ -0,0 +1,30 @@
|
|||
body:has(.loginContainer) {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100svh;
|
||||
}
|
||||
|
||||
.loginContainer {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 1.5rem;
|
||||
padding: 2rem;
|
||||
width: 300px;
|
||||
|
||||
background-color: var(--base-1);
|
||||
border-radius: 1rem;
|
||||
border: 2px solid var(--foreground);
|
||||
}
|
||||
|
||||
.loginContainer h1 {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.loginContainer form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1rem;
|
||||
}
|
30
src/app/login/page.tsx
Normal file
30
src/app/login/page.tsx
Normal file
|
@ -0,0 +1,30 @@
|
|||
import { auth } from '@/auth';
|
||||
import SSOLogin from '@/components/user/sso-login-button';
|
||||
import LoginForm from '@/components/user/login-form';
|
||||
import { redirect } from 'next/navigation';
|
||||
|
||||
import style from './login.module.css';
|
||||
|
||||
import '@/app/globals.css';
|
||||
|
||||
export default async function LoginPage() {
|
||||
const session = await auth();
|
||||
|
||||
if (session?.user) {
|
||||
redirect('/home');
|
||||
}
|
||||
|
||||
return (
|
||||
<div className={style.loginContainer}>
|
||||
<h1>Login</h1>
|
||||
|
||||
<LoginForm></LoginForm>
|
||||
|
||||
<hr style={{ width: 230 }} />
|
||||
|
||||
{process.env.AUTH_AUTHENTIK_ISSUER && (
|
||||
<SSOLogin provider='authentik' providerDisplayName='SSO' />
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
13
src/auth.ts
Normal file
13
src/auth.ts
Normal file
|
@ -0,0 +1,13 @@
|
|||
import NextAuth from 'next-auth';
|
||||
import Authentik from 'next-auth/providers/authentik';
|
||||
|
||||
export const { handlers, signIn, signOut, auth } = NextAuth({
|
||||
providers: [process.env.AUTH_AUTHENTIK_ISSUER ? Authentik : null].filter(
|
||||
(x) => x !== null,
|
||||
),
|
||||
callbacks: {
|
||||
authorized: async ({ auth }) => {
|
||||
return !!auth;
|
||||
},
|
||||
},
|
||||
});
|
60
src/components/button.module.css
Normal file
60
src/components/button.module.css
Normal file
|
@ -0,0 +1,60 @@
|
|||
.button {
|
||||
background-color: var(--color-50);
|
||||
border-radius: 16px;
|
||||
padding: 10px 20px;
|
||||
outline: none;
|
||||
border: 2px solid var(--color-100);
|
||||
transition: background-color 0.3s ease;
|
||||
height: 50px;
|
||||
}
|
||||
|
||||
.button:hover {
|
||||
background-color: var(--color-75);
|
||||
}
|
||||
|
||||
.button:active {
|
||||
background-color: var(--color-100);
|
||||
}
|
||||
|
||||
.button span {
|
||||
color: var(--foreground);
|
||||
font-size: var(--button-text-size);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.icon {
|
||||
display: grid;
|
||||
grid-template-columns: 25px 1fr;
|
||||
gap: 10px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.style_primary {
|
||||
--color-50: var(--primary-50);
|
||||
--color-75: var(--primary-75);
|
||||
--color-100: var(--primary-100);
|
||||
}
|
||||
|
||||
.style_warning {
|
||||
--color-50: var(--warning-50);
|
||||
--color-75: var(--warning-75);
|
||||
--color-100: var(--warning-100);
|
||||
}
|
||||
|
||||
.style_success {
|
||||
--color-50: var(--success-50);
|
||||
--color-75: var(--success-75);
|
||||
--color-100: var(--success-100);
|
||||
}
|
||||
|
||||
.style_danger {
|
||||
--color-50: var(--danger-50);
|
||||
--color-75: var(--danger-75);
|
||||
--color-100: var(--danger-100);
|
||||
}
|
||||
|
||||
.style_neutral {
|
||||
--color-50: var(--neutral-50);
|
||||
--color-75: var(--neutral-75);
|
||||
--color-100: var(--neutral-100);
|
||||
}
|
47
src/components/button.tsx
Normal file
47
src/components/button.tsx
Normal file
|
@ -0,0 +1,47 @@
|
|||
import style from './button.module.css';
|
||||
|
||||
import { IconProp } from '@fortawesome/fontawesome-svg-core';
|
||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
||||
|
||||
export default function Button({
|
||||
type,
|
||||
children,
|
||||
mode = 'primary',
|
||||
icon,
|
||||
width,
|
||||
}: {
|
||||
type?: 'button' | 'submit' | 'reset';
|
||||
children?: React.ReactNode;
|
||||
mode?: 'primary' | 'warning' | 'success' | 'danger' | 'neutral';
|
||||
icon?: IconProp;
|
||||
width?: number;
|
||||
}) {
|
||||
if (!icon) {
|
||||
return (
|
||||
<button
|
||||
className={style.button + ' ' + style['style_' + mode]}
|
||||
type={type}
|
||||
style={{
|
||||
width: width ? `${width}px` : '100%',
|
||||
}}
|
||||
>
|
||||
<span>{children}</span>
|
||||
</button>
|
||||
);
|
||||
} else {
|
||||
return (
|
||||
<button
|
||||
className={
|
||||
style.button + ' ' + style['style_' + mode] + ' ' + style['icon']
|
||||
}
|
||||
type={type}
|
||||
style={{
|
||||
width: width ? `${width}px` : '100%',
|
||||
}}
|
||||
>
|
||||
<FontAwesomeIcon icon={icon} height={25} />
|
||||
<span>{children}</span>
|
||||
</button>
|
||||
);
|
||||
}
|
||||
}
|
37
src/components/labeled-input.module.css
Normal file
37
src/components/labeled-input.module.css
Normal file
|
@ -0,0 +1,37 @@
|
|||
.input,
|
||||
.input * {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.input {
|
||||
position: relative;
|
||||
overflow: visible;
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
.input input {
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
border: 1px solid var(--textbox-75);
|
||||
border-radius: 16px;
|
||||
padding: 10px 20px;
|
||||
background-color: var(--textbox-50);
|
||||
color: var(--foreground);
|
||||
font-size: 16px;
|
||||
transition:
|
||||
background-color 0.2s ease,
|
||||
border-color 0.2s ease,
|
||||
box-shadow 0.2s ease;
|
||||
}
|
||||
|
||||
.input input:hover {
|
||||
background-color: var(--textbox-75);
|
||||
border-color: var(--textbox-100);
|
||||
}
|
||||
|
||||
.input input:focus {
|
||||
outline: none;
|
||||
background-color: var(--textbox-100);
|
||||
border-color: var(--primary-100);
|
||||
box-shadow: 0 0 0 2px var(--primary-50);
|
||||
}
|
50
src/components/labeled-input.tsx
Normal file
50
src/components/labeled-input.tsx
Normal file
|
@ -0,0 +1,50 @@
|
|||
import style from './labeled-input.module.css';
|
||||
|
||||
export default function LabeledInput({
|
||||
type,
|
||||
width,
|
||||
label,
|
||||
placeholder,
|
||||
value,
|
||||
}: {
|
||||
type: 'text' | 'email' | 'password';
|
||||
width?: number;
|
||||
label?: string;
|
||||
placeholder?: string;
|
||||
value?: string;
|
||||
}) {
|
||||
const randomId = Math.random().toString(36).substring(2, 15);
|
||||
|
||||
if (!label) {
|
||||
return (
|
||||
<div className={style.input}>
|
||||
<input
|
||||
type={type}
|
||||
placeholder={placeholder}
|
||||
defaultValue={value}
|
||||
style={{
|
||||
width: width ? `${width}px` : '100%',
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
} else {
|
||||
return (
|
||||
<div className={style.input}>
|
||||
<label htmlFor={randomId} className={style['label']}>
|
||||
{label}
|
||||
</label>
|
||||
|
||||
<input
|
||||
id={randomId}
|
||||
type={type}
|
||||
placeholder={placeholder}
|
||||
defaultValue={value}
|
||||
style={{
|
||||
width: width ? `${width}px` : '100%',
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
24
src/components/user/login-form.tsx
Normal file
24
src/components/user/login-form.tsx
Normal file
|
@ -0,0 +1,24 @@
|
|||
import LabeledInput from '@/components/labeled-input';
|
||||
import Button from '../button';
|
||||
|
||||
export default function LoginForm() {
|
||||
return (
|
||||
<div>
|
||||
<form>
|
||||
<LabeledInput
|
||||
type='email'
|
||||
label='E-Mail'
|
||||
placeholder='Enter your E-Mail'
|
||||
/>
|
||||
<LabeledInput
|
||||
type='password'
|
||||
label='Password'
|
||||
placeholder='Enter your Password'
|
||||
/>
|
||||
<Button type='submit' mode='neutral' width={250}>
|
||||
Login
|
||||
</Button>
|
||||
</form>
|
||||
</div>
|
||||
);
|
||||
}
|
24
src/components/user/sso-login-button.tsx
Normal file
24
src/components/user/sso-login-button.tsx
Normal file
|
@ -0,0 +1,24 @@
|
|||
import { signIn } from '@/auth';
|
||||
import Button from '../button';
|
||||
import { faOpenid } from '@fortawesome/free-brands-svg-icons';
|
||||
|
||||
export default function SSOLogin({
|
||||
provider,
|
||||
providerDisplayName,
|
||||
}: {
|
||||
provider: string;
|
||||
providerDisplayName: string;
|
||||
}) {
|
||||
return (
|
||||
<form
|
||||
action={async () => {
|
||||
'use server';
|
||||
await signIn(provider);
|
||||
}}
|
||||
>
|
||||
<Button type='submit' mode='warning' icon={faOpenid} width={250}>
|
||||
Login with {providerDisplayName}
|
||||
</Button>
|
||||
</form>
|
||||
);
|
||||
}
|
18
src/components/user/sso-logout-button.tsx
Normal file
18
src/components/user/sso-logout-button.tsx
Normal file
|
@ -0,0 +1,18 @@
|
|||
import { signOut } from '@/auth';
|
||||
import Button from '../button';
|
||||
import { faDoorOpen } from '@fortawesome/free-solid-svg-icons';
|
||||
|
||||
export function Logout() {
|
||||
return (
|
||||
<form
|
||||
action={async () => {
|
||||
'use server';
|
||||
await signOut({ redirectTo: '/login' });
|
||||
}}
|
||||
>
|
||||
<Button type='submit' mode='primary' icon={faDoorOpen}>
|
||||
Sign Out
|
||||
</Button>
|
||||
</form>
|
||||
);
|
||||
}
|
16
src/middleware.ts
Normal file
16
src/middleware.ts
Normal file
|
@ -0,0 +1,16 @@
|
|||
import { auth } from '@/auth';
|
||||
|
||||
export default auth((req) => {
|
||||
if (
|
||||
!req.auth &&
|
||||
req.nextUrl.pathname !== '/login' &&
|
||||
process.env.MEETUP_SKIP_LOGIN !== 'true'
|
||||
) {
|
||||
const newUrl = new URL('/login', req.nextUrl.origin);
|
||||
return Response.redirect(newUrl);
|
||||
}
|
||||
});
|
||||
|
||||
export const config = {
|
||||
matcher: ['/((?!api|_next/static|_next/image|favicon.ico).*)'],
|
||||
};
|
324
yarn.lock
324
yarn.lock
|
@ -2,6 +2,19 @@
|
|||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@auth/core@0.37.2":
|
||||
version "0.37.2"
|
||||
resolved "https://registry.yarnpkg.com/@auth/core/-/core-0.37.2.tgz#0db8a94a076846bd88eb7f9273618513e2285cb2"
|
||||
integrity sha512-kUvzyvkcd6h1vpeMAojK2y7+PAV5H+0Cc9+ZlKYDFhDY31AlvsB+GW5vNO4qE3Y07KeQgvNO9U0QUx/fN62kBw==
|
||||
dependencies:
|
||||
"@panva/hkdf" "^1.2.1"
|
||||
"@types/cookie" "0.6.0"
|
||||
cookie "0.7.1"
|
||||
jose "^5.9.3"
|
||||
oauth4webapi "^3.0.0"
|
||||
preact "10.11.3"
|
||||
preact-render-to-string "5.2.3"
|
||||
|
||||
"@emnapi/core@^1.4.0":
|
||||
version "1.4.3"
|
||||
resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.4.3.tgz#9ac52d2d5aea958f67e52c40a065f51de59b77d6"
|
||||
|
@ -24,6 +37,131 @@
|
|||
dependencies:
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@esbuild/aix-ppc64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz#830d6476cbbca0c005136af07303646b419f1162"
|
||||
integrity sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==
|
||||
|
||||
"@esbuild/android-arm64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz#d11d4fc299224e729e2190cacadbcc00e7a9fd67"
|
||||
integrity sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==
|
||||
|
||||
"@esbuild/android-arm@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.4.tgz#5660bd25080553dd2a28438f2a401a29959bd9b1"
|
||||
integrity sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==
|
||||
|
||||
"@esbuild/android-x64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.4.tgz#18ddde705bf984e8cd9efec54e199ac18bc7bee1"
|
||||
integrity sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==
|
||||
|
||||
"@esbuild/darwin-arm64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz#b0b7fb55db8fc6f5de5a0207ae986eb9c4766e67"
|
||||
integrity sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==
|
||||
|
||||
"@esbuild/darwin-x64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz#e6813fdeba0bba356cb350a4b80543fbe66bf26f"
|
||||
integrity sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==
|
||||
|
||||
"@esbuild/freebsd-arm64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz#dc11a73d3ccdc308567b908b43c6698e850759be"
|
||||
integrity sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==
|
||||
|
||||
"@esbuild/freebsd-x64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz#91da08db8bd1bff5f31924c57a81dab26e93a143"
|
||||
integrity sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==
|
||||
|
||||
"@esbuild/linux-arm64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz#efc15e45c945a082708f9a9f73bfa8d4db49728a"
|
||||
integrity sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==
|
||||
|
||||
"@esbuild/linux-arm@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz#9b93c3e54ac49a2ede6f906e705d5d906f6db9e8"
|
||||
integrity sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==
|
||||
|
||||
"@esbuild/linux-ia32@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz#be8ef2c3e1d99fca2d25c416b297d00360623596"
|
||||
integrity sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==
|
||||
|
||||
"@esbuild/linux-loong64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz#b0840a2707c3fc02eec288d3f9defa3827cd7a87"
|
||||
integrity sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==
|
||||
|
||||
"@esbuild/linux-mips64el@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz#2a198e5a458c9f0e75881a4e63d26ba0cf9df39f"
|
||||
integrity sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==
|
||||
|
||||
"@esbuild/linux-ppc64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz#64f4ae0b923d7dd72fb860b9b22edb42007cf8f5"
|
||||
integrity sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==
|
||||
|
||||
"@esbuild/linux-riscv64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz#fb2844b11fdddd39e29d291c7cf80f99b0d5158d"
|
||||
integrity sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==
|
||||
|
||||
"@esbuild/linux-s390x@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz#1466876e0aa3560c7673e63fdebc8278707bc750"
|
||||
integrity sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==
|
||||
|
||||
"@esbuild/linux-x64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz#c10fde899455db7cba5f11b3bccfa0e41bf4d0cd"
|
||||
integrity sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==
|
||||
|
||||
"@esbuild/netbsd-arm64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz#02e483fbcbe3f18f0b02612a941b77be76c111a4"
|
||||
integrity sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==
|
||||
|
||||
"@esbuild/netbsd-x64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz#ec401fb0b1ed0ac01d978564c5fc8634ed1dc2ed"
|
||||
integrity sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==
|
||||
|
||||
"@esbuild/openbsd-arm64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz#f272c2f41cfea1d91b93d487a51b5c5ca7a8c8c4"
|
||||
integrity sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==
|
||||
|
||||
"@esbuild/openbsd-x64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz#2e25950bc10fa9db1e5c868e3d50c44f7c150fd7"
|
||||
integrity sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==
|
||||
|
||||
"@esbuild/sunos-x64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz#cd596fa65a67b3b7adc5ecd52d9f5733832e1abd"
|
||||
integrity sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==
|
||||
|
||||
"@esbuild/win32-arm64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz#b4dbcb57b21eeaf8331e424c3999b89d8951dc88"
|
||||
integrity sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==
|
||||
|
||||
"@esbuild/win32-ia32@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz#410842e5d66d4ece1757634e297a87635eb82f7a"
|
||||
integrity sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==
|
||||
|
||||
"@esbuild/win32-x64@0.25.4":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz#0b17ec8a70b2385827d52314c1253160a0b9bacc"
|
||||
integrity sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==
|
||||
|
||||
"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
|
||||
version "4.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.6.0.tgz#bfe67b3d334a8579a35e48fe240dc0638d1bcd91"
|
||||
|
@ -90,6 +228,46 @@
|
|||
"@eslint/core" "^0.13.0"
|
||||
levn "^0.4.1"
|
||||
|
||||
"@fortawesome/fontawesome-common-types@6.7.2":
|
||||
version "6.7.2"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.2.tgz#7123d74b0c1e726794aed1184795dbce12186470"
|
||||
integrity sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg==
|
||||
|
||||
"@fortawesome/fontawesome-svg-core@^6.7.2":
|
||||
version "6.7.2"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.2.tgz#0ac6013724d5cc327c1eb81335b91300a4fce2f2"
|
||||
integrity sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA==
|
||||
dependencies:
|
||||
"@fortawesome/fontawesome-common-types" "6.7.2"
|
||||
|
||||
"@fortawesome/free-brands-svg-icons@^6.7.2":
|
||||
version "6.7.2"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.7.2.tgz#4ebee8098f31da5446dda81edc344025eb59b27e"
|
||||
integrity sha512-zu0evbcRTgjKfrr77/2XX+bU+kuGfjm0LbajJHVIgBWNIDzrhpRxiCPNT8DW5AdmSsq7Mcf9D1bH0aSeSUSM+Q==
|
||||
dependencies:
|
||||
"@fortawesome/fontawesome-common-types" "6.7.2"
|
||||
|
||||
"@fortawesome/free-regular-svg-icons@^6.7.2":
|
||||
version "6.7.2"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.7.2.tgz#f1651e55e6651a15589b0569516208f9c65f96db"
|
||||
integrity sha512-7Z/ur0gvCMW8G93dXIQOkQqHo2M5HLhYrRVC0//fakJXxcF1VmMPsxnG6Ee8qEylA8b8Q3peQXWMNZ62lYF28g==
|
||||
dependencies:
|
||||
"@fortawesome/fontawesome-common-types" "6.7.2"
|
||||
|
||||
"@fortawesome/free-solid-svg-icons@^6.7.2":
|
||||
version "6.7.2"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.2.tgz#fe25883b5eb8464a82918599950d283c465b57f6"
|
||||
integrity sha512-GsBrnOzU8uj0LECDfD5zomZJIjrPhIlWU82AHwa2s40FKH+kcxQaBvBo3Z4TxyZHIyX8XTDxsyA33/Vx9eFuQA==
|
||||
dependencies:
|
||||
"@fortawesome/fontawesome-common-types" "6.7.2"
|
||||
|
||||
"@fortawesome/react-fontawesome@^0.2.2":
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.2.tgz#68b058f9132b46c8599875f6a636dad231af78d4"
|
||||
integrity sha512-EnkrprPNqI6SXJl//m29hpaNzOp1bruISWaOiRtkMi/xSvHJlzc2j2JAYS7egxt/EbjSNV/k6Xy0AQI6vB2+1g==
|
||||
dependencies:
|
||||
prop-types "^15.8.1"
|
||||
|
||||
"@humanfs/core@^0.19.1":
|
||||
version "0.19.1"
|
||||
resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77"
|
||||
|
@ -339,6 +517,55 @@
|
|||
resolved "https://registry.yarnpkg.com/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz#3dc35ba0f1e66b403c00b39344f870298ebb1c8e"
|
||||
integrity sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==
|
||||
|
||||
"@panva/hkdf@^1.2.1":
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@panva/hkdf/-/hkdf-1.2.1.tgz#cb0d111ef700136f4580349ff0226bf25c853f23"
|
||||
integrity sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==
|
||||
|
||||
"@prisma/config@6.7.0":
|
||||
version "6.7.0"
|
||||
resolved "https://registry.yarnpkg.com/@prisma/config/-/config-6.7.0.tgz#ae80b889ba1facc308ecca2009aa6dfbe92c28db"
|
||||
integrity sha512-di8QDdvSz7DLUi3OOcCHSwxRNeW7jtGRUD2+Z3SdNE3A+pPiNT8WgUJoUyOwJmUr5t+JA2W15P78C/N+8RXrOA==
|
||||
dependencies:
|
||||
esbuild ">=0.12 <1"
|
||||
esbuild-register "3.6.0"
|
||||
|
||||
"@prisma/debug@6.7.0":
|
||||
version "6.7.0"
|
||||
resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-6.7.0.tgz#a955174e4f481b0ca5d7c0fd458ef848432afd59"
|
||||
integrity sha512-RabHn9emKoYFsv99RLxvfG2GHzWk2ZI1BuVzqYtmMSIcuGboHY5uFt3Q3boOREM9de6z5s3bQoyKeWnq8Fz22w==
|
||||
|
||||
"@prisma/engines-version@6.7.0-36.3cff47a7f5d65c3ea74883f1d736e41d68ce91ed":
|
||||
version "6.7.0-36.3cff47a7f5d65c3ea74883f1d736e41d68ce91ed"
|
||||
resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-6.7.0-36.3cff47a7f5d65c3ea74883f1d736e41d68ce91ed.tgz#4ec7c8ee187924a910ec244e3790412d1069d723"
|
||||
integrity sha512-EvpOFEWf1KkJpDsBCrih0kg3HdHuaCnXmMn7XFPObpFTzagK1N0Q0FMnYPsEhvARfANP5Ok11QyoTIRA2hgJTA==
|
||||
|
||||
"@prisma/engines@6.7.0":
|
||||
version "6.7.0"
|
||||
resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-6.7.0.tgz#291835aa5df84e9c33a1cfe1566e639909d46627"
|
||||
integrity sha512-3wDMesnOxPrOsq++e5oKV9LmIiEazFTRFZrlULDQ8fxdub5w4NgRBoxtWbvXmj2nJVCnzuz6eFix3OhIqsZ1jw==
|
||||
dependencies:
|
||||
"@prisma/debug" "6.7.0"
|
||||
"@prisma/engines-version" "6.7.0-36.3cff47a7f5d65c3ea74883f1d736e41d68ce91ed"
|
||||
"@prisma/fetch-engine" "6.7.0"
|
||||
"@prisma/get-platform" "6.7.0"
|
||||
|
||||
"@prisma/fetch-engine@6.7.0":
|
||||
version "6.7.0"
|
||||
resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-6.7.0.tgz#c8bc042ee6438d62d5bf77aafa6c56cf0002c5d8"
|
||||
integrity sha512-zLlAGnrkmioPKJR4Yf7NfW3hftcvqeNNEHleMZK9yX7RZSkhmxacAYyfGsCcqRt47jiZ7RKdgE0Wh2fWnm7WsQ==
|
||||
dependencies:
|
||||
"@prisma/debug" "6.7.0"
|
||||
"@prisma/engines-version" "6.7.0-36.3cff47a7f5d65c3ea74883f1d736e41d68ce91ed"
|
||||
"@prisma/get-platform" "6.7.0"
|
||||
|
||||
"@prisma/get-platform@6.7.0":
|
||||
version "6.7.0"
|
||||
resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-6.7.0.tgz#967f21f8ad966b941dcb47b153b84958655390d1"
|
||||
integrity sha512-i9IH5lO4fQwnMLvQLYNdgVh9TK3PuWBfQd7QLk/YurnAIg+VeADcZDbmhAi4XBBDD+hDif9hrKyASu0hbjwabw==
|
||||
dependencies:
|
||||
"@prisma/debug" "6.7.0"
|
||||
|
||||
"@rtsao/scc@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8"
|
||||
|
@ -368,6 +595,11 @@
|
|||
dependencies:
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@types/cookie@0.6.0":
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.6.0.tgz#eac397f28bf1d6ae0ae081363eca2f425bedf0d5"
|
||||
integrity sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==
|
||||
|
||||
"@types/estree@^1.0.6":
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.7.tgz#4158d3105276773d5b7695cd4834b1722e4f37a8"
|
||||
|
@ -879,6 +1111,11 @@ cookie-signature@^1.2.1:
|
|||
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.2.2.tgz#57c7fc3cc293acab9fec54d73e15690ebe4a1793"
|
||||
integrity sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==
|
||||
|
||||
cookie@0.7.1:
|
||||
version "0.7.1"
|
||||
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9"
|
||||
integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==
|
||||
|
||||
cookie@^0.7.1:
|
||||
version "0.7.2"
|
||||
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7"
|
||||
|
@ -1138,6 +1375,44 @@ es-to-primitive@^1.3.0:
|
|||
is-date-object "^1.0.5"
|
||||
is-symbol "^1.0.4"
|
||||
|
||||
esbuild-register@3.6.0:
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-register/-/esbuild-register-3.6.0.tgz#cf270cfa677baebbc0010ac024b823cbf723a36d"
|
||||
integrity sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==
|
||||
dependencies:
|
||||
debug "^4.3.4"
|
||||
|
||||
"esbuild@>=0.12 <1":
|
||||
version "0.25.4"
|
||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.4.tgz#bb9a16334d4ef2c33c7301a924b8b863351a0854"
|
||||
integrity sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==
|
||||
optionalDependencies:
|
||||
"@esbuild/aix-ppc64" "0.25.4"
|
||||
"@esbuild/android-arm" "0.25.4"
|
||||
"@esbuild/android-arm64" "0.25.4"
|
||||
"@esbuild/android-x64" "0.25.4"
|
||||
"@esbuild/darwin-arm64" "0.25.4"
|
||||
"@esbuild/darwin-x64" "0.25.4"
|
||||
"@esbuild/freebsd-arm64" "0.25.4"
|
||||
"@esbuild/freebsd-x64" "0.25.4"
|
||||
"@esbuild/linux-arm" "0.25.4"
|
||||
"@esbuild/linux-arm64" "0.25.4"
|
||||
"@esbuild/linux-ia32" "0.25.4"
|
||||
"@esbuild/linux-loong64" "0.25.4"
|
||||
"@esbuild/linux-mips64el" "0.25.4"
|
||||
"@esbuild/linux-ppc64" "0.25.4"
|
||||
"@esbuild/linux-riscv64" "0.25.4"
|
||||
"@esbuild/linux-s390x" "0.25.4"
|
||||
"@esbuild/linux-x64" "0.25.4"
|
||||
"@esbuild/netbsd-arm64" "0.25.4"
|
||||
"@esbuild/netbsd-x64" "0.25.4"
|
||||
"@esbuild/openbsd-arm64" "0.25.4"
|
||||
"@esbuild/openbsd-x64" "0.25.4"
|
||||
"@esbuild/sunos-x64" "0.25.4"
|
||||
"@esbuild/win32-arm64" "0.25.4"
|
||||
"@esbuild/win32-ia32" "0.25.4"
|
||||
"@esbuild/win32-x64" "0.25.4"
|
||||
|
||||
escape-html@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
|
||||
|
@ -1525,6 +1800,11 @@ for-each@^0.3.3, for-each@^0.3.5:
|
|||
dependencies:
|
||||
is-callable "^1.2.7"
|
||||
|
||||
fsevents@2.3.3:
|
||||
version "2.3.3"
|
||||
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
|
||||
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
|
||||
|
||||
forwarded@0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
|
||||
|
@ -1948,6 +2228,11 @@ iterator.prototype@^1.1.4:
|
|||
has-symbols "^1.1.0"
|
||||
set-function-name "^2.0.2"
|
||||
|
||||
jose@^5.9.3:
|
||||
version "5.10.0"
|
||||
resolved "https://registry.yarnpkg.com/jose/-/jose-5.10.0.tgz#c37346a099d6467c401351a9a0c2161e0f52c4be"
|
||||
integrity sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==
|
||||
|
||||
"js-tokens@^3.0.0 || ^4.0.0":
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
|
||||
|
@ -2117,6 +2402,13 @@ negotiator@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-1.0.0.tgz#b6c91bb47172d69f93cfd7c357bbb529019b5f6a"
|
||||
integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==
|
||||
|
||||
next-auth@^5.0.0-beta.25:
|
||||
version "5.0.0-beta.25"
|
||||
resolved "https://registry.yarnpkg.com/next-auth/-/next-auth-5.0.0-beta.25.tgz#3a9f9734e1d8fa5ced545360f1afc24862cb92d5"
|
||||
integrity sha512-2dJJw1sHQl2qxCrRk+KTQbeH+izFbGFPuJj5eGgBZFYyiYYtvlrBeUw1E/OJJxTRjuxbSYGnCTkUIRsIIW0bog==
|
||||
dependencies:
|
||||
"@auth/core" "0.37.2"
|
||||
|
||||
next@15.3.2:
|
||||
version "15.3.2"
|
||||
resolved "https://registry.yarnpkg.com/next/-/next-15.3.2.tgz#97510629e38a058dd154782a5c2ec9c9ab94d0d8"
|
||||
|
@ -2140,6 +2432,11 @@ next@15.3.2:
|
|||
"@next/swc-win32-x64-msvc" "15.3.2"
|
||||
sharp "^0.34.1"
|
||||
|
||||
oauth4webapi@^3.0.0:
|
||||
version "3.5.0"
|
||||
resolved "https://registry.yarnpkg.com/oauth4webapi/-/oauth4webapi-3.5.0.tgz#9be1227e2a6af7761dd0d1a811ce33050077974b"
|
||||
integrity sha512-DF3mLWNuxPkxJkHmWxbSFz4aE5CjWOsm465VBfBdWzmzX4Mg3vF8icxK+iKqfdWrIumBJ2TaoNQWx+SQc2bsPQ==
|
||||
|
||||
object-assign@^4, object-assign@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
||||
|
@ -2321,6 +2618,18 @@ postcss@8.4.31:
|
|||
picocolors "^1.0.0"
|
||||
source-map-js "^1.0.2"
|
||||
|
||||
preact-render-to-string@5.2.3:
|
||||
version "5.2.3"
|
||||
resolved "https://registry.yarnpkg.com/preact-render-to-string/-/preact-render-to-string-5.2.3.tgz#23d17376182af720b1060d5a4099843c7fe92fe4"
|
||||
integrity sha512-aPDxUn5o3GhWdtJtW0svRC2SS/l8D9MAgo2+AWml+BhDImb27ALf04Q2d+AHqUUOc6RdSXFIBVa2gxzgMKgtZA==
|
||||
dependencies:
|
||||
pretty-format "^3.8.0"
|
||||
|
||||
preact@10.11.3:
|
||||
version "10.11.3"
|
||||
resolved "https://registry.yarnpkg.com/preact/-/preact-10.11.3.tgz#8a7e4ba19d3992c488b0785afcc0f8aa13c78d19"
|
||||
integrity sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==
|
||||
|
||||
prelude-ls@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
|
||||
|
@ -2331,6 +2640,21 @@ prettier@3.5.3:
|
|||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.3.tgz#4fc2ce0d657e7a02e602549f053b239cb7dfe1b5"
|
||||
integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==
|
||||
|
||||
pretty-format@^3.8.0:
|
||||
version "3.8.0"
|
||||
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-3.8.0.tgz#bfbed56d5e9a776645f4b1ff7aa1a3ac4fa3c385"
|
||||
integrity sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==
|
||||
|
||||
prisma@^6.7.0:
|
||||
version "6.7.0"
|
||||
resolved "https://registry.yarnpkg.com/prisma/-/prisma-6.7.0.tgz#7890e352bde11f6ec3018802d3fc1bcbe0027bd2"
|
||||
integrity sha512-vArg+4UqnQ13CVhc2WUosemwh6hr6cr6FY2uzDvCIFwH8pu8BXVv38PktoMLVjtX7sbYThxbnZF5YiR8sN2clw==
|
||||
dependencies:
|
||||
"@prisma/config" "6.7.0"
|
||||
"@prisma/engines" "6.7.0"
|
||||
optionalDependencies:
|
||||
fsevents "2.3.3"
|
||||
|
||||
prop-types@^15.8.1:
|
||||
version "15.8.1"
|
||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue