From a4dff95c0a96f766e0c3aa0b100ce14905b9c6bb Mon Sep 17 00:00:00 2001 From: phoenix Date: Tue, 30 Jul 2024 01:05:12 +0100 Subject: [PATCH 1/2] fix: fix social auth --- .env.sample | 3 + package.json | 42 +- pnpm-lock.yaml | 766 +++++++++--------- src/actions/axios.ts | 14 + src/actions/google.ts | 25 + src/actions/register.ts | 31 + src/app/(auth-routes)/register/index.tsx | 221 +++++ src/app/(auth-routes)/register/page.tsx | 223 +---- src/app/(auth-routes)/socialbuttons.tsx | 19 + src/app/api/auth/[...nextauth]/route.ts | 2 + .../(user-dashboard)/dashboard/page.tsx | 5 + src/auth.config.ts | 54 ++ src/auth.ts | 25 + src/schemas/index.ts | 27 + src/types/index.d.ts | 8 + 15 files changed, 849 insertions(+), 616 deletions(-) create mode 100644 src/actions/axios.ts create mode 100644 src/actions/google.ts create mode 100644 src/actions/register.ts create mode 100644 src/app/(auth-routes)/register/index.tsx create mode 100644 src/app/(auth-routes)/socialbuttons.tsx create mode 100644 src/app/api/auth/[...nextauth]/route.ts create mode 100644 src/app/dashboard/(user-dashboard)/dashboard/page.tsx create mode 100644 src/auth.config.ts create mode 100644 src/auth.ts create mode 100644 src/schemas/index.ts create mode 100644 src/types/index.d.ts diff --git a/.env.sample b/.env.sample index b26c06d8c..c3881ef0a 100644 --- a/.env.sample +++ b/.env.sample @@ -1 +1,4 @@ API_URL=https://your-teams-backend-probe-url.com +GOOGLE_CLIENT_ID= +GOOGLE_CLIENT_SECRET= +AUTH_SECRET= \ No newline at end of file diff --git a/package.json b/package.json index 96bd2a8f4..33566c535 100644 --- a/package.json +++ b/package.json @@ -39,46 +39,48 @@ "@react-email/tailwind": "^0.0.18", "@t3-oss/env-nextjs": "^0.10.1", "@types/jest-axe": "^3.5.9", + "axios": "^1.7.2", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "cookies-next": "^4.2.1", - "framer-motion": "^11.3.8", + "framer-motion": "^11.3.19", "input-otp": "^1.2.4", "jest-axe": "^9.0.0", "jose": "^5.6.3", - "lenis": "^1.1.6", + "lenis": "^1.1.8", "lucide-react": "^0.400.0", "moment": "^2.30.1", "next": "14.2.5", - "next-auth": "5.0.0-beta.19", + "next-auth": "5.0.0-beta.20", "next-nprogress-bar": "^2.3.13", - "react": "^18", + "react": "^18.3.1", "react-day-picker": "^8.10.1", - "react-dom": "^18", + "react-dom": "^18.3.1", "react-email": "2.1.5", "react-hook-form": "^7.52.1", + "react-icons": "^5.2.1", "react-paginate": "^8.2.0", "recharts": "^2.12.7", "sharp": "^0.33.4", - "swiper": "^11.1.5", - "tailwind-merge": "^2.3.0", + "swiper": "^11.1.8", + "tailwind-merge": "^2.4.0", "tailwindcss-animate": "^1.0.7", "zod": "^3.23.8", "zustand": "^4.5.4" }, "devDependencies": { - "@ianvs/prettier-plugin-sort-imports": "^4.3.0", + "@ianvs/prettier-plugin-sort-imports": "^4.3.1", "@mertasan/tailwindcss-variables": "^2.7.0", - "@testing-library/dom": "^10.3.1", - "@testing-library/jest-dom": "^6.4.6", + "@testing-library/dom": "^10.4.0", + "@testing-library/jest-dom": "^6.4.8", "@testing-library/react": "^16.0.0", "@testing-library/user-event": "^14.5.2", - "@types/node": "^20.14.12", + "@types/node": "^20.14.13", "@types/prop-types": "^15.7.12", "@types/react": "^18.3.3", - "@types/react-dom": "^18", - "@typescript-eslint/eslint-plugin": "^7.15.0", - "@typescript-eslint/parser": "^7.15.0", + "@types/react-dom": "^18.3.0", + "@typescript-eslint/eslint-plugin": "^7.18.0", + "@typescript-eslint/parser": "^7.18.0", "@vitejs/plugin-react": "^4.3.1", "@vitest/coverage-istanbul": "^1.6.0", "@vitest/coverage-v8": "^1.6.0", @@ -86,18 +88,18 @@ "eslint": "^8.57.0", "eslint-config-next": "14.2.4", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-react": "^7.34.4", + "eslint-plugin-prettier": "^5.2.1", + "eslint-plugin-react": "^7.35.0", "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-testing-library": "^6.2.2", "eslint-plugin-unicorn": "^54.0.0", "eslint-plugin-unused-imports": "^3.2.0", "eslint-plugin-vitest": "^0.4.1", - "jsdom": "^24.1.0", - "postcss": "^8", - "prettier": "^3.3.2", + "jsdom": "^24.1.1", + "postcss": "^8.4.40", + "prettier": "^3.3.3", "prettier-plugin-tailwindcss": "^0.6.5", - "tailwindcss": "^3.4.1", + "tailwindcss": "^3.4.7", "typescript": "^5.5.4", "vitest": "^1.6.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d1161db10..934d3f2f3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -68,6 +68,9 @@ importers: '@types/jest-axe': specifier: ^3.5.9 version: 3.5.9 + axios: + specifier: ^1.7.2 + version: 1.7.2 class-variance-authority: specifier: ^0.7.0 version: 0.7.0 @@ -78,8 +81,8 @@ importers: specifier: ^4.2.1 version: 4.2.1 framer-motion: - specifier: ^11.3.8 - version: 11.3.17(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^11.3.19 + version: 11.3.19(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) input-otp: specifier: ^1.2.4 version: 1.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -90,8 +93,8 @@ importers: specifier: ^5.6.3 version: 5.6.3 lenis: - specifier: ^1.1.6 - version: 1.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^1.1.8 + version: 1.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) lucide-react: specifier: ^0.400.0 version: 0.400.0(react@18.3.1) @@ -102,19 +105,19 @@ importers: specifier: 14.2.5 version: 14.2.5(@babel/core@7.24.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-auth: - specifier: 5.0.0-beta.19 - version: 5.0.0-beta.19(next@14.2.5(@babel/core@7.24.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + specifier: 5.0.0-beta.20 + version: 5.0.0-beta.20(next@14.2.5(@babel/core@7.24.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) next-nprogress-bar: specifier: ^2.3.13 version: 2.3.13 react: - specifier: ^18 + specifier: ^18.3.1 version: 18.3.1 react-day-picker: specifier: ^8.10.1 version: 8.10.1(date-fns@3.6.0)(react@18.3.1) react-dom: - specifier: ^18 + specifier: ^18.3.1 version: 18.3.1(react@18.3.1) react-email: specifier: 2.1.5 @@ -122,6 +125,9 @@ importers: react-hook-form: specifier: ^7.52.1 version: 7.52.1(react@18.3.1) + react-icons: + specifier: ^5.2.1 + version: 5.2.1(react@18.3.1) react-paginate: specifier: ^8.2.0 version: 8.2.0(react@18.3.1) @@ -132,14 +138,14 @@ importers: specifier: ^0.33.4 version: 0.33.4 swiper: - specifier: ^11.1.5 - version: 11.1.7 + specifier: ^11.1.8 + version: 11.1.8 tailwind-merge: - specifier: ^2.3.0 + specifier: ^2.4.0 version: 2.4.0 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.6) + version: 1.0.7(tailwindcss@3.4.7) zod: specifier: ^3.23.8 version: 3.23.8 @@ -148,16 +154,16 @@ importers: version: 4.5.4(@types/react@18.3.3)(react@18.3.1) devDependencies: '@ianvs/prettier-plugin-sort-imports': - specifier: ^4.3.0 + specifier: ^4.3.1 version: 4.3.1(prettier@3.3.3) '@mertasan/tailwindcss-variables': specifier: ^2.7.0 version: 2.7.0(autoprefixer@10.4.14(postcss@8.4.40))(postcss@8.4.40) '@testing-library/dom': - specifier: ^10.3.1 + specifier: ^10.4.0 version: 10.4.0 '@testing-library/jest-dom': - specifier: ^6.4.6 + specifier: ^6.4.8 version: 6.4.8 '@testing-library/react': specifier: ^16.0.0 @@ -166,8 +172,8 @@ importers: specifier: ^14.5.2 version: 14.5.2(@testing-library/dom@10.4.0) '@types/node': - specifier: ^20.14.12 - version: 20.14.12 + specifier: ^20.14.13 + version: 20.14.13 '@types/prop-types': specifier: ^15.7.12 version: 15.7.12 @@ -175,23 +181,23 @@ importers: specifier: ^18.3.3 version: 18.3.3 '@types/react-dom': - specifier: ^18 + specifier: ^18.3.0 version: 18.3.0 '@typescript-eslint/eslint-plugin': - specifier: ^7.15.0 - version: 7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) + specifier: ^7.18.0 + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) '@typescript-eslint/parser': - specifier: ^7.15.0 - version: 7.17.0(eslint@8.57.0)(typescript@5.5.4) + specifier: ^7.18.0 + version: 7.18.0(eslint@8.57.0)(typescript@5.5.4) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.3.5(@types/node@20.14.12)(terser@5.31.3)) + version: 4.3.1(vite@5.3.5(@types/node@20.14.13)(terser@5.31.3)) '@vitest/coverage-istanbul': specifier: ^1.6.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.14.12)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3)) + version: 1.6.0(vitest@1.6.0(@types/node@20.14.13)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3)) '@vitest/coverage-v8': specifier: ^1.6.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.14.12)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3)) + version: 1.6.0(vitest@1.6.0(@types/node@20.14.13)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3)) '@vitest/ui': specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) @@ -205,10 +211,10 @@ importers: specifier: ^9.1.0 version: 9.1.0(eslint@8.57.0) eslint-plugin-prettier: - specifier: ^5.1.3 + specifier: ^5.2.1 version: 5.2.1(@types/eslint@9.6.0)(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.3) eslint-plugin-react: - specifier: ^7.34.4 + specifier: ^7.35.0 version: 7.35.0(eslint@8.57.0) eslint-plugin-react-hooks: specifier: ^4.6.2 @@ -221,31 +227,31 @@ importers: version: 54.0.0(eslint@8.57.0) eslint-plugin-unused-imports: specifier: ^3.2.0 - version: 3.2.0(@typescript-eslint/eslint-plugin@7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) + version: 3.2.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) eslint-plugin-vitest: specifier: ^0.4.1 - version: 0.4.1(@typescript-eslint/eslint-plugin@7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)(vitest@1.6.0(@types/node@20.14.12)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3)) + version: 0.4.1(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)(vitest@1.6.0(@types/node@20.14.13)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3)) jsdom: - specifier: ^24.1.0 + specifier: ^24.1.1 version: 24.1.1 postcss: - specifier: ^8 + specifier: ^8.4.40 version: 8.4.40 prettier: - specifier: ^3.3.2 + specifier: ^3.3.3 version: 3.3.3 prettier-plugin-tailwindcss: specifier: ^0.6.5 version: 0.6.5(@ianvs/prettier-plugin-sort-imports@4.3.1(prettier@3.3.3))(prettier@3.3.3) tailwindcss: - specifier: ^3.4.1 - version: 3.4.6 + specifier: ^3.4.7 + version: 3.4.7 typescript: specifier: ^5.5.4 version: 5.5.4 vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@20.14.12)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3) + version: 1.6.0(@types/node@20.14.13)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3) packages: @@ -260,8 +266,8 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@auth/core@0.32.0': - resolution: {integrity: sha512-3+ssTScBd+1fd0/fscAyQN1tSygXzuhysuVVzB942ggU4mdfiTbv36P0ccVnExKWYJKvu3E2r3/zxXCCAmTOrg==} + '@auth/core@0.34.2': + resolution: {integrity: sha512-KywHKRgLiF3l7PLyL73fjLSIBe1YNcA6sMeew4yMP6cfCWGXZrkkXd32AjRi1hlJ9nvovUBGZHvbn+LijO6ZeQ==} peerDependencies: '@simplewebauthn/browser': ^9.0.1 '@simplewebauthn/server': ^9.0.2 @@ -278,8 +284,8 @@ packages: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.24.9': - resolution: {integrity: sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==} + '@babel/compat-data@7.25.0': + resolution: {integrity: sha512-P4fwKI2mjEb3ZU5cnMJzvRsRKGBUcs8jvxIoRmr6ufAY9Xk2Bz7JubRTTivkw55c7WQJfTECeqYVa+HZ0FzREg==} engines: {node: '>=6.9.0'} '@babel/core@7.24.5': @@ -290,32 +296,20 @@ packages: resolution: {integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.24.10': - resolution: {integrity: sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==} + '@babel/generator@7.25.0': + resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} engines: {node: '>=6.9.0'} '@babel/helper-compilation-targets@7.24.8': resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==} engines: {node: '>=6.9.0'} - '@babel/helper-environment-visitor@7.24.7': - resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-function-name@7.24.7': - resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-hoist-variables@7.24.7': - resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} - engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.24.7': resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.24.9': - resolution: {integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==} + '@babel/helper-module-transforms@7.25.0': + resolution: {integrity: sha512-bIkOa2ZJYn7FHnepzr5iX9Kmz8FjIz4UKzJ9zhX3dnYuVW0xul9RuR3skBfoLu+FPTQw90EHW9rJsSZhyLQ3fQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -328,10 +322,6 @@ packages: resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.24.7': - resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.8': resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} @@ -344,8 +334,8 @@ packages: resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.8': - resolution: {integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==} + '@babel/helpers@7.25.0': + resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} engines: {node: '>=6.9.0'} '@babel/highlight@7.24.7': @@ -357,8 +347,8 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.24.8': - resolution: {integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==} + '@babel/parser@7.25.0': + resolution: {integrity: sha512-CzdIU9jdP0dg7HdyB+bHvDJGagUv+qtzZt5rYCWwW6tITNqV9odjp6Qu41gkG0ca5UfdDUWrKkiAnHHdGRnOrA==} engines: {node: '>=6.0.0'} hasBin: true @@ -374,20 +364,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.24.8': - resolution: {integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==} + '@babel/runtime@7.25.0': + resolution: {integrity: sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==} engines: {node: '>=6.9.0'} - '@babel/template@7.24.7': - resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} + '@babel/template@7.25.0': + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.24.8': - resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==} + '@babel/traverse@7.25.1': + resolution: {integrity: sha512-LrHHoWq08ZpmmFqBAzN+hUdWwy5zt7FGa/hVwMcOqW6OVtwqaoD5utfuGYU87JYxdZgLUvktAsn37j/sYR9siA==} engines: {node: '>=6.9.0'} - '@babel/types@7.24.9': - resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==} + '@babel/types@7.25.0': + resolution: {integrity: sha512-LcnxQSsd9aXOIgmmSpvZ/1yo46ra2ESYyqLcryaBZOghxy5qqOBjvCWP5JfkI8yl9rlxRgdLTTMCQQRcN2hdCg==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': @@ -1714,88 +1704,88 @@ packages: peerDependencies: react: ^18.2.0 - '@rollup/rollup-android-arm-eabi@4.19.0': - resolution: {integrity: sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==} + '@rollup/rollup-android-arm-eabi@4.19.1': + resolution: {integrity: sha512-XzqSg714++M+FXhHfXpS1tDnNZNpgxxuGZWlRG/jSj+VEPmZ0yg6jV4E0AL3uyBKxO8mO3xtOsP5mQ+XLfrlww==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.19.0': - resolution: {integrity: sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==} + '@rollup/rollup-android-arm64@4.19.1': + resolution: {integrity: sha512-thFUbkHteM20BGShD6P08aungq4irbIZKUNbG70LN8RkO7YztcGPiKTTGZS7Kw+x5h8hOXs0i4OaHwFxlpQN6A==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.19.0': - resolution: {integrity: sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==} + '@rollup/rollup-darwin-arm64@4.19.1': + resolution: {integrity: sha512-8o6eqeFZzVLia2hKPUZk4jdE3zW7LCcZr+MD18tXkgBBid3lssGVAYuox8x6YHoEPDdDa9ixTaStcmx88lio5Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.19.0': - resolution: {integrity: sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==} + '@rollup/rollup-darwin-x64@4.19.1': + resolution: {integrity: sha512-4T42heKsnbjkn7ovYiAdDVRRWZLU9Kmhdt6HafZxFcUdpjlBlxj4wDrt1yFWLk7G4+E+8p2C9tcmSu0KA6auGA==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.19.0': - resolution: {integrity: sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==} + '@rollup/rollup-linux-arm-gnueabihf@4.19.1': + resolution: {integrity: sha512-MXg1xp+e5GhZ3Vit1gGEyoC+dyQUBy2JgVQ+3hUrD9wZMkUw/ywgkpK7oZgnB6kPpGrxJ41clkPPnsknuD6M2Q==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.19.0': - resolution: {integrity: sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==} + '@rollup/rollup-linux-arm-musleabihf@4.19.1': + resolution: {integrity: sha512-DZNLwIY4ftPSRVkJEaxYkq7u2zel7aah57HESuNkUnz+3bZHxwkCUkrfS2IWC1sxK6F2QNIR0Qr/YXw7nkF3Pw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.19.0': - resolution: {integrity: sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==} + '@rollup/rollup-linux-arm64-gnu@4.19.1': + resolution: {integrity: sha512-C7evongnjyxdngSDRRSQv5GvyfISizgtk9RM+z2biV5kY6S/NF/wta7K+DanmktC5DkuaJQgoKGf7KUDmA7RUw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.19.0': - resolution: {integrity: sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==} + '@rollup/rollup-linux-arm64-musl@4.19.1': + resolution: {integrity: sha512-89tFWqxfxLLHkAthAcrTs9etAoBFRduNfWdl2xUs/yLV+7XDrJ5yuXMHptNqf1Zw0UCA3cAutkAiAokYCkaPtw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.19.0': - resolution: {integrity: sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==} + '@rollup/rollup-linux-powerpc64le-gnu@4.19.1': + resolution: {integrity: sha512-PromGeV50sq+YfaisG8W3fd+Cl6mnOOiNv2qKKqKCpiiEke2KiKVyDqG/Mb9GWKbYMHj5a01fq/qlUR28PFhCQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.19.0': - resolution: {integrity: sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==} + '@rollup/rollup-linux-riscv64-gnu@4.19.1': + resolution: {integrity: sha512-/1BmHYh+iz0cNCP0oHCuF8CSiNj0JOGf0jRlSo3L/FAyZyG2rGBuKpkZVH9YF+x58r1jgWxvm1aRg3DHrLDt6A==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.19.0': - resolution: {integrity: sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==} + '@rollup/rollup-linux-s390x-gnu@4.19.1': + resolution: {integrity: sha512-0cYP5rGkQWRZKy9/HtsWVStLXzCF3cCBTRI+qRL8Z+wkYlqN7zrSYm6FuY5Kd5ysS5aH0q5lVgb/WbG4jqXN1Q==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.19.0': - resolution: {integrity: sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==} + '@rollup/rollup-linux-x64-gnu@4.19.1': + resolution: {integrity: sha512-XUXeI9eM8rMP8aGvii/aOOiMvTs7xlCosq9xCjcqI9+5hBxtjDpD+7Abm1ZhVIFE1J2h2VIg0t2DX/gjespC2Q==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.19.0': - resolution: {integrity: sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==} + '@rollup/rollup-linux-x64-musl@4.19.1': + resolution: {integrity: sha512-V7cBw/cKXMfEVhpSvVZhC+iGifD6U1zJ4tbibjjN+Xi3blSXaj/rJynAkCFFQfoG6VZrAiP7uGVzL440Q6Me2Q==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.19.0': - resolution: {integrity: sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==} + '@rollup/rollup-win32-arm64-msvc@4.19.1': + resolution: {integrity: sha512-88brja2vldW/76jWATlBqHEoGjJLRnP0WOEKAUbMcXaAZnemNhlAHSyj4jIwMoP2T750LE9lblvD4e2jXleZsA==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.19.0': - resolution: {integrity: sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==} + '@rollup/rollup-win32-ia32-msvc@4.19.1': + resolution: {integrity: sha512-LdxxcqRVSXi6k6JUrTah1rHuaupoeuiv38du8Mt4r4IPer3kwlTo+RuvfE8KzZ/tL6BhaPlzJ3835i6CxrFIRQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.19.0': - resolution: {integrity: sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==} + '@rollup/rollup-win32-x64-msvc@4.19.1': + resolution: {integrity: sha512-2bIrL28PcK3YCqD9anGxDxamxdiJAxA+l7fWIwM5o8UqNy1t3d1NdAweO2XhA0KTDJ5aH1FsuiT5+7VhtHliXg==} cpu: [x64] os: [win32] - '@rushstack/eslint-patch@1.10.3': - resolution: {integrity: sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==} + '@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==} @@ -2015,8 +2005,8 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/node@20.14.12': - resolution: {integrity: sha512-r7wNXakLeSsGT0H1AU863vS2wa5wBOK4bWMjZz2wj+8nBx+m5PeIn0k8AloSLpRuiwdRQZwarZqHE4FNArPuJQ==} + '@types/node@20.14.13': + resolution: {integrity: sha512-+bHoGiZb8UiQ0+WEtmph2IWQCjIqg8MDZMAV+ppRRhUZnquF5mQkP/9vpSwJClEiSM/C7fZZExPzfU0vJTyp8w==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -2054,8 +2044,8 @@ packages: '@types/yargs@17.0.32': resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} - '@typescript-eslint/eslint-plugin@7.17.0': - resolution: {integrity: sha512-pyiDhEuLM3PuANxH7uNYan1AaFs5XE0zw1hq69JBvGvE7gSuEoQl1ydtEe/XQeoC3GQxLXyOVa5kNOATgM638A==} + '@typescript-eslint/eslint-plugin@7.18.0': + resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -2065,8 +2055,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@7.17.0': - resolution: {integrity: sha512-puiYfGeg5Ydop8eusb/Hy1k7QmOU6X3nvsqCgzrB2K4qMavK//21+PzNE8qeECgNOIoertJPUC1SpegHDI515A==} + '@typescript-eslint/parser@7.18.0': + resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -2089,16 +2079,16 @@ packages: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/scope-manager@7.17.0': - resolution: {integrity: sha512-0P2jTTqyxWp9HiKLu/Vemr2Rg1Xb5B7uHItdVZ6iAenXmPo4SZ86yOPCJwMqpCyaMiEHTNqizHfsbmCFT1x9SA==} + '@typescript-eslint/scope-manager@7.18.0': + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} '@typescript-eslint/scope-manager@7.2.0': resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/type-utils@7.17.0': - resolution: {integrity: sha512-XD3aaBt+orgkM/7Cei0XNEm1vwUxQ958AOLALzPlbPqb8C1G8PZK85tND7Jpe69Wualri81PLU+Zc48GVKIMMA==} + '@typescript-eslint/type-utils@7.18.0': + resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -2111,8 +2101,8 @@ packages: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/types@7.17.0': - resolution: {integrity: sha512-a29Ir0EbyKTKHnZWbNsrc/gqfIBqYPwj3F2M+jWE/9bqfEHg0AMtXzkbUkOG6QgEScxh2+Pz9OXe11jHDnHR7A==} + '@typescript-eslint/types@7.18.0': + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} '@typescript-eslint/types@7.2.0': @@ -2128,8 +2118,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@7.17.0': - resolution: {integrity: sha512-72I3TGq93t2GoSBWI093wmKo0n6/b7O4j9o8U+f65TVD0FS6bI2180X5eGEr8MA8PhKMvYe9myZJquUT2JkCZw==} + '@typescript-eslint/typescript-estree@7.18.0': + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -2152,8 +2142,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@7.17.0': - resolution: {integrity: sha512-r+JFlm5NdB+JXc7aWWZ3fKSm1gn0pkswEwIYsrGPdsT2GjsRATAKXiNtp3vgAAO1xZhX8alIOEQnNMl3kbTgJw==} + '@typescript-eslint/utils@7.18.0': + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -2162,8 +2152,8 @@ packages: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/visitor-keys@7.17.0': - resolution: {integrity: sha512-RVGC9UhPOCsfCdI9pU++K4nD7to+jTcMIbXTSOcrLqUEW6gF2pU1UUbYJKc9cvcRSK1UDeMJ7pdMxf4bhMpV/A==} + '@typescript-eslint/visitor-keys@7.18.0': + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} '@typescript-eslint/visitor-keys@7.2.0': @@ -2406,10 +2396,17 @@ packages: resolution: {integrity: sha512-LEUDjgmdJoA3LqklSTwKYqkjcZ4HKc4ddIYGSAiSkr46NTjzg2L9RNB+lekO9P7Dlpa87+hBtzc2Fzn/+GUWMQ==} engines: {node: '>=4'} + axe-core@4.10.0: + resolution: {integrity: sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==} + engines: {node: '>=4'} + axe-core@4.9.1: resolution: {integrity: sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==} engines: {node: '>=4'} + axios@1.7.2: + resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} + axobject-query@3.1.1: resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} @@ -2478,8 +2475,8 @@ packages: caniuse-lite@1.0.30001643: resolution: {integrity: sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==} - chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + chai@4.5.0: + resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} engines: {node: '>=4'} chalk@2.4.2: @@ -2721,8 +2718,8 @@ packages: supports-color: optional: true - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -2833,8 +2830,8 @@ packages: engines: {node: '>=14'} hasBin: true - electron-to-chromium@1.5.1: - resolution: {integrity: sha512-FKbOCOQ5QRB3VlIbl1LZQefWIYwszlBloaXcY2rbfpu9ioJnNh3TK03YtIDKDo3WKBi8u+YV4+Fn2CkEozgf4w==} + electron-to-chromium@1.5.2: + resolution: {integrity: sha512-kc4r3U3V3WLaaZqThjYz/Y6z8tJe+7K0bbjUVo3i+LWIypVdMx5nXCkwRe6SWbY6ILqLdc1rKcKmr3HoH7wjSQ==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -3189,6 +3186,15 @@ packages: flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -3214,8 +3220,8 @@ packages: react-dom: optional: true - framer-motion@11.3.17: - resolution: {integrity: sha512-LZcckvZL8Rjod03bud8LQcp+R0PLmWIlOSu+NVc+v6Uh43fQr4IBsEAX7sSn7CdBQ1L0fZ/IqSXZVPnGFSMxHw==} + framer-motion@11.3.19: + resolution: {integrity: sha512-+luuQdx4AsamyMcvzW7jUAJYIKvQs1KE7oHvKkW3eNzmo0S+3PSDWjBuQkuIP9WyneGnKGMLUSuHs8OP7jKpQg==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 @@ -3732,8 +3738,8 @@ packages: leac@0.6.0: resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} - lenis@1.1.6: - resolution: {integrity: sha512-MQE2Pz49inEsT/H6enEfYeMysH/Yl6s9Z91th1KAm3RxMDzN0YOEncZzR3o6uvJH44yCCUDnr8ILMvT8o689RA==} + lenis@1.1.8: + resolution: {integrity: sha512-oGqnhuc+yqkNb2Hr8rVmmRsElHHwsqYlukxuaQtRMZLIDhsnDI0gZZIuEwVwMPel5fG3t+kd6mk0K3O/Phj6rw==} peerDependencies: react: '>=17.0.0' react-dom: '>=17.0.0' @@ -3806,8 +3812,8 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string@0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} magicast@0.3.4: resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} @@ -3913,12 +3919,12 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - next-auth@5.0.0-beta.19: - resolution: {integrity: sha512-YHu1igcAxZPh8ZB7GIM93dqgY6gcAzq66FOhQFheAdOx1raxNcApt05nNyNCSB6NegSiyJ4XOPsaNow4pfDmsg==} + next-auth@5.0.0-beta.20: + resolution: {integrity: sha512-+48SjV9k9AtUU3JbEIa4PXNjKIewfFjVGL7Xs2RKkuQ5QqegDNIQiIG8sLk6/qo7RTScQYIGKgeQ5IuQRtrTQg==} peerDependencies: '@simplewebauthn/browser': ^9.0.1 '@simplewebauthn/server': ^9.0.2 - next: ^14 || ^15.0.0-0 + next: ^14.0.0-0 || ^15.0.0-0 nodemailer: ^6.6.5 react: ^18.2.0 || ^19.0.0-0 peerDependenciesMeta: @@ -4307,6 +4313,9 @@ packages: proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} @@ -4345,6 +4354,11 @@ packages: peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 + react-icons@5.2.1: + resolution: {integrity: sha512-zdbW5GstTzXaVKvGSyTaBalt7HSfuK5ovrzlpyiWHAFXndXTdd/1hdDHI4xBM1Mn7YriT6aqESucFl9kEXzrdw==} + peerDependencies: + react: '*' + react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -4495,8 +4509,8 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup@4.19.0: - resolution: {integrity: sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==} + rollup@4.19.1: + resolution: {integrity: sha512-K5vziVlg7hTpYfFBI+91zHBEMo6jafYXpkMlqZjg7/zhIG9iHqazBf4xz9AVdjS9BruRn280ROqLI7G3OFRIlw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -4761,8 +4775,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - swiper@11.1.7: - resolution: {integrity: sha512-2EpQvhgKb+DNbi8/i9uRXhddivcMZQxca341t2NZYV1xroCR2p4YtYd3azuqRQ4OEBGcG4nv3aN24O80bMipow==} + swiper@11.1.8: + resolution: {integrity: sha512-sBFp7fA+IfZ/7BMcg8/JSEqDD1qZXBUyliT76yk3zIYVu2fMwFVAghhAJ9vBM5tJUtHW5qcD0pmeEGQs1EK14w==} engines: {node: '>= 4.7.0'} symbol-tree@3.2.4: @@ -4788,8 +4802,8 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - tailwindcss@3.4.6: - resolution: {integrity: sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==} + tailwindcss@3.4.7: + resolution: {integrity: sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -5105,8 +5119,8 @@ packages: which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + which-builtin-type@1.1.4: + resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} engines: {node: '>= 0.4'} which-collection@1.0.2: @@ -5222,7 +5236,7 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@auth/core@0.32.0': + '@auth/core@0.34.2': dependencies: '@panva/hkdf': 1.2.1 '@types/cookie': 0.6.0 @@ -5237,22 +5251,22 @@ snapshots: '@babel/highlight': 7.24.7 picocolors: 1.0.1 - '@babel/compat-data@7.24.9': {} + '@babel/compat-data@7.25.0': {} '@babel/core@7.24.5': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.10 + '@babel/generator': 7.25.0 '@babel/helper-compilation-targets': 7.24.8 - '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.5) - '@babel/helpers': 7.24.8 + '@babel/helper-module-transforms': 7.25.0(@babel/core@7.24.5) + '@babel/helpers': 7.25.0 '@babel/parser': 7.24.5 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.1 + '@babel/types': 7.25.0 convert-source-map: 2.0.0 - debug: 4.3.5 + debug: 4.3.6 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -5263,76 +5277,61 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.10 + '@babel/generator': 7.25.0 '@babel/helper-compilation-targets': 7.24.8 - '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) - '@babel/helpers': 7.24.8 - '@babel/parser': 7.24.8 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/helper-module-transforms': 7.25.0(@babel/core@7.24.9) + '@babel/helpers': 7.25.0 + '@babel/parser': 7.25.0 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.1 + '@babel/types': 7.25.0 convert-source-map: 2.0.0 - debug: 4.3.5 + debug: 4.3.6 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.24.10': + '@babel/generator@7.25.0': dependencies: - '@babel/types': 7.24.9 + '@babel/types': 7.25.0 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 '@babel/helper-compilation-targets@7.24.8': dependencies: - '@babel/compat-data': 7.24.9 + '@babel/compat-data': 7.25.0 '@babel/helper-validator-option': 7.24.8 browserslist: 4.23.2 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-environment-visitor@7.24.7': - dependencies: - '@babel/types': 7.24.9 - - '@babel/helper-function-name@7.24.7': - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.9 - - '@babel/helper-hoist-variables@7.24.7': - dependencies: - '@babel/types': 7.24.9 - '@babel/helper-module-imports@7.24.7': dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/traverse': 7.25.1 + '@babel/types': 7.25.0 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.24.9(@babel/core@7.24.5)': + '@babel/helper-module-transforms@7.25.0(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.1 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.24.9(@babel/core@7.24.9)': + '@babel/helper-module-transforms@7.25.0(@babel/core@7.24.9)': dependencies: '@babel/core': 7.24.9 - '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.1 transitivePeerDependencies: - supports-color @@ -5340,25 +5339,21 @@ snapshots: '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/traverse': 7.25.1 + '@babel/types': 7.25.0 transitivePeerDependencies: - supports-color - '@babel/helper-split-export-declaration@7.24.7': - dependencies: - '@babel/types': 7.24.9 - '@babel/helper-string-parser@7.24.8': {} '@babel/helper-validator-identifier@7.24.7': {} '@babel/helper-validator-option@7.24.8': {} - '@babel/helpers@7.24.8': + '@babel/helpers@7.25.0': dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.9 + '@babel/template': 7.25.0 + '@babel/types': 7.25.0 '@babel/highlight@7.24.7': dependencies: @@ -5369,11 +5364,11 @@ snapshots: '@babel/parser@7.24.5': dependencies: - '@babel/types': 7.24.9 + '@babel/types': 7.25.0 - '@babel/parser@7.24.8': + '@babel/parser@7.25.0': dependencies: - '@babel/types': 7.24.9 + '@babel/types': 7.25.0 '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.9)': dependencies: @@ -5385,32 +5380,29 @@ snapshots: '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.8 - '@babel/runtime@7.24.8': + '@babel/runtime@7.25.0': dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.24.7': + '@babel/template@7.25.0': dependencies: '@babel/code-frame': 7.24.7 - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 + '@babel/parser': 7.25.0 + '@babel/types': 7.25.0 - '@babel/traverse@7.24.8': + '@babel/traverse@7.25.1': dependencies: '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.10 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 - debug: 4.3.5 + '@babel/generator': 7.25.0 + '@babel/parser': 7.25.0 + '@babel/template': 7.25.0 + '@babel/types': 7.25.0 + debug: 4.3.6 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.24.9': + '@babel/types@7.25.0': dependencies: '@babel/helper-string-parser': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 @@ -5581,7 +5573,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.5 + debug: 4.3.6 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -5595,7 +5587,7 @@ snapshots: '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.5 + debug: 4.3.6 espree: 10.1.0 globals: 14.0.0 ignore: 5.3.1 @@ -5632,7 +5624,7 @@ snapshots: '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 + debug: 4.3.6 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -5644,10 +5636,10 @@ snapshots: '@ianvs/prettier-plugin-sort-imports@4.3.1(prettier@3.3.3)': dependencies: '@babel/core': 7.24.9 - '@babel/generator': 7.24.10 - '@babel/parser': 7.24.8 - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 + '@babel/generator': 7.25.0 + '@babel/parser': 7.25.0 + '@babel/traverse': 7.25.1 + '@babel/types': 7.25.0 prettier: 3.3.3 semver: 7.6.3 transitivePeerDependencies: @@ -5752,7 +5744,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.14.12 + '@types/node': 20.14.13 '@types/yargs': 17.0.32 chalk: 4.1.2 @@ -6010,7 +6002,7 @@ snapshots: '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 react: 18.3.1 optionalDependencies: '@types/react': 18.3.3 @@ -6411,7 +6403,7 @@ snapshots: '@radix-ui/react-slot@1.0.2(@types/react@18.3.3)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) react: 18.3.1 optionalDependencies: @@ -6811,55 +6803,55 @@ snapshots: dependencies: react: 18.3.1 - '@rollup/rollup-android-arm-eabi@4.19.0': + '@rollup/rollup-android-arm-eabi@4.19.1': optional: true - '@rollup/rollup-android-arm64@4.19.0': + '@rollup/rollup-android-arm64@4.19.1': optional: true - '@rollup/rollup-darwin-arm64@4.19.0': + '@rollup/rollup-darwin-arm64@4.19.1': optional: true - '@rollup/rollup-darwin-x64@4.19.0': + '@rollup/rollup-darwin-x64@4.19.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.19.0': + '@rollup/rollup-linux-arm-gnueabihf@4.19.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.19.0': + '@rollup/rollup-linux-arm-musleabihf@4.19.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.19.0': + '@rollup/rollup-linux-arm64-gnu@4.19.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.19.0': + '@rollup/rollup-linux-arm64-musl@4.19.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.19.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.19.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.19.0': + '@rollup/rollup-linux-riscv64-gnu@4.19.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.19.0': + '@rollup/rollup-linux-s390x-gnu@4.19.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.19.0': + '@rollup/rollup-linux-x64-gnu@4.19.1': optional: true - '@rollup/rollup-linux-x64-musl@4.19.0': + '@rollup/rollup-linux-x64-musl@4.19.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.19.0': + '@rollup/rollup-win32-arm64-msvc@4.19.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.19.0': + '@rollup/rollup-win32-ia32-msvc@4.19.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.19.0': + '@rollup/rollup-win32-x64-msvc@4.19.1': optional: true - '@rushstack/eslint-patch@1.10.3': {} + '@rushstack/eslint-patch@1.10.4': {} '@selderee/plugin-htmlparser2@0.11.0': dependencies: @@ -6948,7 +6940,7 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: '@babel/code-frame': 7.24.7 - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -6959,7 +6951,7 @@ snapshots: '@testing-library/jest-dom@6.4.8': dependencies: '@adobe/css-tools': 4.4.0 - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 aria-query: 5.3.0 chalk: 3.0.0 css.escape: 1.5.1 @@ -6969,7 +6961,7 @@ snapshots: '@testing-library/react@16.0.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 '@testing-library/dom': 10.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6985,24 +6977,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 + '@babel/parser': 7.25.0 + '@babel/types': 7.25.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.24.9 + '@babel/types': 7.25.0 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 + '@babel/parser': 7.25.0 + '@babel/types': 7.25.0 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.24.9 + '@babel/types': 7.25.0 '@types/cookie@0.4.1': {} @@ -7010,7 +7002,7 @@ snapshots: '@types/cors@2.8.17': dependencies: - '@types/node': 20.14.12 + '@types/node': 20.14.13 '@types/d3-array@3.2.1': {} @@ -7072,7 +7064,7 @@ snapshots: '@types/json5@0.0.29': {} - '@types/node@20.14.12': + '@types/node@20.14.13': dependencies: undici-types: 5.26.5 @@ -7105,7 +7097,7 @@ snapshots: '@types/webpack@5.28.5(@swc/core@1.3.101(@swc/helpers@0.5.5))(esbuild@0.19.11)': dependencies: - '@types/node': 20.14.12 + '@types/node': 20.14.13 tapable: 2.2.1 webpack: 5.93.0(@swc/core@1.3.101(@swc/helpers@0.5.5))(esbuild@0.19.11) transitivePeerDependencies: @@ -7120,14 +7112,14 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 7.17.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/scope-manager': 7.17.0 - '@typescript-eslint/type-utils': 7.17.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/utils': 7.17.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 7.17.0 + '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 7.18.0 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 @@ -7138,13 +7130,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4)': dependencies: - '@typescript-eslint/scope-manager': 7.17.0 - '@typescript-eslint/types': 7.17.0 - '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 7.17.0 - debug: 4.3.5 + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.6 eslint: 8.57.0 optionalDependencies: typescript: 5.5.4 @@ -7157,7 +7149,7 @@ snapshots: '@typescript-eslint/types': 7.2.0 '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.4) '@typescript-eslint/visitor-keys': 7.2.0 - debug: 4.3.5 + debug: 4.3.6 eslint: 8.57.0 optionalDependencies: typescript: 5.5.4 @@ -7169,21 +7161,21 @@ snapshots: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - '@typescript-eslint/scope-manager@7.17.0': + '@typescript-eslint/scope-manager@7.18.0': dependencies: - '@typescript-eslint/types': 7.17.0 - '@typescript-eslint/visitor-keys': 7.17.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 '@typescript-eslint/scope-manager@7.2.0': dependencies: '@typescript-eslint/types': 7.2.0 '@typescript-eslint/visitor-keys': 7.2.0 - '@typescript-eslint/type-utils@7.17.0(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/type-utils@7.18.0(eslint@8.57.0)(typescript@5.5.4)': dependencies: - '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4) - '@typescript-eslint/utils': 7.17.0(eslint@8.57.0)(typescript@5.5.4) - debug: 4.3.5 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) + debug: 4.3.6 eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -7193,7 +7185,7 @@ snapshots: '@typescript-eslint/types@5.62.0': {} - '@typescript-eslint/types@7.17.0': {} + '@typescript-eslint/types@7.18.0': {} '@typescript-eslint/types@7.2.0': {} @@ -7201,7 +7193,7 @@ snapshots: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.5 + debug: 4.3.6 globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.3 @@ -7211,11 +7203,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.17.0(typescript@5.5.4)': + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 7.17.0 - '@typescript-eslint/visitor-keys': 7.17.0 - debug: 4.3.5 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.3.6 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -7230,7 +7222,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.2.0 '@typescript-eslint/visitor-keys': 7.2.0 - debug: 4.3.5 + debug: 4.3.6 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 @@ -7256,12 +7248,12 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@7.17.0(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/utils@7.18.0(eslint@8.57.0)(typescript@5.5.4)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 7.17.0 - '@typescript-eslint/types': 7.17.0 - '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) eslint: 8.57.0 transitivePeerDependencies: - supports-color @@ -7272,9 +7264,9 @@ snapshots: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@7.17.0': + '@typescript-eslint/visitor-keys@7.18.0': dependencies: - '@typescript-eslint/types': 7.17.0 + '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 '@typescript-eslint/visitor-keys@7.2.0': @@ -7284,20 +7276,20 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-react@4.3.1(vite@5.3.5(@types/node@20.14.12)(terser@5.31.3))': + '@vitejs/plugin-react@4.3.1(vite@5.3.5(@types/node@20.14.13)(terser@5.31.3))': dependencies: '@babel/core': 7.24.9 '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.9) '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.9) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.3.5(@types/node@20.14.12)(terser@5.31.3) + vite: 5.3.5(@types/node@20.14.13)(terser@5.31.3) transitivePeerDependencies: - supports-color - '@vitest/coverage-istanbul@1.6.0(vitest@1.6.0(@types/node@20.14.12)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3))': + '@vitest/coverage-istanbul@1.6.0(vitest@1.6.0(@types/node@20.14.13)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3))': dependencies: - debug: 4.3.5 + debug: 4.3.6 istanbul-lib-coverage: 3.2.2 istanbul-lib-instrument: 6.0.3 istanbul-lib-report: 3.0.1 @@ -7306,26 +7298,26 @@ snapshots: magicast: 0.3.4 picocolors: 1.0.1 test-exclude: 6.0.0 - vitest: 1.6.0(@types/node@20.14.12)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3) + vitest: 1.6.0(@types/node@20.14.13)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.12)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3))': + '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.14.13)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 - debug: 4.3.5 + debug: 4.3.6 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.1.7 - magic-string: 0.30.10 + magic-string: 0.30.11 magicast: 0.3.4 picocolors: 1.0.1 std-env: 3.7.0 strip-literal: 2.1.0 test-exclude: 6.0.0 - vitest: 1.6.0(@types/node@20.14.12)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3) + vitest: 1.6.0(@types/node@20.14.13)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3) transitivePeerDependencies: - supports-color @@ -7333,7 +7325,7 @@ snapshots: dependencies: '@vitest/spy': 1.6.0 '@vitest/utils': 1.6.0 - chai: 4.4.1 + chai: 4.5.0 '@vitest/runner@1.6.0': dependencies: @@ -7343,7 +7335,7 @@ snapshots: '@vitest/snapshot@1.6.0': dependencies: - magic-string: 0.30.10 + magic-string: 0.30.11 pathe: 1.1.2 pretty-format: 29.7.0 @@ -7360,7 +7352,7 @@ snapshots: pathe: 1.1.2 picocolors: 1.0.1 sirv: 2.0.4 - vitest: 1.6.0(@types/node@20.14.12)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3) + vitest: 1.6.0(@types/node@20.14.13)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3) '@vitest/utils@1.6.0': dependencies: @@ -7472,7 +7464,7 @@ snapshots: agent-base@7.1.1: dependencies: - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -7625,8 +7617,18 @@ snapshots: axe-core@3.5.6: {} + axe-core@4.10.0: {} + axe-core@4.9.1: {} + axios@1.7.2: + dependencies: + follow-redirects: 1.15.6 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + axobject-query@3.1.1: dependencies: deep-equal: 2.2.3 @@ -7661,7 +7663,7 @@ snapshots: browserslist@4.23.2: dependencies: caniuse-lite: 1.0.30001643 - electron-to-chromium: 1.5.1 + electron-to-chromium: 1.5.2 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.2) @@ -7694,7 +7696,7 @@ snapshots: caniuse-lite@1.0.30001643: {} - chai@4.4.1: + chai@4.5.0: dependencies: assertion-error: 1.1.0 check-error: 1.0.3 @@ -7930,7 +7932,7 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.5: + debug@4.3.6: dependencies: ms: 2.1.2 @@ -8015,7 +8017,7 @@ snapshots: dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 csstype: 3.1.3 dom-serializer@2.0.0: @@ -8047,7 +8049,7 @@ snapshots: minimatch: 9.0.1 semver: 7.6.3 - electron-to-chromium@1.5.1: {} + electron-to-chromium@1.5.2: {} emoji-regex@8.0.0: {} @@ -8056,7 +8058,7 @@ snapshots: engine.io-client@6.5.4: dependencies: '@socket.io/component-emitter': 3.1.2 - debug: 4.3.5 + debug: 4.3.6 engine.io-parser: 5.2.3 ws: 8.17.1 xmlhttprequest-ssl: 2.0.0 @@ -8071,12 +8073,12 @@ snapshots: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 20.14.12 + '@types/node': 20.14.13 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 cors: 2.8.5 - debug: 4.3.5 + debug: 4.3.6 engine.io-parser: 5.2.3 ws: 8.17.1 transitivePeerDependencies: @@ -8264,12 +8266,12 @@ snapshots: eslint-config-next@14.2.4(eslint@8.57.0)(typescript@5.5.4): dependencies: '@next/eslint-plugin-next': 14.2.4 - '@rushstack/eslint-patch': 1.10.3 + '@rushstack/eslint-patch': 1.10.4 '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) eslint-plugin-jsx-a11y: 6.9.0(eslint@8.57.0) eslint-plugin-react: 7.35.0(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) @@ -8302,11 +8304,11 @@ snapshots: eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): dependencies: - debug: 4.3.5 + debug: 4.3.6 enhanced-resolve: 5.17.1 eslint: 8.57.0 eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) fast-glob: 3.3.2 get-tsconfig: 4.7.6 is-core-module: 2.15.0 @@ -8317,11 +8319,11 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.17.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: @@ -8338,7 +8340,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -8348,7 +8350,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.15.0 is-glob: 4.0.3 @@ -8359,7 +8361,7 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.17.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.5.4) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -8371,7 +8373,7 @@ snapshots: array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 ast-types-flow: 0.0.8 - axe-core: 4.9.1 + axe-core: 4.10.0 axobject-query: 3.1.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 @@ -8456,20 +8458,20 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0): + eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0): dependencies: eslint: 8.57.0 eslint-rule-composer: 0.3.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) - eslint-plugin-vitest@0.4.1(@typescript-eslint/eslint-plugin@7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)(vitest@1.6.0(@types/node@20.14.12)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3)): + eslint-plugin-vitest@0.4.1(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)(vitest@1.6.0(@types/node@20.14.13)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3)): dependencies: - '@typescript-eslint/utils': 7.17.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) - vitest: 1.6.0(@types/node@20.14.12)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) + vitest: 1.6.0(@types/node@20.14.13)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3) transitivePeerDependencies: - supports-color - typescript @@ -8503,7 +8505,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.5 + debug: 4.3.6 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -8639,6 +8641,8 @@ snapshots: flatted@3.3.1: {} + follow-redirects@1.15.6: {} + for-each@0.3.3: dependencies: is-callable: 1.2.7 @@ -8664,7 +8668,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - framer-motion@11.3.17(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + framer-motion@11.3.19(@emotion/is-prop-valid@0.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: tslib: 2.6.3 optionalDependencies: @@ -8836,14 +8840,14 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -9020,7 +9024,7 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.24.9 - '@babel/parser': 7.24.8 + '@babel/parser': 7.25.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.6.3 @@ -9036,7 +9040,7 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: '@jridgewell/trace-mapping': 0.3.25 - debug: 4.3.5 + debug: 4.3.6 istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -9111,7 +9115,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.14.12 + '@types/node': 20.14.13 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -9119,7 +9123,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.14.12 + '@types/node': 20.14.13 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -9212,7 +9216,7 @@ snapshots: leac@0.6.0: {} - lenis@1.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + lenis@1.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@darkroom.engineering/tempus': 0.0.46 optionalDependencies: @@ -9274,14 +9278,14 @@ snapshots: lz-string@1.5.0: {} - magic-string@0.30.10: + magic-string@0.30.11: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 magicast@0.3.4: dependencies: - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 + '@babel/parser': 7.25.0 + '@babel/types': 7.25.0 source-map-js: 1.2.0 make-dir@4.0.0: @@ -9365,9 +9369,9 @@ snapshots: neo-async@2.6.2: {} - next-auth@5.0.0-beta.19(next@14.2.5(@babel/core@7.24.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + next-auth@5.0.0-beta.20(next@14.2.5(@babel/core@7.24.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: - '@auth/core': 0.32.0 + '@auth/core': 0.34.2 next: 14.2.5(@babel/core@7.24.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -9715,6 +9719,8 @@ snapshots: proto-list@1.2.4: {} + proxy-from-env@1.1.0: {} + psl@1.9.0: {} punycode@2.3.1: {} @@ -9797,6 +9803,10 @@ snapshots: dependencies: react: 18.3.1 + react-icons@5.2.1(react@18.3.1): + dependencies: + react: 18.3.1 + react-is@16.13.1: {} react-is@17.0.2: {} @@ -9880,7 +9890,7 @@ snapshots: react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -9948,7 +9958,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 globalthis: 1.0.4 - which-builtin-type: 1.1.3 + which-builtin-type: 1.1.4 regenerator-runtime@0.14.1: {} @@ -9994,26 +10004,26 @@ snapshots: dependencies: glob: 7.2.3 - rollup@4.19.0: + rollup@4.19.1: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.19.0 - '@rollup/rollup-android-arm64': 4.19.0 - '@rollup/rollup-darwin-arm64': 4.19.0 - '@rollup/rollup-darwin-x64': 4.19.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.19.0 - '@rollup/rollup-linux-arm-musleabihf': 4.19.0 - '@rollup/rollup-linux-arm64-gnu': 4.19.0 - '@rollup/rollup-linux-arm64-musl': 4.19.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.19.0 - '@rollup/rollup-linux-riscv64-gnu': 4.19.0 - '@rollup/rollup-linux-s390x-gnu': 4.19.0 - '@rollup/rollup-linux-x64-gnu': 4.19.0 - '@rollup/rollup-linux-x64-musl': 4.19.0 - '@rollup/rollup-win32-arm64-msvc': 4.19.0 - '@rollup/rollup-win32-ia32-msvc': 4.19.0 - '@rollup/rollup-win32-x64-msvc': 4.19.0 + '@rollup/rollup-android-arm-eabi': 4.19.1 + '@rollup/rollup-android-arm64': 4.19.1 + '@rollup/rollup-darwin-arm64': 4.19.1 + '@rollup/rollup-darwin-x64': 4.19.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.19.1 + '@rollup/rollup-linux-arm-musleabihf': 4.19.1 + '@rollup/rollup-linux-arm64-gnu': 4.19.1 + '@rollup/rollup-linux-arm64-musl': 4.19.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.19.1 + '@rollup/rollup-linux-riscv64-gnu': 4.19.1 + '@rollup/rollup-linux-s390x-gnu': 4.19.1 + '@rollup/rollup-linux-x64-gnu': 4.19.1 + '@rollup/rollup-linux-x64-musl': 4.19.1 + '@rollup/rollup-win32-arm64-msvc': 4.19.1 + '@rollup/rollup-win32-ia32-msvc': 4.19.1 + '@rollup/rollup-win32-x64-msvc': 4.19.1 fsevents: 2.3.3 rrweb-cssom@0.6.0: {} @@ -10144,7 +10154,7 @@ snapshots: socket.io-adapter@2.5.5: dependencies: - debug: 4.3.5 + debug: 4.3.6 ws: 8.17.1 transitivePeerDependencies: - bufferutil @@ -10154,7 +10164,7 @@ snapshots: socket.io-client@4.7.3: dependencies: '@socket.io/component-emitter': 3.1.2 - debug: 4.3.5 + debug: 4.3.6 engine.io-client: 6.5.4 socket.io-parser: 4.2.4 transitivePeerDependencies: @@ -10165,7 +10175,7 @@ snapshots: socket.io-parser@4.2.4: dependencies: '@socket.io/component-emitter': 3.1.2 - debug: 4.3.5 + debug: 4.3.6 transitivePeerDependencies: - supports-color @@ -10174,7 +10184,7 @@ snapshots: accepts: 1.3.8 base64id: 2.0.0 cors: 2.8.5 - debug: 4.3.5 + debug: 4.3.6 engine.io: 6.5.5 socket.io-adapter: 2.5.5 socket.io-parser: 4.2.4 @@ -10344,7 +10354,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - swiper@11.1.7: {} + swiper@11.1.8: {} symbol-tree@3.2.4: {} @@ -10355,13 +10365,13 @@ snapshots: tailwind-merge@2.2.0: dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.25.0 tailwind-merge@2.4.0: {} - tailwindcss-animate@1.0.7(tailwindcss@3.4.6): + tailwindcss-animate@1.0.7(tailwindcss@3.4.7): dependencies: - tailwindcss: 3.4.6 + tailwindcss: 3.4.7 tailwindcss@3.4.0: dependencies: @@ -10390,7 +10400,7 @@ snapshots: transitivePeerDependencies: - ts-node - tailwindcss@3.4.6: + tailwindcss@3.4.7: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -10641,13 +10651,13 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite-node@1.6.0(@types/node@20.14.12)(terser@5.31.3): + vite-node@1.6.0(@types/node@20.14.13)(terser@5.31.3): dependencies: cac: 6.7.14 - debug: 4.3.5 + debug: 4.3.6 pathe: 1.1.2 picocolors: 1.0.1 - vite: 5.3.5(@types/node@20.14.12)(terser@5.31.3) + vite: 5.3.5(@types/node@20.14.13)(terser@5.31.3) transitivePeerDependencies: - '@types/node' - less @@ -10658,17 +10668,17 @@ snapshots: - supports-color - terser - vite@5.3.5(@types/node@20.14.12)(terser@5.31.3): + vite@5.3.5(@types/node@20.14.13)(terser@5.31.3): dependencies: esbuild: 0.21.5 postcss: 8.4.40 - rollup: 4.19.0 + rollup: 4.19.1 optionalDependencies: - '@types/node': 20.14.12 + '@types/node': 20.14.13 fsevents: 2.3.3 terser: 5.31.3 - vitest@1.6.0(@types/node@20.14.12)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3): + vitest@1.6.0(@types/node@20.14.13)(@vitest/ui@1.6.0)(jsdom@24.1.1)(terser@5.31.3): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 @@ -10676,22 +10686,22 @@ snapshots: '@vitest/spy': 1.6.0 '@vitest/utils': 1.6.0 acorn-walk: 8.3.3 - chai: 4.4.1 - debug: 4.3.5 + chai: 4.5.0 + debug: 4.3.6 execa: 8.0.1 local-pkg: 0.5.0 - magic-string: 0.30.10 + magic-string: 0.30.11 pathe: 1.1.2 picocolors: 1.0.1 std-env: 3.7.0 strip-literal: 2.1.0 tinybench: 2.8.0 tinypool: 0.8.4 - vite: 5.3.5(@types/node@20.14.12)(terser@5.31.3) - vite-node: 1.6.0(@types/node@20.14.12)(terser@5.31.3) + vite: 5.3.5(@types/node@20.14.13)(terser@5.31.3) + vite-node: 1.6.0(@types/node@20.14.13)(terser@5.31.3) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 20.14.12 + '@types/node': 20.14.13 '@vitest/ui': 1.6.0(vitest@1.6.0) jsdom: 24.1.1 transitivePeerDependencies: @@ -10770,7 +10780,7 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 - which-builtin-type@1.1.3: + which-builtin-type@1.1.4: dependencies: function.prototype.name: 1.1.6 has-tostringtag: 1.0.2 diff --git a/src/actions/axios.ts b/src/actions/axios.ts new file mode 100644 index 000000000..31daf58b5 --- /dev/null +++ b/src/actions/axios.ts @@ -0,0 +1,14 @@ +import axios, { AxiosInstance } from "axios"; + +const Calls = (baseURL?: string): AxiosInstance => { + return axios.create({ + baseURL, + headers: { + "Content-Type": "application/json; charset=UTF-8", + "Access-Control-Allow-Origin": "*", + credentials: "include", + }, + }); +}; + +export default Calls; diff --git a/src/actions/google.ts b/src/actions/google.ts new file mode 100644 index 000000000..85a72549d --- /dev/null +++ b/src/actions/google.ts @@ -0,0 +1,25 @@ +"use server"; + +import Calls from "./axios"; + +const $http = Calls(process.env.API_URL); + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const GOOGLE_SIGN_IN = async (profile: any) => { + try { + // eslint-disable-next-line unicorn/prevent-abbreviations + const res = await $http.post("/auth/google", profile); + + return { + user: res.data, + }; + // eslint-disable-next-line unicorn/catch-error-name, @typescript-eslint/no-explicit-any, unicorn/prevent-abbreviations + } catch (e: any) { + return { + message: e?.response?.data.message, + status: e?.response?.status, + }; + } +}; + +export { GOOGLE_SIGN_IN }; diff --git a/src/actions/register.ts b/src/actions/register.ts new file mode 100644 index 000000000..79d1d5845 --- /dev/null +++ b/src/actions/register.ts @@ -0,0 +1,31 @@ +"use server"; + +import * as z from "zod"; + +import { RegisterSchema } from "~/schemas"; +import Calls from "./axios"; + +const $http = Calls(process.env.API_URL); + +export const CreateUser = async (values: z.infer) => { + const validatedFields = RegisterSchema.safeParse(values); + if (!validatedFields.success) { + return { + error: "Login Failed. Please check your email and password.", + }; + } + try { + // eslint-disable-next-line unicorn/prevent-abbreviations + const res = await $http.post("/auth/register", validatedFields.data); + return { + user: res.data.newUser, + access_token: res.data.access_token, + }; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } catch (error: any) { + return { + message: error?.response?.data.message, + status: error?.response?.status, + }; + } +}; diff --git a/src/app/(auth-routes)/register/index.tsx b/src/app/(auth-routes)/register/index.tsx new file mode 100644 index 000000000..266aca844 --- /dev/null +++ b/src/app/(auth-routes)/register/index.tsx @@ -0,0 +1,221 @@ +"use client"; + +import { zodResolver } from "@hookform/resolvers/zod"; +import { DialogContent, DialogTitle } from "@radix-ui/react-dialog"; +import Link from "next/link"; +import { useState } from "react"; +import { useForm } from "react-hook-form"; +import { z } from "zod"; + +import { DialogDemo } from "~/components/common/Dialog"; +import { Button } from "~/components/ui/button"; +import { + Form, + FormControl, + FormField, + FormItem, + FormLabel, + FormMessage, +} from "~/components/ui/form"; +import { Input } from "~/components/ui/input"; +import { + InputOTP, + InputOTPGroup, + InputOTPSlot, +} from "~/components/ui/input-otp"; +import { GoogleSignIn } from "../socialbuttons"; + +const formSchema = z.object({ + fullname: z.string().min(2, { + message: "Fullname must be at least 2 characters.", + }), + email: z.string().min(2, { + message: "Email must be at least 2 characters.", + }), + password: z.string().min(2, { + message: "Password must be at least 2 characters.", + }), +}); + +type FormData = z.infer; + +const SignUp = () => { + const form = useForm({ + resolver: zodResolver(formSchema), + }); + const [open, setOpen] = useState(false); + + const handleFormSubmit = () => { + form.handleSubmit(() => { + if (form.formState.isValid) { + setOpen(true); + } + })(); + }; + + const handleSubmit = () => { + form.handleSubmit(handleFormSubmit)(); + }; + + return ( +
+
+

