diff --git a/.changeset/lazy-cups-fry.md b/.changeset/lazy-cups-fry.md new file mode 100644 index 00000000..72fc40f9 --- /dev/null +++ b/.changeset/lazy-cups-fry.md @@ -0,0 +1,5 @@ +--- +"svelte-eslint-parser": patch +--- + +fix: typescript-eslint v6 compatibility diff --git a/.github/workflows/NodeCI.yml b/.github/workflows/NodeCI.yml index 80e1c657..68d592bb 100644 --- a/.github/workflows/NodeCI.yml +++ b/.github/workflows/NodeCI.yml @@ -49,7 +49,27 @@ jobs: node-version: ${{ matrix.node-version }} - name: Install Svelte v3 run: |+ - pnpm install -D svelte@3 + pnpm install -D svelte@3 @typescript-eslint/parser@5 @typescript-eslint/eslint-plugin@5 + rm -rf node_modules + - name: Install Packages + run: pnpm install + - name: Test + run: pnpm run test + test-for-ts-eslint-v5: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [18.x] + steps: + - uses: actions/checkout@v3 + - uses: pnpm/action-setup@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + - name: Install @typescript-eslint v5 + run: |+ + pnpm install -D @typescript-eslint/parser@5 @typescript-eslint/eslint-plugin@5 rm -rf node_modules - name: Install Packages run: pnpm install @@ -89,7 +109,7 @@ jobs: node-version: ${{ matrix.node-version }} - name: Install eslint v7 run: |+ - pnpm install -D eslint@7 svelte@3 + pnpm install -D eslint@7 svelte@3 @typescript-eslint/parser@5 @typescript-eslint/eslint-plugin@5 rm -rf node_modules - name: Install Packages run: pnpm install diff --git a/package.json b/package.json index 32bcb791..778793f6 100644 --- a/package.json +++ b/package.json @@ -73,9 +73,9 @@ "@types/mocha": "^10.0.1", "@types/node": "^18.16.16", "@types/semver": "^7.5.0", - "@typescript-eslint/eslint-plugin": "^5.59.9", - "@typescript-eslint/parser": "~5.62.0", - "@typescript-eslint/types": "^5.59.9", + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "~6.1.0", + "@typescript-eslint/types": "^6.1.0", "benchmark": "^2.1.4", "chai": "^4.3.7", "env-cmd": "^10.1.0", diff --git a/src/parser/parser-object.ts b/src/parser/parser-object.ts index e87df98d..995efc8f 100644 --- a/src/parser/parser-object.ts +++ b/src/parser/parser-object.ts @@ -64,8 +64,7 @@ export function isTSESLintParserObject( return Boolean( services && services.esTreeNodeToTSNodeMap && - services.tsNodeToESTreeNodeMap && - services.program, + services.tsNodeToESTreeNodeMap, ); } catch { return false; diff --git a/src/parser/typescript/analyze/index.ts b/src/parser/typescript/analyze/index.ts index 805f5a86..657ce02a 100644 --- a/src/parser/typescript/analyze/index.ts +++ b/src/parser/typescript/analyze/index.ts @@ -505,6 +505,7 @@ function transformForDeclareReactiveVar( const newBody: TSESTree.ExpressionStatement = { type: "ExpressionStatement" as TSESTree.ExpressionStatement["type"], expression: assignment, + directive: undefined, loc: statement.body.loc, range: statement.body.range, parent: reactiveStatement, diff --git a/tests/fixtures/parser/ast/issue325-eslint-plugin-svelte-output.json b/tests/fixtures/parser/ast/issue325-eslint-plugin-svelte-output.json index 28b7ba5e..7cda1a69 100644 --- a/tests/fixtures/parser/ast/issue325-eslint-plugin-svelte-output.json +++ b/tests/fixtures/parser/ast/issue325-eslint-plugin-svelte-output.json @@ -540,25 +540,7 @@ "type": "TSTypeAnnotation", "typeAnnotation": { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Promise", - "range": [ - 119, - 126 - ], - "loc": { - "start": { - "line": 3, - "column": 58 - }, - "end": { - "line": 3, - "column": 65 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -594,6 +576,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Promise", + "range": [ + 119, + 126 + ], + "loc": { + "start": { + "line": 3, + "column": 58 + }, + "end": { + "line": 3, + "column": 65 + } + } + }, "range": [ 119, 134 diff --git a/tests/fixtures/parser/ast/issue325-eslint-plugin-svelte-scope-output.json b/tests/fixtures/parser/ast/issue325-eslint-plugin-svelte-scope-output.json index e314018b..5ea43ea8 100644 --- a/tests/fixtures/parser/ast/issue325-eslint-plugin-svelte-scope-output.json +++ b/tests/fixtures/parser/ast/issue325-eslint-plugin-svelte-scope-output.json @@ -9656,25 +9656,7 @@ "type": "TSTypeAnnotation", "typeAnnotation": { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Promise", - "range": [ - 119, - 126 - ], - "loc": { - "start": { - "line": 3, - "column": 58 - }, - "end": { - "line": 3, - "column": 65 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -9710,6 +9692,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Promise", + "range": [ + 119, + 126 + ], + "loc": { + "start": { + "line": 3, + "column": 58 + }, + "end": { + "line": 3, + "column": 65 + } + } + }, "range": [ 119, 134 @@ -10433,25 +10433,7 @@ "type": "TSTypeAnnotation", "typeAnnotation": { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Promise", - "range": [ - 119, - 126 - ], - "loc": { - "start": { - "line": 3, - "column": 58 - }, - "end": { - "line": 3, - "column": 65 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -10487,6 +10469,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Promise", + "range": [ + 119, + 126 + ], + "loc": { + "start": { + "line": 3, + "column": 58 + }, + "end": { + "line": 3, + "column": 65 + } + } + }, "range": [ 119, 134 diff --git a/tests/fixtures/parser/ast/ts-event03-output.json b/tests/fixtures/parser/ast/ts-event03-output.json index 26df8365..dbd1d8f4 100644 --- a/tests/fixtures/parser/ast/ts-event03-output.json +++ b/tests/fixtures/parser/ast/ts-event03-output.json @@ -237,7 +237,7 @@ } }, "optional": false, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { diff --git a/tests/fixtures/parser/ast/ts-event03-scope-output.json b/tests/fixtures/parser/ast/ts-event03-scope-output.json index f1647e70..eeb73d4d 100644 --- a/tests/fixtures/parser/ast/ts-event03-scope-output.json +++ b/tests/fixtures/parser/ast/ts-event03-scope-output.json @@ -8832,7 +8832,7 @@ } }, "optional": false, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { diff --git a/tests/fixtures/parser/ast/ts-promise01-output.json b/tests/fixtures/parser/ast/ts-promise01-output.json index 7cb103c3..107f6348 100644 --- a/tests/fixtures/parser/ast/ts-promise01-output.json +++ b/tests/fixtures/parser/ast/ts-promise01-output.json @@ -111,25 +111,7 @@ "type": "TSTypeAnnotation", "typeAnnotation": { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Promise", - "range": [ - 32, - 39 - ], - "loc": { - "start": { - "line": 2, - "column": 13 - }, - "end": { - "line": 2, - "column": 20 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -237,6 +219,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Promise", + "range": [ + 32, + 39 + ], + "loc": { + "start": { + "line": 2, + "column": 13 + }, + "end": { + "line": 2, + "column": 20 + } + } + }, "range": [ 32, 51 diff --git a/tests/fixtures/parser/ast/ts-promise01-scope-output.json b/tests/fixtures/parser/ast/ts-promise01-scope-output.json index e41c68eb..f87aaa4a 100644 --- a/tests/fixtures/parser/ast/ts-promise01-scope-output.json +++ b/tests/fixtures/parser/ast/ts-promise01-scope-output.json @@ -8639,25 +8639,7 @@ "type": "TSTypeAnnotation", "typeAnnotation": { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Promise", - "range": [ - 32, - 39 - ], - "loc": { - "start": { - "line": 2, - "column": 13 - }, - "end": { - "line": 2, - "column": 20 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -8765,6 +8747,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Promise", + "range": [ + 32, + 39 + ], + "loc": { + "start": { + "line": 2, + "column": 13 + }, + "end": { + "line": 2, + "column": 20 + } + } + }, "range": [ 32, 51 @@ -8821,25 +8821,7 @@ "type": "TSTypeAnnotation", "typeAnnotation": { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Promise", - "range": [ - 32, - 39 - ], - "loc": { - "start": { - "line": 2, - "column": 13 - }, - "end": { - "line": 2, - "column": 20 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -8947,6 +8929,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Promise", + "range": [ + 32, + 39 + ], + "loc": { + "start": { + "line": 2, + "column": 13 + }, + "end": { + "line": 2, + "column": 20 + } + } + }, "range": [ 32, 51 @@ -9001,25 +9001,7 @@ "type": "TSTypeAnnotation", "typeAnnotation": { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Promise", - "range": [ - 32, - 39 - ], - "loc": { - "start": { - "line": 2, - "column": 13 - }, - "end": { - "line": 2, - "column": 20 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -9127,6 +9109,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Promise", + "range": [ + 32, + 39 + ], + "loc": { + "start": { + "line": 2, + "column": 13 + }, + "end": { + "line": 2, + "column": 20 + } + } + }, "range": [ 32, 51 @@ -9391,25 +9391,7 @@ "type": "TSTypeAnnotation", "typeAnnotation": { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Promise", - "range": [ - 32, - 39 - ], - "loc": { - "start": { - "line": 2, - "column": 13 - }, - "end": { - "line": 2, - "column": 20 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -9517,6 +9499,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Promise", + "range": [ + 32, + 39 + ], + "loc": { + "start": { + "line": 2, + "column": 13 + }, + "end": { + "line": 2, + "column": 20 + } + } + }, "range": [ 32, 51 @@ -9571,25 +9571,7 @@ "type": "TSTypeAnnotation", "typeAnnotation": { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Promise", - "range": [ - 32, - 39 - ], - "loc": { - "start": { - "line": 2, - "column": 13 - }, - "end": { - "line": 2, - "column": 20 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -9697,6 +9679,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Promise", + "range": [ + 32, + 39 + ], + "loc": { + "start": { + "line": 2, + "column": 13 + }, + "end": { + "line": 2, + "column": 20 + } + } + }, "range": [ 32, 51 @@ -9771,25 +9771,7 @@ "type": "TSTypeAnnotation", "typeAnnotation": { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Promise", - "range": [ - 32, - 39 - ], - "loc": { - "start": { - "line": 2, - "column": 13 - }, - "end": { - "line": 2, - "column": 20 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -9897,6 +9879,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Promise", + "range": [ + 32, + 39 + ], + "loc": { + "start": { + "line": 2, + "column": 13 + }, + "end": { + "line": 2, + "column": 20 + } + } + }, "range": [ 32, 51 @@ -9955,25 +9955,7 @@ "type": "TSTypeAnnotation", "typeAnnotation": { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Promise", - "range": [ - 32, - 39 - ], - "loc": { - "start": { - "line": 2, - "column": 13 - }, - "end": { - "line": 2, - "column": 20 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -10081,6 +10063,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Promise", + "range": [ + 32, + 39 + ], + "loc": { + "start": { + "line": 2, + "column": 13 + }, + "end": { + "line": 2, + "column": 20 + } + } + }, "range": [ 32, 51 @@ -10135,25 +10135,7 @@ "type": "TSTypeAnnotation", "typeAnnotation": { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Promise", - "range": [ - 32, - 39 - ], - "loc": { - "start": { - "line": 2, - "column": 13 - }, - "end": { - "line": 2, - "column": 20 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -10261,6 +10243,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Promise", + "range": [ + 32, + 39 + ], + "loc": { + "start": { + "line": 2, + "column": 13 + }, + "end": { + "line": 2, + "column": 20 + } + } + }, "range": [ 32, 51 @@ -10381,25 +10381,7 @@ "type": "TSTypeAnnotation", "typeAnnotation": { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Promise", - "range": [ - 32, - 39 - ], - "loc": { - "start": { - "line": 2, - "column": 13 - }, - "end": { - "line": 2, - "column": 20 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -10507,6 +10489,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Promise", + "range": [ + 32, + 39 + ], + "loc": { + "start": { + "line": 2, + "column": 13 + }, + "end": { + "line": 2, + "column": 20 + } + } + }, "range": [ 32, 51 diff --git a/tests/fixtures/parser/ast/ts-store03-output.json b/tests/fixtures/parser/ast/ts-store03-output.json index 42a3369a..f5c30d10 100644 --- a/tests/fixtures/parser/ast/ts-store03-output.json +++ b/tests/fixtures/parser/ast/ts-store03-output.json @@ -261,25 +261,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Writable", - "range": [ - 88, - 96 - ], - "loc": { - "start": { - "line": 3, - "column": 17 - }, - "end": { - "line": 3, - "column": 25 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -315,6 +297,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Writable", + "range": [ + 88, + 96 + ], + "loc": { + "start": { + "line": 3, + "column": 17 + }, + "end": { + "line": 3, + "column": 25 + } + } + }, "range": [ 88, 104 @@ -441,25 +441,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 133, - 141 - ], - "loc": { - "start": { - "line": 4, - "column": 16 - }, - "end": { - "line": 4, - "column": 24 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -495,6 +477,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 133, + 141 + ], + "loc": { + "start": { + "line": 4, + "column": 16 + }, + "end": { + "line": 4, + "column": 24 + } + } + }, "range": [ 133, 149 @@ -621,25 +621,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 179, - 187 - ], - "loc": { - "start": { - "line": 5, - "column": 22 - }, - "end": { - "line": 5, - "column": 30 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -675,6 +657,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 179, + 187 + ], + "loc": { + "start": { + "line": 5, + "column": 22 + }, + "end": { + "line": 5, + "column": 30 + } + } + }, "range": [ 179, 196 diff --git a/tests/fixtures/parser/ast/ts-store03-scope-output.json b/tests/fixtures/parser/ast/ts-store03-scope-output.json index b7b2b987..beb8b598 100644 --- a/tests/fixtures/parser/ast/ts-store03-scope-output.json +++ b/tests/fixtures/parser/ast/ts-store03-scope-output.json @@ -8942,25 +8942,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Writable", - "range": [ - 88, - 96 - ], - "loc": { - "start": { - "line": 3, - "column": 17 - }, - "end": { - "line": 3, - "column": 25 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -8996,6 +8978,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Writable", + "range": [ + 88, + 96 + ], + "loc": { + "start": { + "line": 3, + "column": 17 + }, + "end": { + "line": 3, + "column": 25 + } + } + }, "range": [ 88, 104 @@ -9088,25 +9088,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Writable", - "range": [ - 88, - 96 - ], - "loc": { - "start": { - "line": 3, - "column": 17 - }, - "end": { - "line": 3, - "column": 25 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -9142,6 +9124,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Writable", + "range": [ + 88, + 96 + ], + "loc": { + "start": { + "line": 3, + "column": 17 + }, + "end": { + "line": 3, + "column": 25 + } + } + }, "range": [ 88, 104 @@ -9232,25 +9232,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Writable", - "range": [ - 88, - 96 - ], - "loc": { - "start": { - "line": 3, - "column": 17 - }, - "end": { - "line": 3, - "column": 25 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -9286,6 +9268,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Writable", + "range": [ + 88, + 96 + ], + "loc": { + "start": { + "line": 3, + "column": 17 + }, + "end": { + "line": 3, + "column": 25 + } + } + }, "range": [ 88, 104 @@ -9414,25 +9414,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Writable", - "range": [ - 88, - 96 - ], - "loc": { - "start": { - "line": 3, - "column": 17 - }, - "end": { - "line": 3, - "column": 25 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -9468,6 +9450,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Writable", + "range": [ + 88, + 96 + ], + "loc": { + "start": { + "line": 3, + "column": 17 + }, + "end": { + "line": 3, + "column": 25 + } + } + }, "range": [ 88, 104 @@ -9578,25 +9578,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Writable", - "range": [ - 88, - 96 - ], - "loc": { - "start": { - "line": 3, - "column": 17 - }, - "end": { - "line": 3, - "column": 25 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -9632,6 +9614,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Writable", + "range": [ + 88, + 96 + ], + "loc": { + "start": { + "line": 3, + "column": 17 + }, + "end": { + "line": 3, + "column": 25 + } + } + }, "range": [ 88, 104 @@ -9742,25 +9742,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Writable", - "range": [ - 88, - 96 - ], - "loc": { - "start": { - "line": 3, - "column": 17 - }, - "end": { - "line": 3, - "column": 25 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -9796,6 +9778,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Writable", + "range": [ + 88, + 96 + ], + "loc": { + "start": { + "line": 3, + "column": 17 + }, + "end": { + "line": 3, + "column": 25 + } + } + }, "range": [ 88, 104 @@ -9890,25 +9890,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 133, - 141 - ], - "loc": { - "start": { - "line": 4, - "column": 16 - }, - "end": { - "line": 4, - "column": 24 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -9944,6 +9926,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 133, + 141 + ], + "loc": { + "start": { + "line": 4, + "column": 16 + }, + "end": { + "line": 4, + "column": 24 + } + } + }, "range": [ 133, 149 @@ -10036,25 +10036,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 133, - 141 - ], - "loc": { - "start": { - "line": 4, - "column": 16 - }, - "end": { - "line": 4, - "column": 24 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -10090,6 +10072,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 133, + 141 + ], + "loc": { + "start": { + "line": 4, + "column": 16 + }, + "end": { + "line": 4, + "column": 24 + } + } + }, "range": [ 133, 149 @@ -10180,25 +10180,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 133, - 141 - ], - "loc": { - "start": { - "line": 4, - "column": 16 - }, - "end": { - "line": 4, - "column": 24 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -10234,6 +10216,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 133, + 141 + ], + "loc": { + "start": { + "line": 4, + "column": 16 + }, + "end": { + "line": 4, + "column": 24 + } + } + }, "range": [ 133, 149 @@ -10362,25 +10362,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 133, - 141 - ], - "loc": { - "start": { - "line": 4, - "column": 16 - }, - "end": { - "line": 4, - "column": 24 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -10416,6 +10398,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 133, + 141 + ], + "loc": { + "start": { + "line": 4, + "column": 16 + }, + "end": { + "line": 4, + "column": 24 + } + } + }, "range": [ 133, 149 @@ -10526,25 +10526,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 133, - 141 - ], - "loc": { - "start": { - "line": 4, - "column": 16 - }, - "end": { - "line": 4, - "column": 24 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -10580,6 +10562,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 133, + 141 + ], + "loc": { + "start": { + "line": 4, + "column": 16 + }, + "end": { + "line": 4, + "column": 24 + } + } + }, "range": [ 133, 149 @@ -10690,25 +10690,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 133, - 141 - ], - "loc": { - "start": { - "line": 4, - "column": 16 - }, - "end": { - "line": 4, - "column": 24 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -10744,6 +10726,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 133, + 141 + ], + "loc": { + "start": { + "line": 4, + "column": 16 + }, + "end": { + "line": 4, + "column": 24 + } + } + }, "range": [ 133, 149 @@ -10838,25 +10838,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 179, - 187 - ], - "loc": { - "start": { - "line": 5, - "column": 22 - }, - "end": { - "line": 5, - "column": 30 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -10884,11 +10866,29 @@ "loc": { "start": { "line": 5, - "column": 30 + "column": 30 + }, + "end": { + "line": 5, + "column": 39 + } + } + }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 179, + 187 + ], + "loc": { + "start": { + "line": 5, + "column": 22 }, "end": { "line": 5, - "column": 39 + "column": 30 } } }, @@ -11001,25 +11001,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 179, - 187 - ], - "loc": { - "start": { - "line": 5, - "column": 22 - }, - "end": { - "line": 5, - "column": 30 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -11055,6 +11037,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 179, + 187 + ], + "loc": { + "start": { + "line": 5, + "column": 22 + }, + "end": { + "line": 5, + "column": 30 + } + } + }, "range": [ 179, 196 @@ -11162,25 +11162,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 179, - 187 - ], - "loc": { - "start": { - "line": 5, - "column": 22 - }, - "end": { - "line": 5, - "column": 30 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -11216,6 +11198,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 179, + 187 + ], + "loc": { + "start": { + "line": 5, + "column": 22 + }, + "end": { + "line": 5, + "column": 30 + } + } + }, "range": [ 179, 196 @@ -11361,25 +11361,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 179, - 187 - ], - "loc": { - "start": { - "line": 5, - "column": 22 - }, - "end": { - "line": 5, - "column": 30 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -11415,6 +11397,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 179, + 187 + ], + "loc": { + "start": { + "line": 5, + "column": 22 + }, + "end": { + "line": 5, + "column": 30 + } + } + }, "range": [ 179, 196 @@ -11542,25 +11542,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 179, - 187 - ], - "loc": { - "start": { - "line": 5, - "column": 22 - }, - "end": { - "line": 5, - "column": 30 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -11596,6 +11578,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 179, + 187 + ], + "loc": { + "start": { + "line": 5, + "column": 22 + }, + "end": { + "line": 5, + "column": 30 + } + } + }, "range": [ 179, 196 @@ -11723,25 +11723,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 179, - 187 - ], - "loc": { - "start": { - "line": 5, - "column": 22 - }, - "end": { - "line": 5, - "column": 30 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -11777,6 +11759,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 179, + 187 + ], + "loc": { + "start": { + "line": 5, + "column": 22 + }, + "end": { + "line": 5, + "column": 30 + } + } + }, "range": [ 179, 196 @@ -12238,25 +12238,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Writable", - "range": [ - 88, - 96 - ], - "loc": { - "start": { - "line": 3, - "column": 17 - }, - "end": { - "line": 3, - "column": 25 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -12292,6 +12274,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Writable", + "range": [ + 88, + 96 + ], + "loc": { + "start": { + "line": 3, + "column": 17 + }, + "end": { + "line": 3, + "column": 25 + } + } + }, "range": [ 88, 104 @@ -12402,25 +12402,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 133, - 141 - ], - "loc": { - "start": { - "line": 4, - "column": 16 - }, - "end": { - "line": 4, - "column": 24 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -12448,11 +12430,29 @@ "loc": { "start": { "line": 4, - "column": 24 + "column": 24 + }, + "end": { + "line": 4, + "column": 32 + } + } + }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 133, + 141 + ], + "loc": { + "start": { + "line": 4, + "column": 16 }, "end": { "line": 4, - "column": 32 + "column": 24 } } }, @@ -12566,25 +12566,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 179, - 187 - ], - "loc": { - "start": { - "line": 5, - "column": 22 - }, - "end": { - "line": 5, - "column": 30 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -12620,6 +12602,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 179, + 187 + ], + "loc": { + "start": { + "line": 5, + "column": 22 + }, + "end": { + "line": 5, + "column": 30 + } + } + }, "range": [ 179, 196 @@ -12760,25 +12760,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Writable", - "range": [ - 88, - 96 - ], - "loc": { - "start": { - "line": 3, - "column": 17 - }, - "end": { - "line": 3, - "column": 25 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -12814,6 +12796,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Writable", + "range": [ + 88, + 96 + ], + "loc": { + "start": { + "line": 3, + "column": 17 + }, + "end": { + "line": 3, + "column": 25 + } + } + }, "range": [ 88, 104 @@ -12924,25 +12924,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 133, - 141 - ], - "loc": { - "start": { - "line": 4, - "column": 16 - }, - "end": { - "line": 4, - "column": 24 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -12978,6 +12960,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 133, + 141 + ], + "loc": { + "start": { + "line": 4, + "column": 16 + }, + "end": { + "line": 4, + "column": 24 + } + } + }, "range": [ 133, 149 @@ -13088,25 +13088,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 179, - 187 - ], - "loc": { - "start": { - "line": 5, - "column": 22 - }, - "end": { - "line": 5, - "column": 30 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -13142,6 +13124,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 179, + 187 + ], + "loc": { + "start": { + "line": 5, + "column": 22 + }, + "end": { + "line": 5, + "column": 30 + } + } + }, "range": [ 179, 196 @@ -13272,25 +13272,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Writable", - "range": [ - 88, - 96 - ], - "loc": { - "start": { - "line": 3, - "column": 17 - }, - "end": { - "line": 3, - "column": 25 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -13326,6 +13308,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Writable", + "range": [ + 88, + 96 + ], + "loc": { + "start": { + "line": 3, + "column": 17 + }, + "end": { + "line": 3, + "column": 25 + } + } + }, "range": [ 88, 104 @@ -13436,25 +13436,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 133, - 141 - ], - "loc": { - "start": { - "line": 4, - "column": 16 - }, - "end": { - "line": 4, - "column": 24 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -13490,6 +13472,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 133, + 141 + ], + "loc": { + "start": { + "line": 4, + "column": 16 + }, + "end": { + "line": 4, + "column": 24 + } + } + }, "range": [ 133, 149 @@ -13600,25 +13600,7 @@ "types": [ { "type": "TSTypeReference", - "typeName": { - "type": "Identifier", - "name": "Readable", - "range": [ - 179, - 187 - ], - "loc": { - "start": { - "line": 5, - "column": 22 - }, - "end": { - "line": 5, - "column": 30 - } - } - }, - "typeParameters": { + "typeArguments": { "type": "TSTypeParameterInstantiation", "params": [ { @@ -13654,6 +13636,24 @@ } } }, + "typeName": { + "type": "Identifier", + "name": "Readable", + "range": [ + 179, + 187 + ], + "loc": { + "start": { + "line": 5, + "column": 22 + }, + "end": { + "line": 5, + "column": 30 + } + } + }, "range": [ 179, 196 diff --git a/tests/src/parser/test-utils.ts b/tests/src/parser/test-utils.ts index 7ce3fd9d..57dc7306 100644 --- a/tests/src/parser/test-utils.ts +++ b/tests/src/parser/test-utils.ts @@ -236,16 +236,31 @@ export function normalizeError(error: any): any { }; } +/* eslint-disable complexity -- ignore */ /** * Remove `parent` properties from the given AST. */ -function nodeReplacer(key: string, value: any): any { +function nodeReplacer( + /* eslint-enable complexity -- ignore */ + key: string, + value: any, +): any { if (key === "parent") { return undefined; } - if (key === "assertions" && Array.isArray(value) && value.length === 0) { + if ( + (key === "assertions" || key === "decorators") && + Array.isArray(value) && + value.length === 0 + ) { + // Node types changed in typescript-eslint v6. return undefined; } + if ((key === "definite" || key === "declare") && value === false) { + // Node types changed in typescript-eslint v6. + return undefined; + } + if (value instanceof RegExp) { return String(value); } @@ -253,7 +268,40 @@ function nodeReplacer(key: string, value: any): any { return null; // Make it null so it can be checked on node8. // return `${String(value)}n` } - return normalizeObject(value); + let obj = value; + if (obj) { + if ( + (obj.type === "Identifier" || + obj.type === "Property" || + obj.type === "ObjectPattern" || + obj.type === "AssignmentPattern") && + obj.optional === false + ) { + // Node types changed in typescript-eslint v6. + obj = { ...obj }; + delete obj.optional; + } + if ( + (obj.type === "TSTypeReference" || obj.type === "CallExpression") && + obj.typeParameters + ) { + // Node types changed in typescript-eslint v6. + const copy = { ...obj }; + copy.typeArguments = obj.typeParameters; + delete copy.typeParameters; + obj = copy; + } + if (obj.type === "TSPropertySignature") { + // Node types changed in typescript-eslint v6. + obj = { ...obj }; + for (const k of ["optional", "readonly", "static"]) { + if (obj[k] === false) { + delete obj[k]; + } + } + } + } + return normalizeObject(obj); } type SvelteKeysType = { diff --git a/tsconfig.json b/tsconfig.json index 86011a28..dcea3353 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,6 +4,7 @@ "strict": true, "lib": ["es2020", "DOM"], "module": "commonjs", + "moduleResolution": "Node16", "declaration": true, "noImplicitAny": true, "noImplicitReturns": true,