From 3752421c9bfe71e2c71e9d52a8026e4fd1c9477f Mon Sep 17 00:00:00 2001 From: Nudesuppe42 Date: Wed, 6 Nov 2024 18:15:21 +0100 Subject: [PATCH] feat(dash/admin): :sparkles: FAQ List Page --- .vscode/settings.json | 3 +- apps/dashboard/next-env.d.ts | 2 +- apps/dashboard/next.config.ts | 11 + apps/dashboard/package.json | 19 +- apps/dashboard/src/actions/getUser.ts | 6 + apps/dashboard/src/app/am/faq/datatable.tsx | 49 ++ apps/dashboard/src/app/am/faq/loading.tsx | 24 + apps/dashboard/src/app/am/faq/page.tsx | 38 ++ apps/dashboard/src/app/layout.tsx | 4 +- .../dashboard/src/app/me/connections/page.tsx | 2 +- .../src/app/me/everything/loading.tsx | 197 +----- apps/dashboard/src/app/me/everything/page.tsx | 6 +- apps/dashboard/src/app/me/sessions/page.tsx | 2 +- .../core/card/DiscordInviteCard.tsx | 2 + .../src/components/layout/navbar/NavLink.tsx | 3 + .../src/hooks/useAvailableBuildTeam.ts | 2 + apps/dashboard/src/hooks/useBuildTeamData.ts | 2 + apps/dashboard/src/hooks/useUser.ts | 7 +- apps/dashboard/src/util/db.ts | 27 + apps/dashboard/src/util/links.ts | 6 + apps/dashboard/tsconfig.json | 6 +- yarn.lock | 592 +++++++++++++++--- 22 files changed, 702 insertions(+), 308 deletions(-) create mode 100644 apps/dashboard/next.config.ts create mode 100644 apps/dashboard/src/actions/getUser.ts create mode 100644 apps/dashboard/src/app/am/faq/datatable.tsx create mode 100644 apps/dashboard/src/app/am/faq/loading.tsx create mode 100644 apps/dashboard/src/app/am/faq/page.tsx create mode 100644 apps/dashboard/src/util/db.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index aa0e7f91..91b0e7ee 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -21,6 +21,7 @@ "api/core", "frontend/v2", "api/blog", - "dash/src" + "dash/src", + "dash/admin" ] } diff --git a/apps/dashboard/next-env.d.ts b/apps/dashboard/next-env.d.ts index 4f11a03d..40c3d680 100644 --- a/apps/dashboard/next-env.d.ts +++ b/apps/dashboard/next-env.d.ts @@ -2,4 +2,4 @@ /// // NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. +// see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information. diff --git a/apps/dashboard/next.config.ts b/apps/dashboard/next.config.ts new file mode 100644 index 00000000..e15a5c69 --- /dev/null +++ b/apps/dashboard/next.config.ts @@ -0,0 +1,11 @@ +import type { NextConfig } from 'next'; +import path from 'path'; + +const nextConfig: NextConfig = { + experimental: {}, + output: 'standalone', + poweredByHeader: false, + outputFileTracingRoot: path.join(__dirname, '../../'), +}; + +export default nextConfig; diff --git a/apps/dashboard/package.json b/apps/dashboard/package.json index d3d05f5c..64c48ff4 100644 --- a/apps/dashboard/package.json +++ b/apps/dashboard/package.json @@ -7,7 +7,7 @@ "build": "next build", "clean": "rm -rf .next", "start": "next start", - "dev": "next dev --port 3001" , + "dev": "next dev --turbopack --port 3001", "lint": "eslint . --max-warnings 0", "prettier": "prettier ./src --write --ignore-unknown", "env:copy": "cp .env.example .env" @@ -24,16 +24,17 @@ "@mantine/nprogress": "^7.13.2", "@mantine/spotlight": "^7.13.2", "@tabler/icons-react": "^3.9.0", + "@repo/db": "*", "clsx": "^2.1.1", "dayjs": "^1.11.11", "mantine-contextmenu": "^7.11.0", "mantine-datatable": "^7.12.4", "moment": "^2.30.1", "moment-timezone": "^0.5.45", - "next": "14.2.4", + "next": "15.0.2", "next-auth": "^4.24.7", - "react": "^18", - "react-dom": "^18", + "react": "19.0.0-rc-02c0e824-20241028", + "react-dom": "19.0.0-rc-02c0e824-20241028", "recharts": "2", "swr": "^2.2.5" }, @@ -41,10 +42,10 @@ "@repo/prettier-config": "*", "@repo/typescript-config": "*", "@types/node": "^20", - "@types/react": "^18", - "@types/react-dom": "^18", + "@types/react": "npm:types-react@19.0.0-rc.1", + "@types/react-dom": "npm:types-react-dom@19.0.0-rc.1", "eslint": "^8", - "eslint-config-next": "14.2.4", + "eslint-config-next": "15.0.2", "eslint-plugin-storybook": "^0.8.0", "postcss": "^8.4.39", "postcss-preset-mantine": "^1.15.0", @@ -54,5 +55,9 @@ "prettier": "@repo/prettier-config", "lint-staged": { "*": "prettier --write --ignore-unknown" + }, + "resolutions": { + "@types/react": "npm:types-react@19.0.0-rc.1", + "@types/react-dom": "npm:types-react-dom@19.0.0-rc.1" } } \ No newline at end of file diff --git a/apps/dashboard/src/actions/getUser.ts b/apps/dashboard/src/actions/getUser.ts new file mode 100644 index 00000000..948b8346 --- /dev/null +++ b/apps/dashboard/src/actions/getUser.ts @@ -0,0 +1,6 @@ +import { User } from "@/types/User"; +import { authedFetcher } from "@/util/data"; + +export const getUser = async () => { + return authedFetcher('/account'); +}; diff --git a/apps/dashboard/src/app/am/faq/datatable.tsx b/apps/dashboard/src/app/am/faq/datatable.tsx new file mode 100644 index 00000000..f8b56ec8 --- /dev/null +++ b/apps/dashboard/src/app/am/faq/datatable.tsx @@ -0,0 +1,49 @@ +'use client'; + +import { ActionIcon, Code, Group } from '@mantine/core'; +import { IconEdit, IconExternalLink } from '@tabler/icons-react'; + +import { DataTable } from 'mantine-datatable'; +import { FAQQuestion } from '@repo/db'; +import Link from 'next/link'; + +export default function FAQDatatabe({ faq }: { faq: FAQQuestion[] }) { + return ( + {id.split('-')[0]}, + footer: faq.length + ' Questions', + }, + { accessor: 'question' }, + { + accessor: '', + title: '', + textAlign: 'right', + render: (question) => ( + + + + + + + + + ), + }, + ]} + records={faq} + /> + ); +} diff --git a/apps/dashboard/src/app/am/faq/loading.tsx b/apps/dashboard/src/app/am/faq/loading.tsx new file mode 100644 index 00000000..a88158ce --- /dev/null +++ b/apps/dashboard/src/app/am/faq/loading.tsx @@ -0,0 +1,24 @@ +import { Box, Title } from '@mantine/core'; + +import { DataTable } from 'mantine-datatable'; + +export default async function Page() { + return ( + + + FAQ Questions + + + + ); +} diff --git a/apps/dashboard/src/app/am/faq/page.tsx b/apps/dashboard/src/app/am/faq/page.tsx new file mode 100644 index 00000000..0ebc2e99 --- /dev/null +++ b/apps/dashboard/src/app/am/faq/page.tsx @@ -0,0 +1,38 @@ +import { + Box, + Button, + Group, + Title +} from '@mantine/core'; +import { IconExternalLink, IconPlus } from '@tabler/icons-react'; + +import prisma from '@/util/db'; +import Link from 'next/link'; +import FAQDatatabe from './datatable'; + +export default async function Page() { + const faq = await prisma.fAQQuestion.findMany(); + + return ( + + + FAQ Questions + + + + + + + + ); +} diff --git a/apps/dashboard/src/app/layout.tsx b/apps/dashboard/src/app/layout.tsx index 0ba3d100..564c1981 100644 --- a/apps/dashboard/src/app/layout.tsx +++ b/apps/dashboard/src/app/layout.tsx @@ -34,9 +34,9 @@ export default async function RootLayout({ children }: { children: React.ReactNo const session = await getSession(); return ( - + - + diff --git a/apps/dashboard/src/app/me/connections/page.tsx b/apps/dashboard/src/app/me/connections/page.tsx index bd790505..3398e1b5 100644 --- a/apps/dashboard/src/app/me/connections/page.tsx +++ b/apps/dashboard/src/app/me/connections/page.tsx @@ -1,7 +1,7 @@ import { Box, Title } from '@mantine/core'; +import { getUser } from '@/actions/getUser'; import { SocialAccountStack } from '@/components/data/SocialAccount'; -import { getUser } from '@/hooks/useUser'; import { KeycloakUser } from '@/types/User'; import { authedFetcher } from '@/util/data'; diff --git a/apps/dashboard/src/app/me/everything/loading.tsx b/apps/dashboard/src/app/me/everything/loading.tsx index 7ec9f8c7..7fe86cf0 100644 --- a/apps/dashboard/src/app/me/everything/loading.tsx +++ b/apps/dashboard/src/app/me/everything/loading.tsx @@ -1,48 +1,7 @@ -import { - Alert, - Box, - Button, - Card, - Flex, - rem, - Stack, - Tabs, - TabsList, - TabsPanel, - TabsTab, - Text, - Title, -} from '@mantine/core'; -import { - IconBrandMinecraft, - IconCalendar, - IconCheck, - IconChevronRight, - IconCode, - IconDeviceWatch, - IconId, - IconInfoCircle, - IconLicense, - IconMail, - IconMailCheck, - IconSocial, - IconTable, - IconUser, - IconUsers, -} from '@tabler/icons-react'; - -import { getUser } from '@/hooks/useUser'; -import { KeycloakUser } from '@/types/User'; -import { getSession } from '@/util/auth'; -import { authedFetcher } from '@/util/data'; -import { CodeHighlight } from '@mantine/code-highlight'; -import Link from 'next/link'; +import { Alert, Box, Skeleton, Tabs, TabsList, TabsPanel, TabsTab, Title, rem } from '@mantine/core'; +import { IconCode, IconInfoCircle, IconTable } from '@tabler/icons-react'; export default async function Page() { - const user = await getUser(); - const session = await getSession(); - const data = await authedFetcher(`/users/${user.id}/kc`); - return ( @@ -55,164 +14,20 @@ export default async function Page() { <Tabs color="teal" defaultValue="parsed" mt="md" variant="pills"> <TabsList> - <TabsTab value="parsed" leftSection={<IconTable style={{ width: rem(12), height: rem(12) }} />}> + <TabsTab value="parsed" leftSection={<IconTable style={{ width: rem(12), height: rem(12) }} />} disabled> Pretty </TabsTab> - <TabsTab value="raw" leftSection={<IconCode style={{ width: rem(12), height: rem(12) }} />}> + <TabsTab value="raw" leftSection={<IconCode style={{ width: rem(12), height: rem(12) }} />} disabled> Raw </TabsTab> </TabsList> <TabsPanel value="parsed" mt="md"> - <Stack gap="sm"> - <Card> - <Flex align={'center'} gap={'md'}> - <IconId size={'2rem'} /> - <Text> - <b>User Id:</b> {user.id} - </Text> - </Flex> - </Card> - <Card> - <Flex align={'center'} gap={'md'}> - <IconSocial size={'2rem'} /> - <Text> - <b>Single Sign On Id:</b> {user.ssoId} - </Text> - </Flex> - </Card> - <Card> - <Flex align={'center'} gap={'md'}> - <IconUser size={'2rem'} /> - <Text> - <b>Username:</b> {user.username} - </Text> - </Flex> - </Card> - <Card> - <Flex align={'center'} gap={'md'}> - <IconMail size={'2rem'} /> - <Text> - <b>E-Mail Address:</b> {user.email} - </Text> - </Flex> - </Card> - <Card> - <Flex align={'center'} gap={'md'}> - <IconMailCheck size={'2rem'} /> - <Text> - <b>E-Mail Status:</b> {user.emailVerified ? 'Verified' : 'Unverified'} - </Text> - </Flex> - </Card> - <Card> - <Flex align={'center'} gap={'md'}> - <IconBrandMinecraft size={'2rem'} /> - <Text> - <b>Minecraft Username:</b> {data.minecraft} - </Text> - </Flex> - </Card> - - <Text mt="sm" fw="bold" fz="lg"> - Authentication Data - </Text> - <Card> - <Flex align={'center'} gap={'md'}> - <IconCalendar size={'2rem'} /> - <Text> - <b>Account Created:</b> {new Date(data.createdTimestamp).toUTCString()} - </Text> - </Flex> - </Card> - <Card> - <Flex align={'center'} gap={'md'}> - <IconCheck size={'2rem'} /> - <Text> - <b>Account Status:</b> {data.enabled ? 'Enabled' : 'Disabled'} - </Text> - </Flex> - </Card> - <Card> - <Flex align={'center'} gap={'md'}> - <IconDeviceWatch size={'2rem'} /> - <Text> - <b>TOTP:</b> {data.totp ? 'Set' : 'Not Set'} - </Text> - </Flex> - </Card> - <Card> - <Flex align={'center'} gap={'md'}> - <IconUsers size={'2rem'} /> - <Text> - <b>Linked Accounts:</b> {data.federatedIdentities.map((idp) => idp.identityProvider).join(', ')} - </Text> - </Flex> - </Card> - <Card> - <Flex align={'center'} gap={'md'}> - <IconLicense size={'2rem'} /> - <Text> - <b>Manage Group Membership:</b> {data.access.manageGroupMembership ? 'Yes' : 'No'} - </Text> - </Flex> - </Card> - <Card> - <Flex align={'center'} gap={'md'}> - <IconLicense size={'2rem'} /> - <Text> - <b>Can Impersonate:</b> {data.access.impersonate ? 'Yes' : 'No'} - </Text> - </Flex> - </Card> - <Card> - <Flex align={'center'} gap={'md'}> - <IconLicense size={'2rem'} /> - <Text> - <b>Manage Self:</b> {data.access.manage ? 'Yes' : 'No'} - </Text> - </Flex> - </Card> - <Card> - <Flex align={'center'} gap={'md'}> - <IconLicense size={'2rem'} /> - <Text> - <b>Map Roles:</b> {data.access.mapRoles ? 'Yes' : 'No'} - </Text> - </Flex> - </Card> - <Card> - <Flex align={'center'} gap={'md'}> - <IconLicense size={'2rem'} /> - <Text> - <b>View Self:</b> {data.access.view ? 'Yes' : 'No'} - </Text> - </Flex> - </Card> - </Stack> - - <Text my="sm" fw="bold" fz="lg"> - Other Data - </Text> - <Button component={Link} href="/me/sessions" rightSection={<IconChevronRight />} mr="md"> - View active Sessions - </Button> - <Button component={Link} href="/me/connections" rightSection={<IconChevronRight />}> - List Social Connections - </Button> + <Skeleton mb="md" h="70vh"></Skeleton> </TabsPanel> <TabsPanel value="raw" mt="md"> - <Text fw="bold">User Data</Text> - <CodeHighlight code={JSON.stringify(user, null, 2)} language="json" withCopyButton={false} /> - <Text fw="bold" mt="sm"> - Authentication Data - </Text> - <CodeHighlight code={JSON.stringify(data, null, 2)} language="json" withCopyButton={false} /> - <Text fw="bold" mt="sm"> - Session Data - </Text> - <CodeHighlight code={JSON.stringify(session, null, 2)} language="json" withCopyButton={false} /> + <Skeleton mb="md" h="70vh"></Skeleton> </TabsPanel> </Tabs> </Box> diff --git a/apps/dashboard/src/app/me/everything/page.tsx b/apps/dashboard/src/app/me/everything/page.tsx index 7ec9f8c7..a8b39478 100644 --- a/apps/dashboard/src/app/me/everything/page.tsx +++ b/apps/dashboard/src/app/me/everything/page.tsx @@ -4,7 +4,6 @@ import { Button, Card, Flex, - rem, Stack, Tabs, TabsList, @@ -12,6 +11,7 @@ import { TabsTab, Text, Title, + rem, } from '@mantine/core'; import { IconBrandMinecraft, @@ -28,10 +28,10 @@ import { IconSocial, IconTable, IconUser, - IconUsers, + IconUsers } from '@tabler/icons-react'; -import { getUser } from '@/hooks/useUser'; +import { getUser } from '@/actions/getUser'; import { KeycloakUser } from '@/types/User'; import { getSession } from '@/util/auth'; import { authedFetcher } from '@/util/data'; diff --git a/apps/dashboard/src/app/me/sessions/page.tsx b/apps/dashboard/src/app/me/sessions/page.tsx index 5a609525..740a373f 100644 --- a/apps/dashboard/src/app/me/sessions/page.tsx +++ b/apps/dashboard/src/app/me/sessions/page.tsx @@ -1,6 +1,6 @@ import { Badge, Box, Card, Flex, Group, Stack, Text, Title } from '@mantine/core'; -import { getUser } from '@/hooks/useUser'; +import { getUser } from '@/actions/getUser'; import { KeycloakUser } from '@/types/User'; import { authedFetcher } from '@/util/data'; import { IconDevices } from '@tabler/icons-react'; diff --git a/apps/dashboard/src/components/core/card/DiscordInviteCard.tsx b/apps/dashboard/src/components/core/card/DiscordInviteCard.tsx index da5e1586..39ccfef8 100644 --- a/apps/dashboard/src/components/core/card/DiscordInviteCard.tsx +++ b/apps/dashboard/src/components/core/card/DiscordInviteCard.tsx @@ -1,3 +1,5 @@ +"use client"; + import { Avatar, Card, CardSection, Group, Image, NumberFormatter, Text } from '@mantine/core'; import useSWR from 'swr'; diff --git a/apps/dashboard/src/components/layout/navbar/NavLink.tsx b/apps/dashboard/src/components/layout/navbar/NavLink.tsx index 461ccd76..f36992dc 100644 --- a/apps/dashboard/src/components/layout/navbar/NavLink.tsx +++ b/apps/dashboard/src/components/layout/navbar/NavLink.tsx @@ -1,6 +1,7 @@ 'use client'; import { + IconBubble, IconChartPie, IconDeviceDesktop, IconForms, @@ -58,6 +59,8 @@ function getIcon(name: string) { return IconDeviceDesktop; case 'Settings': return IconSettings; + case 'Bubble': + return IconBubble; default: return IconQuestionMark; } diff --git a/apps/dashboard/src/hooks/useAvailableBuildTeam.ts b/apps/dashboard/src/hooks/useAvailableBuildTeam.ts index e93f3cee..9fd92cf4 100644 --- a/apps/dashboard/src/hooks/useAvailableBuildTeam.ts +++ b/apps/dashboard/src/hooks/useAvailableBuildTeam.ts @@ -1,3 +1,5 @@ +"use client"; + import { useLocalStorage } from '@mantine/hooks'; import { useEffect } from 'react'; import useSWR from 'swr'; diff --git a/apps/dashboard/src/hooks/useBuildTeamData.ts b/apps/dashboard/src/hooks/useBuildTeamData.ts index 7dfcde35..012dd08b 100644 --- a/apps/dashboard/src/hooks/useBuildTeamData.ts +++ b/apps/dashboard/src/hooks/useBuildTeamData.ts @@ -1,3 +1,5 @@ +"use client"; + import { useLocalStorage } from '@mantine/hooks'; import useSWR from 'swr'; diff --git a/apps/dashboard/src/hooks/useUser.ts b/apps/dashboard/src/hooks/useUser.ts index 53f5130c..c88b27b7 100644 --- a/apps/dashboard/src/hooks/useUser.ts +++ b/apps/dashboard/src/hooks/useUser.ts @@ -1,5 +1,5 @@ -import { User } from '@/types/User'; -import { authedFetcher } from '@/util/data'; +'use client'; + import useSWR from 'swr'; export const useUser = () => { @@ -11,6 +11,3 @@ export const useUser = () => { return user; }; -export const getUser = async () => { - return authedFetcher<User>('/account'); -}; diff --git a/apps/dashboard/src/util/db.ts b/apps/dashboard/src/util/db.ts new file mode 100644 index 00000000..1c1fc781 --- /dev/null +++ b/apps/dashboard/src/util/db.ts @@ -0,0 +1,27 @@ +import { PrismaClient } from '@repo/db'; + +const prismaClientSingleton = () => { + return new PrismaClient({ datasourceUrl: process.env.DATABASE_URL }).$extends({ + name: 'uploadSrc', + result: { + upload: { + src: { + needs: { name: true }, + compute: (upload) => { + return `https://cdn.buildtheearth.net/uploads/${upload.name}`; + }, + }, + }, + }, + }); +}; + +declare const globalThis: { + prismaGlobal: ReturnType<typeof prismaClientSingleton>; +} & typeof global; + +const prisma = globalThis.prismaGlobal ?? prismaClientSingleton(); + +export default prisma; + +if (process.env.NODE_ENV !== 'production') globalThis.prismaGlobal = prisma; diff --git a/apps/dashboard/src/util/links.ts b/apps/dashboard/src/util/links.ts index 7e72fdd1..d6de6107 100644 --- a/apps/dashboard/src/util/links.ts +++ b/apps/dashboard/src/util/links.ts @@ -71,6 +71,12 @@ export const meNavLinks: NavLink[] = [ protected: true, icon: 'UsersGroup', }, + { + link: '/am/faq', + label: 'FAQ', + protected: true, + icon: 'Bubble', + }, { link: '/am/claims', label: 'Map Claims', diff --git a/apps/dashboard/tsconfig.json b/apps/dashboard/tsconfig.json index c1b50611..14080c04 100644 --- a/apps/dashboard/tsconfig.json +++ b/apps/dashboard/tsconfig.json @@ -9,8 +9,10 @@ "baseUrl": ".", "paths": { "@/*": ["./src/*"] - } + }, + "moduleResolution": "NodeNext", + "module": "NodeNext", }, "exclude": ["node_modules"], - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "next.config.js", ".next/types/**/*.ts"] + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "next.config.ts", ".next/types/**/*.ts"] } diff --git a/yarn.lock b/yarn.lock index 13e3c6f1..405e8b19 100644 --- a/yarn.lock +++ b/yarn.lock @@ -706,6 +706,13 @@ enabled "2.0.x" kuler "^2.0.0" +"@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/babel-plugin@^11.12.0": version "11.12.0" resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.12.0.tgz#7b43debb250c313101b3f885eba634f1d723fcc2" @@ -823,6 +830,11 @@ dependencies: eslint-visitor-keys "^3.3.0" +"@eslint-community/regexpp@^4.10.0": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" + integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== + "@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": version "4.11.0" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae" @@ -922,6 +934,119 @@ resolved "https://registry.yarnpkg.com/@icons-pack/react-simple-icons/-/react-simple-icons-5.11.0.tgz#63051f38201222a63404887ad65440fe10babac5" integrity sha512-hFJ4Q4JcYe/wQUab+gIug1BONjBUelaUVFYsZ1FKv5CEX/fP56qGet4CPmx18BqDhxrOehidYNlLyGppXL9/7w== +"@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== + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" @@ -1270,17 +1395,10 @@ resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.13.tgz#ba341ba9eb70db428fc1c754f49c3c516f7bab47" integrity sha512-s3lh6K8cbW1h5Nga7NNeXrbe0+2jIIYK9YaA9T7IufDWnZpozdFUp6Hf0d5rNWUKu4fEuSX2rCKlGjCrtylfDw== -"@next/env@14.2.4": - version "14.2.4" - resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.4.tgz#5546813dc4f809884a37d257b254a5ce1b0248d7" - integrity sha512-3EtkY5VDkuV2+lNmKlbkibIJxcO4oIHEhBWne6PaAp+76J9KoSsGvNikp6ivzAT8dhhBMYrm6op2pS1ApG0Hzg== - -"@next/eslint-plugin-next@14.2.4": - version "14.2.4" - resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.4.tgz#c7f965cb76f0b454e726ef0f69157c4fb4e28f53" - integrity sha512-svSFxW9f3xDaZA3idQmlFw7SusOuWTpDTAeBlO3AEPDltrraV+lqs7mAc6A27YdnpQVVIA3sODqUAAHdWhVWsA== - dependencies: - glob "10.3.10" +"@next/env@15.0.2": + version "15.0.2" + resolved "https://registry.yarnpkg.com/@next/env/-/env-15.0.2.tgz#4e921af3faf8a16c6be98ec6a81a32a40050a8b7" + integrity sha512-c0Zr0ModK5OX7D4ZV8Jt/wqoXtitLNPwUfG9zElCZztdaZyNVnN40rDXVZ/+FGuR4CcNV5AEfM6N8f+Ener7Dg== "@next/eslint-plugin-next@14.2.8": version "14.2.8" @@ -1289,95 +1407,97 @@ dependencies: glob "10.3.10" +"@next/eslint-plugin-next@15.0.2": + version "15.0.2" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-15.0.2.tgz#4aa6e4d3cd5d2d7239bf69e253471a92bd47ac67" + integrity sha512-R9Jc7T6Ge0txjmqpPwqD8vx6onQjynO9JT73ArCYiYPvSrwYXepH/UY/WdKDY8JPWJl72sAE4iGMHPeQ5xdEWg== + dependencies: + fast-glob "3.3.1" + "@next/swc-darwin-arm64@14.2.13": version "14.2.13" resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.13.tgz#76f08d78360c4d27d444df7f35a56f59a48f4808" integrity sha512-IkAmQEa2Htq+wHACBxOsslt+jMoV3msvxCn0WFSfJSkv/scy+i/EukBKNad36grRxywaXUYJc9mxEGkeIs8Bzg== -"@next/swc-darwin-arm64@14.2.4": - version "14.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.4.tgz#da9f04c34a3d5f0b8401ed745768420e4a604036" - integrity sha512-AH3mO4JlFUqsYcwFUHb1wAKlebHU/Hv2u2kb1pAuRanDZ7pD/A/KPD98RHZmwsJpdHQwfEc/06mgpSzwrJYnNg== +"@next/swc-darwin-arm64@15.0.2": + version "15.0.2" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.2.tgz#66f84083f1f564d09bbacff8d6b24bd833783bef" + integrity sha512-GK+8w88z+AFlmt+ondytZo2xpwlfAR8U6CRwXancHImh6EdGfHMIrTSCcx5sOSBei00GyLVL0ioo1JLKTfprgg== "@next/swc-darwin-x64@14.2.13": version "14.2.13" resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.13.tgz#1d4821d54bb01dacc6a6c32408f8468a4f4af269" integrity sha512-Dv1RBGs2TTjkwEnFMVL5XIfJEavnLqqwYSD6LXgTPdEy/u6FlSrLBSSfe1pcfqhFEXRAgVL3Wpjibe5wXJzWog== -"@next/swc-darwin-x64@14.2.4": - version "14.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.4.tgz#46dedb29ec5503bf171a72a3ecb8aac6e738e9d6" - integrity sha512-QVadW73sWIO6E2VroyUjuAxhWLZWEpiFqHdZdoQ/AMpN9YWGuHV8t2rChr0ahy+irKX5mlDU7OY68k3n4tAZTg== +"@next/swc-darwin-x64@15.0.2": + version "15.0.2" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.2.tgz#1aef085642f363b89acf264cf1b9848632b52914" + integrity sha512-KUpBVxIbjzFiUZhiLIpJiBoelqzQtVZbdNNsehhUn36e2YzKHphnK8eTUW1s/4aPy5kH/UTid8IuVbaOpedhpw== "@next/swc-linux-arm64-gnu@14.2.13": version "14.2.13" resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.13.tgz#79d9af8d3408df9990c8911889eca1ca6a308f19" integrity sha512-yB1tYEFFqo4ZNWkwrJultbsw7NPAAxlPXURXioRl9SdW6aIefOLS+0TEsKrWBtbJ9moTDgU3HRILL6QBQnMevg== -"@next/swc-linux-arm64-gnu@14.2.4": - version "14.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.4.tgz#c9697ab9eb422bd1d7ffd0eb0779cc2aefa9d4a1" - integrity sha512-KT6GUrb3oyCfcfJ+WliXuJnD6pCpZiosx2X3k66HLR+DMoilRb76LpWPGb4tZprawTtcnyrv75ElD6VncVamUQ== +"@next/swc-linux-arm64-gnu@15.0.2": + version "15.0.2" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.2.tgz#203b41742e60642587e004773a8c203053b6832e" + integrity sha512-9J7TPEcHNAZvwxXRzOtiUvwtTD+fmuY0l7RErf8Yyc7kMpE47MIQakl+3jecmkhOoIyi/Rp+ddq7j4wG6JDskQ== "@next/swc-linux-arm64-musl@14.2.13": version "14.2.13" resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.13.tgz#b13180645865b120591db2f1e831743ebc02ab36" integrity sha512-v5jZ/FV/eHGoWhMKYrsAweQ7CWb8xsWGM/8m1mwwZQ/sutJjoFaXchwK4pX8NqwImILEvQmZWyb8pPTcP7htWg== -"@next/swc-linux-arm64-musl@14.2.4": - version "14.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.4.tgz#cbbceb2008571c743b5a310a488d2e166d200a75" - integrity sha512-Alv8/XGSs/ytwQcbCHwze1HmiIkIVhDHYLjczSVrf0Wi2MvKn/blt7+S6FJitj3yTlMwMxII1gIJ9WepI4aZ/A== +"@next/swc-linux-arm64-musl@15.0.2": + version "15.0.2" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.2.tgz#d256932ec11051f376348862508be9017b23f3d8" + integrity sha512-BjH4ZSzJIoTTZRh6rG+a/Ry4SW0HlizcPorqNBixBWc3wtQtj4Sn9FnRZe22QqrPnzoaW0ctvSz4FaH4eGKMww== "@next/swc-linux-x64-gnu@14.2.13": version "14.2.13" resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.13.tgz#8cb8480dfeee512648e4e08c2095aac0461b876f" integrity sha512-aVc7m4YL7ViiRv7SOXK3RplXzOEe/qQzRA5R2vpXboHABs3w8vtFslGTz+5tKiQzWUmTmBNVW0UQdhkKRORmGA== -"@next/swc-linux-x64-gnu@14.2.4": - version "14.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.4.tgz#d79184223f857bacffb92f643cb2943a43632568" - integrity sha512-ze0ShQDBPCqxLImzw4sCdfnB3lRmN3qGMB2GWDRlq5Wqy4G36pxtNOo2usu/Nm9+V2Rh/QQnrRc2l94kYFXO6Q== +"@next/swc-linux-x64-gnu@15.0.2": + version "15.0.2" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.2.tgz#06c52a23a7e13d5ccd0ded1cf295b32df58e0932" + integrity sha512-i3U2TcHgo26sIhcwX/Rshz6avM6nizrZPvrDVDY1bXcLH1ndjbO8zuC7RoHp0NSK7wjJMPYzm7NYL1ksSKFreA== "@next/swc-linux-x64-musl@14.2.13": version "14.2.13" resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.13.tgz#df5ca922fa1e1ee81b15a06a2d3d3ace0efd2bd7" integrity sha512-4wWY7/OsSaJOOKvMsu1Teylku7vKyTuocvDLTZQq0TYv9OjiYYWt63PiE1nTuZnqQ4RPvME7Xai+9enoiN0Wrg== -"@next/swc-linux-x64-musl@14.2.4": - version "14.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.4.tgz#6b6c3e5ac02ca5e63394d280ec8ee607491902df" - integrity sha512-8dwC0UJoc6fC7PX70csdaznVMNr16hQrTDAMPvLPloazlcaWfdPogq+UpZX6Drqb1OBlwowz8iG7WR0Tzk/diQ== +"@next/swc-linux-x64-musl@15.0.2": + version "15.0.2" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.2.tgz#eb70a81a1c66d4935d50bf6fe1021e440f27fe9f" + integrity sha512-AMfZfSVOIR8fa+TXlAooByEF4OB00wqnms1sJ1v+iu8ivwvtPvnkwdzzFMpsK5jA2S9oNeeQ04egIWVb4QWmtQ== "@next/swc-win32-arm64-msvc@14.2.13": version "14.2.13" resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.13.tgz#8a7db6e71f526212587975f743b28e4d1cb829d1" integrity sha512-uP1XkqCqV2NVH9+g2sC7qIw+w2tRbcMiXFEbMihkQ8B1+V6m28sshBwAB0SDmOe0u44ne1vFU66+gx/28RsBVQ== -"@next/swc-win32-arm64-msvc@14.2.4": - version "14.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.4.tgz#dbad3906e870dba84c5883d9d4c4838472e0697f" - integrity sha512-jxyg67NbEWkDyvM+O8UDbPAyYRZqGLQDTPwvrBBeOSyVWW/jFQkQKQ70JDqDSYg1ZDdl+E3nkbFbq8xM8E9x8A== +"@next/swc-win32-arm64-msvc@15.0.2": + version "15.0.2" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.2.tgz#29a763bdc3a1281633af10cf8428e916e02f079a" + integrity sha512-JkXysDT0/hEY47O+Hvs8PbZAeiCQVxKfGtr4GUpNAhlG2E0Mkjibuo8ryGD29Qb5a3IOnKYNoZlh/MyKd2Nbww== "@next/swc-win32-ia32-msvc@14.2.13": version "14.2.13" resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.13.tgz#6aa664f36f2d70c5ae6ffcbbc56784d33f24522d" integrity sha512-V26ezyjPqQpDBV4lcWIh8B/QICQ4v+M5Bo9ykLN+sqeKKBxJVDpEc6biDVyluTXTC40f5IqCU0ttth7Es2ZuMw== -"@next/swc-win32-ia32-msvc@14.2.4": - version "14.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.4.tgz#6074529b91ba49132922ce89a2e16d25d2ec235d" - integrity sha512-twrmN753hjXRdcrZmZttb/m5xaCBFa48Dt3FbeEItpJArxriYDunWxJn+QFXdJ3hPkm4u7CKxncVvnmgQMY1ag== - "@next/swc-win32-x64-msvc@14.2.13": version "14.2.13" resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.13.tgz#5a920eea82a58affa6146192586716cec6c87fed" integrity sha512-WwzOEAFBGhlDHE5Z73mNU8CO8mqMNLqaG+AO9ETmzdCQlJhVtWZnOl2+rqgVQS+YHunjOWptdFmNfbpwcUuEsw== -"@next/swc-win32-x64-msvc@14.2.4": - version "14.2.4" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.4.tgz#e65a1c6539a671f97bb86d5183d6e3a1733c29c7" - integrity sha512-tkLrjBzqFTP8DVrAAQmZelEahfR9OxWpFR++vAI9FBhCiIxtwHwBHC23SBHCTURBtwB4kc/x44imVOnkKGNVGg== +"@next/swc-win32-x64-msvc@15.0.2": + version "15.0.2" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.2.tgz#0f70d8146990886a85099875353539fc6dd68338" + integrity sha512-foaUL0NqJY/dX0Pi/UcZm5zsmSk5MtP/gxx3xOPyREkMFN+CTjctPfu3QaqrQHinaKdPnMWPJDKt4VjDfTBe/Q== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -1569,7 +1689,7 @@ resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== -"@rushstack/eslint-patch@^1.3.3": +"@rushstack/eslint-patch@^1.10.3", "@rushstack/eslint-patch@^1.3.3": version "1.10.4" resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz#427d5549943a9c6fce808e39ea64dbe60d4047f1" integrity sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA== @@ -2071,11 +2191,18 @@ dependencies: lodash "^4.17.15" -"@swc/counter@^0.1.3": +"@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.13": + version "0.5.13" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.13.tgz#33e63ff3cd0cade557672bd7888a39ce7d115a8c" + integrity sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w== + dependencies: + tslib "^2.4.0" + "@swc/helpers@0.5.5": version "0.5.5" resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.5.tgz#12689df71bfc9b21c4f4ca00ae55f2f16c8b77c0" @@ -3793,10 +3920,10 @@ dependencies: "@types/react" "*" -"@types/react-dom@^18": - version "18.3.1" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.1.tgz#1e4654c08a9cdcfb6594c780ac59b55aad42fe07" - integrity sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ== +"@types/react-dom@npm:types-react-dom@19.0.0-rc.1": + version "19.0.0-rc.1" + resolved "https://registry.yarnpkg.com/types-react-dom/-/types-react-dom-19.0.0-rc.1.tgz#1d544d02c5df2a82d87c2eff979afa2e21a8317a" + integrity sha512-VSLZJl8VXCD0fAWp7DUTFUDCcZ8DVXOQmjhJMD03odgeFmu14ZQJHCXeETm3BEAhJqfgJaFkLnGkQv88sRx0fQ== dependencies: "@types/react" "*" @@ -3822,12 +3949,11 @@ "@types/prop-types" "*" csstype "^3.0.2" -"@types/react@^18": - version "18.3.12" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.12.tgz#99419f182ccd69151813b7ee24b792fe08774f60" - integrity sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw== +"@types/react@npm:types-react@19.0.0-rc.1": + version "19.0.0-rc.1" + resolved "https://registry.yarnpkg.com/types-react/-/types-react-19.0.0-rc.1.tgz#576d1a702f6d0cc5b24813a293913e5cbfeaa647" + integrity sha512-RshndUfqTW6K3STLPis8BtAYCGOkMbtvYsi90gmVNDZBXUyUc5juf2PE9LfS/JmOlUIRO8cWTS/1MTnmhjDqyQ== dependencies: - "@types/prop-types" "*" csstype "^3.0.2" "@types/sanitize-html@^2.9.0": @@ -3945,6 +4071,21 @@ semver "^7.5.4" ts-api-utils "^1.0.1" +"@typescript-eslint/eslint-plugin@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": + version "8.12.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.12.2.tgz#c2ef660bb83fd1432368319312a2581fc92ccac1" + integrity sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw== + dependencies: + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "8.12.2" + "@typescript-eslint/type-utils" "8.12.2" + "@typescript-eslint/utils" "8.12.2" + "@typescript-eslint/visitor-keys" "8.12.2" + graphemer "^1.4.0" + ignore "^5.3.1" + natural-compare "^1.4.0" + ts-api-utils "^1.3.0" + "@typescript-eslint/parser@^5.27.1", "@typescript-eslint/parser@^5.46.1": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" @@ -3966,6 +4107,17 @@ "@typescript-eslint/visitor-keys" "7.2.0" debug "^4.3.4" +"@typescript-eslint/parser@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": + version "8.12.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.12.2.tgz#2e8173b34e1685e918b2d571c16c906d3747bad2" + integrity sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw== + dependencies: + "@typescript-eslint/scope-manager" "8.12.2" + "@typescript-eslint/types" "8.12.2" + "@typescript-eslint/typescript-estree" "8.12.2" + "@typescript-eslint/visitor-keys" "8.12.2" + debug "^4.3.4" + "@typescript-eslint/scope-manager@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" @@ -3982,6 +4134,14 @@ "@typescript-eslint/types" "7.2.0" "@typescript-eslint/visitor-keys" "7.2.0" +"@typescript-eslint/scope-manager@8.12.2": + version "8.12.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.12.2.tgz#6db0213745e6392c8e90fe9af5915e6da32eb94a" + integrity sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ== + dependencies: + "@typescript-eslint/types" "8.12.2" + "@typescript-eslint/visitor-keys" "8.12.2" + "@typescript-eslint/type-utils@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz#286f0389c41681376cdad96b309cedd17d70346a" @@ -4002,6 +4162,16 @@ debug "^4.3.4" ts-api-utils "^1.0.1" +"@typescript-eslint/type-utils@8.12.2": + version "8.12.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.12.2.tgz#132b0c52d45f6814e6f2e32416c7951ed480b016" + integrity sha512-bwuU4TAogPI+1q/IJSKuD4shBLc/d2vGcRT588q+jzayQyjVK2X6v/fbR4InY2U2sgf8MEvVCqEWUzYzgBNcGQ== + dependencies: + "@typescript-eslint/typescript-estree" "8.12.2" + "@typescript-eslint/utils" "8.12.2" + debug "^4.3.4" + ts-api-utils "^1.3.0" + "@typescript-eslint/types@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" @@ -4012,6 +4182,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.2.0.tgz#0feb685f16de320e8520f13cca30779c8b7c403f" integrity sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA== +"@typescript-eslint/types@8.12.2": + version "8.12.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.12.2.tgz#8d70098c0e90442495b53d0296acdca6d0f3f73c" + integrity sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA== + "@typescript-eslint/typescript-estree@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" @@ -4039,6 +4214,20 @@ semver "^7.5.4" ts-api-utils "^1.0.1" +"@typescript-eslint/typescript-estree@8.12.2": + version "8.12.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.12.2.tgz#206df9b1cbff212aaa9401985ef99f04daa84da5" + integrity sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow== + dependencies: + "@typescript-eslint/types" "8.12.2" + "@typescript-eslint/visitor-keys" "8.12.2" + debug "^4.3.4" + fast-glob "^3.3.2" + is-glob "^4.0.3" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" + "@typescript-eslint/utils@5.62.0", "@typescript-eslint/utils@^5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" @@ -4066,6 +4255,16 @@ "@typescript-eslint/typescript-estree" "7.2.0" semver "^7.5.4" +"@typescript-eslint/utils@8.12.2": + version "8.12.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.12.2.tgz#726cc9f49f5866605bd15bbc1768ffc15637930e" + integrity sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@typescript-eslint/scope-manager" "8.12.2" + "@typescript-eslint/types" "8.12.2" + "@typescript-eslint/typescript-estree" "8.12.2" + "@typescript-eslint/visitor-keys@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" @@ -4082,6 +4281,14 @@ "@typescript-eslint/types" "7.2.0" eslint-visitor-keys "^3.4.1" +"@typescript-eslint/visitor-keys@8.12.2": + version "8.12.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.12.2.tgz#94d7410f78eb6d134b9fcabaf1eeedb910ba8c38" + integrity sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA== + dependencies: + "@typescript-eslint/types" "8.12.2" + eslint-visitor-keys "^3.4.3" + "@ungap/structured-clone@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" @@ -4192,6 +4399,11 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +aria-query@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.2.tgz#93f81a43480e33a338f19163a3d10a50c01dcd59" + integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== + aria-query@~5.1.3: version "5.1.3" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" @@ -5266,7 +5478,7 @@ detect-gpu@^5.0.28: dependencies: webgl-constants "^1.1.1" -detect-libc@^2.0.0, detect-libc@^2.0.2: +detect-libc@^2.0.0, detect-libc@^2.0.2, 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== @@ -5614,6 +5826,26 @@ es-iterator-helpers@^1.0.19: iterator.prototype "^1.1.2" safe-array-concat "^1.1.2" +es-iterator-helpers@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.1.0.tgz#f6d745d342aea214fe09497e7152170dc333a7a6" + integrity sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.3" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + globalthis "^1.0.4" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + internal-slot "^1.0.7" + iterator.prototype "^1.1.3" + safe-array-concat "^1.1.2" + es-object-atoms@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" @@ -5687,20 +5919,21 @@ eslint-config-airbnb-base@^15.0.0: object.entries "^1.1.5" semver "^6.3.0" -eslint-config-next@14.2.4: - version "14.2.4" - resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-14.2.4.tgz#eb0bedfe4a894bc2aea918214bb5243ee4fa7d4b" - integrity sha512-Qr0wMgG9m6m4uYy2jrYJmyuNlYZzPRQq5Kvb9IDlYwn+7yq6W6sfMNFgb+9guM1KYwuIo6TIaiFhZJ6SnQ/Efw== +eslint-config-next@15.0.2: + version "15.0.2" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-15.0.2.tgz#b06ce97f88a4a0a82cbf3d353359ff5680d01f67" + integrity sha512-N8o6cyUXzlMmQbdc2Kc83g1qomFi3ITqrAZfubipVKET2uR2mCStyGRcx/r8WiAIVMul2KfwRiCHBkTpBvGBmA== dependencies: - "@next/eslint-plugin-next" "14.2.4" - "@rushstack/eslint-patch" "^1.3.3" - "@typescript-eslint/parser" "^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0" + "@next/eslint-plugin-next" "15.0.2" + "@rushstack/eslint-patch" "^1.10.3" + "@typescript-eslint/eslint-plugin" "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0" + "@typescript-eslint/parser" "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0" eslint-import-resolver-node "^0.3.6" eslint-import-resolver-typescript "^3.5.2" - eslint-plugin-import "^2.28.1" - eslint-plugin-jsx-a11y "^6.7.1" - eslint-plugin-react "^7.33.2" - eslint-plugin-react-hooks "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" + eslint-plugin-import "^2.31.0" + eslint-plugin-jsx-a11y "^6.10.0" + eslint-plugin-react "^7.35.0" + eslint-plugin-react-hooks "^5.0.0" eslint-config-next@^14.1.0: version "14.2.8" @@ -5757,6 +5990,13 @@ eslint-import-resolver-webpack@^0.13.2: resolve "^2.0.0-next.5" semver "^5.7.2" +eslint-module-utils@^2.12.0: + version "2.12.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz#fe4cfb948d61f49203d7b08871982b65b9af0b0b" + integrity sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg== + dependencies: + debug "^3.2.7" + eslint-module-utils@^2.8.1, eslint-module-utils@^2.9.0: version "2.11.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.11.0.tgz#b99b211ca4318243f09661fae088f373ad5243c4" @@ -5831,6 +6071,52 @@ eslint-plugin-import@^2.26.0, eslint-plugin-import@^2.28.1: semver "^6.3.1" tsconfig-paths "^3.15.0" +eslint-plugin-import@^2.31.0: + version "2.31.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz#310ce7e720ca1d9c0bb3f69adfd1c6bdd7d9e0e7" + integrity sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A== + dependencies: + "@rtsao/scc" "^1.1.0" + array-includes "^3.1.8" + array.prototype.findlastindex "^1.2.5" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.12.0" + hasown "^2.0.2" + is-core-module "^2.15.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.fromentries "^2.0.8" + object.groupby "^1.0.3" + object.values "^1.2.0" + semver "^6.3.1" + string.prototype.trimend "^1.0.8" + tsconfig-paths "^3.15.0" + +eslint-plugin-jsx-a11y@^6.10.0: + version "6.10.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz#d2812bb23bf1ab4665f1718ea442e8372e638483" + integrity sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q== + dependencies: + aria-query "^5.3.2" + array-includes "^3.1.8" + array.prototype.flatmap "^1.3.2" + ast-types-flow "^0.0.8" + axe-core "^4.10.0" + axobject-query "^4.1.0" + damerau-levenshtein "^1.0.8" + emoji-regex "^9.2.2" + hasown "^2.0.2" + jsx-ast-utils "^3.3.5" + language-tags "^1.0.9" + minimatch "^3.1.2" + object.fromentries "^2.0.8" + safe-regex-test "^1.0.3" + string.prototype.includes "^2.0.1" + eslint-plugin-jsx-a11y@^6.7.1: version "6.10.0" resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.0.tgz#36fb9dead91cafd085ddbe3829602fb10ef28339" @@ -5877,6 +6163,11 @@ eslint-plugin-prettier@^4.0.0: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz#c829eb06c0e6f484b3fbb85a97e57784f328c596" integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== +eslint-plugin-react-hooks@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0.tgz#72e2eefbac4b694f5324154619fee44f5f60f101" + integrity sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw== + eslint-plugin-react@^7.30.0, eslint-plugin-react@^7.33.2: version "7.35.2" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.35.2.tgz#d32500d3ec268656d5071918bfec78cfd8b070ed" @@ -5901,6 +6192,30 @@ eslint-plugin-react@^7.30.0, eslint-plugin-react@^7.33.2: string.prototype.matchall "^4.0.11" string.prototype.repeat "^1.0.0" +eslint-plugin-react@^7.35.0: + version "7.37.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz#cd0935987876ba2900df2f58339f6d92305acc7a" + integrity sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w== + dependencies: + array-includes "^3.1.8" + array.prototype.findlast "^1.2.5" + array.prototype.flatmap "^1.3.2" + array.prototype.tosorted "^1.1.4" + doctrine "^2.1.0" + es-iterator-helpers "^1.1.0" + estraverse "^5.3.0" + hasown "^2.0.2" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.8" + object.fromentries "^2.0.8" + object.values "^1.2.0" + prop-types "^15.8.1" + resolve "^2.0.0-next.5" + semver "^6.3.1" + string.prototype.matchall "^4.0.11" + string.prototype.repeat "^1.0.0" + eslint-plugin-storybook@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/eslint-plugin-storybook/-/eslint-plugin-storybook-0.8.0.tgz#23185ecabdc289cae55248c090f0c1d8fbae6c41" @@ -6239,6 +6554,17 @@ fast-fifo@^1.2.0, fast-fifo@^1.3.2: resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== +fast-glob@3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" @@ -6623,7 +6949,7 @@ globals@^13.19.0: dependencies: type-fest "^0.20.2" -globalthis@^1.0.3: +globalthis@^1.0.3, globalthis@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== @@ -6879,7 +7205,7 @@ ieee754@^1.1.12, ieee754@^1.1.13, ieee754@^1.2.1: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.0.5, ignore@^5.2.0, ignore@^5.2.4: +ignore@^5.0.5, ignore@^5.2.0, ignore@^5.2.4, ignore@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== @@ -7270,6 +7596,17 @@ iterator.prototype@^1.1.2: reflect.getprototypeof "^1.0.4" set-function-name "^2.0.1" +iterator.prototype@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.3.tgz#016c2abe0be3bbdb8319852884f60908ac62bf9c" + integrity sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ== + dependencies: + define-properties "^1.2.1" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + reflect.getprototypeof "^1.0.4" + set-function-name "^2.0.1" + its-fine@^1.0.6: version "1.2.5" resolved "https://registry.yarnpkg.com/its-fine/-/its-fine-1.2.5.tgz#5466c287f86a0a73e772c8d8d515626c97195dc9" @@ -7911,7 +8248,7 @@ minimatch@^8.0.2: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.1: +minimatch@^9.0.1, minimatch@^9.0.4: version "9.0.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== @@ -8102,28 +8439,28 @@ next@14.2.13: "@next/swc-win32-ia32-msvc" "14.2.13" "@next/swc-win32-x64-msvc" "14.2.13" -next@14.2.4: - version "14.2.4" - resolved "https://registry.yarnpkg.com/next/-/next-14.2.4.tgz#ef66c39c71e2d8ad0a3caa0383c8933f4663e4d1" - integrity sha512-R8/V7vugY+822rsQGQCjoLhMuC9oFj9SOi4Cl4b2wjDrseD0LRZ10W7R6Czo4w9ZznVSshKjuIomsRjvm9EKJQ== +next@15.0.2: + version "15.0.2" + resolved "https://registry.yarnpkg.com/next/-/next-15.0.2.tgz#4a2224c007856118010b8cef5e9b2383cd743388" + integrity sha512-rxIWHcAu4gGSDmwsELXacqAPUk+j8dV/A9cDF5fsiCMpkBDYkO2AEaL1dfD+nNmDiU6QMCFN8Q30VEKapT9UHQ== dependencies: - "@next/env" "14.2.4" - "@swc/helpers" "0.5.5" + "@next/env" "15.0.2" + "@swc/counter" "0.1.3" + "@swc/helpers" "0.5.13" 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.4" - "@next/swc-darwin-x64" "14.2.4" - "@next/swc-linux-arm64-gnu" "14.2.4" - "@next/swc-linux-arm64-musl" "14.2.4" - "@next/swc-linux-x64-gnu" "14.2.4" - "@next/swc-linux-x64-musl" "14.2.4" - "@next/swc-win32-arm64-msvc" "14.2.4" - "@next/swc-win32-ia32-msvc" "14.2.4" - "@next/swc-win32-x64-msvc" "14.2.4" + "@next/swc-darwin-arm64" "15.0.2" + "@next/swc-darwin-x64" "15.0.2" + "@next/swc-linux-arm64-gnu" "15.0.2" + "@next/swc-linux-arm64-musl" "15.0.2" + "@next/swc-linux-x64-gnu" "15.0.2" + "@next/swc-linux-x64-musl" "15.0.2" + "@next/swc-win32-arm64-msvc" "15.0.2" + "@next/swc-win32-x64-msvc" "15.0.2" + sharp "^0.33.5" node-abi@^3.3.0: version "3.67.0" @@ -8990,7 +9327,14 @@ react-composer@^5.0.3: dependencies: prop-types "^15.6.0" -react-dom@^18, react-dom@^18.2.0: +react-dom@19.0.0-rc-02c0e824-20241028: + version "19.0.0-rc-02c0e824-20241028" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.0.0-rc-02c0e824-20241028.tgz#84999552fe7369275aa7800cf009372f59945ad1" + integrity sha512-LrZf3DfHL6Fs07wwlUCHrzFTCMM19yA99MvJpfLokN4I2nBAZvREGZjZAn8VPiSfN72+i9j1eL4wB8gC695F3Q== + dependencies: + scheduler "0.25.0-rc-02c0e824-20241028" + +react-dom@^18.2.0: version "18.3.1" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== @@ -9114,7 +9458,12 @@ react-transition-group@4.4.5, react-transition-group@^4.4.5: loose-envify "^1.4.0" prop-types "^15.6.2" -react@^18, react@^18.2.0: +react@19.0.0-rc-02c0e824-20241028: + version "19.0.0-rc-02c0e824-20241028" + resolved "https://registry.yarnpkg.com/react/-/react-19.0.0-rc-02c0e824-20241028.tgz#d0f92b734b245471359fec4be89b3f26e23f3197" + integrity sha512-GbZ7hpPHQMiEu53BqEaPQVM/4GG4hARo+mqEEnx4rYporDvNvUjutiAFxYFSbu6sgHwcr7LeFv8htEOwALVA2A== + +react@^18.2.0: version "18.3.1" resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== @@ -9373,6 +9722,11 @@ sanitize-html@^2.12.1: parse-srcset "^1.0.2" postcss "^8.3.11" +scheduler@0.25.0-rc-02c0e824-20241028: + version "0.25.0-rc-02c0e824-20241028" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.25.0-rc-02c0e824-20241028.tgz#3e1beda3dc0a9e92b90b28f2df9f3fd2f0597ed3" + integrity sha512-GysnKjmMSaWcwsKTLzeJO0IhU3EyIiC0ivJKE6yDNLqt3IMxDByx8b6lSNXRNdN+ULUY0WLLjSPaZ0LuU/GnTg== + scheduler@^0.21.0: version "0.21.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.21.0.tgz#6fd2532ff5a6d877b6edb12f00d8ab7e8f308820" @@ -9397,7 +9751,7 @@ semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.5, semver@^7.3.7, semver@^7.5.4, semver@^7.6.3: +semver@^7.3.5, semver@^7.3.7, semver@^7.5.4, semver@^7.6.0, 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== @@ -9482,6 +9836,35 @@ sharp@0.32.6, sharp@^0.32.6: tar-fs "^3.0.4" tunnel-agent "^0.6.0" +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@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -9743,6 +10126,15 @@ string.prototype.includes@^2.0.0: define-properties "^1.1.3" es-abstract "^1.17.5" +string.prototype.includes@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz#eceef21283640761a81dbe16d6c7171a4edf7d92" + integrity sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + string.prototype.matchall@^4.0.11: version "4.0.11" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz#1092a72c59268d2abaad76582dccc687c0297e0a" @@ -9883,6 +10275,13 @@ styled-jsx@5.1.1: dependencies: client-only "0.0.1" +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" + stylis@4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" @@ -10172,6 +10571,11 @@ ts-api-utils@^1.0.1: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== +ts-api-utils@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.0.tgz#709c6f2076e511a81557f3d07a0cbd566ae8195c" + integrity sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ== + ts-dedent@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5"