From 0c6fa71f6286737ef54fd649b418b9340cc6484d Mon Sep 17 00:00:00 2001 From: Tati Date: Sun, 9 Mar 2025 15:13:59 +0100 Subject: [PATCH 1/2] task4: Init --- README.md | 269 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 269 insertions(+) diff --git a/README.md b/README.md index adf466b..49b826d 100644 --- a/README.md +++ b/README.md @@ -316,3 +316,272 @@ git checkout -b app-state-management ``` + +
+ +## TASK 4: Next.js. Server Side Rendering + + +Task: https://github.com/rolling-scopes-school/tasks/blob/master/react/modules/tasks/nextjs-ssr-ssg.md + +Doc: https://nextjs.org/docs/app/building-your-application/upgrading/from-vite + +## Why Switch? + +There are several reasons why you might want to switch from Vite to Next.js: + +### Data Fetching Strategy + +With Next.js, you can choose your data fetching strategy per page or component. You can fetch data at build time, on the server at request time, or on the client. For example, you can fetch CMS data and render blog posts at build time, which will be efficiently cached on a CDN. + +### Middleware + +Next.js Middleware allows you to run code on the server before a request is completed. This can be helpful for features like user authentication or internationalization. + +### Built-in Optimizations + +Next.js comes with built-in optimizations for images, fonts, and third-party scripts, helping improve application performance. + +--- + +## Migration Steps + +The goal of this migration is to transition your app to Next.js as smoothly as possible, starting with a purely client-side application (SPA). We'll also avoid migrating your existing router initially to minimize issues and reduce merge conflicts. + +### Step 1: Install the Next.js Dependency + +First, install Next.js as a dependency: + +```bash +npm install next@latest +``` + +### Step 2: Create the Next.js Configuration File + +Create a `next.config.mjs` file at the root of your project: + +```javascript +/** @type {import('next').NextConfig} */ +const nextConfig = { + output: 'export', // Outputs a Single-Page Application (SPA). + distDir: './dist', // Changes the build output directory to `./dist/`. +}; + +export default nextConfig; +``` + +### Step 3: Update TypeScript Configuration + +If you're using TypeScript, update your `tsconfig.json` file with the following changes to make it compatible with Next.js. If not, you can skip this step. + +- Remove the project reference to `tsconfig.node.json` +- Add `./dist/types/**/*.ts` and `./next-env.d.ts` to the `include` array +- Add `./node_modules` to the `exclude` array +- Add `{ "name": "next" }` to the `plugins` array +- Set `esModuleInterop` to `true` +- Set `jsx` to `preserve` +- Set `allowJs` to `true` +- Set `forceConsistentCasingInFileNames` to `true` +- Set `incremental` to `true` + +Example `tsconfig.json`: + +```json +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "esModuleInterop": true, + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "preserve", + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "allowJs": true, + "forceConsistentCasingInFileNames": true, + "incremental": true, + "plugins": [{ "name": "next" }] + }, + "include": ["./src", "./dist/types/**/*.ts", "./next-env.d.ts"], + "exclude": ["./node_modules"] +} +``` + +### Step 4: Create the Root Layout + +Next.js requires a root layout file, which is a React Server Component that wraps all pages. This is similar to `index.html` in Vite. + +Create the following files: + +1. **`src/app/layout.tsx`**: + +```tsx +export default function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + + + + My App + + + +
{children}
+ + + ); +} +``` + +2. Move relevant metadata files (e.g., favicon, robots.txt) into the `app` directory and remove `` tags. + +3. Use the `Metadata` API for managing head content: + +```tsx +import type { Metadata } from 'next'; + +export const metadata: Metadata = { + title: 'My App', + description: 'My App is a...', +}; +``` + +### Step 5: Create the Entrypoint Page + +In Next.js, the entrypoint is a page declared via `page.tsx`. We will configure a catch-all route. + +1. Create a directory `app/[[...slug]]/` and inside it, create `page.tsx`: + +```tsx +import '../../index.css'; + +export function generateStaticParams() { + return [{ slug: [''] }]; +} + +export default function Page() { + return '...'; +} +``` + +2. Create a `client.tsx` for running the Vite application in Next.js as a client-side app: + +```tsx +'use client'; + +import dynamic from 'next/dynamic'; + +const App = dynamic(() => import('../../App'), { ssr: false }); + +export function ClientOnly() { + return ; +} +``` + +3. Update `page.tsx` to render the client-only component: + +```tsx +import '../../index.css'; +import { ClientOnly } from './client'; + +export function generateStaticParams() { + return [{ slug: [''] }]; +} + +export default function Page() { + return ; +} +``` + +### Step 6: Update Static Image Imports + +Next.js handles static images differently from Vite. Update your image imports: + +1. **Before**: + +```tsx +import image from './img.png'; +``` + +2. **After**: + +```tsx +import image from '../public/img.png'; + +; +``` + +### Step 7: Migrate Environment Variables + +- Change all `VITE_` variables to `NEXT_PUBLIC_`. +- Replace `import.meta.env.MODE` with `process.env.NODE_ENV`. +- Replace `import.meta.env.PROD` with `process.env.NODE_ENV === 'production'`. +- Replace `import.meta.env.SSR` with `typeof window !== 'undefined'`. + +### Step 8: Update Scripts in `package.json` + +Update your `scripts` to use Next.js commands: + +```json +{ + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start" + } +} +``` + +And update `.gitignore`: + +``` +.next +next-env.d.ts +dist +``` + +### Step 9: Clean Up + +Remove Vite-related files from your project: + +- Delete `main.tsx` +- Delete `index.html` +- Delete `vite-env.d.ts` +- Delete `vite.config.ts` +- Uninstall Vite dependencies + +Removing vite + +```bash +npm uninstall vite @vitejs/plugin-react react-router-dom +``` + +Install SASS + +```bash + npm i sass +``` + +## Next Steps + +Now that your Next.js app is up and running, you can start leveraging additional features: + +- Migrate from React Router to Next.js App Router for automatic code splitting, server-side rendering, and React Server Components. +- Optimize images and fonts with Next.js built-in components. +- Use Next.js's built-in components for third-party scripts optimization. +- Update your ESLint configuration to support Next.js rules. + +This concludes the initial migration process from Vite to Next.js. + +
From 5223e2c54fdc3a877b9b9c71acd8388431578759 Mon Sep 17 00:00:00 2001 From: Tati Date: Mon, 10 Mar 2025 00:38:02 +0100 Subject: [PATCH 2/2] Task4: Next.js Pages Api Integration --- .gitignore | 4 + .husky/pre-commit | 1 - .husky/pre-push | 5 - declarations.d.ts | 9 + index.html | 13 - jest.config.js | 2 +- next.config.mjs | 10 + package-lock.json | 1681 ++++++++++++----- package.json | 17 +- {src/assets => public}/icons/404.png | Bin .../icons/checkbox_false.png | Bin .../icons/checkbox_minus.png | Bin .../assets => public}/icons/checkbox_true.png | Bin {src/assets => public}/icons/close.png | Bin {src/assets => public}/icons/downloads.png | Bin {src/assets => public}/icons/load.gif | Bin {src/assets => public}/icons/logo.png | Bin {src/assets => public}/icons/moon.png | Bin {src/assets => public}/icons/next.png | Bin {src/assets => public}/icons/previous.png | Bin {src/assets => public}/icons/search.png | Bin {src/assets => public}/icons/sun.png | Bin public/nextjs.png | Bin 0 -> 5546 bytes public/reactjs.png | Bin 0 -> 229358 bytes public/rs-school.webp | Bin 0 -> 18888 bytes setupTests.ts | 2 + src/App.tsx | 37 - .../home-page/card-list/index.test.tsx | 43 +- src/components/home-page/card-list/index.tsx | 11 +- .../home-page/details}/index.module.scss | 2 +- .../home-page/details/index.test.tsx | 125 ++ .../home-page/details}/index.tsx | 54 +- .../home-page/flyout/index.test.tsx | 5 - src/components/home-page/flyout/index.tsx | 11 +- .../home-page/pagination/index.test.tsx | 3 - src/components/home-page/pagination/index.tsx | 23 +- .../home-page/search/index.test.tsx | 1 - src/components/home-page/search/index.tsx | 12 +- src/components/layout/layout.tsx | 27 + .../shared/themeToggle/index.test.tsx | 3 - src/components/shared/themeToggle/index.tsx | 10 +- src/context/themeProvider.tsx | 12 +- src/index.css | 4 - src/main.tsx | 20 - src/pages/404.tsx | 5 + src/pages/_app.tsx | 19 + src/pages/details-page/index.test.tsx | 143 -- src/pages/home-page/index.module.scss | 11 +- src/pages/home-page/index.test.tsx | 297 +-- src/pages/home-page/index.tsx | 106 +- src/pages/home.tsx | 7 + src/pages/index-page/index.module.scss | 114 ++ src/pages/index-page/index.tsx | 76 + src/pages/index.tsx | 5 + src/pages/not-found-page/index.module.scss | 128 +- src/pages/not-found-page/index.test.tsx | 44 +- src/pages/not-found-page/index.tsx | 31 +- src/pages/providers.tsx | 10 + src/pages/test-page/index.test.tsx | 35 - src/pages/test-page/index.tsx | 9 - src/services/PeopleService.test.tsx | 182 ++ src/{index.scss => styles/globals.scss} | 2 +- src/vite-env.d.ts | 1 - tsconfig.json | 35 +- tsconfig.node.json | 24 - vite.config.ts | 7 - 66 files changed, 2296 insertions(+), 1142 deletions(-) delete mode 100644 .husky/pre-commit delete mode 100644 .husky/pre-push create mode 100644 declarations.d.ts delete mode 100644 index.html create mode 100644 next.config.mjs rename {src/assets => public}/icons/404.png (100%) rename {src/assets => public}/icons/checkbox_false.png (100%) rename {src/assets => public}/icons/checkbox_minus.png (100%) rename {src/assets => public}/icons/checkbox_true.png (100%) rename {src/assets => public}/icons/close.png (100%) rename {src/assets => public}/icons/downloads.png (100%) rename {src/assets => public}/icons/load.gif (100%) rename {src/assets => public}/icons/logo.png (100%) rename {src/assets => public}/icons/moon.png (100%) rename {src/assets => public}/icons/next.png (100%) rename {src/assets => public}/icons/previous.png (100%) rename {src/assets => public}/icons/search.png (100%) rename {src/assets => public}/icons/sun.png (100%) create mode 100644 public/nextjs.png create mode 100644 public/reactjs.png create mode 100644 public/rs-school.webp delete mode 100644 src/App.tsx rename src/{pages/details-page => components/home-page/details}/index.module.scss (97%) create mode 100644 src/components/home-page/details/index.test.tsx rename src/{pages/details-page => components/home-page/details}/index.tsx (66%) create mode 100644 src/components/layout/layout.tsx delete mode 100644 src/index.css delete mode 100644 src/main.tsx create mode 100644 src/pages/404.tsx create mode 100644 src/pages/_app.tsx delete mode 100644 src/pages/details-page/index.test.tsx create mode 100644 src/pages/home.tsx create mode 100644 src/pages/index-page/index.module.scss create mode 100644 src/pages/index-page/index.tsx create mode 100644 src/pages/index.tsx create mode 100644 src/pages/providers.tsx delete mode 100644 src/pages/test-page/index.test.tsx delete mode 100644 src/pages/test-page/index.tsx create mode 100644 src/services/PeopleService.test.tsx rename src/{index.scss => styles/globals.scss} (94%) delete mode 100644 src/vite-env.d.ts delete mode 100644 tsconfig.node.json delete mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore index 4791e93..729b260 100644 --- a/.gitignore +++ b/.gitignore @@ -119,3 +119,7 @@ dist-ssr *.sln *.sw? .vs/* + +#next +.next +next-env.d.ts \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100644 index 3867a0f..0000000 --- a/.husky/pre-commit +++ /dev/null @@ -1 +0,0 @@ -npm run lint diff --git a/.husky/pre-push b/.husky/pre-push deleted file mode 100644 index bf0001c..0000000 --- a/.husky/pre-push +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -echo "Running pre-push hook..." -npm test \ No newline at end of file diff --git a/declarations.d.ts b/declarations.d.ts new file mode 100644 index 0000000..a6f1d44 --- /dev/null +++ b/declarations.d.ts @@ -0,0 +1,9 @@ +declare module '*.png' { + const value: string; + export default value; +} + +declare module '*.scss' { + const content: Record; + export default content; +} diff --git a/index.html b/index.html deleted file mode 100644 index 0030c0b..0000000 --- a/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - React App - - -
- - - diff --git a/jest.config.js b/jest.config.js index b8f2b41..683f544 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,5 +1,5 @@ export default { - collectCoverageFrom: ['**/*.tsx'], + collectCoverageFrom: ['src/**/*.tsx', 'src/**/*.ts'], coveragePathIgnorePatterns: [ '[/\\\\](node_modules|.next|jest|docker|Deploy|.vscode|public)[/\\\\]', ], diff --git a/next.config.mjs b/next.config.mjs new file mode 100644 index 0000000..895b41b --- /dev/null +++ b/next.config.mjs @@ -0,0 +1,10 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + output: 'export', // Outputs a Single-Page Application (SPA). + distDir: './dist', // Changes the build output directory to `./dist/` + images: { + unoptimized: true, + }, +}; + +export default nextConfig; diff --git a/package-lock.json b/package-lock.json index 57daa0d..136c35e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,10 +11,11 @@ "@reduxjs/toolkit": "^2.5.1", "axios": "^1.7.9", "classnames": "^2.5.1", + "next": "^15.1.7", "react": "^18.3.1", "react-dom": "^18.3.1", "react-redux": "^9.2.0", - "react-router-dom": "^7.1.5" + "sass": "^1.85.1" }, "devDependencies": { "@babel/preset-env": "^7.26.8", @@ -28,7 +29,6 @@ "@types/node": "^22.13.1", "@types/react": "^18.3.18", "@types/react-dom": "^18.3.5", - "@vitejs/plugin-react-swc": "^3.5.0", "eslint": "^9.17.0", "eslint-config-prettier": "^10.0.1", "eslint-plugin-prettier": "^5.2.3", @@ -41,13 +41,13 @@ "identity-obj-proxy": "^3.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", + "jest-fetch-mock": "^3.0.3", "prettier": "3.4.2", "sass-embedded": "^1.83.4", "ts-jest": "^29.2.5", "typescript": "~5.6.2", "typescript-eslint": "^8.18.2", - "util": "^0.12.5", - "vite": "^6.0.5" + "util": "^0.12.5" } }, "node_modules/@adobe/css-tools": { @@ -1963,21 +1963,14 @@ "dev": true, "license": "(Apache-2.0 AND BSD-3-Clause)" }, - "node_modules/@esbuild/win32-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", "license": "MIT", "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" + "dependencies": { + "tslib": "^2.4.0" } }, "node_modules/@eslint-community/eslint-utils": { @@ -2187,6 +2180,367 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -2596,95 +2950,538 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dev": true, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@next/env": { + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.7.tgz", + "integrity": "sha512-d9jnRrkuOH7Mhi+LHav2XW91HOgTAWHxjMPkXMGBc9B2b7614P7kjt8tAplRvJpbSt4nbO1lugcT/kAaWzjlLQ==", + "license": "MIT" + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.7.tgz", + "integrity": "sha512-hPFwzPJDpA8FGj7IKV3Yf1web3oz2YsR8du4amKw8d+jAOHfYHYFpMkoF6vgSY4W6vB29RtZEklK9ayinGiCmQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.7.tgz", + "integrity": "sha512-2qoas+fO3OQKkU0PBUfwTiw/EYpN+kdAx62cePRyY1LqKtP09Vp5UcUntfZYajop5fDFTjSxCHfZVRxzi+9FYQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.7.tgz", + "integrity": "sha512-sKLLwDX709mPdzxMnRIXLIT9zaX2w0GUlkLYQnKGoXeWUhcvpCrK+yevcwCJPdTdxZEUA0mOXGLdPsGkudGdnA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.7.tgz", + "integrity": "sha512-zblK1OQbQWdC8fxdX4fpsHDw+VSpBPGEUX4PhSE9hkaWPrWoeIJn+baX53vbsbDRaDKd7bBNcXRovY1hEhFd7w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.7.tgz", + "integrity": "sha512-GOzXutxuLvLHFDAPsMP2zDBMl1vfUHHpdNpFGhxu90jEzH6nNIgmtw/s1MDwpTOiM+MT5V8+I1hmVFeAUhkbgQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.7.tgz", + "integrity": "sha512-WrZ7jBhR7ATW1z5iEQ0ZJfE2twCNSXbpCSaAunF3BKcVeHFADSI/AW1y5Xt3DzTqPF1FzQlwQTewqetAABhZRQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.7.tgz", + "integrity": "sha512-LDnj1f3OVbou1BqvvXVqouJZKcwq++mV2F+oFHptToZtScIEnhNRJAhJzqAtTE2dB31qDYL45xJwrc+bLeKM2Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.7.tgz", + "integrity": "sha512-dC01f1quuf97viOfW05/K8XYv2iuBgAxJZl7mbCKEjMgdQl5JjAKJ0D2qMKZCgPWDeFbFT0Q0nYWwytEW0DWTQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.0.0" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "cpu": [ + "x64" + ], "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.0.0" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "cpu": [ + "x64" + ], "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.0.0" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "cpu": [ + "arm64" + ], "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "cpu": [ + "ia32" + ], "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 8" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "cpu": [ + "x64" + ], "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 8" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "node_modules/@parcel/watcher/node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "license": "Apache-2.0", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" }, "engines": { - "node": ">= 8" + "node": ">=0.10" } }, "node_modules/@pkgr/core": { @@ -2724,20 +3521,6 @@ } } }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.32.1.tgz", - "integrity": "sha512-ar80GhdZb4DgmW3myIS9nRFYcpJRSME8iqWgzH2i44u+IdrzmiXVxeFnExQ5v4JYUSpg94bWjevMG8JHf1Da5Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -2765,77 +3548,19 @@ "@sinonjs/commons": "^3.0.0" } }, - "node_modules/@swc/core": { - "version": "1.10.11", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.10.11.tgz", - "integrity": "sha512-3zGU5y3S20cAwot9ZcsxVFNsSVaptG+dKdmAxORSE3EX7ixe1Xn5kUwLlgIsM4qrwTUWCJDLNhRS+2HLFivcDg==", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.17" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.10.11", - "@swc/core-darwin-x64": "1.10.11", - "@swc/core-linux-arm-gnueabihf": "1.10.11", - "@swc/core-linux-arm64-gnu": "1.10.11", - "@swc/core-linux-arm64-musl": "1.10.11", - "@swc/core-linux-x64-gnu": "1.10.11", - "@swc/core-linux-x64-musl": "1.10.11", - "@swc/core-win32-arm64-msvc": "1.10.11", - "@swc/core-win32-ia32-msvc": "1.10.11", - "@swc/core-win32-x64-msvc": "1.10.11" - }, - "peerDependencies": { - "@swc/helpers": "*" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.10.11", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.10.11.tgz", - "integrity": "sha512-kKNE2BGu/La2k2WFHovenqZvGQAHRIU+rd2/6a7D6EiQ6EyimtbhUqjCCZ+N1f5fIAnvM+sMdLiQJq4jdd/oOQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, "node_modules/@swc/counter": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true, "license": "Apache-2.0" }, - "node_modules/@swc/types": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.17.tgz", - "integrity": "sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==", - "dev": true, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", "license": "Apache-2.0", "dependencies": { - "@swc/counter": "^0.1.3" + "tslib": "^2.8.0" } }, "node_modules/@testing-library/dom": { @@ -3027,12 +3752,6 @@ "@babel/types": "^7.20.7" } }, - "node_modules/@types/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", - "license": "MIT" - }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -3391,19 +4110,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@vitejs/plugin-react-swc": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.2.tgz", - "integrity": "sha512-y0byko2b2tSVVf5Gpng1eEhX1OvPC7x8yns1Fx8jDzlJp4LS6CMkCPfLw47cjyoMrshQDoQw4qcgjsU9VvlCew==", - "dev": true, - "license": "MIT", - "dependencies": { - "@swc/core": "^1.7.26" - }, - "peerDependencies": { - "vite": "^4 || ^5 || ^6" - } - }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -3938,7 +4644,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -4016,6 +4722,17 @@ "dev": true, "license": "MIT" }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -4090,7 +4807,6 @@ "version": "1.0.30001695", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz", "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==", - "dev": true, "funding": [ { "type": "opencollective", @@ -4134,6 +4850,21 @@ "node": ">=10" } }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -4162,6 +4893,12 @@ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -4195,11 +4932,25 @@ "dev": true, "license": "MIT" }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -4212,9 +4963,20 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, + "devOptional": true, "license": "MIT" }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, "node_modules/colorjs.io": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.5.2.tgz", @@ -4247,15 +5009,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cookie": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", - "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, "node_modules/core-js-compat": { "version": "3.40.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", @@ -4291,6 +5044,16 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/cross-fetch": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -4522,6 +5285,16 @@ "node": ">=6" } }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -4816,55 +5589,14 @@ "license": "MIT", "dependencies": { "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/esbuild": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" }, "engines": { - "node": ">=18" + "node": ">= 0.4" }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.2", - "@esbuild/android-arm": "0.24.2", - "@esbuild/android-arm64": "0.24.2", - "@esbuild/android-x64": "0.24.2", - "@esbuild/darwin-arm64": "0.24.2", - "@esbuild/darwin-x64": "0.24.2", - "@esbuild/freebsd-arm64": "0.24.2", - "@esbuild/freebsd-x64": "0.24.2", - "@esbuild/linux-arm": "0.24.2", - "@esbuild/linux-arm64": "0.24.2", - "@esbuild/linux-ia32": "0.24.2", - "@esbuild/linux-loong64": "0.24.2", - "@esbuild/linux-mips64el": "0.24.2", - "@esbuild/linux-ppc64": "0.24.2", - "@esbuild/linux-riscv64": "0.24.2", - "@esbuild/linux-s390x": "0.24.2", - "@esbuild/linux-x64": "0.24.2", - "@esbuild/netbsd-arm64": "0.24.2", - "@esbuild/netbsd-x64": "0.24.2", - "@esbuild/openbsd-arm64": "0.24.2", - "@esbuild/openbsd-x64": "0.24.2", - "@esbuild/sunos-x64": "0.24.2", - "@esbuild/win32-arm64": "0.24.2", - "@esbuild/win32-ia32": "0.24.2", - "@esbuild/win32-x64": "0.24.2" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/escalade": { @@ -5385,7 +6117,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -5958,7 +6690,6 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", - "dev": true, "license": "MIT" }, "node_modules/import-fresh": { @@ -6214,7 +6945,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -6279,7 +7010,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -6305,7 +7036,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -6857,6 +7588,17 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-fetch-mock": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/jest-fetch-mock/-/jest-fetch-mock-3.0.3.tgz", + "integrity": "sha512-Ux1nWprtLrdrH4XwE7O7InRY6psIi3GOsqNESJgMJ+M5cv4A8Lh7SN9d2V2kKRZ8ebAfcd1LNyZguAOb6JiDqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-fetch": "^3.0.4", + "promise-polyfill": "^8.1.3" + } + }, "node_modules/jest-get-type": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", @@ -7566,7 +8308,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -7639,7 +8381,6 @@ "version": "3.3.8", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", - "dev": true, "funding": [ { "type": "github", @@ -7661,6 +8402,141 @@ "dev": true, "license": "MIT" }, + "node_modules/next": { + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/next/-/next-15.1.7.tgz", + "integrity": "sha512-GNeINPGS9c6OZKCvKypbL8GTsT5GhWPp4DM0fzkXJuXMilOO2EeFxuAY6JZbtk6XIl6Ws10ag3xRINDjSO5+wg==", + "license": "MIT", + "dependencies": { + "@next/env": "15.1.7", + "@swc/counter": "0.1.3", + "@swc/helpers": "0.5.15", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "15.1.7", + "@next/swc-darwin-x64": "15.1.7", + "@next/swc-linux-arm64-gnu": "15.1.7", + "@next/swc-linux-arm64-musl": "15.1.7", + "@next/swc-linux-x64-gnu": "15.1.7", + "@next/swc-linux-x64-musl": "15.1.7", + "@next/swc-win32-arm64-msvc": "15.1.7", + "@next/swc-win32-x64-msvc": "15.1.7", + "sharp": "^0.33.5" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT", + "optional": true + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -8000,14 +8876,13 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -8105,35 +8980,6 @@ "node": ">= 0.4" } }, - "node_modules/postcss": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", - "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -8208,6 +9054,13 @@ "dev": true, "license": "MIT" }, + "node_modules/promise-polyfill": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.3.0.tgz", + "integrity": "sha512-H5oELycFml5yto/atYqmjyigJoAo3+OXwolYiH7OfQuYlAqhxNvTfiNMbV9hsC6Yp83yE5r2KTVmtrG6R9i6Pg==", + "dev": true, + "license": "MIT" + }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -8361,44 +9214,17 @@ } } }, - "node_modules/react-router": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.5.tgz", - "integrity": "sha512-8BUF+hZEU4/z/JD201yK6S+UYhsf58bzYIDq2NS1iGpwxSXDu7F+DeGSkIXMFBuHZB21FSiCzEcUb18cQNdRkA==", - "license": "MIT", - "dependencies": { - "@types/cookie": "^0.6.0", - "cookie": "^1.0.1", - "set-cookie-parser": "^2.6.0", - "turbo-stream": "2.4.0" - }, - "engines": { - "node": ">=20.0.0" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - } - } - }, - "node_modules/react-router-dom": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.1.5.tgz", - "integrity": "sha512-/4f9+up0Qv92D3bB8iN5P1s3oHAepSGa9h5k6tpTFlixTTskJZwKGhJ6vRJ277tLD1zuaZTt95hyGWV1Z37csQ==", + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "license": "MIT", - "dependencies": { - "react-router": "7.1.5" - }, "engines": { - "node": ">=20.0.0" + "node": ">= 14.18.0" }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, "node_modules/redent": { @@ -8649,45 +9475,6 @@ "node": ">=0.10.0" } }, - "node_modules/rollup": { - "version": "4.32.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.32.1.tgz", - "integrity": "sha512-z+aeEsOeEa3mEbS1Tjl6sAZ8NE3+AalQz1RJGj81M+fizusbdDMoEJwdJNHfaB40Scr4qNu+welOfes7maKonA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.32.1", - "@rollup/rollup-android-arm64": "4.32.1", - "@rollup/rollup-darwin-arm64": "4.32.1", - "@rollup/rollup-darwin-x64": "4.32.1", - "@rollup/rollup-freebsd-arm64": "4.32.1", - "@rollup/rollup-freebsd-x64": "4.32.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.32.1", - "@rollup/rollup-linux-arm-musleabihf": "4.32.1", - "@rollup/rollup-linux-arm64-gnu": "4.32.1", - "@rollup/rollup-linux-arm64-musl": "4.32.1", - "@rollup/rollup-linux-loongarch64-gnu": "4.32.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.32.1", - "@rollup/rollup-linux-riscv64-gnu": "4.32.1", - "@rollup/rollup-linux-s390x-gnu": "4.32.1", - "@rollup/rollup-linux-x64-gnu": "4.32.1", - "@rollup/rollup-linux-x64-musl": "4.32.1", - "@rollup/rollup-win32-arm64-msvc": "4.32.1", - "@rollup/rollup-win32-ia32-msvc": "4.32.1", - "@rollup/rollup-win32-x64-msvc": "4.32.1", - "fsevents": "~2.3.2" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -8783,6 +9570,26 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, + "node_modules/sass": { + "version": "1.85.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.85.1.tgz", + "integrity": "sha512-Uk8WpxM5v+0cMR0XjX9KfRIacmSG86RH4DCCZjLU2rFh5tyutt9siAXJ7G+YfxQ99Q6wrRMbMlVl6KqUms71ag==", + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, "node_modules/sass-embedded": { "version": "1.83.4", "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.83.4.tgz", @@ -8886,7 +9693,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, + "devOptional": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -8895,12 +9702,6 @@ "node": ">=10" } }, - "node_modules/set-cookie-parser": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", - "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", - "license": "MIT" - }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -8950,6 +9751,46 @@ "node": ">= 0.4" } }, + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "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" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -9056,6 +9897,23 @@ "dev": true, "license": "ISC" }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", + "optional": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT", + "optional": true + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -9087,7 +9945,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -9134,6 +9991,14 @@ "node": ">=8" } }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -9320,6 +10185,29 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "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 + } + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -9418,7 +10306,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -9519,15 +10407,8 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, "license": "0BSD" }, - "node_modules/turbo-stream": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", - "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", - "license": "ISC" - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -9849,78 +10730,6 @@ "dev": true, "license": "MIT" }, - "node_modules/vite": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.11.tgz", - "integrity": "sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.24.2", - "postcss": "^8.4.49", - "rollup": "^4.23.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, "node_modules/w3c-xmlserializer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", diff --git a/package.json b/package.json index a10ac57..d66a213 100644 --- a/package.json +++ b/package.json @@ -4,23 +4,25 @@ "version": "0.0.0", "type": "module", "scripts": { - "dev": "vite", - "build": "vite build", - "preview": "vite preview", + "dev": "next dev", + "build": "next build", + "start": "next start", "lint": "eslint . --fix", "format:fix": "prettier --write .", "prepare": "husky", "test:watch": "jest --watchAll", - "test": "jest --coverage" + "test": "jest --coverage", + "test:coverage:html": "jest --coverage --coverageReporters=html" }, "dependencies": { "@reduxjs/toolkit": "^2.5.1", "axios": "^1.7.9", "classnames": "^2.5.1", + "next": "^15.1.7", "react": "^18.3.1", "react-dom": "^18.3.1", "react-redux": "^9.2.0", - "react-router-dom": "^7.1.5" + "sass": "^1.85.1" }, "devDependencies": { "@babel/preset-env": "^7.26.8", @@ -34,7 +36,6 @@ "@types/node": "^22.13.1", "@types/react": "^18.3.18", "@types/react-dom": "^18.3.5", - "@vitejs/plugin-react-swc": "^3.5.0", "eslint": "^9.17.0", "eslint-config-prettier": "^10.0.1", "eslint-plugin-prettier": "^5.2.3", @@ -47,12 +48,12 @@ "identity-obj-proxy": "^3.0.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", + "jest-fetch-mock": "^3.0.3", "prettier": "3.4.2", "sass-embedded": "^1.83.4", "ts-jest": "^29.2.5", "typescript": "~5.6.2", "typescript-eslint": "^8.18.2", - "util": "^0.12.5", - "vite": "^6.0.5" + "util": "^0.12.5" } } diff --git a/src/assets/icons/404.png b/public/icons/404.png similarity index 100% rename from src/assets/icons/404.png rename to public/icons/404.png diff --git a/src/assets/icons/checkbox_false.png b/public/icons/checkbox_false.png similarity index 100% rename from src/assets/icons/checkbox_false.png rename to public/icons/checkbox_false.png diff --git a/src/assets/icons/checkbox_minus.png b/public/icons/checkbox_minus.png similarity index 100% rename from src/assets/icons/checkbox_minus.png rename to public/icons/checkbox_minus.png diff --git a/src/assets/icons/checkbox_true.png b/public/icons/checkbox_true.png similarity index 100% rename from src/assets/icons/checkbox_true.png rename to public/icons/checkbox_true.png diff --git a/src/assets/icons/close.png b/public/icons/close.png similarity index 100% rename from src/assets/icons/close.png rename to public/icons/close.png diff --git a/src/assets/icons/downloads.png b/public/icons/downloads.png similarity index 100% rename from src/assets/icons/downloads.png rename to public/icons/downloads.png diff --git a/src/assets/icons/load.gif b/public/icons/load.gif similarity index 100% rename from src/assets/icons/load.gif rename to public/icons/load.gif diff --git a/src/assets/icons/logo.png b/public/icons/logo.png similarity index 100% rename from src/assets/icons/logo.png rename to public/icons/logo.png diff --git a/src/assets/icons/moon.png b/public/icons/moon.png similarity index 100% rename from src/assets/icons/moon.png rename to public/icons/moon.png diff --git a/src/assets/icons/next.png b/public/icons/next.png similarity index 100% rename from src/assets/icons/next.png rename to public/icons/next.png diff --git a/src/assets/icons/previous.png b/public/icons/previous.png similarity index 100% rename from src/assets/icons/previous.png rename to public/icons/previous.png diff --git a/src/assets/icons/search.png b/public/icons/search.png similarity index 100% rename from src/assets/icons/search.png rename to public/icons/search.png diff --git a/src/assets/icons/sun.png b/public/icons/sun.png similarity index 100% rename from src/assets/icons/sun.png rename to public/icons/sun.png diff --git a/public/nextjs.png b/public/nextjs.png new file mode 100644 index 0000000000000000000000000000000000000000..e87399b5f150f2d72c0034e14269db34d6275456 GIT binary patch literal 5546 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 literal 0 HcmV?d00001 diff --git a/public/reactjs.png b/public/reactjs.png new file mode 100644 index 0000000000000000000000000000000000000000..6eb30404da63f02d7a1712dbf70981fa4c88cf7a GIT binary patch literal 229358 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

