From fdacc0519ea35ffa80673fe398c254112118a622 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 23 Aug 2024 10:47:38 +0100 Subject: [PATCH 01/17] `ab-core` uses eslint 9 --- libs/@guardian/ab-core/.eslintrc.cjs | 33 ------------------------- libs/@guardian/ab-core/eslint.config.js | 14 +++++++++++ libs/@guardian/ab-core/jest.config.js | 1 - libs/@guardian/ab-core/package.json | 4 +-- pnpm-lock.yaml | 6 +++++ 5 files changed, 22 insertions(+), 36 deletions(-) delete mode 100644 libs/@guardian/ab-core/.eslintrc.cjs create mode 100644 libs/@guardian/ab-core/eslint.config.js diff --git a/libs/@guardian/ab-core/.eslintrc.cjs b/libs/@guardian/ab-core/.eslintrc.cjs deleted file mode 100644 index 9d32dc06a..000000000 --- a/libs/@guardian/ab-core/.eslintrc.cjs +++ /dev/null @@ -1,33 +0,0 @@ -module.exports = { - extends: ['../../../.eslintrc.cjs'], - ignorePatterns: [ - '!**/*', - 'node_modules', - 'jest.dist.*', // depends on build output, so don't lint it - 'dist', - '.wireit', - ], - overrides: [ - { - files: ['*.ts', '*.tsx'], - parserOptions: { - tsconfigRootDir: __dirname, - }, - rules: {}, - }, - { - files: ['*.js', '*.jsx'], - rules: {}, - }, - { - files: ['*.test.*', 'jest.*'], - env: { - jest: true, - }, - rules: { - '@typescript-eslint/no-unsafe-call': 'off', - '@typescript-eslint/no-unsafe-assignment': 'off', - }, - }, - ], -}; diff --git a/libs/@guardian/ab-core/eslint.config.js b/libs/@guardian/ab-core/eslint.config.js new file mode 100644 index 000000000..b99792b07 --- /dev/null +++ b/libs/@guardian/ab-core/eslint.config.js @@ -0,0 +1,14 @@ +import guardian from '@guardian/eslint-config'; + +export default [ + ...guardian.configs.recommended, + ...guardian.configs.jest, + { + ignores: [ + 'node_modules', + 'dist', + 'jest.dist.*', // depends on build output, so don't lint it + '.wireit', + ], + }, +]; diff --git a/libs/@guardian/ab-core/jest.config.js b/libs/@guardian/ab-core/jest.config.js index 33743cea6..ecf45eb98 100644 --- a/libs/@guardian/ab-core/jest.config.js +++ b/libs/@guardian/ab-core/jest.config.js @@ -7,5 +7,4 @@ const config = { testEnvironment: 'jest-environment-jsdom', }; -// eslint-disable-next-line import/no-default-export -- that's what jest likes export default config; diff --git a/libs/@guardian/ab-core/package.json b/libs/@guardian/ab-core/package.json index a0c782e96..ba8fa6f0a 100644 --- a/libs/@guardian/ab-core/package.json +++ b/libs/@guardian/ab-core/package.json @@ -26,7 +26,9 @@ "verify-dist": "wireit" }, "devDependencies": { + "@guardian/eslint-config": "workspace:*", "@types/jest": "29.5.8", + "eslint": "9.9.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "rollup": "4.21.0", @@ -65,7 +67,6 @@ "command": "eslint --cache --color . --fix", "files": [ "**", - "../../../.eslint*", "!(dist)/**", "!.eslintcache" ], @@ -78,7 +79,6 @@ "command": "eslint --cache --color .", "files": [ "**", - "../../../.eslint*", "!(dist)/**", "!.eslintcache" ], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f7674babe..9d78c6d55 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -209,9 +209,15 @@ importers: libs/@guardian/ab-core: devDependencies: + '@guardian/eslint-config': + specifier: workspace:* + version: link:../eslint-config '@types/jest': specifier: 29.5.8 version: 29.5.8 + eslint: + specifier: 9.9.0 + version: 9.9.0 jest: specifier: 29.7.0 version: 29.7.0(@types/node@20.14.10) From b926e51192c3d76809c82e001d0dcd03be6fc949 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 23 Aug 2024 10:51:54 +0100 Subject: [PATCH 02/17] `ab-react` uses eslint 9 --- libs/@guardian/ab-react/.eslintrc.cjs | 33 ------------------------ libs/@guardian/ab-react/eslint.config.js | 15 +++++++++++ libs/@guardian/ab-react/jest.config.js | 2 -- libs/@guardian/ab-react/package.json | 4 +-- pnpm-lock.yaml | 6 +++++ 5 files changed, 23 insertions(+), 37 deletions(-) delete mode 100644 libs/@guardian/ab-react/.eslintrc.cjs create mode 100644 libs/@guardian/ab-react/eslint.config.js diff --git a/libs/@guardian/ab-react/.eslintrc.cjs b/libs/@guardian/ab-react/.eslintrc.cjs deleted file mode 100644 index 9d32dc06a..000000000 --- a/libs/@guardian/ab-react/.eslintrc.cjs +++ /dev/null @@ -1,33 +0,0 @@ -module.exports = { - extends: ['../../../.eslintrc.cjs'], - ignorePatterns: [ - '!**/*', - 'node_modules', - 'jest.dist.*', // depends on build output, so don't lint it - 'dist', - '.wireit', - ], - overrides: [ - { - files: ['*.ts', '*.tsx'], - parserOptions: { - tsconfigRootDir: __dirname, - }, - rules: {}, - }, - { - files: ['*.js', '*.jsx'], - rules: {}, - }, - { - files: ['*.test.*', 'jest.*'], - env: { - jest: true, - }, - rules: { - '@typescript-eslint/no-unsafe-call': 'off', - '@typescript-eslint/no-unsafe-assignment': 'off', - }, - }, - ], -}; diff --git a/libs/@guardian/ab-react/eslint.config.js b/libs/@guardian/ab-react/eslint.config.js new file mode 100644 index 000000000..3e50b6963 --- /dev/null +++ b/libs/@guardian/ab-react/eslint.config.js @@ -0,0 +1,15 @@ +import guardian from '@guardian/eslint-config'; + +export default [ + ...guardian.configs.recommended, + ...guardian.configs.jest, + ...guardian.configs.react, + { + ignores: [ + 'node_modules', + 'dist', + 'jest.dist.*', // depends on build output, so don't lint it + '.wireit', + ], + }, +]; diff --git a/libs/@guardian/ab-react/jest.config.js b/libs/@guardian/ab-react/jest.config.js index 677cc698b..ca464cf00 100644 --- a/libs/@guardian/ab-react/jest.config.js +++ b/libs/@guardian/ab-react/jest.config.js @@ -1,5 +1,3 @@ -/* eslint-disable import/no-default-export -- that's what jest likes */ - import { config as baseConfig } from '../../../configs/jest.config.js'; /** @typedef {import("jest").Config} Config */ diff --git a/libs/@guardian/ab-react/package.json b/libs/@guardian/ab-react/package.json index 5fabb1502..025d6c55b 100644 --- a/libs/@guardian/ab-react/package.json +++ b/libs/@guardian/ab-react/package.json @@ -27,9 +27,11 @@ }, "devDependencies": { "@guardian/ab-core": "8.0.0", + "@guardian/eslint-config": "workspace:*", "@testing-library/react": "14.2.1", "@types/jest": "29.5.8", "@types/react": "18.2.11", + "eslint": "9.9.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "react": "18.2.0", @@ -88,7 +90,6 @@ ], "files": [ "**", - "../../../.eslint*", "!(dist)/**", "!.eslintcache" ], @@ -104,7 +105,6 @@ ], "files": [ "**", - "../../../.eslint*", "!(dist)/**", "!.eslintcache" ], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9d78c6d55..fa98ab99d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -245,6 +245,9 @@ importers: '@guardian/ab-core': specifier: 8.0.0 version: link:../ab-core + '@guardian/eslint-config': + specifier: workspace:* + version: link:../eslint-config '@testing-library/react': specifier: 14.2.1 version: 14.2.1(react-dom@18.2.0)(react@18.2.0) @@ -254,6 +257,9 @@ importers: '@types/react': specifier: 18.2.11 version: 18.2.11 + eslint: + specifier: 9.9.0 + version: 9.9.0 jest: specifier: 29.7.0 version: 29.7.0(@types/node@20.14.10) From 831009b3bb1b6819f23fc6dd289d458710c6f76f Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 23 Aug 2024 11:03:03 +0100 Subject: [PATCH 03/17] `browserslist-config` uses eslint 9 # Conflicts: # libs/@guardian/browserslist-config/package.json # pnpm-lock.yaml --- .../browserslist-config/.eslintrc.cjs | 24 ------------------- .../browserslist-config/eslint.config.mjs | 8 +++++++ .../browserslist-config/package.json | 4 ++-- .../scripts/usage-table.mjs | 6 ++++- pnpm-lock.yaml | 6 +++++ 5 files changed, 21 insertions(+), 27 deletions(-) delete mode 100644 libs/@guardian/browserslist-config/.eslintrc.cjs create mode 100644 libs/@guardian/browserslist-config/eslint.config.mjs diff --git a/libs/@guardian/browserslist-config/.eslintrc.cjs b/libs/@guardian/browserslist-config/.eslintrc.cjs deleted file mode 100644 index cabd7c652..000000000 --- a/libs/@guardian/browserslist-config/.eslintrc.cjs +++ /dev/null @@ -1,24 +0,0 @@ -module.exports = { - extends: ['../../../.eslintrc.cjs'], - ignorePatterns: [ - '!**/*', - 'node_modules', - 'jest.dist.*', // depends on build output, so don't lint it - '.wireit', - ], - overrides: [ - { - files: ['*.ts', '*.tsx'], - parserOptions: { - tsconfigRootDir: __dirname, - }, - rules: {}, - }, - { - files: ['**/*.test.*'], - env: { - jest: true, - }, - }, - ], -}; diff --git a/libs/@guardian/browserslist-config/eslint.config.mjs b/libs/@guardian/browserslist-config/eslint.config.mjs new file mode 100644 index 000000000..475b2e6ef --- /dev/null +++ b/libs/@guardian/browserslist-config/eslint.config.mjs @@ -0,0 +1,8 @@ +import guardian from '@guardian/eslint-config'; + +export default [ + ...guardian.configs.recommended, + { + ignores: ['node_modules', '.wireit'], + }, +]; diff --git a/libs/@guardian/browserslist-config/package.json b/libs/@guardian/browserslist-config/package.json index 1e580032c..24e9e5da6 100644 --- a/libs/@guardian/browserslist-config/package.json +++ b/libs/@guardian/browserslist-config/package.json @@ -15,7 +15,9 @@ }, "devDependencies": { "@guardian/browserslist-config": "workspace:*", + "@guardian/eslint-config": "workspace:*", "browserslist": "4.23.0", + "eslint": "9.9.0", "tslib": "2.6.2", "wireit": "0.14.8" }, @@ -32,7 +34,6 @@ "clean": false, "files": [ "**", - "../../../.eslint*", "!.eslintcache" ], "output": [ @@ -43,7 +44,6 @@ "command": "eslint --cache --color .", "files": [ "**", - "../../../.eslint*", "!.eslintcache" ], "output": [] diff --git a/libs/@guardian/browserslist-config/scripts/usage-table.mjs b/libs/@guardian/browserslist-config/scripts/usage-table.mjs index 8db069252..bb29b42b3 100644 --- a/libs/@guardian/browserslist-config/scripts/usage-table.mjs +++ b/libs/@guardian/browserslist-config/scripts/usage-table.mjs @@ -1,6 +1,10 @@ -import browserslistStats from '../browserslist-stats.json' assert { type: 'json' }; +import { readFileSync } from 'fs'; import { normaliseBrowserName } from './normalise-browser-name.mjs'; +const browserslistStats = JSON.parse( + readFileSync('../browserslist-stats.json'), +); + const flattened = {}; // flatten the stats to { browserVersion: usage } shape diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fa98ab99d..d339695d4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -293,9 +293,15 @@ importers: '@guardian/browserslist-config': specifier: workspace:* version: 'link:' + '@guardian/eslint-config': + specifier: workspace:* + version: link:../eslint-config browserslist: specifier: 4.23.0 version: 4.23.0 + eslint: + specifier: 9.9.0 + version: 9.9.0 tslib: specifier: 2.6.2 version: 2.6.2 From 3d8ca95ac455594fd6bc6e504a22821bd1a21376 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 23 Aug 2024 11:06:26 +0100 Subject: [PATCH 04/17] `core-web-vitals` uses eslint 9 --- libs/@guardian/core-web-vitals/.eslintrc.cjs | 37 ------------------- .../core-web-vitals/eslint.config.js | 14 +++++++ libs/@guardian/core-web-vitals/jest.config.js | 2 - libs/@guardian/core-web-vitals/package.json | 4 +- .../core-web-vitals/src/index.test.ts | 2 + pnpm-lock.yaml | 6 +++ 6 files changed, 24 insertions(+), 41 deletions(-) delete mode 100644 libs/@guardian/core-web-vitals/.eslintrc.cjs create mode 100644 libs/@guardian/core-web-vitals/eslint.config.js diff --git a/libs/@guardian/core-web-vitals/.eslintrc.cjs b/libs/@guardian/core-web-vitals/.eslintrc.cjs deleted file mode 100644 index 4985560e5..000000000 --- a/libs/@guardian/core-web-vitals/.eslintrc.cjs +++ /dev/null @@ -1,37 +0,0 @@ -module.exports = { - extends: ['../../../.eslintrc.cjs'], - ignorePatterns: [ - '!**/*', - 'node_modules', - 'jest.dist.*', // depends on build output, so don't lint it - 'dist', - '.wireit', - ], - overrides: [ - { - files: ['*.ts', '*.tsx'], - parserOptions: { - tsconfigRootDir: __dirname, - }, - rules: {}, - }, - { - files: ['*.ts', '*.tsx'], - rules: {}, - }, - { - files: ['*.js', '*.jsx'], - rules: {}, - }, - { - files: ['*.test.*', 'jest.*'], - env: { - jest: true, - }, - rules: { - '@typescript-eslint/no-unsafe-call': 'off', - '@typescript-eslint/no-unsafe-assignment': 'off', - }, - }, - ], -}; diff --git a/libs/@guardian/core-web-vitals/eslint.config.js b/libs/@guardian/core-web-vitals/eslint.config.js new file mode 100644 index 000000000..b99792b07 --- /dev/null +++ b/libs/@guardian/core-web-vitals/eslint.config.js @@ -0,0 +1,14 @@ +import guardian from '@guardian/eslint-config'; + +export default [ + ...guardian.configs.recommended, + ...guardian.configs.jest, + { + ignores: [ + 'node_modules', + 'dist', + 'jest.dist.*', // depends on build output, so don't lint it + '.wireit', + ], + }, +]; diff --git a/libs/@guardian/core-web-vitals/jest.config.js b/libs/@guardian/core-web-vitals/jest.config.js index 546cc2f3d..376ba2d6a 100644 --- a/libs/@guardian/core-web-vitals/jest.config.js +++ b/libs/@guardian/core-web-vitals/jest.config.js @@ -1,5 +1,3 @@ -/* eslint-disable import/no-default-export -- that's what jest likes */ - import { config as baseConfig } from '../../../configs/jest.config.js'; /** @typedef {import("jest").Config} Config */ diff --git a/libs/@guardian/core-web-vitals/package.json b/libs/@guardian/core-web-vitals/package.json index a377bc931..3a41403c7 100644 --- a/libs/@guardian/core-web-vitals/package.json +++ b/libs/@guardian/core-web-vitals/package.json @@ -25,8 +25,10 @@ "verify-dist": "wireit" }, "devDependencies": { + "@guardian/eslint-config": "workspace:*", "@guardian/libs": "18.0.1", "@types/jest": "29.5.8", + "eslint": "9.9.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "rollup": "4.21.0", @@ -79,7 +81,6 @@ ], "files": [ "**", - "../../../.eslint*", "!(dist)/**", "!.eslintcache" ], @@ -95,7 +96,6 @@ ], "files": [ "**", - "../../../.eslint*", "!(dist)/**", "!.eslintcache" ], diff --git a/libs/@guardian/core-web-vitals/src/index.test.ts b/libs/@guardian/core-web-vitals/src/index.test.ts index 7c86f0f44..dffb684cb 100644 --- a/libs/@guardian/core-web-vitals/src/index.test.ts +++ b/libs/@guardian/core-web-vitals/src/index.test.ts @@ -181,12 +181,14 @@ describe('coreWebVitals', () => { expect(mockBeacon).toHaveBeenCalledTimes(0); expect(coreWebVitalsPayload).toEqual( expect.not.objectContaining({ + /* eslint-disable @typescript-eslint/no-unsafe-assignment -- we expect any(thing) */ fid: expect.anything(), fcp: expect.anything(), lcp: expect.anything(), ttfb: expect.anything(), cls: expect.anything(), inp: expect.anything(), + /* eslint-enable @typescript-eslint/no-unsafe-assignment */ }), ); }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d339695d4..4448e6d84 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -311,12 +311,18 @@ importers: libs/@guardian/core-web-vitals: devDependencies: + '@guardian/eslint-config': + specifier: workspace:* + version: link:../eslint-config '@guardian/libs': specifier: 18.0.1 version: link:../libs '@types/jest': specifier: 29.5.8 version: 29.5.8 + eslint: + specifier: 9.9.0 + version: 9.9.0 jest: specifier: 29.7.0 version: 29.7.0(@types/node@20.14.10) From 13249d47d480807f8a77758f5fb9676975a33201 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 23 Aug 2024 11:08:37 +0100 Subject: [PATCH 05/17] `identity-auth` uses eslint 9 --- libs/@guardian/identity-auth/.eslintrc.cjs | 33 ------------------- libs/@guardian/identity-auth/eslint.config.js | 14 ++++++++ libs/@guardian/identity-auth/jest.config.js | 2 -- libs/@guardian/identity-auth/package.json | 4 +-- pnpm-lock.yaml | 6 ++++ 5 files changed, 22 insertions(+), 37 deletions(-) delete mode 100644 libs/@guardian/identity-auth/.eslintrc.cjs create mode 100644 libs/@guardian/identity-auth/eslint.config.js diff --git a/libs/@guardian/identity-auth/.eslintrc.cjs b/libs/@guardian/identity-auth/.eslintrc.cjs deleted file mode 100644 index 9d32dc06a..000000000 --- a/libs/@guardian/identity-auth/.eslintrc.cjs +++ /dev/null @@ -1,33 +0,0 @@ -module.exports = { - extends: ['../../../.eslintrc.cjs'], - ignorePatterns: [ - '!**/*', - 'node_modules', - 'jest.dist.*', // depends on build output, so don't lint it - 'dist', - '.wireit', - ], - overrides: [ - { - files: ['*.ts', '*.tsx'], - parserOptions: { - tsconfigRootDir: __dirname, - }, - rules: {}, - }, - { - files: ['*.js', '*.jsx'], - rules: {}, - }, - { - files: ['*.test.*', 'jest.*'], - env: { - jest: true, - }, - rules: { - '@typescript-eslint/no-unsafe-call': 'off', - '@typescript-eslint/no-unsafe-assignment': 'off', - }, - }, - ], -}; diff --git a/libs/@guardian/identity-auth/eslint.config.js b/libs/@guardian/identity-auth/eslint.config.js new file mode 100644 index 000000000..b99792b07 --- /dev/null +++ b/libs/@guardian/identity-auth/eslint.config.js @@ -0,0 +1,14 @@ +import guardian from '@guardian/eslint-config'; + +export default [ + ...guardian.configs.recommended, + ...guardian.configs.jest, + { + ignores: [ + 'node_modules', + 'dist', + 'jest.dist.*', // depends on build output, so don't lint it + '.wireit', + ], + }, +]; diff --git a/libs/@guardian/identity-auth/jest.config.js b/libs/@guardian/identity-auth/jest.config.js index 880d757b6..febeda8c6 100644 --- a/libs/@guardian/identity-auth/jest.config.js +++ b/libs/@guardian/identity-auth/jest.config.js @@ -1,5 +1,3 @@ -/* eslint-disable import/no-default-export -- that's what jest likes */ - import { config as baseConfig } from '../../../configs/jest.config.js'; /** @typedef {import("jest").Config} Config */ diff --git a/libs/@guardian/identity-auth/package.json b/libs/@guardian/identity-auth/package.json index cfcfdfa76..f51fd9843 100644 --- a/libs/@guardian/identity-auth/package.json +++ b/libs/@guardian/identity-auth/package.json @@ -26,8 +26,10 @@ "verify-dist": "wireit" }, "devDependencies": { + "@guardian/eslint-config": "workspace:*", "@guardian/libs": "18.0.1", "@types/jest": "29.5.8", + "eslint": "9.9.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "jest-fetch-mock": "3.0.3", @@ -79,7 +81,6 @@ ], "files": [ "**", - "../../../.eslint*", "!(dist)/**", "!.eslintcache" ], @@ -95,7 +96,6 @@ ], "files": [ "**", - "../../../.eslint*", "!(dist)/**", "!.eslintcache" ], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4448e6d84..546f390d6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -399,12 +399,18 @@ importers: libs/@guardian/identity-auth: devDependencies: + '@guardian/eslint-config': + specifier: workspace:* + version: link:../eslint-config '@guardian/libs': specifier: 18.0.1 version: link:../libs '@types/jest': specifier: 29.5.8 version: 29.5.8 + eslint: + specifier: 9.9.0 + version: 9.9.0 jest: specifier: 29.7.0 version: 29.7.0(@types/node@20.14.10) From cb3f9ce35e9cf96b62c08d5e71376d7add7e76e5 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 23 Aug 2024 11:13:59 +0100 Subject: [PATCH 06/17] `libs` uses on eslint 9 --- libs/@guardian/libs/.eslintrc.cjs | 42 ------------------- libs/@guardian/libs/eslint.config.js | 14 +++++++ libs/@guardian/libs/jest.config.js | 2 - libs/@guardian/libs/package.json | 4 +- .../generateSvg.logger.subscriptions.ts | 2 +- libs/@guardian/libs/src/logger/logger.test.ts | 2 + pnpm-lock.yaml | 6 +++ 7 files changed, 25 insertions(+), 47 deletions(-) delete mode 100644 libs/@guardian/libs/.eslintrc.cjs create mode 100644 libs/@guardian/libs/eslint.config.js diff --git a/libs/@guardian/libs/.eslintrc.cjs b/libs/@guardian/libs/.eslintrc.cjs deleted file mode 100644 index e6f6f3a3d..000000000 --- a/libs/@guardian/libs/.eslintrc.cjs +++ /dev/null @@ -1,42 +0,0 @@ -module.exports = { - extends: ['../../../.eslintrc.cjs'], - ignorePatterns: [ - '!**/*', - 'node_modules', - 'jest.dist.*', // depends on build output, so don't lint it - 'dist', - '.wireit', - ], - overrides: [ - { - files: ['*.ts', '*.tsx'], - parserOptions: { - tsconfigRootDir: __dirname, - }, - rules: {}, - }, - { - files: ['*.ts', '*.tsx'], - rules: {}, - }, - { - files: ['*.js', '*.jsx'], - rules: {}, - }, - { - // Be more lenient in tests. - // We may be testing things the compiler may not be able to check anyway. - files: ['*.test.*', 'jest.*'], - env: { - jest: true, - }, - rules: { - '@typescript-eslint/no-unsafe-argument': 'off', - '@typescript-eslint/no-unsafe-assignment': 'off', - '@typescript-eslint/no-unsafe-call': 'off', - '@typescript-eslint/no-unsafe-member-access': 'off', - '@typescript-eslint/no-unsafe-return': 'off', - }, - }, - ], -}; diff --git a/libs/@guardian/libs/eslint.config.js b/libs/@guardian/libs/eslint.config.js new file mode 100644 index 000000000..b99792b07 --- /dev/null +++ b/libs/@guardian/libs/eslint.config.js @@ -0,0 +1,14 @@ +import guardian from '@guardian/eslint-config'; + +export default [ + ...guardian.configs.recommended, + ...guardian.configs.jest, + { + ignores: [ + 'node_modules', + 'dist', + 'jest.dist.*', // depends on build output, so don't lint it + '.wireit', + ], + }, +]; diff --git a/libs/@guardian/libs/jest.config.js b/libs/@guardian/libs/jest.config.js index b0d5d4e5d..9fddd473a 100644 --- a/libs/@guardian/libs/jest.config.js +++ b/libs/@guardian/libs/jest.config.js @@ -1,5 +1,3 @@ -/* eslint-disable import/no-default-export -- that's what jest likes */ - import { config as baseConfig } from '../../../configs/jest.config.js'; /** @typedef {import("jest").Config} Config */ diff --git a/libs/@guardian/libs/package.json b/libs/@guardian/libs/package.json index d6bf8cf29..bcfe09f61 100644 --- a/libs/@guardian/libs/package.json +++ b/libs/@guardian/libs/package.json @@ -28,9 +28,11 @@ "verify-dist": "wireit" }, "devDependencies": { + "@guardian/eslint-config": "workspace:*", "@playwright/test": "1.46.1", "@types/jest": "29.5.8", "@types/wcag-contrast": "3.0.3", + "eslint": "9.9.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "jest-fetch-mock": "3.0.3", @@ -96,7 +98,6 @@ ], "files": [ "**", - "../../../.eslint*", "!(dist)/**", "!.eslintcache" ], @@ -112,7 +113,6 @@ ], "files": [ "**", - "../../../.eslint*", "!(dist)/**", "!.eslintcache" ], diff --git a/libs/@guardian/libs/scripts/generateSvg.logger.subscriptions.ts b/libs/@guardian/libs/scripts/generateSvg.logger.subscriptions.ts index cd40fc01b..2fb24977f 100755 --- a/libs/@guardian/libs/scripts/generateSvg.logger.subscriptions.ts +++ b/libs/@guardian/libs/scripts/generateSvg.logger.subscriptions.ts @@ -82,4 +82,4 @@ function generateSvg(): string { return svg; } -fs.writeFileSync(__dirname + '/../static/logger.svg', generateSvg()); +fs.writeFileSync(import.meta.dirname + '/../static/logger.svg', generateSvg()); diff --git a/libs/@guardian/libs/src/logger/logger.test.ts b/libs/@guardian/libs/src/logger/logger.test.ts index 4fc7e6cac..87a71cba0 100644 --- a/libs/@guardian/libs/src/logger/logger.test.ts +++ b/libs/@guardian/libs/src/logger/logger.test.ts @@ -152,9 +152,11 @@ describe('Puts methods on the window', () => { expect(window.guardian).toHaveProperty( 'logger', expect.objectContaining({ + /* eslint-disable @typescript-eslint/no-unsafe-assignment -- we expect any */ subscribeTo: expect.any(Function), unsubscribeFrom: expect.any(Function), subscriptions: expect.any(Function), + /* eslint-enable @typescript-eslint/no-unsafe-assignment */ }), ); }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 546f390d6..bc14fbb95 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -474,6 +474,9 @@ importers: libs/@guardian/libs: devDependencies: + '@guardian/eslint-config': + specifier: workspace:* + version: link:../eslint-config '@playwright/test': specifier: 1.46.1 version: 1.46.1 @@ -483,6 +486,9 @@ importers: '@types/wcag-contrast': specifier: 3.0.3 version: 3.0.3 + eslint: + specifier: 9.9.0 + version: 9.9.0 jest: specifier: 29.7.0 version: 29.7.0(@types/node@20.14.10) From 8160b4fbf51c792d0f023b92e5f69dc6ac785a9e Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 23 Aug 2024 11:10:11 +0100 Subject: [PATCH 07/17] `identity-auth-frontend` uses eslint 9 --- .../identity-auth-frontend/.eslintrc.cjs | 29 ------------------- .../identity-auth-frontend/eslint.config.js | 14 +++++++++ .../identity-auth-frontend/jest.config.js | 2 -- .../identity-auth-frontend/package.json | 4 +-- pnpm-lock.yaml | 6 ++++ 5 files changed, 22 insertions(+), 33 deletions(-) delete mode 100644 libs/@guardian/identity-auth-frontend/.eslintrc.cjs create mode 100644 libs/@guardian/identity-auth-frontend/eslint.config.js diff --git a/libs/@guardian/identity-auth-frontend/.eslintrc.cjs b/libs/@guardian/identity-auth-frontend/.eslintrc.cjs deleted file mode 100644 index 742d05b33..000000000 --- a/libs/@guardian/identity-auth-frontend/.eslintrc.cjs +++ /dev/null @@ -1,29 +0,0 @@ -module.exports = { - extends: ['../../../.eslintrc.cjs'], - ignorePatterns: [ - '!**/*', - 'node_modules', - 'jest.dist.*', // depends on build output, so don't lint it - 'dist', - '.wireit', - ], - overrides: [ - { - files: ['*.ts', '*.tsx'], - parserOptions: { - tsconfigRootDir: __dirname, - }, - rules: {}, - }, - { - files: ['*.test.*', 'jest.*'], - env: { - jest: true, - }, - rules: { - '@typescript-eslint/no-unsafe-call': 'off', - '@typescript-eslint/no-unsafe-assignment': 'off', - }, - }, - ], -}; diff --git a/libs/@guardian/identity-auth-frontend/eslint.config.js b/libs/@guardian/identity-auth-frontend/eslint.config.js new file mode 100644 index 000000000..b99792b07 --- /dev/null +++ b/libs/@guardian/identity-auth-frontend/eslint.config.js @@ -0,0 +1,14 @@ +import guardian from '@guardian/eslint-config'; + +export default [ + ...guardian.configs.recommended, + ...guardian.configs.jest, + { + ignores: [ + 'node_modules', + 'dist', + 'jest.dist.*', // depends on build output, so don't lint it + '.wireit', + ], + }, +]; diff --git a/libs/@guardian/identity-auth-frontend/jest.config.js b/libs/@guardian/identity-auth-frontend/jest.config.js index f80176f5e..d5eb3eeb3 100644 --- a/libs/@guardian/identity-auth-frontend/jest.config.js +++ b/libs/@guardian/identity-auth-frontend/jest.config.js @@ -1,5 +1,3 @@ -/* eslint-disable import/no-default-export -- that's what jest likes */ - import { config as baseConfig } from '../../../configs/jest.config.js'; /** @typedef {import("jest").Config} Config */ diff --git a/libs/@guardian/identity-auth-frontend/package.json b/libs/@guardian/identity-auth-frontend/package.json index 247588b3b..45254c07a 100644 --- a/libs/@guardian/identity-auth-frontend/package.json +++ b/libs/@guardian/identity-auth-frontend/package.json @@ -26,9 +26,11 @@ "verify-dist": "wireit" }, "devDependencies": { + "@guardian/eslint-config": "workspace:*", "@guardian/identity-auth": "3.0.1", "@guardian/libs": "18.0.1", "@types/jest": "29.5.8", + "eslint": "9.9.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "jest-fetch-mock": "3.0.3", @@ -81,7 +83,6 @@ ], "files": [ "**", - "../../../.eslint*", "!(dist)/**", "!.eslintcache" ], @@ -97,7 +98,6 @@ ], "files": [ "**", - "../../../.eslint*", "!(dist)/**", "!.eslintcache" ], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bc14fbb95..9add8d15c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -438,6 +438,9 @@ importers: libs/@guardian/identity-auth-frontend: devDependencies: + '@guardian/eslint-config': + specifier: workspace:* + version: link:../eslint-config '@guardian/identity-auth': specifier: 3.0.1 version: link:../identity-auth @@ -447,6 +450,9 @@ importers: '@types/jest': specifier: 29.5.8 version: 29.5.8 + eslint: + specifier: 9.9.0 + version: 9.9.0 jest: specifier: 29.7.0 version: 29.7.0(@types/node@20.14.10) From 60cb785e374d9f58323b88eb12c6388be0765564 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 23 Aug 2024 11:41:15 +0100 Subject: [PATCH 08/17] `prettier` uses eslint 9 --- libs/@guardian/prettier/.eslintrc.cjs | 24 ----------------------- libs/@guardian/prettier/eslint.config.mjs | 8 ++++++++ libs/@guardian/prettier/index.d.ts | 2 -- libs/@guardian/prettier/package.json | 2 ++ pnpm-lock.yaml | 9 ++++++--- 5 files changed, 16 insertions(+), 29 deletions(-) delete mode 100644 libs/@guardian/prettier/.eslintrc.cjs create mode 100644 libs/@guardian/prettier/eslint.config.mjs diff --git a/libs/@guardian/prettier/.eslintrc.cjs b/libs/@guardian/prettier/.eslintrc.cjs deleted file mode 100644 index cabd7c652..000000000 --- a/libs/@guardian/prettier/.eslintrc.cjs +++ /dev/null @@ -1,24 +0,0 @@ -module.exports = { - extends: ['../../../.eslintrc.cjs'], - ignorePatterns: [ - '!**/*', - 'node_modules', - 'jest.dist.*', // depends on build output, so don't lint it - '.wireit', - ], - overrides: [ - { - files: ['*.ts', '*.tsx'], - parserOptions: { - tsconfigRootDir: __dirname, - }, - rules: {}, - }, - { - files: ['**/*.test.*'], - env: { - jest: true, - }, - }, - ], -}; diff --git a/libs/@guardian/prettier/eslint.config.mjs b/libs/@guardian/prettier/eslint.config.mjs new file mode 100644 index 000000000..475b2e6ef --- /dev/null +++ b/libs/@guardian/prettier/eslint.config.mjs @@ -0,0 +1,8 @@ +import guardian from '@guardian/eslint-config'; + +export default [ + ...guardian.configs.recommended, + { + ignores: ['node_modules', '.wireit'], + }, +]; diff --git a/libs/@guardian/prettier/index.d.ts b/libs/@guardian/prettier/index.d.ts index 169a4209a..5d71570dc 100644 --- a/libs/@guardian/prettier/index.d.ts +++ b/libs/@guardian/prettier/index.d.ts @@ -1,5 +1,3 @@ -/* eslint-disable import/no-default-export -- prettier configs need them */ - import type { Options } from 'prettier'; declare const prettierConfig: Options; diff --git a/libs/@guardian/prettier/package.json b/libs/@guardian/prettier/package.json index 024665cc6..4e80eb9c8 100644 --- a/libs/@guardian/prettier/package.json +++ b/libs/@guardian/prettier/package.json @@ -12,6 +12,8 @@ "tsc": "wireit" }, "devDependencies": { + "@guardian/eslint-config": "workspace:*", + "eslint": "9.9.0", "prettier": "3.2.2", "tslib": "2.6.2", "wireit": "0.14.8" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9add8d15c..2afd449ff 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -546,12 +546,15 @@ importers: libs/@guardian/prettier: devDependencies: + '@guardian/eslint-config': + specifier: workspace:* + version: link:../eslint-config + eslint: + specifier: 9.9.0 + version: 9.9.0 prettier: specifier: 3.2.2 version: 3.2.2 - tslib: - specifier: 2.6.2 - version: 2.6.2 wireit: specifier: 0.14.8 version: 0.14.8 From 500ba8d0441864d887c074d4d6f5290e579c32f5 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 23 Aug 2024 11:21:52 +0100 Subject: [PATCH 09/17] `newsletter-types` uses eslint 9 --- libs/@guardian/newsletter-types/.eslintrc.cjs | 37 ------------------- .../newsletter-types/eslint.config.js | 8 ++++ libs/@guardian/newsletter-types/package.json | 4 +- pnpm-lock.yaml | 6 +++ 4 files changed, 16 insertions(+), 39 deletions(-) delete mode 100644 libs/@guardian/newsletter-types/.eslintrc.cjs create mode 100644 libs/@guardian/newsletter-types/eslint.config.js diff --git a/libs/@guardian/newsletter-types/.eslintrc.cjs b/libs/@guardian/newsletter-types/.eslintrc.cjs deleted file mode 100644 index 4985560e5..000000000 --- a/libs/@guardian/newsletter-types/.eslintrc.cjs +++ /dev/null @@ -1,37 +0,0 @@ -module.exports = { - extends: ['../../../.eslintrc.cjs'], - ignorePatterns: [ - '!**/*', - 'node_modules', - 'jest.dist.*', // depends on build output, so don't lint it - 'dist', - '.wireit', - ], - overrides: [ - { - files: ['*.ts', '*.tsx'], - parserOptions: { - tsconfigRootDir: __dirname, - }, - rules: {}, - }, - { - files: ['*.ts', '*.tsx'], - rules: {}, - }, - { - files: ['*.js', '*.jsx'], - rules: {}, - }, - { - files: ['*.test.*', 'jest.*'], - env: { - jest: true, - }, - rules: { - '@typescript-eslint/no-unsafe-call': 'off', - '@typescript-eslint/no-unsafe-assignment': 'off', - }, - }, - ], -}; diff --git a/libs/@guardian/newsletter-types/eslint.config.js b/libs/@guardian/newsletter-types/eslint.config.js new file mode 100644 index 000000000..53703f713 --- /dev/null +++ b/libs/@guardian/newsletter-types/eslint.config.js @@ -0,0 +1,8 @@ +import guardian from '@guardian/eslint-config'; + +export default [ + ...guardian.configs.recommended, + { + ignores: ['node_modules', 'dist', '.wireit'], + }, +]; diff --git a/libs/@guardian/newsletter-types/package.json b/libs/@guardian/newsletter-types/package.json index d8902cbd1..44d6138d4 100644 --- a/libs/@guardian/newsletter-types/package.json +++ b/libs/@guardian/newsletter-types/package.json @@ -20,6 +20,8 @@ "tsc": "wireit" }, "devDependencies": { + "@guardian/eslint-config": "workspace:*", + "eslint": "9.9.0", "rollup": "4.21.0", "tslib": "2.6.2", "typescript": "5.5.2", @@ -56,7 +58,6 @@ "clean": false, "files": [ "**", - "../../../.eslint*", "!(dist)/**", "!.eslintcache" ], @@ -68,7 +69,6 @@ "command": "eslint --cache --color .", "files": [ "**", - "../../../.eslint*", "!(dist)/**", "!.eslintcache" ], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2afd449ff..aa1c1e51c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -531,6 +531,12 @@ importers: libs/@guardian/newsletter-types: devDependencies: + '@guardian/eslint-config': + specifier: workspace:* + version: link:../eslint-config + eslint: + specifier: 9.9.0 + version: 9.9.0 rollup: specifier: 4.21.0 version: 4.21.0 From 7fa4831df837eed237a2ebcccc5b382454ab1756 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 23 Aug 2024 12:17:11 +0100 Subject: [PATCH 10/17] `source-development-kitchen` uses eslint 9 --- .../source-development-kitchen/.eslintrc.cjs | 45 ------------------- .../eslint.config.js | 22 +++++++++ .../source-development-kitchen/jest.config.js | 2 - .../source-development-kitchen/package.json | 4 +- pnpm-lock.yaml | 6 +++ 5 files changed, 30 insertions(+), 49 deletions(-) delete mode 100644 libs/@guardian/source-development-kitchen/.eslintrc.cjs create mode 100644 libs/@guardian/source-development-kitchen/eslint.config.js diff --git a/libs/@guardian/source-development-kitchen/.eslintrc.cjs b/libs/@guardian/source-development-kitchen/.eslintrc.cjs deleted file mode 100644 index df8760ee5..000000000 --- a/libs/@guardian/source-development-kitchen/.eslintrc.cjs +++ /dev/null @@ -1,45 +0,0 @@ -module.exports = { - extends: ['../../../.eslintrc.cjs'], - ignorePatterns: [ - '!**/*', - 'node_modules', - 'jest.dist.*', // depends on build output, so don't lint it - 'dist', - 'storybook-static', - '.wireit', - ], - overrides: [ - { - files: ['*.ts', '*.tsx'], - parserOptions: { - tsconfigRootDir: __dirname, - }, - rules: {}, - }, - { - files: ['*.js', '*.jsx'], - rules: {}, - }, - { - files: ['*.test.ts'], - rules: { - '@typescript-eslint/no-unsafe-call': 'off', - '@typescript-eslint/no-unsafe-assignment': 'off', - '@typescript-eslint/restrict-template-expressions': 'off', - '@typescript-eslint/no-unsafe-member-access': 'off', - }, - }, - { - // these are only internal files, so we don't need to check them so - // rigorously they often use things like JSON which are `any`s too, - // we can be more lenient - files: ['scripts/**/*'], - rules: { - '@typescript-eslint/no-unsafe-assignment': 'off', - '@typescript-eslint/no-unsafe-member-access': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-unsafe-return': 'off', - }, - }, - ], -}; diff --git a/libs/@guardian/source-development-kitchen/eslint.config.js b/libs/@guardian/source-development-kitchen/eslint.config.js new file mode 100644 index 000000000..cc54cef90 --- /dev/null +++ b/libs/@guardian/source-development-kitchen/eslint.config.js @@ -0,0 +1,22 @@ +import guardian from '@guardian/eslint-config'; + +export default [ + { + ignores: [ + 'node_modules', + 'dist', + 'jest.dist.*', // depends on build output, so don't lint it + '.wireit', + 'storybook-static', + ], + }, + ...guardian.configs.recommended, + ...guardian.configs.jest, + ...guardian.configs.react, + ...guardian.configs.storybook, + { + // storybook is in a world of its own + files: ['.storybook/main.js'], + ...guardian.configs.cjs, + }, +]; diff --git a/libs/@guardian/source-development-kitchen/jest.config.js b/libs/@guardian/source-development-kitchen/jest.config.js index 5cb8e2ee9..95ac3ffac 100644 --- a/libs/@guardian/source-development-kitchen/jest.config.js +++ b/libs/@guardian/source-development-kitchen/jest.config.js @@ -1,5 +1,3 @@ -/* eslint-disable import/no-default-export -- that's what jest likes */ - import { config as baseConfig } from '../../../configs/jest.config.js'; /** @typedef {import("jest").Config} Config */ diff --git a/libs/@guardian/source-development-kitchen/package.json b/libs/@guardian/source-development-kitchen/package.json index 820a8e713..0f7f411ab 100644 --- a/libs/@guardian/source-development-kitchen/package.json +++ b/libs/@guardian/source-development-kitchen/package.json @@ -28,12 +28,14 @@ "devDependencies": { "@babel/core": "7.25.2", "@emotion/react": "11.11.3", + "@guardian/eslint-config": "workspace:*", "@guardian/libs": "18.0.1", "@guardian/source": "8.0.0", "@storybook/manager-api": "8.2.9", "@storybook/react": "8.2.9", "@types/jest": "29.5.8", "@types/react": "18.2.11", + "eslint": "9.9.0", "jest": "29.7.0", "react": "18.2.0", "rollup": "4.21.0", @@ -111,7 +113,6 @@ ], "files": [ "**", - "../../../.eslint*", "!(dist|storybook-static)/**", "!.eslintcache" ], @@ -127,7 +128,6 @@ ], "files": [ "**", - "../../../.eslint*", "!(dist|storybook-static)/**", "!.eslintcache" ], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aa1c1e51c..4a82e303c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -679,6 +679,9 @@ importers: '@emotion/react': specifier: 11.11.3 version: 11.11.3(@types/react@18.2.11)(react@18.2.0) + '@guardian/eslint-config': + specifier: workspace:* + version: link:../eslint-config '@guardian/libs': specifier: 18.0.1 version: link:../libs @@ -697,6 +700,9 @@ importers: '@types/react': specifier: 18.2.11 version: 18.2.11 + eslint: + specifier: 9.9.0 + version: 9.9.0 jest: specifier: 29.7.0 version: 29.7.0(@types/node@20.14.10) From a094e39c209cf1209f1470f89fe1f6fdd3bd3f38 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Fri, 23 Aug 2024 12:15:17 +0100 Subject: [PATCH 11/17] `source` uses eslint 9 --- libs/@guardian/source/.eslintrc.cjs | 62 -------------------------- libs/@guardian/source/eslint.config.js | 22 +++++++++ libs/@guardian/source/jest.config.js | 2 - libs/@guardian/source/package.json | 4 +- pnpm-lock.yaml | 6 +++ 5 files changed, 30 insertions(+), 66 deletions(-) delete mode 100644 libs/@guardian/source/.eslintrc.cjs create mode 100644 libs/@guardian/source/eslint.config.js diff --git a/libs/@guardian/source/.eslintrc.cjs b/libs/@guardian/source/.eslintrc.cjs deleted file mode 100644 index 6318cd560..000000000 --- a/libs/@guardian/source/.eslintrc.cjs +++ /dev/null @@ -1,62 +0,0 @@ -module.exports = { - extends: ['../../../.eslintrc.cjs'], - ignorePatterns: [ - '!**/*', - 'node_modules', - 'jest.dist.*', // depends on build output, so don't lint it - '.wireit', - 'dist', - 'storybook-static', - ], - overrides: [ - { - files: ['*.ts', '*.tsx'], - parserOptions: { - tsconfigRootDir: __dirname, - }, - rules: {}, - }, - { - files: ['*.js', '*.jsx'], - rules: {}, - }, - { - files: ['**/*.test.*'], - env: { - jest: true, - }, - }, - { - files: ['*.test.ts', '*.stories.*'], - rules: { - '@typescript-eslint/no-unsafe-call': 'off', - '@typescript-eslint/no-unsafe-assignment': 'off', - '@typescript-eslint/restrict-template-expressions': 'off', - '@typescript-eslint/no-unsafe-member-access': 'off', - }, - }, - { - // these are only internal files, so we don't need to check them so - // rigorously they often use things like JSON which are `any`s too, - // we can be more lenient - files: ['scripts/**/*'], - rules: { - '@typescript-eslint/no-unsafe-assignment': 'off', - '@typescript-eslint/no-unsafe-member-access': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-unsafe-return': 'off', - }, - }, - { - files: ['**/*.stories.tsx'], - rules: { - // Storybook require this - 'import/no-default-export': 'off', - // The CSF3 custom `render` function is lowercase. This breaks the rule - // that component names must start with a capital letter. - // https://github.com/storybookjs/storybook/issues/21115 - 'react-hooks/rules-of-hooks': 'off', - }, - }, - ], -}; diff --git a/libs/@guardian/source/eslint.config.js b/libs/@guardian/source/eslint.config.js new file mode 100644 index 000000000..cc54cef90 --- /dev/null +++ b/libs/@guardian/source/eslint.config.js @@ -0,0 +1,22 @@ +import guardian from '@guardian/eslint-config'; + +export default [ + { + ignores: [ + 'node_modules', + 'dist', + 'jest.dist.*', // depends on build output, so don't lint it + '.wireit', + 'storybook-static', + ], + }, + ...guardian.configs.recommended, + ...guardian.configs.jest, + ...guardian.configs.react, + ...guardian.configs.storybook, + { + // storybook is in a world of its own + files: ['.storybook/main.js'], + ...guardian.configs.cjs, + }, +]; diff --git a/libs/@guardian/source/jest.config.js b/libs/@guardian/source/jest.config.js index 8217acaad..f14ff2cf6 100644 --- a/libs/@guardian/source/jest.config.js +++ b/libs/@guardian/source/jest.config.js @@ -1,5 +1,3 @@ -/* eslint-disable import/no-default-export -- that's what jest likes */ - import { config as baseConfig } from '../../../configs/jest.config.js'; /** @typedef {import("jest").Config} Config */ diff --git a/libs/@guardian/source/package.json b/libs/@guardian/source/package.json index 13541201c..ce4340edc 100644 --- a/libs/@guardian/source/package.json +++ b/libs/@guardian/source/package.json @@ -45,6 +45,7 @@ "@cobalt-ui/plugin-js": "1.4.3", "@cobalt-ui/utils": "1.2.2", "@emotion/react": "11.11.3", + "@guardian/eslint-config": "workspace:*", "@guardian/libs": "18.0.1", "@storybook/manager-api": "8.2.9", "@storybook/react": "8.2.9", @@ -59,6 +60,7 @@ "@types/prettier": "3.0.0", "@types/react": "18.2.11", "dotenv": "16.4.1", + "eslint": "9.9.0", "jest": "29.7.0", "lightningcss": "1.26.0", "mkdirp": "3.0.1", @@ -143,7 +145,6 @@ ], "files": [ "**", - "../../../.eslint*", "!(dist|storybook-static)/**", "!.eslintcache" ], @@ -159,7 +160,6 @@ "command": "eslint --cache --color .", "files": [ "**", - "../../../.eslint*", "!(dist|storybook-static)/**", "!.eslintcache" ], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4a82e303c..412018527 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -592,6 +592,9 @@ importers: '@emotion/react': specifier: 11.11.3 version: 11.11.3(@types/react@18.2.11)(react@18.2.0) + '@guardian/eslint-config': + specifier: workspace:* + version: link:../eslint-config '@guardian/libs': specifier: 18.0.1 version: link:../libs @@ -634,6 +637,9 @@ importers: dotenv: specifier: 16.4.1 version: 16.4.1 + eslint: + specifier: 9.9.0 + version: 9.9.0 jest: specifier: 29.7.0 version: 29.7.0(@types/node@20.14.10) From edc691a9394f644a4099a35860a61c1f44e07861 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Wed, 28 Aug 2024 12:39:02 +0100 Subject: [PATCH 12/17] update lockfile --- pnpm-lock.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 412018527..d1cd0ee48 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -561,6 +561,9 @@ importers: prettier: specifier: 3.2.2 version: 3.2.2 + tslib: + specifier: 2.6.2 + version: 2.6.2 wireit: specifier: 0.14.8 version: 0.14.8 From 57328a3428aa5b763dbcb385e7043247a1b609f5 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Wed, 28 Aug 2024 12:53:04 +0100 Subject: [PATCH 13/17] remove old eslint root config --- .eslintrc.cjs | 64 --------------------------------------------------- 1 file changed, 64 deletions(-) delete mode 100644 .eslintrc.cjs diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index e1be61313..000000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,64 +0,0 @@ -// This is repo-wide base config for eslint. It's not used directly by any -// project, but is extended by each project's own eslint config. - -module.exports = { - root: true, - // disable eslint on all files by default, for perf reasons - // re-enabled in each projects own eslint config (ignorePatterns: ['!**/*']) - ignorePatterns: ['**/*'], - parser: '@typescript-eslint/parser', - parserOptions: { - sourceType: 'module', - ecmaVersion: 2020, - }, - overrides: [ - { - files: ['*.js', '*.jsx', '*.mjs', '*.cjs'], - extends: ['@guardian/eslint-config'], - }, - { - files: ['*.ts', '*.tsx', '*.mts', '*.cts', '*.d.ts'], - extends: ['@guardian/eslint-config-typescript'], - settings: { - 'import/resolver': { - typescript: { - project: 'tsconfig.base.json', - }, - }, - }, - }, - { - files: ['.lintstagedrc.js'], - rules: { - 'import/no-default-export': 'off', - }, - }, - { - files: ['rollup.config.js'], - rules: { - 'import/no-default-export': 'off', - }, - }, - { - files: ['*.stories.*'], - rules: { - // stories require default exports - 'import/no-default-export': 'off', - }, - }, - ], - rules: { - 'react/no-unknown-property': ['error', { ignore: ['css'] }], - }, - extends: [ - 'plugin:storybook/recommended', - 'plugin:react/recommended', - 'plugin:react/jsx-runtime', - 'plugin:react-hooks/recommended', - ], - settings: { - react: { - version: 'detect', - }, - }, -}; From 645bdfb587d2d7e452ce30421ccb3d5154eeba3a Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Wed, 28 Aug 2024 15:30:43 +0100 Subject: [PATCH 14/17] remove eslint deps from root --- package.json | 11 - pnpm-lock.yaml | 739 ++++--------------------------------------------- 2 files changed, 58 insertions(+), 692 deletions(-) diff --git a/package.json b/package.json index ffc7aeec2..1eb256587 100644 --- a/package.json +++ b/package.json @@ -11,20 +11,9 @@ }, "devDependencies": { "@changesets/cli": "2.27.1", - "@guardian/eslint-config": "9.0.0", - "@guardian/eslint-config-typescript": "12.0.0", "@guardian/prettier": "workspace:*", "@manypkg/get-packages": "2.2.0", - "@stylistic/eslint-plugin": "2.6.2", "@types/node": "20.14.10", - "@typescript-eslint/eslint-plugin": "8.1.0", - "@typescript-eslint/parser": "8.1.0", - "eslint": "8.57.0", - "eslint-plugin-eslint-comments": "3.2.0", - "eslint-plugin-import": "2.29.1", - "eslint-plugin-react": "7.35.0", - "eslint-plugin-react-hooks": "4.6.2", - "eslint-plugin-storybook": "0.8.0", "husky": "9.1.4", "lint-staged": "15.2.10", "prettier": "3.3.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d1cd0ee48..099d1895a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,48 +11,15 @@ importers: '@changesets/cli': specifier: 2.27.1 version: 2.27.1 - '@guardian/eslint-config': - specifier: 9.0.0 - version: 9.0.0(@typescript-eslint/parser@8.1.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)(tslib@2.6.2) - '@guardian/eslint-config-typescript': - specifier: 12.0.0 - version: 12.0.0(eslint@8.57.0)(tslib@2.6.2)(typescript@5.5.2) '@guardian/prettier': specifier: workspace:* version: link:libs/@guardian/prettier '@manypkg/get-packages': specifier: 2.2.0 version: 2.2.0 - '@stylistic/eslint-plugin': - specifier: 2.6.2 - version: 2.6.2(eslint@8.57.0)(typescript@5.5.2) '@types/node': specifier: 20.14.10 version: 20.14.10 - '@typescript-eslint/eslint-plugin': - specifier: 8.1.0 - version: 8.1.0(@typescript-eslint/parser@8.1.0)(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/parser': - specifier: 8.1.0 - version: 8.1.0(eslint@8.57.0)(typescript@5.5.2) - eslint: - specifier: 8.57.0 - version: 8.57.0 - eslint-plugin-eslint-comments: - specifier: 3.2.0 - version: 3.2.0(eslint@8.57.0) - eslint-plugin-import: - specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@8.1.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - eslint-plugin-react: - specifier: 7.35.0 - version: 7.35.0(eslint@8.57.0) - eslint-plugin-react-hooks: - specifier: 4.6.2 - version: 4.6.2(eslint@8.57.0) - eslint-plugin-storybook: - specifier: 0.8.0 - version: 0.8.0(eslint@8.57.0)(typescript@5.5.2) husky: specifier: 9.1.4 version: 9.1.4 @@ -364,7 +331,7 @@ importers: version: 9.1.0(eslint@9.9.0) eslint-import-resolver-typescript: specifier: 3.6.3 - version: 3.6.3(@typescript-eslint/parser@8.4.0)(eslint-plugin-import-x@4.2.0)(eslint-plugin-import@2.29.1)(eslint@9.9.0) + version: 3.6.3(@typescript-eslint/parser@8.4.0)(eslint-plugin-import-x@4.2.0)(eslint@9.9.0) eslint-plugin-import-x: specifier: 4.2.0 version: 4.2.0(eslint@9.9.0)(typescript@5.5.2) @@ -3116,18 +3083,6 @@ packages: ignore: 5.3.2 dev: false - /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - peerDependenciesMeta: - eslint: - optional: true - dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 3.4.3 - /@eslint-community/eslint-utils@4.4.0(eslint@9.9.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3154,22 +3109,6 @@ packages: transitivePeerDependencies: - supports-color - /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.6 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.2 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - /@eslint/eslintrc@3.1.0: resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3186,10 +3125,6 @@ packages: transitivePeerDependencies: - supports-color - /@eslint/js@8.57.0: - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /@eslint/js@9.9.0: resolution: {integrity: sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3203,71 +3138,10 @@ packages: resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@guardian/eslint-config-typescript@12.0.0(eslint@8.57.0)(tslib@2.6.2)(typescript@5.5.2): - resolution: {integrity: sha512-lEqYzdzaFKdA4CEc0pJHj+lytBSYZeao3b+GkcGaqEd6yZWkOpSWMxrQPVgiSt3Qgv7qHM/4C4U7KhLW6ycvEA==} - peerDependencies: - eslint: ^8.57.0 - tslib: ^2.6.2 - typescript: ~5.5.2 - peerDependenciesMeta: - eslint: - optional: true - dependencies: - '@guardian/eslint-config': 9.0.0(@typescript-eslint/parser@8.1.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)(tslib@2.6.2) - '@stylistic/eslint-plugin': 2.6.2(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/eslint-plugin': 8.1.0(@typescript-eslint/parser@8.1.0)(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/parser': 8.1.0(eslint@8.57.0)(typescript@5.5.2) - eslint: 8.57.0 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@8.1.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.1.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - tslib: 2.6.2 - typescript: 5.5.2 - transitivePeerDependencies: - - eslint-import-resolver-node - - eslint-import-resolver-webpack - - supports-color - dev: true - - /@guardian/eslint-config@9.0.0(@typescript-eslint/parser@8.1.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)(tslib@2.6.2): - resolution: {integrity: sha512-fSijwPMzTcMVuuFS7V161B+GtES6KKRxYMYBUVjKv94eLo40XO5LeVEd6AaG8aEItxlMb+mC7ngDbwk4xAZ+Tw==} - peerDependencies: - eslint: ^8.57.0 - tslib: ^2.6.2 - peerDependenciesMeta: - eslint: - optional: true - dependencies: - eslint: 8.57.0 - eslint-config-prettier: 9.1.0(eslint@8.57.0) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.1.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - tslib: 2.6.2 - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - - /@humanwhocodes/config-array@0.11.14: - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.6 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - /@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.0: resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} engines: {node: '>=18.18'} @@ -4323,6 +4197,7 @@ packages: resolution: {integrity: sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==} dependencies: lodash: 4.17.21 + dev: false /@storybook/csf@0.1.11: resolution: {integrity: sha512-dHYFQH3mA+EtnCkHXzicbLgsvzYjcDJ1JWsogbItZogkPHgSJM/Wr71uMkcvw8v9mmCyP4NpXJuu6bPoVsOnzg==} @@ -4498,92 +4373,6 @@ packages: dependencies: storybook: 8.2.9(@babel/preset-env@7.25.4) - /@stylistic/eslint-plugin-js@2.6.2(eslint@8.57.0): - resolution: {integrity: sha512-wCr/kVctAPayMU3pcOI1MKR7MoKIh6VKZU89lPklAqtJoxT+Em6RueiiARbpznUYG5eg3LymiU+aMD+aIZXdqA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - peerDependenciesMeta: - eslint: - optional: true - dependencies: - '@types/eslint': 9.6.1 - acorn: 8.12.1 - eslint: 8.57.0 - eslint-visitor-keys: 4.0.0 - espree: 10.1.0 - dev: true - - /@stylistic/eslint-plugin-jsx@2.6.2(eslint@8.57.0): - resolution: {integrity: sha512-dSXK/fSPA938J1fBi10QmhzLKtZ/2TuyVNHQMk8jUhWfKJDleAogaSqcWNAbN8fwcoe9UWmt/3StiIf2oYC1aQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - peerDependenciesMeta: - eslint: - optional: true - dependencies: - '@stylistic/eslint-plugin-js': 2.6.2(eslint@8.57.0) - '@types/eslint': 9.6.1 - eslint: 8.57.0 - estraverse: 5.3.0 - picomatch: 4.0.2 - dev: true - - /@stylistic/eslint-plugin-plus@2.6.2(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-cANcPASfRvq3VTbbQCrSIXq+2AI0IW68PNYaZoXXS0ENlp7HDB8dmrsJnOgWCcoEvdCB8z/eWcG/eq/v5Qcl+Q==} - peerDependencies: - eslint: '*' - peerDependenciesMeta: - eslint: - optional: true - dependencies: - '@types/eslint': 9.6.1 - '@typescript-eslint/utils': 8.4.0(eslint@8.57.0)(typescript@5.5.2) - eslint: 8.57.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@stylistic/eslint-plugin-ts@2.6.2(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-6OEN3VtUNxjgOvWPavnC10MByr1H4zsgwNND3rQXr5lDFv93MLUnTsH+/SH15OkuqdyJgrQILI6b9lYecb1vIg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - peerDependenciesMeta: - eslint: - optional: true - dependencies: - '@stylistic/eslint-plugin-js': 2.6.2(eslint@8.57.0) - '@types/eslint': 9.6.1 - '@typescript-eslint/utils': 8.4.0(eslint@8.57.0)(typescript@5.5.2) - eslint: 8.57.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@stylistic/eslint-plugin@2.6.2(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-Ic5oFNM/25iuagob6LiIBkSI/A2y45TsyKtDtODXHRZDy52WfPfeexI6r+OH5+aWN9QGob2Bw+4JRM9/4areWw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - peerDependenciesMeta: - eslint: - optional: true - dependencies: - '@stylistic/eslint-plugin-js': 2.6.2(eslint@8.57.0) - '@stylistic/eslint-plugin-jsx': 2.6.2(eslint@8.57.0) - '@stylistic/eslint-plugin-plus': 2.6.2(eslint@8.57.0)(typescript@5.5.2) - '@stylistic/eslint-plugin-ts': 2.6.2(eslint@8.57.0)(typescript@5.5.2) - '@types/eslint': 9.6.1 - eslint: 8.57.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - /@stylistic/eslint-plugin@2.7.2(eslint@9.9.0)(typescript@5.5.2): resolution: {integrity: sha512-3DVLU5HEuk2pQoBmXJlzvrxbKNpu2mJ0SRqz5O/CJjyNCr12ZiPcYMEtuArTyPOk5i7bsAU44nywh1rGfe3gKQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4908,6 +4697,7 @@ packages: dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 + dev: false /@types/estree@0.0.51: resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} @@ -4978,9 +4768,7 @@ packages: /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: false /@types/lodash@4.17.0: resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} @@ -5131,35 +4919,6 @@ packages: dependencies: '@types/yargs-parser': 21.0.3 - /@typescript-eslint/eslint-plugin@8.1.0(@typescript-eslint/parser@8.1.0)(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-LlNBaHFCEBPHyD4pZXb35mzjGkuGKXU5eeCA1SxvHfiRES0E82dOounfVpL4DCqYvJEKab0bZIA0gCRpdLKkCw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - eslint: - optional: true - typescript: - optional: true - dependencies: - '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.1.0(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/scope-manager': 8.1.0 - '@typescript-eslint/type-utils': 8.1.0(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/utils': 8.1.0(eslint@8.57.0)(typescript@5.5.2) - '@typescript-eslint/visitor-keys': 8.1.0 - eslint: 8.57.0 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.5.2) - typescript: 5.5.2 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0)(eslint@9.9.0)(typescript@5.5.2): resolution: {integrity: sha512-rg8LGdv7ri3oAlenMACk9e+AR4wUV0yrrG+XKsGKOK0EVgeEDqurkXMPILG2836fW4ibokTB5v4b6Z9+GYQDEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5189,28 +4948,6 @@ packages: - supports-color dev: false - /@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-U7iTAtGgJk6DPX9wIWPPOlt1gO57097G06gIcl0N0EEnNw8RGD62c+2/DiP/zL7KrkqnnqF7gtFGR7YgzPllTA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - eslint: - optional: true - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 8.1.0 - '@typescript-eslint/types': 8.1.0 - '@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.2) - '@typescript-eslint/visitor-keys': 8.1.0 - debug: 4.3.6 - eslint: 8.57.0 - typescript: 5.5.2 - transitivePeerDependencies: - - supports-color - /@typescript-eslint/parser@8.4.0(eslint@9.9.0)(typescript@5.5.2): resolution: {integrity: sha512-NHgWmKSgJk5K9N16GIhQ4jSobBoJwrmURaLErad0qlLjrpP5bECYg+wxVTGlGZmJbU03jj/dfnb6V9bw+5icsA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5240,13 +4977,7 @@ packages: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - - /@typescript-eslint/scope-manager@8.1.0: - resolution: {integrity: sha512-DsuOZQji687sQUjm4N6c9xABJa7fjvfIdjqpSIIVOgaENf2jFXiM9hIBZOL3hb6DHK9Nvd2d7zZnoMLf9e0OtQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@typescript-eslint/types': 8.1.0 - '@typescript-eslint/visitor-keys': 8.1.0 + dev: false /@typescript-eslint/scope-manager@8.4.0: resolution: {integrity: sha512-n2jFxLeY0JmKfUqy3P70rs6vdoPjHK8P/w+zJcV3fk0b0BwRXC/zxRTEnAsgYT7MwdQDt/ZEbtdzdVC+hcpF0A==} @@ -5254,25 +4985,7 @@ packages: dependencies: '@typescript-eslint/types': 8.4.0 '@typescript-eslint/visitor-keys': 8.4.0 - - /@typescript-eslint/type-utils@8.1.0(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-oLYvTxljVvsMnldfl6jIKxTaU7ok7km0KDrwOt1RHYu6nxlhN3TIx8k5Q52L6wR33nOwDgM7VwW1fT1qMNfFIA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.2) - '@typescript-eslint/utils': 8.1.0(eslint@8.57.0)(typescript@5.5.2) - debug: 4.3.6 - ts-api-utils: 1.3.0(typescript@5.5.2) - typescript: 5.5.2 - transitivePeerDependencies: - - eslint - - supports-color - dev: true + dev: false /@typescript-eslint/type-utils@8.4.0(eslint@9.9.0)(typescript@5.5.2): resolution: {integrity: sha512-pu2PAmNrl9KX6TtirVOrbLPLwDmASpZhK/XU7WvoKoCUkdtq9zF7qQ7gna0GBZFN0hci0vHaSusiL2WpsQk37A==} @@ -5296,14 +5009,12 @@ packages: /@typescript-eslint/types@5.62.0: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - /@typescript-eslint/types@8.1.0: - resolution: {integrity: sha512-q2/Bxa0gMOu/2/AKALI0tCKbG2zppccnRIRCW6BaaTlRVaPKft4oVYPp7WOPpcnsgbr0qROAVCVKCvIQ0tbWog==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: false /@typescript-eslint/types@8.4.0: resolution: {integrity: sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: false /@typescript-eslint/typescript-estree@5.62.0(typescript@5.5.2): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} @@ -5324,27 +5035,7 @@ packages: typescript: 5.5.2 transitivePeerDependencies: - supports-color - - /@typescript-eslint/typescript-estree@8.1.0(typescript@5.5.2): - resolution: {integrity: sha512-NTHhmufocEkMiAord/g++gWKb0Fr34e9AExBRdqgWdVBaKoei2dIyYKD9Q0jBnvfbEA5zaf8plUFMUH6kQ0vGg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 8.1.0 - '@typescript-eslint/visitor-keys': 8.1.0 - debug: 4.3.6 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.5.2) - typescript: 5.5.2 - transitivePeerDependencies: - - supports-color + dev: false /@typescript-eslint/typescript-estree@8.4.0(typescript@5.5.2): resolution: {integrity: sha512-kJ2OIP4dQw5gdI4uXsaxUZHRwWAGpREJ9Zq6D5L0BweyOrWsL6Sz0YcAZGWhvKnH7fm1J5YFE1JrQL0c9dd53A==} @@ -5366,29 +5057,7 @@ packages: typescript: 5.5.2 transitivePeerDependencies: - supports-color - - /@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - eslint: - optional: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.2) - eslint: 8.57.0 - eslint-scope: 5.1.1 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - - typescript - dev: true + dev: false /@typescript-eslint/utils@5.62.0(eslint@9.9.0)(typescript@5.5.2): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} @@ -5413,44 +5082,6 @@ packages: - typescript dev: false - /@typescript-eslint/utils@8.1.0(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-ypRueFNKTIFwqPeJBfeIpxZ895PQhNyH4YID6js0UoBImWYoSjBsahUn9KMiJXh94uOjVBgHD9AmkyPsPnFwJA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - peerDependenciesMeta: - eslint: - optional: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 8.1.0 - '@typescript-eslint/types': 8.1.0 - '@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.2) - eslint: 8.57.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/utils@8.4.0(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - peerDependenciesMeta: - eslint: - optional: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 8.4.0 - '@typescript-eslint/types': 8.4.0 - '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.2) - eslint: 8.57.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - /@typescript-eslint/utils@8.4.0(eslint@9.9.0)(typescript@5.5.2): resolution: {integrity: sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5476,13 +5107,7 @@ packages: dependencies: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 - - /@typescript-eslint/visitor-keys@8.1.0: - resolution: {integrity: sha512-ba0lNI19awqZ5ZNKh6wCModMwoZs457StTebQ0q1NP58zSi2F6MOZRXwfKZy+jB78JNJ/WH8GSh2IQNzXX8Nag==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@typescript-eslint/types': 8.1.0 - eslint-visitor-keys: 3.4.3 + dev: false /@typescript-eslint/visitor-keys@8.4.0: resolution: {integrity: sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A==} @@ -5490,6 +5115,7 @@ packages: dependencies: '@typescript-eslint/types': 8.4.0 eslint-visitor-keys: 3.4.3 + dev: false /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} @@ -5908,28 +5534,18 @@ packages: es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 is-string: 1.0.7 + dev: false /array-iterate@2.0.1: resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} dev: true - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - /array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} - /array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + /array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -5938,6 +5554,7 @@ packages: es-errors: 1.3.0 es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 + dev: false /array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} @@ -5956,6 +5573,7 @@ packages: define-properties: 1.2.1 es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 + dev: false /array.prototype.tosorted@1.1.4: resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} @@ -5966,6 +5584,7 @@ packages: es-abstract: 1.23.3 es-errors: 1.3.0 es-shim-unscopables: 1.0.2 + dev: false /arraybuffer.prototype.slice@1.0.3: resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} @@ -7038,6 +6657,7 @@ packages: optional: true dependencies: ms: 2.1.3 + dev: false /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} @@ -7244,12 +6864,14 @@ packages: engines: {node: '>=0.10.0'} dependencies: esutils: 2.0.3 + dev: false /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 + dev: false /dom-accessibility-api@0.5.14: resolution: {integrity: sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==} @@ -7402,6 +7024,7 @@ packages: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 + dev: false /enquirer@2.4.1: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} @@ -7532,6 +7155,7 @@ packages: internal-slot: 1.0.7 iterator.prototype: 1.1.2 safe-array-concat: 1.1.2 + dev: false /es-module-lexer@1.4.2: resolution: {integrity: sha512-7nOqkomXZEaxUDJw21XZNtRk739QvrPSoZoRtbsEfcii00vdzZUh6zh1CQwHhrib8MdEtJfv5rJiGeb4KuV/vw==} @@ -7674,18 +7298,6 @@ packages: optionalDependencies: source-map: 0.6.1 - /eslint-config-prettier@9.1.0(eslint@8.57.0): - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - peerDependenciesMeta: - eslint: - optional: true - dependencies: - eslint: 8.57.0 - dev: true - /eslint-config-prettier@9.1.0(eslint@9.9.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true @@ -7706,33 +7318,9 @@ packages: resolve: 1.22.8 transitivePeerDependencies: - supports-color + dev: false - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@8.1.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0): - resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - peerDependenciesMeta: - eslint: - optional: true - dependencies: - debug: 4.3.6 - enhanced-resolve: 5.17.1 - eslint: 8.57.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@8.1.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.1.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - fast-glob: 3.3.2 - get-tsconfig: 4.7.5 - is-core-module: 2.15.0 - is-glob: 4.0.3 - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-node - - eslint-import-resolver-webpack - - supports-color - - /eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.4.0)(eslint-plugin-import-x@4.2.0)(eslint-plugin-import@2.29.1)(eslint@9.9.0): + /eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.4.0)(eslint-plugin-import-x@4.2.0)(eslint@9.9.0): resolution: {integrity: sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -7752,7 +7340,6 @@ packages: enhanced-resolve: 5.17.1 eslint: 9.9.0 eslint-module-utils: 2.8.1(@typescript-eslint/parser@8.4.0)(eslint-import-resolver-typescript@3.6.3)(eslint@9.9.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.1.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) eslint-plugin-import-x: 4.2.0(eslint@9.9.0)(typescript@5.5.2) fast-glob: 3.3.2 get-tsconfig: 4.7.5 @@ -7765,35 +7352,6 @@ packages: - supports-color dev: false - /eslint-module-utils@2.8.1(@typescript-eslint/parser@8.1.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - dependencies: - '@typescript-eslint/parser': 8.1.0(eslint@8.57.0)(typescript@5.5.2) - debug: 3.2.7 - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@8.1.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - transitivePeerDependencies: - - supports-color - /eslint-module-utils@2.8.1(@typescript-eslint/parser@8.4.0)(eslint-import-resolver-typescript@3.6.3)(eslint@9.9.0): resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} engines: {node: '>=4'} @@ -7818,25 +7376,11 @@ packages: '@typescript-eslint/parser': 8.4.0(eslint@9.9.0)(typescript@5.5.2) debug: 3.2.7 eslint: 9.9.0 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.4.0)(eslint-plugin-import-x@4.2.0)(eslint-plugin-import@2.29.1)(eslint@9.9.0) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.4.0)(eslint-plugin-import-x@4.2.0)(eslint@9.9.0) transitivePeerDependencies: - supports-color dev: false - /eslint-plugin-eslint-comments@3.2.0(eslint@8.57.0): - resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} - engines: {node: '>=6.5.0'} - peerDependencies: - eslint: '>=4.19.1' - peerDependenciesMeta: - eslint: - optional: true - dependencies: - escape-string-regexp: 1.0.5 - eslint: 8.57.0 - ignore: 5.3.2 - dev: true - /eslint-plugin-import-x@4.2.0(eslint@9.9.0)(typescript@5.5.2): resolution: {integrity: sha512-kEPB9oeuKSZ8U2LfH6DDoov5V4gTid5JHny9P0JyvKmB4LZNG8kGdqJyCq46QRimbp8FKTlOtsSIO5hdhoZS8A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -7862,42 +7406,6 @@ packages: - typescript dev: false - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.1.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - dependencies: - '@typescript-eslint/parser': 8.1.0(eslint@8.57.0)(typescript@5.5.2) - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@8.1.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - hasown: 2.0.2 - is-core-module: 2.15.0 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.0 - semver: 6.3.1 - tsconfig-paths: 3.15.0 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - /eslint-plugin-jsx-a11y@6.10.0(eslint@9.9.0): resolution: {integrity: sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==} engines: {node: '>=4.0'} @@ -7926,18 +7434,6 @@ packages: string.prototype.includes: 2.0.0 dev: false - /eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): - resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - peerDependenciesMeta: - eslint: - optional: true - dependencies: - eslint: 8.57.0 - dev: true - /eslint-plugin-react-hooks@4.6.2(eslint@9.9.0): resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} engines: {node: '>=10'} @@ -7950,36 +7446,6 @@ packages: eslint: 9.9.0 dev: false - /eslint-plugin-react@7.35.0(eslint@8.57.0): - resolution: {integrity: sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - peerDependenciesMeta: - eslint: - optional: true - dependencies: - array-includes: 3.1.8 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.2 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.0.19 - eslint: 8.57.0 - estraverse: 5.3.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.8 - object.fromentries: 2.0.8 - object.values: 1.2.0 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.11 - string.prototype.repeat: 1.0.0 - dev: true - /eslint-plugin-react@7.35.2(eslint@9.9.0): resolution: {integrity: sha512-Rbj2R9zwP2GYNcIak4xoAMV57hrBh3hTaR0k7hVjwCQgryE/pw5px4b13EYjduOI0hfXyZhwBxaGpOTbWSGzKQ==} engines: {node: '>=4'} @@ -8010,25 +7476,6 @@ packages: string.prototype.repeat: 1.0.0 dev: false - /eslint-plugin-storybook@0.8.0(eslint@8.57.0)(typescript@5.5.2): - resolution: {integrity: sha512-CZeVO5EzmPY7qghO2t64oaFM+8FTaD4uzOEjHKp516exyTKo+skKAL9GI3QALS2BXhyALJjNtwbmr1XinGE8bA==} - engines: {node: '>= 18'} - peerDependencies: - eslint: '>=6' - peerDependenciesMeta: - eslint: - optional: true - dependencies: - '@storybook/csf': 0.0.1 - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.2) - eslint: 8.57.0 - requireindex: 1.2.0 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - /eslint-plugin-storybook@0.8.0(eslint@9.9.0)(typescript@5.5.2): resolution: {integrity: sha512-CZeVO5EzmPY7qghO2t64oaFM+8FTaD4uzOEjHKp516exyTKo+skKAL9GI3QALS2BXhyALJjNtwbmr1XinGE8bA==} engines: {node: '>= 18'} @@ -8054,13 +7501,7 @@ packages: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 - - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 + dev: false /eslint-scope@8.0.2: resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} @@ -8077,52 +7518,6 @@ packages: resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.11.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.6 - 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 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.2 - 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.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - /eslint@9.9.0: resolution: {integrity: sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -8183,14 +7578,6 @@ packages: acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 4.0.0 - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) - eslint-visitor-keys: 3.4.3 - /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -8211,6 +7598,7 @@ packages: /estraverse@4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} engines: {node: '>=4.0'} + dev: false /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} @@ -8396,12 +7784,6 @@ packages: dependencies: walk-up-path: 3.0.1 - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.2.0 - /file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} @@ -8508,6 +7890,7 @@ packages: flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 + dev: false /flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} @@ -8775,12 +8158,6 @@ 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'} - dependencies: - type-fest: 0.20.2 - /globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -8844,6 +8221,7 @@ packages: /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: false /gray-matter@4.0.3: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} @@ -9293,6 +8671,7 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 + dev: false /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} @@ -9339,6 +8718,7 @@ packages: engines: {node: '>= 0.4'} dependencies: hasown: 2.0.2 + dev: false /is-data-view@1.0.1: resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} @@ -9371,6 +8751,7 @@ packages: resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} dependencies: call-bind: 1.0.7 + dev: false /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} @@ -9427,6 +8808,7 @@ packages: /is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} + dev: false /is-module@1.0.0: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} @@ -9499,6 +8881,7 @@ packages: /is-set@2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} + dev: false /is-shared-array-buffer@1.0.3: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} @@ -9559,6 +8942,7 @@ packages: /is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} + dev: false /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} @@ -9577,6 +8961,7 @@ packages: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 + dev: false /is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} @@ -9661,6 +9046,7 @@ packages: has-symbols: 1.0.3 reflect.getprototypeof: 1.0.6 set-function-name: 2.0.2 + dev: false /jackspeak@3.4.0: resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} @@ -10225,12 +9611,6 @@ packages: /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - dependencies: - minimist: 1.2.8 - /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -10269,6 +9649,7 @@ packages: array.prototype.flat: 1.3.2 object.assign: 4.1.5 object.values: 1.2.0 + dev: false /keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -11194,6 +10575,7 @@ packages: /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: false /minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} @@ -11439,6 +10821,7 @@ packages: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 + dev: false /object.fromentries@2.0.8: resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} @@ -11448,14 +10831,7 @@ packages: define-properties: 1.2.1 es-abstract: 1.23.3 es-object-atoms: 1.0.0 - - /object.groupby@1.0.3: - resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 + dev: false /object.values@1.2.0: resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} @@ -11464,6 +10840,7 @@ packages: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 + dev: false /objectorarray@1.0.5: resolution: {integrity: sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==} @@ -11782,6 +11159,7 @@ packages: /picomatch@4.0.2: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + dev: false /pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} @@ -12276,6 +11654,7 @@ packages: get-intrinsic: 1.2.4 globalthis: 1.0.4 which-builtin-type: 1.1.4 + dev: false /regenerate-unicode-properties@10.1.1: resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} @@ -12470,6 +11849,7 @@ packages: /requireindex@1.2.0: resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} engines: {node: '>=0.10.5'} + dev: false /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} @@ -12511,6 +11891,7 @@ packages: is-core-module: 2.15.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: false /restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} @@ -12594,6 +11975,7 @@ packages: hasBin: true dependencies: glob: 7.2.3 + dev: false /rollup-plugin-dts@6.1.0(rollup@4.21.0)(typescript@5.5.2): resolution: {integrity: sha512-ijSCPICkRMDKDLBK9torss07+8dl9UpY9z1N/zTeA1cIqdzMlpkV3MOOC7zukyvQfDyxa1s3Dl2+DeiP/G6DOw==} @@ -13161,12 +12543,14 @@ packages: regexp.prototype.flags: 1.5.2 set-function-name: 2.0.2 side-channel: 1.0.6 + dev: false /string.prototype.repeat@1.0.0: resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} dependencies: define-properties: 1.2.1 es-abstract: 1.23.3 + dev: false /string.prototype.trim@1.2.9: resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} @@ -13383,6 +12767,7 @@ packages: /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} + dev: false /tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} @@ -13548,6 +12933,7 @@ packages: typescript: '>=4.2.0' dependencies: typescript: 5.5.2 + dev: false /ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} @@ -13609,14 +12995,6 @@ packages: typescript: 5.5.2 dev: true - /tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - /tsconfig-paths@4.2.0: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} @@ -13644,6 +13022,7 @@ packages: dependencies: tslib: 1.14.1 typescript: 5.5.2 + dev: false /tsx@4.19.0: resolution: {integrity: sha512-bV30kM7bsLZKZIOCHeMNVMJ32/LuJzLVajkQI/qf92J2Qr08ueLQvW00PUZGiuLPP760UINwupgUj8qrSCPUKg==} @@ -13685,10 +13064,6 @@ packages: engines: {node: '>=10'} dev: true - /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'} @@ -14475,6 +13850,7 @@ packages: which-boxed-primitive: 1.0.2 which-collection: 1.0.2 which-typed-array: 1.1.15 + dev: false /which-collection@1.0.1: resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} @@ -14492,6 +13868,7 @@ packages: is-set: 2.0.3 is-weakmap: 2.0.2 is-weakset: 2.0.3 + dev: false /which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} From a6d04e1045d33bc41a49642006594c6ea6f80082 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Wed, 4 Sep 2024 18:28:16 +0100 Subject: [PATCH 15/17] Rejig `@eslint-community/eslint-plugin-eslint-comments` config --- libs/@guardian/eslint-config/CHANGELOG.md | 6 ++++++ libs/@guardian/eslint-config/configs/comments.js | 2 +- libs/@guardian/eslint-config/package.json | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libs/@guardian/eslint-config/CHANGELOG.md b/libs/@guardian/eslint-config/CHANGELOG.md index 84ed939f0..b0f3c8729 100644 --- a/libs/@guardian/eslint-config/CHANGELOG.md +++ b/libs/@guardian/eslint-config/CHANGELOG.md @@ -1,5 +1,11 @@ # @guardian/eslint-config +## 10.0.0-beta.2 + +### Patch Changes + +- Rejig `@eslint-community/eslint-plugin-eslint-comments` config + ## 10.0.0-beta.1 ### Patch Changes diff --git a/libs/@guardian/eslint-config/configs/comments.js b/libs/@guardian/eslint-config/configs/comments.js index 87670272a..3d0b47491 100644 --- a/libs/@guardian/eslint-config/configs/comments.js +++ b/libs/@guardian/eslint-config/configs/comments.js @@ -1,9 +1,9 @@ import comments from '@eslint-community/eslint-plugin-eslint-comments/configs'; export default [ - comments.recommended, { name: '@guardian/comments', + plugins: comments.recommended.plugins, rules: { // require a `eslint-enable` comment for every `eslint-disable` comment '@eslint-community/eslint-comments/disable-enable-pair': [ diff --git a/libs/@guardian/eslint-config/package.json b/libs/@guardian/eslint-config/package.json index b237dcc31..ccb5808f9 100644 --- a/libs/@guardian/eslint-config/package.json +++ b/libs/@guardian/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@guardian/eslint-config", - "version": "10.0.0-beta.1", + "version": "10.0.0-beta.2", "description": "ESLint config for Guardian JavaScript projects", "type": "module", "main": "index.js", From 760e391f84fa9afc1d25661f833f42d6ead6544f Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Wed, 4 Sep 2024 18:29:04 +0100 Subject: [PATCH 16/17] lint fixes --- libs/@guardian/libs/playwright.config.js | 1 + libs/@guardian/libs/playwright/e2e/sourcepoint-aus.spec.js | 1 + libs/@guardian/libs/playwright/e2e/sourcepoint-ccpa.spec.js | 1 + libs/@guardian/libs/playwright/e2e/sourcepoint-tcfv2.spec.js | 2 ++ libs/@guardian/source-development-kitchen/.storybook/main.ts | 1 - libs/@guardian/source/.storybook/main.ts | 1 - 6 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libs/@guardian/libs/playwright.config.js b/libs/@guardian/libs/playwright.config.js index b56e63b4b..a7c312f92 100644 --- a/libs/@guardian/libs/playwright.config.js +++ b/libs/@guardian/libs/playwright.config.js @@ -1,3 +1,4 @@ +// eslint-disable-next-line import/named -- this is a false positive import { defineConfig, devices } from '@playwright/test'; /** diff --git a/libs/@guardian/libs/playwright/e2e/sourcepoint-aus.spec.js b/libs/@guardian/libs/playwright/e2e/sourcepoint-aus.spec.js index 32503ea64..f600fa6da 100644 --- a/libs/@guardian/libs/playwright/e2e/sourcepoint-aus.spec.js +++ b/libs/@guardian/libs/playwright/e2e/sourcepoint-aus.spec.js @@ -1,3 +1,4 @@ +// eslint-disable-next-line import/named -- this is a false positive import { expect, test } from '@playwright/test'; import { ACCOUNT_ID, diff --git a/libs/@guardian/libs/playwright/e2e/sourcepoint-ccpa.spec.js b/libs/@guardian/libs/playwright/e2e/sourcepoint-ccpa.spec.js index d621b061d..8c0681dd2 100644 --- a/libs/@guardian/libs/playwright/e2e/sourcepoint-ccpa.spec.js +++ b/libs/@guardian/libs/playwright/e2e/sourcepoint-ccpa.spec.js @@ -1,3 +1,4 @@ +// eslint-disable-next-line import/named -- this is a false positive import { expect, test } from '@playwright/test'; import { ACCOUNT_ID, diff --git a/libs/@guardian/libs/playwright/e2e/sourcepoint-tcfv2.spec.js b/libs/@guardian/libs/playwright/e2e/sourcepoint-tcfv2.spec.js index 42e7c742a..90008aad0 100644 --- a/libs/@guardian/libs/playwright/e2e/sourcepoint-tcfv2.spec.js +++ b/libs/@guardian/libs/playwright/e2e/sourcepoint-tcfv2.spec.js @@ -1,3 +1,4 @@ +// eslint-disable-next-line import/named -- this is a false positive import { expect, test } from '@playwright/test'; import { ACCOUNT_ID, ENDPOINT } from '../fixtures/sourcepointConfig'; @@ -17,6 +18,7 @@ async function getIframeBody(page, selector) { return frame; } + test.describe('Window', () => { test('has the guCmpHotFix object', async ({ page }) => { await page.goto(url); diff --git a/libs/@guardian/source-development-kitchen/.storybook/main.ts b/libs/@guardian/source-development-kitchen/.storybook/main.ts index b5677dcc1..52ee66ebd 100644 --- a/libs/@guardian/source-development-kitchen/.storybook/main.ts +++ b/libs/@guardian/source-development-kitchen/.storybook/main.ts @@ -6,5 +6,4 @@ const config: StorybookConfig = { stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'], }; -/* eslint-disable-next-line import/no-default-export -- it's the storybook way */ export default config; diff --git a/libs/@guardian/source/.storybook/main.ts b/libs/@guardian/source/.storybook/main.ts index b5677dcc1..52ee66ebd 100644 --- a/libs/@guardian/source/.storybook/main.ts +++ b/libs/@guardian/source/.storybook/main.ts @@ -6,5 +6,4 @@ const config: StorybookConfig = { stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'], }; -/* eslint-disable-next-line import/no-default-export -- it's the storybook way */ export default config; From d83f07e702e94dd237e3d7c3a867ef603fbbec40 Mon Sep 17 00:00:00 2001 From: Alex Sanders Date: Wed, 4 Sep 2024 18:30:27 +0100 Subject: [PATCH 17/17] remove unnecessary spec --- libs/@guardian/libs/playwright/example.spec.js | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 libs/@guardian/libs/playwright/example.spec.js diff --git a/libs/@guardian/libs/playwright/example.spec.js b/libs/@guardian/libs/playwright/example.spec.js deleted file mode 100644 index 72e433d92..000000000 --- a/libs/@guardian/libs/playwright/example.spec.js +++ /dev/null @@ -1,6 +0,0 @@ -import { expect, test } from '@playwright/test'; - -test('has title CMP Test Page', async ({ page }) => { - await page.goto('http://localhost:4321/csnx/cmp-test-page#tcfv2'); - await expect(page).toHaveTitle(/CMP Test Page/); -});