From b197256380ec62a117550e3c46d0c0f019951c19 Mon Sep 17 00:00:00 2001 From: Ben Scott Date: Sat, 7 Feb 2026 14:57:03 -0800 Subject: [PATCH] chore: testing eslint v10 --- .github/workflows/ci.yml | 30 ++-- package.json | 20 +-- pnpm-lock.yaml | 366 ++++++++++++++++++++++++++------------- test/prettier.mjs | 44 +++-- 4 files changed, 299 insertions(+), 161 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0d7d96eb..69625d6e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,18 +17,13 @@ jobs: strategy: fail-fast: false matrix: - node: - - 22 - - 20 - - 18 - eslint: - - 9 - - 8 + node: [24, 22, 20] + eslint: [10, 9, 8] include: - - node: 16 - eslint: 8 - - node: 14 - eslint: 8 + - { node: 18, eslint: 9 } + - { node: 18, eslint: 8 } + - { node: 16, eslint: 8 } + - { node: 14, eslint: 8 } steps: - name: Checkout Repo @@ -46,9 +41,16 @@ jobs: - name: Install run: pnpm install --prefer-frozen-lockfile - - name: Install ESLint ${{ matrix.node }} - if: ${{ matrix.eslint != 9 }} - run: pnpm install -D eslint@${{ matrix.eslint }} @graphql-eslint/eslint-plugin@3 eslint-plugin-svelte@2 svelte@3 vue-eslint-parser@9 + - name: Install ESLint ${{ matrix.eslint }} + run: pnpm upgrade eslint@${{ matrix.eslint }} + + - name: Install older transitive dependencies for ESLint 9 + if: ${{ matrix.eslint == 9 }} + run: pnpm upgrade @eslint/js@9 @eslint/json@0.14 + + - name: Install older transitive dependencies for ESLint 8 + if: ${{ matrix.eslint == 8 }} + run: pnpm upgrade @eslint/js@9 @eslint/json@0.14 @graphql-eslint/eslint-plugin@3 eslint-plugin-svelte@2 svelte@3 vue-eslint-parser@9 - name: Test run: pnpm mocha diff --git a/package.json b/package.json index 95f2cf9f..4ff7d03b 100644 --- a/package.json +++ b/package.json @@ -73,30 +73,30 @@ "@commitlint/cli": "^20.4.1", "@commitlint/config-conventional": "^20.4.1", "@eslint-community/eslint-plugin-eslint-comments": "^4.6.0", - "@eslint/js": "^9.23.0", - "@eslint/json": "^0.14.0", + "@eslint/js": "^10.0.1", + "@eslint/json": "^1.0.0", "@graphql-eslint/eslint-plugin": "^4.4.0", "@html-eslint/parser": "^0.54.0", "@prettier/plugin-pug": "^3.4.2", "clean-pkg-json": "^1.3.0", - "eslint": "^9.23.0", + "eslint": "^10.0.0", "eslint-config-prettier": "^10.1.8", - "eslint-mdx": "^3.6.2", + "eslint-mdx": "^3.7.0", "eslint-plugin-eslint-plugin": "^7.3.0", - "eslint-plugin-mdx": "^3.6.2", + "eslint-plugin-mdx": "^3.7.0", "eslint-plugin-n": "^17.23.2", - "eslint-plugin-prettier": "link:.", + "eslint-plugin-prettier": "link:", "eslint-plugin-pug": "^1.2.5", - "eslint-plugin-svelte": "^3.14.0", + "eslint-plugin-svelte": "^3.15.0", "graphql": "^16.12.0", "lint-staged": "^16.2.7", "mocha": "^11.7.5", - "prettier": "^3.5.3", - "prettier-plugin-pkg": "^0.21.0", + "prettier": "^3.6.1", + "prettier-plugin-pkg": "^0.21.1", "prettier-plugin-svelte": "^3.3.3", "simple-git-hooks": "^2.13.1", "svelte": "^5.25.3", - "vue-eslint-parser": "^10.2.0" + "vue-eslint-parser": "^10.4.0" }, "pnpm": { "patchedDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1ec4fa21..a1981a33 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,32 +15,32 @@ specifiers: '@commitlint/cli': ^20.4.1 '@commitlint/config-conventional': ^20.4.1 '@eslint-community/eslint-plugin-eslint-comments': ^4.6.0 - '@eslint/js': ^9.23.0 - '@eslint/json': ^0.14.0 + '@eslint/js': ^10.0.1 + '@eslint/json': ^1.0.0 '@graphql-eslint/eslint-plugin': ^4.4.0 '@html-eslint/parser': ^0.54.0 '@prettier/plugin-pug': ^3.4.2 clean-pkg-json: ^1.3.0 - eslint: ^9.23.0 + eslint: ^10.0.0 eslint-config-prettier: ^10.1.8 - eslint-mdx: ^3.6.2 + eslint-mdx: ^3.7.0 eslint-plugin-eslint-plugin: ^7.3.0 - eslint-plugin-mdx: ^3.6.2 + eslint-plugin-mdx: ^3.7.0 eslint-plugin-n: ^17.23.2 - eslint-plugin-prettier: link:. + eslint-plugin-prettier: 'link:' eslint-plugin-pug: ^1.2.5 - eslint-plugin-svelte: ^3.14.0 + eslint-plugin-svelte: ^3.15.0 graphql: ^16.12.0 lint-staged: ^16.2.7 mocha: ^11.7.5 prettier: ^3.6.1 prettier-linter-helpers: ^1.0.1 - prettier-plugin-pkg: ^0.21.0 + prettier-plugin-pkg: ^0.21.1 prettier-plugin-svelte: ^3.3.3 simple-git-hooks: ^2.13.1 svelte: ^5.25.3 synckit: ^0.11.12 - vue-eslint-parser: ^10.2.0 + vue-eslint-parser: ^10.4.0 dependencies: prettier-linter-helpers: 1.0.1 @@ -52,22 +52,22 @@ devDependencies: '@changesets/cli': 2.29.8 '@commitlint/cli': 20.4.1 '@commitlint/config-conventional': 20.4.1 - '@eslint-community/eslint-plugin-eslint-comments': 4.6.0_eslint@9.39.2 - '@eslint/js': 9.39.2 - '@eslint/json': 0.14.0 - '@graphql-eslint/eslint-plugin': 4.4.0_4oe3opvydzpfg2rmwbqhhtoewq + '@eslint-community/eslint-plugin-eslint-comments': 4.6.0_eslint@10.0.0 + '@eslint/js': 10.0.1_eslint@10.0.0 + '@eslint/json': 1.0.0 + '@graphql-eslint/eslint-plugin': 4.4.0_a325u4szc6z2k6xp7ow4sqs67a '@html-eslint/parser': 0.54.0 '@prettier/plugin-pug': 3.4.2_prettier@3.6.1 clean-pkg-json: 1.3.0 - eslint: 9.39.2 - eslint-config-prettier: 10.1.8_eslint@9.39.2 - eslint-mdx: 3.6.2_eslint@9.39.2 - eslint-plugin-eslint-plugin: 7.3.0_eslint@9.39.2 - eslint-plugin-mdx: 3.6.2_eslint@9.39.2 - eslint-plugin-n: 17.23.2_eslint@9.39.2 + eslint: 10.0.0 + eslint-config-prettier: 10.1.8_eslint@10.0.0 + eslint-mdx: 3.7.0_eslint@10.0.0 + eslint-plugin-eslint-plugin: 7.3.0_eslint@10.0.0 + eslint-plugin-mdx: 3.7.0_eslint@10.0.0 + eslint-plugin-n: 17.23.2_eslint@10.0.0 eslint-plugin-prettier: 'link:' eslint-plugin-pug: 1.2.5 - eslint-plugin-svelte: 3.14.0_3uz5w247ny6cxwmafwl7buboh4 + eslint-plugin-svelte: 3.15.0_2756goqoztkxweohcbg3ym4m6u graphql: 16.12.0 lint-staged: 16.2.7 mocha: 11.7.5 @@ -76,7 +76,7 @@ devDependencies: prettier-plugin-svelte: 3.3.3_jh7atynzrv636i3i2ulv7w6yxy simple-git-hooks: 2.13.1 svelte: 5.25.3 - vue-eslint-parser: 10.2.0_eslint@9.39.2 + vue-eslint-parser: 10.4.0_eslint@10.0.0 packages: @@ -669,17 +669,27 @@ packages: tslib: 2.8.1 dev: true - /@eslint-community/eslint-plugin-eslint-comments/4.6.0_eslint@9.39.2: + /@eslint-community/eslint-plugin-eslint-comments/4.6.0_eslint@10.0.0: resolution: {integrity: sha512-2EX2bBQq1ez++xz2o9tEeEQkyvfieWgUFMH4rtJJri2q0Azvhja3hZGXsjPXs31R4fQkZDtWzNDDK2zQn5UE5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 dependencies: escape-string-regexp: 4.0.0 - eslint: 9.39.2 + eslint: 10.0.0 ignore: 7.0.5 dev: true + /@eslint-community/eslint-utils/4.9.1_eslint@10.0.0: + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 10.0.0 + eslint-visitor-keys: 3.4.3 + dev: true + /@eslint-community/eslint-utils/4.9.1_eslint@9.39.2: resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -690,8 +700,8 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/regexpp/4.12.1: - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + /@eslint-community/regexpp/4.12.2: + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true @@ -706,6 +716,17 @@ packages: - supports-color dev: true + /@eslint/config-array/0.23.1: + resolution: {integrity: sha512-uVSdg/V4dfQmTjJzR0szNczjOH/J+FyUMMjYtr07xFRXR7EDf9i1qdxrD0VusZH9knj1/ecxzCQQxyic5NzAiA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + dependencies: + '@eslint/object-schema': 3.0.1 + debug: 4.4.1 + minimatch: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: true + /@eslint/config-helpers/0.4.2: resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -713,6 +734,13 @@ packages: '@eslint/core': 0.17.0 dev: true + /@eslint/config-helpers/0.5.2: + resolution: {integrity: sha512-a5MxrdDXEvqnIq+LisyCX6tQMPF/dSJpCfBgBauY+pNZ28yCtSsTvyTYrMhaI+LK26bVyCJfJkT0u8KIj2i1dQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + dependencies: + '@eslint/core': 1.1.0 + dev: true + /@eslint/core/0.17.0: resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -720,6 +748,13 @@ packages: '@types/json-schema': 7.0.15 dev: true + /@eslint/core/1.1.0: + resolution: {integrity: sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + dependencies: + '@types/json-schema': 7.0.15 + dev: true + /@eslint/css-tree/3.6.8: resolution: {integrity: sha512-s0f40zY7dlMp8i0Jf0u6l/aSswS0WRAgkhgETgiCJRcxIWb4S/Sp9uScKHWbkM3BnoFLbJbmOYk5AZUDFVxaLA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} @@ -745,17 +780,29 @@ packages: - supports-color dev: true + /@eslint/js/10.0.1_eslint@10.0.0: + resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + peerDependencies: + eslint: ^10.0.0 + peerDependenciesMeta: + eslint: + optional: true + dependencies: + eslint: 10.0.0 + dev: true + /@eslint/js/9.39.2: resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /@eslint/json/0.14.0: - resolution: {integrity: sha512-rvR/EZtvUG3p9uqrSmcDJPYSH7atmWr0RnFWN6m917MAPx82+zQgPUmDu0whPFG6XTyM0vB/hR6c1Q63OaYtCQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + /@eslint/json/1.0.0: + resolution: {integrity: sha512-x0YjhxhUIG9yiS6KcB2SRmyzDM/eSac2IuhfLMyjAyxyCzH0gFjrHGPFahJlgiOt8dfaCpPDygcCmoCm9rzlyA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} dependencies: - '@eslint/core': 0.17.0 - '@eslint/plugin-kit': 0.4.1 + '@eslint/core': 1.1.0 + '@eslint/plugin-kit': 0.5.1 '@humanwhocodes/momoa': 3.3.10 natural-compare: 1.4.0 dev: true @@ -765,6 +812,11 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true + /@eslint/object-schema/3.0.1: + resolution: {integrity: sha512-P9cq2dpr+LU8j3qbLygLcSZrl2/ds/pUpfnHNNuk5HW7mnngHs+6WSq5C9mO3rqRX8A1poxqLTC9cu0KOyJlBg==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + dev: true + /@eslint/plugin-kit/0.4.1: resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -773,7 +825,23 @@ packages: levn: 0.4.1 dev: true - /@graphql-eslint/eslint-plugin/4.4.0_4oe3opvydzpfg2rmwbqhhtoewq: + /@eslint/plugin-kit/0.5.1: + resolution: {integrity: sha512-hZ2uC1jbf6JMSsF2ZklhRQqf6GLpYyux6DlzegnW/aFlpu6qJj5GO7ub7WOETCrEl6pl6DAX7RgTgj/fyG+6BQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + dependencies: + '@eslint/core': 1.1.0 + levn: 0.4.1 + dev: true + + /@eslint/plugin-kit/0.6.0: + resolution: {integrity: sha512-bIZEUzOI1jkhviX2cp5vNyXQc6olzb2ohewQubuYlMXZ2Q/XjBO0x0XhGPvc9fjSIiUN0vw+0hq53BJ4eQSJKQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + dependencies: + '@eslint/core': 1.1.0 + levn: 0.4.1 + dev: true + + /@graphql-eslint/eslint-plugin/4.4.0_a325u4szc6z2k6xp7ow4sqs67a: resolution: {integrity: sha512-dhW6fpk3Souuaphhc38uMAGCcgKMgtCJWFygIKODw/Kns43wiQqRPVay0aNFY1JBx3aevn4KPT/BCOdm6HNncA==} engines: {node: '>=18'} peerDependencies: @@ -791,7 +859,7 @@ packages: '@graphql-tools/graphql-tag-pluck': 8.3.19_graphql@16.12.0 '@graphql-tools/utils': 10.8.6_graphql@16.12.0 debug: 4.4.1 - eslint: 9.39.2 + eslint: 10.0.0 fast-glob: 3.3.3 graphql: 16.12.0 graphql-config: 5.1.3_graphql@16.12.0 @@ -1120,7 +1188,7 @@ packages: resolution: {integrity: sha512-bfJolxay0POMYaFWTCH1MBitEaxIEKZOoROGOLZiRBaPvQrzhwYQktuyt5X1PcHqUB4HwEtYgSdpjYGT4JbrvA==} dependencies: '@types/css-tree': 2.3.11 - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 es-html-parser: 0.3.1 eslint: 9.39.2 transitivePeerDependencies: @@ -1174,6 +1242,18 @@ packages: iconv-lite: 0.7.2 dev: true + /@isaacs/balanced-match/4.0.1: + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + dev: true + + /@isaacs/brace-expansion/5.0.1: + resolution: {integrity: sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==} + engines: {node: 20 || >=22} + dependencies: + '@isaacs/balanced-match': 4.0.1 + dev: true + /@isaacs/cliui/8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -1363,7 +1443,7 @@ packages: /@types/acorn/4.0.6: resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 dev: true /@types/concat-stream/2.0.3: @@ -1382,14 +1462,18 @@ packages: '@types/ms': 2.1.0 dev: true + /@types/esrecurse/4.3.1: + resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} + dev: true + /@types/estree-jsx/1.0.5: resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 dev: true - /@types/estree/1.0.6: - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + /@types/estree/1.0.8: + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} dev: true /@types/hast/3.0.4: @@ -1993,11 +2077,6 @@ packages: dequal: 2.0.3 dev: true - /diff/5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} - dev: true - /diff/7.0.0: resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} engines: {node: '>=0.3.1'} @@ -2128,27 +2207,27 @@ packages: engines: {node: '>=12'} dev: true - /eslint-compat-utils/0.5.1_eslint@9.39.2: + /eslint-compat-utils/0.5.1_eslint@10.0.0: resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' dependencies: - eslint: 9.39.2 + eslint: 10.0.0 semver: 7.7.1 dev: true - /eslint-config-prettier/10.1.8_eslint@9.39.2: + /eslint-config-prettier/10.1.8_eslint@10.0.0: resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 9.39.2 + eslint: 10.0.0 dev: true - /eslint-mdx/3.6.2_eslint@9.39.2: - resolution: {integrity: sha512-5hczn5iSSEcwtNtVXFwCKIk6iLEDaZpwc3vjYDl/B779OzaAAK/ou16J2xVdO6ecOLEO1WZqp7MRCQ/WsKDUig==} + /eslint-mdx/3.7.0_eslint@10.0.0: + resolution: {integrity: sha512-QpPdJ6EeFthHuIrfgnWneZgwwFNOLFj/nf2jg/tOTBoiUnqNTxUUpTGAn0ZFHYEh5htVVoe5kjvD02oKtxZGeA==} engines: {node: '>=18.0.0'} peerDependencies: eslint: '>=8.0.0' @@ -2159,7 +2238,7 @@ packages: dependencies: acorn: 8.15.0 acorn-jsx: 5.3.2_acorn@8.15.0 - eslint: 9.39.2 + eslint: 10.0.0 espree: 10.4.0 estree-util-visit: 2.0.0 remark-mdx: 3.1.0 @@ -2169,44 +2248,43 @@ packages: unified: 11.0.5 unified-engine: 11.2.2_7ukzw754b2puuavfvjkmpcysye unist-util-visit: 5.0.0 - uvu: 0.5.6 vfile: 6.0.3 transitivePeerDependencies: - bluebird - supports-color dev: true - /eslint-plugin-es-x/7.8.0_eslint@9.39.2: + /eslint-plugin-es-x/7.8.0_eslint@10.0.0: resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.9.1_eslint@9.39.2 - '@eslint-community/regexpp': 4.12.1 - eslint: 9.39.2 - eslint-compat-utils: 0.5.1_eslint@9.39.2 + '@eslint-community/eslint-utils': 4.9.1_eslint@10.0.0 + '@eslint-community/regexpp': 4.12.2 + eslint: 10.0.0 + eslint-compat-utils: 0.5.1_eslint@10.0.0 dev: true - /eslint-plugin-eslint-plugin/7.3.0_eslint@9.39.2: + /eslint-plugin-eslint-plugin/7.3.0_eslint@10.0.0: resolution: {integrity: sha512-M9S7ihAFD91+FnSja0Joky+0xrJlgMqmy3WmbOJVNpnUqy49YqEImSdfuVbpnggVz3QinzIVPJh2cPYaJ1Z4TA==} engines: {node: ^20.19.0 || ^22.13.1 || >=24.0.0} peerDependencies: eslint: '>=9.0.0' dependencies: - '@eslint-community/eslint-utils': 4.9.1_eslint@9.39.2 - eslint: 9.39.2 + '@eslint-community/eslint-utils': 4.9.1_eslint@10.0.0 + eslint: 10.0.0 estraverse: 5.3.0 dev: true - /eslint-plugin-mdx/3.6.2_eslint@9.39.2: - resolution: {integrity: sha512-RfMd5HYD/9+cqANhVWJbuBRg3huWUsAoGJNGmPsyiRD2X6BaG6bvt1omyk1ORlg81GK8ST7Ojt5fNAuwWhWU8A==} + /eslint-plugin-mdx/3.7.0_eslint@10.0.0: + resolution: {integrity: sha512-JXaaQPnKqyti/QSOSQDThLV1EemHm/Fe2l/nMKH0vmhvmABtN/yV/9+GtKgh8UTZwrwuTfQq1HW5eR8HXneNLA==} engines: {node: '>=18.0.0'} peerDependencies: eslint: '>=8.0.0' dependencies: - eslint: 9.39.2 - eslint-mdx: 3.6.2_eslint@9.39.2 + eslint: 10.0.0 + eslint-mdx: 3.7.0_eslint@10.0.0 mdast-util-from-markdown: 2.0.2 mdast-util-mdx: 3.0.0 micromark-extension-mdxjs: 3.0.0 @@ -2222,16 +2300,16 @@ packages: - supports-color dev: true - /eslint-plugin-n/17.23.2_eslint@9.39.2: + /eslint-plugin-n/17.23.2_eslint@10.0.0: resolution: {integrity: sha512-RhWBeb7YVPmNa2eggvJooiuehdL76/bbfj/OJewyoGT80qn5PXdz8zMOTO6YHOsI7byPt7+Ighh/i/4a5/v7hw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' dependencies: - '@eslint-community/eslint-utils': 4.9.1_eslint@9.39.2 + '@eslint-community/eslint-utils': 4.9.1_eslint@10.0.0 enhanced-resolve: 5.18.1 - eslint: 9.39.2 - eslint-plugin-es-x: 7.8.0_eslint@9.39.2 + eslint: 10.0.0 + eslint-plugin-es-x: 7.8.0_eslint@10.0.0 get-tsconfig: 4.10.0 globals: 15.15.0 globrex: 0.1.2 @@ -2251,19 +2329,19 @@ packages: pug-walk: 2.0.0 dev: true - /eslint-plugin-svelte/3.14.0_3uz5w247ny6cxwmafwl7buboh4: - resolution: {integrity: sha512-Isw0GvaMm0yHxAj71edAdGFh28ufYs+6rk2KlbbZphnqZAzrH3Se3t12IFh2H9+1F/jlDhBBL4oiOJmLqmYX0g==} + /eslint-plugin-svelte/3.15.0_2756goqoztkxweohcbg3ym4m6u: + resolution: {integrity: sha512-QKB7zqfuB8aChOfBTComgDptMf2yxiJx7FE04nneCmtQzgTHvY8UJkuh8J2Rz7KB9FFV9aTHX6r7rdYGvG8T9Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.1 || ^9.0.0 + eslint: ^8.57.1 || ^9.0.0 || ^10.0.0 svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: svelte: optional: true dependencies: - '@eslint-community/eslint-utils': 4.9.1_eslint@9.39.2 + '@eslint-community/eslint-utils': 4.9.1_eslint@10.0.0 '@jridgewell/sourcemap-codec': 1.5.0 - eslint: 9.39.2 + eslint: 10.0.0 esutils: 2.0.3 globals: 16.5.0 known-css-properties: 0.37.0 @@ -2272,7 +2350,7 @@ packages: postcss-safe-parser: 7.0.1_postcss@8.5.3 semver: 7.7.1 svelte: 5.25.3 - svelte-eslint-parser: 1.4.1_svelte@5.25.3 + svelte-eslint-parser: 1.5.0_svelte@5.25.3 transitivePeerDependencies: - ts-node dev: true @@ -2285,6 +2363,16 @@ packages: estraverse: 5.3.0 dev: true + /eslint-scope/9.1.0: + resolution: {integrity: sha512-CkWE42hOJsNj9FJRaoMX9waUFYhqY4jmyLFdAdzZr6VaCg3ynLYx4WnOdkaIifGfH4gsUcBTn4OZbHXkpLD0FQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + dependencies: + '@types/esrecurse': 4.3.1 + '@types/estree': 1.0.8 + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + /eslint-visitor-keys/3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2295,6 +2383,55 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true + /eslint-visitor-keys/5.0.0: + resolution: {integrity: sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + dev: true + + /eslint/10.0.0: + resolution: {integrity: sha512-O0piBKY36YSJhlFSG8p9VUdPV/SxxS4FYDWVpr/9GJuMaepzwlf4J8I4ov1b+ySQfDTPhc3DtLaxcT1fN0yqCg==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + dependencies: + '@eslint-community/eslint-utils': 4.9.1_eslint@10.0.0 + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.23.1 + '@eslint/config-helpers': 0.5.2 + '@eslint/core': 1.1.0 + '@eslint/plugin-kit': 0.6.0 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.2 + '@types/estree': 1.0.8 + ajv: 6.12.6 + cross-spawn: 7.0.6 + debug: 4.4.1 + escape-string-regexp: 4.0.0 + eslint-scope: 9.1.0 + eslint-visitor-keys: 5.0.0 + espree: 11.1.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + minimatch: 10.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color + dev: true + /eslint/9.39.2: resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2306,7 +2443,7 @@ packages: optional: true dependencies: '@eslint-community/eslint-utils': 4.9.1_eslint@9.39.2 - '@eslint-community/regexpp': 4.12.1 + '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.21.1 '@eslint/config-helpers': 0.4.2 '@eslint/core': 0.17.0 @@ -2316,7 +2453,7 @@ packages: '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.2 - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 @@ -2325,7 +2462,7 @@ packages: eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 espree: 10.4.0 - esquery: 1.6.0 + esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 8.0.0 @@ -2356,14 +2493,23 @@ packages: eslint-visitor-keys: 4.2.1 dev: true + /espree/11.1.0: + resolution: {integrity: sha512-WFWYhO1fV4iYkqOOvq8FbqIhr2pYfoDY0kCotMkDeNtGpiGGkZ1iov2u8ydjtgM8yF8rzK7oaTbw2NAzbAbehw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2_acorn@8.15.0 + eslint-visitor-keys: 5.0.0 + dev: true + /esprima/4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true dev: true - /esquery/1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + /esquery/1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 @@ -2939,7 +3085,7 @@ packages: /is-reference/3.0.3: resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 dev: true /is-regex/1.2.1: @@ -3067,11 +3213,6 @@ packages: json-buffer: 3.0.1 dev: true - /kleur/4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - dev: true - /known-css-properties/0.37.0: resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} dev: true @@ -3667,7 +3808,7 @@ packages: /micromark-extension-mdx-expression/3.0.0: resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 devlop: 1.1.0 micromark-factory-mdx-expression: 2.0.2 micromark-factory-space: 2.0.1 @@ -3681,7 +3822,7 @@ packages: resolution: {integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==} dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 micromark-factory-mdx-expression: 2.0.2 @@ -3702,7 +3843,7 @@ packages: /micromark-extension-mdxjs-esm/3.0.0: resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 micromark-util-character: 2.1.1 @@ -3746,7 +3887,7 @@ packages: /micromark-factory-mdx-expression/2.0.2: resolution: {integrity: sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==} dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 devlop: 1.1.0 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 @@ -3833,7 +3974,7 @@ packages: resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 '@types/unist': 3.0.3 devlop: 1.1.0 estree-util-visit: 2.0.0 @@ -3920,6 +4061,13 @@ packages: engines: {node: '>=18'} dev: true + /minimatch/10.1.2: + resolution: {integrity: sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==} + engines: {node: 20 || >=22} + dependencies: + '@isaacs/brace-expansion': 5.0.1 + dev: true + /minimatch/3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: @@ -5288,13 +5436,6 @@ packages: queue-microtask: 1.2.3 dev: true - /sade/1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - dependencies: - mri: 1.2.0 - dev: true - /safe-buffer/5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true @@ -5517,9 +5658,9 @@ packages: engines: {node: '>=12'} dev: true - /svelte-eslint-parser/1.4.1_svelte@5.25.3: - resolution: {integrity: sha512-1eqkfQ93goAhjAXxZiu1SaKI9+0/sxp4JIWQwUpsz7ybehRE5L8dNuz7Iry7K22R47p5/+s9EM+38nHV2OlgXA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: 10.24.0} + /svelte-eslint-parser/1.5.0_svelte@5.25.3: + resolution: {integrity: sha512-9Pzpwh/CSE/PuYMBYZhazaZefVPC3RuVPv79wWkuN0c+XrfGutMpLgumUkh/9PKqkIQAc4tj/aGyNqN0phYDJg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: 10.30.2} peerDependencies: svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: @@ -5542,7 +5683,7 @@ packages: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.0 '@sveltejs/acorn-typescript': 1.0.5_acorn@8.15.0 - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 acorn: 8.15.0 aria-query: 5.3.2 axobject-query: 4.1.0 @@ -5791,17 +5932,6 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true - /uvu/0.5.6: - resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} - engines: {node: '>=8'} - hasBin: true - dependencies: - dequal: 2.0.3 - diff: 5.2.0 - kleur: 4.1.5 - sade: 1.8.1 - dev: true - /validate-npm-package-license/3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: @@ -5862,18 +5992,18 @@ packages: vfile-message: 4.0.2 dev: true - /vue-eslint-parser/10.2.0_eslint@9.39.2: - resolution: {integrity: sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==} + /vue-eslint-parser/10.4.0_eslint@10.0.0: + resolution: {integrity: sha512-Vxi9pJdbN3ZnVGLODVtZ7y4Y2kzAAE2Cm0CZ3ZDRvydVYxZ6VrnBhLikBsRS+dpwj4Jv4UCv21PTEwF5rQ9WXg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 dependencies: debug: 4.4.1 - eslint: 9.39.2 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - esquery: 1.6.0 + eslint: 10.0.0 + eslint-scope: 9.1.0 + eslint-visitor-keys: 5.0.0 + espree: 11.1.0 + esquery: 1.7.0 semver: 7.7.1 transitivePeerDependencies: - supports-color diff --git a/test/prettier.mjs b/test/prettier.mjs index d96f7e4c..1b994d3f 100644 --- a/test/prettier.mjs +++ b/test/prettier.mjs @@ -28,11 +28,17 @@ import * as eslintMdx from 'eslint-mdx'; import eslintPluginJson from '@eslint/json'; const rule = eslintPluginPrettier.rules.prettier; -const RuleTester = - eslintUnsupportedApi.FlatRuleTester ?? eslintPackage.RuleTester; -const ESLint = eslintUnsupportedApi.FlatESLint ?? eslintPackage.ESLint; - -const isESLint9 = !eslintUnsupportedApi.FlatRuleTester; +// FlatRuleTester and FlatESLint only exist in eslint v8 +// FlatESLint only exists in eslint v8 and v9, not in v10 +const isESLint8 = !!eslintUnsupportedApi.FlatRuleTester; +const isESLint10 = !eslintUnsupportedApi.FlatESLint; + +const RuleTester = isESLint8 + ? eslintUnsupportedApi.FlatRuleTester + : eslintPackage.RuleTester; +const ESLint = isESLint8 + ? eslintUnsupportedApi.FlatESLint + : eslintPackage.ESLint; // ------------------------------------------------------------------------------ // Tests @@ -188,9 +194,9 @@ runFixture('*.html', [ line: 3, message: 'Replace `⏎⏎` with `···`', messageId: 'replace', - nodeType: null, ruleId: 'prettier/prettier', severity: 2, + ...(isESLint10 ? {} : { nodeType: null }), }, { column: 1, @@ -203,9 +209,9 @@ runFixture('*.html', [ line: 6, message: 'Replace `⏎⏎` with `··`', messageId: 'replace', - nodeType: null, ruleId: 'prettier/prettier', severity: 2, + ...(isESLint10 ? {} : { nodeType: null }), }, ], ]); @@ -252,9 +258,9 @@ runFixture('*.md', [ line: 4, message: 'Insert `;`', messageId: 'insert', - nodeType: null, ruleId: 'prettier/prettier', severity: 2, + ...(isESLint10 ? {} : { nodeType: null }), }, ], ]); @@ -272,9 +278,9 @@ runFixture('*.mdx', [ line: 1, message: 'Insert `;`', messageId: 'insert', - nodeType: null, ruleId: 'prettier/prettier', severity: 2, + ...(isESLint10 ? {} : { nodeType: null }), }, { column: 27, @@ -287,9 +293,9 @@ runFixture('*.mdx', [ line: 6, message: 'Insert `;`', messageId: 'insert', - nodeType: null, ruleId: 'prettier/prettier', severity: 2, + ...(isESLint10 ? {} : { nodeType: null }), }, ], ]); @@ -312,9 +318,9 @@ runFixture( line: 2, message: 'Replace `let··name·` with `··let·name`', messageId: 'replace', - nodeType: null, ruleId: 'prettier/prettier', severity: 2, + ...(isESLint10 ? {} : { nodeType: null }), }, { column: 4, @@ -327,9 +333,9 @@ runFixture( line: 5, message: 'Replace `·>·Hello·{·name·` with `>Hello·{name`', messageId: 'replace', - nodeType: null, ruleId: 'prettier/prettier', severity: 2, + ...(isESLint10 ? {} : { nodeType: null }), }, ], ], @@ -349,9 +355,9 @@ runFixture('*.pug', [ line: 2, message: 'Delete `;;;;;`', messageId: 'delete', - nodeType: null, ruleId: 'prettier/prettier', severity: 2, + ...(isESLint10 ? {} : { nodeType: null }), }, ], ]); @@ -364,19 +370,19 @@ runFixture('invalid-prettierrc/*', [ line: 1, message: "Parsing error: 'import' and 'export' may appear only with 'sourceType: module'", - nodeType: null, ruleId: null, severity: 2, + ...(isESLint10 ? {} : { nodeType: null }), }, ], [ { + ...(isESLint10 + ? { endColumn: 1, endLine: 2 } + : { endColumn: 20, endLine: 1, nodeType: 'Program' }), column: 1, - endColumn: 20, - endLine: 1, line: 1, message: 'Parsing error: Cannot use import statement outside a module', - nodeType: 'Program', ruleId: 'prettier/prettier', severity: 2, }, @@ -396,14 +402,14 @@ runFixture('*.json', [ line: 1, message: 'Delete `⏎`', messageId: 'delete', - nodeType: null, ruleId: 'prettier/prettier', severity: 2, + ...(isESLint10 ? {} : { nodeType: null }), }, ], ]); -if (isESLint9) { +if (!isESLint8) { const jsonRuleTester = new RuleTester({ plugins: { json: eslintPluginJson,