database wf
This commit is contained in:
parent
0158c6e696
commit
5923e811b0
@ -1,6 +1,16 @@
|
|||||||
import NextAuth, { NextAuthOptions } from "next-auth";
|
import NextAuth, { NextAuthOptions } from "next-auth";
|
||||||
import KeycloakProvider from "next-auth/providers/keycloak";
|
import KeycloakProvider from "next-auth/providers/keycloak";
|
||||||
|
|
||||||
|
interface KeycloakProfile {
|
||||||
|
sub: string;
|
||||||
|
email?: string;
|
||||||
|
name?: string;
|
||||||
|
roles?: string[];
|
||||||
|
preferred_username?: string;
|
||||||
|
given_name?: string;
|
||||||
|
family_name?: string;
|
||||||
|
}
|
||||||
|
|
||||||
declare module "next-auth" {
|
declare module "next-auth" {
|
||||||
interface Session {
|
interface Session {
|
||||||
user: {
|
user: {
|
||||||
@ -17,6 +27,7 @@ declare module "next-auth" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
interface JWT {
|
interface JWT {
|
||||||
|
sub?: string;
|
||||||
accessToken: string;
|
accessToken: string;
|
||||||
refreshToken: string;
|
refreshToken: string;
|
||||||
accessTokenExpires: number;
|
accessTokenExpires: number;
|
||||||
@ -24,6 +35,7 @@ declare module "next-auth" {
|
|||||||
username: string;
|
username: string;
|
||||||
first_name: string;
|
first_name: string;
|
||||||
last_name: string;
|
last_name: string;
|
||||||
|
error?: string;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,6 +47,40 @@ function getRequiredEnvVar(name: string): string {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function refreshAccessToken(token: JWT) {
|
||||||
|
try {
|
||||||
|
const response = await fetch(`${process.env.KEYCLOAK_ISSUER}/protocol/openid-connect/token`, {
|
||||||
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
||||||
|
body: new URLSearchParams({
|
||||||
|
client_id: process.env.KEYCLOAK_CLIENT_ID!,
|
||||||
|
client_secret: process.env.KEYCLOAK_CLIENT_SECRET!,
|
||||||
|
grant_type: "refresh_token",
|
||||||
|
refresh_token: token.refreshToken,
|
||||||
|
}),
|
||||||
|
method: "POST",
|
||||||
|
});
|
||||||
|
|
||||||
|
const refreshedTokens = await response.json();
|
||||||
|
|
||||||
|
if (!response.ok) {
|
||||||
|
throw refreshedTokens;
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
...token,
|
||||||
|
accessToken: refreshedTokens.access_token,
|
||||||
|
refreshToken: refreshedTokens.refresh_token ?? token.refreshToken,
|
||||||
|
accessTokenExpires: Date.now() + refreshedTokens.expires_in * 1000,
|
||||||
|
};
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error refreshing access token:", error);
|
||||||
|
return {
|
||||||
|
...token,
|
||||||
|
error: "RefreshAccessTokenError",
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export const authOptions: NextAuthOptions = {
|
export const authOptions: NextAuthOptions = {
|
||||||
providers: [
|
providers: [
|
||||||
KeycloakProvider({
|
KeycloakProvider({
|
||||||
@ -61,76 +107,39 @@ export const authOptions: NextAuthOptions = {
|
|||||||
callbacks: {
|
callbacks: {
|
||||||
async jwt({ token, account, profile }) {
|
async jwt({ token, account, profile }) {
|
||||||
if (account && profile) {
|
if (account && profile) {
|
||||||
if (!account.access_token || !account.refresh_token) {
|
const keycloakProfile = profile as KeycloakProfile;
|
||||||
throw new Error('Missing required token fields from Keycloak');
|
token.accessToken = account.access_token ?? '';
|
||||||
}
|
token.refreshToken = account.refresh_token ?? '';
|
||||||
token.accessToken = account.access_token;
|
token.accessTokenExpires = account.expires_at ?? 0;
|
||||||
token.refreshToken = account.refresh_token;
|
token.sub = keycloakProfile.sub;
|
||||||
token.accessTokenExpires = account.expires_at! * 1000;
|
token.role = keycloakProfile.roles ?? [];
|
||||||
token.role = (profile as any).groups ?? [];
|
token.username = keycloakProfile.preferred_username ?? '';
|
||||||
token.username = (profile as any).preferred_username ?? profile.email?.split('@')[0] ?? '';
|
token.first_name = keycloakProfile.given_name ?? '';
|
||||||
token.first_name = (profile as any).given_name ?? '';
|
token.last_name = keycloakProfile.family_name ?? '';
|
||||||
token.last_name = (profile as any).family_name ?? '';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return previous token if not expired
|
if (Date.now() < (token.accessTokenExpires as number) * 1000) {
|
||||||
if (Date.now() < (token.accessTokenExpires as number)) {
|
|
||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
return refreshAccessToken(token);
|
||||||
const clientId = getRequiredEnvVar("KEYCLOAK_CLIENT_ID");
|
|
||||||
const clientSecret = getRequiredEnvVar("KEYCLOAK_CLIENT_SECRET");
|
|
||||||
|
|
||||||
const response = await fetch(
|
|
||||||
`${process.env.KEYCLOAK_BASE_URL}/realms/${process.env.KEYCLOAK_REALM}/protocol/openid-connect/token`,
|
|
||||||
{
|
|
||||||
method: "POST",
|
|
||||||
headers: {
|
|
||||||
"Content-Type": "application/x-www-form-urlencoded",
|
|
||||||
},
|
|
||||||
body: new URLSearchParams({
|
|
||||||
grant_type: "refresh_token",
|
|
||||||
client_id: clientId,
|
|
||||||
client_secret: clientSecret,
|
|
||||||
refresh_token: token.refreshToken as string,
|
|
||||||
}),
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
const tokens = await response.json();
|
|
||||||
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error("RefreshAccessTokenError");
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
...token,
|
|
||||||
accessToken: tokens.access_token,
|
|
||||||
refreshToken: tokens.refresh_token ?? token.refreshToken,
|
|
||||||
accessTokenExpires: Date.now() + tokens.expires_in * 1000,
|
|
||||||
};
|
|
||||||
} catch (error) {
|
|
||||||
return {
|
|
||||||
...token,
|
|
||||||
error: "RefreshAccessTokenError",
|
|
||||||
};
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
async session({ session, token }) {
|
async session({ session, token }) {
|
||||||
if (token.error) {
|
if (token.error) {
|
||||||
throw new Error("RefreshAccessTokenError");
|
throw new Error(token.error);
|
||||||
}
|
}
|
||||||
|
|
||||||
session.accessToken = token.accessToken;
|
|
||||||
session.user = {
|
session.user = {
|
||||||
...session.user,
|
id: token.sub ?? '',
|
||||||
id: token.sub as string,
|
email: token.email ?? null,
|
||||||
|
name: token.name ?? null,
|
||||||
|
image: null,
|
||||||
|
username: token.username ?? '',
|
||||||
first_name: token.first_name ?? '',
|
first_name: token.first_name ?? '',
|
||||||
last_name: token.last_name ?? '',
|
last_name: token.last_name ?? '',
|
||||||
username: token.username ?? '',
|
|
||||||
role: token.role ?? [],
|
role: token.role ?? [],
|
||||||
};
|
};
|
||||||
|
session.accessToken = token.accessToken;
|
||||||
|
|
||||||
return session;
|
return session;
|
||||||
}
|
}
|
||||||
|
|||||||
105
lib/auth.ts
Normal file
105
lib/auth.ts
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
import { NextAuthOptions, User as NextAuthUser, Account, Profile, JWT as NextAuthJWT } from 'next-auth';
|
||||||
|
import KeycloakProvider from 'next-auth/providers/keycloak';
|
||||||
|
|
||||||
|
interface User extends NextAuthUser {
|
||||||
|
id: string;
|
||||||
|
email: string;
|
||||||
|
name: string;
|
||||||
|
role: string[];
|
||||||
|
first_name: string;
|
||||||
|
last_name: string;
|
||||||
|
username: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Session {
|
||||||
|
user: User;
|
||||||
|
accessToken: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface JWT extends Omit<NextAuthJWT, 'accessToken' | 'refreshToken' | 'accessTokenExpires'> {
|
||||||
|
sub: string;
|
||||||
|
email: string | null;
|
||||||
|
name: string | null;
|
||||||
|
role: string[];
|
||||||
|
username: string;
|
||||||
|
first_name: string;
|
||||||
|
last_name: string;
|
||||||
|
accessToken: string;
|
||||||
|
refreshToken: string;
|
||||||
|
accessTokenExpires: number;
|
||||||
|
error?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface KeycloakProfile extends Profile {
|
||||||
|
sub: string;
|
||||||
|
email?: string;
|
||||||
|
name?: string;
|
||||||
|
roles?: string[];
|
||||||
|
preferred_username?: string;
|
||||||
|
given_name?: string;
|
||||||
|
family_name?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const authOptions: NextAuthOptions = {
|
||||||
|
providers: [
|
||||||
|
KeycloakProvider({
|
||||||
|
clientId: process.env.KEYCLOAK_CLIENT_ID!,
|
||||||
|
clientSecret: process.env.KEYCLOAK_CLIENT_SECRET!,
|
||||||
|
issuer: process.env.KEYCLOAK_ISSUER!,
|
||||||
|
authorization: {
|
||||||
|
params: {
|
||||||
|
scope: 'openid email profile',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
session: {
|
||||||
|
strategy: 'jwt',
|
||||||
|
maxAge: 30 * 24 * 60 * 60, // 30 days
|
||||||
|
},
|
||||||
|
callbacks: {
|
||||||
|
async jwt({ token, account, profile }) {
|
||||||
|
if (account && profile) {
|
||||||
|
const keycloakProfile = profile as KeycloakProfile;
|
||||||
|
token.accessToken = account.access_token ?? '';
|
||||||
|
token.refreshToken = account.refresh_token ?? '';
|
||||||
|
token.accessTokenExpires = account.expires_at ?? 0;
|
||||||
|
token.sub = keycloakProfile.sub;
|
||||||
|
token.role = keycloakProfile.roles ?? [];
|
||||||
|
token.username = keycloakProfile.preferred_username ?? '';
|
||||||
|
token.first_name = keycloakProfile.given_name ?? '';
|
||||||
|
token.last_name = keycloakProfile.family_name ?? '';
|
||||||
|
}
|
||||||
|
return token;
|
||||||
|
},
|
||||||
|
async session({ session, token }) {
|
||||||
|
console.log('Session callback - token:', token);
|
||||||
|
console.log('Session callback - session before:', session);
|
||||||
|
|
||||||
|
if (token.error) {
|
||||||
|
throw new Error(token.error);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only update session if token has changed
|
||||||
|
if (session.user?.id !== token.sub) {
|
||||||
|
session.user = {
|
||||||
|
id: token.sub,
|
||||||
|
email: token.email ?? '',
|
||||||
|
name: token.name ?? '',
|
||||||
|
role: token.role,
|
||||||
|
first_name: token.first_name,
|
||||||
|
last_name: token.last_name,
|
||||||
|
username: token.username,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
session.accessToken = token.accessToken;
|
||||||
|
console.log('Session callback - session after:', session);
|
||||||
|
return session;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
pages: {
|
||||||
|
signIn: '/signin',
|
||||||
|
error: '/signin',
|
||||||
|
},
|
||||||
|
};
|
||||||
805
package-lock.json
generated
805
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -57,7 +57,7 @@
|
|||||||
"input-otp": "1.4.1",
|
"input-otp": "1.4.1",
|
||||||
"lucide-react": "^0.454.0",
|
"lucide-react": "^0.454.0",
|
||||||
"mailparser": "^3.7.2",
|
"mailparser": "^3.7.2",
|
||||||
"next": "14.2.24",
|
"next": "^15.3.0",
|
||||||
"next-auth": "^4.24.11",
|
"next-auth": "^4.24.11",
|
||||||
"next-themes": "^0.4.4",
|
"next-themes": "^0.4.4",
|
||||||
"nodemailer": "^6.10.1",
|
"nodemailer": "^6.10.1",
|
||||||
|
|||||||
188
yarn.lock
188
yarn.lock
@ -110,6 +110,18 @@
|
|||||||
resolved "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.10.0.tgz"
|
resolved "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.10.0.tgz"
|
||||||
integrity sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==
|
integrity sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==
|
||||||
|
|
||||||
|
"@img/sharp-darwin-arm64@0.34.1":
|
||||||
|
version "0.34.1"
|
||||||
|
resolved "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.1.tgz"
|
||||||
|
integrity sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==
|
||||||
|
optionalDependencies:
|
||||||
|
"@img/sharp-libvips-darwin-arm64" "1.1.0"
|
||||||
|
|
||||||
|
"@img/sharp-libvips-darwin-arm64@1.1.0":
|
||||||
|
version "1.1.0"
|
||||||
|
resolved "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz"
|
||||||
|
integrity sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==
|
||||||
|
|
||||||
"@isaacs/cliui@^8.0.2":
|
"@isaacs/cliui@^8.0.2":
|
||||||
version "8.0.2"
|
version "8.0.2"
|
||||||
resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz"
|
resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz"
|
||||||
@ -154,15 +166,15 @@
|
|||||||
"@jridgewell/resolve-uri" "^3.1.0"
|
"@jridgewell/resolve-uri" "^3.1.0"
|
||||||
"@jridgewell/sourcemap-codec" "^1.4.14"
|
"@jridgewell/sourcemap-codec" "^1.4.14"
|
||||||
|
|
||||||
"@next/env@14.2.24":
|
"@next/env@15.3.0":
|
||||||
version "14.2.24"
|
version "15.3.0"
|
||||||
resolved "https://registry.npmjs.org/@next/env/-/env-14.2.24.tgz"
|
resolved "https://registry.npmjs.org/@next/env/-/env-15.3.0.tgz"
|
||||||
integrity sha512-LAm0Is2KHTNT6IT16lxT+suD0u+VVfYNQqM+EJTKuFRRuY2z+zj01kueWXPCxbMBDt0B5vONYzabHGUNbZYAhA==
|
integrity sha512-6mDmHX24nWlHOlbwUiAOmMyY7KELimmi+ed8qWcJYjqXeC+G6JzPZ3QosOAfjNwgMIzwhXBiRiCgdh8axTTdTA==
|
||||||
|
|
||||||
"@next/swc-darwin-arm64@14.2.24":
|
"@next/swc-darwin-arm64@15.3.0":
|
||||||
version "14.2.24"
|
version "15.3.0"
|
||||||
resolved "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.24.tgz"
|
resolved "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.0.tgz"
|
||||||
integrity sha512-7Tdi13aojnAZGpapVU6meVSpNzgrFwZ8joDcNS8cJVNuP3zqqrLqeory9Xec5TJZR/stsGJdfwo8KeyloT3+rQ==
|
integrity sha512-PDQcByT0ZfF2q7QR9d+PNj3wlNN4K6Q8JoHMwFyk252gWo4gKt7BF8Y2+KBgDjTFBETXZ/TkBEUY7NIIY7A/Kw==
|
||||||
|
|
||||||
"@nodelib/fs.scandir@2.1.5":
|
"@nodelib/fs.scandir@2.1.5":
|
||||||
version "2.1.5"
|
version "2.1.5"
|
||||||
@ -943,18 +955,17 @@
|
|||||||
domhandler "^5.0.3"
|
domhandler "^5.0.3"
|
||||||
selderee "^0.11.0"
|
selderee "^0.11.0"
|
||||||
|
|
||||||
"@swc/counter@^0.1.3":
|
"@swc/counter@0.1.3":
|
||||||
version "0.1.3"
|
version "0.1.3"
|
||||||
resolved "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz"
|
resolved "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz"
|
||||||
integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==
|
integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==
|
||||||
|
|
||||||
"@swc/helpers@0.5.5":
|
"@swc/helpers@0.5.15":
|
||||||
version "0.5.5"
|
version "0.5.15"
|
||||||
resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz"
|
resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz"
|
||||||
integrity sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==
|
integrity sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@swc/counter" "^0.1.3"
|
tslib "^2.8.0"
|
||||||
tslib "^2.4.0"
|
|
||||||
|
|
||||||
"@types/d3-array@^3.0.3":
|
"@types/d3-array@^3.0.3":
|
||||||
version "3.2.1"
|
version "3.2.1"
|
||||||
@ -1059,12 +1070,12 @@
|
|||||||
"@types/react" "*"
|
"@types/react" "*"
|
||||||
date-fns "^3.3.1"
|
date-fns "^3.3.1"
|
||||||
|
|
||||||
"@types/react-dom@^18":
|
"@types/react-dom@*", "@types/react-dom@^18":
|
||||||
version "18.3.5"
|
version "18.3.5"
|
||||||
resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz"
|
resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz"
|
||||||
integrity sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==
|
integrity sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==
|
||||||
|
|
||||||
"@types/react@*", "@types/react@^18":
|
"@types/react@*", "@types/react@^18", "@types/react@^18.0.0":
|
||||||
version "18.3.18"
|
version "18.3.18"
|
||||||
resolved "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz"
|
resolved "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz"
|
||||||
integrity sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==
|
integrity sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==
|
||||||
@ -1160,7 +1171,7 @@ braces@^3.0.3, braces@~3.0.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
fill-range "^7.1.1"
|
fill-range "^7.1.1"
|
||||||
|
|
||||||
browserslist@^4.23.3:
|
browserslist@^4.23.3, "browserslist@>= 4.21.0":
|
||||||
version "4.24.4"
|
version "4.24.4"
|
||||||
resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz"
|
resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz"
|
||||||
integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==
|
integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==
|
||||||
@ -1236,11 +1247,27 @@ color-convert@^2.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
color-name "~1.1.4"
|
color-name "~1.1.4"
|
||||||
|
|
||||||
color-name@~1.1.4:
|
color-name@^1.0.0, color-name@~1.1.4:
|
||||||
version "1.1.4"
|
version "1.1.4"
|
||||||
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
|
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
|
||||||
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
||||||
|
|
||||||
|
color-string@^1.9.0:
|
||||||
|
version "1.9.1"
|
||||||
|
resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz"
|
||||||
|
integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==
|
||||||
|
dependencies:
|
||||||
|
color-name "^1.0.0"
|
||||||
|
simple-swizzle "^0.2.2"
|
||||||
|
|
||||||
|
color@^4.2.3:
|
||||||
|
version "4.2.3"
|
||||||
|
resolved "https://registry.npmjs.org/color/-/color-4.2.3.tgz"
|
||||||
|
integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==
|
||||||
|
dependencies:
|
||||||
|
color-convert "^2.0.1"
|
||||||
|
color-string "^1.9.0"
|
||||||
|
|
||||||
commander@^4.0.0:
|
commander@^4.0.0:
|
||||||
version "4.1.1"
|
version "4.1.1"
|
||||||
resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz"
|
resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz"
|
||||||
@ -1358,7 +1385,7 @@ d3-timer@^3.0.1:
|
|||||||
resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz"
|
resolved "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz"
|
||||||
integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==
|
integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==
|
||||||
|
|
||||||
date-fns@^3.3.1, date-fns@^3.6.0:
|
"date-fns@^2.28.0 || ^3.0.0", date-fns@^3.3.1, date-fns@^3.6.0:
|
||||||
version "3.6.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz"
|
resolved "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz"
|
||||||
integrity sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==
|
integrity sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==
|
||||||
@ -1385,6 +1412,11 @@ deepmerge@^4.3.1:
|
|||||||
resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz"
|
resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz"
|
||||||
integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
|
integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
|
||||||
|
|
||||||
|
detect-libc@^2.0.3:
|
||||||
|
version "2.0.3"
|
||||||
|
resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz"
|
||||||
|
integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==
|
||||||
|
|
||||||
detect-node-es@^1.1.0:
|
detect-node-es@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz"
|
resolved "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz"
|
||||||
@ -1642,11 +1674,6 @@ glob@^10.3.10:
|
|||||||
package-json-from-dist "^1.0.0"
|
package-json-from-dist "^1.0.0"
|
||||||
path-scurry "^1.11.1"
|
path-scurry "^1.11.1"
|
||||||
|
|
||||||
graceful-fs@^4.2.11:
|
|
||||||
version "4.2.11"
|
|
||||||
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz"
|
|
||||||
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
|
|
||||||
|
|
||||||
hasown@^2.0.2:
|
hasown@^2.0.2:
|
||||||
version "2.0.2"
|
version "2.0.2"
|
||||||
resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz"
|
resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz"
|
||||||
@ -1733,6 +1760,11 @@ ip-address@^9.0.5:
|
|||||||
jsbn "1.1.0"
|
jsbn "1.1.0"
|
||||||
sprintf-js "^1.1.3"
|
sprintf-js "^1.1.3"
|
||||||
|
|
||||||
|
is-arrayish@^0.3.1:
|
||||||
|
version "0.3.2"
|
||||||
|
resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"
|
||||||
|
integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
|
||||||
|
|
||||||
is-binary-path@~2.1.0:
|
is-binary-path@~2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
|
resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
|
||||||
@ -1977,35 +2009,35 @@ next-themes@^0.4.4:
|
|||||||
resolved "https://registry.npmjs.org/next-themes/-/next-themes-0.4.4.tgz"
|
resolved "https://registry.npmjs.org/next-themes/-/next-themes-0.4.4.tgz"
|
||||||
integrity sha512-LDQ2qIOJF0VnuVrrMSMLrWGjRMkq+0mpgl6e0juCLqdJ+oo8Q84JRWT6Wh11VDQKkMMe+dVzDKLWs5n87T+PkQ==
|
integrity sha512-LDQ2qIOJF0VnuVrrMSMLrWGjRMkq+0mpgl6e0juCLqdJ+oo8Q84JRWT6Wh11VDQKkMMe+dVzDKLWs5n87T+PkQ==
|
||||||
|
|
||||||
next@14.2.24:
|
"next@^12.2.5 || ^13 || ^14 || ^15", next@^15.3.0, next@>=15.0.0:
|
||||||
version "14.2.24"
|
version "15.3.0"
|
||||||
resolved "https://registry.npmjs.org/next/-/next-14.2.24.tgz"
|
resolved "https://registry.npmjs.org/next/-/next-15.3.0.tgz"
|
||||||
integrity sha512-En8VEexSJ0Py2FfVnRRh8gtERwDRaJGNvsvad47ShkC2Yi8AXQPXEA2vKoDJlGFSj5WE5SyF21zNi4M5gyi+SQ==
|
integrity sha512-k0MgP6BsK8cZ73wRjMazl2y2UcXj49ZXLDEgx6BikWuby/CN+nh81qFFI16edgd7xYpe/jj2OZEIwCoqnzz0bQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@next/env" "14.2.24"
|
"@next/env" "15.3.0"
|
||||||
"@swc/helpers" "0.5.5"
|
"@swc/counter" "0.1.3"
|
||||||
|
"@swc/helpers" "0.5.15"
|
||||||
busboy "1.6.0"
|
busboy "1.6.0"
|
||||||
caniuse-lite "^1.0.30001579"
|
caniuse-lite "^1.0.30001579"
|
||||||
graceful-fs "^4.2.11"
|
|
||||||
postcss "8.4.31"
|
postcss "8.4.31"
|
||||||
styled-jsx "5.1.1"
|
styled-jsx "5.1.6"
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
"@next/swc-darwin-arm64" "14.2.24"
|
"@next/swc-darwin-arm64" "15.3.0"
|
||||||
"@next/swc-darwin-x64" "14.2.24"
|
"@next/swc-darwin-x64" "15.3.0"
|
||||||
"@next/swc-linux-arm64-gnu" "14.2.24"
|
"@next/swc-linux-arm64-gnu" "15.3.0"
|
||||||
"@next/swc-linux-arm64-musl" "14.2.24"
|
"@next/swc-linux-arm64-musl" "15.3.0"
|
||||||
"@next/swc-linux-x64-gnu" "14.2.24"
|
"@next/swc-linux-x64-gnu" "15.3.0"
|
||||||
"@next/swc-linux-x64-musl" "14.2.24"
|
"@next/swc-linux-x64-musl" "15.3.0"
|
||||||
"@next/swc-win32-arm64-msvc" "14.2.24"
|
"@next/swc-win32-arm64-msvc" "15.3.0"
|
||||||
"@next/swc-win32-ia32-msvc" "14.2.24"
|
"@next/swc-win32-x64-msvc" "15.3.0"
|
||||||
"@next/swc-win32-x64-msvc" "14.2.24"
|
sharp "^0.34.1"
|
||||||
|
|
||||||
node-releases@^2.0.19:
|
node-releases@^2.0.19:
|
||||||
version "2.0.19"
|
version "2.0.19"
|
||||||
resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz"
|
resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz"
|
||||||
integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==
|
integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==
|
||||||
|
|
||||||
nodemailer@^6.10.1:
|
nodemailer@^6.10.1, nodemailer@^6.6.5:
|
||||||
version "6.10.1"
|
version "6.10.1"
|
||||||
resolved "https://registry.npmjs.org/nodemailer/-/nodemailer-6.10.1.tgz"
|
resolved "https://registry.npmjs.org/nodemailer/-/nodemailer-6.10.1.tgz"
|
||||||
integrity sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==
|
integrity sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==
|
||||||
@ -2165,7 +2197,7 @@ pg-types@^4.0.1:
|
|||||||
postgres-interval "^3.0.0"
|
postgres-interval "^3.0.0"
|
||||||
postgres-range "^1.1.1"
|
postgres-range "^1.1.1"
|
||||||
|
|
||||||
pg@^8.14.1:
|
pg@^8.14.1, pg@>=8.0:
|
||||||
version "8.14.1"
|
version "8.14.1"
|
||||||
resolved "https://registry.npmjs.org/pg/-/pg-8.14.1.tgz"
|
resolved "https://registry.npmjs.org/pg/-/pg-8.14.1.tgz"
|
||||||
integrity sha512-0TdbqfjwIun9Fm/r89oB7RFQ0bLgduAhiIqIXOsyKoiC/L54DbuAAzIEN/9Op0f1Po9X7iCPXGoa/Ah+2aI8Xw==
|
integrity sha512-0TdbqfjwIun9Fm/r89oB7RFQ0bLgduAhiIqIXOsyKoiC/L54DbuAAzIEN/9Op0f1Po9X7iCPXGoa/Ah+2aI8Xw==
|
||||||
@ -2278,7 +2310,7 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
|
|||||||
resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
|
resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
|
||||||
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
|
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
|
||||||
|
|
||||||
postcss@^8, postcss@^8.4.47:
|
postcss@^8, postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.47, postcss@>=8.0.9:
|
||||||
version "8.4.49"
|
version "8.4.49"
|
||||||
resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz"
|
resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz"
|
||||||
integrity sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==
|
integrity sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==
|
||||||
@ -2352,7 +2384,7 @@ preact-render-to-string@^5.1.19:
|
|||||||
dependencies:
|
dependencies:
|
||||||
pretty-format "^3.8.0"
|
pretty-format "^3.8.0"
|
||||||
|
|
||||||
preact@^10.6.3:
|
preact@^10.6.3, preact@>=10:
|
||||||
version "10.26.2"
|
version "10.26.2"
|
||||||
resolved "https://registry.npmjs.org/preact/-/preact-10.26.2.tgz"
|
resolved "https://registry.npmjs.org/preact/-/preact-10.26.2.tgz"
|
||||||
integrity sha512-0gNmv4qpS9HaN3+40CLBAnKe0ZfyE4ZWo5xKlC1rVrr0ckkEvJvAQqKaHANdFKsGstoxrY4AItZ7kZSGVoVjgg==
|
integrity sha512-0gNmv4qpS9HaN3+40CLBAnKe0ZfyE4ZWo5xKlC1rVrr0ckkEvJvAQqKaHANdFKsGstoxrY4AItZ7kZSGVoVjgg==
|
||||||
@ -2367,7 +2399,7 @@ pretty-format@^3.8.0:
|
|||||||
resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz"
|
resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz"
|
||||||
integrity sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==
|
integrity sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==
|
||||||
|
|
||||||
prisma@^6.4.1:
|
prisma@*, prisma@^6.4.1:
|
||||||
version "6.4.1"
|
version "6.4.1"
|
||||||
resolved "https://registry.npmjs.org/prisma/-/prisma-6.4.1.tgz"
|
resolved "https://registry.npmjs.org/prisma/-/prisma-6.4.1.tgz"
|
||||||
integrity sha512-q2uJkgXnua/jj66mk6P9bX/zgYJFI/jn4Yp0aS6SPRrjH/n6VyOV7RDe1vHD0DX8Aanx4MvgmUPPoYnR6MJnPg==
|
integrity sha512-q2uJkgXnua/jj66mk6P9bX/zgYJFI/jn4Yp0aS6SPRrjH/n6VyOV7RDe1vHD0DX8Aanx4MvgmUPPoYnR6MJnPg==
|
||||||
@ -2421,7 +2453,7 @@ react-day-picker@8.10.1:
|
|||||||
resolved "https://registry.npmjs.org/react-day-picker/-/react-day-picker-8.10.1.tgz"
|
resolved "https://registry.npmjs.org/react-day-picker/-/react-day-picker-8.10.1.tgz"
|
||||||
integrity sha512-TMx7fNbhLk15eqcMt+7Z7S2KF7mfTId/XJDjKE8f+IUcFn0l08/kI4FiYTL/0yuOLmEcbR4Fwe3GJf/NiiMnPA==
|
integrity sha512-TMx7fNbhLk15eqcMt+7Z7S2KF7mfTId/XJDjKE8f+IUcFn0l08/kI4FiYTL/0yuOLmEcbR4Fwe3GJf/NiiMnPA==
|
||||||
|
|
||||||
react-dom@^18:
|
"react-dom@^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom@^16.7.0 || ^17 || ^18 || ^19", "react-dom@^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom@^16.8 || ^17.0 || ^18.0", "react-dom@^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom@^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react-dom@^17.0.2 || ^18 || ^19", react-dom@^18, "react-dom@^18 || ^19 || ^19.0.0-rc", "react-dom@^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom@^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", react-dom@>=16.6.0, react-dom@>=16.8.0, react-dom@>=17.0.0:
|
||||||
version "18.3.1"
|
version "18.3.1"
|
||||||
resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz"
|
resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz"
|
||||||
integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==
|
integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==
|
||||||
@ -2429,7 +2461,7 @@ react-dom@^18:
|
|||||||
loose-envify "^1.1.0"
|
loose-envify "^1.1.0"
|
||||||
scheduler "^0.23.2"
|
scheduler "^0.23.2"
|
||||||
|
|
||||||
react-hook-form@^7.54.1:
|
react-hook-form@^7.0.0, react-hook-form@^7.54.1:
|
||||||
version "7.54.2"
|
version "7.54.2"
|
||||||
resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.54.2.tgz"
|
resolved "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.54.2.tgz"
|
||||||
integrity sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==
|
integrity sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==
|
||||||
@ -2500,7 +2532,7 @@ react-transition-group@^4.4.5:
|
|||||||
loose-envify "^1.4.0"
|
loose-envify "^1.4.0"
|
||||||
prop-types "^15.6.2"
|
prop-types "^15.6.2"
|
||||||
|
|
||||||
react@^18:
|
react@*, "react@^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc", "react@^16.7.0 || ^17 || ^18 || ^19", "react@^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react@^16.8 || ^17.0 || ^18.0", "react@^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react@^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", "react@^16.8.0 || ^17 || ^18 || ^19", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react@^17.0.2 || ^18 || ^19", react@^18, "react@^18 || ^19 || ^19.0.0-rc", "react@^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", react@^18.3.1, "react@>= 16.8.0", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0", react@>=16.6.0, react@>=16.8.0, react@>=17.0.0:
|
||||||
version "18.3.1"
|
version "18.3.1"
|
||||||
resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz"
|
resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz"
|
||||||
integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==
|
integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==
|
||||||
@ -2607,11 +2639,46 @@ selderee@^0.11.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
parseley "^0.12.0"
|
parseley "^0.12.0"
|
||||||
|
|
||||||
|
semver@^7.7.1:
|
||||||
|
version "7.7.1"
|
||||||
|
resolved "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz"
|
||||||
|
integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
|
||||||
|
|
||||||
semver@~5.3.0:
|
semver@~5.3.0:
|
||||||
version "5.3.0"
|
version "5.3.0"
|
||||||
resolved "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"
|
resolved "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"
|
||||||
integrity sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw==
|
integrity sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw==
|
||||||
|
|
||||||
|
sharp@^0.34.1:
|
||||||
|
version "0.34.1"
|
||||||
|
resolved "https://registry.npmjs.org/sharp/-/sharp-0.34.1.tgz"
|
||||||
|
integrity sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==
|
||||||
|
dependencies:
|
||||||
|
color "^4.2.3"
|
||||||
|
detect-libc "^2.0.3"
|
||||||
|
semver "^7.7.1"
|
||||||
|
optionalDependencies:
|
||||||
|
"@img/sharp-darwin-arm64" "0.34.1"
|
||||||
|
"@img/sharp-darwin-x64" "0.34.1"
|
||||||
|
"@img/sharp-libvips-darwin-arm64" "1.1.0"
|
||||||
|
"@img/sharp-libvips-darwin-x64" "1.1.0"
|
||||||
|
"@img/sharp-libvips-linux-arm" "1.1.0"
|
||||||
|
"@img/sharp-libvips-linux-arm64" "1.1.0"
|
||||||
|
"@img/sharp-libvips-linux-ppc64" "1.1.0"
|
||||||
|
"@img/sharp-libvips-linux-s390x" "1.1.0"
|
||||||
|
"@img/sharp-libvips-linux-x64" "1.1.0"
|
||||||
|
"@img/sharp-libvips-linuxmusl-arm64" "1.1.0"
|
||||||
|
"@img/sharp-libvips-linuxmusl-x64" "1.1.0"
|
||||||
|
"@img/sharp-linux-arm" "0.34.1"
|
||||||
|
"@img/sharp-linux-arm64" "0.34.1"
|
||||||
|
"@img/sharp-linux-s390x" "0.34.1"
|
||||||
|
"@img/sharp-linux-x64" "0.34.1"
|
||||||
|
"@img/sharp-linuxmusl-arm64" "0.34.1"
|
||||||
|
"@img/sharp-linuxmusl-x64" "0.34.1"
|
||||||
|
"@img/sharp-wasm32" "0.34.1"
|
||||||
|
"@img/sharp-win32-ia32" "0.34.1"
|
||||||
|
"@img/sharp-win32-x64" "0.34.1"
|
||||||
|
|
||||||
shebang-command@^2.0.0:
|
shebang-command@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
|
resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
|
||||||
@ -2629,6 +2696,13 @@ signal-exit@^4.0.1:
|
|||||||
resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz"
|
resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz"
|
||||||
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
|
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
|
||||||
|
|
||||||
|
simple-swizzle@^0.2.2:
|
||||||
|
version "0.2.2"
|
||||||
|
resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz"
|
||||||
|
integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==
|
||||||
|
dependencies:
|
||||||
|
is-arrayish "^0.3.1"
|
||||||
|
|
||||||
smart-buffer@^4.2.0:
|
smart-buffer@^4.2.0:
|
||||||
version "4.2.0"
|
version "4.2.0"
|
||||||
resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz"
|
resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz"
|
||||||
@ -2727,10 +2801,10 @@ strip-ansi@^7.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ansi-regex "^6.0.1"
|
ansi-regex "^6.0.1"
|
||||||
|
|
||||||
styled-jsx@5.1.1:
|
styled-jsx@5.1.6:
|
||||||
version "5.1.1"
|
version "5.1.6"
|
||||||
resolved "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz"
|
resolved "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz"
|
||||||
integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==
|
integrity sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==
|
||||||
dependencies:
|
dependencies:
|
||||||
client-only "0.0.1"
|
client-only "0.0.1"
|
||||||
|
|
||||||
@ -2767,7 +2841,7 @@ tailwindcss-animate@^1.0.7:
|
|||||||
resolved "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz"
|
resolved "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz"
|
||||||
integrity sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==
|
integrity sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==
|
||||||
|
|
||||||
tailwindcss@^3.4.17:
|
tailwindcss@^3.4.17, "tailwindcss@>=3.0.0 || insiders":
|
||||||
version "3.4.17"
|
version "3.4.17"
|
||||||
resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz"
|
resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz"
|
||||||
integrity sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==
|
integrity sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==
|
||||||
@ -2838,12 +2912,12 @@ ts-interface-checker@^0.1.9:
|
|||||||
resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz"
|
resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz"
|
||||||
integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
|
integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
|
||||||
|
|
||||||
tslib@^2.0.0, tslib@^2.1.0, tslib@^2.4.0:
|
tslib@^2.0.0, tslib@^2.1.0, tslib@^2.8.0:
|
||||||
version "2.8.1"
|
version "2.8.1"
|
||||||
resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz"
|
resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz"
|
||||||
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
|
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
|
||||||
|
|
||||||
typescript@^5:
|
typescript@^5, typescript@>=5.1.0:
|
||||||
version "5.7.3"
|
version "5.7.3"
|
||||||
resolved "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz"
|
resolved "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz"
|
||||||
integrity sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==
|
integrity sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user