Sign Up

+

+ Create an account to get started with us. +

+
+
+ {/* */} + {/* */} + +
+
+
+ { + event.preventDefault(); + handleSubmit(); + }} + > + ( + +
+ Fullname + + + + +
+
+ )} + /> + ( + +
+ Email + + + + +
+
+ )} + /> + ( + +
+ Password + + + + +
+
+ )} + /> + + + + + Sign Up + +
+

+ Choose your sign-up method: +

+
    +
  • Use the temporary sign-in code sent to your mail or
  • +
  • Continue with email and password
  • +
+
+

+ Please paste (or type) your 6-digit code:{" "} +

+ + {...[0, 1, 2, 3, 4, 5].map((number_) => ( + + + + ))} + + +
+

+ Would you rather use email and password? +

+

+ Continue with email and password +

+
+

+ We would process your data as set forth in our Terms of Use, + Privacy Policy and Data Processing Agreement +

+
+
+
+

Already Have An Account?

+ + Login + +
+ + +
+
+ ); +}; +export default SignUp; diff --git a/src/app/(auth-routes)/register/page.tsx b/src/app/(auth-routes)/register/page.tsx index e5845f651..1379c0b21 100644 --- a/src/app/(auth-routes)/register/page.tsx +++ b/src/app/(auth-routes)/register/page.tsx @@ -1,220 +1,7 @@ -"use client"; +import SignUp from "."; -import { zodResolver } from "@hookform/resolvers/zod"; -import { DialogContent, DialogTitle } from "@radix-ui/react-dialog"; -import Image from "next/image"; -import Link from "next/link"; -import { useState } from "react"; -import { useForm } from "react-hook-form"; -import { z } from "zod"; - -import { DialogDemo } from "~/components/common/Dialog"; -import { Button } from "~/components/ui/button"; -import { - Form, - FormControl, - FormField, - FormItem, - FormLabel, - FormMessage, -} from "~/components/ui/form"; -import { Input } from "~/components/ui/input"; -import { - InputOTP, - InputOTPGroup, - InputOTPSlot, -} from "~/components/ui/input-otp"; - -const formSchema = z.object({ - fullname: z.string().min(2, { - message: "Fullname must be at least 2 characters.", - }), - email: z.string().min(2, { - message: "Email must be at least 2 characters.", - }), - password: z.string().min(2, { - message: "Password must be at least 2 characters.", - }), -}); - -type FormData = z.infer; - -const SignUp = () => { - const form = useForm({ - resolver: zodResolver(formSchema), - }); - const [open, setOpen] = useState(false); - - const handleFormSubmit = () => { - form.handleSubmit(() => { - if (form.formState.isValid) { - setOpen(true); - } - })(); - }; - - const handleSubmit = () => { - form.handleSubmit(handleFormSubmit)(); - }; - - return ( -
-
-

Sign Up

-

- Create an account to get started with us. -

-
-
- - -
-
-
- { - event.preventDefault(); - handleSubmit(); - }} - > - ( - -
- Fullname - - - - -
-
- )} - /> - ( - -
- Email - - - - -
-
- )} - /> - ( - -
- Password - - - - -
-
- )} - /> - - - - - Sign Up - -
-

