diff --git a/apps/legacy-importer/.eslintrc.json b/apps/legacy-importer/.eslintrc.json deleted file mode 100644 index 9e0a4e368..000000000 --- a/apps/legacy-importer/.eslintrc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "root": true, - - "extends": ["@gw2treasures/eslint-config"] -} diff --git a/apps/legacy-importer/eslint.config.mjs b/apps/legacy-importer/eslint.config.mjs new file mode 100644 index 000000000..1a2e5c1c9 --- /dev/null +++ b/apps/legacy-importer/eslint.config.mjs @@ -0,0 +1,13 @@ +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import js from '@eslint/js'; +import { FlatCompat } from '@eslint/eslintrc'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); +export default [...compat.extends('@gw2treasures/eslint-config')]; diff --git a/apps/legacy-importer/package.json b/apps/legacy-importer/package.json index ab57a99e6..7b170fa2e 100644 --- a/apps/legacy-importer/package.json +++ b/apps/legacy-importer/package.json @@ -13,10 +13,12 @@ "gw2-api-types": "0.0.8" }, "devDependencies": { + "@eslint/eslintrc": "3.2.0", + "@eslint/js": "9.16.0", "@gw2treasures/eslint-config": "workspace:*", "@gw2treasures/tsconfig": "workspace:*", "@types/node": "22.10.1", - "eslint": "8.57.1", + "eslint": "9.16.0", "prisma": "6.0.1", "typescript": "5.7.2" } diff --git a/apps/web/.eslintrc.json b/apps/web/.eslintrc.json deleted file mode 100644 index fef48711a..000000000 --- a/apps/web/.eslintrc.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "root": true, - - "extends": [ - "next/core-web-vitals", - "@gw2treasures/eslint-config/react" - ], - - "plugins": ["@gw2treasures/nextjs", "eslint-plugin-react-compiler"], - - "overrides": [ - { - "files": ["**/page.tsx"], - "rules": { - "@gw2treasures/nextjs/require-metadata": "warn" - } - } - ] -} diff --git a/apps/web/app/[language]/achievement/[id]/component.tsx b/apps/web/app/[language]/achievement/[id]/component.tsx index 2670f88f4..bcb6abf71 100644 --- a/apps/web/app/[language]/achievement/[id]/component.tsx +++ b/apps/web/app/[language]/achievement/[id]/component.tsx @@ -1,4 +1,3 @@ -/* eslint-disable react/no-array-index-key */ import type { Language } from '@gw2treasures/database'; import DetailLayout from '@/components/Layout/DetailLayout'; import { db } from '@/lib/prisma'; diff --git a/apps/web/app/[language]/homestead/decorations/page.tsx b/apps/web/app/[language]/homestead/decorations/page.tsx index 7b3342138..35e36e9d7 100644 --- a/apps/web/app/[language]/homestead/decorations/page.tsx +++ b/apps/web/app/[language]/homestead/decorations/page.tsx @@ -1,4 +1,3 @@ -/* eslint-disable @next/next/no-img-element */ import { Trans } from '@/components/I18n/Trans'; import { createDataTable } from '@gw2treasures/ui/components/Table/DataTable'; import { db } from '@/lib/prisma'; diff --git a/apps/web/app/[language]/item/[id]/_edit-content/actions.ts b/apps/web/app/[language]/item/[id]/_edit-content/actions.ts index 43bda4be3..220fe4394 100644 --- a/apps/web/app/[language]/item/[id]/_edit-content/actions.ts +++ b/apps/web/app/[language]/item/[id]/_edit-content/actions.ts @@ -6,7 +6,6 @@ import { db } from '@/lib/prisma'; import { ContentChance, Prisma, ReviewState } from '@gw2treasures/database'; import { revalidateTag } from 'next/cache'; -// eslint-disable-next-line require-await export async function submitToReview({ itemId, removedItems, addedItems, removedCurrencies, addedCurrencies }: { itemId: number } & EditContentOrder): Promise { if(removedItems.length === 0 && addedItems.length === 0 && removedCurrencies.length === 0 && addedCurrencies.length === 0) { console.log('No changes'); diff --git a/apps/web/app/[language]/login/page.tsx b/apps/web/app/[language]/login/page.tsx index a60557bea..cefc7158a 100644 --- a/apps/web/app/[language]/login/page.tsx +++ b/apps/web/app/[language]/login/page.tsx @@ -58,7 +58,6 @@ export async function generateMetadata({ params }: PageProps): Promise }; } -// eslint-disable-next-line require-await async function redirectToGw2Me(returnTo?: string, additionalScopes?: string) { 'use server'; diff --git a/apps/web/components/Gw2Api/Gw2ApiProvider.tsx b/apps/web/components/Gw2Api/Gw2ApiProvider.tsx index 1877c505a..2c4c4ed9d 100644 --- a/apps/web/components/Gw2Api/Gw2ApiProvider.tsx +++ b/apps/web/components/Gw2Api/Gw2ApiProvider.tsx @@ -30,7 +30,6 @@ export const Gw2ApiProvider: FC = ({ children }) => { const router = useRouter(); const [hiddenAccounts, setHiddenAccounts] = useLocalStorageState('accounts.hidden', []); - // eslint-disable-next-line require-await const getAccounts = useCallback(async (requiredScopes: Scope[], optionalScopes: Scope[] = [], { includeHidden = false }: GetAccountsOptions = {}) => { // always return [] during SSR if(typeof window === 'undefined') { diff --git a/apps/web/components/Gw2Api/reauthorize.ts b/apps/web/components/Gw2Api/reauthorize.ts index b264b7fd8..a81cc2fa8 100644 --- a/apps/web/components/Gw2Api/reauthorize.ts +++ b/apps/web/components/Gw2Api/reauthorize.ts @@ -6,7 +6,6 @@ import { Scope, type AuthorizationUrlParams } from '@gw2me/client'; import { redirect } from 'next/navigation'; import 'server-only'; -// eslint-disable-next-line require-await export async function reauthorize(requiredScopes: Scope[], prompt?: AuthorizationUrlParams['prompt']) { // build redirect url diff --git a/apps/web/components/Layout/DetailLayout.tsx b/apps/web/components/Layout/DetailLayout.tsx index 1cda19f90..a7ba72e6f 100644 --- a/apps/web/components/Layout/DetailLayout.tsx +++ b/apps/web/components/Layout/DetailLayout.tsx @@ -29,7 +29,6 @@ const DetailLayout: FC = async ({ title, icon, breadcrumb, ch
- {/* eslint-disable-next-line @next/next/no-img-element */} {icon && typeof icon === 'object' && (isValidElement(icon) ? cloneElement(icon, { className: styles.icon }) : )}

