From 259d3bb2c123de7569ce020cfd06e8255bef954b Mon Sep 17 00:00:00 2001 From: Eugene Date: Sat, 20 Jul 2024 15:38:36 +0600 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20eslint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc.json | 31 +- README.md | 14 + app/documentation/privacy-policy/page.tsx | 13 +- app/documentation/terms-of-use/page.tsx | 13 +- app/not-found.tsx | 8 +- app/page.tsx | 12 +- app/portfolio/page.tsx | 10 +- components/ErrorContainer/index.tsx | 7 +- components/Footer/index.tsx | 1 + components/Header/Header.module.css | 1 + .../components/ButtonNavigate/index.tsx | 3 +- .../Header/components/MenuRight/index.tsx | 10 +- components/Header/index.tsx | 13 +- components/Loading/loading.tsx | 6 +- components/PageContainer/index.tsx | 1 + components/PageView/index.tsx | 1 + package-lock.json | 289 +++++++++++++++--- package.json | 2 + 18 files changed, 354 insertions(+), 81 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index bffb357..799391f 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,3 +1,32 @@ { - "extends": "next/core-web-vitals" + "plugins": ["react", "import"], + "extends": [ + "next/core-web-vitals", + "plugin:@typescript-eslint/recommended", + "plugin:import/recommended", + "plugin:import/typescript" + ], + + "rules": { + "import/no-named-default": "off", + "import/no-unresolved": "error", + "import/order": [ + "error", + { + "groups": [ + "builtin", + "external", + "internal", + ["sibling", "parent"], + "index", + "unknown" + ], + "newlines-between": "always", + "alphabetize": { + "order": "asc", + "caseInsensitive": true + } + } + ] + } } diff --git a/README.md b/README.md index 3476715..c0cd9e5 100644 --- a/README.md +++ b/README.md @@ -58,3 +58,17 @@ These rules redirect requests to a secure connection (HTTPS), which is important `emailjs-com` `react-input-mask` + +## Eslint commands + +Error checking: + +``` +npm run lint +``` + +Error correction + +``` +npm run lint -- --fix +``` diff --git a/app/documentation/privacy-policy/page.tsx b/app/documentation/privacy-policy/page.tsx index e9b8ed3..e286c2a 100644 --- a/app/documentation/privacy-policy/page.tsx +++ b/app/documentation/privacy-policy/page.tsx @@ -1,11 +1,12 @@ -import type { Metadata } from "next"; -import type { Viewport } from "next"; -import styles from "../Documentation.module.css"; -import PageView from "@/components/PageView"; -import Loading from "@/components/Loading/loading"; +import type { Metadata , Viewport } from "next"; + +import Footer from "@/components/Footer"; import Header from "@/components/Header"; +import Loading from "@/components/Loading/loading"; import PageContainer from "@/components/PageContainer"; -import Footer from "@/components/Footer"; +import PageView from "@/components/PageView"; + +import styles from "../Documentation.module.css"; export const metadata: Metadata = { title: "ПОЛИТИКА КОНФИДЕНЦИАЛЬНОСТИ", diff --git a/app/documentation/terms-of-use/page.tsx b/app/documentation/terms-of-use/page.tsx index 73d75df..f7dcfca 100644 --- a/app/documentation/terms-of-use/page.tsx +++ b/app/documentation/terms-of-use/page.tsx @@ -1,11 +1,12 @@ -import type { Metadata } from "next"; -import type { Viewport } from "next"; -import styles from "../Documentation.module.css"; -import PageView from "@/components/PageView"; -import Loading from "@/components/Loading/loading"; +import type { Metadata , Viewport } from "next"; + +import Footer from "@/components/Footer"; import Header from "@/components/Header"; +import Loading from "@/components/Loading/loading"; import PageContainer from "@/components/PageContainer"; -import Footer from "@/components/Footer"; +import PageView from "@/components/PageView"; + +import styles from "../Documentation.module.css"; export const metadata: Metadata = { title: "ПОЛЬЗОВАТЕЛЬСКОЕ СОГЛАШЕНИЕ", diff --git a/app/not-found.tsx b/app/not-found.tsx index a75fe58..4855809 100644 --- a/app/not-found.tsx +++ b/app/not-found.tsx @@ -1,9 +1,9 @@ -import type { Metadata } from "next"; -import type { Viewport } from "next"; -import PageView from "@/components/PageView"; -import Loading from "@/components/Loading/loading"; +import type { Metadata , Viewport } from "next"; + import ErrorContainer from "@/components/ErrorContainer"; import Footer from "@/components/Footer"; +import Loading from "@/components/Loading/loading"; +import PageView from "@/components/PageView"; export const metadata: Metadata = { title: "404", diff --git a/app/page.tsx b/app/page.tsx index 7f9c635..a7a9e13 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,12 +1,12 @@ -import type { Metadata } from "next"; -import type { Viewport } from "next"; -import PageView from "@/components/PageView"; -import Loading from "@/components/Loading/loading"; -import Header from "@/components/Header"; +import type { Metadata , Viewport } from "next"; + import About from "@/chapters/About"; -import { InitialPortfolio } from "@/chapters/Portfolio"; import Contacts from "@/chapters/Contacts"; +import { InitialPortfolio } from "@/chapters/Portfolio"; import Footer from "@/components/Footer"; +import Header from "@/components/Header"; +import Loading from "@/components/Loading/loading"; +import PageView from "@/components/PageView"; export const metadata: Metadata = { title: "Викторов", diff --git a/app/portfolio/page.tsx b/app/portfolio/page.tsx index 673827c..7136e7f 100644 --- a/app/portfolio/page.tsx +++ b/app/portfolio/page.tsx @@ -1,10 +1,10 @@ -import type { Metadata } from "next"; -import type { Viewport } from "next"; -import PageView from "@/components/PageView"; -import Loading from "@/components/Loading/loading"; -import Header from "@/components/Header"; +import type { Metadata , Viewport } from "next"; + import { MainPortfolio } from "@/chapters/Portfolio"; import Footer from "@/components/Footer"; +import Header from "@/components/Header"; +import Loading from "@/components/Loading/loading"; +import PageView from "@/components/PageView"; export const metadata: Metadata = { title: "Портфолио", diff --git a/components/ErrorContainer/index.tsx b/components/ErrorContainer/index.tsx index fbc6dd9..155a126 100644 --- a/components/ErrorContainer/index.tsx +++ b/components/ErrorContainer/index.tsx @@ -1,8 +1,11 @@ -import Link from "next/link"; import Image from "next/image"; -import styles from "./ErrorContainer.module.css"; +import Link from "next/link"; + import Logotype from "@/public/assets/icons/Logotype.svg"; +import styles from "./ErrorContainer.module.css"; + + export default function ErrorContainer() { return (
diff --git a/components/Footer/index.tsx b/components/Footer/index.tsx index 58b164d..84cf7a6 100644 --- a/components/Footer/index.tsx +++ b/components/Footer/index.tsx @@ -1,4 +1,5 @@ import Link from "next/link"; + import styles from "./Footer.module.css"; export default function Footer() { diff --git a/components/Header/Header.module.css b/components/Header/Header.module.css index db18c45..2374a69 100644 --- a/components/Header/Header.module.css +++ b/components/Header/Header.module.css @@ -30,6 +30,7 @@ color: var(--colorDarkBlue); text-decoration: none; text-align: center; + text-transform: uppercase; } @media (max-width: 768px) { diff --git a/components/Header/components/ButtonNavigate/index.tsx b/components/Header/components/ButtonNavigate/index.tsx index 40cdcf8..902952e 100644 --- a/components/Header/components/ButtonNavigate/index.tsx +++ b/components/Header/components/ButtonNavigate/index.tsx @@ -1,6 +1,7 @@ "use client"; -import { MouseEventHandler } from "react"; import Link from "next/link"; +import { MouseEventHandler } from "react"; + import styles from "./ButtonNavigate.module.css"; export default function ButtonNavigate({ diff --git a/components/Header/components/MenuRight/index.tsx b/components/Header/components/MenuRight/index.tsx index 4daab18..96140e4 100644 --- a/components/Header/components/MenuRight/index.tsx +++ b/components/Header/components/MenuRight/index.tsx @@ -1,9 +1,11 @@ -import { ReactNode, useEffect } from "react"; -import styles from "./MenuRight.module.css"; -import Link from "next/link"; import Image from "next/image"; -import Logotype from "@/public/assets/icons/Logotype.svg"; +import Link from "next/link"; +import { ReactNode, useEffect } from "react"; + import Close from "@/public/assets/icons/Close.svg"; +import Logotype from "@/public/assets/icons/Logotype.svg"; + +import styles from "./MenuRight.module.css"; export default function MenuRight({ isOpen, diff --git a/components/Header/index.tsx b/components/Header/index.tsx index 3fbdaed..4b9a6c2 100644 --- a/components/Header/index.tsx +++ b/components/Header/index.tsx @@ -1,14 +1,17 @@ "use client"; -import Link from "next/link"; import Image from "next/image"; -import styles from "./Header.module.css"; +import Link from "next/link"; import { useRouter } from "next/navigation"; -import Logotype from "@/public/assets/icons/Logotype.svg"; -import Menu from "@/public/assets/icons/Menu.svg"; import { useEffect, useState } from "react"; -import MenuRight from "./components/MenuRight"; + import { useIsMobileQuery } from "@/hooks/useIsMobileQuery"; +import Logotype from "@/public/assets/icons/Logotype.svg"; +import Menu from "@/public/assets/icons/Menu.svg"; + import ButtonNavigate from "./components/ButtonNavigate"; +import MenuRight from "./components/MenuRight"; +import styles from "./Header.module.css"; + export default function Header({ main, diff --git a/components/Loading/loading.tsx b/components/Loading/loading.tsx index 368e389..6f31420 100644 --- a/components/Loading/loading.tsx +++ b/components/Loading/loading.tsx @@ -1,9 +1,11 @@ "use client"; import Image from "next/image"; -import styles from "./Loading.module.css"; -import Logo from "@/public/assets/icons/Icon.svg"; import { useEffect, useState } from "react"; +import Logo from "@/public/assets/icons/Icon.svg"; + +import styles from "./Loading.module.css"; + export default function Loading() { const [loading, setLoading] = useState(false); diff --git a/components/PageContainer/index.tsx b/components/PageContainer/index.tsx index b80391f..632e878 100644 --- a/components/PageContainer/index.tsx +++ b/components/PageContainer/index.tsx @@ -1,4 +1,5 @@ import { ReactNode } from "react"; + import styles from "./PageContainer.module.css"; export default function PageContainer({ diff --git a/components/PageView/index.tsx b/components/PageView/index.tsx index 0efe6a4..1fa1596 100644 --- a/components/PageView/index.tsx +++ b/components/PageView/index.tsx @@ -1,4 +1,5 @@ import { ReactNode } from "react"; + import styles from "./PageView.module.css"; export default function PageView({ children }: { children: ReactNode }) { diff --git a/package-lock.json b/package-lock.json index 23a5bbe..d105245 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,8 @@ "@types/react": "^18", "@types/react-dom": "^18", "@types/react-input-mask": "^3.0.5", + "@typescript-eslint/eslint-plugin": "^7.16.1", + "@typescript-eslint/parser": "^7.16.1", "eslint": "^8", "eslint-config-next": "14.2.0", "typescript": "^5" @@ -433,20 +435,53 @@ "@types/react": "*" } }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.16.1.tgz", + "integrity": "sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.16.1", + "@typescript-eslint/type-utils": "7.16.1", + "@typescript-eslint/utils": "7.16.1", + "@typescript-eslint/visitor-keys": "7.16.1", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@typescript-eslint/parser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.2.0.tgz", - "integrity": "sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.16.1.tgz", + "integrity": "sha512-u+1Qx86jfGQ5i4JjK33/FnawZRpsLxRnKzGE6EABZ40KxVT/vWsiZFEBBHjFOljmmV3MBYOHEKi0Jm9hbAOClA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.2.0", - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/typescript-estree": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/scope-manager": "7.16.1", + "@typescript-eslint/types": "7.16.1", + "@typescript-eslint/typescript-estree": "7.16.1", + "@typescript-eslint/visitor-keys": "7.16.1", "debug": "^4.3.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -462,29 +497,56 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", - "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.1.tgz", + "integrity": "sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0" + "@typescript-eslint/types": "7.16.1", + "@typescript-eslint/visitor-keys": "7.16.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.16.1.tgz", + "integrity": "sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "7.16.1", + "@typescript-eslint/utils": "7.16.1", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@typescript-eslint/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", - "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.1.tgz", + "integrity": "sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==", "dev": true, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -492,22 +554,22 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", - "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.1.tgz", + "integrity": "sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "@typescript-eslint/visitor-keys": "7.2.0", + "@typescript-eslint/types": "7.16.1", + "@typescript-eslint/visitor-keys": "7.16.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -529,9 +591,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -543,17 +605,39 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@typescript-eslint/utils": { + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.1.tgz", + "integrity": "sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.16.1", + "@typescript-eslint/types": "7.16.1", + "@typescript-eslint/typescript-estree": "7.16.1" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", - "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", + "version": "7.16.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.1.tgz", + "integrity": "sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.2.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "7.16.1", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1437,6 +1521,133 @@ } } }, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/parser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.2.0.tgz", + "integrity": "sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.2.0", + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/typescript-estree": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/scope-manager": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", + "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/types": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", + "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", + "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", + "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.2.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-config-next/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/eslint-config-next/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", @@ -3569,9 +3780,9 @@ } }, "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "bin": { "semver": "bin/semver.js" diff --git a/package.json b/package.json index 4fd460d..41e28f3 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,8 @@ "@types/react": "^18", "@types/react-dom": "^18", "@types/react-input-mask": "^3.0.5", + "@typescript-eslint/eslint-plugin": "^7.16.1", + "@typescript-eslint/parser": "^7.16.1", "eslint": "^8", "eslint-config-next": "14.2.0", "typescript": "^5"