- Choose your sign-up method: -

-
    -
  • Use the temporary sign-in code sent to your mail or
  • -
  • Continue with email and password
  • -
-
-

- Please paste (or type) your 6-digit code:{" "} -

- - {...[0, 1, 2, 3, 4, 5].map((number_) => ( - - - - ))} - - -
-

- Would you rather use email and password? -

-

- Continue with email and password -

-
-

- We would process your data as set forth in our Terms of Use, - Privacy Policy and Data Processing Agreement -

-
-
-
-

Already Have An Account?

- - Login - -
- - -
-
- ); +const page = () => { + return ; }; -export default SignUp; + +export default page; diff --git a/src/app/(auth-routes)/socialbuttons.tsx b/src/app/(auth-routes)/socialbuttons.tsx new file mode 100644 index 000000000..a33196a70 --- /dev/null +++ b/src/app/(auth-routes)/socialbuttons.tsx @@ -0,0 +1,19 @@ +import { signIn } from "next-auth/react"; +import { FcGoogle } from "react-icons/fc"; + +import { Button } from "~/components/ui/button"; + +export const GoogleSignIn = () => { + // eslint-disable-next-line unicorn/consistent-function-scoping + const handleLogin = async () => { + await signIn("google", { callbackUrl: "/dashboard" }); + }; + return ( +
+ +
+ ); +}; diff --git a/src/app/api/auth/[...nextauth]/route.ts b/src/app/api/auth/[...nextauth]/route.ts new file mode 100644 index 000000000..e7a5b74ab --- /dev/null +++ b/src/app/api/auth/[...nextauth]/route.ts @@ -0,0 +1,2 @@ +export { GET, POST } from "~/auth"; +export const runtime = "edge"; diff --git a/src/app/dashboard/(user-dashboard)/dashboard/page.tsx b/src/app/dashboard/(user-dashboard)/dashboard/page.tsx new file mode 100644 index 000000000..db4d38750 --- /dev/null +++ b/src/app/dashboard/(user-dashboard)/dashboard/page.tsx @@ -0,0 +1,5 @@ +const page = () => { + return
page
; +}; + +export default page; diff --git a/src/auth.config.ts b/src/auth.config.ts new file mode 100644 index 000000000..5586e475b --- /dev/null +++ b/src/auth.config.ts @@ -0,0 +1,54 @@ +import { NextAuthConfig } from "next-auth"; +import Google from "next-auth/providers/google"; + +import { GOOGLE_SIGN_IN } from "./actions/google"; + +export default { + providers: [ + Google({ + clientId: process.env.GOOGLE_CLIENT_ID!, + clientSecret: process.env.GOOGLE_CLIENT_SECRET!, + authorization: { + params: { + prompt: "consent", + access_type: "offline", + response_type: "code", + }, + }, + }), + ], + callbacks: { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + async signIn({ account, profile, user }: any) { + // if (account && account.provider === "google") { + // // eslint-disable-next-line unicorn/prevent-abbreviations + // const res = await GOOGLE_SIGN_IN(profile); + // const use = res.user; + + // return { user: { ...use } }; + // } + return { ...account, ...profile, ...user }; + }, + async jwt({ token, user, account }) { + if (account && account.provider !== "google") { + return { ...token, ...user }; + } + // eslint-disable-next-line unicorn/prevent-abbreviations + const res = await GOOGLE_SIGN_IN(account); + + const use = res.user; + + user = use; + + return { ...token, ...user }; + }, + async session({ session, token }) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + session.user = token as any; + return session; + }, + }, + pages: { + signIn: "/auth/login", + }, +} satisfies NextAuthConfig; diff --git a/src/auth.ts b/src/auth.ts new file mode 100644 index 000000000..4b35a359d --- /dev/null +++ b/src/auth.ts @@ -0,0 +1,25 @@ +import NextAuth, { type DefaultSession } from "next-auth"; + +import authConfig from "./auth.config"; +import { IUser } from "./types"; + +export const { + handlers: { GET, POST }, + auth, + unstable_update, +} = NextAuth({ + ...authConfig, + secret: process.env.AUTH_SECRET, +}); + +declare module "next-auth" { + interface Session { + user: { + id: IUser["id"]; + name: IUser["name"]; + email: IUser["email"]; + image: IUser["image"]; + access_token: IUser["access_token"]; + } & DefaultSession["user"]; + } +} diff --git a/src/schemas/index.ts b/src/schemas/index.ts new file mode 100644 index 000000000..221c3fea7 --- /dev/null +++ b/src/schemas/index.ts @@ -0,0 +1,27 @@ +import * as z from "zod"; + +export const RegisterSchema = z.object({ + first_name: z.string().min(3, { + message: "first name must be at least 2 characters.", + }), + last_name: z.string().min(3, { + message: "first name must be at least 2 characters.", + }), + email: z.string().email(), + password: z.string().min(2, { + message: "Password must be at least 2 characters.", + }), +}); + +export const LoginSchema = z.object({ + email: z.string().min(3, { + message: "Feild is required", + }), + password: z.string().min(3, { + message: "Password is required", + }), +}); + +export const OtpSchema = z.object({ + otp: z.string(), +}); diff --git a/src/types/index.d.ts b/src/types/index.d.ts new file mode 100644 index 000000000..8def661a9 --- /dev/null +++ b/src/types/index.d.ts @@ -0,0 +1,8 @@ +export interface IUser { + name: string; + email: string; + id: string; + role: "user" | "admin" | "super-admin" | "string"; + access_token: string; + image: string; +} From bbe70215e1687e0d84eac18e93799685894e7e97 Mon Sep 17 00:00:00 2001 From: phoenix Date: Tue, 30 Jul 2024 01:49:38 +0100 Subject: [PATCH 2/2] fix: fix social auth --- .../(landing-routes)/blog/[id]/BlogDetailsPage.tsx | 3 +++ src/app/(landing-routes)/blog/comments/page.tsx | 8 +++++++- src/lib/auth.react.ts | 13 ------------- src/lib/auth.ts | 7 ------- 4 files changed, 10 insertions(+), 21 deletions(-) delete mode 100644 src/lib/auth.react.ts delete mode 100644 src/lib/auth.ts diff --git a/src/app/(landing-routes)/blog/[id]/BlogDetailsPage.tsx b/src/app/(landing-routes)/blog/[id]/BlogDetailsPage.tsx index 570b6bae0..36bd41b75 100644 --- a/src/app/(landing-routes)/blog/[id]/BlogDetailsPage.tsx +++ b/src/app/(landing-routes)/blog/[id]/BlogDetailsPage.tsx @@ -28,6 +28,9 @@ const mockSession: Session = { user: { name: "Current User", email: "user@example.com", + id: "Strinf", + image: "Strinf", + access_token: "access_token", }, expires: "2100-01-01T00:00:00.000Z", }; diff --git a/src/app/(landing-routes)/blog/comments/page.tsx b/src/app/(landing-routes)/blog/comments/page.tsx index 7348e7882..913ebf921 100644 --- a/src/app/(landing-routes)/blog/comments/page.tsx +++ b/src/app/(landing-routes)/blog/comments/page.tsx @@ -6,7 +6,13 @@ import { sampleComments } from "~/components/common/comment-component/sample-com const CommentPage = () => { const mockSession: Session = { expires: "1", - user: { email: "a", name: "Adeyinka Akinsanya", image: "c" }, + user: { + name: "Current User", + email: "user@example.com", + id: "Strinf", + image: "Strinf", + access_token: "access_token", + }, }; return (
diff --git a/src/lib/auth.react.ts b/src/lib/auth.react.ts deleted file mode 100644 index b3d3d63c1..000000000 --- a/src/lib/auth.react.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { DefaultSession } from "next-auth"; -import { getSession as getAuthSession } from "next-auth/react"; - -export { signIn, signOut } from "next-auth/react"; - -interface Session extends DefaultSession { - user?: DefaultSession["user"] & { - id: string; - }; -} - -// @ts-expect-error Hacking the type so we don't have to do the module augmentation technique. -export const getSession: () => Promise = getAuthSession; diff --git a/src/lib/auth.ts b/src/lib/auth.ts deleted file mode 100644 index c1444a4a2..000000000 --- a/src/lib/auth.ts +++ /dev/null @@ -1,7 +0,0 @@ -import NextAuth from "next-auth"; - -const authOptions = NextAuth({ - providers: [], -}); - -export const { handlers, signIn, signOut, auth } = authOptions;