B9*A@rVB4$hCF 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

`9igk3s-cigW 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

  • guFxQDr&7is^T9AlGcsJ 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%0AgngEtsIFGa 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 G-~R`U$jd7L literal 0 HcmV?d00001 diff --git a/public/rs-school.webp b/public/rs-school.webp new file mode 100644 index 0000000000000000000000000000000000000000..9e9514eeb216a54f8fc8709d3aa0f9a21ed1f396 GIT binary patch literal 18888 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 b8GWgC!3yJIz~(7ZY`_2j00mv6SO5S3LaMCj literal 0 HcmV?d00001 diff --git a/setupTests.ts b/setupTests.ts index 7711bd2..38b9d93 100644 --- a/setupTests.ts +++ b/setupTests.ts @@ -1,4 +1,6 @@ import '@testing-library/jest-dom'; import { TextEncoder } from 'util'; +import fetchMock from 'jest-fetch-mock'; global.TextEncoder = TextEncoder; +fetchMock.enableMocks(); diff --git a/src/App.tsx b/src/App.tsx deleted file mode 100644 index 2a11447..0000000 --- a/src/App.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import React from 'react'; -import { - BrowserRouter as Router, - Route, - Routes, - Navigate, -} from 'react-router-dom'; -import ErrorBoundary from './components/shared/error-boundary'; -import './index.scss'; -import HomePage from './pages/home-page'; -import Details from './pages/details-page'; -import NotFound from './pages/not-found-page'; -import TestPage from './pages/test-page'; -import { ThemeProvider } from './context/themeProvider'; - -const App: React.FC = () => { - return ( - - - -
    - - } /> - }> - } /> {} - - } /> - } /> - -
    -
    -
    -
    - ); -}; - -export default App; diff --git a/src/components/home-page/card-list/index.test.tsx b/src/components/home-page/card-list/index.test.tsx index 375ae2c..e57079f 100644 --- a/src/components/home-page/card-list/index.test.tsx +++ b/src/components/home-page/card-list/index.test.tsx @@ -1,24 +1,10 @@ import { render, screen } from '@testing-library/react'; import { Provider } from 'react-redux'; import { createStore } from 'redux'; -import CardList from './index'; +import CardList from '.'; import { ICharacterDetail } from '../../../models/ICharacterDetail'; import { CharacterDetailsBuilder } from '../../tests/utils/characterDetailsBuilder'; -jest.mock('../../../assets/icons/load.gif', () => 'mocked-load.gif'); -jest.mock( - '../../../assets/icons/checkbox_false.png', - () => 'mocked-checkbox_false.png' -); -jest.mock( - '../../../assets/icons/checkbox_true.png', - () => 'mocked-checkbox_true.png' -); -jest.mock( - '../../../assets/icons/checkbox_minus.png', - () => 'mocked-checkbox_minus.png' -); - jest.mock('./card', () => jest.fn(({ isChecked, onCheckboxChange }) => (
    @@ -139,33 +125,6 @@ describe('CardList Component', () => { ).toBeInTheDocument(); }); - /* - test('toggles individual checkboxes', () => { - render( - - - - ); - - const buttons = screen.getAllByText(/Unchecked|Checked/); - expect(buttons[0]).toHaveTextContent('Checked'); - - fireEvent.click(buttons[0]); - expect(buttons[0]).toHaveTextContent('Unchecked'); - - fireEvent.click(buttons[0]); - expect(buttons[0]).toHaveTextContent('Checked'); - }); - */ - test('handles item selection', () => { render( diff --git a/src/components/home-page/card-list/index.tsx b/src/components/home-page/card-list/index.tsx index b1376ba..55a4094 100644 --- a/src/components/home-page/card-list/index.tsx +++ b/src/components/home-page/card-list/index.tsx @@ -1,8 +1,8 @@ +import Image from 'next/image'; import React from 'react'; import { useDispatch } from 'react-redux'; import Card from './card'; import styles from './index.module.scss'; -import loadGif from '../../../assets/icons/load.gif'; import { ICharacterDetail } from '../../../models/ICharacterDetail'; import { togglePeopleSelection } from '../../../store/reducers/SelectedPeoplesSlice'; @@ -30,7 +30,14 @@ const CardList: React.FC = ({ if (loading) { return (
    - Loading + Loading
    ); } diff --git a/src/pages/details-page/index.module.scss b/src/components/home-page/details/index.module.scss similarity index 97% rename from src/pages/details-page/index.module.scss rename to src/components/home-page/details/index.module.scss index 0d6bf13..9de81b1 100644 --- a/src/pages/details-page/index.module.scss +++ b/src/components/home-page/details/index.module.scss @@ -1,4 +1,4 @@ -@use '../../styles/colors.scss' as *; +@use '../../../styles/colors.scss' as *; .detailsSection { position: relative; diff --git a/src/components/home-page/details/index.test.tsx b/src/components/home-page/details/index.test.tsx new file mode 100644 index 0000000..232f35c --- /dev/null +++ b/src/components/home-page/details/index.test.tsx @@ -0,0 +1,125 @@ +import { render, screen, fireEvent, waitFor } from '@testing-library/react'; +import Details from './index'; +import { useSearchParams, usePathname, useRouter } from 'next/navigation'; +import { useFetchByIdQuery } from '../../../services/PeopleService'; +import { Theme, ThemeContext } from '../../../context/themeContext'; +import { CharacterDetailsBuilder } from '../../tests/utils/characterDetailsBuilder'; +import { Provider } from 'react-redux'; +import { createStore } from '@reduxjs/toolkit'; + +jest.mock('next/navigation', () => ({ + useSearchParams: jest.fn(), + usePathname: jest.fn(), + useRouter: jest.fn(), +})); + +jest.mock('../../../services/PeopleService', () => ({ + useFetchByIdQuery: jest.fn(), +})); + +const mockUseSearchParams = useSearchParams as jest.Mock; +const mockUsePathname = usePathname as jest.Mock; +const mockUseRouter = useRouter as jest.Mock; +const mockUseFetchByIdQuery = useFetchByIdQuery as jest.Mock; + +const mockCharacterName = 'Luke Skywalker'; +const mockCharacter = new CharacterDetailsBuilder() + .setName(mockCharacterName) + .setHeight('172') + .setMass('77') + .setGender('male') + .setBirthYear('19BBY') + .setHairColor('blond') + .setSkinColor('fair') + .setEyeColor('blue') + .build(); + +const mockReducer = (state = {}) => state; +const store = createStore(mockReducer); + +describe('Details Component', () => { + beforeEach(() => { + jest.clearAllMocks(); + mockUseSearchParams.mockReturnValue(new URLSearchParams({ id: '1' })); + mockUsePathname.mockReturnValue('/details'); + mockUseRouter.mockReturnValue({ push: jest.fn() }); + }); + + const setup = ( + options: { + theme?: Theme; + mockData?: any; + isLoading?: boolean; + error?: Error | null; + id?: string | null; + } = {} + ) => { + const { + theme = 'light', + mockData = null, + isLoading = false, + error = null, + } = options; + + mockUseFetchByIdQuery.mockReturnValue({ + data: mockData, + isLoading, + error, + }); + + return render( + + +
    + + + ); + }; + + test('renders loading state initially', () => { + setup({ isLoading: true }); + + expect(screen.getByAltText('Loading')).toBeInTheDocument(); + }); + + test('fetches and displays character details', async () => { + setup({ mockData: mockCharacter }); + + await waitFor(() => { + expect(screen.getByText(mockCharacterName)).toBeInTheDocument(); + expect(screen.getByText('Height:')).toBeInTheDocument(); + expect(screen.getByText('172')).toBeInTheDocument(); + expect(screen.getByText('Mass:')).toBeInTheDocument(); + expect(screen.getByText('77')).toBeInTheDocument(); + expect(screen.getByText('Gender:')).toBeInTheDocument(); + expect(screen.getByText('male')).toBeInTheDocument(); + }); + }); + + test('displays an error message if fetch fails', async () => { + setup({ error: new Error('Network error') }); + + await waitFor(() => { + expect( + screen.getByText('Failed to load character details.') + ).toBeInTheDocument(); + }); + }); + + test('closes details when the close button is clicked', async () => { + const mockPush = jest.fn(); + mockUseRouter.mockReturnValue({ push: mockPush }); + + setup({ mockData: mockCharacter }); + + await waitFor(() => + expect(screen.getByText(mockCharacterName)).toBeInTheDocument() + ); + + const closeButton = screen.getByText('Close'); + fireEvent.click(closeButton); + + expect(mockPush).toHaveBeenCalledTimes(1); + expect(mockPush).toHaveBeenCalledWith('/details?'); + }); +}); diff --git a/src/pages/details-page/index.tsx b/src/components/home-page/details/index.tsx similarity index 66% rename from src/pages/details-page/index.tsx rename to src/components/home-page/details/index.tsx index d5adbb3..beee44c 100644 --- a/src/pages/details-page/index.tsx +++ b/src/components/home-page/details/index.tsx @@ -1,20 +1,29 @@ +'use client'; + +import { useSearchParams, usePathname, useRouter } from 'next/navigation'; import styles from './index.module.scss'; -import React, { useContext } from 'react'; -import { useParams, useOutletContext } from 'react-router-dom'; -import { useFetchByIdQuery } from '../../services/PeopleService'; -import loadGif from '../../assets/icons/load.gif'; -import closeIcon from '../../assets/icons/close.png'; -import { ThemeContext } from '../../context/themeContext'; +import Image from 'next/image'; +import { useContext } from 'react'; import classNames from 'classnames'; +import { ThemeContext } from '../../../context/themeContext'; +import { useFetchByIdQuery } from '../../../services/PeopleService'; -const Details: React.FC = () => { - const { id } = useParams<{ id: string }>(); - const { handleCloseDetails } = useOutletContext<{ - handleCloseDetails: () => void; - }>(); - const { data: details, isLoading, error } = useFetchByIdQuery(id || ''); +const Details = () => { + const searchParams = useSearchParams(); + const router = useRouter(); + const pathname = usePathname(); const { theme } = useContext(ThemeContext); const isLight = theme === 'light'; + const id = searchParams.get('id'); + const { data: details, isLoading, error } = useFetchByIdQuery(id ?? ''); + + if (!id) return null; + + const handleClose = () => { + const params = new URLSearchParams(searchParams); + params.delete('id'); + router.push(`${pathname}?${params.toString()}`); + }; return (
    { [styles.detailsSection_light]: isLight, })} > - {isLoading ? (
    - Loading + Loading
    ) : error ? (
    Failed to load character details.
    diff --git a/src/components/home-page/flyout/index.test.tsx b/src/components/home-page/flyout/index.test.tsx index 1cb652d..b7329e0 100644 --- a/src/components/home-page/flyout/index.test.tsx +++ b/src/components/home-page/flyout/index.test.tsx @@ -12,11 +12,6 @@ jest.mock('react-redux', () => ({ useSelector: jest.fn(), })); -jest.mock( - '../../../assets/icons/downloads.png', - () => 'mocked-downloadsIcon.png' -); - describe('Flyout Component', () => { const store = setupStore(); const mockDispatch = jest.fn(); diff --git a/src/components/home-page/flyout/index.tsx b/src/components/home-page/flyout/index.tsx index bada30a..a4f2ec9 100644 --- a/src/components/home-page/flyout/index.tsx +++ b/src/components/home-page/flyout/index.tsx @@ -1,8 +1,8 @@ +import Image from 'next/image'; import React, { useContext } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import styles from './index.module.scss'; import classNames from 'classnames'; -import downloadsIcon from '../../../assets/icons/downloads.png'; import { RootState } from '../../../store/store'; import { clearSelections } from '../../../store/reducers/SelectedPeoplesSlice'; import { ThemeContext } from '../../../context/themeContext'; @@ -69,9 +69,12 @@ const Flyout: React.FC = ({ selectedCount }) => { Unselect all @@ -57,7 +60,15 @@ const Pagination: React.FC = ({ data-testid="next-page" onClick={(e) => handlePageChange(e, currentPage + 1)} > - Next next + Next + next
    diff --git a/src/components/home-page/search/index.test.tsx b/src/components/home-page/search/index.test.tsx index 8aaa812..45214d7 100644 --- a/src/components/home-page/search/index.test.tsx +++ b/src/components/home-page/search/index.test.tsx @@ -9,7 +9,6 @@ jest.spyOn(Storage.prototype, 'setItem').mockImplementation((key, value) => { console.log(`LocalStorage set: ${key} = ${value}`); }); -jest.mock('../../../assets/icons/search.png', () => 'mocked-search.png'); describe('Search Component', () => { const onSearchMock = jest.fn(); diff --git a/src/components/home-page/search/index.tsx b/src/components/home-page/search/index.tsx index 83b786c..40ab79c 100644 --- a/src/components/home-page/search/index.tsx +++ b/src/components/home-page/search/index.tsx @@ -1,6 +1,7 @@ +import Image from 'next/image'; import React, { useContext } from 'react'; import styles from './index.module.scss'; -import searchIcon from '../../../assets/icons/search.png'; + import useLocalStorage from '../../../hooks/UseLocalStorage'; import { ThemeContext } from '../../../context/themeContext'; import classNames from 'classnames'; @@ -42,7 +43,14 @@ const Search: React.FC = ({ onSearch }) => { placeholder="Search for Star Wars characters..." /> diff --git a/src/components/layout/layout.tsx b/src/components/layout/layout.tsx new file mode 100644 index 0000000..2855f7b --- /dev/null +++ b/src/components/layout/layout.tsx @@ -0,0 +1,27 @@ +import Head from 'next/head'; +import React, { ReactNode } from 'react'; + +type LayoutProps = { + children: ReactNode; + title?: string; + description?: string; +}; + +export default function Layout({ + children, + title = 'My App', + description = 'Test Next.js app with TypeScript', +}: LayoutProps) { + return ( + <> + + {title} + + + + + +
    {children}
    + + ); +} diff --git a/src/components/shared/themeToggle/index.test.tsx b/src/components/shared/themeToggle/index.test.tsx index ee4c6f7..9bfc29b 100644 --- a/src/components/shared/themeToggle/index.test.tsx +++ b/src/components/shared/themeToggle/index.test.tsx @@ -2,9 +2,6 @@ import { render, fireEvent } from '@testing-library/react'; import { ThemeContext, ThemeContextType } from '../../../context/themeContext'; import ThemeToggle from '.'; -jest.mock('../../../assets/icons/moon.png', () => 'mocked-moon.png'); -jest.mock('../../../assets/icons/sun.png', () => 'mocked-sun.png'); - const mockThemeContext: ThemeContextType = { theme: 'light', toggleTheme: jest.fn(), diff --git a/src/components/shared/themeToggle/index.tsx b/src/components/shared/themeToggle/index.tsx index b622db3..2d8d2f2 100644 --- a/src/components/shared/themeToggle/index.tsx +++ b/src/components/shared/themeToggle/index.tsx @@ -1,8 +1,7 @@ +import Image from 'next/image'; import React, { useContext } from 'react'; import { ThemeContext } from '../../../context/themeContext'; import styles from './index.module.scss'; -import moonIcon from '../../../assets/icons/moon.png'; -import sunIcon from '../../../assets/icons/sun.png'; import classNames from 'classnames'; const ThemeToggle: React.FC = () => { @@ -16,9 +15,12 @@ const ThemeToggle: React.FC = () => { [styles.toggle_light]: isLight, })} > - Theme Icon {theme === 'dark' ? 'Dark' : 'Light'} diff --git a/src/context/themeProvider.tsx b/src/context/themeProvider.tsx index 47e4392..081bd58 100644 --- a/src/context/themeProvider.tsx +++ b/src/context/themeProvider.tsx @@ -1,3 +1,5 @@ +'use client'; + import { useState, useEffect, ReactNode, FC } from 'react'; import { ThemeContext } from './themeContext'; @@ -8,9 +10,13 @@ interface ThemeProviderProps { } export const ThemeProvider: FC = ({ children }) => { - const [theme, setTheme] = useState(() => { - return (localStorage.getItem('theme') as Theme) || 'dark'; - }); + const [theme, setTheme] = useState('dark'); + useEffect(() => { + const storedTheme = localStorage.getItem('theme') as Theme | null; + if (storedTheme) { + setTheme(storedTheme); + } + }, []); useEffect(() => { document.body.className = theme; diff --git a/src/index.css b/src/index.css deleted file mode 100644 index d27ad4e..0000000 --- a/src/index.css +++ /dev/null @@ -1,4 +0,0 @@ -.app { - padding: 20px; - font-family: Arial, sans-serif; -} diff --git a/src/main.tsx b/src/main.tsx deleted file mode 100644 index 79c8bcd..0000000 --- a/src/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { StrictMode } from 'react'; -import { createRoot } from 'react-dom/client'; -import './index.css'; -import App from './App.tsx'; -import { Provider } from 'react-redux'; -import { setupStore } from './store/store.ts'; - -const rootElement = document.getElementById('root'); -const store = setupStore(); - -if (!rootElement) { - throw new Error('Root element not found'); -} -createRoot(rootElement).render( - - - - - -); diff --git a/src/pages/404.tsx b/src/pages/404.tsx new file mode 100644 index 0000000..085e5ef --- /dev/null +++ b/src/pages/404.tsx @@ -0,0 +1,5 @@ +import NotFound from './not-found-page'; + +export default function NotFoundPage() { + return ; +} diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx new file mode 100644 index 0000000..ee5c34d --- /dev/null +++ b/src/pages/_app.tsx @@ -0,0 +1,19 @@ +import type { AppProps } from 'next/app'; +import '../styles/globals.scss'; +import { Providers } from './providers'; +import { ThemeProvider } from '../context/themeProvider'; +import Layout from '../components/layout/layout'; + +function App({ Component, pageProps }: AppProps) { + return ( + + + + + + + + ); +} + +export default App; diff --git a/src/pages/details-page/index.test.tsx b/src/pages/details-page/index.test.tsx deleted file mode 100644 index 55e3e47..0000000 --- a/src/pages/details-page/index.test.tsx +++ /dev/null @@ -1,143 +0,0 @@ -import { render, screen, fireEvent, waitFor } from '@testing-library/react'; -import { - MemoryRouter, - Route, - Routes, - useOutletContext, - useParams, -} from 'react-router-dom'; -import Details from './index'; -import { CharacterDetailsBuilder } from '../../components/tests/utils/characterDetailsBuilder'; -import { useFetchByIdQuery } from '../../services/PeopleService'; - -jest.mock('../../assets/icons/load.gif', () => 'mocked-load.gif'); -jest.mock('../../assets/icons/close.png', () => 'mocked-close.png'); - -jest.mock('react-router-dom', () => ({ - ...jest.requireActual('react-router-dom'), - useParams: jest.fn(), - useOutletContext: jest.fn(), -})); - -jest.mock('../../services/PeopleService', () => ({ - useFetchByIdQuery: jest.fn(), -})); - -const mockUseParams = useParams as jest.Mock; -const mockUseOutletContext = useOutletContext as jest.Mock; -const mockUseFetchByIdQuery = useFetchByIdQuery as jest.Mock; - -const mockCharacterName = 'Luke Skywalker'; -const mockCharacter = new CharacterDetailsBuilder() - .setName(mockCharacterName) - .setHeight('172') - .setMass('77') - .setGender('male') - .setBirthYear('19BBY') - .setHairColor('blond') - .setSkinColor('fair') - .setEyeColor('blue') - .build(); - -describe('Details Component', () => { - beforeEach(() => { - jest.clearAllMocks(); - mockUseParams.mockReturnValue({ id: '1' }); - mockUseOutletContext.mockReturnValue({ handleCloseDetails: jest.fn() }); - }); - - test('renders loading state initially', () => { - mockUseFetchByIdQuery.mockReturnValue({ - data: null, - isLoading: true, - error: null, - }); - - render( - - - } /> - - - ); - - expect(screen.getByAltText('Loading')).toBeInTheDocument(); - }); - - test('fetches and displays character details', async () => { - mockUseFetchByIdQuery.mockReturnValue({ - data: mockCharacter, - isLoading: false, - error: null, - }); - - render( - - - } /> - - - ); - - await waitFor(() => { - expect(screen.getByText(mockCharacterName)).toBeInTheDocument(); - expect(screen.getByText('Height:')).toBeInTheDocument(); - expect(screen.getByText('172')).toBeInTheDocument(); - expect(screen.getByText('Mass:')).toBeInTheDocument(); - expect(screen.getByText('77')).toBeInTheDocument(); - expect(screen.getByText('Gender:')).toBeInTheDocument(); - expect(screen.getByText('male')).toBeInTheDocument(); - }); - }); - - test('displays an error message if fetch fails', async () => { - mockUseFetchByIdQuery.mockReturnValue({ - data: null, - isLoading: false, - error: new Error('Network error'), - }); - - render( - - - } /> - - - ); - - await waitFor(() => { - expect( - screen.getByText('Failed to load character details.') - ).toBeInTheDocument(); - }); - }); - - test('closes details when the close button is clicked', async () => { - const mockHandleCloseDetails = jest.fn(); - mockUseFetchByIdQuery.mockReturnValue({ - data: mockCharacter, - isLoading: false, - error: null, - }); - mockUseOutletContext.mockReturnValue({ - handleCloseDetails: mockHandleCloseDetails, - }); - - render( - - - } /> - - - ); - - await waitFor(() => - expect(screen.getByText(mockCharacterName)).toBeInTheDocument() - ); - - const closeButton = screen.getByText('Close'); - fireEvent.click(closeButton); - - expect(mockHandleCloseDetails).toHaveBeenCalledTimes(1); - }); -}); diff --git a/src/pages/home-page/index.module.scss b/src/pages/home-page/index.module.scss index 408e624..4273fc7 100644 --- a/src/pages/home-page/index.module.scss +++ b/src/pages/home-page/index.module.scss @@ -27,8 +27,9 @@ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3); .logo { - img { + .logoIcon { height: 30px; + width: 30px; transition: color 0.3s ease, transform 0.3s ease; @@ -82,18 +83,10 @@ width: 100%; margin-top: 10px; } - - h1 { - font-size: 24px; - } } @media (max-width: 480px) { .topMenu { padding: 10px; } - - h1 { - font-size: 20px; - } } diff --git a/src/pages/home-page/index.test.tsx b/src/pages/home-page/index.test.tsx index a732cc1..5510ff9 100644 --- a/src/pages/home-page/index.test.tsx +++ b/src/pages/home-page/index.test.tsx @@ -1,241 +1,154 @@ -import { fireEvent, render, screen, waitFor } from '@testing-library/react'; -import { MemoryRouter, Route, Routes } from 'react-router-dom'; -import HomePage from './index'; - -import { act } from 'react'; -import { useFetchAllQuery } from '../../services/PeopleService'; -import { setupStore } from '../../store/store'; -import { ThemeContext, ThemeContextType } from '../../context/themeContext'; +import { render, screen, fireEvent } from '@testing-library/react'; +import { useRouter } from 'next/navigation'; +import Details from '../../components/home-page/details'; +import { CharacterDetailsBuilder } from '../../components/tests/utils/characterDetailsBuilder'; import { Provider } from 'react-redux'; +import { createStore } from '@reduxjs/toolkit'; +import { useFetchByIdQuery } from '../../services/PeopleService'; +jest.mock('next/navigation', () => ({ + useSearchParams: jest.fn(() => new URLSearchParams('?id=123')), + useRouter: jest.fn(() => ({ push: jest.fn() })), + usePathname: jest.fn(() => '/home'), +})); jest.mock('../../services/PeopleService', () => ({ - peopleAPI: { - reducerPath: 'peopleAPI', - reducer: () => ({}), - middleware: () => (next: (action: unknown) => void) => (action: unknown) => - next(action), - }, - useFetchAllQuery: jest.fn(), + useFetchByIdQuery: jest.fn(), })); +const mockUseFetchByIdQuery = useFetchByIdQuery as jest.Mock; global.fetch = jest.fn(); - -jest.mock('react-router-dom', () => ({ - ...jest.requireActual('react-router-dom'), - useNavigate: jest.fn(), -})); - -jest.mock('../../assets/icons/logo.png', () => 'mocked-logoIcon.png'); -jest.mock('../../assets/icons/load.gif', () => 'mocked-load.gif'); -jest.mock('../../assets/icons/search.png', () => 'mocked-search.png'); -jest.mock('../../assets/icons/next.png', () => 'mocked-next.png'); -jest.mock('../../assets/icons/previous.png', () => 'mocked-previous.png'); -jest.mock('../../assets/icons/downloads.png', () => 'mocked-downloads.png'); -jest.mock('../../assets/icons/moon.png', () => 'mocked-moon.png'); -jest.mock('../../assets/icons/sun.png', () => 'mocked-sun.png'); - -jest.mock( - '../../assets/icons/checkbox_false.png', - () => 'mocked-checkbox_false.png' -); -jest.mock( - '../../assets/icons/checkbox_true.png', - () => 'mocked-checkbox_true.png' -); -jest.mock( - '../../assets/icons/checkbox_minus.png', - () => 'mocked-checkbox_minus.png' -); - -describe('HomePage Component', () => { - const store = setupStore(); - - const setup = ({ mockThemeContext = defaultThemeContext } = {}) => - render( - - - - - - - - ); +const mockReducer = (state = {}) => state; +const store = createStore(mockReducer); + +const mockUseRouter = useRouter as jest.Mock; +const mockCharacterName = 'Luke Skywalker'; +const mockCharacter = new CharacterDetailsBuilder() + .setName(mockCharacterName) + .setHeight('172') + .setMass('77') + .setGender('male') + .setBirthYear('19BBY') + .setHairColor('blond') + .setSkinColor('fair') + .setEyeColor('blue') + .build(); + +describe('Details Component', () => { + let consoleErrorMock: jest.SpyInstance; beforeEach(() => { jest.clearAllMocks(); - (useFetchAllQuery as jest.Mock).mockReturnValue({ - data: { results: [], count: 0 }, - isLoading: false, - error: null, - }); + consoleErrorMock = jest + .spyOn(console, 'error') + .mockImplementation(() => {}); + mockUseRouter.mockReturnValue({ query: { id: '1' }, push: jest.fn() }); }); - const defaultThemeContext: ThemeContextType = { - theme: 'light', - toggleTheme: jest.fn(), - }; - - const mockSkywalker = { - name: 'Luke Skywalker', - url: 'https://swapi.dev/api/people/1/', - }; - - const mockDarthVader = { - name: 'Darth Vader', - url: 'https://swapi.dev/api/people/4/', - }; - - test('renders logo and search bar', async () => { - await act(async () => { - setup(); - }); - expect(screen.getByAltText('logo')).toBeInTheDocument(); - expect(screen.getByText('Search')).toBeInTheDocument(); + afterEach(() => { + consoleErrorMock.mockRestore(); }); - it('handles search input correctly', async () => { - setup(); - - const searchInput = screen.getByRole('textbox'); - fireEvent.change(searchInput, { target: { value: 'Luke' } }); - - await waitFor(() => { - expect(localStorage.getItem('searchItem')).toBe('Luke'); + test('renders loading state initially', () => { + (fetch as jest.Mock).mockResolvedValueOnce({ + ok: true, + json: async () => mockCharacter, }); - }); - it('updates pagination correctly', async () => { - (useFetchAllQuery as jest.Mock).mockReturnValue({ - data: { - results: [mockSkywalker], - count: 40, - }, + mockUseFetchByIdQuery.mockReturnValue({ + data: mockCharacter, isLoading: false, error: null, }); render( - - - - } /> - - - +
    ); - - await waitFor(() => { - expect(screen.getByText(/Page 2/i)).toBeInTheDocument(); - }); - }); - - it('displays loading state correctly', async () => { - (useFetchAllQuery as jest.Mock).mockReturnValue({ - data: null, - isLoading: true, - error: null, - }); - - setup(); - expect(screen.getByAltText('Loading')).toBeInTheDocument(); }); - it('displays error message when API call fails', async () => { - (useFetchAllQuery as jest.Mock).mockReturnValue({ - data: null, - isLoading: false, - error: true, + test('fetches and displays character details', async () => { + (fetch as jest.Mock).mockResolvedValueOnce({ + ok: true, + json: async () => mockCharacter, }); - setup(); + render( + +
    + + ); - expect( - await screen.findByText( - /Oops! Something went wrong. Please check your internet connection./i - ) - ).toBeInTheDocument(); + expect(await screen.findByText(mockCharacterName)).toBeInTheDocument(); + expect(screen.getByText('Height:')).toBeInTheDocument(); + expect(screen.getByText('172')).toBeInTheDocument(); + expect(screen.getByText('Mass:')).toBeInTheDocument(); + expect(screen.getByText('77')).toBeInTheDocument(); + expect(screen.getByText('Gender:')).toBeInTheDocument(); + expect(screen.getByText('male')).toBeInTheDocument(); }); - test('renders "No results found" when results are empty', async () => { - (useFetchAllQuery as jest.Mock).mockReturnValue({ - data: { results: [], count: 0 }, - isLoading: false, - error: null, - }); + test('displays an error message if fetch fails', async () => { + (fetch as jest.Mock).mockRejectedValueOnce(new Error('Network error')); - setup(); + render( + +
    + + ); expect( - screen.getByText( - /No results found. Please try a different search query./i - ) + await screen.findByText(/Failed to fetch details/i) ).toBeInTheDocument(); + expect(consoleErrorMock).toHaveBeenCalledWith( + expect.stringContaining('Failed to fetch details:'), + expect.any(Error) + ); }); - test('renders character cards when results are available', async () => { - (useFetchAllQuery as jest.Mock).mockReturnValue({ - data: { - results: [mockSkywalker, mockDarthVader], - count: 2, - }, - isLoading: false, - error: null, - }); - - setup(); - - expect(screen.getByText(/Luke Skywalker/i)).toBeInTheDocument(); - expect(screen.getByText(/Darth Vader/i)).toBeInTheDocument(); - }); + test('closes details when the close button is clicked', async () => { + const mockPush = jest.fn(); + mockUseRouter.mockReturnValue({ query: { id: '1' }, push: mockPush }); - test('renders pagination when results are available and not loading', async () => { - (useFetchAllQuery as jest.Mock).mockReturnValue({ - data: { - results: [mockSkywalker], - count: 20, - }, - isLoading: false, - error: null, + (fetch as jest.Mock).mockResolvedValueOnce({ + ok: true, + json: async () => mockCharacter, }); - setup(); - - await waitFor(() => { - expect(screen.getByText(/Next/i)).toBeInTheDocument(); - }); - }); + render( + +
    + + ); - test('does not render pagination when loading', async () => { - (useFetchAllQuery as jest.Mock).mockReturnValue({ - data: { - results: [mockSkywalker], - count: 20, - }, - isLoading: true, - error: null, - }); + expect(await screen.findByText(mockCharacterName)).toBeInTheDocument(); - setup(); + const closeButton = screen.getByText('Close'); + fireEvent.click(closeButton); - expect(screen.queryByText(/Next/i)).not.toBeInTheDocument(); + expect(mockPush).toHaveBeenCalledWith('/home'); }); - test('toggles theme when theme button is clicked', async () => { - const mockToggleTheme = jest.fn(); - const mockThemeContext: ThemeContextType = { - theme: 'dark', - toggleTheme: mockToggleTheme, - }; - - setup({ mockThemeContext }); - - const toggleButton = screen.getByRole('button', { name: /dark/i }); + test('handles HTTP error when response is not ok', async () => { + (fetch as jest.Mock).mockResolvedValueOnce({ + ok: false, + status: 404, + json: async () => ({ message: 'Not found' }), + }); - fireEvent.click(toggleButton); + render( + +
    + + ); - expect(mockToggleTheme).toHaveBeenCalledTimes(1); + expect( + await screen.findByText(/Failed to fetch details/i) + ).toBeInTheDocument(); + expect(consoleErrorMock).toHaveBeenCalledWith( + expect.stringContaining('Failed to fetch details:'), + expect.any(Error) + ); }); }); diff --git a/src/pages/home-page/index.tsx b/src/pages/home-page/index.tsx index 901d3e3..66a3a80 100644 --- a/src/pages/home-page/index.tsx +++ b/src/pages/home-page/index.tsx @@ -1,31 +1,32 @@ +import Image from 'next/image'; +import styles from './index.module.scss'; import React, { useState, useEffect, useContext } from 'react'; -import { useNavigate, useLocation, Outlet } from 'react-router-dom'; +import { useSearchParams, usePathname, useRouter } from 'next/navigation'; import { useSelector } from 'react-redux'; - -import Pagination from '../../components/home-page/pagination'; +import classNames from 'classnames'; import { ITEMS_PER_PAGE } from '../../consts/constants'; -import logoIcon from '../../assets/icons/logo.png'; +import { ThemeContext } from '../../context/themeContext'; +import Pagination from '../../components/home-page/pagination'; import Search from '../../components/home-page/search'; import ThemeToggle from '../../components/shared/themeToggle'; -import { ThemeContext } from '../../context/themeContext'; -import classNames from 'classnames'; -import styles from './index.module.scss'; import { useFetchAllQuery } from '../../services/PeopleService'; import { RootState } from '../../store/store'; import Flyout from '../../components/home-page/flyout'; import CardList from '../../components/home-page/card-list'; +import Details from '../../components/home-page/details'; +import Link from 'next/link'; const HomePage: React.FC = () => { const [currentPage, setCurrentPage] = useState(1); - const [searchItem, setSearchItem] = useState( - localStorage.getItem('searchItem') ?? '' - ); - const navigate = useNavigate(); - const location = useLocation(); + const [searchItem, setSearchItem] = useState(''); const { theme } = useContext(ThemeContext); - const isLight = theme === 'light'; + const searchParams = useSearchParams(); + const id = searchParams.get('id'); + const router = useRouter(); + const pathname = usePathname(); + const { data, error, isLoading } = useFetchAllQuery({ search: searchItem, page: currentPage, @@ -39,58 +40,43 @@ const HomePage: React.FC = () => { ); const selectedCount = Object.values(selectedPeoples).filter(Boolean).length; + useEffect(() => { + const storedSearchItem = localStorage.getItem('searchItem'); + if (storedSearchItem) { + setSearchItem(storedSearchItem); + } + }, []); + + useEffect(() => { + if (data) { + const pageParam = searchParams.get('frontpage'); + const page = pageParam ? parseInt(pageParam, 10) : 1; + + if (totalPages && (page < 1 || page > totalPages)) { + router.push('/not-found'); + } else { + setCurrentPage(page); + } + } + }, [data, totalPages, searchParams, router]); + const handleSearch = (term: string) => { setCurrentPage(1); - updateUrl(1, null); + router.push(`${pathname}?frontpage=1`); setSearchItem(term); localStorage.setItem('searchItem', term); }; const handlePageChange = (page: number) => { - updateUrl(page, null); + router.push(`${pathname}?frontpage=${page}`); setCurrentPage(page); }; const handleItemClick = (id: string) => { - updateUrl(currentPage, id); - }; - - const handleCloseDetails = () => { - updateUrl(currentPage, null); + router.push(`${pathname}?frontpage=${currentPage}&id=${id}`); }; - const handleLeftSectionClick = () => { - if (showDetails) { - handleCloseDetails(); - } - }; - - const updateUrl = (page: number, detailsId: string | null) => { - const searchParams = new URLSearchParams(location.search); - searchParams.set('frontpage', page.toString()); - - let newPath; - if (detailsId) { - newPath = `/home/details/${detailsId}`; - } else { - newPath = '/home'; - } - - navigate(`${newPath}?${searchParams.toString()}`); - }; - - const showDetails = location.pathname.includes('details'); - - useEffect(() => { - const searchParams = new URLSearchParams(location.search); - const page = parseInt(searchParams.get('frontpage') ?? '1', 10); - - if (totalPages && (page < 1 || page > totalPages)) { - navigate('/not-found', { replace: true }); - } else { - setCurrentPage(page); - } - }, [totalPages, navigate, location.search]); + const showDetails = Boolean(id); return ( <> @@ -100,7 +86,16 @@ const HomePage: React.FC = () => { })} >
    - logo + + logo +
    @@ -112,7 +107,7 @@ const HomePage: React.FC = () => {

    Star Wars Character Search

    -
    +
    { /> )}
    + {showDetails && (
    - +
    )}
    diff --git a/src/pages/home.tsx b/src/pages/home.tsx new file mode 100644 index 0000000..7d3a055 --- /dev/null +++ b/src/pages/home.tsx @@ -0,0 +1,7 @@ +'use client'; + +import HomePage from './home-page'; + +export default function Home() { + return ; +} diff --git a/src/pages/index-page/index.module.scss b/src/pages/index-page/index.module.scss new file mode 100644 index 0000000..795e54e --- /dev/null +++ b/src/pages/index-page/index.module.scss @@ -0,0 +1,114 @@ +@use '../../styles/colors.scss' as *; + +@keyframes gradientAnimation { + 0% { + background-position: 0% 25%; + background-color: #cfff5f; + } + 25% { + background-position: 50% 50%; + background-color: #ff5f5f; + } + 50% { + background-position: 100% 50%; + background-color: #e7a10a; + } + 75% { + background-position: 50% 50%; + background-color: #ff7e5f; + } + 100% { + background-position: 0% 25%; + background-color: #a50c0c; + } +} + +.container { + background-color: #00000013; + color: $text-light; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + text-align: center; + padding: 20px; + + background-image: linear-gradient(to right, #333 1px, transparent 1px), + linear-gradient(to bottom, #333 1px, transparent 1px); + background-size: 40px 40px; + + .title { + font-size: 2rem; + margin-bottom: 10px; + background-image: linear-gradient(90deg, #ff3300, #fbff1e, #ff9900); + background-size: 200% 100%; + background-clip: text; + -webkit-background-clip: text; + color: transparent; + animation: gradientAnimation 3s infinite linear; + display: inline-block; + text-transform: uppercase; + } + + .description { + font-size: 1.2rem; + max-width: 600px; + margin-bottom: 20px; + } + + .imageGrid { + display: flex; + gap: 20px; + justify-content: center; + align-items: center; + flex-wrap: wrap; + margin-bottom: 20px; + + .imageContainer { + display: flex; + flex-direction: column; + align-items: center; + } + + .imageText { + margin-top: 8px; + font-size: 1rem; + color: $text-dark; + } + } + + .link { + font-size: 1.2rem; + + color: #eeff00; + text-decoration: none; + margin-top: 20px; + transition: color 0.3s ease-in-out; + + &:hover { + color: #ff9900; + } + } + + &_light { + background-image: linear-gradient( + to right, + $light-input 1px, + transparent 1px + ), + linear-gradient(to bottom, $light-input 1px, transparent 1px); + background-size: 40px 40px; + + background-color: #00000013; + color: $text-black; + + .link { + color: #ff9900; + + &:hover { + color: #ff5e1e; + } + } + } +} diff --git a/src/pages/index-page/index.tsx b/src/pages/index-page/index.tsx new file mode 100644 index 0000000..9c91a18 --- /dev/null +++ b/src/pages/index-page/index.tsx @@ -0,0 +1,76 @@ +//'use client'; + +import Head from 'next/head'; +import Image from 'next/image'; +import Link from 'next/link'; +import styles from './index.module.scss'; +import { useContext } from 'react'; +import classNames from 'classnames'; +import { ThemeContext } from '../../context/themeContext'; + +const IndexPage: React.FC = () => { + const { theme } = useContext(ThemeContext); + const isLight = theme === 'light'; + + return ( + <> + + Test App + + + + +
    +

    RS School React Labs Project

    +

    + This project is developed as part task in the RS School React course. + It utilizes Next.js for server-side rendering and enhanced + performance. +

    +
    +
    + RS School Logo +

    RS School

    +
    +
    + React.js Logo +

    React.js

    +
    +
    + Next.js Logo +

    Next.js

    +
    +
    + +
    + + ); +}; + +export default IndexPage; diff --git a/src/pages/index.tsx b/src/pages/index.tsx new file mode 100644 index 0000000..0a2cd13 --- /dev/null +++ b/src/pages/index.tsx @@ -0,0 +1,5 @@ +import IndexPage from './index-page'; + +export default function Home() { + return ; +} diff --git a/src/pages/not-found-page/index.module.scss b/src/pages/not-found-page/index.module.scss index 2a91b29..6788875 100644 --- a/src/pages/not-found-page/index.module.scss +++ b/src/pages/not-found-page/index.module.scss @@ -1,28 +1,144 @@ @use '../../styles/colors.scss' as *; .notFound { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + min-height: 100vh; + color: $text-light; + text-align: center; + padding: 20px; + font-family: 'Roboto', sans-serif; + + .header { + font-size: 4rem; + color: $red-button; + margin-bottom: 20px; + animation: fadeIn 1s ease-out; + + &:hover { + color: $red-button-hover; + } + } + + .description, + .redirect { + font-size: 1.2rem; + color: $text-light; + margin: 10px 0; + max-width: 600px; + animation: fadeIn 1s ease-out; + } + .pageNotFoundContainer { display: flex; justify-content: center; align-items: center; + margin: 30px 0; .pageNotFoundImage { - width: 20%; - height: 20%; + width: 250px; + height: auto; + animation: zoomIn 1.5s ease-out; } } .linkGoHome { - color: $text-dark; + font-size: 1.5rem; + color: $text-light; + background-color: $red-button; + padding: 10px 30px; + border-radius: 30px; text-decoration: none; - transition: color 0.3s ease-in-out; + display: inline-block; + transition: all 0.3s ease; + margin-top: 20px; &:hover { - color: $red-button; + background-color: $red-button-hover; + transform: scale(1.05); } &:active { - color: $red-button-hover; + background-color: $red-button-hover; + transform: scale(1); + } + } +} + +@keyframes fadeIn { + 0% { + opacity: 0; + transform: translateY(-20px); + } + 100% { + opacity: 1; + transform: translateY(0); + } +} + +@keyframes zoomIn { + 0% { + transform: scale(0.8); + opacity: 0; + } + 100% { + transform: scale(1); + opacity: 1; + } +} + +@media (max-width: 768px) { + .notFound { + padding: 15px; + + .header { + font-size: 2.5rem; + margin-bottom: 15px; + } + + .description, + .redirect { + font-size: 1rem; + max-width: 90%; + } + + .pageNotFoundContainer { + .pageNotFoundImage { + width: 150px; + } + } + + .linkGoHome { + font-size: 1.2rem; + padding: 8px 20px; + } + } +} + +@media (max-width: 480px) { + .notFound { + .header { + font-size: 2rem; + } + + .description, + .redirect { + font-size: 0.9rem; + } + + .pageNotFoundContainer { + margin: 20px 0; + + .pageNotFoundImage { + width: 100px; + } + } + + .linkGoHome { + font-size: 1.1rem; + padding: 8px 15px; } } } diff --git a/src/pages/not-found-page/index.test.tsx b/src/pages/not-found-page/index.test.tsx index 8ee3fac..339244e 100644 --- a/src/pages/not-found-page/index.test.tsx +++ b/src/pages/not-found-page/index.test.tsx @@ -1,46 +1,34 @@ import { render, screen } from '@testing-library/react'; -import { BrowserRouter as Router } from 'react-router-dom'; -import NotFound from '.'; +import NotFound from '../404'; +import '@testing-library/jest-dom'; -jest.mock('../../assets/icons/404.png', () => 'mocked-404.png'); +describe('NotFound Component', () => { + it('renders the 404 message', () => { + render(); -describe('NotFound component', () => { - const renderNotFound = () => { - render( - - - - ); - }; + expect(screen.getByText('404 - Page Not Found')).toBeInTheDocument(); - test('renders 404 page with correct text', () => { - renderNotFound(); - - expect(screen.getByText(/404 - Page Not Found/i)).toBeInTheDocument(); expect( - screen.getByText(/The page you are looking for does not exist./i) + screen.getByText('The page you are looking for does not exist.') ).toBeInTheDocument(); + expect( - screen.getByText( - /You will be automatically redirected to the home page./i - ) + screen.getByText('You will be automatically redirected to the home page.') ).toBeInTheDocument(); }); - test('renders image with 404 class', () => { - renderNotFound(); + it('renders the 404 image', () => { + render(); - const image = screen.getByAltText('404') as HTMLImageElement; + const image = screen.getByAltText('404'); expect(image).toBeInTheDocument(); - expect(image).toHaveClass('pageNotFoundImage'); - expect(image.src).toContain('mocked-404.png'); }); - test('renders "Go to Home" link', () => { - renderNotFound(); + it('renders the "Go to Home" link', () => { + render(); - const link = screen.getByText(/Go to Home/i); + const link = screen.getByRole('link', { name: /go to home/i }); expect(link).toBeInTheDocument(); - expect(link).toHaveAttribute('href', '/'); + expect(link).toHaveAttribute('href', '/home'); }); }); diff --git a/src/pages/not-found-page/index.tsx b/src/pages/not-found-page/index.tsx index 6f08228..117199c 100644 --- a/src/pages/not-found-page/index.tsx +++ b/src/pages/not-found-page/index.tsx @@ -1,21 +1,30 @@ -import image404 from '../../assets/icons/404.png'; -import { Link } from 'react-router-dom'; +import Image from 'next/image'; +import Link from 'next/link'; import styles from './index.module.scss'; -const NotFound = () => { +export default function NotFound() { return (
    -

    404 - Page Not Found

    -

    The page you are looking for does not exist.

    -

    You will be automatically redirected to the home page.

    +

    404 - Page Not Found

    +

    + The page you are looking for does not exist. +

    +

    + You will be automatically redirected to the home page. +

    - 404 + 404
    - + Go to Home
    ); -}; - -export default NotFound; +} diff --git a/src/pages/providers.tsx b/src/pages/providers.tsx new file mode 100644 index 0000000..99b3752 --- /dev/null +++ b/src/pages/providers.tsx @@ -0,0 +1,10 @@ +'use client'; + +import { Provider } from 'react-redux'; +import { setupStore } from '../store/store'; + +const store = setupStore(); + +export function Providers({ children }: { children: React.ReactNode }) { + return {children}; +} diff --git a/src/pages/test-page/index.test.tsx b/src/pages/test-page/index.test.tsx deleted file mode 100644 index 751edfe..0000000 --- a/src/pages/test-page/index.test.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { render, screen } from '@testing-library/react'; -import { MemoryRouter } from 'react-router-dom'; -import TestPage from './index'; -import { useParams } from 'react-router-dom'; - -jest.mock('react-router-dom', () => ({ - ...jest.requireActual('react-router-dom'), - useParams: jest.fn(), -})); - -describe('TestPage', () => { - it('renders correctly with mocked id from URL', () => { - (useParams as jest.Mock).mockReturnValue({ id: '123' }); - - render( - - - - ); - - expect(screen.getByText('TestPaget123')).toBeInTheDocument(); - }); - - it('renders correctly with a different mocked id', () => { - (useParams as jest.Mock).mockReturnValue({ id: '456' }); - - render( - - - - ); - - expect(screen.getByText('TestPaget456')).toBeInTheDocument(); - }); -}); diff --git a/src/pages/test-page/index.tsx b/src/pages/test-page/index.tsx deleted file mode 100644 index 907613c..0000000 --- a/src/pages/test-page/index.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; -import { useParams } from 'react-router-dom'; - -const TestPage: React.FC = () => { - const { id } = useParams<{ id: string }>(); - return
    TestPaget{id}
    ; -}; - -export default TestPage; diff --git a/src/services/PeopleService.test.tsx b/src/services/PeopleService.test.tsx new file mode 100644 index 0000000..b601a0d --- /dev/null +++ b/src/services/PeopleService.test.tsx @@ -0,0 +1,182 @@ +import { renderHook, waitFor } from '@testing-library/react'; +import { Provider } from 'react-redux'; +import { useFetchAllQuery, useFetchByIdQuery } from './PeopleService'; +import fetchMock from 'jest-fetch-mock'; +import { setupStore } from '../store/store'; +import { ReactNode } from 'react'; +import { API_BASE_URL } from '../consts/urls'; + +const store = setupStore(); +describe('peopleAPI', () => { + function wrapper({ children }: { children: ReactNode }) { + return {children}; + } + + beforeEach(() => { + fetchMock.enableMocks(); + }); + + afterEach(() => { + fetchMock.resetMocks(); + fetchMock.disableMocks(); + }); + + it('fetches a list of characters', async () => { + const endpointName = 'fetchAll'; + const people = '/people/'; + const data = { + results: [{ id: '1', name: 'Luke Skywalker' }], + count: 1, + }; + const searchItem = 'searchItem'; + const currentPage = 2; + const url = `${API_BASE_URL}${people}?search=${searchItem}&page=${currentPage}`; + fetchMock.mockOnceIf(url, () => + Promise.resolve({ + status: 200, + body: JSON.stringify(data), + }) + ); + const { result } = renderHook( + () => + useFetchAllQuery({ + search: searchItem, + page: currentPage, + }), + { + wrapper, + } + ); + + expect(result.current).toMatchObject({ + status: 'pending', + endpointName, + isLoading: true, + isSuccess: false, + isError: false, + isFetching: true, + }); + + await waitFor(() => expect(fetchMock).toHaveBeenCalledTimes(1)); + const calledRequest = fetchMock.mock.calls[0][0]; + + const calledUrl = + calledRequest instanceof Request ? calledRequest.url : calledRequest; + expect(calledUrl).toBe(url); + + expect(result.current).toMatchObject({ + status: 'fulfilled', + endpointName, + data, + isLoading: false, + isSuccess: true, + isError: false, + currentData: data, + isFetching: false, + }); + }); + + it('fetches a list of characters without searchItem and currentPage', async () => { + const endpointName = 'fetchAll'; + const people = '/people/'; + const data = { + results: [{ id: '1', name: 'Luke Skywalker' }], + count: 1, + }; + const searchItem = undefined; + const currentPage = undefined; + const url = `${API_BASE_URL}${people}?search=&page=1`; + fetchMock.mockOnceIf(url, () => + Promise.resolve({ + status: 200, + body: JSON.stringify(data), + }) + ); + const { result } = renderHook( + () => + useFetchAllQuery({ + search: searchItem, + page: currentPage, + }), + { + wrapper, + } + ); + + expect(result.current).toMatchObject({ + status: 'pending', + endpointName, + isLoading: true, + isSuccess: false, + isError: false, + isFetching: true, + }); + + await waitFor(() => expect(fetchMock).toHaveBeenCalledTimes(1)); + const calledRequest = fetchMock.mock.calls[0][0]; + + const calledUrl = + calledRequest instanceof Request ? calledRequest.url : calledRequest; + expect(calledUrl).toBe(url); + + expect(result.current).toMatchObject({ + status: 'fulfilled', + endpointName, + data, + isLoading: false, + isSuccess: true, + isError: false, + currentData: data, + isFetching: false, + }); + }); + + it('fetches a character by ID', async () => { + const endpointName = 'fetchById'; + const characterId = '1'; + const urlFetchById = `${API_BASE_URL}/people/${characterId}/`; + const characterData = { + id: '1', + name: 'Luke Skywalker', + height: '172', + mass: '77', + }; + fetchMock.mockOnceIf(urlFetchById, JSON.stringify(characterData)); + + fetchMock.mockOnceIf(urlFetchById, () => + Promise.resolve({ + status: 200, + body: JSON.stringify(characterData), + }) + ); + const { result } = renderHook(() => useFetchByIdQuery(characterId), { + wrapper, + }); + + expect(result.current).toMatchObject({ + status: 'pending', + endpointName, + isLoading: true, + isSuccess: false, + isError: false, + }); + await waitFor(() => expect(fetchMock).toHaveBeenCalledTimes(1)); + const calledRequest = fetchMock.mock.calls[0][0]; + + const calledUrl = + calledRequest instanceof Request ? calledRequest.url : calledRequest; + expect(calledUrl).toBe(urlFetchById); + + await waitFor(() => expect(result.current.isSuccess).toBe(true)); + expect(result.current).toMatchObject({ + status: 'fulfilled', + endpointName, + data: characterData, + isLoading: false, + isSuccess: true, + isError: false, + currentData: characterData, + isFetching: false, + }); + }); +}); diff --git a/src/index.scss b/src/styles/globals.scss similarity index 94% rename from src/index.scss rename to src/styles/globals.scss index 38223ef..efafaac 100644 --- a/src/index.scss +++ b/src/styles/globals.scss @@ -1,4 +1,4 @@ -@use './styles/colors.scss' as *; +@use './colors.scss' as *; body { margin: 0; diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts deleted file mode 100644 index 11f02fe..0000000 --- a/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/tsconfig.json b/tsconfig.json index 1ffef60..4c44351 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,32 @@ { - "files": [], - "references": [ - { "path": "./tsconfig.app.json" }, - { "path": "./tsconfig.node.json" } - ] + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "esModuleInterop": true, + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "allowSyntheticDefaultImports": true, + "noEmit": true, + "jsx": "preserve", + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "allowJs": true, + "forceConsistentCasingInFileNames": true, + "incremental": true, + "plugins": [{ "name": "next" }] + }, + "include": [ + "./src", + "./dist/types/**/*.ts", + "./next-env.d.ts", + "./declarations.d.ts" + ], + "exclude": ["./node_modules"] } diff --git a/tsconfig.node.json b/tsconfig.node.json deleted file mode 100644 index db0becc..0000000 --- a/tsconfig.node.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "compilerOptions": { - "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", - "target": "ES2022", - "lib": ["ES2023"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "isolatedModules": true, - "moduleDetection": "force", - "noEmit": true, - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true, - "noUncheckedSideEffectImports": true - }, - "include": ["vite.config.ts"] -} diff --git a/vite.config.ts b/vite.config.ts deleted file mode 100644 index 6da11b5..0000000 --- a/vite.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react-swc'; - -// https://vite.dev/config/ -export default defineConfig({ - plugins: [react()], -});