diff --git a/src/management-system-v2/app/(auth)/signin/page.tsx b/src/management-system-v2/app/(auth)/signin/page.tsx index 14eb62854..413777e67 100644 --- a/src/management-system-v2/app/(auth)/signin/page.tsx +++ b/src/management-system-v2/app/(auth)/signin/page.tsx @@ -1,4 +1,4 @@ -import { getProviders } from '@/app/api/auth/[...nextauth]/auth-options'; +import { getProviders } from '@/lib/auth'; import { getCurrentUser } from '@/components/auth'; import { redirect } from 'next/navigation'; import SignIn from './signin'; @@ -7,12 +7,18 @@ import { generateGuestReferenceToken } from '@/lib/reference-guest-user-token'; const dayInMS = 1000 * 60 * 60 * 24; // take in search query -const SignInPage = async ({ searchParams }: { searchParams: { callbackUrl: string } }) => { - const { session } = await getCurrentUser(); +const SignInPage = async ({ searchParams }: AsyncPageProps) => { + const [{ session }, { callbackUrl }] = await Promise.all([ + await getCurrentUser(), + await searchParams, + ]); + const isGuest = session?.user.isGuest; + const paramsCallbackUrl = typeof callbackUrl === 'string' ? callbackUrl : callbackUrl?.[0]; + if (session?.user && !isGuest) { - const callbackUrl = searchParams.callbackUrl ?? `/${session.user.id}/processes`; + const callbackUrl = paramsCallbackUrl ?? `/${session.user.id}/processes`; redirect(callbackUrl); } diff --git a/src/management-system-v2/app/(auth)/signin/signin.tsx b/src/management-system-v2/app/(auth)/signin/signin.tsx index 73f2c759f..211ced3b8 100644 --- a/src/management-system-v2/app/(auth)/signin/signin.tsx +++ b/src/management-system-v2/app/(auth)/signin/signin.tsx @@ -20,7 +20,7 @@ import { useSearchParams } from 'next/navigation'; import Link from 'next/link'; import Image from 'next/image'; import { signIn } from 'next-auth/react'; -import { type ExtractedProvider } from '@/app/api/auth/[...nextauth]/auth-options'; +import { type ExtractedProvider } from '@/lib/auth'; const verticalGap = '1rem'; diff --git a/src/management-system-v2/app/(dashboard)/[environmentId]/engines/page.tsx b/src/management-system-v2/app/(dashboard)/[environmentId]/engines/page.tsx index e8f78558d..a6dabb808 100644 --- a/src/management-system-v2/app/(dashboard)/[environmentId]/engines/page.tsx +++ b/src/management-system-v2/app/(dashboard)/[environmentId]/engines/page.tsx @@ -15,12 +15,13 @@ const SavedEngines = async ({ spaceId, ability }: { spaceId: string; ability: Ab return ; }; -const EnginesPage = async ({ params }: { params: { environmentId: string } }) => { +const EnginesPage = async ({ params }: AsyncPageProps) => { if (!env.PROCEED_PUBLIC_ENABLE_EXECUTION || !enableUseDB) { return notFound(); } - const { activeEnvironment, ability } = await getCurrentEnvironment(params.environmentId); + const { environmentId } = await params; + const { activeEnvironment, ability } = await getCurrentEnvironment(environmentId); return ( diff --git a/src/management-system-v2/app/(dashboard)/[environmentId]/executions/[processId]/page.tsx b/src/management-system-v2/app/(dashboard)/[environmentId]/executions/[processId]/page.tsx index 75ba7e9b8..cc4aedfea 100644 --- a/src/management-system-v2/app/(dashboard)/[environmentId]/executions/[processId]/page.tsx +++ b/src/management-system-v2/app/(dashboard)/[environmentId]/executions/[processId]/page.tsx @@ -34,13 +34,11 @@ async function Deployment({ processId, spaceId }: { processId: string; spaceId: return ; } -export default async function Page({ - params, -}: { - params: { processId: string; environmentId: string }; -}) { +export default async function Page({ params }: AsyncPageProps) { + const { environmentId, processId } = await params; + //TODO: authentication + authorization - const { activeEnvironment, ability } = await getCurrentEnvironment(params.environmentId); + const { activeEnvironment, ability } = await getCurrentEnvironment(environmentId); return ( } > - + ); } diff --git a/src/management-system-v2/app/(dashboard)/[environmentId]/executions/page.tsx b/src/management-system-v2/app/(dashboard)/[environmentId]/executions/page.tsx index b841e502d..7545abfc9 100644 --- a/src/management-system-v2/app/(dashboard)/[environmentId]/executions/page.tsx +++ b/src/management-system-v2/app/(dashboard)/[environmentId]/executions/page.tsx @@ -27,12 +27,13 @@ function getDeploymentNames(deployments: DeployedProcessInfo[]) { return deployments as (DeployedProcessInfo & { name: string })[]; } -export default async function ExecutionsPage({ params }: { params: { environmentId: string } }) { +export default async function ExecutionsPage({ params }: AsyncPageProps) { if (!env.PROCEED_PUBLIC_ENABLE_EXECUTION) { return notFound(); } - const { ability, activeEnvironment } = await getCurrentEnvironment(params.environmentId); + const { environmentId } = await params; + const { ability, activeEnvironment } = await getCurrentEnvironment(environmentId); // TODO: check ability diff --git a/src/management-system-v2/app/(dashboard)/[environmentId]/general-settings/page.tsx b/src/management-system-v2/app/(dashboard)/[environmentId]/general-settings/page.tsx index 36ea7b31c..4f832ada2 100644 --- a/src/management-system-v2/app/(dashboard)/[environmentId]/general-settings/page.tsx +++ b/src/management-system-v2/app/(dashboard)/[environmentId]/general-settings/page.tsx @@ -6,8 +6,9 @@ import SettingsForm from './settings-form'; import Title from 'antd/es/typography/Title'; import { redirect } from 'next/navigation'; -const GeneralSettingsPage = async ({ params }: { params: { environmentId: string } }) => { - const { ability } = await getCurrentEnvironment(params.environmentId); +const GeneralSettingsPage = async ({ params }: AsyncPageProps) => { + const { environmentId } = await params; + const { ability } = await getCurrentEnvironment(environmentId); if (!ability.can('view', 'Setting')) return redirect('/'); const updateSettings = async (newSettings: Object) => { diff --git a/src/management-system-v2/app/(dashboard)/[environmentId]/iam/roles/[roleId]/page.tsx b/src/management-system-v2/app/(dashboard)/[environmentId]/iam/roles/[roleId]/page.tsx index 5bc2767c5..626c283ad 100644 --- a/src/management-system-v2/app/(dashboard)/[environmentId]/iam/roles/[roleId]/page.tsx +++ b/src/management-system-v2/app/(dashboard)/[environmentId]/iam/roles/[roleId]/page.tsx @@ -14,11 +14,9 @@ import { AuthenticatedUser } from '@/lib/data/user-schema'; import SpaceLink from '@/components/space-link'; import { getFolderById } from '@/lib/data/legacy/folders'; -const Page = async ({ - params: { roleId, environmentId }, -}: { - params: { roleId: string; environmentId: string }; -}) => { +const Page = async ({ params }: AsyncPageProps) => { + const { environmentId, roleId } = await params; + const { ability, activeEnvironment } = await getCurrentEnvironment(environmentId); const role = await getRoleById(roleId, ability); if (role && !ability.can('manage', toCaslResource('Role', role))) return ; diff --git a/src/management-system-v2/app/(dashboard)/[environmentId]/iam/roles/page.tsx b/src/management-system-v2/app/(dashboard)/[environmentId]/iam/roles/page.tsx index 2d7f3459d..04d6c722d 100644 --- a/src/management-system-v2/app/(dashboard)/[environmentId]/iam/roles/page.tsx +++ b/src/management-system-v2/app/(dashboard)/[environmentId]/iam/roles/page.tsx @@ -6,8 +6,9 @@ import UnauthorizedFallback from '@/components/unauthorized-fallback'; import { ComponentProps } from 'react'; import { getUserById } from '@/lib/data/DTOs'; -const Page = async ({ params }: { params: { environmentId: string } }) => { - const { ability, activeEnvironment } = await getCurrentEnvironment(params.environmentId); +const Page = async ({ params }: AsyncPageProps) => { + const { environmentId } = await params; + const { ability, activeEnvironment } = await getCurrentEnvironment(environmentId); if (!ability.can('manage', 'Role')) return ; diff --git a/src/management-system-v2/app/(dashboard)/[environmentId]/iam/users/page.tsx b/src/management-system-v2/app/(dashboard)/[environmentId]/iam/users/page.tsx index a75202b41..4fb0fb0be 100644 --- a/src/management-system-v2/app/(dashboard)/[environmentId]/iam/users/page.tsx +++ b/src/management-system-v2/app/(dashboard)/[environmentId]/iam/users/page.tsx @@ -7,8 +7,9 @@ import { getUserById } from '@/lib/data/DTOs'; import { AuthenticatedUser, User } from '@/lib/data/user-schema'; import { asyncMap } from '@/lib/helpers/javascriptHelpers'; -const Page = async ({ params }: { params: { environmentId: string } }) => { - const { ability, activeEnvironment } = await getCurrentEnvironment(params.environmentId); +const Page = async ({ params }: AsyncPageProps) => { + const { environmentId } = await params; + const { ability, activeEnvironment } = await getCurrentEnvironment(environmentId); if (!ability.can('manage', 'User')) return ; const memberships = await getMembers(activeEnvironment.spaceId, ability); diff --git a/src/management-system-v2/app/(dashboard)/[environmentId]/layout.tsx b/src/management-system-v2/app/(dashboard)/[environmentId]/layout.tsx index 768777ae6..a56ecea55 100644 --- a/src/management-system-v2/app/(dashboard)/[environmentId]/layout.tsx +++ b/src/management-system-v2/app/(dashboard)/[environmentId]/layout.tsx @@ -28,20 +28,20 @@ import Link from 'next/link'; import { getEnvironmentById, organizationHasLogo } from '@/lib/data/DTOs'; import { getSpaceFolderTree, getUserRules } from '@/lib/authorization/authorization'; import { Environment } from '@/lib/data/environment-schema'; -import { LuTable2 } from 'react-icons/lu'; import { spaceURL } from '@/lib/utils'; import { RemoveReadOnly } from '@/lib/typescript-utils'; import { env } from '@/lib/env-vars'; import { asyncMap } from '@/lib/helpers/javascriptHelpers'; import { adminRules } from '@/lib/authorization/globalRules'; -const DashboardLayout = async ({ +export default async function DashboardLayout({ children, params, -}: PropsWithChildren<{ params: { environmentId: string } }>) => { +}: PropsWithChildren<{ params: Promise<{ [slug: string]: string }> }>) { + const { environmentId } = await params; const { userId, systemAdmin } = await getCurrentUser(); - const { activeEnvironment, ability } = await getCurrentEnvironment(params.environmentId); + const { activeEnvironment, ability } = await getCurrentEnvironment(environmentId); const can = ability.can.bind(ability); const userEnvironments: Environment[] = [await getEnvironmentById(userId)]; const userOrgEnvs = await getUserOrganizationEnvironments(userId); @@ -205,6 +205,4 @@ const DashboardLayout = async ({ ); -}; - -export default DashboardLayout; +} diff --git a/src/management-system-v2/app/(dashboard)/[environmentId]/machine-config/[configId]/page.tsx b/src/management-system-v2/app/(dashboard)/[environmentId]/machine-config/[configId]/page.tsx index 06b8eaa80..6cc9f067d 100644 --- a/src/management-system-v2/app/(dashboard)/[environmentId]/machine-config/[configId]/page.tsx +++ b/src/management-system-v2/app/(dashboard)/[environmentId]/machine-config/[configId]/page.tsx @@ -3,12 +3,9 @@ import Content from '@/components/content'; import { getDeepParentConfigurationById } from '@/lib/data/legacy/machine-config'; import ConfigPage from './config-page-content'; -type MachineConfigProps = { - params: { configId: string }; - searchParams: { version?: string }; -}; +const MachineConfigView: React.FC = async ({ params }) => { + const { configId } = await params; -const MachineConfigView: React.FC = async ({ params: { configId } }) => { let machineConfig = await getDeepParentConfigurationById(configId); //replace ConfigContent <-> MachineConfigEditor as needed diff --git a/src/management-system-v2/app/(dashboard)/[environmentId]/machine-config/page.tsx b/src/management-system-v2/app/(dashboard)/[environmentId]/machine-config/page.tsx index f0d6b089c..8bd1a890d 100644 --- a/src/management-system-v2/app/(dashboard)/[environmentId]/machine-config/page.tsx +++ b/src/management-system-v2/app/(dashboard)/[environmentId]/machine-config/page.tsx @@ -1,6 +1,4 @@ import Content from '@/components/content'; -import EllipsisBreadcrumb from '@/components/ellipsis-breadcrumb'; -import { ComponentProps } from 'react'; import { Space } from 'antd'; import { getCurrentEnvironment } from '@/components/auth'; import { notFound } from 'next/navigation'; @@ -11,16 +9,13 @@ import { env } from '@/lib/env-vars'; import UnauthorizedFallback from '@/components/unauthorized-fallback'; export type ListItem = ParentConfig; -const MachineConfigPage = async ({ - params, -}: { - params: { environmentId: string; folderId?: string }; -}) => { +const MachineConfigPage = async ({ params }: AsyncPageProps) => { if (!env.ENABLE_MACHINE_CONFIG) { return notFound(); } - const { ability, activeEnvironment } = await getCurrentEnvironment(params.environmentId); + const { environmentId } = await params; + const { ability, activeEnvironment } = await getCurrentEnvironment(environmentId); if (!ability.can('view', 'MachineConfig')) return ; @@ -28,7 +23,6 @@ const MachineConfigPage = async ({ activeEnvironment.spaceId, ability, )) satisfies ListItem[]; - const pathToFolder: ComponentProps['items'] = []; return ( <> diff --git a/src/management-system-v2/app/(dashboard)/[environmentId]/organization-settings/page.tsx b/src/management-system-v2/app/(dashboard)/[environmentId]/organization-settings/page.tsx index db78e27f1..191c71403 100644 --- a/src/management-system-v2/app/(dashboard)/[environmentId]/organization-settings/page.tsx +++ b/src/management-system-v2/app/(dashboard)/[environmentId]/organization-settings/page.tsx @@ -10,8 +10,9 @@ import { OrganizationEnvironment } from '@/lib/data/environment-schema'; import DeleteOrganizationButton from './delete-organization-button'; import { AuthCan } from '@/components/auth-can'; -const GeneralSettingsPage = async ({ params }: { params: { environmentId: string } }) => { - const { ability, activeEnvironment } = await getCurrentEnvironment(params.environmentId); +const GeneralSettingsPage = async ({ params }: AsyncPageProps) => { + const { environmentId } = await params; + const { ability, activeEnvironment } = await getCurrentEnvironment(environmentId); if (!activeEnvironment.isOrganization || !ability.can('manage', 'Environment')) return redirect('/'); diff --git a/src/management-system-v2/app/(dashboard)/[environmentId]/processes/[processId]/modeler-share-modal-option-embed-in-web.tsx b/src/management-system-v2/app/(dashboard)/[environmentId]/processes/[processId]/modeler-share-modal-option-embed-in-web.tsx index 988f11b74..5ef9ae128 100644 --- a/src/management-system-v2/app/(dashboard)/[environmentId]/processes/[processId]/modeler-share-modal-option-embed-in-web.tsx +++ b/src/management-system-v2/app/(dashboard)/[environmentId]/processes/[processId]/modeler-share-modal-option-embed-in-web.tsx @@ -22,7 +22,8 @@ const ModelerShareModalOptionEmdedInWeb = ({ allowIframeTimestamp, refresh, }: ModelerShareModalOptionEmdedInWebProps) => { - const { processId } = useParams(); + let { processId } = useParams(); + processId = typeof processId === 'string' ? processId : processId?.[0] ?? ''; const environment = useEnvironment(); const [embeddingUrl, setEmbeddingUrl] = useState(''); const { message } = App.useApp(); @@ -79,7 +80,7 @@ const ModelerShareModalOptionEmdedInWeb = ({ environment.spaceId, ); } catch (err) { - message.error('An error occured while enabling embedding.'); + message.error('An error occurred while enabling embedding.'); } } else { // deactivate embedding @@ -91,7 +92,7 @@ const ModelerShareModalOptionEmdedInWeb = ({ ); setEmbeddingUrl(''); } catch (err) { - message.error('An error occured while disabling embedding.'); + message.error('An error occurred while disabling embedding.'); } } refresh(); diff --git a/src/management-system-v2/app/(dashboard)/[environmentId]/processes/[processId]/modeler-share-modal-option-public-link.tsx b/src/management-system-v2/app/(dashboard)/[environmentId]/processes/[processId]/modeler-share-modal-option-public-link.tsx index 25e1f0ca2..2d5e90c1e 100644 --- a/src/management-system-v2/app/(dashboard)/[environmentId]/processes/[processId]/modeler-share-modal-option-public-link.tsx +++ b/src/management-system-v2/app/(dashboard)/[environmentId]/processes/[processId]/modeler-share-modal-option-public-link.tsx @@ -25,7 +25,8 @@ const ModelerShareModalOptionPublicLink = ({ refresh, processVersions, }: ModelerShareModalOptionPublicLinkProps) => { - const { processId } = useParams(); + let { processId } = useParams(); + processId = typeof processId === 'string' ? processId : processId?.[0] ?? ''; const query = useSearchParams(); const [selectedVersionId, setSelectedVersionId] = useState(query.get('version')); const environment = useEnvironment(); diff --git a/src/management-system-v2/app/(dashboard)/[environmentId]/processes/[processId]/modeler-share-modal.tsx b/src/management-system-v2/app/(dashboard)/[environmentId]/processes/[processId]/modeler-share-modal.tsx index 7684eb543..0e87af0d8 100644 --- a/src/management-system-v2/app/(dashboard)/[environmentId]/processes/[processId]/modeler-share-modal.tsx +++ b/src/management-system-v2/app/(dashboard)/[environmentId]/processes/[processId]/modeler-share-modal.tsx @@ -39,7 +39,8 @@ const ModelerShareModalButton: FC = ({ onExportMobile, versions: processVersions, }) => { - const { processId } = useParams(); + let { processId } = useParams(); + processId = typeof processId === 'string' ? processId : processId?.[0] ?? ''; const environment = useEnvironment(); const [isOpen, setIsOpen] = useState(false); const [activeIndex, setActiveIndex] = useState(0); diff --git a/src/management-system-v2/app/(dashboard)/[environmentId]/processes/[processId]/page.tsx b/src/management-system-v2/app/(dashboard)/[environmentId]/processes/[processId]/page.tsx index 22c7f4781..bf4d80361 100644 --- a/src/management-system-v2/app/(dashboard)/[environmentId]/processes/[processId]/page.tsx +++ b/src/management-system-v2/app/(dashboard)/[environmentId]/processes/[processId]/page.tsx @@ -8,17 +8,17 @@ import { getProcess, getProcesses } from '@/lib/data/DTOs'; import { getProcessBPMN } from '@/lib/data/processes'; import { UnauthorizedError } from '@/lib/ability/abilityHelper'; -type ProcessProps = { - params: { processId: string; environmentId: string }; - searchParams: { version?: string }; -}; - -const Process = async ({ params: { processId, environmentId }, searchParams }: ProcessProps) => { +const Process = async ({ params, searchParams }: AsyncPageProps) => { // TODO: check if params is correct after fix release. And maybe don't need // refresh in processes.tsx anymore? //console.log('processId', processId); //console.log('query', searchParams); - const selectedVersionId = searchParams.version ? searchParams.version : undefined; + let { version: selectedVersionId } = await searchParams; + selectedVersionId = + typeof selectedVersionId === 'string' ? selectedVersionId : selectedVersionId?.[0]; + + const { environmentId, processId } = await params; + const { ability, activeEnvironment } = await getCurrentEnvironment(environmentId); // Only load bpmn if no version selected. const process = await getProcess(processId, !selectedVersionId); diff --git a/src/management-system-v2/app/(dashboard)/[environmentId]/processes/folder/[folderId]/page.tsx b/src/management-system-v2/app/(dashboard)/[environmentId]/processes/folder/[folderId]/page.tsx index 888269188..cec666650 100644 --- a/src/management-system-v2/app/(dashboard)/[environmentId]/processes/folder/[folderId]/page.tsx +++ b/src/management-system-v2/app/(dashboard)/[environmentId]/processes/folder/[folderId]/page.tsx @@ -1,7 +1,7 @@ import Processes from '@/components/processes'; import Content from '@/components/content'; import { Button, Space } from 'antd'; -import { getCurrentEnvironment } from '@/components/auth'; +import { getCurrentEnvironment, getCurrentUser } from '@/components/auth'; // This is a workaround to enable the Server Actions in that file to return any // client components. This is not possible with the current nextjs compiler // otherwise. It might be possible in the future with turbopack without this @@ -18,20 +18,16 @@ import { spaceURL } from '@/lib/utils'; import { getFolderById, getRootFolder, getFolderContents } from '@/lib/data/DTOs'; export type ListItem = ProcessMetadata | (Folder & { type: 'folder' }); -const ProcessesPage = async ({ - params, -}: { - params: { environmentId: string; folderId?: string }; -}) => { - const { ability, activeEnvironment } = await getCurrentEnvironment(params.environmentId); +const ProcessesPage = async ({ params }: AsyncPageProps) => { + const { environmentId, folderId } = await params; + + const { ability, activeEnvironment } = await getCurrentEnvironment(environmentId); const favs = await getUsersFavourites(); const rootFolder = await getRootFolder(activeEnvironment.spaceId, ability); - const folder = await getFolderById( - params.folderId ? decodeURIComponent(params.folderId) : rootFolder.id, - ); + const folder = await getFolderById(folderId ? decodeURIComponent(folderId) : rootFolder.id); const folderContents = await getFolderContents(folder.id, ability); diff --git a/src/management-system-v2/app/(dashboard)/[environmentId]/projects/page.tsx b/src/management-system-v2/app/(dashboard)/[environmentId]/projects/page.tsx index 894bbd498..f0a9f0f3a 100644 --- a/src/management-system-v2/app/(dashboard)/[environmentId]/projects/page.tsx +++ b/src/management-system-v2/app/(dashboard)/[environmentId]/projects/page.tsx @@ -5,8 +5,9 @@ import { Space } from 'antd'; import { getCurrentEnvironment } from '@/components/auth'; import { redirect } from 'next/navigation'; -const Projects = async ({ params }: { params: { environmentId: string } }) => { - const { ability } = await getCurrentEnvironment(params.environmentId); +const Projects = async ({ params }: AsyncPageProps) => { + const { environmentId } = await params; + const { ability } = await getCurrentEnvironment(environmentId); if (!ability.can('view', 'Setting')) return redirect('/'); return ( diff --git a/src/management-system-v2/app/(dashboard)/[environmentId]/tasklist/page.tsx b/src/management-system-v2/app/(dashboard)/[environmentId]/tasklist/page.tsx index 7655f8892..6144d6002 100644 --- a/src/management-system-v2/app/(dashboard)/[environmentId]/tasklist/page.tsx +++ b/src/management-system-v2/app/(dashboard)/[environmentId]/tasklist/page.tsx @@ -5,12 +5,13 @@ import { notFound } from 'next/navigation'; import Tasklist from './tasklist'; import { env } from '@/lib/env-vars'; -const TasklistPage = async ({ params }: { params: { environmentId: string } }) => { +const TasklistPage = async ({ params }: AsyncPageProps) => { if (!env.PROCEED_PUBLIC_ENABLE_EXECUTION) { return notFound(); } - const { ability } = await getCurrentEnvironment(params.environmentId); + const { environmentId } = await params; + const { ability } = await getCurrentEnvironment(environmentId); const generateMockDataUserTasks = () => { const availableStatus = ['READY', 'ACTIVE', 'COMPLETED', 'PAUSED']; diff --git a/src/management-system-v2/app/accept-invitation/page.tsx b/src/management-system-v2/app/accept-invitation/page.tsx index a40b8ad27..2e78a1bad 100644 --- a/src/management-system-v2/app/accept-invitation/page.tsx +++ b/src/management-system-v2/app/accept-invitation/page.tsx @@ -17,14 +17,17 @@ function Error(props: ResultProps) { ); } -export default async function IvitationPage({ searchParams }: { searchParams: { token: string } }) { +export default async function IvitationPage({ searchParams }: AsyncPageProps) { + let { token } = await searchParams; + token = typeof token === 'string' ? token : token?.[0] ?? ''; + const { session } = await getCurrentUser(); if (!session) redirect( - `/api/auth/signin?callbackUrl=${encodeURIComponent('/accept-invitation?token=' + searchParams.token)}`, + `/api/auth/signin?callbackUrl=${encodeURIComponent('/accept-invitation?token=' + token)}`, ); - const invite = getInvitationFromToken(decodeURIComponent(searchParams.token)); + const invite = getInvitationFromToken(decodeURIComponent(token)); if ('error' in invite) { let tokenError = 'Wrong invitation'; diff --git a/src/management-system-v2/app/admin/spaces/page.tsx b/src/management-system-v2/app/admin/spaces/page.tsx index da10e28b8..2fc96fd30 100644 --- a/src/management-system-v2/app/admin/spaces/page.tsx +++ b/src/management-system-v2/app/admin/spaces/page.tsx @@ -23,7 +23,7 @@ async function deleteSpace(spaceIds: string[]) { } export type deleteSpace = typeof deleteSpace; -export default async function SysteAdminDashboard({ params }: { params?: { userId: string } }) { +export default async function SysteAdminDashboard({ params }: AsyncPageProps) { const user = await getCurrentUser(); if (!user.session) redirect('/'); const adminData = getSystemAdminByUserId(user.userId); @@ -32,8 +32,8 @@ export default async function SysteAdminDashboard({ params }: { params?: { userI let spacesTableRepresentation; let title: ReactNode = 'MS Spaces'; - if (params?.userId) { - const userId = decodeURIComponent(params.userId); + const userId = decodeURIComponent((await params).userId); + if (userId) { const user = await getUserById(userId, { throwIfNotFound: false }); if (!user) redirect('/admin/spaces'); diff --git a/src/management-system-v2/app/api/activateenvironment/route.ts b/src/management-system-v2/app/api/activateenvironment/route.ts index 10389b38c..7558f7497 100644 --- a/src/management-system-v2/app/api/activateenvironment/route.ts +++ b/src/management-system-v2/app/api/activateenvironment/route.ts @@ -1,14 +1,13 @@ -import { getServerSession } from 'next-auth/next'; -import nextAuthOptions from '../auth/[...nextauth]/auth-options'; import { activateEnvrionment } from '@/lib/data/legacy/iam/environments'; import { UnauthorizedError } from '@/lib/ability/abilityHelper'; import { redirect } from 'next/navigation'; +import { auth } from '@/lib/auth'; // TODO: prohibit already active users from using this route export const GET = async (req: Request) => { let activationId; try { - const session = await getServerSession(nextAuthOptions); + const session = await auth(); if (!session) throw new UnauthorizedError(); const { searchParams } = new URL(req.url); diff --git a/src/management-system-v2/app/api/auth/[...nextauth]/route.ts b/src/management-system-v2/app/api/auth/[...nextauth]/route.ts index f87a946a9..640fc46f5 100644 --- a/src/management-system-v2/app/api/auth/[...nextauth]/route.ts +++ b/src/management-system-v2/app/api/auth/[...nextauth]/route.ts @@ -1,6 +1,2 @@ -import NextAuth from 'next-auth/next'; -import nextAuthOptions from './auth-options'; - -const handler = NextAuth(nextAuthOptions); - -export { handler as GET, handler as POST }; +import { handlers } from '@/lib/auth'; +export const { GET, POST } = handlers; diff --git a/src/management-system-v2/app/api/private/[environmentId]/logo/route.ts b/src/management-system-v2/app/api/private/[environmentId]/logo/route.ts index b2e854b7a..1b9553505 100644 --- a/src/management-system-v2/app/api/private/[environmentId]/logo/route.ts +++ b/src/management-system-v2/app/api/private/[environmentId]/logo/route.ts @@ -11,8 +11,9 @@ import { saveLogo } from '@/lib/data/legacy/fileHandling'; export async function GET( _: NextRequest, - { params: { environmentId } }: { params: { environmentId: string } }, + segmentData: { params: Promise<{ environmentId: string }> }, ) { + const { environmentId } = await segmentData.params; const organization = await getEnvironmentById(environmentId); if (!organization) return new NextResponse(null, { @@ -64,8 +65,9 @@ export async function GET( async function updateOrgLogo( request: NextRequest, - { params: { environmentId } }: { params: { environmentId: string } }, + segmentData: { params: Promise<{ environmentId: string }> }, ) { + const { environmentId } = await segmentData.params; const { ability, activeEnvironment } = await getCurrentEnvironment(environmentId); if (!activeEnvironment.isOrganization) @@ -96,8 +98,9 @@ export { updateOrgLogo as POST, updateOrgLogo as PUT }; export async function DELETE( _: NextRequest, - { params: { environmentId } }: { params: { environmentId: string } }, + segmentData: { params: Promise<{ environmentId: string }> }, ) { + const { environmentId } = await segmentData.params; const { ability, activeEnvironment } = await getCurrentEnvironment(environmentId); if (!activeEnvironment.isOrganization) diff --git a/src/management-system-v2/app/api/private/[environmentId]/processes/[processId]/images/[imageFileName]/route.ts b/src/management-system-v2/app/api/private/[environmentId]/processes/[processId]/images/[imageFileName]/route.ts index 0849bfd67..e3f3b999e 100644 --- a/src/management-system-v2/app/api/private/[environmentId]/processes/[processId]/images/[imageFileName]/route.ts +++ b/src/management-system-v2/app/api/private/[environmentId]/processes/[processId]/images/[imageFileName]/route.ts @@ -17,9 +17,11 @@ import { v4 } from 'uuid'; export async function GET( request: NextRequest, { - params: { environmentId, processId, imageFileName }, - }: { params: { environmentId: string; processId: string; imageFileName: string } }, + params, + }: { params: Promise<{ environmentId: string; processId: string; imageFileName: string }> }, ) { + const { environmentId, processId, imageFileName } = await params; + const processMetaObjects = getProcessMetaObjects(); const processMeta = processMetaObjects[processId]; @@ -79,10 +81,10 @@ export async function GET( export async function PUT( request: NextRequest, - { - params: { environmentId, processId, imageFileName }, - }: { params: { environmentId: string; processId: string; imageFileName: string } }, + { params }: { params: Promise<{ environmentId: string; processId: string }> }, ) { + const { environmentId, processId } = await params; + const { ability } = await getCurrentEnvironment(environmentId); const processMetaObjects: any = getProcessMetaObjects(); @@ -116,11 +118,13 @@ export async function PUT( } export async function DELETE( - request: NextRequest, + _: NextRequest, { - params: { environmentId, processId, imageFileName }, - }: { params: { environmentId: string; processId: string; imageFileName: string } }, + params, + }: { params: Promise<{ environmentId: string; processId: string; imageFileName: string }> }, ) { + const { environmentId, processId, imageFileName } = await params; + const { ability } = await getCurrentEnvironment(environmentId); const processMetaObjects = getProcessMetaObjects(); diff --git a/src/management-system-v2/app/api/private/[environmentId]/processes/[processId]/images/route.ts b/src/management-system-v2/app/api/private/[environmentId]/processes/[processId]/images/route.ts index 60841b1e3..90f7b6ae7 100644 --- a/src/management-system-v2/app/api/private/[environmentId]/processes/[processId]/images/route.ts +++ b/src/management-system-v2/app/api/private/[environmentId]/processes/[processId]/images/route.ts @@ -10,11 +10,11 @@ import { v4 } from 'uuid'; import { invalidRequest, readImage } from '../../../image-helpers'; export async function GET( - request: NextRequest, - { - params: { environmentId, processId }, - }: { params: { environmentId: string; processId: string } }, + _: NextRequest, + { params }: { params: Promise<{ environmentId: string; processId: string }> }, ) { + const { environmentId, processId } = await params; + const { ability } = await getCurrentEnvironment(environmentId); const processMetaObjects = getProcessMetaObjects(); @@ -41,10 +41,10 @@ export async function GET( export async function POST( request: NextRequest, - { - params: { environmentId, processId }, - }: { params: { environmentId: string; processId: string } }, + { params }: { params: Promise<{ environmentId: string; processId: string }> }, ) { + const { environmentId, processId } = await params; + const isInvalidRequest = invalidRequest(request); if (isInvalidRequest) return isInvalidRequest; diff --git a/src/management-system-v2/app/change-email/page.tsx b/src/management-system-v2/app/change-email/page.tsx index 838aeffbe..3633116f8 100644 --- a/src/management-system-v2/app/change-email/page.tsx +++ b/src/management-system-v2/app/change-email/page.tsx @@ -10,8 +10,8 @@ import Content from '@/components/content'; const searchParamsSchema = z.object({ email: z.string().email(), token: z.string() }); -export default async function ChangeEmailPage({ searchParams }: { searchParams: unknown }) { - const parsedSearchParams = searchParamsSchema.safeParse(searchParams); +export default async function ChangeEmailPage({ searchParams }: AsyncPageProps) { + const parsedSearchParams = searchParamsSchema.safeParse(await searchParams); if (!parsedSearchParams.success) redirect('/'); const { email, token } = parsedSearchParams.data; diff --git a/src/management-system-v2/app/create-organization/page.tsx b/src/management-system-v2/app/create-organization/page.tsx index a4afe52d9..4dbcbd4a2 100644 --- a/src/management-system-v2/app/create-organization/page.tsx +++ b/src/management-system-v2/app/create-organization/page.tsx @@ -1,6 +1,6 @@ import { getCurrentUser } from '@/components/auth'; import CreateOrganizationPage from './client-page'; -import { getProviders } from '../api/auth/[...nextauth]/auth-options'; +import { getProviders } from '@/lib/auth'; import { UserOrganizationEnvironmentInput } from '@/lib/data/environment-schema'; import { addEnvironment } from '@/lib/data/legacy/iam/environments'; import { userError } from '@/lib/user-error'; diff --git a/src/management-system-v2/app/shared-viewer/page.tsx b/src/management-system-v2/app/shared-viewer/page.tsx index a72a59bd1..42aef6773 100644 --- a/src/management-system-v2/app/shared-viewer/page.tsx +++ b/src/management-system-v2/app/shared-viewer/page.tsx @@ -21,12 +21,6 @@ import { SettingsOption } from './settings-modal'; import { env } from '@/lib/env-vars'; import { asyncMap } from '@/lib/helpers/javascriptHelpers'; -interface PageProps { - searchParams: { - [key: string]: string[] | string | undefined; - }; -} - /** * Will return the process meta data and bpmn for the requested process if possible (process is shared or it is accessible by the logged in user) * @@ -123,8 +117,8 @@ const getImportInfos = async (bpmn: string, knownInfos: ImportsInfo) => { } }; -const SharedViewer = async ({ searchParams }: PageProps) => { - const { token, version, settings } = searchParams; +const SharedViewer = async ({ searchParams }: AsyncPageProps) => { + const { token, version, settings } = await searchParams; const { session, userId } = await getCurrentUser(); if (typeof token !== 'string') { return ; @@ -190,7 +184,7 @@ const SharedViewer = async ({ searchParams }: PageProps) => { processData!.sharedAs === 'protected' && !session?.user.id ) { - const callbackUrl = `/shared-viewer?token=${searchParams.token}`; + const callbackUrl = `/shared-viewer?token=${token}`; const loginPath = `/api/auth/signin?callbackUrl=${encodeURIComponent(callbackUrl)}`; redirect(loginPath); } diff --git a/src/management-system-v2/app/transfer-processes/page.tsx b/src/management-system-v2/app/transfer-processes/page.tsx index 073b072be..276b7cbb9 100644 --- a/src/management-system-v2/app/transfer-processes/page.tsx +++ b/src/management-system-v2/app/transfer-processes/page.tsx @@ -6,25 +6,24 @@ import { redirect } from 'next/navigation'; import ProcessTransferButtons from './transfer-processes-confirmation-buttons'; import { getGuestReference } from '@/lib/reference-guest-user-token'; -export default async function TransferProcessesPage({ - searchParams, -}: { - searchParams: { - callbackUrl?: string; - referenceToken?: string; - }; -}) { +export default async function TransferProcessesPage({ searchParams }: AsyncPageProps) { const { userId, session } = await getCurrentUser(); if (!session) redirect('api/auth/signin'); if (session.user.isGuest) redirect('/'); - const callbackUrl = decodeURIComponent(searchParams.callbackUrl || '/'); + let { callbackUrl, referenceToken } = await searchParams; + callbackUrl = decodeURIComponent( + typeof callbackUrl === 'string' ? callbackUrl : callbackUrl?.[0] ?? '', + ); + referenceToken = decodeURIComponent( + typeof referenceToken === 'string' ? referenceToken : referenceToken?.[0] ?? '', + ); + + const token = getGuestReference(callbackUrl); - const token = decodeURIComponent(searchParams.referenceToken || ''); - const referenceToken = getGuestReference(token); - if ('error' in referenceToken) { + if ('error' in token) { let message = 'Invalid link'; - if (referenceToken.error === 'TokenExpiredError') message = 'Link expired'; + if (token.error === 'TokenExpiredError') message = 'Link expired'; return ( @@ -36,7 +35,7 @@ export default async function TransferProcessesPage({ ); } - const guestId = referenceToken.guestId; + const guestId = token.guestId; // guestId === userId if the user signed in with a non existing account, and the guest user was // turned into an authenticated user @@ -64,7 +63,7 @@ export default async function TransferProcessesPage({ Your guest account had {guestProcesses.length} process{guestProcesses.length !== 1 && 'es'}.
Would you like to transfer them to your account? - +
); diff --git a/src/management-system-v2/components/auth.tsx b/src/management-system-v2/components/auth.tsx index 2b5ecd361..2f5471237 100644 --- a/src/management-system-v2/components/auth.tsx +++ b/src/management-system-v2/components/auth.tsx @@ -1,8 +1,6 @@ import { cache } from 'react'; -import { getServerSession } from 'next-auth/next'; import { redirect } from 'next/navigation'; import { getAbilityForUser } from '@/lib/authorization/authorization'; -import nextAuthOptions from '@/app/api/auth/[...nextauth]/auth-options'; import { isMember } from '@/lib/data/legacy/iam/memberships'; import { getSystemAdminByUserId } from '@/lib/data/DTOs'; import Ability from '@/lib/ability/abilityHelper'; @@ -11,9 +9,10 @@ import { packedGlobalOrganizationRules, packedGlobalUserRules, } from '@/lib/authorization/globalRules'; +import { auth } from '@/lib/auth'; export const getCurrentUser = cache(async () => { - const session = await getServerSession(nextAuthOptions); + const session = await auth(); const userId = session?.user.id || ''; const systemAdmin = await getSystemAdminByUserId(userId); diff --git a/src/management-system-v2/app/api/auth/[...nextauth]/adapter.ts b/src/management-system-v2/lib/auth-databse-adapter.ts similarity index 100% rename from src/management-system-v2/app/api/auth/[...nextauth]/adapter.ts rename to src/management-system-v2/lib/auth-databse-adapter.ts diff --git a/src/management-system-v2/app/api/auth/[...nextauth]/auth-options.ts b/src/management-system-v2/lib/auth.ts similarity index 81% rename from src/management-system-v2/app/api/auth/[...nextauth]/auth-options.ts rename to src/management-system-v2/lib/auth.ts index 35d78cbe6..3f904de67 100644 --- a/src/management-system-v2/app/api/auth/[...nextauth]/auth-options.ts +++ b/src/management-system-v2/lib/auth.ts @@ -1,26 +1,29 @@ -import { AuthOptions, getServerSession } from 'next-auth'; -import Auth0Provider from 'next-auth/providers/auth0'; -import EmailProvider from 'next-auth/providers/email'; +import NextAuth, { NextAuthConfig } from 'next-auth'; +import { JWT } from 'next-auth/jwt'; +import { User as ProviderUser } from '@auth/core/types'; + +import EmailProvider from 'next-auth/providers/nodemailer'; import GoogleProvider from 'next-auth/providers/google'; import DiscordProvider from 'next-auth/providers/discord'; import TwitterProvider from 'next-auth/providers/twitter'; import CredentialsProvider from 'next-auth/providers/credentials'; import { addUser, deleteUser, getUserById, getUserByUsername, updateUser } from '@/lib/data/DTOs'; import { usersMetaObject } from '@/lib/data/legacy/iam/users'; -import { CredentialInput, OAuthProviderButtonStyles } from 'next-auth/providers'; -import Adapter from './adapter'; -import { AuthenticatedUser, User } from '@/lib/data/user-schema'; +import { CredentialInput, OAuthProviderButtonStyles, Provider } from 'next-auth/providers'; +import Adapter from './auth-databse-adapter'; +import { User } from '@/lib/data/user-schema'; import { sendEmail } from '@/lib/email/mailer'; import renderSigninLinkEmail from '@/lib/email/signin-link-email'; import { env } from '@/lib/env-vars'; import { enableUseDB } from 'FeatureFlags'; -const nextAuthOptions: AuthOptions = { +const nextAuthOptions: NextAuthConfig = { secret: env.NEXTAUTH_SECRET, adapter: Adapter, session: { strategy: 'jwt', }, + trustHost: true, providers: [ CredentialsProvider({ name: 'Continue as Guest', @@ -31,6 +34,9 @@ const nextAuthOptions: AuthOptions = { }, }), EmailProvider({ + id: 'email', + name: 'Sign in with E-mail', + server: {}, sendVerificationRequest(params) { const signinMail = renderSigninLinkEmail({ signInLink: params.url, @@ -58,13 +64,12 @@ const nextAuthOptions: AuthOptions = { return token; }, session({ session, token }) { - if (token.user) session.user = token.user; - if (token.csrfToken) session.csrfToken = token.csrfToken; + if (token.user) (session.user as User) = token.user; return session; }, signIn: async ({ account, user: _user, email }) => { - const session = await getServerSession(nextAuthOptions); + const session = await auth(); const sessionUser = session?.user; // Guest account signs in with proper auth @@ -77,10 +82,10 @@ const nextAuthOptions: AuthOptions = { const sessionUserInDb = await getUserById(sessionUser.id); if (!sessionUserInDb || !sessionUserInDb.isGuest) throw new Error('Something went wrong'); - const user = _user as Partial; - const userSigningIn = await getUserById(_user.id); + const userSigningIn = _user.id ? await getUserById(_user.id) : null; if (!userSigningIn) { + const user = _user as Partial; await updateUser(sessionUser.id, { firstName: user.firstName ?? undefined, lastName: user.lastName ?? undefined, @@ -96,7 +101,10 @@ const nextAuthOptions: AuthOptions = { }, }, events: { - async signOut({ token }) { + async signOut(message) { + // since we use jwt message contains a token + const token = (message as { token: JWT }).token; + if (!token.user.isGuest) return; const user = await getUserById(token.user.id); @@ -117,26 +125,6 @@ const nextAuthOptions: AuthOptions = { if (env.NODE_ENV === 'production') { nextAuthOptions.providers.push( - Auth0Provider({ - clientId: env.AUTH0_CLIENT_ID, - clientSecret: env.AUTH0_CLIENT_SECRET, - issuer: env.AUTH0_ISSUER, - authorization: { - params: { - scope: env.AUTH0_SCOPE, - }, - }, - profile(profile) { - return { - id: profile.sub, - email: profile.email, - image: profile.picture, - firstName: profile.given_name, - lastName: profile.family_name, - username: profile.preferred_username, - }; - }, - }), GoogleProvider({ clientId: env.GOOGLE_CLIENT_ID, clientSecret: env.GOOGLE_CLIENT_SECRET, @@ -165,14 +153,13 @@ if (env.NODE_ENV === 'production') { TwitterProvider({ clientId: env.TWITTER_CLIENT_ID, clientSecret: env.TWITTER_CLIENT_SECRET, - version: '2.0', profile({ data, email }) { const nameParts = data.name.split(' '); const fistName = nameParts[0]; const lastName = nameParts.slice(1).join(' '); return { - email, + email: typeof email === 'string' ? email : undefined, username: data.username, id: data.id, image: data.profile_image_url, @@ -244,6 +231,8 @@ if (env.NODE_ENV === 'development') { ); } +export const { auth, handlers, signIn, signOut } = NextAuth(nextAuthOptions); + export type ExtractedProvider = | { id: string; @@ -267,12 +256,10 @@ export type ExtractedProvider = // So we need to manually map the providers // NOTE be careful not to leak any sensitive information export const getProviders = () => - nextAuthOptions.providers.map((provider) => ({ - id: provider.options?.id ?? provider.id, + (nextAuthOptions.providers as Exclude any>[]).map((provider) => ({ + id: provider.options?.id, type: provider.type, name: provider.options?.name ?? provider.name, style: provider.type === 'oauth' ? provider.style : undefined, - credentials: provider.type === 'credentials' ? provider.options.credentials : undefined, - })) as ExtractedProvider[]; - -export default nextAuthOptions; + credentials: provider.type === 'credentials' ? provider?.options?.credentials : undefined, + })); diff --git a/src/management-system-v2/lib/change-email/utils.ts b/src/management-system-v2/lib/change-email/utils.ts index 6b6eae9ae..8dd1047b6 100644 --- a/src/management-system-v2/lib/change-email/utils.ts +++ b/src/management-system-v2/lib/change-email/utils.ts @@ -1,8 +1,8 @@ import 'server-only'; -import nextAuthOptions from '@/app/api/auth/[...nextauth]/auth-options'; import { z } from 'zod'; import { VerificationToken } from '../data/legacy/verification-tokens'; +import { env } from '../env-vars'; async function createHash(message: string) { const msgUint8 = new TextEncoder().encode(message); @@ -14,7 +14,7 @@ async function createHash(message: string) { } export function getTokenHash(token: string) { - return createHash(`${token}${nextAuthOptions.secret}`); + return createHash(`${token}${env.NEXTAUTH_SECRET}`); } export async function createChangeEmailVerificationToken({ diff --git a/src/management-system-v2/lib/data/roles.ts b/src/management-system-v2/lib/data/roles.ts index 45889ccc4..dfd0e423e 100644 --- a/src/management-system-v2/lib/data/roles.ts +++ b/src/management-system-v2/lib/data/roles.ts @@ -1,10 +1,9 @@ 'use server'; import { getCurrentEnvironment } from '@/components/auth'; -import { redirect } from 'next/navigation'; +import { RedirectType, redirect } from 'next/navigation'; import { UserErrorType, userError } from '../user-error'; -import { RedirectType } from 'next/dist/client/components/redirect'; -import Ability, { UnauthorizedError } from '../ability/abilityHelper'; +import { UnauthorizedError } from '../ability/abilityHelper'; import { enableUseDB } from 'FeatureFlags'; import { TRolesModule } from './module-import-types-temp'; diff --git a/src/management-system-v2/lib/next.d.ts b/src/management-system-v2/lib/next.d.ts new file mode 100644 index 000000000..25911fe0a --- /dev/null +++ b/src/management-system-v2/lib/next.d.ts @@ -0,0 +1,4 @@ +type AsyncPageProps = { + searchParams: Promise<{ [key: string]: string | string[] | undefined }>; + params: Promise<{ [slug: string]: string }>; +}; diff --git a/src/management-system-v2/lib/sharing/process-sharing.ts b/src/management-system-v2/lib/sharing/process-sharing.ts index 75b44106f..6fcdb864b 100644 --- a/src/management-system-v2/lib/sharing/process-sharing.ts +++ b/src/management-system-v2/lib/sharing/process-sharing.ts @@ -7,7 +7,7 @@ import { Environment } from '../data/environment-schema'; import { getUserOrganizationEnvironments, getEnvironmentById } from '@/lib/data/DTOs'; import { env } from '@/lib/env-vars'; import { asyncMap } from '../helpers/javascriptHelpers'; -import Ability, { UnauthorizedError } from '../ability/abilityHelper'; +import Ability from '../ability/abilityHelper'; export interface TokenPayload { processId: string | string[]; @@ -48,7 +48,7 @@ export async function generateSharedViewerUrl( ) { const token = generateProcessShareToken(payload); - const header = headers(); + const header = await headers(); const host = header.get('host'); const scheme = header.get('referer')?.split('://')[0]; diff --git a/src/management-system-v2/next.config.js b/src/management-system-v2/next.config.js index d893b3325..d5f454d08 100644 --- a/src/management-system-v2/next.config.js +++ b/src/management-system-v2/next.config.js @@ -3,9 +3,7 @@ const path = require('path'); /** @type {import('next').NextConfig} */ const nextConfig = { output: 'standalone', - experimental: { - outputFileTracingRoot: path.join(__dirname, '../../'), - }, + outputFileTracingRoot: path.join(__dirname, '../../'), /** * * @param {import('webpack').Configuration} config diff --git a/src/management-system-v2/package.json b/src/management-system-v2/package.json index 57786720b..ead17df00 100644 --- a/src/management-system-v2/package.json +++ b/src/management-system-v2/package.json @@ -32,7 +32,7 @@ "@tanstack/react-query": "5.29.2", "@toast-ui/react-editor": "3.2.3", "@types/jsonwebtoken": "^9.0.6", - "antd": "5.16.2", + "antd": "5.23.3", "bcryptjs": "^2.4.3", "boring-avatars": "^1.10.2", "bpmn-js": "17.2.1", @@ -53,15 +53,15 @@ "libphonenumber-js": "^1.11.1", "lru-cache": "^10.1.0", "monaco-editor": "0.47.0", - "next": "14.2.3", - "next-auth": "4.24.7", + "next": "15.1.6", + "next-auth": "beta", "node-cron": "^3.0.3", "nodemailer": "6.9.13", "openapi-fetch": "0.8.2", - "react": "18.2.0", + "react": "19.0.0", "react-blockly": "9.0.0", "react-contenteditable": "^3.3.7", - "react-dom": "18.2.0", + "react-dom": "19.0.0", "react-frame-component": "^5.2.6", "react-icons": "5.1.0", "server-only": "0.0.1", diff --git a/src/management-system-v2/types/next-auth.d.ts b/src/management-system-v2/types/next-auth.d.ts index 30e94fd39..19663f92c 100644 --- a/src/management-system-v2/types/next-auth.d.ts +++ b/src/management-system-v2/types/next-auth.d.ts @@ -9,15 +9,23 @@ declare module 'next-auth' { * Returned by `useSession`, `getSession` and received as a prop on the `SessionProvider` React Context */ interface Session { - csrfToken: string; user: DBUser; } + + /** + * User is the type returned by the profile callback of oauth providers. + * We need to make sure, that they return data in this format + * */ + interface User { + firstName?: string; + lastName?: string; + username?: string; + } } declare module 'next-auth/jwt' { /** Returned by the `jwt` callback and `getToken`, when using JWT sessions */ interface JWT { - csrfToken: string; user: DBUser; } } diff --git a/yarn.lock b/yarn.lock index 400c3f26e..a723f1905 100644 --- a/yarn.lock +++ b/yarn.lock @@ -45,17 +45,26 @@ dependencies: "@ctrl/tinycolor" "^3.6.1" -"@ant-design/colors@^7.0.2": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-7.1.0.tgz#60eadfa2e21871d8948dac5d50b9f056062f8af3" - integrity sha512-MMoDGWn1y9LdQJQSHiCC20x3uZ3CwQnv9QMz6pCmJOrqdgM9YxsoVVY0wtrdXbmfSgnV0KNk6zi09NAhMR2jvg== +"@ant-design/colors@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-7.2.0.tgz#80d7325d20463f09c7839d28da630043dd5c263a" + integrity sha512-bjTObSnZ9C/O8MB/B4OUtd/q9COomuJAR2SYfhxLyHvCKn4EKwCN3e+fWGMo7H5InAyV0wL17jdE9ALrdOW/6A== dependencies: - "@ctrl/tinycolor" "^3.6.1" + "@ant-design/fast-color" "^2.0.6" -"@ant-design/cssinjs@^1.18.5": - version "1.22.0" - resolved "https://registry.yarnpkg.com/@ant-design/cssinjs/-/cssinjs-1.22.0.tgz#c2eea2490d2405e55c64f3c1af1e09524d62a228" - integrity sha512-W9XSFeRPR0mAN3OuxfuS/xhENCYKf+8s+QyNNER0FSWoK9OpISTag6CCweg6lq0hASQ/2Vcza0Z8/kGivCP0Ng== +"@ant-design/cssinjs-utils@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@ant-design/cssinjs-utils/-/cssinjs-utils-1.1.3.tgz#5dd79126057920a6992d57b38dd84e2c0b707977" + integrity sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg== + dependencies: + "@ant-design/cssinjs" "^1.21.0" + "@babel/runtime" "^7.23.2" + rc-util "^5.38.0" + +"@ant-design/cssinjs@^1.21.0", "@ant-design/cssinjs@^1.23.0": + version "1.23.0" + resolved "https://registry.yarnpkg.com/@ant-design/cssinjs/-/cssinjs-1.23.0.tgz#492efba9b15d64f42a4cb5d568cab0607d0c2b16" + integrity sha512-7GAg9bD/iC9ikWatU9ym+P9ugJhi/WbsTWzcKN6T4gU0aehsprtke1UAaaSxxkjjmkJb3llet/rbUSLPgwlY4w== dependencies: "@babel/runtime" "^7.11.1" "@emotion/hash" "^0.8.0" @@ -65,15 +74,22 @@ rc-util "^5.35.0" stylis "^4.3.4" +"@ant-design/fast-color@^2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@ant-design/fast-color/-/fast-color-2.0.6.tgz#ab4d4455c1542c9017d367c2fa8ca3e4215d0ba2" + integrity sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA== + dependencies: + "@babel/runtime" "^7.24.7" + "@ant-design/icons-svg@^4.4.0": version "4.4.2" resolved "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz" integrity sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA== -"@ant-design/icons@^5.3.6": - version "5.5.2" - resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-5.5.2.tgz#c4567943cc2b7c6dbe9cae68c06ffa35f755dc0d" - integrity sha512-xc53rjVBl9v2BqFxUjZGti/RfdDeA8/6KYglmInM2PNqSXc/WfuGDTifJI/ZsokJK0aeKvOIbXc9y2g8ILAhEA== +"@ant-design/icons@^5.6.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-5.6.0.tgz#a35111c214aab3cc96069bb8cbe1954d2a3bc6d8" + integrity sha512-Mb6QkQmPLZsmIHJ6oBsoyKrrT8/kAUdQ6+8q38e2bQSclROi69SiDlI4zZroaIPseae1w110RJH0zGrphAvlSQ== dependencies: "@ant-design/colors" "^7.0.0" "@ant-design/icons-svg" "^4.4.0" @@ -104,6 +120,19 @@ debug "^3.1.0" google-auth-library "^6.1.0" +"@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" + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.2", "@babel/code-frame@^7.8.3": version "7.24.2" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz" @@ -1624,6 +1653,13 @@ dependencies: regenerator-runtime "^0.14.0" +"@babel/runtime@^7.24.7", "@babel/runtime@^7.25.7", "@babel/runtime@^7.26.0": + version "7.26.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.7.tgz#f4e7fe527cd710f8dc0618610b61b4b060c3c341" + integrity sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/template@^7.22.15", "@babel/template@^7.24.0", "@babel/template@^7.3.3": version "7.24.0" resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz" @@ -1863,6 +1899,13 @@ dir-compare "^2.4.0" fs-extra "^9.0.1" +"@emnapi/runtime@^1.2.0": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.3.1.tgz#0fcaa575afc31f455fd33534c19381cfce6c6f60" + integrity sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw== + dependencies: + tslib "^2.4.0" + "@emotion/hash@^0.8.0": version "0.8.0" resolved "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz" @@ -2166,6 +2209,119 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== +"@img/sharp-darwin-arm64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz#ef5b5a07862805f1e8145a377c8ba6e98813ca08" + integrity sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ== + optionalDependencies: + "@img/sharp-libvips-darwin-arm64" "1.0.4" + +"@img/sharp-darwin-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz#e03d3451cd9e664faa72948cc70a403ea4063d61" + integrity sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q== + optionalDependencies: + "@img/sharp-libvips-darwin-x64" "1.0.4" + +"@img/sharp-libvips-darwin-arm64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz#447c5026700c01a993c7804eb8af5f6e9868c07f" + integrity sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg== + +"@img/sharp-libvips-darwin-x64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz#e0456f8f7c623f9dbfbdc77383caa72281d86062" + integrity sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ== + +"@img/sharp-libvips-linux-arm64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz#979b1c66c9a91f7ff2893556ef267f90ebe51704" + integrity sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA== + +"@img/sharp-libvips-linux-arm@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz#99f922d4e15216ec205dcb6891b721bfd2884197" + integrity sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g== + +"@img/sharp-libvips-linux-s390x@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz#f8a5eb1f374a082f72b3f45e2fb25b8118a8a5ce" + integrity sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA== + +"@img/sharp-libvips-linux-x64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz#d4c4619cdd157774906e15770ee119931c7ef5e0" + integrity sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw== + +"@img/sharp-libvips-linuxmusl-arm64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz#166778da0f48dd2bded1fa3033cee6b588f0d5d5" + integrity sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA== + +"@img/sharp-libvips-linuxmusl-x64@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz#93794e4d7720b077fcad3e02982f2f1c246751ff" + integrity sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw== + +"@img/sharp-linux-arm64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz#edb0697e7a8279c9fc829a60fc35644c4839bb22" + integrity sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA== + optionalDependencies: + "@img/sharp-libvips-linux-arm64" "1.0.4" + +"@img/sharp-linux-arm@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz#422c1a352e7b5832842577dc51602bcd5b6f5eff" + integrity sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ== + optionalDependencies: + "@img/sharp-libvips-linux-arm" "1.0.5" + +"@img/sharp-linux-s390x@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz#f5c077926b48e97e4a04d004dfaf175972059667" + integrity sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q== + optionalDependencies: + "@img/sharp-libvips-linux-s390x" "1.0.4" + +"@img/sharp-linux-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz#d806e0afd71ae6775cc87f0da8f2d03a7c2209cb" + integrity sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA== + optionalDependencies: + "@img/sharp-libvips-linux-x64" "1.0.4" + +"@img/sharp-linuxmusl-arm64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz#252975b915894fb315af5deea174651e208d3d6b" + integrity sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" + +"@img/sharp-linuxmusl-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz#3f4609ac5d8ef8ec7dadee80b560961a60fd4f48" + integrity sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-x64" "1.0.4" + +"@img/sharp-wasm32@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz#6f44f3283069d935bb5ca5813153572f3e6f61a1" + integrity sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg== + dependencies: + "@emnapi/runtime" "^1.2.0" + +"@img/sharp-win32-ia32@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz#1a0c839a40c5351e9885628c85f2e5dfd02b52a9" + integrity sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ== + +"@img/sharp-win32-x64@0.33.5": + version "0.33.5" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz#56f00962ff0c4e0eb93d34a047d29fa995e3e342" + integrity sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg== + "@intervolga/optimize-cssnano-plugin@^1.0.5": version "1.0.6" resolved "https://registry.npmjs.org/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz" @@ -2774,10 +2930,10 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@next/env@14.2.3": - version "14.2.3" - resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.3.tgz#d6def29d1c763c0afb397343a15a82e7d92353a0" - integrity sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA== +"@next/env@15.1.6": + version "15.1.6" + resolved "https://registry.yarnpkg.com/@next/env/-/env-15.1.6.tgz#2fa863d8c568a56b1c8328a86e621b8bdd4f2a20" + integrity sha512-d9AFQVPEYNr+aqokIiPLNK/MTyt3DWa/dpKveiAaVccUadFbhFEvY6FXYX2LJO2Hv7PHnLBu2oWwB4uBuHjr/w== "@next/eslint-plugin-next@14.2.3": version "14.2.3" @@ -2786,50 +2942,45 @@ dependencies: glob "10.3.10" -"@next/swc-darwin-arm64@14.2.3": - version "14.2.3" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz#db1a05eb88c0224089b815ad10ac128ec79c2cdb" - integrity sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A== - -"@next/swc-darwin-x64@14.2.3": - version "14.2.3" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.3.tgz#a3f8af05b5f9a52ac3082e66ac29e125ab1d7b9c" - integrity sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA== - -"@next/swc-linux-arm64-gnu@14.2.3": - version "14.2.3" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.3.tgz#4e63f43879285b52554bfd39e6e0cc78a9b27bbf" - integrity sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA== - -"@next/swc-linux-arm64-musl@14.2.3": - version "14.2.3" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.3.tgz#ebdaed26214448b1e6f2c3e8b3cd29bfba387990" - integrity sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw== - -"@next/swc-linux-x64-gnu@14.2.3": - version "14.2.3" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.3.tgz#19e3bcc137c3b582a1ab867106817e5c90a20593" - integrity sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w== - -"@next/swc-linux-x64-musl@14.2.3": - version "14.2.3" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.3.tgz#794a539b98e064169cf0ff7741b2a4fb16adec7d" - integrity sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ== - -"@next/swc-win32-arm64-msvc@14.2.3": - version "14.2.3" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.3.tgz#eda9fa0fbf1ff9113e87ac2668ee67ce9e5add5a" - integrity sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A== - -"@next/swc-win32-ia32-msvc@14.2.3": - version "14.2.3" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.3.tgz#7c1190e3f640ab16580c6bdbd7d0e766b9920457" - integrity sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw== - -"@next/swc-win32-x64-msvc@14.2.3": - version "14.2.3" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.3.tgz#2be4e39ee25bfbd85be78eea17c0e7751dc4323c" - integrity sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA== +"@next/swc-darwin-arm64@15.1.6": + version "15.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.6.tgz#92f99badab6cb41f4c5c11a3feffa574bd6a9276" + integrity sha512-u7lg4Mpl9qWpKgy6NzEkz/w0/keEHtOybmIl0ykgItBxEM5mYotS5PmqTpo+Rhg8FiOiWgwr8USxmKQkqLBCrw== + +"@next/swc-darwin-x64@15.1.6": + version "15.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.6.tgz#f56f4f8d5f6cb5d3915912ac95590d387f897da5" + integrity sha512-x1jGpbHbZoZ69nRuogGL2MYPLqohlhnT9OCU6E6QFewwup+z+M6r8oU47BTeJcWsF2sdBahp5cKiAcDbwwK/lg== + +"@next/swc-linux-arm64-gnu@15.1.6": + version "15.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.6.tgz#0aaffae519c93d1006419d7b98c34ebfd80ecacd" + integrity sha512-jar9sFw0XewXsBzPf9runGzoivajeWJUc/JkfbLTC4it9EhU8v7tCRLH7l5Y1ReTMN6zKJO0kKAGqDk8YSO2bg== + +"@next/swc-linux-arm64-musl@15.1.6": + version "15.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.6.tgz#e7398d3d31ca60033f708a718cd6c31edcee2e9a" + integrity sha512-+n3u//bfsrIaZch4cgOJ3tXCTbSxz0s6brJtU3SzLOvkJlPQMJ+eHVRi6qM2kKKKLuMY+tcau8XD9CJ1OjeSQQ== + +"@next/swc-linux-x64-gnu@15.1.6": + version "15.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.6.tgz#d76c72508f4d79d6016cab0c52640b93e590cffb" + integrity sha512-SpuDEXixM3PycniL4iVCLyUyvcl6Lt0mtv3am08sucskpG0tYkW1KlRhTgj4LI5ehyxriVVcfdoxuuP8csi3kQ== + +"@next/swc-linux-x64-musl@15.1.6": + version "15.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.6.tgz#0b8ba80a53e65bf8970ed11ea923001e2512c7cb" + integrity sha512-L4druWmdFSZIIRhF+G60API5sFB7suTbDRhYWSjiw0RbE+15igQvE2g2+S973pMGvwN3guw7cJUjA/TmbPWTHQ== + +"@next/swc-win32-arm64-msvc@15.1.6": + version "15.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.6.tgz#81b5dbbfdada2c05deef688e799af4a24097b65f" + integrity sha512-s8w6EeqNmi6gdvM19tqKKWbCyOBvXFbndkGHl+c9YrzsLARRdCHsD9S1fMj8gsXm9v8vhC8s3N8rjuC/XrtkEg== + +"@next/swc-win32-x64-msvc@15.1.6": + version "15.1.6" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.6.tgz#131993c45ffd124fb4b15258e2f3f9669c143e3c" + integrity sha512-6xomMuu54FAFxttYr5PJbEfu96godcxBTRk1OhAvJq0/EnmFU/Ybiax30Snis4vdWZ9LGpf7Roy5fSs7v/5ROQ== "@node-ipc/js-queue@2.0.3": version "2.0.3" @@ -2900,6 +3051,11 @@ resolved "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.1.1.tgz" integrity sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA== +"@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== + "@pkgjs/parseargs@^0.11.0": version "0.11.0" resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" @@ -2982,13 +3138,20 @@ "@babel/runtime" "^7.13.10" "@radix-ui/react-compose-refs" "1.0.1" -"@rc-component/color-picker@~1.5.3": - version "1.5.3" - resolved "https://registry.yarnpkg.com/@rc-component/color-picker/-/color-picker-1.5.3.tgz#f3b0e14bb67ec5ee77d1fd5d261f63dd4fd00449" - integrity sha512-+tGGH3nLmYXTalVe0L8hSZNs73VTP5ueSHwUlDC77KKRaN7G4DS4wcpG5DTDzdcV/Yas+rzA6UGgIyzd8fS4cw== +"@rc-component/async-validator@^5.0.3": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@rc-component/async-validator/-/async-validator-5.0.4.tgz#5291ad92f00a14b6766fc81735c234277f83e948" + integrity sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg== + dependencies: + "@babel/runtime" "^7.24.4" + +"@rc-component/color-picker@~2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@rc-component/color-picker/-/color-picker-2.0.1.tgz#6b9b96152466a9d4475cbe72b40b594bfda164be" + integrity sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q== dependencies: + "@ant-design/fast-color" "^2.0.6" "@babel/runtime" "^7.23.6" - "@ctrl/tinycolor" "^3.6.1" classnames "^2.2.6" rc-util "^5.38.1" @@ -3025,10 +3188,19 @@ classnames "^2.3.2" rc-util "^5.24.4" -"@rc-component/tour@~1.14.2": - version "1.14.2" - resolved "https://registry.yarnpkg.com/@rc-component/tour/-/tour-1.14.2.tgz#142f0973975eb0e3af3c75aa868ffc9d8ba27cae" - integrity sha512-A75DZ8LVvahBIvxooj3Gvf2sxe+CGOkmzPNX7ek0i0AJHyKZ1HXe5ieIGo3m0FMdZfVOlbCJ952Duq8VKAHk6g== +"@rc-component/qrcode@~1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@rc-component/qrcode/-/qrcode-1.0.0.tgz#48a8de5eb11d0e65926f1377c4b1ef4c888997f5" + integrity sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg== + dependencies: + "@babel/runtime" "^7.24.7" + classnames "^2.3.2" + rc-util "^5.38.0" + +"@rc-component/tour@~1.15.1": + version "1.15.1" + resolved "https://registry.yarnpkg.com/@rc-component/tour/-/tour-1.15.1.tgz#9b79808254185fc19e964172d99e25e8c6800ded" + integrity sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ== dependencies: "@babel/runtime" "^7.18.0" "@rc-component/portal" "^1.0.0-9" @@ -3048,6 +3220,18 @@ rc-resize-observer "^1.3.1" rc-util "^5.38.0" +"@rc-component/trigger@^2.2.6": + version "2.2.6" + resolved "https://registry.yarnpkg.com/@rc-component/trigger/-/trigger-2.2.6.tgz#bfe6602313b3fadd659687746511f813299d5ea4" + integrity sha512-/9zuTnWwhQ3S3WT1T8BubuFTT46kvnXgaERR9f4BTKyn61/wpf/BvbImzYBubzJibU707FxwbKszLlHjcLiv1Q== + dependencies: + "@babel/runtime" "^7.23.2" + "@rc-component/portal" "^1.1.0" + classnames "^2.3.2" + rc-motion "^2.0.0" + rc-resize-observer "^1.3.1" + rc-util "^5.44.0" + "@react-email/body@0.0.7": version "0.0.7" resolved "https://registry.npmjs.org/@react-email/body/-/body-0.0.7.tgz" @@ -3336,18 +3520,17 @@ string-width "^4.2.3" strip-ansi "^6.0.1" -"@swc/counter@^0.1.3": +"@swc/counter@0.1.3": version "0.1.3" resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== -"@swc/helpers@0.5.5": - version "0.5.5" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.5.tgz#12689df71bfc9b21c4f4ca00ae55f2f16c8b77c0" - integrity sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A== +"@swc/helpers@0.5.15": + version "0.5.15" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.15.tgz#79efab344c5819ecf83a43f3f9f811fc84b516d7" + integrity sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g== dependencies: - "@swc/counter" "^0.1.3" - tslib "^2.4.0" + tslib "^2.8.0" "@szmarczak/http-timer@^1.1.2": version "1.1.2" @@ -3520,6 +3703,11 @@ dependencies: "@types/node" "*" +"@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/cookie@^0.4.1": version "0.4.1" resolved "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz" @@ -5092,59 +5280,60 @@ ansi-styles@^6.0.0, ansi-styles@^6.1.0: resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== -antd@5.16.2: - version "5.16.2" - resolved "https://registry.yarnpkg.com/antd/-/antd-5.16.2.tgz#30ef0294699bc12b4fce5ca30baa5779c2bd2659" - integrity sha512-46BC1IaCRzkdcTAs1TuIZ1D56JrIRP5yWGrlfV+kGjro1c2dVaQP7yGXA2/m29uF41TqptxOYl36opY5ydN++A== +antd@5.23.3: + version "5.23.3" + resolved "https://registry.yarnpkg.com/antd/-/antd-5.23.3.tgz#24f62d4bf521d8d69e8cdc1ac46faf5be6a0c461" + integrity sha512-xDvwl7C43/NZ9rTOS1bkbuKoSxqZKf6FlaSW/BRsV8QST3Ce2jGx7dJzYahKIZwe3WNSgvEXAlTrckBHMKHcgQ== dependencies: - "@ant-design/colors" "^7.0.2" - "@ant-design/cssinjs" "^1.18.5" - "@ant-design/icons" "^5.3.6" + "@ant-design/colors" "^7.2.0" + "@ant-design/cssinjs" "^1.23.0" + "@ant-design/cssinjs-utils" "^1.1.3" + "@ant-design/fast-color" "^2.0.6" + "@ant-design/icons" "^5.6.0" "@ant-design/react-slick" "~1.1.2" - "@babel/runtime" "^7.24.4" - "@ctrl/tinycolor" "^3.6.1" - "@rc-component/color-picker" "~1.5.3" + "@babel/runtime" "^7.26.0" + "@rc-component/color-picker" "~2.0.1" "@rc-component/mutate-observer" "^1.1.0" - "@rc-component/tour" "~1.14.2" - "@rc-component/trigger" "^2.1.1" + "@rc-component/qrcode" "~1.0.0" + "@rc-component/tour" "~1.15.1" + "@rc-component/trigger" "^2.2.6" classnames "^2.5.1" copy-to-clipboard "^3.3.3" - dayjs "^1.11.10" - qrcode.react "^3.1.0" - rc-cascader "~3.24.1" - rc-checkbox "~3.2.0" - rc-collapse "~3.7.3" - rc-dialog "~9.4.0" - rc-drawer "~7.1.0" - rc-dropdown "~4.2.0" - rc-field-form "~1.44.0" - rc-image "~7.6.0" - rc-input "~1.4.5" - rc-input-number "~9.0.0" - rc-mentions "~2.11.1" - rc-menu "~9.13.0" - rc-motion "^2.9.0" - rc-notification "~5.4.0" - rc-pagination "~4.0.4" - rc-picker "~4.3.2" + dayjs "^1.11.11" + rc-cascader "~3.33.0" + rc-checkbox "~3.5.0" + rc-collapse "~3.9.0" + rc-dialog "~9.6.0" + rc-drawer "~7.2.0" + rc-dropdown "~4.2.1" + rc-field-form "~2.7.0" + rc-image "~7.11.0" + rc-input "~1.7.2" + rc-input-number "~9.4.0" + rc-mentions "~2.19.1" + rc-menu "~9.16.0" + rc-motion "^2.9.5" + rc-notification "~5.6.2" + rc-pagination "~5.0.0" + rc-picker "~4.9.2" rc-progress "~4.0.0" - rc-rate "~2.12.0" - rc-resize-observer "^1.4.0" - rc-segmented "~2.3.0" - rc-select "~14.13.1" - rc-slider "~10.5.0" + rc-rate "~2.13.0" + rc-resize-observer "^1.4.3" + rc-segmented "~2.7.0" + rc-select "~14.16.6" + rc-slider "~11.1.8" rc-steps "~6.0.1" rc-switch "~4.1.0" - rc-table "~7.45.4" - rc-tabs "~14.1.1" - rc-textarea "~1.6.3" - rc-tooltip "~6.2.0" - rc-tree "~5.8.5" - rc-tree-select "~5.19.0" - rc-upload "~4.5.2" - rc-util "^5.39.1" + rc-table "~7.50.2" + rc-tabs "~15.5.0" + rc-textarea "~1.9.0" + rc-tooltip "~6.3.2" + rc-tree "~5.13.0" + rc-tree-select "~5.27.0" + rc-upload "~4.8.1" + rc-util "^5.44.3" scroll-into-view-if-needed "^3.1.0" - throttle-debounce "^5.0.0" + throttle-debounce "^5.0.2" any-promise@^1.0.0: version "1.3.0" @@ -5306,11 +5495,6 @@ array-includes@^3.1.6, array-includes@^3.1.7: get-intrinsic "^1.2.4" is-string "^1.0.7" -array-tree-filter@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190" - integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw== - array-union@^1.0.1, array-union@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz" @@ -5540,11 +5724,6 @@ async-retry@^1.3.3: dependencies: retry "0.13.1" -async-validator@^4.1.0: - version "4.2.5" - resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-4.2.5.tgz#c96ea3332a521699d0afaaceed510a54656c6339" - integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg== - async@^2.1.4, async@^2.6.4: version "2.6.4" resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz" @@ -7610,7 +7789,7 @@ color-name@^1.0.0, color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.6.0: +color-string@^1.6.0, 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== @@ -7626,6 +7805,14 @@ color@^3.0.0, color@^3.1.3: color-convert "^1.9.3" color-string "^1.6.0" +color@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== + dependencies: + color-convert "^2.0.1" + color-string "^1.9.0" + colorette@^2.0.20: version "2.0.20" resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" @@ -7962,6 +8149,11 @@ cookie@0.6.0: resolved "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz" integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== +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.5.0: version "0.5.0" resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" @@ -8784,7 +8976,7 @@ data-view-byte-offset@^1.0.0: es-errors "^1.3.0" is-data-view "^1.0.1" -dayjs@^1.11.10: +dayjs@^1.11.11: version "1.11.13" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== @@ -9093,7 +9285,7 @@ detect-indent@^4.0.0: dependencies: repeating "^2.0.0" -detect-libc@^2.0.0: +detect-libc@^2.0.0, detect-libc@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== @@ -14838,6 +15030,11 @@ jose@^4.11.4, jose@^4.15.5: resolved "https://registry.npmjs.org/jose/-/jose-4.15.5.tgz" integrity sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg== +jose@^5.9.3: + version "5.9.6" + resolved "https://registry.yarnpkg.com/jose/-/jose-5.9.6.tgz#77f1f901d88ebdc405e57cce08d2a91f47521883" + integrity sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ== + js-beautify@^1.14.11, js-beautify@^1.6.12, js-beautify@^1.6.14: version "1.15.1" resolved "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.1.tgz" @@ -16728,43 +16925,35 @@ next-auth@4.23.1: preact-render-to-string "^5.1.19" uuid "^8.3.2" -next-auth@4.24.7: - version "4.24.7" - resolved "https://registry.yarnpkg.com/next-auth/-/next-auth-4.24.7.tgz#0a14c1e35b4a2c0c1ecff95c295b74bd48d3817a" - integrity sha512-iChjE8ov/1K/z98gdKbn2Jw+2vLgJtVV39X+rCP5SGnVQuco7QOr19FRNGMIrD8d3LYhHWV9j9sKLzq1aDWWQQ== +next-auth@beta: + 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: - "@babel/runtime" "^7.20.13" - "@panva/hkdf" "^1.0.2" - cookie "^0.5.0" - jose "^4.15.5" - oauth "^0.9.15" - openid-client "^5.4.0" - preact "^10.6.3" - preact-render-to-string "^5.1.19" - uuid "^8.3.2" + "@auth/core" "0.37.2" -next@14.2.3: - version "14.2.3" - resolved "https://registry.yarnpkg.com/next/-/next-14.2.3.tgz#f117dd5d5f20c307e7b8e4f9c1c97d961008925d" - integrity sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A== +next@15.1.6: + version "15.1.6" + resolved "https://registry.yarnpkg.com/next/-/next-15.1.6.tgz#ce22fd0a8f36da1fc4aba86e3ec7e98eb248c555" + integrity sha512-Hch4wzbaX0vKQtalpXvUiw5sYivBy4cm5rzUKrBnUB/y436LGrvOUqYvlSeNVCWFO/770gDlltR9gqZH62ct4Q== dependencies: - "@next/env" "14.2.3" - "@swc/helpers" "0.5.5" + "@next/env" "15.1.6" + "@swc/counter" "0.1.3" + "@swc/helpers" "0.5.15" busboy "1.6.0" caniuse-lite "^1.0.30001579" - graceful-fs "^4.2.11" postcss "8.4.31" - styled-jsx "5.1.1" + styled-jsx "5.1.6" optionalDependencies: - "@next/swc-darwin-arm64" "14.2.3" - "@next/swc-darwin-x64" "14.2.3" - "@next/swc-linux-arm64-gnu" "14.2.3" - "@next/swc-linux-arm64-musl" "14.2.3" - "@next/swc-linux-x64-gnu" "14.2.3" - "@next/swc-linux-x64-musl" "14.2.3" - "@next/swc-win32-arm64-msvc" "14.2.3" - "@next/swc-win32-ia32-msvc" "14.2.3" - "@next/swc-win32-x64-msvc" "14.2.3" + "@next/swc-darwin-arm64" "15.1.6" + "@next/swc-darwin-x64" "15.1.6" + "@next/swc-linux-arm64-gnu" "15.1.6" + "@next/swc-linux-arm64-musl" "15.1.6" + "@next/swc-linux-x64-gnu" "15.1.6" + "@next/swc-linux-x64-musl" "15.1.6" + "@next/swc-win32-arm64-msvc" "15.1.6" + "@next/swc-win32-x64-msvc" "15.1.6" + sharp "^0.33.5" nice-try@^1.0.4: version "1.0.5" @@ -17099,6 +17288,11 @@ oauth-sign@~0.9.0: resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== +oauth4webapi@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/oauth4webapi/-/oauth4webapi-3.1.4.tgz#50695385cea8e7a43f3e2e23bc33ea27faece4a7" + integrity sha512-eVfN3nZNbok2s/ROifO0UAc5G8nRoLSbrcKJ09OqmucgnhXEfdIQOR4gq1eJH1rN3gV7rNw62bDEgftsgFtBEg== + oauth@^0.9.15: version "0.9.15" resolved "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz" @@ -18481,6 +18675,13 @@ postcss@^8.4.14: picocolors "^1.0.0" source-map-js "^1.2.0" +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-render-to-string@^5.1.19: version "5.2.6" resolved "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz" @@ -18488,6 +18689,11 @@ preact-render-to-string@^5.1.19: 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== + preact@^10.11.2, preact@^10.6.3: version "10.20.2" resolved "https://registry.npmjs.org/preact/-/preact-10.20.2.tgz" @@ -18908,11 +19114,6 @@ q@1.x, q@^1.1.2: resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== -qrcode.react@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/qrcode.react/-/qrcode.react-3.2.0.tgz#97daabd4ff641a3f3c678f87be106ebc55f9cd07" - integrity sha512-YietHHltOHA4+l5na1srdaMx4sVSOjV9tamHs+mwiLWAMr6QVACRUw1Neax5CptFILcNoITctJY0Ipyn5enQ8g== - qs@6.11.0: version "6.11.0" resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" @@ -19025,41 +19226,40 @@ raw-body@2.5.2, raw-body@^2.3.3: iconv-lite "0.4.24" unpipe "1.0.0" -rc-cascader@~3.24.1: - version "3.24.1" - resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-3.24.1.tgz#603bac4427f8865b6ec056705bae8485c65d7798" - integrity sha512-RgKuYgEGPx+6wCgguYFHjMsDZdCyydZd58YJRCfYQ8FObqLnZW0x/vUcEyPjhWIj1EhjV958IcR+NFPDbbj9kg== +rc-cascader@~3.33.0: + version "3.33.0" + resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-3.33.0.tgz#acdeafebbdf7f7296f4d84980d02cf0835f93910" + integrity sha512-JvZrMbKBXIbEDmpIORxqvedY/bck6hGbs3hxdWT8eS9wSQ1P7//lGxbyKjOSyQiVBbgzNWriSe6HoMcZO/+0rQ== dependencies: - "@babel/runtime" "^7.12.5" - array-tree-filter "^2.1.0" + "@babel/runtime" "^7.25.7" classnames "^2.3.1" - rc-select "~14.13.0" - rc-tree "~5.8.1" - rc-util "^5.37.0" + rc-select "~14.16.2" + rc-tree "~5.13.0" + rc-util "^5.43.0" -rc-checkbox@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/rc-checkbox/-/rc-checkbox-3.2.0.tgz#04f83b7f2bf63eaf0e2da25e947b88a0a6321b5a" - integrity sha512-8inzw4y9dAhZmv/Ydl59Qdy5tdp9CKg4oPVcRigi+ga/yKPZS5m5SyyQPtYSgbcqHRYOdUhiPSeKfktc76du1A== +rc-checkbox@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/rc-checkbox/-/rc-checkbox-3.5.0.tgz#3ae2441e3a321774d390f76539e706864fcf5ff0" + integrity sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.3.2" rc-util "^5.25.2" -rc-collapse@~3.7.3: - version "3.7.3" - resolved "https://registry.yarnpkg.com/rc-collapse/-/rc-collapse-3.7.3.tgz#68161683d8fd1004bef4eb281fc106f3c8dc16eb" - integrity sha512-60FJcdTRn0X5sELF18TANwtVi7FtModq649H11mYF1jh83DniMoM4MqY627sEKRCTm4+WXfGDcB7hY5oW6xhyw== +rc-collapse@~3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/rc-collapse/-/rc-collapse-3.9.0.tgz#972404ce7724e1c9d1d2476543e1175404a36806" + integrity sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA== dependencies: "@babel/runtime" "^7.10.1" classnames "2.x" rc-motion "^2.3.4" rc-util "^5.27.0" -rc-dialog@~9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/rc-dialog/-/rc-dialog-9.4.0.tgz#194c107d34cb36a56f1db4a49dc73f6d59eeae85" - integrity sha512-AScCexaLACvf8KZRqCPz12BJ8olszXOS4lKlkMyzDQHS1m0zj1KZMYgmMCh39ee0Dcv8kyrj8mTqxuLyhH+QuQ== +rc-dialog@~9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/rc-dialog/-/rc-dialog-9.6.0.tgz#dc7a255c6ad1cb56021c3a61c7de86ee88c7c371" + integrity sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg== dependencies: "@babel/runtime" "^7.10.1" "@rc-component/portal" "^1.0.0-8" @@ -19067,10 +19267,10 @@ rc-dialog@~9.4.0: rc-motion "^2.3.0" rc-util "^5.21.0" -rc-drawer@~7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/rc-drawer/-/rc-drawer-7.1.0.tgz#2beabb8bab1784aea255d0d850bc206c3dc715da" - integrity sha512-nBE1rF5iZvpavoyqhSSz2mk/yANltA7g3aF0U45xkx381n3we/RKs9cJfNKp9mSWCedOKWt9FLEwZDaAaOGn2w== +rc-drawer@~7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/rc-drawer/-/rc-drawer-7.2.0.tgz#8d7de2f1fd52f3ac5a25f54afbb8ac14c62e5663" + integrity sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg== dependencies: "@babel/runtime" "^7.23.9" "@rc-component/portal" "^1.1.1" @@ -19088,64 +19288,74 @@ rc-dropdown@~4.2.0: classnames "^2.2.6" rc-util "^5.17.0" -rc-field-form@~1.44.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/rc-field-form/-/rc-field-form-1.44.0.tgz#a66548790fbcee8c5432e9f2efcd1b46b090984b" - integrity sha512-el7w87fyDUsca63Y/s8qJcq9kNkf/J5h+iTdqG5WsSHLH0e6Usl7QuYSmSVzJMgtp40mOVZIY/W/QP9zwrp1FA== +rc-dropdown@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/rc-dropdown/-/rc-dropdown-4.2.1.tgz#44729eb2a4272e0353d31ac060da21e606accb1c" + integrity sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA== + dependencies: + "@babel/runtime" "^7.18.3" + "@rc-component/trigger" "^2.0.0" + classnames "^2.2.6" + rc-util "^5.44.1" + +rc-field-form@~2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/rc-field-form/-/rc-field-form-2.7.0.tgz#22413e793f35bfc1f35b0ec462774d7277f5a399" + integrity sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA== dependencies: "@babel/runtime" "^7.18.0" - async-validator "^4.1.0" + "@rc-component/async-validator" "^5.0.3" rc-util "^5.32.2" -rc-image@~7.6.0: - version "7.6.0" - resolved "https://registry.yarnpkg.com/rc-image/-/rc-image-7.6.0.tgz#2867087b77c8595ea9eb37d18ca863e47904b191" - integrity sha512-tL3Rvd1sS+frZQ01i+tkeUPaOeFz2iG9/scAt/Cfs0hyCRVA/w0Pu1J/JxIX8blalvmHE0bZQRYdOmRAzWu4Hg== +rc-image@~7.11.0: + version "7.11.0" + resolved "https://registry.yarnpkg.com/rc-image/-/rc-image-7.11.0.tgz#18c77ea557a6fdbe26856c688a9aace1505c0e77" + integrity sha512-aZkTEZXqeqfPZtnSdNUnKQA0N/3MbgR7nUnZ+/4MfSFWPFHZau4p5r5ShaI0KPEMnNjv4kijSCFq/9wtJpwykw== dependencies: "@babel/runtime" "^7.11.2" "@rc-component/portal" "^1.0.2" classnames "^2.2.6" - rc-dialog "~9.4.0" + rc-dialog "~9.6.0" rc-motion "^2.6.2" rc-util "^5.34.1" -rc-input-number@~9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/rc-input-number/-/rc-input-number-9.0.0.tgz#47da6eaf95b0cf566fcdf68196c4dc82b8c8f166" - integrity sha512-RfcDBDdWFFetouWFXBA+WPEC8LzBXyngr9b+yTLVIygfFu7HiLRGn/s/v9wwno94X7KFvnb28FNynMGj9XJlDQ== +rc-input-number@~9.4.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/rc-input-number/-/rc-input-number-9.4.0.tgz#65caf04f1b6d05f47e141b1f5f484724c1f7fd5a" + integrity sha512-Tiy4DcXcFXAf9wDhN8aUAyMeCLHJUHA/VA/t7Hj8ZEx5ETvxG7MArDOSE6psbiSCo+vJPm4E3fGN710ITVn6GA== dependencies: "@babel/runtime" "^7.10.1" "@rc-component/mini-decimal" "^1.0.1" classnames "^2.2.5" - rc-input "~1.4.0" - rc-util "^5.28.0" + rc-input "~1.7.1" + rc-util "^5.40.1" -rc-input@~1.4.0, rc-input@~1.4.5: - version "1.4.5" - resolved "https://registry.yarnpkg.com/rc-input/-/rc-input-1.4.5.tgz#1f2f13fb1adb15fce5936aebcfab354f41b4f348" - integrity sha512-AjzykhwnwYTRSwwgCu70CGKBIAv6bP2nqnFptnNTprph/TF1BAs0Qxl91mie/BR6n827WIJB6ZjaRf9iiMwAfw== +rc-input@~1.7.1, rc-input@~1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/rc-input/-/rc-input-1.7.2.tgz#a41d5ca14021475d3998deb09630ee46268610af" + integrity sha512-g3nYONnl4edWj2FfVoxsU3Ec4XTE+Hb39Kfh2MFxMZjp/0gGyPUgy/v7ZhS27ZxUFNkuIDYXm9PJsLyJbtg86A== dependencies: "@babel/runtime" "^7.11.1" classnames "^2.2.1" rc-util "^5.18.1" -rc-mentions@~2.11.1: - version "2.11.1" - resolved "https://registry.yarnpkg.com/rc-mentions/-/rc-mentions-2.11.1.tgz#3e742d4b558965701021cff75b84af6cd4744ed3" - integrity sha512-upb4AK1SRFql7qGnbLEvJqLMugVVIyjmwBJW9L0eLoN9po4JmJZaBzmKA4089fNtsU8k6l/tdZiVafyooeKnLw== +rc-mentions@~2.19.1: + version "2.19.1" + resolved "https://registry.yarnpkg.com/rc-mentions/-/rc-mentions-2.19.1.tgz#3fd0dd0bf3dd63afdb6a21750cbae81f3824b9c4" + integrity sha512-KK3bAc/bPFI993J3necmaMXD2reZTzytZdlTvkeBbp50IGH1BDPDvxLdHDUrpQx2b2TGaVJsn+86BvYa03kGqA== dependencies: "@babel/runtime" "^7.22.5" "@rc-component/trigger" "^2.0.0" classnames "^2.2.6" - rc-input "~1.4.0" - rc-menu "~9.13.0" - rc-textarea "~1.6.1" + rc-input "~1.7.1" + rc-menu "~9.16.0" + rc-textarea "~1.9.0" rc-util "^5.34.1" -rc-menu@~9.13.0: - version "9.13.0" - resolved "https://registry.yarnpkg.com/rc-menu/-/rc-menu-9.13.0.tgz#55426531af5fd0a2a0e0a50020cbd002b231edf9" - integrity sha512-1l8ooCB3HcYJKCltC/s7OxRKRjgymdl9htrCeGZcXNaMct0RxZRK6OPV3lPhVksIvAGMgzPd54ClpZ5J4b8cZA== +rc-menu@~9.16.0: + version "9.16.0" + resolved "https://registry.yarnpkg.com/rc-menu/-/rc-menu-9.16.0.tgz#53647f60f513bfa09bfc1accbd96a8df24900121" + integrity sha512-vAL0yqPkmXWk3+YKRkmIR8TYj3RVdEt3ptG2jCJXWNAvQbT0VJJdRyHZ7kG/l1JsZlB+VJq/VcYOo69VR4oD+w== dependencies: "@babel/runtime" "^7.10.1" "@rc-component/trigger" "^2.0.0" @@ -19163,10 +19373,19 @@ rc-motion@^2.0.0, rc-motion@^2.0.1, rc-motion@^2.3.0, rc-motion@^2.3.4, rc-motio classnames "^2.2.1" rc-util "^5.21.0" -rc-notification@~5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/rc-notification/-/rc-notification-5.4.0.tgz#c5ea20bfe4ed2dbacc7ef945777626c050945db8" - integrity sha512-li19y9RoYJciF3WRFvD+DvWS70jdL8Fr+Gfb/OshK+iY6iTkwzoigmSIp76/kWh5tF5i/i9im12X3nsF85GYdA== +rc-motion@^2.9.5: + version "2.9.5" + resolved "https://registry.yarnpkg.com/rc-motion/-/rc-motion-2.9.5.tgz#12c6ead4fd355f94f00de9bb4f15df576d677e0c" + integrity sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-util "^5.44.0" + +rc-notification@~5.6.2: + version "5.6.2" + resolved "https://registry.yarnpkg.com/rc-notification/-/rc-notification-5.6.2.tgz#8525b32d49dd96ec974acae61d1d1eabde61463a" + integrity sha512-Id4IYMoii3zzrG0lB0gD6dPgJx4Iu95Xu0BQrhHIbp7ZnAZbLqdqQ73aIWH0d0UFcElxwaKjnzNovTjo7kXz7g== dependencies: "@babel/runtime" "^7.10.1" classnames "2.x" @@ -19183,26 +19402,26 @@ rc-overflow@^1.3.1, rc-overflow@^1.3.2: rc-resize-observer "^1.0.0" rc-util "^5.37.0" -rc-pagination@~4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/rc-pagination/-/rc-pagination-4.0.4.tgz#ea401388ae86eac17ed5b41212d487f12b65b773" - integrity sha512-GGrLT4NgG6wgJpT/hHIpL9nELv27A1XbSZzECIuQBQTVSf4xGKxWr6I/jhpRPauYEWEbWVw22ObG6tJQqwJqWQ== +rc-pagination@~5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/rc-pagination/-/rc-pagination-5.0.0.tgz#7633e1f0ff372ad78c03e86bcef78b660374d196" + integrity sha512-QjrPvbAQwps93iluvFM62AEYglGYhWW2q/nliQqmvkTi4PXP4HHoh00iC1Sa5LLVmtWQHmG73fBi2x6H6vFHRg== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.3.2" rc-util "^5.38.0" -rc-picker@~4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-4.3.2.tgz#b62e02122b3b6043a5a347674e5d003b8e51873e" - integrity sha512-2NtobLxG2YqllXn4YczbupgIH6PSqzjCfFCnGlgPIY9k0HZti8WmBPjS1OD9JKQl+Tdg0pMVUeTEc07y4X9ZRQ== +rc-picker@~4.9.2: + version "4.9.2" + resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-4.9.2.tgz#4dd8e23fcab107b44f0604d684c6ba12169ea35e" + integrity sha512-SLW4PRudODOomipKI0dvykxW4P8LOqtMr17MOaLU6NQJhkh9SZeh44a/8BMxwv5T6e3kiIeYc9k5jFg2Mv35Pg== dependencies: - "@babel/runtime" "^7.10.1" + "@babel/runtime" "^7.24.7" "@rc-component/trigger" "^2.0.0" classnames "^2.2.1" rc-overflow "^1.3.2" rc-resize-observer "^1.4.0" - rc-util "^5.38.1" + rc-util "^5.43.0" rc-progress@~4.0.0: version "4.0.0" @@ -19213,10 +19432,10 @@ rc-progress@~4.0.0: classnames "^2.2.6" rc-util "^5.16.1" -rc-rate@~2.12.0: - version "2.12.0" - resolved "https://registry.yarnpkg.com/rc-rate/-/rc-rate-2.12.0.tgz#0182deffed3b009cdcc61660da8746c39ed91ed5" - integrity sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg== +rc-rate@~2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/rc-rate/-/rc-rate-2.13.0.tgz#642f591ccf55c3a5d84d8d212caf1f7951d203a8" + integrity sha512-oxvx1Q5k5wD30sjN5tqAyWTvJfLNNJn7Oq3IeS4HxWfAiC4BOXMITNAsw7u/fzdtO4MS8Ki8uRLOzcnEuoQiAw== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.2.5" @@ -19232,20 +19451,30 @@ rc-resize-observer@^1.0.0, rc-resize-observer@^1.1.0, rc-resize-observer@^1.3.1, rc-util "^5.38.0" resize-observer-polyfill "^1.5.1" -rc-segmented@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/rc-segmented/-/rc-segmented-2.3.0.tgz#b3fe080fb434a266c02e30bb62a47d2c6e094341" - integrity sha512-I3FtM5Smua/ESXutFfb8gJ8ZPcvFR+qUgeeGFQHBOvRiRKyAk4aBE5nfqrxXx+h8/vn60DQjOt6i4RNtrbOobg== +rc-resize-observer@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/rc-resize-observer/-/rc-resize-observer-1.4.3.tgz#4fd41fa561ba51362b5155a07c35d7c89a1ea569" + integrity sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ== + dependencies: + "@babel/runtime" "^7.20.7" + classnames "^2.2.1" + rc-util "^5.44.1" + resize-observer-polyfill "^1.5.1" + +rc-segmented@~2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/rc-segmented/-/rc-segmented-2.7.0.tgz#f56c2044abf8f03958b3a9a9d32987f10dcc4fc4" + integrity sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA== dependencies: "@babel/runtime" "^7.11.1" classnames "^2.2.1" rc-motion "^2.4.4" rc-util "^5.17.0" -rc-select@~14.13.0, rc-select@~14.13.1: - version "14.13.4" - resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-14.13.4.tgz#b9fcc54c125bef968cf4428d6f7d7b4483f2e87d" - integrity sha512-nXFsS53RxCP6ePeKhOj3gvgdNpTqdQnNKhipGrV/z+pB3Md5heGfV72YX5Wfb1A7Ca1QkbVTPFLJh+A8WYFOSA== +rc-select@~14.16.2, rc-select@~14.16.6: + version "14.16.6" + resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-14.16.6.tgz#1c57a9aa97248b3fd9a830d9bf5df6e9d2ad2c69" + integrity sha512-YPMtRPqfZWOm2XGTbx5/YVr1HT0vn//8QS77At0Gjb3Lv+Lbut0IORJPKLWu1hQ3u4GsA0SrDzs7nI8JG7Zmyg== dependencies: "@babel/runtime" "^7.10.1" "@rc-component/trigger" "^2.1.1" @@ -19255,14 +19484,14 @@ rc-select@~14.13.0, rc-select@~14.13.1: rc-util "^5.16.1" rc-virtual-list "^3.5.2" -rc-slider@~10.5.0: - version "10.5.0" - resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-10.5.0.tgz#1bd4853d114cb3403b67c485125887adb6a2a117" - integrity sha512-xiYght50cvoODZYI43v3Ylsqiw14+D7ELsgzR40boDZaya1HFa1Etnv9MDkQE8X/UrXAffwv2AcNAhslgYuDTw== +rc-slider@~11.1.8: + version "11.1.8" + resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-11.1.8.tgz#cf3b30dacac8f98d44f7685f733f6f7da146fc06" + integrity sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.2.5" - rc-util "^5.27.0" + rc-util "^5.36.0" rc-steps@~6.0.1: version "6.0.1" @@ -19282,66 +19511,66 @@ rc-switch@~4.1.0: classnames "^2.2.1" rc-util "^5.30.0" -rc-table@~7.45.4: - version "7.45.7" - resolved "https://registry.yarnpkg.com/rc-table/-/rc-table-7.45.7.tgz#f7c509e05c677a30ad5b212750122da6f5318004" - integrity sha512-wi9LetBL1t1csxyGkMB2p3mCiMt+NDexMlPbXHvQFmBBAsMxrgNSAPwUci2zDLUq9m8QdWc1Nh8suvrpy9mXrg== +rc-table@~7.50.2: + version "7.50.2" + resolved "https://registry.yarnpkg.com/rc-table/-/rc-table-7.50.2.tgz#d66ba71dd5c34ff8981255afc0b98e48d38a8a97" + integrity sha512-+nJbzxzstBriLb5sr9U7Vjs7+4dO8cWlouQbMwBVYghk2vr508bBdkHJeP/z9HVjAIKmAgMQKxmtbgDd3gc5wA== dependencies: "@babel/runtime" "^7.10.1" "@rc-component/context" "^1.4.0" classnames "^2.2.5" rc-resize-observer "^1.1.0" - rc-util "^5.37.0" + rc-util "^5.44.3" rc-virtual-list "^3.14.2" -rc-tabs@~14.1.1: - version "14.1.1" - resolved "https://registry.yarnpkg.com/rc-tabs/-/rc-tabs-14.1.1.tgz#f49467feb69af0156c7864d04c21396e4c5c7911" - integrity sha512-5nOr9PVpJy2SWHTLgv1+kESDOb0tFzl0cYU9r9d8LfL0Wg9i/n1B558rmkxdQHgBwMqxmwoyPSAbQROxMQe8nw== +rc-tabs@~15.5.0: + version "15.5.0" + resolved "https://registry.yarnpkg.com/rc-tabs/-/rc-tabs-15.5.0.tgz#778405f68e8c33775235e666bd7cd09449f7eeeb" + integrity sha512-NrDcTaUJLh9UuDdMBkjKTn97U9iXG44s9D03V5NHkhEDWO5/nC6PwC3RhkCWFMKB9hh+ryqgZ+TIr1b9Jd/hnQ== dependencies: "@babel/runtime" "^7.11.2" classnames "2.x" rc-dropdown "~4.2.0" - rc-menu "~9.13.0" + rc-menu "~9.16.0" rc-motion "^2.6.2" rc-resize-observer "^1.0.0" rc-util "^5.34.1" -rc-textarea@~1.6.1, rc-textarea@~1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/rc-textarea/-/rc-textarea-1.6.3.tgz#3f294fdf5dfadbe9d0e7b695cea4da557728a9be" - integrity sha512-8k7+8Y2GJ/cQLiClFMg8kUXOOdvcFQrnGeSchOvI2ZMIVvX5a3zQpLxoODL0HTrvU63fPkRmMuqaEcOF9dQemA== +rc-textarea@~1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/rc-textarea/-/rc-textarea-1.9.0.tgz#d807194ebef90f25f0b9501cddf5e8f2968d598a" + integrity sha512-dQW/Bc/MriPBTugj2Kx9PMS5eXCCGn2cxoIaichjbNvOiARlaHdI99j4DTxLl/V8+PIfW06uFy7kjfUIDDKyxQ== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.2.1" - rc-input "~1.4.0" + rc-input "~1.7.1" rc-resize-observer "^1.0.0" rc-util "^5.27.0" -rc-tooltip@~6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-6.2.1.tgz#9a8f0335c86443a0c20c2557933205f645a381b7" - integrity sha512-rws0duD/3sHHsD905Nex7FvoUGy2UBQRhTkKxeEvr2FB+r21HsOxcDJI0TzyO8NHhnAA8ILr8pfbSBg5Jj5KBg== +rc-tooltip@~6.3.2: + version "6.3.2" + resolved "https://registry.yarnpkg.com/rc-tooltip/-/rc-tooltip-6.3.2.tgz#4fc0af77731b7e571f5ce15bd1ede759b0e64dd7" + integrity sha512-oA4HZIiZJbUQ5ojigM0y4XtWxaH/aQlJSzknjICRWNpqyemy1sL3X3iEQV2eSPBWEq+bqU3+aSs81z+28j9luA== dependencies: "@babel/runtime" "^7.11.2" "@rc-component/trigger" "^2.0.0" classnames "^2.3.1" -rc-tree-select@~5.19.0: - version "5.19.0" - resolved "https://registry.yarnpkg.com/rc-tree-select/-/rc-tree-select-5.19.0.tgz#1da83694ffeeeed7ba5e4bd49a1d7df48501677d" - integrity sha512-f4l5EsmSGF3ggj76YTzKNPY9SnXfFaer7ZccTSGb3urUf54L+cCqyT+UsPr+S5TAr8mZSxJ7g3CgkCe+cVQ6sw== +rc-tree-select@~5.27.0: + version "5.27.0" + resolved "https://registry.yarnpkg.com/rc-tree-select/-/rc-tree-select-5.27.0.tgz#3daa62972ae80846dac96bf4776d1a9dc9c7c4c6" + integrity sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww== dependencies: - "@babel/runtime" "^7.10.1" + "@babel/runtime" "^7.25.7" classnames "2.x" - rc-select "~14.13.0" - rc-tree "~5.8.1" - rc-util "^5.16.1" + rc-select "~14.16.2" + rc-tree "~5.13.0" + rc-util "^5.43.0" -rc-tree@~5.8.1, rc-tree@~5.8.5: - version "5.8.8" - resolved "https://registry.yarnpkg.com/rc-tree/-/rc-tree-5.8.8.tgz#650a13ec825a5a4feec6bbaf6a380465986ee0db" - integrity sha512-S+mCMWo91m5AJqjz3PdzKilGgbFm7fFJRFiTDOcoRbD7UfMOPnerXwMworiga0O2XIo383UoWuEfeHs1WOltag== +rc-tree@~5.13.0: + version "5.13.0" + resolved "https://registry.yarnpkg.com/rc-tree/-/rc-tree-5.13.0.tgz#ae34768c1463fd1fb19d73549c29b219c8891296" + integrity sha512-2+lFvoVRnvHQ1trlpXMOWtF8BUgF+3TiipG72uOfhpL5CUdXCk931kvDdUkTL/IZVtNEDQKwEEmJbAYJSA5NnA== dependencies: "@babel/runtime" "^7.10.1" classnames "2.x" @@ -19349,10 +19578,10 @@ rc-tree@~5.8.1, rc-tree@~5.8.5: rc-util "^5.16.1" rc-virtual-list "^3.5.1" -rc-upload@~4.5.2: - version "4.5.2" - resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-4.5.2.tgz#ea493fbaaf57d9369ee954b20e1d8bc35c818a1a" - integrity sha512-QO3ne77DwnAPKFn0bA5qJM81QBjQi0e0NHdkvpFyY73Bea2NfITiotqJqVjHgeYPOJu5lLVR32TNGP084aSoXA== +rc-upload@~4.8.1: + version "4.8.1" + resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-4.8.1.tgz#ac55f2bc101b95b52a6e47f3c18f0f55b54e16d2" + integrity sha512-toEAhwl4hjLAI1u8/CgKWt30BR06ulPa4iGQSMvSXoHzO88gPCslxqV/mnn4gJU7PDoltGIC9Eh+wkeudqgHyw== dependencies: "@babel/runtime" "^7.18.3" classnames "^2.2.5" @@ -19366,10 +19595,10 @@ rc-util@^5.0.1, rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.18.1, rc-util@^5.2. "@babel/runtime" "^7.18.3" react-is "^18.2.0" -rc-util@^5.28.0, rc-util@^5.39.1: - version "5.43.0" - resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.43.0.tgz#bba91fbef2c3e30ea2c236893746f3e9b05ecc4c" - integrity sha512-AzC7KKOXFqAdIBqdGWepL9Xn7cm3vnAmjlHqUnoQaTMZYhM4VlXGLkkHHxj/BZ7Td0+SOPKB4RGPboBVKT9htw== +rc-util@^5.40.1, rc-util@^5.43.0, rc-util@^5.44.0, rc-util@^5.44.1, rc-util@^5.44.3: + version "5.44.3" + resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.44.3.tgz#9eca5039906446113c4032859f88c15234547961" + integrity sha512-q6KCcOFk3rv/zD3MckhJteZxb0VjAIFuf622B7ElK4vfrZdAzs16XR5p3VTdy3+U5jfJU5ACz4QnhLSuAGe5dA== dependencies: "@babel/runtime" "^7.18.3" react-is "^18.2.0" @@ -19436,6 +19665,13 @@ react-dom@18.2.0: loose-envify "^1.1.0" scheduler "^0.23.0" +react-dom@19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.0.0.tgz#43446f1f01c65a4cd7f7588083e686a6726cfb57" + integrity sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ== + dependencies: + scheduler "^0.25.0" + react-draggable@^4.0.3: version "4.4.6" resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-4.4.6.tgz#63343ee945770881ca1256a5b6fa5c9f5983fe1e" @@ -19486,6 +19722,11 @@ react@18.2.0: dependencies: loose-envify "^1.1.0" +react@19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/react/-/react-19.0.0.tgz#6e1969251b9f108870aa4bff37a0ce9ddfaaabdd" + integrity sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ== + read-config-file@6.2.0: version "6.2.0" resolved "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz" @@ -20300,6 +20541,11 @@ scheduler@^0.23.0: dependencies: loose-envify "^1.1.0" +scheduler@^0.25.0: + version "0.25.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.25.0.tgz#336cd9768e8cceebf52d3c80e3dcf5de23e7e015" + integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA== + schema-utils@2.7.0: version "2.7.0" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz" @@ -20398,7 +20644,7 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.5.3: +semver@^7.5.3, semver@^7.6.3: version "7.6.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== @@ -20571,6 +20817,35 @@ shallowequal@^1.1.0: resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== +sharp@^0.33.5: + version "0.33.5" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.33.5.tgz#13e0e4130cc309d6a9497596715240b2ec0c594e" + integrity sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw== + dependencies: + color "^4.2.3" + detect-libc "^2.0.3" + semver "^7.6.3" + optionalDependencies: + "@img/sharp-darwin-arm64" "0.33.5" + "@img/sharp-darwin-x64" "0.33.5" + "@img/sharp-libvips-darwin-arm64" "1.0.4" + "@img/sharp-libvips-darwin-x64" "1.0.4" + "@img/sharp-libvips-linux-arm" "1.0.5" + "@img/sharp-libvips-linux-arm64" "1.0.4" + "@img/sharp-libvips-linux-s390x" "1.0.4" + "@img/sharp-libvips-linux-x64" "1.0.4" + "@img/sharp-libvips-linuxmusl-arm64" "1.0.4" + "@img/sharp-libvips-linuxmusl-x64" "1.0.4" + "@img/sharp-linux-arm" "0.33.5" + "@img/sharp-linux-arm64" "0.33.5" + "@img/sharp-linux-s390x" "0.33.5" + "@img/sharp-linux-x64" "0.33.5" + "@img/sharp-linuxmusl-arm64" "0.33.5" + "@img/sharp-linuxmusl-x64" "0.33.5" + "@img/sharp-wasm32" "0.33.5" + "@img/sharp-win32-ia32" "0.33.5" + "@img/sharp-win32-x64" "0.33.5" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" @@ -21520,10 +21795,10 @@ style-loader@^2.0.0: loader-utils "^2.0.0" schema-utils "^3.0.0" -styled-jsx@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" - integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== +styled-jsx@5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.6.tgz#83b90c077e6c6a80f7f5e8781d0f311b2fe41499" + integrity sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA== dependencies: client-only "0.0.1" @@ -21926,6 +22201,11 @@ throttle-debounce@^5.0.0: resolved "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.0.tgz" integrity sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg== +throttle-debounce@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-5.0.2.tgz#ec5549d84e053f043c9fd0f2a6dd892ff84456b1" + integrity sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A== + through2-filter@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/through2-filter/-/through2-filter-3.1.0.tgz" @@ -22281,7 +22561,7 @@ tslib@^2.1.0: resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tslib@^2.6.2: +tslib@^2.6.2, tslib@^2.8.0: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==