{title}

{breadcrumb &&
{breadcrumb}
} diff --git a/apps/web/components/Skill/SkillTooltip.client.tsx b/apps/web/components/Skill/SkillTooltip.client.tsx index 90896fa20..7907ded10 100644 --- a/apps/web/components/Skill/SkillTooltip.client.tsx +++ b/apps/web/components/Skill/SkillTooltip.client.tsx @@ -1,4 +1,3 @@ -/* eslint-disable @next/next/no-img-element */ import type { FC } from 'react'; import styles from './SkillTooltip.module.css'; import { Separator } from '@gw2treasures/ui/components/Layout/Separator'; diff --git a/apps/web/eslint.config.mjs b/apps/web/eslint.config.mjs new file mode 100644 index 000000000..0ae76fba6 --- /dev/null +++ b/apps/web/eslint.config.mjs @@ -0,0 +1,32 @@ +import nextJsPlugin from '@gw2treasures/eslint-plugin-nextjs'; +import reactCompiler from 'eslint-plugin-react-compiler'; +import js from '@eslint/js'; +import tseslint from 'typescript-eslint'; +import { FlatCompat } from '@eslint/eslintrc'; + +const compat = new FlatCompat({ + baseDirectory: import.meta.url, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); + +export default tseslint.config( + { ignores: ['.next'] }, + ...compat.extends('next/core-web-vitals', '@gw2treasures/eslint-config/react'), + { + plugins: { + '@gw2treasures/nextjs': nextJsPlugin, + 'react-compiler': reactCompiler, + }, + }, + { + files: ['**/page.tsx'], + rules: { + '@gw2treasures/nextjs/require-metadata': 'warn', + }, + }, { + files: ['eslint.config.mjs'], + // eslint-disable-next-line import/no-named-as-default-member + extends: [tseslint.configs.disableTypeChecked], + } +); diff --git a/apps/web/package.json b/apps/web/package.json index b5c826ee0..1dc844d6b 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -55,6 +55,8 @@ "sharp": "0.33.5" }, "devDependencies": { + "@eslint/eslintrc": "3.2.0", + "@eslint/js": "9.16.0", "@gw2api/types": "0.0.22", "@gw2treasures/eslint-config": "workspace:*", "@gw2treasures/eslint-plugin-nextjs": "workspace:*", @@ -69,7 +71,7 @@ "@types/react-dom": "19.0.1", "babel-plugin-react-compiler": "19.0.0-beta-df7b47d-20241124", "csstype": "3.1.3", - "eslint": "8.57.1", + "eslint": "9.16.0", "eslint-config-next": "15.0.4", "eslint-plugin-react-compiler": "19.0.0-beta-df7b47d-20241124", "gw2-api-types": "0.0.8", @@ -77,6 +79,7 @@ "jest-environment-jsdom": "29.7.0", "ts-node": "10.9.2", "tslib": "2.8.1", - "typescript": "5.7.2" + "typescript": "5.7.2", + "typescript-eslint": "8.17.0" } } diff --git a/apps/worker/.eslintrc.json b/apps/worker/.eslintrc.json deleted file mode 100644 index 9e0a4e368..000000000 --- a/apps/worker/.eslintrc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "root": true, - - "extends": ["@gw2treasures/eslint-config"] -} diff --git a/apps/worker/eslint.config.mjs b/apps/worker/eslint.config.mjs new file mode 100644 index 000000000..1a2e5c1c9 --- /dev/null +++ b/apps/worker/eslint.config.mjs @@ -0,0 +1,13 @@ +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import js from '@eslint/js'; +import { FlatCompat } from '@eslint/eslintrc'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); +export default [...compat.extends('@gw2treasures/eslint-config')]; diff --git a/apps/worker/package.json b/apps/worker/package.json index 736a538da..1acbfb644 100644 --- a/apps/worker/package.json +++ b/apps/worker/package.json @@ -24,6 +24,8 @@ "sharp": "0.33.5" }, "devDependencies": { + "@eslint/eslintrc": "3.2.0", + "@eslint/js": "9.16.0", "@gw2api/types": "0.0.22", "@gw2treasures/eslint-config": "workspace:*", "@gw2treasures/tsconfig": "workspace:*", @@ -31,7 +33,7 @@ "@types/node": "22.10.1", "@typescript-eslint/parser": "8.17.0", "@vercel/ncc": "0.38.3", - "eslint": "8.57.1", + "eslint": "9.16.0", "jest": "29.7.0", "ts-jest": "29.2.5", "typescript": "5.7.2" diff --git a/apps/worker/src/jobs/recipes/migrations.ts b/apps/worker/src/jobs/recipes/migrations.ts index 60f824080..6a9cd2a6e 100644 --- a/apps/worker/src/jobs/recipes/migrations.ts +++ b/apps/worker/src/jobs/recipes/migrations.ts @@ -1,4 +1,3 @@ -// eslint-disable-next-line @typescript-eslint/no-unused-vars import { Prisma } from '@gw2treasures/database'; import { toId } from '../helper/toId'; import { db } from '../../db'; diff --git a/apps/worker/src/jobs/skills/migrations.ts b/apps/worker/src/jobs/skills/migrations.ts index a59aefaf5..b8af451c8 100644 --- a/apps/worker/src/jobs/skills/migrations.ts +++ b/apps/worker/src/jobs/skills/migrations.ts @@ -1,4 +1,3 @@ -// eslint-disable-next-line @typescript-eslint/no-unused-vars import { Prisma } from '@gw2treasures/database'; import { LocalizedObject } from '../helper/types'; import { Skill } from '@gw2api/types/data/skill'; diff --git a/apps/worker/src/jobs/skins/migrations.ts b/apps/worker/src/jobs/skins/migrations.ts index 605103a43..e9504cb57 100644 --- a/apps/worker/src/jobs/skins/migrations.ts +++ b/apps/worker/src/jobs/skins/migrations.ts @@ -21,7 +21,6 @@ interface MigratedSkin { // eslint-disable-next-line require-await export async function createMigrator() { - // eslint-disable-next-line require-await return async function migrate({ de, en, es, fr }: LocalizedObject, currentVersion = -1) { const update: MigratedSkin = { version: CURRENT_VERSION diff --git a/packages/eslint-config/configs/index.json b/packages/eslint-config/configs/index.json index 36ff8b426..42c86a029 100644 --- a/packages/eslint-config/configs/index.json +++ b/packages/eslint-config/configs/index.json @@ -88,5 +88,10 @@ { "selector": "default", "format": null }, { "selector": "typeLike", "format": ["PascalCase"] } ] - } + }, + + "overrides": [{ + "files": ["**/eslint.config.mjs"], + "extends": "plugin:@typescript-eslint/disable-type-checked" + }] } diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index e6c2d6f22..20efa81fe 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -35,7 +35,7 @@ "eslint-plugin-react": "7.37.2" }, "peerDependencies": { - "eslint": "^8.57.0" + "eslint": "^9.16.0" }, "publishConfig": { "access": "public" diff --git a/packages/eslint-plugin-nextjs/.eslintrc.json b/packages/eslint-plugin-nextjs/.eslintrc.json deleted file mode 100644 index d79508909..000000000 --- a/packages/eslint-plugin-nextjs/.eslintrc.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "root": true, - - "extends": ["@gw2treasures/eslint-config"], - - "ignorePatterns": ["dist/**"] -} diff --git a/packages/eslint-plugin-nextjs/eslint.config.mjs b/packages/eslint-plugin-nextjs/eslint.config.mjs new file mode 100644 index 000000000..db01fae88 --- /dev/null +++ b/packages/eslint-plugin-nextjs/eslint.config.mjs @@ -0,0 +1,17 @@ +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import js from '@eslint/js'; +import { FlatCompat } from '@eslint/eslintrc'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); + +export default [ + { ignores: ['dist/**/*'] }, + ...compat.extends('@gw2treasures/eslint-config') +]; diff --git a/packages/eslint-plugin-nextjs/package.json b/packages/eslint-plugin-nextjs/package.json index e85c7f788..60e567e7d 100644 --- a/packages/eslint-plugin-nextjs/package.json +++ b/packages/eslint-plugin-nextjs/package.json @@ -33,14 +33,16 @@ "@typescript-eslint/utils": "8.17.0" }, "devDependencies": { + "@eslint/eslintrc": "3.2.0", + "@eslint/js": "9.16.0", "@gw2treasures/eslint-config": "workspace:*", "@gw2treasures/tsconfig": "workspace:*", - "eslint": "8.57.1", + "eslint": "9.16.0", "tsup": "8.3.5", "typescript": "5.7.2" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.56.0 || ^9.0.0" }, "publishConfig": { "access": "public" diff --git a/packages/helper/.eslintrc.json b/packages/helper/.eslintrc.json deleted file mode 100644 index 9e0a4e368..000000000 --- a/packages/helper/.eslintrc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "root": true, - - "extends": ["@gw2treasures/eslint-config"] -} diff --git a/packages/helper/eslint.config.mjs b/packages/helper/eslint.config.mjs new file mode 100644 index 000000000..1a2e5c1c9 --- /dev/null +++ b/packages/helper/eslint.config.mjs @@ -0,0 +1,13 @@ +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import js from '@eslint/js'; +import { FlatCompat } from '@eslint/eslintrc'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); +export default [...compat.extends('@gw2treasures/eslint-config')]; diff --git a/packages/helper/package.json b/packages/helper/package.json index 6e69eaacf..382976a1f 100644 --- a/packages/helper/package.json +++ b/packages/helper/package.json @@ -34,9 +34,11 @@ }, "homepage": "https://github.com/GW2Treasures/gw2treasures.com#readme", "devDependencies": { + "@eslint/eslintrc": "3.2.0", + "@eslint/js": "9.16.0", "@gw2treasures/eslint-config": "workspace:*", "@gw2treasures/tsconfig": "workspace:*", - "eslint": "8.57.1", + "eslint": "9.16.0", "typescript": "5.7.2" }, "publishConfig": { diff --git a/packages/publish-package/.eslintrc.json b/packages/publish-package/.eslintrc.json deleted file mode 100644 index dac93db59..000000000 --- a/packages/publish-package/.eslintrc.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "root": true, - - "extends": ["@gw2treasures/eslint-config"], - - "ignorePatterns": [ - "bin/" - ] -} diff --git a/packages/publish-package/eslint.config.mjs b/packages/publish-package/eslint.config.mjs new file mode 100644 index 000000000..ab1d91573 --- /dev/null +++ b/packages/publish-package/eslint.config.mjs @@ -0,0 +1,17 @@ +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import js from '@eslint/js'; +import { FlatCompat } from '@eslint/eslintrc'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); + +export default [ + { ignores: ['**/bin/'] }, + ...compat.extends('@gw2treasures/eslint-config') +]; diff --git a/packages/publish-package/package.json b/packages/publish-package/package.json index 01485f1a2..ccecdc6c7 100644 --- a/packages/publish-package/package.json +++ b/packages/publish-package/package.json @@ -32,10 +32,12 @@ }, "homepage": "https://github.com/GW2Treasures/gw2treasures.com#readme", "devDependencies": { + "@eslint/eslintrc": "3.2.0", + "@eslint/js": "9.16.0", "@gw2treasures/eslint-config": "workspace:*", "@gw2treasures/tsconfig": "workspace:*", "@types/node": "22.10.1", - "eslint": "8.57.1", + "eslint": "9.16.0", "typescript": "5.7.2" }, "publishConfig": { diff --git a/packages/ui/.eslintrc.json b/packages/ui/.eslintrc.json deleted file mode 100644 index 1b24cb91d..000000000 --- a/packages/ui/.eslintrc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "root": true, - - "extends": ["@gw2treasures/eslint-config/react", "next/core-web-vitals"], - - "rules": { - // this is not actually a next project, so there is no pages directory - "@next/next/no-html-link-for-pages": "off" - }, - - // eslint can't parse this file (Cannot use 'in' operator to search for 'type' in undefined) - "ignorePatterns": ["components/Table/comparable-properties.ts"] -} diff --git a/packages/ui/components/Form/Switch.tsx b/packages/ui/components/Form/Switch.tsx index fbe8ebaf4..34b14e867 100644 --- a/packages/ui/components/Form/Switch.tsx +++ b/packages/ui/components/Form/Switch.tsx @@ -21,7 +21,7 @@ export type SwitchControlProps = { | { type: 'radio', href?: never, replace?: never, scroll?: never, name: string, value: string } ); -export const Switch: FC & { Control: FC } = ({ children }) => { +export const Switch: FC & { Control: FC } = ({ children }: SwitchProps) => { return ( {children} @@ -29,7 +29,7 @@ export const Switch: FC & { Control: FC } = ({ ); }; -Switch.Control = ({ children, active, type = 'button', href, clickAction, name, value, icon, tip, replace, scroll }) => { +Switch.Control = ({ children, active, type = 'button', href, clickAction, name, value, icon, tip, replace, scroll }: SwitchControlProps) => { const Element = type === 'link' ? Link : type === 'radio' ? 'label' : 'button'; const element = ( diff --git a/packages/ui/components/Table/DataTable.tsx b/packages/ui/components/Table/DataTable.tsx index c11ecf22d..3dc939fb8 100644 --- a/packages/ui/components/Table/DataTable.tsx +++ b/packages/ui/components/Table/DataTable.tsx @@ -1,5 +1,5 @@ import { Table, type HeaderCellProps } from './Table'; -import { Fragment, Suspense, type FC, type Key, type ReactElement, type ReactNode } from 'react'; +import { Suspense, type FC, type Key, type ReactElement, type ReactNode } from 'react'; import 'server-only'; import { DataTableClient, DataTableClientCell, DataTableClientColumn, DataTableClientColumnSelection, DataTableClientRows } from './DataTable.client'; import { isDefined, isTruthy } from '@gw2treasures/helper/is'; diff --git a/packages/ui/components/Table/Table.tsx b/packages/ui/components/Table/Table.tsx index 228062ef9..7dc7e62bc 100644 --- a/packages/ui/components/Table/Table.tsx +++ b/packages/ui/components/Table/Table.tsx @@ -18,7 +18,7 @@ export interface HeaderCellProps { onSort?: () => void; } -const Table: FC & { HeaderCell: FC } = ({ children, width = 'page' }) => ( +const Table: FC & { HeaderCell: FC } = ({ children, width = 'page' }: TableProps) => ( {children} @@ -26,7 +26,7 @@ const Table: FC & { HeaderCell: FC } = ({ children, ); -Table.HeaderCell = function HeaderCell({ children, small = false, align, colSpan, sort, onSort }) { +Table.HeaderCell = function HeaderCell({ children, small = false, align, colSpan, sort, onSort }: HeaderCellProps) { return (
{sort ? ( diff --git a/packages/ui/components/Table/use-datatable.tsx b/packages/ui/components/Table/use-datatable.tsx index 837584014..3d9f6b319 100644 --- a/packages/ui/components/Table/use-datatable.tsx +++ b/packages/ui/components/Table/use-datatable.tsx @@ -17,7 +17,7 @@ export interface DataTableProps { /** @deprecated Use DataTable instead */ export function useDataTable(columns: DataTableColumn[], rowKey: (row: T) => Key, groups?: (row: T) => { value: string, label: ReactNode }): FC> { return memo(useMemo(() => - function DataTable({ rows }) { + function DataTable({ rows }: DataTableProps) { const [sortBy, setSortBy] = useState<{ column: DataTableColumn, reverse: boolean }>(); const sortedRows = useMemo(() => (sortBy?.column?.sort !== undefined) diff --git a/packages/ui/eslint.config.mjs b/packages/ui/eslint.config.mjs new file mode 100644 index 000000000..10b2bbc77 --- /dev/null +++ b/packages/ui/eslint.config.mjs @@ -0,0 +1,20 @@ +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import js from '@eslint/js'; +import { FlatCompat } from '@eslint/eslintrc'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); + +const eslintConfig = [ + { ignores: ['components/Table/comparable-properties.ts'] }, + ...compat.extends('next/core-web-vitals', '@gw2treasures/eslint-config/react'), + { rules: { '@next/next/no-html-link-for-pages': 'off' }} +]; + +export default eslintConfig; diff --git a/packages/ui/package.json b/packages/ui/package.json index 9db09f5e6..b1cfa4325 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -34,11 +34,13 @@ "server-only": "0.0.1" }, "devDependencies": { + "@eslint/eslintrc": "3.2.0", + "@eslint/js": "9.16.0", "@gw2treasures/eslint-config": "workspace:*", "@types/react": "19.0.1", "@types/react-dom": "19.0.1", "csstype": "3.1.3", - "eslint": "8.57.1", + "eslint": "9.16.0", "eslint-config-next": "15.0.4", "typescript": "5.7.2" }, diff --git a/packages/ui/types.d.ts b/packages/ui/types.d.ts index 3749eb597..30fa5865d 100644 --- a/packages/ui/types.d.ts +++ b/packages/ui/types.d.ts @@ -3,7 +3,6 @@ declare module '*.module.css' { export default classes; } -// eslint-disable-next-line @typescript-eslint/no-unused-vars import type * as CSS from 'csstype'; declare module 'csstype' { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a7909ece6..d6a9aee24 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,6 +39,12 @@ importers: specifier: 0.0.8 version: 0.0.8 devDependencies: + '@eslint/eslintrc': + specifier: 3.2.0 + version: 3.2.0 + '@eslint/js': + specifier: 9.16.0 + version: 9.16.0 '@gw2treasures/eslint-config': specifier: workspace:* version: link:../../packages/eslint-config @@ -49,8 +55,8 @@ importers: specifier: 22.10.1 version: 22.10.1 eslint: - specifier: 8.57.1 - version: 8.57.1 + specifier: 9.16.0 + version: 9.16.0 prisma: specifier: 6.0.1 version: 6.0.1 @@ -184,6 +190,12 @@ importers: specifier: 0.33.5 version: 0.33.5 devDependencies: + '@eslint/eslintrc': + specifier: 3.2.0 + version: 3.2.0 + '@eslint/js': + specifier: 9.16.0 + version: 9.16.0 '@gw2api/types': specifier: 0.0.22 version: 0.0.22 @@ -227,14 +239,14 @@ importers: specifier: 3.1.3 version: 3.1.3 eslint: - specifier: 8.57.1 - version: 8.57.1 + specifier: 9.16.0 + version: 9.16.0 eslint-config-next: specifier: 15.0.4 - version: 15.0.4(eslint@8.57.1)(typescript@5.7.2) + version: 15.0.4(eslint@9.16.0)(typescript@5.7.2) eslint-plugin-react-compiler: specifier: 19.0.0-beta-df7b47d-20241124 - version: 19.0.0-beta-df7b47d-20241124(eslint@8.57.1) + version: 19.0.0-beta-df7b47d-20241124(eslint@9.16.0) gw2-api-types: specifier: 0.0.8 version: 0.0.8 @@ -253,6 +265,9 @@ importers: typescript: specifier: 5.7.2 version: 5.7.2 + typescript-eslint: + specifier: 8.17.0 + version: 8.17.0(eslint@9.16.0)(typescript@5.7.2) apps/worker: dependencies: @@ -284,6 +299,12 @@ importers: specifier: 0.33.5 version: 0.33.5 devDependencies: + '@eslint/eslintrc': + specifier: 3.2.0 + version: 3.2.0 + '@eslint/js': + specifier: 9.16.0 + version: 9.16.0 '@gw2api/types': specifier: 0.0.22 version: 0.0.22 @@ -301,13 +322,13 @@ importers: version: 22.10.1 '@typescript-eslint/parser': specifier: 8.17.0 - version: 8.17.0(eslint@8.57.1)(typescript@5.7.2) + version: 8.17.0(eslint@9.16.0)(typescript@5.7.2) '@vercel/ncc': specifier: 0.38.3 version: 0.38.3 eslint: - specifier: 8.57.1 - version: 8.57.1 + specifier: 9.16.0 + version: 9.16.0 jest: specifier: 29.7.0 version: 29.7.0(@types/node@22.10.1)(ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2)) @@ -344,29 +365,35 @@ importers: dependencies: '@stylistic/eslint-plugin': specifier: 2.11.0 - version: 2.11.0(eslint@8.57.1)(typescript@5.7.2) + version: 2.11.0(eslint@9.16.0)(typescript@5.7.2) '@typescript-eslint/eslint-plugin': specifier: 8.17.0 - version: 8.17.0(@typescript-eslint/parser@8.17.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2) + version: 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0)(typescript@5.7.2) '@typescript-eslint/parser': specifier: 8.17.0 - version: 8.17.0(eslint@8.57.1)(typescript@5.7.2) + version: 8.17.0(eslint@9.16.0)(typescript@5.7.2) eslint: - specifier: ^8.57.0 - version: 8.57.1 + specifier: ^9.16.0 + version: 9.16.0 eslint-plugin-import: specifier: 2.31.0 - version: 2.31.0(@typescript-eslint/parser@8.17.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + version: 2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0))(eslint@9.16.0))(eslint@9.16.0) eslint-plugin-react: specifier: 7.37.2 - version: 7.37.2(eslint@8.57.1) + version: 7.37.2(eslint@9.16.0) packages/eslint-plugin-nextjs: dependencies: '@typescript-eslint/utils': specifier: 8.17.0 - version: 8.17.0(eslint@8.57.1)(typescript@5.7.2) + version: 8.17.0(eslint@9.16.0)(typescript@5.7.2) devDependencies: + '@eslint/eslintrc': + specifier: 3.2.0 + version: 3.2.0 + '@eslint/js': + specifier: 9.16.0 + version: 9.16.0 '@gw2treasures/eslint-config': specifier: workspace:* version: link:../eslint-config @@ -374,8 +401,8 @@ importers: specifier: workspace:* version: link:../tsconfig eslint: - specifier: 8.57.1 - version: 8.57.1 + specifier: 9.16.0 + version: 9.16.0 tsup: specifier: 8.3.5 version: 8.3.5(postcss@8.4.31)(typescript@5.7.2) @@ -385,6 +412,12 @@ importers: packages/helper: devDependencies: + '@eslint/eslintrc': + specifier: 3.2.0 + version: 3.2.0 + '@eslint/js': + specifier: 9.16.0 + version: 9.16.0 '@gw2treasures/eslint-config': specifier: workspace:* version: link:../eslint-config @@ -392,8 +425,8 @@ importers: specifier: workspace:* version: link:../tsconfig eslint: - specifier: 8.57.1 - version: 8.57.1 + specifier: 9.16.0 + version: 9.16.0 typescript: specifier: 5.7.2 version: 5.7.2 @@ -431,6 +464,12 @@ importers: packages/publish-package: devDependencies: + '@eslint/eslintrc': + specifier: 3.2.0 + version: 3.2.0 + '@eslint/js': + specifier: 9.16.0 + version: 9.16.0 '@gw2treasures/eslint-config': specifier: workspace:* version: link:../eslint-config @@ -441,8 +480,8 @@ importers: specifier: 22.10.1 version: 22.10.1 eslint: - specifier: 8.57.1 - version: 8.57.1 + specifier: 9.16.0 + version: 9.16.0 typescript: specifier: 5.7.2 version: 5.7.2 @@ -482,6 +521,12 @@ importers: specifier: 0.0.1 version: 0.0.1 devDependencies: + '@eslint/eslintrc': + specifier: 3.2.0 + version: 3.2.0 + '@eslint/js': + specifier: 9.16.0 + version: 9.16.0 '@gw2treasures/eslint-config': specifier: workspace:* version: link:../eslint-config @@ -495,11 +540,11 @@ importers: specifier: 3.1.3 version: 3.1.3 eslint: - specifier: 8.57.1 - version: 8.57.1 + specifier: 9.16.0 + version: 9.16.0 eslint-config-next: specifier: 15.0.4 - version: 15.0.4(eslint@8.57.1)(typescript@5.7.2) + version: 15.0.4(eslint@9.16.0)(typescript@5.7.2) typescript: specifier: 5.7.2 version: 5.7.2 @@ -867,17 +912,33 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.10.0': - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/config-array@0.19.1': + resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/core@0.9.1': + resolution: {integrity: sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.16.0': + resolution: {integrity: sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.5': + resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.4': + resolution: {integrity: sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@floating-ui/core@1.6.8': resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} @@ -917,18 +978,25 @@ packages: '@gw2me/client@0.5.0': resolution: {integrity: sha512-AMWcVcN/ZHhTBJFNNWkucvC2xuBcRFBabXaPuUUoZvuZ2TiQGWEHVufCit5kJOwO/DU7awJe+0mZTcGaYtg7IQ==} - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.1': + resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} + engines: {node: '>=18.18'} '@img/sharp-darwin-arm64@0.33.5': resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} @@ -1474,6 +1542,9 @@ packages: '@types/jsdom@20.0.1': resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} @@ -1578,9 +1649,6 @@ packages: resolution: {integrity: sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vercel/ncc@0.38.3': resolution: {integrity: sha512-rnK6hJBS6mwc+Bkab+PGPs9OiS0i/3kdTO+CkI8V0/VrW3vmz7O2Pxjw/owOlmo6PKEIxRSeZKv/kuL9itnpYA==} hasBin: true @@ -2000,8 +2068,8 @@ packages: resolution: {integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==} engines: {node: '>=12.0.0'} - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} css-select@5.1.0: @@ -2191,10 +2259,6 @@ packages: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} @@ -2402,9 +2466,9 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} @@ -2414,20 +2478,20 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + eslint@9.16.0: + resolution: {integrity: sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true espree@10.3.0: resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -2503,9 +2567,9 @@ packages: picomatch: optional: true - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} @@ -2522,9 +2586,9 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} flatted@3.2.9: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} @@ -2616,9 +2680,9 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} @@ -2840,10 +2904,6 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} @@ -3720,11 +3780,6 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rimraf@6.0.1: resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} engines: {node: 20 || >=22} @@ -4114,10 +4169,6 @@ packages: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -4138,6 +4189,16 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} + typescript-eslint@8.17.0: + resolution: {integrity: sha512-409VXvFd/f1br1DCbuKNFqQpXICoTB+V51afcwG1pn1a3Cp92MqAUges3YjwEdQ0cMUoCIodjVDAYzyD8h3SYA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + typescript@5.7.2: resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} engines: {node: '>=14.17'} @@ -4644,19 +4705,31 @@ snapshots: '@esbuild/win32-x64@0.24.0': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.1)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.16.0)': dependencies: - eslint: 8.57.1 + eslint: 9.16.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.10.0': {} + '@eslint-community/regexpp@4.12.1': {} - '@eslint/eslintrc@2.1.4': + '@eslint/config-array@0.19.1': + dependencies: + '@eslint/object-schema': 2.1.5 + debug: 4.3.7 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/core@0.9.1': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 debug: 4.3.7 - espree: 9.6.1 - globals: 13.24.0 + espree: 10.3.0 + globals: 14.0.0 ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -4665,7 +4738,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.1': {} + '@eslint/js@9.16.0': {} + + '@eslint/object-schema@2.1.5': {} + + '@eslint/plugin-kit@0.2.4': + dependencies: + levn: 0.4.1 '@floating-ui/core@1.6.8': dependencies: @@ -4706,17 +4785,18 @@ snapshots: '@gw2me/client@0.5.0': {} - '@humanwhocodes/config-array@0.13.0': + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.7 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.1': {} '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: @@ -5136,10 +5216,10 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.0 - '@stylistic/eslint-plugin@2.11.0(eslint@8.57.1)(typescript@5.7.2)': + '@stylistic/eslint-plugin@2.11.0(eslint@9.16.0)(typescript@5.7.2)': dependencies: - '@typescript-eslint/utils': 8.17.0(eslint@8.57.1)(typescript@5.7.2) - eslint: 8.57.1 + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0)(typescript@5.7.2) + eslint: 9.16.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 estraverse: 5.3.0 @@ -5293,6 +5373,8 @@ snapshots: '@types/tough-cookie': 4.0.5 parse5: 7.1.2 + '@types/json-schema@7.0.15': {} + '@types/json5@0.0.29': {} '@types/lodash@4.14.202': {} @@ -5331,15 +5413,15 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.17.0(@typescript-eslint/parser@8.17.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)': + '@typescript-eslint/eslint-plugin@8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0)(typescript@5.7.2)': dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 8.17.0(eslint@8.57.1)(typescript@5.7.2) + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0)(typescript@5.7.2) '@typescript-eslint/scope-manager': 8.17.0 - '@typescript-eslint/type-utils': 8.17.0(eslint@8.57.1)(typescript@5.7.2) - '@typescript-eslint/utils': 8.17.0(eslint@8.57.1)(typescript@5.7.2) + '@typescript-eslint/type-utils': 8.17.0(eslint@9.16.0)(typescript@5.7.2) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0)(typescript@5.7.2) '@typescript-eslint/visitor-keys': 8.17.0 - eslint: 8.57.1 + eslint: 9.16.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -5349,14 +5431,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.17.0(eslint@8.57.1)(typescript@5.7.2)': + '@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2)': dependencies: '@typescript-eslint/scope-manager': 8.17.0 '@typescript-eslint/types': 8.17.0 '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) '@typescript-eslint/visitor-keys': 8.17.0 debug: 4.3.7 - eslint: 8.57.1 + eslint: 9.16.0 optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: @@ -5367,12 +5449,12 @@ snapshots: '@typescript-eslint/types': 8.17.0 '@typescript-eslint/visitor-keys': 8.17.0 - '@typescript-eslint/type-utils@8.17.0(eslint@8.57.1)(typescript@5.7.2)': + '@typescript-eslint/type-utils@8.17.0(eslint@9.16.0)(typescript@5.7.2)': dependencies: '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) - '@typescript-eslint/utils': 8.17.0(eslint@8.57.1)(typescript@5.7.2) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0)(typescript@5.7.2) debug: 4.3.7 - eslint: 8.57.1 + eslint: 9.16.0 ts-api-utils: 1.3.0(typescript@5.7.2) optionalDependencies: typescript: 5.7.2 @@ -5396,13 +5478,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.17.0(eslint@8.57.1)(typescript@5.7.2)': + '@typescript-eslint/utils@8.17.0(eslint@9.16.0)(typescript@5.7.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.16.0) '@typescript-eslint/scope-manager': 8.17.0 '@typescript-eslint/types': 8.17.0 '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) - eslint: 8.57.1 + eslint: 9.16.0 optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: @@ -5413,8 +5495,6 @@ snapshots: '@typescript-eslint/types': 8.17.0 eslint-visitor-keys: 4.2.0 - '@ungap/structured-clone@1.2.0': {} - '@vercel/ncc@0.38.3': {} '@visx/axis@3.12.0(react@19.0.0)': @@ -5945,7 +6025,7 @@ snapshots: dependencies: luxon: 3.4.4 - cross-spawn@7.0.3: + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 @@ -6138,10 +6218,6 @@ snapshots: dependencies: esutils: 2.0.3 - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dom-accessibility-api@0.5.16: {} dom-accessibility-api@0.6.3: {} @@ -6340,19 +6416,19 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-next@15.0.4(eslint@8.57.1)(typescript@5.7.2): + eslint-config-next@15.0.4(eslint@9.16.0)(typescript@5.7.2): dependencies: '@next/eslint-plugin-next': 15.0.4 '@rushstack/eslint-patch': 1.10.3 - '@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.17.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2) - '@typescript-eslint/parser': 8.17.0(eslint@8.57.1)(typescript@5.7.2) - eslint: 8.57.1 + '@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0)(typescript@5.7.2) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0)(typescript@5.7.2) + eslint: 9.16.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.17.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.17.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) - eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.1) - eslint-plugin-react: 7.37.2(eslint@8.57.1) - eslint-plugin-react-hooks: 5.0.0(eslint@8.57.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0))(eslint@9.16.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0))(eslint@9.16.0))(eslint@9.16.0) + eslint-plugin-jsx-a11y: 6.10.0(eslint@9.16.0) + eslint-plugin-react: 7.37.2(eslint@9.16.0) + eslint-plugin-react-hooks: 5.0.0(eslint@9.16.0) optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: @@ -6381,37 +6457,37 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.17.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0))(eslint@9.16.0): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7 enhanced-resolve: 5.17.0 - eslint: 8.57.1 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.17.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint: 9.16.0 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0))(eslint@9.16.0))(eslint@9.16.0) fast-glob: 3.3.2 get-tsconfig: 4.7.5 is-bun-module: 1.1.0 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.17.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0))(eslint@9.16.0))(eslint@9.16.0) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.17.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0))(eslint@9.16.0))(eslint@9.16.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.17.0(eslint@8.57.1)(typescript@5.7.2) - eslint: 8.57.1 + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0)(typescript@5.7.2) + eslint: 9.16.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.17.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0))(eslint@9.16.0) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0))(eslint@9.16.0))(eslint@9.16.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -6420,9 +6496,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.57.1 + eslint: 9.16.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.17.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0))(eslint@9.16.0))(eslint@9.16.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -6434,13 +6510,13 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.17.0(eslint@8.57.1)(typescript@5.7.2) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0)(typescript@5.7.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.1): + eslint-plugin-jsx-a11y@6.10.0(eslint@9.16.0): dependencies: aria-query: 5.1.3 array-includes: 3.1.8 @@ -6451,7 +6527,7 @@ snapshots: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.1.0 - eslint: 8.57.1 + eslint: 9.16.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -6460,23 +6536,23 @@ snapshots: safe-regex-test: 1.0.3 string.prototype.includes: 2.0.0 - eslint-plugin-react-compiler@19.0.0-beta-df7b47d-20241124(eslint@8.57.1): + eslint-plugin-react-compiler@19.0.0-beta-df7b47d-20241124(eslint@9.16.0): dependencies: '@babel/core': 7.24.6 '@babel/parser': 7.26.3 '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.24.6) - eslint: 8.57.1 + eslint: 9.16.0 hermes-parser: 0.25.1 zod: 3.23.8 zod-validation-error: 3.3.0(zod@3.23.8) transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks@5.0.0(eslint@8.57.1): + eslint-plugin-react-hooks@5.0.0(eslint@9.16.0): dependencies: - eslint: 8.57.1 + eslint: 9.16.0 - eslint-plugin-react@7.37.2(eslint@8.57.1): + eslint-plugin-react@7.37.2(eslint@9.16.0): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -6484,7 +6560,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.1.0 - eslint: 8.57.1 + eslint: 9.16.0 estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -6498,7 +6574,7 @@ snapshots: string.prototype.matchall: 4.0.11 string.prototype.repeat: 1.0.0 - eslint-scope@7.2.2: + eslint-scope@8.2.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -6507,46 +6583,42 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@8.57.1: + eslint@9.16.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) - '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.16.0) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.19.1 + '@eslint/core': 0.9.1 + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.16.0 + '@eslint/plugin-kit': 0.2.4 + '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 + '@humanwhocodes/retry': 0.4.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 debug: 4.3.7 - doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.3 - strip-ansi: 6.0.1 - text-table: 0.2.0 transitivePeerDependencies: - supports-color @@ -6556,12 +6628,6 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 4.2.0 - espree@9.6.1: - dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 3.4.3 - esprima@4.0.1: {} esquery@1.5.0: @@ -6580,7 +6646,7 @@ snapshots: execa@5.1.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 6.0.1 human-signals: 2.1.0 is-stream: 2.0.1 @@ -6641,9 +6707,9 @@ snapshots: optionalDependencies: picomatch: 4.0.2 - file-entry-cache@6.0.1: + file-entry-cache@8.0.0: dependencies: - flat-cache: 3.2.0 + flat-cache: 4.0.1 filelist@1.0.4: dependencies: @@ -6663,11 +6729,10 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - flat-cache@3.2.0: + flat-cache@4.0.1: dependencies: flatted: 3.2.9 keyv: 4.5.4 - rimraf: 3.0.2 flatted@3.2.9: {} @@ -6677,7 +6742,7 @@ snapshots: foreground-child@3.1.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 4.1.0 form-data@4.0.0: @@ -6768,9 +6833,7 @@ snapshots: globals@11.12.0: {} - globals@13.24.0: - dependencies: - type-fest: 0.20.2 + globals@14.0.0: {} globalthis@1.0.4: dependencies: @@ -6989,8 +7052,6 @@ snapshots: is-number@7.0.0: {} - is-path-inside@3.0.3: {} - is-potential-custom-element-name@1.0.1: {} is-regex@1.1.4: @@ -8168,10 +8229,6 @@ snapshots: reusify@1.0.4: {} - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - rimraf@6.0.1: dependencies: glob: 11.0.0 @@ -8617,8 +8674,6 @@ snapshots: type-detect@4.0.8: {} - type-fest@0.20.2: {} - type-fest@0.21.3: {} typed-array-buffer@1.0.2: @@ -8653,6 +8708,17 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 + typescript-eslint@8.17.0(eslint@9.16.0)(typescript@5.7.2): + dependencies: + '@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0)(typescript@5.7.2) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0)(typescript@5.7.2) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0)(typescript@5.7.2) + eslint: 9.16.0 + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + typescript@5.7.2: {} unbox-primitive@1.0.2: