diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e6332382eade7..d207ebdabbdcf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -222,16 +222,16 @@ importers: version: 8.57.0 eslint-import-resolver-typescript: specifier: ^3.6.3 - version: 3.6.3(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.0) + version: 3.6.3(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.0) eslint-plugin-babel: specifier: ^5.3.1 version: 5.3.1(eslint@8.57.0) eslint-plugin-import: specifier: 2.30.0 - version: 2.30.0(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) + version: 2.30.0(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) eslint-plugin-jest: specifier: ^28.8.3 - version: 28.8.3(@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(jest@29.7.0(@types/node@22.7.4)(babel-plugin-macros@3.1.0))(typescript@5.6.2) + version: 28.8.3(@typescript-eslint/eslint-plugin@8.12.2(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(jest@29.7.0(@types/node@22.7.4)(babel-plugin-macros@3.1.0))(typescript@5.6.2) eslint-plugin-jest-dom: specifier: ^5.4.0 version: 5.4.0(@testing-library/dom@10.1.0)(eslint@8.57.0) @@ -257,8 +257,8 @@ importers: specifier: ^5.12.0 version: 5.12.0(rollup@4.23.0) typescript-eslint: - specifier: ^7.14.1 - version: 7.14.1(eslint@8.57.0)(typescript@5.6.2) + specifier: ^8.12.2 + version: 8.12.2(eslint@8.57.0)(typescript@5.6.2) vite-plugin-wasm: specifier: ^3.3.0 version: 3.3.0(vite@5.4.8(@types/node@22.7.4)(terser@5.31.1)) @@ -2701,22 +2701,22 @@ packages: '@types/yauzl@2.10.0': resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} - '@typescript-eslint/eslint-plugin@7.14.1': - resolution: {integrity: sha512-aAJd6bIf2vvQRjUG3ZkNXkmBpN+J7Wd0mfQiiVCJMu9Z5GcZZdcc0j8XwN/BM97Fl7e3SkTXODSk4VehUv7CGw==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/eslint-plugin@8.12.2': + resolution: {integrity: sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/parser@7.14.1': - resolution: {integrity: sha512-8lKUOebNLcR0D7RvlcloOacTOWzOqemWEWkKSVpMZVF/XVcwjPR+3MD08QzbW9TCGJ+DwIc6zUSGZ9vd8cO1IA==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/parser@8.12.2': + resolution: {integrity: sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: @@ -2730,11 +2730,14 @@ packages: resolution: {integrity: sha512-gPrFSsoYcsffYXTOZ+hT7fyJr95rdVe4kGVX1ps/dJ+DfmlnjFN/GcMxXcVkeHDKqsq6uAcVaQaIi3cFffmAbA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/type-utils@7.14.1': - resolution: {integrity: sha512-/MzmgNd3nnbDbOi3LfasXWWe292+iuo+umJ0bCCMCPc1jLO/z2BQmWUUUXvXLbrQey/JgzdF/OV+I5bzEGwJkQ==} - engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@8.12.2': + resolution: {integrity: sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.12.2': + resolution: {integrity: sha512-bwuU4TAogPI+1q/IJSKuD4shBLc/d2vGcRT588q+jzayQyjVK2X6v/fbR4InY2U2sgf8MEvVCqEWUzYzgBNcGQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: @@ -2748,6 +2751,10 @@ packages: resolution: {integrity: sha512-mL7zNEOQybo5R3AavY+Am7KLv8BorIv7HCYS5rKoNZKQD9tsfGUpO4KdAn3sSUvTiS4PQkr2+K0KJbxj8H9NDg==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/types@8.12.2': + resolution: {integrity: sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@5.62.0': resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2766,6 +2773,15 @@ packages: typescript: optional: true + '@typescript-eslint/typescript-estree@8.12.2': + resolution: {integrity: sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/utils@5.62.0': resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2778,6 +2794,12 @@ packages: peerDependencies: eslint: ^8.56.0 + '@typescript-eslint/utils@8.12.2': + resolution: {integrity: sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2786,6 +2808,10 @@ packages: resolution: {integrity: sha512-Crb+F75U1JAEtBeQGxSKwI60hZmmzaqA3z9sYsVm8X7W5cwLEm5bRe0/uXS6+MR/y8CVpKSR/ontIAIEPFcEkA==} engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@8.12.2': + resolution: {integrity: sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@uiw/codemirror-extensions-basic-setup@4.23.3': resolution: {integrity: sha512-nEMjgbCyeLx+UQgOGAAoUWYFE34z5TlyaKNszuig/BddYFDb0WKcgmC37bDFxR2dZssf3K/lwGWLpXnGKXePbA==} peerDependencies: @@ -6564,11 +6590,10 @@ packages: typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - typescript-eslint@7.14.1: - resolution: {integrity: sha512-Eo1X+Y0JgGPspcANKjeR6nIqXl4VL5ldXLc15k4m9upq+eY5fhU2IueiEZL6jmHrKH8aCfbIvM/v3IrX5Hg99w==} - engines: {node: ^18.18.0 || >=20.0.0} + typescript-eslint@8.12.2: + resolution: {integrity: sha512-UbuVUWSrHVR03q9CWx+JDHeO6B/Hr9p4U5lRH++5tq/EbFq1faYZe50ZSBePptgfIKLEti0aPQ3hFgnPVcd8ZQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: @@ -9630,14 +9655,14 @@ snapshots: '@types/node': 20.16.10 optional: true - '@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.12.2(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2)': dependencies: '@eslint-community/regexpp': 4.10.1 - '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.6.2) - '@typescript-eslint/scope-manager': 7.14.1 - '@typescript-eslint/type-utils': 7.14.1(eslint@8.57.0)(typescript@5.6.2) - '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 7.14.1 + '@typescript-eslint/parser': 8.12.2(eslint@8.57.0)(typescript@5.6.2) + '@typescript-eslint/scope-manager': 8.12.2 + '@typescript-eslint/type-utils': 8.12.2(eslint@8.57.0)(typescript@5.6.2) + '@typescript-eslint/utils': 8.12.2(eslint@8.57.0)(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.12.2 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.2 @@ -9648,12 +9673,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2)': + '@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2)': dependencies: - '@typescript-eslint/scope-manager': 7.14.1 - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.6.2) - '@typescript-eslint/visitor-keys': 7.14.1 + '@typescript-eslint/scope-manager': 8.12.2 + '@typescript-eslint/types': 8.12.2 + '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.2) + '@typescript-eslint/visitor-keys': 8.12.2 debug: 4.3.7 eslint: 8.57.0 optionalDependencies: @@ -9671,22 +9696,29 @@ snapshots: '@typescript-eslint/types': 7.14.1 '@typescript-eslint/visitor-keys': 7.14.1 - '@typescript-eslint/type-utils@7.14.1(eslint@8.57.0)(typescript@5.6.2)': + '@typescript-eslint/scope-manager@8.12.2': dependencies: - '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.6.2) - '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.6.2) + '@typescript-eslint/types': 8.12.2 + '@typescript-eslint/visitor-keys': 8.12.2 + + '@typescript-eslint/type-utils@8.12.2(eslint@8.57.0)(typescript@5.6.2)': + dependencies: + '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.2) + '@typescript-eslint/utils': 8.12.2(eslint@8.57.0)(typescript@5.6.2) debug: 4.3.7 - eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.6.2) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: + - eslint - supports-color '@typescript-eslint/types@5.62.0': {} '@typescript-eslint/types@7.14.1': {} + '@typescript-eslint/types@8.12.2': {} + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.6.2)': dependencies: '@typescript-eslint/types': 5.62.0 @@ -9716,6 +9748,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.12.2(typescript@5.6.2)': + dependencies: + '@typescript-eslint/types': 8.12.2 + '@typescript-eslint/visitor-keys': 8.12.2 + debug: 4.3.7 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.6.2) + optionalDependencies: + typescript: 5.6.2 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.6.2)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) @@ -9742,6 +9789,17 @@ snapshots: - supports-color - typescript + '@typescript-eslint/utils@8.12.2(eslint@8.57.0)(typescript@5.6.2)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@typescript-eslint/scope-manager': 8.12.2 + '@typescript-eslint/types': 8.12.2 + '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.2) + eslint: 8.57.0 + transitivePeerDependencies: + - supports-color + - typescript + '@typescript-eslint/visitor-keys@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 @@ -9752,6 +9810,11 @@ snapshots: '@typescript-eslint/types': 7.14.1 eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@8.12.2': + dependencies: + '@typescript-eslint/types': 8.12.2 + eslint-visitor-keys: 3.4.3 + '@uiw/codemirror-extensions-basic-setup@4.23.3(@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1))(@codemirror/commands@6.6.2)(@codemirror/language@6.10.2)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)': dependencies: '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.1) @@ -11220,43 +11283,43 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.0): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.0): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.6 enhanced-resolve: 5.17.0 eslint: 8.57.0 - eslint-module-utils: 2.8.2(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0) + eslint-module-utils: 2.8.2(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0) fast-glob: 3.3.2 get-tsconfig: 4.8.0 is-bun-module: 1.1.0 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.6.2) + '@typescript-eslint/parser': 8.12.2(eslint@8.57.0)(typescript@5.6.2) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.2(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0): + eslint-module-utils@2.8.2(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.6.2) + '@typescript-eslint/parser': 8.12.2(eslint@8.57.0)(typescript@5.6.2) eslint: 8.57.0 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.0) transitivePeerDependencies: - supports-color @@ -11265,7 +11328,7 @@ snapshots: eslint: 8.57.0 eslint-rule-composer: 0.3.0 - eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0): + eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -11276,7 +11339,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -11287,7 +11350,7 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.6.2) + '@typescript-eslint/parser': 8.12.2(eslint@8.57.0)(typescript@5.6.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -11301,12 +11364,12 @@ snapshots: optionalDependencies: '@testing-library/dom': 10.1.0 - eslint-plugin-jest@28.8.3(@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(jest@29.7.0(@types/node@22.7.4)(babel-plugin-macros@3.1.0))(typescript@5.6.2): + eslint-plugin-jest@28.8.3(@typescript-eslint/eslint-plugin@8.12.2(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(jest@29.7.0(@types/node@22.7.4)(babel-plugin-macros@3.1.0))(typescript@5.6.2): dependencies: '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.6.2) eslint: 8.57.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 8.12.2(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2) jest: 29.7.0(@types/node@22.7.4)(babel-plugin-macros@3.1.0) transitivePeerDependencies: - supports-color @@ -14472,15 +14535,15 @@ snapshots: dependencies: is-typedarray: 1.0.0 - typescript-eslint@7.14.1(eslint@8.57.0)(typescript@5.6.2): + typescript-eslint@8.12.2(eslint@8.57.0)(typescript@5.6.2): dependencies: - '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2) - '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.6.2) - '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.6.2) - eslint: 8.57.0 + '@typescript-eslint/eslint-plugin': 8.12.2(@typescript-eslint/parser@8.12.2(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2) + '@typescript-eslint/parser': 8.12.2(eslint@8.57.0)(typescript@5.6.2) + '@typescript-eslint/utils': 8.12.2(eslint@8.57.0)(typescript@5.6.2) optionalDependencies: typescript: 5.6.2 transitivePeerDependencies: + - eslint - supports-color typescript@5.6.2: {} diff --git a/web/packages/build/.eslintrc.js b/web/packages/build/.eslintrc.js index 8a74e1cd0e80b..f9c90fabe90f4 100644 --- a/web/packages/build/.eslintrc.js +++ b/web/packages/build/.eslintrc.js @@ -65,6 +65,14 @@ module.exports = { 'jest/no-large-snapshots': ['warn', { maxSize: 200 }], }, }, + // Allow require imports in .js files, as migrating our project to ESM modules requires a lot of + // changes. + { + files: ['**/*.js'], + rules: { + '@typescript-eslint/no-require-imports': 'warn', + }, + }, ], rules: { 'import/order': [ @@ -88,6 +96,16 @@ module.exports = { 'import/no-unresolved': 0, 'no-unused-vars': 'off', // disabled to allow the typescript one to take over and avoid errors in reporting '@typescript-eslint/no-unused-vars': ['error'], + 'no-unused-expressions': 'off', + '@typescript-eslint/no-unused-expressions': [ + 'error', + { allowShortCircuit: true, allowTernary: true, enforceForJSX: true }, + ], + '@typescript-eslint/no-empty-object-type': [ + 'error', + // with-single-extends is needed to allow for interface extends like we have in jest.d.ts. + { allowInterfaces: 'with-single-extends' }, + ], // Severity should be one of the following: // "off" or 0 - turn the rule off diff --git a/web/packages/build/jest/setupTests.ts b/web/packages/build/jest/setupTests.ts index 7e1572bbb5ed4..e98811c23c579 100644 --- a/web/packages/build/jest/setupTests.ts +++ b/web/packages/build/jest/setupTests.ts @@ -18,13 +18,15 @@ import 'whatwg-fetch'; -const crypt = require('crypto'); -const path = require('path'); +import crypto from 'node:crypto'; +import path from 'node:path'; -const failOnConsole = require('jest-fail-on-console'); +import failOnConsole from 'jest-fail-on-console'; let entFailOnConsoleIgnoreList = []; try { + // Cannot do `await import` yet here. + // eslint-disable-next-line @typescript-eslint/no-require-imports entFailOnConsoleIgnoreList = require('../../../../e/web/testsWithIgnoredConsole'); } catch (err) { // Ignore errors related to teleport.e not being present. This allows OSS users and OSS CI to run @@ -36,7 +38,7 @@ try { Object.defineProperty(globalThis, 'crypto', { value: { - randomUUID: () => crypt.randomUUID(), + randomUUID: () => crypto.randomUUID(), }, }); diff --git a/web/packages/build/package.json b/web/packages/build/package.json index a8b8160c6a782..e83e6d9c068b1 100644 --- a/web/packages/build/package.json +++ b/web/packages/build/package.json @@ -32,7 +32,7 @@ "jest-fail-on-console": "^3.3.0", "jsdom": "^25.0.1", "rollup-plugin-visualizer": "^5.12.0", - "typescript-eslint": "^7.14.1", + "typescript-eslint": "^8.12.2", "vite-plugin-wasm": "^3.3.0", "vite-tsconfig-paths": "^5.0.1" } diff --git a/web/packages/design/src/utils/copyToClipboard.ts b/web/packages/design/src/utils/copyToClipboard.ts index 76749842a216d..fae24677f7273 100644 --- a/web/packages/design/src/utils/copyToClipboard.ts +++ b/web/packages/design/src/utils/copyToClipboard.ts @@ -36,7 +36,7 @@ function showErrorInBrowser(error: unknown, textToCopy: string): void { try { // window.prompt doesn't work in Electron. window.prompt(message, textToCopy); - } catch (error) { + } catch { window.alert(message); } } diff --git a/web/packages/shared/hooks/useLocalStorage.ts b/web/packages/shared/hooks/useLocalStorage.ts index 04f421d35a6d1..6dbb0f2972f04 100644 --- a/web/packages/shared/hooks/useLocalStorage.ts +++ b/web/packages/shared/hooks/useLocalStorage.ts @@ -37,7 +37,7 @@ export function useLocalStorage( try { return JSON.parse(value) as T; - } catch (err) { + } catch { return initialValue; } }, [initialValue, key]); diff --git a/web/packages/shared/redirects/processRedirectUri.ts b/web/packages/shared/redirects/processRedirectUri.ts index c0abd0e9ecbd3..5b56f04e5fc3c 100644 --- a/web/packages/shared/redirects/processRedirectUri.ts +++ b/web/packages/shared/redirects/processRedirectUri.ts @@ -58,7 +58,7 @@ export function processRedirectUri(redirectUri: string | null): string { } return `${BASE_PATH}${path.startsWith('/') ? '' : '/'}${path}`; - } catch (error) { + } catch { // If it's not a valid URL, it might be a relative path if (redirectUri.startsWith('/')) { return redirectUri.startsWith(BASE_PATH) diff --git a/web/packages/teleport/src/Bots/Add/GitHubActions/useGitHubFlow.tsx b/web/packages/teleport/src/Bots/Add/GitHubActions/useGitHubFlow.tsx index 558bad33b4bfc..caf38ba1faf07 100644 --- a/web/packages/teleport/src/Bots/Add/GitHubActions/useGitHubFlow.tsx +++ b/web/packages/teleport/src/Bots/Add/GitHubActions/useGitHubFlow.tsx @@ -197,7 +197,7 @@ export function parseRepoAddress(repoAddr: string): { let url; try { url = new URL(repoAddr); - } catch (e) { + } catch { throw new Error('Must be a valid URL'); } diff --git a/web/packages/teleport/src/Console/DocumentSsh/httpFileTransferHandlers.ts b/web/packages/teleport/src/Console/DocumentSsh/httpFileTransferHandlers.ts index 9bf702453fd1a..8b8c11d8d4b1e 100644 --- a/web/packages/teleport/src/Console/DocumentSsh/httpFileTransferHandlers.ts +++ b/web/packages/teleport/src/Console/DocumentSsh/httpFileTransferHandlers.ts @@ -184,7 +184,7 @@ function getErrorText(response: string | undefined): string { try { const json = JSON.parse(response); return json.error?.message || json.message || badRequest; - } catch (err) { + } catch { return 'Bad request, failed to parse error message.'; } } diff --git a/web/packages/teleport/src/LocksV2/Locks/Locks.tsx b/web/packages/teleport/src/LocksV2/Locks/Locks.tsx index 9af3c443d9e8d..4d044d1db5f7a 100644 --- a/web/packages/teleport/src/LocksV2/Locks/Locks.tsx +++ b/web/packages/teleport/src/LocksV2/Locks/Locks.tsx @@ -183,7 +183,7 @@ export function Locks() { function getFormattedDate(d: string): string { try { return formatRelative(new Date(d), Date.now()); - } catch (e) { + } catch { return ''; } } diff --git a/web/packages/teleport/src/Navigation/RecentHistory.tsx b/web/packages/teleport/src/Navigation/RecentHistory.tsx index 38ae478bd6b2a..1896e3a63a13d 100644 --- a/web/packages/teleport/src/Navigation/RecentHistory.tsx +++ b/web/packages/teleport/src/Navigation/RecentHistory.tsx @@ -176,7 +176,7 @@ function AnimatedHistoryItem({ const height = item.category ? 60 : 40; itemRef.current.style.height = `${height}px`; itemRef.current.style.opacity = '1'; - itemRef.current.offsetHeight; // Force reflow + void itemRef.current.offsetHeight; // Force reflow requestAnimationFrame(() => { if (itemRef.current) { itemRef.current.style.height = '0px'; @@ -189,7 +189,7 @@ function AnimatedHistoryItem({ const height = item.category ? 60 : 40; itemRef.current.style.height = `0px`; itemRef.current.style.opacity = '0'; - itemRef.current.offsetHeight; // Force reflow + void itemRef.current.offsetHeight; // Force reflow requestAnimationFrame(() => { if (itemRef.current) { itemRef.current.style.height = `${height}px`; diff --git a/web/packages/teleport/src/User/UserContext.tsx b/web/packages/teleport/src/User/UserContext.tsx index 66fc27d5b7580..a77411d25531e 100644 --- a/web/packages/teleport/src/User/UserContext.tsx +++ b/web/packages/teleport/src/User/UserContext.tsx @@ -109,7 +109,7 @@ export function UserContextProvider(props: PropsWithChildren) { setPreferences(preferences); storageService.setUserPreferences(preferences); - } catch (err) { + } catch { if (storedPreferences) { setPreferences(storedPreferences); diff --git a/web/packages/teleport/src/lib/term/terminal.ts b/web/packages/teleport/src/lib/term/terminal.ts index d4b4e40dfda57..6677bd30f5318 100644 --- a/web/packages/teleport/src/lib/term/terminal.ts +++ b/web/packages/teleport/src/lib/term/terminal.ts @@ -107,7 +107,7 @@ export default class TtyTerminal { this.fallbackToCanvas(); }); this.term.loadAddon(this._webglAddon); - } catch (err) { + } catch { this.fallbackToCanvas(); } @@ -137,7 +137,7 @@ export default class TtyTerminal { this._webglAddon = undefined; try { this.term.loadAddon(this._canvasAddon); - } catch (err) { + } catch { logger.error( 'Canvas renderer could not be loaded. Falling back to default' ); diff --git a/web/packages/teleport/src/services/api/api.test.ts b/web/packages/teleport/src/services/api/api.test.ts index ec5787bb56451..b38849561f087 100644 --- a/web/packages/teleport/src/services/api/api.test.ts +++ b/web/packages/teleport/src/services/api/api.test.ts @@ -168,15 +168,16 @@ const makeFoo = (): { foo: string } => { // This is a bogus test to satisfy Jest. We don't even need to execute the code that's in the async // function, we're interested only in the type system checking the code. test('fetchJson does not return any', () => { - async () => { + const bogusFunction = async () => { const result = await fooService.doSomething(); // Reading foo is correct. We add a bogus expect to satisfy Jest. - result.foo; + JSON.stringify(result.foo); // @ts-expect-error If there's no error here, it means that api.fetchJson returns any, which it // shouldn't. - result.bar; + JSON.stringify(result.bar); }; + bogusFunction.toString(); // Just to satisfy the linter expect(true).toBe(true); }); diff --git a/web/packages/teleport/src/services/api/api.ts b/web/packages/teleport/src/services/api/api.ts index f1259558fee2e..a775cd770e14e 100644 --- a/web/packages/teleport/src/services/api/api.ts +++ b/web/packages/teleport/src/services/api/api.ts @@ -184,7 +184,7 @@ const api = { webauthnResponseForRetry = await auth.getWebauthnResponse( MfaChallengeScope.ADMIN_ACTION ); - } catch (err) { + } catch { throw new Error( 'Failed to fetch webauthn credentials, please connect a registered hardware key and try again. If you do not have a hardware key registered, you can add one from your account settings page.' ); diff --git a/web/packages/teleport/src/stores/storeNotifications.ts b/web/packages/teleport/src/stores/storeNotifications.ts index ac81d3ac5c2d8..aee27ce80c3d8 100644 --- a/web/packages/teleport/src/stores/storeNotifications.ts +++ b/web/packages/teleport/src/stores/storeNotifications.ts @@ -131,7 +131,7 @@ export class StoreNotifications extends Store { try { return JSON.parse(value) as LocalNotificationStates; - } catch (err) { + } catch { return defaultLocalNotificationStates; } } diff --git a/web/packages/teleterm/src/mainProcess/loadInstallationId/loadInstallationId.ts b/web/packages/teleterm/src/mainProcess/loadInstallationId/loadInstallationId.ts index 54f53db905afb..8ef7f2a944e12 100644 --- a/web/packages/teleterm/src/mainProcess/loadInstallationId/loadInstallationId.ts +++ b/web/packages/teleterm/src/mainProcess/loadInstallationId/loadInstallationId.ts @@ -31,7 +31,7 @@ export function loadInstallationId(filePath: string): string { let id = ''; try { id = fs.readFileSync(filePath, 'utf-8'); - } catch (error) { + } catch { return writeInstallationId(filePath); } if (!UUID_V4_REGEX.test(id)) { diff --git a/web/packages/teleterm/src/ui/ConnectMyComputer/DocumentConnectMyComputer/Status.tsx b/web/packages/teleterm/src/ui/ConnectMyComputer/DocumentConnectMyComputer/Status.tsx index 9b84a6002cb83..e2acf1276bed5 100644 --- a/web/packages/teleterm/src/ui/ConnectMyComputer/DocumentConnectMyComputer/Status.tsx +++ b/web/packages/teleterm/src/ui/ConnectMyComputer/DocumentConnectMyComputer/Status.tsx @@ -80,7 +80,7 @@ export function Status(props: { closeDocument?: () => void }) { const downloadAndStartAgentAndIgnoreErrors = useCallback(async () => { try { await downloadAndStartAgent(); - } catch (error) { + } catch { // Ignore the error, it'll be shown in the UI by inspecting the attempts. } }, [downloadAndStartAgent]); diff --git a/web/packages/teleterm/src/ui/ConnectMyComputer/connectMyComputerContext.tsx b/web/packages/teleterm/src/ui/ConnectMyComputer/connectMyComputerContext.tsx index 723950eb47549..01dd818f4d04d 100644 --- a/web/packages/teleterm/src/ui/ConnectMyComputer/connectMyComputerContext.tsx +++ b/web/packages/teleterm/src/ui/ConnectMyComputer/connectMyComputerContext.tsx @@ -435,7 +435,7 @@ export const ConnectMyComputerContextProvider: FC< (async () => { try { await downloadAndStartAgent(); - } catch (error) { + } catch { // Turn off autostart if it fails, otherwise the user wouldn't be able to turn it off by // themselves. workspacesService.setConnectMyComputerAutoStart(