From f924e03515c0b003c6bd249fb6c799eb178f9daf Mon Sep 17 00:00:00 2001 From: growwidtalha Date: Thu, 14 Nov 2024 17:00:17 +0500 Subject: [PATCH 1/2] compatible with next15 --- .env.example | 8 +- package.json | 20 +- pnpm-lock.yaml | 4496 +++++++++++++++++++++++++++++ src/app/lib/client.ts | 2 +- src/app/page.tsx | 5 - src/server/procedures.ts | 1 + src/server/routers/post-router.ts | 2 +- tsconfig.json | 17 +- 8 files changed, 4529 insertions(+), 22 deletions(-) create mode 100644 pnpm-lock.yaml diff --git a/.env.example b/.env.example index f24ac2c..3074e55 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,6 @@ # Default is from neon.tech postgres, feel free to change -DATABASE_URL= - +DATABASE_URL= +NEXT_PUBLIC_APP_URL= # Optional for built-in caching: Get these from Upstash Redis console -REDIS_URL= -REDIS_TOKEN= \ No newline at end of file +REDIS_URL= +REDIS_TOKEN= diff --git a/package.json b/package.json index e14e634..43cdda5 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "dev": "next dev", + "dev": "next dev ", "build": "next build", "start": "next start", "lint": "next lint", @@ -18,10 +18,10 @@ "@upstash/redis": "^1.34.0", "clsx": "^2.1.1", "hono": "^4.5.5", - "next": "^14.2.8", + "next": "15.0.3", "prisma": "^5.18.0", - "react": "^18", - "react-dom": "^18", + "react": "19.0.0-rc-66855b96-20241106", + "react-dom": "19.0.0-rc-66855b96-20241106", "superjson": "^2.2.1", "tailwind-merge": "^2.5.2", "wrangler": "^3.72.0", @@ -30,12 +30,18 @@ "devDependencies": { "@cloudflare/workers-types": "^4.20240815.0", "@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.5", + "eslint-config-next": "15.0.3", "postcss": "^8", "tailwindcss": "^3.4.1", "typescript": "^5" + }, + "pnpm": { + "overrides": { + "@types/react": "npm:types-react@19.0.0-rc.1", + "@types/react-dom": "npm:types-react-dom@19.0.0-rc.1" + } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..0249b6c --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,4496 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +overrides: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + +importers: + + .: + dependencies: + '@neondatabase/serverless': + specifier: ^0.9.4 + version: 0.9.5 + '@prisma/adapter-neon': + specifier: ^5.18.0 + version: 5.22.0(@neondatabase/serverless@0.9.5) + '@prisma/client': + specifier: ^5.18.0 + version: 5.22.0(prisma@5.22.0) + '@tanstack/react-query': + specifier: ^5.51.23 + version: 5.59.20(react@19.0.0-rc-66855b96-20241106) + '@upstash/redis': + specifier: ^1.34.0 + version: 1.34.3 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + hono: + specifier: ^4.5.5 + version: 4.6.10 + next: + specifier: 15.0.3 + version: 15.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) + prisma: + specifier: ^5.18.0 + version: 5.22.0 + react: + specifier: 19.0.0-rc-66855b96-20241106 + version: 19.0.0-rc-66855b96-20241106 + react-dom: + specifier: 19.0.0-rc-66855b96-20241106 + version: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + superjson: + specifier: ^2.2.1 + version: 2.2.1 + tailwind-merge: + specifier: ^2.5.2 + version: 2.5.4 + wrangler: + specifier: ^3.72.0 + version: 3.86.1(@cloudflare/workers-types@4.20241112.0) + zod: + specifier: ^3.23.8 + version: 3.23.8 + devDependencies: + '@cloudflare/workers-types': + specifier: ^4.20240815.0 + version: 4.20241112.0 + '@types/node': + specifier: ^20 + version: 20.17.6 + '@types/react': + specifier: npm:types-react@19.0.0-rc.1 + version: types-react@19.0.0-rc.1 + '@types/react-dom': + specifier: npm:types-react-dom@19.0.0-rc.1 + version: types-react-dom@19.0.0-rc.1 + eslint: + specifier: ^8 + version: 8.57.1 + eslint-config-next: + specifier: 15.0.3 + version: 15.0.3(eslint@8.57.1)(typescript@5.6.3) + postcss: + specifier: ^8 + version: 8.4.49 + tailwindcss: + specifier: ^3.4.1 + version: 3.4.14 + typescript: + specifier: ^5 + version: 5.6.3 + +packages: + + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@cloudflare/kv-asset-handler@0.3.4': + resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} + engines: {node: '>=16.13'} + + '@cloudflare/workerd-darwin-64@1.20241106.1': + resolution: {integrity: sha512-zxvaToi1m0qzAScrxFt7UvFVqU8DxrCO2CinM1yQkv5no7pA1HolpIrwZ0xOhR3ny64Is2s/J6BrRjpO5dM9Zw==} + engines: {node: '>=16'} + cpu: [x64] + os: [darwin] + + '@cloudflare/workerd-darwin-arm64@1.20241106.1': + resolution: {integrity: sha512-j3dg/42D/bPgfNP3cRUBxF+4waCKO/5YKwXNj+lnVOwHxDu+ne5pFw9TIkKYcWTcwn0ZUkbNZNM5rhJqRn4xbg==} + engines: {node: '>=16'} + cpu: [arm64] + os: [darwin] + + '@cloudflare/workerd-linux-64@1.20241106.1': + resolution: {integrity: sha512-Ih+Ye8E1DMBXcKrJktGfGztFqHKaX1CeByqshmTbODnWKHt6O65ax3oTecUwyC0+abuyraOpAtdhHNpFMhUkmw==} + engines: {node: '>=16'} + cpu: [x64] + os: [linux] + + '@cloudflare/workerd-linux-arm64@1.20241106.1': + resolution: {integrity: sha512-mdQFPk4+14Yywn7n1xIzI+6olWM8Ybz10R7H3h+rk0XulMumCWUCy1CzIDauOx6GyIcSgKIibYMssVHZR30ObA==} + engines: {node: '>=16'} + cpu: [arm64] + os: [linux] + + '@cloudflare/workerd-windows-64@1.20241106.1': + resolution: {integrity: sha512-4rtcss31E/Rb/PeFocZfr+B9i1MdrkhsTBWizh8siNR4KMmkslU2xs2wPaH1z8+ErxkOsHrKRa5EPLh5rIiFeg==} + engines: {node: '>=16'} + cpu: [x64] + os: [win32] + + '@cloudflare/workers-shared@0.7.1': + resolution: {integrity: sha512-46cP5FCrl3TrvHeoHLb5SRuiDMKH5kc9Yvo36SAfzt8dqJI/qJRoY1GP3ioHn/gP7v2QIoUOTAzIl7Ml7MnfrA==} + engines: {node: '>=16.7.0'} + + '@cloudflare/workers-types@4.20241112.0': + resolution: {integrity: sha512-Q4p9bAWZrX14bSCKY9to19xl0KMU7nsO5sJ2cTVspHoypsjPUMeQCsjHjmsO2C4Myo8/LPeDvmqFmkyNAPPYZw==} + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@emnapi/runtime@1.3.1': + resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} + + '@esbuild-plugins/node-globals-polyfill@0.2.3': + resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} + peerDependencies: + esbuild: '*' + + '@esbuild-plugins/node-modules-polyfill@0.2.2': + resolution: {integrity: sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==} + peerDependencies: + esbuild: '*' + + '@esbuild/android-arm64@0.17.19': + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.17.19': + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.17.19': + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.17.19': + resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.17.19': + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.17.19': + resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.17.19': + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.17.19': + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.17.19': + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.17.19': + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.17.19': + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.17.19': + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.17.19': + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.17.19': + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.17.19': + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.17.19': + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.17.19': + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.17.19': + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.17.19': + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.17.19': + resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.17.19': + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.17.19': + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@fastify/busboy@2.1.1': + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} + engines: {node: '>=14'} + + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@neondatabase/serverless@0.9.5': + resolution: {integrity: sha512-siFas6gItqv6wD/pZnvdu34wEqgG3nSE6zWZdq5j2DEsa+VvX8i/5HXJOo06qrw5axPXn+lGCxeR+NLaSPIXug==} + + '@next/env@15.0.3': + resolution: {integrity: sha512-t9Xy32pjNOvVn2AS+Utt6VmyrshbpfUMhIjFO60gI58deSo/KgLOp31XZ4O+kY/Is8WAGYwA5gR7kOb1eORDBA==} + + '@next/eslint-plugin-next@15.0.3': + resolution: {integrity: sha512-3Ln/nHq2V+v8uIaxCR6YfYo7ceRgZNXfTd3yW1ukTaFbO+/I8jNakrjYWODvG9BuR2v5kgVtH/C8r0i11quOgw==} + + '@next/swc-darwin-arm64@15.0.3': + resolution: {integrity: sha512-s3Q/NOorCsLYdCKvQlWU+a+GeAd3C8Rb3L1YnetsgwXzhc3UTWrtQpB/3eCjFOdGUj5QmXfRak12uocd1ZiiQw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-x64@15.0.3': + resolution: {integrity: sha512-Zxl/TwyXVZPCFSf0u2BNj5sE0F2uR6iSKxWpq4Wlk/Sv9Ob6YCKByQTkV2y6BCic+fkabp9190hyrDdPA/dNrw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-linux-arm64-gnu@15.0.3': + resolution: {integrity: sha512-T5+gg2EwpsY3OoaLxUIofmMb7ohAUlcNZW0fPQ6YAutaWJaxt1Z1h+8zdl4FRIOr5ABAAhXtBcpkZNwUcKI2fw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@15.0.3': + resolution: {integrity: sha512-WkAk6R60mwDjH4lG/JBpb2xHl2/0Vj0ZRu1TIzWuOYfQ9tt9NFsIinI1Epma77JVgy81F32X/AeD+B2cBu/YQA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-x64-gnu@15.0.3': + resolution: {integrity: sha512-gWL/Cta1aPVqIGgDb6nxkqy06DkwJ9gAnKORdHWX1QBbSZZB+biFYPFti8aKIQL7otCE1pjyPaXpFzGeG2OS2w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@15.0.3': + resolution: {integrity: sha512-QQEMwFd8r7C0GxQS62Zcdy6GKx999I/rTO2ubdXEe+MlZk9ZiinsrjwoiBL5/57tfyjikgh6GOU2WRQVUej3UA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-win32-arm64-msvc@15.0.3': + resolution: {integrity: sha512-9TEp47AAd/ms9fPNgtgnT7F3M1Hf7koIYYWCMQ9neOwjbVWJsHZxrFbI3iEDJ8rf1TDGpmHbKxXf2IFpAvheIQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-x64-msvc@15.0.3': + resolution: {integrity: sha512-VNAz+HN4OGgvZs6MOoVfnn41kBzT+M+tB+OK4cww6DNyWS6wKaDpaAm/qLeOUbnMh0oVx1+mg0uoYARF69dJyA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@nolyfill/is-core-module@1.0.39': + resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} + engines: {node: '>=12.4.0'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@prisma/adapter-neon@5.22.0': + resolution: {integrity: sha512-yslwDPykmkVfrlyK3T9idewFcjINnqbkHZYJRxetoOZZSjBlJqqhsZxpJ/dEedUzeWaeDlWOgSEKjQKI46/A9w==} + peerDependencies: + '@neondatabase/serverless': ^0.6.0 || ^0.7.0 || ^0.8.0 || ^0.9.0 || ^0.10.0 + + '@prisma/client@5.22.0': + resolution: {integrity: sha512-M0SVXfyHnQREBKxCgyo7sffrKttwE6R8PMq330MIUF0pTwjUhLbW84pFDlf06B27XyCR++VtjugEnIHdr07SVA==} + engines: {node: '>=16.13'} + peerDependencies: + prisma: '*' + peerDependenciesMeta: + prisma: + optional: true + + '@prisma/debug@5.22.0': + resolution: {integrity: sha512-AUt44v3YJeggO2ZU5BkXI7M4hu9BF2zzH2iF2V5pyXT/lRTyWiElZ7It+bRH1EshoMRxHgpYg4VB6rCM+mG5jQ==} + + '@prisma/driver-adapter-utils@5.22.0': + resolution: {integrity: sha512-Y8msGZl9unmVflXoqdxTejv99UD02Gp4VoIvkyw+YxNUIj7nRz35O7yf5D87qNmTiPMGCS1WjUucG9ZuNq8+tw==} + + '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': + resolution: {integrity: sha512-2PTmxFR2yHW/eB3uqWtcgRcgAbG1rwG9ZriSvQw+nnb7c4uCr3RAcGMb6/zfE88SKlC1Nj2ziUvc96Z379mHgQ==} + + '@prisma/engines@5.22.0': + resolution: {integrity: sha512-UNjfslWhAt06kVL3CjkuYpHAWSO6L4kDCVPegV6itt7nD1kSJavd3vhgAEhjglLJJKEdJ7oIqDJ+yHk6qO8gPA==} + + '@prisma/fetch-engine@5.22.0': + resolution: {integrity: sha512-bkrD/Mc2fSvkQBV5EpoFcZ87AvOgDxbG99488a5cexp5Ccny+UM6MAe/UFkUC0wLYD9+9befNOqGiIJhhq+HbA==} + + '@prisma/get-platform@5.22.0': + resolution: {integrity: sha512-pHhpQdr1UPFpt+zFfnPazhulaZYCUqeIcPpJViYoq9R+D/yw4fjE+CtnsnKzPYm0ddUbeXUzjGVGIRVgPDCk4Q==} + + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + + '@rushstack/eslint-patch@1.10.4': + resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/helpers@0.5.13': + resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==} + + '@tanstack/query-core@5.59.20': + resolution: {integrity: sha512-e8vw0lf7KwfGe1if4uPFhvZRWULqHjFcz3K8AebtieXvnMOz5FSzlZe3mTLlPuUBcydCnBRqYs2YJ5ys68wwLg==} + + '@tanstack/react-query@5.59.20': + resolution: {integrity: sha512-Zly0egsK0tFdfSbh5/mapSa+Zfc3Et0Zkar7Wo5sQkFzWyB3p3uZWOHR2wrlAEEV2L953eLuDBtbgFvMYiLvUw==} + peerDependencies: + react: ^18 || ^19 + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/node-forge@1.3.11': + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + + '@types/node@20.17.6': + resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==} + + '@types/pg@8.11.6': + resolution: {integrity: sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==} + + '@typescript-eslint/eslint-plugin@8.14.0': + resolution: {integrity: sha512-tqp8H7UWFaZj0yNO6bycd5YjMwxa6wIHOLZvWPkidwbgLCsBMetQoGj7DPuAlWa2yGO3H48xmPwjhsSPPCGU5w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@7.2.0': + resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@7.2.0': + resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/scope-manager@8.14.0': + resolution: {integrity: sha512-aBbBrnW9ARIDn92Zbo7rguLnqQ/pOrUguVpbUwzOhkFg2npFDwTgPGqFqE0H5feXcOoJOfX3SxlJaKEVtq54dw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.14.0': + resolution: {integrity: sha512-Xcz9qOtZuGusVOH5Uk07NGs39wrKkf3AxlkK79RBK6aJC1l03CobXjJbwBPSidetAOV+5rEVuiT1VSBUOAsanQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@7.2.0': + resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/types@8.14.0': + resolution: {integrity: sha512-yjeB9fnO/opvLJFAsPNYlKPnEM8+z4og09Pk504dkqonT02AyL5Z9SSqlE0XqezS93v6CXn49VHvB2G7XSsl0g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@7.2.0': + resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@8.14.0': + resolution: {integrity: sha512-OPXPLYKGZi9XS/49rdaCbR5j/S14HazviBlUQFvSKz3npr3NikF+mrgK7CFVur6XEt95DZp/cmke9d5i3vtVnQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@8.14.0': + resolution: {integrity: sha512-OGqj6uB8THhrHj0Fk27DcHPojW7zKwKkPmHXHvQ58pLYp4hy8CSUdTKykKeh+5vFqTTVmjz0zCOOPKRovdsgHA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + '@typescript-eslint/visitor-keys@7.2.0': + resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/visitor-keys@8.14.0': + resolution: {integrity: sha512-vG0XZo8AdTH9OE6VFRwAZldNc7qtJ/6NLGWak+BtENuEUXGZgFpihILPiBvKXvJ2nFu27XNGC6rKiwuaoMbYzQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + '@upstash/redis@1.34.3': + resolution: {integrity: sha512-VT25TyODGy/8ljl7GADnJoMmtmJ1F8d84UXfGonRRF8fWYJz7+2J6GzW+a6ETGtk4OyuRTt7FRSvFG5GvrfSdQ==} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + + as-table@1.0.55: + resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} + + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axe-core@4.10.2: + resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} + engines: {node: '>=4'} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + blake3-wasm@2.1.5: + resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + caniuse-lite@1.0.30001680: + resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==} + + capnp-ts@0.7.0: + resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + + copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} + + cross-spawn@7.0.5: + resolution: {integrity: sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==} + engines: {node: '>= 8'} + + crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + + data-uri-to-buffer@2.0.2: + resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} + + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + + date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + + es-abstract@1.23.4: + resolution: {integrity: sha512-HR1gxH5OaiN7XH7uiWH0RLw0RcFySiSoW1ctxmD1ahTw3uGBtkmm/ng0tDU1OtYx5OK6EOL5Y6O21cDflG3Jcg==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-iterator-helpers@1.2.0: + resolution: {integrity: sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + + esbuild@0.17.19: + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} + engines: {node: '>=12'} + hasBin: true + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-config-next@15.0.3: + resolution: {integrity: sha512-IGP2DdQQrgjcr4mwFPve4DrCqo7CVVez1WoYY47XwKSrYO4hC0Dlb+iJA60i0YfICOzgNADIb8r28BpQ5Zs0wg==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-import-resolver-typescript@3.6.3: + resolution: {integrity: sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-jsx-a11y@6.10.2: + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + + eslint-plugin-react-hooks@5.0.0: + resolution: {integrity: sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + + eslint-plugin-react@7.37.2: + resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@0.6.1: + resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + exit-hook@2.2.1: + resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} + engines: {node: '>=6'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + get-source@2.0.12: + resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} + + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hono@4.6.10: + resolution: {integrity: sha512-IXXNfRAZEahFnWBhUUlqKEGF9upeE6hZoRZszvNkyAz/CYp+iVbxm3viMvStlagRJohjlBRGOQ7f4jfcV0XMGg==} + engines: {node: '>=16.9.0'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + + is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + + is-bun-module@1.2.1: + resolution: {integrity: sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + + is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + + is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} + + is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + iterator.prototype@1.1.3: + resolution: {integrity: sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==} + engines: {node: '>= 0.4'} + + itty-time@1.0.6: + resolution: {integrity: sha512-+P8IZaLLBtFv8hCkIjcymZOp4UJ+xW6bSlQsXGqrkmJh7vSiMFSlNne0mCYagEE0N7HDNR5jJBRxwN0oYv61Rw==} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} + + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + + miniflare@3.20241106.0: + resolution: {integrity: sha512-PjOoJKjUUofCueQskfhXlGvvHxZj36UAJAp1DnquMK88MFF50zCULblh0KXMSNM+bXeQYA94Gj06a7kfmBGxPw==} + engines: {node: '>=16.13'} + hasBin: true + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mustache@4.2.0: + resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} + hasBin: true + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + next@15.0.3: + resolution: {integrity: sha512-ontCbCRKJUIoivAdGB34yCaOcPgYXr9AAkV/IwqFfWWTXEPUgLYkSkqBhIk9KK7gGmgjc64B+RdoeIDM13Irnw==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-66855b96-20241106 + react-dom: ^18.2.0 || 19.0.0-rc-66855b96-20241106 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + + object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} + + obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + + ohash@1.1.4: + resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-to-regexp@6.3.0: + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pg-int8@1.0.1: + resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} + engines: {node: '>=4.0.0'} + + pg-numeric@1.0.2: + resolution: {integrity: sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==} + engines: {node: '>=4'} + + pg-protocol@1.7.0: + resolution: {integrity: sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==} + + pg-types@4.0.2: + resolution: {integrity: sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==} + engines: {node: '>=10'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + engines: {node: ^10 || ^12 || >=14} + + postgres-array@3.0.2: + resolution: {integrity: sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==} + engines: {node: '>=12'} + + postgres-bytea@3.0.0: + resolution: {integrity: sha512-CNd4jim9RFPkObHSjVHlVrxoVQXz7quwNFpz7RY1okNNme49+sVyiTvTRobiLV548Hx/hb1BG+iE7h9493WzFw==} + engines: {node: '>= 6'} + + postgres-date@2.1.0: + resolution: {integrity: sha512-K7Juri8gtgXVcDfZttFKVmhglp7epKb1K4pgrkLxehjqkrgPhfG6OO8LHLkfaqkbpjNRnra018XwAr1yQFWGcA==} + engines: {node: '>=12'} + + postgres-interval@3.0.0: + resolution: {integrity: sha512-BSNDnbyZCXSxgA+1f5UU2GmwhoI0aU5yMxRGO8CdFEcY2BQF9xm/7MqKnYoM1nJDk8nONNWDk9WeSmePFhQdlw==} + engines: {node: '>=12'} + + postgres-range@1.1.4: + resolution: {integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + printable-characters@1.0.42: + resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} + + prisma@5.22.0: + resolution: {integrity: sha512-vtpjW3XuYCSnMsNVBjLMNkTj6OZbudcPPTPYHqX0CJfpcdWciI1dM8uHETwmDxxiqEwCIE6WvXucWUetJgfu/A==} + engines: {node: '>=16.13'} + hasBin: true + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + react-dom@19.0.0-rc-66855b96-20241106: + resolution: {integrity: sha512-D25vdaytZ1wFIRiwNU98NPQ/upS2P8Co4/oNoa02PzHbh8deWdepjm5qwZM/46OdSiGv4WSWwxP55RO9obqJEQ==} + peerDependencies: + react: 19.0.0-rc-66855b96-20241106 + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react@19.0.0-rc-66855b96-20241106: + resolution: {integrity: sha512-klH7xkT71SxRCx4hb1hly5FJB21Hz0ACyxbXYAECEqssUjtJeFUAaI2U1DgJAzkGEnvEm3DkxuBchMC/9K4ipg==} + engines: {node: '>=0.10.0'} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + engines: {node: '>= 0.4'} + + regexp.prototype.flags@1.5.3: + resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} + engines: {node: '>= 0.4'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rollup-plugin-inject@3.0.2: + resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} + deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. + + rollup-plugin-node-polyfills@0.2.1: + resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} + + rollup-pluginutils@2.8.2: + resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + + scheduler@0.25.0-rc-66855b96-20241106: + resolution: {integrity: sha512-HQXp/Mnp/MMRSXMQF7urNFla+gmtXW/Gr1KliuR0iboTit4KvZRY8KYaq5ccCTAOJiUqQh2rE2F3wgUekmgdlA==} + + selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + + stacktracey@2.1.8: + resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} + + stoppable@1.1.0: + resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} + engines: {node: '>=4', npm: '>=6'} + + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.includes@2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} + engines: {node: '>= 0.4'} + + string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} + + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + styled-jsx@5.1.6: + resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + superjson@2.2.1: + resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} + engines: {node: '>=16'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + tailwind-merge@2.5.4: + resolution: {integrity: sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==} + + tailwindcss@3.4.14: + resolution: {integrity: sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==} + engines: {node: '>=14.0.0'} + hasBin: true + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + ts-api-utils@1.4.0: + resolution: {integrity: sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + + types-react-dom@19.0.0-rc.1: + resolution: {integrity: sha512-VSLZJl8VXCD0fAWp7DUTFUDCcZ8DVXOQmjhJMD03odgeFmu14ZQJHCXeETm3BEAhJqfgJaFkLnGkQv88sRx0fQ==} + + types-react@19.0.0-rc.1: + resolution: {integrity: sha512-RshndUfqTW6K3STLPis8BtAYCGOkMbtvYsi90gmVNDZBXUyUc5juf2PE9LfS/JmOlUIRO8cWTS/1MTnmhjDqyQ==} + + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + undici@5.28.4: + resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} + engines: {node: '>=14.0'} + + unenv-nightly@2.0.0-20241024-111401-d4156ac: + resolution: {integrity: sha512-xJO1hfY+Te+/XnfCYrCbFbRcgu6XEODND1s5wnVbaBCkuQX7JXF7fHEXPrukFE2j8EOH848P8QN19VO47XN8hw==} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + + which-builtin-type@1.1.4: + resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + workerd@1.20241106.1: + resolution: {integrity: sha512-1GdKl0kDw8rrirr/ThcK66Kbl4/jd4h8uHx5g7YHBrnenY5SX1UPuop2cnCzYUxlg55kPjzIqqYslz1muRFgFw==} + engines: {node: '>=16'} + hasBin: true + + wrangler@3.86.1: + resolution: {integrity: sha512-ujN74lPQCQRsMcvf48WLLZUqOqUbJJzt5+Xm5T3tGrpRJLW+dTB0ffvT/e2DBBvHZ7R52ZzZdm1akyLPsZmZ9Q==} + engines: {node: '>=16.17.0'} + hasBin: true + peerDependencies: + '@cloudflare/workers-types': ^4.20241106.0 + peerDependenciesMeta: + '@cloudflare/workers-types': + optional: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xxhash-wasm@1.0.2: + resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} + + yaml@2.6.0: + resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} + engines: {node: '>= 14'} + hasBin: true + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + youch@3.3.4: + resolution: {integrity: sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==} + + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + +snapshots: + + '@alloc/quick-lru@5.2.0': {} + + '@cloudflare/kv-asset-handler@0.3.4': + dependencies: + mime: 3.0.0 + + '@cloudflare/workerd-darwin-64@1.20241106.1': + optional: true + + '@cloudflare/workerd-darwin-arm64@1.20241106.1': + optional: true + + '@cloudflare/workerd-linux-64@1.20241106.1': + optional: true + + '@cloudflare/workerd-linux-arm64@1.20241106.1': + optional: true + + '@cloudflare/workerd-windows-64@1.20241106.1': + optional: true + + '@cloudflare/workers-shared@0.7.1': + dependencies: + mime: 3.0.0 + zod: 3.23.8 + + '@cloudflare/workers-types@4.20241112.0': {} + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@emnapi/runtime@1.3.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19)': + dependencies: + esbuild: 0.17.19 + + '@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.17.19)': + dependencies: + esbuild: 0.17.19 + escape-string-regexp: 4.0.0 + rollup-plugin-node-polyfills: 0.2.1 + + '@esbuild/android-arm64@0.17.19': + optional: true + + '@esbuild/android-arm@0.17.19': + optional: true + + '@esbuild/android-x64@0.17.19': + optional: true + + '@esbuild/darwin-arm64@0.17.19': + optional: true + + '@esbuild/darwin-x64@0.17.19': + optional: true + + '@esbuild/freebsd-arm64@0.17.19': + optional: true + + '@esbuild/freebsd-x64@0.17.19': + optional: true + + '@esbuild/linux-arm64@0.17.19': + optional: true + + '@esbuild/linux-arm@0.17.19': + optional: true + + '@esbuild/linux-ia32@0.17.19': + optional: true + + '@esbuild/linux-loong64@0.17.19': + optional: true + + '@esbuild/linux-mips64el@0.17.19': + optional: true + + '@esbuild/linux-ppc64@0.17.19': + optional: true + + '@esbuild/linux-riscv64@0.17.19': + optional: true + + '@esbuild/linux-s390x@0.17.19': + optional: true + + '@esbuild/linux-x64@0.17.19': + optional: true + + '@esbuild/netbsd-x64@0.17.19': + optional: true + + '@esbuild/openbsd-x64@0.17.19': + optional: true + + '@esbuild/sunos-x64@0.17.19': + optional: true + + '@esbuild/win32-arm64@0.17.19': + optional: true + + '@esbuild/win32-ia32@0.17.19': + optional: true + + '@esbuild/win32-x64@0.17.19': + optional: true + + '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': + dependencies: + eslint: 8.57.1 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.3.7 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.1': {} + + '@fastify/busboy@2.1.1': {} + + '@humanwhocodes/config-array@0.13.0': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.7 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.3.1 + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@neondatabase/serverless@0.9.5': + dependencies: + '@types/pg': 8.11.6 + + '@next/env@15.0.3': {} + + '@next/eslint-plugin-next@15.0.3': + dependencies: + fast-glob: 3.3.1 + + '@next/swc-darwin-arm64@15.0.3': + optional: true + + '@next/swc-darwin-x64@15.0.3': + optional: true + + '@next/swc-linux-arm64-gnu@15.0.3': + optional: true + + '@next/swc-linux-arm64-musl@15.0.3': + optional: true + + '@next/swc-linux-x64-gnu@15.0.3': + optional: true + + '@next/swc-linux-x64-musl@15.0.3': + optional: true + + '@next/swc-win32-arm64-msvc@15.0.3': + optional: true + + '@next/swc-win32-x64-msvc@15.0.3': + optional: true + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@nolyfill/is-core-module@1.0.39': {} + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@prisma/adapter-neon@5.22.0(@neondatabase/serverless@0.9.5)': + dependencies: + '@neondatabase/serverless': 0.9.5 + '@prisma/driver-adapter-utils': 5.22.0 + postgres-array: 3.0.2 + + '@prisma/client@5.22.0(prisma@5.22.0)': + optionalDependencies: + prisma: 5.22.0 + + '@prisma/debug@5.22.0': {} + + '@prisma/driver-adapter-utils@5.22.0': + dependencies: + '@prisma/debug': 5.22.0 + + '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': {} + + '@prisma/engines@5.22.0': + dependencies: + '@prisma/debug': 5.22.0 + '@prisma/engines-version': 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 + '@prisma/fetch-engine': 5.22.0 + '@prisma/get-platform': 5.22.0 + + '@prisma/fetch-engine@5.22.0': + dependencies: + '@prisma/debug': 5.22.0 + '@prisma/engines-version': 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 + '@prisma/get-platform': 5.22.0 + + '@prisma/get-platform@5.22.0': + dependencies: + '@prisma/debug': 5.22.0 + + '@rtsao/scc@1.1.0': {} + + '@rushstack/eslint-patch@1.10.4': {} + + '@swc/counter@0.1.3': {} + + '@swc/helpers@0.5.13': + dependencies: + tslib: 2.8.1 + + '@tanstack/query-core@5.59.20': {} + + '@tanstack/react-query@5.59.20(react@19.0.0-rc-66855b96-20241106)': + dependencies: + '@tanstack/query-core': 5.59.20 + react: 19.0.0-rc-66855b96-20241106 + + '@types/json5@0.0.29': {} + + '@types/node-forge@1.3.11': + dependencies: + '@types/node': 20.17.6 + + '@types/node@20.17.6': + dependencies: + undici-types: 6.19.8 + + '@types/pg@8.11.6': + dependencies: + '@types/node': 20.17.6 + pg-protocol: 1.7.0 + pg-types: 4.0.2 + + '@typescript-eslint/eslint-plugin@8.14.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.14.0 + '@typescript-eslint/type-utils': 8.14.0(eslint@8.57.1)(typescript@5.6.3) + '@typescript-eslint/utils': 8.14.0(eslint@8.57.1)(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.14.0 + eslint: 8.57.1 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.4.0(typescript@5.6.3) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3)': + dependencies: + '@typescript-eslint/scope-manager': 7.2.0 + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 7.2.0 + debug: 4.3.7 + eslint: 8.57.1 + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@7.2.0': + dependencies: + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/visitor-keys': 7.2.0 + + '@typescript-eslint/scope-manager@8.14.0': + dependencies: + '@typescript-eslint/types': 8.14.0 + '@typescript-eslint/visitor-keys': 8.14.0 + + '@typescript-eslint/type-utils@8.14.0(eslint@8.57.1)(typescript@5.6.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.14.0(eslint@8.57.1)(typescript@5.6.3) + debug: 4.3.7 + ts-api-utils: 1.4.0(typescript@5.6.3) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - eslint + - supports-color + + '@typescript-eslint/types@7.2.0': {} + + '@typescript-eslint/types@8.14.0': {} + + '@typescript-eslint/typescript-estree@7.2.0(typescript@5.6.3)': + dependencies: + '@typescript-eslint/types': 7.2.0 + '@typescript-eslint/visitor-keys': 7.2.0 + debug: 4.3.7 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.3 + ts-api-utils: 1.4.0(typescript@5.6.3) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@8.14.0(typescript@5.6.3)': + dependencies: + '@typescript-eslint/types': 8.14.0 + '@typescript-eslint/visitor-keys': 8.14.0 + debug: 4.3.7 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.4.0(typescript@5.6.3) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.14.0(eslint@8.57.1)(typescript@5.6.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@typescript-eslint/scope-manager': 8.14.0 + '@typescript-eslint/types': 8.14.0 + '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3) + eslint: 8.57.1 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@7.2.0': + dependencies: + '@typescript-eslint/types': 7.2.0 + eslint-visitor-keys: 3.4.3 + + '@typescript-eslint/visitor-keys@8.14.0': + dependencies: + '@typescript-eslint/types': 8.14.0 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.2.0': {} + + '@upstash/redis@1.34.3': + dependencies: + crypto-js: 4.2.0 + + acorn-jsx@5.3.2(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + + acorn-walk@8.3.4: + dependencies: + acorn: 8.14.0 + + acorn@8.14.0: {} + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@5.0.2: {} + + argparse@2.0.1: {} + + aria-query@5.3.2: {} + + array-buffer-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + + array-includes@3.1.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.4 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + is-string: 1.0.7 + + array-union@2.1.0: {} + + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.4 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + + array.prototype.findlastindex@1.2.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.4 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + + array.prototype.flat@1.3.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.4 + es-shim-unscopables: 1.0.2 + + array.prototype.flatmap@1.3.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.4 + es-shim-unscopables: 1.0.2 + + array.prototype.tosorted@1.1.4: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.4 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 + + arraybuffer.prototype.slice@1.0.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.4 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + + as-table@1.0.55: + dependencies: + printable-characters: 1.0.42 + + ast-types-flow@0.0.8: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + + axe-core@4.10.2: {} + + axobject-query@4.1.0: {} + + balanced-match@1.0.2: {} + + binary-extensions@2.3.0: {} + + blake3-wasm@2.1.5: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + busboy@1.6.0: + dependencies: + streamsearch: 1.1.0 + + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + callsites@3.1.0: {} + + camelcase-css@2.0.1: {} + + caniuse-lite@1.0.30001680: {} + + capnp-ts@0.7.0: + dependencies: + debug: 4.3.7 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + client-only@0.0.1: {} + + clsx@2.1.1: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + optional: true + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + optional: true + + commander@4.1.1: {} + + concat-map@0.0.1: {} + + cookie@0.7.2: {} + + copy-anything@3.0.5: + dependencies: + is-what: 4.1.16 + + cross-spawn@7.0.5: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypto-js@4.2.0: {} + + cssesc@3.0.0: {} + + csstype@3.1.3: {} + + damerau-levenshtein@1.0.8: {} + + data-uri-to-buffer@2.0.2: {} + + data-view-buffer@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-offset@1.0.0: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + date-fns@4.1.0: {} + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + deep-is@0.1.4: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + defu@6.1.4: {} + + detect-libc@2.0.3: + optional: true + + didyoumean@1.2.2: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dlv@1.1.3: {} + + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + eastasianwidth@0.2.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + es-abstract@1.23.4: + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.3 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.3 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + es-iterator-helpers@1.2.0: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.4 + 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 + gopd: 1.0.1 + 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: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.0.3: + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-shim-unscopables@1.0.2: + dependencies: + hasown: 2.0.2 + + es-to-primitive@1.2.1: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + + esbuild@0.17.19: + optionalDependencies: + '@esbuild/android-arm': 0.17.19 + '@esbuild/android-arm64': 0.17.19 + '@esbuild/android-x64': 0.17.19 + '@esbuild/darwin-arm64': 0.17.19 + '@esbuild/darwin-x64': 0.17.19 + '@esbuild/freebsd-arm64': 0.17.19 + '@esbuild/freebsd-x64': 0.17.19 + '@esbuild/linux-arm': 0.17.19 + '@esbuild/linux-arm64': 0.17.19 + '@esbuild/linux-ia32': 0.17.19 + '@esbuild/linux-loong64': 0.17.19 + '@esbuild/linux-mips64el': 0.17.19 + '@esbuild/linux-ppc64': 0.17.19 + '@esbuild/linux-riscv64': 0.17.19 + '@esbuild/linux-s390x': 0.17.19 + '@esbuild/linux-x64': 0.17.19 + '@esbuild/netbsd-x64': 0.17.19 + '@esbuild/openbsd-x64': 0.17.19 + '@esbuild/sunos-x64': 0.17.19 + '@esbuild/win32-arm64': 0.17.19 + '@esbuild/win32-ia32': 0.17.19 + '@esbuild/win32-x64': 0.17.19 + + escape-string-regexp@4.0.0: {} + + eslint-config-next@15.0.3(eslint@8.57.1)(typescript@5.6.3): + dependencies: + '@next/eslint-plugin-next': 15.0.3 + '@rushstack/eslint-patch': 1.10.4 + '@typescript-eslint/eslint-plugin': 8.14.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3) + '@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3) + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) + eslint-plugin-react: 7.37.2(eslint@8.57.1) + eslint-plugin-react-hooks: 5.0.0(eslint@8.57.1) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.15.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.3.7 + enhanced-resolve: 5.17.1 + eslint: 8.57.1 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + fast-glob: 3.3.2 + get-tsconfig: 4.8.1 + is-bun-module: 1.2.1 + is-glob: 4.0.3 + optionalDependencies: + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + + eslint-module-utils@2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3) + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) + transitivePeerDependencies: + - supports-color + + eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): + 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: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + 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 + optionalDependencies: + '@typescript-eslint/parser': 7.2.0(eslint@8.57.1)(typescript@5.6.3) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1): + 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.2 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.57.1 + 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-react-hooks@5.0.0(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + + eslint-plugin-react@7.37.2(eslint@8.57.1): + 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.2.0 + eslint: 8.57.1 + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + 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-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint@8.57.1: + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@eslint-community/regexpp': 4.12.1 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.5 + debug: 4.3.7 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@9.6.1: + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 3.4.3 + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@0.6.1: {} + + esutils@2.0.3: {} + + exit-hook@2.2.1: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.1: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 + + flatted@3.3.1: {} + + for-each@0.3.3: + dependencies: + is-callable: 1.2.7 + + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.5 + signal-exit: 4.1.0 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function.prototype.name@1.1.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.4 + functions-have-names: 1.2.3 + + functions-have-names@1.2.3: {} + + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + get-source@2.0.12: + dependencies: + data-uri-to-buffer: 2.0.2 + source-map: 0.6.1 + + get-symbol-description@1.0.2: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + + get-tsconfig@4.8.1: + dependencies: + resolve-pkg-maps: 1.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.0.1 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + has-bigints@1.0.2: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.0.3 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hono@4.6.10: {} + + ignore@5.3.2: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + internal-slot@1.0.7: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 + + is-array-buffer@3.0.4: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + + is-arrayish@0.3.2: + optional: true + + is-async-function@2.0.0: + dependencies: + has-tostringtag: 1.0.2 + + is-bigint@1.0.4: + dependencies: + has-bigints: 1.0.2 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-boolean-object@1.1.2: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-bun-module@1.2.1: + dependencies: + semver: 7.6.3 + + is-callable@1.2.7: {} + + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + + is-data-view@1.0.1: + dependencies: + is-typed-array: 1.1.13 + + is-date-object@1.0.5: + dependencies: + has-tostringtag: 1.0.2 + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.0.2: + dependencies: + call-bind: 1.0.7 + + is-fullwidth-code-point@3.0.0: {} + + is-generator-function@1.0.10: + dependencies: + has-tostringtag: 1.0.2 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-map@2.0.3: {} + + is-negative-zero@2.0.3: {} + + is-number-object@1.0.7: + dependencies: + has-tostringtag: 1.0.2 + + is-number@7.0.0: {} + + is-path-inside@3.0.3: {} + + is-regex@1.1.4: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.3: + dependencies: + call-bind: 1.0.7 + + is-string@1.0.7: + dependencies: + has-tostringtag: 1.0.2 + + is-symbol@1.0.4: + dependencies: + has-symbols: 1.0.3 + + is-typed-array@1.1.13: + dependencies: + which-typed-array: 1.1.15 + + is-weakmap@2.0.2: {} + + is-weakref@1.0.2: + dependencies: + call-bind: 1.0.7 + + is-weakset@2.0.3: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + + is-what@4.1.16: {} + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + iterator.prototype@1.1.3: + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.6 + set-function-name: 2.0.2 + + itty-time@1.0.6: {} + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jiti@1.21.6: {} + + js-tokens@4.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.2 + object.assign: 4.1.5 + object.values: 1.2.0 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + language-subtag-registry@0.3.23: {} + + language-tags@1.0.9: + dependencies: + language-subtag-registry: 0.3.23 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lilconfig@2.1.0: {} + + lilconfig@3.1.2: {} + + lines-and-columns@1.2.4: {} + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.merge@4.6.2: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lru-cache@10.4.3: {} + + magic-string@0.25.9: + dependencies: + sourcemap-codec: 1.4.8 + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime@3.0.0: {} + + miniflare@3.20241106.0: + dependencies: + '@cspotcode/source-map-support': 0.8.1 + acorn: 8.14.0 + acorn-walk: 8.3.4 + capnp-ts: 0.7.0 + exit-hook: 2.2.1 + glob-to-regexp: 0.4.1 + stoppable: 1.1.0 + undici: 5.28.4 + workerd: 1.20241106.1 + ws: 8.18.0 + youch: 3.3.4 + zod: 3.23.8 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.3: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + minipass@7.1.2: {} + + ms@2.1.3: {} + + mustache@4.2.0: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.7: {} + + natural-compare@1.4.0: {} + + next@15.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106): + dependencies: + '@next/env': 15.0.3 + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.13 + busboy: 1.6.0 + caniuse-lite: 1.0.30001680 + postcss: 8.4.31 + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + styled-jsx: 5.1.6(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@next/swc-darwin-arm64': 15.0.3 + '@next/swc-darwin-x64': 15.0.3 + '@next/swc-linux-arm64-gnu': 15.0.3 + '@next/swc-linux-arm64-musl': 15.0.3 + '@next/swc-linux-x64-gnu': 15.0.3 + '@next/swc-linux-x64-musl': 15.0.3 + '@next/swc-win32-arm64-msvc': 15.0.3 + '@next/swc-win32-x64-msvc': 15.0.3 + sharp: 0.33.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + node-forge@1.3.1: {} + + normalize-path@3.0.0: {} + + object-assign@4.1.1: {} + + object-hash@3.0.0: {} + + object-inspect@1.13.3: {} + + object-keys@1.1.1: {} + + object.assign@4.1.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + + object.entries@1.1.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.4 + es-object-atoms: 1.0.0 + + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.4 + + object.values@1.2.0: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + obuf@1.1.2: {} + + ohash@1.1.4: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + package-json-from-dist@1.0.1: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-to-regexp@6.3.0: {} + + path-type@4.0.0: {} + + pathe@1.1.2: {} + + pg-int8@1.0.1: {} + + pg-numeric@1.0.2: {} + + pg-protocol@1.7.0: {} + + pg-types@4.0.2: + dependencies: + pg-int8: 1.0.1 + pg-numeric: 1.0.2 + postgres-array: 3.0.2 + postgres-bytea: 3.0.0 + postgres-date: 2.1.0 + postgres-interval: 3.0.0 + postgres-range: 1.1.4 + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + pify@2.3.0: {} + + pirates@4.0.6: {} + + possible-typed-array-names@1.0.0: {} + + postcss-import@15.1.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + + postcss-js@4.0.1(postcss@8.4.49): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.49 + + postcss-load-config@4.0.2(postcss@8.4.49): + dependencies: + lilconfig: 3.1.2 + yaml: 2.6.0 + optionalDependencies: + postcss: 8.4.49 + + postcss-nested@6.2.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-selector-parser: 6.1.2 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.4.31: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + postcss@8.4.49: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + postgres-array@3.0.2: {} + + postgres-bytea@3.0.0: + dependencies: + obuf: 1.1.2 + + postgres-date@2.1.0: {} + + postgres-interval@3.0.0: {} + + postgres-range@1.1.4: {} + + prelude-ls@1.2.1: {} + + printable-characters@1.0.42: {} + + prisma@5.22.0: + dependencies: + '@prisma/engines': 5.22.0 + optionalDependencies: + fsevents: 2.3.3 + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106): + dependencies: + react: 19.0.0-rc-66855b96-20241106 + scheduler: 0.25.0-rc-66855b96-20241106 + + react-is@16.13.1: {} + + react@19.0.0-rc-66855b96-20241106: {} + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + reflect.getprototypeof@1.0.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.4 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + which-builtin-type: 1.1.4 + + regexp.prototype.flags@1.5.3: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + + resolve-from@4.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + resolve.exports@2.0.2: {} + + resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + resolve@2.0.0-next.5: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + reusify@1.0.4: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rollup-plugin-inject@3.0.2: + dependencies: + estree-walker: 0.6.1 + magic-string: 0.25.9 + rollup-pluginutils: 2.8.2 + + rollup-plugin-node-polyfills@0.2.1: + dependencies: + rollup-plugin-inject: 3.0.2 + + rollup-pluginutils@2.8.2: + dependencies: + estree-walker: 0.6.1 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-array-concat@1.1.2: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 + + safe-regex-test@1.0.3: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + + scheduler@0.25.0-rc-66855b96-20241106: {} + + selfsigned@2.4.1: + dependencies: + '@types/node-forge': 1.3.11 + node-forge: 1.3.1 + + semver@6.3.1: {} + + semver@7.6.3: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + sharp@0.33.5: + 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 + optional: true + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + side-channel@1.0.6: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.3 + + signal-exit@4.1.0: {} + + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + optional: true + + slash@3.0.0: {} + + source-map-js@1.2.1: {} + + source-map@0.6.1: {} + + sourcemap-codec@1.4.8: {} + + stacktracey@2.1.8: + dependencies: + as-table: 1.0.55 + get-source: 2.0.12 + + stoppable@1.1.0: {} + + streamsearch@1.1.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string.prototype.includes@2.0.1: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.4 + + string.prototype.matchall@4.0.11: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.4 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.3 + set-function-name: 2.0.2 + side-channel: 1.0.6 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.4 + + string.prototype.trim@1.2.9: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.4 + es-object-atoms: 1.0.0 + + string.prototype.trimend@1.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-bom@3.0.0: {} + + strip-json-comments@3.1.1: {} + + styled-jsx@5.1.6(react@19.0.0-rc-66855b96-20241106): + dependencies: + client-only: 0.0.1 + react: 19.0.0-rc-66855b96-20241106 + + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + superjson@2.2.1: + dependencies: + copy-anything: 3.0.5 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + tailwind-merge@2.5.4: {} + + tailwindcss@3.4.14: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.6 + lilconfig: 2.1.0 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.4.49 + postcss-import: 15.1.0(postcss@8.4.49) + postcss-js: 4.0.1(postcss@8.4.49) + postcss-load-config: 4.0.2(postcss@8.4.49) + postcss-nested: 6.2.0(postcss@8.4.49) + postcss-selector-parser: 6.1.2 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + tapable@2.2.1: {} + + text-table@0.2.0: {} + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + ts-api-utils@1.4.0(typescript@5.6.3): + dependencies: + typescript: 5.6.3 + + ts-interface-checker@0.1.13: {} + + tsconfig-paths@3.15.0: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@2.8.1: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.20.2: {} + + typed-array-buffer@1.0.2: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + + typed-array-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + + typed-array-byte-offset@1.0.2: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + + typed-array-length@1.0.6: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + + types-react-dom@19.0.0-rc.1: + dependencies: + '@types/react': types-react@19.0.0-rc.1 + + types-react@19.0.0-rc.1: + dependencies: + csstype: 3.1.3 + + typescript@5.6.3: {} + + ufo@1.5.4: {} + + unbox-primitive@1.0.2: + dependencies: + call-bind: 1.0.7 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + + undici-types@6.19.8: {} + + undici@5.28.4: + dependencies: + '@fastify/busboy': 2.1.1 + + unenv-nightly@2.0.0-20241024-111401-d4156ac: + dependencies: + defu: 6.1.4 + ohash: 1.1.4 + pathe: 1.1.2 + ufo: 1.5.4 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + which-boxed-primitive@1.0.2: + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + + which-builtin-type@1.1.4: + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.3 + + which-typed-array@1.1.15: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + workerd@1.20241106.1: + optionalDependencies: + '@cloudflare/workerd-darwin-64': 1.20241106.1 + '@cloudflare/workerd-darwin-arm64': 1.20241106.1 + '@cloudflare/workerd-linux-64': 1.20241106.1 + '@cloudflare/workerd-linux-arm64': 1.20241106.1 + '@cloudflare/workerd-windows-64': 1.20241106.1 + + wrangler@3.86.1(@cloudflare/workers-types@4.20241112.0): + dependencies: + '@cloudflare/kv-asset-handler': 0.3.4 + '@cloudflare/workers-shared': 0.7.1 + '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) + '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) + blake3-wasm: 2.1.5 + chokidar: 3.6.0 + date-fns: 4.1.0 + esbuild: 0.17.19 + itty-time: 1.0.6 + miniflare: 3.20241106.0 + nanoid: 3.3.7 + path-to-regexp: 6.3.0 + resolve: 1.22.8 + resolve.exports: 2.0.2 + selfsigned: 2.4.1 + source-map: 0.6.1 + unenv: unenv-nightly@2.0.0-20241024-111401-d4156ac + workerd: 1.20241106.1 + xxhash-wasm: 1.0.2 + optionalDependencies: + '@cloudflare/workers-types': 4.20241112.0 + fsevents: 2.3.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + ws@8.18.0: {} + + xxhash-wasm@1.0.2: {} + + yaml@2.6.0: {} + + yocto-queue@0.1.0: {} + + youch@3.3.4: + dependencies: + cookie: 0.7.2 + mustache: 4.2.0 + stacktracey: 2.1.8 + + zod@3.23.8: {} diff --git a/src/app/lib/client.ts b/src/app/lib/client.ts index 514ada7..9ba4e28 100644 --- a/src/app/lib/client.ts +++ b/src/app/lib/client.ts @@ -11,7 +11,7 @@ const getBaseUrl = () => { } if (process.env.NODE_ENV === "development") { - return "http://localhost:3000/" + return process.env.NEXT_PUBLIC_APP_URL! } // if deployed to vercel, use vercel url diff --git a/src/app/page.tsx b/src/app/page.tsx index 38de358..3f904c4 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -9,11 +9,6 @@ import { client } from "./lib/client" export default async function Home() { const res = await client.post.recent.$get() const recentPost = await res.json() - - /** - * This is the intended way to prefetch data on the server to have it immediately available in the client. - * But: you could also just pass the post as a prop instead of using the `HydrationBoundary` - */ const queryClient = new QueryClient() await queryClient.prefetchQuery({ diff --git a/src/server/procedures.ts b/src/server/procedures.ts index 1b1281f..75c74d4 100644 --- a/src/server/procedures.ts +++ b/src/server/procedures.ts @@ -41,3 +41,4 @@ const extendedDatabaseMiddleware = j.middleware(async ({ c, next }) => { */ export const baseProcedure = j.procedure export const publicProcedure = baseProcedure.use(extendedDatabaseMiddleware) +// export const publicProcedure = baseProcedure diff --git a/src/server/routers/post-router.ts b/src/server/routers/post-router.ts index e53788c..8b9e625 100644 --- a/src/server/routers/post-router.ts +++ b/src/server/routers/post-router.ts @@ -23,7 +23,7 @@ export const postRouter = router({ const post = await db.post.create({ data: { name }, - cache: { id: "recent-post" }, + // cache: { id: "recent-post" }, }) return c.superjson({ ...post }) diff --git a/tsconfig.json b/tsconfig.json index 02dea28..843d1a5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,10 @@ { "compilerOptions": { - "lib": ["dom", "dom.iterable", "esnext"], + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], "allowJs": true, "skipLibCheck": true, "strict": true, @@ -18,8 +22,11 @@ } ], "paths": { - "@/*": ["./src/*"] - } + "@/*": [ + "./src/*" + ] + }, + "target": "ES2017" }, "include": [ "next-env.d.ts", @@ -28,5 +35,7 @@ ".next/types/**/*.ts", "prisma-extensions.d.ts" ], - "exclude": ["node_modules"] + "exclude": [ + "node_modules" + ] } From fb1ac643fcd978325e100cbfe62bd7241b0b1d66 Mon Sep 17 00:00:00 2001 From: growwidtalha Date: Fri, 20 Dec 2024 18:59:57 +0500 Subject: [PATCH 2/2] feat: implement authentication components and hooks --- auth.config.ts | 36 + auth.ts | 93 + bun.lockb | Bin 185534 -> 0 bytes components.json | 21 + next-auth.d.ts | 14 + package.json | 33 +- pnpm-lock.yaml | 2668 +++++++++++++++-- prisma/schema.prisma | 134 +- routes.ts | 31 + src/app/(protected)/dashboard/page.tsx | 12 + .../dashboard/products/create/page.tsx | 14 + .../products/empty-products-state.tsx | 9 + .../(protected)/dashboard/products/page.tsx | 32 + src/app/(protected)/layout.tsx | 64 + src/app/api/[[...route]]/route.ts | 4 +- src/app/api/auth/[...nextauth]/route.ts | 2 + src/app/api/uploadthing/core.ts | 36 + src/app/api/uploadthing/route.ts | 11 + src/app/auth/error/page.tsx | 10 + src/app/auth/layout.tsx | 11 + src/app/auth/login/page.tsx | 12 + src/app/auth/new-password/page.tsx | 11 + src/app/auth/new-verification/page.tsx | 10 + src/app/auth/register/page.tsx | 12 + src/app/auth/reset/page.tsx | 10 + src/app/globals.css | 68 + src/app/layout.tsx | 23 +- src/app/page.tsx | 38 +- src/components/dashboard-page.tsx | 49 + src/{app => }/components/post.tsx | 0 src/{app => }/components/providers.tsx | 14 +- src/components/sidebar.tsx | 134 + src/components/ui/avatar.tsx | 50 + src/components/ui/badge.tsx | 36 + src/components/ui/breadcrumb.tsx | 115 + src/components/ui/button.tsx | 56 + src/components/ui/card.tsx | 79 + src/components/ui/combo-with-create.tsx | 151 + src/components/ui/command.tsx | 153 + src/components/ui/dialog.tsx | 122 + src/components/ui/dropdown-menu.tsx | 200 ++ src/components/ui/form.tsx | 178 ++ src/components/ui/input.tsx | 22 + src/components/ui/label.tsx | 26 + src/components/ui/modal.tsx | 82 + src/components/ui/popover.tsx | 31 + src/components/ui/scroll-area.tsx | 48 + src/components/ui/select.tsx | 160 + src/components/ui/sonner.tsx | 31 + src/components/ui/textarea.tsx | 22 + src/components/ui/tooltip.tsx | 30 + src/features/auth/actions/login.ts | 89 + src/features/auth/actions/new-password.ts | 49 + src/features/auth/actions/new-verification.ts | 35 + src/features/auth/actions/register.ts | 39 + src/features/auth/actions/reset.ts | 29 + src/features/auth/components/auth-error.tsx | 18 + .../auth/components/auth-provider.tsx | 14 + src/features/auth/components/back-button.tsx | 18 + src/features/auth/components/card-wrapper.tsx | 42 + src/features/auth/components/form-error.tsx | 15 + src/features/auth/components/form-success.tsx | 15 + src/features/auth/components/header.tsx | 16 + src/features/auth/components/login-button.tsx | 25 + src/features/auth/components/login-form.tsx | 156 + .../auth/components/logout-button.tsx | 15 + .../auth/components/new-password-form.tsx | 82 + .../auth/components/new-verification-form.tsx | 54 + .../auth/components/register-form.tsx | 118 + src/features/auth/components/reset-form.tsx | 78 + src/features/auth/components/role-gate.tsx | 20 + src/features/auth/components/social.tsx | 37 + src/features/auth/components/user-button.tsx | 39 + src/features/auth/data/account.ts | 13 + .../auth/data/password-reset-token.ts | 22 + .../auth/data/two-factor-confirmation.ts | 13 + src/features/auth/data/two-factor-token.ts | 22 + src/features/auth/data/user.ts | 24 + src/features/auth/data/verification-token.ts | 24 + src/features/auth/hooks/use-current-role.tsx | 7 + src/features/auth/hooks/use-current-user.ts | 6 + src/features/auth/lib/auth.ts | 14 + src/features/auth/lib/mail.ts | 38 + src/features/auth/lib/tokens.ts | 77 + src/features/auth/schemas/index.ts | 29 + .../products/components/image-upload.tsx | 85 + .../products/components/product-form.tsx | 486 +++ src/features/products/hooks/useCategories.ts | 16 + .../products/hooks/useCreateProduct.ts | 20 + src/features/products/hooks/useUploadImage.ts | 19 + src/hooks/use-media-query.ts | 43 + src/{app => }/lib/client.ts | 21 +- src/lib/uploadthings.ts | 9 + src/lib/utils.ts | 6 + src/middleware.ts | 45 + src/server/index.ts | 23 +- src/server/procedures.ts | 34 +- src/server/routers/post-router.ts | 31 - src/server/routers/products-router.ts | 22 + tailwind.config.ts | 101 +- tsconfig.json | 2 +- 101 files changed, 7084 insertions(+), 379 deletions(-) create mode 100644 auth.config.ts create mode 100644 auth.ts delete mode 100755 bun.lockb create mode 100644 components.json create mode 100644 next-auth.d.ts create mode 100644 routes.ts create mode 100644 src/app/(protected)/dashboard/page.tsx create mode 100644 src/app/(protected)/dashboard/products/create/page.tsx create mode 100644 src/app/(protected)/dashboard/products/empty-products-state.tsx create mode 100644 src/app/(protected)/dashboard/products/page.tsx create mode 100644 src/app/(protected)/layout.tsx create mode 100644 src/app/api/auth/[...nextauth]/route.ts create mode 100644 src/app/api/uploadthing/core.ts create mode 100644 src/app/api/uploadthing/route.ts create mode 100644 src/app/auth/error/page.tsx create mode 100644 src/app/auth/layout.tsx create mode 100644 src/app/auth/login/page.tsx create mode 100644 src/app/auth/new-password/page.tsx create mode 100644 src/app/auth/new-verification/page.tsx create mode 100644 src/app/auth/register/page.tsx create mode 100644 src/app/auth/reset/page.tsx create mode 100644 src/components/dashboard-page.tsx rename src/{app => }/components/post.tsx (100%) rename src/{app => }/components/providers.tsx (67%) create mode 100644 src/components/sidebar.tsx create mode 100644 src/components/ui/avatar.tsx create mode 100644 src/components/ui/badge.tsx create mode 100644 src/components/ui/breadcrumb.tsx create mode 100644 src/components/ui/button.tsx create mode 100644 src/components/ui/card.tsx create mode 100644 src/components/ui/combo-with-create.tsx create mode 100644 src/components/ui/command.tsx create mode 100644 src/components/ui/dialog.tsx create mode 100644 src/components/ui/dropdown-menu.tsx create mode 100644 src/components/ui/form.tsx create mode 100644 src/components/ui/input.tsx create mode 100644 src/components/ui/label.tsx create mode 100644 src/components/ui/modal.tsx create mode 100644 src/components/ui/popover.tsx create mode 100644 src/components/ui/scroll-area.tsx create mode 100644 src/components/ui/select.tsx create mode 100644 src/components/ui/sonner.tsx create mode 100644 src/components/ui/textarea.tsx create mode 100644 src/components/ui/tooltip.tsx create mode 100644 src/features/auth/actions/login.ts create mode 100644 src/features/auth/actions/new-password.ts create mode 100644 src/features/auth/actions/new-verification.ts create mode 100644 src/features/auth/actions/register.ts create mode 100644 src/features/auth/actions/reset.ts create mode 100644 src/features/auth/components/auth-error.tsx create mode 100644 src/features/auth/components/auth-provider.tsx create mode 100644 src/features/auth/components/back-button.tsx create mode 100644 src/features/auth/components/card-wrapper.tsx create mode 100644 src/features/auth/components/form-error.tsx create mode 100644 src/features/auth/components/form-success.tsx create mode 100644 src/features/auth/components/header.tsx create mode 100644 src/features/auth/components/login-button.tsx create mode 100644 src/features/auth/components/login-form.tsx create mode 100644 src/features/auth/components/logout-button.tsx create mode 100644 src/features/auth/components/new-password-form.tsx create mode 100644 src/features/auth/components/new-verification-form.tsx create mode 100644 src/features/auth/components/register-form.tsx create mode 100644 src/features/auth/components/reset-form.tsx create mode 100644 src/features/auth/components/role-gate.tsx create mode 100644 src/features/auth/components/social.tsx create mode 100644 src/features/auth/components/user-button.tsx create mode 100644 src/features/auth/data/account.ts create mode 100644 src/features/auth/data/password-reset-token.ts create mode 100644 src/features/auth/data/two-factor-confirmation.ts create mode 100644 src/features/auth/data/two-factor-token.ts create mode 100644 src/features/auth/data/user.ts create mode 100644 src/features/auth/data/verification-token.ts create mode 100644 src/features/auth/hooks/use-current-role.tsx create mode 100644 src/features/auth/hooks/use-current-user.ts create mode 100644 src/features/auth/lib/auth.ts create mode 100644 src/features/auth/lib/mail.ts create mode 100644 src/features/auth/lib/tokens.ts create mode 100644 src/features/auth/schemas/index.ts create mode 100644 src/features/products/components/image-upload.tsx create mode 100644 src/features/products/components/product-form.tsx create mode 100644 src/features/products/hooks/useCategories.ts create mode 100644 src/features/products/hooks/useCreateProduct.ts create mode 100644 src/features/products/hooks/useUploadImage.ts create mode 100644 src/hooks/use-media-query.ts rename src/{app => }/lib/client.ts (85%) create mode 100644 src/lib/uploadthings.ts create mode 100644 src/lib/utils.ts create mode 100644 src/middleware.ts delete mode 100644 src/server/routers/post-router.ts create mode 100644 src/server/routers/products-router.ts diff --git a/auth.config.ts b/auth.config.ts new file mode 100644 index 0000000..06448ad --- /dev/null +++ b/auth.config.ts @@ -0,0 +1,36 @@ +import { NextAuthConfig } from "next-auth"; +import Credentials from "next-auth/providers/credentials"; +import { LoginSchema } from "@/src/features/auth/schemas"; +import { getUserByEmail } from "@/src/features/auth/data/user"; +import Github from "next-auth/providers/github" +import Google from "next-auth/providers/google" +import bcrypt from "bcryptjs"; +export default { + providers: [ + Github({ + clientId: process.env.GITHUB_CLIENT_ID!, + clientSecret: process.env.GITHUB_CLIENT_SECRET!, + }), + Google({ + clientId: process.env.GOOGLE_CLIENT_ID!, + clientSecret: process.env.GOOGLE_CLIENT_SECRET!, + }), + Credentials({ + async authorize(credentials) { + const validatedFields = LoginSchema.safeParse(credentials); + + if (validatedFields.success) { + const { email, password } = validatedFields.data; + + const user = await getUserByEmail(email); + if (!user || !user.password) { + return null; + } + const passwordMatch = await bcrypt.compare(password, user.password); + if (passwordMatch) return user; + } + return null; + }, + }), + ], +} satisfies NextAuthConfig; diff --git a/auth.ts b/auth.ts new file mode 100644 index 0000000..9a8ea9c --- /dev/null +++ b/auth.ts @@ -0,0 +1,93 @@ +import NextAuth from "next-auth"; +import authConfig from "./auth.config"; +import { PrismaAdapter } from "@auth/prisma-adapter"; +import { db } from "@/src/db"; +import { getUserById } from "@/src/features/auth/data/user"; +import { UserRole } from "@prisma/client"; +import { getTwoFactorConfirmationByUserId } from "@/src/features/auth/data/two-factor-confirmation"; +import { getAccountByUserId } from "@/src/features/auth/data/account"; + +export const { handlers, signIn, signOut, auth } = NextAuth({ + pages: { + signIn: "/auth/login", + error: "/auth/error", + // verifyRequest: "/auth/verify-request" + }, + adapter: PrismaAdapter(db), + events: { + async linkAccount({ user }) { + await db.user.update({ + where: { + id: user.id, + }, + data: { + emailVerified: new Date(), + }, + }); + }, + }, + callbacks: { + async signIn({ user, account }) { + if (account?.provider !== "credentials") return true; + const existingUser = await getUserById(user.id!); + if (!existingUser || !existingUser.emailVerified) { + return false; + } + // todo: add 2fa check + + if (existingUser.isTwoFactorEnabled) { + const twoFactorConfirmation = await getTwoFactorConfirmationByUserId( + existingUser.id + ); + if (!twoFactorConfirmation) return false; + + // TODO: Delete two factor confirmation for next signin + await db.twoFactorConfirmation.delete({ + where: { id: twoFactorConfirmation.id }, + }); + } + + return true; + }, + async session({ token, session }) { + if (token.sub && session.user) { + session.user.id = token.sub; + } + + if (token.role && session.user) { + session.user.role = token.role as UserRole; + } + + if (session.user) { + session.user.isTwoFactorEnabled = token.isTwoFactorEnabled as boolean; + } + + if (session.user) { + session.user.name = token.name; + session.user.email = token.email ?? ''; + session.user.isOAuth = token.isOAuth as boolean; + } + + return session; + }, + async jwt({ token }) { + if (!token.sub) return token; + + const existingUser = await getUserById(token.sub); + + if (!existingUser) return token; + + const existingAccount = await getAccountByUserId(existingUser.id); + + token.isOAuth = !! existingAccount; + token.name = existingUser.name; + token.email = existingUser.email; + token.role = existingUser.role; + token.isTwoFactorEnabled = existingUser.isTwoFactorEnabled; + + return token; + }, + }, + session: { strategy: "jwt" }, + ...authConfig, +}); diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index 39b7498c9a220077d9ed96ff79d7c808be250e4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 185534 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𝕖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 Cmn_c! diff --git a/components.json b/components.json new file mode 100644 index 0000000..06c5215 --- /dev/null +++ b/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "default", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "src/app/globals.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/src/components", + "utils": "@/src/lib/utils", + "ui": "@/src/components/ui", + "lib": "@/src/lib", + "hooks": "@/src/hooks" + }, + "iconLibrary": "lucide" +} diff --git a/next-auth.d.ts b/next-auth.d.ts new file mode 100644 index 0000000..9a63e5b --- /dev/null +++ b/next-auth.d.ts @@ -0,0 +1,14 @@ +import { UserRole } from "@prisma/client"; +import { DefaultSession } from "next-auth"; + +export type extendedUser = DefaultSession["user"] & { + role: UserRole; + isTwoFactorEnabled: boolean; + isOAuth: boolean; +}; + +declare module "next-auth" { + interface Session { + user: extendedUser; + } +} diff --git a/package.json b/package.json index 43cdda5..b085672 100644 --- a/package.json +++ b/package.json @@ -11,24 +11,55 @@ "postinstall": "prisma generate" }, "dependencies": { + "@auth/prisma-adapter": "^2.7.4", + "@hookform/resolvers": "^3.9.1", "@neondatabase/serverless": "^0.9.4", "@prisma/adapter-neon": "^5.18.0", "@prisma/client": "^5.18.0", + "@radix-ui/react-avatar": "^1.1.1", + "@radix-ui/react-dialog": "^1.1.2", + "@radix-ui/react-dropdown-menu": "^2.1.2", + "@radix-ui/react-icons": "^1.3.2", + "@radix-ui/react-label": "^2.1.0", + "@radix-ui/react-popover": "^1.1.2", + "@radix-ui/react-scroll-area": "^1.2.1", + "@radix-ui/react-select": "^2.1.2", + "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-tooltip": "^1.1.4", "@tanstack/react-query": "^5.51.23", + "@uploadthing/react": "^7.1.1", "@upstash/redis": "^1.34.0", + "bcrypt": "^5.1.1", + "bcryptjs": "^2.4.3", + "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", + "cmdk": "1.0.0", "hono": "^4.5.5", + "lucide-react": "^0.462.0", "next": "15.0.3", + "next-auth": "5.0.0-beta.25", + "next-themes": "^0.4.3", "prisma": "^5.18.0", "react": "19.0.0-rc-66855b96-20241106", "react-dom": "19.0.0-rc-66855b96-20241106", + "react-hook-form": "^7.53.2", + "react-icons": "^5.3.0", + "react-spinners": "^0.14.1", + "resend": "^4.0.1", + "sonner": "^1.7.0", "superjson": "^2.2.1", - "tailwind-merge": "^2.5.2", + "tailwind-merge": "^2.5.4", + "tailwindcss-animate": "^1.0.7", + "uploadthing": "^7.3.0", + "uuid": "^11.0.3", + "vaul": "^1.1.1", "wrangler": "^3.72.0", "zod": "^3.23.8" }, "devDependencies": { "@cloudflare/workers-types": "^4.20240815.0", + "@types/bcrypt": "^5.0.2", + "@types/bcryptjs": "^2.4.6", "@types/node": "^20", "@types/react": "npm:types-react@19.0.0-rc.1", "@types/react-dom": "npm:types-react-dom@19.0.0-rc.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0249b6c..0d863a5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,6 +12,12 @@ importers: .: dependencies: + '@auth/prisma-adapter': + specifier: ^2.7.4 + version: 2.7.4(@prisma/client@5.22.0(prisma@5.22.0)) + '@hookform/resolvers': + specifier: ^3.9.1 + version: 3.9.1(react-hook-form@7.53.2(react@19.0.0-rc-66855b96-20241106)) '@neondatabase/serverless': specifier: ^0.9.4 version: 0.9.5 @@ -21,21 +27,75 @@ importers: '@prisma/client': specifier: ^5.18.0 version: 5.22.0(prisma@5.22.0) + '@radix-ui/react-avatar': + specifier: ^1.1.1 + version: 1.1.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-dialog': + specifier: ^1.1.2 + version: 1.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-dropdown-menu': + specifier: ^2.1.2 + version: 2.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-icons': + specifier: ^1.3.2 + version: 1.3.2(react@19.0.0-rc-66855b96-20241106) + '@radix-ui/react-label': + specifier: ^2.1.0 + version: 2.1.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-popover': + specifier: ^1.1.2 + version: 1.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-scroll-area': + specifier: ^1.2.1 + version: 1.2.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-select': + specifier: ^2.1.2 + version: 2.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-slot': + specifier: ^1.1.0 + version: 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-tooltip': + specifier: ^1.1.4 + version: 1.1.4(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) '@tanstack/react-query': specifier: ^5.51.23 version: 5.59.20(react@19.0.0-rc-66855b96-20241106) + '@uploadthing/react': + specifier: ^7.1.1 + version: 7.1.1(next@15.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(uploadthing@7.3.0(next@15.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106))(tailwindcss@3.4.14)) '@upstash/redis': specifier: ^1.34.0 version: 1.34.3 + bcrypt: + specifier: ^5.1.1 + version: 5.1.1 + bcryptjs: + specifier: ^2.4.3 + version: 2.4.3 + class-variance-authority: + specifier: ^0.7.1 + version: 0.7.1 clsx: specifier: ^2.1.1 version: 2.1.1 + cmdk: + specifier: 1.0.0 + version: 1.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) hono: specifier: ^4.5.5 version: 4.6.10 + lucide-react: + specifier: ^0.462.0 + version: 0.462.0(react@19.0.0-rc-66855b96-20241106) next: specifier: 15.0.3 version: 15.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) + next-auth: + specifier: 5.0.0-beta.25 + version: 5.0.0-beta.25(next@15.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) + next-themes: + specifier: ^0.4.3 + version: 0.4.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) prisma: specifier: ^5.18.0 version: 5.22.0 @@ -45,12 +105,39 @@ importers: react-dom: specifier: 19.0.0-rc-66855b96-20241106 version: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + react-hook-form: + specifier: ^7.53.2 + version: 7.53.2(react@19.0.0-rc-66855b96-20241106) + react-icons: + specifier: ^5.3.0 + version: 5.3.0(react@19.0.0-rc-66855b96-20241106) + react-spinners: + specifier: ^0.14.1 + version: 0.14.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) + resend: + specifier: ^4.0.1 + version: 4.0.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) + sonner: + specifier: ^1.7.0 + version: 1.7.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) superjson: specifier: ^2.2.1 version: 2.2.1 tailwind-merge: - specifier: ^2.5.2 + specifier: ^2.5.4 version: 2.5.4 + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@3.4.14) + uploadthing: + specifier: ^7.3.0 + version: 7.3.0(next@15.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106))(tailwindcss@3.4.14) + uuid: + specifier: ^11.0.3 + version: 11.0.3 + vaul: + specifier: ^1.1.1 + version: 1.1.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) wrangler: specifier: ^3.72.0 version: 3.86.1(@cloudflare/workers-types@4.20241112.0) @@ -61,6 +148,12 @@ importers: '@cloudflare/workers-types': specifier: ^4.20240815.0 version: 4.20241112.0 + '@types/bcrypt': + specifier: ^5.0.2 + version: 5.0.2 + '@types/bcryptjs': + specifier: ^2.4.6 + version: 2.4.6 '@types/node': specifier: ^20 version: 20.17.6 @@ -92,6 +185,43 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} + '@auth/core@0.37.2': + resolution: {integrity: sha512-kUvzyvkcd6h1vpeMAojK2y7+PAV5H+0Cc9+ZlKYDFhDY31AlvsB+GW5vNO4qE3Y07KeQgvNO9U0QUx/fN62kBw==} + peerDependencies: + '@simplewebauthn/browser': ^9.0.1 + '@simplewebauthn/server': ^9.0.2 + nodemailer: ^6.8.0 + peerDependenciesMeta: + '@simplewebauthn/browser': + optional: true + '@simplewebauthn/server': + optional: true + nodemailer: + optional: true + + '@auth/core@0.37.4': + resolution: {integrity: sha512-HOXJwXWXQRhbBDHlMU0K/6FT1v+wjtzdKhsNg0ZN7/gne6XPsIrjZ4daMcFnbq0Z/vsAbYBinQhhua0d77v7qw==} + peerDependencies: + '@simplewebauthn/browser': ^9.0.1 + '@simplewebauthn/server': ^9.0.2 + nodemailer: ^6.8.0 + peerDependenciesMeta: + '@simplewebauthn/browser': + optional: true + '@simplewebauthn/server': + optional: true + nodemailer: + optional: true + + '@auth/prisma-adapter@2.7.4': + resolution: {integrity: sha512-3T/X94R9J1sxOLQtsD3ijIZ0JGHPXlZQxRr/8NpnZBJ3KGxun/mNsZ1MwMRhTxy0mmn9JWXk7u9+xCcVn0pu3A==} + peerDependencies: + '@prisma/client': '>=2.26.0 || >=3 || >=4 || >=5' + + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} + engines: {node: '>=6.9.0'} + '@cloudflare/kv-asset-handler@0.3.4': resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} engines: {node: '>=16.13'} @@ -137,6 +267,11 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} + '@effect/platform@0.69.8': + resolution: {integrity: sha512-zhBhg0c1MHMMo+grOc/6wC2/3UETLroruwrYNZ89uDtXl6EOcP5alFP+vW3NToKDA2o0hRh22KNqq4aixA7xXg==} + peerDependencies: + effect: ^3.10.3 + '@emnapi/runtime@1.3.1': resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} @@ -304,6 +439,26 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} + '@floating-ui/core@1.6.8': + resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} + + '@floating-ui/dom@1.6.12': + resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==} + + '@floating-ui/react-dom@2.1.2': + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.8': + resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} + + '@hookform/resolvers@3.9.1': + resolution: {integrity: sha512-ud2HqmGBM0P0IABqoskKWI6PEf6ZDDBZkFqe2Vnl+mTHCEHzr3ISjjZyCwTjC/qpL25JC9aIDkloQejvMeq0ug==} + peerDependencies: + react-hook-form: ^7.0.0 + '@humanwhocodes/config-array@0.13.0': resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} @@ -447,6 +602,10 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@mapbox/node-pre-gyp@1.0.11': + resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} + hasBin: true + '@neondatabase/serverless@0.9.5': resolution: {integrity: sha512-siFas6gItqv6wD/pZnvdu34wEqgG3nSE6zWZdq5j2DEsa+VvX8i/5HXJOo06qrw5axPXn+lGCxeR+NLaSPIXug==} @@ -520,6 +679,12 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} + '@one-ini/wasm@0.1.1': + resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} + + '@panva/hkdf@1.2.1': + resolution: {integrity: sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -556,168 +721,775 @@ packages: '@prisma/get-platform@5.22.0': resolution: {integrity: sha512-pHhpQdr1UPFpt+zFfnPazhulaZYCUqeIcPpJViYoq9R+D/yw4fjE+CtnsnKzPYm0ddUbeXUzjGVGIRVgPDCk4Q==} - '@rtsao/scc@1.1.0': - resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - - '@rushstack/eslint-patch@1.10.4': - resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} - - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + '@radix-ui/number@1.1.0': + resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==} - '@swc/helpers@0.5.13': - resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==} + '@radix-ui/primitive@1.0.1': + resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} - '@tanstack/query-core@5.59.20': - resolution: {integrity: sha512-e8vw0lf7KwfGe1if4uPFhvZRWULqHjFcz3K8AebtieXvnMOz5FSzlZe3mTLlPuUBcydCnBRqYs2YJ5ys68wwLg==} + '@radix-ui/primitive@1.1.0': + resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==} - '@tanstack/react-query@5.59.20': - resolution: {integrity: sha512-Zly0egsK0tFdfSbh5/mapSa+Zfc3Et0Zkar7Wo5sQkFzWyB3p3uZWOHR2wrlAEEV2L953eLuDBtbgFvMYiLvUw==} + '@radix-ui/react-arrow@1.1.0': + resolution: {integrity: sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==} peerDependencies: - react: ^18 || ^19 + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + '@radix-ui/react-avatar@1.1.1': + resolution: {integrity: sha512-eoOtThOmxeoizxpX6RiEsQZ2wj5r4+zoeqAwO0cBaFQGjJwIH3dIX0OCxNrCyrrdxG+vBweMETh3VziQG7c1kw==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@types/node-forge@1.3.11': - resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + '@radix-ui/react-collection@1.1.0': + resolution: {integrity: sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@types/node@20.17.6': - resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==} + '@radix-ui/react-compose-refs@1.0.1': + resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@types/pg@8.11.6': - resolution: {integrity: sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==} + '@radix-ui/react-compose-refs@1.1.0': + resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/eslint-plugin@8.14.0': - resolution: {integrity: sha512-tqp8H7UWFaZj0yNO6bycd5YjMwxa6wIHOLZvWPkidwbgLCsBMetQoGj7DPuAlWa2yGO3H48xmPwjhsSPPCGU5w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-context@1.0.1': + resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '*' + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 peerDependenciesMeta: - typescript: + '@types/react': optional: true - '@typescript-eslint/parser@7.2.0': - resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==} - engines: {node: ^16.0.0 || >=18.0.0} + '@radix-ui/react-context@1.1.0': + resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==} peerDependencies: - eslint: ^8.56.0 - typescript: '*' + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - typescript: + '@types/react': optional: true - '@typescript-eslint/scope-manager@7.2.0': - resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} - engines: {node: ^16.0.0 || >=18.0.0} + '@radix-ui/react-context@1.1.1': + resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/scope-manager@8.14.0': - resolution: {integrity: sha512-aBbBrnW9ARIDn92Zbo7rguLnqQ/pOrUguVpbUwzOhkFg2npFDwTgPGqFqE0H5feXcOoJOfX3SxlJaKEVtq54dw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-dialog@1.0.5': + resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@typescript-eslint/type-utils@8.14.0': - resolution: {integrity: sha512-Xcz9qOtZuGusVOH5Uk07NGs39wrKkf3AxlkK79RBK6aJC1l03CobXjJbwBPSidetAOV+5rEVuiT1VSBUOAsanQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-dialog@1.1.2': + resolution: {integrity: sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==} peerDependencies: - typescript: '*' + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - typescript: + '@types/react': + optional: true + '@types/react-dom': optional: true - '@typescript-eslint/types@7.2.0': - resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==} - engines: {node: ^16.0.0 || >=18.0.0} + '@radix-ui/react-direction@1.1.0': + resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/types@8.14.0': - resolution: {integrity: sha512-yjeB9fnO/opvLJFAsPNYlKPnEM8+z4og09Pk504dkqonT02AyL5Z9SSqlE0XqezS93v6CXn49VHvB2G7XSsl0g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-dismissable-layer@1.0.5': + resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@typescript-eslint/typescript-estree@7.2.0': - resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==} - engines: {node: ^16.0.0 || >=18.0.0} + '@radix-ui/react-dismissable-layer@1.1.1': + resolution: {integrity: sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==} peerDependencies: - typescript: '*' + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - typescript: + '@types/react': + optional: true + '@types/react-dom': optional: true - '@typescript-eslint/typescript-estree@8.14.0': - resolution: {integrity: sha512-OPXPLYKGZi9XS/49rdaCbR5j/S14HazviBlUQFvSKz3npr3NikF+mrgK7CFVur6XEt95DZp/cmke9d5i3vtVnQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-dropdown-menu@2.1.2': + resolution: {integrity: sha512-GVZMR+eqK8/Kes0a36Qrv+i20bAPXSn8rCBTHx30w+3ECnR5o3xixAlqcVaYvLeyKUsm0aqyhWfmUcqufM8nYA==} peerDependencies: - typescript: '*' + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - typescript: + '@types/react': + optional: true + '@types/react-dom': optional: true - '@typescript-eslint/utils@8.14.0': - resolution: {integrity: sha512-OGqj6uB8THhrHj0Fk27DcHPojW7zKwKkPmHXHvQ58pLYp4hy8CSUdTKykKeh+5vFqTTVmjz0zCOOPKRovdsgHA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-focus-guards@1.0.1': + resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/visitor-keys@7.2.0': - resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==} - engines: {node: ^16.0.0 || >=18.0.0} + '@radix-ui/react-focus-guards@1.1.1': + resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@typescript-eslint/visitor-keys@8.14.0': - resolution: {integrity: sha512-vG0XZo8AdTH9OE6VFRwAZldNc7qtJ/6NLGWak+BtENuEUXGZgFpihILPiBvKXvJ2nFu27XNGC6rKiwuaoMbYzQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@radix-ui/react-focus-scope@1.0.4': + resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@radix-ui/react-focus-scope@1.1.0': + resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@upstash/redis@1.34.3': - resolution: {integrity: sha512-VT25TyODGy/8ljl7GADnJoMmtmJ1F8d84UXfGonRRF8fWYJz7+2J6GzW+a6ETGtk4OyuRTt7FRSvFG5GvrfSdQ==} + '@radix-ui/react-icons@1.3.2': + resolution: {integrity: sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==} + peerDependencies: + react: ^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + '@radix-ui/react-id@1.0.1': + resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true - acorn-walk@8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} - engines: {node: '>=0.4.0'} + '@radix-ui/react-id@1.1.0': + resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - acorn@8.14.0: - resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} - engines: {node: '>=0.4.0'} - hasBin: true + '@radix-ui/react-label@2.1.0': + resolution: {integrity: sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + '@radix-ui/react-menu@2.1.2': + resolution: {integrity: sha512-lZ0R4qR2Al6fZ4yCCZzu/ReTFrylHFxIqy7OezIpWF4bL0o9biKo0pFIvkaew3TyZ9Fy5gYVrR5zCGZBVbO1zg==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + '@radix-ui/react-popover@1.1.2': + resolution: {integrity: sha512-u2HRUyWW+lOiA2g0Le0tMmT55FGOEWHwPFt1EPfbLly7uXQExFo5duNKqG2DzmFXIdqOeNd+TpE8baHWJCyP9w==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} - engines: {node: '>=12'} + '@radix-ui/react-popper@1.2.0': + resolution: {integrity: sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + '@radix-ui/react-portal@1.0.4': + resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} + '@radix-ui/react-portal@1.1.2': + resolution: {integrity: sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + '@radix-ui/react-presence@1.0.1': + resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.1.1': + resolution: {integrity: sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@1.0.3': + resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.0.0': + resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.1.0': + resolution: {integrity: sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-scroll-area@1.2.1': + resolution: {integrity: sha512-FnM1fHfCtEZ1JkyfH/1oMiTcFBQvHKl4vD9WnpwkLgtF+UmnXMCad6ECPTaAjcDjam+ndOEJWgHyKDGNteWSHw==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-select@2.1.2': + resolution: {integrity: sha512-rZJtWmorC7dFRi0owDmoijm6nSJH1tVw64QGiNIZ9PNLyBDtG+iAq+XGsya052At4BfarzY/Dhv9wrrUr6IMZA==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.0.2': + resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-slot@1.1.0': + resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-tooltip@1.1.4': + resolution: {integrity: sha512-QpObUH/ZlpaO4YgHSaYzrLO2VuO+ZBFFgGzjMUPwtiYnAzzNNDPJeEGRrT7qNOrWm/Jr08M1vlp+vTHtnSQ0Uw==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-use-callback-ref@1.0.1': + resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.0': + resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.0.1': + resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.1.0': + resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.0.3': + resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.0': + resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.0.1': + resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.1.0': + resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-previous@1.1.0': + resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.1.0': + resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.1.0': + resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-visually-hidden@1.1.0': + resolution: {integrity: sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + '@types/react-dom': npm:types-react-dom@19.0.0-rc.1 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/rect@1.1.0': + resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} + + '@react-email/render@1.0.1': + resolution: {integrity: sha512-W3gTrcmLOVYnG80QuUp22ReIT/xfLsVJ+n7ghSlG2BITB8evNABn1AO2rGQoXuK84zKtDAlxCdm3hRyIpZdGSA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^18.0 || ^19.0 || ^19.0.0-rc + + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + + '@rushstack/eslint-patch@1.10.4': + resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} + + '@selderee/plugin-htmlparser2@0.11.0': + resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/helpers@0.5.13': + resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==} + + '@tanstack/query-core@5.59.20': + resolution: {integrity: sha512-e8vw0lf7KwfGe1if4uPFhvZRWULqHjFcz3K8AebtieXvnMOz5FSzlZe3mTLlPuUBcydCnBRqYs2YJ5ys68wwLg==} + + '@tanstack/react-query@5.59.20': + resolution: {integrity: sha512-Zly0egsK0tFdfSbh5/mapSa+Zfc3Et0Zkar7Wo5sQkFzWyB3p3uZWOHR2wrlAEEV2L953eLuDBtbgFvMYiLvUw==} + peerDependencies: + react: ^18 || ^19 + + '@types/bcrypt@5.0.2': + resolution: {integrity: sha512-6atioO8Y75fNcbmj0G7UjI9lXN2pQ/IGJ2FWT4a/btd0Lk9lQalHLKhkgKVZ3r+spnmWUKfbMi1GEe9wyHQfNQ==} + + '@types/bcryptjs@2.4.6': + resolution: {integrity: sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==} + + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/node-forge@1.3.11': + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + + '@types/node@20.17.6': + resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==} + + '@types/pg@8.11.6': + resolution: {integrity: sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==} + + '@typescript-eslint/eslint-plugin@8.14.0': + resolution: {integrity: sha512-tqp8H7UWFaZj0yNO6bycd5YjMwxa6wIHOLZvWPkidwbgLCsBMetQoGj7DPuAlWa2yGO3H48xmPwjhsSPPCGU5w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@7.2.0': + resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@7.2.0': + resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/scope-manager@8.14.0': + resolution: {integrity: sha512-aBbBrnW9ARIDn92Zbo7rguLnqQ/pOrUguVpbUwzOhkFg2npFDwTgPGqFqE0H5feXcOoJOfX3SxlJaKEVtq54dw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.14.0': + resolution: {integrity: sha512-Xcz9qOtZuGusVOH5Uk07NGs39wrKkf3AxlkK79RBK6aJC1l03CobXjJbwBPSidetAOV+5rEVuiT1VSBUOAsanQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@7.2.0': + resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/types@8.14.0': + resolution: {integrity: sha512-yjeB9fnO/opvLJFAsPNYlKPnEM8+z4og09Pk504dkqonT02AyL5Z9SSqlE0XqezS93v6CXn49VHvB2G7XSsl0g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@7.2.0': + resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@8.14.0': + resolution: {integrity: sha512-OPXPLYKGZi9XS/49rdaCbR5j/S14HazviBlUQFvSKz3npr3NikF+mrgK7CFVur6XEt95DZp/cmke9d5i3vtVnQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@8.14.0': + resolution: {integrity: sha512-OGqj6uB8THhrHj0Fk27DcHPojW7zKwKkPmHXHvQ58pLYp4hy8CSUdTKykKeh+5vFqTTVmjz0zCOOPKRovdsgHA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + '@typescript-eslint/visitor-keys@7.2.0': + resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/visitor-keys@8.14.0': + resolution: {integrity: sha512-vG0XZo8AdTH9OE6VFRwAZldNc7qtJ/6NLGWak+BtENuEUXGZgFpihILPiBvKXvJ2nFu27XNGC6rKiwuaoMbYzQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + '@uploadthing/mime-types@0.3.2': + resolution: {integrity: sha512-WP/K75S/649lM0GUcd9jq4RjeTIc/0bO2UmLx4+usTSNy/x0K8gV0JdLWeUUbmTQtJoHd4ZTSvAdG7ZQgcmXvA==} + + '@uploadthing/react@7.1.1': + resolution: {integrity: sha512-R+n2rhx9AG79FUIw225nE4v2/255lvdaLGaY0XbkCv0tfUfXNHLImu0Sml/ZHgCGb1UyMILZWgalK7LK41eXvg==} + peerDependencies: + next: '*' + react: ^17.0.2 || ^18.0.0 + uploadthing: 7.3.0 + peerDependenciesMeta: + next: + optional: true + + '@uploadthing/shared@7.1.1': + resolution: {integrity: sha512-Nem3jZ6G9AJEBzzDVvwSKV/wLdpADz8LDg+woo9diJTHj1FOjWNzCwb8wMxpEFLM88TWv5Tq8Z1mQepNmC5WIQ==} + + '@upstash/redis@1.34.3': + resolution: {integrity: sha512-VT25TyODGy/8ljl7GADnJoMmtmJ1F8d84UXfGonRRF8fWYJz7+2J6GzW+a6ETGtk4OyuRTt7FRSvFG5GvrfSdQ==} + + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + + abbrev@2.0.0: + resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + + are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. + arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-hidden@1.2.4: + resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} + engines: {node: '>=10'} + aria-query@5.3.2: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} @@ -779,6 +1551,13 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + bcrypt@5.1.1: + resolution: {integrity: sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==} + engines: {node: '>= 10.0.0'} + + bcryptjs@2.4.3: + resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -826,6 +1605,13 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + class-variance-authority@0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} @@ -833,6 +1619,12 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} + cmdk@1.0.0: + resolution: {integrity: sha512-gDzVf0a09TvoJ5jnuPvygTB77+XdOSwEmJ88L6XPFPlv7T3RxbP9jgenfylrAMD0+Le1aO0nVjQUzl2g+vjz5Q==} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -843,10 +1635,18 @@ packages: color-string@1.9.1: resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + color@4.2.3: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} @@ -854,6 +1654,16 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + + cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} + engines: {node: '>= 0.6'} + cookie@0.7.2: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} @@ -918,6 +1728,10 @@ packages: deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -929,10 +1743,16 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + detect-libc@2.0.3: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} @@ -951,9 +1771,30 @@ packages: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + editorconfig@1.0.4: + resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==} + engines: {node: '>=14'} + hasBin: true + + effect@3.10.3: + resolution: {integrity: sha512-+Z5bUhzTeqYlfoPsfXMZG1pYadqLBKARD3xwMIoEAESsOhKFOrUsHHNCy2ZZW3/6oa4wokgT01k1zavA4BAQ4w==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -964,6 +1805,10 @@ packages: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + es-abstract@1.23.4: resolution: {integrity: sha512-HR1gxH5OaiN7XH7uiWH0RLw0RcFySiSoW1ctxmD1ahTw3uGBtkmm/ng0tDU1OtYx5OK6EOL5Y6O21cDflG3Jcg==} engines: {node: '>= 0.4'} @@ -1119,6 +1964,13 @@ packages: resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} engines: {node: '>=6'} + fast-check@3.23.1: + resolution: {integrity: sha512-u/MudsoQEgBUZgR5N1v87vEgybeVYus9VnDVaIkxkkGP2jt54naghQ3PCQHJiogS8U/GavZCUPFfx3Xkp+NaHw==} + engines: {node: '>=8.0.0'} + + fast-deep-equal@2.0.1: + resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -1143,10 +1995,17 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} + file-selector@0.6.0: + resolution: {integrity: sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==} + engines: {node: '>= 12'} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + find-my-way-ts@0.1.5: + resolution: {integrity: sha512-4GOTMrpGQVzsCH2ruUn2vmwzV/02zF4q+ybhCIrw/Rkt3L8KWcycdC6aJMctJzwN4fXD4SD5F/4B9Sksh5rE0A==} + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -1165,6 +2024,10 @@ packages: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -1183,10 +2046,19 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. + get-intrinsic@1.2.4: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + get-source@2.0.12: resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} @@ -1259,6 +2131,9 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -1267,6 +2142,17 @@ packages: resolution: {integrity: sha512-IXXNfRAZEahFnWBhUUlqKEGF9upeE6hZoRZszvNkyAz/CYp+iVbxm3viMvStlagRJohjlBRGOQ7f4jfcV0XMGg==} engines: {node: '>=16.9.0'} + html-to-text@9.0.5: + resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} + engines: {node: '>=14'} + + htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -1286,10 +2172,16 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + internal-slot@1.0.7: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} @@ -1429,6 +2321,18 @@ packages: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true + jose@5.9.6: + resolution: {integrity: sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==} + + js-beautify@1.15.1: + resolution: {integrity: sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==} + engines: {node: '>=14'} + hasBin: true + + js-cookie@3.0.5: + resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} + engines: {node: '>=14'} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -1463,6 +2367,9 @@ packages: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} + leac@0.6.0: + resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} + levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -1492,9 +2399,18 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lucide-react@0.462.0: + resolution: {integrity: sha512-NTL7EbAao9IFtuSivSZgrAh4fZd09Lr+6MTkqIxuHaH2nnYiYIzXPo06cOxHg9wKLdj6LL8TByG4qpePqwgx/g==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc + magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -1516,6 +2432,10 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@9.0.1: + resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} + engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} @@ -1527,13 +2447,33 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + multipasta@0.2.5: + resolution: {integrity: sha512-c8eMDb1WwZcE02WVjHoOmUVk7fnKU/RmUcosHACglrWAuPQsEJv+E8430sXj6jNc1jHw0zrS16aCjQh4BcEb4A==} + mustache@4.2.0: resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} hasBin: true @@ -1549,6 +2489,28 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + next-auth@5.0.0-beta.25: + resolution: {integrity: sha512-2dJJw1sHQl2qxCrRk+KTQbeH+izFbGFPuJj5eGgBZFYyiYYtvlrBeUw1E/OJJxTRjuxbSYGnCTkUIRsIIW0bog==} + peerDependencies: + '@simplewebauthn/browser': ^9.0.1 + '@simplewebauthn/server': ^9.0.2 + next: ^14.0.0-0 || ^15.0.0-0 + nodemailer: ^6.6.5 + react: ^18.2.0 || ^19.0.0-0 + peerDependenciesMeta: + '@simplewebauthn/browser': + optional: true + '@simplewebauthn/server': + optional: true + nodemailer: + optional: true + + next-themes@0.4.3: + resolution: {integrity: sha512-nG84VPkTdUHR2YeD89YchvV4I9RbiMAql3GiLEQlPvq1ioaqPaIReK+yMRdg/zgiXws620qS1rU30TiWmmG9lA==} + peerDependencies: + react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + next@15.0.3: resolution: {integrity: sha512-ontCbCRKJUIoivAdGB34yCaOcPgYXr9AAkV/IwqFfWWTXEPUgLYkSkqBhIk9KK7gGmgjc64B+RdoeIDM13Irnw==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} @@ -1570,14 +2532,43 @@ packages: sass: optional: true + node-addon-api@5.1.0: + resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} + nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + + nopt@7.2.1: + resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + deprecated: This package is no longer supported. + + oauth4webapi@3.1.3: + resolution: {integrity: sha512-dik5wEMdFL5p3JlijYvM7wMNCgaPhblLIDCZtdXcaZp5wgu5Iwmsu7lMzgFhIDTi5d0BJo03LVoOoFQvXMeOeQ==} + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -1642,6 +2633,9 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parseley@0.12.1: + resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -1671,6 +2665,9 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + peberminta@0.9.0: + resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} + pg-int8@1.0.1: resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} engines: {node: '>=4.0.0'} @@ -1769,10 +2766,29 @@ packages: postgres-range@1.1.4: resolution: {integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==} + preact-render-to-string@5.2.3: + resolution: {integrity: sha512-aPDxUn5o3GhWdtJtW0svRC2SS/l8D9MAgo2+AWml+BhDImb27ALf04Q2d+AHqUUOc6RdSXFIBVa2gxzgMKgtZA==} + peerDependencies: + preact: '>=10' + + preact-render-to-string@6.5.11: + resolution: {integrity: sha512-ubnauqoGczeGISiOh6RjX0/cdaF8v/oDXIjO85XALCQjwQP+SB4RDXXtvZ6yTYSjG+PC1QRP2AhPgCEsM2EvUw==} + peerDependencies: + preact: '>=10' + + preact@10.11.3: + resolution: {integrity: sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==} + + preact@10.24.3: + resolution: {integrity: sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + pretty-format@3.8.0: + resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} + printable-characters@1.0.42: resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} @@ -1784,10 +2800,16 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -1796,9 +2818,69 @@ packages: peerDependencies: react: 19.0.0-rc-66855b96-20241106 + react-hook-form@7.53.2: + resolution: {integrity: sha512-YVel6fW5sOeedd1524pltpHX+jgU2u3DSDtXEaBORNdqiNrsX/nUI/iGXONegttg0mJVnfrIkiV0cmTU6Oo2xw==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + + react-icons@5.3.0: + resolution: {integrity: sha512-DnUk8aFbTyQPSkCfF8dbX6kQjXA9DktMeJqfjrg6cK9vwQVMxmcA3BfP4QoiztVmEHtwlTgLFsPuH2NskKT6eg==} + peerDependencies: + react: '*' + react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + react-promise-suspense@0.3.4: + resolution: {integrity: sha512-I42jl7L3Ze6kZaq+7zXWSunBa3b1on5yfvUW6Eo/3fFOj6dZ5Bqmcd264nJbTK/gn1HjjILAjSwnZbV4RpSaNQ==} + + react-remove-scroll-bar@2.3.6: + resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.5.5: + resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.6.0: + resolution: {integrity: sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-spinners@0.14.1: + resolution: {integrity: sha512-2Izq+qgQ08HTofCVEdcAQCXFEYfqTDdfeDQJeo/HHQiQJD4imOicNLhkfN2eh1NYEWVOX4D9ok2lhuDB0z3Aag==} + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 + + react-style-singleton@2.2.1: + resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + react@19.0.0-rc-66855b96-20241106: resolution: {integrity: sha512-klH7xkT71SxRCx4hb1hly5FJB21Hz0ACyxbXYAECEqssUjtJeFUAaI2U1DgJAzkGEnvEm3DkxuBchMC/9K4ipg==} engines: {node: '>=0.10.0'} @@ -1806,6 +2888,10 @@ packages: read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -1814,10 +2900,17 @@ packages: resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} engines: {node: '>= 0.4'} + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + regexp.prototype.flags@1.5.3: resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} engines: {node: '>= 0.4'} + resend@4.0.1: + resolution: {integrity: sha512-EkCRfzKw9JX7N75L+0BC8oXohDBLhlhl4w7AgrkEW2TAsOMBsVcbQHPe8cRWP6Ea7KDhD158TsNjbCBcohed5A==} + engines: {node: '>=18'} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -1863,6 +2956,9 @@ packages: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-regex-test@1.0.3: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} @@ -1870,6 +2966,9 @@ packages: scheduler@0.25.0-rc-66855b96-20241106: resolution: {integrity: sha512-HQXp/Mnp/MMRSXMQF7urNFla+gmtXW/Gr1KliuR0iboTit4KvZRY8KYaq5ccCTAOJiUqQh2rE2F3wgUekmgdlA==} + selderee@0.11.0: + resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} + selfsigned@2.4.1: resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} engines: {node: '>=10'} @@ -1883,6 +2982,9 @@ packages: engines: {node: '>=10'} hasBin: true + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -1907,6 +3009,9 @@ packages: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} @@ -1918,6 +3023,12 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + sonner@1.7.0: + resolution: {integrity: sha512-W6dH7m5MujEPyug3lpI2l3TC3Pp1+LTgK0Efg+IHDrBbtEjyCmCHHo6yfNBOsf1tFZ6zf+jceWwB38baC8yO9g==} + peerDependencies: + react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -1930,6 +3041,9 @@ packages: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead + sqids@0.3.0: + resolution: {integrity: sha512-lOQK1ucVg+W6n3FhRwwSeUijxe93b51Bfz5PMRMihVf1iVkl82ePQG7V5vwrhzB11v0NtsR25PSZRGiSomJaJw==} + stacktracey@2.1.8: resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} @@ -1971,6 +3085,9 @@ packages: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -2020,6 +3137,11 @@ packages: tailwind-merge@2.5.4: resolution: {integrity: sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==} + tailwindcss-animate@1.0.7: + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + tailwindcss@3.4.14: resolution: {integrity: sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==} engines: {node: '>=14.0.0'} @@ -2029,6 +3151,10 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -2043,6 +3169,9 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + ts-api-utils@1.4.0: resolution: {integrity: sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==} engines: {node: '>=16'} @@ -2109,12 +3238,69 @@ packages: unenv-nightly@2.0.0-20241024-111401-d4156ac: resolution: {integrity: sha512-xJO1hfY+Te+/XnfCYrCbFbRcgu6XEODND1s5wnVbaBCkuQX7JXF7fHEXPrukFE2j8EOH848P8QN19VO47XN8hw==} + uploadthing@7.3.0: + resolution: {integrity: sha512-ALZCOI5m5XyDD9YHCewCrhLFnELeI8xRJfJC4PvGdh9u6PcAyv851UT92JC6BLtJdgB2Fi/o9gPOXMpZkD5pSw==} + engines: {node: '>=18.13.0'} + peerDependencies: + express: '*' + fastify: '*' + h3: '*' + next: '*' + tailwindcss: '*' + peerDependenciesMeta: + express: + optional: true + fastify: + optional: true + h3: + optional: true + next: + optional: true + tailwindcss: + optional: true + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + use-callback-ref@1.3.2: + resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-sidecar@1.1.2: + resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': npm:types-react@19.0.0-rc.1 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + uuid@11.0.3: + resolution: {integrity: sha512-d0z310fCWv5dJwnX1Y/MncBAqGMKEzlBb1AOf7z9K8ALnd0utBX/msg/fA0+sbyN1ihbMsLhrBlnl1ak7Wa0rg==} + hasBin: true + + vaul@1.1.1: + resolution: {integrity: sha512-+ejzF6ffQKPcfgS7uOrGn017g39F8SO4yLPXbBhpC7a0H+oPqPna8f1BUfXaz8eU4+pxbQcmjxW+jWBSbxjaFg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} @@ -2135,6 +3321,9 @@ packages: engines: {node: '>= 8'} hasBin: true + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} @@ -2180,6 +3369,9 @@ packages: xxhash-wasm@1.0.2: resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yaml@2.6.0: resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} engines: {node: '>= 14'} @@ -2199,6 +3391,37 @@ snapshots: '@alloc/quick-lru@5.2.0': {} + '@auth/core@0.37.2': + dependencies: + '@panva/hkdf': 1.2.1 + '@types/cookie': 0.6.0 + cookie: 0.7.1 + jose: 5.9.6 + oauth4webapi: 3.1.3 + preact: 10.11.3 + preact-render-to-string: 5.2.3(preact@10.11.3) + + '@auth/core@0.37.4': + dependencies: + '@panva/hkdf': 1.2.1 + jose: 5.9.6 + oauth4webapi: 3.1.3 + preact: 10.24.3 + preact-render-to-string: 6.5.11(preact@10.24.3) + + '@auth/prisma-adapter@2.7.4(@prisma/client@5.22.0(prisma@5.22.0))': + dependencies: + '@auth/core': 0.37.4 + '@prisma/client': 5.22.0(prisma@5.22.0) + transitivePeerDependencies: + - '@simplewebauthn/browser' + - '@simplewebauthn/server' + - nodemailer + + '@babel/runtime@7.26.0': + dependencies: + regenerator-runtime: 0.14.1 + '@cloudflare/kv-asset-handler@0.3.4': dependencies: mime: 3.0.0 @@ -2229,6 +3452,12 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 + '@effect/platform@0.69.8(effect@3.10.3)': + dependencies: + effect: 3.10.3 + find-my-way-ts: 0.1.5 + multipasta: 0.2.5 + '@emnapi/runtime@1.3.1': dependencies: tslib: 2.8.1 @@ -2335,6 +3564,27 @@ snapshots: '@fastify/busboy@2.1.1': {} + '@floating-ui/core@1.6.8': + dependencies: + '@floating-ui/utils': 0.2.8 + + '@floating-ui/dom@1.6.12': + dependencies: + '@floating-ui/core': 1.6.8 + '@floating-ui/utils': 0.2.8 + + '@floating-ui/react-dom@2.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)': + dependencies: + '@floating-ui/dom': 1.6.12 + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + + '@floating-ui/utils@0.2.8': {} + + '@hookform/resolvers@3.9.1(react-hook-form@7.53.2(react@19.0.0-rc-66855b96-20241106))': + dependencies: + react-hook-form: 7.53.2(react@19.0.0-rc-66855b96-20241106) + '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 @@ -2381,168 +3631,742 @@ snapshots: '@img/sharp-libvips-linuxmusl-x64@1.0.4': optional: true - '@img/sharp-linux-arm64@0.33.5': + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.3.1 + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@mapbox/node-pre-gyp@1.0.11': + dependencies: + detect-libc: 2.0.3 + https-proxy-agent: 5.0.1 + make-dir: 3.1.0 + node-fetch: 2.7.0 + nopt: 5.0.0 + npmlog: 5.0.1 + rimraf: 3.0.2 + semver: 7.6.3 + tar: 6.2.1 + transitivePeerDependencies: + - encoding + - supports-color + + '@neondatabase/serverless@0.9.5': + dependencies: + '@types/pg': 8.11.6 + + '@next/env@15.0.3': {} + + '@next/eslint-plugin-next@15.0.3': + dependencies: + fast-glob: 3.3.1 + + '@next/swc-darwin-arm64@15.0.3': + optional: true + + '@next/swc-darwin-x64@15.0.3': + optional: true + + '@next/swc-linux-arm64-gnu@15.0.3': + optional: true + + '@next/swc-linux-arm64-musl@15.0.3': + optional: true + + '@next/swc-linux-x64-gnu@15.0.3': + optional: true + + '@next/swc-linux-x64-musl@15.0.3': + optional: true + + '@next/swc-win32-arm64-msvc@15.0.3': + optional: true + + '@next/swc-win32-x64-msvc@15.0.3': + optional: true + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@nolyfill/is-core-module@1.0.39': {} + + '@one-ini/wasm@0.1.1': {} + + '@panva/hkdf@1.2.1': {} + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@prisma/adapter-neon@5.22.0(@neondatabase/serverless@0.9.5)': + dependencies: + '@neondatabase/serverless': 0.9.5 + '@prisma/driver-adapter-utils': 5.22.0 + postgres-array: 3.0.2 + + '@prisma/client@5.22.0(prisma@5.22.0)': + optionalDependencies: + prisma: 5.22.0 + + '@prisma/debug@5.22.0': {} + + '@prisma/driver-adapter-utils@5.22.0': + dependencies: + '@prisma/debug': 5.22.0 + + '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': {} + + '@prisma/engines@5.22.0': + dependencies: + '@prisma/debug': 5.22.0 + '@prisma/engines-version': 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 + '@prisma/fetch-engine': 5.22.0 + '@prisma/get-platform': 5.22.0 + + '@prisma/fetch-engine@5.22.0': + dependencies: + '@prisma/debug': 5.22.0 + '@prisma/engines-version': 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 + '@prisma/get-platform': 5.22.0 + + '@prisma/get-platform@5.22.0': + dependencies: + '@prisma/debug': 5.22.0 + + '@radix-ui/number@1.1.0': {} + + '@radix-ui/primitive@1.0.1': + dependencies: + '@babel/runtime': 7.26.0 + + '@radix-ui/primitive@1.1.0': {} + + '@radix-ui/react-arrow@1.1.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 + + '@radix-ui/react-avatar@1.1.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/react-context': 1.1.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-primitive': 2.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-callback-ref': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-layout-effect': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 + + '@radix-ui/react-collection@1.1.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-context': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-primitive': 2.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-slot': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 + + '@radix-ui/react-compose-refs@1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': + dependencies: + '@babel/runtime': 7.26.0 + react: 19.0.0-rc-66855b96-20241106 optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.0.4 - optional: true + '@types/react': types-react@19.0.0-rc.1 - '@img/sharp-linux-arm@0.33.5': + '@radix-ui/react-compose-refs@1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': + dependencies: + react: 19.0.0-rc-66855b96-20241106 optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.0.5 - optional: true + '@types/react': types-react@19.0.0-rc.1 - '@img/sharp-linux-s390x@0.33.5': + '@radix-ui/react-context@1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': + dependencies: + '@babel/runtime': 7.26.0 + react: 19.0.0-rc-66855b96-20241106 optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.0.4 - optional: true + '@types/react': types-react@19.0.0-rc.1 - '@img/sharp-linux-x64@0.33.5': + '@radix-ui/react-context@1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': + dependencies: + react: 19.0.0-rc-66855b96-20241106 optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.0.4 - optional: true + '@types/react': types-react@19.0.0-rc.1 - '@img/sharp-linuxmusl-arm64@0.33.5': + '@radix-ui/react-context@1.1.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': + dependencies: + react: 19.0.0-rc-66855b96-20241106 optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 - optional: true + '@types/react': types-react@19.0.0-rc.1 - '@img/sharp-linuxmusl-x64@0.33.5': + '@radix-ui/react-dialog@1.0.5(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-context': 1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-dismissable-layer': 1.0.5(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-focus-guards': 1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-focus-scope': 1.0.4(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-id': 1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-portal': 1.0.4(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-presence': 1.0.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-primitive': 1.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-slot': 1.0.2(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-controllable-state': 1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + aria-hidden: 1.2.4 + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + react-remove-scroll: 2.5.5(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.0.4 - optional: true + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 + + '@radix-ui/react-dialog@1.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-context': 1.1.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-dismissable-layer': 1.1.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-focus-guards': 1.1.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-focus-scope': 1.1.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-id': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-portal': 1.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-presence': 1.1.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-primitive': 2.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-slot': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-controllable-state': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + aria-hidden: 1.2.4 + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + react-remove-scroll: 2.6.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 - '@img/sharp-wasm32@0.33.5': + '@radix-ui/react-direction@1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': dependencies: - '@emnapi/runtime': 1.3.1 - optional: true + react: 19.0.0-rc-66855b96-20241106 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 - '@img/sharp-win32-ia32@0.33.5': - optional: true + '@radix-ui/react-dismissable-layer@1.0.5(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-primitive': 1.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-callback-ref': 1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-escape-keydown': 1.0.3(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 - '@img/sharp-win32-x64@0.33.5': - optional: true + '@radix-ui/react-dismissable-layer@1.1.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-primitive': 2.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-callback-ref': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-escape-keydown': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 - '@isaacs/cliui@8.0.2': + '@radix-ui/react-dropdown-menu@2.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-context': 1.1.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-id': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-menu': 2.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-primitive': 2.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-controllable-state': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 - '@jridgewell/gen-mapping@0.3.5': + '@radix-ui/react-focus-guards@1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 + '@babel/runtime': 7.26.0 + react: 19.0.0-rc-66855b96-20241106 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 - '@jridgewell/resolve-uri@3.1.2': {} + '@radix-ui/react-focus-guards@1.1.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': + dependencies: + react: 19.0.0-rc-66855b96-20241106 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 - '@jridgewell/set-array@1.2.1': {} + '@radix-ui/react-focus-scope@1.0.4(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@radix-ui/react-compose-refs': 1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-primitive': 1.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-callback-ref': 1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 - '@jridgewell/sourcemap-codec@1.5.0': {} + '@radix-ui/react-focus-scope@1.1.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-primitive': 2.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-callback-ref': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 - '@jridgewell/trace-mapping@0.3.25': + '@radix-ui/react-icons@1.3.2(react@19.0.0-rc-66855b96-20241106)': dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + react: 19.0.0-rc-66855b96-20241106 - '@jridgewell/trace-mapping@0.3.9': + '@radix-ui/react-id@1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@babel/runtime': 7.26.0 + '@radix-ui/react-use-layout-effect': 1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 - '@neondatabase/serverless@0.9.5': + '@radix-ui/react-id@1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': dependencies: - '@types/pg': 8.11.6 + '@radix-ui/react-use-layout-effect': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 - '@next/env@15.0.3': {} + '@radix-ui/react-label@2.1.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 + + '@radix-ui/react-menu@2.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-collection': 1.1.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-compose-refs': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-context': 1.1.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-direction': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-dismissable-layer': 1.1.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-focus-guards': 1.1.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-focus-scope': 1.1.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-id': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-popper': 1.2.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-portal': 1.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-presence': 1.1.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-primitive': 2.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-roving-focus': 1.1.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-slot': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-callback-ref': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + aria-hidden: 1.2.4 + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + react-remove-scroll: 2.6.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 + + '@radix-ui/react-popover@1.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-context': 1.1.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-dismissable-layer': 1.1.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-focus-guards': 1.1.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-focus-scope': 1.1.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-id': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-popper': 1.2.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-portal': 1.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-presence': 1.1.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-primitive': 2.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-slot': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-controllable-state': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + aria-hidden: 1.2.4 + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + react-remove-scroll: 2.6.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 + + '@radix-ui/react-popper@1.2.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) + '@radix-ui/react-arrow': 1.1.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-compose-refs': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-context': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-primitive': 2.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-callback-ref': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-layout-effect': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-rect': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-size': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/rect': 1.1.0 + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 - '@next/eslint-plugin-next@15.0.3': + '@radix-ui/react-portal@1.0.4(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': dependencies: - fast-glob: 3.3.1 + '@babel/runtime': 7.26.0 + '@radix-ui/react-primitive': 1.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 - '@next/swc-darwin-arm64@15.0.3': - optional: true + '@radix-ui/react-portal@1.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-layout-effect': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 - '@next/swc-darwin-x64@15.0.3': - optional: true + '@radix-ui/react-presence@1.0.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@radix-ui/react-compose-refs': 1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-layout-effect': 1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 - '@next/swc-linux-arm64-gnu@15.0.3': - optional: true + '@radix-ui/react-presence@1.1.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-layout-effect': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 - '@next/swc-linux-arm64-musl@15.0.3': - optional: true + '@radix-ui/react-primitive@1.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@radix-ui/react-slot': 1.0.2(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 - '@next/swc-linux-x64-gnu@15.0.3': - optional: true + '@radix-ui/react-primitive@2.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/react-slot': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 + + '@radix-ui/react-roving-focus@1.1.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-collection': 1.1.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-compose-refs': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-context': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-direction': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-id': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-primitive': 2.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-callback-ref': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-controllable-state': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 + + '@radix-ui/react-scroll-area@1.2.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/number': 1.1.0 + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-context': 1.1.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-direction': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-presence': 1.1.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-primitive': 2.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-callback-ref': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-layout-effect': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 + + '@radix-ui/react-select@2.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/number': 1.1.0 + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-collection': 1.1.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-compose-refs': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-context': 1.1.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-direction': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-dismissable-layer': 1.1.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-focus-guards': 1.1.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-focus-scope': 1.1.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-id': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-popper': 1.2.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-portal': 1.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-primitive': 2.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-slot': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-callback-ref': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-controllable-state': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-layout-effect': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-previous': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-visually-hidden': 1.1.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + aria-hidden: 1.2.4 + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + react-remove-scroll: 2.6.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 - '@next/swc-linux-x64-musl@15.0.3': - optional: true + '@radix-ui/react-slot@1.0.2(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@radix-ui/react-compose-refs': 1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 - '@next/swc-win32-arm64-msvc@15.0.3': - optional: true + '@radix-ui/react-slot@1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 - '@next/swc-win32-x64-msvc@15.0.3': - optional: true + '@radix-ui/react-tooltip@1.1.4(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/primitive': 1.1.0 + '@radix-ui/react-compose-refs': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-context': 1.1.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-dismissable-layer': 1.1.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-id': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-popper': 1.2.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-portal': 1.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-presence': 1.1.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-primitive': 2.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-slot': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-use-controllable-state': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + '@radix-ui/react-visually-hidden': 1.1.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 - '@nodelib/fs.scandir@2.1.5': + '@radix-ui/react-use-callback-ref@1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 + '@babel/runtime': 7.26.0 + react: 19.0.0-rc-66855b96-20241106 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 - '@nodelib/fs.stat@2.0.5': {} + '@radix-ui/react-use-callback-ref@1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': + dependencies: + react: 19.0.0-rc-66855b96-20241106 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 - '@nodelib/fs.walk@1.2.8': + '@radix-ui/react-use-controllable-state@1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + '@babel/runtime': 7.26.0 + '@radix-ui/react-use-callback-ref': 1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 - '@nolyfill/is-core-module@1.0.39': {} + '@radix-ui/react-use-controllable-state@1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 - '@pkgjs/parseargs@0.11.0': - optional: true + '@radix-ui/react-use-escape-keydown@1.0.3(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@radix-ui/react-use-callback-ref': 1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 - '@prisma/adapter-neon@5.22.0(@neondatabase/serverless@0.9.5)': + '@radix-ui/react-use-escape-keydown@1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': dependencies: - '@neondatabase/serverless': 0.9.5 - '@prisma/driver-adapter-utils': 5.22.0 - postgres-array: 3.0.2 + '@radix-ui/react-use-callback-ref': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 - '@prisma/client@5.22.0(prisma@5.22.0)': + '@radix-ui/react-use-layout-effect@1.0.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': + dependencies: + '@babel/runtime': 7.26.0 + react: 19.0.0-rc-66855b96-20241106 optionalDependencies: - prisma: 5.22.0 + '@types/react': types-react@19.0.0-rc.1 - '@prisma/debug@5.22.0': {} + '@radix-ui/react-use-layout-effect@1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': + dependencies: + react: 19.0.0-rc-66855b96-20241106 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 - '@prisma/driver-adapter-utils@5.22.0': + '@radix-ui/react-use-previous@1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': dependencies: - '@prisma/debug': 5.22.0 + react: 19.0.0-rc-66855b96-20241106 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 - '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': {} + '@radix-ui/react-use-rect@1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': + dependencies: + '@radix-ui/rect': 1.1.0 + react: 19.0.0-rc-66855b96-20241106 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 - '@prisma/engines@5.22.0': + '@radix-ui/react-use-size@1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1)': dependencies: - '@prisma/debug': 5.22.0 - '@prisma/engines-version': 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 - '@prisma/fetch-engine': 5.22.0 - '@prisma/get-platform': 5.22.0 + '@radix-ui/react-use-layout-effect': 1.1.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 - '@prisma/fetch-engine@5.22.0': + '@radix-ui/react-visually-hidden@1.1.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1)': dependencies: - '@prisma/debug': 5.22.0 - '@prisma/engines-version': 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 - '@prisma/get-platform': 5.22.0 + '@radix-ui/react-primitive': 2.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + '@types/react-dom': types-react-dom@19.0.0-rc.1 - '@prisma/get-platform@5.22.0': + '@radix-ui/rect@1.1.0': {} + + '@react-email/render@1.0.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)': dependencies: - '@prisma/debug': 5.22.0 + html-to-text: 9.0.5 + js-beautify: 1.15.1 + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + react-promise-suspense: 0.3.4 '@rtsao/scc@1.1.0': {} '@rushstack/eslint-patch@1.10.4': {} + '@selderee/plugin-htmlparser2@0.11.0': + dependencies: + domhandler: 5.0.3 + selderee: 0.11.0 + '@swc/counter@0.1.3': {} '@swc/helpers@0.5.13': @@ -2556,6 +4380,14 @@ snapshots: '@tanstack/query-core': 5.59.20 react: 19.0.0-rc-66855b96-20241106 + '@types/bcrypt@5.0.2': + dependencies: + '@types/node': 20.17.6 + + '@types/bcryptjs@2.4.6': {} + + '@types/cookie@0.6.0': {} + '@types/json5@0.0.29': {} '@types/node-forge@1.3.11': @@ -2682,10 +4514,31 @@ snapshots: '@ungap/structured-clone@1.2.0': {} + '@uploadthing/mime-types@0.3.2': {} + + '@uploadthing/react@7.1.1(next@15.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(uploadthing@7.3.0(next@15.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106))(tailwindcss@3.4.14))': + dependencies: + '@uploadthing/shared': 7.1.1 + file-selector: 0.6.0 + react: 19.0.0-rc-66855b96-20241106 + uploadthing: 7.3.0(next@15.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106))(tailwindcss@3.4.14) + optionalDependencies: + next: 15.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) + + '@uploadthing/shared@7.1.1': + dependencies: + '@uploadthing/mime-types': 0.3.2 + effect: 3.10.3 + sqids: 0.3.0 + '@upstash/redis@1.34.3': dependencies: crypto-js: 4.2.0 + abbrev@1.1.1: {} + + abbrev@2.0.0: {} + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 @@ -2696,6 +4549,12 @@ snapshots: acorn@8.14.0: {} + agent-base@6.0.2: + dependencies: + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -2720,10 +4579,21 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 + aproba@2.0.0: {} + + are-we-there-yet@2.0.0: + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + arg@5.0.2: {} argparse@2.0.1: {} + aria-hidden@1.2.4: + dependencies: + tslib: 2.8.1 + aria-query@5.3.2: {} array-buffer-byte-length@1.0.1: @@ -2809,6 +4679,16 @@ snapshots: balanced-match@1.0.2: {} + bcrypt@5.1.1: + dependencies: + '@mapbox/node-pre-gyp': 1.0.11 + node-addon-api: 5.1.0 + transitivePeerDependencies: + - encoding + - supports-color + + bcryptjs@2.4.3: {} + binary-extensions@2.3.0: {} blake3-wasm@2.1.5: {} @@ -2868,10 +4748,26 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chownr@2.0.0: {} + + class-variance-authority@0.7.1: + dependencies: + clsx: 2.1.1 + client-only@0.0.1: {} clsx@2.1.1: {} + cmdk@1.0.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1): + dependencies: + '@radix-ui/react-dialog': 1.0.5(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + '@radix-ui/react-primitive': 1.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -2884,16 +4780,29 @@ snapshots: simple-swizzle: 0.2.2 optional: true + color-support@1.1.3: {} + color@4.2.3: dependencies: color-convert: 2.0.1 color-string: 1.9.1 optional: true + commander@10.0.1: {} + commander@4.1.1: {} concat-map@0.0.1: {} + config-chain@1.1.13: + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + + console-control-strings@1.1.0: {} + + cookie@0.7.1: {} + cookie@0.7.2: {} copy-anything@3.0.5: @@ -2946,6 +4855,8 @@ snapshots: deep-is@0.1.4: {} + deepmerge@4.3.1: {} + define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 @@ -2960,8 +4871,11 @@ snapshots: defu@6.1.4: {} - detect-libc@2.0.3: - optional: true + delegates@1.0.0: {} + + detect-libc@2.0.3: {} + + detect-node-es@1.1.0: {} didyoumean@1.2.2: {} @@ -2979,8 +4893,37 @@ snapshots: dependencies: esutils: 2.0.3 + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.1.0: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + eastasianwidth@0.2.0: {} + editorconfig@1.0.4: + dependencies: + '@one-ini/wasm': 0.1.1 + commander: 10.0.1 + minimatch: 9.0.1 + semver: 7.6.3 + + effect@3.10.3: + dependencies: + fast-check: 3.23.1 + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -2990,6 +4933,8 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 + entities@4.5.0: {} + es-abstract@1.23.4: dependencies: array-buffer-byte-length: 1.0.1 @@ -3314,6 +5259,12 @@ snapshots: exit-hook@2.2.1: {} + fast-check@3.23.1: + dependencies: + pure-rand: 6.1.0 + + fast-deep-equal@2.0.1: {} + fast-deep-equal@3.1.3: {} fast-glob@3.3.1: @@ -3344,10 +5295,16 @@ snapshots: dependencies: flat-cache: 3.2.0 + file-selector@0.6.0: + dependencies: + tslib: 2.8.1 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 + find-my-way-ts@0.1.5: {} + find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -3370,6 +5327,10 @@ snapshots: cross-spawn: 7.0.5 signal-exit: 4.1.0 + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -3386,6 +5347,18 @@ snapshots: functions-have-names@1.2.3: {} + gauge@3.0.2: + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + get-intrinsic@1.2.4: dependencies: es-errors: 1.3.0 @@ -3394,6 +5367,8 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 + get-nonce@1.0.1: {} + get-source@2.0.12: dependencies: data-uri-to-buffer: 2.0.2 @@ -3479,12 +5454,36 @@ snapshots: dependencies: has-symbols: 1.0.3 + has-unicode@2.0.1: {} + hasown@2.0.2: dependencies: function-bind: 1.1.2 hono@4.6.10: {} + html-to-text@9.0.5: + dependencies: + '@selderee/plugin-htmlparser2': 0.11.0 + deepmerge: 4.3.1 + dom-serializer: 2.0.0 + htmlparser2: 8.0.2 + selderee: 0.11.0 + + htmlparser2@8.0.2: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + ignore@5.3.2: {} import-fresh@3.3.0: @@ -3501,12 +5500,18 @@ snapshots: inherits@2.0.4: {} + ini@1.3.8: {} + internal-slot@1.0.7: dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.0.6 + invariant@2.2.4: + dependencies: + loose-envify: 1.4.0 + is-array-buffer@3.0.4: dependencies: call-bind: 1.0.7 @@ -3636,6 +5641,18 @@ snapshots: jiti@1.21.6: {} + jose@5.9.6: {} + + js-beautify@1.15.1: + dependencies: + config-chain: 1.1.13 + editorconfig: 1.0.4 + glob: 10.4.5 + js-cookie: 3.0.5 + nopt: 7.2.1 + + js-cookie@3.0.5: {} + js-tokens@4.0.0: {} js-yaml@4.1.0: @@ -3669,6 +5686,8 @@ snapshots: dependencies: language-subtag-registry: 0.3.23 + leac@0.6.0: {} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -3692,10 +5711,18 @@ snapshots: lru-cache@10.4.3: {} + lucide-react@0.462.0(react@19.0.0-rc-66855b96-20241106): + dependencies: + react: 19.0.0-rc-66855b96-20241106 + magic-string@0.25.9: dependencies: sourcemap-codec: 1.4.8 + make-dir@3.1.0: + dependencies: + semver: 6.3.1 + merge2@1.4.1: {} micromatch@4.0.8: @@ -3728,6 +5755,10 @@ snapshots: dependencies: brace-expansion: 1.1.11 + minimatch@9.0.1: + dependencies: + brace-expansion: 2.0.1 + minimatch@9.0.3: dependencies: brace-expansion: 2.0.1 @@ -3738,10 +5769,25 @@ snapshots: minimist@1.2.8: {} + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + minipass@7.1.2: {} + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + + mkdirp@1.0.4: {} + ms@2.1.3: {} + multipasta@0.2.5: {} + mustache@4.2.0: {} mz@2.7.0: @@ -3754,6 +5800,17 @@ snapshots: natural-compare@1.4.0: {} + next-auth@5.0.0-beta.25(next@15.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106): + dependencies: + '@auth/core': 0.37.2 + next: 15.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) + react: 19.0.0-rc-66855b96-20241106 + + next-themes@0.4.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106): + dependencies: + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + next@15.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106): dependencies: '@next/env': 15.0.3 @@ -3779,10 +5836,33 @@ snapshots: - '@babel/core' - babel-plugin-macros + node-addon-api@5.1.0: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + node-forge@1.3.1: {} + nopt@5.0.0: + dependencies: + abbrev: 1.1.1 + + nopt@7.2.1: + dependencies: + abbrev: 2.0.0 + normalize-path@3.0.0: {} + npmlog@5.0.1: + dependencies: + are-we-there-yet: 2.0.0 + console-control-strings: 1.1.0 + gauge: 3.0.2 + set-blocking: 2.0.0 + + oauth4webapi@3.1.3: {} + object-assign@4.1.1: {} object-hash@3.0.0: {} @@ -3854,6 +5934,11 @@ snapshots: dependencies: callsites: 3.1.0 + parseley@0.12.1: + dependencies: + leac: 0.6.0 + peberminta: 0.9.0 + path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -3873,6 +5958,8 @@ snapshots: pathe@1.1.2: {} + peberminta@0.9.0: {} + pg-int8@1.0.1: {} pg-numeric@1.0.2: {} @@ -3954,8 +6041,23 @@ snapshots: postgres-range@1.1.4: {} + preact-render-to-string@5.2.3(preact@10.11.3): + dependencies: + preact: 10.11.3 + pretty-format: 3.8.0 + + preact-render-to-string@6.5.11(preact@10.24.3): + dependencies: + preact: 10.24.3 + + preact@10.11.3: {} + + preact@10.24.3: {} + prelude-ls@1.2.1: {} + pretty-format@3.8.0: {} + printable-characters@1.0.42: {} prisma@5.22.0: @@ -3970,8 +6072,12 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 + proto-list@1.2.4: {} + punycode@2.3.1: {} + pure-rand@6.1.0: {} + queue-microtask@1.2.3: {} react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106): @@ -3979,14 +6085,76 @@ snapshots: react: 19.0.0-rc-66855b96-20241106 scheduler: 0.25.0-rc-66855b96-20241106 + react-hook-form@7.53.2(react@19.0.0-rc-66855b96-20241106): + dependencies: + react: 19.0.0-rc-66855b96-20241106 + + react-icons@5.3.0(react@19.0.0-rc-66855b96-20241106): + dependencies: + react: 19.0.0-rc-66855b96-20241106 + react-is@16.13.1: {} + react-promise-suspense@0.3.4: + dependencies: + fast-deep-equal: 2.0.1 + + react-remove-scroll-bar@2.3.6(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1): + dependencies: + react: 19.0.0-rc-66855b96-20241106 + react-style-singleton: 2.2.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + tslib: 2.8.1 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + + react-remove-scroll@2.5.5(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1): + dependencies: + react: 19.0.0-rc-66855b96-20241106 + react-remove-scroll-bar: 2.3.6(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react-style-singleton: 2.2.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + tslib: 2.8.1 + use-callback-ref: 1.3.2(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + use-sidecar: 1.1.2(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + + react-remove-scroll@2.6.0(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1): + dependencies: + react: 19.0.0-rc-66855b96-20241106 + react-remove-scroll-bar: 2.3.6(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + react-style-singleton: 2.2.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + tslib: 2.8.1 + use-callback-ref: 1.3.2(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + use-sidecar: 1.1.2(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1) + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + + react-spinners@0.14.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106): + dependencies: + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + + react-style-singleton@2.2.1(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1): + dependencies: + get-nonce: 1.0.1 + invariant: 2.2.4 + react: 19.0.0-rc-66855b96-20241106 + tslib: 2.8.1 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + react@19.0.0-rc-66855b96-20241106: {} read-cache@1.0.0: dependencies: pify: 2.3.0 + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + readdirp@3.6.0: dependencies: picomatch: 2.3.1 @@ -4001,6 +6169,8 @@ snapshots: globalthis: 1.0.4 which-builtin-type: 1.1.4 + regenerator-runtime@0.14.1: {} + regexp.prototype.flags@1.5.3: dependencies: call-bind: 1.0.7 @@ -4008,6 +6178,13 @@ snapshots: es-errors: 1.3.0 set-function-name: 2.0.2 + resend@4.0.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106): + dependencies: + '@react-email/render': 1.0.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) + transitivePeerDependencies: + - react + - react-dom + resolve-from@4.0.0: {} resolve-pkg-maps@1.0.0: {} @@ -4057,6 +6234,8 @@ snapshots: has-symbols: 1.0.3 isarray: 2.0.5 + safe-buffer@5.2.1: {} + safe-regex-test@1.0.3: dependencies: call-bind: 1.0.7 @@ -4065,6 +6244,10 @@ snapshots: scheduler@0.25.0-rc-66855b96-20241106: {} + selderee@0.11.0: + dependencies: + parseley: 0.12.1 + selfsigned@2.4.1: dependencies: '@types/node-forge': 1.3.11 @@ -4074,6 +6257,8 @@ snapshots: semver@7.6.3: {} + set-blocking@2.0.0: {} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -4130,6 +6315,8 @@ snapshots: get-intrinsic: 1.2.4 object-inspect: 1.13.3 + signal-exit@3.0.7: {} + signal-exit@4.1.0: {} simple-swizzle@0.2.2: @@ -4139,12 +6326,19 @@ snapshots: slash@3.0.0: {} + sonner@1.7.0(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106): + dependencies: + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + source-map-js@1.2.1: {} source-map@0.6.1: {} sourcemap-codec@1.4.8: {} + sqids@0.3.0: {} + stacktracey@2.1.8: dependencies: as-table: 1.0.55 @@ -4211,6 +6405,10 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -4250,6 +6448,10 @@ snapshots: tailwind-merge@2.5.4: {} + tailwindcss-animate@1.0.7(tailwindcss@3.4.14): + dependencies: + tailwindcss: 3.4.14 + tailwindcss@3.4.14: dependencies: '@alloc/quick-lru': 5.2.0 @@ -4279,6 +6481,15 @@ snapshots: tapable@2.2.1: {} + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + text-table@0.2.0: {} thenify-all@1.6.0: @@ -4293,6 +6504,8 @@ snapshots: dependencies: is-number: 7.0.0 + tr46@0.0.3: {} + ts-api-utils@1.4.0(typescript@5.6.3): dependencies: typescript: 5.6.3 @@ -4378,12 +6591,55 @@ snapshots: pathe: 1.1.2 ufo: 1.5.4 + uploadthing@7.3.0(next@15.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106))(tailwindcss@3.4.14): + dependencies: + '@effect/platform': 0.69.8(effect@3.10.3) + '@uploadthing/mime-types': 0.3.2 + '@uploadthing/shared': 7.1.1 + effect: 3.10.3 + optionalDependencies: + next: 15.0.3(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106) + tailwindcss: 3.4.14 + uri-js@4.4.1: dependencies: punycode: 2.3.1 + use-callback-ref@1.3.2(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1): + dependencies: + react: 19.0.0-rc-66855b96-20241106 + tslib: 2.8.1 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + + use-sidecar@1.1.2(react@19.0.0-rc-66855b96-20241106)(types-react@19.0.0-rc.1): + dependencies: + detect-node-es: 1.1.0 + react: 19.0.0-rc-66855b96-20241106 + tslib: 2.8.1 + optionalDependencies: + '@types/react': types-react@19.0.0-rc.1 + util-deprecate@1.0.2: {} + uuid@11.0.3: {} + + vaul@1.1.1(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1): + dependencies: + '@radix-ui/react-dialog': 1.1.2(react-dom@19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106))(react@19.0.0-rc-66855b96-20241106)(types-react-dom@19.0.0-rc.1)(types-react@19.0.0-rc.1) + react: 19.0.0-rc-66855b96-20241106 + react-dom: 19.0.0-rc-66855b96-20241106(react@19.0.0-rc-66855b96-20241106) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + + webidl-conversions@3.0.1: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + which-boxed-primitive@1.0.2: dependencies: is-bigint: 1.0.4 @@ -4426,6 +6682,10 @@ snapshots: dependencies: isexe: 2.0.0 + wide-align@1.1.5: + dependencies: + string-width: 4.2.3 + word-wrap@1.2.5: {} workerd@1.20241106.1: @@ -4483,6 +6743,8 @@ snapshots: xxhash-wasm@1.0.2: {} + yallist@4.0.0: {} + yaml@2.6.0: {} yocto-queue@0.1.0: {} diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 87f3de8..3b55a39 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -1,21 +1,129 @@ -// This is your Prisma schema file, -// learn more about it in the docs: https://pris.ly/d/prisma-schema - generator client { - provider = "prisma-client-js" - previewFeatures = ["driverAdapters"] + provider = "prisma-client-js" + previewFeatures = ["driverAdapters"] } datasource db { - provider = "postgresql" - url = env("DATABASE_URL") + provider = "postgresql" + url = env("DATABASE_URL") +} + +enum UserRole { + USER + ADMIN +} + +model User { + id String @id @default(cuid()) + name String? + email String? @unique + emailVerified DateTime? @map("email_verified") + image String? + password String? + role UserRole @default(USER) + isTwoFactorEnabled Boolean @default(false) + twoFactorConfirmation TwoFactorConfirmation? + accounts Account[] + + @@map("users") } -model Post { - id Int @id @default(autoincrement()) - name String - createdAt DateTime @default(now()) - updatedAt DateTime @updatedAt +model Account { + id String @id @default(cuid()) + userId String @map("user_id") + type String + provider String + providerAccountId String @map("provider_account_id") + refresh_token String? @db.Text + access_token String? @db.Text + expires_at Int? + token_type String? + scope String? + id_token String? @db.Text + session_state String? + + user User @relation(fields: [userId], references: [id], onDelete: Cascade) + + @@unique([provider, providerAccountId]) + @@map("accounts") +} + +model VerificationToken { + id String @id @unique @default(cuid()) + email String + token String @unique + expires DateTime + + @@unique([email, token]) +} + +model PasswordResetToken { + id String @id @unique @default(cuid()) + email String + token String @unique + expires DateTime + + @@unique([email, token]) +} + +model TwoFactorToken { + id String @id @unique @default(cuid()) + email String + token String @unique + expires DateTime + + @@unique([email, token]) +} + +model TwoFactorConfirmation { + id String @id @default(cuid()) + userId String + user User @relation(fields: [userId], references: [id], onDelete: Cascade) + + @@unique([userId]) +} + +model Product { + id String @id @unique @default(cuid()) + name String + fullDescription String + shortDescription String? + variants Variant[] + category Category? @relation(fields: [categoryId], references: [id]) + categoryId String + subcategory Subcategory? @relation(fields: [subcategoryId], references: [id]) + subcategoryId String +} + +model Category { + id String @id @unique @default(cuid()) + name String + products Product[] + subcategories Subcategory[] // New relationship with Subcategory +} + +model Subcategory { + id String @id @unique @default(cuid()) + name String + category Category @relation(fields: [categoryId], references: [id]) // Link to Category + categoryId String + products Product[] +} + +model Image { + id String @id @unique @default(cuid()) + imageId String @unique() + imageUrl String + variant Variant @relation(fields: [variantId], references: [id]) + variantId String +} - @@index([name]) +model Variant { + id String @id @unique @default(cuid()) + name String + images Image[] + price Float + stock Int + product Product @relation(fields: [productId], references: [id]) + productId String } diff --git a/routes.ts b/routes.ts new file mode 100644 index 0000000..34bd5f5 --- /dev/null +++ b/routes.ts @@ -0,0 +1,31 @@ +/** + * An array of routes that are publicly accessible without authentication. + * @type {string[]} + */ +/** + * An array of routes that are publicly accessible without authentication. + * @type {string[]} + */ +export const publicRoutes = [ + "/auth/new-verification", + "/api/hono" +] + +/** + * An array of routes that require authentication. + * @type {string[]} +*/ +export const authRoutes = [ + "/auth/login", + "/auth/register", + "/auth/reset", + "/auth/error", + "/auth/new-password" +] + +/** + * The prefix for API authentication routes. + * @type {string} + */ +export const apiAuthPrefix = "/api" +export const DEFAULT_LOGIN_REDIRECT="/dashboard" diff --git a/src/app/(protected)/dashboard/page.tsx b/src/app/(protected)/dashboard/page.tsx new file mode 100644 index 0000000..9311ac2 --- /dev/null +++ b/src/app/(protected)/dashboard/page.tsx @@ -0,0 +1,12 @@ +import DashboardPage from '@/src/components/dashboard-page' +import React from 'react' + +const Dashboard = () => { + return ( + + Children + + ) +} + +export default Dashboard diff --git a/src/app/(protected)/dashboard/products/create/page.tsx b/src/app/(protected)/dashboard/products/create/page.tsx new file mode 100644 index 0000000..613cd47 --- /dev/null +++ b/src/app/(protected)/dashboard/products/create/page.tsx @@ -0,0 +1,14 @@ +"use client" +import DashboardPage from "@/src/components/dashboard-page" +import { CreateProductForm } from "@/src/features/products/components/product-form" +import { UploadDropzone } from "@/src/lib/uploadthings" + +const page = () => { + return ( + + + + ) +} + +export default page diff --git a/src/app/(protected)/dashboard/products/empty-products-state.tsx b/src/app/(protected)/dashboard/products/empty-products-state.tsx new file mode 100644 index 0000000..158f852 --- /dev/null +++ b/src/app/(protected)/dashboard/products/empty-products-state.tsx @@ -0,0 +1,9 @@ +import React from 'react' + +const EmptyProductsState = () => { + return ( +
EmptyProductsState
+ ) +} + +export default EmptyProductsState diff --git a/src/app/(protected)/dashboard/products/page.tsx b/src/app/(protected)/dashboard/products/page.tsx new file mode 100644 index 0000000..fd68e11 --- /dev/null +++ b/src/app/(protected)/dashboard/products/page.tsx @@ -0,0 +1,32 @@ +import DashboardPage from "@/src/components/dashboard-page" +import React from "react" +import EmptyProductsState from "./empty-products-state" +import { client } from "@/src/lib/client" +import { currentUser } from "@/src/features/auth/lib/auth" +import { Button, buttonVariants } from "@/src/components/ui/button" +import { Plus } from "lucide-react" +import Link from "next/link" +import { cn } from "@/src/utils" + +const ProductsPage = async () => { + const res = await client.hono.products.getAllProducts.$get() + const products = await res.json() + return ( + + + Add Product + + } + > + {/* */} + + ) +} + +export default ProductsPage diff --git a/src/app/(protected)/layout.tsx b/src/app/(protected)/layout.tsx new file mode 100644 index 0000000..4380e79 --- /dev/null +++ b/src/app/(protected)/layout.tsx @@ -0,0 +1,64 @@ +"use client" +import { Sidebar } from "@/src/components/sidebar" +import { Modal } from "@/src/components/ui/modal" +import { Menu, X } from "lucide-react" +import { PropsWithChildren, useState } from "react" + +const Layout = ({ children }: PropsWithChildren) => { + const [isDrawerOpen, setIsDrawerOpen] = useState(false) + + return ( +
+ {/* sidebar for desktop */} +
+ +
+ +
+ {/* mobile header */} +
+

+ PingPanda +

+ +
+ + {/* main content area */} +
+
+
+ {children} +
+
+
+ + +
+

+ PingPanda +

+ +
+ + +
+
+
+ ) + } + + export default Layout diff --git a/src/app/api/[[...route]]/route.ts b/src/app/api/[[...route]]/route.ts index 16d1e93..54234e9 100644 --- a/src/app/api/[[...route]]/route.ts +++ b/src/app/api/[[...route]]/route.ts @@ -1,5 +1,5 @@ -import { httpHandler } from "@/server" +import { httpHandler } from "@/src/server" -export const runtime = "edge" +// export const runtime = "edge" export { httpHandler as GET, httpHandler as POST } diff --git a/src/app/api/auth/[...nextauth]/route.ts b/src/app/api/auth/[...nextauth]/route.ts new file mode 100644 index 0000000..c8db298 --- /dev/null +++ b/src/app/api/auth/[...nextauth]/route.ts @@ -0,0 +1,2 @@ +import { handlers } from "@/auth"; +export const { GET, POST } = handlers diff --git a/src/app/api/uploadthing/core.ts b/src/app/api/uploadthing/core.ts new file mode 100644 index 0000000..eee44dd --- /dev/null +++ b/src/app/api/uploadthing/core.ts @@ -0,0 +1,36 @@ +import { currentUser } from "@/src/features/auth/lib/auth"; +import { createUploadthing, type FileRouter } from "uploadthing/next"; +import { UploadThingError } from "uploadthing/server"; + +const f = createUploadthing(); + + +// FileRouter for your app, can contain multiple FileRoutes +export const ourFileRouter = { + // Define as many FileRoutes as you like, each with a unique routeSlug + imageUploader: f({ + image: { + /** + * For full list of options and defaults, see the File Route API reference + * @see https://docs.uploadthing.com/file-routes#route-config + */ + maxFileSize: "4MB", + maxFileCount: 1, + }, + }) + // Set permissions and file types for this FileRoute + .middleware(async ({ req }) => { + // This code runs on your server before upload + return { }; + }) + .onUploadComplete(async ({ metadata, file }) => { + // This code RUNS ON YOUR SERVER after upload + console.log("Upload complete for userId:", metadata); + console.log("file url", file.url); + + // !!! Whatever is returned here is sent to the clientside `onClientUploadComplete` callback + return { uploadedBy: metadata, file: file }; + }), +} satisfies FileRouter; + +export type OurFileRouter = typeof ourFileRouter; diff --git a/src/app/api/uploadthing/route.ts b/src/app/api/uploadthing/route.ts new file mode 100644 index 0000000..81af864 --- /dev/null +++ b/src/app/api/uploadthing/route.ts @@ -0,0 +1,11 @@ +import { createRouteHandler } from "uploadthing/next"; + +import { ourFileRouter } from "./core"; + +// Export routes for Next App Router +export const { GET, POST } = createRouteHandler({ + router: ourFileRouter, + + // Apply an (optional) custom config: + // config: { ... }, +}); diff --git a/src/app/auth/error/page.tsx b/src/app/auth/error/page.tsx new file mode 100644 index 0000000..6b6b351 --- /dev/null +++ b/src/app/auth/error/page.tsx @@ -0,0 +1,10 @@ +import AuthError from '@/src/features/auth/components/auth-error' +import React from 'react' + +const AuthErrorPage = () => { + return ( + + ) +} + +export default AuthErrorPage diff --git a/src/app/auth/layout.tsx b/src/app/auth/layout.tsx new file mode 100644 index 0000000..3b069bf --- /dev/null +++ b/src/app/auth/layout.tsx @@ -0,0 +1,11 @@ +import React from 'react' + +const AuthLayout = ({ children} : { children: React.ReactNode}) => { + return ( +
+ {children} +
+ ) +} + +export default AuthLayout diff --git a/src/app/auth/login/page.tsx b/src/app/auth/login/page.tsx new file mode 100644 index 0000000..41e0c64 --- /dev/null +++ b/src/app/auth/login/page.tsx @@ -0,0 +1,12 @@ +import LoginForm from '@/src/features/auth/components/login-form' +import React from 'react' + +const LoginPage = () => { + return ( +
+ +
+ ) +} + +export default LoginPage diff --git a/src/app/auth/new-password/page.tsx b/src/app/auth/new-password/page.tsx new file mode 100644 index 0000000..46bf946 --- /dev/null +++ b/src/app/auth/new-password/page.tsx @@ -0,0 +1,11 @@ +import NewPasswordForm from '@/src/features/auth/components/new-password-form' +import React from 'react' + +const NewPasswordPage = () => { + return ( + + ) +} + + +export default NewPasswordPage diff --git a/src/app/auth/new-verification/page.tsx b/src/app/auth/new-verification/page.tsx new file mode 100644 index 0000000..ac1d9a9 --- /dev/null +++ b/src/app/auth/new-verification/page.tsx @@ -0,0 +1,10 @@ +import NewVerificationForm from '@/src/features/auth/components/new-verification-form' +import React from 'react' + +const NewVerificationPage = () => { + return ( + + ) +} + +export default NewVerificationPage diff --git a/src/app/auth/register/page.tsx b/src/app/auth/register/page.tsx new file mode 100644 index 0000000..2216faf --- /dev/null +++ b/src/app/auth/register/page.tsx @@ -0,0 +1,12 @@ +import RegisterForm from '@/src/features/auth/components/register-form' +import React from 'react' + +const LoginPage = () => { + return ( +
+ +
+ ) +} + +export default LoginPage diff --git a/src/app/auth/reset/page.tsx b/src/app/auth/reset/page.tsx new file mode 100644 index 0000000..b41de50 --- /dev/null +++ b/src/app/auth/reset/page.tsx @@ -0,0 +1,10 @@ +import ResetForm from '@/src/features/auth/components/reset-form' +import React from 'react' + +const ResetPage = () => { + return ( + + ) +} + +export default ResetPage diff --git a/src/app/globals.css b/src/app/globals.css index b5c61c9..96ec134 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -1,3 +1,71 @@ @tailwind base; @tailwind components; @tailwind utilities; + +html, body, :root { + height: 100%; +} + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 0 0% 3.9%; + --card: 0 0% 100%; + --card-foreground: 0 0% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 0 0% 3.9%; + --primary: 0 0% 9%; + --primary-foreground: 0 0% 98%; + --secondary: 0 0% 96.1%; + --secondary-foreground: 0 0% 9%; + --muted: 0 0% 96.1%; + --muted-foreground: 0 0% 45.1%; + --accent: 0 0% 96.1%; + --accent-foreground: 0 0% 9%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + --border: 0 0% 89.8%; + --input: 0 0% 89.8%; + --ring: 0 0% 3.9%; + --chart-1: 12 76% 61%; + --chart-2: 173 58% 39%; + --chart-3: 197 37% 24%; + --chart-4: 43 74% 66%; + --chart-5: 27 87% 67%; + --radius: 0.5rem + } + .dark { + --background: 0 0% 3.9%; + --foreground: 0 0% 98%; + --card: 0 0% 3.9%; + --card-foreground: 0 0% 98%; + --popover: 0 0% 3.9%; + --popover-foreground: 0 0% 98%; + --primary: 0 0% 98%; + --primary-foreground: 0 0% 9%; + --secondary: 0 0% 14.9%; + --secondary-foreground: 0 0% 98%; + --muted: 0 0% 14.9%; + --muted-foreground: 0 0% 63.9%; + --accent: 0 0% 14.9%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 0% 98%; + --border: 0 0% 14.9%; + --input: 0 0% 14.9%; + --ring: 0 0% 83.1%; + --chart-1: 220 70% 50%; + --chart-2: 160 60% 45%; + --chart-3: 30 80% 55%; + --chart-4: 280 65% 60%; + --chart-5: 340 75% 55% + } +} +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 57cb6ed..e6fe278 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,10 +1,14 @@ import type { Metadata } from "next" import { Inter } from "next/font/google" -import { Providers } from "./components/providers" +import { Providers } from "../components/providers" import { EB_Garamond } from "next/font/google" -import { cn } from "@/utils" +import { cn } from "@/src/utils" +import { NextSSRPlugin } from "@uploadthing/react/next-ssr-plugin" +import { extractRouterConfig } from "uploadthing/server" +import { ourFileRouter } from "@/src/app/api/uploadthing/core" import "./globals.css" +import AuthProvider from "../features/auth/components/auth-provider" const inter = Inter({ subsets: ["latin"], variable: "--font-sans" }) const eb_garamond = EB_Garamond({ @@ -24,10 +28,15 @@ export default function RootLayout({ children: React.ReactNode }>) { return ( - - - {children} - - + + + + + {children} + + + ) } diff --git a/src/app/page.tsx b/src/app/page.tsx index 3f904c4..f2f3bd2 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,37 +1,9 @@ -import { - dehydrate, - HydrationBoundary, - QueryClient, -} from "@tanstack/react-query" -import { RecentPost } from "./components/post" -import { client } from "./lib/client" - -export default async function Home() { - const res = await client.post.recent.$get() - const recentPost = await res.json() - const queryClient = new QueryClient() - - await queryClient.prefetchQuery({ - queryFn: () => recentPost, - queryKey: ["get-recent-post"], - }) +import React from 'react' +const HomePage = () => { return ( - -
-
-

- jstack -

- -

- The modern way to confidently ship high-performance, low-cost - Next.js apps. End-to-end typesafe with an incredible DX. -

- - -
-
-
+
HomePage
) } + +export default HomePage diff --git a/src/components/dashboard-page.tsx b/src/components/dashboard-page.tsx new file mode 100644 index 0000000..948bf15 --- /dev/null +++ b/src/components/dashboard-page.tsx @@ -0,0 +1,49 @@ +"use client" +import { usePathname, useRouter } from "next/navigation" +import React, { ReactNode } from "react" +import { Button } from "./ui/button" +import { ArrowLeft } from "lucide-react" + +interface DashboardPageProps { + title: string + children?: ReactNode + hideBackButton?: boolean + cta?: ReactNode +} + +const DashboardPage = ({ + title, + hideBackButton, + children, + cta, +}: DashboardPageProps) => { + const router = useRouter() + + return ( +
+
+
+
+ {hideBackButton ? null : ( + + )} + +

{title}

+
+ {cta ?
{cta}
: null} +
+
+
+ {children} +
+
+ ) +} + +export default DashboardPage diff --git a/src/app/components/post.tsx b/src/components/post.tsx similarity index 100% rename from src/app/components/post.tsx rename to src/components/post.tsx diff --git a/src/app/components/providers.tsx b/src/components/providers.tsx similarity index 67% rename from src/app/components/providers.tsx rename to src/components/providers.tsx index febd646..aa501a1 100644 --- a/src/app/components/providers.tsx +++ b/src/components/providers.tsx @@ -1,8 +1,15 @@ "use client" -import { QueryCache, QueryClient, QueryClientProvider } from "@tanstack/react-query" +import { + QueryCache, + QueryClient, + QueryClientProvider, +} from "@tanstack/react-query" import { HTTPException } from "hono/http-exception" import { PropsWithChildren, useState } from "react" +import { Toaster } from "./ui/sonner" +import { SessionProvider } from "next-auth/react" +import AuthProvider from "../features/auth/components/auth-provider" export const Providers = ({ children }: PropsWithChildren) => { const [queryClient] = useState( @@ -25,5 +32,8 @@ export const Providers = ({ children }: PropsWithChildren) => { }) ) - return {children} + return + {children} + + } diff --git a/src/components/sidebar.tsx b/src/components/sidebar.tsx new file mode 100644 index 0000000..48eb831 --- /dev/null +++ b/src/components/sidebar.tsx @@ -0,0 +1,134 @@ +import { + Home, + LucideIcon, + ShoppingBag, + PackageOpen, + Settings, + BookA, +} from "lucide-react" +import { PinTopIcon } from "@radix-ui/react-icons" +import Link from "next/link" +import { buttonVariants } from "./ui/button" +import UserButton from "../features/auth/components/user-button" +import { cn } from "../lib/utils" +import { BsBoxSeamFill, BsPeopleFill } from "react-icons/bs" +import { usePathname } from "next/navigation" +import { useState, useEffect } from "react" + +interface SidebarItem { + href: string + icon: LucideIcon | any + text: string +} + +interface SidebarCategory { + category: string + items: SidebarItem[] +} + +const SIDEBAR_ITEMS: SidebarCategory[] = [ + { + category: "Overview", + items: [{ href: "/dashboard", icon: Home, text: "Dashboard" }], + }, + { + category: "Products", + items: [ + { href: "/dashboard/products", icon: PackageOpen, text: "All Products" }, + ], + }, + { + category: "Orders", + items: [ + { href: "/dashboard/orders", icon: BsBoxSeamFill, text: "All Orders" }, + { + href: "/dashboard/orders/pending", + icon: ShoppingBag, + text: "Pending Orders", + }, + ], + }, + { + category: "Blog", + items: [ + { + href: "/dashboard/blogs", + icon: BookA, + text: "Blog Posts", + }, + ], + }, + { + category: "Customers", + items: [ + { + href: "/dashboard/customers", + icon: BsPeopleFill, + text: "All Customers", + }, + ], + }, + { + category: "Settings", + items: [ + { + href: "/dashboard/account-settings", + icon: Settings, + text: "Account Settings", + }, + { href: "/dashboard/topbar", icon: PinTopIcon, text: "Topbar Settings" }, + ], + }, +] + +export const Sidebar = ({ onClose }: { onClose?: () => void }) => { + const pathName = usePathname() + + return ( +
+ {/* logo */} +

+ My Store +

+ + {/* navigation items */} +
+
    + {SIDEBAR_ITEMS.map(({ category, items }) => ( +
  • +

    + {category} +

    +
    + {items.map((item, i) => ( + + + {item.text} + + ))} +
    +
  • + ))} +
+
+
+ ) +} diff --git a/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx new file mode 100644 index 0000000..dfc8c1d --- /dev/null +++ b/src/components/ui/avatar.tsx @@ -0,0 +1,50 @@ +"use client" + +import * as React from "react" +import * as AvatarPrimitive from "@radix-ui/react-avatar" + +import { cn } from "@/src/lib/utils" + +const Avatar = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +Avatar.displayName = AvatarPrimitive.Root.displayName + +const AvatarImage = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AvatarImage.displayName = AvatarPrimitive.Image.displayName + +const AvatarFallback = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName + +export { Avatar, AvatarImage, AvatarFallback } diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx new file mode 100644 index 0000000..d12aa84 --- /dev/null +++ b/src/components/ui/badge.tsx @@ -0,0 +1,36 @@ +import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/src/lib/utils" + +const badgeVariants = cva( + "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", + { + variants: { + variant: { + default: + "border-transparent bg-primary text-primary-foreground hover:bg-primary/80", + secondary: + "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", + destructive: + "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80", + outline: "text-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +export interface BadgeProps + extends React.HTMLAttributes, + VariantProps {} + +function Badge({ className, variant, ...props }: BadgeProps) { + return ( +
+ ) +} + +export { Badge, badgeVariants } diff --git a/src/components/ui/breadcrumb.tsx b/src/components/ui/breadcrumb.tsx new file mode 100644 index 0000000..08316e3 --- /dev/null +++ b/src/components/ui/breadcrumb.tsx @@ -0,0 +1,115 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { ChevronRight, MoreHorizontal } from "lucide-react" + +import { cn } from "@/src/lib/utils" + +const Breadcrumb = React.forwardRef< + HTMLElement, + React.ComponentPropsWithoutRef<"nav"> & { + separator?: React.ReactNode + } +>(({ ...props }, ref) =>