diff --git a/.eslintrc.json b/.eslintrc.json
index 162870ccca1..65e2fac75f7 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -1,7 +1,15 @@
{
- "extends": ["next/core-web-vitals", "prettier"],
- "plugins": ["prettier"],
+ "extends": [
+ "next/core-web-vitals",
+ "plugin:@typescript-eslint/recommended",
+ "prettier" // prettier should always come last
+ ],
+ "parser": "@typescript-eslint/parser",
+ "plugins": ["@typescript-eslint", "prettier"],
"rules": {
- "react-hooks/exhaustive-deps": "error"
+ "react-hooks/exhaustive-deps": "error",
+ "@typescript-eslint/no-explicit-any": "warn",
+ "no-unused-vars": "off",
+ "@typescript-eslint/no-unused-vars": "error"
}
}
diff --git a/package.json b/package.json
index dfd046175ce..b91b3f63d6d 100644
--- a/package.json
+++ b/package.json
@@ -39,6 +39,7 @@
"@types/node": "^12.12.9",
"@types/react": "^18.0.0",
"@types/url-parse": "^1.4.3",
+ "@typescript-eslint/eslint-plugin": "^6.13.1",
"axios": "^1.3.4",
"classnames": "^2.3.2",
"cross-env": "^7.0.3",
diff --git a/src/components/Breadcrumbs/index.tsx b/src/components/Breadcrumbs/index.tsx
index a2a42bcf976..a87bab2be84 100644
--- a/src/components/Breadcrumbs/index.tsx
+++ b/src/components/Breadcrumbs/index.tsx
@@ -44,14 +44,14 @@ function generateBreadcrumbs(
const breadcrumbs: BreadcrumbItem[] = [];
const pieces = route.split('/').filter((str) => str);
- let urls: string[] = [];
+ const urls: string[] = [];
for (let i = 1; i <= pieces.length; i++) {
urls.push(`/${pieces.slice(0, i).join('/')}`);
}
urls.forEach((url) => {
const directoryEntry = findNode(url);
- let href = {
+ const href = {
pathname: url
};
if (url.includes('[platform]')) {
@@ -75,8 +75,8 @@ function generateBreadcrumbs(
return breadcrumbs;
}
-function BreadcrumbsComponent({ route, platform, isGen2 }: Props) {
- const items = generateBreadcrumbs(route, platform, isGen2);
+function BreadcrumbsComponent({ route, platform }: Props) {
+ const items = generateBreadcrumbs(route, platform);
return items.length > 1 ? (
diff --git a/src/components/CliCommands/Command.tsx b/src/components/CliCommands/Command.tsx
index bb7b887d8c3..43abc996482 100644
--- a/src/components/CliCommands/Command.tsx
+++ b/src/components/CliCommands/Command.tsx
@@ -1,5 +1,5 @@
import { CliCommand, CliCommandFlag } from '@/data/cli-commands';
-import { Heading, Text, Flex, View } from '@aws-amplify/ui-react';
+import { Text, Flex } from '@aws-amplify/ui-react';
import { MDXCode } from '../MDXComponents';
import { CommandHeading, SubCommandHeading } from './CommandHeading';
import { Fragment } from 'react';
diff --git a/src/components/ExternalLink/index.tsx b/src/components/ExternalLink/index.tsx
index 833a35a9fb4..54c4970851f 100644
--- a/src/components/ExternalLink/index.tsx
+++ b/src/components/ExternalLink/index.tsx
@@ -21,7 +21,7 @@ const ExternalLink: React.FC = ({
className={className}
rel="noopener noreferrer"
target="_blank"
- onClick={(e) => {
+ onClick={() => {
trackLink(href);
}}
>
diff --git a/src/components/ExternalLinkButton/ExternalLinkButton.tsx b/src/components/ExternalLinkButton/ExternalLinkButton.tsx
index 711d7f66c60..cdfca20c12a 100644
--- a/src/components/ExternalLinkButton/ExternalLinkButton.tsx
+++ b/src/components/ExternalLinkButton/ExternalLinkButton.tsx
@@ -32,7 +32,7 @@ export const ExternalLinkButton = ({
as="a"
align-items="center"
className={className}
- onClick={(e) => {
+ onClick={() => {
trackLink(href);
}}
>
diff --git a/src/components/FeatureFlags/FeatureFlagValues.tsx b/src/components/FeatureFlags/FeatureFlagValues.tsx
index b180ee7aa26..c7005acc61d 100644
--- a/src/components/FeatureFlags/FeatureFlagValues.tsx
+++ b/src/components/FeatureFlags/FeatureFlagValues.tsx
@@ -1,14 +1,11 @@
import {
- Heading,
Table,
TableCell,
TableBody,
TableHead,
TableRow,
- Text,
View
} from '@aws-amplify/ui-react';
-import Link from 'next/link';
export type FeatureFlags = Record;
diff --git a/src/components/FeatureLists/FeatureLists.tsx b/src/components/FeatureLists/FeatureLists.tsx
index 89e04fd897e..71e5add184a 100644
--- a/src/components/FeatureLists/FeatureLists.tsx
+++ b/src/components/FeatureLists/FeatureLists.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { Grid, Heading } from '@aws-amplify/ui-react';
+import { Heading } from '@aws-amplify/ui-react';
import { Columns } from '@/components/Columns';
interface FeatureListsProps {
diff --git a/src/components/Feedback/__tests__/index.test.tsx b/src/components/Feedback/__tests__/index.test.tsx
index f13be58b5b3..f93e48ff9f4 100644
--- a/src/components/Feedback/__tests__/index.test.tsx
+++ b/src/components/Feedback/__tests__/index.test.tsx
@@ -1,5 +1,5 @@
import Feedback from '../index';
-import { fireEvent, render, screen, waitFor } from '@testing-library/react';
+import { render, screen, waitFor } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import * as trackModule from '../../../utils/track';
diff --git a/src/components/FilterChildren/__tests__/FilterChildren.test.tsx b/src/components/FilterChildren/__tests__/FilterChildren.test.tsx
index c9a826532bc..419840683c0 100644
--- a/src/components/FilterChildren/__tests__/FilterChildren.test.tsx
+++ b/src/components/FilterChildren/__tests__/FilterChildren.test.tsx
@@ -1,8 +1,8 @@
-import * as React from 'react';
-import { render, screen } from '@testing-library/react';
-import FilterChildren from '../index';
+// import * as React from 'react';
+// import { render, screen } from '@testing-library/react';
+// import FilterChildren from '../index';
-let routerMock = {
+const routerMock = {
__esModule: true
};
diff --git a/src/components/FilterContent/__tests__/FilterContent.test.tsx b/src/components/FilterContent/__tests__/FilterContent.test.tsx
index 1f9a6c6e13d..94c451159c7 100644
--- a/src/components/FilterContent/__tests__/FilterContent.test.tsx
+++ b/src/components/FilterContent/__tests__/FilterContent.test.tsx
@@ -2,7 +2,7 @@ import * as React from 'react';
import { render, screen } from '@testing-library/react';
import FilterContent from '../index';
-let routerMock = {
+const routerMock = {
__esModule: true
};
diff --git a/src/components/Fragments/__tests__/Fragments.test.tsx b/src/components/Fragments/__tests__/Fragments.test.tsx
index 15e362f7ecd..d0bfc44bc51 100644
--- a/src/components/Fragments/__tests__/Fragments.test.tsx
+++ b/src/components/Fragments/__tests__/Fragments.test.tsx
@@ -2,7 +2,7 @@ import * as React from 'react';
import { render, screen } from '@testing-library/react';
import Fragments from '../index';
-let routerMock = {
+const routerMock = {
__esModule: true,
useRouter: () => {
return {
diff --git a/src/components/Fragments/index.tsx b/src/components/Fragments/index.tsx
index 4cbf0fb14de..9403d5ecb32 100644
--- a/src/components/Fragments/index.tsx
+++ b/src/components/Fragments/index.tsx
@@ -1,10 +1,6 @@
import { Fragment } from 'react';
import FilterChildren from '../FilterChildren';
-type MdxFrontmatterType = {
- lastUpdated: string;
-};
-
export default function Fragments({ fragments }) {
const children: React.ReactNode[] = [];
diff --git a/src/components/GetStartedPopover/GetStartedPopover.tsx b/src/components/GetStartedPopover/GetStartedPopover.tsx
index 270d455b2a2..02c899c10d9 100644
--- a/src/components/GetStartedPopover/GetStartedPopover.tsx
+++ b/src/components/GetStartedPopover/GetStartedPopover.tsx
@@ -1,4 +1,4 @@
-import { useState, useEffect, useRef, useCallback } from 'react';
+import { useState, useEffect, useRef } from 'react';
import classNames from 'classnames';
import { Button, Flex, VisuallyHidden, View } from '@aws-amplify/ui-react';
import Link from 'next/link';
@@ -15,7 +15,6 @@ import {
IconVue
} from '@/components/Icons';
import { useClickOutside } from '@/utils/useClickOutside';
-import { DEFAULT_PLATFORM } from '@/data/platforms';
import { useTabKeyDetection } from '@/utils/useTabKeyDetection';
const getStartedHref = '/[platform]/start/getting-started/introduction/';
diff --git a/src/components/Icons/IconNext.tsx b/src/components/Icons/IconNext.tsx
index 28c0ce90e11..bc9614aa40c 100644
--- a/src/components/Icons/IconNext.tsx
+++ b/src/components/Icons/IconNext.tsx
@@ -1,4 +1,4 @@
-import { useState, useEffect, useMemo } from 'react';
+import { useState, useEffect } from 'react';
import { Icon } from '@aws-amplify/ui-react';
import { v4 as uuidv4 } from 'uuid';
diff --git a/src/components/InlineFilter/__tests__/InlineFilter.test.tsx b/src/components/InlineFilter/__tests__/InlineFilter.test.tsx
index afd0ea6c645..f63f66ae69d 100644
--- a/src/components/InlineFilter/__tests__/InlineFilter.test.tsx
+++ b/src/components/InlineFilter/__tests__/InlineFilter.test.tsx
@@ -2,7 +2,7 @@ import * as React from 'react';
import { render, screen } from '@testing-library/react';
import InlineFilter from '../index';
-let routerMock = {
+const routerMock = {
__esModule: true,
useRouter: () => {
return {
diff --git a/src/components/Layout/Layout.tsx b/src/components/Layout/Layout.tsx
index 6cb72ae3801..ed91a7461f5 100644
--- a/src/components/Layout/Layout.tsx
+++ b/src/components/Layout/Layout.tsx
@@ -36,9 +36,7 @@ import { LayoutProvider } from '@/components/Layout';
import { TableOfContents } from '@/components/TableOfContents';
import type { HeadingInterface } from '@/components/TableOfContents/TableOfContents';
import { PlatformNavigator } from '@/components/PlatformNavigator';
-import directory from 'src/directory/directory.json';
import flatDirectory from 'src/directory/flatDirectory.json';
-import { PageNode } from 'src/directory/directory';
import { Breadcrumbs } from '@/components/Breadcrumbs';
import { debounce } from '@/utils/debounce';
import { DocSearch } from '@docsearch/react';
@@ -65,7 +63,7 @@ export const Layout = ({
url,
useCustomTitle = false
}: {
- children: any;
+ children: React.ReactNode;
hasTOC?: boolean;
pageDescription?: string;
pageTitle?: string;
diff --git a/src/components/MDXComponents/MDXLink.tsx b/src/components/MDXComponents/MDXLink.tsx
index b3ec0b9cc8c..2de2e26ef2e 100644
--- a/src/components/MDXComponents/MDXLink.tsx
+++ b/src/components/MDXComponents/MDXLink.tsx
@@ -3,8 +3,13 @@ import ExternalLink from '@/components/ExternalLink';
import { useCurrentPlatform } from '@/utils/useCurrentPlatform';
import { usePathWithoutHash } from '@/utils/usePathWithoutHash';
-export const MDXLink = (props) => {
- let { href, children, hash } = props;
+export const MDXLink = ({
+ href: hrefFromProps,
+ children,
+ hash: hashFromProps
+}) => {
+ let href = hrefFromProps;
+ let hash = hashFromProps;
const isInternal = href && (href.startsWith('/') || href.startsWith('#'));
const baseURI = usePathWithoutHash();
const platform = useCurrentPlatform();
diff --git a/src/components/Menu/MenuItem.tsx b/src/components/Menu/MenuItem.tsx
index 083596d0d22..c3242b40ed4 100644
--- a/src/components/Menu/MenuItem.tsx
+++ b/src/components/Menu/MenuItem.tsx
@@ -68,7 +68,7 @@ export function MenuItem({
}
};
- let pathname = getPathname(pageNode.route, currentPlatform);
+ const pathname = getPathname(pageNode.route, currentPlatform);
const current = asPathWithoutHash === pathname;
diff --git a/src/components/MigrationAlert/MigrationAlert.tsx b/src/components/MigrationAlert/MigrationAlert.tsx
index 4b51449871c..58187548cc3 100644
--- a/src/components/MigrationAlert/MigrationAlert.tsx
+++ b/src/components/MigrationAlert/MigrationAlert.tsx
@@ -1,8 +1,6 @@
-import { useState } from 'react';
import { Callout } from '../Callout';
import Link from 'next/link';
import { useCurrentPlatform } from '@/utils/useCurrentPlatform';
-import { Platform } from '@/data/platforms';
type MigrationAlert = {
isLegacy: boolean;
diff --git a/src/components/NextPrevious/index.tsx b/src/components/NextPrevious/index.tsx
index 49f95da852e..783146d905b 100644
--- a/src/components/NextPrevious/index.tsx
+++ b/src/components/NextPrevious/index.tsx
@@ -24,8 +24,8 @@ export const NextPrevious = () => {
return { previous, next };
} else if (children && children.length) {
for (let i = 0; i < children.length; i++) {
- let child = children[i];
- let res = findDirectoryNodes(
+ const child = children[i];
+ const res = findDirectoryNodes(
route,
child,
platform,
diff --git a/src/components/PlatformNavigator/index.tsx b/src/components/PlatformNavigator/index.tsx
index 70a7caf3aba..203adbc225f 100644
--- a/src/components/PlatformNavigator/index.tsx
+++ b/src/components/PlatformNavigator/index.tsx
@@ -1,4 +1,4 @@
-import { useState, useRef, useEffect, useCallback } from 'react';
+import { useState, useRef, useEffect } from 'react';
import { Button, Flex, Text, View } from '@aws-amplify/ui-react';
import { IconChevron } from '@/components/Icons';
import { frameworks } from '@/constants/frameworks';
diff --git a/src/pages/404.tsx b/src/pages/404.tsx
index d6231aa943f..95cef57eda5 100644
--- a/src/pages/404.tsx
+++ b/src/pages/404.tsx
@@ -20,7 +20,7 @@ export function getStaticProps() {
export default function Custom404() {
const basePath = 'https://docs.amplify.aws';
- let [href, setHref] = useState(basePath);
+ const [href, setHref] = useState(basePath);
const path = useRouter().asPath;
useEffect(() => {
setHref(basePath + path);
diff --git a/src/pages/[platform]/index.tsx b/src/pages/[platform]/index.tsx
index d65a7da8dd0..36c7436fed7 100644
--- a/src/pages/[platform]/index.tsx
+++ b/src/pages/[platform]/index.tsx
@@ -4,10 +4,9 @@ import { FrameworkGrid } from '@/components/FrameworkGrid';
import { IconChevron } from '@/components/Icons';
import { GetStartedPopover } from '@/components/GetStartedPopover';
import { InternalLinkButton } from '@/components/InternalLinkButton';
-import { Flex, Heading, Button, Text } from '@aws-amplify/ui-react';
+import { Flex, Heading, Text } from '@aws-amplify/ui-react';
import LinkCards from '@/components/LinkCards';
import PlatformFeatureList from '@/components/FeatureLists/PlatformFeatureList';
-import Link from 'next/link';
export const meta = {
title: 'Overview',
diff --git a/src/pages/[platform]/tools/cli/commands.tsx b/src/pages/[platform]/tools/cli/commands.tsx
index b1be221855a..65da86b0ec6 100644
--- a/src/pages/[platform]/tools/cli/commands.tsx
+++ b/src/pages/[platform]/tools/cli/commands.tsx
@@ -1,5 +1,5 @@
import { getCustomStaticPath } from '@/utils/getCustomStaticPath';
-import { Flex, Heading, View } from '@aws-amplify/ui-react';
+import { Flex } from '@aws-amplify/ui-react';
import { commands } from '@/data/cli-commands.mjs';
import { Command } from '@/components/CliCommands';
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
index 79893de34e3..c99ea4b4569 100644
--- a/src/pages/index.tsx
+++ b/src/pages/index.tsx
@@ -1,4 +1,4 @@
-import { Heading, Text, Flex, Button, Grid } from '@aws-amplify/ui-react';
+import { Heading, Text, Flex } from '@aws-amplify/ui-react';
import { FrameworkGrid } from '@/components/FrameworkGrid';
import { GetStartedPopover } from '@/components/GetStartedPopover';
import { IconChevron } from '@/components/Icons';
@@ -28,7 +28,7 @@ export function getStaticProps() {
export default function Page() {
//Default platform is javascript
- let defaultPlatform = DEFAULT_PLATFORM;
+ const defaultPlatform = DEFAULT_PLATFORM;
return (
diff --git a/src/utils/findDirectoryNode.ts b/src/utils/findDirectoryNode.ts
index c6d5aa77582..41e47e8e21f 100644
--- a/src/utils/findDirectoryNode.ts
+++ b/src/utils/findDirectoryNode.ts
@@ -1,13 +1,13 @@
import directory from '../directory/directory.json';
export const findDirectoryNode = (route, dir = directory) => {
- if(dir.route === route){
- return dir
- }else if(dir.children && dir.children.length){
- for(let i = 0; i < dir.children.length; i++){
- let child = dir.children[i];
- let res = findDirectoryNode(route, child);
- if(res) return res;
- }
+ if (dir.route === route) {
+ return dir;
+ } else if (dir.children && dir.children.length) {
+ for (let i = 0; i < dir.children.length; i++) {
+ const child = dir.children[i];
+ const res = findDirectoryNode(route, child);
+ if (res) return res;
}
-}
\ No newline at end of file
+ }
+};
diff --git a/src/utils/parseLocalStorage.ts b/src/utils/parseLocalStorage.ts
index d37c83f047b..162ece6a172 100644
--- a/src/utils/parseLocalStorage.ts
+++ b/src/utils/parseLocalStorage.ts
@@ -1,5 +1,5 @@
export function parseLocalStorage(key: string, fallback: any): any {
- if (typeof localStorage === "undefined") return fallback;
+ if (typeof localStorage === 'undefined') return fallback;
const result = localStorage.getItem(key);
if (!result) {
diff --git a/src/utils/track.ts b/src/utils/track.ts
index 211cd7a6aa5..bbd75f42c79 100644
--- a/src/utils/track.ts
+++ b/src/utils/track.ts
@@ -27,45 +27,6 @@ export enum AnalyticsEventType {
PAGE_DATA_FETCH_EXCEPTION = 'PAGE_DATA_FETCH_EXCEPTION'
}
-interface AnalyticsEventPageVisit {
- type: AnalyticsEventType.PAGE_VISIT;
- attributes: {
- url: string;
- previousUrl: string;
- referrer: string;
- };
-}
-
-interface AnalyticsEventInternalLinkClick {
- type: AnalyticsEventType.INTERNAL_LINK_CLICK;
- attributes: {
- from: string;
- to: string;
- };
-}
-
-interface AnalyticsEventExternalLinkClick {
- type: AnalyticsEventType.EXTERNAL_LINK_CLICK;
- attributes: {
- from: string;
- to: string;
- };
-}
-
-interface AnalyticsEventPageDataFetchException {
- type: AnalyticsEventType.PAGE_DATA_FETCH_EXCEPTION;
- attributes: {
- url: string;
- exception: Error;
- };
-}
-
-type AnalyticsEvent =
- | AnalyticsEventPageVisit
- | AnalyticsEventInternalLinkClick
- | AnalyticsEventExternalLinkClick
- | AnalyticsEventPageDataFetchException;
-
export const trackPageVisit = (): void => {
if (typeof window !== 'undefined' && typeof s != 'undefined') {
s.pageName = window.location.href;
@@ -130,13 +91,7 @@ export const setSearchResultCount = (resultCount: number): void => {
}
};
-export const trackSearchQuery = (
- _input,
- _event,
- suggestion,
- _datasetNumber,
- _context
-): void => {
+export const trackSearchQuery = (_input, _event, suggestion): void => {
if (typeof window !== 'undefined' && typeof s != 'undefined') {
s.linkTrackVars =
'prop39,prop41,prop50,prop61,prop62,eVar26,eVar27,eVar39,eVar41,eVar50,eVar61,eVar62,eVar69,events';
diff --git a/yarn.lock b/yarn.lock
index 80b1c59309f..c2d02e6f35f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2774,14 +2774,14 @@
"@docsearch/css" "3.5.2"
algoliasearch "^4.19.1"
-"@eslint-community/eslint-utils@^4.2.0":
+"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
version "4.4.0"
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
dependencies:
eslint-visitor-keys "^3.3.0"
-"@eslint-community/regexpp@^4.6.1":
+"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1":
version "4.10.0"
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63"
integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==
@@ -3832,7 +3832,7 @@
jest-diff "^26.0.0"
pretty-format "^26.0.0"
-"@types/json-schema@^7.0.9":
+"@types/json-schema@^7.0.12", "@types/json-schema@^7.0.9":
version "7.0.15"
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
@@ -3930,6 +3930,11 @@
resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.6.tgz#eb26db6780c513de59bee0b869ef289ad3068711"
integrity sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==
+"@types/semver@^7.5.0":
+ version "7.5.6"
+ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339"
+ integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==
+
"@types/stack-utils@^2.0.0":
version "2.0.3"
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8"
@@ -3969,6 +3974,23 @@
dependencies:
"@types/node" "*"
+"@typescript-eslint/eslint-plugin@^6.13.1":
+ version "6.13.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.1.tgz#f98bd887bf95551203c917e734d113bf8d527a0c"
+ integrity sha512-5bQDGkXaxD46bPvQt08BUz9YSaO4S0fB1LB5JHQuXTfkGPI3+UUeS387C/e9jRie5GqT8u5kFTrMvAjtX4O5kA==
+ dependencies:
+ "@eslint-community/regexpp" "^4.5.1"
+ "@typescript-eslint/scope-manager" "6.13.1"
+ "@typescript-eslint/type-utils" "6.13.1"
+ "@typescript-eslint/utils" "6.13.1"
+ "@typescript-eslint/visitor-keys" "6.13.1"
+ debug "^4.3.4"
+ graphemer "^1.4.0"
+ ignore "^5.2.4"
+ natural-compare "^1.4.0"
+ semver "^7.5.4"
+ ts-api-utils "^1.0.1"
+
"@typescript-eslint/parser@^5.4.2 || ^6.0.0":
version "6.13.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.13.1.tgz#29d6d4e5fab4669e58bc15f6904b67da65567487"
@@ -3988,6 +4010,16 @@
"@typescript-eslint/types" "6.13.1"
"@typescript-eslint/visitor-keys" "6.13.1"
+"@typescript-eslint/type-utils@6.13.1":
+ version "6.13.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.13.1.tgz#e6e5885e387841cae9c38fc0638fd8b7561973d6"
+ integrity sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ==
+ dependencies:
+ "@typescript-eslint/typescript-estree" "6.13.1"
+ "@typescript-eslint/utils" "6.13.1"
+ debug "^4.3.4"
+ ts-api-utils "^1.0.1"
+
"@typescript-eslint/types@6.13.1":
version "6.13.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.13.1.tgz#b56f26130e7eb8fa1e429c75fb969cae6ad7bb5c"
@@ -4006,6 +4038,19 @@
semver "^7.5.4"
ts-api-utils "^1.0.1"
+"@typescript-eslint/utils@6.13.1":
+ version "6.13.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.13.1.tgz#925b3a2453a71ada914ae329b7bb7e7d96634b2f"
+ integrity sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw==
+ dependencies:
+ "@eslint-community/eslint-utils" "^4.4.0"
+ "@types/json-schema" "^7.0.12"
+ "@types/semver" "^7.5.0"
+ "@typescript-eslint/scope-manager" "6.13.1"
+ "@typescript-eslint/types" "6.13.1"
+ "@typescript-eslint/typescript-estree" "6.13.1"
+ semver "^7.5.4"
+
"@typescript-eslint/visitor-keys@6.13.1":
version "6.13.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.1.tgz#c4b692dcc23a4fc60685b718f10fde789d65a540"